/*
Theme Name: Homey Child
Template: homey
Description: Villa Gavenola child theme
Version: 1.1.0
Text Domain: homey
*/

/* ---------- Villa Gavenola ---------- */
:root { --vg-terra: #9E4F2C; --vg-terra-dark: #7F3F23; --vg-ink: #2F2A24; --vg-olive: #6B7350; --vg-sand: #F5EFE6; --vg-text: #4A433B; }

/* One type system: Lato for text and UI, Cormorant for headings */
body, button, input, select, textarea, .btn, .nav, .main-nav, .header-nav, .dropdown-menu, .form-control,
.wpcf7, .wpcf7 input, .wpcf7 textarea, .block, .block-body, .block-title, .booking-property-title, .search-date-range,
.footer-bottom-wrap, .single-listing-wrap, .sidebar-booking-module { font-family: "Lato", "Helvetica Neue", Arial, sans-serif !important; }
h1, h2, h3, .title, .listing-title, .page-title, .block-title h2, .block-title h3, .sidebar-booking-module-header .price,
.single-listing-wrap h2, .single-listing-wrap h3, .homey-calendar .month-title, .block-col-25 h3 {
  font-family: "Cormorant Garamond", Georgia, serif !important; font-weight: 500; letter-spacing: 0; }
.single-listing-wrap .block-body, .single-listing-wrap .block-body p { color: var(--vg-text); font-size: 16px; line-height: 1.75; }
.single-listing-wrap .block-body p { max-width: 70ch; }

/* Logo */
.header-wrap .logo img, .logo-desktop img { max-height: 54px; width: auto; }
.logo-mobile img { max-height: 40px; width: auto; }

/* Single villa: no accounts, no compare, no favorites, no reviews, no share, no print */
.login-register, .header-login, .login-register-nav, .user-menu-wrap .login-link, .compare-property-panel, .compare-wrap,
.add-to-favorite, .homey-favorite, .print-btn, .share-btn, .social-share, .listing-share, .block-reviews, #reviews-section,
.compare-property-label, .homey_compare_btn { display: none !important; }
.detail-list li:has(.homey-icon-hashtag), .detail-list li:first-child:has(strong:empty) { display: none; }

/* Header button and buttons */
.btn-add-new-listing { border-radius: 2px; letter-spacing: .06em; text-transform: uppercase; font-size: 13px !important; padding: 10px 18px; }
.btn-primary, .btn-booking, .btn-success { background-color: var(--vg-terra) !important; border-color: var(--vg-terra) !important; color: #fff !important; }
.btn-primary:hover, .btn-booking:hover, .btn-success:hover { background-color: var(--vg-terra-dark) !important; border-color: var(--vg-terra-dark) !important; }
.btn-secondary-outlined, .btn-grey-outlined { color: var(--vg-ink); border-color: #cfc5b6; }
.sidebar-booking-module-header { background: var(--vg-ink) !important; }
.listing-slider-variable-width .btn, .top-gallery-section .btn, .btn-slider-image { background: var(--vg-ink) !important; }

/* Photo grids: same shape, no holes */
.elementor-image-gallery .gallery { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.elementor-image-gallery .gallery br { display: none; }
.elementor-image-gallery .gallery .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.elementor-image-gallery .gallery .gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; display: block; }
@media (max-width: 767px) { .elementor-image-gallery .gallery { grid-template-columns: repeat(2, 1fr); gap: 6px; } }
.elementor-widget-image figcaption, .widget-image-caption { font-size: 14px; color: var(--vg-text); margin-top: 8px; }

/* Forms: visible labels via placeholders are not enough, give fields clear borders and focus */
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 textarea, .form-control { border: 1px solid #cfc5b6; border-radius: 2px; color: var(--vg-ink); }
.wpcf7 input::placeholder, .wpcf7 textarea::placeholder, .form-control::placeholder { color: #6E655A; opacity: 1; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .form-control:focus { border-color: var(--vg-terra); box-shadow: 0 0 0 3px rgba(158,79,44,.18); outline: none; }
.wpcf7 input[type=submit] { background: var(--vg-terra); border: 0; color: #fff; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.wpcf7 input[type=submit]:hover { background: var(--vg-terra-dark); }

/* Footer */
.footer-bottom-wrap, .footer-bottom-wrap a { color: #EDE5D9 !important; }
.footer-bottom-wrap a:hover { color: #E9C2AC !important; }

/* Browser surfaces */
::selection { background: rgba(158,79,44,.22); color: var(--vg-ink); }
:focus-visible { outline: 2px solid var(--vg-terra); outline-offset: 3px; }
a { text-underline-offset: 3px; }

/* Calm motion: no autoplaying background video for people who ask for less motion */
@media (prefers-reduced-motion: reduce) { .elementor-background-video-container { display: none !important; } }

/* Listing details and photo mosaic */
.detail-list li:has(.homey-icon-common-file-text-files-folders) { display: none !important; }
.featured-slide-gallery-wrap > a { display: block; overflow: hidden; }
.featured-slide-gallery-wrap > a img { width: 100%; aspect-ratio: 4 / 3; height: auto !important; object-fit: cover; display: block; }

/* Listing v6: grid gallery header */
.homey-print, a[data-save-text] { display: none !important; }
.gallery-grid-wrap { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; height: 470px; overflow: hidden; }
.gallery-grid-left-wrap, .gallery-grid-right-wrap { width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; height: 470px; min-height: 0; }
.gallery-grid-right-wrap { display: grid !important; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; }
.gallery-grid-item { position: relative; overflow: hidden; width: auto !important; height: 100% !important; margin: 0 !important; padding: 0 !important; float: none !important; min-height: 0; border-radius: 2px; }
.gallery-grid-item a.swipebox { display: block; height: 100%; }
.gallery-grid-item img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.gallery-grid-item .gallery-grid-button { position: absolute; right: 12px; bottom: 12px; z-index: 2; width: auto; height: auto; padding: 9px 14px; font-size: 13px; font-weight: 700;
  background: rgba(255,255,255,.94) !important; color: var(--vg-ink) !important; border: 0; border-radius: 2px; }
@media (max-width: 767px) {
  .gallery-grid-wrap { grid-template-columns: 1fr; height: auto; }
  .gallery-grid-left-wrap { height: 250px; }
  .gallery-grid-right-wrap { height: 288px; }
}
