/* =========================================================
   8Ways — Stylesheet
   1. Tokens & themes      6. Process
   2. Base & utilities     7. Packages / Stats
   3. Header & nav         8. Portfolio / Testimonials
   4. Hero                 9. FAQ / CTA / Contact
   5. About / Services    10. Footer / Responsive
   ========================================================= */

/* ---------- 1. TOKENS ---------- */
:root{
  --ink:        #0B0F1A;
  --ink-2:      #131B2E;
  --ink-3:      #1E2942;

  --bg:         #FBF7F0;
  --bg-alt:     #F4EDE1;
  --surface:    #FFFFFF;
  --text:       #14192B;
  --muted:      #5B6379;
  --line:       rgba(20,25,43,.12);
  --line-soft:  rgba(20,25,43,.07);

  --gold:       #B8862F;
  --gold-bright:#D9A441;
  --gold-soft:  rgba(217,164,65,.14);
  --rust:       #B5533C;

  --shadow-sm:  0 2px 8px rgba(11,15,26,.06);
  --shadow-md:  0 14px 34px -14px rgba(11,15,26,.22);
  --shadow-lg:  0 36px 70px -28px rgba(11,15,26,.32);

  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 34px;

  --ff-serif: "Fraunces", "Georgia", "Times New Roman", serif;
  --ff-sans:  "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;

  --container: 1220px;
  --pad: clamp(1.15rem, 4vw, 2.5rem);
  --sect: clamp(4.5rem, 9vw, 8rem);

  --ease: cubic-bezier(.22,.68,.28,1);
}

[data-theme="dark"]{
  --bg:        #090D16;
  --bg-alt:    #0F1524;
  --surface:   #121A2B;
  --text:      #F1ECE2;
  --muted:     #A2AABE;
  --line:      rgba(255,255,255,.13);
  --line-soft: rgba(255,255,255,.07);

  --gold:       #E3B75E;
  --gold-bright:#F0C978;
  --gold-soft:  rgba(227,183,94,.13);

  --shadow-sm: 0 2px 8px rgba(0,0,0,.4);
  --shadow-md: 0 14px 34px -14px rgba(0,0,0,.7);
  --shadow-lg: 0 36px 70px -26px rgba(0,0,0,.8);
}

/* ---------- 2. BASE ---------- */
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:92px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:var(--ff-sans);
  font-size:clamp(.98rem,.35vw + .9rem,1.05rem);
  line-height:1.7;
  color:var(--text);
  background:var(--bg);
  /* Stays `hidden`: with <html> at overflow:visible this propagates to the
     viewport and <body> itself computes to visible, so sticky descendants are
     unaffected. (Only an *intermediate* ancestor with hidden breaks sticky.) */
  overflow-x:hidden;
  transition:background .45s var(--ease), color .45s var(--ease);
}
body.nav-open{ overflow:hidden; }

img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; border:0; background:none; }
input,select,textarea{ font:inherit; color:inherit; }
ul,ol{ margin:0; padding:0; list-style:none; }

h1,h2,h3,h4,h5,h6{
  font-family:var(--ff-serif);
  font-weight:500;
  line-height:1.12;
  letter-spacing:-.02em;
  margin:0;
  text-transform:capitalize;
  font-variation-settings:"SOFT" 0,"WONK" 0;
}
p{ margin:0; }

::selection{ background:var(--gold-bright); color:#0B0F1A; }

:focus-visible{ outline:2.5px solid var(--gold-bright); outline-offset:3px; border-radius:4px; }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:var(--sect); position:relative; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.74rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.15rem;
}
.eyebrow::before{ content:""; width:26px; height:1.5px; background:currentColor; opacity:.6; }

.section-title{ font-size:clamp(2rem,4.4vw,3.4rem); }
.section-title em{ font-style:italic; color:var(--gold); }

.section-lead{ margin-top:1.25rem; color:var(--muted); font-size:1.03rem; max-width:56ch; }
.section-lead--center{ margin-inline:auto; text-align:center; }

.section-head{ text-align:center; margin-bottom:clamp(2.6rem,5vw,4.2rem); }
.section-head .eyebrow::before{ display:none; }

.txt-gold{ color:var(--gold-bright); }
.stars{ color:var(--gold-bright); letter-spacing:.14em; font-size:.92rem; }
.is-hidden{ display:none !important; }

/* buttons */
.btn{
  --btn-bg:var(--gold-bright); --btn-fg:#0B0F1A;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:.95rem 1.7rem; border-radius:999px;
  font-size:.93rem; font-weight:600; letter-spacing:.01em;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1.5px solid transparent;
  position:relative; overflow:hidden; isolation:isolate;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.btn::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.45),transparent 80%);
  transform:translateX(-120%); transition:transform .7s var(--ease);
}
.btn:hover::after{ transform:translateX(120%); }
.btn:hover{ transform:translateY(-3px); box-shadow:0 16px 30px -14px rgba(184,134,47,.85); }
.btn:active{ transform:translateY(-1px); }

.btn--gold{ --btn-bg:var(--gold-bright); --btn-fg:#0B0F1A; }
.btn--dark{ --btn-bg:var(--ink); --btn-fg:#FBF7F0; }
[data-theme="dark"] .btn--dark{ --btn-bg:#F1ECE2; --btn-fg:#0B0F1A; }
.btn--dark:hover{ box-shadow:var(--shadow-md); }

.btn--ghost{
  background:transparent; color:#F1ECE2;
  border-color:rgba(255,255,255,.28); backdrop-filter:blur(6px);
}
.btn--ghost:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.5); box-shadow:none; }

.btn--outline{
  background:transparent; color:var(--text); border-color:var(--line);
}
.btn--outline:hover{ border-color:var(--gold); color:var(--gold); box-shadow:none; background:var(--gold-soft); }

.btn--sm{ padding:.68rem 1.25rem; font-size:.85rem; }
.btn--full{ width:100%; }

/* reveal on scroll */
[data-reveal]{
  opacity:0; transform:translateY(28px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
  transition-delay:var(--rd,0ms);
}
[data-reveal].in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
}

/* ---------- PRELOADER ---------- */
.preloader{
  position:fixed; inset:0; z-index:9999;
  display:grid; place-content:center; justify-items:center; gap:1.4rem;
  background:var(--ink);
  transition:opacity .6s var(--ease), visibility .6s;
}
.preloader.done{ opacity:0; visibility:hidden; }
.preloader__book{ display:flex; gap:7px; align-items:flex-end; height:44px; }
.preloader__book span{
  width:9px; height:20px; border-radius:3px; background:var(--gold-bright);
  animation:pl 1s infinite var(--ease);
}
.preloader__book span:nth-child(2){ animation-delay:.15s; }
.preloader__book span:nth-child(3){ animation-delay:.3s; }
@keyframes pl{ 0%,100%{height:18px;opacity:.5} 50%{height:44px;opacity:1} }
.preloader__text{
  font-family:var(--ff-serif); color:#F1ECE2; letter-spacing:.32em;
  text-transform:uppercase; font-size:.72rem;
}

/* ---------- SCROLL PROGRESS ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0; z-index:1200;
  background:linear-gradient(90deg,var(--gold),var(--gold-bright),var(--rust));
  transition:width .12s linear;
}

/* ---------- 3. HEADER ---------- */
.header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding-block:1.05rem;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.header.scrolled{
  background:var(--bg);
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(14px) saturate(150%);
  -webkit-backdrop-filter:blur(14px) saturate(150%);
  padding-block:.62rem;
  border-bottom-color:var(--line-soft);
  box-shadow:0 10px 30px -22px rgba(0,0,0,.55);
}
.header__inner{ display:flex; align-items:center; gap:1.5rem; }

.logo{ display:flex; align-items:center; gap:.7rem; flex-shrink:0; color:#F1ECE2; transition:color .4s var(--ease); }
.header.scrolled .logo{ color:var(--text); }
.logo__mark{
  display:grid; place-items:center; width:44px; height:44px; border-radius:13px;
  color:var(--gold-bright);
  background:linear-gradient(150deg,rgba(217,164,65,.18),rgba(217,164,65,.04));
  border:1px solid rgba(217,164,65,.32);
  transition:transform .5s var(--ease);
}
.logo:hover .logo__mark{ transform:rotate(-8deg) scale(1.05); }
.logo__text{ display:flex; flex-direction:column; line-height:1.05; }
.logo__text strong{ font-family:var(--ff-serif); font-size:1.22rem; font-weight:600; letter-spacing:-.02em; }
.logo__text em{ font-style:normal; font-size:.6rem; letter-spacing:.26em; text-transform:uppercase; opacity:.72; }

.nav{ margin-left:auto; }
.nav__list{ display:flex; align-items:center; gap:.2rem; }
.nav__link{
  position:relative; display:block; padding:.5rem .78rem; border-radius:999px;
  font-size:.87rem; font-weight:500; color:rgba(241,236,226,.78);
  transition:color .3s var(--ease), background .3s var(--ease);
}
.header.scrolled .nav__link{ color:var(--muted); }
.nav__link::after{
  content:""; position:absolute; left:50%; bottom:.24rem; transform:translateX(-50%);
  width:0; height:2px; border-radius:2px; background:var(--gold-bright);
  transition:width .35s var(--ease);
}
.nav__link:hover, .header.scrolled .nav__link:hover{ color:var(--gold-bright); }
.nav__link.is-active::after{ width:16px; }
.nav__link.is-active{ color:#fff; }
.header.scrolled .nav__link.is-active{ color:var(--text); }

.header__actions{ display:flex; align-items:center; gap:.6rem; }

.theme-toggle{
  width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center;
  color:#F1ECE2; border:1px solid rgba(255,255,255,.22);
  transition:background .3s var(--ease), transform .5s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.header.scrolled .theme-toggle{ color:var(--text); border-color:var(--line); }
.theme-toggle:hover{ background:var(--gold-soft); transform:rotate(35deg); color:var(--gold-bright); }
.theme-toggle .icon-moon{ display:none; }
[data-theme="dark"] .theme-toggle .icon-sun{ display:none; }
[data-theme="dark"] .theme-toggle .icon-moon{ display:block; }

.burger{ display:none; width:42px; height:42px; border-radius:12px; border:1px solid rgba(255,255,255,.22); padding:11px 10px; }
.header.scrolled .burger{ border-color:var(--line); }
.burger span{
  display:block; height:2px; border-radius:2px; background:#F1ECE2; margin-bottom:5px;
  transition:transform .35s var(--ease), opacity .25s var(--ease), background .4s var(--ease);
}
.header.scrolled .burger span{ background:var(--text); }
.burger span:last-child{ margin-bottom:0; width:70%; }
body.nav-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.nav-open .burger span:nth-child(2){ opacity:0; }
body.nav-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); width:100%; }

/* ---------- 4. HERO ---------- */
.hero{
  position:relative; min-height:100svh;
  display:flex; align-items:center;
  padding-block:clamp(7rem,14vh,10rem) clamp(4rem,8vh,6rem);
  background:
    radial-gradient(120% 80% at 78% 12%, #1B2740 0%, transparent 58%),
    radial-gradient(90% 70% at 8% 88%, #241C33 0%, transparent 60%),
    linear-gradient(165deg,#0B0F1A 0%, #0E1526 52%, #0A0E18 100%);
  color:#F1ECE2;
  overflow:hidden;
  border-bottom-left-radius:clamp(24px,4vw,52px);
  border-bottom-right-radius:clamp(24px,4vw,52px);
}

/* ---- hero background photo ---- */
.hero__bg{ position:absolute; inset:0; overflow:hidden; z-index:0; }
.hero__bg img{
  width:100%; height:100%; object-fit:cover; object-position:center 30%;
  opacity:.72; filter:saturate(.92) contrast(1.06) brightness(1.12);
  transform:scale(1.08);
  animation:kenburns 26s ease-in-out infinite alternate;
}
@keyframes kenburns{
  from{ transform:scale(1.08) translate3d(0,0,0); }
  to  { transform:scale(1.2) translate3d(-1.5%,-2%,0); }
}
.hero__veil{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(100deg, rgba(9,13,22,.93) 0%, rgba(11,16,28,.74) 34%, rgba(11,16,28,.24) 62%, rgba(11,16,28,.5) 100%),
    linear-gradient(to top, rgba(9,13,22,.9) 0%, transparent 30%);
}

/* drifting gold sparks */
.spark{
  position:absolute; z-index:1; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(240,201,120,.95), rgba(217,164,65,0) 70%);
  filter:blur(.4px);
}
.spark--1{ width:7px; height:7px;  left:14%; top:62%; animation:float-up 13s linear infinite; }
.spark--2{ width:4px; height:4px;  left:48%; top:78%; animation:float-up 17s linear infinite 3s; }
.spark--3{ width:9px; height:9px;  left:72%; top:70%; animation:float-up 21s linear infinite 6s; }
@keyframes float-up{
  0%  { transform:translate3d(0,0,0) scale(.6); opacity:0; }
  12% { opacity:.9; }
  80% { opacity:.55; }
  100%{ transform:translate3d(38px,-330px,0) scale(1.15); opacity:0; }
}

.hero__glow{
  position:absolute; width:min(780px,90vw); aspect-ratio:1; right:-14%; top:-22%;
  background:radial-gradient(circle, rgba(217,164,65,.3), rgba(217,164,65,0) 66%);
  filter:blur(28px); pointer-events:none;
  animation:drift 16s ease-in-out infinite alternate;
}
@keyframes drift{ from{ transform:translate3d(0,0,0) scale(1);} to{ transform:translate3d(-50px,42px,0) scale(1.12);} }
.hero__grain{
  position:absolute; inset:0; opacity:.24; pointer-events:none; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}
.hero__inner{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center;
}

.pill{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.46rem 1rem; border-radius:999px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  font-size:.78rem; letter-spacing:.06em; color:rgba(241,236,226,.9);
  backdrop-filter:blur(8px);
}
.pill__dot{
  width:7px; height:7px; border-radius:50%; background:var(--gold-bright);
  box-shadow:0 0 0 0 rgba(217,164,65,.7); animation:ping 2.2s infinite;
}
@keyframes ping{ 70%{ box-shadow:0 0 0 9px rgba(217,164,65,0);} 100%{ box-shadow:0 0 0 0 rgba(217,164,65,0);} }

.hero__title{
  margin-top:1.5rem;
  font-size:clamp(2.6rem,6vw,4.8rem);
  font-weight:400; line-height:1.03; letter-spacing:-.035em;
  text-shadow:0 6px 34px rgba(0,0,0,.45);
}
/* line-by-line curtain reveal */
.hero__title .line{ display:block; overflow:hidden; padding-block:.06em; }
.hero__title .line > span{
  display:block;
  transform:translateY(115%);
  animation:line-up 1s .25s var(--ease) forwards;
}
.hero__title .line:nth-child(2) > span{ animation-delay:.42s; }
@keyframes line-up{ to{ transform:none; } }

/* animated gold sheen on the key word */
.shine{
  font-style:normal;
  background:linear-gradient(100deg,#B8862F 0%,#F5D98F 22%,#FFF3D2 34%,#E0B25F 48%,#B8862F 70%);
  background-size:260% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:sheen 5.5s ease-in-out infinite;
}
@keyframes sheen{ 0%,100%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } }

/* rotating genre line */
.hero__rotator{
  margin-top:1.1rem; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap;
  font-family:var(--ff-serif); font-size:clamp(1.05rem,1.9vw,1.4rem);
  color:rgba(241,236,226,.62); letter-spacing:-.01em;
}
.rotator{
  position:relative; display:inline-grid; min-width:11ch; height:1.5em;
  overflow:hidden; vertical-align:bottom;
}
.rotator__word{
  grid-area:1/1; align-self:center;
  color:var(--gold-bright); font-style:italic; white-space:nowrap;
  opacity:0; transform:translateY(60%) rotateX(-40deg);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.rotator__word.is-on{ opacity:1; transform:none; }
.rotator__word.is-out{ opacity:0; transform:translateY(-60%) rotateX(40deg); }

.underline-sketch{ position:relative; display:inline-block; font-style:italic; }
.underline-sketch::after{
  content:""; position:absolute; left:-1%; right:-1%; bottom:.06em; height:.14em;
  background:linear-gradient(90deg,var(--gold-bright),rgba(181,83,60,.85));
  border-radius:.2em; z-index:-1; transform:scaleX(0); transform-origin:left;
  animation:swipe 1s 1.15s var(--ease) forwards;
}
@keyframes swipe{ to{ transform:scaleX(1);} }

.hero__lead{ margin-top:1.6rem; max-width:52ch; color:rgba(241,236,226,.76); font-size:1.06rem; }
.hero__lead strong{ color:#fff; font-weight:600; }

.hero__actions{ margin-top:2.3rem; display:flex; flex-wrap:wrap; gap:.85rem; }

.hero__proof{ margin-top:2.8rem; display:flex; align-items:center; gap:1rem; }
.avatars{ display:flex; }
.avatars img{
  width:42px; height:42px; border-radius:50%;
  object-fit:cover; object-position:center 22%;
  border:2px solid #0E1526; background:#1B2740;
  margin-left:-13px;
  transition:transform .35s var(--ease);
}
.avatars img:first-child{ margin-left:0; }
.avatars img:hover{ transform:translateY(-4px) scale(1.08); z-index:2; position:relative; }
.hero__proof-text p{ font-size:.85rem; color:rgba(241,236,226,.66); }
.hero__proof-text strong{ color:#fff; }

/* photo composition */
.hero__visual{ position:relative; height:clamp(380px,48vw,560px); perspective:1400px; }
.ring{
  position:absolute; inset:auto; left:50%; top:50%; translate:-50% -50%;
  width:min(430px,80%); aspect-ratio:1; border-radius:50%;
  border:1px dashed rgba(217,164,65,.3);
  animation:spin 44s linear infinite;
}
.ring::before{
  content:""; position:absolute; inset:11%; border-radius:50%;
  border:1px solid rgba(255,255,255,.07);
}
@keyframes spin{ to{ transform:rotate(360deg); } }

.shots{
  position:absolute; inset:0;
  transform-style:preserve-3d;
  transition:transform .6s var(--ease);
}
@keyframes bob{ 0%,100%{ translate:0 0;} 50%{ translate:0 -14px;} }

.shot{ position:absolute; margin:0; overflow:hidden; transform-style:preserve-3d; }
.shot img{ width:100%; height:100%; object-fit:cover; }
.shot::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
  border-radius:inherit;
}

.shot--main{
  left:16%; top:2%; width:62%; height:92%;
  border-radius:clamp(80px,13vw,180px) clamp(80px,13vw,180px) 22px 22px; /* arch — editorial, not a plain box */
  transform:rotate(2.5deg) translateZ(0);
  box-shadow:0 46px 80px -30px rgba(0,0,0,.9);
  animation:bob 8s ease-in-out infinite;
}
.shot--main img{ object-position:center 38%; }

.shot--sub{
  left:-2%; bottom:4%; width:44%; aspect-ratio:4/3;
  border-radius:18px;
  border:7px solid #0E1526;
  transform:rotate(-5deg) translateZ(60px);
  box-shadow:0 34px 60px -24px rgba(0,0,0,.95);
  animation:bob 7s ease-in-out infinite .9s;
  z-index:4;
}

.float-card{
  position:absolute; z-index:5;
  display:flex; align-items:center; gap:.72rem;
  padding:.72rem .95rem; border-radius:15px;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.17);
  backdrop-filter:blur(14px); box-shadow:0 20px 40px -22px rgba(0,0,0,.8);
  animation:bob 6s ease-in-out infinite;
}
.float-card__ico{ font-size:1.2rem; }
.float-card strong{ display:block; font-size:.82rem; color:#fff; line-height:1.3; }
.float-card em{ font-style:normal; font-size:.7rem; color:rgba(241,236,226,.6); }
.float-card--1{ left:-8%; top:14%; animation-delay:1.4s; z-index:6; }
.float-card--2{ right:-6%; bottom:16%; animation-delay:.2s; }

.hero__scroll{
  position:absolute; left:50%; bottom:1.7rem; translate:-50% 0; z-index:3;
  display:flex; align-items:center; gap:.6rem;
  font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(241,236,226,.5);
}
.hero__scroll span{
  width:22px; height:34px; border-radius:99px; border:1px solid rgba(241,236,226,.3);
  position:relative;
}
.hero__scroll span::after{
  content:""; position:absolute; left:50%; top:7px; translate:-50% 0;
  width:3px; height:6px; border-radius:2px; background:var(--gold-bright);
  animation:wheel 1.9s infinite var(--ease);
}
@keyframes wheel{ 0%{opacity:0;translate:-50% 0} 40%{opacity:1} 100%{opacity:0;translate:-50% 14px} }

/* ---------- MARQUEE ---------- */
.marquee{
  overflow:hidden; padding-block:1.5rem;
  background:var(--bg-alt);
  border-bottom:1px solid var(--line-soft);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.marquee__track{ display:flex; width:max-content; animation:scroll-x 34s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__group{ display:flex; align-items:center; gap:2.6rem; padding-right:2.6rem; }
.marquee__group span{
  font-family:var(--ff-serif); font-size:clamp(1.1rem,2.2vw,1.6rem);
  color:var(--muted); opacity:.75; white-space:nowrap; letter-spacing:-.01em;
  transition:color .3s, opacity .3s;
}
.marquee__group span:hover{ color:var(--gold); opacity:1; }
.marquee__group i{ color:var(--gold); font-size:.7rem; font-style:normal; }
@keyframes scroll-x{ to{ transform:translateX(-50%); } }

/* ---------- 5. ABOUT ---------- */
.about__grid{
  display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(2.4rem,6vw,5rem); align-items:center;
}
.about__visual{ position:relative; padding-bottom:3.5rem; padding-right:3rem; }
.about__img{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.about__img--1{ aspect-ratio:4/3; }
.about__img--2{
  position:absolute; right:0; bottom:0; width:52%; aspect-ratio:1;
  border:8px solid var(--bg); border-radius:var(--r-lg);
}
.about__img img{ width:100%; height:100%; object-fit:cover; }
.about__img--1 img{ transition:transform 1.1s var(--ease); }
.about__visual:hover .about__img--1 img{ transform:scale(1.05); }
.about__badge{
  position:absolute; left:-6px; top:-16px; z-index:3;
  display:flex; align-items:center; gap:.7rem;
  padding:.85rem 1.1rem; border-radius:var(--r-md);
  background:var(--gold-bright); color:#0B0F1A;
  box-shadow:0 20px 34px -18px rgba(184,134,47,.9);
  animation:bob 6s ease-in-out infinite;
}
.about__badge strong{ font-family:var(--ff-serif); font-size:2rem; line-height:1; }
.about__badge span{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; line-height:1.25; font-weight:600; }

.checklist{ margin-top:2rem; display:grid; gap:.85rem; }
.checklist li{ display:flex; gap:.85rem; align-items:flex-start; font-size:.97rem; color:var(--muted); }
.checklist strong{ color:var(--text); }
.check{
  flex-shrink:0; width:24px; height:24px; border-radius:50%; margin-top:.15rem;
  display:grid; place-items:center; font-size:.72rem; font-weight:700;
  background:var(--gold-soft); color:var(--gold); border:1px solid rgba(184,134,47,.28);
}

.about__foot{
  margin-top:2.4rem; padding-top:2rem; border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;
}
.signature{ display:flex; align-items:center; gap:1rem; color:var(--gold); }
.signature p{ font-size:.82rem; color:var(--muted); line-height:1.5; }
.signature strong{ color:var(--text); }
.signature em{ font-style:normal; }

/* ---------- SERVICES ---------- */
.services{ background:var(--bg-alt); }
.card{
  position:relative; padding:2.2rem 1.9rem 2rem;
  background:var(--surface); border:1px solid var(--line-soft);
  border-radius:var(--r-lg); box-shadow:var(--shadow-sm);
  overflow:hidden;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
.card::before{
  content:""; position:absolute; inset:0 auto auto 0; width:100%; height:3px;
  background:linear-gradient(90deg,var(--gold-bright),var(--rust));
  transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease);
}
.card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.card:hover::before{ transform:scaleX(1); }
.card__ico{
  width:56px; height:56px; border-radius:17px; display:grid; place-items:center;
  background:var(--gold-soft); color:var(--gold); margin-bottom:1.35rem;
  transition:transform .45s var(--ease), background .45s var(--ease);
}
.card__ico svg{ width:26px; height:26px; }
.card:hover .card__ico{ transform:rotate(-7deg) scale(1.07); background:var(--gold-bright); color:#0B0F1A; }
.card h3{ font-size:1.32rem; margin-bottom:.7rem; }
.card p{ color:var(--muted); font-size:.94rem; }
.card__tag{
  display:inline-block; margin-top:1.2rem; padding:.28rem .75rem; border-radius:99px;
  font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600;
  color:var(--muted); border:1px solid var(--line);
}

/* ---------- 5b. SERVICES — SCROLL-DRIVEN HORIZONTAL SLIDER ---------- */
/* Base = native swipe. JS adds .is-pinned to upgrade it to a scroll-driven
   track, so no-JS and reduced-motion users still get a usable slider. */
.hslider{ position:relative; }
.hslider__pin{ position:relative; overflow:hidden; }
.hslider__track{
  display:flex; align-items:stretch; gap:1.4rem;
  /* 100% (not 100vw) — vw includes the scrollbar and would overflow the page */
  padding-inline:max(var(--pad), (100% - var(--container)) / 2 + var(--pad));
  padding-block:.5rem 1.4rem;
  overflow-x:auto; scroll-snap-type:x proximity;
  scrollbar-width:none; -ms-overflow-style:none;
}
.hslider__track::-webkit-scrollbar{ display:none; }
.hslider__track > .card{
  flex:0 0 clamp(268px, 24vw, 352px);
  scroll-snap-align:center;
}

/* upgraded state — pinned viewport, transform driven by scroll position.
   The heading sits inside the pin so the pinned frame reads as one composed
   screen instead of a centred strip floating in empty space. */
.hslider.is-pinned .hslider__pin{
  position:sticky; top:0;
  height:100vh; display:flex; flex-direction:column; justify-content:center;
  padding-block:clamp(1rem,4vh,2.4rem);
}
.hslider.is-pinned .section-head{ margin-bottom:clamp(1.4rem,4vh,2.8rem); }
.hslider.is-pinned .hslider__track{
  overflow:visible; scroll-snap-type:none;
  will-change:transform;
}
/* the pin already supplies the section's vertical rhythm */
.services.is-hpinned{ padding-block:0; }

.hslider__bar{
  display:none; margin:clamp(1.2rem,3vh,2.2rem) auto 0;
  width:min(340px,50vw); height:2px; border-radius:2px;
  background:var(--line); overflow:hidden;
}
.hslider.is-pinned .hslider__bar{ display:block; }
.hslider__bar span{
  display:block; height:100%; width:var(--p,0%);
  background:linear-gradient(90deg,var(--gold-bright),var(--rust));
  border-radius:2px;
}

/* ---------- 6. PROCESS ---------- */
/* vertical timeline — numbered badge rail on the left, content card on the right */
.steps{
  --badge:68px;
  display:grid; gap:44px;
  position:relative;
}
/* solid rail behind the badges; the scroll-driven fill rides on top of it */
.steps::before{
  content:""; position:absolute; z-index:0;
  left:calc(var(--badge) / 2); translate:-50% 0;
  top:10px; bottom:10px; width:2px;
  background:var(--line); border-radius:3px;
}
.step{
  position:relative;
  display:grid; grid-template-columns:var(--badge) 1fr;
  gap:clamp(1.1rem,2.6vw,1.5rem);
  align-items:start;
}
.step__num{
  position:relative; z-index:1;
  width:var(--badge); height:var(--badge); border-radius:20px;
  display:grid; place-items:center;
  font-family:var(--ff-serif); font-weight:700; font-size:1.06rem;
  color:var(--gold); background:var(--surface);
  border:1.5px solid var(--line-soft);
  box-shadow:0 10px 26px -14px rgba(184,134,47,.5);
  transition:transform .5s var(--ease), background .4s, color .4s;
}
.step:hover .step__num{ background:var(--gold-bright); color:#0B0F1A; transform:scale(1.07) rotate(-6deg); }
.step__card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:30px 32px;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .4s;
}
.step:hover .step__card{ transform:translateX(8px); box-shadow:var(--shadow-md); border-color:rgba(217,164,65,.38); }
.step h3{ font-size:1.22rem; margin-bottom:10px; }
.step p{ font-size:.94rem; color:var(--muted); }

/* ---------- 7. PACKAGES ---------- */
.packages{ background:var(--bg-alt); }
/* ---- the single package ---- */
.solo{
  display:grid; grid-template-columns:.86fr 1.14fr;
  max-width:1060px; margin-inline:auto;
  border-radius:var(--r-xl); overflow:hidden;
  background:var(--surface); border:1px solid var(--line-soft);
  box-shadow:var(--shadow-lg);
}

/* left rail — the dark, gold-lit face the old featured plan used */
.solo__side{
  position:relative; overflow:hidden;
  padding:clamp(2.2rem,3.5vw,3.2rem) clamp(1.8rem,2.8vw,2.6rem);
  background:
    radial-gradient(90% 70% at 12% 0%, rgba(217,164,65,.22), transparent 62%),
    linear-gradient(165deg,var(--ink-2),var(--ink));
  color:#F1ECE2;
  display:flex; flex-direction:column;
}
.solo__side::after{
  content:""; position:absolute; right:-45%; bottom:-40%;
  width:95%; aspect-ratio:1; border-radius:50%;
  border:1px dashed rgba(217,164,65,.24);
  animation:spin 40s linear infinite;
}
.solo__side > *{ position:relative; z-index:2; }

.solo__flag{
  align-self:flex-start; margin-bottom:1.5rem;
  padding:.32rem 1rem; border-radius:999px;
  font-size:.68rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
  background:var(--gold-bright); color:#0B0F1A; white-space:nowrap;
  box-shadow:0 10px 22px -12px rgba(217,164,65,.95);
}
.solo__kicker{
  display:block; margin-bottom:.7rem;
  font-family:var(--ff-serif); font-size:.8rem; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--gold-bright);
}
.solo__title{ font-size:clamp(1.5rem,2.2vw,1.95rem); line-height:1.18; }

.solo__price{
  margin-top:1.6rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.14);
  font-family:var(--ff-serif); font-size:3.1rem; font-weight:600;
  letter-spacing:-.03em; line-height:1; color:var(--gold-bright);
}
.solo__price .cur{ font-size:1.4rem; vertical-align:super; margin-right:.1rem; }
.solo__price em{
  font-family:var(--ff-sans); font-style:normal; font-size:.78rem; font-weight:400;
  color:rgba(241,236,226,.55); margin-left:.5rem; letter-spacing:0;
}

.solo__fin{
  margin-top:auto; padding-top:1.7rem;
  display:flex; align-items:flex-start; gap:.6rem;
  font-size:.8rem; line-height:1.6; color:rgba(241,236,226,.62);
}
.solo__fin svg{ flex:0 0 auto; margin-top:.22rem; color:var(--gold-bright); }
.solo__fin strong{ color:#fff; font-weight:600; }

/* right side — the pitch */
.solo__main{ padding:clamp(2rem,3.2vw,2.9rem) clamp(1.7rem,2.6vw,2.5rem); }
.solo__lead{ font-size:.92rem; color:var(--muted); }
.solo__lead em{ font-style:italic; color:var(--gold); }

.solo__list{ margin:1.7rem 0; display:grid; grid-template-columns:1fr 1fr; gap:.75rem 1.4rem; }
.solo__list li{ position:relative; padding-left:1.6rem; font-size:.88rem; color:var(--muted); }
.solo__list li::before{
  content:"✓"; position:absolute; left:0; top:0;
  font-size:.78rem; font-weight:700; color:var(--gold);
}
.solo__list strong{ color:var(--text); font-weight:600; }

.solo__actions{ display:flex; flex-wrap:wrap; gap:.75rem; }
.solo__micro{ margin-top:1.3rem; font-size:.78rem; color:var(--muted); }

.packages__note{ text-align:center; margin-top:2.6rem; color:var(--muted); font-size:.94rem; }
.packages__note a{ color:var(--gold); font-weight:600; border-bottom:1px solid currentColor; }

/* ---------- STATS ---------- */
.stats{
  padding-block:clamp(3rem,6vw,4.5rem);
  background:
    radial-gradient(80% 120% at 50% 0%, #1C2740 0%, transparent 60%),
    linear-gradient(120deg,#0B0F1A,#131B2E);
  color:#F1ECE2;
}
.stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; text-align:center; }
.stat{ position:relative; }
.stat + .stat::before{
  content:""; position:absolute; left:0; top:15%; bottom:15%; width:1px;
  background:rgba(255,255,255,.12);
}
.stat strong{
  display:block; font-family:var(--ff-serif); font-weight:600;
  font-size:clamp(2.4rem,5vw,3.6rem); letter-spacing:-.03em; line-height:1;
  background:linear-gradient(120deg,#F1ECE2,var(--gold-bright));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.stat span{ display:block; margin-top:.6rem; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(241,236,226,.55); }

/* ---------- 8. PORTFOLIO ---------- */
.filters{ display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; margin-top:1.8rem; }
.filter{
  padding:.55rem 1.15rem; border-radius:999px; font-size:.85rem; font-weight:500;
  color:var(--muted); border:1px solid var(--line);
  transition:all .32s var(--ease);
}
.filter:hover{ color:var(--gold); border-color:var(--gold); }
.filter.is-active{ background:var(--ink); color:#FBF7F0; border-color:var(--ink); }
[data-theme="dark"] .filter.is-active{ background:var(--gold-bright); color:#0B0F1A; border-color:var(--gold-bright); }

.grid-books{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }

.pcard{
  position:relative; margin:0; overflow:hidden;
  border-radius:var(--r-lg);
  background:var(--surface); border:1px solid var(--line-soft);
  box-shadow:var(--shadow-sm);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.pcard.filtered-out{ display:none; }
.pcard:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }

.pcard__media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--bg-alt); }
.pcard__media img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  transition:transform .8s var(--ease);
}
/* the one portrait mockup — nudge the crop so the whole cover stays in frame */
.pcard__media--tall img{ object-position:center 46%; }
.pcard:hover .pcard__media img{ transform:scale(1.06); }

/* genre chip floats on the artwork, caption stays below it — no text on text */
.pcard__genre{
  position:absolute; z-index:2; left:1rem; top:1rem;
  padding:.3rem .75rem; border-radius:99px;
  font-size:.62rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:#0B0F1A; background:var(--gold-bright);
  box-shadow:0 8px 18px -8px rgba(11,15,26,.8);
  transition:transform .45s var(--ease);
}
.pcard:hover .pcard__genre{ transform:translateY(-3px); }

.pcard figcaption{
  padding:1.15rem 1.3rem 1.35rem;
  border-top:1px solid var(--line-soft);
}
.pcard figcaption h3{
  font-size:1.14rem; font-weight:600; line-height:1.25;
  transition:color .35s var(--ease);
}
.pcard:hover figcaption h3{ color:var(--gold); }
.pcard figcaption p{
  margin-top:.4rem; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
}

/* ---------- TESTIMONIALS ---------- */
.testimonials{ background:var(--bg-alt); }
.slider{ display:flex; align-items:center; gap:1rem; }
.slider__viewport{ overflow:hidden; flex:1; padding:1rem .3rem 1.4rem; }
.slider__track{ display:flex; transition:transform .65s var(--ease); }
.quote{
  position:relative; box-sizing:border-box;
  flex:0 0 calc(100% / 3);
  padding:2.4rem 2.4rem 2.2rem;
}
.quote > *{ position:relative; z-index:1; }
.quote::before{
  content:""; position:absolute; inset:0 .75rem; z-index:0;
  background:var(--surface); border:1px solid var(--line-soft);
  border-radius:var(--r-lg); box-shadow:var(--shadow-sm);
  transition:box-shadow .4s var(--ease), transform .4s var(--ease);
}
.quote:hover::before{ box-shadow:var(--shadow-md); transform:translateY(-5px); }
.quote__mark{
  display:block; font-family:var(--ff-serif); font-size:4.5rem; line-height:.6;
  color:var(--gold-soft); margin-bottom:.3rem;
}
.quote .stars{ margin-bottom:.9rem; }
.quote p{ font-size:.97rem; color:var(--muted); }
.quote footer{ margin-top:1.6rem; padding-top:1.3rem; border-top:1px solid var(--line-soft); display:flex; align-items:center; gap:.85rem; }
.quote__av{
  width:52px; height:52px; border-radius:50%; flex-shrink:0;
  object-fit:cover; object-position:center 20%;
  background:var(--bg-alt);
  box-shadow:0 0 0 2px var(--surface), 0 0 0 3.5px var(--gold-soft);
}
.quote footer strong{ display:block; font-size:.95rem; }
.quote footer em{ font-style:normal; font-size:.8rem; color:var(--muted); }

.slider__arrow{
  flex-shrink:0; width:48px; height:48px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--surface); border:1px solid var(--line); color:var(--text);
  box-shadow:var(--shadow-sm);
  transition:all .35s var(--ease);
}
.slider__arrow:hover{ background:var(--gold-bright); color:#0B0F1A; border-color:transparent; transform:scale(1.08); }
.slider__dots{ display:flex; justify-content:center; gap:.5rem; margin-top:1.6rem; }
.slider__dots button{
  width:9px; height:9px; border-radius:99px; background:var(--line);
  transition:all .35s var(--ease);
}
.slider__dots button.is-active{ width:26px; background:var(--gold-bright); }

/* ---------- 9. FAQ ---------- */
.faq{ background:var(--bg-alt); }
.faq__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.2rem,6vw,4.5rem); align-items:start; }
.faq__aside{ position:sticky; top:120px; }
.faq__aside .btn{ margin-top:1.8rem; }

.accordion{ display:grid; gap:.75rem; }
.acc{
  background:var(--surface); border:1px solid var(--line-soft);
  border-radius:var(--r-md); overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.acc.open{ border-color:rgba(184,134,47,.45); box-shadow:var(--shadow-md); }
.acc__head{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
  padding:1.25rem 1.5rem; text-align:left;
  font-family:var(--ff-serif); font-size:1.06rem; font-weight:500; letter-spacing:-.01em;
  transition:color .3s var(--ease);
}
.acc__head:hover{ color:var(--gold); }
.acc.open .acc__head{ color:var(--gold); }
.acc__ico{
  position:relative; flex-shrink:0; width:28px; height:28px; border-radius:50%;
  border:1px solid var(--line); transition:all .4s var(--ease);
}
.acc__ico::before,.acc__ico::after{
  content:""; position:absolute; left:50%; top:50%; translate:-50% -50%;
  background:currentColor; border-radius:2px;
}
.acc__ico::before{ width:11px; height:1.6px; }
.acc__ico::after{ width:1.6px; height:11px; transition:transform .4s var(--ease); }
.acc.open .acc__ico{ background:var(--gold-bright); color:#0B0F1A; border-color:transparent; rotate:90deg; }
.acc.open .acc__ico::after{ transform:scaleY(0); }

.acc__panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--ease); }
.acc.open .acc__panel{ grid-template-rows:1fr; }
.acc__body{ overflow:hidden; }
.acc__body p{
  padding:0 1.5rem 1.4rem; color:var(--muted); font-size:.94rem;
}
.acc__body em{ color:var(--text); font-style:italic; }
.acc__body strong{ color:var(--text); }

/* ---------- CTA ---------- */
.cta{
  position:relative; overflow:hidden; text-align:center;
  padding-block:clamp(4rem,8vw,6.5rem);
  background:#0B0F1A;
  color:#F1ECE2;
}
.cta__bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:center 40%; opacity:.42;
  filter:saturate(.7) contrast(1.05);
}
.cta::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(70% 130% at 50% 110%, rgba(217,164,65,.34) 0%, transparent 62%),
    linear-gradient(140deg, rgba(11,15,26,.92), rgba(26,35,56,.78) 55%, rgba(36,28,51,.92));
}
.cta__grain{
  position:absolute; inset:0; z-index:2; opacity:.2; mix-blend-mode:overlay; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.cta__inner{ position:relative; z-index:3; }
.cta h2{ font-size:clamp(2rem,4.6vw,3.4rem); max-width:20ch; margin-inline:auto; }
.cta p{ margin:1.3rem auto 0; max-width:56ch; color:rgba(241,236,226,.7); }
.cta__actions{ margin-top:2.2rem; display:flex; flex-wrap:wrap; gap:.85rem; justify-content:center; }

/* ---------- CONTACT ---------- */
.contact__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.2rem,6vw,4.5rem); align-items:start; }
.contact__list{ margin-top:2.4rem; display:grid; gap:1.35rem; }
.contact__list li{ display:flex; gap:1rem; align-items:flex-start; }
.contact__ico{
  flex-shrink:0; width:46px; height:46px; border-radius:14px; display:grid; place-items:center;
  background:var(--gold-soft); color:var(--gold); border:1px solid rgba(184,134,47,.22);
}
.contact__ico svg{ width:21px; height:21px; }
.contact__list strong{ display:block; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.contact__list a,.contact__list span:not(.contact__ico){ font-size:1rem; color:var(--text); transition:color .3s; }
.contact__list a:hover{ color:var(--gold); }

.form{
  background:var(--surface); border:1px solid var(--line-soft);
  border-radius:var(--r-lg); padding:clamp(1.6rem,3vw,2.4rem);
  box-shadow:var(--shadow-md); display:grid; gap:1.1rem;
}
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.field{ display:grid; gap:.42rem; }
.field label{ font-size:.79rem; font-weight:600; letter-spacing:.06em; color:var(--muted); text-transform:uppercase; }
.field input,.field select,.field textarea{
  width:100%; padding:.85rem 1rem; border-radius:var(--r-sm);
  background:var(--bg); border:1.5px solid var(--line);
  font-size:.95rem; resize:vertical;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
}
.field select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235B6379' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem;
}
.field input::placeholder,.field textarea::placeholder{ color:var(--muted); opacity:.6; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 4px var(--gold-soft);
}
.field.invalid input,.field.invalid select,.field.invalid textarea{ border-color:#D2564A; box-shadow:0 0 0 4px rgba(210,86,74,.12); }
.field__err{ font-size:.76rem; color:#D2564A; min-height:0; }

.consent{ display:flex; gap:.7rem; align-items:flex-start; font-size:.87rem; color:var(--muted); cursor:pointer; }
.consent input{ width:19px; height:19px; margin-top:.15rem; accent-color:var(--gold); cursor:pointer; flex-shrink:0; }
.consent.invalid span{ color:#D2564A; }

#submitBtn{ position:relative; }
.btn__spinner{
  width:16px; height:16px; border-radius:50%; display:none;
  border:2px solid rgba(11,15,26,.25); border-top-color:#0B0F1A;
  animation:spin .7s linear infinite;
}
#submitBtn.loading .btn__spinner{ display:block; }
#submitBtn.loading{ pointer-events:none; opacity:.8; }

.form__status{ font-size:.9rem; text-align:center; min-height:1.2em; }
.form__status.ok{ color:#1E8E5A; }
.form__status.err{ color:#D2564A; }

/* ---------- 10. FOOTER ---------- */
.footer{
  background:var(--ink); color:rgba(241,236,226,.68);
  padding-top:clamp(3.5rem,7vw,5.5rem);
  border-top-left-radius:clamp(24px,4vw,52px);
  border-top-right-radius:clamp(24px,4vw,52px);
  margin-top:-1px;
}
.footer__grid{
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1.4fr; gap:2.5rem;
  padding-bottom:3rem;
}
.logo--footer{ color:#F1ECE2; margin-bottom:1.2rem; }
.footer__brand p{ font-size:.9rem; max-width:34ch; }
.socials{ display:flex; gap:.55rem; margin-top:1.5rem; }
.socials a{
  width:38px; height:38px; border-radius:11px; display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.14); color:rgba(241,236,226,.75);
  transition:all .35s var(--ease);
}
.socials a:hover{ background:var(--gold-bright); color:#0B0F1A; border-color:transparent; transform:translateY(-3px); }

.footer__col h4{ font-size:1rem; color:#F1ECE2; margin-bottom:1.1rem; }
.footer__col ul{ display:grid; gap:.6rem; }
.footer__col a{ font-size:.9rem; transition:color .3s, padding-left .3s; }
.footer__col a:hover{ color:var(--gold-bright); padding-left:5px; }
.footer__news p{ font-size:.88rem; margin-bottom:1.1rem; }

.news{ display:flex; gap:.5rem; }
.news input{
  flex:1; min-width:0; padding:.8rem 1rem; border-radius:var(--r-sm);
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  color:#F1ECE2; font-size:.9rem;
  transition:border-color .3s, background .3s;
}
.news input::placeholder{ color:rgba(241,236,226,.4); }
.news input:focus{ outline:none; border-color:var(--gold-bright); background:rgba(255,255,255,.1); }
.news button{
  width:46px; flex-shrink:0; border-radius:var(--r-sm);
  display:grid; place-items:center;
  background:var(--gold-bright); color:#0B0F1A;
  transition:transform .3s var(--ease), background .3s;
}
.news button:hover{ transform:translateX(3px); }
.news__status{ font-size:.8rem; margin-top:.6rem; color:var(--gold-bright); min-height:1em; }

.footer__bottom{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  padding-block:1.5rem; border-top:1px solid rgba(255,255,255,.1);
  font-size:.83rem;
}
.footer__bottom ul{ display:flex; gap:1.5rem; flex-wrap:wrap; }
.footer__bottom a:hover{ color:var(--gold-bright); }

/* ---------- BACK TO TOP ---------- */
.to-top{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:900;
  width:48px; height:48px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--gold-bright); color:#0B0F1A;
  box-shadow:0 14px 28px -12px rgba(184,134,47,.95);
  opacity:0; visibility:hidden; transform:translateY(14px);
  transition:all .4s var(--ease);
}
.to-top.show{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ transform:translateY(-4px) scale(1.06); }

/* =========================================================
   11. CONSULTATION MODAL
   ========================================================= */
.modal{
  position:fixed; inset:0; z-index:2000;
  display:grid; place-items:center; padding:1.2rem;
  visibility:hidden; opacity:0;
  transition:opacity .4s var(--ease), visibility .4s;
}
.modal.is-open{ visibility:visible; opacity:1; }

.modal__overlay{
  position:absolute; inset:0;
  background:rgba(7,10,18,.72);
  backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px);
}

.modal__dialog{
  position:relative; z-index:2;
  width:min(940px,100%); max-height:calc(100vh - 2.4rem);
  display:grid; grid-template-columns:.82fr 1.18fr;
  border-radius:var(--r-xl); overflow:hidden;
  background:var(--surface);
  box-shadow:0 60px 120px -40px rgba(0,0,0,.75);
  transform:translateY(26px) scale(.965);
  opacity:0;
  transition:transform .5s var(--ease), opacity .45s var(--ease);
}
.modal.is-open .modal__dialog{ transform:none; opacity:1; }

.modal__close{
  position:absolute; top:.9rem; right:.9rem; z-index:5;
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  color:var(--text); background:var(--surface);
  border:1px solid var(--line);
  transition:transform .35s var(--ease), background .3s, color .3s;
}
.modal__close:hover{ transform:rotate(90deg); background:var(--gold-bright); color:#0B0F1A; border-color:transparent; }

/* left panel */
.modal__aside{
  position:relative; overflow:hidden;
  padding:2.4rem 2rem;
  background:
    radial-gradient(90% 70% at 15% 0%, rgba(217,164,65,.24), transparent 62%),
    linear-gradient(165deg,#131B2E,#0B0F1A);
  color:#F1ECE2;
  display:flex; flex-direction:column;
}
.modal__aside::after{
  content:""; position:absolute; right:-40%; bottom:-38%;
  width:90%; aspect-ratio:1; border-radius:50%;
  border:1px dashed rgba(217,164,65,.24);
  animation:spin 40s linear infinite;
}
.modal__ico{
  width:60px; height:60px; border-radius:18px; display:grid; place-items:center;
  color:var(--gold-bright);
  background:rgba(217,164,65,.14); border:1px solid rgba(217,164,65,.3);
  margin-bottom:1.4rem;
}
.modal__aside h3{ font-size:1.75rem; line-height:1.15; }
.modal__aside ul{ margin-top:1.4rem; display:grid; gap:.7rem; position:relative; z-index:2; }
.modal__aside li{
  position:relative; padding-left:1.5rem; font-size:.87rem; color:rgba(241,236,226,.76);
}
.modal__aside li::before{
  content:"✓"; position:absolute; left:0; color:var(--gold-bright); font-weight:700; font-size:.78rem;
}
.modal__proof{
  margin-top:auto; padding-top:1.6rem; display:flex; align-items:center; gap:.8rem;
  position:relative; z-index:2;
}
.modal__proof .avatars img{ width:34px; height:34px; margin-left:-11px; }
.modal__proof .avatars img:first-child{ margin-left:0; }
.modal__proof p{ font-size:.78rem; color:rgba(241,236,226,.6); }
.modal__proof strong{ color:#fff; }

/* right panel */
.modal__body{ padding:2.2rem 2.1rem; overflow-y:auto; }
.modal__body h2{ font-size:1.85rem; }
.modal__lead{ margin-top:.6rem; font-size:.9rem; color:var(--muted); }
.modal__pkg{
  margin-top:1rem; padding:.6rem .9rem; border-radius:var(--r-sm);
  background:var(--gold-soft); border:1px solid rgba(184,134,47,.28);
  font-size:.82rem; color:var(--muted);
}
.modal__pkg strong{ color:var(--gold); }
.form--modal{
  margin-top:1.3rem; padding:0; background:none; border:0; box-shadow:none; border-radius:0;
  gap:.9rem;
}
.form--modal .field input,
.form--modal .field select,
.form--modal .field textarea{ padding:.72rem .9rem; }

.modal__done{ text-align:center; padding:1.5rem 0 .5rem; }
.modal__tick{
  width:70px; height:70px; margin:0 auto 1.2rem; border-radius:50%;
  display:grid; place-items:center;
  color:#fff; background:linear-gradient(150deg,#2FA36B,#1E8E5A);
  box-shadow:0 18px 34px -16px rgba(30,142,90,.9);
  animation:pop .55s var(--ease) both;
}
@keyframes pop{ from{ transform:scale(.5); opacity:0; } to{ transform:none; opacity:1; } }
.modal__done h3{ font-size:1.5rem; }
.modal__done p{ margin:.7rem auto 1.5rem; max-width:38ch; color:var(--muted); font-size:.92rem; }

body.modal-open{ overflow:hidden; }

/* ---------- PACKAGE DETAIL MODAL ---------- */
.pkgm{
  position:fixed; inset:0; z-index:2000;
  display:grid; place-items:center; padding:1.2rem;
  visibility:hidden; opacity:0;
  transition:opacity .4s var(--ease), visibility .4s;
}
.pkgm.is-open{ visibility:visible; opacity:1; }

.pkgm__overlay{
  position:absolute; inset:0;
  background:rgba(7,10,18,.72);
  backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px);
}

.pkgm__dialog{
  position:relative; z-index:2;
  width:min(760px,100%); max-height:calc(100vh - 2.4rem);
  display:flex; flex-direction:column;
  border-radius:var(--r-xl); overflow:hidden;
  background:var(--surface);
  box-shadow:0 60px 120px -40px rgba(0,0,0,.75);
  transform:translateY(26px) scale(.965); opacity:0;
  transition:transform .5s var(--ease), opacity .45s var(--ease);
}
.pkgm.is-open .pkgm__dialog{ transform:none; opacity:1; }

.pkgm__bar{
  flex:0 0 auto;
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
  padding:1.5rem clamp(1.3rem,3vw,2.1rem) 1.3rem;
  background:
    radial-gradient(90% 140% at 8% 0%, rgba(217,164,65,.2), transparent 62%),
    linear-gradient(165deg,var(--ink-2),var(--ink));
  color:#F1ECE2;
}
.pkgm__eyebrow{
  display:block; margin-bottom:.5rem;
  font-size:.7rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-bright);
}
.pkgm__title{ font-size:clamp(1.3rem,2.6vw,1.7rem); color:#fff; }
.pkgm__close{
  flex:0 0 auto;
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  color:#F1ECE2; background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);
  transition:transform .35s var(--ease), background .3s, color .3s, border-color .3s;
}
.pkgm__close:hover{ transform:rotate(90deg); background:var(--gold-bright); color:#0B0F1A; border-color:transparent; }

.pkgm__scroll{
  flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain;
  padding:1.7rem clamp(1.3rem,3vw,2.1rem) 1.9rem;
}
.pkgm__intro{ font-size:.95rem; color:var(--muted); }
.pkgm__intro strong{ color:var(--gold); font-weight:600; }

.pkgm__list{ margin-top:1.5rem; display:grid; gap:1.15rem; }
.pkgm__list li{ position:relative; padding-left:2rem; }
.pkgm__list li::before{
  content:"✓"; position:absolute; left:0; top:.1rem;
  width:1.35rem; height:1.35rem; border-radius:50%;
  display:grid; place-items:center;
  font-size:.64rem; font-weight:700;
  color:var(--gold); background:var(--gold-soft);
}
.pkgm__list h4{
  margin-bottom:.3rem;
  font-family:var(--ff-serif); font-size:1.02rem; font-weight:600; color:var(--text);
}
.pkgm__list p{ font-size:.88rem; line-height:1.65; color:var(--muted); }
.pkgm__list .is-highlight h4{ color:var(--gold); }
.pkgm__list .is-highlight::before{ background:var(--gold-bright); color:#0B0F1A; }

.pkgm__fin{
  margin-top:1.9rem; padding:1.15rem 1.25rem;
  display:flex; align-items:flex-start; gap:.9rem;
  border-radius:var(--r-md);
  background:var(--gold-soft); border:1px solid rgba(184,134,47,.28);
}
.pkgm__fin-ico{ flex:0 0 auto; margin-top:.1rem; color:var(--gold); }
.pkgm__fin h4{ margin-bottom:.25rem; font-family:var(--ff-serif); font-size:1rem; font-weight:600; }
.pkgm__fin p{ font-size:.85rem; line-height:1.6; color:var(--muted); }
.pkgm__fin strong{ color:var(--gold); font-weight:600; }

.pkgm__foot{
  flex:0 0 auto;
  display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.5rem 1.3rem;
  padding:1.1rem clamp(1.3rem,3vw,2.1rem);
  background:var(--bg-alt); border-top:1px solid var(--line-soft);
}
.pkgm__foot-price{ line-height:1.2; }
/* direct child only — the .cur inside <strong> must stay inline */
.pkgm__foot-price > span{
  display:block;
  font-size:.66rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted);
}
.pkgm__foot-price strong{
  font-family:var(--ff-serif); font-size:1.9rem; font-weight:600;
  letter-spacing:-.03em; color:var(--text);
}
.pkgm__foot-price .cur{ font-size:1rem; vertical-align:super; margin-right:.05rem; }
.pkgm__cta{ justify-self:stretch; }
.pkgm__terms{ grid-column:1 / -1; font-size:.72rem; color:var(--muted); }
.pkgm__terms a{ color:var(--gold); border-bottom:1px solid currentColor; }

/* ---------- INTERIOR PAGES ----------
   No dark hero sits behind the fixed header here, so it must render in its
   solid state from the start instead of waiting for .scrolled. */
body.page-solid .header{
  background:var(--bg);
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(14px) saturate(150%);
  -webkit-backdrop-filter:blur(14px) saturate(150%);
  border-bottom-color:var(--line-soft);
}
body.page-solid .logo{ color:var(--text); }
body.page-solid .nav__link{ color:var(--muted); }

/* ---------- THANK YOU PAGE ---------- */
.ty{
  display:grid; place-items:center; text-align:center;
  padding-block:clamp(9rem,20vh,13rem) clamp(4.5rem,11vh,7.5rem);
}
.ty__inner{ max-width:46ch; margin-inline:auto; }
.ty__tick{
  width:88px; height:88px; margin:0 auto 1.8rem; border-radius:50%;
  display:grid; place-items:center;
  color:var(--gold); background:var(--gold-soft);
  border:1px solid rgba(184,134,47,.26);
  animation:pop .55s var(--ease) both;
}
.ty__title{ font-size:clamp(2.4rem,6vw,3.9rem); }
.ty__lead{ margin-top:1rem; color:var(--muted); font-size:1.02rem; }
.ty__actions{ margin-top:2.3rem; display:flex; justify-content:center; }

@media (max-width:420px){
  .ty__actions .btn{ width:100%; }
}

/* ---------- FULL-PAGE LEGAL MODAL ---------- */
.legal{
  position:fixed; inset:0; z-index:2100;
  visibility:hidden; opacity:0;
  transition:opacity .35s var(--ease), visibility .35s;
}
.legal.is-open{ visibility:visible; opacity:1; }
.legal__overlay{ position:absolute; inset:0; background:rgba(7,10,18,.6); }
.legal__dialog{
  position:relative; z-index:2;
  width:100%; height:100%;
  display:flex; flex-direction:column;
  background:var(--bg);
  transform:translateY(18px); opacity:0;
  transition:transform .45s var(--ease), opacity .45s var(--ease);
}
.legal.is-open .legal__dialog{ transform:none; opacity:1; }

.legal__bar{
  flex:0 0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.85rem clamp(1.15rem,4vw,2.5rem);
  background:var(--surface);
  border-bottom:1px solid var(--line-soft);
  box-shadow:var(--shadow-sm);
}
.legal__brand{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--ff-serif); font-weight:600; font-size:1rem; color:var(--text);
}
.legal__brand svg{ color:var(--gold); flex:0 0 auto; }
.legal__close{
  width:40px; height:40px; border-radius:50%; flex:0 0 auto;
  display:grid; place-items:center;
  color:var(--text); background:var(--surface); border:1px solid var(--line);
  transition:transform .35s var(--ease), background .3s, color .3s, border-color .3s;
}
.legal__close:hover{ transform:rotate(90deg); background:var(--gold-bright); color:#0B0F1A; border-color:transparent; }

.legal__scroll{
  flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain;
  padding:clamp(2rem,5vw,3.4rem) clamp(1.15rem,4vw,2.5rem) clamp(3rem,7vw,5rem);
}
.legal__doc{ max-width:76ch; margin-inline:auto; }
.legal__doc[hidden]{ display:none; }

.legal__eyebrow{
  display:inline-block;
  font-size:.72rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.85rem;
}
.legal__h1{ font-size:clamp(1.9rem,4vw,2.9rem); }
.legal__sub{ margin-top:.5rem; color:var(--muted); font-size:.95rem; }

.legal__doc h3{
  margin-top:2.3rem; margin-bottom:.7rem; padding-top:1.6rem;
  font-size:1.28rem; border-top:1px solid var(--line-soft);
}
.legal__doc h3:first-of-type{ margin-top:1.9rem; padding-top:0; border-top:0; }
.legal__doc h4{ margin-top:1.5rem; margin-bottom:.5rem; font-size:1.02rem; color:var(--gold); }
.legal__doc p{ margin-bottom:.9rem; color:var(--muted); font-size:.96rem; }
.legal__doc strong{ color:var(--text); }
.legal__doc ul{ margin:0 0 1.1rem; display:grid; gap:.55rem; }
.legal__doc li{ position:relative; padding-left:1.5rem; color:var(--muted); font-size:.96rem; }
.legal__doc li::before{
  content:""; position:absolute; left:.35rem; top:.62em;
  width:5px; height:5px; border-radius:50%; background:var(--gold);
}
.legal__doc a{ color:var(--gold); border-bottom:1px solid currentColor; }

/* =========================================================
   12. EXTRA MOTION & DEPTH
   ========================================================= */

/* directional reveals */
[data-reveal="left"]{ transform:translateX(-38px); }
[data-reveal="right"]{ transform:translateX(38px); }
[data-reveal="zoom"]{ transform:scale(.94); }
[data-reveal].in{ transform:none; }

/* drifting accent blobs behind light sections */
.blob{
  position:absolute; border-radius:50%; pointer-events:none; z-index:0;
  filter:blur(60px); opacity:.5;
}
.blob--gold{ background:radial-gradient(circle, rgba(217,164,65,.42), transparent 68%); }
.blob--rust{ background:radial-gradient(circle, rgba(181,83,60,.3), transparent 68%); }
[data-theme="dark"] .blob{ opacity:.32; }
.blob--a{ width:min(460px,54vw); aspect-ratio:1; left:-8%; top:6%;  animation:drift 20s ease-in-out infinite alternate; }
.blob--b{ width:min(380px,46vw); aspect-ratio:1; right:-6%; bottom:4%; animation:drift 26s ease-in-out infinite alternate-reverse; }
.section > .container{ position:relative; z-index:1; }

/* animated rule under centred section titles */
.section-head .eyebrow{ display:flex; justify-content:center; }
.section-head .section-title{ position:relative; display:inline-block; }
.section-head .section-title::after{
  content:""; position:absolute; left:50%; bottom:-.55rem; translate:-50% 0;
  width:0; height:3px; border-radius:3px;
  background:linear-gradient(90deg,var(--gold-bright),var(--rust));
  transition:width .9s .25s var(--ease);
}
.section-head .section-title.in::after{ width:84px; }

/* card tilt + glow */
.card, .solo, .pcard{ will-change:transform; }
.grid-books, .hslider__track{ perspective:1400px; }
.card::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%), var(--gold-soft), transparent 60%);
  opacity:0; transition:opacity .4s var(--ease);
}
.card:hover::after{ opacity:1; }

/* the package card breathes a soft gold halo */
@keyframes halo{
  0%,100%{ box-shadow:var(--shadow-lg), 0 0 0 0 rgba(217,164,65,.32); }
  50%    { box-shadow:var(--shadow-lg), 0 0 46px 5px rgba(217,164,65,.26); }
}
.solo{ animation:halo 4.5s ease-in-out infinite; }

/* scroll-driven fill on the process line */
.steps::after{
  content:""; position:absolute; z-index:0;
  left:calc(var(--badge) / 2); translate:-50% 0;
  top:10px; width:2px;
  height:var(--fill,0%); max-height:calc(100% - 20px);
  background:linear-gradient(180deg,var(--gold-bright),var(--rust));
  border-radius:3px;
  transition:height .2s linear;
}

/* stat tiles get a soft glow when counted */
.stat strong{ transition:filter .6s var(--ease); }
.stat:hover strong{ filter:drop-shadow(0 6px 18px rgba(217,164,65,.5)); }

/* marquee items lift */
.marquee__group span{ transform:translateY(0); }
.marquee__group span:hover{ transform:translateY(-2px); }

/* magnetic buttons */
.btn{ will-change:transform; }

/* subtle dotted texture on the alternating light sections */
.services::before, .packages::before, .testimonials::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:radial-gradient(currentColor 1px, transparent 1px);
  background-size:26px 26px; color:var(--text); opacity:.035;
}

@media (prefers-reduced-motion:reduce){
  .hero__bg img{ animation:none; transform:scale(1.02); }
  .hero__title .line > span{ transform:none; animation:none; }
  .spark, .blob{ display:none; }
  .solo{ animation:none; }
  .solo__side::after{ animation:none; }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1080px){
  .nav{
    position:fixed; inset:0 0 0 auto; width:min(340px,84vw);
    background:var(--ink); padding:6.5rem 2rem 2rem;
    transform:translateX(105%); transition:transform .5s var(--ease);
    box-shadow:-30px 0 60px -30px rgba(0,0,0,.7);
    overflow-y:auto; margin-left:0;
  }
  body.nav-open .nav{ transform:none; }
  .nav__list{ flex-direction:column; align-items:stretch; gap:.2rem; }
  .nav__link{ padding:.85rem .4rem; font-size:1.05rem; color:rgba(241,236,226,.82) !important; border-bottom:1px solid rgba(255,255,255,.07); border-radius:0; }
  .nav__link::after{ left:.4rem; transform:none; bottom:.55rem; }
  .burger{ display:block; }
  .header__cta{ display:none; }
  .nav{ z-index:1001; }

  .hero__inner{ grid-template-columns:1fr; text-align:center; }
  .hero__content{ display:flex; flex-direction:column; align-items:center; }
  .hero__actions,.hero__proof{ justify-content:center; }
  .hero__visual{ order:-1; height:clamp(330px,64vw,450px); width:min(520px,100%); margin-inline:auto; }
  .shot--main{ left:20%; width:58%; }
  .shot--sub{ left:0; width:40%; }
  .float-card--1{ left:0; top:2%; }
  .float-card--2{ right:0; bottom:8%; }

  .about__grid,.faq__grid,.contact__grid{ grid-template-columns:1fr; }
  .faq__aside{ position:static; }
  .grid-books{ grid-template-columns:repeat(2,1fr); }
  .steps{ --badge:62px; }
  .quote{ flex-basis:50%; }
  .footer__grid{ grid-template-columns:1fr 1fr; }

  .modal__dialog{ grid-template-columns:1fr; max-width:560px; }
  .modal__aside{ padding:1.8rem 1.7rem; }
  .modal__aside h3{ font-size:1.4rem; }
  .modal__aside ul{ grid-template-columns:1fr 1fr; gap:.5rem 1rem; }
  .modal__proof{ padding-top:1.2rem; }
}

/* the package card stacks before the generic tablet breakpoint — two columns
   get too narrow for the price and the feature list at the same time */
@media (max-width:940px){
  .solo{ grid-template-columns:1fr; max-width:640px; }
  .solo__side::after{ display:none; }
  .solo__price{ font-size:2.7rem; }
}

@media (max-width:760px){
  html{ scroll-padding-top:78px; }
  .solo__list{ grid-template-columns:1fr; }
  .grid-books{ grid-template-columns:1fr; gap:1.2rem; }
  /* badge stacks above the card and the rail drops away, as on the reference */
  .steps{ --badge:60px; gap:1.6rem; }
  .step{ grid-template-columns:1fr; gap:15px; }
  .steps::before,.steps::after{ display:none; }
  .step:hover .step__card{ transform:none; }
  .step__card{ padding:26px 22px; }
  .stats__grid{ grid-template-columns:repeat(2,1fr); gap:2rem 1rem; }
  .stat:nth-child(3)::before{ display:none; }
  .quote{ flex-basis:100%; }
  .slider__arrow{ width:42px; height:42px; }
  .form__row{ grid-template-columns:1fr; }
  .about__visual{ padding-right:2rem; padding-bottom:2.5rem; }
  .about__foot{ flex-direction:column; align-items:flex-start; }
  .footer__grid{ grid-template-columns:1fr; gap:2rem; }
  .footer__bottom{ flex-direction:column; text-align:center; }
  .to-top{ right:1rem; bottom:1rem; width:44px; height:44px; }

  .modal{ padding:0; place-items:end center; }
  .modal__dialog{
    max-width:none; width:100%; max-height:94vh;
    border-radius:var(--r-xl) var(--r-xl) 0 0;
    transform:translateY(100%);
  }
  .modal.is-open .modal__dialog{ transform:none; }
  .modal__aside{ display:none; }
  .modal__body{ padding:2rem 1.4rem 1.6rem; }
  .modal__body h2{ font-size:1.5rem; }

  /* same bottom-sheet treatment as the consultation modal */
  .pkgm{ padding:0; place-items:end center; }
  .pkgm__dialog{
    width:100%; max-height:94vh;
    border-radius:var(--r-xl) var(--r-xl) 0 0;
    transform:translateY(100%);
  }
  .pkgm.is-open .pkgm__dialog{ transform:none; }
  .pkgm__scroll{ padding:1.4rem 1.3rem 1.7rem; }
  .pkgm__foot{ grid-template-columns:1fr; gap:.85rem; }
  .pkgm__foot-price{ display:flex; align-items:baseline; gap:.55rem; }
  .pkgm__foot-price > span{ display:inline; }
}

@media (max-width:520px){
  .legal__bar{ padding:.7rem 1rem; }
  .legal__brand{ font-size:.88rem; gap:.45rem; min-width:0; }
  .legal__brand svg{ width:22px; height:22px; }
  .legal__close{ width:36px; height:36px; }
  .legal__scroll{ padding:1.8rem 1.1rem 3rem; }
  .legal__h1{ font-size:1.7rem; }
  .legal__doc h3{ font-size:1.14rem; margin-top:1.9rem; padding-top:1.3rem; }
  .legal__doc h4{ font-size:.97rem; }
  .legal__doc p,.legal__doc li{ font-size:.92rem; }

  .hero__visual{ height:clamp(300px,78vw,380px); }
  .shot--main{ left:24%; width:62%; }
  .shot--sub{ width:44%; bottom:2%; }
  .float-card{ padding:.55rem .72rem; gap:.5rem; }
  .float-card__ico{ font-size:1rem; }
  .float-card strong{ font-size:.74rem; }
  .float-card em{ font-size:.64rem; }
  .float-card--2{ right:-2%; }
}

@media (max-width:420px){
  .legal__brand{ font-size:.8rem; }
  .hero__title{ font-size:2.35rem; }
  .pcard figcaption h3{ font-size:1.08rem; }
  .btn{ padding:.85rem 1.35rem; }
  .hero__actions{ width:100%; flex-direction:column; }
  .hero__actions .btn{ width:100%; }
  .solo__actions{ flex-direction:column; }
  .solo__actions .btn{ width:100%; }
}



#header img {
    max-width: 100%;
    height: 70px;
}


footer img {
    max-width: 100%;
    height: 70px;
}