/* Common page geometry. Breakpoints are shared with tokens.css. */
.wrap{width:100%;max-width:calc(var(--container-width) + 2 * var(--page-gutter));margin-inline:auto;padding-inline:var(--page-gutter)}
section[id],main[id]{scroll-margin-top:var(--anchor-offset)}
.sec{padding-block:var(--section-padding)}
.sec-tight{padding-block:calc(var(--section-padding) - var(--space-1))}
.site-header{--text-feature:var(--text-feature-default);position:sticky;top:0;z-index:1000;background:var(--paper);color:var(--text-body-default);border-bottom:var(--border-width) solid var(--line)}
.site-header.is-stuck{box-shadow:var(--shadow-subtle)}
.header-row{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--space-3);height:auto;min-height:calc(var(--header-height) - var(--border-width));padding-inline:var(--page-gutter)}
.brand-lockup{display:inline-flex;flex-direction:row;align-items:flex-end;gap:12px;color:inherit;text-decoration:none;white-space:nowrap;flex:0 1 auto;min-width:0;align-self:center;position:static;margin:0;transform:none}
.brand-lockup:is(:hover,:focus,:focus-visible,:active,:visited){color:inherit;text-decoration:none;transform:none}
.brand-logo{display:block;width:var(--header-logo-width);height:auto;flex:0 0 auto}
.main-nav{display:flex;gap:4px;margin-left:auto}
.main-nav a{padding:var(--space-1) 12px;border-radius:6px;color:var(--text-feature);font-size:15px;font-weight:500;text-decoration:none;white-space:nowrap}
.main-nav a:hover{background:var(--tint);color:var(--blue-dark)}
.region-selector{position:relative;flex:none}
.region-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:var(--radius);background:transparent;color:var(--text-feature-default);cursor:pointer}
.region-toggle .control-icon{width:16px;height:16px}
.region-toggle:hover,.region-toggle:focus-visible,.region-toggle[aria-expanded="true"]{background:var(--tint);color:var(--blue)}
.region-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:1100;min-width:128px;width:max-content;padding:4px;border:var(--border-width) solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-subtle)}
.region-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:8px;border-radius:6px;color:var(--text-feature-default);font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap}
.region-option:hover,.region-option:focus-visible{background:var(--tint);color:var(--blue)}
.region-current{color:var(--blue)}
.region-divider{height:var(--border-width);margin:4px 8px;background:var(--line)}
.header-contact-link{width:151.890625px}
.nav-toggle{display:none;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:48px;height:48px;padding:0;border:0;background:transparent;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--head)}
.hero{padding-block:var(--hero-padding)}
.hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap)}
.hero-grid{align-items:start}
.hero-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:var(--hero-text-gap)}
.hero-heading{max-width:100%;font-size:35px;font-weight:600;line-height:1.1;letter-spacing:-.02em;color:var(--blue)}
.hero-heading-prefix{display:inline-block;max-width:100%}
.hero-text .lead,.hero-text .lede{max-width:50ch;font-size:var(--type-hero-copy);line-height:1.6}
.hero-visual{min-width:0}
.row-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.row-text h3{margin-bottom:var(--heading-body-gap)}
.row-text p{max-width:480px}
.contact-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--grid-gap);align-items:start}
.contact-info{display:flex;flex-direction:column;min-width:0;gap:var(--space-2)}
.contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-content:start;min-width:0}
.field.wide,.submit,.form-note,.form-privacy{grid-column:1/-1}
.submit{justify-self:start}
.site-footer{padding-block:24px;border-top:var(--border-width) solid var(--line);background:var(--paper);color:var(--text-body-default)}
.footer-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.footer-brand{flex:1;min-width:0}
.footer-brand p{max-width:440px;color:var(--head);font-size:var(--type-small);line-height:1.5}
.footer-credit{display:flex;align-items:center;gap:var(--space-1);margin-top:14px;color:var(--text-muted);font-size:12px;line-height:1.5}
.footer-credit img{width:24px;height:24px;flex:none;object-fit:contain}
.footer-links{display:flex;align-items:center;flex:none;gap:var(--space-3)}
.footer-links a{display:inline-flex;align-items:center;min-height:24px;color:var(--head);font-size:var(--type-small);text-decoration:none}
.footer-links a:hover{color:var(--blue);text-decoration:underline}
/* Reading-page compatibility while its legal copy stays untouched. */
.policy-copy h1{margin-bottom:var(--space-2)}
.policy-date{margin-bottom:var(--space-5)}
.policy-copy section+section{margin-top:var(--space-5)}
.policy-copy h2{font-size:24px;margin-bottom:var(--space-2)}
.policy-copy p,.policy-copy li{line-height:1.8;overflow-wrap:anywhere}
.policy-copy p+p,.policy-copy p+ul,.policy-copy ul+p{margin-top:var(--space-2)}
.policy-copy ul{margin:0;padding-left:var(--space-3)}
.policy-copy li+li{margin-top:var(--space-1)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4)}
.foot-brand img{width:80px;margin-bottom:var(--space-1)}
.foot-col{display:flex;flex-direction:column;gap:var(--space-1)}
@media(min-width:1180px){.hero-heading{white-space:nowrap}}
@media(max-width:1179px){
  .hero-grid{grid-template-columns:1fr;gap:var(--space-4)}
  .hero-visual.image-frame{width:min(100%,528px);max-width:528px;justify-self:center}
}
@media(max-width:1024px){.hero-heading{font-size:34px}}
@media(max-width:1100px){
  .header-row{gap:var(--space-2)}
  .main-nav{gap:0}
  .main-nav a{padding-inline:8px}
}
@media(max-width:900px){
  .header-row{gap:var(--space-1)}
  .header-row>.btn-sm{margin-left:auto}
  .region-selector{margin-left:auto}
  .region-selector + .header-contact-link{margin-left:0}
  .site-page .header-contact-link{width:auto;min-width:var(--touch-target-min);min-height:var(--touch-target-min);
    padding-inline:var(--space-1);flex:none;white-space:nowrap}
  .nav-toggle{display:flex;margin-left:auto}
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;margin:0;padding:var(--space-1) var(--page-gutter);
    background:var(--paper);border-bottom:var(--border-width) solid var(--line);box-shadow:var(--shadow-subtle);max-height:calc(100dvh - var(--header-height));overflow-y:auto}
  .main-nav.is-open{display:flex}
  .main-nav a{padding:var(--space-2) 0;border-radius:0;border-bottom:var(--border-width) solid var(--line);font-size:16px}
  .main-nav a:last-child{border-bottom:0}
  .contact-grid{grid-template-columns:1fr;gap:var(--space-4)}
  .footer-row{flex-direction:column;align-items:flex-start;gap:var(--space-2)}
  .footer-brand{flex:none;width:100%}
  .footer-links{flex-direction:column;align-items:flex-start;gap:4px}
  .footer-links a{min-height:32px}
}
@media(max-width:767px){
  .hero-heading{font-size:clamp(24px,7.8vw,34px)}
  .contact-form{grid-template-columns:1fr}
  .site-footer{padding-block:24px}
  .site-page .site-footer{padding-block:var(--space-2)}
  .site-page .footer-row{gap:var(--space-1)}
  .site-page .footer-credit{margin-top:var(--space-1)}
  .site-page .footer-links{flex-direction:row;flex-wrap:wrap;gap:0 var(--space-2)}
  .site-page .footer-links a{min-height:var(--touch-target-min)}
  .foot-grid{grid-template-columns:1fr}
}