:root{--plum:#3d1f42;--plum2:#2c1530;--cream:#f7f2ea;--cream2:#ece3d6;--lav:#ad96db;--lav-d:#6b4a8f;--line:rgba(107,74,143,.22)}
*{box-sizing:border-box}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:'Figtree',system-ui,sans-serif;font-size:1.05rem;line-height:1.75;color:#2d2230;background:var(--cream);overflow-x:hidden}
h1,h2,h3{font-family:'Newsreader',Georgia,serif;font-weight:400;line-height:1.12;color:var(--plum)}
h1{font-size:clamp(2.5rem,5.2vw,4.3rem);margin-bottom:1rem}
h2{font-size:clamp(2rem,3.8vw,2.9rem);margin-bottom:1rem}
h3{font-size:1.5rem}
em{font-style:italic}
a{color:var(--lav-d)}
:focus-visible{outline:2px solid var(--lav-d);outline-offset:3px}
.eyebrow{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--lav-d);font-weight:600;margin-bottom:.9rem}
.eyebrow.light{color:var(--lav)}
.lede{font-family:'Newsreader',serif;font-style:italic;font-size:1.35rem;line-height:1.5;color:#4a3a50}

.site-nav{background:rgba(247,242,234,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:.55rem 0}
.site-nav .navbar-brand{display:flex;flex-direction:column;line-height:1.1;color:var(--plum);font-family:'Newsreader',serif;font-size:1.65rem;font-weight:500}
.site-nav .navbar-brand small{font-family:'Figtree',sans-serif;font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:var(--lav-d);font-weight:600;margin-top:.15rem}
.site-nav .nav-link{color:var(--plum);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;padding:.6rem .8rem}
.site-nav .nav-link:hover{color:var(--lav-d)}
.navbar-toggler{border-color:var(--plum)}
.btn-croi{background:var(--plum);color:var(--cream);border:1px solid var(--plum);border-radius:2px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;padding:.85rem 1.5rem;transition:.25s}
.btn-croi:hover{background:var(--lav-d);border-color:var(--lav-d);color:#fff}
.btn-line{background:transparent;color:var(--plum);border:1px solid var(--plum);border-radius:2px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;padding:.85rem 1.5rem;transition:.25s}
.btn-line:hover{background:var(--plum);color:var(--cream)}
.btn-light-croi{background:var(--cream);color:var(--plum);border:1px solid var(--cream);border-radius:2px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;padding:.85rem 1.5rem}
.btn-light-croi:hover{background:var(--lav);border-color:var(--lav);color:var(--plum2)}

.hero{padding:3.2rem 0 3.6rem}
.hero .photo{width:100%;aspect-ratio:3/2;max-height:min(66vh,480px);object-fit:cover;object-position:35% 40%;border-radius:4px;display:block}
.hero-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin-top:1.6rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--lav-d);font-weight:600}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}

section{padding:5rem 0}
.sec-alt{background:var(--cream2)}
.sec-dark{background:var(--plum);color:rgba(247,242,234,.88)}
.sec-dark h2,.sec-dark h3{color:var(--cream)}

/* signature: dictionary entry */
.word{padding:4rem 0;background:var(--plum2);color:var(--cream);text-align:center}
.word .hw{font-family:'Newsreader',serif;font-size:clamp(4rem,12vw,8rem);line-height:1;color:var(--cream);font-weight:300}
.word .ph{font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--lav);margin:.4rem 0 1rem}
.word .def{font-family:'Newsreader',serif;font-style:italic;font-size:clamp(1.3rem,2.6vw,1.9rem);max-width:34ch;margin:0 auto;color:rgba(247,242,234,.9)}
.word .since{margin-top:1.6rem;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--lav)}

.svc{border-top:1px solid var(--line);padding:1.5rem 0}
.svc h3{margin-bottom:.4rem}
.svc p{margin:0;color:#4a3a50}
.svc .num{font-size:.7rem;letter-spacing:.25em;color:var(--lav-d);font-weight:600}
.pic{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.stat{border-top:1px solid rgba(173,150,219,.4);padding-top:1rem}
.stat b{display:block;font-family:'Newsreader',serif;font-size:2.4rem;font-weight:400;color:var(--cream);line-height:1.1}
.stat span{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--lav)}
.contact-box{border:1px solid var(--line);padding:1.8rem;background:var(--cream)}
.contact-box .lbl{font-size:.66rem;letter-spacing:.25em;text-transform:uppercase;color:var(--lav-d);font-weight:600;display:block;margin-top:1rem}
.contact-box a.big{font-family:'Newsreader',serif;font-size:1.8rem;color:var(--plum);text-decoration:none}
.map{width:100%;height:100%;min-height:320px;border:0;border-radius:4px}
.social a{margin-right:1rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
footer{background:var(--plum2);color:rgba(247,242,234,.8);padding:3rem 0 2rem;font-size:.9rem}
footer a{color:var(--lav)}
footer .flogo{background:var(--cream);padding:.7rem 1rem;border-radius:3px;display:inline-block}
footer .flogo img{height:26px;width:auto;display:block}
@media(max-width:767px){section{padding:3.5rem 0}.hero{padding:1.8rem 0 2.5rem}.site-nav .navbar-brand{font-size:1.4rem}.hero .photo{aspect-ratio:4/3}}
