/* * Theme Name: Hidden Hills Winery Main * Description: Custom theme for Hidden Hills Winery Main Website. * Version: 1.0.6 * Author: Go Grove Marketing * Text Domain: hidden-hills-winery * License: GPL-2.0-or-later */
/* ========================= RESET / BASE ========================= */
 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
}
 html, body {
     min-height: 100%;
     scroll-behavior: smooth;
}
 body {
     font-family: "Lora", Cambria, "Hoefler Text", "Times New Roman", serif;
     color: #2E2B26;
     background-color: #f8f6f3;
     display: flex;
     flex-direction: column;
     overflow-x: hidden;
}
 img, picture, svg, video {
     display: block;
     max-width: 100%;
     height: auto;
}
 ul, ol {
     list-style: none;
}
 a {
     color: inherit;
     text-decoration: none;
}
 button, input, textarea, select {
     font: inherit;
}
 :focus-visible {
     outline: 2px solid #555;
     outline-offset: 2px;
}
 .sr-only {
     position: absolute;
     width: 1px;
     height: 1px;
     overflow: hidden;
     clip: rect(0 0 0 0);
     white-space: nowrap;
}
/* ========================= DESIGN TOKENS ========================= */
 :root {
     --color-accent: #5B2333;
     --color-accent-dark: #3D1722;
     --color-accent-light: #8C425A;
     --color-bg: #F8F6F3;
     --color-text: #2E2B26;
     --color-muted: #B9A989;
     --color-border: #DDD3C3;
     --color-link: var(--color-accent);
     --color-link-hover: #C2A36A;
     --space-xs: 0.5rem;
     --space-sm: 0.75rem;
     --space-md: 1rem;
     --space-lg: 1.5rem;
     --space-xl: 3rem;
     --font-heading: "Playfair Display", serif;
     --font-body: "Lora", serif;
     --fs-400: 1rem;
     --fs-500: 1.125rem;
     --fs-600: 1.25rem;
     --fs-700: 1.75rem;
     --fs-800: 2.25rem;
     --fs-900: 3rem;
     --shadow-soft: 0 2px 8px rgba(0,0,0,0.08);
     --shadow-medium: 0 6px 20px rgba(0,0,0,0.12);
}
/* ========================= TYPOGRAPHY ========================= */
 body {
     font-family: var(--font-body);
     font-size: var(--fs-400);
     line-height: 1.6;
     color: var(--color-text);
     background: var(--color-bg);
}
 h1,h2,h3,h4,h5,h6 {
     font-family: var(--font-heading);
     font-weight: 600;
     color: var(--color-text);
     margin-bottom: 0.5em;
     line-height: 1.25;
}
 h1{
     font-size:var(--fs-900);
}
 h2{
     font-size:var(--fs-800);
}
 h3{
     font-size:var(--fs-700);
}
 h4{
     font-size:var(--fs-600);
}
 p {
     margin-bottom: 1em;
     color: var(--color-text);
}
 a {
     color: var(--color-link);
     transition: color .25s ease;
}
 a:hover, a:focus {
     color: var(--color-link-hover);
}
/* ========================= BUTTONS / FORMS ========================= */
 button, .btn, input[type="submit"] {
     display: inline-block;
     font-family: var(--font-heading);
     font-weight: 600;
     padding: 0.6rem 1.25rem;
     border-radius: 999px;
     border: none;
     cursor: pointer;
     background: var(--color-accent);
     color: #fff;
     box-shadow: var(--shadow-soft);
     transition: transform .18s ease, background .2s ease, box-shadow .18s ease;
}
 .hero-cta {
     border-radius: 999px;
}
 button:hover, .btn:hover, .wpforms-submit:hover {
     transform: translateY(-2px);
     background: var(--color-accent-light);
     box-shadow: var(--shadow-medium);
}
 .btn-outline {
     background: transparent;
     color: var(--color-accent);
     border: 2px solid var(--color-accent);
}
 .btn-outline:hover {
     background: var(--color-accent);
     color:#fff;
}
 input[type="text"], input[type="email"], textarea, select {
     width: 100%;
     padding: .75rem 1rem;
     border: 1px solid var(--color-border);
     border-radius: 6px;
     background: #fff;
     color: var(--color-text);
}
 input:focus, textarea:focus, select:focus {
     border-color: var(--color-accent);
     box-shadow: 0 0 0 4px rgba(91,35,51,0.08);
     outline: none;
}
.wpforms-submit {
    display: inline-block;
     font-family: var(--font-heading);
     font-weight: 600;
     padding: 0.6rem 1.25rem;
     border-radius: 999px !important;
     border: none;
     cursor: pointer;
     background: var(--color-accent) !important;
     color: #fff;
     box-shadow: var(--shadow-soft);
     transition: transform .18s ease, background .2s ease, box-shadow .18s ease;
}
/* ========================= LAYOUT ========================= */
 .container {
     width: 90%;
     max-width: 1200px;
     margin: 0 auto;
}
 .site-main {
     flex: 1;
}
/* ========================= HEADER LOGO ========================= */
 .site-header .custom-logo-link img, .site-header .site-logo img {
     width: 180px;
     height: auto;
     max-height: 180px;
     object-fit: contain;
     display: block;
}
/* Shrink header logo on smaller screens */
 @media (max-width: 768px) {
     .site-header .custom-logo-link img, .site-header .site-logo img {
         width: 120px;
         max-height: 120px;
    }
}
/* ========================= FOOTER LOGO ========================= */
 .site-footer .footer-logo img {
     width: 240px;
     height: auto;
     max-height: 240px;
     object-fit: contain;
     display: block;
     margin: 0 auto;
}
/* Shrink footer logo on smaller screens */
 @media (max-width: 768px) {
     .site-footer .footer-logo img {
         width: 120px;
         max-height: 120px;
    }
}
/* ========================= HEADER / NAVIGATION ========================= */
 .site-header {
     background: var(--color-bg);
     border-bottom: 1px solid var(--color-border);
     position: sticky;
     top: 0;
     z-index: 1000;
     transition: background .25s ease, box-shadow .25s ease;
}
 .site-header.scrolled {
     background: rgba(255,255,255,0.95);
     box-shadow: var(--shadow-soft);
     backdrop-filter: blur(6px);
}
 .header-inner {
     display: flex;
     align-items: center;
     justify-content: space-between;
     padding: var(--space-md) 0;
}
 .site-branding {
     display: flex;
     flex-direction: column;
     gap: .25rem;
}
 .site-title {
     font-family: var(--font-heading);
     font-size: 1.35rem;
     color: var(--color-accent);
     display: inline-block;
}
 .site-title:hover {
     color: var(--color-accent-light);
}
 .site-description {
     font-size: .875rem;
     color: var(--color-muted);
}
 .main-navigation {
     display: flex;
     align-items: center;
     position: relative;
}
 .main-navigation ul, .menu-list, #primary-menu, .menu {
     display: flex;
     gap: var(--space-lg);
     margin:0;
     padding:0;
     list-style:none;
     flex-direction: row;
}
 .main-navigation li, .menu-list li {
     display: inline-flex;
     align-items: center;
}
 .main-navigation a, .menu-list a {
     font-family: "Lato", "Helvetica Neue", Arial, sans-serif;
     font-weight: 600;
     color: var(--color-text);
     padding: .4rem 0;
     position: relative;
     transition: color .22s ease;
}
/* ---------- Underline / Active Page ---------- */
 .main-navigation a::after, .menu-list a::after {
     content:"";
     position:absolute;
     left:0;
     bottom:-6px;
     width:0;
     height:2px;
     background: var(--color-accent);
     transition: width .22s ease;
}
/* Hover effect */
 .main-navigation a:hover, .menu-list a:hover {
     color: var(--color-accent);
}
 .main-navigation a:hover::after, .menu-list a:hover::after {
     width:100%;
}
/* Active page (persistent underline) */
 .main-navigation li.current-menu-item a::after, .menu-list li.current-menu-item a::after {
     width: 100%;
}
 .main-navigation li.current-menu-item a, .menu-list li.current-menu-item a {
     color: var(--color-accent);
}
/* ---------- Mobile ---------- */
 .menu-toggle {
     display:none;
     background:none;
     border:none;
     font-size:1.6rem;
     cursor:pointer;
     color:var(--color-text);
}
 @media (max-width:768px) {
     .menu-toggle {
         display:block;
    }
     .main-navigation {
         position:absolute;
         top:100%;
         left:0;
         width:100%;
         background: var(--color-bg);
         border-top: 1px solid var(--color-border);
         flex-direction: column;
         align-items: center;
         display:none;
         padding: var(--space-md) 0;
    }
     .main-navigation.active {
         display:flex;
    }
     .main-navigation ul, .menu-list, #primary-menu, .menu {
         flex-direction: column;
         gap: var(--space-md);
         width: 100%;
         padding: var(--space-sm) var(--space-md);
    }
     .main-navigation a, .menu-list a {
         width:100%;
         text-align:center;
         padding:.6rem 0;
         font-size:1.05rem;
    }
}
/* ========================= HERO SECTION ========================= */
 .hero-section {
     position: relative;
     background-size: cover;
     background-position: center;
     background-repeat: no-repeat;
     height: 90vh;
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     color:#fff;
     overflow:hidden;
     opacity:0;
     transform:translateY(20px);
     transition: opacity .4s ease, transform .4s ease;
}
 .hero-section[data-animate="true"] {
     opacity:1;
     transform:translateY(0);
}
 .hero-overlay {
     position:absolute;
     inset:0;
     background: rgba(0,0,0,0.4);
     z-index:0;
}
 .hero-inner {
     position:relative;
     z-index:1;
     max-width:1100px;
     margin:0 auto;
     padding:0 1.5rem;
}
 .hero-title {
     font-family: var(--font-heading);
     font-size:3rem;
     font-weight:700;
     margin-bottom:1rem;
     color: var(--color-bg);
}
 .hero-subtitle {
     font-size:1.25rem;
     margin-bottom:2rem;
     color: var(--color-bg);
}
 .hero-cta {
     display:inline-block;
     padding:0.85rem 1.75rem;
     background-color: var(--color-accent);
     color:#fff;
     text-decoration:none;
     font-weight:600;
     transition: background .3s ease, transform .3s ease;
}
 .hero-cta:hover {
     background-color: var(--color-accent-light);
     transform:translateY(-3px);
}
 .hero-section {
     opacity: 1 !important;
     transform: translateY(0) !important;
}
/* ========================= END HERO SECTION ========================= */
 .hero-title, .hero-subtitle, .about-hero__content h1.about-title, .about-hero__content p.about-subtitle, .events-hero__title, .events-hero__subtitle, .rentals-hero__title, .rentals-hero__subtitle, .wines-hero-title, .wines-hero-subtitle, .contact-hero__title, .contact-hero__subtitle {
     display: block;
    /* stacked */
     width: fit-content;
    /* hug text */
     max-width: 100%;
    /* safety */
     margin: 0 auto 0.75rem;
    /* center + spacing */
     background-color: rgba(0, 0, 0, 0.6);
     padding: 1rem 3rem;
     border-radius: 5px;
}
 @media (max-width: 768px) {
     .hero-title, .hero-subtitle, .about-hero__content h1.about-title, .about-hero__content p.about-subtitle, .events-hero__title, .events-hero__subtitle, .rentals-hero__title, .rentals-hero__subtitle, .wines-hero-title, .wines-hero-subtitle, .contact-hero__title, .contact-hero__subtitle {
         padding: 0.75rem 1.25rem;
         margin-bottom: 0.6rem;
    }
}
/* ========================= FADE-UP ANIMATION ========================= */
 @keyframes fadeUp {
     0% {
         opacity:0;
         transform:translateY(20px);
    }
     100% {
         opacity:1;
         transform:translateY(0);
    }
}
/* Apply to all sections that may animate */
 [data-animate="true"] {
     animation: fadeUp 0.78s forwards;
}
/* ========================= FEATURED WINES ========================= */
 .section--featured-wines {
     background: var(--color-bg);
     border-top:1px solid var(--color-border);
     border-bottom:1px solid var(--color-border);
     padding:var(--space-xl) 0;
}
 .section--featured-wines .section__header {
     text-align:center;
     margin-bottom:var(--space-lg);
}
 .section--featured-wines .section__header h2 {
     font-family:var(--font-heading);
     font-size:var(--fs-800);
     color: var(--color-accent);
     margin-bottom: var(--space-xs);
}
 .section--featured-wines .section__header p {
     color: var(--color-muted);
     font-size: var(--fs-500);
}
 .wine-card {
     background:#fffdfc;
     border:1px solid var(--color-border);
     border-radius:10px;
     overflow:hidden;
     display:flex;
     flex-direction:column;
     box-shadow: var(--shadow-soft);
     transition: transform .35s cubic-bezier(.16,.8,.25,1), box-shadow .35s ease;
     will-change: transform, box-shadow;
     position:relative;
}
 .wine-card:hover {
     transform:translateY(-6px);
     box-shadow:var(--shadow-medium);
}
 .wine-card__image {
     position:relative;
     overflow:hidden;
     border-bottom:1px solid var(--color-border);
}
 .wine-card__image img {
     width:100%;
     height:400px;
     object-fit:cover;
     transition: transform .6s, opacity .35s;
}
 .wine-card:hover .wine-card__image img {
     transform:scale(1.06);
     opacity:.94;
}
 .wine-card__overlay {
     position:absolute;
     inset:0;
     background:rgba(0,0,0,0.45);
     display:flex;
     align-items:center;
     justify-content:center;
     opacity:0;
     transition:opacity .35s ease;
     pointer-events:none;
}
 .wine-card:hover .wine-card__overlay {
     opacity:1;
     pointer-events:auto;
}
 .wine-card__overlay-content {
     color:#fff;
     text-align:center;
     transform:translateY(12px);
     transition: transform .28s ease;
}
 .wine-card:hover .wine-card__overlay-content {
     transform:translateY(0);
}
 .wine-card__overlay-content h3 {
     font-family:var(--font-heading);
     font-size:1.4rem;
     margin-bottom:.5rem;
     letter-spacing:.3px;
     color: var(--color-bg);
}
 .wine-card__overlay-content .btn {
     background: var(--color-accent);
     color:#fff;
     padding:.55rem 1.2rem;
}
 .wine-card__content {
     padding:var(--space-md);
     text-align:center;
     display:flex;
     flex-direction:column;
     gap:.5rem;
}
 .wine-card__content p {
     color: var(--color-text);
     line-height:1.6;
}
 .wine-card__content .price {
     font-family:var(--font-heading);
     color: var(--color-accent-light);
     font-weight:600;
}
 .wine-card__content .btn {
     align-self:center;
}
/* ========================= ABOUT SECTION ========================= */
 .about-section {
     padding:6rem 0;
     background:#faf7f5;
}
 .about-container {
     max-width:1200px;
     margin:0 auto;
     padding:0 1.75rem;
     display:flex;
     align-items:center;
     gap:4rem;
     position:relative;
     overflow:hidden;
     flex-wrap:nowrap;
}
 .about-content, .about-image-wrapper {
     opacity:0;
     transform:translateY(20px);
}
 .about-section[data-animate="true"] .about-content, .about-section[data-animate="true"] .about-image-wrapper {
     animation:fadeUp 0.8s forwards;
}
 .about-title {
     font-family:var(--font-heading);
     font-size:2.75rem;
     font-weight:700;
     color:var(--color-accent);
     margin-bottom:1rem;
}
 .about-subtitle {
     font-size:1.25rem;
     font-weight:500;
     color:var(--color-accent);
     margin-bottom:1.5rem;
}
 .about-text {
     font-size:1.125rem;
     line-height:1.7;
     color:#4a3b38;
     margin-bottom:2rem;
}
 .about-btn {
     display:inline-block;
     padding:0.85rem 1.75rem;
     background-color:#5a2a27;
     color:#fff;
     text-decoration:none;
     font-weight:600;
     transition: background .3s ease, transform .3s ease;
}
 .about-btn:hover {
     background-color:#7a3a37;
     transform:translateY(-3px);
}
 .about-image-wrapper {
     flex:1;
     display:flex;
     justify-content:center;
}
 .about-image {
     max-width:100%;
     border-radius:14px;
     box-shadow:0 12px 30px rgba(0,0,0,0.15);
     object-fit:cover;
}
/*========================= VISIT SECTION (UPGRADED) ========================= */
 .visit-section {
     position: relative;
     padding: 80px 0;
     background-size: cover;
     background-position: center center;
     background-repeat: no-repeat;
     color: #fff;
     overflow: hidden;
}
 .visit-overlay {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: rgba(0,0,0,0.75);
     z-index: 1;
}
 .visit-content {
     position: relative;
     z-index: 2;
     max-width: 1100px;
     margin: 0 auto;
     padding: 0 1.5rem;
}
 .visit-title {
     text-align: center;
     font-size: 2.4rem;
     font-weight: 700;
     margin-bottom: 10px;
     color: var(--color-bg);
}
 .visit-subtitle {
     text-align: center;
     font-size: 1.2rem;
     opacity: 0.85;
     margin-bottom: 20px;
     color: var(--color-bg);
}
 .visit-text {
     text-align: center;
     max-width: 700px;
     margin: 0 auto 40px auto;
     line-height: 1.6;
     opacity: 0.9;
     color: var(--color-bg);
}
 .visit-info-blocks {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
     gap: 30px;
     margin: 40px 0 60px;
     text-align: center;
}
 .visit-info-item {
     opacity: 0;
     transform: translateY(20px);
     animation: fadeUp 0.6s ease forwards;
     animation-delay: var(--animation-delay, 0s);
     background-color: rgba(255,255,255,0.08);
     border-radius: 10px;
     padding: 2rem 1.5rem;
     transition: transform 0.3s ease, box-shadow 0.3s ease;
}
 .visit-info-item {
     transform: translateY(-5px);
     box-shadow: 0 6px 20px rgba(0,0,0,0.12);
}
 .visit-info-icon {
     width: 55px;
     height: 55px;
     margin-bottom: 10px;
}
 .info-title {
     font-size: 1.3rem;
     font-weight: 600;
     margin-bottom: 5px;
}
 .info-desc {
     font-size: 1rem;
     opacity: 0.9;
     line-height: 1.5;
}
 .visit-details {
     display: grid;
     gap: 40px;
     grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
     margin-bottom: 40px;
     text-align: left;
}
 .visit-detail-item h3 {
     font-size: 1.3rem;
     margin-bottom: 10px;
     font-weight: 600;
     color: var(--color-bg);
}
 .visit-detail-item p, .visit-hours {
     font-size: 1rem;
     line-height: 1.6;
     opacity: 0.95;
     color: var(--color-bg);
}
 .visit-detail-item p a {
     color: var(--color-bg);
}
 .directions-btn {
     display: inline-block;
     margin-top: 15px;
     padding: 0.65rem 1.5rem;
     background-color: #5B2333;
     color: #fff;
     font-weight: 600;
     transition: background 0.3s ease, transform 0.2s ease;
}
 .directions-btn {
     background-color: #8C425A;
     transform: translateY(-2px);
}
 .visit-map iframe {
     width: 100%;
     height: 400px;
     border: none;
     border-radius: 10px;
}
/* ========================= VISIT SECTION ANIMATION ========================= */
 @keyframes fadeUp {
     0% {
         opacity: 0;
         transform: translateY(20px);
    }
     100% {
         opacity: 1;
         transform: translateY(0);
    }
}
/* ========================= EVENTS HIGHLIGHT SECTION ========================= */
 .events-section {
     padding: 6rem 0;
     background-color: #f8f8f8;
}
 .events-section .section__header {
     margin-bottom: 3rem;
     text-align: center;
}
 .events-section .section-title {
     font-family: var(--font-heading);
     font-size: 2.75rem;
     font-weight: 700;
     margin-bottom: 0.5rem;
     color: var(--color-accent);
}
 .events-section .section-subtitle {
     font-size: 1.25rem;
     font-weight: 500;
     color: var(--color-bg);
}
/* ========================= GRID ========================= */
 .events-grid {
     display: flex;
     flex-wrap: wrap;
     gap: 2rem;
     justify-content: center;
}
/* ========================= EVENT CARD ========================= */
 .event-card {
     position: relative;
     background-color: #fff;
     border-radius: 10px;
     overflow: hidden;
     max-width: 350px;
     flex: 1 1 300px;
     box-shadow: var(--shadow-light);
     transition: transform 0.3s ease, box-shadow 0.3s ease;
     display: flex;
     flex-direction: column;
}
/* ========================= IMAGE ========================= */
 .event-card__image {
     position: relative;
     width: 100%;
     aspect-ratio: 1 / 1;
     overflow: hidden;
     border-radius: 10px;
}
 .event-card__image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     object-position: center;
     display: block;
     transition: transform 0.4s ease;
}
/* Correct zoom on hover */
 .event-card:hover .event-card__image img {
     transform: scale(1.05);
}
/* ========================= OVERLAY ========================= */
 .event-card__overlay {
     position: absolute;
     inset: 0;
     background: rgba(0,0,0,0.5);
     color: #fff;
     display: flex;
     flex-direction: column;
     justify-content: center;
     align-items: center;
     text-align: center;
     padding: 1rem;
     box-sizing: border-box;
     border-radius: 10px;
     opacity: 0;
     transition: opacity 0.3s ease;
     pointer-events: none;
     z-index: 10;
}
/* Correct hover activation */
 .event-card:hover .event-card__overlay, .event-card:focus-within .event-card__overlay {
     opacity: 1;
     pointer-events: auto;
}
 .event-card__overlay .event-name, .event-card__overlay .event-date {
     margin: 0.25rem 0;
}
/* ========================= CONTENT ========================= */
 .event-card__content {
     padding: 1.5rem;
     display: flex;
     flex-direction: column;
     flex-grow: 1;
}
 .event-date {
     font-size: 0.875rem;
     font-weight: 600;
     color: var(--color-primary);
     margin-bottom: 0.5rem;
     text-transform: uppercase;
}
 .event-name {
     font-family: var(--font-heading);
     font-size: 1.5rem;
     font-weight: 700;
     margin-bottom: 0.5rem;
     color: #fff;
}
 .event-desc {
     font-size: 1rem;
     line-height: 1.6;
     margin-bottom: 1rem;
     color: #555;
     flex-grow: 1;
}
 .event-btn {
     align-self: flex-start;
     margin-top: auto;
}
/* ========================= HOVER / TAP EFFECTS ========================= */
 @media (hover: hover) {
     .event-card:hover {
         transform: translateY(-5px) scale(1.02);
         box-shadow: var(--shadow-medium);
    }
}
 @media (hover: none) {
     .event-card__overlay {
         opacity: 1;
         background: rgba(0,0,0,0.3);
    }
     .event-card__image img {
         transform: none;
    }
}
/* ========================= RESPONSIVE ========================= */
 @media (max-width: 1024px) {
     .events-grid {
         gap: 1.5rem;
    }
}
 @media (max-width: 768px) {
     .events-grid {
         flex-direction: column;
         gap: 2rem;
    }
     .event-card {
         max-width: 90%;
         margin: 0 auto;
    }
}
/* ========================= END EVENTS HIGHLIGHT SECTION ========================= */
/* =============================== Minimalist Footer Styles - Hidden Hills Winery =============================== */
 .site-footer {
     background-color: #1a0a05;
    /* very dark brown/wine */
     color: #ffffff;
     padding: 3rem 1.5rem;
     font-family: var(--font-base);
}
 .footer-inner {
     display: flex;
     flex-wrap: wrap;
     justify-content: space-between;
     gap: 2rem;
     max-width: 1200px;
     margin: 0 auto;
}
 .footer-logo img {
     max-width: 240px;
     height: auto;
     margin-bottom: 1rem;
}
 .footer-column {
     flex: 1 1 200px;
}
 .footer-column h4 {
     font-weight: 600;
     margin-bottom: 1rem;
     color: #ffffff;
     font-size: 1.1rem;
}
 .footer-column a {
     color: #f9f5f2;
    /* off-white for links */
     text-decoration: none;
     transition: color 0.3s ease;
}
 .footer-column a:hover {
     color: #b36b4c;
    /* soft wine accent */
}
 .footer-column ul {
     list-style: none;
     padding: 0;
     margin: 0;
}
 .footer-column ul li {
     margin-bottom: 0.6rem;
}
 .footer-social {
     margin-top: 1rem;
}
 .footer-social a {
     display: inline-block;
     margin-right: 1rem;
     font-size: 1.25rem;
     color: #f9f5f2;
     transition: color 0.3s ease;
}
 .footer-social a:hover {
     color: #b36b4c;
}
 .site-info {
     text-align: center;
     margin-top: 2rem;
     font-size: 0.85rem;
     color: #ccc;
}
 @media (max-width: 768px) {
     .footer-inner {
         flex-direction: column;
         align-items: center;
         text-align: center;
    }
     .footer-column {
         flex: 1 1 100%;
         margin-bottom: 1.5rem;
    }
}
/* =============================== Testimonial Layout =============================== */
 .testimonial-section {
     padding: 6rem 0;
     background-color: #faf7f5;
}
 .testimonial-section .section__header {
     text-align: center;
     margin-bottom: 3rem;
}
 .testimonial-section h2 {
     font-family: var(--font-heading);
     font-size: 2.75rem;
     color: var(--color-accent);
     margin-bottom: 0.5rem;
}
 .testimonial-section p {
     font-size: var(--fs-500);
     color: var(--color-muted);
}
 .testimonial-grid {
     display: grid;
     grid-template-columns: repeat(5, 1fr);
     gap: 1rem;
}
 .testimonial-card {
     position: relative;
     overflow: hidden;
     padding-top: 100%;
    /* Square ratio 1:1 */
     cursor: pointer;
}
 .testimonial-card img {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.3s ease;
}
 .testimonial-card:hover img {
     transform: scale(1.1);
}
 .testimonial-overlay {
     position: absolute;
     inset: 0;
     background: rgba(0,0,0,0.55);
     color: #fff;
     opacity: 0;
     display: flex;
     flex-direction: column;
     justify-content: center;
     align-items: center;
     padding: 1rem;
     text-align: center;
     transition: opacity 0.3s ease;
}
 .testimonial-card:hover .testimonial-overlay {
     opacity: 1;
}
 .testimonial-overlay p {
     font-size: 0.9rem;
     margin-bottom: 0.5rem;
     line-height: 1.5;
}
 .testimonial-author {
     font-weight: 600;
     font-size: 0.875rem;
}
/* ========================= Responsive Grid / Carousel ========================= */
/* Large tablets / desktops */
 @media(max-width:1200px) {
     .testimonial-grid {
         grid-template-columns: repeat(4, 1fr);
    }
}
 @media(max-width:992px) {
     .testimonial-grid {
         grid-template-columns: repeat(3, 1fr);
    }
}
/* Tablets: horizontal scroll carousel */
 @media(max-width:768px) {
     .testimonial-grid {
         display: flex;
         overflow-x: auto;
         gap: 1rem;
         padding-bottom: 1rem;
         scroll-snap-type: x mandatory;
    }
     .testimonial-card {
         flex: 0 0 70%;
        /* Show 1-2 cards at a time */
         padding-top: 70%;
        /* keep square ratio */
         scroll-snap-align: start;
    }
}
/* Mobile: single card view */
 @media(max-width:480px) {
     .testimonial-card {
         flex: 0 0 90%;
         padding-top: 90%;
    }
}
/* =============================== End Testimonial Layout =============================== */
/* ========================= FACEBOOK FEED SECTION ========================= */
.facebook-feed-section {
  padding: 5rem 1.5rem;
  background-color: var(--color-light-bg);
  text-align: center;
}
.facebook-feed-section .section-header {
  margin-bottom: 3rem;
}
.facebook-feed-section .section-title {
  font-family: var(--font-heading);
  font-size: 2.2rem;
  margin-bottom: 0.75rem;
  color: var(--color-accent);
}
.facebook-feed-section .section-subtitle {
  font-size: 1.1rem;
  color: var(--color-text);
  max-width: 650px;
  margin: 0 auto;
}
.facebook-feed-wrapper {
  display: none;
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .facebook-feed-section {
    padding: 3rem 1rem;
  }
}
/* ========================= END FACEBOOK FEED SECTION ========================= */
/* ============================ Partner Logo Section ============================ */
 .partner-logos-section {
     padding: 80px 0;
     background: var(--hhw-light-cream, #f8f6f1);
     text-align: center;
}
 .partner-logos-title {
     font-size: 2.2rem;
     margin-bottom: 40px;
     font-weight: 600;
     color: var(--hhw-deep-wine, #4a1f28);
     letter-spacing: 0.03em;
}
/* GRID LAYOUT */
 .partner-logos-grid {
     display: flex;
     justify-content: center;
     align-items: center;
     flex-wrap: wrap;
     gap: 120px;
     max-width: 1200px;
     margin: 0 auto;
}
/* INDIVIDUAL LOGO ITEMS */
 .partner-logo-item {
     width: 240px;
     height: 140px;
     display: flex;
     align-items: center;
     justify-content: center;
}
 .partner-logo-item img {
     width: 100%;
     height: 100%;
     object-fit: contain;
     filter: grayscale(100%) brightness(0.5);
     opacity: 0.8;
     transition: all 0.35s ease;
     transform: translateY(0);
}
/* HOVER EFFECT — BRAND COLOR LIFT */
 .partner-logo-item:hover img {
     filter: grayscale(0%) brightness(1);
     opacity: 1;
     transform: translateY(-6px);
     transform-origin: center;
    /* Brand accent color glow */
     box-shadow: 0 8px 20px rgba(109, 28, 39, 0.25);
    /* wine color shadow */
}
/* Responsive Tweaks */
 @media (max-width: 768px) {
     .partner-logo-item {
         width: 110px;
         height: 110px;
    }
}
 @media (max-width: 480px) {
     .partner-logo-item {
         width: 90px;
         height: 90px;
    }
}
/* ============================ End Partner Logo Section ============================ */
/* ============================= Star Contact Divider Section ============================== */
 .contact-divider {
     position: relative;
     padding: 5rem 0 4rem;
     background-color: var(--color-bg);
     overflow: hidden;
}
/* Accent Panel */
 .contact-divider::before {
     content: "";
     position: absolute;
     top: 50%;
     left: 0;
     width: 45%;
     height: 55%;
     background-color: var(--color-accent);
     opacity: 0.08;
     transform: translateY(-50%);
     border-top-right-radius: 80px;
     border-bottom-right-radius: 80px;
     z-index: 0;
}
 .contact-divider__content {
     position: relative;
     text-align: center;
     max-width: 760px;
     margin: 0 auto;
     z-index: 1;
}
 .contact-divider__title {
     font-family: var(--font-heading);
     font-size: var(--fs-800);
     color: var(--color-accent);
     margin-bottom: var(--space-sm);
}
 .contact-divider__text {
     font-size: var(--fs-500);
     line-height: 1.7;
     color: var(--color-text);
     max-width: 640px;
     margin: 0 auto;
}
/* ============================= Responsive ============================== */
 @media (max-width: 768px) {
     .contact-divider {
         padding: 4rem 0 3rem;
    }
     .contact-divider::before {
         width: 85%;
         height: 40%;
         left: 50%;
         transform: translate(-50%, -50%);
         border-radius: 24px;
    }
     .contact-divider__title {
         font-size: var(--fs-700);
    }
}
/* ============================= End Contact Divider Section ============================== */
/* ============================= Home Page Contact Form Section ============================== */
 .home-contact-section .wpforms-container {
     max-width: 760px;
     margin: 0 auto;
}
 .home-contact-section .wpforms-field input, .home-contact-section .wpforms-field textarea, .home-contact-section .wpforms-field select {
     padding: 0.85rem 1rem;
     font-size: 1rem;
     font-family: var(--font-body);
     color: var(--color-text);
     background-color: #fff;
     border: 1px solid #ddd;
     border-radius: 10px;
     transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
 .home-contact-section .wpforms-field input:focus, .home-contact-section .wpforms-field textarea:focus, .home-contact-section .wpforms-field select:focus {
     border-color: var(--color-accent);
     box-shadow: 0 0 0 3px rgba(183, 92, 63, 0.15);
     outline: none;
}
 .home-contact-section .wpforms-field-label {
     font-weight: 600;
     color: var(--color-text);
}
 .home-contact-section .wpforms-submit-container {
     text-align: center;
     margin-top: 2rem;
}
 .home-contact-section button.wpforms-submit {
     background-color: var(--color-accent);
     color: #fff;
     padding: 0.85rem 2.75rem;
     border-radius: 999px;
     font-weight: 600;
     transition: background-color 0.3s ease, transform 0.2s ease;
}
 .home-contact-section button.wpforms-submit:hover {
     background-color: var(--color-accent-dark);
     transform: translateY(-2px);
}
/* ============================= Home Page Contact Form Section ============================== */
/* ============================ About Page Styles (Fixed) ============================ */
/* ---------------------------- Hero Section ---------------------------- */
 .about-hero {
     position: relative;
     background-size: cover !important;
     background-position: center !important;
     padding: 10rem 0 7rem;
     color: var(--color-on-primary);
}
 .about-hero__overlay {
     position: absolute;
     inset: 0;
     background: rgba(0, 0, 0, 0.45);
}
 .about-hero__content {
     position: relative;
     text-align: center;
     z-index: 2;
}
 .about-title {
     font-family: var(--font-heading);
     font-size: 3.25rem;
     font-weight: 700;
     margin-bottom: 0.5rem;
}
 .about-subtitle {
     font-size: 1.35rem;
     margin-top: 0.75rem;
}
 .about-hero__content h1.about-title, .about-hero__content p.about-subtitle {
     color: var(--color-bg);
}
/* ---------------------------- About Description ---------------------------- */
 .about-content {
     padding: 6rem 0;
     background-color: var(--color-bg);
     opacity: 1 !important;
    /* ensure visible */
     transform: translateY(0) !important;
    /* cancel unwanted shift */
}
 .about-text {
     max-width: 800px;
     margin: 0 auto;
     font-size: 1.125rem;
     line-height: 1.8;
     color: var(--color-text);
     text-align: center;
}
 .about-text a {
     color: var(--color-accent);
     text-decoration: underline;
}
 .about-text a:hover {
     color: var(--color-accent-dark);
}
/* Optional fade-in animation */
 .about-content[data-animate="true"] {
     animation: fadeUp 0.8s forwards;
}
/* ---------------------------- Team Section ---------------------------- */
 .team-section {
     padding: 6rem 0;
     background-color: var(--color-background-secondary);
}
 .team-grid {
     display: flex;
     flex-wrap: wrap;
     gap: 3rem;
     justify-content: center;
}
 .team-card {
     background: var(--color-background);
     border-radius: 10px;
     overflow: hidden;
     max-width: 180px;
     text-align: center;
     box-shadow: var(--shadow-light);
     transition: transform 0.3s ease, box-shadow 0.3s ease;
}
 .team-card:hover {
     transform: translateY(-5px);
     box-shadow: var(--shadow-medium);
}
 .team-card__image {
     width: 100%;
     aspect-ratio: 1/1;
     overflow: hidden;
     border-radius: 10px 10px 0 0;
}
 .team-card__image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.4s ease;
}
 .team-card:hover .team-card__image img {
     transform: scale(1.05);
}
 .team-card__content {
     padding: 1.25rem;
}
 .team-name {
     font-family: var(--font-heading);
     font-size: 1.25rem;
     font-weight: 700;
     margin-bottom: 0.25rem;
     color: var(--color-text);
}
 .team-title {
     display: block;
     font-size: 0.95rem;
     color: var(--color-text-secondary);
}
/* ---------------------------- CTA Section ---------------------------- */
 .about-cta {
     padding: 6rem 0;
     background-color: var(--color-background);
     text-align: center;
}
 .about-cta__title {
     font-family: var(--font-heading);
     font-size: 2rem;
     font-weight: 700;
     margin-bottom: 0.5rem;
     color: var(--color-text);
}
 .about-cta__subtitle {
     font-size: 1.2rem;
     margin-bottom: 2rem;
     color: var(--color-text-secondary);
}
 .about-cta__buttons {
     display: flex;
     gap: 1.5rem;
     justify-content: center;
     flex-wrap: wrap;
}
 .about-cta__button {
     background-color: var(--color-primary);
     color: var(--color-on-primary);
     text-decoration: none;
     padding: 0.85rem 2rem;
     font-weight: 600;
     transition: background-color 0.3s ease, transform 0.2s ease;
}
 .about-cta__button:hover {
     background-color: var(--color-primary-dark);
     transform: translateY(-2px);
}
/* ---------------------------- Responsive Adjustments ---------------------------- */
 @media (max-width: 1024px) {
     .team-grid {
         gap: 1.5rem;
    }
     .about-title {
         font-size: 2.75rem;
    }
     .about-subtitle {
         font-size: 1.25rem;
    }
     .about-cta__title {
         font-size: 1.75rem;
    }
     .about-cta__subtitle {
         font-size: 1.1rem;
    }
}
 @media (max-width: 768px) {
     .team-grid {
         flex-direction: column;
         gap: 2rem;
         align-items: center;
    }
     .team-card {
         max-width: 90%;
    }
     .about-title {
         font-size: 2.25rem;
    }
     .about-subtitle {
         font-size: 1.1rem;
    }
     .about-text {
         font-size: 1.05rem;
    }
     .about-cta__buttons {
         flex-direction: column;
         gap: 1rem;
    }
}
/* ============================ End About Page Styles ============================ */
/* ============================ Start Event Page Styles ============================ */
/* --- Hero Section --- */
 .events-hero, .rentals-hero {
     position: relative;
     background-size: cover;
     background-position: center;
     height: 500px;
     display: flex;
     align-items: center;
     justify-content: center;
     color: #fff;
     text-align: center;
}
 .events-hero__overlay, .rentals-hero__overlay {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: rgba(0, 0, 0, 0.4);
}
 .events-hero__content {
     position: relative;
     z-index: 2;
}
 .events-hero__title, .rentals-hero__title {
     font-family: 'Playfair Display', serif;
     font-size: 3rem;
     margin-bottom: 0.5rem;
     color: var(--color-bg);
}
 .events-hero__subtitle, .rentals-hero__subtitle {
     font-family: 'Lora', serif;
     font-size: 1.25rem;
     color: var(--color-bg);
}
/* --- Current Events Section --- */
 .events-current {
     padding: 80px 20px;
     background-color: #f8f8f8;
}
 .events-header {
     width: 90%;
     margin: 0 auto;
     margin-bottom: var(--space-lg);
}
 .events-grid {
     display: flex !important;
     grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
     gap: 30px;
}
 .event-card {
     position: relative;
     overflow: hidden;
     background: #fff;
     box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
     border-radius: 10px;
     transition: transform 0.3s ease;
}
 .event-card:hover {
     transform: translateY(-5px);
}
/* Event Image */
 .event-card__image img {
     width: 100%;
     display: block;
     border-top-left-radius: 10px;
     border-top-right-radius: 10px;
}
/* Overlay with Title & Date */
 .event-card__overlay {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: rgba(0, 0, 0, 0.5);
     color: #fff;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     opacity: 0;
     transition: opacity 0.3s ease;
     text-align: center;
     padding: 20px;
}
 .event-card:hover .event-card__overlay {
     opacity: 1;
}
 .event-name {
     font-family: 'Playfair Display', serif;
     font-size: 1.5rem;
     margin-bottom: 0.5rem;
}
 .event-date {
     font-family: 'Lora', serif;
     font-size: 1rem;
     margin-bottom: 1rem;
}
 .event-btn {
     background-color: var(--color-accent-dark);
     color: #fff;
     padding: 10px 20px;
     text-decoration: none;
     font-family: 'Lora', serif;
     font-weight: 500;
     transition: background 0.3s ease;
}
 .event-btn:hover {
     background-color: var(--color-accent-dark);
}
/* Event Description Section (below image) */
 .event-card__content {
     padding: 20px;
}
 .event-desc {
     font-family: 'Lora', serif;
     font-size: 0.95rem;
     color: #333;
     line-height: 1.5;
}
/* Tastings & Tours Section */
 .events-tastings {
     padding: 5rem 0;
     background-color: var(--color-accent);
}
 .events-tastings__title {
     font-family: var(--font-heading);
     font-size: var(--fs-800);
     color: #fff;
     margin-bottom: var(--space-sm);
}
 .events-tastings__text {
     max-width: 700px;
     margin: 0 auto;
     font-size: var(--fs-500);
     line-height: 1.7;
     color: #fff;
     opacity: 0.95;
}
/* Responsive */
 @media (max-width: 768px) {
     .events-tastings {
         padding: 4rem 0;
    }
     .events-tastings__title {
         font-size: var(--fs-700);
    }
}
/* Weddings Section */
/* Accent Panel */
 .events-weddings::before {
     content: "";
     position: absolute;
     top: 50%;
     right: 0;
     width: 45%;
     height: 50%;
     background-color: var(--color-accent);
     opacity: 0.08;
     transform: translateY(-50%);
     border-top-left-radius: 80px;
     border-bottom-left-radius: 80px;
     z-index: 0;
}
 .events-weddings {
     position: relative;
     padding: 6rem 0;
     background-color: var(--color-bg);
     overflow: hidden;
}
 .events-weddings .container {
     position: relative;
}
/* Grid */
 .events-weddings__grid {
     position: relative;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: var(--space-xl);
     align-items: center;
     z-index: 1;
}
/* Image */
 .events-weddings__image img {
     width: 100%;
     height: auto;
     border-radius: 12px;
     box-shadow: var(--shadow-medium);
}
/* Content */
 .events-weddings__content {
     max-width: 520px;
}
 .events-weddings__title {
     font-family: var(--font-heading);
     font-size: var(--fs-800);
     color: var(--color-accent);
     margin-bottom: var(--space-sm);
}
 .events-weddings__text {
     font-size: var(--fs-500);
     line-height: 1.8;
     color: var(--color-text);
     margin-bottom: var(--space-lg);
}
/* Button */
 .events-weddings__button {
     display: inline-block;
     background-color: var(--color-accent);
     color: #fff;
     text-decoration: none;
     padding: 0.85rem 2.25rem;
     border-radius: 999px;
     font-weight: 600;
     transition: background-color 0.3s ease, transform 0.2s ease;
}
 .events-weddings__button:hover {
     background-color: var(--color-accent-dark);
     transform: translateY(-2px);
}
/* ============================= Responsive ============================== */
 @media (max-width: 768px) {
     .events-weddings__grid {
         grid-template-columns: 1fr;
         text-align: center;
    }
     .events-weddings__accent {
         left: 50%;
         top: auto;
         bottom: -3rem;
         width: 85%;
         height: 40%;
         transform: translateX(-50%);
         border-radius: 18px;
    }
     .events-weddings__content {
         max-width: 100%;
    }
}
/* ============================ End Event Page Styles ============================ */
/* ============================ Rentals Hero Section ============================ */
 .rentals-hero {
     position: relative;
     min-height: 70vh;
     background-size: cover;
     background-position: center;
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     overflow: hidden;
}
 .rentals-hero__overlay {
     position: absolute;
     inset: 0;
     background: rgba(0, 0, 0, 0.45);
     z-index: 0;
}
 .rentals-hero__content {
     position: relative;
     z-index: 1;
     max-width: 900px;
     padding: 0 1.5rem;
}
 .rentals-hero__title {
     font-family: var(--font-heading);
     font-size: var(--fs-900);
     font-weight: 700;
     margin-bottom: var(--space-sm);
}
 .rentals-hero__subtitle {
     font-size: var(--fs-600);
     font-weight: 500;
     line-height: 1.6;
     opacity: 0.95;
}
/* Responsive */
 @media (max-width: 1024px) {
     .rentals-hero__title {
         font-size: var(--fs-800);
    }
     .rentals-hero__subtitle {
         font-size: var(--fs-500);
    }
}
 @media (max-width: 768px) {
     .rentals-hero {
         min-height: 50vh;
    }
     .rentals-hero__title {
         font-size: var(--fs-700);
    }
}
/* ============================ General Rentals Section ============================ */
 .rentals-general {
     padding: 6rem 0;
     background-color: var(--color-bg);
}
 .rentals-general__grid {
     display: grid;
     grid-template-columns: 1.1fr 0.9fr;
     gap: var(--space-xl);
     align-items: center;
}
/* Content */
 .rentals-general__content {
     max-width: 560px;
}
 .rentals-general .section-title {
     font-family: var(--font-heading);
     font-size: var(--fs-800);
     color: var(--color-accent);
     margin-bottom: var(--space-sm);
}
 .rentals-general .section-text {
     font-size: var(--fs-500);
     line-height: 1.8;
     color: var(--color-text);
     margin-bottom: var(--space-md);
}
/* Feature List */
 .rentals-list {
     list-style: none;
     padding: 0;
     margin: 0;
}
 .rentals-list li {
     position: relative;
     padding-left: 1.75rem;
     margin-bottom: 0.75rem;
     font-size: var(--fs-500);
     color: var(--color-text);
}
 .rentals-list li::before {
     content: "•";
     position: absolute;
     left: 0;
     top: 0;
     color: var(--color-accent);
     font-size: 1.5rem;
     line-height: 1;
}
/* Image */
 .rentals-general__image img {
     width: 100%;
     height: auto;
     border-radius: 12px;
     box-shadow: var(--shadow-medium);
     object-fit: cover;
}
/* ============================ Responsive Adjustments ============================ */
 @media (max-width: 1024px) {
     .rentals-general__grid {
         grid-template-columns: 1fr;
         gap: var(--space-lg);
    }
     .rentals-general__content {
         max-width: 100%;
    }
}
 @media (max-width: 768px) {
     .rentals-general {
         padding: 4.5rem 0;
    }
     .rentals-general .section-title {
         font-size: var(--fs-700);
    }
     .rentals-general__grid {
         text-align: center;
    }
     .rentals-list li {
         padding-left: 0;
    }
     .rentals-list li::before {
         display: none;
    }
}
/* ============================ Rentals Divider Section ============================ */
 .rentals-divider {
     padding: 4rem 0;
     background-color: var(--color-background-secondary);
}
 .rentals-divider__text {
     max-width: 720px;
     margin: 0 auto;
     font-family: var(--font-heading);
     font-size: var(--fs-600);
     font-style: italic;
     line-height: 1.6;
     color: var(--color-text-secondary);
     text-align: center;
     position: relative;
}
/* Decorative lines */
 .rentals-divider__text::before, .rentals-divider__text::after {
     content: "";
     display: block;
     width: 60px;
     height: 2px;
     background-color: var(--color-accent);
     margin: 1.25rem auto;
     opacity: 0.6;
}
/* ============================ Responsive Adjustments ============================ */
 @media (max-width: 768px) {
     .rentals-divider {
         padding: 3rem 0;
    }
     .rentals-divider__text {
         font-size: var(--fs-500);
         padding: 0 1rem;
    }
}
/* ============================ Rentals – Weddings Section ============================ */
/* Accent Panel */
 .rentals-weddings::before {
     content: "";
     position: absolute;
     top: 50%;
     right: 0;
     width: 45%;
     height: 50%;
     background-color: var(--color-accent);
     opacity: 0.08;
     transform: translateY(-50%);
     border-top-left-radius: 80px;
     border-bottom-left-radius: 80px;
     z-index: 0;
}
 .rentals-weddings {
     position: relative;
     padding: 6rem 0;
     background-color: var(--color-bg);
     overflow: hidden;
}
 .rentals-weddings .container {
     position: relative;
}
/* Grid */
 .rentals-weddings__grid {
     position: relative;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: var(--space-xl);
     align-items: center;
     z-index: 1;
}
/* Image */
 .rentals-weddings__image img {
     width: 100%;
     height: auto;
     border-radius: 16px;
     box-shadow: var(--shadow-medium);
}
/* Content */
 .rentals-weddings__content {
     max-width: 520px;
}
 .rentals-weddings__title {
     font-family: var(--font-heading);
     font-size: var(--fs-800);
     color: var(--color-accent);
     margin-bottom: var(--space-sm);
}
 .rentals-weddings__text {
     font-size: var(--fs-500);
     line-height: 1.8;
     color: var(--color-text);
     margin-bottom: var(--space-lg);
}
/* CTA Button */
 .rentals-weddings__button {
     display: inline-block;
     background-color: var(--color-accent);
     color: #fff;
     text-decoration: none;
     padding: 0.85rem 2.5rem;
     border-radius: 999px;
     font-weight: 600;
     letter-spacing: 0.02em;
     transition: background-color 0.3s ease, transform 0.2s ease;
}
 .rentals-weddings__button:hover {
     background-color: var(--color-accent-dark);
     transform: translateY(-2px);
}
/* ============================ Responsive Adjustments ============================ */
 @media (max-width: 900px) {
     .rentals-weddings__grid {
         grid-template-columns: 1fr;
         text-align: center;
    }
     .rentals-weddings__content {
         max-width: 100%;
    }
     .rentals-weddings__image {
         order: -1;
    }
}
 @media (max-width: 768px) {
     .rentals-weddings {
         padding: 4.5rem 0;
    }
     .rentals-weddings__title {
         font-size: var(--fs-700);
    }
    /* Mobile Accent Adjustment */
     .rentals-weddings::before {
         top: auto;
         bottom: -3rem;
         left: 50%;
         width: 85%;
         height: 40%;
         transform: translateX(-50%);
         border-radius: 18px;
    }
}
/* ============================ Rentals – Wedding Gallery ============================ */
 .rentals-wedding-gallery {
     padding: 6rem 0;
     background-color: var(--color-background-secondary);
}
 .wedding-gallery-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
     gap: 1.5rem;
     margin-top: 3rem;
}
/* Gallery Item */
 .wedding-gallery-item {
     position: relative;
     overflow: hidden;
     border-radius: 14px;
     box-shadow: var(--shadow-soft);
}
 .wedding-gallery-item img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     aspect-ratio: 3 / 4;
     transition: transform 0.6s ease;
}
 .wedding-gallery-item:hover img {
     transform: scale(1.05);
}
/* Optional Caption */
 .wedding-gallery-item figcaption {
     position: absolute;
     inset: auto 0 0 0;
     background: linear-gradient(to top, rgba(0,0,0,0.6), transparent);
     color: #fff;
     padding: 1rem;
     font-size: 0.9rem;
     opacity: 0;
     transition: opacity 0.3s ease;
}
 .wedding-gallery-item:hover figcaption {
     opacity: 1;
}
/* Responsive */
 @media (max-width: 768px) {
     .rentals-wedding-gallery {
         padding: 4.5rem 0;
    }
     .wedding-gallery-grid {
         gap: 1.25rem;
    }
}
/* ========================= Rentals FAQ Section ========================= */
 .rentals-faq {
     padding: 80px 0;
     background-color: #f7f7f7;
}
 .rentals-faq .section-title {
     text-align: center;
     font-size: 2rem;
     margin-bottom: 40px;
     color: #333;
}
 .rentals-faq .faq-list {
     max-width: 900px;
     margin: 0 auto;
}
 .rentals-faq .faq-item {
     border-bottom: 1px solid #ddd;
     padding: 15px 0;
}
 .rentals-faq .faq-question {
     width: 100%;
     text-align: left;
     font-weight: 600;
     font-size: 1.1rem;
     background: none;
     border: none;
     outline: none;
     cursor: pointer;
     color: #2c2c2c;
     display: flex;
     justify-content: space-between;
     align-items: center;
}
 .rentals-faq .faq-question::after {
     content: '+';
     font-size: 1.2rem;
     transition: transform 0.3s ease;
}
 .rentals-faq .faq-item.active .faq-question::after {
     transform: rotate(45deg);
}
 .rentals-faq .faq-answer {
     max-height: 0;
     overflow: hidden;
     transition: max-height 0.4s ease, padding 0.4s ease;
     padding: 0 1rem;
    /* horizontal padding always */
}
 .rentals-faq .faq-item.active .faq-answer {
     max-height: 1000px;
    /* large enough to fit content */
     padding: 10px 1rem;
    /* restore vertical padding */
}
/* ========================= Wines Hero Section (Home Page Hero Styles) ========================= */
 .wines-hero-section {
     position: relative;
     width: 100%;
     min-height: 500px;
    /* same as home hero */
     background-size: cover;
     background-position: center;
     background-repeat: no-repeat;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 6rem 0;
    /* match home page */
}
 .wines-hero-overlay {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background-color: rgba(0, 0, 0, 0.35);
    /* same as home overlay */
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 0 2rem;
     box-sizing: border-box;
}
 .hero-content {
     text-align: center;
     color: #fff;
     max-width: 1200px;
    /* same as home content width */
     margin: 0 auto;
     padding: 0 1rem;
     z-index: 2;
}
 .winepage-text-heading {
     background: var(--color-bg);
     border-top: 1px solid var(--color-border);
     border-bottom: 1px solid var(--color-border);
     padding: var(--space-xl) 0;
}
 .winepage-text-heading h2 {
     font-family: var(--font-heading);
     font-size: var(--fs-800);
     color: var(--color-accent);
     margin: 0 auto;
     margin-bottom: var(--space-xs);
     text-align: center;
}
 .wines-hero-title {
     font-family: var(--font-heading);
     font-size: 3rem;
    /* match home page */
     font-weight: 700;
     margin-bottom: 1rem;
     line-height: 1.2;
     color: var(--color-bg);
}
 .wines-hero-subtitle {
     font-size: 1.25rem;
    /* same as home subtitle */
     font-weight: 400;
     margin-bottom: 2rem;
     color: #f7f7f7;
     line-height: 1.5;
}
 .wines-hero-cta-button {
     display: inline-block;
     padding: 0.85rem 2rem;
    /* home button padding */
     background-color: var(--color-accent);
     color: #fff;
     text-decoration: none;
     border-radius: 999px;
     font-weight: 600;
     font-size: 1rem;
     transition: background-color 0.25s ease, transform 0.2s ease;
}
 .wines-hero-cta-button:hover {
     background-color: #b75c3f;
    /* same hover as home */
     transform: translateY(-2px);
}
/* Responsive Adjustments */
 @media (max-width: 1024px) {
     .wines-hero-section {
         padding: 5rem 0;
    }
     .wines-hero-title {
         font-size: 2.5rem;
    }
     .wines-hero-subtitle {
         font-size: 1.1rem;
    }
}
 @media (max-width: 768px) {
     .wines-hero-section {
         min-height: 350px;
         padding: 3.5rem 0;
    }
     .wines-hero-title {
         font-size: 2rem;
    }
     .wines-hero-subtitle {
         font-size: 0.95rem;
    }
     .wines-hero-cta-button {
         padding: 0.7rem 1.5rem;
         font-size: 0.9rem;
    }
}
/* ========================= End Wines Hero Section ========================= */
/* ========================= Wine Slider Section ========================= */
 .wine-slider-section {
     padding: 4rem 0;
     overflow: hidden;
}
/* Swiper Base */
 .wine-slider.swiper {
     width: 100%;
     position: relative;
     padding-top: 25px;
     padding-bottom: 25px;
}
 .wine-slider .swiper-wrapper {
     display: flex;
     align-items: flex-start;
     justify-content: flex-start;
}
/* Base Slide State */
 .swiper-slide.wine-slide {
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: flex-start;
     height: auto;
    /* allow height to grow based on content */
     width: 280px;
    /* base width */
     opacity: 0.6;
     transform: scale(0.9);
     transition: transform 0.4s ease, opacity 0.4s ease;
     text-align: center;
     box-sizing: border-box;
     padding: 1rem 0;
}
/* Center / Active Slide */
 .swiper-slide.wine-slide.swiper-slide-active {
     opacity: 1;
     transform: scale(1.1);
     z-index: 3;
}
/* Neighbor Slides */
 .swiper-slide-prev.wine-slide, .swiper-slide-next.wine-slide {
     opacity: 0.7;
     transform: scale(0.95);
     z-index: 2;
}
/* Hover Effects */
 .swiper-slide.wine-slide:hover {
     opacity: 0.85;
     transform: scale(1.05);
}
/* Image Styling */
 .wine-slide-image {
     margin-bottom: 1rem;
     width: 100%;
     display: flex;
     justify-content: center;
}
 .wine-slide-image img {
     max-height: 350px;
     width: auto;
     display: block;
     object-fit: contain;
     border-radius: 12px;
     box-shadow: var(--shadow-soft);
     pointer-events: none;
}
/* Text Styling */
 .wine-slide-title {
     font-family: var(--font-heading);
     font-size: 1.3rem;
     color: var(--color-accent);
     margin-bottom: 0.25rem;
}
 .wine-slide-subtitle {
     font-size: 1rem;
     color: var(--color-muted);
     margin-bottom: 0.75rem;
     display: block;
    /* ensure visibility */
}
/* Button Styling */
 .wine-slide-button {
     display: inline-block;
     padding: 0.5rem 1rem;
     background-color: var(--color-accent);
     color: #fff;
     font-size: 0.95rem;
     font-weight: 600;
     border-radius: 999px;
     text-decoration: none;
     transition: background-color 0.25s ease;
}
 .wine-slide-button:hover {
     background-color: #b75c3f;
    /* slightly darker accent for hover */
}
/* Swiper Navigation Arrows */
 .swiper-button-next, .swiper-button-prev {
     color: var(--color-accent) !important;
     fill: var(--color-accent) !important;
     top: 50%;
     transform: translateY(-50%);
     width: 2.5rem;
     height: 2.5rem;
     opacity: 0.85;
     transition: opacity 0.25s ease, color 0.25s ease, fill 0.25s ease;
     z-index: 10;
}
 .swiper-button-next:hover, .swiper-button-prev:hover {
     opacity: 1;
     color: var(--color-accent) !important;
     fill: var(--color-accent) !important;
}
/* Center Slides: allow partially visible neighbors */
 .swiper {
     padding-left: 10%;
     padding-right: 10%;
}
/* ========================= Responsive Adjustments ========================= */
 @media (max-width: 1024px) {
     .swiper-slide.wine-slide {
         width: 220px;
    }
     .wine-slide-image img {
         max-height: 280px;
    }
     .wine-slide-title {
         font-size: 1.1rem;
    }
     .wine-slide-subtitle {
         font-size: 0.95rem;
    }
}
 @media (max-width: 768px) {
     .wine-slider-section {
         padding: 3rem 0;
    }
     .swiper-slide.wine-slide {
         width: 180px;
    }
     .wine-slide-image img {
         max-height: 220px;
    }
     .wine-slide-title {
         font-size: 1rem;
    }
     .wine-slide-subtitle {
         font-size: 0.85rem;
    }
     .wine-slide-button {
         font-size: 0.85rem;
         padding: 0.4rem 0.8rem;
    }
     .swiper {
         padding-left: 5%;
         padding-right: 5%;
    }
}
/* ========================= End Wine Slider Section ========================= */
/* ========================= Wine Categories Section ========================= */
 .wine-categories-section {
     padding: 5rem 0;
     background-color: #faf8f6;
    /* subtle neutral backdrop */
     display: none;
}
/* Section Header */
 .wine-categories-header {
     text-align: center;
     max-width: 800px;
     margin: 0 auto 3.5rem;
}
 .wine-categories-title {
     font-family: var(--font-heading);
     font-size: 2.5rem;
     color: var(--color-accent);
     margin-bottom: 0.75rem;
}
 .wine-categories-description {
     font-size: 1.1rem;
     color: var(--color-muted);
     line-height: 1.6;
}
/* Grid Layout */
 .wine-categories-grid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 2.5rem;
}
/* Category Card */
 .wine-category-card {
     background-color: #fff;
     border-radius: 14px;
     overflow: hidden;
     box-shadow: var(--shadow-soft);
     display: flex;
     flex-direction: column;
     height: 100%;
     transition: transform 0.3s ease, box-shadow 0.3s ease;
}
 .wine-category-card:hover {
     transform: translateY(-6px);
     box-shadow: var(--shadow-medium);
}
/* Image */
 .wine-category-image {
     width: 100%;
     height: 260px;
     overflow: hidden;
}
 .wine-category-image img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     display: block;
}
/* Content */
 .wine-category-content {
     padding: 1.75rem;
     text-align: center;
     display: flex;
     flex-direction: column;
     flex-grow: 1;
}
 .wine-category-title {
     font-family: var(--font-heading);
     font-size: 1.4rem;
     color: var(--color-accent);
     margin-bottom: 0.5rem;
}
 .wine-category-description {
     font-size: 1rem;
     color: var(--color-muted);
     line-height: 1.6;
     margin-bottom: 1.5rem;
}
/* Button */
 .wine-category-button {
     margin-top: auto;
     align-self: center;
     display: inline-block;
     padding: 0.6rem 1.5rem;
     background-color: var(--color-accent);
     color: #fff;
     font-size: 0.95rem;
     font-weight: 600;
     border-radius: 999px;
     text-decoration: none;
     transition: background-color 0.25s ease, transform 0.2s ease;
}
 .wine-category-button:hover {
     background-color: #b75c3f;
     transform: translateY(-2px);
}
/* ========================= Responsive Adjustments ========================= */
 @media (max-width: 1024px) {
     .wine-categories-grid {
         grid-template-columns: repeat(2, 1fr);
    }
     .wine-categories-title {
         font-size: 2.1rem;
    }
}
 @media (max-width: 768px) {
     .wine-categories-section {
         padding: 4rem 0;
    }
     .wine-categories-grid {
         grid-template-columns: 1fr;
         gap: 2rem;
    }
     .wine-category-image {
         height: 220px;
    }
     .wine-categories-title {
         font-size: 1.9rem;
    }
     .wine-categories-description {
         font-size: 1rem;
    }
}
/* ========================= End Wine Categories Section ========================= */
/* ========================= Visit / Tasting Room Section ========================= */
 .visit-section {
     position: relative;
     padding: 6rem 0;
     background-color: #f6f2ef;
     overflow: hidden;
}
/* Accent panel */
 .visit-section::before {
     content: "";
     position: absolute;
     top: 50%;
     right: 0;
     width: 55%;
     height: 70%;
     background-color: var(--color-accent);
     opacity: 0.08;
    /* subtle but visible */
     transform: translateY(-50%);
     border-top-left-radius: 80px;
     border-bottom-left-radius: 80px;
     z-index: 0;
}
 .visit-section-inner {
     position: relative;
     z-index: 1;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 4rem;
     align-items: center;
}
/* Image */
 .visit-image img {
     width: 100%;
     height: auto;
     border-radius: 18px;
     box-shadow: 0 20px 40px rgba(0,0,0,0.12);
}
/* Content panel */
 .visit-tasting-room-content {
     background-color: #ffffff;
     padding: 3rem;
     border-radius: 20px;
     box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}
/* Heading */
 .visit-section-heading {
     font-family: var(--font-heading);
     font-size: 2.3rem;
     margin-bottom: 1.25rem;
}
/* Text */
 .visit-description {
     font-size: 1.05rem;
     line-height: 1.7;
     margin-bottom: 2rem;
}
/* CTA */
 .visit-cta-button {
     display: inline-block;
     padding: 0.8rem 2rem;
     background-color: var(--color-accent);
     color: #fff;
     font-weight: 600;
     border-radius: 8px;
     text-decoration: none;
     transition: transform 0.2s ease, background-color 0.25s ease;
}
 .visit-cta-button:hover {
     background-color: #b75c3f;
     transform: translateY(-2px);
}
/* Responsive */
 @media (max-width: 900px) {
     .visit-section {
         padding: 4.5rem 0;
    }
     .visit-section::before {
         width: 100%;
         height: 45%;
         top: auto;
         bottom: 0;
         transform: none;
         border-radius: 0;
    }
     .visit-section-inner {
         grid-template-columns: 1fr;
    }
     .visit-content {
         padding: 2.25rem;
    }
}
/* ========================= End Visit Section ========================= */
/* ============================ Contact Page Styles ============================ */
/* ---------- Hero Section ---------- */
 .contact-hero {
     position: relative;
     height: 65vh;
     background-size: cover;
     background-position: center;
     display: flex;
     align-items: center;
     justify-content: center;
     text-align: center;
     color: #fff;
}
 .contact-hero__overlay {
     position: absolute;
     inset: 0;
     background: rgba(0, 0, 0, 0.45);
}
 .contact-hero__content {
     position: relative;
     z-index: 1;
     max-width: 900px;
     padding: 0 1.5rem;
}
 .contact-hero__title {
     font-family: var(--font-heading);
     font-size: 3rem;
     margin-bottom: 0.75rem;
     color: var(--color-bg);
}
 .contact-hero__subtitle {
     font-size: 1.25rem;
     opacity: 0.95;
     color: var(--color-bg);
}
/* ---------- Intro Section ---------- */
 .contact-intro {
     padding: 5rem 0 3rem;
     text-align: center;
}
 .contact-intro .section-title {
     font-family: var(--font-heading);
     font-size: var(--fs-800);
     color: var(--color-accent);
     margin-bottom: var(--space-sm);
}
 .contact-intro .section-text {
     max-width: 700px;
     margin: 0 auto;
     font-size: var(--fs-500);
     line-height: 1.7;
     color: var(--color-text);
}
/* ---------- Contact Main Section ---------- */
 .contact-main {
     padding: 4rem 0 6rem;
}
/* ✅ FIXED GRID SELECTOR */
 .contact-main__grid {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: var(--space-xl);
     align-items: flex-start;
}
/* ---------- Contact Info ---------- */
 .contact-info {
     background: #fff;
     padding: 3rem;
     border-radius: 12px;
     box-shadow: var(--shadow-soft);
}
 .contact-info h3 {
     font-family: var(--font-heading);
     font-size: var(--fs-600);
     margin-bottom: 1.25rem;
     color: var(--color-accent);
}
 .contact-info p {
     margin-bottom: 1rem;
     line-height: 1.6;
     color: var(--color-text);
}
 .contact-info a {
     color: var(--color-accent);
     text-decoration: none;
     font-weight: 500;
}
 .contact-info a:hover {
     text-decoration: underline;
}
/* ---------- Contact Form ---------- */
 .contact-form {
     background: #fff;
     padding: 3rem;
     border-radius: 12px;
     box-shadow: var(--shadow-soft);
}
/* WPForms Cleanup */
 .contact-form .wpforms-container {
     margin: 0;
}
 .contact-form .wpforms-title {
     display: none;
}
 .contact-form input, .contact-form textarea {
     border-radius: 6px;
}
/* ---------- Map Section ---------- */
 .contact-map {
     padding: 0;
}
 .contact-map iframe {
     width: 100%;
     height: 450px;
     border: none;
     display: block;
}
/* ---------- CTA Section ---------- */
 .contact-cta {
     padding: 5rem 0;
     background-color: var(--color-bg-alt);
     text-align: center;
}
 .contact-cta__title {
     font-family: var(--font-heading);
     font-size: var(--fs-700);
     color: var(--color-accent);
     margin-bottom: var(--space-sm);
}
 .contact-cta__text {
     max-width: 700px;
     margin: 0 auto var(--space-lg);
     font-size: var(--fs-500);
     color: var(--color-text);
}
 .contact-cta__buttons {
     display: flex;
     justify-content: center;
     gap: 1rem;
     flex-wrap: wrap;
}
 .contact-cta__buttons a {
     background: var(--color-accent);
     color: #fff;
     padding: 0.75rem 2rem;
     border-radius: 999px;
     font-weight: 600;
     text-decoration: none;
     transition: background 0.3s ease, transform 0.2s ease;
}
 .contact-cta__buttons a:hover {
     background: var(--color-accent-dark);
     transform: translateY(-2px);
}
/* ---------- Responsive ---------- */
 @media (max-width: 1024px) {
     .contact-main__grid {
         gap: 2rem;
    }
}
 @media (max-width: 768px) {
     .contact-hero {
         height: 50vh;
    }
     .contact-hero__title {
         font-size: 2.25rem;
    }
     .contact-main__grid {
         grid-template-columns: 1fr;
    }
     .contact-info, .contact-form {
         padding: 2.25rem;
    }
}
/* ============================ End Contact Page Styles ============================ */
/* ========================= RESPONSIVE ADJUSTMENTS (CONSOLIDATED) ========================= */
/* 1024px breakpoint */
 @media (max-width:1024px) {
    /* Hero */
     .hero-title {
         font-size: 2.5rem;
    }
     .hero-subtitle {
         font-size: 1.125rem;
    }
    /* About section */
     .about-title {
         font-size: 2.25rem;
    }
     .about-subtitle {
         font-size: 1.125rem;
    }
     .about-text {
         font-size: 1rem;
    }
     .about-container {
         gap: 3rem;
    }
    /* Visit section */
     .visit-title {
         font-size: 2.25rem;
    }
     .visit-subtitle {
         font-size: 1.125rem;
    }
     .visit-text {
         font-size: 1rem;
    }
     .visit-info-blocks {
         gap: 1.5rem;
    }
     .visit-info-item {
         max-width: 220px;
         padding: 1.5rem 1rem;
    }
     .visit-info-icon {
         width: 50px;
         height: 50px;
    }
     .visit-map iframe {
         height: 320px;
    }
    /* Wine cards */
     .grid--3 {
         grid-template-columns: repeat(2,1fr);
         gap: var(--space-md);
    }
     .wine-card__image img {
         height: 340px;
    }
}
/* 900px breakpoint */
 @media (max-width:900px) {
     .about-container {
         flex-direction: column;
         text-align: center;
    }
     .about-content {
         order: 1;
    }
     .about-image-wrapper {
         order: 2;
    }
     .about-image {
         max-width: 90%;
    }
}
/* 768px breakpoint */
 @media (max-width:768px) {
    /* Hero */
     .hero-section {
         height: 70vh;
    }
     .hero-title {
         font-size: 2rem;
    }
     .hero-subtitle {
         font-size: 1rem;
    }
    /* About section */
     .about-container {
         gap: 2.5rem;
    }
     .about-title {
         font-size: 2rem;
    }
     .about-subtitle {
         font-size: 1rem;
    }
     .about-text {
         font-size: .95rem;
    }
    /* Visit section */
     .visit-section {
         padding: 4rem 0;
    }
     .visit-title {
         font-size: 2rem;
    }
     .visit-subtitle {
         font-size: 1rem;
    }
     .visit-text {
         font-size: .95rem;
    }
     .visit-info-blocks {
         display: flex;
         flex-direction: column;
         gap: 1.5rem;
    }
     .visit-info-item {
         max-width: 100%;
         padding: 1.5rem;
    }
     .visit-map iframe {
         height: 280px;
    }
    /* Navigation */
     .menu-toggle {
         display: block;
    }
     .main-navigation ul, .menu-list, #primary-menu, .menu {
         flex-direction: column;
         gap: var(--space-md);
         width: 100%;
         padding: var(--space-sm) var(--space-md);
    }
     .main-navigation a, .menu-list a {
         width: 100%;
         text-align: center;
         padding: .6rem 0;
         font-size: 1.05rem;
    }
    /* Wine cards */
     .grid--3 {
         grid-template-columns: 1fr;
         gap: var(--space-md);
    }
     .wine-card__image img {
         height: 300px;
    }
}
/* 600px breakpoint */
 @media (max-width:600px) {
     .about-section {
         padding: 4rem 0;
    }
     .about-title {
         font-size: 2rem;
    }
     .about-subtitle {
         font-size: 1rem;
    }
     .about-text {
         font-size: .95rem;
    }
}
 