*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
section[id]{scroll-margin-top:calc(72px + var(--subnav-height) + 8px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--canvas);color:var(--text-body);font:var(--type-body);letter-spacing:var(--track-body);overflow-x:hidden}
h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}
img{max-width:100%}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-pressed);text-decoration:underline}
a.plain,a.plain:hover{text-decoration:none}
::selection{background:var(--accent-wash)}
.wrap{max-width:var(--content-max);margin:0 auto;width:100%}
.prose{max-width:var(--content-max-prose)}

/* ---------- top bar ---------- */
.topbar{position:sticky;top:0;z-index:40;background:var(--surface-void);color:var(--text-on-dark);min-height:72px}
.topbar-in{max-width:var(--content-max);margin:0 auto;padding:0 22px;min-height:72px;display:flex;align-items:center;gap:26px}
.bm-name{font-size:17px}
.brandmark{display:flex;align-items:baseline;gap:8px;color:var(--text-on-dark);margin-right:6px}
.brandmark:hover{color:var(--text-on-dark);text-decoration:none}
.bm-name{font:var(--weight-semibold) 13px/1 var(--font-display);letter-spacing:.02em}
.bm-sub{font:var(--type-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--text-on-dark-muted)}
.topnav{display:flex;gap:22px;flex:1}
.topnav a{font:var(--type-button);letter-spacing:var(--track-caption);color:var(--text-on-dark);opacity:.82}
.topnav a:hover{opacity:1;text-decoration:none}
.topnav a[aria-current="page"]{opacity:1;box-shadow:inset 0 -1px 0 var(--accent-on-dark);padding-bottom:2px}
.topbar-actions{display:flex;align-items:center;gap:12px;margin-left:auto}
.hamburger{display:none;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);margin-right:-11px;background:none;border:none;color:var(--text-on-dark);cursor:pointer;transition:transform var(--duration-press) var(--ease-standard)}
.hamburger:active{transform:scale(var(--press-scale))}
.menu-panel{position:fixed;inset:72px 0 0;z-index:39;background:var(--canvas);padding:24px 20px 40px;display:flex;flex-direction:column;gap:var(--space-lg);overflow-y:auto}
.menu-panel nav{display:flex;flex-direction:column}
.menu-panel nav a{font:var(--type-lead);letter-spacing:var(--track-display-md);color:var(--text-heading);padding:14px 0;box-shadow:inset 0 -1px 0 var(--border-card)}
.menu-panel nav a:hover{text-decoration:none}
.menu-panel nav a[aria-current="page"]{color:var(--accent)}
.menu-actions{display:flex;flex-direction:column;gap:var(--space-sm)}
.menu-meta{display:flex;flex-direction:column;gap:4px;font:var(--type-caption);color:var(--text-muted)}

/* ---------- sub nav ---------- */
.subnav{position:sticky;top:72px;z-index:30;background:color-mix(in srgb,var(--canvas-alt) 88%,transparent);backdrop-filter:var(--blur-frosted);-webkit-backdrop-filter:var(--blur-frosted);box-shadow:inset 0 -1px 0 var(--border-card)}
.subnav-in{max-width:var(--content-max);margin:0 auto;padding:0 22px;min-height:var(--subnav-height);display:flex;align-items:center;gap:24px}
.subnav-title{font:var(--type-tagline);letter-spacing:var(--track-display-md);color:var(--text-heading);white-space:nowrap}
.subnav-links{display:flex;gap:20px;flex:1;justify-content:flex-end;overflow-x:auto;scrollbar-width:none}
.subnav-links::-webkit-scrollbar{display:none}
.subnav-links a{font:var(--type-button);letter-spacing:var(--track-caption);color:var(--text-body);white-space:nowrap;padding:16px 0}
.subnav-links a:hover{text-decoration:none;color:var(--accent)}

/* ---------- sections ---------- */
.tile{padding:var(--tile-padding-y) 22px}
.tile-compact{padding:var(--tile-padding-y-compact) 22px}
.paper{background:var(--canvas);color:var(--text-body)}
.linen{background:var(--canvas-alt);color:var(--text-body)}
.dark{background:var(--surface-tile-1);color:var(--text-on-dark)}
.dark-2{background:var(--surface-tile-2);color:var(--text-on-dark)}
.dark-3{background:var(--surface-tile-3);color:var(--text-on-dark)}
.eyebrow{font:var(--type-caption-strong);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.dark .eyebrow,.dark-2 .eyebrow,.dark-3 .eyebrow{color:var(--accent-on-dark)}
.h-hero{font:var(--type-hero);letter-spacing:var(--track-hero);text-wrap:balance}
.h-lg{font:var(--type-display-lg);letter-spacing:var(--track-display);color:var(--text-heading);text-wrap:balance}
.h-md{font:var(--type-display-md);letter-spacing:var(--track-display-md);color:var(--text-heading);text-wrap:balance}
.dark .h-lg,.dark .h-md,.dark-2 .h-lg,.dark-2 .h-md,.dark-3 .h-lg,.dark-3 .h-md{color:var(--text-on-dark)}
.lead{font:var(--type-lead);letter-spacing:var(--track-none);color:var(--text-muted);text-wrap:pretty;max-width:46ch}
.lead-airy{font:var(--type-lead-airy);color:var(--text-muted);text-wrap:pretty;max-width:52ch}
.dark .lead,.dark-2 .lead,.dark-3 .lead,.dark .lead-airy,.dark-2 .lead-airy,.dark-3 .lead-airy{color:var(--text-on-dark-muted)}
.body{font:var(--type-body);letter-spacing:var(--track-body);color:var(--text-body);text-wrap:pretty}
.dark .body,.dark-2 .body,.dark-3 .body{color:var(--text-on-dark-muted)}
.muted{color:var(--text-muted)}
.caption{font:var(--type-caption);letter-spacing:var(--track-caption);color:var(--text-disabled)}
.fine{font:var(--type-fine);letter-spacing:var(--track-caption);color:var(--text-disabled)}
.sec-head{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xxl)}
.sec-head.center{align-items:center;text-align:center}
.sec-head.center .lead{margin:0 auto}
.actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:var(--space-md)}
.stack-lg{display:flex;flex-direction:column;gap:var(--space-lg)}

/* ---------- grids ---------- */
.grid{display:grid;gap:var(--grid-gutter);grid-template-columns:1fr}
.split{display:grid;gap:var(--space-xxl);grid-template-columns:1fr;align-items:center}
.card{background:var(--canvas);border:1px solid var(--border-card);border-radius:var(--radius-lg);padding:var(--card-padding);display:flex;flex-direction:column;gap:var(--space-sm)}
.linen .card{background:var(--canvas)}
.dark .card,.dark-2 .card,.dark-3 .card{background:var(--surface-tile-2);border-color:var(--border-on-dark);color:var(--text-on-dark)}
.dark-2 .card{background:var(--surface-tile-3)}
.card h3{font:var(--type-body-strong);letter-spacing:var(--track-body);color:var(--text-heading)}
.dark .card h3,.dark-2 .card h3,.dark-3 .card h3{color:var(--text-on-dark)}
.card .card-title{font:var(--type-tagline);letter-spacing:var(--track-display-md);color:var(--text-heading)}
.dark .card .card-title,.dark-2 .card .card-title,.dark-3 .card .card-title{color:var(--text-on-dark)}
.card-media{margin:calc(var(--card-padding)*-1) calc(var(--card-padding)*-1) 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden}
.icon-line{display:flex;align-items:center;gap:10px;color:var(--accent)}
.pax{display:flex;flex-wrap:wrap;gap:20px;padding:10px 0;box-shadow:inset 0 -1px 0 var(--border-card),inset 0 1px 0 var(--border-card);font:var(--type-caption);letter-spacing:var(--track-caption)}
.pax .icon-line{gap:8px;color:var(--text-muted)}
.pax .icon-line svg{color:var(--accent)}
.dark .icon-line,.dark-2 .icon-line,.dark-3 .icon-line{color:var(--accent-on-dark)}
.spec{display:flex;justify-content:space-between;gap:12px;padding:8px 0;box-shadow:inset 0 -1px 0 var(--border-card);font:var(--type-caption);letter-spacing:var(--track-caption)}
.dark .spec,.dark-2 .spec,.dark-3 .spec{box-shadow:inset 0 -1px 0 var(--border-on-dark)}
.spec dt{color:var(--text-disabled);white-space:nowrap}
.spec dd{color:var(--text-body);margin:0;text-align:right}
.dark .spec dd,.dark-2 .spec dd,.dark-3 .spec dd{color:var(--text-on-dark)}
.tbd{color:var(--text-disabled);font-style:normal}
.tag{align-self:flex-start;font:var(--type-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--text-disabled);border:1px solid var(--border-card);border-radius:var(--radius-xs);padding:4px 8px}
.dark .tag,.dark-2 .tag,.dark-3 .tag{color:var(--text-on-dark-muted);border-color:var(--border-on-dark)}
.rule{height:1px;background:var(--border-card);border:0;margin:0}
.dark .rule,.dark-2 .rule,.dark-3 .rule{background:var(--border-on-dark)}
.num{font:var(--type-display-md);letter-spacing:var(--track-display-md);color:var(--accent)}
.dark .num,.dark-2 .num,.dark-3 .num{color:var(--accent-on-dark)}

/* ---------- hero ---------- */
.hero{background:var(--surface-tile-1);color:var(--text-on-dark);padding:var(--space-xxl) 22px var(--space-section)}
.hero-in{max-width:var(--content-max);margin:0 auto;display:grid;gap:var(--space-xl);grid-template-columns:1fr;align-items:center}
.hero h1{color:var(--text-on-dark)}
.hero-copy{display:flex;flex-direction:column;gap:var(--space-md);max-width:none}
.hero-copy .lead{max-width:40ch}
.hero-copy .actions{margin-top:var(--space-sm)}
.hero-media{border-radius:var(--radius-lg);overflow:hidden}
.page-hero{padding:var(--space-xxl) 22px}
.page-hero .wrap{display:flex;flex-direction:column;gap:var(--space-md)}

/* ---------- footer ---------- */
.foot{background:var(--canvas-alt);color:var(--text-muted);padding:64px 22px 40px}
.foot-grid{display:grid;gap:var(--space-xl);grid-template-columns:1fr}
.foot h4{font:var(--type-caption-strong);letter-spacing:var(--track-caption);color:var(--text-heading);margin-bottom:4px}
.foot ul{list-style:none;padding:0}
.foot li{font:var(--type-dense-link);font-size:var(--size-caption)}
.foot li a,.foot address a{color:var(--text-muted)}
.foot address{font-style:normal;font:var(--type-dense-link);font-size:var(--size-caption)}
.foot-bottom{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--border-card);display:flex;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}

/* ---------- mobile sticky bar ---------- */
.mobilebar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:35;height:64px;align-items:center;gap:12px;padding:0 16px;background:color-mix(in srgb,var(--canvas-alt) 88%,transparent);backdrop-filter:var(--blur-frosted);-webkit-backdrop-filter:var(--blur-frosted);box-shadow:inset 0 1px 0 var(--border-card)}
.mobilebar>*{flex:1}

/* ---------- floating contact ---------- */
.floaters{position:fixed;right:20px;bottom:24px;z-index:36;display:flex;flex-direction:column;gap:12px}
.floater{width:52px;height:52px;border-radius:var(--radius-full);display:grid;place-items:center;color:var(--ink-000);transition:transform var(--duration-press) var(--ease-standard)}
.floater:hover{color:var(--ink-000);text-decoration:none}
.floater:active{transform:scale(var(--press-scale))}
.floater-wa{background:var(--accent)}
.floater-call{background:var(--surface-raised);color:var(--text-heading);border:1px solid var(--border-card)}
.floater-call:hover{color:var(--text-heading)}

/* ---------- motion ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity var(--duration-reveal) var(--ease-standard),transform var(--duration-reveal) var(--ease-standard)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- breakpoints ---------- */
@media (min-width:641px){.grid.g2,.grid.g3,.grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:834px){
  .grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .split{grid-template-columns:1fr 1fr;gap:var(--space-section)}
  .split.media-first>*:first-child{order:0}
  .hero-in{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:var(--space-section);padding:var(--space-xl) 0}
  .foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr}
}
@media (max-width:833px){
  .split>*{order:0!important}
  .topnav{display:none}
  .hamburger{display:inline-flex}
  .hide-sm{display:none}
  body{padding-bottom:64px}
  .mobilebar{display:flex}
  .floaters{bottom:76px;right:16px}
  .floater{width:48px;height:48px}
}
@media (max-width:1068px){.h-hero{font-size:40px}}
@media (max-width:833px){.hero-copy .lead{max-width:46ch}}
@media (max-width:735px){
  .tile{padding:var(--tile-padding-y-compact) 20px}
  .tile-compact{padding:var(--space-xl) 20px}
  .hero{padding:var(--space-xl) 20px var(--tile-padding-y-compact)}
  .sec-head{margin-bottom:var(--space-xl)}
  .h-hero{font-size:34px}
  .h-lg{font-size:30px}
  .h-md{font-size:26px}
  .lead{font-size:20px}
  .lead-airy{font-size:20px}
  .subnav-title{font-size:17px}
}
@media (max-width:419px){.h-hero{font-size:28px}.h-lg{font-size:26px}}
