/* =====================================================================
   style.css — global site chrome: theme tokens, typography, buttons,
   navbar, footer, marketing/public pages, alerts.
   Loaded on every page (public + authenticated). Breakpoint-specific
   rules live in responsive.css; authenticated app-shell/dashboard UI
   lives in dashboard.css.
   ===================================================================== */

/* ===================== ROOT / THEME ===================== */
:root{
  --primary: #6D5DF6;
  --primary-dark: #5847e0;
  --primary-light: #ECEAFF;
  --accent: #00D9A6;
  --dark: #11132B;
  --navy: #11132B;
  --text: #1B1D2A;
  --text-muted: #65697d;
  --bg: #ffffff;
  --bg-soft: #f6f7fb;
  --bg-soft-2: #eef0fa;
  --border: #e6e8f0;
  --card-bg: #ffffff;
  --shadow: 0 10px 30px -10px rgba(17, 19, 43, .12);
  --radius: 16px;
  --radius-sm: 10px;
  --font-head: 'Lexend', 'Inter', sans-serif;
  --font-body: 'Inter', sans-serif;
}

[data-theme="dark"]{
  --dark: #f5f6fb;
  --text: #eef0fb;
  --text-muted: #a6abc4;
  --bg: #0c0d1f;
  --bg-soft: #12142b;
  --bg-soft-2: #181a35;
  --border: #262848;
  --card-bg: #14152e;
  --primary-light: #1c1a3d;
  --shadow: 0 10px 30px -10px rgba(0,0,0,.5);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  transition:background .25s ease, color .25s ease;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5{font-family:var(--font-head); color:var(--dark); line-height:1.15; margin:0;}
p{color:var(--text-muted); line-height:1.65; margin:0;}
a{color:inherit; text-decoration:none;}
ul{list-style:none; margin:0; padding:0;}
img{max-width:100%; display:block;}

.container{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
}

/* ===================== BUTTONS ===================== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 22px;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  cursor:pointer;
  border:1px solid transparent;
  transition:transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, background .25s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0); transition-duration:.08s;}
.btn-primary{
  background:linear-gradient(135deg, var(--primary), #8677ff);
  color:#fff;
  box-shadow:0 10px 24px -8px rgba(109,93,246,.55);
}
.btn-primary:hover{background:linear-gradient(135deg, var(--primary-dark), var(--primary)); box-shadow:0 14px 30px -8px rgba(109,93,246,.65);}
.btn-ghost{background:transparent; color:var(--text);}
.btn-ghost:hover{background:var(--bg-soft);}
.btn-outline{border-color:var(--border); color:var(--text); background:transparent;}
.btn-outline:hover{border-color:var(--primary); color:var(--primary); box-shadow:0 8px 20px -10px rgba(109,93,246,.35);}
.btn-light{background:#fff; color:var(--primary-dark); box-shadow:0 10px 24px -8px rgba(0,0,0,.18);}
.btn-light:hover{box-shadow:0 14px 28px -8px rgba(0,0,0,.24);}
.btn-outline-light{border-color:rgba(255,255,255,.5); color:#fff;}
.btn-outline-light:hover{background:rgba(255,255,255,.12); border-color:#fff;}
.btn-lg{padding:14px 28px; font-size:1rem;}
.btn-sm{padding:8px 16px; font-size:.85rem;}

/* ===================== ALERTS (Django messages framework) ===================== */
.alert{
  border-radius:var(--radius-sm); padding:12px 16px; margin-bottom:18px;
  font-size:.88rem; font-weight:500; border:1px solid transparent;
}
.alert-success{background:#e3faf3; color:#057a5c; border-color:#b7f1de;}
.alert-error, .alert-danger{background:#fdecec; color:#c2273a; border-color:#f8c9ce;}
.alert-info{background:var(--primary-light); color:var(--primary-dark); border-color:var(--primary-light);}
.alert-warning{background:#fff6e0; color:#8a5a00; border-color:#ffe6a8;}

[data-theme="dark"] .alert-success{background:#0c2a22; color:#5fe3bc; border-color:#134536;}
[data-theme="dark"] .alert-error,
[data-theme="dark"] .alert-danger{background:#301316; color:#ff8f97; border-color:#4a1c20;}
[data-theme="dark"] .alert-info{background:var(--primary-light); color:#c9c3ff; border-color:transparent;}
[data-theme="dark"] .alert-warning{background:#2e2408; color:#ffd479; border-color:#4a3a0e;}

/* ===================== NAVBAR ===================== */
.nav{
  position:sticky; top:0; z-index:100;
  background:color-mix(in srgb, var(--navy) 92%, transparent);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; height:88px;}
.brand{display:flex; align-items:center; gap:8px; font-family:var(--font-head); font-weight:700; font-size:1.2rem; color:#fff;}
.brand-mark{display:inline-flex; color:var(--primary);}
.brand-dot{color:var(--primary);}
.brand-icon{height:26px; width:auto; display:block;}
.brand-logo{height:60px; width:auto; display:block;}
.nav-links{display:flex; align-items:center; gap:22px;}
.nav-links a{font-size:.9rem; font-weight:500; color:rgba(255,255,255,.72); transition:color .15s; white-space:nowrap;}
.nav-links a:hover{color:#fff;}
.nav-actions{display:flex; align-items:center; gap:10px;}
.nav-actions .btn-ghost{color:#fff;}
.nav-actions .btn-ghost:hover{background:rgba(255,255,255,.1);}
.nav-actions .btn-outline{color:#fff; border-color:rgba(255,255,255,.35);}
.nav-actions .btn-outline:hover{background:rgba(255,255,255,.12); border-color:#fff; color:#fff;}
.icon-btn{
  width:38px; height:38px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); color:#fff;
  cursor:pointer;
}
.icon-btn:hover{border-color:var(--primary); color:var(--primary-light);}
.icon-moon{display:none;}
[data-theme="dark"] .icon-sun{display:none;}
[data-theme="dark"] .icon-moon{display:block;}

.hamburger{display:none; flex-direction:column; justify-content:center; gap:5px; width:38px; height:38px; background:none; border:none; cursor:pointer; flex-shrink:0;}
.hamburger span{height:2px; width:22px; background:#fff; border-radius:2px; transition:.2s;}
.mobile-nav-cta{display:none;}

/* ===================== NAVBAR NOTIFICATION BELL ===================== */
.notif-bell{position:relative; display:inline-flex; align-items:center; justify-content:center; color:#fff;}
.notif-bell svg{display:block;}
.notif-badge{
  position:absolute; top:-4px; right:-6px; background:#e5484d; color:#fff; font-size:.62rem; font-weight:700;
  min-width:15px; height:15px; border-radius:999px; display:flex; align-items:center; justify-content:center; padding:0 3px;
}
.nav-links .notif-bell{color:rgba(255,255,255,.72);}
.nav-links .notif-bell:hover{color:#fff;}

/* ===================== HERO ===================== */
.hero{position:relative; padding:90px 0 60px; overflow:hidden;}
.hero-glow{
  position:absolute; inset:-200px -200px auto auto; width:600px; height:600px;
  background:radial-gradient(circle, rgba(109,93,246,.25), transparent 70%);
  filter:blur(40px); z-index:0;
}
.hero-inner{position:relative; z-index:1; display:grid; grid-template-columns:1.1fr .9fr; gap:50px; align-items:center;}
.pill{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--primary-light); color:var(--primary-dark);
  font-size:.8rem; font-weight:600; padding:6px 14px; border-radius:999px; margin-bottom:18px;
}
.pill-soft{background:var(--bg-soft-2); color:var(--text-muted); font-size:.72rem;}
.hero-copy h1{font-size:3.1rem; font-weight:800; letter-spacing:-1px; margin-bottom:18px;}
.hero-sub{font-size:1.08rem; max-width:520px; margin-bottom:30px;}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:34px;}
.hero-trust{font-size:.82rem; color:var(--text-muted);}
.trust-logos{display:flex; gap:8px; margin-top:8px; font-weight:600; color:var(--text);}

.hero-visual{position:relative; min-height:380px;}
.float-card{
  position:absolute; background:var(--card-bg); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow); padding:18px;
  animation:floaty 6s ease-in-out infinite;
}
.card-match{top:0; left:10%; width:280px; animation-delay:0s;}
.card-stat{top:48%; right:0; width:190px; animation-delay:.6s;}
.card-bench{bottom:0; left:0; width:260px; animation-delay:1.2s;}
@keyframes floaty{0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);}}

.card-row{display:flex; align-items:center; gap:10px;}
.card-row strong{display:block; font-size:.92rem;}
.card-row small{color:var(--text-muted); font-size:.78rem;}
.match-score{margin-left:auto; background:var(--accent); color:#053; font-size:.72rem; font-weight:700; padding:4px 9px; border-radius:999px; background-color:#d4f9ee; color:#057a5c;}
.card-tags{display:flex; gap:6px; flex-wrap:wrap; margin-top:12px;}
.card-tags span{font-size:.7rem; font-weight:600; background:var(--bg-soft-2); color:var(--text-muted); padding:4px 9px; border-radius:999px;}

.card-stat small{color:var(--text-muted); font-size:.75rem;}
.card-stat strong{display:block; font-size:1.5rem; font-family:var(--font-head); margin:4px 0;}
.card-stat .up{color:#0fae84; font-size:.75rem; font-weight:700;}

.card-bench small{color:var(--text-muted); font-size:.75rem;}
.card-bench ul{margin-top:10px; display:flex; flex-direction:column; gap:8px;}
.card-bench li{display:flex; align-items:center; gap:8px; font-size:.8rem; font-weight:600;}
.card-bench li span{color:var(--text-muted); width:16px;}
.card-bench li b{margin-left:auto; color:var(--primary);}

.avatar{
  width:42px; height:42px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; font-size:.85rem;
}
.grad-1{background:linear-gradient(135deg,#6D5DF6,#9C8CFF);}
.grad-2{background:linear-gradient(135deg,#00D9A6,#1FB6C9);}
.grad-3{background:linear-gradient(135deg,#FF8A65,#FFC371);}
.grad-4{background:linear-gradient(135deg,#5847e0,#00D9A6);}

/* ===================== STATS BAR ===================== */
.stats-bar{background:var(--navy); padding:38px 0;}
.stats-grid{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.stat{text-align:center; flex:1; min-width:120px;}
.stat strong{display:block; font-family:var(--font-head); font-size:1.9rem; color:#fff; font-weight:700;}
.stat small{display:block; color:#a6abc4; font-size:.8rem; margin-top:4px;}

/* ===================== SECTION GENERIC ===================== */
.section{padding:90px 0;}
.section-head{max-width:640px; margin:0 auto 50px; text-align:center;}
.section-head.split{display:flex; align-items:flex-end; justify-content:space-between; max-width:none; text-align:left; margin-bottom:40px; gap:20px; flex-wrap:wrap;}
.eyebrow{color:var(--primary); font-weight:700; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;}
.section-head h2{font-size:2.1rem; margin:10px 0 12px; font-weight:700; letter-spacing:-.5px;}
.link-arrow{color:var(--primary); font-weight:600; font-size:.92rem;}

/* ===================== HOW IT WORKS ===================== */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.steps-4{grid-template-columns:repeat(4,1fr);}
.steps-5{grid-template-columns:repeat(5,1fr);}
.step{background:var(--bg-soft); border:1px solid var(--border); border-radius:var(--radius); padding:28px;}
.step-num{font-family:var(--font-head); font-size:1.6rem; font-weight:800; color:var(--primary); margin-bottom:14px;}
.step h3{font-size:1.1rem; margin-bottom:10px;}

/* ===================== CASE STUDY STATS ===================== */
.case-stats-grid{display:flex; flex-wrap:wrap; gap:20px;}
.case-stat{
  flex:1; min-width:160px; text-align:center;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:28px 20px;
}
.case-stat strong{display:block; font-family:var(--font-head); font-size:2rem; font-weight:800; color:var(--primary); letter-spacing:-.02em;}
.case-stat small{display:block; color:var(--text-muted); font-size:.85rem; margin-top:8px;}

/* ===================== FEATURES ===================== */
.feature-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.feature-card{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:28px; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .2s ease;
}
.feature-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--primary-light);}
.feature-icon{
  width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  margin-bottom:18px;
}
.icon-bg-1{background:#ECEAFF; color:#6D5DF6;}
.icon-bg-2{background:#E3FBF4; color:#0FB994;}
.icon-bg-3{background:#FFF0E6; color:#FF8A4C;}
.icon-bg-4{background:#E8F0FF; color:#3B82F6;}
.icon-bg-5{background:#FDE8F3; color:#E8489B;}
.icon-bg-6{background:#FFF8DE; color:#D6A400;}
[data-theme="dark"] .icon-bg-1{background:#221f47;}
[data-theme="dark"] .icon-bg-2{background:#10302a;}
[data-theme="dark"] .icon-bg-3{background:#3a2417;}
[data-theme="dark"] .icon-bg-4{background:#16243f;}
[data-theme="dark"] .icon-bg-5{background:#3a1a2c;}
[data-theme="dark"] .icon-bg-6{background:#3a2f0f;}
.feature-card h3{font-size:1.05rem; margin-bottom:8px;}
.feature-card p{font-size:.9rem;}

/* ===================== RESOURCE FILTERS & FEATURED ===================== */
.resource-filters{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:10px;}
.filter-btn{
  padding:9px 18px; border-radius:999px; border:1px solid var(--border);
  background:var(--card-bg); color:var(--text-muted); font-size:.85rem; font-weight:600;
  cursor:pointer; font-family:var(--font-body); transition:all .15s ease;
}
.filter-btn:hover{border-color:var(--primary); color:var(--primary);}
.filter-btn.active{background:var(--primary); color:#fff; border-color:var(--primary);}
.resource-featured h2{font-size:1.5rem; margin:10px 0 12px;}

/* ---- Premium resource cards ---- */
.resource-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.resource-card{
  display:flex; flex-direction:column;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:26px; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .2s ease;
}
.resource-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--primary-light);}
.resource-card-icon{
  width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  margin-bottom:16px;
}
.resource-card-tag{color:var(--primary); font-weight:700; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; display:block; margin-bottom:8px;}
.resource-card h3{font-size:1.02rem; margin-bottom:8px; line-height:1.35;}
.resource-card p{font-size:.88rem; flex:1; margin-bottom:18px;}
.resource-card-btn{align-self:flex-start;}
.resource-featured p{font-size:.96rem;}
.feature-card.is-hidden{display:none;}

/* ===================== EXPERTS (marketing grid) ===================== */
.expert-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.expert-card{
  display:flex; flex-direction:column;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:24px; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .2s ease;
}
.expert-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--primary-light);}
.expert-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.expert-top .avatar{width:50px; height:50px; font-size:1rem; box-shadow:0 6px 16px -6px rgba(109,93,246,.45);}
.expert-top img.avatar{object-fit:cover;}
.match-pill{font-size:.68rem; font-weight:700; background:var(--primary-light); color:var(--primary); padding:5px 10px; border-radius:999px;}
.expert-card h4{font-size:1.05rem; margin-top:6px; font-weight:700;}
.expert-card small{color:var(--text-muted); font-size:.82rem;}
.stars{font-size:.82rem; color:#f5b400; margin:10px 0; letter-spacing:1px;}
.stars span{color:var(--text-muted); margin-left:6px; font-weight:600; letter-spacing:0;}
.expert-card .card-tags{margin-top:14px; flex:1;}
.expert-foot{
  display:flex; align-items:center; justify-content:space-between; margin-top:18px;
  padding-top:16px; border-top:1px solid var(--border); font-size:.85rem;
}
.expert-foot b{color:var(--dark); font-size:.95rem;}
.dot-live{
  color:#0fae84; font-size:.72rem; font-weight:700; display:inline-flex; align-items:center; gap:5px;
  background:#e3faf3; padding:4px 9px; border-radius:999px;
}
.dot-live::before{content:""; width:6px; height:6px; border-radius:50%; background:#0fae84; display:inline-block;}
[data-theme="dark"] .dot-live{background:#0c2a22;}

/* ===================== LATEST ROLES (card grid) ===================== */
.roles-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:22px;}
.roles-head h2{font-size:1.3rem; font-weight:700;}
.roles-nav{display:flex; gap:8px;}
.roles-nav button{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--border); background:var(--card-bg);
  color:var(--text); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1.1rem;
}
.roles-nav button:hover{border-color:var(--primary); color:var(--primary);}

.role-grid{
  display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:4px 4px 10px; margin:0 -4px; scrollbar-width:none;
}
.role-grid::-webkit-scrollbar{display:none;}
.role-card{
  scroll-snap-align:start; flex:0 0 auto; width:min(280px, 78vw);
  display:flex; flex-direction:column; gap:10px;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:22px; min-height:170px;
  transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .2s ease;
}
.role-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--primary);}
.role-card h4{
  font-size:.95rem; font-weight:700; line-height:1.35;
  min-height:2.6em;
}
.role-rate{
  display:inline-flex; align-self:flex-start;
  color:var(--primary); font-weight:800; font-size:.85rem;
  background:var(--primary-light); padding:5px 12px; border-radius:999px;
  letter-spacing:-.01em;
}
.role-foot{display:flex; align-items:center; gap:10px; margin-top:auto; padding-top:16px; border-top:1px solid var(--border);}
.avatar-stack{display:flex; flex-shrink:0;}
.avatar-stack .avatar{width:24px; height:24px; font-size:.6rem; border:2px solid var(--card-bg); margin-left:-8px;}
.avatar-stack .avatar:first-child{margin-left:0;}
.role-hired{font-size:.74rem; color:var(--text-muted); flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.role-apply{
  font-size:.78rem; font-weight:700; color:#fff; flex-shrink:0;
  background:var(--primary); padding:7px 14px; border-radius:999px;
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
  box-shadow:0 6px 16px -6px rgba(109,93,246,.5);
}
.role-apply:hover{background:var(--primary-dark); transform:translateY(-1px); box-shadow:0 8px 20px -6px rgba(109,93,246,.6);}

/* ===================== EXPERT STORIES ===================== */
.story-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.story-card{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius); padding:28px;
  transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .2s ease;
}
.story-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--primary-light);}
.story-top{display:flex; align-items:center; gap:12px; margin-bottom:16px;}
.story-top strong{display:block; font-size:.95rem;}
.story-top small{color:var(--text-muted); font-size:.8rem;}
.story-card p{font-size:.92rem; font-style:italic;}

/* ===================== DOMAIN PILLS ===================== */
.domain-pills{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}
.domain-pill{
  padding:10px 20px; border-radius:999px; border:1px solid var(--border);
  background:var(--card-bg); font-weight:600; font-size:.9rem; color:var(--text);
}

/* ===================== FAQ (public page) ===================== */
.faq-list{display:flex; flex-direction:column; gap:14px;}
.faq-item{
  padding:20px 24px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--card-bg);
  cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.faq-item:hover{border-color:var(--primary); box-shadow:0 8px 22px -12px rgba(109,93,246,.35);}
.faq-item.open{border-color:var(--primary); box-shadow:0 10px 26px -12px rgba(109,93,246,.28);}
.faq-item h4{font-size:1rem; margin-bottom:0; font-weight:700; color:var(--dark); display:flex; justify-content:space-between; align-items:center; gap:12px;}
.faq-item h4::after{
  content:"+"; color:var(--primary); font-size:1rem; font-weight:700; flex-shrink:0;
  width:28px; height:28px; border-radius:50%; background:var(--primary-light);
  display:flex; align-items:center; justify-content:center;
  transition:transform .25s ease, background .2s ease, color .2s ease;
}
.faq-item.open h4::after{content:"–"; background:var(--primary); color:#fff; transform:rotate(180deg);}
.faq-item p{font-size:.92rem; margin-bottom:0; max-height:0; overflow:hidden; opacity:0; transition:max-height .3s ease, opacity .25s ease, margin .25s ease;}
.faq-item.open p{max-height:400px; opacity:1; margin-top:12px;}

/* ===================== LEADERBOARD ===================== */
.leaderboard{background:var(--bg-soft);}
.lb-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center;}
.lb-copy p{margin:14px 0 24px;}
.lb-table{background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);}
.lb-row{display:grid; grid-template-columns:.6fr 2fr 1fr .6fr; gap:10px; padding:14px 20px; font-size:.88rem; border-bottom:1px solid var(--border);}
.lb-row:last-child{border-bottom:none;}
.lb-head{background:var(--bg-soft-2); font-weight:700; color:var(--text-muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.04em;}
.lb-row span:last-child{font-weight:700; color:var(--primary); text-align:right;}
.lb-head span:last-child{color:var(--text-muted); font-weight:700;}

/* ===================== ENTERPRISE (marketing) ===================== */
.ent-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.ent-grid-centered{grid-template-columns:1fr; max-width:640px; margin:0 auto; text-align:center;}
.ent-grid-centered .check-list{display:inline-flex; text-align:left;}
.check-list{margin:20px 0 26px; display:flex; flex-direction:column; gap:12px;}
.check-list li{position:relative; padding-left:26px; color:var(--text-muted); font-size:.92rem;}
.check-list li::before{content:"✓"; position:absolute; left:0; top:0; color:var(--accent); font-weight:800;}

/* ===================== TESTIMONIAL (single pull-quote pattern) ===================== */
.testimonial{text-align:center;}
.quote{
  max-width:720px; margin:0 auto; font-family:var(--font-head); font-size:1.5rem; font-weight:600;
  color:var(--dark); line-height:1.5;
}
.quote footer{margin-top:18px; font-family:var(--font-body); font-size:.9rem; font-weight:500; color:var(--text-muted);}

/* ===================== TESTIMONIALS (premium card carousel) ===================== */
.testimonials-section{background:var(--bg-soft);}
.testimonial-slider{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:6px 4px 22px; margin:0 -4px; scrollbar-width:none; align-items:stretch;
}
.testimonial-slider::-webkit-scrollbar{display:none;}
.testimonial-card{
  scroll-snap-align:start; flex:0 0 auto; width:min(380px, 84vw);
  display:flex; flex-direction:column;
  background:linear-gradient(160deg, var(--card-bg) 0%, var(--bg-soft-2) 130%);
  border:1px solid var(--border); border-radius:var(--radius);
  padding:30px; position:relative; overflow:hidden;
  transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .2s ease;
}
.testimonial-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--primary-light);}
.testimonial-quote-mark{
  position:absolute; top:6px; right:22px; font-family:var(--font-head);
  font-size:4.5rem; font-weight:800; color:var(--primary-light); line-height:1; z-index:0; user-select:none;
}
[data-theme="dark"] .testimonial-quote-mark{color:rgba(109,93,246,.16);}
.testimonial-card .stars{position:relative; z-index:1; margin:0 0 14px;}
.testimonial-text{
  position:relative; z-index:1; font-size:.96rem; color:var(--text); line-height:1.7;
  margin:0 0 24px; flex:1;
}
.testimonial-person{display:flex; align-items:center; gap:12px; position:relative; z-index:1;}
.testimonial-person .avatar{width:44px; height:44px; font-size:.85rem;}
.testimonial-person img.avatar{object-fit:cover;}
.testimonial-person strong{display:block; font-size:.92rem; color:var(--dark);}
.testimonial-person small{color:var(--text-muted); font-size:.8rem;}

/* ===================== CTA BANNER ===================== */
.cta-banner{
  background:linear-gradient(135deg, var(--primary), #4634c9);
  padding:70px 0; text-align:center;
}
.cta-inner h2{color:#fff; font-size:2rem; margin-bottom:10px;}
.cta-inner p{color:rgba(255,255,255,.85); margin-bottom:28px;}
.cta-inner .hero-cta{justify-content:center;}

/* ===================== FOOTER ===================== */
.footer{background:var(--navy); padding:56px 0 24px; color:#a6abc4;}
[data-theme="dark"] .footer{background:#08091a;}
.footer .brand{color:#fff;}
.footer .brand-mark, .footer .brand-dot{color:var(--accent);}
.footer-grid{display:grid; grid-template-columns:2fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.1);}
.footer-brand p{color:#7d82a0; margin-top:10px; font-size:.88rem; max-width:280px;}
.footer-col h5{color:#fff; font-size:.85rem; margin-bottom:14px; text-transform:uppercase; letter-spacing:.05em;}
.footer-col a{display:block; color:#a6abc4; font-size:.88rem; margin-bottom:10px;}
.footer-col a:hover{color:var(--accent);}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px 24px; padding-top:22px; font-size:.82rem;}
.footer-copyright{flex:1 1 auto; min-width:200px;}
.footer-legal{display:flex; gap:20px; flex-wrap:wrap;}
.footer-legal a{color:#a6abc4; white-space:nowrap;}
.footer-legal a:hover{color:var(--accent);}
.socials{display:flex; gap:12px; flex-shrink:0;}
.socials a{width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:.75rem; flex-shrink:0; transition:background .2s ease, transform .2s ease;}
.socials a:hover{background:var(--primary); transform:translateY(-2px);}

/* ===================== CONTACT PAGE ===================== */
.page-hero, .contact-hero{padding:70px 0 20px; text-align:center;}
.page-hero h1, .contact-hero h1{font-size:2.6rem; font-weight:800; letter-spacing:-1px; max-width:760px; margin:14px auto 16px;}
.page-hero p, .contact-hero p{max-width:560px; margin:0 auto; font-size:1.05rem;}

/* ===================== PROSE (legal / long-form) ===================== */
.prose{max-width:740px; margin:0 auto;}
.prose p{margin-bottom:16px; color:var(--text-muted); line-height:1.75;}
.prose h2{font-size:1.4rem; margin:40px 0 12px; letter-spacing:-.3px;}
.prose h2:first-child{margin-top:0;}
.prose ul{margin:0 0 16px; padding-left:20px; color:var(--text-muted); line-height:1.75;}
.prose li{margin-bottom:6px;}
.prose .updated{color:var(--text-muted); font-size:.88rem; margin-bottom:36px; display:block;}

/* ===================== BLOG ===================== */
.blog-meta{color:var(--primary); font-weight:700; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; display:block; margin-bottom:10px;}
.blog-date{color:var(--text-muted); font-size:.82rem; display:block; margin-top:14px;}

/* ---- Premium blog cards ---- */
.blog-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}
.blog-card{
  display:flex; flex-direction:column;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  overflow:hidden; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .2s ease;
}
.blog-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--primary-light);}
.blog-card-media{position:relative; display:block; aspect-ratio:16/9; overflow:hidden; background:var(--bg-soft-2);}
.blog-card-media img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.blog-card:hover .blog-card-media img{transform:scale(1.06);}
.blog-card-media-fallback{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-head); font-size:2.4rem; font-weight:800; color:#fff;
  background:linear-gradient(135deg, var(--primary), #4634c9);
}
.blog-card-badge{
  position:absolute; top:14px; left:14px; background:rgba(17,19,43,.75); backdrop-filter:blur(6px);
  color:#fff; font-size:.68rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:6px 12px; border-radius:999px;
}
.blog-card-body{padding:24px; display:flex; flex-direction:column; flex:1;}
.blog-card-body h3{font-size:1.08rem; margin-bottom:10px; line-height:1.35;}
.blog-card-body p{font-size:.9rem; flex:1; margin-bottom:18px;}
.blog-card-foot{display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:16px; border-top:1px solid var(--border);}
.blog-card-foot .blog-date{margin:0;}
.blog-card-readmore{color:var(--primary); font-weight:700; font-size:.85rem; white-space:nowrap; transition:transform .2s ease;}
.blog-card-readmore:hover{transform:translateX(3px);}

/* ===================== CAREERS ===================== */
.job-list{display:flex; flex-direction:column; gap:14px; max-width:820px; margin:0 auto;}
.job-row{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:18px 22px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.job-row:hover{transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--primary);}
.job-row h4{font-size:1.02rem; margin-bottom:6px;}
.job-row small{color:var(--text-muted); font-size:.85rem;}
.job-tags span{font-size:.7rem; font-weight:600; background:var(--bg-soft-2); color:var(--text-muted); padding:4px 9px; border-radius:999px; margin-right:6px;}

.job-main{display:flex; align-items:center; gap:16px;}
.job-main .avatar{width:46px; height:46px; font-size:.8rem; border-radius:14px;}
.job-meta{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:6px;}
.job-dept{font-size:.7rem; font-weight:700; background:var(--primary-light); color:var(--primary-dark); padding:4px 10px; border-radius:999px;}
[data-theme="dark"] .job-dept{color:var(--primary);}
.job-meta small{margin:0;}

/* ===================== OPEN ROLES (card grid) ===================== */
.job-card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.job-card{
  display:flex; flex-direction:column; align-items:flex-start;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:28px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.job-card:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--primary);}
.job-card .avatar{width:46px; height:46px; font-size:.8rem; border-radius:14px; margin-bottom:16px;}
.job-card h4{font-size:1.05rem; margin-bottom:10px;}
.job-card .job-dept{margin-bottom:10px;}
.job-card > small{color:var(--text-muted); font-size:.85rem; margin-bottom:20px;}
.job-card .btn{width:100%; margin-top:auto;}

.contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:50px; align-items:start;}

.contact-info h3{font-size:1.3rem; margin-bottom:10px;}
.contact-info > p{margin-bottom:28px;}
.contact-list{display:flex; flex-direction:column; gap:20px; margin-bottom:30px;}
.contact-list li{display:flex; align-items:flex-start; gap:14px;}
.contact-list li > div{flex:1; min-width:0;}
.contact-icon{
  width:40px; height:40px; flex-shrink:0; border-radius:12px;
  background:var(--primary-light); color:var(--primary);
  display:flex; align-items:center; justify-content:center;
}
.contact-list strong{display:block; font-size:.92rem; color:var(--dark); margin-bottom:4px;}
.contact-list small{color:var(--text-muted); font-size:.88rem; line-height:1.5;}
.contact-socials a{color:var(--text); background:var(--bg-soft);}
.contact-socials a:hover{color:var(--primary);}

.contact-form{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:32px;
}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-group{display:flex; flex-direction:column; gap:6px; margin-bottom:18px;}
.form-group label{font-size:.85rem; font-weight:600; color:var(--dark);}
.form-group label span{color:var(--text-muted); font-weight:400;}
.form-group input,
.form-group select,
.form-group textarea{
  width:100%; padding:11px 14px; border-radius:var(--radius-sm); border:1px solid var(--border);
  background:var(--bg-soft); color:var(--text); font-family:var(--font-body); font-size:.92rem;
  transition:border-color .15s ease, background .15s ease;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  outline:none; border-color:var(--primary); background:var(--bg);
}
.form-group textarea{resize:vertical;}
.contact-form .btn{width:100%;}
.form-note{margin-top:14px; text-align:center; font-size:.85rem;}
.form-note.success{color:#0fae84; font-weight:600;}
.form-note a{color:var(--primary); text-decoration:underline;}

/* ===================== REVEAL ANIMATION ===================== */
[data-reveal]{opacity:0; transform:translateY(24px); transition:opacity .6s cubic-bezier(.2,.8,.2,1), transform .6s cubic-bezier(.2,.8,.2,1);}
[data-reveal].in-view{opacity:1; transform:translateY(0);}

/* ===================== BENCHMARK CARDS (Research) ===================== */
.bench-grid{display:flex; flex-direction:column; gap:24px;}
.bench-card{background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius); padding:28px;}
.bench-head{display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:20px; flex-wrap:wrap;}
.bench-head h3{font-size:1.15rem; margin-bottom:8px;}
.bench-head p{max-width:520px; font-size:.92rem;}
.bench-score{text-align:right; flex-shrink:0;}
.bench-score strong{display:block; font-family:var(--font-head); font-size:1.8rem; color:var(--primary);}
.bench-score small{color:var(--text-muted); font-size:.78rem;}
.bench-card .lb-table{box-shadow:none;}
.bench-links{display:flex; gap:8px; margin-top:16px; font-size:.85rem; color:var(--text-muted);}
.bench-links a{color:var(--primary); font-weight:600;}
.bench-links a:hover{text-decoration:underline;}

/* ===================== NEWSLETTER BOX ===================== */
.newsletter-box{
  display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;
  background:var(--bg-soft); border:1px solid var(--border); border-radius:var(--radius); padding:36px 40px;
}
.newsletter-box h3{font-size:1.3rem; margin:8px 0; font-weight:700;}
.newsletter-box p{max-width:420px;}
.newsletter-form{display:flex; gap:10px; flex-wrap:wrap;}
.newsletter-form input{
  padding:11px 16px; border-radius:999px; border:1px solid var(--border);
  background:var(--bg); color:var(--text); font-family:var(--font-body); font-size:.92rem; min-width:240px;
}
.newsletter-form input:focus{outline:none; border-color:var(--primary);}
