/* ============================================================
   Arthur Consulting Associates — core stylesheet
   Palette derived from the brand logo:
   navy #132235 (primary) + aqua #67D8D2 (accent).
   Signature: figures set in monospace, like an audit working paper.
   ============================================================ */

:root{
  --ink:        #132235;
  --ink-soft:   #566472;
  --paper:      #EEF2F3;
  --paper-2:    #E1E8EA;
  --card:       #FFFFFF;
  --navy:       #132235;
  --navy-700:   #1F3550;
  --aqua:       #67D8D2;
  --aqua-deep:  #147B74;   /* readable aqua-teal for text on light */
  --aqua-soft:  #A6E7E3;   /* light aqua for text on dark */
  --line:       rgba(19,34,53,.14);
  --line-soft:  rgba(19,34,53,.08);
  --line-dark:  rgba(255,255,255,.16);

  --serif: "Spectral", Georgia, serif;
  --sans:  "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;

  --wrap: 1160px;
  --gap:  clamp(1.5rem, 4vw, 4rem);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(1rem,.97rem + .18vw,1.075rem);
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }

/* --- data / figures signature --- */
.mono, .fig, time, .rec-no, .stat-num{
  font-family:var(--mono);
  font-feature-settings:"tnum" 1;
  letter-spacing:-.01em;
}

/* --- layout --- */
.wrap{ width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto; }
.section{ padding-block:clamp(3.5rem,7vw,6.5rem); }
.section--tight{ padding-block:clamp(2.5rem,5vw,4rem); }

.eyebrow{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--aqua-deep);
  margin:0 0 1rem;
  display:flex; align-items:center; gap:.7rem;
}
.eyebrow::before{
  content:""; width:26px; height:2px; background:var(--aqua);
  display:inline-block;
}
.section--dark .eyebrow{ color:var(--aqua-soft); }
.section--dark .eyebrow::before{ background:var(--aqua); }

h1,h2,h3{ font-family:var(--serif); font-weight:600; line-height:1.08; letter-spacing:-.01em; margin:0; color:var(--ink); }
h1{ font-size:clamp(2.4rem,1.6rem + 3.2vw,4rem); }
h2{ font-size:clamp(1.9rem,1.4rem + 1.9vw,2.85rem); }
h3{ font-size:clamp(1.2rem,1.05rem + .6vw,1.45rem); font-weight:500; }
p{ margin:0 0 1.1rem; max-width:64ch; }
.lead{ font-size:clamp(1.1rem,1rem + .5vw,1.3rem); color:var(--ink-soft); line-height:1.55; }

.section--dark{ background:var(--navy); color:#D6DEE6; }
.section--dark h1,.section--dark h2,.section--dark h3{ color:#fff; }
.section--dark p{ color:#BAC6D2; }
.section--paper2{ background:var(--paper-2); }

/* --- buttons --- */
.btn{
  --bg:var(--navy); --fg:#fff;
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-weight:500; font-size:.95rem;
  padding:.85em 1.5em; border:1px solid var(--bg); border-radius:2px;
  text-decoration:none; cursor:pointer;
  transition:transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.btn:hover{ transform:translateY(-2px); background:var(--navy-700); border-color:var(--navy-700); }
.btn--ghost{ --bg:transparent; --fg:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.btn--aqua{ --bg:var(--aqua); --fg:var(--navy); border-color:var(--aqua); font-weight:600; }
.btn--aqua:hover{ background:#8BE4DF; border-color:#8BE4DF; color:var(--navy); }
.section--dark .btn--ghost{ --fg:#fff; border-color:var(--line-dark); }
.section--dark .btn--ghost:hover{ background:#fff; color:var(--navy); }
.btn .arw{ transition:transform .18s ease; }
.btn:hover .arw{ transform:translateX(3px); }

/* ============================================================
   Header
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(238,242,243,.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; height:76px; gap:1rem; }
.brand{ display:flex; align-items:center; text-decoration:none; }
.brand img{ height:42px; width:auto; }

.nav{ display:flex; align-items:center; gap:.3rem; }
.nav a{
  text-decoration:none; color:var(--ink-soft); font-size:.92rem; font-weight:500;
  padding:.5em .85em; border-radius:2px; transition:color .15s, background .15s;
}
.nav a:hover{ color:var(--ink); background:var(--paper-2); }
.nav a[aria-current="page"]{ color:var(--navy); border-bottom:2px solid var(--aqua); border-radius:0; }
.nav .btn{ margin-left:.6rem; padding:.6em 1.1em; }
.nav .btn[aria-current="page"]{ border-bottom:1px solid var(--aqua); }

.nav-toggle{ display:none; background:none; border:0; cursor:pointer; padding:.5rem; }
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:24px; height:2px; background:var(--navy); transition:.2s;
}
.nav-toggle span::before{ transform:translateY(-7px); }
.nav-toggle span::after{ transform:translateY(5px); }

@media (max-width:880px){
  .nav-toggle{ display:block; }
  .nav{
    position:absolute; top:76px; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--paper); border-bottom:1px solid var(--line);
    padding:.5rem 1.25rem 1.25rem;
    max-height:0; overflow:hidden; transition:max-height .28s ease;
  }
  .nav.open{ max-height:460px; }
  .nav a{ padding:.85em .5em; border-bottom:1px solid var(--line-soft); }
  .nav a[aria-current="page"]{ border-bottom:1px solid var(--line-soft); color:var(--aqua-deep); }
  .nav .btn{ margin:.8rem 0 0; justify-content:center; }
}

/* ============================================================
   Hero
   ============================================================ */
.hero{ background:var(--navy); color:#fff; position:relative; overflow:hidden; }
.hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(58% 85% at 84% 10%, rgba(103,216,210,.22), transparent 60%),
    linear-gradient(180deg, var(--navy-700), var(--navy));
}
.hero .wrap{ position:relative; padding-block:clamp(4rem,9vw,7.5rem); }
.hero-grid{ display:grid; grid-template-columns:1.35fr .9fr; gap:var(--gap); align-items:end; }
.hero h1{ color:#fff; max-width:16ch; }
.hero .lead{ color:#BFCBD8; margin-top:1.5rem; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }

.hero-side{ border-left:1px solid var(--line-dark); padding-left:clamp(1.25rem,3vw,2.5rem); }
.hero-side dl{ margin:0; display:grid; gap:1.4rem; }
.hero-side dt{ font-family:var(--mono); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--aqua); }
.hero-side dd{ margin:.25rem 0 0; font-size:.98rem; color:#D2DBE4; line-height:1.45; }
.hero-side dd .fig{ color:#fff; }

@media (max-width:820px){
  .hero-grid{ grid-template-columns:1fr; align-items:start; }
  .hero-side{ border-left:0; border-top:1px solid var(--line-dark); padding-left:0; padding-top:1.75rem; }
  .hero-side dl{ grid-template-columns:1fr 1fr; }
}

/* --- client strip --- */
.clients{ border-top:1px solid var(--line-dark); }
.clients .wrap{ display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem 2.5rem; padding-block:1.5rem; }
.clients .label{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--aqua); }
.clients ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:1rem 2rem; }
.clients li{ font-family:var(--serif); font-weight:500; font-size:1.05rem; color:#E3EAF0; opacity:.92; }

/* ============================================================
   Stats
   ============================================================ */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:3px; overflow:hidden; }
.stat{ background:var(--card); padding:1.75rem 1.5rem; }
.stat-num{ font-size:clamp(2rem,1.4rem + 1.8vw,2.9rem); font-weight:500; color:var(--navy); line-height:1; }
.stat-num .unit{ font-size:.5em; color:var(--aqua-deep); margin-left:.15em; }
.stat-label{ margin-top:.65rem; font-size:.9rem; color:var(--ink-soft); }
@media (max-width:720px){ .stats{ grid-template-columns:1fr 1fr; } }

/* ============================================================
   Services
   ============================================================ */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.svc{
  background:var(--card); border:1px solid var(--line-soft); border-radius:3px;
  padding:1.75rem 1.6rem; display:flex; flex-direction:column;
  transition:border-color .18s, transform .18s, box-shadow .18s;
}
.svc:hover{ border-color:var(--aqua); transform:translateY(-3px); box-shadow:0 14px 34px -22px rgba(19,34,53,.5); }
.svc-no{ font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; color:var(--aqua-deep); margin-bottom:1rem; }
.svc h3{ margin-bottom:.6rem; }
.svc p{ color:var(--ink-soft); font-size:.96rem; margin:0; }
.svc .svc-link{ margin-top:1.1rem; font-family:var(--sans); font-size:.9rem; font-weight:500; color:var(--navy); text-decoration:none; display:inline-flex; align-items:center; gap:.4rem; }
.svc .svc-link .arw{ transition:transform .18s; }
.svc:hover .svc-link .arw{ transform:translateX(3px); }
@media (max-width:820px){ .svc-grid{ grid-template-columns:1fr; } }

/* --- two-col intro --- */
.split{ display:grid; grid-template-columns:.8fr 1.2fr; gap:var(--gap); align-items:start; }
@media (max-width:820px){ .split{ grid-template-columns:1fr; } }
.split .side-note{ font-family:var(--mono); font-size:.8rem; color:var(--ink-soft); line-height:1.7; }

/* ============================================================
   Engagement records (Track Record) — signature page
   ============================================================ */
.rec{ background:var(--card); border:1px solid var(--line); border-radius:3px; overflow:hidden; margin-bottom:1.5rem; }
.rec-head{
  display:flex; flex-wrap:wrap; gap:1rem; align-items:baseline; justify-content:space-between;
  padding:1.4rem 1.6rem; background:var(--navy); color:#fff;
}
.rec-head .rec-no{ font-size:.75rem; letter-spacing:.16em; color:var(--aqua); text-transform:uppercase; }
.rec-head .rec-client{ font-family:var(--serif); font-size:1.15rem; font-weight:500; color:#fff; flex:1 1 auto; }
.rec-head .rec-status{
  font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--navy); background:var(--aqua); padding:.3em .7em; border-radius:2px;
}
.rec-head .rec-status[data-s="ongoing"]{ background:#F2C94C; }

.rec-title{ padding:1.4rem 1.6rem 0; }
.rec-title h3{ font-family:var(--serif); font-size:clamp(1.15rem,1rem + .6vw,1.4rem); font-weight:600; color:var(--ink); }

.rec-meta{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:var(--line-soft);
  margin:1.4rem 0 0; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
}
.rec-meta div{ background:var(--card); padding:.9rem 1.6rem; }
.rec-meta dt{ font-family:var(--mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.rec-meta dd{ margin:.35rem 0 0; font-size:.95rem; }
.rec-meta dd.fig{ color:var(--aqua-deep); font-weight:500; }
@media (max-width:820px){ .rec-meta{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .rec-meta{ grid-template-columns:1fr; } }

.rec-body{ padding:1.4rem 1.6rem 1.6rem; }
.rec-body p{ color:var(--ink-soft); font-size:.97rem; }
.rec-body p:last-child{ margin-bottom:0; }
.rec-body strong{ color:var(--ink); font-weight:600; }
.rec-list{ margin:.4rem 0 0; padding-left:1.1rem; color:var(--ink-soft); font-size:.95rem; }
.rec-list li{ margin-bottom:.45rem; }
.rec-list li::marker{ color:var(--aqua-deep); }

.rec-team{ margin-top:1.3rem; padding-top:1.1rem; border-top:1px dashed var(--line); font-size:.9rem; color:var(--ink-soft); }
.rec-team .k{ font-family:var(--mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--aqua-deep); display:block; margin-bottom:.3rem; }
.rec-team .names{ color:var(--ink); }

/* ============================================================
   Service detail
   ============================================================ */
.svc-detail{ max-width:760px; }
.svc-detail h2{ margin-top:2.5rem; margin-bottom:.9rem; font-size:clamp(1.4rem,1.2rem + .8vw,1.85rem); }
.svc-detail h2:first-child{ margin-top:0; }
.svc-detail p{ color:var(--ink-soft); }
.svc-detail ul{ margin:0 0 1.2rem; padding-left:1.15rem; color:var(--ink-soft); }
.svc-detail ul li{ margin-bottom:.5rem; }
.svc-detail ul li::marker{ color:var(--aqua-deep); }
.svc-index{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:3px; overflow:hidden; margin-top:1rem; }
.svc-index a{ background:var(--card); padding:1.1rem 1.4rem; text-decoration:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; transition:background .15s; }
.svc-index a:hover{ background:var(--paper-2); }
.svc-index a[aria-current="page"]{ background:var(--navy); color:#fff; }
.svc-index a .n{ font-family:var(--mono); font-size:.7rem; color:var(--aqua-deep); }
.svc-index a[aria-current="page"] .n{ color:var(--aqua); }
@media (max-width:600px){ .svc-index{ grid-template-columns:1fr; } }

/* ============================================================
   Contact
   ============================================================ */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
.office{ margin-bottom:1.75rem; }
.office h3{ font-family:var(--serif); margin-bottom:.4rem; }
.office .row{ display:flex; gap:.6rem; font-size:.96rem; color:var(--ink-soft); margin-bottom:.3rem; }
.office .row .k{ font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--aqua-deep); width:64px; flex:none; padding-top:.25rem; }
.office a{ color:var(--navy); text-decoration:none; }
.office a:hover{ text-decoration:underline; }

.field{ margin-bottom:1rem; }
.field label{ display:block; font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.4rem; }
.field input, .field textarea{
  width:100%; font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:var(--card); border:1px solid var(--line); border-radius:2px; padding:.75em .9em;
}
.field input:focus, .field textarea:focus{ outline:2px solid var(--aqua); outline-offset:1px; border-color:var(--aqua); }
.form-note{ font-size:.82rem; color:var(--ink-soft); margin-top:.5rem; }

/* ============================================================
   Footer
   ============================================================ */
.site-footer{ background:var(--navy); color:#AFBCCB; }
.site-footer .wrap{ padding-block:clamp(3rem,5vw,4rem); }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:var(--gap); }
@media (max-width:760px){ .foot-grid{ grid-template-columns:1fr; gap:2rem; } }
.site-footer h4{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--aqua); margin:0 0 1rem; }
.site-footer a{ color:#C6D0DB; text-decoration:none; }
.site-footer a:hover{ color:#fff; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; font-size:.94rem; }
.foot-brand img{ height:46px; width:auto; margin-bottom:1rem; }
.foot-brand p{ color:#8B99A9; font-size:.92rem; max-width:34ch; }
.foot-bottom{ border-top:1px solid rgba(255,255,255,.1); margin-top:2.5rem; padding-top:1.5rem; display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; font-family:var(--mono); font-size:.75rem; color:#6E7E90; letter-spacing:.03em; }

/* --- page header (interior pages) --- */
.page-head{ background:var(--navy); color:#fff; }
.page-head .wrap{ padding-block:clamp(3rem,6vw,5rem); }
.page-head h1{ color:#fff; max-width:20ch; }
.page-head .lead{ color:#BFCBD8; margin-top:1.25rem; }
.crumb{ font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--aqua); margin-bottom:1.25rem; }
.crumb a{ text-decoration:none; color:var(--aqua); }
.crumb a:hover{ text-decoration:underline; }

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* ============================================================
   v3 additions — photos, client wall, light footer, form status
   ============================================================ */

/* service cards carry a photo thumbnail */
.svc{ padding:0; }
.svc-inner{ padding:1.6rem 1.6rem 1.75rem; display:flex; flex-direction:column; height:100%; }
.svc-thumb{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; filter:saturate(.92); }
.svc:hover .svc-thumb{ filter:saturate(1.05); }

/* image + text feature band */
.feature{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); align-items:center; }
.feature.rev .feature-media{ order:2; }
.feature-media img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:3px; box-shadow:0 24px 50px -30px rgba(19,34,53,.5); }
.feature-body .eyebrow{ margin-top:0; }
@media (max-width:820px){ .feature{ grid-template-columns:1fr; } .feature.rev .feature-media{ order:0; } }

/* service detail hero image */
.svc-hero-img{ width:100%; aspect-ratio:24/7; object-fit:cover; display:block; border-radius:3px; margin-bottom:2.2rem; box-shadow:0 24px 50px -34px rgba(19,34,53,.55); }
@media (max-width:640px){ .svc-hero-img{ aspect-ratio:16/9; } }

/* client / trusted-by logo wall (light band) */
.trust{ background:var(--paper-2); border-block:1px solid var(--line-soft); }
.trust .wrap{ padding-block:clamp(2.25rem,4vw,3rem); }
.trust .eyebrow{ justify-content:center; margin-bottom:1.6rem; }
.logo-wall{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); border-radius:3px; overflow:hidden; }
.cli{ background:var(--card); min-height:104px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; padding:1.1rem .9rem; text-align:center; transition:background .15s; }
.cli:hover{ background:#fff; }
.cli img{ max-height:52px; max-width:100%; width:auto; object-fit:contain; }
.cli-name{ font-family:var(--serif); font-weight:600; color:var(--navy); font-size:1.02rem; line-height:1.12; }
.cli-sub{ font-family:var(--mono); font-size:.56rem; letter-spacing:.13em; text-transform:uppercase; color:var(--aqua-deep); }
@media (max-width:900px){ .logo-wall{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:520px){ .logo-wall{ grid-template-columns:repeat(2,1fr); } .cli{ min-height:92px; } }

/* form status banner + honeypot */
.form-banner{ padding:.9rem 1.1rem; border-radius:3px; margin-bottom:1.4rem; font-size:.95rem; display:none; }
.form-banner--ok{ background:#E3F6F3; border:1px solid var(--aqua); color:var(--navy); display:block; }
.form-banner--err{ background:#FBEAE7; border:1px solid #E0796F; color:#7A2A20; display:block; }
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* ---- light footer (uses the green footer logo) ---- */
.site-footer{ background:var(--paper-2); color:var(--ink-soft); border-top:3px solid var(--aqua); }
.site-footer h4{ color:var(--aqua-deep); }
.site-footer a{ color:var(--navy); }
.site-footer a:hover{ color:var(--aqua-deep); }
.foot-brand img{ height:54px; width:auto; margin-bottom:1.1rem; }
.foot-brand p{ color:var(--ink-soft); }
.foot-bottom{ border-top:1px solid var(--line); color:var(--ink-soft); }

/* ============================================================
   v4 additions — hero background image, engagement modals
   ============================================================ */

/* dimmed photo behind the hero */
.hero-bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; }
.hero::before{ z-index:1; background:
    linear-gradient(180deg, rgba(19,34,53,.88), rgba(19,34,53,.96)),
    linear-gradient(90deg, rgba(19,34,53,.30), transparent 45%, rgba(19,34,53,.42)),
    radial-gradient(60% 80% at 82% 8%, rgba(103,216,210,.18), transparent 60%); }
.hero .wrap{ z-index:2; }

/* "full engagement details" trigger on each record */
.rec-more{ margin-top:1.4rem; display:inline-flex; align-items:center; gap:.5rem;
  background:none; border:0; cursor:pointer; padding:0;
  font-family:var(--sans); font-weight:600; font-size:.9rem; color:var(--navy); }
.rec-more .arw{ transition:transform .18s; }
.rec-more:hover{ color:var(--aqua-deep); }
.rec-more:hover .arw{ transform:translateX(3px); }

/* modal */
body.no-scroll{ overflow:hidden; }
.modal-overlay{ position:fixed; inset:0; z-index:100; display:none;
  align-items:flex-start; justify-content:center; padding:5vh 1rem 3rem;
  background:rgba(11,20,33,.6); backdrop-filter:blur(3px); overflow-y:auto; }
.modal-overlay.open{ display:flex; }
.modal{ background:var(--card); border-radius:5px; max-width:780px; width:100%;
  box-shadow:0 44px 100px -30px rgba(0,0,0,.55); animation:modalIn .22s ease; }
@keyframes modalIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
.modal-head{ position:sticky; top:0; z-index:2; background:var(--navy); color:#fff;
  padding:1.3rem 1.6rem; border-radius:5px 5px 0 0;
  display:flex; justify-content:space-between; align-items:flex-start; gap:1.2rem; }
.modal-head .rec-no{ font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--aqua); }
.modal-head h3{ color:#fff; font-family:var(--serif); font-weight:600; font-size:1.2rem; margin-top:.35rem; line-height:1.2; }
.modal-close{ flex:none; background:none; border:0; color:#fff; cursor:pointer;
  font-size:1.7rem; line-height:1; padding:.1rem .35rem; opacity:.75; transition:opacity .15s; }
.modal-close:hover{ opacity:1; }
.modal-meta{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-soft); border-bottom:1px solid var(--line-soft); }
.modal-meta div{ background:var(--card); padding:.85rem 1.6rem; }
.modal-meta dt{ font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.modal-meta dd{ margin:.3rem 0 0; font-size:.92rem; }
.modal-meta dd.fig{ color:var(--aqua-deep); font-weight:500; }
.modal-body{ padding:1.7rem 1.6rem 1.9rem; }
.modal-body h4{ font-family:var(--mono); font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; color:var(--aqua-deep); margin:1.7rem 0 .55rem; }
.modal-body h4:first-child{ margin-top:0; }
.modal-body p{ color:var(--ink-soft); font-size:.96rem; }
.modal-body ul{ margin:.4rem 0 1.1rem; padding-left:1.15rem; color:var(--ink-soft); font-size:.94rem; }
.modal-body li{ margin-bottom:.45rem; }
.modal-body li::marker{ color:var(--aqua-deep); }
.modal-body strong{ color:var(--ink); font-weight:600; }
@media (max-width:560px){ .modal-meta{ grid-template-columns:1fr 1fr; } }
