/* ============================================================
   PASCAL W. COUILLARD — Shared stylesheet
   Brand Guidelines, Edition 2026
   Palette: Amethyst / Plum / Ivory.  Type: Cinzel + Jost.
   ============================================================ */
:root{
  --amethyst:#563B79;   /* primary: name, headings, links */
  --plum:#43285A;       /* dark grounds / reverse */
  --byzantium:#7E3A8C;  /* accent / highlights */
  --muted:#6E6485;      /* secondary text & labels — darkened from #9387A8 for WCAG AA contrast (was 2.98:1 on ivory, now 4.88:1) */
  --orchid:#E7DDF0;     /* rules, tints, backgrounds */
  --ivory:#F6F1E9;      /* paper */
  --charcoal:#2A2530;   /* body ink */
  --paper:#FBF8F2;      /* card surface */
  --display:'Cinzel', Georgia, 'Times New Roman', serif;
  --sans:'Jost', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --maxw:1180px;
  --gutter:clamp(20px,5vw,64px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--ivory);color:var(--charcoal);font-family:var(--sans);
  font-size:17px;font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.22;
  text-transform:uppercase;letter-spacing:.05em;color:var(--amethyst)}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase;color:var(--byzantium)}
.lead{font-size:clamp(18px,2.1vw,21px);font-weight:300;color:var(--charcoal);line-height:1.6}
.muted{color:var(--muted)}

/* ---- Buttons & links ---- */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--sans);font-size:12px;
  font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:15px 30px;
  border:1px solid var(--amethyst);background:var(--amethyst);color:var(--ivory);transition:.35s ease;cursor:pointer}
.btn:hover{background:var(--byzantium);border-color:var(--byzantium)}
.btn--light{background:transparent;color:var(--ivory);border-color:rgba(246,241,233,.6)}
.btn--light:hover{background:var(--ivory);color:var(--plum);border-color:var(--ivory)}
.btn--accent{background:var(--byzantium);border-color:var(--byzantium);color:#fff}
.btn--accent:hover{background:var(--ivory);color:var(--plum);border-color:var(--ivory)}
.link-arrow{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--amethyst);display:inline-flex;gap:.5em;align-items:center;
  border-bottom:1px solid var(--byzantium);padding-bottom:5px;transition:.3s}
.link-arrow:hover{gap:.9em;color:var(--byzantium)}

/* ---- Header ---- */
header{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;
  justify-content:space-between;padding:22px var(--gutter);
  background:rgba(246,241,233,0);border-bottom:1px solid rgba(231,221,240,0);box-shadow:0 8px 30px -18px rgba(42,37,48,0);
  transition:background-color .5s cubic-bezier(.4,0,.2,1),border-color .5s ease,padding .5s cubic-bezier(.4,0,.2,1),backdrop-filter .5s ease,box-shadow .5s ease}
header.scrolled{background:rgba(251,248,242,.92);backdrop-filter:blur(14px) saturate(1.1);
  padding:13px var(--gutter);border-bottom:1px solid rgba(231,221,240,.7);box-shadow:0 8px 30px -18px rgba(42,37,48,.18)}
.brand{display:flex;align-items:center;gap:14px}
.mono{width:50px;height:50px;flex:none;display:grid;place-items:center;font-family:var(--display);
  font-weight:600;font-size:15px;letter-spacing:.05em;border:1.5px solid rgba(246,241,233,.75);
  color:var(--ivory);border-radius:3px;transition:all .45s ease}
header.scrolled .mono{background:var(--plum);border-color:var(--plum);color:var(--ivory)}
.wm b{font-family:var(--display);font-weight:600;font-size:20px;letter-spacing:.14em;line-height:1;
  color:var(--ivory);display:block;transition:color .45s ease}
.wm small{font-family:var(--sans);font-size:12px;letter-spacing:.32em;text-transform:uppercase;
  color:rgba(246,241,233,.75);display:block;margin-top:6px;transition:color .45s ease}
header.scrolled .wm b{color:var(--amethyst)}
header.scrolled .wm small{color:var(--muted)}
nav.main{display:flex;align-items:center;gap:32px}
nav.main a{font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(246,241,233,.92);transition:color .45s ease;position:relative;padding:4px 0}
nav.main>div>a::after,nav.main>a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;
  background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease;opacity:.7}
nav.main>div>a:hover::after,nav.main>a:not(.btn):hover::after,nav.main>a.active:not(.btn)::after{transform:scaleX(1)}
header.scrolled nav.main a{color:var(--charcoal)}
header .lang,header .lang b{transition:color .45s ease}
nav.main a:hover,nav.main a.active{color:var(--byzantium)}
nav.main a.btn{color:var(--ivory)}
nav.main a.btn.active{color:var(--ivory)}
header:not(.scrolled) nav.main a.btn{background:transparent;border-color:rgba(246,241,233,.6)}
header.scrolled nav.main a.btn{background:var(--amethyst);border-color:var(--amethyst)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;z-index:61}
.burger span{width:26px;height:2px;background:var(--ivory);transition:.3s}
header.scrolled .burger span{background:var(--charcoal)}

/* ---- Nav dropdown (Resources) ---- */
.has-sub{position:relative;display:flex;align-items:center}
.subtoggle{display:inline-flex;align-items:center;gap:6px}
.subtoggle .caret{font-size:12px;opacity:.7}
.submenu{position:absolute;top:100%;left:0;min-width:214px;background:var(--ivory);
  border:1px solid var(--orchid);box-shadow:0 22px 44px -26px rgba(67,40,90,.55);
  padding:10px 0;display:flex;flex-direction:column;opacity:0;visibility:hidden;
  transform:translateY(8px);transition:.25s ease;z-index:70}
.has-sub:hover .submenu,.has-sub:focus-within .submenu{opacity:1;visibility:visible;transform:none}
.submenu a{padding:11px 22px;color:var(--charcoal)!important;font-size:12px;letter-spacing:.14em;white-space:nowrap}
.submenu a:hover,.submenu a.active{color:var(--byzantium)!important;background:var(--paper)}
.submenu .subhead{padding:12px 22px 5px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--byzantium);opacity:.75;font-weight:600;border-top:1px solid rgba(67,40,90,.12);margin-top:6px}
.submenu .subhead:first-child{border-top:0;margin-top:0;padding-top:6px}
.reviews-cols{columns:2;column-gap:26px;margin-top:34px}
.review-card{break-inside:avoid;background:var(--ivory);border:1px solid rgba(67,40,90,.14);padding:28px 28px 24px;margin:0 0 26px;box-shadow:0 18px 40px -30px rgba(67,40,90,.35)}
.review-card .stars{color:#C9A227;font-size:14px;letter-spacing:.28em;margin-bottom:10px}
.review-card p{font-size:14.5px;line-height:1.72;color:var(--charcoal);white-space:pre-line}
.review-card .by{margin-top:14px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--byzantium);font-weight:600}
.review-card .when{font-size:12px;opacity:.6;letter-spacing:.08em;margin-top:2px}
@media(max-width:820px){.reviews-cols{columns:1}}
.lang{display:inline-flex;gap:9px;align-items:center;font-size:12px;letter-spacing:.14em;font-weight:600;text-transform:uppercase}
.lang a{opacity:.72;transition:.25s}
.lang a:hover{opacity:1;color:var(--byzantium)}
.lang b{font-weight:600}
header:not(.scrolled) .lang b{color:var(--orchid)}
header.scrolled .lang b{color:var(--amethyst)}

/* ---- Home hero ---- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;background:var(--plum);color:var(--ivory);overflow:hidden}
.hero .glow{position:absolute;inset:0;background:
  radial-gradient(58% 50% at 72% 28%, rgba(126,58,140,.45), transparent 68%),
  radial-gradient(70% 60% at 12% 92%, rgba(231,221,240,.10), transparent 70%)}
.motif{position:absolute;right:-4%;top:50%;transform:translateY(-50%);width:min(54vw,720px);opacity:.18;pointer-events:none}
.motif path,.motif line{stroke:var(--orchid);stroke-width:1;fill:none}
.hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:150px var(--gutter) 110px;width:100%}
.hero .eyebrow{color:var(--orchid)}
.hero h1{font-size:clamp(34px,5vw,58px);font-weight:500;color:var(--ivory);letter-spacing:.06em;max-width:16ch;margin:24px 0 28px}
.hero h1 em{font-style:normal;color:var(--orchid)}
.hero p.lead{color:rgba(246,241,233,.85);max-width:52ch;font-weight:300}
.hero .cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px}
.scrollcue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;font-family:var(--sans);
  font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:rgba(246,241,233,.6);
  display:flex;flex-direction:column;align-items:center;gap:10px}
.scrollcue::after{content:"";width:1px;height:46px;background:linear-gradient(var(--orchid),transparent)}

/* ---- Interior page hero ---- */
.page-hero{position:relative;background:var(--plum);color:var(--ivory);overflow:hidden;
  padding:clamp(130px,18vw,180px) var(--gutter) clamp(56px,8vw,84px)}
.page-hero .glow{position:absolute;inset:0;background:
  radial-gradient(60% 70% at 78% 20%, rgba(126,58,140,.42), transparent 66%)}
.page-hero .inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto}
.page-hero .eyebrow{color:var(--orchid)}
.page-hero h1{font-size:clamp(34px,5.2vw,62px);color:var(--ivory);letter-spacing:.06em;margin:18px 0 0;max-width:18ch}
.page-hero p{color:rgba(246,241,233,.82);font-weight:300;max-width:54ch;margin-top:22px;font-size:clamp(17px,2vw,20px)}

/* ---- Sections ---- */
section{padding:clamp(64px,10vw,128px) 0}
.dark{background:var(--plum);color:var(--ivory)}
.dark .eyebrow{color:var(--orchid)}
.dark h2{color:var(--ivory)}
.sec-head{max-width:64ch}
.sec-head h2{margin:16px 0}
.center{text-align:center;margin-inline:auto}

/* ---- Statement / split ---- */
.statement .grid,.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,80px);align-items:start}
.statement h2{font-size:clamp(28px,4.4vw,50px)}

/* ---- Pillars ---- */
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:56px}
.pillar{background:#fff;border:1px solid var(--orchid);border-top:3px solid var(--byzantium);padding:clamp(28px,4vw,44px);box-shadow:0 18px 44px -32px rgba(67,40,90,.4)}
.pillar .num{font-family:var(--display);font-size:30px;color:var(--byzantium);opacity:.85}
.pillar h3{font-size:20px;margin:16px 0 12px;letter-spacing:.06em;line-height:1.3}
.pillar p{color:var(--charcoal);font-size:16px;font-weight:300;line-height:1.65}

/* ---- Pull quote ---- */
.quote-band{text-align:center}
.quote-band blockquote{font-family:var(--display);font-weight:500;text-transform:uppercase;letter-spacing:.06em;
  font-size:clamp(24px,4vw,44px);line-height:1.32;max-width:22ch;margin:24px auto 0;color:var(--ivory)}
.quote-band blockquote em{font-style:normal;color:var(--orchid)}

/* ---- Listings ---- */
.listings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:54px}
.card{background:var(--paper);border:1px solid var(--orchid);transition:.4s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 54px -30px rgba(67,40,90,.5)}
.card .ph{aspect-ratio:4/3;position:relative;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,#5a3f7e,#2d1c3f);color:rgba(246,241,233,.55);overflow:hidden}
.card .ph::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 28% 18%, rgba(231,221,240,.32), transparent 60%)}
.card .ph span{position:relative;font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.card .body{padding:24px 26px 30px}
.card .loc{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--byzantium)}
.card h3{font-size:19px;letter-spacing:.06em;margin:12px 0 8px}
.card .price{font-family:var(--display);font-size:18px;letter-spacing:.04em;color:var(--charcoal)}
.card .meta{font-size:14px;font-weight:300;color:var(--muted);margin-top:12px}

/* ---- About blocks ---- */
.about-sec{background:var(--paper);border-block:1px solid var(--orchid)}
.about .grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(30px,6vw,72px);align-items:center}
.portrait{aspect-ratio:4/5;position:relative;display:flex;align-items:flex-end;padding:22px;background:linear-gradient(160deg,#5a3f7e,#23152f)}
.portrait::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 72% 16%,rgba(231,221,240,.28),transparent 60%)}
.portrait span{position:relative;color:rgba(246,241,233,.6);font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.about h2{font-size:clamp(28px,4vw,48px);margin:16px 0 22px}
.about p{color:var(--charcoal);font-weight:300;margin-bottom:18px}

/* ---- Testimonials ---- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:56px}
.testi .qmark{font-family:var(--display);font-size:46px;line-height:.5;color:var(--orchid)}
.testi .stars{color:var(--byzantium);letter-spacing:3px;margin:14px 0;font-size:13px}
.testi blockquote{font-family:var(--sans);font-size:18px;font-weight:300;line-height:1.6;color:var(--charcoal)}
.testi .by{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:18px}

/* ---- Affiliation ---- */
.affil{text-align:center}
.affil h2{font-size:clamp(28px,4vw,48px);margin:16px auto 22px;max-width:20ch}
.affil p{color:rgba(246,241,233,.82);font-weight:300;max-width:62ch;margin:0 auto 30px}
.affil .lockup{display:flex;gap:48px;justify-content:center;align-items:center;flex-wrap:wrap;
  padding-top:34px;border-top:1px solid rgba(231,221,240,.22);margin-top:8px}
.affil .lockup span{font-family:var(--display);font-size:18px;letter-spacing:.12em;color:var(--ivory)}
.affil .lockup small{font-family:var(--sans);font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--orchid);display:block;margin-top:8px;font-weight:500}

/* ---- Contact ---- */
.contact{text-align:center}
.contact h2{font-size:clamp(30px,4.6vw,52px);margin:16px auto 22px;max-width:18ch}
.contact .lead{max-width:54ch;margin:0 auto 34px}
.contact .details{margin-top:42px;display:flex;gap:14px 40px;justify-content:center;flex-wrap:wrap;font-family:var(--sans);font-size:15px;color:var(--muted)}
.contact .details a{color:var(--charcoal);border-bottom:1px solid var(--orchid);padding-bottom:2px;transition:.3s}
.contact .details a:hover{border-color:var(--byzantium);color:var(--amethyst)}
.signoff{font-family:var(--display);text-transform:none;letter-spacing:.04em;font-size:24px;color:var(--amethyst);margin-top:42px}

/* ---- Prose (guides / bio body) ---- */
.prose{max-width:68ch}
.prose>p{font-weight:300;margin-bottom:22px;font-size:17.5px;line-height:1.75}
.prose>p:first-of-type{font-size:19.5px;line-height:1.65;color:var(--charcoal)}
.prose h3{font-size:clamp(20px,2.6vw,26px);letter-spacing:.05em;margin:40px 0 14px}
.prose ul{list-style:none;margin:0 0 22px}
.prose ul li{position:relative;padding-left:26px;margin-bottom:12px;font-weight:300}
.prose ul li::before{content:"";position:absolute;left:0;top:11px;width:9px;height:9px;background:var(--byzantium);transform:rotate(45deg)}
.prose strong{font-weight:600;color:var(--amethyst)}

/* ---- Steps (process) ---- */
.steps{margin-top:54px;display:grid;gap:1px;background:var(--orchid);border:1px solid var(--orchid)}
.step{background:var(--ivory);display:grid;grid-template-columns:96px 1fr;gap:20px;padding:clamp(24px,3.5vw,38px) clamp(22px,3vw,40px);align-items:start}
.step .n{font-family:var(--display);font-size:clamp(30px,4vw,46px);color:var(--byzantium);line-height:1}
.step h3{font-size:20px;letter-spacing:.05em;margin:4px 0 10px}
.step p{font-weight:300;color:var(--charcoal);font-size:16px;line-height:1.65}

/* ---- FAQ ---- */
.faq{margin-top:46px;max-width:80ch}
.faq details{border-top:1px solid var(--orchid);padding:20px 0}
.faq details[open] summary{color:var(--byzantium)}
.faq summary{font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;font-size:17px;
  color:var(--amethyst);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);color:var(--byzantium);font-weight:400}
.faq details[open] summary::after{content:"\2013"}
.faq p{font-weight:300;margin-top:14px;max-width:70ch}

/* ---- Form ---- */
.form{max-width:640px;margin-top:10px;text-align:left}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:18px;display:flex;flex-direction:column;gap:8px}
.field label{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{font-family:var(--sans);font-size:16px;font-weight:300;color:var(--charcoal);
  background:var(--paper);border:1px solid var(--orchid);padding:13px 15px;border-radius:2px;transition:.25s;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--byzantium);box-shadow:0 0 0 3px rgba(126,58,140,.12)}
.field textarea{resize:vertical;min-height:130px}
.form .note{font-size:13px;color:var(--muted);margin-top:8px}

/* ---- Area grid (neighbourhoods) ---- */
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:54px}
.area{position:relative;overflow:hidden;border:1px solid var(--orchid);background:var(--paper);transition:.4s ease}
.area:hover{transform:translateY(-6px);box-shadow:0 26px 54px -30px rgba(67,40,90,.5)}
.area .ph{aspect-ratio:3/2;background:linear-gradient(150deg,#5a3f7e,#2d1c3f);position:relative}
.area .ph::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 80% at 30% 20%,rgba(231,221,240,.28),transparent 60%)}
.area .body{padding:24px 26px 28px}
.area h3{font-size:20px;letter-spacing:.05em;margin-bottom:10px}
.area p{font-weight:300;font-size:15px;color:var(--charcoal);line-height:1.6}

/* ---- Quick facts (neighbourhood guides) ---- */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--orchid);border:1px solid var(--orchid);margin-top:46px}
.facts>div{background:var(--ivory);padding:26px 22px}
.facts .k{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--byzantium);font-weight:600}
.facts .v{font-family:var(--display);font-size:17px;color:var(--amethyst);margin-top:10px;letter-spacing:.03em;line-height:1.3}
.facts .v span{display:block;margin-top:5px;font-family:var(--sans);font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.02em;text-transform:none}
@media(max-width:780px){.facts{grid-template-columns:repeat(2,1fr)}}

/* ---- Video embeds ---- */
.video{position:relative;width:100%;aspect-ratio:16/9;background:linear-gradient(150deg,#5a3f7e,#23152f);border:1px solid var(--orchid);overflow:hidden;border-radius:2px}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video .vph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:rgba(246,241,233,.75);text-align:center;padding:20px}
.video .vph .play{width:62px;height:62px;border:1px solid rgba(246,241,233,.6);border-radius:50%;display:grid;place-items:center;font-size:18px;transition:.3s}
.video:hover .vph .play{background:rgba(246,241,233,.12);transform:scale(1.06)}
.video .vph small{font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.video-feature{margin-top:46px;max-width:920px;margin-inline:auto}
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:46px}
.video-grid .vlabel{font-family:var(--sans);font-size:13px;letter-spacing:.04em;color:var(--muted);margin-top:12px;font-weight:300}
.video-grid h3{font-size:18px;letter-spacing:.05em;margin-top:14px}
@media(max-width:780px){.video-grid{grid-template-columns:1fr}}

/* ---- CTA band ---- */
.cta-band{text-align:center}
.cta-band h2{font-size:clamp(28px,4vw,48px);margin:16px auto 26px;max-width:20ch}
.cta-band .eyebrow{color:var(--orchid)}

/* ---- Footer ---- */
footer{background:var(--plum);color:rgba(246,241,233,.72);padding:78px 0 34px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr;gap:40px;padding-bottom:46px;border-bottom:1px solid rgba(231,221,240,.18)}
.foot-wm b{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:.14em;color:var(--ivory);display:block}
.foot-wm small{font-family:var(--sans);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--orchid);display:block;margin-top:8px}
footer .tag{margin-top:18px;max-width:34ch;font-size:14px;font-weight:300;line-height:1.6}
footer h4{font-family:var(--sans);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--orchid);margin-bottom:18px;font-weight:600}
footer ul{list-style:none}
footer li{margin-bottom:11px;font-size:14px;font-weight:300}
footer a:hover{color:var(--ivory)}
.foot-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-top:26px;font-size:12px;letter-spacing:.04em;color:rgba(246,241,233,.55)}

/* ---- Reveal ---- */
.reveal{opacity:0;transform:translateY(20px);transition:.9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---- Mobile ---- */
@media(max-width:960px){
  nav.main{position:fixed;inset:0 0 0 auto;width:min(80vw,340px);background:var(--plum);flex-direction:column;
    justify-content:center;align-items:flex-start;gap:24px;padding:0 40px;transform:translateX(100%);transition:.4s ease;z-index:60}
  nav.main.open{transform:none}
  nav.main a,header.scrolled nav.main a{color:var(--ivory);font-size:15px}
  .has-sub{flex-direction:column;align-items:flex-start;width:100%}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;box-shadow:none;padding:4px 0 2px 16px}
  .submenu a{color:rgba(246,241,233,.85)!important;padding:9px 0;font-size:13px}
  .submenu .subhead{color:rgba(246,241,233,.55);border-top-color:rgba(246,241,233,.18);padding:10px 0 3px}
  .subtoggle .caret{display:none}
  .lang{margin-top:10px}
  .lang a{color:rgba(246,241,233,.8)!important}
  .lang b{color:var(--orchid)!important}
  header:not(.scrolled) nav.main a.btn,header.scrolled nav.main a.btn{background:transparent;border-color:rgba(246,241,233,.6);color:var(--ivory)}
  .burger.open span{background:var(--ivory)}
  .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger.open span:nth-child(2){opacity:0}
  .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .statement .grid,.split,.pillars,.listings-grid,.about .grid,.testi-grid,.area-grid,.foot-grid,.form .row,.step{grid-template-columns:1fr}
  .testi-grid{gap:46px}.portrait{aspect-ratio:4/5;max-width:420px;margin-inline:auto}
  .step{gap:6px}.step .n{font-size:30px}
}

/* ============ IVORY-DOMINANT THEME (light heros, purple as accent) ============ */
.hero,.page-hero{background:var(--ivory);color:var(--charcoal);border-bottom:1px solid var(--orchid)}
.hero{min-height:92vh}
.hero .glow{background:radial-gradient(56% 52% at 78% 24%,rgba(126,58,140,.10),transparent 70%),radial-gradient(60% 60% at 8% 96%,rgba(231,221,240,.55),transparent 70%)}
.page-hero .glow{background:radial-gradient(60% 70% at 82% 18%,rgba(126,58,140,.09),transparent 66%)}
.hero .motif{opacity:.10}
.hero .motif path,.hero .motif line{stroke:var(--amethyst)}
.hero .eyebrow,.page-hero .eyebrow{color:var(--byzantium)}
.hero h1,.page-hero h1{color:var(--amethyst)}
.hero h1 em{color:var(--byzantium)}
.hero p.lead,.page-hero p{color:var(--charcoal)}
.scrollcue{color:var(--muted)}
.scrollcue::after{background:linear-gradient(var(--amethyst),transparent)}
.mono{background:var(--plum);border-color:var(--plum);color:var(--ivory)}
.wm b{color:var(--amethyst)}
.wm small{color:var(--muted)}
nav.main a{color:var(--charcoal)}
nav.main a.btn,header:not(.scrolled) nav.main a.btn{background:var(--amethyst);border-color:var(--amethyst);color:var(--ivory)}
.burger span{background:var(--charcoal)}
header:not(.scrolled) .lang b{color:var(--amethyst)}
.btn--outline{background:transparent;color:var(--amethyst);border-color:var(--amethyst)}
.btn--outline:hover{background:var(--amethyst);color:var(--ivory);border-color:var(--amethyst)}
@media(max-width:960px){
  nav.main a{color:var(--ivory)}
  nav.main a.btn,header:not(.scrolled) nav.main a.btn{background:transparent;border-color:rgba(246,241,233,.6);color:var(--ivory)}
  .lang b,header:not(.scrolled) .lang b{color:var(--orchid)}
  .burger span{background:var(--charcoal)}
  .burger.open span{background:var(--ivory)}
}

/* ============ POLISH: centered, refined, more dynamic ============ */
.hero-inner{text-align:center}
.hero h1,.hero p.lead{margin-left:auto;margin-right:auto}
.hero .cta{justify-content:center}
.hero .motif{left:50%;right:auto;transform:translate(-50%,-50%);opacity:.06;width:min(72vw,860px)}
.page-hero .inner{text-align:center}
.page-hero h1,.page-hero p{margin-left:auto;margin-right:auto}
.sec-head{text-align:center;margin-inline:auto}
.sec-head h2::after,.page-hero h1::after,.contact h2::after{content:"";display:block;width:52px;height:2px;background:var(--byzantium);opacity:.85;margin:20px auto 0}
.affil h2::after,.cta-band h2::after{content:"";display:block;width:52px;height:2px;background:var(--orchid);opacity:.8;margin:18px auto 0}
.statement .grid{grid-template-columns:1fr;max-width:760px;margin:0 auto;text-align:center;gap:18px}
nav.main>a:not(.btn){position:relative}
nav.main>a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--byzantium);transition:width .3s ease}
nav.main>a:not(.btn):hover::after{width:100%}
.btn{transition:.35s ease}
.btn:hover{transform:translateY(-2px)}
.card .ph,.area .ph,.portrait{overflow:hidden}
.card .ph img,.area .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.card:hover .ph img,.area:hover .ph img{transform:scale(1.06)}

/* ============ RICHNESS: weight, density, features ============ */
.lead,.prose>p,.pillar p,.about p,.step p,.area p,.faq p,.affil p,.testi blockquote,.feature p,.contact .lead{font-weight:400}
section{padding:clamp(56px,8.5vw,108px) 0}
.hero{min-height:86vh}
.callout{background:var(--orchid);border-left:3px solid var(--byzantium);padding:22px 26px;margin:28px 0;border-radius:0 4px 4px 0}
.callout p{margin:0;font-weight:400;color:var(--charcoal)}
.callout strong{color:var(--amethyst)}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:50px}
.feature{display:block;background:var(--paper);border:1px solid var(--orchid);padding:clamp(28px,3.4vw,40px);transition:transform .4s ease,box-shadow .4s ease;color:inherit}
.feature:hover{transform:translateY(-6px);box-shadow:0 26px 54px -30px rgba(67,40,90,.45)}
.feature .ic{color:var(--byzantium);margin-bottom:16px;display:block}
.feature h3{font-size:21px;letter-spacing:.05em;margin-bottom:10px}
.feature p{color:var(--charcoal);font-size:15px;line-height:1.65;margin-bottom:16px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.stat .n{font-family:var(--display);font-size:clamp(30px,4.4vw,48px);color:var(--ivory);line-height:1;letter-spacing:.02em}
.stat .l{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--orchid);margin-top:10px}
@media(max-width:780px){.features{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr);gap:30px}}

/* ============ Site search ============ */
.search-btn{background:none;border:0;cursor:pointer;color:inherit;display:inline-flex;align-items:center;padding:4px;transition:.25s}
.search-btn:hover{color:var(--byzantium)}
.search-overlay{position:fixed;inset:0;background:rgba(43,37,48,.55);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:flex-start;justify-content:center;opacity:0;visibility:hidden;transition:.25s}
.search-overlay.open{opacity:1;visibility:visible}
.search-panel{background:var(--ivory);width:min(640px,92vw);margin-top:12vh;border:1px solid var(--orchid);border-radius:4px;box-shadow:0 40px 80px -30px rgba(43,37,48,.6);overflow:hidden}
.search-row{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--orchid)}
.search-row input{flex:1;border:0;background:none;font-family:var(--sans);font-size:17px;color:var(--charcoal);outline:none}
.search-close{background:none;border:0;font-size:26px;color:var(--muted);cursor:pointer;line-height:1}
.search-results{max-height:56vh;overflow:auto}
.search-results a{display:block;padding:14px 18px;border-bottom:1px solid var(--orchid);color:var(--charcoal)}
.search-results a:hover{background:var(--paper)}
.search-results a strong{display:block;font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:14px;color:var(--amethyst);margin-bottom:3px}
.search-results a span{font-size:13px;color:var(--muted)}
.search-none{padding:18px;color:var(--muted);font-size:14px}

/* ============ Thicker body text (more presence) ============ */
body{font-weight:500}
.lead,.hero p.lead,.page-hero p,p,li,.prose>p,.pillar p,.about p,.step p,.area p,.faq p,.affil p,.feature p,.contact .lead,.testi blockquote,.card .meta{font-weight:500}
footer .tag,footer li{font-weight:400}
.muted{font-weight:500}

/* ============================================================
   MOTION SYSTEM — living, breathing scroll (tasteful, luxury)
   Site-wide. All heavy motion is disabled under
   prefers-reduced-motion (guard at the very bottom).
   ============================================================ */
@keyframes pwc-kenburns{0%{transform:scale(1)}100%{transform:scale(1.12)}}
@keyframes pwc-floaty{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(2.5%,-2.5%,0) scale(1.08)}}
@keyframes pwc-breathe{0%,100%{opacity:.05}50%{opacity:.13}}
@keyframes pwc-sheen{0%{transform:translateX(-140%) skewX(-12deg)}60%,100%{transform:translateX(240%) skewX(-12deg)}}
@keyframes pwc-marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes pwc-caret{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* Richer reveal: more travel, micro-scale, and a stagger hook (--rd) */
.reveal{opacity:0;transform:translateY(32px) scale(.982);
  transition:opacity 1.05s cubic-bezier(.2,.7,.2,1),transform 1.05s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--rd,0s);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}

/* Ambient life on the hero / section glows + motif (slow breathing drift) */
.hero .glow,.page-hero .glow{animation:pwc-floaty 22s ease-in-out infinite alternate}
.hero .motif{animation:pwc-breathe 9s ease-in-out infinite}

/* Ken Burns for real photography once it's dropped in */
.hero img,.page-hero img,.g-main img{animation:pwc-kenburns 24s ease-out both}

/* Placeholder tiles gently shimmer so nothing feels dead */
.ph{position:relative;overflow:hidden}
.ph:not(:has(img))::after{content:"";position:absolute;top:0;left:0;width:55%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.16),transparent);
  animation:pwc-sheen 7.5s ease-in-out infinite;pointer-events:none}

/* Scroll-progress bar (injected by site.js) */
#pwc-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:1000;
  background:linear-gradient(90deg,var(--byzantium),var(--amethyst));box-shadow:0 0 10px rgba(126,58,140,.5)}

/* Hero content parallax layer (site.js drives transform/opacity on scroll) */
.hero-inner{will-change:transform,opacity}

/* Button sheen on hover: superseded by the later .btn::after block in this file (the one that
   animates `left`). The two were both live: the later block won `transform` and `transition` at
   rest, so the sheen only transitioned `left`, while THIS block's :hover rule still applied its
   own transform. On a 128px button that threw the 55px sheen 200px sideways instantly, on top of
   the 166px `left` move, so it spent the whole animation outside the overflow:hidden button and
   never showed. Removed; the later block is the one that was meant to run. */

/* Micro-lifts on interactive tiles */
.feature,.area,.step,.kpi,.pillar,.testi>div{transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease,border-color .45s ease}
.feature:hover,.pillar:hover,.testi>div:hover{transform:translateY(-6px);box-shadow:0 28px 56px -34px rgba(67,40,90,.5)}
.area:hover{transform:translateY(-4px)}
.kpi:hover{transform:translateY(-4px);border-color:var(--byzantium)}
.link-arrow{transition:color .3s ease,letter-spacing .3s ease}
.link-arrow:hover{color:var(--byzantium)}

/* Scroll cue (injected into the homepage hero by site.js) */
.scrollcue{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted);
  font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.scrollcue svg{animation:pwc-caret 1.8s ease-in-out infinite}

/* Refined marquee ticker (injected before the footer by site.js) */
.pwc-marquee{border-top:1px solid var(--orchid);border-bottom:1px solid var(--orchid);
  background:var(--paper);overflow:hidden;white-space:nowrap;padding:15px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.pwc-marquee__track{display:inline-flex;animation:pwc-marquee 48s linear infinite;will-change:transform}
.pwc-marquee:hover .pwc-marquee__track{animation-play-state:paused}
.pwc-marquee span{font-family:var(--display);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding:0 22px}
.pwc-marquee span b{color:var(--byzantium);font-weight:400}

/* Count-up numbers hold their box so the layout doesn't jump */
.pwc-num{font-variant-numeric:tabular-nums}

/* Calm everything for users who prefer reduced motion */
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .hero .glow,.page-hero .glow,.hero .motif,.hero img,.page-hero img,.g-main img,
  .ph:not(:has(img))::after,.pwc-marquee__track,.scrollcue svg{animation:none!important}
  #pwc-progress{display:none}
  .hero-inner{transform:none!important;opacity:1!important}
}

/* ============================================================
   SIGNATURE LAYER — cinematic arrival, transitions, cursor,
   texture, editorial motion. Injected/driven by motion.js.
   ============================================================ */

/* Film-grain texture for depth (very subtle, static) */
body::after{content:"";position:fixed;inset:0;z-index:9995;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.85'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'/%3E%3C/svg%3E");background-size:170px 170px}

/* Brand arrival preloader (once per session) */
#pwc-loader{position:fixed;inset:0;z-index:10000;background:var(--plum);color:var(--ivory);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}
#pwc-loader .lmono{font-family:var(--display);font-size:clamp(34px,7vw,60px);letter-spacing:.34em;
  padding-left:.34em;opacity:0;transform:translateY(10px);animation:pwc-lin .9s cubic-bezier(.2,.7,.2,1) .1s forwards}
#pwc-loader .lsub{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--orchid);opacity:0;animation:pwc-lin .9s ease .35s forwards}
#pwc-loader .lbar{width:130px;height:2px;background:rgba(246,241,233,.22);overflow:hidden;border-radius:2px}
#pwc-loader .lbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--orchid),var(--byzantium));animation:pwc-lbar 1.15s cubic-bezier(.6,0,.2,1) .25s forwards}
@keyframes pwc-lin{to{opacity:1;transform:none}}
@keyframes pwc-lbar{to{width:100%}}
#pwc-loader.lift{transform:translateY(-100%);transition:transform .85s cubic-bezier(.76,0,.24,1)}

/* Page-transition curtain */
#pwc-curtain{position:fixed;inset:0;z-index:9990;background:var(--plum);transform:translateY(100%);
  pointer-events:none;display:flex;align-items:center;justify-content:center}
#pwc-curtain .cmono{font-family:var(--display);font-size:clamp(26px,5vw,44px);letter-spacing:.3em;
  padding-left:.3em;color:var(--ivory);opacity:0;transition:opacity .3s ease}
#pwc-curtain.cover{transform:translateY(0);transition:transform .5s cubic-bezier(.76,0,.24,1)}
#pwc-curtain.cover .cmono{opacity:.9;transition:opacity .4s ease .15s}
#pwc-curtain.reveal{transform:translateY(-100%);transition:transform .6s cubic-bezier(.76,0,.24,1)}

/* Custom cursor (fine-pointer only; motion.js adds body.pwc-cur) */
body.pwc-cur,body.pwc-cur a,body.pwc-cur button,body.pwc-cur .btn,body.pwc-cur select,body.pwc-cur summary,body.pwc-cur input,body.pwc-cur textarea{cursor:none}
.pwc-ring,.pwc-dot{position:fixed;top:0;left:0;z-index:10001;pointer-events:none;border-radius:50%;
  transform:translate3d(-50%,-50%,0)}
.pwc-ring{width:32px;height:32px;border:1.5px solid var(--byzantium);opacity:.5;
  transition:width .25s ease,height .25s ease,background .25s ease,opacity .25s ease,border-color .25s ease}
.pwc-dot{width:5px;height:5px;background:var(--byzantium)}
.pwc-ring.grow{width:52px;height:52px;background:rgba(126,58,140,.07);opacity:.75;border-color:var(--amethyst)}
.pwc-ring.hide,.pwc-dot.hide{opacity:0}

/* Magnetic elements */
.btn,.magnetic{will-change:transform}

/* Word-by-word / line reveal for display headings */
.rl{--wd:0s}
.rl .rl-w{display:inline-block;overflow:hidden;vertical-align:top;line-height:1.05}
.rl .rl-w>i{display:inline-block;font-style:inherit;transform:translateY(112%);
  transition:transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--wd)}
.rl.in .rl-w>i{transform:none}

/* Editorial type — bigger, more presence on section heads */
.sec-head h2{font-size:clamp(28px,4.4vw,52px);letter-spacing:.05em;line-height:1.04}

/* ---- Cinematic pinned hero (homepage) ---- */
.cinema{position:relative;height:220vh}
.cinema__stage{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;
  background:var(--plum);color:var(--ivory)}
.cinema__bg{position:absolute;inset:-6%;z-index:0;
  background:radial-gradient(60% 60% at 74% 26%,rgba(126,58,140,.5),transparent 62%),
    radial-gradient(70% 70% at 12% 92%,rgba(67,40,90,.75),transparent 68%),var(--plum);
  will-change:transform;transform:scale(1.08)}
.cinema__grid{position:absolute;inset:0;z-index:1;opacity:.12;
  background-image:linear-gradient(rgba(231,221,240,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(231,221,240,.4) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(70% 70% at 50% 40%,#000,transparent)}
.cinema__inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);width:100%}
.cinema__eyebrow{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--orchid)}
.cinema h1{font-family:var(--display);font-weight:500;color:var(--ivory);
  font-size:clamp(36px,5.2vw,62px);line-height:.98;letter-spacing:.04em;margin:22px 0 0;max-width:15ch}
.cinema h1 em{font-style:normal;color:var(--orchid)}
.cinema__sub{color:rgba(246,241,233,.85);font-weight:300;max-width:52ch;margin-top:26px;
  font-size:clamp(16px,2vw,20px);opacity:0;transform:translateY(16px);transition:.9s ease}
.cinema.lead-in .cinema__sub{opacity:1;transform:none}
.cinema__cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:36px;opacity:0;transform:translateY(16px);transition:.9s ease .1s}
.cinema.lead-in .cinema__cta{opacity:1;transform:none}
.cinema__scrollcue{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:3;
  color:var(--orchid);font-size:12px;letter-spacing:.24em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:7px}
.cinema__scrollcue svg{animation:pwc-caret 1.8s ease-in-out infinite}
.cinema.lead-in .cinema__scrollcue{opacity:0;transition:opacity .5s}

/* ---- Horizontal-scroll showcase ---- */
.hscroll{position:relative}
.hscroll__sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;background:var(--charcoal);color:var(--ivory)}
.hscroll__head{max-width:var(--maxw);margin:0 auto 30px;padding:0 var(--gutter);width:100%}
.hscroll__head .eyebrow{color:var(--orchid)}
.hscroll__head h2{font-family:var(--display);font-size:clamp(26px,4vw,46px);color:var(--ivory);letter-spacing:.05em;margin-top:12px}
.hscroll__track{display:flex;gap:26px;padding:0 max(var(--gutter),8vw);will-change:transform}
.hscroll__card{flex:0 0 min(78vw,460px);background:var(--plum);border:1px solid rgba(231,221,240,.18);border-radius:4px;overflow:hidden}
.hscroll__card .ph{aspect-ratio:4/3;background:linear-gradient(150deg,#5a3f7e,#33204a);display:flex;align-items:center;justify-content:center;color:rgba(246,241,233,.5);font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.hscroll__card .cx{padding:22px 24px 26px}
.hscroll__card .loc{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--orchid)}
.hscroll__card h3{font-family:var(--display);font-size:20px;letter-spacing:.05em;color:var(--ivory);margin:10px 0 6px}
.hscroll__card .pr{font-family:var(--display);color:var(--orchid)}
.hscroll__card .mt{font-size:14px;font-weight:300;color:rgba(246,241,233,.7);margin-top:10px}
.hscroll__hint{max-width:var(--maxw);margin:26px auto 0;padding:0 var(--gutter);width:100%;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(246,241,233,.5)}
@media(max-width:820px){
  .cinema{height:auto}.cinema__stage{position:relative;height:auto;min-height:88vh;padding:120px 0 90px}
  .hscroll__sticky{position:relative;height:auto;padding:70px 0}
  .hscroll__track{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px;-webkit-overflow-scrolling:touch}
  .hscroll__card{scroll-snap-align:center}
}

/* Signature-layer reduced-motion / touch guards */
@media(prefers-reduced-motion:reduce){
  #pwc-loader,#pwc-curtain{display:none!important}
  .rl .rl-w>i{transform:none!important}
  .cinema{height:auto}.cinema__stage{position:relative;height:auto;min-height:80vh;padding:120px 0}
  .cinema__sub,.cinema__cta{opacity:1!important;transform:none!important}
  .cinema__bg{transform:none!important;animation:none!important}
  .hscroll__sticky{position:relative;height:auto}
  body::after{display:none}
}

/* Homepage header sits over the dark cinematic hero until scrolled */
body.home-cinema #hdr:not(.scrolled){background:linear-gradient(180deg,rgba(38,32,52,.82) 0%,rgba(38,32,52,.5) 55%,rgba(38,32,52,0) 100%)}
body.home-cinema #hdr:not(.scrolled) .mono{background:transparent;border-color:rgba(246,241,233,.7);color:var(--ivory)}
body.home-cinema #hdr:not(.scrolled) .wm b{color:var(--ivory)}
body.home-cinema #hdr:not(.scrolled) .wm small{color:rgba(246,241,233,.75)}
body.home-cinema #hdr:not(.scrolled) nav.main a{color:rgba(246,241,233,.92)}
body.home-cinema #hdr:not(.scrolled) nav.main a:hover,body.home-cinema #hdr:not(.scrolled) nav.main a.active{color:var(--orchid)}
body.home-cinema #hdr:not(.scrolled) nav.main a.btn{background:transparent;border-color:rgba(246,241,233,.6);color:var(--ivory)}
body.home-cinema #hdr:not(.scrolled) nav.main>a:not(.btn)::after{background:var(--orchid)}
body.home-cinema #hdr:not(.scrolled) .lang a{color:rgba(246,241,233,.8)}
body.home-cinema #hdr:not(.scrolled) .lang b{color:var(--orchid)}
body.home-cinema #hdr:not(.scrolled) .burger span{background:var(--ivory)}
body.home-cinema #hdr:not(.scrolled) .search-btn{color:var(--ivory)}

/* ============ Social + homepage search pill + connect ============ */
.foot-social{display:flex;gap:22px;justify-content:center;align-items:center;padding:8px 0 4px;margin-top:6px}
.foot-social a{color:rgba(246,241,233,.55);transition:.25s ease;display:inline-flex}
.foot-social a:hover{color:var(--orchid);transform:translateY(-2px)}
.home-search{max-width:660px;margin:0 auto}
.home-search button{width:100%;display:flex;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--orchid);border-radius:60px;padding:16px 18px 16px 26px;cursor:pointer;color:var(--muted);font-family:var(--sans);font-size:clamp(14px,1.7vw,17px);transition:.3s ease;box-shadow:0 22px 50px -34px rgba(67,40,90,.5)}
.home-search button:hover{border-color:var(--byzantium);box-shadow:0 28px 60px -34px rgba(67,40,90,.6);transform:translateY(-2px)}
.home-search svg{color:var(--byzantium);flex:none}
.home-search .hs-txt{text-align:left}
.home-search .hs-cta{margin-left:auto;background:var(--amethyst);color:var(--ivory);border-radius:50px;padding:9px 20px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.home-social{display:flex;gap:18px;justify-content:center;align-items:center;padding:20px 0 0}
.home-social a{color:var(--muted);transition:.25s ease;display:inline-flex}
.home-social a:hover{color:var(--byzantium);transform:translateY(-2px)}
.connect{text-align:center}
.connect .big-social{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.connect .big-social a{width:58px;height:58px;border:1px solid var(--orchid);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--amethyst);transition:.3s ease}
.connect .big-social a:hover{background:var(--amethyst);color:var(--ivory);transform:translateY(-4px);border-color:var(--amethyst)}

/* ============ Accessibility: skip link + visible focus ============ */
.skip-link{position:fixed;top:-60px;left:16px;z-index:10002;background:var(--amethyst);color:var(--ivory);padding:11px 20px;border-radius:3px;font-size:13px;letter-spacing:.08em;text-decoration:none;transition:top .2s ease}
.skip-link:focus{top:14px}
:focus-visible{outline:2px solid var(--byzantium);outline-offset:3px}


/* ============ Polish — minimal + motion (July 2026) ============ */
@keyframes pwcDrift{0%,100%{background-position:0% 0%}50%{background-position:100% 100%}}
.cinema__bg{background-size:170% 170%;animation:pwcDrift 26s ease-in-out infinite}
.hero .glow,.page-hero .glow{animation:pwcGlow 12s ease-in-out infinite}
@keyframes pwcGlow{0%,100%{opacity:1}50%{opacity:.72}}
.ph::after,.portrait::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 32%,rgba(246,241,233,.07) 46%,rgba(246,241,233,.15) 50%,rgba(246,241,233,.07) 54%,transparent 68%);
  transform:translateX(-100%);animation:pwcSheen 6s ease-in-out infinite}
.portrait{overflow:hidden}
@keyframes pwcSheen{0%,50%{transform:translateX(-100%)}90%,100%{transform:translateX(100%)}}
.card,.area,.feature,.hscroll__card,.review-card{transition:transform .5s cubic-bezier(.22,.61,.36,1),box-shadow .5s cubic-bezier(.22,.61,.36,1),border-color .5s ease}
.card:hover,.area:hover{transform:translateY(-8px);box-shadow:0 30px 60px -34px rgba(67,40,90,.55);border-color:var(--byzantium)}
.review-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -34px rgba(67,40,90,.45)}
.pillar{transition:background .4s ease,transform .5s cubic-bezier(.22,.61,.36,1)}
.pillar:hover{background:#fff;transform:translateY(-5px);position:relative;z-index:1;box-shadow:0 28px 56px -30px rgba(67,40,90,.5);border-top-color:var(--amethyst)}
.pillar .num{transition:.35s ease}
.pillar:hover .num{color:var(--amethyst);transform:translateX(4px);display:inline-block}
.feature .ic{transition:transform .45s cubic-bezier(.22,.61,.36,1),color .45s}
.feature:hover .ic{transform:translateY(-5px) scale(1.08);color:var(--byzantium)}
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-70%;width:44%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-20deg);transition:left .55s ease}
.btn:hover::after{left:130%}
.sec-head .eyebrow::before{content:"";display:inline-block;width:26px;height:1px;background:var(--byzantium);vertical-align:middle;margin-right:12px;opacity:.65}
.sec-head.center .eyebrow::after{content:"";display:inline-block;width:26px;height:1px;background:var(--byzantium);vertical-align:middle;margin-left:12px;opacity:.65}
.stats .stat .n{transition:.35s ease}
.stats .stat:hover .n{color:var(--orchid);transform:translateY(-3px)}
.stats .stat{cursor:default}
.testi-grid>div{transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.testi-grid>div:hover{transform:translateY(-5px)}
.link-arrow{position:relative}
.facts>div{transition:transform .4s ease,box-shadow .4s ease}
.facts>div:hover{transform:translateY(-3px)}
@media(prefers-reduced-motion:reduce){
  .cinema__bg,.hero .glow,.page-hero .glow,.ph::after,.portrait::after{animation:none!important}
  .btn::after{display:none}
}


/* cursor glow on cards */
.card,.area,.feature,.review-card,.pillar{position:relative}
.card::before,.area::after,.feature::after,.review-card::after,.pillar::after{}
.card:hover,.area:hover,.feature:hover,.review-card:hover,.pillar:hover{--glow-on:1}
.area::before,.feature::before,.review-card::before,.pillar::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s ease;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(126,58,140,.09),transparent 65%)}
.area:hover::before,.feature:hover::before,.review-card:hover::before,.pillar:hover::before{opacity:1}
/* back-to-top monogram */
#pwc-top{position:fixed;right:22px;bottom:22px;z-index:80;width:52px;height:52px;border-radius:50%;
  border:1px solid var(--orchid);background:var(--plum);color:var(--ivory);font-family:var(--display);
  font-size:12px;letter-spacing:.08em;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(14px);
  transition:.4s ease;box-shadow:0 14px 34px -14px rgba(67,40,90,.6)}
#pwc-top.show{opacity:1;visibility:visible;transform:none}
#pwc-top:hover{background:var(--byzantium);border-color:var(--byzantium)}
/* refined placeholder monogram */
.ph span,.card .ph span,.hscroll__card .ph{font-family:var(--display)!important;font-size:13px!important;letter-spacing:.34em!important;opacity:.5}
@media print{#pwc-top{display:none!important}}


/* ---- Gallery framing + gloss ---- */
.framed{border:1px solid var(--byzantium);outline:10px solid var(--paper);outline-offset:0;
  box-shadow:0 0 0 11px rgba(67,40,90,.16),0 34px 70px -36px rgba(67,40,90,.55)}
.quiz-box,.video,.callout{border-width:1px;box-shadow:0 0 0 1px rgba(126,58,140,.08),0 30px 64px -40px rgba(67,40,90,.5)}

.stats{border-block:1px solid rgba(246,241,233,.14);padding-block:14px}
.dark .stats .stat .n{text-shadow:0 0 34px rgba(231,221,240,.25)}
.sec-head h2{position:relative}
.page-hero h1{text-shadow:0 2px 40px rgba(67,40,90,.18)}



/* footer rebalance */
.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.25fr!important;gap:48px}
.foot-contact .row{margin:0 0 10px;font-size:14px}
.foot-contact a{border-bottom:1px solid rgba(246,241,233,.2)}
.foot-contact .fsoc{display:flex;gap:16px;margin-top:18px}
.foot-contact .fsoc a{color:rgba(246,241,233,.55);transition:.25s;border:0}
.foot-contact .fsoc a:hover{color:var(--orchid);transform:translateY(-2px)}
@media(max-width:960px){.foot-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr!important}}

/* ============ Print ============ */
@media print{
  header,footer,.pwc-marquee,.cta-band,.quote-band,.burger,.search-btn,.search-overlay,.scrollcue,#pwc-progress,.skip-link,.sub-form,.btn{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  .reveal{opacity:1!important;transform:none!important}
  a{color:#000;text-decoration:none}
  .prose a::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
  section{padding:0 0 18pt!important}
}

/* affil band 2-col (responsive) */
.affil-2col{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(28px,5vw,72px);align-items:center;text-align:left}
@media(max-width:820px){.affil-2col{grid-template-columns:1fr;text-align:center}
  .affil-2col .lockup{justify-content:center!important}}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:620px){.grid-2{grid-template-columns:1fr}}

/* ---- v0718 additions ---- */
/* 2. reading progress bar */
#pwc-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--byzantium),var(--amethyst));z-index:60;transition:width .1s linear}
/* 1. affiliate typographic lockups */
.net-row{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:44px}
.net-mark{border:1px solid var(--orchid);background:var(--paper);padding:26px 14px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:8px;min-height:110px;transition:.3s ease}
.net-mark:hover{border-color:var(--byzantium);transform:translateY(-3px);box-shadow:0 20px 40px -30px rgba(67,40,90,.45)}
.net-mark b{font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.1em;color:var(--amethyst);line-height:1.3}
.net-mark small{font-family:var(--sans);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.dark .net-mark{background:rgba(246,241,233,.04);border-color:rgba(231,221,240,.25)}
.dark .net-mark b{color:var(--ivory)}.dark .net-mark small{color:rgba(246,241,233,.55)}
@media(max-width:960px){.net-row{grid-template-columns:repeat(2,1fr)}.net-row .net-mark:last-child{grid-column:1/-1}}
/* 4. review filters */
.rev-filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:8px 0 34px}
.rev-filters button{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:9px 18px;border:1px solid var(--orchid);background:transparent;color:var(--charcoal);cursor:pointer;transition:.25s}
.rev-filters button:hover{border-color:var(--byzantium);color:var(--byzantium)}
.rev-filters button.on{background:var(--amethyst);border-color:var(--amethyst);color:var(--ivory)}
.review-card.hidden-f{display:none}
/* 5. mobile quick actions */
#pwc-actions{display:none}
@media(max-width:760px){
  #pwc-actions{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:49;background:rgba(67,40,90,.97);backdrop-filter:blur(8px);border-top:1px solid rgba(231,221,240,.25)}
  #pwc-actions a{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 6px;color:var(--ivory);font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
  #pwc-actions a+a{border-left:1px solid rgba(231,221,240,.18)}
  body.has-actions{padding-bottom:52px}
  body.has-actions #pwc-top{bottom:70px}
}
/* 6. keyboard focus */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--byzantium);outline-offset:3px;border-radius:2px}
/* 8. article dateline */
.dateline{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
/* 3. prev/next article nav */
.art-nav{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:64px;border-top:1px solid var(--orchid);padding-top:34px}
.art-nav a{border:1px solid var(--orchid);padding:20px 22px;transition:.3s ease;background:var(--paper)}
.art-nav a:hover{border-color:var(--byzantium);transform:translateY(-3px)}
.art-nav .dir{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:8px}
.art-nav .ttl{font-family:var(--display);font-size:16.5px;color:var(--amethyst);letter-spacing:.04em}
.art-nav a.next{text-align:right}
@media(max-width:620px){.art-nav{grid-template-columns:1fr}.art-nav a.next{text-align:left}}
/* 9. homepage stats band */
.stats-band .stats{margin-top:8px}

/* v0718b: process journey line through step numbers */
.steps{position:relative}
.steps::before{content:"";position:absolute;left:23px;top:28px;bottom:28px;width:1.5px;
  background:linear-gradient(180deg,var(--orchid),var(--byzantium) 50%,var(--orchid));opacity:.55}
.step{position:relative}
.step .n{position:relative;background:var(--ivory);z-index:1;padding:6px 0}
@media(max-width:960px){.steps::before{display:none}}
/* v0718b: richer dark bands */
.dark{background:radial-gradient(90% 120% at 85% -10%,rgba(126,58,140,.35),transparent 55%),
  radial-gradient(70% 100% at 8% 110%,rgba(86,59,121,.4),transparent 60%),var(--plum)}
/* v0718b: inline diagram figure */
.fig{margin:34px 0;border:1px solid var(--orchid);background:var(--paper);padding:26px 22px 16px}
.fig svg{display:block;width:100%;height:auto}
.fig figcaption{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:12px;text-align:center}
/* v0718b: price band chip on area cards */
.area .pb{font-family:var(--sans);font-size:12px;letter-spacing:.18em;color:var(--byzantium);opacity:.85;margin-left:8px}
/* v0718b: FAQ quick search */
.faq-search{max-width:520px;margin:0 auto 8px}
.faq-search input{width:100%;padding:13px 18px;border:1px solid var(--orchid);background:#fff;font-family:var(--sans);font-size:15px;color:var(--charcoal)}
.faq-search input:focus{outline:none;border-color:var(--byzantium)}

/* v0722: net proceeds estimator */
.est{border:1px solid var(--orchid);background:var(--paper);padding:clamp(24px,4vw,40px);margin:40px 0}
.est h3{font-size:clamp(20px,2.4vw,25px);margin-bottom:6px}
.est .note-sm{font-family:var(--sans);font-size:12px;color:var(--muted);margin-bottom:22px}
.est .grid-2{margin-bottom:14px}
.est label{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.est input{width:100%;padding:12px 14px;border:1px solid var(--orchid);background:#fff;font-family:var(--sans);font-size:16px;color:var(--charcoal)}
.est input:focus{outline:none;border-color:var(--byzantium)}
.est .out{margin-top:22px;border-top:1px solid var(--orchid);padding-top:18px}
.est .row-o{display:flex;justify-content:space-between;font-family:var(--sans);font-size:14.5px;padding:5px 0;color:var(--charcoal)}
.est .row-o.total{font-size:19px;color:var(--amethyst);font-weight:600;border-top:1px solid var(--orchid);margin-top:8px;padding-top:12px}
/* v0722: reviews aggregate badge */
.agg-badge{display:inline-flex;align-items:center;gap:14px;border:1px solid var(--orchid);background:var(--paper);padding:14px 26px;margin-top:22px}
.agg-badge .big{font-family:var(--display);font-size:30px;color:var(--amethyst);line-height:1}
.agg-badge .st{color:#C9A227;font-size:15px;letter-spacing:2px}
.agg-badge small{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-top:3px}
/* v0722: sample ribbon */
.sample-tag{position:absolute;top:14px;left:-1px;background:var(--plum);color:var(--ivory);font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;padding:5px 12px;z-index:2}

/* v0722c: faq micro-interactions */
.faq details{transition:background .3s ease}
.faq details[open]{background:var(--paper)}
.faq summary::after{transition:transform .3s ease;display:inline-block}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{animation:faqIn .35s ease both}
@keyframes faqIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
