/* PURR v2 — design tokens */
:root{
  --ink:#241820;
  --plum:#7D3B5D;
  --plum-deep:#4A2039;
  --leaf:#40634F;
  --bone:#FBF8F5;
  --petal:#F1E4EA;
  --line:#E4D5DC;
  --max:1120px;
  --radius:14px;
  --arch:180px;
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Work Sans",-apple-system,Segoe UI,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--font-body);color:var(--ink);background:var(--bone);line-height:1.65;font-size:17px}
img{max-width:100%;display:block}
a{color:var(--plum);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--plum-deep)}
:focus-visible{outline:3px solid var(--plum);outline-offset:2px;border-radius:2px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}

h1,h2,h3{font-family:var(--font-display);font-weight:520;line-height:1.15;letter-spacing:-.01em;color:var(--ink)}
h1{font-size:clamp(2.1rem,5vw,3.4rem);margin-bottom:.5em}
h2{font-size:clamp(1.5rem,3.2vw,2.1rem);margin-bottom:.55em}
h3{font-size:1.15rem;margin-bottom:.35em}
p{margin-bottom:1em}
.lede{font-size:1.15rem;color:#4d3d47;max-width:46em}

/* header */
.top{background:var(--bone);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:20px;min-height:72px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.brand{font-family:var(--font-display);font-size:1.5rem;font-weight:600;letter-spacing:.14em;color:var(--ink);text-decoration:none}
.brand small{display:block;font-family:var(--font-body);font-size:.62rem;letter-spacing:.12em;color:var(--plum);font-weight:500;text-transform:uppercase}
nav.main{display:flex;gap:18px;flex-wrap:wrap;font-size:.92rem;margin-left:auto}
nav.main a{text-decoration:none;color:var(--ink)}
nav.main a:hover{color:var(--plum)}
.lang{font-size:.85rem;letter-spacing:.06em}
.cta-pill{background:var(--plum);color:#fff !important;padding:.55em 1.1em;border-radius:999px;text-decoration:none;font-weight:500;white-space:nowrap}
.cta-pill:hover{background:var(--plum-deep)}
.cta-pill.ghost{background:transparent;color:var(--plum) !important;border:1.5px solid var(--plum)}

/* modality pills */
.pill{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.35em 1em;border-radius:999px;margin-bottom:1.1em}
.pill.office{background:var(--plum);color:#fff}
.pill.online{background:var(--leaf);color:#fff}
.pill.hybrid{background:transparent;color:var(--plum-deep);border:1.5px solid var(--plum)}

/* hero */
.hero{padding:72px 0 40px}
.hero .kicker{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--plum);margin-bottom:1em;font-weight:600}
.hero h1{max-width:14em}
.hero .lede{margin-top:.4em}

/* the two doors */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:40px 0 72px}
.door{border-radius:var(--arch) var(--arch) var(--radius) var(--radius);padding:120px 34px 34px;text-decoration:none;color:inherit;position:relative;transition:transform .25s ease}
.door:hover{transform:translateY(-4px)}
@media(prefers-reduced-motion:reduce){.door,.door:hover{transition:none;transform:none}}
.door.office{background:var(--petal);border:1px solid var(--line)}
.door.online{background:var(--ink);color:var(--bone)}
.door.online h2{color:var(--bone)}
.door .pill{position:absolute;top:34px;left:50%;transform:translateX(-50%)}
.door p{font-size:.98rem}
.door .go{font-weight:600;color:var(--plum)}
.door.online .go{color:#B9D3C2}
@media(max-width:760px){.doors{grid-template-columns:1fr}.door{padding-top:100px}}

/* sections */
section.band{padding:64px 0}
section.band.petal{background:var(--petal)}
section.band.dark{background:var(--ink);color:var(--bone)}
section.band.dark h2,section.band.dark h3{color:var(--bone)}
section.band.dark a{color:#D8B7C7}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:28px}
@media(max-width:860px){.grid3{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;text-decoration:none;color:inherit;display:block}
.card:hover{border-color:var(--plum)}
.card h3 a{text-decoration:none}
.card .pill{margin-bottom:.7em}
.card p{font-size:.95rem;margin-bottom:.4em;color:#4d3d47}
.dark .card{background:#2E2029;border-color:#4a3a44;color:var(--bone)}
.dark .card p{color:#D9CCD3}

/* prose pages */
.prose{max-width:46em;padding:24px 0 8px}
.prose h2{margin-top:1.6em}
.prose ul{margin:0 0 1em 1.2em}
.prose li{margin-bottom:.4em}

/* faq */
.faq{max-width:46em}
.faq details{border-bottom:1px solid var(--line);padding:14px 0}
.faq summary{font-weight:600;cursor:pointer;font-size:1.02rem}
.faq p{margin-top:.6em;font-size:.97rem}

/* cta band */
.cta-band{border-radius:var(--radius);background:var(--plum-deep);color:var(--bone);padding:44px 36px;margin:56px 0;display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
.cta-band h2{color:var(--bone);margin:0;font-size:1.5rem;max-width:22em}
.cta-band .actions{display:flex;gap:12px;flex-wrap:wrap}
.cta-band .cta-pill{background:var(--bone);color:var(--plum-deep) !important}
.cta-band .cta-pill.ghost{background:transparent;color:var(--bone) !important;border-color:var(--bone)}

/* trust strip */
.strip{display:flex;flex-wrap:wrap;gap:10px 26px;font-size:.85rem;letter-spacing:.04em;color:#5a4a54;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* footer */
footer{background:var(--ink);color:#D9CCD3;margin-top:72px;padding:56px 0 40px;font-size:.9rem}
footer h4{color:var(--bone);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.8em}
footer a{color:#D8B7C7}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}
@media(max-width:860px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}}
footer ul{list-style:none}
footer li{margin-bottom:.5em}
.legal{margin-top:36px;padding-top:20px;border-top:1px solid #4a3a44;font-size:.78rem;color:#A08D98;max-width:64em}

/* reveal */
html.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
html.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
