
:root{
  --bg:#121515;
  --bg-soft:#171b1a;
  --panel:#1c2120;
  --line:#3e4542;
  --text:#eef0eb;
  --muted:#c4c9c3;
  --soft:#aab0aa;
  --accent:#d0b186;
  --accent-2:#e7d5bb;
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:18px;line-height:1.7}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:22px min(4vw,42px);background:rgba(18,21,21,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.06)}
.wordmark{display:flex;flex-direction:column;gap:2px;min-width:0}
.wordmark span{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.8rem,2.7vw,2.6rem);line-height:1;color:var(--accent-2);letter-spacing:.02em}
.wordmark small{font-size:.86rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
nav a{font-size:1rem;color:var(--muted)}
nav a:hover{color:var(--text)}
.nav-cta{padding:10px 16px;border:1px solid var(--accent);border-radius:999px;color:var(--accent-2)!important}
.mobile-menu{display:none;background:none;border:1px solid var(--line);color:var(--text);width:46px;height:46px;border-radius:999px;font-size:1.25rem;cursor:pointer}
main{overflow:hidden}
.hero,.section,.feature-photo,.image-duo,.fullbleed,footer{padding-left:min(4vw,42px);padding-right:min(4vw,42px)}
.hero{max-width:var(--max);margin:0 auto;padding-top:48px;padding-bottom:44px;display:grid;grid-template-columns:minmax(320px,1fr) minmax(320px,1.15fr);align-items:center;gap:48px}
.eyebrow,.section-kicker{font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.section-kicker.center{justify-content:center}
.line{display:inline-block;width:48px;height:1px;background:var(--accent)}
.hero h1,.section h2,.fullbleed h2,.booking h2,.contact h2,.occasions h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:.98;letter-spacing:-.02em;margin:.28em 0}
.hero h1{font-size:clamp(3.5rem,8vw,6.6rem);max-width:8.5ch}
.hero h1 em,.section h2 em,.fullbleed h2 em,.contact h2 em,.booking h2 em,.occasions h2 em{font-style:italic;color:var(--accent-2)}
.hero-lead{font-size:1.28rem;line-height:1.5;color:var(--text);max-width:34rem;margin:.4rem 0 .35rem}
.hero-desc{font-size:1.06rem;color:var(--muted);max-width:38rem;margin:0 0 1.25rem}
.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:1.1rem}
.primary-button,.secondary-button{display:inline-flex;align-items:center;gap:14px;padding:16px 22px;border-radius:999px;font-weight:600;font-size:.97rem;transition:.25s ease}
.primary-button{background:var(--accent);color:#161819}
.primary-button:hover{transform:translateY(-1px);filter:brightness(1.02)}
.secondary-button{border:1px solid var(--accent);color:var(--accent-2)}
.secondary-button:hover{background:#252928}
.text-link{display:inline-flex;align-items:center;gap:10px;color:var(--accent-2);font-weight:600}
.hero-points{display:flex;gap:14px 18px;flex-wrap:wrap;padding:0;margin:0;list-style:none;color:var(--soft);font-size:.98rem}
.hero-points li{padding-left:18px;position:relative}.hero-points li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.hero-visual{background:linear-gradient(180deg,#1b1f1f,#151817);border:1px solid rgba(255,255,255,.07);padding:18px;border-radius:28px;box-shadow:0 28px 80px rgba(0,0,0,.25)}
.hero-visual img{border-radius:18px;width:100%;aspect-ratio:11/6;object-fit:cover}
.section{max-width:var(--max);margin:0 auto;padding-top:86px;padding-bottom:86px}
.intro-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:start}
.section h2,.occasions h2,.booking h2,.contact h2{font-size:clamp(2.6rem,5vw,4.8rem)}
.intro p,.detail-title p,.occasions-lead,.booking-head p,.contact p,.rate-main p,.rate-disclaimer{font-size:1.06rem;color:var(--muted)}
.feature-photo{max-width:var(--max);margin:0 auto;padding-top:6px;padding-bottom:6px;position:relative}
.feature-photo img{width:100%;border-radius:24px;aspect-ratio:16/9;object-fit:cover}
.photo-label{position:absolute;left:58px;bottom:28px;background:rgba(18,21,21,.8);border:1px solid rgba(255,255,255,.1);padding:10px 14px;border-radius:999px;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-2)}
.details{display:grid;grid-template-columns:1fr;gap:30px}
.spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.spec-grid div{padding:22px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.02)}
.spec-grid span{display:block;color:var(--soft);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:7px}
.spec-grid strong{font-size:1.06rem;font-weight:600}
.image-duo{max-width:var(--max);margin:0 auto;padding-top:6px;padding-bottom:6px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.image-duo div{position:relative}
.image-duo img{width:100%;border-radius:24px;aspect-ratio:4/3;object-fit:cover}
.image-duo span{position:absolute;left:18px;bottom:18px;padding:8px 12px;border-radius:999px;background:rgba(18,21,21,.78);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-2)}
.occasions{text-align:center}
.occasions-lead{max-width:44rem;margin:0 auto 2rem}
.occasion-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px;text-align:left}
.occasion-grid article{border:1px solid var(--line);border-radius:20px;padding:22px;background:rgba(255,255,255,.02)}
.occasion-grid span{display:block;color:var(--accent);font-size:.85rem;letter-spacing:.15em;margin-bottom:8px}
.occasion-grid h3{font-size:1.32rem;font-weight:600;margin:.1rem 0 .55rem}
.occasion-grid p{font-size:1rem;color:var(--muted);margin:0}
.fullbleed{max-width:var(--max);margin:0 auto;padding-top:10px;padding-bottom:10px;position:relative}
.fullbleed img{width:100%;border-radius:28px;aspect-ratio:16/7;object-fit:cover}
.fullbleed-copy{position:absolute;left:60px;bottom:44px;background:rgba(18,21,21,.7);padding:22px 24px;border-radius:22px;max-width:min(90%,440px)}
.fullbleed-copy span{display:block;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.gallery-heading{display:grid;grid-template-columns:.9fr 1.1fr;gap:36px;align-items:end;margin-bottom:24px}
.gallery-grid.expansive{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.gallery-thumb{background:#1a1e1d;border:1px solid rgba(255,255,255,.06);padding:0;cursor:zoom-in;overflow:hidden;border-radius:18px}
.gallery-thumb img{width:100%;height:250px;object-fit:cover;transition:transform .35s ease}
.gallery-thumb:hover img,.gallery-thumb:focus-visible img{transform:scale(1.04)}
.photo-dialog{background:#171a1a;color:#eee;border:1px solid #6f6659;box-shadow:0 30px 100px #000b;max-width:94vw;max-height:95vh;padding:24px 22px 12px}
.photo-dialog::backdrop{background:rgba(0,0,0,.9)}
.photo-dialog img{object-fit:contain;max-height:72vh;max-width:85vw;width:auto;margin:0 auto}
.photo-dialog p{color:var(--accent);font-size:.86rem;letter-spacing:.09em;text-align:center;margin:12px auto}
.dialog-close{position:absolute;right:7px;top:4px;background:transparent;border:0;color:white;font-size:32px;cursor:pointer}
.dialog-nav{display:flex;justify-content:space-between;gap:15px}.dialog-nav button{background:#292c2b;border:1px solid #777;color:#f2f2f2;padding:10px 18px;cursor:pointer;border-radius:999px}
.booking{background:var(--bg-soft);border-radius:34px;margin-top:74px;margin-bottom:74px;padding-top:64px;padding-bottom:64px}
.booking-head{display:grid;grid-template-columns:1.1fr .9fr;align-items:start;gap:8%}
.rates{display:grid;grid-template-columns:1.1fr .9fr;border:1px solid #484842;border-radius:24px;overflow:hidden;margin-top:42px}
.rate-main{padding:42px 46px;border-right:1px solid #484842}.rate-main>span,.rate-side>div>span{color:var(--accent);font-size:.8rem;letter-spacing:.17em}
.rate-amount{font-family:Georgia,"Times New Roman",serif;font-size:clamp(4.6rem,8vw,7rem);line-height:1;margin:15px 0}.rate-amount span{font-size:.4em}
.rate-side{display:grid;grid-template-rows:repeat(3,1fr)}.rate-side>div{padding:28px 40px;display:flex;flex-direction:column;gap:8px}.rate-side>div:not(:last-child){border-bottom:1px solid #484842}.rate-side strong{font-family:Georgia,"Times New Roman",serif;font-size:2.35rem;font-weight:400}.rate-side small{color:var(--soft);font-size:.95rem}
.contact{text-align:center}
.contact-actions{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;margin-top:22px}.contact-direct{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;font-size:1.06rem!important;margin-top:24px!important}.contact-direct a:hover{color:var(--accent)}
.small-note{color:var(--soft)!important;font-size:.98rem!important}
footer{max-width:var(--max);margin:0 auto;padding-top:14px;padding-bottom:34px;display:flex;justify-content:space-between;gap:22px;align-items:flex-end;color:var(--soft);font-size:.98rem}
.footer-mark span{font-size:clamp(1.5rem,2.2vw,2rem)}
@media (max-width: 1100px){
  .hero,.intro-grid,.gallery-heading,.booking-head{grid-template-columns:1fr}
  .occasion-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid.expansive{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width: 860px){
  .mobile-menu{display:inline-flex;align-items:center;justify-content:center}
  nav{display:none;position:absolute;left:16px;right:16px;top:84px;padding:18px;border-radius:18px;background:#171b1a;border:1px solid rgba(255,255,255,.07);flex-direction:column;align-items:flex-start;gap:14px}
  nav.open{display:flex}
  .hero{padding-top:34px;gap:30px}
  .spec-grid,.image-duo,.rates{grid-template-columns:1fr}
  .rate-main{border-right:0;border-bottom:1px solid #484842}
  .gallery-grid.expansive{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-thumb img{height:210px}
  footer{flex-direction:column;align-items:flex-start}
}
@media (max-width: 560px){
  body{font-size:17px}
  .hero,.section,.feature-photo,.image-duo,.fullbleed,footer{padding-left:16px;padding-right:16px}
  .site-header{padding:18px 16px}
  .wordmark span{font-size:2rem}
  .hero h1{font-size:3.25rem}
  .hero-points{display:grid}
  .spec-grid,.occasion-grid,.gallery-grid.expansive{grid-template-columns:1fr}
  .fullbleed-copy{left:28px;right:28px;bottom:24px;max-width:none}
  .photo-label{left:28px;bottom:20px}
  .contact-direct{gap:8px;font-size:.98rem!important}
}

/* Version 4: editorial full-bleed hero, copy never intersects the car */
.hero{
  position:relative;isolation:isolate;display:flex;align-items:center;
  max-width:none;width:100%;min-height:clamp(690px,calc(100svh - 96px),890px);
  padding:100px max(5.8vw,32px) 106px;overflow:hidden;margin:0;
  background:#101412;
}
.hero-photo,.hero-shade{position:absolute;inset:0;pointer-events:none}
.hero-photo{
  z-index:-2;background-image:url('images/hero.jpg');background-size:cover;
  background-position:58% 53%;background-repeat:no-repeat;
}
.hero-shade{
  z-index:-1;
  background:linear-gradient(90deg,rgba(11,15,14,.96) 0%,rgba(11,15,14,.9) 23%,rgba(11,15,14,.75) 35%,rgba(11,15,14,.34) 49%,rgba(11,15,14,0) 66%),
  linear-gradient(0deg,rgba(9,13,12,.56),transparent 25%);
}
.hero-copy{position:relative;width:min(100%,620px);max-width:620px;z-index:1}
.hero h1{font-size:clamp(4.9rem,7.1vw,8.5rem);max-width:none;line-height:.87;letter-spacing:-.045em;margin:30px 0 32px}
.hero h1 em{white-space:nowrap}
.hero .eyebrow{font-size:.88rem;max-width:560px}
.hero-lead{font-size:clamp(1.2rem,1.7vw,1.48rem);line-height:1.5;max-width:490px;color:#f8f5ee;margin:0 0 14px}
.hero-desc{max-width:460px;font-size:1.07rem;line-height:1.75;margin:0 0 30px;color:#e4e5de}
.hero-bottom{position:absolute;left:max(5.8vw,32px);right:max(5.8vw,32px);bottom:32px;display:flex;justify-content:space-between;gap:18px;align-items:center;letter-spacing:.16em;font-size:.8rem;color:#e1d2bd}
@media(max-width:1000px){
  .hero{min-height:780px;padding:96px 5vw 110px}
  .hero-photo{background-position:64% center}
  .hero-shade{background:linear-gradient(90deg,rgba(11,15,14,.96),rgba(11,15,14,.8) 43%,rgba(11,15,14,.12) 85%),linear-gradient(0deg,rgba(10,14,13,.6),transparent 30%)}
  .hero-copy{width:min(100%,570px)}
  .hero h1{font-size:clamp(4.5rem,9vw,7.4rem)}
}
@media(max-width:650px){
  .hero{min-height:790px;align-items:flex-start;padding:74px 20px 95px}
  .hero-photo{background-size:auto 76%;background-position:68% bottom;background-color:#101412}
  .hero-shade{background:linear-gradient(180deg,#101412 0%,rgba(16,20,18,.97) 24%,rgba(16,20,18,.82) 40%,rgba(16,20,18,.18) 71%,rgba(16,20,18,.12) 100%)}
  .hero-copy{max-width:100%}
  .hero h1{font-size:clamp(3.2rem,12vw,5.5rem);margin:25px 0 25px}
  .hero h1 em{white-space:normal}
  .hero-lead{font-size:1.17rem;max-width:340px}
  .hero-desc{font-size:1rem;max-width:330px}
  .hero-bottom{left:20px;right:20px;bottom:23px;font-size:.68rem}
  .hero-bottom span:last-child{display:none}
}

/* Version 7: two vertically stacked packages, separate extra-hour/km rules */
.occasion-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.rates.rates-stacked{display:flex;flex-direction:column;gap:0;margin-top:42px;border-radius:24px;overflow:hidden}
.rate-option{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:38px 48px;min-height:164px}
.rate-option+.rate-option{border-top:1px solid #484842}
.rate-kicker,.rate-extras>div>span{color:var(--accent);font-size:.86rem;letter-spacing:.15em}
.rate-option .rate-amount{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.6rem,5.6vw,5.8rem);line-height:1.08;margin:0;white-space:nowrap}
.rate-included{color:var(--muted);font-size:1rem;margin:12px 0 0}
.rate-extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.rate-extras>div{display:flex;flex-direction:column;gap:8px;padding:26px 34px;border:1px solid #484842;border-radius:20px}
.rate-extras strong{font-family:Georgia,"Times New Roman",serif;font-size:2.4rem;line-height:1.1;font-weight:400}
.rate-extras small{font-size:.98rem;color:var(--muted)}
.rate-custom{font-size:1.08rem;line-height:1.8;color:var(--text);margin:26px 0 0}
.rate-custom a{color:var(--accent-2);font-weight:650;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1100px){.occasion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.rate-option{padding:26px 24px;gap:20px;min-height:135px}.rate-option .rate-amount{font-size:clamp(2.7rem,9vw,4.6rem)}.rate-extras{grid-template-columns:1fr}.rate-extras>div{padding:24px}.rate-included{font-size:.95rem}.rate-custom{font-size:1rem}}
@media(max-width:560px){.occasion-grid{grid-template-columns:1fr}.rate-option{flex-direction:column;align-items:flex-start}.rate-option .rate-amount{align-self:flex-end}}

/* Version 8 — discreet moving-image showcase directly beneath the unchanged hero. */
.film-section{max-width:1280px;padding:78px min(4vw,42px) 84px;margin:0 auto;display:grid;grid-template-columns:1fr minmax(310px,480px);gap:clamp(42px,8vw,120px);align-items:center}
.film-copy h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(3.1rem,5.5vw,5.4rem);line-height:1;letter-spacing:-.02em;margin:24px 0}
.film-copy h2 em{font-style:italic;color:var(--accent-2)}
.film-copy>p{max-width:560px;color:var(--muted);font-size:1.1rem;line-height:1.85}
.film-copy .film-footnote{font-size:.9rem;color:var(--soft);margin:22px 0}
.film-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:28px}
.film-arrow,.film-pause{background:transparent;color:var(--accent-2);border:1px solid #6b655a;border-radius:999px;cursor:pointer;padding:10px 15px;font-size:1rem}
.film-arrow:hover,.film-pause:hover{background:#2b2c27}
.film-pause{margin-left:8px;padding:10px 18px;font-size:.9rem}
.film-dots{display:flex;align-items:center;gap:8px;padding:0 6px}
.film-dot{width:11px;height:11px;padding:0;border-radius:50%;border:1px solid #a59c8e;background:transparent;cursor:pointer}
.film-dot.active{background:var(--accent);border-color:var(--accent)}
.film-frame{border:1px solid #4a4b45;border-radius:26px;background:#1c201d;padding:14px;box-shadow:0 24px 80px #0006}
.film-matte{background:#0c100f;border-radius:17px;overflow:hidden;position:relative;aspect-ratio:3/4}
.film-matte video{width:100%;height:100%;object-fit:contain;display:block;background:#0c100f}
.film-caption{display:flex;justify-content:space-between;gap:8px;font-size:.74rem;letter-spacing:.1em;color:var(--accent-2);padding:14px 6px 2px}
@media(max-width:900px){.film-section{grid-template-columns:1fr;gap:34px}.film-frame{max-width:540px;margin:0 auto;width:100%}}
@media(max-width:560px){.film-section{padding:54px 16px}.film-copy h2{font-size:3.2rem}.film-frame{padding:10px}.film-controls{gap:8px}.film-caption{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){.film-dot,.film-arrow,.film-pause{transition:none}}

.hero-still{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;pointer-events:none;opacity:0;transform:scale(1.01);transition:opacity 1.05s ease,transform 5.8s ease}
.hero-still.is-active{opacity:.98;transform:scale(1.065)}
.hero-still-1{object-position:54% center}
.hero-still-2{object-position:48% center}
/* Version 9: cinematic hero montage, with original photo as accessible fallback. */
.hero-photo{z-index:-3}
.hero-motion{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% center;z-index:-2;pointer-events:none;opacity:.98;transition:opacity .95s ease}
.hero-motion-toggle{margin-left:auto;border:1px solid rgba(231,213,187,.55);background:rgba(12,15,14,.56);color:#eee0ca;border-radius:999px;padding:8px 13px;font:inherit;font-size:.8rem;letter-spacing:.02em;cursor:pointer;backdrop-filter:blur(5px)}
.hero-motion-toggle:hover{background:rgba(12,15,14,.8)}
.hero-motion.is-hidden{opacity:0}
@media(max-width:1000px){.hero-motion{object-position:64% center}}
@media(max-width:650px){.hero-motion,.hero-still{display:none}.hero-motion-toggle{display:none}}
@media(prefers-reduced-motion:reduce){.hero-motion,.hero-still{display:none}.hero-motion-toggle{display:none}}
