/* ==========================================================================
   MAIN — page layout & section-specific styling
   ========================================================================== */

section { padding-block: var(--space-16); }
section.tight { padding-block: var(--space-10); }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background: var(--gradient-mesh);
  color: #fff;
  overflow: hidden;
  padding-top: 6rem;
}
.hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image: repeating-linear-gradient(115deg, rgba(255,255,255,0.03) 0 1px, transparent 1px 64px);
  pointer-events: none;
}
.hero__grid {
  position: relative; z-index: 2;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-10);
  align-items: center;
  width: 100%;
}
@media (max-width: 1000px) { .hero__grid { grid-template-columns: 1fr; } }
.hero h1 {
  font-size: var(--fs-h1);
  color: #fff;
  overflow: hidden;
}
.hero h1 .line { display: block; overflow: hidden; }
.hero h1 .line span {
  display: inline-block;
  transform: translateY(115%);
  animation: hero-line-up 900ms var(--ease-out-expo) forwards;
}
.hero h1 .line:nth-child(2) span { animation-delay: 90ms; }
.hero h1 .line:nth-child(3) span { animation-delay: 180ms; color: var(--color-teal-400); }
@keyframes hero-line-up { to { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .hero h1 .line span { animation: none; transform: none; }
}

.hero p.lede {
  margin-top: var(--space-6);
  font-size: var(--fs-body-lg);
  color: var(--color-text-inverse-muted);
  max-width: 540px;
  opacity: 0; animation: fade-up 800ms var(--ease-out-expo) 420ms forwards;
}
.hero .btn-row { margin-top: var(--space-8); display: flex; gap: var(--space-4); flex-wrap: wrap;
  opacity: 0; animation: fade-up 800ms var(--ease-out-expo) 560ms forwards; }
@keyframes fade-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .hero p.lede, .hero .btn-row { opacity: 1; animation: none; } }

.hero__media { position: relative; }
.hero__media .media-slot { aspect-ratio: 4/5; }
.hero__media .floating-card {
  position: absolute;
  bottom: -1.5rem; left: -1.5rem;
  background: #fff;
  color: var(--color-ink);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
  box-shadow: var(--shadow-lg);
  display: flex; align-items: center; gap: var(--space-3);
  animation: float-y 5s ease-in-out infinite;
}
@keyframes float-y { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (max-width: 640px) { .hero__media .floating-card { left: 0.75rem; bottom: -1rem; padding: var(--space-3) var(--space-4); } }
.floating-card__ring {
  width: 44px; height: 44px; border-radius: 50%;
  background: conic-gradient(var(--color-teal-500) 0% 82%, var(--color-slate-200) 82% 100%);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 0.7rem; font-weight: 700;
}
.floating-card__ring::before { content: "98%"; background: #fff; width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.floating-card strong { display: block; font-size: 0.95rem; }
.floating-card span { font-size: 0.78rem; color: var(--color-text-muted); }

.scroll-cue {
  position: absolute; bottom: var(--space-8); left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  color: var(--color-text-inverse-muted); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase;
  z-index: 2;
}
.scroll-cue__line { width: 1px; height: 34px; background: linear-gradient(#fff, transparent); animation: scroll-cue 1.8s ease-in-out infinite; }
@keyframes scroll-cue { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* ---------- Trusted by ---------- */
.trusted-by { background: var(--color-mist-50); padding-block: var(--space-8); }
.trusted-by .eyebrow { justify-content: center; display: flex; margin-bottom: var(--space-6); }

/* ---------- Stats section ---------- */
.stats-section { background: var(--color-navy-900); }

/* ---------- About preview / split sections ---------- */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-10);
  align-items: center;
}
@media (max-width: 900px) { .split { grid-template-columns: 1fr; } }
.split--reverse .split__media { order: 2; }
@media (max-width: 900px) { .split--reverse .split__media { order: 0; } }

/* ---------- Services teaser on home ---------- */
.services-teaser .card { display: flex; flex-direction: column; height: 100%; }
.services-teaser .card .btn--ghost { margin-top: auto; align-self: flex-start; }

/* ---------- Corporate solutions band ---------- */
.corporate-band {
  background: var(--color-navy-800);
  color: #fff;
  border-radius: var(--radius-lg);
  padding: var(--space-10);
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--space-8);
  align-items: center;
}
@media (max-width: 900px) { .corporate-band { grid-template-columns: 1fr; } }
.corporate-band h2 { color: #fff; }
.corporate-band p { color: var(--color-text-inverse-muted); margin-top: var(--space-4); }
.corporate-band ul { margin-top: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); }
.corporate-band li { display: flex; gap: 0.6rem; font-size: 0.94rem; color: var(--color-text-inverse-muted); align-items: flex-start; }
.corporate-band li::before { content: "✓"; color: var(--color-teal-400); font-weight: 700; }

/* ---------- Page hero (interior pages) ---------- */
.page-hero {
  background: var(--gradient-mesh);
  color: #fff;
  padding-top: 9rem;
  padding-bottom: var(--space-12);
}
.page-hero h1 { color: #fff; font-size: var(--fs-h2); max-width: 760px; }
.page-hero p { margin-top: var(--space-5); color: var(--color-text-inverse-muted); font-size: var(--fs-body-lg); max-width: 620px; }
.page-hero .breadcrumb { font-family: var(--font-mono); font-size: 0.78rem; color: var(--color-text-inverse-muted); margin-bottom: var(--space-5); display: flex; gap: 0.4rem; }
.page-hero .breadcrumb a:hover { color: #fff; }

/* ---------- Course catalogue ---------- */
.catalogue-toolbar {
  display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; justify-content: space-between;
  margin-bottom: var(--space-8);
  padding: var(--space-5);
  background: var(--color-mist-50);
  border-radius: var(--radius-md);
}
.catalogue-toolbar .search-field { position: relative; flex: 1; min-width: 220px; }
.catalogue-toolbar .search-field input { width: 100%; padding: 0.7rem 1rem 0.7rem 2.4rem; border-radius: var(--radius-pill); border: 1.5px solid var(--color-slate-300); }
.catalogue-toolbar .search-field svg { position: absolute; left: 0.85rem; top: 50%; transform: translateY(-50%); }
.filter-pills { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.filter-pill {
  padding: 0.5rem 1rem; border-radius: var(--radius-pill);
  border: 1.5px solid var(--color-slate-300);
  font-size: 0.85rem; font-weight: 600; color: var(--color-slate-600);
  transition: all var(--dur-fast);
}
.filter-pill[aria-pressed="true"] { background: var(--color-navy-800); border-color: var(--color-navy-800); color: #fff; }

.course-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.course-card .media-slot { border-radius: 0; aspect-ratio: 16/10; }
.course-card__body { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); flex: 1; }
.course-card__meta { display: flex; gap: var(--space-3); flex-wrap: wrap; font-size: 0.78rem; color: var(--color-text-muted); font-family: var(--font-mono); }
.course-card__footer { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding-top: var(--space-4); border-top: 1px solid var(--color-border); }
.course-card__price { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: var(--color-navy-800); }
.course-card__price small { display: block; font-family: var(--font-body); font-weight: 400; font-size: 0.7rem; color: var(--color-text-muted); }

/* ---------- Service detail rows ---------- */
.service-row { padding-block: var(--space-10); border-bottom: 1px solid var(--color-border); }
.service-row:last-child { border-bottom: none; }
.service-row .split { align-items: flex-start; }
.service-row__list { margin-top: var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); }
.service-row__list li { display: flex; gap: 0.6rem; font-size: 0.94rem; }
.service-row__list li::before { content: "—"; color: var(--color-teal-500); font-weight: 700; }
.service-row__tags { margin-top: var(--space-5); display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* ---------- Contact page ---------- */
.contact-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--space-10); }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-info-card { background: var(--color-navy-900); color: #fff; border-radius: var(--radius-lg); padding: var(--space-8); }
.contact-info-card h3 { color: #fff; margin-bottom: var(--space-6); }
.contact-method { display: flex; gap: var(--space-4); align-items: flex-start; padding-block: var(--space-4); border-top: 1px solid rgba(255,255,255,0.1); }
.contact-method:first-of-type { border-top: none; }
.contact-method__icon { width: 40px; height: 40px; border-radius: 10px; background: rgba(20,184,166,0.15); color: var(--color-teal-400); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-method strong { display: block; font-size: 0.92rem; }
.contact-method span, .contact-method a { font-size: 0.86rem; color: var(--color-text-inverse-muted); }
.map-slot { margin-top: var(--space-6); aspect-ratio: 16/9; }
.form-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-8); box-shadow: var(--shadow-md); }
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
@media (max-width: 560px) { .form-row-2 { grid-template-columns: 1fr; } }

/* ---------- Utility ---------- */
.text-center { text-align: center; }
.mt-0 { margin-top: 0 !important; }
.max-w-prose { max-width: 640px; }
.bg-mist { background: var(--color-mist-50); }
.bg-navy { background: var(--color-navy-900); color: #fff; }
.bg-navy h2, .bg-navy h3 { color: #fff; }

/* ===== Phase: Consultium homepage and brand refinement ===== */
.brand__lockup{height:44px;width:auto;object-fit:contain;object-position:left center}
.site-header.is-scrolled .brand__lockup{height:38px}
.hero--consultium{position:relative;isolation:isolate;overflow:hidden;background:var(--gradient-mesh);color:#fff;min-height:760px;padding-top:9rem}
.hero--consultium h1{color:#fff;font-family:'Manrope',sans-serif;font-weight:800;letter-spacing:-.055em;font-size:clamp(3.1rem,6.4vw,6.4rem);max-width:820px}
.hero--consultium h1 span{color:#2dd4c4}
.hero--consultium .lede{color:#d7e5f5;max-width:720px;font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.75}
.hero__copy{position:relative;z-index:2}.hero__glow{position:absolute;border-radius:50%;filter:blur(8px);pointer-events:none;z-index:-1}.hero__glow--one{width:420px;height:420px;right:10%;top:6%;background:rgba(20,184,166,.14)}.hero__glow--two{width:300px;height:300px;left:-100px;bottom:5%;background:rgba(45,212,196,.1)}
.hero__proof{display:flex;align-items:center;gap:.8rem;margin-top:2rem;color:#9fb4cc;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.hero__proof i{width:4px;height:4px;border-radius:50%;background:#14b8a6}
.hero__media--brand{min-height:500px;display:grid;place-items:center}.brand-stage{position:relative;width:min(500px,90vw);aspect-ratio:1;display:grid;place-items:center;filter:drop-shadow(0 35px 70px rgba(0,0,0,.25))}.brand-stage__halo{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,rgba(20,184,166,.28),rgba(20,184,166,.05) 48%,transparent 70%);animation:haloBreath 4.6s ease-in-out infinite}.brand-stage__grid{position:absolute;inset:8%;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 38px rgba(255,255,255,.018),0 0 0 76px rgba(255,255,255,.012)}.brand-stage__logo{position:relative;width:210px;height:210px;padding:46px;border-radius:48px;background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);transform:perspective(900px) rotateY(0deg) translateZ(0);animation:logoPopTilt 5.2s ease-in-out infinite}.brand-stage__logo:after{content:"";position:absolute;inset:0;border-radius:48px;box-shadow:inset 14px 14px 30px rgba(255,255,255,.08),inset -20px -20px 35px rgba(0,0,0,.15)}.brand-stage__logo img{width:100%;height:100%;filter:drop-shadow(0 18px 20px rgba(0,0,0,.25))}.brand-stage__label{position:absolute;bottom:10%;font-family:'Manrope',sans-serif;font-size:1rem;font-weight:800;letter-spacing:.22em;color:#fff;text-align:center}.brand-stage__label small{font-size:.62rem;letter-spacing:.35em;color:#2dd4c4}.ecosystem-promise{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:end}.ecosystem-promise h2{font-family:'Manrope',sans-serif;font-weight:800}.ecosystem-promise>p{color:var(--color-text-muted);font-size:1.05rem;line-height:1.75}.stat-block--ecosystem .stat__num{font-family:'Manrope',sans-serif;font-weight:800}.about-visual{position:relative;overflow:hidden;border-radius:24px;box-shadow:var(--shadow-lg);min-height:420px}.about-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.95) contrast(1.04)}.about-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(6,21,41,.18),rgba(20,184,166,.1))}.about-visual span{position:absolute;z-index:2;left:1.2rem;bottom:1.2rem;color:#fff;font-weight:700;background:rgba(6,21,41,.72);padding:.7rem 1rem;border-radius:999px;backdrop-filter:blur(8px)}.capability-band{display:grid!important;grid-template-columns:1fr .8fr;gap:3rem;align-items:center}.capability-orbit{position:relative;aspect-ratio:1;max-width:380px;margin:auto;border-radius:50%;background:radial-gradient(circle,#14b8a6 0 12%,transparent 12.5%),radial-gradient(circle,transparent 45%,rgba(20,184,166,.12) 46%,transparent 47%),radial-gradient(circle,transparent 62%,rgba(255,255,255,.08) 63%,transparent 64%);border:1px solid rgba(255,255,255,.12);animation:orbitBreath 6s ease-in-out infinite}.capability-orbit>div{position:absolute;padding:.55rem .8rem;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.12em}.capability-orbit>div:nth-child(1){top:10%;left:50%;transform:translateX(-50%)}.capability-orbit>div:nth-child(2){right:4%;top:50%;transform:translateY(-50%)}.capability-orbit>div:nth-child(3){bottom:10%;left:50%;transform:translateX(-50%)}.capability-orbit>div:nth-child(4){left:4%;top:50%;transform:translateY(-50%)}.capability-orbit__core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:'Manrope',sans-serif;font-weight:800;font-size:2.6rem;color:#fff}.section-actions{display:flex;justify-content:center;margin-top:2.5rem}.testimonial-card--single{max-width:760px;margin:0 auto;text-align:center}.news-icon{font-family:'JetBrains Mono',monospace;font-weight:800;color:#0e9488;letter-spacing:.12em;margin-bottom:1rem}
@keyframes logoPopTilt{0%,72%,100%{transform:perspective(900px) rotateY(0deg) rotateX(0deg) scale(1)}78%{transform:perspective(900px) rotateY(-17deg) rotateX(4deg) scale(1.045)}84%{transform:perspective(900px) rotateY(12deg) rotateX(-2deg) scale(1.03)}90%{transform:perspective(900px) rotateY(0deg) rotateX(0deg) scale(1)}}
@keyframes haloBreath{0%,100%{transform:scale(.95);opacity:.65}50%{transform:scale(1.08);opacity:1}}
@keyframes orbitBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
@media(max-width:900px){.ecosystem-promise,.capability-band{grid-template-columns:1fr}.hero--consultium{min-height:auto}.hero__media--brand{min-height:420px}.brand-stage{width:360px}}
@media(max-width:600px){.brand__lockup{height:34px}.hero--consultium{padding-top:7rem}.hero__proof{flex-wrap:wrap}.hero__proof i{display:none}.hero__media--brand{min-height:330px}.brand-stage{width:300px}.brand-stage__logo{width:160px;height:160px;padding:36px;border-radius:34px}.brand-stage__label{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.brand-stage__halo,.brand-stage__logo,.capability-orbit{animation:none}}

/* ===== PHASE 5 — GLOBAL PREMIUM INTERFACE FINISH ===== */
:root{--ll-glass:rgba(255,255,255,.78);--ll-glass-dark:rgba(10,27,45,.72);--ll-line:rgba(13,27,42,.10);--ll-glow:0 24px 70px rgba(13,27,42,.12)}
body{background:linear-gradient(180deg,#fff 0%,#f7fafc 45%,#fff 100%);font-family:'Poppins',system-ui,sans-serif}
h1,h2,h3,h4,h5,h6{font-family:'Poppins',system-ui,sans-serif;letter-spacing:-.035em}
.site-header{backdrop-filter:blur(18px) saturate(150%);background:rgba(255,255,255,.86);box-shadow:0 1px 0 rgba(13,27,42,.06)}
.site-header .brand__lockup{filter:drop-shadow(0 8px 14px rgba(13,27,42,.12));transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s}
.site-header .brand:hover .brand__lockup{transform:translateY(-2px) scale(1.02);filter:drop-shadow(0 12px 22px rgba(13,27,42,.18))}
.btn,.primary-btn,.secondary-btn,.ghost-btn{font-family:'Poppins',system-ui,sans-serif;font-weight:700;letter-spacing:-.01em;box-shadow:0 8px 24px rgba(13,27,42,.08);transition:transform .25s ease,box-shadow .25s ease,filter .25s ease}
.btn:hover,.primary-btn:hover,.secondary-btn:hover,.ghost-btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(13,27,42,.14)}
.card,.glass-panel,.form-card,.contact-info-card{box-shadow:var(--ll-glow);border-color:var(--ll-line)}
.card{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,250,252,.88));transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.card:hover{transform:translateY(-5px);box-shadow:0 30px 80px rgba(13,27,42,.15);border-color:rgba(0,167,157,.25)}
section{position:relative}
section:not(.hero--consultium)::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 85% 10%,rgba(0,167,157,.045),transparent 28%)}
@media(prefers-reduced-motion:reduce){.btn,.primary-btn,.secondary-btn,.ghost-btn,.card,.site-header .brand__lockup{transition:none}.card:hover,.btn:hover,.primary-btn:hover,.secondary-btn:hover,.ghost-btn:hover{transform:none}}

/* ========================================================================
   PHASE 23 — MOBILE LAUNCH HARDENING
   ======================================================================== */
@media (max-width: 1100px) {
  .site-header { padding-block: .75rem; }
  .site-header__inner { gap: .75rem; }
  .brand img { height: 32px; }
  .primary-nav { display: none; }
  .site-header .header-actions { display: none; }
  .menu-toggle { display: flex; margin-left: auto; }
  .container { padding-inline: 18px; }
}
@media (max-width: 700px) {
  section { padding-block: 3.5rem; }
  .hero { min-height: auto; padding-top: 7.5rem; padding-bottom: 4.5rem; }
  .hero__grid { gap: 2.5rem; }
  .hero h1 { font-size: clamp(2.15rem, 10vw, 3.4rem); line-height: 1.04; }
  .hero p.lede { font-size: 1rem; }
  .hero .btn-row, .btn-row { width: 100%; gap: .65rem; }
  .hero .btn-row .btn, .btn-row .btn { flex: 1 1 100%; min-width: 0; text-align: center; }
  .hero__media--brand { min-height: 300px !important; }
  .brand-stage { max-width: 100%; margin-inline: auto; }
  .corporate-band { padding: 1.5rem; border-radius: 18px; }
  .catalogue-toolbar { padding: 1rem; }
  .catalogue-toolbar .search-field { min-width: 100%; }
  .footer-grid { grid-template-columns: 1fr !important; }
  .stat-block, .stat-block--ecosystem { grid-template-columns: 1fr !important; }
  .sbu-grid, .card-grid, .model-grid { grid-template-columns: 1fr !important; }
  .page-hero, .sbu-hero { padding-top: 7.5rem; }
  table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  pre, code { overflow-wrap: anywhere; }
  input, select, textarea { max-width: 100%; }
}
@media (max-width: 420px) {
  .container { padding-inline: 14px; }
  .brand img { height: 29px; }
  .mobile-nav { padding-inline: 18px; }
  .mobile-nav a { font-size: 1.45rem; }
  .hero { padding-top: 6.75rem; }
  .hero__media .floating-card { left: .5rem; right: .5rem; bottom: -.75rem; }
}
