/* main.css — consolidated (2026-02-25)
   Notes:
   - Includes former base.css, layout.css, components.css, and home.css overrides.
   - megamenu.css remains separate and should be linked after main.css.
*/

/* =========================================================
   GLOBAL STYLES
   - Tokens, resets, typography, layout grid, components, utilities
   - Applies to all pages
========================================================= */

/* ===== BASE (was base.css) ===== */
/* base.css — tokens + base elements */

:root{
  /* =========================
     COLOR SYSTEM
  ========================== */

  /* Primary Accent */
  --c-ink:#FFC800;
  --c-accent:#FFC800;

  /* Text */
  --c-text:#F4F6FA;          /* crisp primary text */
  --c-muted:#D2DAE6;         /* readable muted copy */

  /* Background Layers (dark nav → medium hero → lighter page canvas) */
  --c-bg:#0B0F14;            /* deepest ink (used for contrast when needed) */
  --c-hero:#101B28;          /* hero base tone */
  --c-content:#667788;       /* standardized page canvas (home page grey) */
  --c-surface:#182231;       /* cards: darker than content */
  --c-border:#3A4C66;        /* borders */



  /* =========================
     TYPOGRAPHY
  ========================== */

  --font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";

  --fs-1: 2.25rem; /* h1 */
  --fs-2: 1.75rem; /* h2 */
  --fs-3: 1.25rem; /* h3 */
  --fs-b: 1rem;    /* body */
  --lh: 1.6;

  /* =========================
     LAYOUT
  ========================== */

  --container: 1200px;
  --gutter: 24px;

  /* Spacing scale (8px base) */
  --s-1: 8px;
  --s-2: 16px;
  --s-3: 24px;
  --s-4: 32px;
  --s-5: 48px;
  --s-6: 64px;

  /* Radius + shadow */
  --r: 14px;
  --shadow: 0 10px 30px rgba(0,0,0,.25);

  /* =========================
     PAGE CANVAS (light/dark)
     - Default: light canvas
     - Opt-in: add .page--dark on <body>
  ========================== */

  --page-bg: var(--c-content);
  --page-text: var(--c-text);
}

*{ box-sizing:border-box; }
html,body{ height:100%; }

body{
  margin:0;
  font-family:var(--font-sans);
  color: var(--page-text);
  /* Default page background (shared across pages) */
  background: var(--page-bg);
  line-height:var(--lh);
}

/* Optional explicit light canvas (default) */
.page--light{
  --page-bg: var(--c-content);
  --page-text: var(--c-text);
}

/* Dark canvas variant (opt-in) */
.page--dark{
  --page-bg: var(--c-bg);
  --page-text: var(--c-text);
}

/* Utility wrapper if needed inside a page */
.page-canvas{
  background: var(--page-bg);
  color: var(--page-text);
}

a{ color:var(--c-ink); text-decoration:none; }
a:hover{ text-decoration:underline; }

img{ max-width:100%; height:auto; display:block; }

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 var(--gutter);
}

.section{ padding: var(--s-6) 0; }
.section--sm{ padding: var(--s-4) 0; }

/* Optional lifted section background */
.section--panel{ background: var(--c-content); }

.hr{ border:0; border-top:1px solid var(--c-border); margin:0; }

.kicker{
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--c-ink);
  font-size:.875rem;
}

h1{ font-size:var(--fs-1); line-height:1.15; margin:0 0 var(--s-2); }
h2{ font-size:var(--fs-2); line-height:1.2; margin:0 0 var(--s-2); }
h3{ font-size:var(--fs-3); line-height:1.25; margin:0 0 var(--s-1); }
p{ margin:0 0 var(--s-2); }
.small{ font-size:.9rem; color:var(--c-muted); }

/* ===== LAYOUT (was layout.css) ===== */
/* layout.css — grids + responsive */
.grid{ display:grid; gap: var(--s-3); }
.grid-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-4{ grid-template-columns: repeat(4, minmax(0,1fr)); }

@media (max-width: 980px){
  .grid-4{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .grid-3{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .grid-2{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
  .grid-4, .grid-3{ grid-template-columns: 1fr; }
}

/* ===== COMPONENTS (was components.css) ===== */
/* BUILD: 2026-02-19 mega-menu-grid-fix */
/* components.css — header, footer, widgets */

.site-header{
  position:sticky;
  top:0;
  z-index:200;
  background: var(--c-surface);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--c-border);
  overflow:visible;
}

.header-inner{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 0;
  overflow:visible;
}



/* ===============================
   Primary Nav (REQUIRED)
================================ */

.site-header .nav-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 18px;
}

.site-header .nav-item{
  position: relative;
}

.site-header .nav-link,
.site-header .nav-btn{
  background: transparent;
  border: 0;
  color: var(--c-text);
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 10px;
  border-radius: 999px;
}

.site-header .nav-link:hover,
.site-header .nav-btn:hover{
  background: rgba(255,255,255,.06);
  text-decoration: none;
}

.site-header .nav-toggle{
  display: none; /* hidden on desktop */
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.18);
  color: var(--c-text);
  border-radius: 10px;
  padding: 8px 10px;
}

/* Mobile */
@media (max-width: 900px){
  .site-header .nav-toggle{ display: inline-flex; }
  .site-header .nav{ display: none; }
  .site-header .nav.is-open{ display: block; }
  .site-header .nav-list{
    display: grid;
    gap: 10px;
    padding-top: 12px;
  }
}

/* ===============================
   Brand
================================ */

.brand{
  display:flex;
  gap:14px;
  align-items:center;
  color:var(--c-ink);
  text-decoration:none;
}

.brand:hover{ text-decoration:none; }
.brand-logo{
  height:40px;
  width:auto;
  display:block;
}


.brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.05;
}

.brand-name{
  font-weight:900;
  font-size:2.35rem;
  letter-spacing:-0.005em;
  display:inline-flex;
  align-items:baseline;
}

.brand-catalog{
  color:#8A8F98;
  font-weight:400;
}

.brand-intel{
  color:#3C80C1;
  font-weight:900;
}

.brand-io{
  color:#8A8F98;
  font-weight:400;
  font-size:0.65em;
  vertical-align:baseline;
  margin-left:2px;
}

.brand-tagline{
  font-weight:500;
  font-size:1.05rem;
}

/* ===============================
   Accessibility Helpers
================================ */

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* ===============================
   Buttons
================================ */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  font-weight:800;
  background:rgba(255,255,255,.06);
  color:var(--c-text);
}

.btn--primary{
  background:var(--c-ink);
  color:#111;
  border-color:transparent;
}


.btn:hover{
  filter:brightness(.98);
  text-decoration:none;
}

/* ===============================
   Hero + Cards
================================ */

.hero{
  background:var(--c-surface);
  border-bottom:1px solid var(--c-border);
}

.hero-inner{ padding:var(--s-6) 0; }

.card{
  border:1px solid var(--c-border);
  border-radius:var(--r);
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  padding:var(--s-3);
  box-shadow:var(--shadow);
}

/* Improve contrast inside cards */
.card h3{ color:var(--c-text); }
.card .small{ color:var(--c-muted); }

.card p{ margin:0; }

.icon{
  width:64px;
  height:64px;
  border-radius:16px;
  background:var(--c-surface);
  border:1px solid var(--c-border);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:1.8rem;
  color:var(--c-ink);
}

/* ===============================
   Footer (Refined)
================================ */

.site-footer{
  background: var(--c-surface);
  color:var(--c-text);
  padding:56px 0 28px;
  margin-top:0;
  border-top:1px solid rgba(255,255,255,.08);
}

.footer-grid{
  display:grid;
  gap:60px;
  grid-template-columns:2fr 1fr 1fr 1fr;
  align-items:start;
}

.site-footer h4{
  font-size:.9rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  opacity:.8;
  margin-bottom:14px;
}

.footer-tagline{
  font-weight:700;
  margin-bottom:14px;
  opacity:.95;
}

.footer-audience{
  opacity:.75;
  margin-bottom:16px;
  line-height:1.6;
}

/* Footer Contact Styling (UPDATED) */
.footer-contact a{
  font-weight:400;
  color:var(--c-text);
  border-bottom:1px solid rgba(255,255,255,.35);
  padding-bottom:2px;
}

.footer-contact strong{
  font-weight:700;
}

.footer-contact a:hover{
  border-bottom-color:rgba(255,255,255,.75);
}

.footer-links{
  list-style:none;
  padding:0;
  margin:0;
}

.footer-links li{ margin-bottom:9px; }

.site-footer a{
  color:var(--c-text);
  text-decoration:none;
}

.site-footer a:hover{ color:var(--c-accent); }

.footer-bottom{
  margin-top:50px;
  padding-top:20px;
  border-top:1px solid var(--c-border);
}

.site-footer .small{
  color:var(--c-muted);
  font-size:.9rem;
}

/* ===============================
   Footer Wordmark
================================ */

.footer-logo{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:6px;
}

.footer-icon{
  width:56px;
  height:56px;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:1.6rem;
  line-height:1;
  color:var(--c-text);
}

.footer-wordmark{
  font-weight:900;
  font-size:2.1rem;
  letter-spacing:-0.005em;
  display:inline-flex;
  align-items:baseline;
  line-height:1;
}

.footer-catalog{ color:#FFFFFF; font-weight:400; }
.footer-intel{ color:#8EC5FF; font-weight:900; }
.footer-io{
  color:var(--c-muted);
  font-weight:400;
  font-size:0.65em;
  margin-left:2px;
  vertical-align:baseline;
}

.site-footer .footer-tagline{
  color:var(--c-text);
}

/* ===== SITE OVERRIDES (was main.css refinements) ===== */
/* === Header Refinements (2026-02-18) === */

/* Remove link styling from logo block */
.header a,
.header a:visited,
.header a:hover {
    text-decoration: none;
}

.header .logo,
.header .logo * {
    color: inherit;
}

/* =========================================================
   PAGE OVERRIDES — Home (index.php)
   - Hero background image overlay strength
   - Home page canvas background
   NOTE: Home has no <body class>, so we scope by unique selectors (e.g., .hero--ckpi).
========================================================= */
/* =========================
   HERO: keep image visible
========================= */

/* Ensure the hero establishes a stacking context */
.hero.hero--ckpi{
  position: relative;
  isolation: isolate;
}


.hero.hero--ckpi::before{
  content: "";
  position: absolute;
  inset: 0;
  background: url("/assets/img/ckpi-hero-bg2.png") center center / cover no-repeat;
  z-index: 0;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}

/* Subtle screen overlay (medium-dark, but not crushing the image) */
.hero.hero--ckpi::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(8, 15, 30, 0.3) !important; /* was 0.65 — too strong */
  z-index: 1;
  pointer-events: none;
}

/* Keep hero content above overlay */
.hero.hero--ckpi .container,
.hero.hero--ckpi .hero-content{
  position: relative;
  z-index: 2;
}


/* Hero buttons */
.hero.hero--ckpi .btn.btn-primary,
.hero.hero--ckpi .btn.btn-secondary{
  background: #8A8F98;              /* logo gray */
  border: 1px solid rgba(0,0,0,0.18);
  color: #ffffff;                   /* white text */
  transition: all 0.2s ease;
}

.hero.hero--ckpi .btn.btn-primary:hover,
.hero.hero--ckpi .btn.btn-secondary:hover{
  background: #6f7681;              /* slightly darker gray */
  border-color: rgba(0,0,0,0.35);
  color: #ffffff;
}

/* Hero body copy (exclude the mantra line) */
.hero.hero--ckpi p:not(.hero-mantra){
  font-size: 1.2rem;
  line-height: 1.75;
  max-width: 980px;
}

/* Ensure CTA buttons have enough contrast on dark hero */
.hero.hero--ckpi .btn{
  text-shadow: none;
}

/* Core Focus panel kicker contrast */
.section.content-panel .kicker{
  color: var(--c-ink);
}

/* Keep card text readable even if panel styles change */
.section.content-panel .card{
  background: var(--c-surface);
  color: var(--c-text);
}
.section.content-panel .card p,
.section.content-panel .card li{
  color: var(--c-muted);
}
.section.content-panel .card a{
  color: var(--c-ink);
}
.section.content-panel .card a:hover{
  color: var(--c-accent);
}

/* Hero mantra line — Measure. Focus. Execute. */
.hero.hero--ckpi .hero-mantra{
  font-size: 1.5rem;       /* larger than body copy */
  font-weight: 800;
  letter-spacing: 0.02em;
  margin-top: 1.25rem;
  margin-bottom: 1.5rem;
  color: var(--c-text);
}

/* Home page spacing tighten */
.hero-inner{ padding: var(--s-5) 0; }   /* was --s-6 */
.section{ padding: var(--s-5) 0; }      /* was --s-6 */

/* =========================================================
   PAGE OVERRIDES — Professional History (/professional-history/)
   Notes:
   - This page uses <main class="ph"> with internal classes prefixed .ph-
   - Styles were previously in a page-specific stylesheet; keep them here
     so the page does not depend on megamenu.css.
========================================================= */

/* Professional History main canvas should inherit the shared page background */
main.ph{
  background: transparent;
}

/* Hero */
/* Shared hero style used by Professional History + Education */
.ph-hero{
  background: var(--c-hero);
  border-bottom: 1px solid var(--c-border);
  padding: var(--s-6) 0 var(--s-4);
}

.ph-kicker{
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .82rem;
  color: var(--c-ink);
  margin-bottom: var(--s-1);
}

.ph-title{
  font-size: var(--fs-1);
  margin: 0 0 var(--s-1);
}

.ph-strongline{
  color: rgba(255,255,255,.82);
  max-width: 75ch;
}

/* Layout */
.ph-wrap{
  padding: var(--s-5) 0 var(--s-6);
}

.ph-content{
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: var(--s-4);
  align-items: start;
}

@media (max-width: 980px){
  .ph-content{ grid-template-columns: 1fr; }
}

/* Profile card */
.ph-profile{
  border: 1px solid var(--c-border);
  border-radius: var(--r);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  box-shadow: var(--shadow);
  padding: var(--s-3);
  position: sticky;
  top: 92px; /* clears sticky header */
}

@media (max-width: 980px){
  .ph-profile{ position: static; top: auto; }
}

.ph-avatar{
  width: 170px;
  height: 170px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(0,0,0,.18);
  margin-bottom: var(--s-2);
}

.ph-avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ph-profile h3{
  margin: 0 0 6px;
  font-size: 1.2rem;
}

.ph-role{
  color: var(--c-muted);
  font-weight: 800;
  margin-bottom: var(--s-2);
}

.ph-profile p{
  color: var(--c-muted);
}

.ph-profile .profile-mantra{
  margin-top: var(--s-2);
  font-weight: 900;
  color: var(--c-text);
}

.ph-block-label{
  margin-top: var(--s-3);
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .78rem;
  color: rgba(255,255,255,.72);
}

.ph-chipline{
  margin-top: 10px;
  line-height: 1.6;
  color: rgba(255,255,255,.78);
  font-size: .95rem;
}

/* Timeline */
.ph-timeline-head{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--s-2);
  margin-bottom: var(--s-2);
}

.ph-mini{
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 900;
  font-size: .78rem;
  color: rgba(255,255,255,.7);
  margin-bottom: 6px;
}

.ph-timeline h2{
  margin: 0;
}

.ph-list{
  position: relative;
  display: grid;
  gap: var(--s-3);
  padding-left: 34px; /* room for the bar + dots */
}

.ph-bar{
  position: absolute;
  left: 14px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: rgba(255,255,255,.14);
  border-radius: 2px;
}

.ph-item{
  position: relative;
  border: 1px solid rgba(255,255,255,.12);
border-radius: var(--r);
  background: rgba(20,32,45,.80);
box-shadow: var(--shadow);
  padding: var(--s-3);
  display: grid;
  grid-template-columns: 180px 1fr;
  grid-template-areas:
    "media head"
    "media body";
  gap: var(--s-3);
}

@media (max-width: 700px){
  .ph-item{
    grid-template-columns: 1fr;
    grid-template-areas:
      "head"
      "media"
      "body";
  }
}

/* --- PH Role Card Surface Refinement --- */
.ph-item{
  background: linear-gradient(
    180deg,
    rgba(27,42,58,.96),
    rgba(27,42,58,.92)
  );
}


/* --- PH Featured Card Accent Refinement --- */
.ph-item--featured{
  border-color: rgba(255,200,0,.15);
  box-shadow:
    0 16px 38px rgba(0,0,0,.28),
    0 0 0 1px rgba(255,200,0,.15);
}

.ph-dot{
  position: absolute;
  left: -34px;
  top: 26px;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: var(--c-ink);
  box-shadow: 0 0 0 6px rgba(255,200,0,.15);
}

/* --- PH Timeline Dot Refinement --- */
.ph-dot{
  background: #e6b800;  /* slightly less saturated gold */
  box-shadow: 0 0 0 6px rgba(255,200,0,.12);
}

.ph-media{ grid-area: media; }
.ph-head{ grid-area: head; }
.ph-body{ grid-area: body; }

.ph-cardframe{
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.14);
}

.ph-cardframe img{
  width: 100%;
  height: auto;
  display: block;
}

.ph-company-line{
  font-weight: 900;
  font-size: 1.1rem;
  margin-bottom: 4px;
}

.ph-role-line{
  font-weight: 800;
  color: rgba(255,255,255,.88);
  margin-bottom: 2px;
}

.ph-subrole-line,
.ph-date-line,
.ph-locale{
  color: rgba(255,255,255,.72);
  font-size: 1.8rem; /* was 1.8rem */
}

.ph-highlight{
  background: rgba(255,255,255,0.14);
  color: #ffffff;
  padding: 6px 12px;
  border-radius: 6px;
  display: inline-block;
}

.ph-date-line{
  margin-top: 6px;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: .2px;
}

.ph-body p,
.ph-body li{
  color: var(--c-muted);
}

.ph-body a{
  color: var(--c-ink);
}

.ph-body a:hover{
  color: var(--c-accent);
}

/* Inline “HTML card” blocks (if present) */
.ph-htmlcard{
  margin-top: var(--s-2);
  padding: var(--s-2);
  border-radius: 14px;
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.12);
}

/* --- PH Text Hierarchy Refinement --- */

/* Company name stays strong */
.ph-company{
  color: #ffffff;
}

/* Role line slightly softer */
.ph-role{
  color: rgba(255,255,255,.90);
}

/* Body text slightly toned down for hierarchy */
.ph-body,
.ph-body p,
.ph-body li{
  color: rgba(255,255,255,.88);
}

/* Bullet points slightly softer still */
.ph-body ul{
  color: rgba(255,255,255,.82);
}

/* ===== HOME PAGE LOGO MARQUEE===== */
.logo-marquee{
  padding: 36px 0 18px 0;
  background: rgba(0,0,0,0.10);
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.logo-marquee__wrap{
  overflow: hidden;
  border-radius: 18px;
}

.logo-marquee__track{
  display: flex;
}

.logo-marquee__row{
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 34px;
  padding: 16px 22px;
  flex: 0 0 auto;
  min-width: 100%;
  animation: logoMarquee 48s linear infinite;
}

.logo-marquee__wrap:hover .logo-marquee__row{
  animation-play-state: paused;
}

.logo-marquee__row img{
  display: inline-block;
  max-height: 160px;   /* controls overall band height */
  height: auto;
  width: auto;
  object-fit: contain;
  padding: 0 14px;
  opacity: 0.95;
  vertical-align: middle;
  transition: opacity 160ms ease, transform 160ms ease;
}

.logo-marquee__row img:hover{
  opacity: 1;
  transform: translateY(-1px);
}

@keyframes logoMarquee{
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}


/* =========================
   Education Page
========================= */

.edu-hero{
  padding: 28px 0 10px;
}

.edu-quote{
  margin: 0 0 10px;
  padding: 18px 18px;
  border-radius: 16px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
}

.edu-quote p{
  margin: 0 0 8px;
  font-size: 1.25rem;
  line-height: 1.35;
  color: rgba(255,255,255,0.92);
}

.edu-quote footer{
  color: rgba(255,255,255,0.70);
  font-size: 0.95rem;
}

.edu-intro{
  margin: 12px 0 0;
  color: rgba(255,255,255,0.72);
  max-width: 70ch;
}

.edu-section{
  padding:0;
  border-top:none;
}

.edu-section__head h2{
  margin: 0 0 6px;
}

.edu-section__head p{
  margin: 0 0 14px;
  color: rgba(255,255,255,0.70);
  max-width: 80ch;
}

.edu-logo-grid{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
}

.edu-logo-grid--tight{
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.edu-logo-card{
  border-radius: 16px;
  background: #FFFFFF;
  border: 1px solid rgba(255,255,255,0.08);
  padding: 14px 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 86px;
}

.edu-logo-card img{
  max-height: 105px;     /* try 90, 100, even 110 */
  width: auto;
  max-width: 100%;
  object-fit: contain;
  opacity: 1;
}

/* Responsive */
@media (max-width: 980px){
  .edu-logo-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .edu-logo-grid--tight{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 620px){
  .edu-logo-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .edu-logo-grid--tight{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .edu-quote p{ font-size: 1.1rem; }
}

.edu-list{
  margin: 0;
  padding-left: 18px;
  color: rgba(255,255,255,0.78);
}

.edu-list li{
  margin: 10px 0;
}

.degree-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 14px;
}

@media (max-width: 980px){
  .degree-grid{ grid-template-columns: 1fr; }
}

.degree-card{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: #FFFFFF;
  padding: 18px 18px 16px;
}

.degree-card h3{
  margin: 0 0 8px;
  font-size: 1.05rem;
}

.degree-meta{
  margin: 0 0 10px;
  color: rgba(255,255,255,.70);
}

.degree-detail{
  margin: 0;
  color: rgba(255,255,255,.86);
  font-weight: 600;
}

/* ===============================
   Degree Card Logos
================================ */

.degree-card{
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 16px;
  padding: 22px 20px;
  transition: transform .15s ease, box-shadow .15s ease;
}

.degree-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
}

.degree-logo{
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 16px;
}

.degree-logo img{
  max-height: 60px;   /* adjust if needed */
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

.email-buttons {
  display: flex;
  gap: 16px;            /* space between buttons */
  margin-top: 16px;
  flex-wrap: wrap;      /* allows stacking on small screens */
}

/* =========================================================
   Education page — lighter body panel (below hero)
   ---------------------------------------------------------
   Applies the same "content panel" surface used on the home page
   to the Education page body (Certifications + below).
========================================================= */
.edu-body.section--panel{
  background: var(--c-content);
  padding: clamp(28px, 4vw, 56px) 0;
}

/* Tighten the bottom spacing under the logo grid a bit */
.edu-section .edu-logo-grid{
  margin-bottom: 14px;
}

/* Ensure logos scale consistently inside cards */
.edu-logo-card__logo img{
  max-height: 56px;
  width: auto;
  height: auto;
  display: block;
  margin: 0 auto;
  object-fit: contain;
}

.edu-section,
.ce-section {
  margin-bottom: 48px;
}

.edu-section h2,
.ce-section h2 {
  margin-bottom: 18px;
}

.site-main{
  background: var(--c-content);
}

/* ===============================
   Formal Education Cards (Refined)
================================ */

.degree-card{
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  padding: 12px 24px;
  text-align: center;
  transition: transform .15s ease, box-shadow .15s ease;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.degree-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(0,0,0,.10);
}

.degree-logo{
  margin-bottom: 10px;
}

.degree-logo img{
  max-height: 100px;   
  width: auto;
  max-width: 90%;
  object-fit: contain;
}

.degree-title{
  font-size: 1.0rem;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 2px;
}

.degree-school{
  font-size: .90rem;
  color: #555;
  font-weight: 500;
  opacity: .75;
  margin-top: 0;
}

/* Fix degree text contrast on white cards (old markup support) */
.degree-card h3,
.degree-card .degree-meta,
.degree-card .degree-detail{
  color: #1a1a1a !important;
}

.degree-card .degree-meta{
  opacity: 0.85;
  font-weight: 600;
}

.degree-card .degree-detail{
  opacity: 1;
  font-weight: 700;
}



/* =========================================================
   Professional History — Timeline layout (cards wider + body spans)
   Paste near the existing .ph-item / .ph-cardframe rules
========================================================= */

/* Wider media column (business card) */
.ph-item{
  grid-template-columns: 240px 1fr;
  grid-template-areas:
    "media head"
    "body  body";
}

/* Give the featured role a touch more width */
.ph-item--featured{
  grid-template-columns: 260px 1fr;
}

/* Ensure the body truly spans full width */
.ph-body{
  grid-area: body;
}

/* Smaller rounded corners on “business card” surfaces */
.ph-cardframe{
  border-radius: 10px;
}

/* GS XXI uses the HTML card style (not an <img>) — match radius */
.ph-htmlcard{
  border-radius: 10px;
}

.ce-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 40px;
}

.ce-columns ul{
  list-style:none;
  padding:0;
  margin:0;
}

.ce-columns li{
  padding:6px 0;
  font-size:.95rem;
}

.section-divider{
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:40px;
}

/* Home-only logo sizing normalization (mixed SVG/PNG/JPG/WEBP/AVIF) */

.client-marquee-card .logo-marquee__row img{
  height: 100px;      /* your target visual height */
  width: auto;
  object-fit: contain;
  display: block;
  padding: 0 22px;    /* adjust density */
}

.client-marquee-card .logo-marquee__row img{
  height: 82px;   /* try 80–85px */
  width: auto;
  object-fit: contain;
  padding: 0 28px;
}

/* =========================================================
   Client Logo Marquee — normalization + per-logo scaling
   Drop into /assets/css/main.css (or your marquee css file)
   ========================================================= */

/* Track: keep all items vertically aligned */
.logo-marquee-track{
  display:flex;
  align-items:center;
  gap: 18px;               /* optional: consistent spacing */
}

/* Slot: every logo gets the same "box" so visual size normalizes */
.logo-item{
  width: 170px;            /* controls horizontal slot size */
  height: 84px;            /* controls vertical slot size */
  display:flex;
  align-items:center;
  justify-content:center;
  flex: 0 0 auto;
  padding: 0 14px;
}

/* Base image rules */
.logo-item img{
  display:block;
  max-width: 100%;
  max-height: 62px;        /* primary normalization control */
  width:auto;
  height:auto;
  object-fit:contain;
  transform-origin:center center;
  will-change: transform;
}

/* Scale up small logos */
.logo-sm img{ transform: scale(1.15); }   /* slightly small */
.logo-xs img{ transform: scale(1.30); }   /* very small */

/* Scale down large logos */
.logo-lg img{ transform: scale(0.88); }   /* slightly large */
.logo-xl img{ transform: scale(0.72); }   /* very large */

/* Optional: slow the marquee a bit for easier QA (adjust as needed)
   Apply this to whatever class is actually animated in your build.
*/
.logo-marquee-track{
  animation-duration: 60s; /* scrolling speed */
}

/* =========================================================
   Logo Marquee — ensure per-logo sizing works inside the white card
   (Keeps existing marquee styling; just makes .logo-item rules win)
   ========================================================= */

.client-marquee-card .logo-marquee__row{
  padding: 14px 18px; /* slightly tighter inside the card */
}


/* Don't let the older .logo-marquee__row img padding/max-height fight the new system */
.client-marquee-card .logo-marquee__row img{
  padding: 0 !important;
  max-height: none !important;
  height: auto !important;

  /* soften logos slightly so the row doesn't overpower the section */
  opacity: .8;
  transition: opacity .2s ease, transform .2s ease;
}

/* brighten logo when hovered */
.client-marquee-card .logo-marquee__row img:hover{
  opacity: 1;
}


/* The normalization box (already in your CSS, but scoping here makes it bulletproof) */
.client-marquee-card .logo-item{
  width: 170px;
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  padding: 0 14px;
}

.client-marquee-card .logo-item img{
  display: block;
  max-width: 100%;
  max-height: 62px;
  width: auto;
  height: auto;
  object-fit: contain;
  transform-origin: center center;
}

/* Per-logo scaling */
.client-marquee-card .logo-sm img{ transform: scale(1.15); }
.client-marquee-card .logo-xs img{ transform: scale(1.30); }
.client-marquee-card .logo-lg img{ transform: scale(0.88); }
.client-marquee-card .logo-xl img{ transform: scale(0.72); }

/* logo sizing normalization */

.logo-xs img{
  height:28px;
}

.logo-sm img{
  height:34px;
}

.logo-md img{
  height:42px;
}

.logo-lg img{
  height:50px;
}

.logo-xl img{
  height:60px;
}

/* prevent logos from touching */
.logo-item{
  padding:0 26px;
}

/* large square logos */
.logo-square img{
  height:44px;
}

.logo-item{
  display:flex;
  align-items:center;
}

.stat{
  font-weight:800;
  color:var(--c-ink);
}


  /* Home-only: white card for client logos */
  .client-marquee-card{
    background:#fff;
    border:1px solid rgba(0,0,0,.10);
    border-radius:18px;
    box-shadow: 0 14px 34px rgba(0,0,0,.18);
    padding: 18px 18px 10px;
  }

  .client-marquee-card .label{
    color:#0b1220;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
    font-size:.85rem;
    margin: 0 0 10px;
  }

  /* Tame the huge logos (JD, etc.) */
  .client-marquee-card .logo-marquee__row img{
    max-height: 120px;
    padding: 0 18px;
  }

  /* Keep rounded corners on the white card */
  .client-marquee-card .logo-marquee__wrap{
    border-radius:14px;
  }
  
  .logo-marquee{
  padding: 48px 0;   /* even vertical spacing */
}

.client-impact-headline{
  color:#ffffff;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.9rem;
  margin-bottom:18px;
}

.client-marquee-card{
  background:#ffffff;
  border-radius:18px;
  padding:24px 20px;
  box-shadow: 0 18px 40px rgba(0,0,0,.20);
}
  
.hero-icp{
  font-weight:600;
  margin-top:10px;
  opacity:.95;
  margin-bottom: 24px;
  font-size:2.0rem;
}

.hero-body{
  color: rgba(255,255,255,.85);
}

.catalogiq-feature-card{
  position: relative;
}

.catalogiq-brochure-wrap{
  float: right;
  width: 250px;
  margin: 4px 0 18px 28px;
  text-align: center;
}

.catalogiq-brochure-preview{
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid rgba(20,40,70,.18);
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  transition: transform .2s ease, box-shadow .2s ease;
}

.catalogiq-brochure-preview:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(0,0,0,.22);
}

.catalogiq-brochure-caption{
  margin-top: 8px;
  font-size: 14px;
  font-weight: 700;
}

.catalogiq-brochure-caption a{
  text-decoration: none;
}

@media (max-width: 900px){
  .catalogiq-brochure-wrap{
    float: none;
    width: 220px;
    margin: 18px auto;
  }
}