/*
Theme Name: Heritage Hunt Events
Theme URI: https://www.heritagehunt.net/events
Author: Orphmedia
Author URI: https://orphmedia.com
Description: Events & weddings theme for Heritage Hunt Golf & Country Club, a full-service venue in Gainesville, Virginia. Showcases the Great Oak Ballroom, Marsh Mansion, Blue Ridge Room and Mountain View Room with an inquiry form and gallery. Adapted from the Sands Point Preserve events theme.
Version: 1.9.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: heritage-hunt
*/

/* ==========================================================================
   Heritage Hunt — Brand tokens
   Deep forest green, soft gold, cream — classic Virginia country club
   ========================================================================== */
:root {
    --hh-green:       #3a7457;  /* lightened forest — header, headings, accents */
    --hh-green-dark:  #34614a;  /* softened deep green — footer, gradients (no more near-black) */
    --hh-green-light: #6fa587;  /* soft sage accent */
    --hh-sage:        #eef4ef;  /* very light green tint for sections */
    --hh-gold:        #cdca8a;
    --hh-gold-dark:   #a89f5f;
    --hh-cream:       #f8f4ee;
    --hh-ink:         #2b2b28;
    --hh-gray:        #5f5f5b;
    --hh-gray-light:  #eaeaea;
    --hh-white:       #ffffff;

    --font-serif: "Cormorant Garamond", "Playfair Display", Georgia, serif;
    --font-display: "Playfair Display", Georgia, serif;
    --font-sans: "Montserrat", "Helvetica Neue", Arial, sans-serif;

    --maxw: 1240px;
    --header-h: 92px;
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--font-sans);
    font-weight: 300;
    color: var(--hh-ink);
    background: var(--hh-cream);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--hh-green); text-decoration: none; transition: color .25s ease; }
a:hover { color: var(--hh-gold-dark); }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 500; color: var(--hh-green); line-height: 1.2; margin: 0 0 .5em; }
p { margin: 0 0 1.2em; }

.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.eyebrow {
    font-family: var(--font-sans);
    text-transform: uppercase;
    letter-spacing: .28em;
    font-size: .72rem;
    font-weight: 500;
    color: var(--hh-gold-dark);
    margin-bottom: 1rem;
}
.script-accent {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 1.6rem;
    color: var(--hh-gold-dark);
    font-weight: 400;
    display: block;
    margin-bottom: .3rem;
}

/* Buttons */
.btn {
    display: inline-block;
    font-family: var(--font-sans);
    text-transform: uppercase;
    letter-spacing: .18em;
    font-size: .78rem;
    font-weight: 500;
    padding: 15px 38px;
    border: 1px solid var(--hh-green);
    background: var(--hh-green);
    color: var(--hh-white);
    cursor: pointer;
    transition: all .25s ease;
}
.btn:hover { background: var(--hh-green-dark); color: var(--hh-gold); border-color: var(--hh-green-dark); }
.btn--gold { background: var(--hh-gold); border-color: var(--hh-gold); color: var(--hh-green); }
.btn--gold:hover { background: var(--hh-gold-dark); border-color: var(--hh-gold-dark); color: var(--hh-green-dark); }
.btn--outline { background: transparent; color: var(--hh-green); }
.btn--outline:hover { background: var(--hh-green); color: var(--hh-white); }
.btn--outline-light { background: transparent; color: var(--hh-white); border-color: rgba(255,255,255,.7); }
.btn--outline-light:hover { background: var(--hh-white); color: var(--hh-green); }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
    position: sticky;
    top: 0;
    z-index: 200;
    /* Solid classic header — cream bar, gold accent line */
    background: var(--hh-cream);
    color: var(--hh-green);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 0 32px;
    min-height: var(--header-h);
    border-bottom: 2px solid var(--hh-gold);
    box-shadow: 0 2px 16px rgba(20,40,30,.08);
}
.site-logo { display: flex; align-items: center; gap: 14px; }
.site-logo img { height: 58px; width: auto; }
.site-logo .brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.site-logo .brand-text strong { font-family: var(--font-display); font-size: 1.05rem; color: var(--hh-green); letter-spacing: .02em; }
.site-logo .brand-text span { font-size: .62rem; letter-spacing: .22em; text-transform: uppercase; color: var(--hh-gold-dark); }

.primary-nav ul { list-style: none; display: flex; gap: 30px; margin: 0; padding: 0; }
.primary-nav a {
    color: var(--hh-green);
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: .78rem;
    font-weight: 500;
    padding: 8px 0;
    position: relative;
}
.primary-nav a::after {
    content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 2px;
    background: var(--hh-gold-dark); transition: width .28s ease;
}
.primary-nav a:hover { color: var(--hh-gold-dark); }
.primary-nav a:hover::after { width: 100%; }

.header-right { display: flex; align-items: center; gap: 18px; }
.header-social { display: flex; gap: 12px; }
.header-social a { color: var(--hh-green); display: flex; }
.header-social a:hover { color: var(--hh-gold-dark); }

.mobile-menu-toggle {
    display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 6px;
}
.mobile-menu-toggle span { width: 26px; height: 2px; background: var(--hh-green); transition: all .3s ease; }

.mobile-menu {
    position: fixed; inset: 0; z-index: 300; background: var(--hh-green-dark);
    transform: translateX(100%); transition: transform .35s ease; padding: 90px 32px 40px;
}
.mobile-menu.open { transform: translateX(0); }
.mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.mobile-menu a {
    display: block; color: var(--hh-white); font-family: var(--font-display); font-size: 1.5rem;
    padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.12); letter-spacing: .04em;
}
.mobile-menu a:hover { color: var(--hh-gold); }
.mobile-menu-close {
    position: absolute; top: 26px; right: 30px; background: none; border: 0; color: var(--hh-gold);
    font-size: 2rem; cursor: pointer; line-height: 1;
}

/* ==========================================================================
   Hero / Page banner
   ========================================================================== */
.page-hero {
    position: relative;
    min-height: 62vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--hh-white);
    background: linear-gradient(rgba(52,97,74,.34), rgba(52,97,74,.5)),
                url("images/events-banner.jpg") center/cover no-repeat;
}
.page-hero .hero-inner { max-width: 760px; padding: 40px 24px; }
.page-hero h1 {
    color: var(--hh-white);
    font-size: clamp(2.6rem, 6vw, 4.6rem);
    font-weight: 500;
    letter-spacing: .02em;
    margin-bottom: .25em;
}
.page-hero .hero-sub {
    text-transform: uppercase; letter-spacing: .34em; font-size: .82rem; color: var(--hh-gold);
}

/* Sub navigation pills (Weddings / Corporate / Special Events...) */
.events-subnav {
    background: var(--hh-green-dark);
    border-top: 1px solid rgba(205,202,138,.25);
}
.events-subnav ul {
    list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 40px;
    max-width: var(--maxw); margin: 0 auto; padding: 18px 24px;
}
.events-subnav a {
    color: var(--hh-cream); text-transform: uppercase; letter-spacing: .18em; font-size: .74rem;
}
.events-subnav a:hover { color: var(--hh-gold); }

/* ==========================================================================
   Sections
   ========================================================================== */
section { padding: 88px 0; }
.section-tight { padding: 60px 0; }
.section--green { background: var(--hh-green); color: var(--hh-cream); }
.section--green h1, .section--green h2, .section--green h3 { color: var(--hh-white); }
.section--green .eyebrow { color: var(--hh-gold); }
.section--cream { background: var(--hh-cream); }
.section--white { background: var(--hh-white); }
.section--sage { background: var(--hh-sage); }

.section-head { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.section-head h2 { font-size: clamp(2rem, 4vw, 3rem); }
.section-head p { color: var(--hh-gray); font-size: 1.08rem; }
.section--green .section-head p { color: rgba(248,244,238,.85); }

/* Intro / Celebrate With Us */
.intro-grid {
    display: grid; grid-template-columns: 1.1fr .9fr; gap: 64px; align-items: center;
}
.intro-copy p { font-size: 1.06rem; }
.intro-media { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.intro-media img { width: 100%; height: 260px; object-fit: cover; border-radius: 2px; box-shadow: 0 14px 40px rgba(12,61,32,.22); }
.intro-media img:first-child { margin-top: 34px; }

/* As Seen In / awards */
.as-seen { text-align: center; background: var(--hh-white); padding: 54px 0; }
.as-seen .eyebrow { margin-bottom: 26px; }
.as-seen .logos { display: flex; justify-content: center; align-items: center; gap: 60px; flex-wrap: wrap; }
.as-seen .logos img { height: 54px; width: auto; opacity: .85; filter: saturate(.2) contrast(1.05); }

/* Offering cards (Weddings / Celebrations / Corporate / Bereavement) */
.offer-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 34px; }
.offer-card {
    background: var(--hh-white); border: 1px solid var(--hh-gray-light);
    padding: 42px 40px; text-align: center; transition: transform .3s ease, box-shadow .3s ease;
}
.offer-card:hover { transform: translateY(-6px); box-shadow: 0 22px 50px rgba(12,61,32,.14); }
.offer-card .offer-icon { height: 62px; margin: 0 auto 20px; }
.offer-card h3 { font-size: 1.55rem; }
.offer-card p { color: var(--hh-gray); }
.offer-card .btn { margin-top: 10px; }

/* Venue spaces */
.venues-list { display: flex; flex-direction: column; gap: 70px; }
.venue-row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.venue-row:nth-child(even) .venue-media { order: 2; }
.venue-media { position: relative; }
.venue-media img { width: 100%; height: 440px; object-fit: cover; border-radius: 2px; box-shadow: 0 18px 46px rgba(12,61,32,.22); }
.venue-capacity {
    position: absolute; bottom: 22px; left: 22px;
    background: var(--hh-green); color: var(--hh-gold);
    padding: 10px 20px; font-family: var(--font-sans); text-transform: uppercase;
    letter-spacing: .14em; font-size: .74rem; font-weight: 500;
}
.venue-capacity strong { display: block; font-family: var(--font-display); font-size: 1.7rem; color: var(--hh-white); letter-spacing: 0; }
.venue-copy .eyebrow { margin-bottom: .6rem; }
.venue-copy h3 { font-size: 2.1rem; margin-bottom: .5rem; }
.venue-copy p { color: var(--hh-gray); font-size: 1.05rem; }

/* Gallery */
.gallery-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 220px; gap: 14px;
}
.gallery-grid a { overflow: hidden; border-radius: 2px; }
.gallery-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gallery-grid a:hover img { transform: scale(1.08); }
.gallery-grid .tall { grid-row: span 2; }

/* Contact / Inquiry */
.inquiry-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: start; }
.inquiry-info h2 { font-size: clamp(2rem, 4vw, 2.8rem); }
.inquiry-info .contact-line { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; font-size: 1.05rem; }
.inquiry-info .contact-line svg { flex: none; color: var(--hh-gold); }
.inquiry-info .contact-line a { color: var(--hh-cream); }
.inquiry-info .contact-line a:hover { color: var(--hh-gold); }

.inquiry-form { background: var(--hh-white); padding: 44px; box-shadow: 0 20px 60px rgba(0,0,0,.18); border-top: 4px solid var(--hh-gold); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-field { margin-bottom: 18px; }
.form-field label { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; color: var(--hh-green); margin-bottom: 7px; font-weight: 500; }
.form-field input, .form-field select, .form-field textarea {
    width: 100%; padding: 12px 14px; border: 1px solid var(--hh-gray-light); background: var(--hh-cream);
    font-family: var(--font-sans); font-size: .95rem; color: var(--hh-ink); border-radius: 2px;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {
    outline: none; border-color: var(--hh-gold-dark); background: var(--hh-white);
}
.form-field textarea { min-height: 110px; resize: vertical; }
.inquiry-form .btn { width: 100%; margin-top: 8px; }
.form-note { font-size: .8rem; color: var(--hh-gray); margin-top: 14px; text-align: center; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--hh-green-dark); color: var(--hh-cream); padding: 0; }
.footer-main { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 48px; max-width: var(--maxw); margin: 0 auto; padding: 64px 24px 56px; }
.footer-brand img { height: 78px; margin-bottom: 20px; }
.footer-brand p { color: rgba(248,244,238,.7); font-size: .95rem; }
.footer-col h4 { color: var(--hh-gold); text-transform: uppercase; letter-spacing: .16em; font-size: .8rem; font-family: var(--font-sans); margin-bottom: 18px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; }
.footer-col li { margin-bottom: 10px; }
.footer-col a { color: rgba(248,244,238,.82); font-size: .95rem; }
.footer-col a:hover { color: var(--hh-gold); }
.footer-contact-line { display: flex; gap: 10px; margin-bottom: 12px; color: rgba(248,244,238,.82); font-size: .95rem; }
.footer-contact-line svg { flex: none; color: var(--hh-gold); margin-top: 3px; }
.footer-social-row { display: flex; gap: 14px; margin-top: 18px; }
.footer-social-row a { color: var(--hh-gold); }
.footer-social-row a:hover { color: var(--hh-white); }
.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.12); text-align: center; padding: 22px 24px;
    font-size: .82rem; color: rgba(248,244,238,.6);
}
.footer-bottom a { color: var(--hh-gold); }

/* ==========================================================================
   Hero photo carousel
   ========================================================================== */
.hero-carousel { position: relative; overflow: hidden; background: var(--hh-green-dark); }
.hero-slides { position: absolute; inset: 0; z-index: 0; }
.hero-carousel .hero-slide {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: center;
    opacity: 0; transition: opacity 1.2s ease;
}
.hero-carousel .hero-slide.is-active { opacity: 1; }

/* Legibility overlay: darker behind the centred text, lighter at the edges so the
   photos still read as light/airy. Combined with text-shadow this keeps AA contrast. */
.hero-overlay {
    position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background:
        radial-gradient(ellipse 70% 60% at 50% 50%, rgba(18,38,28,.62) 0%, rgba(18,38,28,.30) 60%, rgba(18,38,28,.12) 100%),
        linear-gradient(180deg, rgba(24,46,34,.30) 0%, rgba(18,38,28,.42) 100%);
}
.hero-carousel .hero-inner { position: relative; z-index: 2; }
.hero-carousel h1 { text-shadow: 0 2px 18px rgba(8,20,14,.55); }
.hero-sub { text-shadow: 0 1px 10px rgba(8,20,14,.6); }
.hero-lead {
    color: #fff; font-size: 1.12rem; max-width: 560px;
    margin: 0 auto 1.8rem; line-height: 1.6; text-shadow: 0 1px 12px rgba(8,20,14,.6);
}
.hero-ctas { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* Prev / next arrows */
.hero-arrow {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 4;
    width: 52px; height: 52px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: rgba(18,38,28,.4); color: #fff; border: 1.5px solid rgba(255,255,255,.6);
    cursor: pointer; transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.hero-arrow:hover { background: var(--hh-gold); color: var(--hh-green-dark); border-color: var(--hh-gold); }
.hero-prev { left: 22px; }
.hero-next { right: 22px; }

.hero-dots { position: absolute; z-index: 4; bottom: 26px; left: 0; right: 0; display: flex; justify-content: center; gap: 12px; }
.hero-dot {
    width: 12px; height: 12px; border-radius: 50%; padding: 0; cursor: pointer;
    background: rgba(255,255,255,.35); border: 1.5px solid rgba(255,255,255,.85); transition: all .3s ease;
}
.hero-dot.is-active { background: var(--hh-gold); border-color: var(--hh-gold); transform: scale(1.15); }

/* Visible keyboard focus for all carousel controls (ADA 2.4.7) */
.hero-arrow:focus-visible,
.hero-dot:focus-visible {
    outline: 3px solid #fff; outline-offset: 3px;
    box-shadow: 0 0 0 5px rgba(18,38,28,.55);
}

/* Screen-reader-only utility */
.sr-only {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ==========================================================================
   Stats / trust bar
   ========================================================================== */
.trust-bar {
    display: grid; grid-template-columns: repeat(5, 1fr);
    background: var(--hh-green); color: var(--hh-cream);
    max-width: var(--maxw); margin: -46px auto 0; position: relative; z-index: 5;
    box-shadow: 0 22px 50px rgba(4,18,10,.35);
}
.trust-item {
    text-align: center; padding: 30px 18px;
    border-right: 1px solid rgba(205,202,138,.22);
}
.trust-item:last-child { border-right: 0; }
.trust-number {
    display: block; font-family: var(--font-display); font-size: 2.3rem; line-height: 1;
    color: var(--hh-gold); margin-bottom: 8px; letter-spacing: .01em;
}
.trust-label { display: block; text-transform: uppercase; letter-spacing: .16em; font-size: .68rem; color: rgba(248,244,238,.85); }

/* ==========================================================================
   Explore Our Other Premier Venues (footer marquee)
   ========================================================================== */
.other-venues { text-align: center; padding: 62px 24px 58px; background: var(--hh-white); }
.other-venues h3 {
    color: var(--hh-green); text-transform: uppercase; letter-spacing: .24em;
    font-family: var(--font-sans); font-size: .82rem; font-weight: 500; margin-bottom: 40px;
}
.venues-carousel-wrapper { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.venues-carousel { display: flex; align-items: center; gap: 80px; width: max-content; animation: hh-marquee 34s linear infinite; }
.venues-carousel:hover { animation-play-state: paused; }
.venue-logo { flex: none; display: flex; align-items: center; justify-content: center; height: 90px; }
.venue-logo img {
    max-height: 90px; width: auto; max-width: 200px; object-fit: contain;
    filter: grayscale(1) opacity(.55); transition: filter .35s ease, transform .35s ease;
}
.venue-logo:hover img { filter: grayscale(0) opacity(1); transform: scale(1.05); }
@keyframes hh-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ==========================================================================
   Interior pages
   ========================================================================== */
.interior-hero {
    position: relative;
    min-height: 46vh;
    display: flex; align-items: center; justify-content: center; text-align: center;
    color: var(--hh-white);
    background-size: cover; background-position: center;
}
.interior-hero-inner { max-width: 760px; padding: 40px 24px; }
.interior-hero h1 {
    color: var(--hh-white); font-size: clamp(2.2rem, 5vw, 3.8rem);
    text-shadow: 0 2px 16px rgba(8,20,14,.5); margin-bottom: .2em;
}
.interior-hero .hero-sub {
    text-transform: uppercase; letter-spacing: .3em; font-size: .78rem; color: var(--hh-gold);
    text-shadow: 0 1px 10px rgba(8,20,14,.55);
}

.page-intro { max-width: 800px; margin: 0 auto; text-align: center; }
.page-intro p { font-size: 1.08rem; color: var(--hh-gray); }
.section--green .page-intro p { color: rgba(248,244,238,.88); }

/* Form status alerts */
.form-alert { padding: 14px; text-align: center; margin-bottom: 20px; border-radius: 2px; }
.form-alert--ok { color: var(--hh-green); background: var(--hh-gold); }
.form-alert--err { color: #fff; background: #b3261e; }

/* Simple lightbox for the gallery */
.hh-lightbox {
    position: fixed; inset: 0; z-index: 500; display: none;
    align-items: center; justify-content: center; padding: 30px;
    background: rgba(8,20,14,.9);
}
.hh-lightbox.open { display: flex; }
.hh-lightbox img { max-width: 92vw; max-height: 88vh; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.hh-lightbox-close {
    position: absolute; top: 20px; right: 26px; background: none; border: 0;
    color: #fff; font-size: 2.4rem; line-height: 1; cursor: pointer;
}
.hh-lightbox-nav {
    position: absolute; top: 50%; transform: translateY(-50%);
    background: rgba(255,255,255,.12); border: 1.5px solid rgba(255,255,255,.5); color: #fff;
    width: 52px; height: 52px; border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
}
.hh-lightbox-prev { left: 22px; } .hh-lightbox-next { right: 22px; }
.hh-lightbox-nav:hover { background: var(--hh-gold); color: var(--hh-green-dark); border-color: var(--hh-gold); }

/* Gallery filter buttons */
.gallery-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 40px; }
.gallery-filter {
    background: transparent; border: 1px solid var(--hh-gray-light); color: var(--hh-green);
    padding: 9px 22px; font-family: var(--font-sans); font-size: .74rem; text-transform: uppercase;
    letter-spacing: .14em; cursor: pointer; transition: all .25s ease; border-radius: 2px;
}
.gallery-filter:hover { border-color: var(--hh-gold-dark); }
.gallery-filter.is-active { background: var(--hh-green); color: var(--hh-white); border-color: var(--hh-green); }

.gallery-page-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.gallery-page-grid figure { margin: 0; overflow: hidden; border-radius: 2px; cursor: pointer; position: relative; aspect-ratio: 4 / 3; }
.gallery-page-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gallery-page-grid figure:hover img { transform: scale(1.07); }
.gallery-page-grid figure.is-hidden { display: none; }

/* ==========================================================================
   Testimonials
   ========================================================================== */
.testimonials .section-head { margin-bottom: 40px; }
.testimonial-carousel { max-width: 820px; margin: 0 auto; position: relative; }
.testimonial-track { position: relative; min-height: 240px; }
.testimonial-card {
    position: absolute; inset: 0; margin: 0; text-align: center;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transition: opacity .6s ease; padding: 0 10px;
}
.testimonial-card.is-active { opacity: 1; visibility: visible; position: relative; }
.testimonial-stars { color: var(--hh-gold-dark); font-size: 1.2rem; letter-spacing: .18em; margin-bottom: 22px; }
.testimonial-card blockquote {
    font-family: var(--font-serif); font-size: 1.55rem; line-height: 1.5; font-style: italic;
    color: var(--hh-green); margin: 0 0 26px; max-width: 720px;
}
.testimonial-card figcaption { display: flex; flex-direction: column; gap: 4px; }
.testimonial-author { font-family: var(--font-sans); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; font-size: .82rem; color: var(--hh-ink); }
.testimonial-meta { font-size: .82rem; color: var(--hh-gray); letter-spacing: .04em; }

.testimonial-nav { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: 36px; }
.testimonial-prev, .testimonial-next {
    width: 44px; height: 44px; border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    background: transparent; color: var(--hh-green); border: 1.5px solid var(--hh-gold-dark);
    transition: background .25s ease, color .25s ease;
}
.testimonial-prev:hover, .testimonial-next:hover { background: var(--hh-green); color: var(--hh-white); border-color: var(--hh-green); }
.testimonial-dots { display: flex; gap: 10px; }
.testimonial-dot {
    width: 11px; height: 11px; border-radius: 50%; padding: 0; cursor: pointer;
    background: transparent; border: 1.5px solid var(--hh-gold-dark); transition: all .3s ease;
}
.testimonial-dot.is-active { background: var(--hh-gold-dark); transform: scale(1.15); }
.testimonial-prev:focus-visible, .testimonial-next:focus-visible, .testimonial-dot:focus-visible {
    outline: 3px solid var(--hh-gold-dark); outline-offset: 3px;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
    .intro-grid, .venue-row, .inquiry-grid { grid-template-columns: 1fr; gap: 40px; }
    .venue-row:nth-child(even) .venue-media { order: 0; }
    .offer-grid { grid-template-columns: 1fr 1fr; }
    .footer-main { grid-template-columns: 1fr 1fr; }
    .trust-bar { grid-template-columns: repeat(3, 1fr); margin-top: 0; }
    .trust-item:nth-child(3) { border-right: 0; }
    .trust-item:nth-child(n+4) { border-top: 1px solid rgba(205,202,138,.22); }
}
/* Tablet & below: collapse desktop nav to hamburger, hide inline CTA (lives in drawer) */
@media (max-width: 900px) {
    .primary-nav, .header-social { display: none; }
    .header-right .btn--gold { display: none; }
    .mobile-menu-toggle { display: flex; }
}

@media (max-width: 768px) {
    :root { --header-h: 74px; }
    .container { padding: 0 20px; }

    /* Header — compact, no collisions, 44px tap target on the toggle */
    .site-header { padding: 0 16px; gap: 12px; }
    .site-logo { gap: 10px; }
    .site-logo img { height: 44px; }
    .site-logo .brand-text strong { font-size: .95rem; }
    .site-logo .brand-text span { font-size: .54rem; letter-spacing: .16em; }
    .mobile-menu-toggle { padding: 11px 8px; }
    .mobile-menu a { font-size: 1.35rem; padding: 12px 0; }

    /* Hero — let content set the height so nothing gets clipped on small screens */
    .page-hero { min-height: 88vh; }
    .hero-carousel .hero-inner { padding: 30px 20px; }
    .hero-lead { font-size: 1rem; }
    .hero-ctas { flex-direction: column; align-items: stretch; }
    .hero-ctas .btn { width: 100%; }
    .hero-arrow { width: 42px; height: 42px; }
    .hero-prev { left: 10px; } .hero-next { right: 10px; }

    section { padding: 56px 0; }
    .section-head { margin-bottom: 40px; }

    .offer-grid, .form-row, .gallery-grid { grid-template-columns: 1fr; }
    .offer-card { padding: 34px 26px; }
    .gallery-grid { grid-auto-rows: 220px; }
    .gallery-grid .tall { grid-row: span 1; }

    .intro-media img { height: 220px; }
    .intro-media img:first-child { margin-top: 0; }
    .venue-media img { height: 300px; }

    .inquiry-form { padding: 28px 20px; }

    .footer-main { grid-template-columns: 1fr; gap: 34px; text-align: left; }
    .other-venues { padding: 48px 20px 40px; }
    .as-seen .logos { gap: 36px; }

    .trust-bar { grid-template-columns: 1fr 1fr; }
    .trust-item { padding: 22px 12px; border-right: 1px solid rgba(205,202,138,.22); }
    .trust-item:nth-child(2n) { border-right: 0; }
    .trust-item:nth-child(n+3) { border-top: 1px solid rgba(205,202,138,.22); }
    .trust-number { font-size: 1.8rem; }

    .venues-carousel { gap: 46px; }
    .venue-logo, .venue-logo img { height: 62px; max-height: 62px; }
}

/* Small phones */
@media (max-width: 480px) {
    .site-logo .brand-text { display: none; } /* logo mark only — avoids any crowding */
    .site-logo img { height: 46px; }
    .page-hero h1 { font-size: 2.4rem; }
    .hero-sub { font-size: .68rem; letter-spacing: .22em; }
    .trust-bar { grid-template-columns: 1fr; }
    .trust-item { border-right: 0; border-top: 1px solid rgba(205,202,138,.22); }
    .trust-item:first-child { border-top: 0; }
    .gallery-grid { grid-auto-rows: 200px; }
    .venue-media img { height: 240px; }
}

/* ==========================================================================
   Accessibility — focus visibility & reduced motion
   ========================================================================== */
a:focus-visible,
.btn:focus-visible,
.form-field input:focus-visible,
.form-field select:focus-visible,
.form-field textarea:focus-visible,
.mobile-menu-toggle:focus-visible,
.mobile-menu-close:focus-visible {
    outline: 3px solid var(--hh-gold-dark);
    outline-offset: 2px;
}
.site-header a:focus-visible,
.site-footer a:focus-visible { outline-color: var(--hh-gold); }

/* Skip link for keyboard users */
.skip-link {
    position: absolute; left: -9999px; top: 0; z-index: 999;
    background: var(--hh-gold); color: var(--hh-green-dark);
    padding: 12px 20px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; font-size: .8rem;
}
.skip-link:focus { left: 12px; top: 12px; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .hero-carousel .hero-slide { transition: opacity .01ms; }
    .venues-carousel { animation: none; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
