/* Shared refinement: CSS-only disclosure menus and a softer visual language. */
:root { --cream:#f2f5ef; --ink:#213047; --line:#e0e6e0; --green:#d4e4bd; }
html { scroll-behavior:smooth; scroll-padding-top:138px; }
body { background:#fafbf8; }
[id] { scroll-margin-top:0; }
.icon { display:inline-block; flex-shrink:0; vertical-align:middle; transition:transform .25s ease; }
.site-header { position:sticky; top:0; background:#fff; backdrop-filter:none; border-color:#e4e9e3; box-shadow:0 6px 30px #172d3e05; }
.header-inner { min-height:100px; }
.brand,.brand img { width:158px; height:79px; }
.button { border-radius:13px; padding:15px 25px; box-shadow:0 6px 15px #111c4e12; transition:background .25s,box-shadow .25s,transform .25s; }
.button:hover { transform:translateY(-2px); box-shadow:0 10px 22px #111c4e22; }
.button:hover>.icon,.hero-link:hover>.icon { transform:translateX(3px); }
.button:active { transform:translateY(0); }
.hero-link { border:1px solid #ffffff60; padding:13px 22px; border-radius:13px; background:#ffffff0a; transition:background .25s,border-color .25s; }
.hero-link:hover { background:#ffffff18; border-color:#fff; }
.hero { width:calc(100% - 48px); max-width:1512px; margin:24px auto 0; border-radius:28px; box-shadow:0 20px 50px #122d3e0c; }
.hero-content { width:min(1240px,calc(100% - 96px)); }
.hero h1 { font-weight:500; font-size:clamp(42px,4.5vw,66px); letter-spacing:-.045em; }
.hero-shade { background:linear-gradient(90deg,#0b2036ed 0%,#102d3da8 45%,#183b411a 100%); }
@media(min-width:1051px) {
  .hero-shade { background:linear-gradient(90deg,rgba(11,32,54,.90) 0%,rgba(16,45,61,.53) 34%,rgba(16,45,61,.14) 58%,rgba(16,45,61,0) 78%); }
}
.hero-location { background:#ffffff17; border:1px solid #ffffff30; border-radius:100px; padding:7px 15px; backdrop-filter:blur(8px); }
.welcome { grid-template-columns:minmax(260px,.85fr) minmax(0,2fr); gap:64px; align-items:start; padding-block:68px 64px; }
.welcome-aside { min-width:0; }
.welcome-aside .section-label { margin:0 0 23px; padding-top:4px; font-size:11px; line-height:1.6; letter-spacing:.15em; }
.welcome-portrait { overflow:hidden; border-radius:20px; background:#edf1e7; border:1px solid #e0e6da; }
.welcome-portrait img { display:block; width:100%; height:auto; aspect-ratio:17/10; object-fit:contain; }
.welcome-content>p:first-child { font-size:21px; line-height:1.8; }
@media(max-width:900px) {
  .welcome { display:block; }
  .welcome-aside { margin-bottom:27px; }
  .welcome-aside .section-label { margin-bottom:18px; }
  .welcome-portrait { width:100%; max-width:420px; }
  .welcome-content>p:first-child { font-size:18px; }
}
.feature { border-radius:24px; overflow:hidden; background:#fff; border:1px solid #e2e8de; box-shadow:0 9px 36px #19364507; transition:box-shadow .3s,transform .3s; }
.feature:hover { box-shadow:0 18px 44px #19364511; transform:translateY(-3px); }
.feature-copy { padding:32px 34px 36px; }
.feature h2 { font-size:30px; }
.feature-copy p { color:#52616e; font-size:15px; }
.feature-copy .custom>p:first-child { width:76px; }
.feature-copy .custom>p:first-child img { border-radius:7px; }
.feature-copy p:last-child a { display:inline-flex; gap:18px; align-items:center; border:1px solid #dce4d7; padding:10px 16px; border-radius:11px; color:var(--navy); background:#f3f6ef; transition:background .25s; }
.feature-copy p:last-child a:after { content:""; width:17px; height:17px; margin:0; background:currentColor; mask:url('arrow.svg') center/contain no-repeat; }
.feature-copy p:last-child a:hover { background:#e6eedc; }
.photo-strip img { border-radius:20px; }
.site-footer { border-radius:32px 32px 0 0; margin-top:15px; }
.footer-bottom .icon { width:13px; height:13px; margin-left:6px; }
.page-heading { background:linear-gradient(120deg,#edf2e8,#f6f7f2); border-radius:0 0 32px 32px; padding-bottom:48px; }
.breadcrumbs { margin-bottom:30px; }
.page-banner img { border-radius:23px; box-shadow:0 10px 35px #19364509; }
.article-layout { padding-top:48px; }
.prose .original-panel { border-radius:21px; background:#fff; border:1px solid #e0e6de; box-shadow:0 6px 24px #19364505; }
.prose .original-panel img,.prose img { border-radius:13px; }
.article-sidebar>section { border-radius:20px; border:1px solid #dce5d5; background:#eef3e8; padding:27px; }
.prose blockquote { border-radius:0 15px 15px 0; }
.section-links { gap:12px; }
.section-links a { border-radius:12px; border:1px solid #dfe7d8; background:#fff; transition:background .25s,transform .25s; }
.section-links a:hover { transform:translateY(-2px); }
.section-links .icon { width:16px; height:16px; }
.prose h2 { margin-block:28px 10px; }
.prose h3 { margin-block:26px 10px; }
.prose h4 { margin-block:22px 8px; }
.prose :is(h2,h3,h4)+:is(p,ul,ol,div) { margin-top:0; }
.prose p { margin-bottom:16px; }
.prose ul,.prose ol { margin-block:12px 22px; }
.article-sidebar h2 { margin-bottom:12px; }
.feature h2 { margin-bottom:12px; }
.team-page .prose>.team-content { display:block; }
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; }
.team-card { border:1px solid #e0e6de; border-radius:19px; padding:17px; background:#fff; overflow:hidden; }
.prose .team-card>img { width:100%; max-width:none; aspect-ratio:5/6; object-fit:cover; border-radius:11px; margin:0 0 15px; }
.team-card-body .team-name { font-size:18px; line-height:1.3; letter-spacing:-.025em; margin:0 0 8px; }
.team-card-body p { font-size:13px; line-height:1.7; margin:0 0 10px; }
.team-card-body p:last-child { margin-bottom:0; }
.team-card-body a { font-size:12px; text-decoration:none; overflow-wrap:anywhere; }
.team-benefits { margin-top:38px; }
.team-benefits>h2 { font-size:25px; margin:0 0 12px; }
.benefits-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.prose .benefits-grid>ul { margin:0; }
.prose .benefits-grid li { margin-bottom:7px; }
@media(min-width:1051px) and (max-width:1200px) { .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } .team-card { padding:13px; } .team-card-body .team-name { font-size:17px; } .benefits-grid { grid-template-columns:1fr; gap:0; } .team-benefits>h2 { font-size:23px; } }
@media(max-width:480px) { .team-grid { grid-template-columns:1fr; max-width:300px; } }
.form-field input,.form-field textarea { background:#f7f9f4; border-radius:12px; border-color:#dce4d8; transition:border-color .2s,box-shadow .2s; }
.form-field input:focus,.form-field textarea:focus { outline:none; border-color:#829b6c; box-shadow:0 0 0 4px #c7dba640; }
.notice { border-radius:15px; }
.form-body { background:#fafbf8; padding:15px 10px 25px; }
.consent { margin-block:26px; }
.contact-frame { border-radius:20px; background:#fafbf8; }
.form-direct a { display:inline-flex; align-items:center; gap:8px; }
.jump-nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; padding:18px 20px; margin:20px auto 0; }
.jump-nav a { display:inline-flex; gap:8px; align-items:center; color:#4b5c61; font-size:12px; border:1px solid #e0e7dc; background:#fff; border-radius:100px; padding:9px 17px; text-decoration:none; transition:background .25s,color .25s; }
.jump-nav a:hover { background:#eaf0e1; color:var(--navy); }
.jump-nav .icon { width:15px; height:15px; transform:rotate(90deg); }
/* Always expose the content box to CSS; visibility and grid tracks handle
   collapsed states. Native details keeps keyboard/touch state without JS. */
details::details-content { content-visibility:visible; }
.nav-list { gap:24px; }
.nav-list a { font-size:13px; padding:12px 4px; border-radius:9px; transition:color .2s,background .2s; }
.level-0>li>a[aria-current] { box-shadow:none; color:var(--navy); background:#edf2e7; padding-inline:12px; }
.has-sub { padding-right:24px; }
.has-sub>details>summary { width:25px; height:32px; top:9px; right:-2px; border-radius:8px; color:#6a7780; transition:background .2s,color .2s; }
.has-sub>details>summary:hover { background:#eef3e8; color:var(--navy); }
.has-sub>details>summary .icon { width:15px; height:15px; }
.nav-panel { display:grid; grid-template-rows:0fr; opacity:0; visibility:hidden; transform:translateY(8px); transition:grid-template-rows .28s ease,opacity .22s ease,transform .28s ease,visibility .28s; }
.nav-panel-inner { overflow:hidden; min-height:0; }
.has-sub>details[open]>.nav-panel { grid-template-rows:1fr; opacity:1; visibility:visible; transform:translateY(0); }
.has-sub>details[open]>summary .icon { transform:rotate(180deg); }
.nav-list .level-1,.nav-list .level-2 { position:static; min-width:0; padding:8px; border:0; box-shadow:none; background:transparent; gap:2px; border-radius:0; }
.nav-list .level-1>li+li { border:0; }
.nav-list .level-1 a,.nav-list .level-2 a { font-size:13px; padding:10px 13px; line-height:1.5; }
.nav-list .level-1 a:hover,.nav-list .level-2 a:hover { background:#eef3e8; color:var(--navy); }
.nav-list .level-2 { padding:1px 6px 7px 16px; }
.nav-list .level-2 a { font-size:12px; }
.nav-list .level-1 summary { top:5px; right:7px; }
.nav-list .level-1 .has-sub>a { padding-right:35px; }
@media(min-width:1051px) {
  .level-0>.has-sub>details>.nav-panel { position:absolute; top:calc(100% - 1px); left:-12px; width:292px; padding-top:12px; }
  .level-0>.has-sub:nth-last-child(2)>details>.nav-panel { left:auto; right:0; }
  .level-0>.has-sub>details>.nav-panel>.nav-panel-inner { border-radius:17px; background:#fff; border:1px solid #e0e6de; box-shadow:0 18px 50px #132b3d19; }
  .has-sub:hover>details>.nav-panel,.has-sub:focus-within>details>.nav-panel { grid-template-rows:1fr; opacity:1; visibility:visible; transform:translateY(0); }
  .has-sub:hover>details>summary .icon { transform:rotate(180deg); }
}
@media(max-width:1050px) {
  .mobile-nav>summary { border-radius:12px; border-color:#e0e6dc; gap:16px; }
  .mobile-nav>summary .icon { width:21px; height:21px; }
  .mobile-panel { display:grid; grid-template-rows:0fr; opacity:0; visibility:hidden; position:absolute; left:20px; right:20px; top:calc(100% - 1px); transition:grid-template-rows .3s,opacity .25s,visibility .3s; }
  .mobile-panel>nav { min-height:0; overflow:hidden; border-radius:19px; background:#fff; box-shadow:0 20px 45px #1c35451c; }
  .mobile-nav[open]>.mobile-panel { grid-template-rows:1fr; opacity:1; visibility:visible; }
  .mobile-panel .level-0 { padding:16px 20px; max-height:72vh; overflow:auto; }
  .mobile-nav .nav-list { gap:0; }
  .mobile-nav .has-sub { padding-right:0; }
  .mobile-nav .nav-list a { padding:13px 10px; font-size:14px; }
  .mobile-nav .has-sub>a { padding-right:50px; }
  .mobile-nav .nav-list li { border:0; }
  .mobile-nav .has-sub summary { top:11px; right:4px; width:32px; height:30px; }
  .mobile-nav .level-1,.mobile-nav .level-2 { padding:2px 0 5px 14px; background:#f5f7f1; border-radius:11px; }
  .mobile-nav .level-1 a,.mobile-nav .level-2 a { font-size:13px; }
  .header-inner { min-height:88px; }
}
@media(max-width:760px) {
  html { scroll-padding-top:110px; }
  [id] { scroll-margin-top:0; }
  .brand,.brand img { width:133px; height:67px; }
  .hero { width:calc(100% - 24px); margin-top:12px; border-radius:22px; min-height:490px; }
  .hero-content { width:calc(100% - 40px); padding-block:55px 95px; }
  .hero h1 { font-size:clamp(33px,7.8vw,52px); }
  .hero .eyebrow { font-size:8px; letter-spacing:.1em; gap:9px; }
  .hero .eyebrow:before { width:18px; }
  .hero-actions { gap:12px; flex-wrap:wrap; }
  .hero-actions .button,.hero-link { padding:13px 16px; font-size:11px; gap:14px; }
  .hero-location { left:20px; bottom:20px; font-size:9px; }
  .welcome { display:block; padding-block:35px 42px; }
  .welcome-aside { margin-bottom:27px; }
  .welcome-aside .section-label { margin-bottom:18px; }
  .welcome-portrait { width:100%; max-width:420px; border-radius:17px; }
  .welcome-content>p:first-child { font-size:18px; }
  .feature-copy { padding:25px; }
  .feature h2 { font-size:26px; }
  .feature-copy p { font-size:14px; }
  .feature-copy .custom>p:first-child { width:65px; }
  .feature-copy p:last-child a { font-size:11px; padding:9px 12px; gap:10px; }
  .page-heading { border-radius:0 0 24px 24px; }
  .page-heading h1 { font-size:32px; }
  .page-banner img { border-radius:17px; }
  .site-footer { border-radius:25px 25px 0 0; }
  .jump-nav { padding:10px 12px; gap:6px; margin-top:12px; }
  .jump-nav a { font-size:10px; padding:7px 12px; }
  .jump-nav .icon { width:12px; height:12px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
