/* ============================================================
   AGCS — PRIMITIVES
   The locked brand component classes from the Provenance system.
   Engineering-spec rigor carrying the AG gradient as signature.
   Tokens live in tokens/*.css; fonts in tokens/fonts.css.
   ============================================================ */

/* ---------- RESET ---------- */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--desk);}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
  font-family:var(--font-body);color:var(--ink);}
.mono{font-family:var(--font-mono);}
.disp{font-family:var(--font-display);}
.tnum{font-variant-numeric:tabular-nums;}

/* ---------- PAGE MODEL ---------- */
/* Screen: stack pages on a gray desk. Print: one Letter sheet each. */
.doc{display:flex;flex-direction:column;align-items:center;gap:var(--gap-card);padding:28px 0;}
.page{position:relative;width:var(--page-w);height:var(--page-h);background:var(--paper);
  overflow:hidden;box-shadow:var(--shadow-sheet);}
.page--poster{width:var(--poster-w);height:var(--poster-h);}   /* 3:4 vertical poster */

@page{size:8.5in 11in;margin:0;}
@media print{
  html,body{background:#fff;}
  .doc{gap:0;padding:0;}
  .page{box-shadow:none;break-after:page;page-break-after:always;}
  .page:last-child{break-after:auto;page-break-after:auto;}
}

/* ---------- LOCKUP (icon + mono wordmark) ---------- */
.lockup{display:flex;align-items:center;gap:12px;}
.lockup img{height:28px;width:auto;display:block;}
.lockup .row{display:flex;align-items:center;gap:7px;}
.lockup .ag,.lockup .word{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;font-weight:600;color:var(--ink);}
.lockup .bar{display:none;}
.lockup--sm img{height:19px;}
.lockup--sm .ag,.lockup--sm .word{font-size:9px;letter-spacing:.14em;}

/* ---------- LOGO VARIANTS ---------- */
/* Sanctioned arrangements of the locked mark. The monogram itself is never
   recolored or restyled — only its arrangement, scale, and enclosure change. */

/* size ramp (icon height) */
.lockup--lg img{height:46px;}

/* stacked: icon left · big AG right · wordmark stacked beneath the AG */
.lockup--stack{flex-direction:row;align-items:center;gap:14px;text-align:left;}
.lockup--stack .stackword{display:flex;flex-direction:column;align-items:flex-start;gap:4px;}
.lockup--stack .ag{font-size:26px;letter-spacing:.08em;line-height:1;font-weight:600;}
.lockup--stack .word{font-size:9px;letter-spacing:.22em;color:var(--muted);line-height:1.42;}
.lockup--stack.lockup--lg .ag{font-size:32px;}
.lockup--stack.lockup--lg .word{font-size:10px;}
/* wordmark-only stack has no icon — left-align the text block */
.lockup--stack.lockup--word{gap:0;}

/* wordmark-only */
.lockup--word .ag{font-size:13px;letter-spacing:.30em;}
.lockup--word .word{letter-spacing:.22em;}

/* acronym — icon + AGCS, for compact contexts where the company is "AGCS" */
.lockup--abbr .ag.agcs{font-size:15px;letter-spacing:.26em;font-weight:600;}
.lockup--abbr.lockup--sm .ag.agcs{font-size:11px;letter-spacing:.20em;}
.lockup--abbr.lockup--lg .ag.agcs{font-size:22px;}
.lockup--abbr.lockup--dark .ag.agcs{color:#fff;}

/* dark tone — on ink surfaces */
.lockup--dark .ag{color:#fff;}
.lockup--dark .word{color:#C9CDD2;}
.lockup--dark.lockup--stack .word{color:#9AA0A6;}

/* icon enclosures (badges) — white/ink fill, hairline or gradient edge */
.logo-badge{display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:60px;height:60px;background:#fff;border:1px solid var(--hair-3);}
.logo-badge img{height:30px;width:auto;display:block;}
.logo-badge--circle{border-radius:var(--r-pill);}
.logo-badge--rounded{border-radius:16px;}
.logo-badge--square{border-radius:0;}
/* gradient hairline edge (rounded) */
.logo-badge--grad{border:2px solid transparent;
  background:linear-gradient(#fff,#fff) padding-box, var(--grad) border-box;}
/* ink fill — colored monogram pops on black; gradient top edge on the square */
.logo-badge--ink{background:var(--ink);border-color:var(--ink);position:relative;overflow:hidden;}
.logo-badge--ink.logo-badge--square::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad);}
.logo-badge--lg{width:84px;height:84px;}
.logo-badge--lg img{height:44px;}
.logo-badge--sm{width:44px;height:44px;}
.logo-badge--sm img{height:22px;}

/* badge + wordmark lockup (badge replaces the bare icon) */
.lockup--badged{gap:14px;}

/* ---------- COVER FRAME (engineering sheet) ---------- */
.frame{position:absolute;inset:var(--safe-inset);border:1px solid var(--ink-line);pointer-events:none;}
.tick{position:absolute;width:15px;height:15px;}
.tick.tl{top:var(--tick-inset);left:var(--tick-inset);border-top:2px solid var(--green);border-left:2px solid var(--green);}
.tick.tr{top:var(--tick-inset);right:var(--tick-inset);border-top:2px solid var(--green);border-right:2px solid var(--green);}
.tick.bl{bottom:var(--tick-inset);left:var(--tick-inset);border-bottom:2px solid var(--green);border-left:2px solid var(--green);}
.tick.br{bottom:var(--tick-inset);right:var(--tick-inset);border-bottom:2px solid var(--green);border-right:2px solid var(--green);}
.cover-inner{position:absolute;inset:var(--safe-inset);padding:36px 42px 34px;display:flex;flex-direction:column;}

/* ---------- HEADER / DOC STRIP ---------- */
.head-rule{display:flex;align-items:center;justify-content:space-between;padding-bottom:15px;border-bottom:1px solid var(--ink-line);}
.head-meta{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--muted);text-align:right;line-height:1.6;}
.doc-strip{display:grid;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;color:var(--muted);border-bottom:1px solid var(--hair-3);}
.doc-strip>div{padding:10px 0;}
.doc-strip>div:last-child{text-align:right;}

/* interior running header / footer */
.rhead{position:absolute;top:0;left:0;right:0;height:var(--rhead-h);display:flex;align-items:center;
  justify-content:space-between;padding:0 var(--page-pad-x);border-bottom:1px solid var(--ink-line);}
.rhead .sheet{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--muted);}
.rfoot{position:absolute;bottom:0;left:0;right:0;height:var(--rfoot-h);display:flex;align-items:center;
  justify-content:space-between;padding:0 var(--page-pad-x);border-top:1px solid var(--ink-line);}
.rfoot .tag,.rfoot .pg{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;color:var(--muted);}
.rfoot .tag{display:flex;align-items:center;gap:10px;}
.rfoot .tick-grad{width:24px;height:3px;border-radius:2px;background:var(--grad);}
.body{position:absolute;top:var(--rhead-h);left:0;right:0;bottom:var(--rfoot-h);padding:38px 42px 0;display:flex;flex-direction:column;}

/* ---------- SIGNATURE ACCENTS ---------- */
.grad-bar{background:var(--grad);height:5px;border-radius:3px;}
/* twin-stroke: echoes the logo's two parallel sweeps */
.twin{width:150px;}
.twin>i{display:block;background:var(--grad);border-radius:3px;}
.twin>i:first-child{height:5px;}
.twin>i:last-child{height:2px;width:65%;margin-top:3px;border-radius:2px;}
/* generative hero signature — filled by accent.js from data-accent seed */
.hero-accent{position:relative;height:13px;border-radius:3px;overflow:hidden;background:var(--grad);}

/* ---------- SECTION HEAD (ghost number + eyebrow) ---------- */
.section-head{display:flex;align-items:flex-start;gap:20px;margin-bottom:6px;}
.section-head .num{font-family:var(--font-display);font-weight:600;font-size:36px;color:var(--ink);line-height:.85;letter-spacing:-.02em;}
.section-head .numwrap>i{display:block;height:4px;width:40px;border-radius:2px;background:var(--grad);margin-top:8px;}
.section-head .ey{font-family:var(--font-mono);font-size:15px;font-weight:600;letter-spacing:.16em;color:var(--green-deep);padding-top:5px;white-space:nowrap;}
.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.26em;color:var(--green-deep);}
h1.title{font-family:var(--font-display);font-weight:600;font-size:56px;line-height:1.03;letter-spacing:-.03em;margin:0;}
h2.title{font-family:var(--font-display);font-weight:600;font-size:31px;letter-spacing:-.02em;margin:14px 0 8px;}
p.deck{font-size:13.5px;line-height:1.55;color:var(--body);margin:0 0 22px;}
p.deck--mono{font-family:var(--font-mono);font-size:11.5px;line-height:1.75;letter-spacing:.01em;}

/* ---------- FIELD GRID ---------- */
.field-grid{border:1px solid var(--hair);border-radius:16px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;}
.field{padding:15px 18px;border-bottom:1px solid var(--hair-3);}
.field:nth-child(odd){border-right:1px solid var(--hair-3);}
.field:nth-last-child(-n+2){border-bottom:none;}
.field .k{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.14em;color:var(--muted);margin-bottom:7px;}
.field .v{font-size:13.5px;font-weight:600;}
.field .v-sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.field--dark{background:var(--ink);position:relative;overflow:hidden;}
.field--dark::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad);}
.field--dark .k{color:var(--green-soft);}
.field--dark .v{font-family:var(--font-display);font-weight:600;font-size:25px;color:#fff;}

/* ---------- STAT GRID ---------- */
/* Soft rounded shell, ONE symmetric gradient sweep on top, crisp internal
   dividers (soft outside, precise inside). Hero numbers are centered. */
.stat-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--hair);border-radius:18px;overflow:hidden;}
.stat-grid::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--grad);z-index:1;}
.stat{padding:28px 16px 22px;text-align:center;}
.stat+.stat{border-left:1px solid var(--hair-2);}
.stat .n{font-family:var(--font-display);font-weight:600;font-size:34px;}
.stat .n small{font-size:13px;color:var(--muted);}
.stat .l{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.12em;color:var(--muted);margin-top:7px;}
.stat--green,.stat--blue,.stat--sky{} /* legacy no-ops: color lives in the shell gradient */

/* ---------- SPEC TABLE ---------- */
.spec{border:1px solid var(--ink-line);}
.spec .thead{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;
  border-bottom:1px solid var(--ink-line);position:relative;
  font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--ink);font-weight:600;}
.spec .thead::after{content:"";position:absolute;bottom:-1px;left:0;width:140px;height:2px;background:var(--grad);}
.spec .row{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--hair-2);font-size:13px;}
.spec .row .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
.spec .total{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--wash-green);}
.spec .total .lbl{font-family:var(--font-display);font-weight:600;font-size:14px;}
.spec .total .val{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--green-deep);font-variant-numeric:tabular-nums;}

/* ---------- CHECKLIST GRID ---------- */
.checks{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink-line);border-bottom:none;font-size:12.5px;}
.checks .c{padding:12px 16px;border-bottom:1px solid var(--hair-2);display:flex;gap:9px;}
.checks .c:nth-child(odd){border-right:1px solid var(--ink-line);}
.checks .c .yes{color:var(--green);font-weight:700;}
.checks .c .no{color:#C2C7CD;font-weight:700;}
.checks .c.off{color:var(--muted);}
.checks .c:nth-last-child(-n+2){border-bottom:1px solid var(--ink-line);}

/* ---------- CALLOUT / NOTE ---------- */
.note{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:#F4FAF6;
  border:1px solid #D6E8DC;border-radius:16px;}
.note .k{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.14em;color:var(--green-deep);flex-shrink:0;padding-top:2px;}
.note p{font-size:12.5px;line-height:1.55;color:#26333B;margin:0;}
.note--green{background:#F4FAF6;border-color:#D6E8DC;}
.note--green .k{color:var(--green-deep);}

/* ---------- PULL QUOTE ---------- */
.quote{background:#fff;border:1px solid var(--hair);border-radius:16px;padding:26px 30px;position:relative;}
.quote .mark{font-family:var(--font-display);font-weight:700;font-size:40px;color:var(--green);line-height:.5;}
.quote p{font-family:var(--font-display);font-weight:500;font-size:20px;line-height:1.4;letter-spacing:-.01em;color:var(--ink);margin:14px 0 0;}
.quote .cite{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;color:var(--muted);margin-top:18px;}

/* ---------- SIGNATURE BLOCK ---------- */
.sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:14px;}
.sig{display:flex;flex-direction:column;gap:6px;}
.sig .line{border-bottom:1px solid var(--ink);height:34px;}
.sig .nm{font-size:13px;font-weight:600;}
.sig .role{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.12em;color:var(--muted);}
.script{font-family:var(--font-body);font-style:italic;font-weight:600;}

/* ---------- COLLATERAL (business cards, signatures) ----------
   On brand collateral the gradient is used AS A FILL — the owner-established
   treatment (vertical-split panel + vertical divider bar). Documents keep the
   stroke-only rule; collateral may fill. The logo wordmark here is sentence-case
   Poppins (the primary brand wordmark), distinct from the mono document lockup. */
.bcard{position:relative;width:700px;height:400px;background:var(--paper);overflow:hidden;
  box-shadow:var(--shadow-sheet);}
/* diagonal gradient panel (the logo face) — cyan top → green bottom */
.grad-panel{background:linear-gradient(158deg,#05BAFB 0%,#16C6E6 36%,#00B23B 100%);}
/* vertical gradient divider bar (the contact face) */
.grad-divider{width:7px;border-radius:4px;background:linear-gradient(180deg,#00BAFF,#42CCFF 45%,#00B23B);}
/* sentence-case Poppins wordmark (white on gradient) */
.wordmark-poppins{font-family:var(--font-display);font-weight:600;color:#fff;line-height:1.0;letter-spacing:-.01em;}
.wordmark-poppins .lg{font-size:46px;}
/* card contact type */
.bcard .nm{font-family:var(--font-display);font-weight:700;font-size:26px;color:var(--ink);letter-spacing:-.01em;}
.bcard .role,.bcard .info{font-family:var(--font-body);font-style:italic;color:var(--ink);}
.bcard .role{font-size:14px;line-height:1.45;}
.bcard .info{font-size:13.5px;line-height:1.55;}
.bcard .tagline{font-family:var(--font-body);font-style:italic;font-weight:700;font-size:16px;color:var(--green-deep);}

/* ---------- HELPERS ---------- */
.mt-auto{margin-top:auto;}
.dotrule{height:8px;background-image:repeating-linear-gradient(90deg,#CDD3D9 0,#CDD3D9 1px,transparent 1px,transparent 38px);opacity:.7;}
.hr{height:1px;background:var(--hair-3);border:0;}
.hr-ink{height:1px;background:var(--ink-line);border:0;}
