:root {
  --page-surface:#fff;
  --page-soft:#eef1fa;
  --page-copy:#59677e;
  --page-caption:#68758b;
}
html[data-theme="dark"] {
  --page-surface:#1d2027;
  --page-soft:#252d3e;
  --page-copy:#b8c1d2;
  --page-caption:#a4aec2;
}
.page-breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding-top:34px; color:var(--page-caption); font-size:14px; line-height:1.6; }
.page-breadcrumbs a { padding-block:6px; }
.page-breadcrumbs a:hover { color:var(--blue); }
.page-hero { padding:49px 0 52px; border-bottom:1px solid var(--line); margin-bottom:48px; }
.page-hero .eyebrow { color:var(--page-caption); margin-bottom:20px; }
.page-title { font-size:clamp(42px,5vw,64px); line-height:1.12; letter-spacing:-2.6px; max-width:950px; }
.page-title span { color:var(--blue); }
.page-intro { font-size:18px; line-height:1.8; color:var(--page-copy); max-width:730px; margin-top:24px; }
.page-hero-with-art { display:grid; grid-template-columns:1fr 224px; align-items:center; gap:55px; }
.page-emblem { width:224px; height:224px; border:1px solid var(--line); background:var(--page-soft); border-radius:28px; display:grid; place-items:center; }
.page-emblem svg { width:156px; height:156px; stroke:none; }
.page-meta { display:flex; flex-wrap:wrap; gap:9px; margin-top:26px; font-size:14px; line-height:1.6; color:var(--page-caption); }
.error-page .page-hero { margin-bottom:0; border-bottom:0; padding-top:72px; padding-bottom:30px; }
.error-page .page-title { font-size:clamp(42px,6vw,78px); max-width:850px; }
.error-page .eyebrow { color:var(--blue); }
.error-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; padding-bottom:90px; }
.error-actions .text-link { font-size:16px; }
.page-main a:not(.button):hover { color:var(--blue); }
.page-main a[aria-current="page"] { color:var(--blue); }
.page-story { display:grid; grid-template-columns:.85fr 1.2fr; gap:80px; padding-block:8px 20px; }
.page-story .eyebrow { color:var(--page-caption); margin-bottom:20px; }
.page-story h2,.page-section-heading h2,.page-callout h2 { font-size:36px; letter-spacing:-1.3px; line-height:1.25; }
.page-prose p,.page-card p,.portfolio-item p,.page-callout p,.contact-address-card p,.page-note p { font-size:17px; line-height:1.8; color:var(--page-copy); }
.page-prose p+p { margin-top:18px; }
.page-section { padding-top:68px; }
.page-section-heading { margin-bottom:28px; }
.page-section-heading .eyebrow { margin-bottom:17px; color:var(--page-caption); }
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.page-card { border:1px solid var(--line); border-radius:12px; background:var(--page-surface); padding:29px; }
.page-number { display:block; font-size:14px; color:var(--page-caption); letter-spacing:.4px; margin-bottom:28px; }
.page-card h3 { font-size:22px; line-height:1.4; letter-spacing:-.6px; margin-bottom:14px; }
.page-card p { margin-bottom:0; }
.page-card .text-link,.page-inline-links { margin-top:25px; font-size:15px; color:var(--blue); }
.page-inline-links { display:flex; gap:12px 23px; flex-wrap:wrap; line-height:1.7; }
.portfolio-list { border:1px solid var(--line); border-radius:12px; background:var(--page-surface); overflow:hidden; }
.portfolio-item { display:grid; grid-template-columns:minmax(0,1fr) auto max-content; gap:25px; padding:29px; align-items:center; }
.portfolio-item+.portfolio-item { border-top:1px solid var(--line); }
.portfolio-item h3 { font-size:24px; line-height:1.4; letter-spacing:-.6px; }
.portfolio-item p { margin-top:8px; max-width:520px; }
.portfolio-item .text-link { color:var(--blue); justify-self:end; white-space:nowrap; gap:12px; }
.portfolio-item .text-link .icon { flex-shrink:0; }
.portfolio-item .status { font-size:14px; }
.page-callout { display:flex; gap:30px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-top:64px; padding:38px; border:1px solid var(--line); border-radius:12px; background:var(--page-soft); }
.page-callout p { margin-top:16px; }
.contact-address-card { display:flex; align-items:center; justify-content:space-between; gap:30px; border:1px solid var(--line); border-radius:16px; background:var(--page-soft); padding:38px; }
.contact-address-card .eyebrow { color:var(--page-caption); }
.contact-address { display:flex; gap:25px; align-items:center; font-family:var(--heading); font-size:clamp(25px,3vw,38px); font-weight:650; letter-spacing:-1px; line-height:1.5; margin:16px 0 11px; }
.contact-address>span { color:var(--blue); }
.contact-mail-icon { flex-shrink:0; width:78px; height:78px; color:var(--blue); }
.contact-topic-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-form-layout { display:grid; grid-template-columns:.75fr 1.25fr; align-items:start; gap:60px; scroll-margin-top:120px; }
.contact-form-intro .eyebrow { color:var(--page-caption); margin-bottom:20px; }
.contact-form-intro h2 { font-size:34px; letter-spacing:-1px; line-height:1.3; }
.contact-form-intro>p { font-size:17px; line-height:1.85; color:var(--page-copy); margin-top:20px; }
.contact-direct { margin-top:30px; padding-top:26px; border-top:1px solid var(--line); }
.contact-direct>span { display:block; font-size:14px; color:var(--page-caption); margin-bottom:10px; }
.contact-direct>a { font-size:21px; font-weight:600; letter-spacing:-.4px; }
.contact-direct>a>span { color:var(--blue); padding-left:8px; }
.contact-form-intro .contact-form-safety { font-size:14px; line-height:1.8; margin-top:26px; }
.contact-form { position:relative; display:grid; gap:23px; min-width:0; padding:34px; background:var(--page-surface); border:1px solid var(--line); border-radius:14px; }
.contact-form-heading { margin-bottom:3px; }
.contact-form-heading h3 { font-size:24px; letter-spacing:-.6px; line-height:1.4; }
.contact-form-heading p { font-size:14px; color:var(--page-caption); margin-top:9px; }
.contact-field-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-field { display:grid; gap:9px; min-width:0; }
.contact-field label { font-size:15px; line-height:1.5; font-weight:500; color:var(--ink); }
.contact-field input,.contact-field textarea { width:100%; min-width:0; padding:13px 14px; border:1px solid #cbd2e1; background:var(--paper); color:var(--ink); border-radius:7px; font-family:var(--font); font-size:16px; line-height:1.65; }
.contact-field textarea { resize:vertical; min-height:180px; }
.contact-field input::placeholder,.contact-field textarea::placeholder { color:var(--page-caption); opacity:1; }
.contact-field input:focus,.contact-field textarea:focus { outline:3px solid #8395ed55; outline-offset:1px; border-color:var(--blue); }
.contact-field [aria-invalid="true"] { border-color:#b74a4a; }
.contact-field-help { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; font-size:14px; line-height:1.6; color:var(--page-caption); }
.contact-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.contact-form-privacy { font-size:14px; line-height:1.8; color:var(--page-copy); }
.contact-form-privacy a,.contact-availability a { text-decoration:underline; text-underline-offset:3px; }
.contact-availability { padding:13px 15px; border-radius:7px; border:1px solid var(--line); background:var(--page-soft); color:var(--page-copy); font-size:14px; line-height:1.8; }
.contact-form-actions { display:grid; justify-items:start; gap:18px; }
.contact-form-actions .button { font-size:15px; min-height:47px; }
.contact-form-actions .button:disabled { opacity:.5; cursor:not-allowed; transform:none; box-shadow:none; }
.contact-form-result { font-size:15px; line-height:1.8; color:#3d7356; }
.contact-form-result.is-error { color:#a73737; }
html[data-theme="dark"] .contact-field input,html[data-theme="dark"] .contact-field textarea { border-color:#4e5b74; }
html[data-theme="dark"] .contact-form-result { color:#a6d5b9; }
html[data-theme="dark"] .contact-form-result.is-error { color:#ffb0ad; }
.page-note { display:flex; align-items:flex-start; gap:16px; border-top:1px solid var(--line); margin-top:40px; padding-top:26px; }
.page-note>.icon { margin-top:5px; color:var(--blue); }
.policy-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:50px; align-items:start; }
.page-toc { position:sticky; top:120px; }
.page-toc h2 { font-family:var(--font); font-size:15px; font-weight:600; letter-spacing:0; line-height:1.5; margin-bottom:15px; }
.page-toc ul { list-style:none; padding:0; margin:0; }
.page-toc a { display:block; padding:10px 0; font-size:14px; line-height:1.65; color:var(--page-caption); }
.policy-document { min-width:0; background:var(--page-surface); border:1px solid var(--line); border-radius:12px; padding:38px 42px; }
.policy-section { scroll-margin-top:120px; }
.policy-section+.policy-section { border-top:1px solid var(--line); margin-top:34px; padding-top:34px; }
.policy-section h2 { font-size:25px; line-height:1.4; letter-spacing:-.6px; margin-bottom:17px; }
.policy-section p,.policy-section li { font-size:17px; line-height:1.85; color:var(--page-copy); }
.policy-section p+p,.policy-section p+ul,.policy-section ul+p { margin-top:16px; }
.policy-section ul { padding-left:22px; margin-bottom:0; }
.policy-section li+li { margin-top:12px; }
.policy-section strong { color:var(--ink); font-weight:600; }
.policy-section a,.page-inline-links a { text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--line); overflow-wrap:anywhere; }
.policy-section a:hover,.page-inline-links a:hover { text-decoration-color:var(--blue); }
.policy-section code { font-size:15px; background:var(--page-soft); border-radius:4px; padding:2px 5px; overflow-wrap:anywhere; }
.inner-page .site-footer { margin-top:80px; padding-top:48px; border-top:1px solid var(--line); }
.footer-links a[aria-current="page"],.desktop-nav a[aria-current="page"],.mobile-nav a[aria-current="page"],.header-contact[aria-current="page"] { color:var(--blue); }
@media(max-width:1000px) {
  .contact-form-layout { gap:30px; }
  .contact-form { padding:27px; }
  .contact-field-row { grid-template-columns:1fr; }
  .page-hero-with-art { grid-template-columns:1fr 170px; gap:30px; }
  .page-emblem { width:170px; height:170px; }
  .page-emblem svg { width:120px; height:120px; }
  .page-story { gap:40px; }
  .value-grid { gap:16px; }
  .page-card { padding:24px; }
  .portfolio-item { grid-template-columns:1fr auto; gap:16px 25px; }
  .portfolio-item>div { grid-row:1 / 3; }
  .policy-layout { grid-template-columns:180px minmax(0,1fr); gap:30px; }
  .policy-document { padding:30px; }
}
@media(max-width:850px) {
  .contact-form-layout { grid-template-columns:1fr; gap:30px; }
  .value-grid { grid-template-columns:1fr; }
  .page-number { margin-bottom:16px; }
  .page-story { grid-template-columns:1fr; gap:27px; }
  .policy-layout { grid-template-columns:1fr; gap:28px; }
  .page-toc { position:static; padding:22px 25px; border:1px solid var(--line); border-radius:10px; }
  .page-toc ul { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }
  .page-toc h2 { margin-bottom:8px; }
}
@media(max-width:650px) {
  .contact-form { padding:25px 20px; gap:21px; }
  .contact-form-intro h2 { font-size:31px; }
  .contact-field-row { gap:21px; }
  .page-breadcrumbs { padding-top:25px; gap:9px; }
  .page-hero { padding:32px 0 34px; margin-bottom:32px; }
  .page-title { font-size:42px; letter-spacing:-1.8px; }
  .page-intro { font-size:17px; margin-top:20px; }
  .page-hero-with-art { grid-template-columns:1fr; }
  .page-emblem { display:none; }
  .page-meta { margin-top:21px; gap:6px 9px; }
  .page-story h2,.page-section-heading h2,.page-callout h2 { font-size:31px; letter-spacing:-1px; }
  .page-section { padding-top:44px; }
  .page-card { padding:24px; }
  .page-card h3 { font-size:21px; }
  .portfolio-item { grid-template-columns:1fr; padding:24px; gap:16px; justify-items:start; }
  .portfolio-item>div { grid-row:auto; }
  .portfolio-item .text-link { justify-self:start; }
  .page-callout { margin-top:44px; padding:28px 24px; }
  .contact-address-card { padding:27px 22px; }
  .contact-address { font-size:25px; gap:12px; letter-spacing:-.8px; }
  .contact-mail-icon { display:none; }
  .contact-topic-grid { grid-template-columns:1fr; gap:20px; }
  .page-toc { padding:20px; }
  .page-toc ul { gap:0 18px; }
  .policy-document { padding:27px 23px; }
  .policy-section h2 { font-size:23px; }
  .policy-section+.policy-section { margin-top:28px; padding-top:28px; }
  .inner-page .site-footer { margin-top:54px; padding-top:35px; }
}
@media(max-width:360px) {
  .page-title { font-size:36px; letter-spacing:-1.4px; }
  .contact-address { font-size:23px; gap:8px; }
  .policy-document { padding:24px 19px; }
  .page-toc ul { grid-template-columns:1fr; }
}
