/* ── Site shell: header, buttons, footer. Ported verbatim from index.html (V4b homepage). ── */
/* ── OrintUp tokens (ClaudeGlobal/BRAND-KIT.md + OrintUp-Design-System/tokens) ── */
:root{
  --navy:#1B2A6B; --sky:#29ABE2; --sky-hover:#1E96CD; --sky-deep:#1E92C4;
  --steel:#58595B; --muted:#6B7A99; --muted-2:#8A93A6; --white:#FFFFFF;
  --light-bg:#F4F7FB; --tint:#EEF4FB;
  --border:#DDE4EF; --border-soft:#E3E9F2; --border-faint:#EDF1F7; --border-hover:rgba(41,171,226,0.40);
  --sky-glow:rgba(41,171,226,0.18); --sky-chip:rgba(41,171,226,0.12); --dot:rgba(27,42,107,0.07);
  --grad-underline:linear-gradient(90deg,var(--sky),rgba(41,171,226,0.2));
  --shadow-card:0 8px 32px rgba(27,42,107,0.10);
  --shadow-cta:0 4px 16px rgba(41,171,226,0.30); --shadow-cta-hi:0 8px 24px rgba(41,171,226,0.40);
  --ease-decel:cubic-bezier(0.22,1,0.36,1); --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --font-sans:'DM Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans);background:var(--white);color:var(--navy);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--sky);text-decoration:none}
a:hover{color:var(--sky-hover)}
img{max-width:100%}
/* ── Header ── */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.92);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--border)}
.site-header-inner{max-width:1140px;margin:0 auto;padding:10px 48px;display:flex;align-items:center;gap:32px;flex-wrap:wrap}
.site-header-brand img{display:block;height:64px;width:auto}
.site-nav{display:flex;gap:28px;margin-left:8px;flex-wrap:wrap}
.site-nav-link{font-size:14px;font-weight:500;color:var(--steel);letter-spacing:-0.1px}
.site-nav-link:hover{color:var(--navy)}
.site-header-actions{margin-left:auto}
.nav-toggle{display:none}
/* ── Buttons ── */
.btn{display:inline-block;border-radius:8px;font-weight:700;text-decoration:none;border:none;cursor:pointer;white-space:nowrap;font-family:inherit;transition:background .2s,color .2s,transform .18s var(--ease-spring),box-shadow .2s,border-color .2s}
.btn-primary{background:var(--sky);color:var(--white);font-size:16px;padding:16px 32px;box-shadow:var(--shadow-cta)}
.btn-primary:hover{background:var(--sky-hover);color:var(--white);transform:translateY(-2px);box-shadow:var(--shadow-cta-hi)}
.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-cta)}
.btn-primary:focus-visible,.btn-ghost:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
.btn-ghost{background:var(--white);color:var(--navy);padding:15px 28px;border:1px solid var(--border);font-size:16px}
.btn-ghost:hover{border-color:var(--border-hover);color:var(--sky);transform:translateY(-2px)}
.btn-sm{padding:10px 18px;font-size:14px}
/* ── Footer ── */
/* ── Footer: ported verbatim from v3b-layered page.css (.foot, .foot__grid, .foot__tag, .foot h3, .foot ul, .foot a, .foot__legal) ── */
.foot{position:relative;z-index:3;background:var(--navy);color:#fff;padding:56px 0 28px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);margin-top:96px}
.foot__wrap{width:100%;max-width:1140px;margin-inline:auto;padding-inline:48px;box-sizing:border-box}
.foot__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.foot__logo{display:block;height:64px;width:auto;margin-bottom:18px}
.foot__tag{font:700 20px/1.3 var(--font-sans);letter-spacing:-.3px}
.foot__sky{color:var(--sky)}
.foot__small{font-size:15px;line-height:1.6;color:#93A3CC;margin-top:10px;max-width:44ch}
.foot h3{font:700 12px/1 var(--font-sans);letter-spacing:1.4px;text-transform:uppercase;color:#93A3CC}
.foot ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px;font-size:15px;color:#C9D3EA}
.foot a{color:#C9D3EA;text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot__legal{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;color:#93A3CC}
.foot__legal a{color:#93A3CC}
.site-social{display:flex;gap:8px;margin-top:18px}
.site-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;color:#C9D3EA;border:1px solid rgba(255,255,255,.14);transition:color .2s,border-color .2s}
.site-social a:hover{color:#fff;border-color:rgba(255,255,255,.4);text-decoration:none}
@media (max-width:860px){
  /* Phone header: logo, Book a Call, and a menu button on one row; links open in a panel below (Concept A phone wireframe) */
  .site-header-inner{flex-wrap:nowrap;gap:12px}
  .site-header-actions{margin-left:auto}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border-radius:8px;border:1px solid var(--border);background:var(--white);color:var(--navy);cursor:pointer;padding:0}
  .nav-toggle:hover{border-color:var(--border-hover)}
  .nav-toggle .nav-toggle-close{display:none}
  .site-header.is-open .nav-toggle .nav-toggle-open{display:none}
  .site-header.is-open .nav-toggle .nav-toggle-close{display:block}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;margin:0;padding:8px 20px 12px;background:var(--white);border-bottom:1px solid var(--border);box-shadow:0 12px 32px rgba(27,42,107,.10)}
  .site-header.is-open .site-nav{display:flex}
  .site-nav-link{font-size:17px;font-weight:600;color:var(--navy);padding:14px 0;border-bottom:1px solid var(--border-faint)}
  .site-nav-link:last-child{border-bottom:none}
  .foot__grid{grid-template-columns:1fr;gap:28px}
}
@media (max-width:600px){
  .foot__wrap{padding-inline:20px}
  .foot{margin-top:56px}
  .site-header-inner{padding:12px 20px}
}
@media (prefers-reduced-motion:reduce){.btn{transition:none !important}}

/* ── Page wrapper: the dot-grid signature (shared by every page) ── */
.page{max-width:1140px;margin:0 auto;padding:0 48px 120px;background-image:radial-gradient(circle,var(--dot) 1px,transparent 1px);background-size:28px 28px;background-position:14px 14px}

/* Phone: the wrapper narrows once, here, for every page */
@media (max-width:600px){.page{padding:28px 20px 80px}}
