/* ================================================================
   candid-niche.css
   Page-specific styles for the Candid Niche view.
   Base variables, nav, footer, cursor, reveal, section-label,
   section-title, page-hero, btn-primary, link-arrow are all
   already in style.css — not duplicated here.
   ================================================================ */

/* ── Hero badge (animated pulse dot) ── */
.niche-hero-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--red-subtle);
  border: 1px solid rgba(223,44,38,0.2);
  padding: 7px 16px;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--red); margin-bottom: 28px;
  opacity: 0; animation: fadeUp 0.7s 0.4s ease forwards;
}
.niche-hero-badge::before {
  content: ""; width: 6px; height: 6px;
  border-radius: 50%; background: var(--red);
  animation: pulse-dot 1.8s ease-in-out infinite;
}
@keyframes pulse-dot {
  0%,100% { opacity:1; transform:scale(1); }
  50%      { opacity:0.4; transform:scale(0.6); }
}

/* ── Hero: orbit rings + logo watermark ── */
.hero-orbit-wrap {
  position: absolute;
  right: 6%; top: 60%; transform: translateY(-50%);
  width: 520px; height: 520px;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
}
.orbit-ring {
  position: absolute; border-radius: 50%;
  border: 1px solid rgba(22,61,100,0.07);
}
.orbit-ring:nth-child(1) { width:520px; height:520px; animation: rotateSlow 45s linear infinite; }
.orbit-ring:nth-child(2) { width:380px; height:380px; border-color:rgba(223,44,38,0.06); animation: rotateSlow 30s linear infinite reverse; }
.orbit-ring:nth-child(3) { width:250px; height:250px; border-color:rgba(22,61,100,0.1); animation: rotateSlow 20s linear infinite; }
.orbit-ring:nth-child(4) { width:130px; height:130px; border-color:rgba(223,44,38,0.12); animation: rotateSlow 12s linear infinite reverse; }
.orbit-ring::before {
  content:""; position:absolute;
  width:6px; height:6px; border-radius:50%;
  background: var(--blue); top:-3px; left:50%;
  transform: translateX(-50%); opacity: 0.4;
}
.orbit-ring:nth-child(2)::before { background: var(--red); }
.orbit-logo { position:relative; z-index:2; width:80px; height:80px; opacity:0.15; }
.orbit-tag {
  position: absolute;
  font-family: var(--font-display); font-size:10px; font-weight:700;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--blue); background:var(--white);
  border:1px solid rgba(22,61,100,0.12);
  padding:5px 10px; white-space:nowrap;
  opacity:0; animation: fadeIn 0.8s ease forwards;
}
.orbit-tag:nth-child(6)  { top:8%;   left:55%;  animation-delay:1.6s; }
.orbit-tag:nth-child(7)  { top:22%;  right:4%;  animation-delay:1.8s; }
.orbit-tag:nth-child(8)  { top:50%;  right:0%;  animation-delay:2.0s; }
.orbit-tag:nth-child(9)  { bottom:20%; right:6%; animation-delay:2.2s; }
.orbit-tag:nth-child(10) { bottom:8%; left:50%; animation-delay:2.4s; color:var(--red); border-color:rgba(223,44,38,0.2); }
.orbit-tag:nth-child(11) { top:38%;  left:42%; animation-delay:2.6s; }

/* ── Hero: scroll indicator ── */
.scroll-indicator {
  position:absolute; bottom:40px; right:56px;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  opacity:0; animation: fadeIn 1s 2.2s ease forwards;
}
.scroll-text { font-size:10px; letter-spacing:0.15em; text-transform:uppercase; color:var(--grey-200); writing-mode:vertical-rl; }
.scroll-line {
  width:1px; height:60px;
  background:linear-gradient(to bottom, var(--grey-200), transparent);
  animation: scrollLine 1.8s ease-in-out infinite;
}
@keyframes scrollLine {
  0%   { transform:scaleY(0); transform-origin:top; }
  50%  { transform:scaleY(1); transform-origin:top; }
  51%  { transform:scaleY(1); transform-origin:bottom; }
  100% { transform:scaleY(0); transform-origin:bottom; }
}
@keyframes rotateSlow { from{transform:rotate(0deg);} to{transform:rotate(360deg);} }

/* ── FOLD 2 — Apart section ── */
.apart-section { background: var(--off-white); }
.apart-inner { display:grid; grid-template-columns:5fr 7fr; gap:80px; align-items:start; }
.apart-body { font-size:16px; font-weight:300; color:var(--grey-600); line-height:1.9; margin-top:20px; }
.apart-body p { margin-bottom:16px; }
.apart-body p:last-child { margin-bottom:0; }
.apart-body strong { color:var(--black); font-weight:500; }

/* Institution pill list */
.inst-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.inst-pill {
  font-family:var(--font-display); font-size:12px; font-weight:700;
  letter-spacing:0.08em;
  color:var(--blue); background:var(--blue-subtle);
  border:1px solid rgba(22,61,100,0.15);
  padding:8px 16px; transition:all 0.3s ease; cursor:default;
}
.inst-pill:hover { background:var(--blue); color:var(--white); }

/* Principle card */
.principle-card {
  background:var(--white); border:1px solid var(--grey-100);
  border-left:3px solid var(--blue);
  padding:36px 40px; margin-top:32px;
}
.principle-quote {
  font-family:var(--font-display); font-size:22px; font-weight:700;
  color:var(--black); line-height:1.35; letter-spacing:-0.02em;
  margin-bottom:12px;
}
.principle-sub { font-size:16px; color:var(--grey-400); line-height:1.7; }

/* ── FOLD 3 — Specialist categories ── */
.categories-section { background:var(--white); }
.cat-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:var(--grey-100); margin-top:56px;
}
.cat-card {
  background:var(--white); padding:52px 40px;
  position:relative; overflow:hidden; cursor:default;
  transition:background 0.35s ease;
}
.cat-card::before {
  content:""; position:absolute; top:0; left:0;
  width:100%; height:3px;
  background:linear-gradient(90deg, var(--red), var(--blue));
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.45s cubic-bezier(0.16,1,0.3,1);
}
.cat-card:hover { background:var(--off-white); }
.cat-card:hover::before { transform:scaleX(1); }
.cat-num {
  font-family:var(--font-display); font-weight:800;
  font-size:60px; color:var(--grey-50); letter-spacing:-0.05em;
  line-height:1; margin-bottom:24px; transition:color 0.4s ease;
}
.cat-card:hover .cat-num { color:rgba(22,61,100,0.08); }
.cat-title {
  font-family:var(--font-display); font-weight:700;
  font-size:22px; letter-spacing:-0.02em;
  color:var(--black); margin-bottom:16px; line-height:1.2;
}
.cat-body { font-size:16px; color:var(--grey-400); line-height:1.75; }
.cat-examples { margin-top:24px; display:flex; flex-wrap:wrap; gap:6px; }
.cat-tag {
  font-size:11px; font-weight:600; letter-spacing:0.06em;
  color:var(--grey-400); background:var(--grey-50); padding:5px 10px;
  transition:all 0.3s;
}
.cat-card:hover .cat-tag { background:var(--grey-100); color:var(--black); }

/* ── FOLD 4 — For institutions ── */
.institutions-section { background:var(--off-white); }
.inst-inner { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.inst-body { font-size:16px; font-weight:300; color:var(--grey-600); line-height:1.85; margin-top:20px; }
.inst-body p { margin-bottom:16px; }
.inst-body strong { color:var(--black); font-weight:500; }

/* Feature list */
.get-list { display:flex; flex-direction:column; gap:1px; background:var(--grey-100); margin-top:8px; }
.get-item {
  background:var(--off-white); padding:24px 28px;
  display:flex; align-items:flex-start; gap:16px;
  border-left:2px solid transparent; cursor:default; transition:all 0.3s ease;
}
.get-item:hover { background:var(--white); border-left-color:var(--blue); }
.get-icon {
  width:32px; height:32px; flex-shrink:0;
  border:1px solid rgba(22,61,100,0.15); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  margin-top:1px; transition:all 0.3s;
}
.get-item:hover .get-icon { background:var(--blue); border-color:var(--blue); }
.get-icon svg { width:14px; height:14px; color:var(--blue); transition:color 0.3s; }
.get-item:hover .get-icon svg { color:var(--white); }
.get-text { font-size:15px; color:var(--grey-600); line-height:1.65; }
.get-text strong { color:var(--black); font-weight:500; }

/* ── FOLD 5 — For professionals ── */
.professionals-section { background:var(--white); }
/*.pro-inner { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }*/
.pro-body { font-size:16px; font-weight:300; color:var(--grey-600); line-height:1.85; margin-top:20px; }
.pro-body p { margin-bottom:16px; }
.pro-body strong { color:var(--black); font-weight:500; }

.pro-promise {
  background:var(--off-white); border:1px solid var(--grey-100);
  padding:44px 40px; position:relative; overflow:hidden;
}
.pro-promise::before {
  content:""; position:absolute; top:0; left:0;
  width:100%; height:3px;
  background:linear-gradient(90deg, var(--red), var(--blue));
}
.pro-promise-title {
  font-family:var(--font-display); font-weight:700;
  font-size:20px; color:var(--black); letter-spacing:-0.02em; margin-bottom:28px;
}
.promise-list { display:flex; flex-direction:column; gap:16px; }
.promise-item {
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 18px; background:var(--white); border:1px solid var(--grey-50);
  cursor:default; transition:border-color 0.3s ease, box-shadow 0.3s ease;
}
.promise-item:hover { border-color:rgba(22,61,100,0.15); box-shadow:0 4px 20px rgba(0,0,0,0.04); }
.promise-icon {
  width:28px; height:28px; flex-shrink:0;
  background:var(--blue-subtle); border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-top:1px;
}
.promise-icon svg { width:13px; height:13px; color:var(--blue); }
.promise-text { font-size:14px; color:var(--grey-600); line-height:1.6; }
.promise-text strong { color:var(--black); }

.no-charge-badge {
  display:flex; align-items:center; gap:10px;
  margin-top:24px; padding:16px 20px;
  background:var(--blue-subtle); border:1px solid rgba(22,61,100,0.15);
  font-size:14px; font-weight:600; color:var(--blue); letter-spacing:0.01em;
}
.no-charge-badge svg { width:18px; height:18px; flex-shrink:0; }

/* ── FOLD 6 — Closing CTA ── */
.closing-cta {
  background:var(--blue); padding:120px 56px;
  text-align:center; position:relative; overflow:hidden;
}
.closing-cta-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size:60px 60px;
}
.cta-orbit {
  position:absolute; border-radius:50%;
  border:1px solid rgba(255,255,255,0.05);
  top:50%; left:50%; transform:translate(-50%,-50%);
  pointer-events:none;
}
.cta-orbit:nth-child(3) { width:700px; height:700px; animation:rotateSlow 50s linear infinite; }
.cta-orbit:nth-child(4) { width:500px; height:500px; animation:rotateSlow 35s linear infinite reverse; border-color:rgba(223,44,38,0.08); }
.closing-cta-content { position:relative; z-index:2; max-width:900px; margin:0 auto; }
.closing-label {
  display:inline-flex; align-items:center; gap:8px;
  font-size:11px; font-weight:500; letter-spacing:0.2em; text-transform:uppercase;
  color:rgba(255,255,255,0.4); margin-bottom:24px;
}
.closing-label::before { content:""; width:24px; height:1px; background:var(--red); }
.closing-title {
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(36px,5vw,64px); letter-spacing:-0.04em; line-height:1.05;
  color:var(--white); margin-bottom:20px;
}
.closing-sub {
  font-size:17px; font-weight:300;
  color:rgba(255,255,255,0.55); line-height:1.75; margin-bottom:52px;
}
.closing-actions { display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; }

.btn-white {
  display:inline-flex; align-items:center; gap:10px;
  background:var(--white); color:var(--blue);
  padding:16px 36px;
  font-family:var(--font-display); font-size:14px; font-weight:700;
  letter-spacing:0.04em; text-decoration:none; cursor:default;
  transition:all 0.3s ease;
}
.btn-white:hover { background:var(--red); color:var(--white); transform:translateY(-2px); box-shadow:0 16px 48px rgba(0,0,0,0.2); }
.btn-white svg { transition:transform 0.3s; }
.btn-white:hover svg { transform:translateX(4px); }

.btn-outline-white {
  display:inline-flex; align-items:center; gap:10px;
  background:transparent; border:1px solid rgba(255,255,255,0.25); color:var(--white);
  padding:16px 36px;
  font-family:var(--font-display); font-size:14px; font-weight:700;
  letter-spacing:0.04em; text-decoration:none; cursor:default;
  transition:all 0.3s ease;
}
.btn-outline-white:hover { background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.5); transform:translateY(-2px); }

/* ================================================================
   RESPONSIVE OVERRIDES
   ================================================================ */

/* ── Tablet (≤ 1024px) ── */
@media (max-width: 1024px) {
.page-hero {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;   /* CENTER everything */
  align-items: flex-start !important;

  min-height: 100vh !important;  /* full screen */
  height: 100vh !important;

  padding: 0 32px !important;   /* remove top extra spacing */
}
 
  /* 2. Content block — on top, full width, no overlap */
  .page-hero-content {
    position: relative !important;
    z-index: 3 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-top: 0 !important;
    padding-bottom: 48px !important;
 
    /* content fades up after the page loads */
    opacity: 0;
    animation: cnFadeUp 0.8s 0.3s ease forwards;
  }
 
  /* 3. Orbit wrap — override display:none, sit below content */
  .hero-orbit-wrap {
    display: flex !important;           /* was display:none */
    position: relative !important;     /* was position:absolute */
    right: auto !important;
    top: auto !important;
    transform: none !important;
    width: 100% !important;
    height: 300px !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    
 
    /* orbit area fades in AFTER the content */
    opacity: 0;
    animation: cnFadeIn 1s 0.75s ease forwards;
  }
 
  /* 4. Scale rings to fit mobile viewport */
  .orbit-ring:nth-child(1) { width: 280px !important; height: 280px !important; }
  .orbit-ring:nth-child(2) { width: 210px !important; height: 210px !important; }
  .orbit-ring:nth-child(3) { width: 140px !important; height: 140px !important; }
  .orbit-ring:nth-child(4) { width:  72px !important; height:  72px !important; }
 
  /* 5. Shrink centre logo */
  .orbit-logo {
    width: 52px !important;
    height: 52px !important;
  }
 
  /* 6. Institution tags — reposition around the smaller rings */
  .orbit-tag {
    position: absolute !important;
    font-size: 9px !important;
    padding: 4px 9px !important;
    letter-spacing: 0.1em !important;
  }
  .orbit-tag:nth-child(6)  { top: 4%;    left: 48%;   }
  .orbit-tag:nth-child(7)  { top: 18%;   right: 6%;   }
  .orbit-tag:nth-child(8)  { top: 50%;   right: 2%;   }
  .orbit-tag:nth-child(9)  { bottom: 18%; right: 8%;  }
  .orbit-tag:nth-child(10) { bottom: 4%;  left: 44%;  }
  .orbit-tag:nth-child(11) { top: 36%;   left: 36%;   }
 
  /* hide scroll indicator — no room */
  .scroll-indicator { display: none !important; }
  .scroll-indicator { display:none; }
  .closing-cta { padding:80px 32px; }

  .apart-inner  { grid-template-columns:1fr !important; gap:48px !important; }
  .apart-body   { font-size:15px; }
  .principle-card { padding:28px 28px; }
  .principle-quote { font-size:19px; }

  .cat-grid { grid-template-columns:1fr 1fr !important; margin-top:40px; }
  .cat-card { padding:40px 28px; }
  .cat-num  { font-size:48px; }
  .cat-title { font-size:20px; }

  .inst-inner { grid-template-columns:1fr !important; gap:40px !important; }
  .pro-inner  { grid-template-columns:1fr !important; gap:40px !important; }
  .pro-promise { padding:36px 28px; }
}

/* ── Mobile (≤ 768px) ── */
@media (max-width: 768px) {
    .page-hero {
    padding: 88px 20px 0 20px !important;
  }
 
  .page-hero-content {
    padding-bottom: 36px !important;
  }
 
  .hero-orbit-wrap {
    height: 250px !important;
    order: 2;
  }
 
  .orbit-ring:nth-child(1) { width: 230px !important; height: 230px !important; }
  .orbit-ring:nth-child(2) { width: 170px !important; height: 170px !important; }
  .orbit-ring:nth-child(3) { width: 112px !important; height: 112px !important; }
  .orbit-ring:nth-child(4) { width:  58px !important; height:  58px !important; }
 
  .orbit-tag  { font-size: 8px !important; padding: 3px 8px !important; }
  .orbit-logo { width: 40px !important; height: 40px !important; }

 
  .closing-cta { padding:64px 20px; }

  .apart-inner  { grid-template-columns:1fr !important; gap:32px !important; }
  .apart-body p { margin-bottom:12px; }
  .principle-card { padding:24px 20px; margin-top:24px; }
  .principle-quote { font-size:17px; line-height:1.4; }
  .principle-sub { font-size:14px; }
  .inst-pill { font-size:11px; padding:6px 12px; }

  .cat-grid { grid-template-columns:1fr !important; margin-top:32px; }
  .cat-card { padding:36px 24px; }
  .cat-num  { font-size:40px; margin-bottom:16px; }
  .cat-title { font-size:19px; margin-bottom:12px; }
  .cat-body { font-size:14px; }
  .cat-tag  { font-size:10px; padding:4px 8px; }

  .inst-inner { grid-template-columns:1fr !important; gap:32px !important; }
  .inst-body p { margin-bottom:12px; }
  .get-item { padding:20px 20px; gap:12px; }
  .get-text { font-size:14px; }

  .pro-inner  { grid-template-columns:1fr !important; gap:32px !important; }
  .pro-body p { margin-bottom:12px; }
  .pro-promise { padding:28px 20px; }
  .pro-promise-title { font-size:17px; margin-bottom:20px; }
  .promise-item { padding:14px 14px; gap:10px; }
  .promise-text { font-size:13px; }
  .no-charge-badge { padding:14px 16px; font-size:13px; margin-top:20px; }

  .closing-title { font-size:clamp(26px,8vw,44px) !important; }
  .closing-sub   { font-size:15px; margin-bottom:36px; }
  .closing-actions { flex-direction:column; align-items:center; width:100%; }
  .btn-white, .btn-outline-white { width:100%; max-width:360px; justify-content:center; padding:15px 24px; font-size:14px; }
  .cta-orbit { display:none; }
}

/* ── Small mobile (≤ 480px) ── */
@media (max-width: 480px) {
    .page-hero {
    padding: 80px 16px 0 16px !important;
  }
 
  .page-hero-content {
    padding-bottom: 28px !important;
  }
 
  .hero-orbit-wrap {
    height: 210px !important;
  }
 
  .orbit-ring:nth-child(1) { width: 190px !important; height: 190px !important; }
  .orbit-ring:nth-child(2) { width: 138px !important; height: 138px !important; }
  .orbit-ring:nth-child(3) { width:  90px !important; height:  90px !important; }
  .orbit-ring:nth-child(4) { width:  46px !important; height:  46px !important; }
 
  .orbit-logo { width: 32px !important; height: 32px !important; }
  .orbit-tag  { font-size: 7px !important; padding: 3px 7px !important; }
 
  .page-hero-h1  { font-size: clamp(24px, 7.5vw, 36px) !important; }
  .page-hero-sub { font-size: 14px !important; }
  .closing-cta { padding:52px 16px; }
  .cat-grid    { grid-template-columns:1fr !important; }
  .cat-card    { padding:28px 18px; }
  .cat-num     { font-size:36px; }
}

/* ── Touch devices — remove stuck hover states ── */
@media (hover: none) {
  .cat-card:hover,
  .get-item:hover,
  .promise-item:hover,
  .inst-pill:hover { background:inherit; border-left-color:transparent; }

  .cat-card:hover::before { transform:scaleX(0); }

  .btn-white:hover,
  .btn-outline-white:hover { transform:none; box-shadow:none; }
}


/* ── Keyframes (scoped to mobile, won't affect desktop) ─────── */
@keyframes cnFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
 
@keyframes cnFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
 
/* ── Touch: suppress stuck hover states ─────────────────────── */
@media (hover: none) {
  .orbit-tag:hover { background: inherit; }
}
 






















