
:root{
  --white:#ffffff; --paper:#fbfaf6; --ink:#232d37; --ink-2:#4c5763; --gold:#c4b07a;
  --gold-deep:#7f5e2e; --gold-line:#cdbb8f; --navy:#1f3552; --navy-deep:#122236; --slate:#3e4a50;
  --blush:#f0e2da; --blush-soft:#f7ece5; --hairline:#e4dac6;
  --f-display:'Cormorant Garamond',Georgia,serif;
  --f-sans:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --dot:radial-gradient(circle,rgba(196,176,122,.16) 1.1px,transparent 1.1px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--f-sans);font-size:20px;font-weight:400;line-height:1.7;color:var(--ink);
  background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a[href],button,.btn{cursor:pointer}
h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.08;color:var(--navy);text-wrap:balance;letter-spacing:.004em}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:2px}
::selection{background:var(--gold);color:#fff}

.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:.8em 1.4em;z-index:200;border-radius:0 0 4px 0}
.skip:focus{left:0}

.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(1.5rem,5vw,3.4rem)}
.section{padding:clamp(4rem,9vw,7.5rem) 0;position:relative;scroll-margin-top:84px}
.section>.wrap{position:relative;z-index:1}
.eyebrow{font-family:var(--f-sans);font-weight:500;font-size:.8125rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-deep);display:inline-block;margin-bottom:1.1rem}
.dark .eyebrow{color:var(--gold)}
h2.head{font-size:clamp(2.15rem,4.2vw,3.15rem)}
.dark h2.head{color:#fff}
.rule{width:56px;height:1px;background:var(--gold);margin:1.3rem 0 1.7rem}
.center .rule{margin-left:auto;margin-right:auto}
.center{text-align:center}
.lead{font-size:1.4rem;font-weight:400;line-height:1.55;color:var(--ink)}
.dark .lead{color:#cdd5e0}
p.body{max-width:68ch}
.center p{margin-left:auto;margin-right:auto}
.dark{background:var(--navy);color:#c4ccd8}
.dark p{color:#b7c0cd}
.muted{color:var(--ink-2)}

/* buttons — gold uses ink text (accessible), outline on light, ghost on dark */
.btn{font-family:var(--f-sans);font-weight:500;font-size:.8125rem;letter-spacing:.18em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:.6em;padding:1.05em 2.1em;border-radius:3px;border:1px solid transparent;
  cursor:pointer;transition:box-shadow .3s ease,background .3s ease,color .3s ease,border-color .3s ease}
.btn .ar{transition:transform .3s}
.btn:hover .ar{transform:translateX(4px)}
.btn-gold{background:var(--gold);color:#2b2417}
.btn-gold:hover{background:#cdb987;box-shadow:0 14px 30px -14px rgba(196,176,122,.75)}
.btn-out{background:transparent;color:var(--navy);border-color:var(--ink);opacity:.92}
.btn-out:hover{border-color:var(--gold-deep);color:var(--gold-deep);opacity:1}
.btn-ghost{background:transparent;color:var(--paper);border-color:rgba(246,240,228,.45)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.1rem}
.center .btn-row{justify-content:center}

/* header */
header.site{position:fixed;inset:0 0 auto 0;z-index:80;background:transparent;transition:all .4s ease;padding:1.35rem 0}
header.site.scrolled{background:rgba(255,255,255,.9);backdrop-filter:blur(12px);
  box-shadow:0 1px 0 var(--hairline);padding:.7rem 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand-logo{height:62px;transition:height .4s ease}
header.scrolled .brand-logo{height:50px}
.nav-links{display:flex;align-items:center;gap:2.2rem}
.nav-links a:not(.btn){font-size:1rem;font-weight:500;letter-spacing:.05em;color:var(--ink);position:relative;padding:.3em 0}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--gold);transition:width .35s}
.nav-links a:not(.btn):hover::after,.nav-links a:not(.btn):focus-visible::after{width:100%}
.nav-links .btn{padding:.8em 1.6em}
.nav-toggle{display:none;background:none;border:0;color:var(--navy);cursor:pointer;padding:.4rem}
.nav-toggle svg{width:26px;height:26px}

/* hero — light & airy */
.hero{position:relative;padding:clamp(8rem,14vw,10rem) 0 clamp(4rem,8vw,6rem);
  background:var(--paper);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:var(--cells);background-size:540px 540px;opacity:.11;z-index:0;pointer-events:none}
.hero::after{content:"";position:absolute;width:760px;height:760px;border-radius:50%;top:-32%;right:-16%;z-index:0;pointer-events:none;
  background:radial-gradient(circle,rgba(240,226,218,.85),rgba(240,226,218,0) 66%)}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.hero h1{font-size:clamp(3rem,6vw,4.75rem);color:var(--navy);line-height:1.02;margin:.4rem 0 0}
.hero h1 .accent{font-style:italic;color:var(--gold-deep)}
.hero .lead{margin-top:1.6rem;max-width:42ch;color:var(--ink)}
.trust{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center;
  font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-weight:400}
.trust span{display:inline-flex;align-items:center;gap:1.4rem}
.trust b{color:var(--gold-deep);font-weight:500}
.dotsep{width:4px;height:4px;border-radius:50%;background:var(--gold)}
/* hero plate */
.hplate{position:relative;aspect-ratio:4/4.6;border-radius:14px 14px 14px 64px;overflow:hidden;
  background:linear-gradient(158deg,#24405f,var(--navy-deep));box-shadow:0 40px 80px -40px rgba(18,34,54,.6)}
.hplate::before{content:"";position:absolute;inset:15px;border:1px solid rgba(196,176,122,.35);border-radius:8px 8px 8px 52px}
.hplate .pmark{position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);width:46%}
.hplate .pcap{position:absolute;left:0;right:0;bottom:30px;text-align:center;font-size:.68rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold)}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5.5rem);align-items:center}
.plate{position:relative;aspect-ratio:5/4;border-radius:14px 14px 14px 56px;overflow:hidden;
  background:linear-gradient(158deg,#24405f,var(--navy-deep));box-shadow:0 34px 70px -40px rgba(18,34,54,.55)}
.plate::before{content:"";position:absolute;inset:14px;border:1px solid rgba(196,176,122,.32);border-radius:8px 8px 8px 46px}
.plate .pmark{position:absolute;top:50%;left:50%;transform:translate(-50%,-58%);width:36%}
.plate .pcap{position:absolute;left:0;right:0;bottom:24px;text-align:center;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}

/* conditions */
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:3rem}
.ccard{background:var(--white);border:1px solid var(--hairline);border-radius:14px;overflow:hidden;position:relative;
  transition:box-shadow .4s ease}
.cimg{position:relative;aspect-ratio:3/2;overflow:hidden;border-bottom:2px solid var(--gold)}
.cimg img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.02);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.cimg::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(170deg,rgba(196,176,122,.06),rgba(31,53,82,.14))}
.ccard:hover{box-shadow:0 28px 54px -30px rgba(31,53,82,.34)}
.ccard:hover .cimg img{transform:scale(1.06)}
.cbody{padding:1.5rem 1.7rem 1.75rem}
.ccard h3{font-size:1.35rem;color:var(--navy);margin-bottom:.4rem}
.ccard p{font-size:1.08rem;color:var(--ink-2);line-height:1.58}

/* why-choose (blush wash) */
.check{list-style:none;max-width:900px;margin:2.6rem 0 0;display:grid;gap:.1rem}
.check li{display:flex;gap:1.1rem;align-items:flex-start;padding:1.2rem .2rem;border-bottom:1px solid var(--hairline);
  font-size:1.26rem;font-weight:400;color:var(--ink)}
.check li:last-child{border-bottom:0}
.check .ck{flex:0 0 auto;width:28px;height:28px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold-deep);margin-top:.1rem}
.check .ck svg{width:14px;height:14px}

/* concierge timeline */
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:1.4rem;margin-top:3.4rem;position:relative}
.timeline::before{content:"";position:absolute;top:26px;left:9%;right:9%;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--gold) 10%,var(--gold) 90%,transparent)}
.tstep{position:relative;text-align:center}
.tnum{font-family:var(--f-display);font-weight:600;font-size:1.35rem;color:var(--navy);width:54px;height:54px;border-radius:50%;
  background:var(--white);border:1px solid var(--gold);display:grid;place-items:center;margin:0 auto 1.3rem;position:relative;z-index:1}
.tstep h3{font-size:1.2rem;color:var(--navy);margin-bottom:.4rem}
.tstep p{font-size:1.02rem;color:var(--ink-2);line-height:1.55;margin:0 auto;max-width:24ch}
.dark .tstep h3{color:#fff}
.dark .tstep p{color:#cdd5e0}
/* 4-step timelines (e.g. consultation) span 4 cols on desktop only; below 940px the
   mobile rule collapses .timeline to a single vertical column. Scoped to min-width so
   it can't override the mobile layout the way an inline style would. */
@media(min-width:941px){.timeline.cols-4{grid-template-columns:repeat(4,1fr)}}
/* process list (vertical, numbered) */
.plist{list-style:none;padding:0;margin:3.2rem auto 0;max-width:820px;display:grid}
.pstep{display:grid;grid-template-columns:66px 1fr;gap:1.6rem;padding:2rem 0;align-items:start;
  border-top:1px solid rgba(196,176,122,.24)}
.pstep:first-child{border-top:0;padding-top:.5rem}
.pnum{font-family:var(--f-display);font-weight:600;font-size:1.3rem;color:var(--gold);width:56px;height:56px;
  border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center;background:rgba(255,255,255,.03)}
.pstep h3{font-size:1.4rem;color:#fff;margin:.35rem 0 .55rem;line-height:1.15}
.pstep .pbody{color:#cdd5e0;font-size:1.1rem;line-height:1.68;margin:0;max-width:64ch}
@media (max-width:640px){
  .pstep{grid-template-columns:48px 1fr;gap:1.1rem;padding:1.5rem 0}
  .pnum{width:44px;height:44px;font-size:1.1rem}
}

/* founder */
.portrait{aspect-ratio:3/3.5;border-radius:64px 14px 14px 14px;position:relative;overflow:hidden;margin:0;
  background:linear-gradient(158deg,#24405f,var(--navy-deep));box-shadow:0 34px 70px -40px rgba(18,34,54,.55)}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 14%}
.portrait::before{content:"";position:absolute;inset:16px;border:1px solid rgba(196,176,122,.42);border-radius:50px 8px 8px 8px;z-index:2;pointer-events:none}
.portrait::after{content:"";position:absolute;left:0;right:0;bottom:0;height:36%;z-index:1;pointer-events:none;background:linear-gradient(transparent,rgba(11,26,44,.8))}
.portrait .pname{position:absolute;left:0;right:0;bottom:26px;text-align:center;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:#fff;z-index:3}

/* science (navy depth) */
.science{background:radial-gradient(120% 90% at 50% -20%,#24405f,var(--navy) 45%,var(--navy-deep))}
.science::before{content:"";position:absolute;inset:0;background-image:var(--cells);background-size:540px 540px;opacity:.1;z-index:0;pointer-events:none}

/* cta band (light, gold frame) */
.cta-band{background:linear-gradient(rgba(16,29,48,.72),rgba(16,29,48,.80)),url(/assets/clinical-procedure.webp) center/cover no-repeat;position:relative}
.cta-band .cta-inner{border-color:rgba(255,255,255,.40);background:rgba(16,29,48,.30)}
.cta-band .eyebrow{color:var(--gold)}
.cta-band h2{color:#fff}
.cta-band .lead,.cta-band .muted{color:rgba(255,255,255,.90)}
.cta-inner{max-width:820px;margin:0 auto;text-align:center;border:1px solid var(--gold-line);border-radius:16px;
  padding:clamp(2.6rem,5vw,4rem);background:var(--white);box-shadow:0 30px 70px -44px rgba(31,53,82,.3)}
.cta-inner h2{font-size:clamp(2rem,3.8vw,2.9rem)}

/* footer — navy, uses the card contact motif */
footer.site{background:var(--navy-deep);color:#9aa7ba;padding:clamp(3.5rem,7vw,5rem) 0 2.4rem}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1.3fr;gap:3rem}
.foot-logo{height:60px;margin-bottom:1.3rem}
.foot-brand .tag{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1rem}
.foot-brand p{font-size:1.02rem;color:#8895a8;max-width:36ch}
.foot-col h3{font-size:.75rem;font-family:var(--f-sans);font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);margin-bottom:1.2rem}
.foot-col a{display:block;font-size:1.02rem;color:#9aa7ba;padding:.4rem 0;transition:color .3s}
.foot-col a:hover{color:var(--gold)}
.vcontact{display:grid;grid-template-columns:auto 1fr;gap:1.2rem}
.vcontact .bar{width:1px;background:var(--gold);opacity:.6}
.vrow{display:flex;align-items:flex-start;gap:.85rem;padding:.4rem 0;font-size:1.02rem;color:#b7c2d1}
.vrow svg{width:18px;height:18px;color:var(--gold);flex:0 0 auto;margin-top:.15rem}
.foot-bottom{margin-top:3.4rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.09)}
.disclaimer{font-size:.76rem;line-height:1.7;color:#6b7789;max-width:none}
.copyright{font-size:.8rem;color:#7f8ba0;margin-top:1.2rem}
.copyright a{color:var(--gold)}
.social{display:flex;gap:.7rem;margin-top:1.4rem}
.social a{width:38px;height:38px;border:1px solid rgba(196,176,122,.4);border-radius:50%;display:grid;place-items:center;color:var(--gold);transition:all .3s}
.social a:hover{background:var(--gold);color:var(--navy-deep)}
.social svg{width:16px;height:16px}

/* ---------- soft narrative textures (cells · mesh · watermark) ---------- */
:root{--cells:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280' viewBox='0 0 280 280'%3E%3Cg fill='none' stroke='%23c4b07a' stroke-width='1'%3E%3Ccircle cx='52' cy='60' r='32'/%3E%3Ccircle cx='52' cy='60' r='14'/%3E%3Ccircle cx='214' cy='46' r='20'/%3E%3Ccircle cx='230' cy='184' r='36'/%3E%3Ccircle cx='230' cy='184' r='16'/%3E%3Ccircle cx='106' cy='214' r='24'/%3E%3Ccircle cx='106' cy='214' r='10'/%3E%3Ccircle cx='150' cy='128' r='12'/%3E%3C/g%3E%3C/svg%3E")}
.mesh,.wm,.tex{overflow:hidden}
.tex::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:var(--cells);background-size:520px 520px;opacity:.09}
.dark.tex::before{opacity:.08}
.mesh::after{content:"";position:absolute;z-index:0;pointer-events:none;width:min(72vw,640px);height:min(72vw,640px);
  border-radius:50%;background:radial-gradient(circle,rgba(240,226,218,.8),rgba(240,226,218,0) 62%)}
.mesh.m-tr::after{top:-24%;right:-14%}
.mesh.m-bl::after{bottom:-26%;left:-16%}
.wm::after{content:"";position:absolute;z-index:0;pointer-events:none;width:min(48vw,540px);height:min(48vw,540px);
  background:url('assets/icon-gold.svg') center/contain no-repeat;opacity:.05;right:-2%;bottom:-12%;transform:rotate(-6deg)}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

@media(max-width:940px){
  .hero-grid{grid-template-columns:1fr;gap:2.5rem}
  .hero .hplate{max-width:360px;margin:0 auto;order:-1;aspect-ratio:4/3.4;border-radius:14px 14px 14px 48px}
  .hero .lead{max-width:none}
  .split{grid-template-columns:1fr;gap:2.4rem}
  .split .plate{max-width:440px;margin:0 auto;order:-1}
  .cgrid{grid-template-columns:1fr 1fr}
  .timeline{grid-template-columns:1fr;gap:0}
  .timeline::before{top:0;bottom:0;left:27px;right:auto;width:1px;height:auto;background:linear-gradient(180deg,transparent,var(--gold) 8%,var(--gold) 92%,transparent)}
  .tstep{display:grid;grid-template-columns:54px 1fr;column-gap:1.3rem;row-gap:.35rem;text-align:left;padding:1rem 0}
  .tnum{margin:0;grid-column:1;grid-row:1 / span 2;align-self:start}
  .tstep h3{grid-column:2;grid-row:1;align-self:center}
  .tstep p{grid-column:2;grid-row:2;margin:0;max-width:none}
  .foot-grid{grid-template-columns:1fr;gap:2.4rem}
}
@media(max-width:680px){
  .nav-links{position:fixed;inset:0 0 0 auto;width:min(80vw,320px);background:var(--white);flex-direction:column;
    justify-content:center;align-items:flex-start;padding:2.5rem;gap:1.7rem;transform:translateX(100%);
    transition:transform .4s cubic-bezier(.2,.7,.2,1);box-shadow:-20px 0 60px -30px rgba(18,34,54,.4)}
  .nav-links.open{transform:translateX(0)}
  .nav-toggle{display:block;z-index:90}
  /* the scrolled header's backdrop-filter would trap the fixed menu panel to the
     header's height (making it a containing block); drop it on mobile so the panel
     sizes to the full viewport. Solid bg keeps the bar legible without the blur. */
  header.site.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.97)}
  .nav-links{z-index:85}
  .cgrid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{animation:none!important}
}

/* ---------- multi-page additions ---------- */
.nav-links a[aria-current="page"]{color:var(--gold-deep)}
.nav-links a[aria-current="page"]::after{width:100%}
.pagehero{position:relative;padding:clamp(9rem,15vw,12rem) 0 clamp(3.4rem,7vw,5rem);background:var(--paper);text-align:left;overflow:hidden}
.pagehero h1{font-size:clamp(2.7rem,5.5vw,4.2rem);color:var(--navy);margin:.3rem 0 0;max-width:20ch}
.pagehero .sub{font-size:clamp(1.15rem,1.8vw,1.4rem);color:var(--ink);max-width:60ch;margin:1.4rem 0 0;font-weight:400;line-height:1.6}
.pagehero .pill{margin-top:1.8rem}
.pagehero .pill span{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);
  border:1px solid var(--gold-line);border-radius:30px;padding:.55em 1.3em;font-weight:500}
.intro{max-width:860px;margin:0;text-align:left}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:3rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:3rem}
.pcard{background:var(--white);border:1px solid var(--hairline);border-top:2px solid var(--gold);border-radius:12px;padding:2rem 1.9rem}
.pcard .ico{width:34px;height:34px;color:var(--gold-deep);margin-bottom:1rem}
.pcard h3{font-size:1.4rem;color:var(--navy);margin-bottom:.5rem}
.pcard p{font-size:1.08rem;color:var(--ink-2);line-height:1.62}
.note{text-align:center;margin-top:2.2rem;color:var(--ink-2);font-style:italic;max-width:60ch;margin-left:auto;margin-right:auto}
.faq{max-width:820px;margin:2.6rem auto 0}
.faq details{border-bottom:1px solid var(--hairline);padding:1.2rem .2rem}
.faq summary{cursor:pointer;font-family:var(--f-display);font-weight:500;font-size:1.4rem;color:var(--navy);
  list-style:none;display:flex;justify-content:space-between;gap:1.2rem;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold-deep);font-family:var(--f-sans);font-weight:300;font-size:1.5rem;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq .fa{margin-top:.9rem;color:var(--ink-2);line-height:1.72;font-size:1.1rem;max-width:68ch}
.mini{max-width:820px;margin:0 auto}
.cta-inner .btn-row{margin-top:1.8rem}
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.5rem;margin-top:3rem;text-align:left}
.member{background:var(--white);border:1px solid var(--hairline);border-radius:14px;padding:0;overflow:hidden;text-align:left}
.member .mphoto{width:100%;height:340px;overflow:hidden;border-bottom:2px solid var(--gold);margin-bottom:1.7rem}
.member .mphoto img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
.member>:not(.mphoto){padding-left:1.9rem;padding-right:1.9rem}
.member>*:last-child{padding-bottom:1.9rem}
.member h3{font-size:1.45rem;color:var(--navy);margin-bottom:.2rem}
.member .role{color:var(--gold-deep);font-style:italic;font-size:1.05rem;margin-bottom:1rem}
.member p{font-size:1.05rem;color:var(--ink-2);line-height:1.62;margin-bottom:.7rem}
.member p:last-child{margin-bottom:0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,4.5rem);align-items:start}
.form{display:grid;gap:1.1rem}
.field label{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.5rem;font-weight:500}
.field input,.field textarea{width:100%;padding:.95em 1.05em;border:1px solid var(--hairline);border-radius:6px;
  background:var(--white);font-family:var(--f-sans);font-weight:400;font-size:1.05rem;color:var(--ink)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,176,122,.16)}
.cinfo{display:grid;gap:1.1rem;margin:1.8rem 0}
.cinfo .row{display:flex;gap:1rem;align-items:flex-start;font-size:1.12rem;color:var(--ink)}
.cinfo .row svg{width:20px;height:20px;color:var(--gold-deep);flex:0 0 auto;margin-top:.25rem}
.mapwrap{margin-top:1.6rem;border-radius:12px;overflow:hidden;border:1px solid var(--hairline);aspect-ratio:16/7}
.contact-map{margin-top:0;aspect-ratio:4/3}
@media(max-width:900px){.contact-map{aspect-ratio:16/9}}
.mapwrap iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:900px){.grid3,.grid2{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}}
@media(max-width:640px){.grid3,.grid2{grid-template-columns:1fr}}
/* ---------- affiliation band ---------- */
.affil{background:var(--white);border-top:1px solid var(--hairline);padding:clamp(3.4rem,6vw,4.8rem) 0;text-align:center}
.affil .wrap{max-width:720px}
.affil .badge{width:106px;height:106px;margin:0 auto 1.5rem;border-radius:50%;padding:5px;border:1px solid var(--gold-line);box-shadow:0 14px 32px -18px rgba(31,53,82,.4)}
.affil .badge img{width:100%;height:100%;border-radius:50%;display:block}
.affil .prov-line{font-family:var(--f-display);font-weight:500;font-size:clamp(1.5rem,2.6vw,2rem);color:var(--navy);max-width:26ch;margin:.3rem auto 0;line-height:1.2;text-wrap:balance}
.affil .fine{font-size:.86rem;font-style:italic;color:var(--ink-2);max-width:58ch;margin:1.2rem auto 0;line-height:1.55}
.alink{display:inline-flex;align-items:center;gap:.5em;margin-top:1.7rem;font-family:var(--f-sans);font-weight:500;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);border-bottom:1px solid var(--gold-line);padding-bottom:3px;transition:color .3s ease,border-color .3s ease}
.alink:hover{color:var(--navy);border-color:var(--navy)}
