/* ==========================================================================
   M365 Health Score — shared site stylesheet
   Extracted from the homepage design system (index.html) so every SEO/landing
   page shares one source of truth. Light-only, matching the existing brand
   identity. Homepage-specific widgets (hero ledger, security panel) stay inline
   in index.html; this file carries the tokens + components new pages reuse,
   plus a few components those pages introduce (breadcrumb, prose, callouts,
   comparison/check tables, answer blocks, CTA band).
   ========================================================================== */

:root{
  --paper:#F3F6FA;
  --paper-raised:#FFFFFF;
  --ink:#16191F;
  --ink-soft:#5B6270;
  --blue:#185ABD;
  --blue-deep:#0F3D75;
  --teal:#038387;
  --hairline:#D7DEE6;
  --hairline-strong:#BCC6D1;
  /* semantic (findings) — distinct from the blue/teal brand accents */
  --ok:#067647;      --ok-soft:#E6F4EC;
  --warn:#9A6700;    --warn-soft:#FBF1DC;
  --risk:#B42318;    --risk-soft:#FCECEA;
  --radius:10px;
  --max:1120px;
  --measure:68ch;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
section[id]{scroll-margin-top:84px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Space Grotesk', sans-serif;
  color:var(--ink);
  margin:0 0 0.5em 0;
  line-height:1.12;
  letter-spacing:-0.01em;
}
p{margin:0 0 1em 0;}
a{color:inherit;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 24px;}
.mono{font-family:'IBM Plex Mono', monospace; font-variant-numeric:tabular-nums;}

.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--blue-deep); font-weight:500;
  display:inline-flex; align-items:center; gap:8px; margin-bottom:18px;
}
.eyebrow::before{content:""; width:7px; height:7px; background:var(--blue); border-radius:50%; display:inline-block;}

/* ── Buttons ─────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size:15px;
  padding:13px 24px; border-radius:7px; border:1px solid transparent;
  cursor:pointer; text-decoration:none;
  transition:transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn-primary{background:var(--blue); color:#fff;}
.btn-primary:hover{background:var(--blue-deep); box-shadow:0 6px 16px rgba(24,90,189,0.25); transform:translateY(-1px);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--hairline-strong);}
.btn-ghost:hover{border-color:var(--ink); background:var(--paper-raised);}
.btn:focus-visible{outline:2px solid var(--blue); outline-offset:2px;}

/* ── Header / nav (grouped dropdowns) ────────────────────── */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(243,246,250,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--hairline);
}
nav.wrap{display:flex; align-items:center; justify-content:space-between; padding-top:16px; padding-bottom:16px;}
.brand{display:flex; align-items:center; gap:9px; font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:18px; text-decoration:none; color:var(--ink);}
.brand-mark{width:24px; height:24px; border-radius:5px; background:var(--ink); position:relative; flex:none;}
.brand-mark::after{content:""; position:absolute; left:5px; top:6px; right:5px; height:2px; background:var(--blue); box-shadow:0 5px 0 var(--teal), 0 10px 0 var(--hairline-strong);}
.nav-links{display:flex; align-items:center; gap:26px; font-size:14.5px; font-weight:500;}
.nav-links > a{text-decoration:none; color:var(--ink-soft);}
.nav-links > a:hover{color:var(--ink);}
.nav-cta{display:flex; align-items:center; gap:18px;}
.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--ink); margin:4px 0;}

/* dropdown group */
.nav-group{position:relative;}
.nav-group > button{
  font-family:'IBM Plex Sans', sans-serif; font-size:14.5px; font-weight:500;
  color:var(--ink-soft); background:none; border:none; cursor:pointer; padding:0;
  display:inline-flex; align-items:center; gap:6px;
}
.nav-group > button:hover{color:var(--ink);}
.nav-group > button::after{content:"▾"; font-size:10px; color:var(--hairline-strong);}
.nav-menu{
  position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%) translateY(6px);
  min-width:230px; background:var(--paper-raised);
  border:1px solid var(--hairline); border-radius:10px;
  box-shadow:0 18px 40px -22px rgba(22,25,31,0.4);
  padding:8px; opacity:0; visibility:hidden; transition:opacity .16s ease, transform .16s ease; z-index:60;
}
.nav-group:hover .nav-menu, .nav-group:focus-within .nav-menu{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.nav-menu a{
  display:block; text-decoration:none; color:var(--ink); font-size:14px; font-weight:500;
  padding:9px 12px; border-radius:7px; line-height:1.35;
}
.nav-menu a small{display:block; color:var(--ink-soft); font-size:12px; font-weight:400; margin-top:1px;}
.nav-menu a:hover{background:var(--paper);}

/* ── Sections ────────────────────────────────────────────── */
section{padding:72px 0;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(26px,3vw,34px);}
.section-head p{color:var(--ink-soft); font-size:16px; margin:0;}
.band{background:var(--paper-raised); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline);}

/* ── Breadcrumb ──────────────────────────────────────────── */
.breadcrumb{padding:18px 0 0;}
.breadcrumb ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; font-size:13px; color:var(--ink-soft); font-family:'IBM Plex Mono', monospace;}
.breadcrumb li{display:flex; gap:8px; align-items:center;}
.breadcrumb li:not(:last-child)::after{content:"/"; color:var(--hairline-strong);}
.breadcrumb a{color:var(--ink-soft); text-decoration:none;}
.breadcrumb a:hover{color:var(--blue-deep);}
.breadcrumb li:last-child{color:var(--ink);}

/* ── Page hero (landing/informational) ───────────────────── */
.page-hero{padding:26px 0 8px;}
.page-hero h1{font-size:clamp(30px,4vw,46px); font-weight:700; max-width:20ch;}
.page-hero .lede{font-size:18px; color:var(--ink-soft); max-width:60ch; margin:14px 0 26px;}
.page-hero .hero-ctas{display:flex; gap:14px; flex-wrap:wrap; align-items:center;}
.hero-microcopy{font-size:13.5px; color:var(--ink-soft); margin-top:14px;}

/* ── Prose (article/long-form) ───────────────────────────── */
.prose{max-width:var(--measure);}
.prose h2{font-size:clamp(23px,2.6vw,29px); margin-top:1.6em;}
.prose h3{font-size:19px; margin-top:1.5em;}
.prose p, .prose li{font-size:16.5px; color:#2A2F38;}
.prose ul, .prose ol{padding-left:22px; margin:0 0 1.1em;}
.prose li{margin-bottom:.5em;}
.prose a{color:var(--blue-deep); font-weight:500; text-underline-offset:2px;}
.prose code{font-family:'IBM Plex Mono', monospace; font-size:.88em; background:#EEF2F7; border:1px solid var(--hairline); border-radius:4px; padding:1px 5px;}
.prose strong{font-weight:600; color:var(--ink);}

/* ── Answer block (GEO/AEO) ──────────────────────────────── */
.answer{
  border-left:3px solid var(--blue); background:var(--paper-raised);
  border:1px solid var(--hairline); border-left:3px solid var(--blue);
  border-radius:0 10px 10px 0; padding:18px 22px; margin:0 0 20px;
}
.answer p{margin:0; font-size:16.5px;}
.answer p + p{margin-top:.7em;}

/* ── Definition box ──────────────────────────────────────── */
.definition{background:#EAF2FB; border:1px solid #CFE0F5; border-radius:12px; padding:22px 24px; margin:22px 0;}
.definition .k{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-deep); display:block; margin-bottom:8px;}
.definition p{margin:0; font-size:17px; color:var(--ink);}

/* ── Callouts ────────────────────────────────────────────── */
.callout{border:1px solid var(--hairline); border-left:3px solid var(--ink-soft); background:var(--paper-raised); border-radius:0 10px 10px 0; padding:16px 20px; margin:20px 0; font-size:15px;}
.callout.ok{border-left-color:var(--ok);}
.callout.warn{border-left-color:var(--warn);}
.callout.risk{border-left-color:var(--risk);}
.callout .t{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:6px;}
.callout p:last-child{margin-bottom:0;}

/* ── Pillar grid ─────────────────────────────────────────── */
.pillar-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px;}
.pillar-card{border:1px solid var(--hairline); border-radius:var(--radius); background:var(--paper-raised); padding:24px; display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;}
.pillar-card:hover{border-color:var(--blue); box-shadow:0 14px 30px -20px rgba(24,90,189,.4); transform:translateY(-2px);}
.pillar-card .n{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--teal); margin-bottom:12px;}
.pillar-card h3{font-size:18px; margin-bottom:8px;}
.pillar-card p{font-size:14.5px; color:var(--ink-soft); margin:0 0 14px;}
.pillar-card .more{margin-top:auto; font-size:13.5px; font-weight:600; color:var(--blue-deep); font-family:'IBM Plex Mono', monospace;}

/* ── Tables (checks + comparison) ────────────────────────── */
.table-scroll{overflow-x:auto; border:1px solid var(--hairline); border-radius:var(--radius); background:var(--paper-raised); margin:22px 0;}
table.data{border-collapse:collapse; width:100%; font-size:14.5px; min-width:520px;}
table.data th, table.data td{text-align:left; padding:12px 16px; border-bottom:1px solid #E7EDF3; vertical-align:top;}
table.data th{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); background:#F7FAFD; white-space:nowrap;}
table.data tbody tr:last-child td{border-bottom:none;}
table.data td.c, table.data th.c{text-align:center;}
.yes{color:var(--ok); font-weight:600;}
.no{color:var(--risk); font-weight:600;}
.partial{color:var(--warn); font-weight:600;}
.chip{display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:10.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; padding:2.5px 8px; border-radius:20px; white-space:nowrap;}
.chip.high{background:var(--risk-soft); color:var(--risk);}
.chip.med{background:var(--warn-soft); color:var(--warn);}
.chip.low{background:var(--ok-soft); color:var(--ok);}
.chip.info{background:#DCEEF0; color:var(--teal);}

/* ── FAQ (details) ───────────────────────────────────────── */
.faq-list{max-width:760px; display:flex; flex-direction:column;}
.faq-list details{border-bottom:1px solid var(--hairline); padding:18px 0;}
.faq-list summary{cursor:pointer; font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:16px; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px;}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{content:"+"; font-family:'IBM Plex Mono', monospace; font-size:20px; color:var(--ink-soft); flex:none;}
.faq-list details[open] summary::after{content:"–";}
.faq-list details p{margin:12px 0 0; color:var(--ink-soft); font-size:15px; max-width:64ch;}

/* ── CTA band ────────────────────────────────────────────── */
.cta-band{background:var(--ink); color:#EDEDE6; text-align:center; border-radius:18px; margin:0 24px; padding:56px 24px;}
.cta-band h2{color:#fff; font-size:clamp(24px,3.2vw,32px); margin-bottom:12px;}
.cta-band p{color:#B7BDB9; max-width:52ch; margin:0 auto 26px; font-size:16px;}
.cta-band .btn-ghost{color:#EDEDE6; border-color:rgba(237,237,230,.35);}
.cta-band .btn-ghost:hover{border-color:#EDEDE6; background:rgba(255,255,255,.06);}

/* ── Footer (4-column) ───────────────────────────────────── */
footer{padding:56px 0 40px; border-top:1px solid var(--hairline); background:var(--paper-raised);}
.footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px 24px;}
.footer-brand .brand{margin-bottom:12px;}
.footer-brand p{font-size:13.5px; color:var(--ink-soft); max-width:34ch; margin:0;}
.footer-col h4{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin:0 0 14px;}
.footer-col a{display:block; text-decoration:none; color:var(--ink); font-size:14px; padding:5px 0;}
.footer-col a:hover{color:var(--blue-deep);}
.disclaimer{font-size:12px; color:var(--ink-soft); max-width:760px; margin-top:36px; padding-top:24px; border-top:1px solid var(--hairline); line-height:1.6;}

@media (max-width:880px){
  .nav-links{display:none;}
  .nav-toggle{display:block;}
  section{padding:56px 0;}
  .footer-top{grid-template-columns:1fr 1fr;}

  /* Mobile: hamburger reveals the grouped nav as a stacked panel */
  header.nav-open .nav-links{
    display:flex; flex-direction:column; align-items:stretch; gap:4px;
    position:absolute; left:0; right:0; top:100%;
    background:var(--paper-raised); border-bottom:1px solid var(--hairline);
    padding:12px 24px 18px; box-shadow:0 18px 30px -20px rgba(22,25,31,.35);
  }
  header.nav-open .nav-group{width:100%;}
  header.nav-open .nav-group > button{width:100%; justify-content:space-between; padding:10px 0; font-size:15.5px; color:var(--ink); border-bottom:1px solid var(--hairline-soft, #EBF0F5);}
  header.nav-open .nav-menu{
    position:static; transform:none; opacity:1; visibility:visible;
    min-width:0; box-shadow:none; border:none; padding:2px 0 8px;
  }
  header.nav-open .nav-menu a{padding:8px 10px;}
}
@media (max-width:560px){
  .footer-top{grid-template-columns:1fr;}
  .cta-band{margin:0;}
}
