/* =========================================================================
   KINGS CAPITAL — warm light design system
   Palette sampled from the Kings Capital logo: gold #FFDB69 on espresso #2A1905,
   opened up with ivory/white grounds and an orange accent for warmth.
   Type: Cormorant Garamond (headings) + Manrope (UI/body)
   ========================================================================= */
:root{
  /* --- brand, straight from the logo --- */
  --brand-gold:#FFDB69;
  --brand-ink:#2A1905;

  /* --- grounds --- */
  --white:#FFFFFF;
  --ivory:#FFFCF6;
  --cream:#FFF4E4;
  --sand:#FBEAD3;

  /* --- ink --- */
  --ink:#241706;
  --body:#4E3E2C;
  --muted:#7A6650;

  /* --- gold --- */
  --gold:#D9A32B;
  --gold-hi:#FFDB69;
  --gold-lo:#A87A16;
  --gold-text:#8F6410;      /* darkened so small gold text clears WCAG AA on white */

  /* --- orange accent --- */
  --orange:#F07E2E;
  --orange-hi:#FF9E57;
  --orange-lo:#B0530C;      /* accent text tone — AA on both white and cream */

  --line:rgba(217,163,43,.34);
  --line-soft:rgba(42,25,5,.10);
  --ok:#2E8F63;
  --err:#C9492F;

  --radius:16px;
  --radius-lg:22px;
  --maxw:1100px;

  --shadow-sm:0 2px 8px rgba(90,58,12,.06);
  --shadow:0 14px 34px rgba(120,80,20,.10), 0 2px 6px rgba(120,80,20,.05);
  --shadow-lg:0 28px 64px rgba(120,80,20,.16), 0 4px 12px rgba(120,80,20,.07);
  --shadow-gold:0 12px 30px rgba(224,169,46,.30);

  --ease:cubic-bezier(.22,.68,.24,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--ivory);
  color:var(--body);
  font-family:'Manrope',system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.72;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
/* soft warm light pooling behind the whole page — keeps white from going flat */
body::before{
  content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(1000px 620px at 88% -8%, rgba(255,219,105,.30), transparent 62%),
    radial-gradient(760px 520px at 4% 16%, rgba(240,126,46,.11), transparent 60%),
    radial-gradient(900px 700px at 60% 108%, rgba(255,219,105,.20), transparent 62%);
}
img{max-width:100%;display:block}
a{color:var(--gold-text)}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}
h1,h2,h3,.serif{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1.14;color:var(--ink)}
h2{font-size:clamp(1.8rem,4.8vw,2.7rem);letter-spacing:-.01em}
h3{font-size:1.3rem}
.eyebrow{
  font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--orange-lo);font-weight:800;margin-bottom:12px;
  display:flex;align-items:center;gap:10px;
}
.eyebrow::before{
  content:"";width:26px;height:2px;border-radius:2px;flex:none;
  background:linear-gradient(90deg,var(--gold),var(--orange));
}
.center .eyebrow{justify-content:center}
.lead{color:var(--body);max-width:62ch}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
section{padding:clamp(58px,9vh,110px) 0;position:relative}

/* alternating warm bands so sections read as distinct surfaces */
.svc:nth-of-type(even){background:linear-gradient(180deg,var(--cream),rgba(255,244,228,0))}

.divider{
  height:2px;max-width:var(--maxw);margin:0 auto;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--gold-hi) 30%,var(--orange) 50%,var(--gold-hi) 70%,transparent);
  background-size:200% 100%;
  animation:slide 9s linear infinite;
}
@keyframes slide{to{background-position:200% 0}}

/* ============================ MOTION ============================ */
@keyframes rot{to{transform:rotate(360deg)}}
@keyframes floatY{50%{transform:translateY(-9px)}}
@keyframes floatSoft{50%{transform:translateY(-5px) rotate(2deg)}}
@keyframes pulseGlow{
  0%,100%{opacity:.5;transform:scale(1)}
  50%{opacity:.95;transform:scale(1.06)}
}
@keyframes ripple{
  0%{transform:scale(.55);opacity:.75}
  100%{transform:scale(1.45);opacity:0}
}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
@keyframes sweep{0%{transform:translateX(-120%) skewX(-18deg)}100%{transform:translateX(320%) skewX(-18deg)}}
@keyframes barberpole{to{background-position:34px 0}}
@keyframes popIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}

/* ---------- Buttons ---------- */
.btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 28px;border-radius:999px;border:1px solid transparent;
  font-family:'Manrope';font-weight:800;font-size:.92rem;letter-spacing:.02em;
  text-decoration:none;cursor:pointer;min-height:50px;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease),color .2s;
}
.btn:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
/* sheen that sweeps across on hover */
.btn::after{
  content:"";position:absolute;top:-40%;left:0;width:32%;height:180%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);
  opacity:0;pointer-events:none;
}
.btn:hover::after{opacity:1;animation:sweep .85s var(--ease)}

.btn-gold{
  background:linear-gradient(135deg,#FFE9A3 0%,var(--brand-gold) 42%,var(--orange) 130%);
  color:var(--brand-ink);
  box-shadow:var(--shadow-gold), inset 0 1px 0 rgba(255,255,255,.7);
}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(224,169,46,.42), inset 0 1px 0 rgba(255,255,255,.7)}
.btn-ghost{
  background:var(--white);color:var(--gold-text);
  border-color:var(--line);box-shadow:var(--shadow-sm);
}
.btn-ghost:hover{
  transform:translateY(-3px);border-color:var(--orange);
  color:var(--orange-lo);box-shadow:var(--shadow);
}
.btn-block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none!important}

/* ---------- Header ---------- */
.topbar{
  position:sticky;top:0;z-index:60;
  background:rgba(255,252,246,.82);backdrop-filter:blur(14px) saturate(1.3);
  border-bottom:1px solid var(--line-soft);
}
.topbar-in{display:flex;align-items:center;justify-content:space-between;height:68px;gap:12px}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none}

/* ---- brand lockup, rebuilt from the Kings Capital logo ---- */
.logo-lockup{
  display:inline-flex;flex-direction:column;align-items:stretch;gap:3px;
  background:linear-gradient(150deg,#3A230A,var(--brand-ink) 60%,#160C02);
  border:1.5px solid rgba(255,219,105,.75);
  border-radius:7px;padding:6px 9px 7px;
  box-shadow:0 4px 14px rgba(42,25,5,.28), inset 0 1px 0 rgba(255,219,105,.28);
  line-height:1;transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.logo:hover .logo-lockup{transform:translateY(-2px);box-shadow:0 8px 22px rgba(42,25,5,.34), inset 0 1px 0 rgba(255,219,105,.4)}
.logo-lockup .lk-top{
  font-family:'Manrope',sans-serif;font-weight:800;color:var(--brand-gold);
  font-size:1.06rem;letter-spacing:.012em;text-align:center;
}
.logo-lockup .lk-bot{
  font-family:'Manrope',sans-serif;font-weight:800;color:var(--brand-ink);
  background:var(--brand-gold);border-radius:2px;
  font-size:.55rem;letter-spacing:.30em;text-align:center;
  padding:2px 0 2px .30em;
}
.logo-tag{
  font-family:'Cormorant Garamond',Georgia,serif;font-size:1.02rem;
  letter-spacing:.2em;color:var(--ink);white-space:nowrap;
}
@media(max-width:560px){.logo-tag{display:none}}
.top-cta{font-size:.8rem;padding:11px 20px;min-height:42px}

/* ---------- Hero ---------- */
.hero{padding:clamp(56px,10vh,110px) 0 70px;position:relative;overflow:hidden;isolation:isolate}
.hero{min-height:92svh;display:flex;align-items:center}
#scene3d{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}
/* light wash so the 3D scene sits behind the copy without hurting legibility */
.hero-veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(100deg,var(--ivory) 10%,rgba(255,252,246,.97) 42%,rgba(255,252,246,.72) 60%,rgba(255,252,246,.05) 86%),
    radial-gradient(120% 90% at 50% 112%,var(--ivory) 12%,transparent 62%);
}
.hero .hero-grid{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:1fr;gap:34px;align-items:center}

.avatar-ring{
  position:relative;width:150px;height:150px;border-radius:50%;padding:6px;margin-bottom:20px;
  background:conic-gradient(from 200deg,var(--gold-lo),var(--brand-gold) 32%,var(--orange) 58%,var(--gold-hi) 78%,var(--gold-lo));
  box-shadow:0 18px 40px rgba(120,80,20,.26);
  animation:floatY 7s ease-in-out infinite;
}
.avatar-ring::after{
  content:"";position:absolute;inset:-9px;border-radius:50%;z-index:-1;
  border:1.5px dashed rgba(217,163,43,.45);
  animation:rot 34s linear infinite;
}
.avatar-ring img,.avatar-fallback{
  width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 50%;
  background:var(--sand);display:grid;place-items:center;
  font-family:'Cormorant Garamond';font-size:2.6rem;color:var(--gold-text);
}
.hero h1{font-size:clamp(2.2rem,6.6vw,3.9rem);margin:14px 0 18px;letter-spacing:-.015em}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(100deg,var(--gold-lo),var(--orange) 55%,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero .name{font-size:.84rem;letter-spacing:.32em;color:var(--orange-lo);font-weight:800}
.hero .role{color:var(--muted);font-size:.95rem;margin-top:5px}
.trustline{
  display:inline-block;margin-top:15px;padding:9px 18px;
  border:1px solid var(--line);border-radius:999px;
  font-size:.86rem;color:var(--gold-text);font-weight:600;
  background:linear-gradient(180deg,var(--white),var(--cream));
  box-shadow:var(--shadow-sm);
}
.hero .support{color:var(--body);max-width:54ch;margin-top:16px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.risk-mini{margin-top:24px;font-size:.76rem;color:var(--muted)}

/* ---------- Section ornaments (animated SVG) ---------- */
.orn{
  width:58px;height:58px;flex:none;margin-bottom:14px;
  animation:floatSoft 6s ease-in-out infinite;
}
.orn .st{fill:none;stroke-linecap:round;stroke-linejoin:round}
.orn .draw{stroke-dasharray:240;stroke-dashoffset:240}
.orn.in .draw,.reveal.in .orn .draw{animation:draw 1.6s var(--ease) .2s forwards}
.orn .turn{transform-origin:center;animation:rot 11s linear infinite}
.orn .pulse{transform-origin:center;animation:pulseGlow 2.6s ease-in-out infinite}
.orn .wave{transform-origin:center;animation:ripple 2.4s ease-out infinite}
.orn .wave2{animation-delay:.8s}
.orn .wave3{animation-delay:1.6s}
.orn .eye{transform-origin:center;animation:blink 4.5s ease-in-out infinite}
.svc-head .orn{margin-bottom:16px}

/* ---------- Pathway cards ---------- */
.paths{display:grid;grid-template-columns:1fr;gap:14px;margin-top:32px}
.path-card{
  position:relative;overflow:hidden;
  display:flex;align-items:center;gap:16px;text-align:left;width:100%;
  background:var(--white);border:1px solid var(--line-soft);border-radius:var(--radius);
  padding:18px;cursor:pointer;color:var(--body);font:inherit;
  box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease),border-color .3s,box-shadow .3s var(--ease);
}
.path-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--gold-hi),var(--orange));
  transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease);
}
.path-card:hover,.path-card:focus-visible{transform:translateY(-4px);border-color:var(--line);box-shadow:var(--shadow-lg)}
.path-card:hover::before,.path-card:focus-visible::before{transform:scaleY(1)}
.path-card:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.path-num{
  flex:none;width:48px;height:48px;border-radius:13px;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--brand-gold),var(--orange-hi));
  color:var(--brand-ink);box-shadow:0 6px 16px rgba(224,169,46,.34);
  font-family:'Cormorant Garamond';font-weight:700;font-size:1.35rem;
  transition:transform .35s var(--ease);
}
.path-card:hover .path-num{transform:rotate(-8deg) scale(1.07)}
.path-card b{display:block;font-size:1rem;color:var(--ink);font-weight:800}
.path-card small{color:var(--muted);font-size:.86rem}
.path-arrow{margin-left:auto;color:var(--orange);flex:none;font-size:1.2rem;transition:transform .3s var(--ease)}
.path-card:hover .path-arrow{transform:translateX(5px)}

/* ---------- Service sections ---------- */
.svc{border-top:1px solid var(--line-soft)}
.svc-head{max-width:64ch;margin-bottom:30px}
.chip{
  display:inline-block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:800;
  color:var(--brand-ink);border-radius:999px;padding:7px 15px;margin-bottom:14px;
  background:linear-gradient(135deg,var(--brand-gold),var(--orange-hi));
  box-shadow:0 5px 14px rgba(224,169,46,.28);
}
.card{
  background:var(--white);border:1px solid var(--line-soft);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.card:hover{box-shadow:var(--shadow)}
.grid-2{display:grid;grid-template-columns:1fr;gap:18px}
.grid-3{display:grid;grid-template-columns:1fr;gap:16px}
.list{list-style:none;display:flex;flex-direction:column;gap:11px}
.list li{padding-left:30px;position:relative;color:var(--body);font-size:.95rem}
.list li::before{
  content:"";position:absolute;left:0;top:8px;width:14px;height:14px;border-radius:4px;
  background:linear-gradient(140deg,var(--brand-gold),var(--orange));
  transform:rotate(45deg);box-shadow:0 3px 8px rgba(224,169,46,.35);
}

/* Sessions list */
.sessions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.session{
  display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;
  background:var(--ivory);border:1px solid var(--line-soft);
  cursor:pointer;color:var(--body);font:inherit;text-align:left;width:100%;
  transition:border-color .25s,transform .25s var(--ease),background .25s;
}
.session:hover,.session:focus-visible{border-color:var(--gold);transform:translateX(5px);background:var(--cream)}
.session:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.session .s-no{
  flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  border:1.5px solid var(--line);color:var(--gold-text);font-size:.85rem;font-weight:800;
  transition:background .25s,color .25s;
}
.session.done .s-no{
  background:linear-gradient(140deg,var(--brand-gold),var(--orange));
  color:var(--brand-ink);border-color:transparent;
}
.session b{font-size:.93rem;font-weight:700;color:var(--ink)}
.session .s-state{margin-left:auto;font-size:.7rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;font-weight:800}
.progress{height:10px;border-radius:99px;background:var(--sand);overflow:hidden;margin:16px 0 6px}
.progress i{
  display:block;height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,var(--gold),var(--orange));
  background-size:34px 34px;
  transition:width .7s var(--ease);
}
.progress-label{font-size:.8rem;color:var(--muted);font-weight:600}

.locked{
  border:1.5px dashed var(--line);border-radius:var(--radius);padding:26px;text-align:center;color:var(--muted);
  background:var(--cream);
}
.locked .lock{font-size:1.6rem;color:var(--gold);margin-bottom:8px}

/* ---------- Pricing ---------- */
.price-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:30px 22px 24px;text-align:center}
.price-card.popular{
  border-color:var(--gold);
  box-shadow:0 0 0 2px var(--brand-gold), var(--shadow-lg);
  background:linear-gradient(180deg,var(--white),var(--cream));
}
.price-card.popular::after{
  content:"";position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;
  box-shadow:0 0 0 0 rgba(255,219,105,.55);
  animation:haloPulse 3.2s ease-in-out infinite;
}
@keyframes haloPulse{50%{box-shadow:0 0 0 12px rgba(255,219,105,0)}}
.pop-tag{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,var(--brand-gold),var(--orange));
  color:var(--brand-ink);font-size:.66rem;font-weight:900;letter-spacing:.14em;
  text-transform:uppercase;border-radius:999px;padding:6px 16px;white-space:nowrap;
  box-shadow:0 6px 16px rgba(224,169,46,.4);
}
.price-card .dur{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:800}
.price-card .amt{font-family:'Cormorant Garamond';font-size:3rem;color:var(--ink);line-height:1}
.price-card .amt small{font-size:1rem;color:var(--orange-lo);letter-spacing:.05em;font-family:'Manrope';font-weight:800}
.price-card .pkg-note{
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--orange-lo);
  border:1px solid var(--line);border-radius:999px;padding:5px 13px;align-self:center;
  background:var(--white);
}
.price-card.chosen{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange), var(--shadow-lg)}
/* only some packages carry a savings badge — pin the buttons so all cards line up */
.price-card [data-act="choose"]{margin-top:auto}

/* ---------- Forms ---------- */
form{display:flex;flex-direction:column;gap:15px}
label{font-size:.8rem;font-weight:800;color:var(--ink);letter-spacing:.04em}
.field{display:flex;flex-direction:column;gap:7px}
input,select,textarea{
  width:100%;background:var(--ivory);border:1.5px solid var(--line-soft);
  border-radius:11px;padding:14px;color:var(--ink);font:inherit;font-size:.95rem;
  transition:border-color .22s,box-shadow .22s,background .22s;
}
input::placeholder,textarea::placeholder{color:#A89681}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--orange);background:var(--white);
  box-shadow:0 0 0 4px rgba(240,126,46,.14);
}
select{
  appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--orange) 50%),linear-gradient(135deg,var(--orange) 50%,transparent 50%);
  background-position:calc(100% - 21px) 55%,calc(100% - 15px) 55%;
  background-size:6px 6px;background-repeat:no-repeat;
}
textarea{min-height:96px;resize:vertical}
.check{display:flex;gap:11px;align-items:flex-start;font-size:.86rem;color:var(--body)}
.check input{width:auto;margin-top:3px;accent-color:var(--orange)}
.form-msg{font-size:.86rem;border-radius:11px;padding:12px 15px;display:none;font-weight:600}
.form-msg.err{display:block;background:#FDEDE9;color:#96311B;border:1px solid rgba(201,73,47,.32)}
.form-msg.ok{display:block;background:#E9F7F0;color:#1D6B49;border:1px solid rgba(46,143,99,.32)}
.spin{
  width:16px;height:16px;border:2px solid rgba(42,25,5,.28);border-top-color:var(--brand-ink);
  border-radius:50%;animation:rot .7s linear infinite;display:none;
}
.btn.loading .spin{display:inline-block}

/* ---------- Editorial photography ---------- */
.svc-media{
  position:relative;margin:0 0 30px;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line-soft);background:var(--sand);
  box-shadow:var(--shadow);isolation:isolate;
}
.svc-media picture{display:block}
.svc-media img{
  width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:var(--pos,50% 45%);
  filter:saturate(1.04) contrast(1.02);
  transition:transform 1.4s var(--ease),filter .6s ease;
}
.svc-media:hover img{transform:scale(1.045)}
/* warm scrim only where the caption sits, so photos stay bright */
.svc-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:
    linear-gradient(180deg,transparent 46%,rgba(42,25,5,.20) 66%,rgba(42,25,5,.82) 100%),
    linear-gradient(112deg,rgba(255,219,105,.12) 0%,transparent 46%);
}
.svc-media::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,var(--gold-hi),var(--orange),var(--gold-hi));
}
.svc-media figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:20px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.svc-media .cap-t{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1.25;
  font-size:clamp(1.05rem,2.5vw,1.45rem);color:#FFF8EC;max-width:34ch;
  text-shadow:0 2px 16px rgba(0,0,0,.5);
}
.svc-media .cap-s{
  flex:none;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;font-weight:900;
  color:var(--brand-ink);background:var(--brand-gold);
  border-radius:999px;padding:6px 13px;
}
@media(min-width:700px){
  .svc-media img{aspect-ratio:16/9}
  .svc-media figcaption{padding:26px}
}
.media-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.media-duo .svc-media{margin:0}
.svc-media.tall img{aspect-ratio:4/5;object-position:var(--pos,50% 28%)}
@media(min-width:700px){.media-duo{gap:18px}}

/* ---------- Gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:28px}
.gtile{
  position:relative;display:block;width:100%;padding:0;overflow:hidden;cursor:zoom-in;
  background:var(--sand);border:1px solid var(--line-soft);border-radius:14px;
  box-shadow:var(--shadow-sm);
  transition:border-color .3s,transform .3s var(--ease),box-shadow .3s var(--ease);
}
.gtile img{
  width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:var(--gpos,50% 35%);
  transition:transform .9s var(--ease),filter .45s ease;
}
.gtile::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
  background:linear-gradient(155deg,rgba(255,219,105,.28),rgba(240,126,46,.20));
  transition:opacity .4s ease;
}
.gtile:hover,.gtile:focus-visible{transform:translateY(-5px);border-color:var(--gold);box-shadow:var(--shadow-lg)}
.gtile:hover img,.gtile:focus-visible img{transform:scale(1.09)}
.gtile:hover::after,.gtile:focus-visible::after{opacity:1}
.gtile:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
@media(min-width:700px){.gallery{grid-template-columns:repeat(4,1fr);gap:15px}}

/* ---------- Trust / How / FAQ ---------- */
.steps{display:grid;grid-template-columns:1fr;gap:16px;counter-reset:step}
.step{display:flex;gap:16px;align-items:flex-start}
.step::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  font-family:'Cormorant Garamond';font-size:1.6rem;flex:none;width:46px;
  color:transparent;background:linear-gradient(140deg,var(--gold),var(--orange));
  -webkit-background-clip:text;background-clip:text;font-weight:700;
}
.faq details{
  border:1px solid var(--line-soft);border-radius:14px;background:var(--white);
  margin-bottom:11px;box-shadow:var(--shadow-sm);transition:border-color .25s,box-shadow .25s;
}
.faq details[open]{border-color:var(--line);box-shadow:var(--shadow)}
.faq summary{padding:17px 52px 17px 20px;cursor:pointer;font-weight:800;color:var(--ink);list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--brand-gold),var(--orange-hi));color:var(--brand-ink);
  font-size:1.05rem;font-weight:800;transition:transform .3s var(--ease);
}
.faq details[open] summary::after{transform:translateY(-50%) rotate(135deg)}
.faq .a{padding:0 20px 18px;color:var(--body);font-size:.93rem}

/* ---------- Floating & sticky CTAs ---------- */
.wa-float{
  position:fixed;right:16px;bottom:84px;z-index:70;width:56px;height:56px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;
  box-shadow:0 12px 28px rgba(37,211,102,.42);
  transition:transform .25s var(--ease);text-decoration:none;
}
.wa-float::before{
  content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;
  z-index:-1;animation:ripple 2.6s ease-out infinite;
}
.wa-float:hover{transform:scale(1.09)}
.wa-float svg{width:29px;height:29px;fill:#fff}
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,252,246,.94);backdrop-filter:blur(12px);
  border-top:1px solid var(--line-soft);box-shadow:0 -8px 24px rgba(120,80,20,.10);
  display:flex;gap:10px;transform:translateY(110%);transition:transform .4s var(--ease);
}
.sticky-cta.show{transform:none}
.sticky-cta .btn{flex:1;padding:12px;font-size:.82rem;min-height:46px}

/* ---------- Footer ---------- */
footer{
  padding:60px 0 110px;margin-top:20px;
  background:linear-gradient(180deg,var(--brand-ink),#150B02);
  color:#D9C7AC;position:relative;
}
footer::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold-hi),var(--orange),var(--gold-hi));
}
footer .logo-tag{color:var(--brand-gold)}
footer .lead{color:#C9B69A}
.foot-grid{display:grid;grid-template-columns:1fr;gap:28px}
.foot-links{display:flex;flex-wrap:wrap;gap:18px;font-size:.86rem}
.foot-links a{color:#C9B69A;text-decoration:none;transition:color .2s}
.foot-links a:hover{color:var(--brand-gold)}
.copy{color:#93826C;font-size:.8rem;margin-top:20px}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
/* gentle stagger inside grids */
.paths .reveal:nth-child(2),.grid-2 .reveal:nth-child(2),.grid-3 .reveal:nth-child(2){transition-delay:.09s}
.paths .reveal:nth-child(3),.grid-3 .reveal:nth-child(3){transition-delay:.18s}
.paths .reveal:nth-child(4){transition-delay:.27s}
.paths .reveal:nth-child(5){transition-delay:.36s}
.paths .reveal:nth-child(6){transition-delay:.45s}

/* ---------- Modals ---------- */
/* above the tour (95/96) so a PDF or payment modal is never buried under it */
.modal{
  position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:14px;
  background:rgba(42,25,5,.62);backdrop-filter:blur(8px);
}
.modal.open{display:flex;animation:popIn .3s var(--ease)}
.viewer{
  position:relative;width:100%;max-width:920px;height:min(88vh,940px);
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);
}
.viewer-bar{
  display:flex;align-items:center;gap:10px;padding:13px 16px;
  border-bottom:1px solid var(--line-soft);
  background:linear-gradient(180deg,var(--cream),var(--white));
}
.viewer-bar b{font-size:.88rem;color:var(--ink);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viewer-close{
  background:var(--white);border:1.5px solid var(--line);color:var(--gold-text);border-radius:9px;
  padding:7px 14px;cursor:pointer;font:inherit;font-size:.8rem;font-weight:800;transition:all .22s;
}
.viewer-close:hover{background:var(--orange);border-color:var(--orange);color:#fff}
.viewer-frame{
  flex:1;position:relative;overflow-y:auto;overflow-x:hidden;
  background:var(--sand);padding:18px 14px 28px;
  -webkit-overflow-scrolling:touch;
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
}
/* rendered pages */
.pdf-doc{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:1100px;margin:0 auto}
.pdf-page{
  position:relative;width:100%;line-height:0;border-radius:8px;overflow:hidden;
  background:#fff;box-shadow:var(--shadow);isolation:isolate;
}
.pdf-page canvas{display:block;width:100%;height:auto;pointer-events:none}
.pdf-status{
  height:100%;min-height:220px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:14px;text-align:center;padding:30px 20px;
}
.pdf-status p{color:var(--body);font-size:.92rem;max-width:34ch}
.pdf-status .pdf-sub{font-size:.82rem;color:var(--muted)}
.pdf-spin{
  width:34px;height:34px;border-radius:50%;
  border:3px solid rgba(217,163,43,.25);border-top-color:var(--orange);
  animation:rot .8s linear infinite;
}
/* the reader is on screen only — never on paper */
@media print{.modal{display:none!important}}

/* ---------- Payment modal ---------- */
.paybox{
  width:100%;max-width:470px;background:var(--white);
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);
}
.paybody{padding:22px}
.pay-service{font-family:'Cormorant Garamond';font-size:1.4rem;color:var(--ink);margin-bottom:16px}
.pay-rows{
  display:flex;flex-direction:column;gap:1px;background:var(--line-soft);
  border:1px solid var(--line-soft);border-radius:12px;overflow:hidden;margin-bottom:16px;
}
.pay-row{display:flex;justify-content:space-between;gap:14px;padding:13px 15px;background:var(--white);font-size:.91rem}
.pay-row span{color:var(--muted)}
.pay-row b{color:var(--ink);text-align:right;user-select:all}
.pay-row:last-child{background:linear-gradient(135deg,var(--cream),var(--sand))}
.pay-row:last-child b{color:var(--orange-lo);font-size:1.05rem}
.pay-note{
  font-size:.83rem;color:var(--body);border-left:3px solid var(--orange);
  padding:6px 0 6px 13px;margin-bottom:18px;
}
.pay-note b{color:var(--ink)}

/* ---------- Lightbox ---------- */
.lightbox{gap:8px}
.lb-stage{position:relative;max-width:min(1040px,92vw);margin:0;display:flex;flex-direction:column;gap:12px}
.lb-stage img{
  max-height:78vh;width:auto;max-width:100%;margin:0 auto;border-radius:var(--radius);
  border:3px solid var(--white);box-shadow:var(--shadow-lg);background:var(--sand);
}
.lb-stage figcaption{
  align-self:center;text-align:center;color:#FFF3DF;
  font-family:'Cormorant Garamond',Georgia,serif;font-size:1.1rem;
  background:rgba(26,15,3,.72);border-radius:999px;padding:6px 20px;
  backdrop-filter:blur(6px);
}
.lb-nav,.lb-close{
  flex:none;width:48px;height:48px;border-radius:50%;cursor:pointer;
  background:rgba(255,252,246,.92);border:1px solid var(--line);color:var(--gold-text);
  font-size:1.5rem;line-height:1;display:grid;place-items:center;
  transition:background .25s,transform .25s var(--ease),color .2s;
}
.lb-nav:hover,.lb-close:hover{background:var(--orange);color:#fff;transform:scale(1.1)}
.lb-nav:focus-visible,.lb-close:focus-visible{outline:3px solid var(--orange-hi);outline-offset:3px}
.lb-close{position:absolute;top:14px;right:14px;font-size:1rem;z-index:2}
@media(max-width:699px){
  .lb-nav{position:absolute;bottom:18px;z-index:2}
  .lb-prev{left:22px}
  .lb-next{right:22px}
  .lb-stage img{max-height:66vh}
}

/* =========================================================================
   GUIDED TOUR — "Mei" walks a first-time visitor through every section
   ========================================================================= */
@keyframes meiBob{50%{transform:translateY(-6px)}}
@keyframes meiWave{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(-26deg)}}
@keyframes meiPoint{0%,100%{transform:rotate(-30deg)}50%{transform:rotate(-40deg)}}
@keyframes meiCheer{0%,100%{transform:rotate(-52deg)}50%{transform:rotate(-64deg)}}
@keyframes meiCheerL{0%,100%{transform:rotate(30deg)}50%{transform:rotate(42deg)}}
@keyframes meiBlink{0%,94%,100%{transform:scaleY(1)}97%{transform:scaleY(.06)}}
@keyframes meiIn{from{opacity:0;transform:translateY(28px) scale(.9)}to{opacity:1;transform:none}}
@keyframes bubbleIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes spotIn{from{opacity:0}to{opacity:1}}
@keyframes dashRun{to{stroke-dashoffset:-44}}
@keyframes arrowBob{50%{transform:translate(6px,6px) rotate(4deg)}}
@keyframes ringDash{to{stroke-dashoffset:-64}}

.tour[hidden]{display:none}
.tour{position:fixed;inset:0;z-index:95;pointer-events:none}

/* --- spotlight: dims the page and rings whatever Mei points at --- */
.tour-spot{
  position:fixed;border-radius:18px;pointer-events:none;
  box-shadow:0 0 0 9999px rgba(42,25,5,.46);
  outline:3px dashed var(--brand-gold);outline-offset:6px;
  transition:top .5s var(--ease),left .5s var(--ease),width .5s var(--ease),height .5s var(--ease);
  animation:spotIn .4s ease both;
}
.tour-arrow{
  position:absolute;left:2px;top:-84px;width:96px;height:96px;
  filter:drop-shadow(0 6px 14px rgba(42,25,5,.35));
  animation:arrowBob 1.5s ease-in-out infinite;
  transition:top .35s var(--ease),left .35s var(--ease);
}
/* when the target is too tall to leave room above, tuck the arrow inside it */
.tour-spot.tight .tour-arrow{top:10px;left:10px}
.tour-arrow .ta-line{animation:dashRun 1.1s linear infinite}

/* --- Mei's dock --- */
.tour-dock{
  position:fixed;left:18px;bottom:18px;z-index:96;
  display:flex;align-items:flex-end;gap:18px;pointer-events:auto;
  animation:meiIn .55s var(--ease) both;
}
.tour-guide{
  width:128px;height:auto;flex:none;overflow:visible; /* let raised arms escape the viewBox */
  filter:drop-shadow(0 12px 22px rgba(42,25,5,.32));
  animation:meiBob 3.6s ease-in-out infinite;
}
.tour-guide .g-eyes{transform-origin:100px 79px;animation:meiBlink 5.4s ease-in-out infinite}
.tour-guide .g-armR{transform-origin:150px 180px;transition:transform .45s var(--ease)}
.tour-guide .g-armL{transform-origin:52px 186px;transition:transform .45s var(--ease)}
.tour-guide[data-pose="wave"]  .g-armR{animation:meiWave 1.1s ease-in-out infinite}
.tour-guide[data-pose="point"] .g-armR{animation:meiPoint 1.8s ease-in-out infinite}
.tour-guide[data-pose="cheer"] .g-armR{animation:meiCheer 1.1s ease-in-out infinite}
.tour-guide[data-pose="cheer"] .g-armL{animation:meiCheerL 1.1s ease-in-out infinite}

/* --- speech bubble --- */
.tour-bubble{
  position:relative;width:min(340px,calc(100vw - 158px));
  background:var(--white);border:1px solid var(--line);
  border-radius:18px;padding:16px 18px 14px;margin-bottom:42px;
  box-shadow:var(--shadow-lg);
  animation:bubbleIn .4s var(--ease) both;
}
.tour-bubble::before{
  content:"";position:absolute;left:-9px;bottom:22px;width:18px;height:18px;
  background:var(--white);border-left:1px solid var(--line);border-bottom:1px solid var(--line);
  transform:rotate(45deg);border-radius:0 0 0 5px;
}
.tour-name{
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;font-weight:900;
  color:var(--orange-lo);margin-bottom:7px;
}
.tour-text{font-size:.94rem;line-height:1.6;color:var(--ink);font-weight:500}
.tour-dots{display:flex;flex-wrap:wrap;gap:5px;margin:13px 0 12px}
.tour-dots i{
  width:7px;height:7px;border-radius:99px;background:var(--sand);
  transition:width .35s var(--ease),background .35s;
}
.tour-dots i.on{width:20px;background:linear-gradient(90deg,var(--gold),var(--orange))}
.tour-dots i.past{background:var(--gold-hi)}
.tour-actions{display:flex;align-items:center;gap:10px}
.tour-next{flex:1;padding:11px 18px;min-height:44px;font-size:.86rem}
.tour-skip{
  background:none;border:none;cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;
  color:var(--muted);padding:10px 6px;border-radius:8px;text-decoration:underline;
  text-underline-offset:3px;transition:color .2s;
}
.tour-skip:hover{color:var(--orange-lo)}
.tour-skip:focus-visible,.tour-next:focus-visible{outline:3px solid var(--orange);outline-offset:2px}

/* --- restart button --- */
.tour-fab[hidden]{display:none}
.tour-fab{
  position:fixed;left:16px;bottom:88px;z-index:71;
  display:flex;align-items:center;gap:9px;cursor:pointer;
  padding:6px 16px 6px 6px;border-radius:999px;
  background:var(--white);border:1px solid var(--line);
  box-shadow:var(--shadow);font:inherit;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease);
}
.tour-fab svg{width:38px;height:38px;border-radius:50%;flex:none}
.tour-fab-tip{font-size:.8rem;font-weight:800;color:var(--gold-text);letter-spacing:.04em}
.tour-fab:hover{transform:translateY(-3px) scale(1.03);box-shadow:var(--shadow-lg)}
.tour-fab:focus-visible{outline:3px solid var(--orange);outline-offset:3px}

/* while the tour runs, get the other floating furniture out of the way */
body.tour-on .sticky-cta{transform:translateY(120%)}

@media(min-width:700px){.tour-fab{bottom:24px}}
@media(max-width:699px){
  .tour-dock{left:10px;right:10px;bottom:12px;align-items:flex-end;gap:10px}
  .tour-guide{width:94px}
  .tour-bubble{width:auto;flex:1}
  .tour-arrow{width:74px;height:74px;top:-66px}
  .tour-fab{bottom:82px;left:12px}
}
@media (prefers-reduced-motion:reduce){
  .tour-spot{transition:none}
}

/* ---------- Legal pages ---------- */
.legal{padding:44px 0 84px}
.legal h1{font-size:2.2rem;margin-bottom:20px}
.legal h2{font-size:1.25rem;margin:28px 0 8px}
.legal p,.legal li{color:var(--body);font-size:.95rem}
.legal ul{padding-left:20px}

/* ---------- Breakpoints ---------- */
@media(min-width:700px){
  .paths{grid-template-columns:1fr 1fr}
  .grid-2{grid-template-columns:1fr 1fr}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  .hero-grid{grid-template-columns:auto 1fr;gap:52px}
  .avatar-ring{width:214px;height:214px;margin-bottom:0}
  .foot-grid{grid-template-columns:1fr auto}
  .sticky-cta{display:none}
  footer{padding-bottom:60px}
  .wa-float{bottom:26px}
}
@media(max-width:699px){
  .hero-veil{
    background:linear-gradient(180deg,rgba(255,252,246,.30) 0%,rgba(255,252,246,.72) 34%,var(--ivory) 60%);
  }
}

/* =========================================================================
   PHONE — compact scale
   The clamp() minimums were winning below ~420px, so type and spacing never
   actually shrank on a phone. This pulls the whole scale down to a tighter,
   classic size while keeping the same proportions and hierarchy.
   ========================================================================= */
@media(max-width:699px){
  body{font-size:15px;line-height:1.62}
  .wrap{padding:0 16px}
  section{padding:42px 0}
  .hero h1{font-size:clamp(1.58rem,7.2vw,2.05rem);margin:10px 0 12px}
  h2{font-size:clamp(1.32rem,5.4vw,1.7rem)}
  h3{font-size:1.05rem}
  .lead{font-size:.9rem}
  .eyebrow{font-size:.63rem;letter-spacing:.22em;margin-bottom:9px}
  .eyebrow::before{width:18px}
  .chip{font-size:.61rem;padding:5px 11px;margin-bottom:11px}
  .orn{width:42px;height:42px;margin-bottom:10px}
  .svc-head{margin-bottom:20px}
  .svc-head .orn{margin-bottom:11px}

  /* controls */
  .btn{padding:12px 19px;min-height:43px;font-size:.83rem;gap:8px}
  .topbar-in{height:58px}
  /* compact, but never below a comfortable ~40px thumb target */
  .top-cta{padding:10px 15px;min-height:40px;font-size:.73rem}
  .logo{gap:8px}
  .logo-lockup{padding:4px 7px 5px;border-radius:6px}
  .logo-lockup .lk-top{font-size:.85rem}
  .logo-lockup .lk-bot{font-size:.45rem;letter-spacing:.26em}

  /* hero */
  .hero{min-height:auto;padding:32px 0 42px}
  .avatar-ring{width:114px;height:114px;margin-bottom:14px;padding:4px}
  .hero .name{font-size:.73rem;letter-spacing:.26em}
  .hero .role{font-size:.85rem}
  .trustline{font-size:.77rem;padding:7px 14px;margin-top:12px}
  .hero .support{font-size:.88rem;margin-top:12px}
  .hero-ctas{gap:9px;margin-top:20px}
  .risk-mini{font-size:.69rem;margin-top:17px}

  /* pathway */
  .paths{gap:10px;margin-top:20px}
  .path-card{padding:13px;gap:12px;border-radius:13px}
  .path-num{width:38px;height:38px;border-radius:10px;font-size:1.08rem}
  .path-card b{font-size:.89rem}
  .path-card small{font-size:.77rem}

  /* cards & lists */
  .card{padding:17px;border-radius:13px}
  .grid-2,.grid-3{gap:12px}
  .list{gap:9px}
  .list li{font-size:.86rem;padding-left:24px}
  .list li::before{width:11px;height:11px;top:7px}

  /* sessions */
  .sessions{gap:8px;margin-top:14px}
  .session{padding:11px 12px;gap:11px;border-radius:10px}
  .session .s-no{width:28px;height:28px;font-size:.74rem}
  .session b{font-size:.84rem}
  .session .s-state{font-size:.61rem;letter-spacing:.1em}
  .progress{height:8px;margin:13px 0 5px}
  .progress-label{font-size:.73rem}

  /* pricing */
  .price-card{padding:24px 15px 18px;gap:10px}
  .price-card .amt{font-size:2.15rem}
  .price-card .amt small{font-size:.84rem}
  .price-card .dur{font-size:.69rem;letter-spacing:.18em}
  .pop-tag{font-size:.57rem;padding:5px 12px;top:-11px}
  .price-card .pkg-note{font-size:.63rem;padding:4px 10px}

  /* forms — 16px inputs stop iOS zooming on focus */
  form{gap:12px}
  label{font-size:.74rem}
  input,select,textarea{padding:11px 12px;border-radius:9px;font-size:16px}
  textarea{min-height:78px}
  .form-msg{font-size:.79rem;padding:10px 12px}
  .check{font-size:.78rem}

  /* photography */
  .svc-media{margin-bottom:22px;border-radius:14px}
  .svc-media figcaption{padding:13px}
  .svc-media .cap-t{font-size:.94rem}
  .svc-media .cap-s{font-size:.57rem;padding:4px 9px;letter-spacing:.16em}
  .media-duo{gap:9px}
  .gallery{gap:8px;margin-top:18px}
  .gtile{border-radius:11px}

  /* trust / faq */
  .steps{gap:12px}
  .step{gap:12px}
  .step::before{font-size:1.22rem;width:33px}
  .faq details{border-radius:11px;margin-bottom:8px}
  .faq summary{padding:13px 42px 13px 14px;font-size:.88rem}
  .faq summary::after{width:22px;height:22px;font-size:.92rem;right:13px}
  .faq .a{padding:0 14px 13px;font-size:.84rem}

  /* footer & floating */
  footer{padding:40px 0 94px}
  .foot-grid{gap:20px}
  .foot-links{gap:13px;font-size:.78rem}
  .copy{font-size:.71rem;margin-top:15px}
  .wa-float{width:48px;height:48px;bottom:74px;right:12px}
  .wa-float svg{width:25px;height:25px}
  .sticky-cta{padding:8px 12px calc(8px + env(safe-area-inset-bottom))}
  .sticky-cta .btn{padding:10px;font-size:.75rem;min-height:41px}

  /* tour */
  .tour-guide{width:80px}
  .tour-bubble{padding:12px 14px 11px;border-radius:15px;margin-bottom:30px}
  .tour-name{font-size:.57rem;margin-bottom:5px}
  .tour-text{font-size:.83rem;line-height:1.5}
  .tour-dots{margin:10px 0 9px;gap:4px}
  .tour-dots i{width:6px;height:6px}
  .tour-dots i.on{width:16px}
  .tour-next{min-height:42px;font-size:.78rem;padding:10px 14px}
  .tour-skip{font-size:.74rem;padding:12px 8px}
  .tour-fab{padding:5px 13px 5px 5px}
  .tour-fab svg{width:32px;height:32px}
  .tour-fab-tip{font-size:.71rem}

  /* modals */
  .viewer{height:min(90vh,900px);border-radius:15px}
  .viewer-bar{padding:10px 12px}
  .viewer-bar b{font-size:.77rem}
  .viewer-close{padding:6px 11px;font-size:.72rem}
  .viewer-frame{padding:12px 10px 20px}
  .paybox{border-radius:15px}
  .paybody{padding:16px}
  .pay-service{font-size:1.14rem;margin-bottom:12px}
  .pay-row{padding:10px 12px;font-size:.83rem}
  .pay-note{font-size:.76rem;margin-bottom:14px}
  .lb-stage figcaption{font-size:.92rem;padding:5px 15px}
  .legal h1{font-size:1.6rem}
  .legal h2{font-size:1.08rem}
  .legal p,.legal li{font-size:.88rem}
}

/* very small phones — one more notch down */
@media(max-width:380px){
  .wrap{padding:0 13px}
  .hero h1{font-size:1.48rem}
  h2{font-size:1.24rem}
  .card{padding:15px}
  .path-card{padding:11px;gap:10px}
  .path-num{width:34px;height:34px;font-size:1rem}
  .btn{padding:11px 16px;font-size:.79rem;min-height:41px}
  .tour-guide{width:70px}
  .tour-text{font-size:.79rem}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .orn .draw{stroke-dashoffset:0}
}
