/* ============================================================
   Italia Staff Services — styles.css
   Design language: royal blue + gold, serif display type,
   light "paper" theme with a navy header/footer.
   ============================================================ */

:root{
  --navy:        #0A1F44;
  --navy-2:      #0F2C5C;
  --navy-3:      #12356E;
  --royal:       #1B4BA1;
  --gold:        #C8A24A;
  --gold-bright: #E4C066;
  --gold-deep:   #9C7A28;
  --cream:       #FAF7EE;
  --paper:       #FFFFFF;
  --ink:         #10182B;
  --ink-dim:     #57617A;
  --line:        rgba(10,31,68,.14);
  --line-gold:   rgba(200,162,74,.45);
  --ok:          #1E7A4C;
  --bad:         #B5342A;

  --gold-soft:   rgba(200,162,74,.14);
  --royal-soft:  rgba(27,75,161,.08);

  --radius:      14px;
  --radius-lg:   22px;
  --shadow:      0 18px 40px -22px rgba(10,31,68,.35);
  --shadow-sm:   0 8px 20px -12px rgba(10,31,68,.28);

  --step--1: clamp(.82rem,.8rem + .1vw,.9rem);
  --step-0:  clamp(1rem,.95rem + .25vw,1.08rem);
  --step-1:  clamp(1.18rem,1.08rem + .5vw,1.4rem);
  --step-2:  clamp(1.55rem,1.3rem + 1.1vw,2.1rem);
  --step-3:  clamp(2.1rem,1.6rem + 2.2vw,3.4rem);
  --step-4:  clamp(2.7rem,1.9rem + 3.6vw,4.6rem);

  --maxw: 1240px;
}

[data-theme="dark"]{
  --cream: #0A1526;
  --paper: #0F1E38;
  --ink: #EFF3FA;
  --ink-dim: #9AABC9;
  --line: rgba(200,162,74,.18);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:"Public Sans", ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:"Fraunces", "Georgia", serif;
  font-weight:600;
  line-height:1.14;
  margin:0 0 .5rem;
  color:var(--navy);
  letter-spacing:-.01em;
}
[data-theme="dark"] h1,[data-theme="dark"] h2,[data-theme="dark"] h3,[data-theme="dark"] h4{ color:var(--ink); }
h1{ font-size:var(--step-4); }
h2{ font-size:var(--step-2); }
h3{ font-size:var(--step-1); }
p{ margin:0 0 1rem; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul,ol{ margin:0; padding:0; }
button{ font:inherit; }
hr{ border:0; border-top:1px solid var(--line); }

.skip{ position:absolute; left:-999px; top:0; background:var(--navy); color:#fff; padding:.7rem 1.1rem; z-index:200; border-radius:0 0 8px 0; }
.skip:focus{ left:0; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 1.4rem; }
.mono{ font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
.dim{ color:var(--ink-dim); }
.center{ text-align:center; margin-left:auto; margin-right:auto; }
.measure{ max-width:56ch; }
.lede{ font-size:var(--step-1); color:var(--ink-dim); line-height:1.55; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:"JetBrains Mono", ui-monospace, monospace;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-deep); margin:0 0 .7rem; font-weight:600;
}
[data-theme="dark"] .eyebrow{ color:var(--gold-bright); }
.eyebrow::before{ content:""; width:18px; height:2px; background:var(--gold); display:inline-block; }

/* ---------- Sections ---------- */
.section{ padding:clamp(3rem,3vw + 2rem,5.5rem) 0; }
.section--tight{ padding:clamp(2rem,2vw + 1rem,3.2rem) 0; }
.section--soft{ background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section--navy{ background:var(--navy); color:#EAF0FF; }
.section--navy h2, .section--navy h3{ color:#fff; }
.section--navy .dim{ color:#9DB0DD; }

.section-heading{ margin-bottom:2.2rem; }
.section-heading--split{
  display:grid; gap:1.6rem 3rem;
  grid-template-columns:1.15fr .85fr;
  align-items:end;
}
@media (max-width:820px){ .section-heading--split{ grid-template-columns:1fr; } }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.85rem 1.6rem; border-radius:999px;
  background:linear-gradient(180deg, var(--gold-bright), var(--gold));
  color:var(--navy); font-weight:700; font-size:.94rem;
  border:1px solid var(--gold-deep);
  cursor:pointer; transition:transform .15s ease, box-shadow .15s ease;
  box-shadow:var(--shadow-sm);
}
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.btn--ghost{
  background:transparent; color:var(--navy); border:1.5px solid var(--navy);
  box-shadow:none;
}
.btn--ghost:hover{ background:var(--royal-soft); }
.section--navy .btn--ghost{ color:#fff; border-color:rgba(255,255,255,.5); }
.section--navy .btn--ghost:hover{ background:rgba(255,255,255,.08); }
.btn--sm{ padding:.6rem 1.15rem; font-size:.84rem; }
.btn--wide{ width:100%; }
.btn--outline-gold{ background:transparent; color:var(--gold-deep); border:1.5px solid var(--gold); box-shadow:none; }
[data-theme="dark"] .btn--outline-gold{ color:var(--gold-bright); }
.btn--danger{ background:var(--bad); color:#fff; border-color:var(--bad); }
.btn--navy{ background:var(--navy); color:#fff; border-color:var(--navy); }

.text-link{ color:var(--royal); font-weight:600; display:inline-flex; align-items:center; gap:.35rem; }
.text-link span{ transition:transform .15s ease; }
.text-link:hover span{ transform:translateX(3px); }

.chip{
  display:inline-flex; align-items:center; padding:.28rem .7rem; border-radius:999px;
  font-size:.74rem; font-weight:600; border:1px solid var(--line); color:var(--ink-dim);
}
.chip--gold{ color:var(--gold-deep); border-color:var(--line-gold); background:var(--gold-soft); }
.chip--navy{ color:var(--royal); border-color:rgba(27,75,161,.3); background:var(--royal-soft); }

/* ---------- Header ---------- */
.topbar{ background:var(--navy); color:#CBD8F5; font-size:.8rem; }
.topbar__inner{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.5rem 0; flex-wrap:wrap;
}
.topbar__links{ display:flex; gap:1.4rem; flex-wrap:wrap; }
.topbar__links a:hover{ color:var(--gold-bright); }
.topbar__clock{ font-family:"JetBrains Mono", monospace; letter-spacing:.04em; color:var(--gold-bright); }

.masthead{ background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:60; }
.masthead__inner{ display:flex; align-items:center; gap:1.6rem; padding:.9rem 0; }
.brand{ display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.brand-mark{ width:40px; height:40px; }
.brand-word{ font-family:"Fraunces", serif; font-weight:700; font-size:1.12rem; color:var(--navy); line-height:1.1; }
.brand-word small{ display:block; font-family:"JetBrains Mono", monospace; font-weight:500; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); }

.mainnav{ display:flex; align-items:center; gap:.2rem; margin-left:.6rem; flex:1; }
.mainnav a{
  padding:.55rem .8rem; border-radius:8px; font-weight:600; font-size:.92rem; color:var(--ink);
  position:relative;
}
.mainnav a:hover{ background:var(--royal-soft); color:var(--royal); }
.mainnav a[aria-current="page"]{ color:var(--gold-deep); }
.mainnav a[aria-current="page"]::after{
  content:""; position:absolute; left:.8rem; right:.8rem; bottom:.28rem; height:2px; background:var(--gold);
}

.hdr-actions{ display:flex; align-items:center; gap:.7rem; margin-left:auto; }
.lang-switch{ position:relative; display:flex; align-items:center; gap:.35rem; color:var(--ink-dim); }
.lang-switch svg{ width:17px; height:17px; }
.lang-switch select{ border:1px solid var(--line); background:var(--paper); border-radius:8px; padding:.35rem .5rem; font-size:.82rem; color:var(--ink); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

.icon-btn{ background:transparent; border:1px solid var(--line); border-radius:10px; width:40px; height:40px; display:none; align-items:center; justify-content:center; cursor:pointer; color:var(--navy); }
.icon-btn svg{ width:20px; height:20px; }

@media (max-width:960px){
  .mainnav{
    position:fixed; inset:64px 0 0 0; background:var(--paper); flex-direction:column; align-items:stretch;
    padding:1rem 1.4rem; gap:.2rem; transform:translateX(100%); transition:transform .25s ease; overflow-y:auto;
  }
  .mainnav[data-open="true"]{ transform:translateX(0); }
  .mainnav a{ padding:.9rem .5rem; border-bottom:1px solid var(--line); border-radius:0; }
  .icon-btn.burger{ display:inline-flex; }
  .hdr-actions .btn{ display:none; }
  .lang-switch{ display:none; }
}

/* ---------- Hero ---------- */
.hero{ padding:clamp(2.6rem,3vw + 1.6rem,4.6rem) 0 2.5rem; position:relative; overflow:hidden; }
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(48vw 40vw at 92% -10%, var(--gold-soft), transparent 60%),
    radial-gradient(50vw 44vw at -6% 30%, var(--royal-soft), transparent 60%);
}
.hero-split{ display:grid; grid-template-columns:1.05fr .95fr; gap:3rem; align-items:center; }
@media (max-width:900px){ .hero-split{ grid-template-columns:1fr; } }

.hero-kicker{
  display:inline-flex; align-items:center; gap:.5rem; padding:.4rem .9rem .4rem .6rem;
  border-radius:999px; background:var(--navy); color:#fff; font-size:.76rem; font-weight:700;
  letter-spacing:.03em; margin-bottom:1.1rem;
}
.hero-kicker span{ width:8px; height:8px; border-radius:50%; background:var(--gold-bright); display:inline-block; }

.hero-split h1{ font-size:var(--step-4); max-width:14ch; }
.hero-split h1 em{ font-style:normal; color:var(--gold-deep); }

.hero-cta{ display:flex; gap:.9rem; flex-wrap:wrap; margin:1.6rem 0 2rem; }

.hero-trust{ display:flex; gap:.9rem; align-items:flex-start; padding-top:1.2rem; border-top:1px solid var(--line); max-width:44ch; }
.hero-trust__check{ width:30px; height:30px; border-radius:50%; background:var(--gold); color:var(--navy); display:flex; align-items:center; justify-content:center; font-weight:800; flex-shrink:0; }
.hero-trust p{ margin:0; font-size:.9rem; }
.hero-trust strong{ display:block; color:var(--navy); font-family:"Fraunces",serif; font-size:1rem; }
[data-theme="dark"] .hero-trust strong{ color:var(--ink); }

.hero-art{ position:relative; }
.hero-frame{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  border:3px solid var(--gold); box-shadow:var(--shadow);
}
.hero-frame img{ width:100%; height:420px; object-fit:cover; }
.hero-frame::after{ content:""; position:absolute; inset:10px; border:1px solid rgba(255,255,255,.5); border-radius:calc(var(--radius-lg) - 6px); pointer-events:none; }
.hero-badge{
  position:absolute; left:-1.2rem; bottom:-1.2rem; background:var(--navy); color:#fff; border-radius:var(--radius);
  padding:1rem 1.2rem; box-shadow:var(--shadow); display:flex; gap:.7rem; align-items:center; max-width:250px;
  border:1px solid rgba(200,162,74,.4);
}
.hero-badge__icon{ width:34px; height:34px; border-radius:50%; background:var(--gold); color:var(--navy); display:flex; align-items:center; justify-content:center; font-weight:800; flex-shrink:0; }
.hero-badge strong{ display:block; font-size:.86rem; }
.hero-badge span{ font-size:.76rem; color:#B9C6EA; }

.stat-strip{
  margin-top:-2.6rem; position:relative; z-index:2;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
}
@media (max-width:760px){ .stat-strip{ grid-template-columns:repeat(2,1fr); margin-top:1.6rem; } }
.stat-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.2rem 1.1rem; text-align:center; box-shadow:var(--shadow-sm);
}
.stat-card strong{ display:block; font-family:"Fraunces",serif; font-size:var(--step-2); color:var(--navy); }
[data-theme="dark"] .stat-card strong{ color:var(--gold-bright); }
.stat-card span{ font-size:.78rem; color:var(--ink-dim); }

/* ---------- Tile gallery ---------- */
.tile-gallery{ padding:2.6rem 0 0; }
.tile-gallery__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
@media (max-width:760px){ .tile-gallery__grid{ grid-template-columns:1fr; } }
.tile-gallery figure{ position:relative; margin:0; border-radius:var(--radius); overflow:hidden; height:230px; }
.tile-gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.tile-gallery figure:hover img{ transform:scale(1.06); }
.tile-gallery figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:1.3rem 1.1rem .9rem;
  background:linear-gradient(0deg, rgba(10,31,68,.88), transparent);
  color:#fff;
}
.tile-gallery figcaption strong{ display:block; font-family:"Fraunces",serif; }
.tile-gallery figcaption span{ font-size:.8rem; color:#D8C48C; }

/* ---------- Route cards (corridors) ---------- */
.route-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
@media (max-width:820px){ .route-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .route-grid{ grid-template-columns:1fr; } }
.route-card{
  background:var(--paper); border:1px dashed var(--line-gold); border-radius:var(--radius);
  padding:1.1rem 1.2rem; display:flex; align-items:center; justify-content:space-between; gap:.6rem;
  position:relative;
}
.route-card::before,.route-card::after{
  content:""; position:absolute; top:50%; width:16px; height:16px; background:var(--cream); border-radius:50%;
  transform:translateY(-50%); border:1px dashed var(--line-gold);
}
.route-card::before{ left:-8px; } .route-card::after{ right:-8px; }
.route-card__from,.route-card__to{ font-family:"Fraunces",serif; font-weight:600; color:var(--navy); font-size:.98rem; }
[data-theme="dark"] .route-card__from,[data-theme="dark"] .route-card__to{ color:var(--ink); }
.route-card__arrow{ color:var(--gold-deep); font-size:1.1rem; }
.route-card small{ display:block; font-size:.68rem; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.08em; margin-top:.15rem; }

/* ---------- Audience split ---------- */
.audience-split{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; }
@media (max-width:820px){ .audience-split{ grid-template-columns:1fr; } }
.audience-panel{
  border-radius:var(--radius-lg); padding:2rem; position:relative; overflow:hidden;
  border:1px solid var(--line);
}
.audience-panel--employer{ background:var(--navy); color:#fff; }
.audience-panel--employer h3{ color:#fff; }
.audience-panel--employer .dim{ color:#AABBE6; }
.audience-panel--candidate{ background:var(--paper); }
.audience-panel__num{
  font-family:"Fraunces",serif; font-size:2.4rem; color:var(--gold); opacity:.55; position:absolute; top:1.2rem; right:1.6rem;
}
.check-list{ list-style:none; margin:1.1rem 0 1.3rem; display:grid; gap:.55rem; }
.check-list li{ padding-left:1.5rem; position:relative; font-size:.92rem; }
.check-list li::before{ content:"✓"; position:absolute; left:0; color:var(--gold); font-weight:800; }
.audience-panel--employer .check-list li::before{ color:var(--gold-bright); }

/* ---------- Verify band ---------- */
.verify-band{
  background:linear-gradient(135deg, var(--navy), var(--navy-3));
  border-radius:var(--radius-lg); padding:2.2rem 2.4rem; color:#fff;
  display:grid; grid-template-columns:1.4fr .6fr; gap:2rem; align-items:center;
  border:1px solid rgba(200,162,74,.5); position:relative; overflow:hidden;
}
.verify-band::after{
  content:""; position:absolute; right:-60px; top:-60px; width:220px; height:220px; border-radius:50%;
  border:24px solid rgba(200,162,74,.12);
}
@media (max-width:760px){ .verify-band{ grid-template-columns:1fr; text-align:center; } }
.verify-band h2{ color:#fff; font-size:var(--step-2); }
.verify-band .dim{ color:#B9C6EA; }

/* ---------- Sector tiles ---------- */
.sector-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
@media (max-width:820px){ .sector-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .sector-grid{ grid-template-columns:1fr; } }
.sector-tile{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem; transition:border-color .15s ease, transform .15s ease;
}
.sector-tile:hover{ border-color:var(--gold); transform:translateY(-3px); }
.sector-tile__icon{
  width:48px; height:48px; border-radius:50%; background:var(--royal-soft); color:var(--royal);
  display:flex; align-items:center; justify-content:center; margin-bottom:1rem; border:1px solid var(--line-gold);
}
.sector-tile__icon svg{ width:24px; height:24px; }

/* ---------- Cards ---------- */
.card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem;
  transition:transform .15s ease, box-shadow .15s ease;
}
.card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.grid{ display:grid; gap:1.3rem; }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:820px){ .g2,.g3{ grid-template-columns:1fr; } }
.mini-list{ list-style:none; margin:1rem 0 0; display:grid; gap:.4rem; font-size:.86rem; color:var(--ink-dim); }
.mini-list li{ padding-left:1.1rem; position:relative; }
.mini-list li::before{ content:"—"; position:absolute; left:0; color:var(--gold-deep); }

/* ---------- Timeline (zig-zag process) ---------- */
.timeline{ position:relative; margin-top:1rem; }
.timeline::before{
  content:""; position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--line-gold);
  transform:translateX(-1px);
}
.timeline__item{ display:grid; grid-template-columns:1fr 60px 1fr; gap:0; align-items:start; margin-bottom:1.8rem; }
.timeline__num{
  grid-column:2; width:44px; height:44px; border-radius:50%; background:var(--navy); color:var(--gold-bright);
  display:flex; align-items:center; justify-content:center; font-family:"Fraunces",serif; font-weight:700;
  justify-self:center; box-shadow:0 0 0 5px var(--cream); z-index:1;
}
.timeline__content{ grid-column:1; text-align:right; padding-right:1.6rem; }
.timeline__item--right .timeline__content{ grid-column:3; text-align:left; padding-right:0; padding-left:1.6rem; }
.timeline__content h3{ font-size:var(--step-0); margin-bottom:.3rem; }
.timeline__content p{ font-size:.9rem; margin:0; }
@media (max-width:720px){
  .timeline::before{ left:22px; }
  .timeline__item,.timeline__item--right{ grid-template-columns:44px 1fr; }
  .timeline__num{ grid-column:1; }
  .timeline__content,.timeline__item--right .timeline__content{ grid-column:2; text-align:left; padding:0 0 0 1rem; }
}

/* ---------- Pledge / ethics panel ---------- */
.pledge-panel{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); padding:2.2rem;
  display:grid; grid-template-columns:1fr 1fr; gap:2rem;
}
@media (max-width:820px){ .pledge-panel{ grid-template-columns:1fr; } }
.pledge-list{ list-style:none; display:grid; gap:.9rem; margin:0; }
.pledge-list li{ padding-left:1.6rem; position:relative; }
.pledge-list li::before{ content:"◆"; position:absolute; left:0; top:.15rem; color:var(--gold); font-size:.7rem; }

/* ---------- Quote rail (testimonials) ---------- */
.quote-rail{ overflow-x:auto; scroll-snap-type:x mandatory; display:flex; gap:1.2rem; padding:.4rem .1rem 1.2rem; -webkit-overflow-scrolling:touch; }
.quote-rail::-webkit-scrollbar{ height:8px; }
.quote-rail::-webkit-scrollbar-thumb{ background:var(--line-gold); border-radius:8px; }
.quote-card{
  scroll-snap-align:start; flex:0 0 min(380px,86vw); background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:1.6rem; position:relative;
}
.quote-card__mark{ font-family:"Fraunces",serif; font-size:3rem; color:var(--gold); opacity:.4; line-height:1; margin-bottom:-.6rem; }
.quote-card__stars{ color:var(--gold-deep); letter-spacing:.15em; font-size:.8rem; margin-bottom:.5rem; }
.quote-card blockquote{ margin:0 0 1rem; font-size:.98rem; line-height:1.5; }
.quote-card figcaption strong{ display:block; color:var(--navy); }
[data-theme="dark"] .quote-card figcaption strong{ color:var(--ink); }
.rail-controls{ display:flex; gap:.6rem; justify-content:flex-end; margin-top:-.6rem; }
.rail-controls button{ width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:var(--paper); cursor:pointer; display:flex; align-items:center; justify-content:center; }
.rail-controls button:hover{ border-color:var(--gold); }

/* ---------- FAQ accordion ---------- */
.faq-accordion{ display:grid; gap:.7rem; }
.faq-item{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.faq-item summary{
  list-style:none; cursor:pointer; padding:1.1rem 1.3rem; display:flex; align-items:center; justify-content:space-between;
  font-family:"Fraunces",serif; font-weight:600; color:var(--navy); gap:1rem;
}
[data-theme="dark"] .faq-item summary{ color:var(--ink); }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+"; flex-shrink:0; width:26px; height:26px; border-radius:50%; background:var(--gold-soft); color:var(--gold-deep);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem; transition:transform .2s ease;
}
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item p{ padding:0 1.3rem 1.2rem; margin:0; color:var(--ink-dim); font-size:.92rem; }

/* ---------- CTA banner ---------- */
.cta-banner{
  background:var(--navy); border-radius:var(--radius-lg); padding:2.4rem 2.6rem; color:#fff;
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  border:1px solid rgba(200,162,74,.4);
}
.cta-banner h2{ color:#fff; font-size:var(--step-2); margin-bottom:.4rem; }
.cta-banner p{ color:#B9C6EA; margin:0; max-width:46ch; }
.cta-banner__actions{ display:flex; gap:.8rem; flex-wrap:wrap; }

/* ---------- Forms ---------- */
.field{ display:grid; gap:.35rem; margin-bottom:1rem; }
.field span{ font-size:.78rem; font-weight:700; color:var(--navy); text-transform:uppercase; letter-spacing:.04em; }
[data-theme="dark"] .field span{ color:var(--ink); }
.field input, .field select, .field textarea{
  border:1px solid var(--line); border-radius:10px; padding:.75rem .9rem; background:var(--paper); color:var(--ink);
  font:inherit; width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--gold); border-color:var(--gold); }
.field textarea{ min-height:120px; resize:vertical; }
.field--mono input{ font-family:"JetBrains Mono", monospace; letter-spacing:.06em; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 1.1rem; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.note{ font-size:.8rem; color:var(--ink-dim); }

.filters{
  display:grid; grid-template-columns:1.4fr 1fr 1fr auto; gap:.9rem; align-items:end;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem; margin-bottom:1.4rem;
}
@media (max-width:820px){ .filters{ grid-template-columns:1fr; } }

.alert{ border-radius:10px; padding:.9rem 1.1rem; border:1px solid var(--line); font-size:.92rem; }
.alert--ok{ background:rgba(30,122,76,.1); border-color:rgba(30,122,76,.35); color:var(--ok); }
.alert--bad{ background:rgba(181,52,42,.08); border-color:rgba(181,52,42,.35); color:var(--bad); }

.empty{ border:1px dashed var(--line-gold); border-radius:var(--radius); padding:2rem; text-align:center; color:var(--ink-dim); }

/* ---------- Job ticket list ---------- */
.job-list{ display:grid; gap:1rem; }
.job-ticket{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:1rem; padding:1.3rem 1.4rem;
  position:relative;
}
.job-ticket::before{
  content:""; position:absolute; right:150px; top:0; bottom:0; border-left:2px dashed var(--line-gold);
}
@media (max-width:680px){ .job-ticket{ grid-template-columns:1fr; } .job-ticket::before{ display:none; } }
.job-ticket__ref{ font-family:"JetBrains Mono",monospace; font-size:.72rem; color:var(--gold-deep); letter-spacing:.04em; text-transform:uppercase; }
.job-ticket h3{ margin:.2rem 0 .6rem; font-size:var(--step-1); }
.job-ticket__meta{ display:flex; gap:.5rem; flex-wrap:wrap; }

/* ---------- Standards / benefit grid ---------- */
.benefit-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; }
@media (max-width:900px){ .benefit-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .benefit-grid{ grid-template-columns:1fr; } }
.benefit-grid article{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem; }
.benefit-grid article span{ font-family:"Fraunces",serif; font-size:1.6rem; color:var(--gold-deep); }

/* ---------- Page hero (interior pages) ---------- */
.page-banner{ background:var(--navy); color:#fff; padding:3.2rem 0 3.6rem; position:relative; overflow:hidden; }
.page-banner::before{ content:""; position:absolute; inset:0; background:radial-gradient(50vw 40vw at 90% 0%, rgba(200,162,74,.18), transparent 60%); }
.page-banner__inner{ display:grid; grid-template-columns:1fr 1fr; gap:2.4rem; align-items:center; }
@media (max-width:820px){ .page-banner__inner{ grid-template-columns:1fr; } }
.page-banner h1{ color:#fff; font-size:var(--step-3); }
.page-banner .lede{ color:#C3D0EE; }

.media-banner{ margin:0; }
.media-banner img{ width:100%; height:340px; object-fit:cover; }

.impact-band{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; text-align:center; }
@media (max-width:700px){ .impact-band{ grid-template-columns:repeat(2,1fr); } }
.impact-band strong{ display:block; font-family:"Fraunces",serif; font-size:var(--step-3); color:var(--navy); }
[data-theme="dark"] .impact-band strong{ color:var(--gold-bright); }
.impact-band span{ font-size:.82rem; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.06em; }

/* ---------- Certificate (verify page) ---------- */
.verify-shell{ display:grid; grid-template-columns:.9fr 1.1fr; gap:2rem; align-items:start; }
@media (max-width:900px){ .verify-shell{ grid-template-columns:1fr; } }
.cert-frame{
  background:var(--paper); border:2px solid var(--gold); border-radius:var(--radius-lg); padding:2.2rem;
  position:relative;
}
.cert-frame::before{ content:""; position:absolute; inset:8px; border:1px solid var(--line-gold); border-radius:calc(var(--radius-lg) - 4px); pointer-events:none; }
.cert-frame__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.cert-frame__seal{
  width:76px; height:76px; border-radius:50%; border:2px solid var(--gold); color:var(--gold-deep);
  display:flex; align-items:center; justify-content:center; text-align:center; font-family:"JetBrains Mono",monospace;
  font-size:.6rem; font-weight:700; letter-spacing:.05em; flex-shrink:0; line-height:1.2;
}
.cert-stamp{ display:inline-block; background:var(--gold-soft); color:var(--gold-deep); border:1px solid var(--line-gold); border-radius:999px; padding:.35rem .9rem; font-weight:700; font-size:.8rem; }
.cert-rows{ display:grid; gap:.8rem; margin-top:1.2rem; }
.cert-rows div{ display:flex; justify-content:space-between; gap:1rem; border-bottom:1px dashed var(--line); padding-bottom:.6rem; font-size:.9rem; }
.cert-rows span{ color:var(--ink-dim); }
.cert-foot{ margin-top:1.4rem; padding-top:1rem; border-top:1px solid var(--line); font-size:.76rem; color:var(--ink-dim); }

/* ---------- Modal ---------- */
.modal{ position:fixed; inset:0; z-index:100; background:rgba(10,15,26,.6); display:flex; align-items:center; justify-content:center; padding:1.2rem; }
.modal[hidden]{ display:none; }
.modal__card{ max-width:640px; width:100%; max-height:88vh; overflow-y:auto; background:var(--paper); border-radius:var(--radius-lg); padding:2rem; }
.modal__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1rem; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--navy); color:#B9C6EA; padding-top:3.4rem; }
.site-footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.2rem; padding-bottom:2.4rem; }
@media (max-width:820px){ .site-footer__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .site-footer__grid{ grid-template-columns:1fr; } }
.site-footer h4{ color:var(--gold-bright); font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; font-family:"Public Sans",sans-serif; font-weight:700; margin-bottom:.9rem; }
.site-footer ul{ list-style:none; display:grid; gap:.55rem; font-size:.9rem; }
.site-footer a:hover{ color:#fff; }
.site-footer__base{
  border-top:1px solid rgba(200,162,74,.25); padding:1.2rem 0; display:flex; gap:1rem; flex-wrap:wrap;
  justify-content:space-between; font-size:.78rem; color:#7F92C4;
}
.site-footer__base a{ color:#B9C6EA; }
.footer-brand-word{ font-family:"Fraunces",serif; font-weight:700; color:#fff; font-size:1.15rem; }

/* ---------- reveal-on-scroll ---------- */
[data-reveal]{ opacity:0; transform:translateY(16px); transition:opacity .55s ease, transform .55s ease; }
[data-reveal].in{ opacity:1; transform:none; }

/* ---------- Admin ---------- */
.gate{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--navy); padding:1.4rem; }
.gate__card{ max-width:400px; width:100%; background:var(--paper); border-radius:var(--radius-lg); padding:2.2rem; text-align:center; }
.gate__card .brand{ justify-content:center; margin-bottom:1.2rem; }

.admin-shell{ display:grid; grid-template-columns:250px 1fr; min-height:100vh; background:var(--cream); }
@media (max-width:820px){ .admin-shell{ grid-template-columns:1fr; } }
.admin-side{ background:var(--navy); color:#B9C6EA; padding:1.6rem 1.2rem; display:flex; flex-direction:column; gap:.3rem; }
.admin-side .brand{ margin-bottom:1.4rem; }
.tab-link{ padding:.7rem .9rem; border-radius:10px; font-weight:600; font-size:.9rem; color:#B9C6EA; display:flex; justify-content:space-between; }
.tab-link[aria-selected="true"]{ background:rgba(200,162,74,.18); color:var(--gold-bright); }
.tab-link:hover{ background:rgba(255,255,255,.06); }
.tab-link .count{ background:rgba(255,255,255,.12); border-radius:999px; padding:.05rem .5rem; font-size:.72rem; }
.admin-side .push{ margin-top:auto; padding-top:1rem; }

.admin-main{ padding:2rem clamp(1.2rem,3vw,2.6rem); }
.admin-topbar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:1.4rem; }

.kpi-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:1.6rem; }
@media (max-width:820px){ .kpi-grid{ grid-template-columns:repeat(2,1fr); } }
.kpi{ text-align:center; }
.kpi strong{ display:block; font-family:"Fraunces",serif; font-size:var(--step-2); color:var(--navy); }
.kpi span{ font-size:.8rem; color:var(--ink-dim); }

.tablewrap{ overflow-x:auto; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); }
table.data{ width:100%; border-collapse:collapse; font-size:.88rem; }
table.data th{ text-align:left; padding:.8rem 1rem; background:var(--royal-soft); color:var(--navy); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
table.data td{ padding:.8rem 1rem; border-top:1px solid var(--line); vertical-align:top; }
table.data tr.msg--unread td{ background:var(--gold-soft); }
.row-act{ display:flex; gap:.5rem; flex-wrap:wrap; }

@media print{
  .no-print{ display:none !important; }
  body{ background:#fff; }
}
