/* Clarté — Ivory & Peony */
:root{
  --ivory:#FFFBFA; --petal:#FDF1F2; --mist:#F7DEE2; --silk:#F1E3E6; --blush:#F9E4E7;
  --peony:#E2A6AE; --rg:#EBB8BE; --rg-hover:#E2A6AE; --rg-soft:#F3CDD2;
  --deep:#975A63; --deeper:#7E4852; --rose-em:#B9787F;
  --rose-grey:#7A5F60; --ink:#4A3438;
  --line:rgba(59,42,48,.12); --line-strong:rgba(59,42,48,.22);

  --display:"Cormorant Garamond","Cormorant",Georgia,serif;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;

  /* type scale */
  --t-display:clamp(3.2rem,6.2vw,7rem);
  --t-headline:clamp(2.4rem,4.6vw,4.4rem);
  --t-title:clamp(1.6rem,2.4vw,2.2rem);
  --t-lede:clamp(1.12rem,1.4vw,1.3rem);
  --t-body:1.02rem;
  --t-caption:.8rem;

  --gutter:clamp(20px,5vw,72px);
  --max:1320px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font:300 var(--t-body)/1.7 var(--sans);letter-spacing:.01em;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
::selection{background:var(--mist);color:var(--ink)}
:focus-visible{outline:2px solid var(--deep);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type */
.display{font:300 var(--t-display)/.98 var(--display);letter-spacing:-.015em;margin:0}
.headline{font:300 var(--t-headline)/1.05 var(--display);letter-spacing:-.01em;margin:0}
.title{font:400 var(--t-title)/1.15 var(--display);margin:0}
.lede{font-size:var(--t-lede);line-height:1.65;color:var(--rose-grey);margin:0}
.eyebrow{font:400 var(--t-caption)/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--deep);margin:0 0 22px}
em,.it{font-style:italic;color:var(--deep)}
.muted{color:var(--rose-grey)}

/* preview bar */
.preview-bar{background:var(--ink);color:var(--silk);text-align:center;font-size:.78rem;letter-spacing:.08em;padding:9px 16px}
.preview-bar b{font-weight:400;color:#fff}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,251,249,.0);transition:background .5s var(--ease),border-color .5s var(--ease);border-bottom:1px solid transparent}
.site-header.scrolled{background:rgba(255,251,249,.96);border-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.logo{font:400 1.9rem/1 var(--display);letter-spacing:.05em;text-decoration:none}
.logo small{display:block;font:400 .58rem/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--deep);margin-top:6px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;font:400 .9rem/1 var(--sans);letter-spacing:.06em;text-decoration:none;border-radius:999px;padding:17px 30px;border:1px solid var(--deep);background:var(--deep);color:var(--ivory);cursor:pointer;transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}
.btn:hover{background:var(--deeper);border-color:var(--deeper)}
.btn:active{transform:scale(.98)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn.ghost:hover{border-color:var(--deep);color:var(--deep)}
.btn.small{padding:12px 22px;font-size:.82rem}
.link-arrow{font-size:.9rem;letter-spacing:.05em;text-decoration:none;border-bottom:1px solid var(--line-strong);padding-bottom:4px;transition:border-color .4s,color .4s}
.link-arrow:hover{color:var(--deep);border-color:var(--deep)}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:calc(100svh - 120px);align-items:stretch}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:60px var(--gutter) 80px max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)))}
.hero-copy .lede{max-width:30ch;margin:34px 0 44px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center}
.hero-media{position:relative;overflow:hidden;border-bottom-left-radius:220px}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;filter:saturate(.8);transform:scale(1.08);transition:transform 2.6s var(--ease)}
.loaded .hero-media img{transform:scale(1)}
.hero-badge{position:absolute;left:auto;right:36px;bottom:36px;background:rgba(255,251,249,.94);border-radius:18px;padding:18px 22px;max-width:270px;font-size:.84rem;line-height:1.5}
.hero-badge b{display:block;font:400 1.25rem/1.2 var(--display);margin-bottom:4px}

/* promise strip */
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0}
.strip li{padding:28px 20px;text-align:center;font-size:.86rem;letter-spacing:.05em;border-left:1px solid var(--line)}
.strip li:first-child{border-left:0}
.strip li span{display:block;font:italic 400 1.3rem/1 var(--display);color:var(--deep);margin-bottom:8px}

/* sections */
.section{padding:clamp(90px,12vw,170px) 0}
.section.petal{background:var(--petal)}
.statement{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(40px,7vw,110px);align-items:center}
.statement .headline{max-width:16ch}
.statement p.lede{margin-top:30px;max-width:46ch}
.arch{border-radius:999px 999px 24px 24px;overflow:hidden;aspect-ratio:4/5}
.arch img{width:100%;height:100%;object-fit:cover}

.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:64px}
.section-head .lede{max-width:40ch}

.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.service{background:var(--ivory);border:1px solid var(--line);border-radius:28px;overflow:hidden;display:flex;flex-direction:column;transition:transform .7s var(--ease),border-color .5s}
.service:hover{transform:translateY(-6px);border-color:var(--peony)}
.service figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.service figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.service:hover figure img{transform:scale(1.05)}
.service-body{padding:30px 30px 34px;display:flex;flex-direction:column;flex:1}
.service-body .num{font:italic 400 1rem/1 var(--display);color:var(--deep);margin-bottom:14px}
.service-body p{color:var(--rose-grey);margin:14px 0 20px}
.service-body ul{list-style:none;padding:0;margin:0 0 28px;font-size:.92rem}
.service-body li{padding:9px 0;border-top:1px solid var(--line)}
.service-body .link-arrow{margin-top:auto;align-self:flex-start}

.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line-strong)}
.step{padding:38px 28px 10px 0}
.step + .step{padding-left:28px;border-left:1px solid var(--line)}
.step .roman{font:300 3.4rem/1 var(--display);color:var(--peony);margin-bottom:22px}
.step h3{font:400 1.45rem/1.2 var(--display);margin:0 0 12px}
.step p{color:var(--rose-grey);margin:0;font-size:.95rem}

.discretion{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,110px);align-items:center}
.discretion figure{margin:0;border-radius:28px;overflow:hidden;aspect-ratio:5/4}
.discretion figure img{width:100%;height:100%;object-fit:cover}
.checks{list-style:none;padding:0;margin:36px 0 0}
.checks li{display:grid;grid-template-columns:30px 1fr;gap:14px;padding:18px 0;border-top:1px solid var(--line-strong)}
.checks li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--peony);margin-top:10px}
.checks b{font-weight:400;display:block}
.checks span{color:var(--rose-grey);font-size:.93rem}

.areas{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.areas span{border:1px solid var(--line-strong);border-radius:999px;padding:11px 22px;font-size:.9rem}
.areas span.on{background:var(--deep);border-color:var(--deep);color:var(--ivory)}

.faq{max-width:880px}
.faq details{border-top:1px solid var(--line-strong);padding:6px 0}
.faq details:last-child{border-bottom:1px solid var(--line-strong)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font:400 1.4rem/1.3 var(--display)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:300 1.6rem/1 var(--sans);color:var(--deep);transition:transform .4s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 24px;color:var(--rose-grey);max-width:62ch}

.final{position:relative;min-height:78svh;display:flex;align-items:center;overflow:hidden;color:var(--ivory)}
.final img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.final::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(59,42,48,.62),rgba(59,42,48,.15) 70%)}
.final .wrap{position:relative;z-index:1;width:100%}
.final .eyebrow{color:var(--mist)}
.final .lede{color:var(--silk);max-width:38ch;margin:26px 0 40px}
.final .btn{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.final .btn:hover{background:var(--mist);border-color:var(--mist)}

/* footer */
.site-footer{background:var(--ink);color:var(--silk);padding:110px 0 34px;overflow:hidden}
.foot-top{display:flex;justify-content:space-between;align-items:end;gap:40px;flex-wrap:wrap;padding-bottom:70px;border-bottom:1px solid rgba(237,228,230,.14)}
.foot-intro .eyebrow{color:var(--peony)}
.foot-line{font:300 clamp(2rem,3.6vw,3.4rem)/1.1 var(--display);color:var(--ivory);max-width:20ch;margin:0}
.foot-line em{color:var(--peony)}
.foot-cta{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.foot-link{color:rgba(237,228,230,.8);border-color:rgba(237,228,230,.3)}
.foot-link:hover{color:#fff;border-color:var(--peony)}
.foot{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:36px;padding:64px 0 10px}
.foot h4{font:400 .7rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--peony);margin:0 0 22px}
.foot ul{list-style:none;padding:0;margin:0;font-size:.92rem}
.foot li{padding:6px 0;color:rgba(237,228,230,.7)}
.foot a{text-decoration:none;color:rgba(237,228,230,.86);background:linear-gradient(var(--peony),var(--peony)) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease),color .3s}
.foot a:hover{color:#fff;background-size:100% 1px}
.foot .muted-li{color:rgba(237,228,230,.5);font-style:italic}
.wordmark{display:block;width:100%;height:auto;margin:56px 0 34px;overflow:visible;user-select:none}
.wordmark text{font-family:var(--display);font-weight:300;font-size:268px;fill:rgba(217,138,154,.06);stroke:rgba(217,138,154,.55);stroke-width:1.1;vector-effect:non-scaling-stroke;paint-order:stroke}
.legal{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid rgba(237,228,230,.14);padding-top:24px;font-size:.78rem;color:rgba(237,228,230,.56);position:relative}
.legal nav{display:flex;gap:24px;flex-wrap:wrap}
.legal a{color:rgba(237,228,230,.7);text-decoration:none}
.legal a:hover{color:#fff}

/* page hero (inner pages) */
.page-hero{padding:clamp(70px,9vw,130px) 0 clamp(40px,5vw,70px)}
.page-hero .lede{max-width:52ch;margin-top:26px}

/* forms */
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.field label,.field legend{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-grey)}
.field label i{text-transform:none;letter-spacing:0;font-style:normal;opacity:.8}
input,select,textarea{font:300 1rem/1.4 var(--sans);color:var(--ink);background:var(--ivory);border:1px solid var(--line-strong);border-radius:14px;padding:15px 16px;width:100%;transition:border-color .3s,box-shadow .3s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--deep);box-shadow:0 0 0 4px rgba(217,138,154,.18)}
textarea{min-height:150px;resize:vertical}
.hint{font-size:.8rem;color:var(--rose-grey);margin:2px 0 0}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 18px}
.check{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;font-size:.9rem;color:var(--rose-grey);margin:8px 0 26px}
.check input{width:18px;height:18px;margin-top:3px;accent-color:var(--deep);padding:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{font-size:.9rem;margin-top:16px;min-height:1.4em}
.status.ok{color:var(--deep)}
.status.err{color:#A23B4E}
.submit-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.mark{font:400 .66rem/1 var(--sans);letter-spacing:.3em;color:var(--rose-grey)}

/* estimator */
.estimator{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(30px,5vw,70px);align-items:start}
.panel{background:var(--ivory);border:1px solid var(--line);border-radius:28px;padding:clamp(24px,3.5vw,44px)}
.choices{display:flex;flex-wrap:wrap;gap:10px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer}
.choice span{display:inline-block;border:1px solid var(--line-strong);border-radius:999px;padding:11px 20px;font-size:.9rem;transition:all .3s var(--ease)}
.choice input:checked + span{background:var(--deep);border-color:var(--deep);color:var(--ivory)}
.choice input:focus-visible + span{outline:2px solid var(--deep);outline-offset:3px}
.stepper{display:flex;align-items:center;gap:14px}
.stepper button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:var(--ivory);font:300 1.3rem/1 var(--sans);color:var(--ink);cursor:pointer}
.stepper button:hover{border-color:var(--deep);color:var(--deep)}
.stepper output{font:400 1.8rem/1 var(--display);min-width:2ch;text-align:center}
.summary{position:sticky;top:110px;background:var(--petal)}
.price{font:300 clamp(3rem,5vw,4.4rem)/1 var(--display);margin:10px 0 6px}
.price small{font-size:.4em;color:var(--rose-grey)}
.lines{list-style:none;padding:0;margin:24px 0;font-size:.92rem}
.lines li{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line)}
.note{font-size:.8rem;color:var(--rose-grey);background:var(--ivory);border-radius:14px;padding:14px 16px;margin:18px 0 0}

/* contact */
.contact-hero{position:relative;min-height:74svh;display:flex;align-items:flex-end;overflow:hidden;color:var(--ivory)}
.contact-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(.95)}
.contact-hero::before{content:"";position:absolute;inset:0;z-index:0;background:#B4687A;mix-blend-mode:multiply;opacity:.62}
.contact-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(59,42,48,.78),rgba(59,42,48,.35) 55%,rgba(59,42,48,0))}
.contact-hero .wrap{position:relative;z-index:1;width:100%;padding-bottom:70px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:end}
.contact-hero .lede{color:var(--silk);max-width:40ch;margin-top:22px}
.office{border-left:1px solid rgba(255,251,249,.35);padding-left:28px}
.office .eyebrow{color:var(--mist);margin-bottom:14px}
.office address{font-style:normal;display:flex;flex-direction:column;gap:4px;font-size:.95rem;color:var(--silk)}
.office address a{font:400 1.8rem/1.15 var(--display);color:var(--ivory);text-decoration:none}
.office .small{font-size:.82rem;color:rgba(237,228,230,.8);margin:16px 0 8px;max-width:36ch}
.office .small a{color:var(--mist)}

/* legal docs */
.doc{max-width:820px}
.doc h2{font:400 1.6rem/1.25 var(--display);margin:48px 0 12px}
.doc p,.doc li{color:#5a4850}
.doc .draft{background:var(--petal);border-radius:16px;padding:16px 20px;font-size:.9rem;color:var(--ink)}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .hero-media img{transform:none}
}

@media (max-width:980px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:40px var(--gutter) 50px;order:2}
  .hero-media{height:62svh;border-radius:0 0 0 120px}
  .strip ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .strip li:nth-child(3){border-left:0}
  .strip li{border-top:1px solid var(--line)}
  .statement,.discretion,.estimator,.contact-hero .wrap{grid-template-columns:1fr}
  .services{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .step:nth-child(3){padding-left:0;border-left:0}
  .foot{grid-template-columns:repeat(3,minmax(0,1fr))}
  .section-head{flex-direction:column;align-items:start}
  .summary{position:static}
  .office{border-left:0;padding-left:0;border-top:1px solid rgba(255,251,249,.35);padding-top:24px}
}
@media (max-width:760px){
  .nav{height:70px}
  .steps{grid-template-columns:1fr}
  .step,.step + .step{padding:30px 0 10px;border-left:0}
  .grid2{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr 1fr}
  .hero-badge{left:16px;right:16px;bottom:16px;max-width:none}
}

/* ---------- motion layer ---------- */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
#story{position:relative}
.stage{position:sticky;top:0;height:100svh;margin-bottom:-100svh;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.6s var(--ease)}
.stage.ready{opacity:1}
.stage canvas{width:100%;height:100%;display:block}
#story > section{position:relative;z-index:1}
.no-webgl .stage{background:url(/img/hero-living.webp) center/cover;opacity:.35}
.no-webgl .stage canvas{display:none}

.hero-cine{min-height:calc(100svh - 120px);display:flex;align-items:center;justify-content:center;text-align:center;padding:40px var(--gutter) 90px}
.hero-inner{max-width:980px;position:relative}
.hero-inner::before{content:"";position:absolute;inset:-12% -18%;z-index:-1;background:radial-gradient(closest-side,rgba(255,251,249,.82),rgba(255,251,249,0));pointer-events:none}
.hero-cine .display{font-size:clamp(3.4rem,8.6vw,9rem)}
.hero-cine .lede{max-width:40ch;margin:34px auto 44px}
.hero-cine .hero-ctas{justify-content:center}
.scroll-cue{position:absolute;left:50%;bottom:26px;width:1px;height:64px;background:var(--line-strong);overflow:hidden}
.scroll-cue span{position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--deep);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{to{top:110%}}
#story .strip{background:rgba(255,251,249,.72)}
#story .statement > div:first-child{background:rgba(255,251,249,.6);border-radius:28px;padding:clamp(0px,2vw,30px)}

/* split text */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .w > span{display:inline-block;transform:translateY(105%);transition:transform 1.25s var(--ease)}
.split.in .w > span{transform:none}

/* image masks + parallax */
.mask{overflow:hidden;clip-path:inset(100% 0 0 0 round 28px);transition:clip-path 1.6s var(--ease)}
.mask.in{clip-path:inset(0 0 0 0 round 28px)}
.arch.mask{clip-path:inset(100% 0 0 0 round 999px 999px 24px 24px)}
.arch.mask.in{clip-path:inset(0 0 0 0 round 999px 999px 24px 24px)}
[data-parallax]{will-change:transform;transform:scale(1.14)}

/* rooms: pinned horizontal gallery */
.rooms{position:relative;background:var(--ivory)}
.rooms-pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:4vh}
.rooms-head{position:relative;z-index:2}
.hs-viewport{overflow:visible}
.hs-track{display:flex;align-items:flex-end;gap:clamp(28px,3.5vw,56px);padding:0 var(--gutter);width:max-content;will-change:transform}
.hs-intro{width:min(30vw,340px);align-self:center}
.hs-intro .lede{font-size:1.05rem}
.hs-item{margin:0;display:flex;flex-direction:column;gap:16px}
.hs-img{overflow:hidden;border-radius:24px;background:var(--petal)}
.hs-item.tall .hs-img{width:min(28vw,380px);height:min(58vh,540px)}
.hs-item.wide .hs-img{width:min(44vw,640px);height:min(44vh,420px)}
.hs-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);will-change:transform}
.hs-item figcaption{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:baseline}
.hs-item figcaption span{font:italic 400 1rem/1 var(--display);color:var(--deep);grid-row:span 2}
.hs-item figcaption b{font:400 1.45rem/1.2 var(--display)}
.hs-item figcaption i{font-style:normal;font-size:.88rem;color:var(--rose-grey)}
.hs-end{align-self:center;padding-right:var(--gutter)}

/* beyond */
.beyond{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.b-card{display:flex;flex-direction:column;gap:20px}
.b-card .mask{aspect-ratio:4/3;border-radius:28px}
.b-card.tall{grid-row:span 2}
.b-card.tall .mask{aspect-ratio:auto;flex:1;min-height:420px}
.b-card.wide{grid-column:span 2}
.b-card.wide .mask{aspect-ratio:21/9}
.b-card img{width:100%;height:100%;object-fit:cover}
.b-card p{color:var(--rose-grey);margin:8px 0 0;max-width:42ch}
.extras{list-style:none;padding:0;margin:64px 0 0;display:flex;flex-wrap:wrap;gap:12px}
.extras li{border:1px solid var(--line-strong);border-radius:999px;padding:11px 22px;font-size:.9rem}

/* ink section: home services */
.section.ink{background:var(--ink);color:var(--silk)}
.ink .eyebrow{color:var(--peony)}
.ink .headline{color:var(--ivory)}
.ink em{color:var(--peony)}
.ink .lede{color:rgba(237,228,230,.78);max-width:46ch;margin-top:26px}
.home-services{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(40px,7vw,110px);align-items:center}
.tech{list-style:none;padding:0;margin:44px 0 26px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px}
.tech li{display:grid;grid-template-columns:34px 1fr;column-gap:14px;padding:18px 0;border-top:1px solid rgba(237,228,230,.16)}
.tech svg{width:26px;height:26px;color:var(--peony);grid-row:span 2;margin-top:2px}
.tech b{font-weight:400;color:var(--ivory)}
.tech span{font-size:.88rem;color:rgba(237,228,230,.66)}
.fine{font-size:.8rem;color:rgba(237,228,230,.55);margin:0 0 28px}
.btn.light{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.btn.light:hover{background:var(--mist);border-color:var(--mist)}
.tech-media{position:relative;height:clamp(420px,52vw,640px)}
.tech-media .mask{position:absolute;border-radius:28px}
.tech-media .a{left:0;top:0;width:68%;height:78%}
.tech-media .b{right:0;bottom:0;width:46%;height:56%;outline:10px solid var(--ink)}
.tech-media img{width:100%;height:100%;object-fit:cover}

.service{transform-style:preserve-3d;will-change:transform}

@media (prefers-reduced-motion:reduce){
  .split .w > span{transform:none}
  .mask,.arch.mask{clip-path:none}
  [data-parallax]{transform:none}
  .rooms-pin{position:static;height:auto;padding:100px 0}
  .hs-viewport{overflow-x:auto}
  .hs-img img{transform:none!important}
  .scroll-cue span{animation:none}
}
@media (max-width:980px){
  .beyond{grid-template-columns:1fr 1fr}
  .b-card.tall{grid-row:auto}
  .b-card.tall .mask{min-height:0;aspect-ratio:4/3}
  .home-services{grid-template-columns:1fr}
  .hs-item.tall .hs-img{width:62vw;height:52vh}
  .hs-item.wide .hs-img{width:80vw;height:40vh}
  .hs-intro{width:70vw}
}
@media (max-width:760px){
  .beyond{grid-template-columns:1fr}
  .b-card.wide{grid-column:auto}
  .b-card.wide .mask{aspect-ratio:4/3}
  .tech{grid-template-columns:1fr}
}
.toc{columns:2;column-gap:40px;padding-left:1.2em;margin:0 0 20px;font-size:.95rem}
.toc li{padding:4px 0;break-inside:avoid}
.toc a{text-decoration-color:var(--peony);text-underline-offset:3px}
@media (max-width:760px){.toc{columns:1}}

/* concierge */
.cc-launch{position:fixed;right:24px;bottom:24px;z-index:80;display:flex;align-items:center;gap:10px;padding:14px 22px 14px 18px;border-radius:999px;border:1px solid rgba(180,104,122,.35);background:var(--ink);color:var(--ivory);font:400 .88rem/1 var(--sans);letter-spacing:.08em;cursor:pointer;box-shadow:0 18px 40px -18px rgba(59,42,48,.55);transition:transform .5s var(--ease),opacity .4s}
.cc-launch:hover{transform:translateY(-2px)}
.cc-launch.hide{opacity:0;pointer-events:none;transform:translateY(10px)}
.cc-dot{width:9px;height:9px;border-radius:50%;background:var(--peony);box-shadow:0 0 0 0 rgba(217,138,154,.6);animation:ccpulse 2.6s infinite}
@keyframes ccpulse{0%{box-shadow:0 0 0 0 rgba(217,138,154,.55)}70%{box-shadow:0 0 0 10px rgba(217,138,154,0)}100%{box-shadow:0 0 0 0 rgba(217,138,154,0)}}
.cc-panel{position:fixed;right:24px;bottom:24px;z-index:90;width:min(400px,calc(100vw - 32px));height:min(620px,calc(100svh - 48px));display:flex;flex-direction:column;background:var(--ivory);border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(59,42,48,.45);opacity:0;transform:translateY(18px) scale(.97);transform-origin:bottom right;transition:opacity .45s var(--ease),transform .55s var(--ease)}
.cc-panel.open{opacity:1;transform:none}
.cc-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;background:var(--ink);color:var(--ivory)}
.cc-title b{display:block;font:400 1.35rem/1.1 var(--display);letter-spacing:.02em}
.cc-title span{font-size:.74rem;letter-spacing:.08em;color:var(--peony)}
.cc-close{background:none;border:0;color:var(--silk);font:300 1.8rem/1 var(--sans);cursor:pointer;width:40px;height:40px;border-radius:50%}
.cc-close:hover{background:rgba(255,255,255,.08)}
.cc-log{flex:1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.cc-msg{max-width:86%;font-size:.94rem;line-height:1.6;white-space:pre-wrap;animation:ccin .5s var(--ease)}
.cc-msg.ai{align-self:flex-start;color:var(--ink);background:var(--petal);border-radius:18px 18px 18px 6px;padding:12px 16px}
.cc-msg.me{align-self:flex-end;background:var(--deep);color:var(--ivory);border-radius:18px 18px 6px 18px;padding:11px 16px}
@keyframes ccin{from{opacity:0;transform:translateY(8px)}}
.cc-typing{display:flex;gap:5px;padding:16px 18px}
.cc-typing i{width:6px;height:6px;border-radius:50%;background:var(--peony);animation:ccdot 1.2s infinite}
.cc-typing i:nth-child(2){animation-delay:.15s}.cc-typing i:nth-child(3){animation-delay:.3s}
@keyframes ccdot{0%,80%,100%{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-3px)}}
.cc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 22px 12px}
.cc-chip{border:1px solid var(--line-strong);background:var(--ivory);border-radius:999px;padding:8px 14px;font:300 .82rem/1.3 var(--sans);color:var(--ink);cursor:pointer;text-align:left;transition:border-color .3s,color .3s}
.cc-chip:hover{border-color:var(--deep);color:var(--deep)}
.cc-form{display:flex;gap:10px;align-items:flex-end;padding:12px 16px;border-top:1px solid var(--line)}
.cc-form textarea{flex:1;resize:none;min-height:46px;max-height:120px;border-radius:16px;padding:12px 14px;font-size:.94rem}
.cc-send{width:46px;height:46px;flex:none;border-radius:50%;border:0;background:var(--deep);color:var(--ivory);font:400 1.2rem/1 var(--sans);cursor:pointer;transition:background .3s}
.cc-send:hover{background:var(--deeper)}
.cc-fine{margin:0;padding:0 18px 14px;font-size:.7rem;line-height:1.5;color:var(--rose-grey)}
.cc-fine a{color:var(--deep)}
.ways{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:18px}
.ways li{display:flex;flex-direction:column;gap:4px}
.ways b{font:400 1.5rem/1.15 var(--display);color:var(--ivory)}
.ways span{font-size:.88rem;color:rgba(237,228,230,.8);max-width:36ch}
.light-link{background:none;border:0;border-bottom:1px solid rgba(255,251,249,.5);color:var(--ivory);padding:0 0 4px;align-self:flex-start;cursor:pointer;font:inherit;font-size:.9rem;margin-top:6px}
@media (max-width:760px){.cc-launch{right:16px;bottom:16px}.cc-panel{right:16px;bottom:16px}}
@media (prefers-reduced-motion:reduce){.cc-dot{animation:none}}

/* slideshow */
.slides{position:relative;height:100svh;min-height:620px;overflow:hidden;background:var(--ink);color:var(--ivory);outline:none}
.slide-track,.slide{position:absolute;inset:0}
.slide{margin:0;opacity:0;visibility:hidden;transition:opacity 1.6s var(--ease),visibility 0s 1.6s}
.slide.is-active{opacity:1;visibility:visible;transition:opacity 1.6s var(--ease),visibility 0s}
.slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.14);transition:transform 9s cubic-bezier(.2,.6,.3,1)}
.slide.is-active img{transform:scale(1)}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(59,42,48,.72),rgba(59,42,48,.12) 55%,rgba(59,42,48,.05))}
.slide figcaption{position:absolute;left:0;right:0;bottom:150px;z-index:1}
.slide figcaption > *{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
.slide.is-active figcaption > *{opacity:1;transform:none}
.slide.is-active figcaption .headline{transition-delay:.15s}
.slide.is-active figcaption .lede{transition-delay:.3s}
.slide .eyebrow{color:var(--mist)}
.slide .headline{color:var(--ivory);max-width:16ch}
.slide .headline em{color:var(--mist)}
.slide .lede{color:var(--silk);max-width:42ch;margin-top:18px}
.slide-ui{position:absolute;left:0;right:0;bottom:56px;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:30px}
.slide-bars{display:flex;gap:10px;flex:1;max-width:560px}
.bar{flex:1;height:22px;background:none;border:0;padding:10px 0;cursor:pointer}
.bar i{display:block;height:2px;background:rgba(255,251,249,.28);position:relative;overflow:hidden}
.bar i::after{content:"";position:absolute;inset:0;background:var(--ivory);transform:scaleX(0);transform-origin:left}
.bar.done i::after{transform:scaleX(1)}
.bar.run i::after{animation:barfill var(--dur,6.5s) linear forwards}
.slides.paused .bar.run i::after{animation-play-state:paused}
@keyframes barfill{to{transform:scaleX(1)}}
.slide-nav{display:flex;align-items:center;gap:12px}
.slide-count{font:300 1rem/1 var(--display);letter-spacing:.08em;margin-right:12px;color:var(--silk)}
.slide-count b{font-weight:400;color:var(--ivory);font-size:1.3rem}
.slide-btn{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,251,249,.4);background:transparent;color:var(--ivory);font:300 1.1rem/1 var(--sans);cursor:pointer;transition:background .4s,border-color .4s}
.slide-btn:hover{background:rgba(255,251,249,.12);border-color:var(--ivory)}
@media (max-width:760px){.slide figcaption{bottom:130px}.slide-ui{bottom:34px}.slide-count{display:none}}
@media (prefers-reduced-motion:reduce){.slide img{transform:none!important;transition:none}}

/* privacy bar */
.privacy-bar{position:fixed;left:24px;bottom:24px;z-index:85;max-width:440px;background:var(--ivory);border:1px solid var(--line);border-radius:22px;padding:18px 20px;box-shadow:0 30px 70px -30px rgba(59,42,48,.4);animation:ccin .6s var(--ease);transition:opacity .4s,transform .4s}
.privacy-bar.gone{opacity:0;transform:translateY(10px)}
.privacy-bar p{margin:0 0 12px;font-size:.84rem;line-height:1.55;color:var(--ink)}
.privacy-bar div{display:flex;align-items:center;justify-content:space-between;gap:14px}
.privacy-bar a{font-size:.84rem;color:var(--deep)}
@media (max-width:760px){.privacy-bar{left:16px;right:16px;bottom:84px;max-width:none}}
.skip{position:absolute;left:16px;top:-60px;z-index:200;background:var(--ink);color:var(--ivory);padding:10px 16px;border-radius:12px;text-decoration:none}
.skip:focus{top:12px}

/* estimator choices: an even grid */
.estimator .choices{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:10px}
.estimator .choice{display:flex;text-transform:none;letter-spacing:0}
.estimator .choice span{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px;padding:10px 14px;border-radius:16px;font-size:.88rem;letter-spacing:.01em;line-height:1.3}
.estimator #addons .choice span{justify-content:space-between;text-align:left}
.estimator .choice input:focus-visible + span{outline:2px solid var(--deep);outline-offset:2px}
.estimator .choice input:checked:focus-visible + span{outline-color:var(--ink)}
@media (max-width:1100px){.estimator .choices[style*="--cols:4"]{--cols:2!important}}
@media (max-width:560px){.estimator .choices{--cols:1!important}.estimator .choices[style*="--cols:4"]{--cols:2!important}}
.estimator .ad-l{font-style:normal;color:inherit}
.estimator .ad-p{font-weight:400;opacity:.8}
.lic{margin:36px 0 10px;border-top:1px solid var(--line-strong)}
.lic-row{display:grid;grid-template-columns:minmax(0,1.6fr) 120px minmax(0,1fr);gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.lic-row b{display:block;font:400 1.25rem/1.2 var(--display);color:var(--ink)}
.lic-row span{font-size:.9rem;color:var(--rose-grey)}
.lic-num{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--deep);border:1px solid var(--line-strong);border-radius:999px;padding:6px 12px;text-align:center}
.lic-row a{font-size:.9rem;color:var(--deep)}
@media (max-width:760px){.lic-row{grid-template-columns:1fr;gap:8px}.lic-num{justify-self:start}}
/* The closed concierge must never sit over the page and catch taps. */
.cc-panel[hidden]{display:none}
.cc-panel:not(.open){pointer-events:none}
.privacy-bar .btn{min-height:44px;padding:12px 22px;touch-action:manipulation}
.privacy-bar a{padding:10px 0}

/* ---------- rose gold theme: no dark chocolate surfaces ---------- */
.btn{background:var(--rg);border-color:var(--rg);color:var(--ink);font-weight:500}
.btn:hover{background:var(--rg-hover);border-color:var(--rg-hover);color:var(--ink)}
.btn.ghost{background:transparent;border-color:var(--rg)}
.btn.light,.final .btn{background:var(--ivory);border-color:var(--ivory);color:var(--ink)}
.preview-bar{background:var(--blush);color:var(--ink)}
.preview-bar b{color:var(--deep)}
.choice input:checked + span{background:var(--rg);border-color:var(--rg);color:var(--ink)}
.areas span.on{background:var(--rg);border-color:var(--rg);color:var(--ink)}
.skip{background:var(--rg);color:var(--ink)}

.site-footer{background:var(--blush);color:var(--ink)}
.foot-top,.legal{border-color:rgba(151,90,99,.22)}
.foot-intro .eyebrow,.foot h4{color:var(--deep)}
.foot-line{color:var(--ink)}
.foot-line em{color:var(--deep)}
.foot li{color:var(--rose-grey)}
.foot a,.legal a{color:var(--ink)}
.foot a:hover,.legal a:hover{color:var(--deeper)}
.foot a{background-image:linear-gradient(var(--deep),var(--deep))}
.foot .muted-li{color:var(--rose-grey)}
.foot-link{color:var(--ink);border-color:rgba(151,90,99,.35)}
.foot-link:hover{color:var(--deeper);border-color:var(--deep)}
.legal{color:var(--rose-grey)}
.site-footer .btn.light{background:var(--rg);border-color:var(--rg)}
.site-footer .btn.light:hover{background:var(--rg-hover);border-color:var(--rg-hover)}
.wordmark text{fill:rgba(235,184,190,.22);stroke:rgba(151,90,99,.45)}

.section.ink{background:var(--mist);color:var(--ink)}
.ink .eyebrow{color:var(--deep)}
.ink .headline{color:var(--ink)}
.ink em{color:var(--deep)}
.ink .lede{color:var(--rose-grey)}
.tech li{border-color:rgba(151,90,99,.2)}
.tech svg{color:var(--deep)}
.tech b{color:var(--ink)}
.tech span{color:var(--rose-grey)}
.fine{color:var(--rose-grey)}
.ink .btn.light{background:var(--rg);border-color:var(--rg)}
.ink .btn.light:hover{background:var(--rg-hover);border-color:var(--rg-hover)}
.tech-media .b{outline-color:var(--mist)}

.cc-launch{background:var(--rg);color:var(--ink);border-color:rgba(151,90,99,.25);box-shadow:0 18px 40px -18px rgba(151,90,99,.55)}
.cc-dot{background:var(--deep)}
.cc-head{background:var(--blush);color:var(--ink)}
.cc-title span{color:var(--deep)}
.cc-close{color:var(--ink)}
.cc-close:hover{background:rgba(151,90,99,.1)}
.cc-msg.me{background:var(--rg);color:var(--ink)}
.cc-send{background:var(--rg);color:var(--ink)}
.cc-send:hover{background:var(--rg-hover)}
.cc-panel{box-shadow:0 40px 90px -30px rgba(151,90,99,.45)}
.privacy-bar{box-shadow:0 30px 70px -30px rgba(151,90,99,.4)}

.slides{background:#6E4A55}
.slide::after{background:linear-gradient(0deg,rgba(98,58,70,.68),rgba(98,58,70,.12) 55%,rgba(98,58,70,.04))}
.final::after{background:linear-gradient(90deg,rgba(98,58,70,.58),rgba(98,58,70,.12) 70%)}
.contact-hero::before{background:#E2A6AE;opacity:.5}
.contact-hero::after{background:linear-gradient(90deg,rgba(98,58,70,.72),rgba(98,58,70,.3) 55%,rgba(98,58,70,0))}
.estimator .choice input:checked:focus-visible + span{outline-color:var(--deep)}

.display em,.headline em,.title em,.hero-cine em{color:var(--rose-em)}
.ink .headline em,.foot-line em{color:var(--deep)}
.foot h4,.foot-intro .eyebrow{color:var(--deeper)}
.site-footer{padding-bottom:96px}

/* design review: readable supporting text, calmer chrome */
body{font-size:1.06rem;font-weight:400}
.lede{font-size:clamp(1.08rem,1.3vw,1.18rem);font-weight:400}
.service-body p,.b-card p,.step p,.checks span,.hs-item figcaption i,.foot li,.foot a{font-weight:400}
.service-body p,.b-card p{color:var(--ink);font-size:1rem;line-height:1.65}
.eyebrow{font-weight:500;letter-spacing:.16em}
.btn{font-weight:500;font-size:.95rem}
.slide .lede,.slide figcaption .lede{opacity:1}
.cc-launch{min-height:48px;right:24px;bottom:24px}
/* Beyond: equal-weight service cards */
.beyond{grid-template-columns:repeat(3,minmax(0,1fr))}
.b-card.tall{grid-row:auto}
.b-card.tall .mask{aspect-ratio:4/3;flex:none;min-height:0}
.b-card.wide{grid-column:1 / -1}
.b-card.wide .mask{aspect-ratio:21/8}
.slide-pause{font-size:.8rem;letter-spacing:-.1em}
@media (max-width:980px){.beyond{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.beyond{grid-template-columns:1fr}.b-card.wide .mask{aspect-ratio:4/3}}

/* ---------- polish round: menu, buttons, footer silk, contact, company ---------- */
.eyebrow{font-family:"Marcellus",var(--sans);letter-spacing:.24em}
.btn{font-family:"Marcellus",var(--sans);letter-spacing:.1em;text-transform:uppercase;font-size:.82rem;font-weight:400}
.btn{background:linear-gradient(115deg,#EBB8BE 0%,#F7D9DB 38%,#E8B9AE 62%,#EBB8BE 100%);background-size:220% 100%;background-position:0% 50%;transition:background-position 1.2s var(--ease),transform .4s var(--ease),box-shadow .6s var(--ease);box-shadow:0 10px 30px -16px rgba(151,90,99,.55)}
.btn:hover{background:linear-gradient(115deg,#EBB8BE 0%,#F7D9DB 38%,#E8B9AE 62%,#EBB8BE 100%);background-size:220% 100%;background-position:100% 50%;box-shadow:0 16px 36px -16px rgba(151,90,99,.65)}
.btn.light,.final .btn{background:var(--ivory);box-shadow:none}

.cc-launch{background:linear-gradient(120deg,#F3CDD2 0%,#FFF6F5 40%,#EBB8BE 70%,#F7DEE2 100%);background-size:240% 100%;animation:pearl 7s ease-in-out infinite;color:var(--deeper);font-family:"Marcellus",var(--sans);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;border:1px solid rgba(151,90,99,.28);padding:14px 22px 14px 18px}
.cc-spark{width:16px;height:16px;color:var(--deep)}
.cc-dot{display:none}
@keyframes pearl{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.to-top{position:fixed;right:24px;bottom:86px;z-index:79;width:48px;height:48px;border-radius:50%;border:1px solid rgba(151,90,99,.28);background:linear-gradient(140deg,#FFF6F5,#F3CDD2);color:var(--deep);display:grid;place-items:center;cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .5s var(--ease),transform .5s var(--ease);box-shadow:0 12px 30px -16px rgba(151,90,99,.5)}
.to-top svg{width:20px;height:20px}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{transform:translateY(-2px)}
@media (max-width:760px){.to-top{right:16px;bottom:78px}}
@media (prefers-reduced-motion:reduce){.cc-launch{animation:none}}

.site-footer{position:relative;isolation:isolate;background:var(--blush)}
.foot-silk{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:0;transition:opacity 1.6s var(--ease)}
.foot-silk.ready{opacity:1}
.site-footer::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(255,251,250,.55),rgba(249,228,231,.35) 40%,rgba(249,228,231,.2));pointer-events:none}
.wordmark{margin:30px auto 20px;max-width:1100px}
.wordmark text{font-family:var(--display);font-weight:300;font-size:300px;letter-spacing:.01em;fill:url(#silkfill);stroke:rgba(151,90,99,.55);stroke-width:1.2;vector-effect:non-scaling-stroke;paint-order:stroke;stroke-dasharray:2400;stroke-dashoffset:2400;fill-opacity:0;transition:stroke-dashoffset 3.2s var(--ease),fill-opacity 2.4s var(--ease) .9s}
.wordmark.drawn text{stroke-dashoffset:0;fill-opacity:1}
@media (prefers-reduced-motion:reduce){.wordmark text{stroke-dashoffset:0;fill-opacity:1;transition:none}}

.contact-hero.light{min-height:0;color:var(--ink);background:var(--petal);align-items:center;padding:clamp(40px,6vw,90px) 0}
.contact-hero.light::before,.contact-hero.light::after{display:none}
.contact-hero.light img{position:absolute;inset:0 0 0 auto;width:46%;height:100%;filter:none;border-radius:0 0 0 220px}
.contact-hero.light .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-bottom:0}
.contact-hero.light .wrap > div:first-child{max-width:560px}
.contact-hero.light .lede{color:var(--rose-grey)}
.contact-hero.light .office{background:rgba(255,251,250,.94);border:1px solid var(--line);border-radius:28px;padding:30px 32px;max-width:420px;justify-self:end;position:relative;z-index:1;box-shadow:0 30px 70px -40px rgba(151,90,99,.45)}
.contact-hero.light .office .eyebrow{color:var(--deep)}
.contact-hero.light .ways b{color:var(--ink)}
.contact-hero.light .ways span{color:var(--rose-grey)}
.contact-hero.light .light-link{color:var(--deep);border-color:rgba(151,90,99,.4)}
@media (max-width:980px){.contact-hero.light img{position:relative;width:100%;height:42svh;border-radius:0 0 0 120px;order:-1}.contact-hero.light{flex-direction:column}.contact-hero.light .wrap{grid-template-columns:1fr;padding-top:40px}.contact-hero.light .office{justify-self:stretch;max-width:none}}

.company-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(40px,6vw,90px);align-items:end}
.hq{background:var(--ivory);border:1px solid var(--line);border-radius:28px;padding:32px}
.hq address{font-style:normal;display:flex;flex-direction:column;gap:4px;margin:6px 0 16px}
.hq address a{font:400 1.7rem/1.2 var(--display);color:var(--ink);text-decoration:none}
.hq address a:hover{color:var(--deep)}
.hq-note{font-size:.88rem;color:var(--rose-grey);margin:0}
.brands{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.brand-card{display:flex;flex-direction:column;gap:8px;padding:24px;border-radius:24px;background:var(--ivory);border:1px solid var(--line);text-decoration:none;transition:transform .6s var(--ease),border-color .4s,box-shadow .6s var(--ease)}
.brand-card:hover{transform:translateY(-4px);border-color:var(--rg);box-shadow:0 24px 50px -34px rgba(151,90,99,.5)}
.brand-card b{font:400 1.45rem/1.2 var(--display)}
.brand-card span{font-size:.92rem;color:var(--rose-grey)}
.brand-card i{font-style:normal;font-family:"Marcellus",var(--sans);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);margin-top:auto}
@media (max-width:980px){.company-grid{grid-template-columns:1fr}.brands{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.brands{grid-template-columns:1fr}}

/* company hero: Manhattan at dusk */
.company-hero{position:relative;overflow:hidden;min-height:78svh;display:flex;align-items:center;padding:110px 0 90px;color:var(--ivory)}
.company-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.06);animation:slowpush 18s var(--ease) forwards}
@keyframes slowpush{to{transform:scale(1)}}
.company-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(74,40,52,.82) 0%,rgba(98,58,70,.6) 42%,rgba(151,90,99,.18) 72%,rgba(151,90,99,.05));}
.company-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:#E2A6AE;mix-blend-mode:soft-light;opacity:.55}
.company-hero .eyebrow{color:#F7DEE2}
.company-hero .headline{color:var(--ivory)}
.company-hero .headline em{color:#F3CDD2}
.company-hero .lede{color:rgba(255,251,250,.9)}
.company-hero .hq{background:rgba(255,251,250,.96);color:var(--ink);box-shadow:0 40px 90px -40px rgba(30,16,22,.6)}
.company-hero .hq .eyebrow{color:var(--deep)}
@media (prefers-reduced-motion:reduce){.company-bg{animation:none;transform:none}}
@media (max-width:980px){.company-hero{min-height:0}.company-hero::before{background:linear-gradient(180deg,rgba(74,40,52,.8),rgba(98,58,70,.55))}}
.company-hero{isolation:isolate}



/* ---------- primary navigation: one line, grouped menus, full-screen menu below 1180px ---------- */
.nav{gap:20px;flex-wrap:nowrap}
.nav *{white-space:nowrap}
.logo{display:block;flex:none}
.logo small{white-space:nowrap}
.menu-btn{display:none;align-items:center;gap:10px;background:none;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);cursor:pointer;min-height:44px;padding:0 18px;font:400 .76rem "Marcellus",var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-left:auto}
.menu-btn:focus-visible{outline:2px solid var(--deep);outline-offset:3px}
.mb-bars{display:grid;gap:5px;width:18px}
.mb-bars i{display:block;height:1.4px;background:currentColor;transition:transform .35s var(--ease)}
.menu-btn[aria-expanded=true] .mb-bars i:first-child{transform:translateY(3.2px) rotate(45deg)}
.menu-btn[aria-expanded=true] .mb-bars i:last-child{transform:translateY(-3.2px) rotate(-45deg)}
.site-nav{display:flex;align-items:center;justify-content:flex-end;gap:26px;flex:1;min-width:0}
.nm{display:flex;align-items:center;gap:clamp(18px,1.8vw,30px);list-style:none;margin:0;padding:0}
.nm>li{position:relative}
.nm a,.sub-toggle{font:400 .8rem/1 "Marcellus",var(--display);letter-spacing:.13em;text-transform:uppercase;color:var(--deep);text-decoration:none;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:12px 2px;min-height:44px;position:relative}
.nm>li>a::after,.sub-toggle::after{content:"";position:absolute;left:2px;right:2px;bottom:8px;height:1px;background:linear-gradient(90deg,transparent,#D9A99D 20%,#EBB8BE 50%,#D9A99D 80%,transparent);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nm>li>a:hover,.sub-toggle:hover,.has-sub.open>.sub-toggle{color:var(--deeper)}
.nm>li>a:hover::after,.nm>li>a[aria-current=page]::after,.sub-toggle:hover::after,.has-sub.open>.sub-toggle::after{transform:scaleX(1)}
.nm a:focus-visible,.sub-toggle:focus-visible{outline:2px solid var(--deep);outline-offset:3px;border-radius:6px}
.sub-toggle svg{width:10px;height:7px;flex:none;transition:transform .3s var(--ease)}
.has-sub.open>.sub-toggle svg{transform:rotate(180deg)}
.sub{position:absolute;left:50%;top:100%;transform:translate(-50%,8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s var(--ease),transform .35s var(--ease),visibility 0s .25s;z-index:60;padding-top:10px}
.sub>ul{list-style:none;margin:0;padding:12px;background:var(--ivory);border:1px solid var(--line);border-radius:26px;box-shadow:0 36px 70px -34px rgba(151,90,99,.5);min-width:300px}
.sub-wide>ul{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));min-width:560px}
.has-sub.open>.sub{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);transition-delay:0s}
.sub a{display:block;padding:14px 16px;border-radius:18px;text-transform:none;letter-spacing:.01em;font:400 1rem/1.25 var(--sans);color:var(--ink);white-space:normal}
.sub a b{display:block;font:400 1.05rem/1.2 var(--display);font-weight:500;letter-spacing:.01em;color:var(--ink)}
.sub a b em{font-style:italic;color:var(--deep);font-weight:400}
.sub a small{display:block;margin-top:3px;font-size:.8rem;line-height:1.4;color:var(--rose-grey);white-space:normal}
.sub a:hover,.sub a:focus-visible{background:var(--petal)}
.sub a::after{display:none}
.nav-right{display:flex;align-items:center;gap:18px;flex:none}
.nav-signin{display:inline-flex;align-items:center;gap:8px;font:400 .78rem "Marcellus",var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--deep);text-decoration:none;min-height:44px;padding:0 4px;border-bottom:1px solid transparent}
.nav-signin svg{width:20px;height:20px;flex:none}
.nav-signin:hover{color:var(--deeper)}
.nav-signin:focus-visible{outline:2px solid var(--deep);outline-offset:3px;border-radius:8px}
.nav-book{flex:none}
@media(max-width:1180px){
  .nav{height:72px}
  .menu-btn{display:inline-flex}
  .site-nav{position:fixed;left:0;right:0;top:var(--nav-top,72px);bottom:0;display:none;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:20px;background:var(--ivory);padding:18px var(--gutter) 40px;overflow-y:auto;overscroll-behavior:contain;z-index:55;border-top:1px solid var(--line)}
  .site-nav.open{display:flex}
  body.nav-open{overflow:hidden}
  .nm{flex-direction:column;align-items:stretch;gap:0}
  .nm>li{border-bottom:1px solid var(--line)}
  .nm>li>a,.sub-toggle{width:100%;justify-content:space-between;padding:18px 2px;font-size:.92rem;min-height:56px}
  .nm>li>a::after,.sub-toggle::after{display:none}
  .sub{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;padding:0;display:none}
  .has-sub.open>.sub{display:block;transform:none;transition:none}
  .sub>ul,.sub-wide>ul{display:block;min-width:0;border:0;box-shadow:none;border-radius:0;padding:0 0 12px;background:none}
  .sub a{padding:12px 6px}
  .nav-right{flex-direction:column;align-items:stretch;gap:14px}
  .nav-signin{justify-content:center;border:1px solid var(--line-strong);border-radius:999px;min-height:52px}
  .nav-book{justify-content:center;min-height:52px}
}
@media(prefers-reduced-motion:reduce){.sub,.mb-bars i,.sub-toggle svg{transition:none}}

/* ---------- consent center ---------- */
.privacy-choices{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none;opacity:.9}
.legal .privacy-choices{color:rgba(74,52,56,.78)}
.privacy-choices:hover{text-decoration:underline;opacity:1}
.privacy-choices svg{flex:none}
.cc-banner{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:95;width:min(760px,calc(100vw - 32px));background:var(--ivory);border:1px solid var(--rg);border-radius:28px;padding:22px 26px 24px;box-shadow:0 40px 90px -30px rgba(151,90,99,.5);animation:ccup .5s var(--ease)}
@keyframes ccup{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
.cc-banner h2,.cc-dialog h2{font:400 1.6rem/1.15 var(--display);margin:0 0 8px}
.cc-banner p{margin:0 0 16px;font-size:.92rem;line-height:1.6;color:var(--ink)}
.cc-banner a,.cc-dialog a{color:var(--deep)}
.cc-gpc{color:var(--deep);font-weight:500}
.cc-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cc-btn{min-height:48px;border-radius:999px;border:1px solid var(--rg);background:var(--blush);color:var(--ink);font:400 .78rem "Marcellus",var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:12px 14px;cursor:pointer;transition:background .3s var(--ease),border-color .3s var(--ease);touch-action:manipulation;white-space:nowrap}
.cc-btn:hover{background:var(--rg)}
.cc-btn:focus-visible,.cc-x:focus-visible,.cc-switch:focus-visible{outline:2px solid var(--deep);outline-offset:3px}
.cc-btn-sm{min-height:44px;margin-top:6px}
@media(max-width:640px){
  .cc-banner{bottom:0;width:100%;left:0;transform:none;border-radius:26px 26px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));animation:none;max-height:86svh;overflow-y:auto}
  .cc-actions{grid-template-columns:1fr}
  body.consent-pending .cc-launch{display:none}
}
.cc-overlay{position:fixed;inset:0;z-index:120;background:rgba(74,52,56,.32);display:flex;align-items:center;justify-content:center;padding:16px}
body.cc-lock{overflow:hidden}
.cc-dialog{width:min(680px,100%);max-height:calc(100svh - 32px);background:var(--ivory);border:1px solid var(--line);border-radius:28px;display:flex;flex-direction:column;box-shadow:0 50px 100px -40px rgba(151,90,99,.6)}
.cc-d-head{display:flex;justify-content:space-between;align-items:center;padding:22px 26px 6px}
.cc-x{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:none;font-size:1.5rem;cursor:pointer;color:var(--ink)}
.cc-d-body{padding:6px 26px 26px;overflow-y:auto;overscroll-behavior:contain}
.cc-lead{margin:0 0 14px;color:var(--rose-grey);font-size:.94rem}
.cc-gpc-box{background:var(--petal);border:1px solid var(--rg);border-radius:16px;padding:12px 14px;font-size:.88rem;margin:0 0 14px}
.cc-cat{border-top:1px solid var(--line);padding:14px 0}
.cc-cat-h{display:flex;justify-content:space-between;align-items:center;gap:14px}
.cc-cat-h b{font:400 1.12rem var(--display);font-weight:500}
.cc-cat p{margin:6px 0 0;font-size:.88rem;line-height:1.55;color:var(--rose-grey)}
.cc-note{font-style:italic}
.cc-switch{flex:none;width:54px;height:32px;border-radius:99px;border:1px solid var(--line-strong);background:var(--silk);position:relative;cursor:pointer;padding:0;transition:background .3s var(--ease)}
.cc-switch i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(74,52,56,.25);transition:transform .3s var(--ease)}
.cc-switch[aria-checked=true]{background:var(--rg);border-color:var(--rg)}
.cc-switch[aria-checked=true] i{transform:translateX(22px)}
.cc-switch[disabled]{opacity:.6;cursor:not-allowed}
.cc-actions-d{margin:14px 0 6px}
.cc-dialog h3{font:400 1.15rem var(--display);font-weight:500;margin:22px 0 4px}
.cc-dialog p{font-size:.9rem;line-height:1.6;margin:0 0 6px}
.cc-details{margin-top:14px;border:1px solid var(--line);border-radius:18px;padding:12px 16px}
.cc-details summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-size:.92rem;color:var(--deep)}
.cc-form{display:grid;gap:10px;margin-top:10px}
.cc-form label{display:grid;gap:5px;font:400 .7rem "Marcellus",var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--rose-grey)}
.cc-form input,.cc-form select,.cc-form textarea{font-size:.95rem;padding:11px 13px;letter-spacing:0;text-transform:none}
.cc-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:560px){.cc-row{grid-template-columns:1fr}.cc-overlay{padding:0;align-items:flex-end}.cc-dialog{border-radius:26px 26px 0 0;max-height:94svh}}
.cc-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cc-status{font-size:.88rem;color:var(--deep);min-height:1.2em;margin:4px 0 0}

/* ---------- app install, update toast, team bottom bar ---------- */
.install-app{background:none;border:0;padding:0 0 0 14px;font:inherit;color:var(--deeper);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.install-app[hidden]{display:none}
.pwa-toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:130;display:flex;align-items:center;gap:14px;background:var(--ivory);border:1px solid var(--rg);border-radius:999px;padding:10px 12px 10px 22px;box-shadow:0 24px 50px -22px rgba(151,90,99,.6);font-size:.92rem;max-width:calc(100vw - 24px)}
.pwa-toast button{border:1px solid var(--rg);background:var(--blush);color:var(--ink);border-radius:999px;min-height:40px;padding:0 18px;font:400 .76rem "Marcellus",var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.pwa-toast .x{border:0;background:none;font-size:1.3rem;padding:0 10px}
.ios-sheet-wrap{position:fixed;inset:0;z-index:140;background:rgba(74,52,56,.32);display:flex;align-items:flex-end;justify-content:center}
.ios-sheet{width:min(520px,100%);background:var(--ivory);border-radius:28px 28px 0 0;padding:26px 26px calc(26px + env(safe-area-inset-bottom))}
.ios-sheet h2{font:400 1.7rem var(--display);margin:0 0 12px}
.ios-sheet ol{padding-left:20px;line-height:1.8;margin:0 0 12px}
.ios-sheet .muted{color:var(--rose-grey);font-size:.86rem}

/* ---------- AI team chat ---------- */
.cc-head{gap:12px}
.cc-orb{position:relative;width:44px;height:44px;flex:none;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 30% 28%,#fff6f5 0%,#f3cdd2 45%,#ebb8be 100%);box-shadow:0 0 0 1px rgba(151,90,99,.25),0 8px 20px -8px rgba(151,90,99,.5)}
.cc-orb i{position:absolute;inset:-30%;background:conic-gradient(from 0deg,rgba(255,255,255,.0),rgba(255,255,255,.55),rgba(255,255,255,0) 40%,rgba(226,166,174,.5) 70%,rgba(255,255,255,0));animation:orbspin 9s linear infinite}
.cc-orb span{position:relative;font:400 1.35rem var(--display);color:var(--deeper)}
.cc-orb img{width:100%;height:100%;object-fit:cover;display:block}
@keyframes orbspin{to{transform:rotate(360deg)}}
.cc-head .cc-title{flex:1;min-width:0}
.cc-title b,.cc-title span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-ai{flex:none;border:1px solid var(--deep);color:var(--deep);border-radius:999px;font:400 .62rem "Marcellus",var(--sans);letter-spacing:.14em;padding:5px 9px}
.cc-bar{display:flex;gap:14px;flex-wrap:wrap;padding:8px 22px;border-bottom:1px solid var(--line);font-size:.78rem;background:var(--ivory)}
.cc-link{background:none;border:0;padding:0;font:inherit;color:var(--deep);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cc-mem{display:block;padding:6px 22px;font-size:.76rem;color:var(--rose-grey)}
.cc-note{align-self:center;font-size:.76rem;color:var(--rose-grey);background:var(--petal);border-radius:999px;padding:6px 14px;max-width:92%;text-align:center}
.cc-msg ul{margin:6px 0 6px 18px;padding:0}
.cc-msg a{color:var(--deep)}
.cc-card{align-self:stretch;background:var(--ivory);border:1px solid var(--line-strong);border-radius:20px;padding:14px 16px;font-size:.88rem}
.cc-card b{font:400 1.05rem var(--display);font-weight:500}
.cc-price{font:300 2rem/1.1 var(--display);margin:4px 0 8px}
.cc-row,.cc-slotrow{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-top:1px solid var(--line)}
.cc-slotrow{justify-content:flex-start;flex-wrap:wrap;align-items:center}
.cc-slot{font-style:normal;border:1px solid var(--rg);background:var(--blush);border-radius:999px;padding:3px 10px;font-size:.74rem}
.cc-small{font-size:.76rem;color:var(--rose-grey);margin-top:6px}
.cc-cta{align-self:flex-start;display:inline-block;background:var(--rg);color:var(--ink);text-decoration:none;border-radius:999px;padding:12px 20px;font:400 .76rem "Marcellus",var(--sans);letter-spacing:.1em;text-transform:uppercase}
.cc-confirm{align-self:stretch;background:var(--petal);border:1px solid var(--rg);border-radius:20px;padding:14px 16px;font-size:.9rem}
.cc-confirm-row{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.cc-yes,.cc-no{min-height:44px;border-radius:999px;padding:0 20px;font:400 .76rem "Marcellus",var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:1px solid var(--rg)}
.cc-yes{background:var(--rg);color:var(--ink)}.cc-yes.danger{background:#fff;border-color:#C98B96;color:#A23B4E}
.cc-no{background:none;color:var(--ink)}
.cc-yes[disabled],.cc-no[disabled]{opacity:.5}
.cc-mic{width:46px;height:46px;flex:none;border-radius:50%;border:1px solid var(--line-strong);background:var(--ivory);color:var(--ink);cursor:pointer;display:grid;place-items:center}
.cc-mic.on{background:var(--rg);border-color:var(--rg)}
.cc-retry{background:none;border:0;padding:0;font:inherit;color:var(--deep);text-decoration:underline;cursor:pointer}
@media(max-width:640px){
  .cc-panel{inset:0;right:0;bottom:0;width:100%;height:100dvh;max-height:none;border-radius:0;padding-top:env(safe-area-inset-top)}
  .cc-form{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .cc-fine{padding-bottom:calc(14px + env(safe-area-inset-bottom))}
}
.ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;margin-top:30px}
.ai-card{background:var(--ivory);border:1px solid var(--line);border-radius:28px;padding:26px;display:flex;flex-direction:column;gap:12px}
.ai-card .orb{width:84px;height:84px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 30% 28%,#fff6f5,#f3cdd2 45%,#ebb8be);position:relative;box-shadow:0 0 0 1px rgba(151,90,99,.25)}
.ai-card .orb img{width:100%;height:100%;object-fit:cover}
.ai-card .orb span{font:300 2.4rem var(--display);color:var(--deeper)}
.ai-card h2{font:400 1.7rem/1.1 var(--display);margin:0}
.ai-card .desk{font:400 .72rem "Marcellus",var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--deep)}
.ai-card h3{font:400 .72rem "Marcellus",var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--rose-grey);margin:6px 0 2px}
.ai-card ul{margin:0;padding-left:18px;font-size:.92rem;line-height:1.6}
.ai-tag{display:inline-block;border:1px solid var(--deep);color:var(--deep);border-radius:999px;font:400 .62rem "Marcellus",var(--sans);letter-spacing:.14em;padding:4px 10px;align-self:flex-start}
/* chat panel layout fixes */
.cc-panel{overflow:hidden;max-width:100vw}
.cc-panel .cc-form{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-end;gap:8px}
.cc-panel .cc-form textarea{flex:1 1 0;min-width:0;width:auto}
.cc-panel .cc-mic,.cc-panel .cc-send{flex:none}
.cc-panel .cc-log{flex:1 1 auto;min-height:150px}
.cc-panel .cc-mem{display:flex;align-items:center;gap:8px;padding:4px 22px;font-size:.74rem;line-height:1.3}
.cc-panel .cc-mem input{width:16px;height:16px;padding:0;margin:0;flex:none;accent-color:var(--deep)}
.cc-panel .cc-mem[hidden]{display:none}
.cc-panel .cc-chips{max-height:120px;overflow-y:auto;padding-bottom:8px}
.cc-panel .cc-head{padding:14px 18px}

/* ---------- concierge buttons: a proper secondary pill, never a browser-default button ---------- */
button.link-arrow,button.light-link{-webkit-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:16px 28px;border-radius:999px;border:1px solid var(--rg);background:linear-gradient(120deg,rgba(255,251,250,.9),rgba(249,228,231,.75));color:var(--deep);font:400 .82rem/1 "Marcellus",var(--sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 28px -16px rgba(151,90,99,.45);transition:background .4s var(--ease),border-color .4s var(--ease),color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease);margin-top:0;align-self:center}
button.link-arrow::before,button.light-link::before{content:"\2726";font-size:.8rem;color:var(--peony);transition:transform .6s var(--ease)}
button.link-arrow:hover,button.light-link:hover{background:linear-gradient(120deg,var(--blush),var(--rg-soft));border-color:var(--rg-hover);color:var(--deeper);box-shadow:0 14px 34px -14px rgba(151,90,99,.55)}
button.link-arrow:hover::before,button.light-link:hover::before{transform:rotate(90deg) scale(1.15)}
button.link-arrow:active,button.light-link:active{transform:scale(.98)}
button.link-arrow:focus-visible,button.light-link:focus-visible{outline:2px solid var(--deep);outline-offset:3px}
.service-body button.link-arrow{align-self:flex-start;margin-top:auto}
/* On photographs and dark grounds the pill turns translucent ivory. */
.light-ground button.light-link,.hero button.light-link,.final button.light-link{background:rgba(255,251,250,.14);border-color:rgba(255,251,250,.6);color:var(--ivory);backdrop-filter:blur(8px)}
.light-ground button.light-link::before,.hero button.light-link::before,.final button.light-link::before{color:var(--ivory)}
.contact-hero.light button.light-link{background:linear-gradient(120deg,rgba(255,251,250,.9),rgba(249,228,231,.75));border-color:var(--rg);color:var(--deep)}
