:root { --blue:#0759a3; --navy:#17314a; --ink:#263746; --muted:#52626f; --line:#d5dde3; --paper:#f3f6f8; color-scheme:light; scroll-padding-top:112px; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.65 Arial,Helvetica,sans-serif; color:var(--ink); background:#fff; }
a { color:var(--blue); text-decoration-thickness:1px; text-underline-offset:4px; }
a:hover { color:#003e76; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
img { max-width:100%; height:auto; }
[hidden] { display:none!important; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { color:var(--navy); line-height:1.2; font-weight:600; }
h1 { font-size:clamp(2.2rem,3.5vw,3.25rem); letter-spacing:-.025em; }
h2 { font-size:1.8rem; letter-spacing:-.015em; }
h3 { font-size:1.55rem; }
p+p { margin-top:18px; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible { outline:3px solid #458dd0; outline-offset:4px; }
.shell { width:min(1160px,calc(100% - 96px)); margin-inline:auto; }
.section { padding-block:64px; }
.site-header { height:96px; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.header-inner { width:min(1280px,calc(100% - 80px)); height:100%; margin:auto; display:flex; justify-content:space-between; align-items:center; gap:30px; }
.brand { display:flex; flex-direction:column; align-items:flex-start; gap:8px; width:218px; max-width:100%; text-decoration:none; flex-shrink:0; }
.brand-wordmark { display:block; width:100%; height:auto; }
.brand-descriptor { color:var(--navy); font-size:10px; font-weight:600; line-height:1.3; letter-spacing:.15em; }
.desktop-nav { display:flex; gap:34px; }
.desktop-nav a { color:var(--ink); font-size:14px; text-decoration:none; }
.desktop-nav a:hover { color:var(--blue); text-decoration:underline; }
.menu-toggle { display:none; padding:8px 10px; background:#fff; color:var(--navy); border:1px solid var(--line); font-size:14px; align-items:center; gap:9px; }
.menu-toggle span { font-size:18px; }
.mobile-nav { padding:8px 24px 18px; background:#fff; border-bottom:1px solid var(--line); }
.mobile-nav a { display:block; padding:10px 0; color:var(--ink); text-decoration:none; }
.fallback-nav { display:flex; justify-content:center; gap:20px; padding:14px 20px; flex-wrap:wrap; border-bottom:1px solid var(--line); font-size:14px; }
.skip-link { position:fixed; z-index:50; top:10px; left:15px; padding:10px 15px; background:#fff; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.home-intro { display:grid; grid-template-columns:1fr 1.16fr; align-items:center; gap:64px; padding-block:66px 58px; }
.company-name { color:var(--muted); font-size:14px; margin-bottom:18px; }
.intro-copy>p:not(.company-name) { margin-top:25px; max-width:450px; font-size:17px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:11px 21px; background:var(--blue); border:1px solid var(--blue); color:#fff; font-size:14px; font-weight:600; line-height:1.5; text-decoration:none; }
.button:hover { background:#004581; border-color:#004581; color:#fff; }
.intro-copy .button { margin-top:28px; }
.service-shortcuts { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:24px; font-size:13px; }
.intro-photo img { display:block; width:100%; aspect-ratio:1.5; object-fit:cover; }
.intro-photo figcaption { color:var(--muted); margin-top:10px; font-size:11px; line-height:1.6; }
.section-title { padding-bottom:27px; border-bottom:2px solid var(--blue); }
.services { padding-top:18px; }
.service-row { display:grid; grid-template-columns:1fr 1.6fr; gap:80px; padding-block:44px; border-bottom:1px solid var(--line); scroll-margin-top:15px; }
.service-heading p { color:var(--muted); font-size:14px; margin-top:16px; }
.service-detail>p { max-width:660px; }
.service-list { margin:26px 0 23px; }
.service-list>div { display:grid; grid-template-columns:165px 1fr; gap:22px; margin-top:18px; }
.service-list dt { font-size:14px; font-weight:600; color:var(--navy); }
.service-list dd { margin:0; font-size:14px; color:var(--muted); }
.text-link { display:inline-block; font-size:14px; margin-top:21px; }
.header-inner>.text-link { margin-top:0; }
.company { display:grid; grid-template-columns:1fr 1.6fr; gap:80px; align-items:center; padding-top:6px; padding-bottom:72px; }
.company-identity img { display:block; width:132px; }
.company-copy h2 { margin-bottom:22px; }
.company-copy p { max-width:660px; }
.contact-section { background:var(--paper); border-block:1px solid var(--line); }
.inquiry-layout { display:grid; grid-template-columns:1fr 1.6fr; gap:80px; align-items:start; }
.inquiry-copy h2 { margin-bottom:23px; }
.inquiry-copy p { font-size:15px; }
.inquiry-copy .privacy-summary { font-size:13px; color:var(--muted); margin-top:27px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.form-field { margin-bottom:21px; min-width:0; }
.form-field label { display:block; font-size:13px; font-weight:600; margin-bottom:7px; }
.form-field label span { color:var(--muted); font-size:12px; font-weight:400; }
.form-field input,.form-field select,.form-field textarea { display:block; width:100%; min-height:46px; padding:10px 11px; border:1px solid #aab8c2; border-radius:0; background:#fff; color:var(--ink); font-size:16px; line-height:1.4; }
.form-field textarea { min-height:145px; resize:vertical; }
.field-help { font-size:12px; color:var(--muted); margin-top:6px; }
.consent { display:flex; align-items:flex-start; gap:10px; color:var(--muted); font-size:12px; }
.consent input { width:18px; height:18px; flex-shrink:0; margin:2px 0 0; accent-color:var(--blue); }
.form-actions { margin-top:22px; }
.form-status { margin-top:15px; font-size:14px; color:#235431; }
.form-status:empty { display:none; }
.form-status.is-error { color:#9a2424; }
.button:disabled { opacity:.65; cursor:wait; }
.site-footer { padding-block:36px 27px; }
.footer-main { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.footer-brand { width:190px; }
.footer-links { display:flex; flex-wrap:wrap; gap:24px; font-size:13px; }
.footer-links a { color:var(--muted); text-decoration:none; }
.footer-links a:hover { text-decoration:underline; }
.copyright { font-size:11px; color:var(--muted); padding-top:27px; }
.document-page { min-height:calc(100vh - 96px); padding-block:64px; }
.document-content { max-width:760px; }
.document-content h1 { font-size:2.4rem; margin-bottom:27px; }
.document-content h2 { font-size:1.4rem; margin:34px 0 12px; }
.document-content .button { margin-top:28px; }
.document-reference { margin-top:18px; font-weight:600; }
.eyebrow { font-size:13px; color:var(--muted); margin-bottom:20px; }
@media(max-width:1100px) {
  .shell { width:calc(100% - 64px); }
  .home-intro { gap:36px; }
  .service-row,.company,.inquiry-layout { gap:44px; grid-template-columns:1fr 1.5fr; }
  .service-list>div { grid-template-columns:140px 1fr; gap:18px; }
  .footer-links { gap:18px; }
}
@media(max-width:800px) {
  :root { scroll-padding-top:92px; }
  .site-header { height:78px; }
  .header-inner { width:calc(100% - 40px); gap:15px; }
  .brand { width:190px; }
  .desktop-nav { display:none; }
  .menu-toggle { display:inline-flex; }
  .shell { width:calc(100% - 48px); }
  .home-intro { grid-template-columns:1fr; gap:35px; padding-block:40px 44px; }
  .intro-copy>p:not(.company-name) { max-width:590px; }
  .intro-photo img { aspect-ratio:1.9; }
  .section { padding-block:44px; }
  .services { padding-top:5px; }
  .service-row { grid-template-columns:1fr; gap:24px; padding-block:34px; }
  .service-heading p br { display:none; }
  .company { grid-template-columns:120px 1fr; gap:32px; padding-top:0; }
  .company-identity img { width:110px; }
  .inquiry-layout { grid-template-columns:1fr; gap:30px; }
  .inquiry-copy .privacy-summary { margin-top:18px; }
  .footer-main { align-items:flex-start; flex-direction:column; gap:25px; }
  .document-page { padding-block:42px; }
}
@media(max-width:480px) {
  .shell { width:calc(100% - 40px); }
  .site-header .brand { width:160px; }
  .brand-descriptor { font-size:9px; letter-spacing:.1em; }
  .menu-toggle { padding:7px 8px; font-size:12px; }
  h1 { font-size:1.875rem; }
  h2 { font-size:1.65rem; }
  h3 { font-size:1.4rem; }
  .intro-copy>p:not(.company-name) { font-size:16px; }
  .intro-photo img { aspect-ratio:1.45; }
  .service-list>div { grid-template-columns:1fr; gap:4px; }
  .company { grid-template-columns:1fr; gap:25px; }
  .company-identity img { width:90px; }
  .form-grid { grid-template-columns:1fr; gap:0; }
  .footer-links { gap:12px 22px; }
  .document-content h1 { font-size:2rem; }
}
