:root{
  --ink:#14130F;
  --ink-soft:#3A3833;
  --paper:#F6F5F1;
  --paper-raised:#FFFFFF;
  --emerald:#0B6E4F;
  --emerald-dark:#08503A;
  --emerald-tint:#E4EFE9;
  --gold:#C99A3D;
  --gold-dark:#A87E2A;
  --gold-tint:#F4EAD3;
  --mist:#E4E1D8;
  --radius:10px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html, body{ max-width:100%; overflow-x:hidden; }
img, svg{ max-width:100%; height:auto; }

body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Readex Pro', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.font-display{
  font-family:'Sora', sans-serif;
  color:var(--ink);
  letter-spacing:-0.01em;
}

.label-mono{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  font-weight:500;
}

a{ color:var(--emerald); text-decoration:none; }
a:hover{ color:var(--emerald-dark); }

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

/* ---------- Buttons ---------- */
.btn{
  border-radius:999px;
  font-weight:600;
  font-size:0.95rem;
  padding:0.7rem 1.6rem;
  border:1.5px solid transparent;
  transition:transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.btn-gold{ background:var(--gold); color:var(--ink); }
.btn-gold:hover{
  background:var(--gold-dark); color:var(--ink);
  transform:translateY(-2px);
  box-shadow:0 10px 24px -10px rgba(168,126,42,0.55);
}
.btn-outline-emerald{ background:transparent; border-color:var(--emerald); color:var(--emerald); }
.btn-outline-emerald:hover{ background:var(--emerald); color:#fff; transform:translateY(-2px); }
.btn-ghost-ink{ background:transparent; border-color:rgba(20,19,15,0.18); color:var(--ink); }
.btn-ghost-ink:hover{ border-color:var(--ink); background:var(--ink); color:var(--paper); }

/* ---------- Page header (non-home pages) ---------- */
.page-header{ padding:3.5rem 0 2.5rem; }
.page-header h1{ font-size:clamp(2rem, 3.4vw, 2.8rem); font-weight:600; margin-bottom:0.9rem; }
.page-header p.lead{ color:var(--ink-soft); font-size:1.05rem; max-width:560px; }

/* ---------- Hero (home only) ---------- */
.hero{ padding:5.5rem 0 4.5rem; position:relative; overflow:hidden; }
.hero-eyebrow{ color:var(--emerald-dark); margin-bottom:1rem; display:block; }
.hero h1{ font-size:clamp(2.4rem, 4.2vw, 3.6rem); font-weight:600; line-height:1.08; margin-bottom:1.25rem; }
.hero p.lead{ color:var(--ink-soft); font-size:1.1rem; max-width:480px; margin-bottom:2rem; }

/* ---------- Compass ---------- */
.compass-wrap{ display:flex; align-items:center; justify-content:center; position:relative; }
.compass-ring{ transform-origin:150px 150px; animation:spin 50s linear infinite; }
.compass-pulse{ animation:pulse 3.2s ease-in-out infinite; transform-origin:150px 150px; }
@keyframes spin{ to{ transform:rotate(360deg); } }
@keyframes pulse{ 0%,100%{ opacity:0.55; r:5.5; } 50%{ opacity:1; r:7.5; } }
@media (prefers-reduced-motion: reduce){
  .compass-ring{ animation:none; }
  .compass-pulse{ animation:none; }
  .reveal{ transition:none !important; opacity:1 !important; transform:none !important; }
}

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity 0.7s ease, transform 0.7s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ---------- Sections ---------- */
.section{ padding:5rem 0; }
.section-tight{ padding:3.5rem 0; }

/* ---------- Step cards (How it works) ---------- */
.step-number{
  font-family:'IBM Plex Mono', monospace; font-size:0.85rem; color:var(--gold-dark);
  border:1px solid var(--gold); border-radius:999px; width:34px; height:34px;
  display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem;
}
.step-card h3{ font-size:1.2rem; font-weight:600; margin-bottom:0.5rem; }
.step-card p{ color:var(--ink-soft); font-size:0.96rem; }

/* ---------- Temperament cards ---------- */
.temp-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:var(--radius);
  padding:1.6rem; height:100%; transition:transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.temp-card:hover{ transform:translateY(-6px); box-shadow:0 18px 30px -18px rgba(20,19,15,0.18); border-color:rgba(20,19,15,0.14); }
.temp-dot{ width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:0.5rem; }
.temp-card h3{ font-size:1.08rem; margin-bottom:0.4rem; }
.temp-card p{ color:var(--ink-soft); font-size:0.92rem; margin-bottom:0; }
.temp-card a.stretched{ position:absolute; inset:0; }

/* ---------- Test choice cards (Take a test hub) ---------- */
.test-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:16px;
  padding:2.2rem; height:100%; transition:transform 0.22s ease, box-shadow 0.22s ease;
}
.test-card:hover{ transform:translateY(-5px); box-shadow:0 20px 36px -20px rgba(20,19,15,0.16); }
.icon-circle{
  width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.3rem; margin-bottom:1.2rem;
}
.icon-circle.gold{ background:var(--gold-tint); color:var(--gold-dark); }
.icon-circle.emerald{ background:var(--emerald-tint); color:var(--emerald-dark); }
.test-card h3{ font-size:1.35rem; margin-bottom:0.4rem; }
.test-card .meta{ color:var(--ink-soft); font-size:0.88rem; margin-bottom:1.1rem; }
.test-card ul{ list-style:none; padding:0; margin:0 0 1.6rem; }
.test-card ul li{ display:flex; gap:0.6rem; font-size:0.92rem; color:var(--ink-soft); margin-bottom:0.6rem; }
.test-card ul li i{ color:var(--emerald); margin-top:0.2rem; }

/* ---------- Comparison table ---------- */
.compare-table{ border-collapse:separate; border-spacing:0; width:100%; }
.compare-table th, .compare-table td{
  border-bottom:1px solid var(--mist); padding:0.85rem 1rem; font-size:0.92rem; vertical-align:middle;
}
.compare-table thead th{
  font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink-soft); border-bottom:1.5px solid var(--ink); background:transparent;
}
.compare-table tbody th{ color:var(--ink-soft); font-weight:600; font-size:0.88rem; }
.compare-table td.cell-solo{ background:var(--gold-tint); }
.compare-table td.cell-partner{ background:var(--emerald-tint); }

/* ---------- Trust strip ---------- */
.trust-item{ display:flex; align-items:flex-start; gap:0.85rem; }
.trust-item i{ color:var(--emerald); font-size:1.3rem; margin-top:0.15rem; }
.trust-item h4{ font-size:0.98rem; font-weight:600; margin-bottom:0.2rem; }
.trust-item p{ font-size:0.88rem; color:var(--ink-soft); margin-bottom:0; }

/* ---------- Pricing cards (teaser + full) ---------- */
.price-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:var(--radius);
  padding:1.4rem 1.2rem; text-align:center; height:100%;
}
.price-card .amount{ font-family:'Sora', sans-serif; font-size:1.9rem; font-weight:600; }
.price-card .tier-label{ color:var(--ink-soft); font-size:0.85rem; }

.price-card-full{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:16px;
  padding:1.8rem 1.5rem; height:100%; display:flex; flex-direction:column;
  transition:transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.price-card-full:hover{ transform:translateY(-5px); box-shadow:0 20px 34px -20px rgba(20,19,15,0.16); }
.price-card-full.featured{ border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); }
.price-card-full .tier-label{ color:var(--ink-soft); font-size:0.85rem; }
.price-card-full .amount{ font-family:'Sora', sans-serif; font-size:2.4rem; font-weight:600; margin:0.3rem 0 1rem; }
.price-card-full ul{ list-style:none; padding:0; margin:0 0 1.6rem; flex-grow:1; }
.price-card-full ul li{ display:flex; gap:0.55rem; font-size:0.88rem; color:var(--ink-soft); margin-bottom:0.55rem; }
.price-card-full ul li i{ color:var(--emerald); margin-top:0.2rem; }
.featured-badge{
  background:var(--gold); color:var(--ink); font-family:'IBM Plex Mono', monospace; font-size:0.65rem;
  letter-spacing:0.08em; text-transform:uppercase; border-radius:999px; padding:0.2rem 0.7rem;
  display:inline-block; margin-bottom:0.8rem;
}

/* ---------- Free vs Paid panel ---------- */
.fvp-card{ border-radius:16px; padding:2rem; height:100%; }
.fvp-card.free{ background:var(--paper-raised); border:1px solid var(--mist); }
.fvp-card.paid{ background:var(--ink); color:var(--paper); }
.fvp-card.paid h3, .fvp-card.paid .label-mono{ color:var(--paper); }
.fvp-card h3{ font-size:1.2rem; margin-bottom:1.2rem; }
.fvp-card ul{ list-style:none; padding:0; margin:0; }
.fvp-card ul li{ display:flex; gap:0.6rem; font-size:0.92rem; margin-bottom:0.75rem; }
.fvp-card.free ul li{ color:var(--ink-soft); }
.fvp-card.paid ul li{ color:rgba(246,245,241,0.82); }
.fvp-card.free ul li i{ color:var(--ink-soft); }
.fvp-card.paid ul li i{ color:var(--gold); }

/* ---------- Accordion (pricing FAQ) ---------- */
.accordion-custom .accordion-item{
  background:transparent; border:none; border-bottom:1px solid var(--mist);
}
.accordion-custom .accordion-button{
  background:transparent; color:var(--ink); font-weight:600; font-size:1rem;
  padding:1.2rem 0; box-shadow:none;
}
.accordion-custom .accordion-button:not(.collapsed){ color:var(--emerald-dark); }
.accordion-custom .accordion-button::after{ filter:none; }
.accordion-custom .accordion-body{ color:var(--ink-soft); font-size:0.92rem; padding:0 0 1.4rem; }

/* ---------- Partner / CTA band ---------- */
.partner-band{ background:var(--ink); color:var(--paper); border-radius:20px; padding:3.2rem; }
.partner-band h2{ color:var(--paper); font-size:2rem; }
.partner-band p{ color:rgba(246,245,241,0.78); max-width:480px; }
.partner-band .label-mono{ color:var(--gold); }

/* ---------- Footer ---------- */
footer{ background:var(--ink); color:rgba(246,245,241,0.7); padding:3.5rem 0 2rem; }
footer a{ color:rgba(246,245,241,0.78); }
footer a:hover{ color:#fff; }
footer h5{
  color:var(--paper); font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase;
  margin-bottom:1rem; font-family:'Readex Pro', sans-serif;
}
footer .foot-link{ display:block; font-size:0.9rem; margin-bottom:0.55rem; }
.foot-bottom{
  border-top:1px solid rgba(246,245,241,0.12); margin-top:2.5rem; padding-top:1.5rem;
  font-size:0.82rem; color:rgba(246,245,241,0.5);
}

/* ---------- Quiz (Solo test flow) ---------- */
.quiz-shell{ max-width:640px; margin:0 auto; }
.quiz-progress{ height:6px; border-radius:999px; background:var(--mist); overflow:hidden; margin-bottom:2.2rem; }
.quiz-progress-bar{ height:100%; background:var(--gold); transition:width 0.3s ease; }
.quiz-counter{
  font-family:'IBM Plex Mono', monospace; font-size:0.78rem; color:var(--ink-soft);
  letter-spacing:0.08em; text-transform:uppercase; margin-bottom:1rem;
}
.quiz-question{ font-family:'Sora', sans-serif; font-size:1.5rem; font-weight:500; margin-bottom:1.8rem; min-height:80px; }
.likert-row{ display:flex; flex-direction:column; gap:0.7rem; margin-bottom:2.2rem; }
.likert-option{
  display:flex; align-items:center; justify-content:space-between; border:1.5px solid var(--mist);
  border-radius:10px; padding:0.85rem 1.1rem; background:var(--paper-raised); cursor:pointer;
  transition:border-color 0.15s ease, background 0.15s ease; font-size:0.95rem;
}
.likert-option:hover{ border-color:rgba(20,19,15,0.3); }
.likert-option.selected{ border-color:var(--gold); background:var(--gold-tint); }
.likert-option .dot{ width:16px; height:16px; border-radius:50%; border:1.5px solid var(--ink-soft); flex-shrink:0; }
.likert-option.selected .dot{ border-color:var(--gold-dark); background:var(--gold); }
.quiz-nav{ display:flex; justify-content:space-between; align-items:center; }
.quiz-nav .btn:disabled{ opacity:0.4; cursor:not-allowed; }

/* ---------- Locked preview card (Free result) ---------- */
.locked-card{ position:relative; border-radius:14px; overflow:hidden; border:1px solid var(--mist); }
.locked-content{ filter:blur(4px); user-select:none; padding:1.5rem; }
.locked-overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; background:rgba(246,245,241,0.6); gap:0.6rem; text-align:center; padding:1rem;
}
.locked-overlay i{ font-size:1.6rem; color:var(--gold-dark); }

/* ---------- Paid report ---------- */
.report-section{ padding:2rem 0; border-bottom:1px solid var(--mist); }
.report-section:last-of-type{ border-bottom:none; }
.report-section h2{ font-size:1.4rem; margin-bottom:1rem; }
.report-list{ list-style:none; padding:0; margin:0; }
.report-list li{ display:flex; gap:0.6rem; font-size:0.95rem; color:var(--ink-soft); margin-bottom:0.6rem; }
.report-list li i{ color:var(--emerald); margin-top:0.2rem; }
.blend-badge{
  display:inline-flex; align-items:center; gap:0.5rem; background:var(--gold-tint); color:var(--gold-dark);
  font-family:'IBM Plex Mono', monospace; font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase;
  border-radius:999px; padding:0.35rem 0.9rem; margin-bottom:1rem;
}

@media print{
  nav, footer, .no-print{ display:none !important; }
  body{ background:#fff; }
  .section{ padding:1rem 0; }
}

/* ============================================================
   PREMIUM ENHANCEMENTS — gradient cards, shimmer, ambient motion
   ============================================================ */

/* Ambient gradient blobs (decorative, behind hero content) */
.blob{
  position:absolute;
  border-radius:50%;
  filter:blur(50px);
  opacity:0.35;
  pointer-events:none;
  z-index:0;
  animation:blobFloat 14s ease-in-out infinite;
}
.blob-gold{ background:radial-gradient(circle, var(--gold) 0%, transparent 70%); width:340px; height:340px; }
.blob-emerald{ background:radial-gradient(circle, var(--emerald) 0%, transparent 70%); width:300px; height:300px; animation-delay:-6s; }
@keyframes blobFloat{
  0%, 100%{ transform:translate(0, 0) scale(1); }
  50%{ transform:translate(20px, -24px) scale(1.08); }
}
@media (prefers-reduced-motion: reduce){ .blob{ animation:none; } }

/* Shared premium card lift — gradient ring on hover, deeper shadow, slight scale */
.temp-card, .test-card, .price-card-full, .step-card, .price-card{
  position:relative;
  isolation:isolate;
}
.temp-card::before, .test-card::before, .price-card-full::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg, var(--gold) 0%, transparent 40%, transparent 60%, var(--emerald) 100%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:0;
  transition:opacity 0.3s ease;
  z-index:-1;
  pointer-events:none;
}
.temp-card:hover::before, .test-card:hover::before, .price-card-full:hover::before{ opacity:1; }
.temp-card:hover, .test-card:hover, .price-card-full:hover{
  transform:translateY(-7px) scale(1.012);
}
.step-card{ transition:transform 0.25s ease; }
.step-card:hover{ transform:translateY(-4px); }

/* Icon circle gets a soft pulsing ring on card hover */
.test-card .icon-circle{ transition:transform 0.3s ease, box-shadow 0.3s ease; }
.test-card:hover .icon-circle{ transform:scale(1.08); }
.icon-circle.gold{ box-shadow:0 0 0 0 rgba(201,154,61,0.4); }
.icon-circle.emerald{ box-shadow:0 0 0 0 rgba(11,110,79,0.4); }
.test-card:hover .icon-circle.gold{ animation:ringPulse 1.6s ease-out infinite; }
.test-card:hover .icon-circle.emerald{ animation:ringPulseEmerald 1.6s ease-out infinite; }
@keyframes ringPulse{ 0%{ box-shadow:0 0 0 0 rgba(201,154,61,0.4); } 100%{ box-shadow:0 0 0 14px rgba(201,154,61,0); } }
@keyframes ringPulseEmerald{ 0%{ box-shadow:0 0 0 0 rgba(11,110,79,0.4); } 100%{ box-shadow:0 0 0 14px rgba(11,110,79,0); } }
@media (prefers-reduced-motion: reduce){
  .test-card:hover .icon-circle.gold, .test-card:hover .icon-circle.emerald{ animation:none; }
}

/* Button shimmer sweep on hover (gold + outline buttons) */
.btn-gold, .btn-outline-emerald{ position:relative; overflow:hidden; }
.btn-gold::after, .btn-outline-emerald::after{
  content:'';
  position:absolute;
  top:0; left:-60%;
  width:40%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,0.45), transparent);
  transform:skewX(-20deg);
  transition:left 0.55s ease;
  pointer-events:none;
}
.btn-gold:hover::after, .btn-outline-emerald:hover::after{ left:130%; }

/* Featured pricing card gets a subtle glow */
.price-card-full.featured{
  box-shadow:0 0 0 1px var(--gold), 0 18px 34px -18px rgba(201,154,61,0.35);
}

/* Temp dot gets a soft glow ring matching its color, pulsing gently */
.temp-card .temp-dot{ box-shadow:0 0 0 0 currentColor; }
.temp-card:hover .temp-dot{ animation:dotPulse 1.4s ease-out infinite; }
@keyframes dotPulse{ 0%{ box-shadow:0 0 0 0 rgba(201,154,61,0.35); } 100%{ box-shadow:0 0 0 8px rgba(201,154,61,0); } }
@media (prefers-reduced-motion: reduce){ .temp-card:hover .temp-dot{ animation:none; } }

/* Compass wrap gets a soft ambient glow behind it */
.compass-wrap::before{
  content:'';
  position:absolute;
  width:280px; height:280px;
  background:radial-gradient(circle, rgba(201,154,61,0.18) 0%, transparent 70%);
  border-radius:50%;
  z-index:-1;
  animation:blobFloat 10s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){ .compass-wrap::before{ animation:none; } }

/* ---------- Temperament library pages ---------- */
.lib-header{ padding:4rem 0 3rem; border-bottom:1px solid var(--mist); }
.lib-eyebrow{ color:var(--accent, var(--gold-dark)); }
.lib-header h1{ font-size:clamp(2rem, 3.6vw, 3rem); }
.lib-switcher{ font-size:0.88rem; color:var(--ink-soft); margin-top:1rem; }
.lib-switcher a{ color:var(--ink-soft); border-bottom:1px dashed var(--mist); }
.lib-switcher a:hover{ color:var(--accent, var(--ink)); border-color:var(--accent, var(--ink)); }

.scenario-item{
  display:flex; gap:0.7rem; align-items:flex-start; padding:0.9rem 0; border-bottom:1px solid var(--mist); font-size:0.96rem;
}
.scenario-item:last-child{ border-bottom:none; }
.scenario-item i{ color:var(--accent, var(--emerald)); margin-top:0.2rem; }

.trait-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-top:3px solid var(--accent, var(--gold));
  border-radius:12px; padding:1.4rem; margin-bottom:0.9rem;
}
.trait-card .trait-title{ font-weight:600; font-size:0.98rem; margin-bottom:0.15rem; }
.trait-card .trait-nick{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--accent, var(--gold-dark)); text-transform:uppercase; letter-spacing:0.06em; }

.match-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:14px; padding:1.6rem; height:100%;
  transition:transform 0.22s ease, box-shadow 0.22s ease;
}
.match-card:hover{ transform:translateY(-5px); box-shadow:0 18px 30px -18px rgba(20,19,15,0.16); }
.match-card .match-name{ font-family:'Sora', sans-serif; font-size:1.2rem; margin-bottom:0.4rem; }

.accent-dot{ width:10px; height:10px; border-radius:50%; background:var(--accent, var(--gold)); display:inline-block; margin-right:0.5rem; }

/* ---------- Forms (shared: login, contact) ---------- */
.form-control, .form-select{
  border-radius:10px; border-color:var(--mist); padding:0.65rem 0.9rem; font-size:0.95rem;
}
.form-control:focus, .form-select:focus{
  border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,154,61,0.18);
}
.form-label{ font-size:0.88rem; font-weight:600; margin-bottom:0.4rem; color:var(--ink-soft); }

/* ---------- Auth (Login / Sign up) ---------- */
.auth-shell{ max-width:440px; margin:0 auto; }
.auth-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:16px; padding:2.2rem;
}
.auth-tabs{ display:flex; gap:0.4rem; background:var(--mist); border-radius:999px; padding:4px; margin-bottom:1.8rem; }
.auth-tab{
  flex:1; text-align:center; padding:0.55rem 0; border-radius:999px; font-weight:600; font-size:0.9rem;
  cursor:pointer; color:var(--ink-soft); transition:background 0.2s ease, color 0.2s ease;
}
.auth-tab.active{ background:var(--paper-raised); color:var(--ink); box-shadow:0 2px 8px -2px rgba(20,19,15,0.18); }
.auth-divider{ display:flex; align-items:center; gap:0.8rem; margin:1.4rem 0; color:var(--ink-soft); font-size:0.82rem; }
.auth-divider::before, .auth-divider::after{ content:''; flex:1; height:1px; background:var(--mist); }

/* ---------- Dashboard ---------- */
.dash-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:14px; padding:1.6rem;
}
.dash-table{ width:100%; border-collapse:separate; border-spacing:0; }
.dash-table th{
  font-family:'IBM Plex Mono', monospace; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink-soft); text-align:left; padding:0 1rem 0.7rem; border-bottom:1.5px solid var(--ink);
}
.dash-table td{ padding:0.9rem 1rem; border-bottom:1px solid var(--mist); font-size:0.92rem; vertical-align:middle; }
.dash-table tr:last-child td{ border-bottom:none; }
.status-pill{
  font-family:'IBM Plex Mono', monospace; font-size:0.7rem; letter-spacing:0.05em; text-transform:uppercase;
  border-radius:999px; padding:0.2rem 0.65rem; display:inline-block;
}
.status-pill.unlocked{ background:var(--emerald-tint); color:var(--emerald-dark); }
.status-pill.free{ background:var(--mist); color:var(--ink-soft); }
.profile-avatar{
  width:52px; height:52px; border-radius:50%; background:var(--gold-tint); color:var(--gold-dark);
  display:flex; align-items:center; justify-content:center; font-family:'Sora', sans-serif; font-weight:600; font-size:1.2rem;
}

/* ---------- Blog ---------- */
.blog-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:14px; padding:1.6rem; height:100%;
  transition:transform 0.22s ease, box-shadow 0.22s ease;
}
.blog-card:hover{ transform:translateY(-5px); box-shadow:0 18px 30px -18px rgba(20,19,15,0.16); }
.blog-tag{
  font-family:'IBM Plex Mono', monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase;
  background:var(--gold-tint); color:var(--gold-dark); border-radius:999px; padding:0.2rem 0.65rem; display:inline-block;
}
.blog-card h3{ font-size:1.1rem; margin:0.8rem 0 0.5rem; }
.blog-card p{ color:var(--ink-soft); font-size:0.9rem; margin-bottom:0.8rem; }
.blog-date{ font-size:0.78rem; color:var(--ink-soft); }

/* ---------- Static content pages (About / Privacy) ---------- */
.prose h2{ font-size:1.3rem; margin-top:2.2rem; margin-bottom:0.8rem; }
.prose p{ color:var(--ink-soft); margin-bottom:1rem; }
.prose ul{ color:var(--ink-soft); padding-left:1.2rem; margin-bottom:1rem; }
.toc-pill{
  display:inline-block; font-size:0.85rem; color:var(--ink-soft); border:1px solid var(--mist);
  border-radius:999px; padding:0.35rem 0.9rem; margin:0 0.4rem 0.4rem 0;
}
.toc-pill:hover{ border-color:var(--ink); color:var(--ink); }

/* ============================================================
   NAVBAR — single consolidated definition (solid, clean, KCG-style)
   ============================================================ */
.tm-nav{
  background:var(--paper-raised);
  border-bottom:1px solid var(--mist);
  padding:0.85rem 0;
  position:sticky;
  top:0;
  z-index:1000;
  transition:box-shadow 0.25s ease;
}
.tm-nav.is-scrolled{ box-shadow:0 6px 20px -14px rgba(20,19,15,0.3); }

.tm-logo{
  display:flex; align-items:center; gap:0.55rem;
  font-family:'Sora', sans-serif; font-weight:600; font-size:1.2rem; color:var(--ink);
  flex-shrink:0;
}
.tm-logo-mark{ width:32px; height:32px; flex-shrink:0; object-fit:contain; }
.footer-logo-lockup{ max-width:220px; width:100%; height:auto; display:block; }

.tm-nav-link{
  font-weight:500; font-size:0.92rem; color:var(--ink-soft);
  padding:0.5rem 0.8rem !important; border-radius:8px;
  transition:color 0.2s ease, background 0.2s ease;
  white-space:nowrap;
}
.tm-nav-link:hover, .tm-nav-link.is-active{ color:var(--ink); background:var(--mist); }

.dropdown-toggle::after{ vertical-align:0.14em; margin-left:0.35rem; }
.dropdown-menu{
  border:1px solid var(--mist); border-radius:12px; padding:0.4rem;
  box-shadow:0 16px 32px -18px rgba(20,19,15,0.28); font-family:'Readex Pro', sans-serif;
}
.dropdown-item{ border-radius:8px; padding:0.55rem 0.8rem; font-size:0.9rem; color:var(--ink-soft); }
.dropdown-item:hover, .dropdown-item:focus{ background:var(--gold-tint); color:var(--ink); }

.navbar-toggler{
  border:1px solid var(--mist); box-shadow:none !important; width:42px; height:40px; border-radius:8px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.navbar-toggler i{ color:var(--ink); font-size:1.4rem; line-height:1; }

.nav-auth-group{ display:flex; align-items:center; gap:0.6rem; flex-shrink:0; }

/* Desktop layout */
@media (min-width: 992px){
  .navbar-nav{ gap:0.1rem; }
}

/* Mobile: robust, tested collapse panel — no position tricks, just block stacking */
@media (max-width: 991.98px){
  .tm-nav .container{ flex-wrap:wrap; }
  .navbar-collapse{ width:100%; }
  .navbar-collapse.show, .navbar-collapse.collapsing{
    background:var(--paper-raised); border-top:1px solid var(--mist);
    margin-top:0.85rem; padding-top:0.9rem;
  }
  .navbar-nav{ width:100%; }
  .navbar-nav .nav-link{ padding:0.7rem 0.2rem !important; border-bottom:1px solid var(--mist); border-radius:0 !important; width:100%; }
  .dropdown-menu{ position:static !important; float:none; box-shadow:none; border:none; padding:0 0 0.3rem 0.8rem; margin:0; }
  .nav-auth-group{ flex-direction:column; align-items:stretch; gap:0.6rem; width:100%; margin-top:1rem; }
  .nav-auth-group .btn{ width:100%; }
  .nav-auth-group a.tm-nav-link{ text-align:center; }
}

/* ============================================================
   KCG-STYLE STRUCTURE — stat band, split sections, offer cards,
   spotlight, values grid, testimonials
   ============================================================ */

/* Hero with background image + dark overlay (KCG pattern) */
.hero-photo{
  position:relative; min-height:560px; display:flex; align-items:center;
  background:
    linear-gradient(100deg, rgba(8,8,6,0.92) 0%, rgba(8,8,6,0.8) 32%, rgba(8,8,6,0.52) 58%, rgba(8,8,6,0.28) 82%, rgba(8,8,6,0.18) 100%),
    var(--ink);
  background-size:cover; background-position:center;
}
.hero-photo .hero-eyebrow-dot{
  display:inline-flex; align-items:center; gap:0.5rem; color:var(--gold);
  font-family:'IBM Plex Mono', monospace; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase;
  text-shadow:0 1px 10px rgba(0,0,0,0.6);
}
.hero-photo .hero-eyebrow-dot::before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--gold); }
.hero-photo h1{
  color:var(--paper); font-size:clamp(2.2rem, 4vw, 3.4rem); font-weight:600; line-height:1.12;
  text-shadow:0 2px 24px rgba(0,0,0,0.55), 0 1px 3px rgba(0,0,0,0.4);
}
.hero-photo p.lead{ color:rgba(246,245,241,0.92); max-width:560px; text-shadow:0 1px 14px rgba(0,0,0,0.55); }

/* Hero slider (Bootstrap Carousel), KCG-style rotating hero images */
.hero-slider{ position:relative; min-height:560px; overflow:hidden; }
.hero-slider .carousel, .hero-slider .carousel-inner, .hero-slider .carousel-item{ min-height:560px; }
.hero-slide{
  position:relative; min-height:560px; display:flex; align-items:center;
  background-size:cover; background-position:center;
}
.hero-slide::before{
  content:''; position:absolute; inset:0;
  /* Strong left-to-right scrim — darkest exactly where the text column sits,
     regardless of how bright or busy the underlying photo is. */
  background:linear-gradient(100deg, rgba(8,8,6,0.92) 0%, rgba(8,8,6,0.82) 32%, rgba(8,8,6,0.55) 58%, rgba(8,8,6,0.3) 82%, rgba(8,8,6,0.18) 100%);
}
.hero-slide-content{ position:relative; z-index:2; }
.hero-slide-content .hero-eyebrow-dot{
  display:inline-flex; align-items:center; gap:0.5rem; color:var(--gold);
  font-family:'IBM Plex Mono', monospace; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase;
  text-shadow:0 1px 10px rgba(0,0,0,0.6);
}
.hero-slide-content .hero-eyebrow-dot::before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--gold); display:inline-block; }
.hero-slide-content h1{
  color:var(--paper); font-size:clamp(2.2rem, 4vw, 3.4rem); font-weight:600; line-height:1.12;
  text-shadow:0 2px 24px rgba(0,0,0,0.55), 0 1px 3px rgba(0,0,0,0.4);
}
.hero-slide-content p.lead{ color:rgba(246,245,241,0.92); max-width:560px; text-shadow:0 1px 14px rgba(0,0,0,0.55); }
.hero-slider .carousel-indicators{ bottom:1.5rem; }
.hero-slider .carousel-indicators [data-bs-target]{
  width:9px; height:9px; border-radius:50%; background:rgba(246,245,241,0.5); border:none; margin:0 5px;
}
.hero-slider .carousel-indicators .active{ background:var(--gold); }
.hero-slider .carousel-control-prev, .hero-slider .carousel-control-next{ width:5%; opacity:0.8; }
.hero-slider .carousel-control-prev-icon, .hero-slider .carousel-control-next-icon{ width:1.8rem; height:1.8rem; filter:drop-shadow(0 1px 4px rgba(0,0,0,0.6)); }

/* Stat counter band, overlapping the hero bottom edge */
.stat-band{
  background:var(--paper-raised); border-radius:16px; box-shadow:0 24px 48px -20px rgba(20,19,15,0.3);
  margin-top:-64px; position:relative; z-index:5; padding:2rem 1rem;
}
.stat-item{ text-align:center; padding:0.6rem; }
.stat-number{ font-family:'Sora', sans-serif; font-weight:600; font-size:2.2rem; color:var(--ink); line-height:1; }
.stat-label{ font-size:0.82rem; color:var(--ink-soft); margin-top:0.4rem; }
.stat-divider{ width:1px; background:var(--mist); }

/* Split section: image block + text (About / Who We Are pattern) */
.split-visual{
  border-radius:18px; min-height:340px; position:relative; overflow:hidden;
  background:linear-gradient(135deg, var(--emerald-tint) 0%, var(--gold-tint) 100%);
  display:flex; align-items:center; justify-content:center;
}
.split-visual .compass-mini{ width:70%; max-width:280px; }

/* Responsive fixes: hero/slider/stat-band on smaller screens */
@media (max-width: 767.98px){
  .hero-photo, .hero-slider, .hero-slider .carousel, .hero-slider .carousel-inner, .hero-slider .carousel-item, .hero-slide{
    min-height:520px;
  }
  .stat-band{ margin-top:-40px; padding:1.4rem 0.6rem; }
  .stat-number{ font-size:1.6rem; }
  .stat-label{ font-size:0.72rem; }
  .split-visual{ min-height:240px; }
}
@media (max-width: 575.98px){
  .hero-photo, .hero-slider, .hero-slider .carousel, .hero-slider .carousel-inner, .hero-slider .carousel-item, .hero-slide{
    min-height:600px;
  }
  .stat-band{ margin-top:1.2rem; }
}

/* Offer cards with status badge (division-card pattern) */
.offer-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:16px; overflow:hidden; height:100%;
  transition:transform 0.22s ease, box-shadow 0.22s ease;
}
.offer-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px -20px rgba(20,19,15,0.2); }
.offer-card-visual{
  height:150px; display:flex; align-items:center; justify-content:center; position:relative;
  background:linear-gradient(135deg, var(--gold-tint), var(--paper));
}
.offer-card-visual i{ font-size:2.4rem; color:var(--gold-dark); }
.offer-card-visual.emerald{ background:linear-gradient(135deg, var(--emerald-tint), var(--paper)); }
.offer-card-visual.emerald i{ color:var(--emerald-dark); }
.status-badge{
  position:absolute; top:0.9rem; left:0.9rem; font-family:'IBM Plex Mono', monospace; font-size:0.66rem;
  letter-spacing:0.06em; text-transform:uppercase; background:var(--emerald); color:#fff;
  border-radius:999px; padding:0.25rem 0.7rem; display:inline-flex; align-items:center; gap:0.35rem;
}
.status-badge::before{ content:''; width:6px; height:6px; border-radius:50%; background:#fff; }
.offer-card-body{ padding:1.5rem; }
.offer-card-body h3{ font-size:1.15rem; margin-bottom:0.5rem; }
.offer-card-body p{ color:var(--ink-soft); font-size:0.9rem; margin-bottom:1rem; }

/* Spotlight band: image-style panel + text, dark-tinted callout */
.spotlight-section{ background:var(--paper-raised); border-radius:20px; overflow:hidden; }
.spotlight-visual{
  min-height:100%; background:linear-gradient(135deg, var(--ink) 0%, var(--emerald-dark) 100%);
  display:flex; align-items:center; justify-content:center; padding:2rem;
}
.spotlight-visual i{ font-size:3.5rem; color:var(--gold); }

/* Values grid (icon + title + line) */
.value-item{ text-align:center; padding:1rem; }
.value-icon{
  width:56px; height:56px; border-radius:50%; background:var(--gold-tint); color:var(--gold-dark);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin:0 auto 1rem;
}
.value-item h4{ font-size:1rem; font-weight:600; margin-bottom:0.4rem; }
.value-item p{ font-size:0.86rem; color:var(--ink-soft); margin-bottom:0; }

/* Testimonial cards with initials avatar */
.testimonial-card{
  background:var(--paper-raised); border:1px solid var(--mist); border-radius:14px; padding:1.6rem; height:100%;
}
.testimonial-card p.quote{ font-size:0.95rem; color:var(--ink-soft); font-style:italic; margin-bottom:1.2rem; }
.testimonial-author{ display:flex; align-items:center; gap:0.7rem; }
.testimonial-avatar{
  width:42px; height:42px; border-radius:50%; background:var(--ink); color:var(--gold);
  display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono', monospace;
  font-size:0.78rem; font-weight:600; flex-shrink:0;
}
.testimonial-author .name{ font-weight:600; font-size:0.9rem; color:var(--ink); }
.testimonial-author .role{ font-size:0.78rem; color:var(--ink-soft); }
.sample-note{ font-size:0.78rem; color:var(--ink-soft); font-style:italic; }

/* Closing CTA band (image-backed, KCG "Partner with us" pattern) */
.cta-band{
  background:linear-gradient(rgba(20,19,15,0.88), rgba(20,19,15,0.88)), radial-gradient(circle at 20% 20%, var(--emerald-dark), transparent 60%);
  border-radius:20px; padding:3.5rem 2rem; text-align:center; color:var(--paper);
}
.cta-band h2{ color:var(--paper); }
.cta-band p{ color:rgba(246,245,241,0.78); max-width:520px; margin:0 auto; }

/* ============================================================
   PHOTOGRAPHY — real images from Unsplash / Pexels / Pixabay
   ============================================================ */
.photo-cover{
  width:100%; height:100%; object-fit:cover; object-position:center;
  display:block;
}
.photo-frame{
  border-radius:18px; overflow:hidden; position:relative;
}
.photo-credit{
  position:absolute; bottom:0.6rem; right:0.8rem; z-index:3;
  font-family:'IBM Plex Mono', monospace; font-size:0.62rem; letter-spacing:0.03em;
  color:rgba(246,245,241,0.75); background:rgba(20,19,15,0.35); padding:0.15rem 0.5rem; border-radius:999px;
}

/* Temperament library hero image */
.lib-hero-img{
  border-radius:18px; overflow:hidden; height:260px; margin-top:1.6rem; position:relative;
}
.lib-hero-img img{ width:100%; height:100%; object-fit:cover; }
@media (max-width: 767.98px){ .lib-hero-img{ height:190px; } }

/* Offer card / spotlight / split-visual as photo backgrounds */
.offer-card-visual.has-photo, .spotlight-visual.has-photo{
  background-size:cover; background-position:center; position:relative;
}
.offer-card-visual.has-photo::after{
  content:''; position:absolute; inset:0; background:linear-gradient(rgba(20,19,15,0.15), rgba(20,19,15,0.45));
}
.offer-card-visual.has-photo i, .offer-card-visual.has-photo .status-badge{ position:relative; z-index:2; color:#fff; }
.spotlight-visual.has-photo{ background-size:cover; background-position:center; }
.spotlight-visual.has-photo i{ display:none; }

.split-visual.has-photo{ background-size:cover; background-position:center; }
.split-visual.has-photo .compass-mini{ display:none; }

/* Blog thumbnail images */
.blog-thumb{ height:160px; border-radius:12px; overflow:hidden; margin-bottom:1rem; }
.blog-thumb img{ width:100%; height:100%; object-fit:cover; }
