/* ============================================================
   DocuWiz Consultancies — Design System
   Palette derived from the brand logo's three triangle faces:
   Gold (left) · Coral (right) · Magenta→Purple (bottom)
   ============================================================ */

/* ---------- Brand wordmark font: QARVIC Bold (self-hosted) ----------
   Drop your font file into assets/fonts/ named qarvic-bold.* (woff2, woff, otf, or ttf).
   Only one format is needed — the others simply aren't requested.
   Until a file is present, "DocuWiz" falls back to a bold sans. */
@font-face {
  font-family: "Qarvic";
  src: url("../fonts/qarvic-bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ---------- Design Tokens ---------- */
:root {
  /* Brand — logo face colours */
  --gold-1:#F4D81E;  --gold-2:#E0AE0A;  --gold-3:#C99A06;
  --coral-1:#F2602E; --coral-2:#E0452A; --coral-3:#D2371F;
  --mag-1:#E627CE;   --mag-2:#C81E9E;   --mag-3:#7A0B5D;

  /* Signature gradient (gold → coral → magenta = the three faces) */
  --brand-grad: linear-gradient(118deg, #F4D81E 0%, #F0691F 30%, #EE4B2E 52%, #D21C9E 100%);
  --brand-grad-soft: linear-gradient(118deg, rgba(244,216,30,.16), rgba(238,75,46,.16) 55%, rgba(210,28,158,.16));

  /* Neutrals */
  --ink:#171019;          /* near-black with a plum tint */
  --ink-2:#211528;
  --ink-3:#2E1E37;
  --surface:#FAF7F2;      /* warm off-white page bg */
  --surface-2:#F3ECE2;
  --white:#ffffff;

  --text:#241F2B;         /* body text on light */
  --muted:#675F70;        /* secondary text on light */
  --text-inv:#F5EFEA;     /* text on dark */
  --muted-inv:#BCAFC6;    /* secondary text on dark */
  --line:#EBE3D8;         /* hairline borders on light */
  --line-dark:rgba(255,255,255,.12);

  /* Type */
  --font-display:"Fraunces", "Iowan Old Style", Georgia, serif;
  --font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-brand:"Qarvic", "Inter", system-ui, sans-serif; /* DocuWiz wordmark */

  /* Layout */
  --container:1200px;
  --container-wide:1320px;
  --radius:18px;
  --radius-sm:12px;
  --radius-lg:28px;

  /* Effects */
  --shadow-sm:0 1px 2px rgba(23,16,25,.05), 0 2px 8px rgba(23,16,25,.05);
  --shadow-md:0 10px 30px -12px rgba(23,16,25,.18);
  --shadow-lg:0 30px 60px -22px rgba(23,16,25,.28);
  --shadow-brand:0 18px 40px -16px rgba(224,69,42,.45);

  --ease:cubic-bezier(.22,.61,.36,1);
  --t-fast:.18s var(--ease);
  --t:.32s var(--ease);
}

/* ---------- Reset ---------- */
*,*::before,*::after { box-sizing:border-box; }
* { margin:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-sans);
  background:var(--surface);
  color:var(--text);
  line-height:1.65;
  font-size:clamp(1rem, .96rem + .2vw, 1.0625rem);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; background:none; border:none; }
input,textarea,select { font:inherit; color:inherit; }
ul { list-style:none; padding:0; }
:focus-visible { outline:3px solid var(--coral-1); outline-offset:3px; border-radius:6px; }

/* ---------- Typography ---------- */
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:600; line-height:1.08; letter-spacing:-.01em; color:var(--ink); }
h1 { font-size:clamp(2.5rem, 1.6rem + 4.2vw, 4.6rem); font-weight:600; }
h2 { font-size:clamp(2rem, 1.4rem + 2.7vw, 3.2rem); }
h3 { font-size:clamp(1.3rem, 1.1rem + .9vw, 1.7rem); }
h4 { font-size:clamp(1.1rem, 1rem + .4vw, 1.25rem); }
p { color:var(--text); }
strong { font-weight:600; }

.display-serif { font-family:var(--font-display); }
.gradient-text {
  background:var(--brand-grad);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}

/* ---------- Layout helpers ---------- */
.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.25rem, 1rem + 3vw, 2.5rem); }
.container-wide { max-width:var(--container-wide); }
.section { padding-block:clamp(4rem, 2.5rem + 7vw, 7.5rem); }
.section-sm { padding-block:clamp(3rem, 2rem + 4vw, 5rem); }
.center { text-align:center; }
.measure { max-width:62ch; }
.measure-narrow { max-width:48ch; }
.mx-auto { margin-inline:auto; }
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mt-6{margin-top:3rem}
.grid { display:grid; gap:clamp(1.1rem, .8rem + 1vw, 1.75rem); }
.cols-2 { grid-template-columns:repeat(2,1fr); }
.cols-3 { grid-template-columns:repeat(3,1fr); }
.cols-4 { grid-template-columns:repeat(4,1fr); }

/* ---------- Eyebrow label ---------- */
.eyebrow {
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.78rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--coral-2);
}
.eyebrow::before {
  content:""; width:0; height:0;
  border-left:5px solid transparent; border-right:5px solid transparent;
  border-bottom:9px solid var(--coral-2);
  display:inline-block; transform:translateY(-1px);
}
.eyebrow.on-dark { color:var(--gold-1); }
.eyebrow.on-dark::before { border-bottom-color:var(--gold-1); }

.section-head { max-width:64ch; }
.section-head h2 { margin-top:.7rem; }
.section-head p { margin-top:1rem; color:var(--muted); font-size:1.075rem; }
.section-head.center { margin-inline:auto; }

/* ---------- Buttons ---------- */
.btn {
  --pad:.95rem 1.6rem;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:var(--pad); min-height:48px;
  border-radius:999px; font-weight:600; font-size:.97rem; letter-spacing:.01em;
  transition:transform var(--t-fast), box-shadow var(--t), background var(--t), color var(--t), border-color var(--t);
  will-change:transform; position:relative; isolation:isolate; white-space:nowrap;
}
.btn svg { width:18px; height:18px; }
.btn-primary { color:#fff; background:var(--brand-grad); background-size:160% 160%; box-shadow:var(--shadow-brand); }
.btn-primary:hover { transform:translateY(-2px); background-position:100% 50%; box-shadow:0 22px 46px -14px rgba(210,28,158,.5); }
.btn-primary:active { transform:translateY(0); }
.btn-dark { color:var(--text-inv); background:var(--ink); box-shadow:var(--shadow-md); }
.btn-dark:hover { transform:translateY(-2px); background:var(--ink-3); }
.btn-ghost { color:var(--ink); background:transparent; border:1.5px solid var(--ink); }
.btn-ghost:hover { background:var(--ink); color:var(--text-inv); transform:translateY(-2px); }
.btn-ghost.on-dark { color:var(--text-inv); border-color:rgba(255,255,255,.45); }
.btn-ghost.on-dark:hover { background:#fff; color:var(--ink); border-color:#fff; }
.btn-lg { --pad:1.1rem 2rem; min-height:54px; font-size:1.02rem; }
.btn-block { width:100%; }

.link-arrow { display:inline-flex; align-items:center; gap:.5rem; font-weight:600; color:var(--coral-2); transition:gap var(--t-fast), color var(--t-fast); }
.link-arrow svg { width:18px; height:18px; transition:transform var(--t-fast); }
.link-arrow:hover { color:var(--mag-2); }
.link-arrow:hover svg { transform:translateX(4px); }

/* ---------- Brand triangle mark ---------- */
.tri-mark { display:block; object-fit:contain; }

/* ---------- Navbar ---------- */
.nav-wrap { position:fixed; inset:0 0 auto 0; z-index:50; padding:clamp(.6rem,.4rem + .6vw,1rem) 0; transition:padding var(--t); }
.nav {
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding:.55rem .7rem .55rem 1.1rem;
  background:rgba(250,247,242,.72); backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid var(--line); border-radius:999px;
  box-shadow:0 6px 24px -16px rgba(23,16,25,.3);
  transition:box-shadow var(--t), background var(--t), border-color var(--t);
}
.nav-wrap.scrolled .nav { background:rgba(250,247,242,.92); box-shadow:0 12px 30px -18px rgba(23,16,25,.4); }
.brand { display:inline-flex; align-items:center; gap:.6rem; font-family:var(--font-brand); font-weight:700; font-size:1.34rem; letter-spacing:.005em; color:var(--ink); }
.brand .tri-mark { width:32px; height:32px; flex:none; }
.nav-links { display:flex; align-items:center; gap:.15rem; }
.nav-links a {
  position:relative; padding:.55rem .85rem; border-radius:999px;
  font-size:.94rem; font-weight:500; color:var(--text);
  transition:color var(--t-fast), background var(--t-fast);
}
.nav-links a::after {
  content:""; position:absolute; left:.85rem; right:.85rem; bottom:.32rem; height:2px;
  background:var(--brand-grad); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform var(--t);
}
.nav-links a:hover { color:var(--ink); }
.nav-links a:hover::after,
.nav-links a[aria-current="page"]::after { transform:scaleX(1); }
.nav-links a[aria-current="page"] { color:var(--ink); font-weight:600; }
.nav-cta { display:flex; align-items:center; gap:.5rem; }
.nav-toggle { display:none; width:46px; height:46px; border-radius:50%; align-items:center; justify-content:center; border:1px solid var(--line); background:#fff; }
.nav-toggle svg { width:22px; height:22px; }

/* Mobile menu */
.mobile-menu { position:fixed; inset:0; z-index:49; background:var(--ink); color:var(--text-inv);
  display:flex; flex-direction:column; justify-content:center; padding:6rem 2rem 3rem;
  opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity var(--t), transform var(--t), visibility var(--t); }
.mobile-menu.open { opacity:1; visibility:visible; transform:none; }
.mobile-menu nav { display:flex; flex-direction:column; align-items:flex-start; }
.mobile-menu a { display:block; font-family:var(--font-display); font-size:clamp(1.8rem,1.2rem + 3vw,2.6rem); padding:.45rem 0; color:var(--text-inv);
  opacity:0; transform:translateY(14px); transition:opacity .4s var(--ease), transform .4s var(--ease); }
.mobile-menu.open a { opacity:1; transform:none; }
.mobile-menu .m-footer { margin-top:2.5rem; display:flex; flex-direction:column; gap:1rem; opacity:0; transition:opacity .5s ease .25s; }
.mobile-menu.open .m-footer { opacity:1; }

/* ---------- Hero ---------- */
.hero { position:relative; background:var(--ink); color:var(--text-inv); overflow:hidden;
  padding-top:clamp(8rem,6rem + 8vw,11rem); padding-bottom:clamp(4.5rem,3rem + 6vw,7rem); }
.hero::before { content:""; position:absolute; inset:0;
  background:radial-gradient(1100px 520px at 78% -8%, rgba(238,75,46,.30), transparent 60%),
             radial-gradient(820px 480px at 6% 110%, rgba(210,28,158,.26), transparent 60%),
             radial-gradient(620px 420px at 50% 0%, rgba(244,216,30,.12), transparent 55%);
  pointer-events:none; }
.hero .container { position:relative; z-index:2; }
.hero-grid { display:grid; grid-template-columns:1.1fr minmax(320px, 440px); gap:clamp(2rem,1rem + 4vw,4rem); align-items:center; }
.hero h1 { color:var(--text-inv); }
.hero p.lead { color:var(--muted-inv); font-size:clamp(1.05rem,1rem + .4vw,1.25rem); margin-top:1.5rem; max-width:54ch; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.25rem; }
.hero-tagline { margin-top:2.25rem; display:inline-flex; align-items:center; gap:.7rem; color:var(--muted-inv); font-style:italic; font-family:var(--font-display); }
.hero-tagline .bar { width:34px; height:2px; background:var(--brand-grad); }

.hero-visual { position:relative; display:grid; place-items:center; width:100%; max-width:460px; margin-inline:auto; }
.hero-glow { grid-area:1/1; width:82%; aspect-ratio:1; border-radius:50%;
  background:var(--brand-grad); filter:blur(66px); opacity:.3; animation:float 9s ease-in-out infinite; }
.hero-logo-img { grid-area:1/1; position:relative; z-index:1; width:100%; max-width:430px; animation:float 9s ease-in-out infinite; }
.hero-cards { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:clamp(2.2rem,1.6rem + 2.5vw,3.4rem); }
.float-card { background:rgba(255,255,255,.08); border:1px solid var(--line-dark);
  backdrop-filter:blur(10px); border-radius:14px; padding:.78rem .95rem; display:flex; align-items:center; gap:.7rem;
  box-shadow:var(--shadow-lg); color:var(--text-inv); font-size:.9rem; font-weight:500; }
.float-card .ico { width:36px; height:36px; border-radius:10px; display:grid; place-items:center; flex:none;
  background:var(--brand-grad-soft); border:1px solid var(--line-dark); }
.float-card .ico svg { width:20px; height:20px; }

.scroll-cue { position:absolute; left:50%; bottom:1.4rem; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.5rem; color:var(--muted-inv); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; }
.scroll-cue .mouse { width:24px; height:38px; border:2px solid var(--muted-inv); border-radius:14px; position:relative; }
.scroll-cue .mouse::after { content:""; position:absolute; left:50%; top:7px; width:3px; height:7px; border-radius:2px; background:var(--gold-1); transform:translateX(-50%); animation:wheel 1.8s infinite; }

/* ---------- Cards ---------- */
.card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.4rem,1rem + 1.4vw,2rem);
  box-shadow:var(--shadow-sm); transition:transform var(--t), box-shadow var(--t), border-color var(--t); height:100%; }
.card.reveal-hover:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(238,75,46,.4); }
.card h3 { margin-bottom:.5rem; }
.card p { color:var(--muted); font-size:.98rem; }

.icon-badge { width:54px; height:54px; border-radius:15px; display:grid; place-items:center; margin-bottom:1.1rem;
  background:var(--brand-grad-soft); border:1px solid var(--line); color:var(--coral-2); transition:transform var(--t); }
.icon-badge svg { width:26px; height:26px; }
.card.reveal-hover:hover .icon-badge { transform:scale(1.06) rotate(-3deg); }

/* numbered service / step */
.num-badge { width:54px; height:54px; border-radius:15px; display:grid; place-items:center; font-family:var(--font-display);
  font-size:1.3rem; font-weight:600; color:#fff; background:var(--brand-grad); box-shadow:var(--shadow-brand); }

/* feature list with triangle bullets */
.tri-list li { position:relative; padding-left:1.7rem; margin-bottom:.7rem; color:var(--muted); }
.tri-list li::before { content:""; position:absolute; left:0; top:.55em;
  width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:9px solid var(--coral-2); }
.tri-list.on-dark li { color:var(--muted-inv); }
.tri-list.tight li { margin-bottom:.4rem; }

/* ---------- Stats ---------- */
.stats { background:var(--ink); color:var(--text-inv); border-radius:var(--radius-lg); padding:clamp(2rem,1.4rem + 3vw,3.5rem); position:relative; overflow:hidden; }
.stats::before { content:""; position:absolute; right:-60px; top:-60px; width:280px; height:280px; border-radius:50%; background:var(--brand-grad); filter:blur(70px); opacity:.35; }
.stat .num { font-family:var(--font-display); font-weight:600; font-size:clamp(2.4rem,1.8rem + 2.4vw,3.4rem); line-height:1; }
.stat .num .gradient-text { display:inline; }
.stat .lbl { color:var(--muted-inv); margin-top:.5rem; font-size:.95rem; }

/* ---------- Testimonials ---------- */
.quote-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.6rem,1.2rem + 1.5vw,2.4rem); box-shadow:var(--shadow-sm); height:100%; display:flex; flex-direction:column; }
.quote-mark { font-family:var(--font-display); font-size:3.2rem; line-height:.7; background:var(--brand-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.quote-card blockquote { font-family:var(--font-display); font-size:1.18rem; line-height:1.5; color:var(--ink); margin:.8rem 0 1.4rem; }
.quote-author { display:flex; align-items:center; gap:.85rem; margin-top:auto; }
.avatar { width:46px; height:46px; border-radius:50%; flex:none; display:grid; place-items:center; font-weight:700; color:#fff; font-family:var(--font-display); background:var(--brand-grad); }
.quote-author .who strong { display:block; color:var(--ink); }
.quote-author .who span { font-size:.85rem; color:var(--muted); }

/* ---------- Team ---------- */
.team-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform var(--t), box-shadow var(--t); }
.team-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); }
.team-photo { aspect-ratio:4/4.4; position:relative; display:grid; place-items:center; background:linear-gradient(160deg,var(--ink-2),var(--ink)); overflow:hidden; }
.team-img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; transition:transform .5s var(--ease); }
.team-card:hover .team-img { transform:scale(1.04); }
.team-monogram { position:relative; z-index:1; font-family:var(--font-display); font-weight:600; font-size:3.4rem; color:#fff;
  width:120px; height:120px; border-radius:50%; display:grid; place-items:center; background:var(--brand-grad); box-shadow:var(--shadow-lg); }
.team-body { padding:1.3rem 1.4rem 1.6rem; }
.team-body h3 { font-size:1.22rem; }
.team-role { color:var(--coral-2); font-weight:600; font-size:.88rem; margin-top:.2rem; }
.team-exp { color:var(--muted); font-size:.92rem; margin-top:.7rem; }
.tag-row { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1rem; }
.tag { font-size:.74rem; font-weight:500; padding:.3rem .65rem; border-radius:999px; background:var(--surface-2); color:var(--muted); border:1px solid var(--line); }

/* Read-full-bio trigger */
.team-more { margin-top:1.1rem; display:inline-flex; align-items:center; gap:.4rem; font-weight:600; font-size:.86rem; color:var(--coral-2); background:none; padding:.1rem 0; transition:gap var(--t-fast), color var(--t-fast); }
.team-more svg { transition:transform var(--t-fast); }
.team-more:hover { color:var(--mag-2); gap:.65rem; }
.team-full-bio { display:none; }
.team-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.1rem; }
.team-actions .team-more { margin-top:0; }
.team-li { width:34px; height:34px; border-radius:9px; display:grid; place-items:center; flex:none; color:var(--mag-2);
  background:var(--surface-2); border:1px solid var(--line); transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast), border-color var(--t-fast); }
.team-li svg { width:18px; height:18px; }
.team-li:hover { background:var(--brand-grad); color:#fff; border-color:transparent; transform:translateY(-2px); }
.bio-li { display:inline-flex; align-items:center; gap:.45rem; margin-top:.7rem; font-size:.85rem; font-weight:600; color:var(--mag-2); transition:gap var(--t-fast), color var(--t-fast); }
.bio-li svg { width:18px; height:18px; }
.bio-li:hover { color:var(--coral-2); gap:.65rem; }

/* ---------- Bio modal ---------- */
.bio-modal { position:fixed; inset:0; z-index:80; display:grid; place-items:center; padding:clamp(1rem,3vw,2rem); }
.bio-modal[hidden] { display:none; }
.bio-modal-backdrop { position:absolute; inset:0; background:rgba(15,10,18,.62); backdrop-filter:blur(6px); opacity:0; transition:opacity var(--t); }
.bio-modal.open .bio-modal-backdrop { opacity:1; }
.bio-modal-card { position:relative; z-index:1; background:#fff; border-radius:var(--radius-lg); width:100%; max-width:660px; max-height:86vh; overflow-y:auto;
  box-shadow:var(--shadow-lg); padding:clamp(1.5rem,1.1rem + 2vw,2.6rem); opacity:0; transform:translateY(18px) scale(.98); transition:opacity var(--t), transform var(--t); }
.bio-modal.open .bio-modal-card { opacity:1; transform:none; }
.bio-modal-close { position:absolute; top:1rem; right:1rem; width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
  background:var(--surface-2); color:var(--ink); border:1px solid var(--line); transition:background var(--t-fast), transform var(--t-fast); }
.bio-modal-close svg { width:20px; height:20px; }
.bio-modal-close:hover { background:var(--line); transform:rotate(90deg); }
.bio-modal-head { display:flex; gap:1.1rem; align-items:center; margin-bottom:1.4rem; padding-right:2.6rem; }
.bio-modal-img { width:88px; height:88px; border-radius:16px; object-fit:cover; object-position:center top; flex:none; box-shadow:var(--shadow-sm); }
.bio-modal-head h3 { font-size:clamp(1.3rem,1.1rem + .6vw,1.55rem); }
.bio-modal-head .team-role { margin-bottom:.5rem; }
.bio-modal-body { color:var(--muted); }
.bio-modal-body p { line-height:1.72; margin-bottom:1rem; }
.bio-modal-body p:last-child { margin-bottom:0; }
.bio-expertise { font-size:.78rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--coral-2); margin-bottom:1.2rem !important; }
.bio-modal-body .bio-subhead { font-family:var(--font-display); font-weight:600; color:var(--ink); font-size:1.05rem; margin:1.5rem 0 .8rem; }
.bio-modal-body .tri-list { margin-top:.2rem; }
.bio-modal-body .tri-list li { color:var(--muted); }

/* ---------- Approach split ---------- */
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,1rem + 4vw,4.5rem); align-items:center; }
.approach-item { display:flex; gap:1.1rem; padding:1.1rem 0; border-top:1px solid var(--line); }
.approach-item:first-child { border-top:0; }
.approach-num { font-family:var(--font-display); color:var(--coral-2); font-weight:600; font-size:1.1rem; flex:none; width:2.2rem; }
.approach-item h4 { margin-bottom:.25rem; }
.approach-item p { color:var(--muted); font-size:.96rem; }

/* ---------- Media / cards grid ---------- */
.media-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform var(--t), box-shadow var(--t); display:flex; flex-direction:column; height:100%; }
.media-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); }
.media-thumb { aspect-ratio:16/10; position:relative; overflow:hidden; background:linear-gradient(150deg,var(--ink-2),var(--ink)); display:grid; place-items:center; }
.media-thumb .glyph { width:64px; height:64px; opacity:.92; }
.media-thumb.g1 { background:linear-gradient(150deg,#3a1e36,#171019); }
.media-thumb.g2 { background:linear-gradient(150deg,#3b271a,#171019); }
.media-thumb.g3 { background:linear-gradient(150deg,#2c1838,#171019); }
.media-thumb .pill { position:absolute; top:.8rem; left:.8rem; font-size:.72rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  background:rgba(255,255,255,.92); color:var(--ink); padding:.32rem .7rem; border-radius:999px; }
.media-body { padding:1.3rem 1.35rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.media-body .date { font-size:.82rem; color:var(--muted); }
.media-body h3 { font-size:1.18rem; margin:.35rem 0 .55rem; }
.media-body p { color:var(--muted); font-size:.93rem; }
.media-body .link-arrow { margin-top:1.1rem; }

/* ---------- Publication cards ---------- */
.pub-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.1rem,.8rem + 1vw,1.75rem); }
.pub-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; transition:transform var(--t), box-shadow var(--t); }
.pub-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); }
.pub-cover { display:block; position:relative; aspect-ratio:1414/2000; background:var(--surface-2); overflow:hidden; }
.pub-cover img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.pub-card:hover .pub-cover img { transform:scale(1.03); }
.pub-body { padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.55rem; flex:1; }
.pub-type { align-self:flex-start; font-size:.7rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  color:var(--coral-3); background:rgba(242,96,46,.09); border:1px solid rgba(242,96,46,.18); padding:.28rem .6rem; border-radius:999px; }
.pub-title { font-family:var(--font-display); font-weight:600; font-size:1.02rem; line-height:1.32; color:var(--ink); }
.pub-year { font-size:.85rem; color:var(--muted); margin-top:auto; }

/* ---------- Press / media appearance card ---------- */
.press-card { max-width:940px; margin-inline:auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform var(--t), box-shadow var(--t); }
.press-card:hover { box-shadow:var(--shadow-md); }
.press-clip { display:block; position:relative; overflow:hidden; background:var(--ink); }
.press-clip img { width:100%; height:auto; display:block; transition:transform .6s var(--ease); }
.press-clip:hover img { transform:scale(1.02); }
.press-body { padding:clamp(1.4rem,1rem + 1.6vw,2.2rem); }
.press-meta { font-size:.86rem; color:var(--muted); margin-bottom:.6rem; }
.press-pub { font-weight:700; color:var(--coral-2); }
.press-body h3 { font-size:clamp(1.25rem,1.05rem + .9vw,1.7rem); line-height:1.25; }
.press-body p { color:var(--muted); margin-top:.8rem; font-size:.98rem; line-height:1.65; }
.press-body .link-arrow { margin-top:1.2rem; }

/* ---------- Featured video (click-to-play) ---------- */
.video-card { max-width:860px; margin-inline:auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:box-shadow var(--t); }
.video-card:hover { box-shadow:var(--shadow-md); }
.video-frame { position:relative; aspect-ratio:16/9; background:var(--ink); cursor:pointer; overflow:hidden; }
.video-frame .video-thumb, .video-frame iframe { width:100%; height:100%; object-fit:cover; display:block; border:0; }
.video-play { position:absolute; inset:0; display:grid; place-items:center; background:linear-gradient(180deg, rgba(15,10,18,.04), rgba(15,10,18,.28)); transition:background var(--t); }
.video-frame:hover .video-play { background:rgba(15,10,18,.34); }
.video-play .pp { width:76px; height:76px; border-radius:50%; background:var(--brand-grad); box-shadow:var(--shadow-lg); display:grid; place-items:center; transition:transform var(--t-fast); }
.video-frame:hover .video-play .pp { transform:scale(1.08); }
.video-play .pp::before { content:""; width:0; height:0; border-style:solid; border-width:11px 0 11px 18px; border-color:transparent transparent transparent #fff; margin-left:4px; }
.video-frame:focus-visible { outline:3px solid var(--coral-1); outline-offset:3px; }
.video-body { padding:clamp(1.4rem,1rem + 1.6vw,2.2rem); }
.video-body h3 { font-size:clamp(1.2rem,1.05rem + .8vw,1.6rem); line-height:1.3; }
.video-body p { color:var(--muted); margin-top:.8rem; line-height:1.65; }
.video-body .link-arrow { margin-top:1.2rem; }
.video-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(290px,1fr)); gap:clamp(1.1rem,.8rem + 1vw,1.75rem); }
.video-grid .video-card { max-width:none; margin:0; display:flex; flex-direction:column; }
.video-grid .video-body { flex:1; display:flex; flex-direction:column; padding:1.2rem 1.3rem 1.4rem; }
.video-grid .video-body h3 { font-size:1.1rem; line-height:1.3; }
.video-grid .video-body p { font-size:.93rem; margin-top:.6rem; }
.video-grid .video-body .link-arrow { margin-top:auto; padding-top:1.1rem; }
.video-ig { display:grid; place-items:center; background:linear-gradient(135deg,#515bd4,#8134af 32%,#dd2a7b 62%,#f58529 92%); }
.video-ig-badge { display:flex; flex-direction:column; align-items:center; gap:.55rem; color:#fff; text-align:center; transition:transform var(--t-fast); }
.video-ig-badge svg { width:54px; height:54px; }
.video-ig-badge span { font-size:.82rem; font-weight:600; letter-spacing:.02em; }
.video-frame.video-ig:hover .video-ig-badge { transform:scale(1.06); }

/* ---------- Photo gallery + lightbox ---------- */
.gallery { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:clamp(.5rem,.35rem + .4vw,.85rem); }
.gallery-item { display:block; position:relative; aspect-ratio:3/2; overflow:hidden; border-radius:var(--radius-sm); background:var(--surface-2); box-shadow:var(--shadow-sm); cursor:pointer; }
.gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.gallery-item::after { content:""; position:absolute; inset:0; background:rgba(15,10,18,0); transition:background var(--t); }
.gallery-item:hover img { transform:scale(1.06); }
.gallery-item:hover::after { background:rgba(15,10,18,.14); }

.lightbox { position:fixed; inset:0; z-index:90; display:grid; place-items:center; padding:clamp(1rem,3vw,2.5rem); background:rgba(10,7,12,.93); opacity:0; transition:opacity var(--t); }
.lightbox[hidden] { display:none; }
.lightbox.open { opacity:1; }
.lb-figure { margin:0; display:grid; place-items:center; max-width:min(1120px,92vw); max-height:86vh; }
.lb-img { max-width:100%; max-height:86vh; border-radius:8px; box-shadow:0 30px 80px rgba(0,0,0,.5); display:block; }
.lb-btn { position:absolute; width:52px; height:52px; border-radius:50%; display:grid; place-items:center; color:#fff;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(6px); transition:background var(--t-fast), transform var(--t-fast); }
.lb-btn:hover { background:rgba(255,255,255,.26); }
.lb-btn svg { width:24px; height:24px; }
.lb-close { top:1.2rem; right:1.2rem; }
.lb-prev { left:1.2rem; top:50%; transform:translateY(-50%); }
.lb-next { right:1.2rem; top:50%; transform:translateY(-50%); }
.lb-prev:hover, .lb-next:hover { transform:translateY(-50%) scale(1.07); }
.lb-count { position:absolute; bottom:1.3rem; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.82); font-size:.85rem; letter-spacing:.06em; }
@media (max-width:560px){ .lb-btn { width:44px; height:44px; } .lb-close { top:.8rem; right:.8rem; } .lb-prev { left:.6rem; } .lb-next { right:.6rem; } }

/* ---------- Opportunity rows ---------- */
.opp { display:grid; grid-template-columns:auto 1fr auto; gap:1.2rem; align-items:center; padding:1.4rem clamp(1.1rem,.8rem + 1vw,1.8rem);
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); transition:transform var(--t), box-shadow var(--t), border-color var(--t); }
.opp:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:rgba(238,75,46,.35); }
.opp .otype { width:50px; height:50px; border-radius:13px; display:grid; place-items:center; background:var(--brand-grad-soft); color:var(--coral-2); border:1px solid var(--line); flex:none; }
.opp .otype svg { width:24px; height:24px; }
.opp h3 { font-size:1.15rem; }
.opp .ometa { display:flex; flex-wrap:wrap; gap:.4rem .9rem; margin-top:.35rem; color:var(--muted); font-size:.86rem; }
.opp .ometa span { display:inline-flex; align-items:center; gap:.35rem; }
.empty-state { text-align:center; padding:clamp(2.5rem,2rem + 3vw,4rem); border:1.5px dashed var(--line); border-radius:var(--radius-lg); background:#fff; }

/* ---------- CTA band ---------- */
.cta-band { position:relative; background:var(--ink); color:var(--text-inv); border-radius:var(--radius-lg); overflow:hidden;
  padding:clamp(2.5rem,1.8rem + 4vw,4.5rem); text-align:center; }
.cta-band::before { content:""; position:absolute; inset:0;
  background:radial-gradient(700px 320px at 50% -20%, rgba(238,75,46,.4), transparent 60%),
             radial-gradient(560px 300px at 110% 120%, rgba(210,28,158,.36), transparent 60%);
  pointer-events:none; }
.cta-band > * { position:relative; z-index:1; }
.cta-band h2 { color:var(--text-inv); }
.cta-band p { color:var(--muted-inv); }

/* ---------- Contact ---------- */
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,1rem + 3vw,3.5rem); align-items:start; }
.channel { display:flex; gap:1rem; align-items:center; padding:1.05rem 1.15rem; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-sm); transition:transform var(--t-fast), border-color var(--t-fast); }
.channel:hover { transform:translateX(4px); border-color:rgba(238,75,46,.4); }
.channel .ci { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; flex:none; color:#fff; background:var(--brand-grad); }
.channel .ci svg { width:22px; height:22px; }
.channel .cl { font-size:.78rem; color:var(--muted); }
.channel .cv { font-weight:600; color:var(--ink); }

.form-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.5rem,1.1rem + 2vw,2.5rem); box-shadow:var(--shadow-md); }
.field { margin-bottom:1.1rem; }
.field label { display:block; font-size:.86rem; font-weight:600; color:var(--ink); margin-bottom:.45rem; }
.field input,.field textarea,.field select {
  width:100%; padding:.85rem 1rem; border:1.5px solid var(--line); border-radius:12px; background:var(--surface);
  transition:border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast); }
.field textarea { min-height:140px; resize:vertical; }
.field input:focus,.field textarea:focus,.field select:focus { outline:none; border-color:var(--coral-1); background:#fff; box-shadow:0 0 0 4px rgba(242,96,46,.12); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* ---------- Page hero (interior) ---------- */
.page-hero { background:var(--ink); color:var(--text-inv); position:relative; overflow:hidden;
  padding-top:clamp(8rem,6rem + 7vw,10.5rem); padding-bottom:clamp(3rem,2rem + 4vw,5rem); }
.page-hero::before { content:""; position:absolute; inset:0;
  background:radial-gradient(900px 420px at 85% -10%, rgba(238,75,46,.28), transparent 60%),
             radial-gradient(680px 380px at 0% 120%, rgba(210,28,158,.24), transparent 60%); }
.page-hero .container { position:relative; z-index:1; }
.page-hero h1 { color:var(--text-inv); max-width:18ch; }
.page-hero p { color:var(--muted-inv); margin-top:1.1rem; font-size:1.1rem; max-width:60ch; }
.crumbs { display:flex; align-items:center; gap:.5rem; font-size:.85rem; color:var(--muted-inv); margin-bottom:1.1rem; }
.crumbs a:hover { color:var(--gold-1); }
.crumbs .sep { opacity:.5; }

/* ---------- Footer ---------- */
.footer { background:var(--ink); color:var(--muted-inv); padding-top:clamp(3rem,2rem + 4vw,5rem); }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:2.5rem; }
.footer .brand { color:var(--text-inv); margin-bottom:1rem; }
.footer h4 { color:var(--text-inv); font-family:var(--font-sans); font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:1.1rem; font-weight:600; }
.footer ul li { margin-bottom:.6rem; }
.footer ul a { color:var(--muted-inv); transition:color var(--t-fast); }
.footer ul a:hover { color:var(--gold-1); }
.footer .blurb { font-size:.95rem; max-width:34ch; line-height:1.7; }
.socials { display:flex; gap:.6rem; margin-top:1.2rem; }
.socials a { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; border:1px solid var(--line-dark); color:var(--text-inv); transition:transform var(--t-fast), background var(--t-fast), border-color var(--t-fast); }
.socials a:hover { transform:translateY(-3px); background:var(--brand-grad); border-color:transparent; }
.socials svg { width:20px; height:20px; }
.socials-light a { color:var(--ink); border-color:var(--line); }
.socials-light a:hover { color:#fff; border-color:transparent; }
.footer-bottom { border-top:1px solid var(--line-dark); margin-top:clamp(2.5rem,2rem + 2vw,3.5rem); padding:1.6rem 0; display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; font-size:.85rem; }

/* ---------- Skip link ---------- */
.skip-link { position:absolute; left:1rem; top:-60px; z-index:100; background:var(--ink); color:#fff; padding:.7rem 1.1rem; border-radius:10px; transition:top var(--t); }
.skip-link:focus { top:1rem; }

/* ---------- Scroll reveal ---------- */
.reveal { opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in { opacity:1; transform:none; }
.reveal.d1 { transition-delay:.08s } .reveal.d2 { transition-delay:.16s } .reveal.d3 { transition-delay:.24s } .reveal.d4 { transition-delay:.32s } .reveal.d5 { transition-delay:.40s }

/* ---------- Keyframes ---------- */
@keyframes float { 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-16px) } }
@keyframes wheel { 0%{ opacity:0; transform:translate(-50%,0) } 30%{ opacity:1 } 100%{ opacity:0; transform:translate(-50%,12px) } }

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .footer-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-visual { max-width:360px; margin-top:.5rem; }
}
@media (max-width:860px){
  .nav-links, .nav-cta .btn { display:none; }
  .nav-toggle { display:flex; }
  .cols-4 { grid-template-columns:repeat(2,1fr); }
  .cols-3 { grid-template-columns:1fr; }
  .pub-grid { grid-template-columns:repeat(2,1fr); }
  .split, .cols-2, .contact-grid, .field-row { grid-template-columns:1fr; }
  .opp { grid-template-columns:auto 1fr; }
  .opp .obtn { grid-column:2; justify-self:start; }
}
@media (max-width:560px){
  .cols-4 { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .btn { width:100%; }
  .hero-ctas .btn, .nav-cta .btn { width:auto; }
  .hero-ctas { flex-direction:column; align-items:stretch; }
  .hero-ctas .btn { width:100%; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal { opacity:1 !important; transform:none !important; }
}

/* ============================================================
   Accessibility toolbar + user preference modes
   ============================================================ */
.a11y { position:fixed; left:1rem; bottom:1rem; z-index:75; }
.a11y-toggle { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--brand-grad); box-shadow:var(--shadow-lg); border:2px solid #fff; transition:transform var(--t-fast); }
.a11y-toggle:hover { transform:scale(1.07); }
.a11y-toggle svg { width:28px; height:28px; }
.a11y-panel { position:absolute; left:0; bottom:calc(100% + .6rem); width:272px; background:#fff; color:var(--ink);
  border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-lg); padding:1rem;
  opacity:0; transform:translateY(10px); transition:opacity var(--t), transform var(--t); }
.a11y-panel[hidden] { display:none; }
.a11y.a11y-open .a11y-panel { opacity:1; transform:none; }
.a11y-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.9rem; }
.a11y-head strong { font-family:var(--font-display); font-size:1.1rem; color:var(--ink); }
.a11y-x { width:32px; height:32px; border-radius:8px; display:grid; place-items:center; color:var(--muted); background:var(--surface-2); border:1px solid var(--line); }
.a11y-x svg { width:18px; height:18px; }
.a11y-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:.7rem; }
.a11y-name { font-size:.92rem; font-weight:600; color:var(--ink); }
.a11y-step { display:flex; align-items:center; gap:.4rem; }
.a11y-step button { width:34px; height:34px; border-radius:8px; background:var(--surface-2); border:1px solid var(--line); font-weight:700; font-size:.95rem; color:var(--ink); transition:background var(--t-fast); }
.a11y-step button:hover { background:var(--line); }
.a11y-step span { min-width:46px; text-align:center; font-size:.82rem; color:var(--muted); }
.a11y-opt { display:flex; align-items:center; gap:.6rem; width:100%; text-align:left; padding:.6rem .7rem; border-radius:10px;
  font-size:.92rem; font-weight:500; color:var(--ink); background:var(--surface); border:1px solid var(--line); margin-bottom:.4rem;
  transition:background var(--t-fast), border-color var(--t-fast); }
.a11y-opt::before { content:""; width:20px; height:20px; border-radius:6px; border:2px solid var(--line); flex:none;
  background-position:center; background-repeat:no-repeat; background-size:14px; }
.a11y-opt[aria-pressed="true"] { border-color:var(--coral-2); background:var(--brand-grad-soft); }
.a11y-opt[aria-pressed="true"]::before { border-color:transparent; background-color:var(--coral-2);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.a11y-opt:hover { border-color:var(--coral-2); }
.a11y-reset { width:100%; text-align:center; padding:.55rem; margin-top:.5rem; border-radius:10px; font-size:.86rem; font-weight:600;
  color:var(--coral-2); background:none; border:1px dashed var(--line); transition:background var(--t-fast); }
.a11y-reset:hover { background:var(--surface-2); }
@media (max-width:560px){ .a11y-panel { width:238px; } }

/* Mode: Pause animations */
html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
html.a11y-motion .reveal { opacity:1 !important; transform:none !important; }

/* Mode: Legible font */
html.a11y-font { --font-display:"Verdana","Segoe UI",Tahoma,Arial,sans-serif; --font-sans:"Verdana","Segoe UI",Tahoma,Arial,sans-serif; --font-brand:"Verdana","Segoe UI",Arial,sans-serif; }
html.a11y-font body { line-height:1.75; letter-spacing:.012em; }
html.a11y-font .gradient-text { letter-spacing:0; }

/* Mode: Highlight links */
html.a11y-links a:not(.btn):not(.brand):not(.a11y-toggle):not(.gallery-item):not(.video-frame) { text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:2px; }

/* Mode: Bigger cursor */
html.a11y-cursor, html.a11y-cursor * { cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l14 8-6 1.6 3.4 7-3 1.4-3.4-7L5 17z' fill='%23111' stroke='%23fff' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E") 3 1, auto; }

/* Mode: High contrast */
html.a11y-contrast { --text:#000; --muted:#000; --text-inv:#fff; --muted-inv:#fff; --surface:#fff; --surface-2:#fff; --white:#fff;
  --line:#000; --line-dark:rgba(255,255,255,.85); --ink:#000; --ink-2:#000; --ink-3:#000; --coral-2:#000; --coral-3:#000; --mag-2:#000; }
html.a11y-contrast body { background:#fff; }
html.a11y-contrast .hero, html.a11y-contrast .page-hero, html.a11y-contrast .footer, html.a11y-contrast .cta-band,
html.a11y-contrast .stats, html.a11y-contrast .mobile-menu, html.a11y-contrast .team-photo, html.a11y-contrast .media-thumb,
html.a11y-contrast .press-clip, html.a11y-contrast .video-frame { background:#000 !important; }
html.a11y-contrast .hero::before, html.a11y-contrast .page-hero::before, html.a11y-contrast .cta-band::before,
html.a11y-contrast .team-photo::after, html.a11y-contrast .stats::before, html.a11y-contrast .hero-glow { display:none !important; }
html.a11y-contrast .nav { background:#fff !important; border:2px solid #000; }
html.a11y-contrast .gradient-text { -webkit-text-fill-color:#000; color:#000; background:none; }
html.a11y-contrast .hero .gradient-text, html.a11y-contrast .page-hero .gradient-text, html.a11y-contrast .cta-band .gradient-text, html.a11y-contrast .stats .gradient-text { -webkit-text-fill-color:#fff; color:#fff; }
html.a11y-contrast a { text-decoration:underline; }
html.a11y-contrast .btn-primary, html.a11y-contrast .btn-dark { background:#000 !important; color:#fff !important; border:2px solid #000; box-shadow:none; }
html.a11y-contrast .btn-ghost { border:2px solid #000; color:#000; background:#fff; }
html.a11y-contrast .btn-ghost.on-dark { border-color:#fff; color:#fff; background:#000; }
html.a11y-contrast .card, html.a11y-contrast .quote-card, html.a11y-contrast .team-card, html.a11y-contrast .media-card,
html.a11y-contrast .pub-card, html.a11y-contrast .press-card, html.a11y-contrast .video-card, html.a11y-contrast .form-card,
html.a11y-contrast .channel, html.a11y-contrast .opp, html.a11y-contrast .gallery-item,
html.a11y-contrast .field input, html.a11y-contrast .field textarea, html.a11y-contrast .field select { border:2px solid #000 !important; }
html.a11y-contrast .icon-badge, html.a11y-contrast .tag, html.a11y-contrast .pub-type { border:1px solid #000; background:#fff; color:#000; }
html.a11y-contrast .eyebrow, html.a11y-contrast .team-role, html.a11y-contrast .press-pub, html.a11y-contrast .link-arrow { color:#000 !important; }
html.a11y-contrast .eyebrow::before { border-bottom-color:#000 !important; }
html.a11y-contrast .eyebrow.on-dark, html.a11y-contrast .hero-tagline, html.a11y-contrast .crumbs, html.a11y-contrast .crumbs a { color:#fff !important; }
html.a11y-contrast .eyebrow.on-dark::before { border-bottom-color:#fff !important; }
html.a11y-contrast :focus-visible { outline:3px solid #000; outline-offset:2px; }
