
:root{
  color-scheme:light;
  --night:#0A1826; --navy:#12314F; --navy-2:#0F2640;
  --ivory:#F6F2EA; --ivory-2:#EEE7DA; --ink:#15212F; --ink-soft:#4A5563;
  --gold:#C1A268; --gold-soft:#D8C194; --gold-deep:#8C6E3A;
  --on-night:#EFE9DD; --on-night-soft:#AEB6C1; --hair-dark:rgba(193,162,104,.28); --hair-light:#D9CFBD;
  --display:"Cormorant Garamond","Cormorant",Garamond,"Times New Roman",serif;
  --sans:"Noto Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.75}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(18px,5vw,56px)}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.005em}
h1{font-size:clamp(2.7rem,6.2vw,5.2rem)}
h2{font-size:clamp(2.1rem,4.2vw,3.4rem)}
h3{font-size:clamp(1.5rem,2.2vw,1.9rem)}
p{margin:0}
a{color:inherit}
a:focus-visible,summary:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
em{font-style:italic}
.label{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep);display:flex;align-items:center;gap:.9rem}
.label::before{content:"";width:34px;height:1px;background:currentColor;opacity:.8}
.dark .label,.night .label{color:var(--gold)}
.dark{background:var(--navy-2);color:var(--on-night)}
.night{background:var(--night);color:var(--on-night)}
.dark,.night{background-image:radial-gradient(120% 80% at 85% 0%,rgba(193,162,104,.07),transparent 60%),radial-gradient(90% 60% at 0% 100%,rgba(18,49,79,.55),transparent 70%)}
.btn{display:inline-flex;align-items:center;gap:.8rem;padding:1.05rem 1.9rem;font-family:var(--sans);font-size:.78rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;transition:background .35s,color .35s,border-color .35s}
.btn-gold{background:var(--gold);color:var(--night);border:1px solid var(--gold)}
.btn-gold:hover{background:transparent;color:var(--gold)}
.btn-line{border:1px solid var(--hair-dark);color:var(--on-night)}
.btn-line:hover{border-color:var(--gold);color:var(--gold)}
.btn .arr{display:inline-block;width:22px;height:1px;background:currentColor;position:relative}
.btn .arr::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}

/* header */
.top{position:absolute;inset:0 0 auto 0;z-index:5;padding-top:env(safe-area-inset-top,0px)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1.6rem}
.top .logo{height:52px;width:auto;max-width:100%;display:block}
@media (max-width:560px){.top .logo{height:38px}}
.menu{display:flex;gap:1.8rem;white-space:nowrap}
.menu a{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:var(--on-night-soft);transition:color .3s}
.menu a:hover{color:var(--gold)}
@media (max-width:980px){.menu{display:none}}

/* hero */
.hero{padding-block:clamp(8rem,14vw,10.5rem) 0;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2.5rem,6vw,6rem);align-items:end}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}}
.hero-copy{display:grid;gap:1.8rem;padding-bottom:clamp(3rem,6vw,5.5rem)}
.hero h1{color:var(--on-night)}
.hero h1 em{color:var(--gold-soft);font-weight:400}
.hero .lede{font-size:1.1rem;color:var(--on-night-soft);max-width:52ch}
.cta-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.6rem}
.hero-photo{margin:0;position:relative;align-self:end;justify-self:end;width:100%;max-width:470px}
@media (max-width:900px){.hero-photo{justify-self:start;max-width:380px}}
.hero-photo img{display:block;width:100%;max-width:100%;aspect-ratio:4/5.2;object-fit:cover;object-position:50% 10%;filter:saturate(.92) contrast(1.03)}
.hero-photo::before{content:"";position:absolute;top:-22px;right:-22px;bottom:22px;left:22px;border:1px solid var(--gold);opacity:.55;pointer-events:none}
@media (max-width:560px){.hero-photo::before{top:-12px;right:-10px;bottom:12px;left:12px}}
.hero-photo figcaption{position:absolute;left:0;bottom:0;right:0;padding:2.4rem 1.4rem 1.2rem;background:linear-gradient(to top,rgba(10,24,38,.92),transparent);display:grid;gap:.15rem}
.hero-photo figcaption b{font-family:var(--display);font-weight:500;font-size:1.25rem;color:var(--on-night)}
.hero-photo figcaption span{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}

.facts{border-top:1px solid var(--hair-dark);position:relative;z-index:1;background:var(--night)}
.facts .wrap{display:grid;grid-template-columns:repeat(3,1fr)}
@media (max-width:760px){.facts .wrap{grid-template-columns:1fr}}
.fact{padding:1.8rem 1.4rem 1.8rem 0;display:grid;gap:.25rem}
.fact+.fact{border-left:1px solid var(--hair-dark);padding-left:1.8rem}
@media (max-width:760px){.fact+.fact{border-left:0;border-top:1px solid var(--hair-dark);padding-left:0}}
.fact b{font-family:var(--display);font-weight:500;font-size:1.7rem;color:var(--gold-soft);line-height:1.1}
.fact span{font-size:.82rem;color:var(--on-night-soft);letter-spacing:.04em}

section{padding-block:clamp(5rem,10vw,8.5rem)}
.head{display:grid;gap:1.3rem;max-width:760px;margin-bottom:clamp(3rem,6vw,4.5rem)}
.head p{font-size:1.08rem;color:var(--ink-soft);max-width:60ch}
.dark .head p,.night .head p{color:var(--on-night-soft)}

/* areas */
.areas{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair-light)}
@media (max-width:900px){.areas{grid-template-columns:1fr}}
.area{padding:2.6rem 2.2rem 2.4rem 0;display:grid;gap:1.1rem;align-content:start}
.area+.area{border-left:1px solid var(--hair-light);padding-left:2.2rem}
@media (max-width:900px){.area+.area{border-left:0;border-top:1px solid var(--hair-light);padding-left:0}}
.orn{width:9px;height:9px;border:1px solid var(--gold);transform:rotate(45deg)}
.area p{color:var(--ink-soft);font-size:.98rem}
.area ul{list-style:none;margin:.3rem 0 0;padding:0;display:grid;gap:.55rem}
.area li{font-size:.92rem;color:var(--ink);padding-left:1.1rem;position:relative}
.area li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:1px;background:var(--gold-deep)}
.also{margin-top:2.6rem;font-family:var(--display);font-style:italic;font-size:1.3rem;color:var(--ink-soft);max-width:62ch}

/* route */
.route{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--hair-dark)}
@media (max-width:800px){.route{grid-template-columns:1fr}}
.route .q{grid-column:1/-1;padding:1.8rem 2rem;border-bottom:1px solid var(--hair-dark);font-family:var(--display);font-size:clamp(1.35rem,2.4vw,1.8rem);color:var(--on-night)}
.path{padding:2.2rem 2rem;display:grid;gap:.9rem;align-content:start}
.path+.path{border-left:1px solid var(--hair-dark)}
@media (max-width:800px){.path+.path{border-left:0;border-top:1px solid var(--hair-dark)}}
.path .tag{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.path h3{color:var(--on-night)}
.path p{color:var(--on-night-soft);font-size:.97rem}
.note{margin-top:1.4rem;font-size:.85rem;color:var(--on-night-soft)}

/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2.4rem;counter-reset:s}
@media (max-width:980px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.steps li{counter-increment:s;display:grid;gap:.8rem;align-content:start;border-top:1px solid var(--hair-light);padding-top:1.4rem}
.steps li::before{content:counter(s,upper-roman);font-family:var(--display);font-size:2.6rem;line-height:1;color:var(--gold-deep)}
.steps p{color:var(--ink-soft);font-size:.96rem}

/* about */
.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
@media (max-width:900px){.about{grid-template-columns:1fr}}
.portrait-wrap{position:relative;max-width:440px;width:100%}
.portrait-wrap::after{content:"";position:absolute;left:-18px;top:18px;right:18px;bottom:-18px;border:1px solid var(--gold);opacity:.5;pointer-events:none}
@media (max-width:560px){.portrait-wrap::after{left:-10px;top:10px;right:10px;bottom:-10px}}
.portrait{display:block;width:100%;max-width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 18%}
.about-copy{display:grid;gap:1.5rem}
.about-copy h2{color:var(--on-night)}
.quote{font-family:var(--display);font-style:italic;font-size:clamp(1.45rem,2.4vw,1.9rem);line-height:1.35;color:var(--gold-soft);border-left:1px solid var(--gold);padding-left:1.4rem;max-width:34ch}
.about-copy p{color:var(--on-night-soft);max-width:58ch}
.creds{list-style:none;margin:.4rem 0 0;padding:0;border-top:1px solid var(--hair-dark)}
.creds li{display:grid;grid-template-columns:10.5rem 1fr;gap:1rem;padding:.95rem 0;border-bottom:1px solid var(--hair-dark);font-size:.93rem;color:var(--on-night)}
@media (max-width:560px){.creds li{grid-template-columns:1fr;gap:.15rem}}
.creds span{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);padding-top:.25rem}
.team{font-size:.9rem;color:var(--on-night-soft)}


/* team */
.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,4rem);max-width:980px}
@media (max-width:720px){.team-grid{grid-template-columns:1fr}}
.member{display:grid;gap:1.3rem;align-content:start}
.member-photo{position:relative;max-width:340px;width:100%}
.member-photo::after{content:"";position:absolute;left:-14px;top:14px;right:14px;bottom:-14px;border:1px solid var(--gold);opacity:.5;pointer-events:none}
@media (max-width:560px){.member-photo::after{left:-9px;top:9px;right:9px;bottom:-9px}}
.member-photo img,.member-photo .ph{display:block;width:100%;height:auto;max-width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 20%}
.member-photo .ph{background:linear-gradient(160deg,var(--ivory-2),#E4DBCB);display:grid;place-items:center;font-family:var(--display);font-size:3.4rem;color:var(--gold-deep)}
.member h3{font-size:clamp(1.55rem,2.4vw,1.9rem)}
.member .role{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep)}
.member p{color:var(--ink-soft);font-size:.96rem;max-width:44ch}

/* faq */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,5rem);align-items:start}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr}}
.faq{border-top:1px solid var(--hair-light)}
details{border-bottom:1px solid var(--hair-light)}
summary{cursor:pointer;list-style:none;padding:1.5rem 2.6rem 1.5rem 0;font-family:var(--display);font-size:clamp(1.25rem,2vw,1.5rem);font-weight:500;position:relative;line-height:1.25}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:.4rem;top:50%;width:14px;height:1px;background:var(--gold-deep);box-shadow:none}
summary::before{content:"";position:absolute;right:calc(.4rem + 6.5px);top:calc(50% - 6.5px);width:1px;height:14px;background:var(--gold-deep);transition:transform .3s}
details[open] summary::before{transform:scaleY(0)}
details p{padding:0 0 1.6rem;color:var(--ink-soft);max-width:64ch}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact .logo-c{height:58px;width:auto;max-width:100%;display:block}
@media (max-width:560px){.contact .logo-c{height:42px}}
.contact-copy{display:grid;gap:1.6rem}
.contact-copy h2{color:var(--on-night)}
.contact-copy p{color:var(--on-night-soft);max-width:50ch}
.chan{display:grid;border-top:1px solid var(--hair-dark)}
.chan div{padding:1.2rem 0;border-bottom:1px solid var(--hair-dark);display:grid;gap:.2rem}
.chan span{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.chan b{font-family:var(--display);font-weight:500;font-size:1.3rem;color:var(--on-night);word-break:break-word}
.chan a{text-decoration:none}
.chan a:hover{color:var(--gold)}

footer{background:var(--night);color:var(--on-night-soft);font-size:.78rem;letter-spacing:.04em;border-top:1px solid var(--hair-dark)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:1.8rem}

.wa-float{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;display:flex;align-items:center;gap:.55rem;background:var(--gold);color:var(--night);text-decoration:none;font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:.9rem 1.2rem;box-shadow:0 14px 30px -12px rgba(0,0,0,.5);transition:background .3s}
.wa-float:hover{background:var(--gold-soft)}
.wa-float svg{width:17px;height:17px;fill:currentColor}

/* service pages */
.page-hero{padding-block:clamp(8.5rem,14vw,11rem) clamp(3.5rem,7vw,5.5rem)}
.page-hero .wrap{display:grid;gap:1.6rem;max-width:var(--wrap)}
.page-hero h1{color:var(--on-night);font-size:clamp(2.4rem,5.4vw,4.4rem);max-width:18ch}
.page-hero h1 em{color:var(--gold-soft);font-weight:400}
.page-hero .lede{font-size:1.12rem;color:var(--on-night-soft);max-width:60ch}
.crumbs{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--on-night-soft)}
.crumbs a{text-decoration:none;color:var(--gold)}
.crumbs a:hover{text-decoration:underline}
.prose{display:grid;gap:clamp(3rem,6vw,4.5rem);max-width:860px}
.prose section{padding:0}
.block{display:grid;gap:1.1rem}
.block h2{font-size:clamp(1.9rem,3.4vw,2.7rem)}
.block p{color:var(--ink-soft);max-width:66ch}
.block p a{color:var(--gold-deep)}
.block strong{font-weight:500;color:var(--ink)}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;border-top:1px solid var(--hair-light)}
.checks li{padding:.9rem 0 .9rem 1.8rem;border-bottom:1px solid var(--hair-light);position:relative;color:var(--ink)}
.checks li::before{content:"";position:absolute;left:.2rem;top:1.45rem;width:9px;height:9px;border:1px solid var(--gold);transform:rotate(45deg)}
.route.light{border-color:var(--hair-light)}
.route.light .q{color:var(--ink);border-color:var(--hair-light)}
.route.light .path+.path{border-color:var(--hair-light)}
.route.light .path h3{color:var(--ink)}
.route.light .path p{color:var(--ink-soft)}
.route.light .tag{color:var(--gold-deep)}
.related{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair-dark)}
@media (max-width:800px){.related{grid-template-columns:1fr}}
.related a{display:grid;gap:.6rem;padding:1.8rem 1.6rem 1.8rem 0;text-decoration:none;color:var(--on-night)}
.related a+a{border-left:1px solid var(--hair-dark);padding-left:1.6rem}
@media (max-width:800px){.related a+a{border-left:0;border-top:1px solid var(--hair-dark);padding-left:0}}
.related b{font-family:var(--display);font-weight:500;font-size:1.5rem}
.related span{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.related a:hover b{color:var(--gold-soft)}
.more{display:inline-flex;align-items:center;gap:.7rem;margin-top:.6rem;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:var(--gold-deep);font-weight:500}
.more:hover{color:var(--ink)}
.also a{color:var(--gold-deep)}
.foot-nav{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;padding-block:1.6rem;border-bottom:1px solid var(--hair-dark)}
.foot-nav a{text-decoration:none;color:var(--on-night-soft)}
.foot-nav a:hover{color:var(--gold)}
