:root{
  --jade-900:#101e18;
  --jade-800:#182c22;
  --jade-700:#1d3127;
  --jade-650:#1e3328;
  --jade-600:#243d31;
  --gold:#c9a45a;
  --gold-soft:#ba944e;
  --gold-bright:#ffd071;
  --cream:#f0ebe0;
  --body-1:#e3e3e3;
  --body-2:#d3d3d3;
  --body-3:#cfd3d1;
  --body-4:#bdbfbe;
  --muted:#9eaaa2;
  --line:#3a5f4a;
  --serif:'Cormorant Garamond',serif;
  --sans:'Plus Jakarta Sans',sans-serif;
  /* Max content width: constrains padding so content never exceeds 1400px */
  --h-pad: max(clamp(24px, 5vw, 72px), calc(50% - 700px));
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  font-family:var(--sans);
  background:var(--jade-700);
  color:var(--cream);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  padding-top:69px;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* =============================================
   ANIMATIONS
   ============================================= */

/* Text gleam — traces along letterforms using background-clip:text + background-position */
@-webkit-keyframes text-gleam{
  from{background-position:100% center;}
  to  {background-position:0% center;}
}
@keyframes text-gleam{
  from{background-position:100% center;}
  to  {background-position:0% center;}
}


/* Sparkle — tiny particles that pop at gleam exit (75% of shimmer cycle ≈ t=2.7s) */
@-webkit-keyframes sparkle-pop{
  0%,74%{opacity:0;-webkit-transform:scale(0) translateY(0);transform:scale(0) translateY(0);}
  78%   {opacity:.8;-webkit-transform:scale(1.3) translateY(-2px);transform:scale(1.3) translateY(-2px);}
  84%   {opacity:.35;-webkit-transform:scale(.7) translateY(-4px);transform:scale(.7) translateY(-4px);}
  89%,100%{opacity:0;-webkit-transform:scale(0) translateY(-5px);transform:scale(0) translateY(-5px);}
}
@keyframes sparkle-pop{
  0%,74%{opacity:0;transform:scale(0) translateY(0);}
  78%   {opacity:.8;transform:scale(1.3) translateY(-2px);}
  84%   {opacity:.35;transform:scale(.7) translateY(-4px);}
  89%,100%{opacity:0;transform:scale(0) translateY(-5px);}
}

/* Glass sweep — compositor-only (transform + opacity) */
@-webkit-keyframes glass-sweep{
  0%  {-webkit-transform:translateX(-160%) skewX(-15deg);transform:translateX(-160%) skewX(-15deg);opacity:0;}
  5%  {opacity:1;}
  95% {opacity:1;}
  100%{-webkit-transform:translateX(260%) skewX(-15deg);transform:translateX(260%) skewX(-15deg);opacity:0;}
}
@keyframes glass-sweep{
  0%  {-webkit-transform:translateX(-160%) skewX(-15deg);transform:translateX(-160%) skewX(-15deg);opacity:0;}
  5%  {opacity:1;}
  95% {opacity:1;}
  100%{-webkit-transform:translateX(260%) skewX(-15deg);transform:translateX(260%) skewX(-15deg);opacity:0;}
}

/* Booking pulse — box-shadow only (no transform, avoids reflow) */
@-webkit-keyframes border-pulse{
  0%,100%{box-shadow:0 8px 32px rgba(0,0,0,0.25),inset 0 1px 0 rgba(255,255,255,0.07),0 0 0 0 rgba(201,164,90,0);}
  50%    {box-shadow:0 8px 32px rgba(0,0,0,0.25),inset 0 1px 0 rgba(255,255,255,0.07),0 0 0 6px rgba(201,164,90,0.12);}
}
@keyframes border-pulse{
  0%,100%{box-shadow:0 8px 32px rgba(0,0,0,0.25),inset 0 1px 0 rgba(255,255,255,0.07),0 0 0 0 rgba(201,164,90,0);}
  50%    {box-shadow:0 8px 32px rgba(0,0,0,0.25),inset 0 1px 0 rgba(255,255,255,0.07),0 0 0 6px rgba(201,164,90,0.12);}
}
@-webkit-keyframes contact-pulse{
  0%,100%{box-shadow:none;}
  50%    {box-shadow:0 0 0 6px rgba(201,164,90,0.08);}
}
@keyframes contact-pulse{
  0%,100%{box-shadow:none;}
  50%    {box-shadow:0 0 0 6px rgba(201,164,90,0.08);}
}

/* =============================================
   NAV
   ============================================= */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(29,48,39,0.94);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-bottom:2px solid rgba(201,164,90,0.3);
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  will-change:transform;
}
nav{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  -webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;
  padding:18px var(--h-pad);
  max-width:none;
  position:relative;
}
.logo{
  font-family:var(--serif);
  font-size:clamp(20px,2.2vw,27px);
  font-weight:400;color:var(--gold);letter-spacing:0.03em;
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  gap:10px;
}
.logo em{font-style:italic;font-weight:300;}
.logo-icon{height:34px;width:auto;display:block;-webkit-user-select:none;user-select:none;}
.nav-links{
  display:-webkit-box;display:-webkit-flex;display:flex;
  font-size:13px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);
  position:absolute;left:50%;
  -webkit-transform:translateX(-50%);transform:translateX(-50%);
}
.nav-links > * + *{margin-left:40px;}
.nav-links a{padding-bottom:4px;border-bottom:1px solid transparent;-webkit-transition:color .2s,border-color .2s;transition:color .2s,border-color .2s;}
.nav-links a:hover,.nav-links a.active{color:var(--gold);border-color:var(--gold);}
.btn-nav{
  padding:11px 26px;border:1px solid rgba(201,164,90,0.45);
  font-size:12px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--gold);-webkit-transition:background .2s,color .2s;transition:background .2s,color .2s;
  white-space:nowrap;
}
.btn-nav:hover{background:var(--gold);color:var(--jade-800);}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:6px;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--gold);margin:5px 0;}

/* SVG illustration spans hero + about via <main> positioning context */
main{position:relative;}

/* =============================================
   HERO
   ============================================= */
.hero{
  position:relative;overflow:hidden;
  min-height:640px;
  min-height:min(85vh,760px);
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  padding:40px var(--h-pad) 80px;
  background:-webkit-linear-gradient(70deg,var(--jade-700),var(--jade-700),var(--jade-700),var(--jade-600),var(--jade-600));
  background:linear-gradient(20deg,var(--jade-700),var(--jade-700),var(--jade-700),var(--jade-600),var(--jade-600));
}
.hero::before{
  content:"";position:absolute;left:-220px;top:50%;
  -webkit-transform:translateY(-50%);transform:translateY(-50%);
  width:700px;height:700px;border-radius:50%;
  background:-webkit-radial-gradient(circle,rgba(58,95,70,0.45) 0%,transparent 70%);
  background:radial-gradient(circle,rgba(58,95,70,0.45) 0%,transparent 70%);
  pointer-events:none;
}
.hero::after{
  content:"";position:absolute;
  top:0;left:0;right:0;bottom:0;inset:0;
  pointer-events:none;
  background-image:-webkit-radial-gradient(rgba(201,164,90,0.05) 1px,transparent 1px);
  background-image:radial-gradient(rgba(201,164,90,0.05) 1px,transparent 1px);
  background-size:26px 26px;
  opacity:.5;
}
.hero-inner{position:relative;z-index:2;max-width:680px;width:100%;}

/* Decorative SVG — spans hero + top of about; anchored to <main> top (= just below fixed header) */
.hero-svg-deco{
  position:absolute;
  right:0;
  top:0;
  height:calc(min(85vh, 760px) + 80px);
  width:auto;
  z-index:1;
  pointer-events:none;
  -webkit-user-select:none;user-select:none;
  display:block;
}

/* Single eyebrow line — location + inline credential */
.eyebrow{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  -webkit-flex-wrap:wrap;flex-wrap:wrap;
  font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold);
  margin-bottom:24px;
  /* gap fallback */
  margin-left:-8px;
}
.eyebrow > *{margin-left:8px;}
.eyebrow .rule{display:inline-block;width:28px;height:1px;background:var(--gold);-webkit-flex:none;flex:none;}
.eyebrow-cred{opacity:.65;white-space:nowrap;}

h1{
  font-family:var(--serif);
  font-size:clamp(44px,7.5vw,96px);
  font-weight:300;line-height:1.02;letter-spacing:-0.02em;
  color:var(--cream);margin-bottom:28px;
}
h1 em{font-style:italic;color:var(--gold);}
.hero p.lead{
  font-size:17px;font-weight:300;line-height:1.8;
  color:var(--body-2);max-width:440px;margin-bottom:40px;
}
.hero-cta{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  -webkit-flex-wrap:wrap;flex-wrap:wrap;
  margin-left:-20px;
}
.hero-cta > *{margin-left:20px;}
.btn-primary{
  display:inline-block;padding:16px 36px;
  background:var(--gold);color:var(--jade-800);
  font-size:13px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;
  -webkit-transition:background .2s,-webkit-transform .2s;transition:background .2s,transform .2s;
}
.btn-primary:hover{background:var(--gold-bright);-webkit-transform:translateY(-1px);transform:translateY(-1px);}
.link-ghost{
  font-size:15px;letter-spacing:0.08em;color:var(--gold-bright);opacity:.8;
  border-bottom:1px solid rgba(201,164,90,0.4);padding-bottom:3px;
  -webkit-transition:opacity .2s;transition:opacity .2s;
}
.link-ghost:hover{opacity:1;}

/* =============================================
   SECTION LABELS
   ============================================= */
.eyebrow-sm{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  font-size:15px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);
  margin-bottom:20px;margin-left:-12px;
}
.eyebrow-sm > *{margin-left:12px;}
.eyebrow-sm .rule{display:inline-block;width:24px;height:1px;background:var(--gold);}

/* =============================================
   ABOUT
   ============================================= */
.about{
  padding:90px var(--h-pad);
  display:-ms-grid;display:grid;
  grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);
  -webkit-box-align:center;align-items:center;
  background:-webkit-linear-gradient(top,var(--jade-700),var(--jade-700),var(--jade-700),var(--jade-600));
  background:linear-gradient(180deg,var(--jade-700),var(--jade-700),var(--jade-700),var(--jade-600));
}
.about-photo{
  height:clamp(300px,42vw,540px);
  position:relative;
  z-index:2;
  background-image:url('images/Hailey.jpg');
  -webkit-background-size:cover;background-size:cover;
  background-position:center top;
  border-radius:16px;
  border:2px solid rgba(178,100,60,0.5);
  box-shadow:
    0 20px 56px rgba(0,0,0,0.45),
    0 0 0 5px rgba(178,100,60,0.08),
    0 0 0 8px rgba(178,100,60,0.04),
    inset 0 1px 0 rgba(255,210,170,0.12);
  pointer-events:none;
  -webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;
}
/* About text column sits above SVG (z-index:1) in the stacking context */
.about > div:last-child{position:relative;z-index:2;}
.photo-overlay{
  position:absolute;top:0;left:0;right:0;bottom:0;inset:0;
  border-radius:14px;
  background:linear-gradient(180deg,transparent 60%,rgba(16,30,24,0.25) 100%);
  pointer-events:none;
  z-index:2;
  -webkit-user-select:none;user-select:none;
}
h2{
  font-family:var(--serif);
  font-size:clamp(36px,4.5vw,58px);
  font-weight:300;line-height:1.1;
  color:var(--cream);margin-bottom:28px;
}
h2 em{font-style:italic;color:var(--gold);}
.about p{font-size:17px;font-weight:300;line-height:1.9;color:var(--body-4);margin-bottom:20px;}
.rule-solo{width:32px;height:1px;background:var(--gold);margin-top:8px;}

/* =============================================
   SERVICES
   ============================================= */
.services{
  padding:86px var(--h-pad) 72px;
  background:-webkit-linear-gradient(top,var(--jade-600),var(--jade-600),var(--jade-700),var(--jade-800));
  background:linear-gradient(180deg,var(--jade-600),var(--jade-600),var(--jade-700),var(--jade-800));
}
.services-head{text-align:center;margin-bottom:56px;}
.services-head h2{margin-bottom:0;}
.services-grid{
  display:-ms-grid;display:grid;
  grid-template-columns:repeat(6,1fr);gap:16px;
}

/* Service cards — GPU composited layer */
.service-card{
  padding:44px 36px;
  background:rgba(255,255,255,0.08);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.14);
  box-shadow:0 8px 32px rgba(0,0,0,0.22),inset 0 1px 0 rgba(255,255,255,0.08);
  -webkit-transition:background .35s,box-shadow .35s;transition:background .35s,box-shadow .35s;
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;
  position:relative;overflow:hidden;
  -webkit-transform:translateZ(0);transform:translateZ(0);
  will-change:transform;
}
/* Sweep pseudo — stays off-screen until JS adds .sweep-active */
.service-card::after{
  content:"";
  position:absolute;top:-20%;left:0;
  width:50%;height:140%;
  background:-webkit-linear-gradient(285deg,transparent 30%,rgba(255,255,255,0.13) 50%,transparent 70%);
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,0.13) 50%,transparent 70%);
  -webkit-transform:translateX(-160%) skewX(-15deg);transform:translateX(-160%) skewX(-15deg);
  pointer-events:none;opacity:0;
  will-change:transform,opacity;
}
/* JS adds this class to trigger sweep */
.service-card.sweep-active::after{
  -webkit-animation:glass-sweep 1.8s ease-out forwards;
  animation:glass-sweep 1.8s ease-out forwards;
}
.service-card:nth-child(n+3){background:rgba(255,255,255,0.06);}
.service-card:nth-child(1),.service-card:nth-child(2){grid-column:span 3;}
.service-card:nth-child(3),.service-card:nth-child(4),
.service-card:nth-child(5),.service-card:nth-child(6){grid-column:span 3;}

.service-card h3{
  font-family:var(--serif);font-size:30px;font-weight:400;
  color:var(--gold-soft);margin-bottom:12px;line-height:1.25;
}
.service-card p{font-size:15px;font-weight:300;line-height:1.8;color:var(--body-3);margin-bottom:24px;-webkit-box-flex:1;-webkit-flex:1;flex:1;}
.service-rule{width:36px;height:1px;background:var(--gold);margin-bottom:20px;}

/* Price tiers */
.price-tiers{
  display:-webkit-box;display:-webkit-flex;display:flex;
  margin-top:auto;border-top:1px solid rgba(58,95,74,0.5);padding-top:20px;
}
.price-tier{
  -webkit-box-flex:1;-webkit-flex:1;flex:1;
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;
}
.price-tier > * + *{margin-top:4px;}
.price-tier+.price-tier{border-left:1px solid rgba(58,95,74,0.5);padding-left:20px;}
.price-tier .duration{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);}
.price-tier .amount{/* uses .price-shimmer wrapper */}

/* Add-ons */
.price-addon{
  display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  margin-top:auto;padding-top:20px;border-top:1px solid rgba(58,95,74,0.5);
  margin-left:-8px;
}
.price-addon > *{margin-left:8px;}
.price-addon .addon-label{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);line-height:1.4;}

/* Wrapper for position:relative context so sparkle spans can be absolutely placed */
.amount-wrap{position:relative;display:inline-block;}
.sparkle{
  position:absolute;
  border-radius:50%;
  background:var(--gold-bright);
  pointer-events:none;
  opacity:0;
  -webkit-transform:scale(0);transform:scale(0);
  will-change:transform,opacity;
}

/* Price text gleam — background-clip:text traces the gleam along letterforms */
.amount,.addon-amount{
  display:inline-block;
  color:var(--gold); /* fallback if background-clip:text unsupported */
  font-family:var(--serif);
  font-size:26px;
  font-weight:400;
  /* Gleam gradient: gold base with narrow bright highlight + trailing spark */
  background:-webkit-linear-gradient(
    left,
    var(--gold-soft) 0%,
    var(--gold-soft) 35%,
    rgba(255,232,120,0) 43%,
    rgba(255,244,160,0.85) 48%,
    rgba(255,255,230,1) 50%,
    rgba(255,250,190,0.7) 52%,
    rgba(255,232,120,0) 57%,
    var(--gold-soft) 65%,
    var(--gold-soft) 100%
  );
  background:linear-gradient(
    90deg,
    var(--gold-soft) 0%,
    var(--gold-soft) 35%,
    rgba(255,232,120,0) 43%,
    rgba(255,244,160,0.85) 48%,
    rgba(255,255,230,1) 50%,
    rgba(255,250,190,0.7) 52%,
    rgba(255,232,120,0) 57%,
    var(--gold-soft) 65%,
    var(--gold-soft) 100%
  );
  background-size:300% 100%;
  background-position:100% center; /* gleam starts off-screen left */
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  -webkit-animation:text-gleam 3.6s linear infinite;
  animation:text-gleam 3.6s linear infinite;
}

/* =============================================
   QUOTE
   ============================================= */
.quote{
  background:var(--jade-800);
  padding:80px var(--h-pad);
  text-align:center;
}
.quote blockquote{
  font-family:var(--serif);
  font-size:clamp(28px,4.5vw,52px);
  font-weight:300;font-style:italic;
  color:var(--cream);line-height:1.35;letter-spacing:-0.01em;
  max-width:900px;margin:0 auto;
}
.quote blockquote span{color:var(--gold);}
.quote-rule{width:48px;height:1px;background:var(--gold);margin:32px auto 0;opacity:.4;}

/* =============================================
   BOOKING
   ============================================= */
.booking{
  padding:90px var(--h-pad);
  display:-ms-grid;display:grid;
  grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px);
  -webkit-box-align:start;align-items:start;
  background:-webkit-linear-gradient(top,var(--jade-800),var(--jade-650),var(--jade-650),var(--jade-650),var(--jade-900));
  background:linear-gradient(180deg,var(--jade-800),var(--jade-650),var(--jade-650),var(--jade-650),var(--jade-900));
}
.booking-tagline{font-size:17px;font-weight:300;line-height:1.85;color:var(--body-1);margin-bottom:36px;}
.booking-tagline span{color:var(--body-4);}

/* Contact rows */
.contact-rows{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;
  border-radius:8px;
  padding:0 4px; /* keeps divider lines inside the pulsing border */
  -webkit-animation:contact-pulse 4s ease-in-out infinite;animation:contact-pulse 4s ease-in-out infinite;
}
.contact-row{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;
  padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,0.07);
  margin-left:-18px;
}
.contact-row > *{margin-left:18px;}
.contact-row:first-child{border-top:1px solid rgba(255,255,255,0.07);}
.contact-icon{font-size:22px;color:var(--gold);opacity:.85;-webkit-flex:none;flex:none;width:32px;text-align:center;margin-top:1px;}
.contact-label{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.contact-value{font-size:16px;font-weight:300;color:var(--body-1);line-height:1.6;}
a.contact-value{border-bottom:1px solid rgba(201,164,90,0.3);color:var(--gold);-webkit-transition:border-color .2s;transition:border-color .2s;}
a.contact-value:hover{border-color:var(--gold);}

/* Right column */
.booking-right{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;
  margin-top:-20px;
}
.booking-right > *{margin-top:20px;}

/* Glass cards */
.glass-card{
  background:rgba(255,255,255,0.06);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(201,164,90,0.25);
  border-radius:12px;
  padding:28px 32px;
  -webkit-transform:translateZ(0);transform:translateZ(0);
  -webkit-animation:border-pulse 4s ease-in-out infinite;animation:border-pulse 4s ease-in-out infinite;
}

.include-title{font-size:13px;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;}
.include-list{list-style:none;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;margin-top:-10px;}
.include-list > *{margin-top:10px;}
.include-list li{font-size:15px;font-weight:300;line-height:1.7;color:var(--body-2);padding-left:18px;position:relative;}
.include-list li::before{content:"—";position:absolute;left:0;color:var(--gold);opacity:.6;}
.include-note{color:var(--muted);font-size:13px;}

.arrival-label{
  font-size:13px;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);
  margin-bottom:12px;
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  margin-left:-8px;
}
.arrival-label > *{margin-left:8px;}
.arrival-icon{font-size:14px;opacity:.7;}
.arrival-body{font-size:15px;font-weight:300;line-height:1.8;color:var(--body-3);}

/* =============================================
   FOOTER
   ============================================= */
footer{
  background:var(--jade-900);
  padding:32px var(--h-pad);
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  -webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;
  margin:-16px 0 0 -16px;
}
footer > *{margin:16px 0 0 16px;}
.footer-logo-block{
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;
  margin-top:-4px;
}
.footer-logo-block > *{margin-top:4px;}
.footer-logo{font-family:var(--serif);font-size:24px;color:var(--gold);letter-spacing:0.03em;}
.footer-logo em{font-style:italic;font-weight:300;}
.footer-lmt{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);opacity:.55;}
.footer-copy{font-size:11px;color:#2e5040;letter-spacing:0.04em;}

/* =============================================
   DESKTOP FONT BUMP (≥1200px)
   ============================================= */
@media (min-width:1200px){
  .about p{font-size:18px;}
  .service-card p{font-size:16px;}
  .service-card h3{font-size:32px;}
  .arrival-body{font-size:16px;}
  .include-list li{font-size:16px;}
  .contact-value{font-size:17px;}
  .booking-tagline{font-size:18px;}
  .hero p.lead{font-size:19px;}
}

/* =============================================
   RESPONSIVE — TABLET (≤900px)
   ============================================= */
@media (max-width:900px){
  .about,.booking{grid-template-columns:1fr;}
  .about-photo{-webkit-order:-1;order:-1;}
  .booking-card{margin-bottom:8px;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .service-card{grid-column:span 1 !important;}
}

/* =============================================
   RESPONSIVE — MOBILE (≤760px)
   ============================================= */
@media (max-width:760px){
  /* Nav */
  .nav-links,.btn-nav{display:none;}
  .nav-toggle{display:block;}
  header.open .nav-links{
    display:-webkit-box;display:-webkit-flex;display:flex;
    -webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;
    position:absolute;top:100%;left:0;right:0;
    background:var(--jade-700);padding:24px var(--h-pad);
    border-bottom:1px solid rgba(201,164,90,0.15);
    margin-left:0;
  }
  header.open .nav-links > * + *{margin-left:0;margin-top:18px;}
  header.open .btn-nav{display:inline-block;margin:4px var(--h-pad) 20px;text-align:center;}

  /* Hero — column layout: SVG → eyebrow → h1 → buttons → lead text */
  .hero{
    padding:20px var(--h-pad) 48px;
    -webkit-flex-direction:column;flex-direction:column;
    -webkit-align-items:flex-start;align-items:flex-start;
    min-height:0;
  }
  /* SVG hidden on mobile — replaced by CSS watermark on hero-inner::before */
  .hero-svg-deco{display:none;}
  /* SVG watermark: centered behind hero text, 12% opacity, clipped by .hero overflow:hidden */
  .hero-inner::before{
    content:'';
    position:absolute;
    top:50%;
    right:calc(-1 * var(--h-pad));
    -webkit-transform:translateY(-50%);
    transform:translateY(-50%);
    width:80vw;
    height:120vw;
    max-height:70vh;
    background-image:url('images/mini bus invert 1.svg');
    -webkit-background-size:contain;
    background-size:contain;
    background-repeat:no-repeat;
    background-position:right center;
    opacity:0.16;
    pointer-events:none;
    z-index:-1;
  }
  /* hero-inner becomes flex column so children can be reordered */
  .hero-inner{
    max-width:100%;
    display:-webkit-box;display:-webkit-flex;display:flex;
    -webkit-box-orient:vertical;-webkit-box-direction:normal;
    -webkit-flex-direction:column;flex-direction:column;
  }
  .hero-inner .eyebrow{-webkit-order:1;order:1;}
  .hero-inner h1{-webkit-order:2;order:2;}
  .hero-inner .hero-cta{-webkit-order:3;order:3;margin-bottom:28px;}
  .hero-inner .lead{-webkit-order:4;order:4;margin-bottom:0;}
  .hero p.lead{max-width:100%;font-size:16px;}
  .eyebrow-cred{display:none;}
  .hero-cta{-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;}
  .hero-cta > * + *{margin-left:0;margin-top:16px;}

  /* Section spacing */
  .about{padding-top:60px;padding-bottom:50px;}
  .services{padding-top:56px;padding-bottom:50px;}
  .quote{padding-top:56px;padding-bottom:56px;}
  .booking{padding-top:56px;padding-bottom:60px;}

  /* Service cards — 2 per row on mobile */
  .services-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .service-card{padding:28px 20px;}
  .service-card h3{font-size:20px;}
  .service-card p{font-size:13px;margin-bottom:16px;}
  .amount,.addon-amount{font-size:22px;}
}

/* =============================================
   RESPONSIVE — SMALL (≤480px)
   ============================================= */
@media (max-width:480px){
  .service-card{padding:22px 14px;}
  .service-card h3{font-size:18px;}
  .service-card p{font-size:12px;}
  .amount,.addon-amount{font-size:20px;}
  .price-tier+.price-tier{padding-left:12px;}
}
