/* ════════════════════════════════════════════════════════════════════
   ct.css  —  "Component Theme" stylesheet
   ------------------------------------------------------------------
   Hii ndiyo CSS ya SHARED kwa HEADER na FOOTER za Siri za Chumbani.
   Imetolewa (extracted) 1:1 kutoka page ya "Brand Kit"
   (siri.mnyilinga.co.tz) — rangi, spacing, fonts, breakpoints —
   HAKUNA kilichobadilishwa.

   JINSI YA KUITUMIA kwenye page mpya yoyote:
   1. Weka <link rel="stylesheet" href="/dynamic/ct.css" /> kwenye <head>
   2. Weka Google Fonts link (Roboto + Inter) KABLA ya ct.css — angalia
      sehemu ya "FONTS INAYOHITAJIKA" chini kabisa ya faili hii.
   3. Weka <div id="header"></div> mahali unapotaka navbar ionekane
      (kawaida mstari wa kwanza ndani ya <body>)
   4. Weka <div id="footer"></div> mwishoni kabla ya </body>
   5. Weka <script src="/dynamic/cp.js"></script> baada ya #footer

   cp.js ndiyo itakayoingiza (inject) HTML ya header/footer kwenye
   hizo <div> mbili — style zote za hapa chini zitafanya kazi papo
   hapo bila kubadilisha chochote.

   MUHIMU: Vigezo vyote vinavyoanza na --hdr- ni "locked" — havitakiwi
   kubadilishwa wala kupewa jina jipya, kwa sababu ndiyo yanayofanya
   header ionekane sawa (identical) kwenye kila page ya brand hii.
   ════════════════════════════════════════════════════════════════════ */

:root {
  /* ============ HEADER / FOOTER BRAND VARIABLES ============
     Locked kwa Siri za Chumbani — usibadilishe wala kuzipa jina jipya. */
  --hdr-ink: #0c0505;
  --hdr-void: #170808;
  --hdr-brand: #c22219;
  --hdr-brand-bright: #e0362a;
  --hdr-paper: #f4ece7;
  --hdr-paper-dim: #cbb3ac;
  --hdr-gold: #c99a4a;
  --hdr-line: rgba(244, 236, 231, 0.1);
  --hdr-line-strong: rgba(244, 236, 231, 0.18);
  --hdr-font: 'Roboto', sans-serif;

  /* Body font inahitajika na footer links / footer-bottom */
  --body-font: 'Inter', sans-serif;

  /* ============ ACCENT MPYA — kwa hero blobs pekee ============
     Hizi si "locked" kama --hdr-*, lakini zinatumika TU kwenye
     background decoration ya .cta-hero (blobs) — hazigusi maandishi
     wala buttons, ambazo bado zinatumia --hdr-brand/--hdr-gold. */
  --acc-blue: #2f6fed;
  --acc-blue-bright: #4d8cff;
  --acc-purple: #6b4fd8;
}

/* ════════════════════════════════════════════════════════════════════
   BASE RESET — MINIMAL, kwa makusudi
   ------------------------------------------------------------------
   ct.css HAIWEKI background/color/font ya <body>, wala .wrap, tena.
   Kila page inamiliki background na .wrap yake yenyewe (kwa mfano:
   Confessions ni nyeusi na .wrap yake, Brand Kit ni nyeupe na .wrap
   yake — "True white body per brief"). ct.css inashughulikia
   HEADER/FOOTER/MENU pekee — component za pamoja, si page layout.

   Iwapo page yako mpya HAINA .wrap wala body background yake
   yenyewe, ONGEZA hivi kwenye <style> ya page hiyo (si hapa):

     body { background: var(--hdr-ink); color: var(--hdr-paper); }
     .wrap { max-width: 1180px; margin: 0 auto; padding: 0 28px; }
   ════════════════════════════════════════════════════════════════════ */
* { box-sizing: border-box; }

/* ════════════════════════════════════════════════════════════════════
   HEADER
   ════════════════════════════════════════════════════════════════════ */
#header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: rgb(12, 5, 5);
  border-bottom: 1px solid var(--hdr-line);
}

/* Kila page inayotumia header hii lazima iwe na <main> yenye margin-top
   sawa na hii, la sivyo content itafichwa nyuma ya fixed header. */
main {
  margin-top: 60px;
  position: relative;
  z-index: 1;
}

/* ════════════════════════════════════════════════════════════════════
   HEADER GLOW — blobs mbili zinazotumia rangi zile zile za hero/footer
   (--acc-purple kushoto, --hdr-brand kulia) ili header "ifanane"/iwe
   na undugu na footer, badala ya kuwa rangi moja tambarare.
   ------------------------------------------------------------------
   MUHIMU: overflow:hidden imewekwa kwenye .header-glow-mask (dirisha
   dogo jipya, mtoto wa kwanza wa #header — angalia cp.js), SI kwenye
   #header lenyewe. #header haiwezi kupata overflow:hidden kwa sababu
   .dropdown-menu (menu inayofunguka chini ya header) ni mtoto wa
   #header pia (ndani ya .header-inner > .menu-wrap), na inahitaji
   kutokea NJE ya box ndogo ya header (~80px) pale mtumiaji anapobonyeza
   menu button — overflow:hidden kwenye #header ingeikata/kuificha
   kabisa menu hiyo. .header-glow-mask badala yake ni dirisha
   lililojitenga (position:absolute; inset:0) linalofunika #header TU
   kwa ukubwa sawa, na ndiyo pekee lenye overflow:hidden — halihusiani
   kabisa na .header-inner wala kilichomo ndani yake.
   ════════════════════════════════════════════════════════════════════ */
.header-glow-mask {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.header-glow { position: absolute; pointer-events: none; z-index: 0; }
.header-glow-left {
  top: -70px; left: -100px; width: 220px; height: 220px;
  background: radial-gradient(circle at 50% 50%, var(--acc-purple), transparent 70%);
  border-radius: 50%; filter: blur(16px); opacity: 0.35;
}
.header-glow-right {
  top: -80px; right: -120px; width: 260px; height: 260px;
  background: radial-gradient(circle at 50% 50%, var(--hdr-brand), transparent 70%);
  border-radius: 50%; filter: blur(16px); opacity: 0.3;
}

/* position:relative + z-index:1 (MPYA) — hii ndiyo inayohakikisha
   logo/menu-button vinakaa JUU ya hizo blobs mbili (z-index:0) badala
   ya kufichwa nyuma yake. Bila hii, kwa vile .header-inner awali
   haikuwa "positioned element", blobs mpya zingeweza kuchorwa juu
   yake kwenye baadhi ya hali za stacking — sasa haiwezekani. */
.header-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 28px;
  max-width: 1180px;
  margin: 0 auto;
}

.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.brand-mark {
  width: 36px; height: 36px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}
.brand-mark img { width: 100%; height: 100%; display: block; }
.brand-name {
  font-family: var(--hdr-font);
  font-weight: 700;
  font-size: 1.08rem;
  letter-spacing: 0.01em;
  color: var(--hdr-paper);
}
.brand-name span { font-family: var(--hdr-font); color: var(--hdr-brand-bright); }

/* ---- Menu button (hamburger / close toggle) ---- */
.menu-btn {
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px;
  border-radius: 3px;
  border: 1px solid var(--hdr-line-strong);
  background: transparent;
  color: var(--hdr-paper);
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.2s ease;
  position: relative;
}
.menu-btn:hover { background: rgba(244,236,231,0.06); }
.menu-btn .icon-close { display: none; }
.menu-btn[aria-expanded="true"] .icon-open { display: none; }
.menu-btn[aria-expanded="true"] .icon-close { display: block; }

.menu-wrap { position: relative; }
.dropdown-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 220px;
  background: var(--hdr-void);
  border: 1px solid var(--hdr-line-strong);
  border-radius: 6px;
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease;
  z-index: 1999;
}
.dropdown-menu.open { opacity: 1; visibility: visible; }
.dropdown-menu a {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px;
  border-radius: 4px;
  text-decoration: none;
  color: var(--hdr-paper);
  font-family: var(--hdr-font);
  font-size: 0.9rem;
  font-weight: 500;
}
.dropdown-menu a:hover { background: rgba(244,236,231,0.06); }
.dropdown-menu a.is-cta { color: var(--hdr-brand-bright); font-weight: 700; }
.dropdown-menu hr { border: none; border-top: 1px solid var(--hdr-line-strong); margin: 6px 4px; }

.menu-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(12, 5, 5, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease;
  z-index: 999;
  pointer-events: none;
}
.menu-overlay.open { opacity: 1; visibility: visible; pointer-events: auto; }

/* ════════════════════════════════════════════════════════════════════
   HERO (.cta-hero) + FOOTER GLOW
   ------------------------------------------------------------------
   #footer sasa ndiyo "canvas" moja YA PAMOJA kwa HERO na FOOTER-GRID
   (angalia cp.js: FOOTER_GLOW_HTML + HERO_HTML + FOOTER_HTML zote ni
   watoto wa moja kwa moja wa #footer). overflow/isolation zimewekwa
   kwenye #footer (siyo .cta-hero pekee kama awali), ili blob nyekundu
   ya kulia (br) itiririke bila kikomo kupitia .footer-divider hadi
   chini kabisa ya footer-bottom, badala ya kukatika ghafla mwishoni
   mwa hero. Blob ya kushoto-juu (tl, bluu/purple) inabaki ndani ya
   .cta-hero pekee — ni ya hero peke yake, haikuwa na tatizo lolote.
   Maandishi na button zinabaki kwenye --hdr-* zilizolocked; blobs
   pekee ndizo zinazotumia --acc-blue/--acc-purple/--hdr-brand mpya.
   ════════════════════════════════════════════════════════════════════ */
#footer { position: relative; overflow: hidden; isolation: isolate; background: var(--hdr-ink); padding: 0 0 20px; }
#footer > .wrap { position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding-left: 28px; padding-right: 28px; }

.hero-blob { position: absolute; pointer-events: none; z-index: 0; }

/* Blob ya kulia (mwekundu) — mtoto wa moja kwa moja wa #footer
   (angalia cp.js), siyo wa .cta-hero, kwa hiyo inaenea nyuma ya HERO
   NA FOOTER pamoja kama background moja endelevu. Positioning imebadilika
   kutoka `bottom:` (ilipokuwa imefungiwa ndani ya .cta-hero pekee)
   kwenda `top:` (sasa relative kwa #footer nzima) — `top:180px` +
   `height:620px` inafikisha ukingo wa blob hadi ~800px kutoka juu ya
   #footer, ikizidi urefu halisi wa footer nzima (~587px desktop) ili
   mng'ao uendelee bila pengo hadi mwisho. Angalia pia @media (max-width:
   620px) chini — footer ya mobile ni ndefu zaidi (grid 2x2), hivyo blob
   ya mobile ina thamani tofauti kabisa, ndefu zaidi si fupi zaidi.

   NOTE: ile "ring" ya outline (mstari mwembamba wa duara, SVG separate
   kutoka kwa hii fill) imeondolewa kabisa kwa maombi ya mtumiaji — sasa
   ni glow fill pekee (radial-gradient blur), hakuna SVG stroke tena. */
.blob-fill-br {
  top: 180px; right: -260px; width: 620px; height: 620px;
  background: radial-gradient(circle at 60% 40%, var(--hdr-brand), transparent 70%);
  border-radius: 50%; filter: blur(14px); opacity: 0.35;
}

.cta-hero {
  position: relative;
  z-index: 1;
  padding: 100px 28px 120px;
  text-align: center;
}
/* Blob ya kushoto-juu (purple/bluu) — vilevile "ring" ya outline
   imeondolewa; glow fill pekee ndiyo iliyobaki. */
.blob-fill-tl {
  top: -110px; left: -140px; width: 320px; height: 320px;
  background: radial-gradient(circle at 30% 30%, var(--acc-purple), transparent 70%);
  border-radius: 50%; filter: blur(10px); opacity: 0.55;
}
.cta-hero-inner { position: relative; z-index: 1; }
.cta-hero h2 {
  font-family: var(--hdr-font);
  font-weight: 900;
  font-size: clamp(1.7rem, 4.6vw, 3rem);
  line-height: 1.1;
  color: var(--hdr-paper);
  letter-spacing: -0.01em;
  max-width: 700px;
  margin: 0 auto 36px;
}
.cta-hero h2 .accent { color: var(--hdr-brand-bright); }

.cta-row { display: inline-flex; align-items: center; gap: 18px; }
.cta-spark { width: 30px; height: 20px; flex-shrink: 0; color: var(--hdr-gold); opacity: 0.85; }
.cta-spark.right { transform: scaleX(-1); }

.cta-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--hdr-brand);
  color: var(--hdr-paper);
  font-family: var(--hdr-font);
  font-weight: 700;
  font-size: 1rem;
  padding: 15px 28px;
  border-radius: 8px;
  text-decoration: none;
  border: 1px solid rgba(244,236,231,0.08);
  transition: background 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}
.cta-button:hover { background: var(--hdr-brand-bright); transform: translateY(-1px); }
.cta-button svg { width: 16px; height: 16px; flex-shrink: 0; }

/* ════════════════════════════════════════════════════════════════════
   FOOTER (muundo mpya — brand block + General + Follow Us + Explore More)
   ------------------------------------------------------------------
   NOTE: footer HTML (kwenye cp.js) ina <div class="wrap"> ndani yake.
   Rule hapa chini (footer > .wrap) inaifanya footer iwe na max-width
   sahihi YENYEWE, bila kutegemea .wrap ya page nzima kuwepo mahali
   pengine — kwa hiyo footer itaonekana sahihi hata kwenye page
   isiyo na .wrap yake yenyewe.
   ════════════════════════════════════════════════════════════════════ */
.footer-divider { border: none; border-top: 1px solid var(--hdr-line); margin: 0 0 48px; }

.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 32px;
  padding-bottom: 32px;
}

.footer-brand-block { display: flex; flex-direction: column; gap: 16px; }
.footer-logo { display: flex; align-items: center; gap: 9px; text-decoration: none; }
.footer-logo img { width: 32px; height: 32px; border-radius: 7px; display: block; }

.footer-badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: rgba(244,236,231,0.03);
  border: 1px solid var(--hdr-line-strong);
  border-radius: 8px;
  padding: 8px 12px;
  width: fit-content;
}
.footer-badge-icon {
  width: 24px; height: 24px;
  border-radius: 6px;
  background: var(--hdr-gold);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  color: var(--hdr-ink);
}
.footer-badge-icon svg { width: 13px; height: 13px; }
.footer-badge-text { display: flex; flex-direction: column; gap: 1px; }
.footer-badge-eyebrow { font-family: var(--hdr-font); font-size: 0.56rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--hdr-paper-dim); }
.footer-badge-main { font-family: var(--hdr-font); font-size: 0.78rem; font-weight: 700; color: var(--hdr-paper); }

.footer-col h4 { font-family: var(--hdr-font); font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--hdr-paper-dim); margin-bottom: 14px; }
.footer-col-links { display: flex; flex-direction: column; gap: 12px; }
.footer-col-links a {
  font-family: var(--body-font);
  font-size: 0.82rem;
  color: var(--hdr-paper);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  transition: color 0.15s ease;
}
.footer-col-links a:hover { color: var(--hdr-brand-bright); }
.footer-col-links a svg { width: 14px; height: 14px; flex-shrink: 0; fill: currentColor; opacity: 0.85; transition: opacity 0.2s ease; }
.footer-col-links a:hover svg { opacity: 1; }

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding-top: 22px;
  border-top: 1px solid var(--hdr-line);
  font-family: var(--body-font);
  font-size: 0.7rem;
  color: var(--hdr-paper-dim);
}
.footer-bottom-links { display: flex; gap: 20px; }
.footer-bottom-links a { color: var(--hdr-paper-dim); text-decoration: none; }
.footer-bottom-links a:hover { color: var(--hdr-paper); }

/* ════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ------------------------------------------------------------------
   HEADER: haina breakpoint maalum — inajinyoosha kiasili kwa
   flex-wrap pekee (tabia ya kawaida ya flexbox), sawa na chanzo.

   HERO + FOOTER (mpya): zina breakpoints mbili hapa chini —
   980px (tablet: footer-grid inapungua kutoka 4 columns kwenda 2x2)
   na 620px (mobile: General + Follow Us upande kwa upande kwa 2
   columns, huku brand-block na Explore More zikichukua upana kamili
   juu na chini yake — hii inafupisha urefu wa footer kwenye simu).
   ════════════════════════════════════════════════════════════════════ */
@media (max-width: 980px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .footer-brand-block { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  /* Nafasi tupu juu ya "Send Your First Confession!" na chini ya
     button ya "Send Now" ilikuwa kubwa mno kwenye simu (80px juu,
     90px chini, kisha 48px zaidi kutoka footer-divider chini yake
     — jumla ~138px ya nafasi tupu chini ya button pekee). Imepunguzwa
     hapa kwa simu TU (desktop bado ni 100px/120px na divider 48px,
     havijaguswa kabisa) ili hero na footer vibane bila kubadilisha
     ukubwa wa maandishi, button, wala rangi/blobs — nafasi pekee
     ndiyo iliyopunguzwa. Namba mpya (48px, 28px) zinatumia hiyo hiyo
     spacing scale iliyokwishatumika sehemu nyingine za faili hii
     (linganisha na .footer-grid gap: 32px, .footer-bottom padding-top:
     22px) badala ya namba mpya za ovyo. */
  .cta-hero { padding: 48px 20px 48px; }
  .footer-divider { margin-bottom: 28px; }
  .cta-hero h2 { margin-bottom: 28px; }
  .cta-row { flex-direction: column; gap: 14px; }
  .cta-spark { display: none; }
  /* Send Now button — ndogo kidogo kwenye simu pekee (desktop
     haijaguswa kabisa, bado 1rem font / 15px 28px padding).
     width imebadilika kutoka 100% (ilijaza screen nzima) kwenda
     auto (inajipima kwa maandishi yake, kama desktop), ili
     ionekane "ndogo" kimzunguko pia si kimo tu. Height inabaki
     ~46px (juu ya 44px touch-target minimum ya accessibility). */
  .cta-button { width: auto; justify-content: center; font-size: 0.9375rem; padding: 13px 22px; }

  /* General + Follow Us upande kwa upande (2 columns); brand-block
     na Explore More (col ya 3 kwenye HTML) zichukue upana kamili. */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
  .footer-brand-block { grid-column: 1 / -1; }
  .footer-col:last-child { grid-column: 1 / -1; }
  .footer-badge { width: 100%; }

  /* Copyright na Terms/Privacy — center kwenye simu pekee (desktop
     inabaki space-between, copyright kushoto na links kulia, kama
     awali). Bado ni flex-direction: column (mstari mmoja juu ya
     mwingine), tofauti ni tu jinsi kila mstari unavyojipanga kwa
     upana: center badala ya flex-start (kushoto). */
  .footer-bottom { flex-direction: column; align-items: center; gap: 12px; text-align: center; }
  .footer-bottom-links { gap: 16px; flex-wrap: wrap; justify-content: center; }

  /* Blob nyekundu (br) kwenye simu — footer ya mobile ni NDEFU ZAIDI
     kuliko desktop (footer-grid inapangana 2x2 badala ya row moja),
     kwa hiyo blob inahitaji kuwa ndefu zaidi (siyo fupi zaidi) ili
     mng'ao uendelee kufika chini kabisa bila pengo la giza tupu.
     Upana (right offset) umepunguzwa kidogo tu ili usisukume upana wa
     ukurasa; #footer's overflow:hidden inazuia scroll ya kando yoyote. */
  .blob-fill-br { width: 820px; height: 820px; top: 100px; right: -420px; }
}

/* ════════════════════════════════════════════════════════════════════
   FONTS INAYOHITAJIKA (siyo ndani ya CSS hii — weka kwenye <head>)
   ------------------------------------------------------------------
   Header/footer zinategemea Roboto (--hdr-font) na Inter (--body-font)
   kutoka Google Fonts. Bila hii, --hdr-font itaanguka kwenye
   default sans-serif ya kawaida na jina la brand halitaonekana sawa.

   Weka mistari hii miwili KABLA ya <link rel="stylesheet" href="/dynamic/ct.css" />:

   <link rel="preconnect" href="https://fonts.googleapis.com" />
   <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Roboto:wght@400;500;700;900&display=swap" rel="stylesheet" />
   ════════════════════════════════════════════════════════════════════ */