/* landing.css v8.18.1 | Buktika | SDL-PIL-14 Archetype B
   Depends: global.css v3.14.0, themes.css v2.4.0
   v8.18.1 (2026-06-30): Reworked the How It Works section into a balanced
             two-card narrative grid. Corrected the undefined governed-strip
             surface token, tightened spacing, and clarified Tika hierarchy.
   v8.18.0 (2026-06-30): Site-wide readability audit. Restored face-card,
             door-card, and governed-strip substantive copy to the 1rem body
             floor. Narrative selectors now exclude compact role labels.
   v8.17.0 (2026-06-30): Added the homepage Tika Standard governed-by strip.
   v8.16.0 (2026-06-13): MamaDEX and social upliftment identity aligned to
             Colour Map v3.15.0. Borders, labels, CTAs, and shadow tint now
             use mama-violet instead of the retired mama-earth brown.
   v8.15.0 (2026-03-13): Trilogy strip migrated to global.css v3.14.0.
             Removed: .sdx-trilogy-strip, .trilogy-chapter, :hover/:focus,
             .active, .trilogy-thumb (base), .trilogy-caption, .trilogy-num,
             .trilogy-label, @media 768px trilogy rules, @media 640px trilogy rules.
             Retained: .trilogy-thumb-[slug] background-image only.
             UX fix: inactive panels now full opacity (global.css).
   v8.14.0 (2026-03-10): OVR-6 — Film strip divider. Owner override. BKT-DOC-www-C Rule 8.
            Full-bleed 35mm film strip between .hero-wrap and .landing-fence.
            Pure CSS + inline SVG. No image assets. Centre panel shows "end of roll"
            warm-toned exposure. Partial frames bleed off both viewport edges.
            Film metadata text (emulsion, exposure data) in strip margins.
            Sprocket holes via SVG pattern. Grain via CSS noise filter.
   v8.13.0: Five owner-directed overrides (OVR-1 through OVR-5).
   v8.12.0: FIX-L (trilogy canonical HTML/CSS), FIX-M (breadcrumb — reversed by OVR-5).
   v8.11.0: FIX-H/I/J/K. v8.9.0: Six owner-directed fixes. v8.8.0: Five fixes. */

/* -- 1. Page tokens -------------------------------------------------------- */
.page-landing {
  --page-bg:            var(--sdx-color-shell-bg);
  --page-primary:       var(--sdx-color-stone);
  --page-secondary:     var(--sdx-color-mama-amber);
  --page-accent:        var(--sdx-color-mama-amber);
  --page-depth:         var(--sdx-color-stem-olive);
  --page-dark-base:     var(--sdx-color-slate-dark);
  --page-dark-surface:  var(--sdx-color-dark-card);
  --page-bg-0:          rgba(243, 244, 246, 0);
  --page-dark-base-0:   rgba(30, 27, 24, 0);
  --hero-image:         url("/assets/images/landing/index-hero.webp");
  --hero-vignette-from: rgba(0, 0, 0, 0.15);
  --hero-vignette-to:   rgba(0, 0, 0, 0);
  /* V1-FIX: Shadow tint tokens derived from pillar primitives. DOC-01 §2.5. */
  --shadow-farmer:      rgba(70, 72, 32, 0.25);   /* stem-olive channel values */
  --shadow-mama:        rgba(139, 92, 246, 0.25); /* mama-violet channel values */
  --shadow-viridian:    rgba(75, 42, 86, 0.25);   /* purple-deep channel values */
  background: var(--page-bg);
  color: var(--fg);
}

/* -- 2. Hero --------------------------------------------------------------- */
/* FIX-A (v8.9.0): min-height removed — global.css 1000px default governs.
   FIX-B (v8.9.0): Pattern B — border-bottom: 4px solid var(--page-accent). DOC-03 §18.3B. */
.page-landing .hero-wrap {
  --hero: var(--hero-image);
  border-bottom: 4px solid var(--page-accent);
}

/* ::before — PIL-14 §3 bottom vignette. opacity ceiling ≤0.25. */
.page-landing .hero-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to top, var(--hero-vignette-from) 0%, var(--hero-vignette-to) 32%);
}

/* FIX-A: padding only. min-height governed by global.css. */
.page-landing .hero {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6rem 2rem;
}

/* DOC-02 §3.3.1: canonical pillar headline override. */
.page-landing .headline { font-size: clamp(2.75rem, 6vw, 4.5rem); }

.page-landing .btn-hero-primary {
  background: linear-gradient(135deg, var(--page-accent) 0%, var(--page-depth) 100%);
  box-shadow: 0 4px 20px rgba(0,0,0,.50), 0 2px 8px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.25);
}
.page-landing .btn-hero-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(0,0,0,.60), 0 3px 10px rgba(0,0,0,.40), inset 0 0 0 1px rgba(255,255,255,.30);
}

/* www-F §3.4: white-space: pre-line unlocks \n line breaks from i18n values.
   Not a prohibited override — only line-height, margin-top, font-size,
   font-weight are locked on .headline. */
.page-landing .headline { white-space: pre-line; }

/* -- 2c. Film strip / Section 1 — owned by landing-film-strip.css v2.0.0 --- */
/* none — all .sdx-film-strip rules live in landing-film-strip.css. OVR-6. */

/* -- 3. (Section alternation removed v8.9.0 FIX-F. All sections var(--card).) -- */

/* -- 3b. Section title margin — OVR-2 ---------------------------------------- */
/* Owner override. Scoped to .page-landing to avoid touching global.css. */
.page-landing .section-title,
.page-landing .sdx-card-section > h2 {
  margin: 1.25rem auto 2.5rem;
}

/* -- 4. Fence -------------------------------------------------------------- */
.page-landing .landing-fence {
  position: relative;
  width: 100%;
  background-image: url("/assets/images/landing/section-fence-bg.webp");
  background-size: cover;
  background-position: center 45%;
  overflow: hidden;
  padding: 6rem 2.5rem;
}
/* rgba scrim — confirmed exception DOC-01 §2.5. 0.45 within §18.6 range. */
.page-landing .landing-fence::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  pointer-events: none;
  z-index: 0;
}
.page-landing .landing-fence-inner {
  position: relative;
  z-index: 3;
  max-width: 820px;
  margin: 0 auto;
}
/* FIX-C (v8.9.0): glass backdrop removed. Text-shadow provides legibility. */
.page-landing .landing-fence-para {
  font-size: clamp(1.0625rem, 1.8vw, 1.25rem);
  line-height: 1.8;
  color: #ffffff;
  margin: 0 0 1.5rem;
  text-shadow:
    0 4px 24px rgba(0,0,0,1),
    0 2px 10px rgba(0,0,0,.95),
    0 1px 4px rgba(0,0,0,.85);
  text-align: justify;
  hyphens: auto;
}
.page-landing .landing-fence-pull {
  font-family: var(--headline-font);
  font-weight: 700;
  font-size: clamp(1.25rem, 2.5vw, 1.625rem);
  line-height: 1.4;
  color: var(--sdx-color-mama-amber);
  margin: 2rem 0 0;
  padding-top: 1.5rem;
  border-top: 2px solid rgba(245, 176, 20, 0.4);
  text-shadow:
    0 4px 24px rgba(0,0,0,1),
    0 2px 10px rgba(0,0,0,.95),
    0 1px 4px rgba(0,0,0,.80);
  text-align: center;
}

/* -- 5. Three Faces -------------------------------------------------------- */
/* FIX-K (v8.11.0): .page-landing .container padding-top overrides global reset. */
.page-landing .container {
  padding-top: 4.5rem;
}

.page-landing .landing-faces-grid {
  grid-template-columns: repeat(3, 1fr);
  align-items: stretch;
}
.page-landing .landing-face-card {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.page-landing .landing-face-farmer   { border-left-color: var(--sdx-color-green-deep); }
.page-landing .landing-face-mama     { border-left-color: var(--sdx-color-mama-violet); }
.page-landing .landing-face-viridian { border-left-color: var(--sdx-color-purple-deep); }
.page-landing .landing-face-farmer   .landing-face-role { color: var(--sdx-color-green-deep); }
.page-landing .landing-face-mama     .landing-face-role { color: var(--sdx-color-mama-violet); }
.page-landing .landing-face-viridian .landing-face-role { color: var(--sdx-color-purple-deep); }

/* FIX-J (v8.11.0): Fixed height on all face-card buttons.
   V1-FIX: box-shadow uses --shadow-* tokens. DOC-01 §2.5. */
.page-landing .landing-face-farmer .sdx-btn-primary {
  background: linear-gradient(145deg, var(--sdx-color-mama-amber) 0%, var(--sdx-color-stem-olive) 100%);
  box-shadow: 0 4px 14px var(--shadow-farmer);
  margin-top: auto; color: #ffffff; width: 100%;
  display: flex; align-items: center; justify-content: center;
  height: 3.5rem; text-align: center;
}
.page-landing .landing-face-mama .sdx-btn-primary {
  background: linear-gradient(135deg, var(--sdx-color-mama-violet) 0%, var(--sdx-color-mama-depth) 100%);
  box-shadow: 0 4px 14px var(--shadow-mama);
  margin-top: auto; color: #ffffff; width: 100%;
  display: flex; align-items: center; justify-content: center;
  height: 3.5rem; text-align: center;
}
.page-landing .landing-face-viridian .sdx-btn-primary {
  background: linear-gradient(145deg, var(--sdx-color-purple-deep) 0%, var(--sdx-color-mama-depth) 100%);
  box-shadow: 0 4px 14px var(--shadow-viridian);
  margin-top: auto; color: #ffffff; width: 100%;
  display: flex; align-items: center; justify-content: center;
  height: 3.5rem; text-align: center;
}
.page-landing .landing-face-portrait {
  width: 100%; aspect-ratio: 1/1; overflow: hidden;
  border-radius: var(--radius); background: var(--border); margin-bottom: 0.5rem;
}
.page-landing .landing-face-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* V2-FIX: letter-spacing em → rem. */
.page-landing .landing-face-role { font-size: var(--small); font-weight: 600; letter-spacing: 0.08rem; text-transform: uppercase; margin: 0; }
.page-landing .landing-face-card h3 { font-size: 1.375rem; margin: 0; }
.page-landing .landing-face-card p:not(.landing-face-role) {
  font-size: var(--body); line-height: 1.75; color: var(--muted); margin: 0;
}
.page-landing .landing-faces-connector {
  text-align: center; font-family: var(--headline-font); font-style: italic;
  font-size: clamp(1rem, 2vw, 1.25rem); color: var(--muted);
  margin: 2.5rem auto 0; max-width: 640px; padding-top: 2rem; border-top: 1px solid var(--border);
}

/* -- 6. How It Works ------------------------------------------------------- */
/* V3-FIX: .landing-how-cta rule removed. PIL-14 §5.4: ghost CTA = var(--border) + var(--fg).
   Global .sdx-btn-secondary governs. No per-page colour override permitted. */
.page-landing .landing-how > .section-title {
  margin-bottom: 0;
}
.page-landing .landing-how-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  max-width: 980px;
  margin: 0 auto 1.5rem;
}
.page-landing .landing-how-body {
  min-width: 0;
  margin: 0;
  padding: 1.5rem 1.75rem;
  border: 1.5px solid var(--border);
  border-left: 4px solid var(--sdx-color-mama-amber);
  border-radius: var(--radius);
  background: var(--surface-alt);
  box-shadow: var(--card-shadow);
  color: var(--fg);
  font-size: var(--body);
  line-height: 1.75;
  text-align: left;
}
.page-landing .landing-how-body:nth-child(2) {
  border-left-color: var(--sdx-color-green-deep);
}
.page-landing .landing-governed-strip {
  display: block;
  max-width: 980px;
  margin: 0 auto 1.5rem;
  padding: 1rem 1.25rem;
  border: 1.5px solid var(--border);
  border-left: 4px solid var(--sdx-color-green-deep);
  border-radius: var(--radius);
  background: var(--surface-alt);
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.07);
  color: var(--fg);
  font-size: var(--body);
  font-weight: 600;
  line-height: 1.55;
  text-align: left;
  text-decoration: none;
}
.page-landing .landing-governed-strip:hover,
.page-landing .landing-governed-strip:focus-visible {
  border-color: var(--sdx-color-mama-amber);
  text-decoration: underline;
}
.page-landing .landing-how-link-wrap {
  margin: 1.5rem auto 0; display: flex; justify-content: center; max-width: 680px;
}
/* OVR-4: Living Tower pillar colours on the How It Works CTA. Owner override. */
.page-landing .landing-how-link-wrap .sdx-btn-primary {
  background: linear-gradient(135deg, var(--sdx-color-green-deep) 0%, var(--sdx-color-stem-olive) 100%);
  box-shadow: 0 4px 14px var(--shadow-farmer);
  color: #ffffff;
}

/* -- 7. Where Do You Fit -------------------------------------------------- */
.page-landing #landing-door.sdx-card-section { padding-top: 2rem; }
.page-landing #landing-door .section-intro   { margin-bottom: 1.25rem; }
.page-landing .landing-door-grid {
  grid-template-columns: repeat(3, 1fr);
  align-items: stretch;
}
.page-landing .landing-door-card { display: flex; flex-direction: column; gap: 0.75rem; height: 100%; }
.page-landing .landing-door-card h3 { font-size: 1.125rem; line-height: 1.4; margin: 0; }
.page-landing .landing-door-card p:not(.landing-door-eyebrow) {
  flex: 1; font-size: var(--body); line-height: 1.75; color: var(--muted); margin: 0;
}
/* V2-FIX: letter-spacing em → rem. */
.page-landing .landing-door-eyebrow { font-size: var(--small); font-weight: 600; letter-spacing: 0.08rem; text-transform: uppercase; margin: 0; }
.page-landing .landing-door-farmer   .landing-door-eyebrow { color: var(--sdx-color-green-deep); }
.page-landing .landing-door-community .landing-door-eyebrow { color: var(--sdx-color-mama-violet); }
.page-landing .landing-door-viridian  .landing-door-eyebrow { color: var(--sdx-color-purple-deep); }
.page-landing .landing-door-farmer   { border-left-color: var(--sdx-color-green-deep); }
.page-landing .landing-door-community { border-left-color: var(--sdx-color-mama-violet); }
.page-landing .landing-door-viridian  { border-left-color: var(--sdx-color-purple-deep); }

/* FIX-J: Door card buttons — same fixed height:3.5rem treatment as face cards. */
.page-landing .landing-door-card .sdx-btn-primary {
  margin-top: auto; color: #ffffff; width: 100%;
  display: flex; align-items: center; justify-content: center;
  height: 3.5rem; text-align: center;
}
.page-landing .landing-door-farmer .sdx-btn-primary {
  background: linear-gradient(145deg, var(--sdx-color-mama-amber) 0%, var(--sdx-color-stem-olive) 100%);
  box-shadow: 0 4px 14px var(--shadow-farmer);
}
.page-landing .landing-door-community .sdx-btn-primary {
  background: linear-gradient(135deg, var(--sdx-color-mama-violet) 0%, var(--sdx-color-mama-depth) 100%);
  box-shadow: 0 4px 14px var(--shadow-mama);
}
.page-landing .landing-door-viridian .sdx-btn-primary {
  background: linear-gradient(145deg, var(--sdx-color-purple-deep) 0%, var(--sdx-color-mama-depth) 100%);
  box-shadow: 0 4px 14px var(--shadow-viridian);
}

/* -- 8. (Removed.) ---------------------------------------------------------- */

/* -- 9. Trilogy Strip — www-E §12–§13 ----------------------------------------
   Geometry, behaviour, typography: global.css v3.14.0.
   This page owns thumbnail backgrounds only. */
.page-landing .trilogy-thumb-landing      { background-image: url('/assets/images/landing/index-hero.webp'); background-position: center 35%; }
.page-landing .trilogy-thumb-about        { background-image: url('/assets/images/about/about-hero.webp'); }
.page-landing .trilogy-thumb-living-tower { background-image: url('/assets/images/living-tower/living-tower-hero.webp'); }

/* -- 10. CTA band — REMOVED. www-E §11: absent on all three spine pages. -- */

/* -- 11. Responsive -------------------------------------------------------- */
@media (max-width: 1024px) {
  .page-landing .landing-faces-grid,
  .page-landing .landing-door-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
  .page-landing .landing-faces-grid,
  .page-landing .landing-door-grid,
  .page-landing .landing-how-grid { grid-template-columns: 1fr; }
  /* FIX-A: Mobile hero — DOC-02 §3.3.6 canonical. Both rules matched. */
  .page-landing .hero-wrap,
  .page-landing .hero              { min-height: 560px; }
  .page-landing .hero              { padding: 3rem 1.25rem; }
  .page-landing .landing-fence     { padding: 3.5rem 1.5rem; }
  .page-landing .landing-fence-para {
    font-size: var(--body);
    text-align: left;
    hyphens: none;
  }
  .page-landing .landing-how-grid { gap: 1rem; }
  .page-landing .landing-how-body { padding: 1.25rem; }
  .page-landing .landing-faces-connector { text-align: left; }
  /* FIX-K: Mobile container padding-top reduced to match tighter mobile rhythm. */
  .page-landing .container { padding-top: 2.5rem; }
}

/* -- 12. Dark mode --------------------------------------------------------- */
[data-theme="dark"] .page-landing { background: var(--page-dark-base); }
[data-theme="dark"] .page-landing .landing-fence::before { background: rgba(0,0,0,.78); }
[data-theme="dark"] .page-landing .landing-how-body,
[data-theme="dark"] .page-landing .landing-governed-strip { background: var(--card); }
[data-theme="dark"] .page-landing .landing-face-farmer   .landing-face-role { color: var(--sdx-color-green-soft); }
[data-theme="dark"] .page-landing .landing-face-mama     .landing-face-role { color: var(--sdx-color-mama-violet-light); }
[data-theme="dark"] .page-landing .landing-face-viridian .landing-face-role { color: var(--sdx-color-purple-deep); }
[data-theme="dark"] .page-landing .landing-door-farmer   .landing-door-eyebrow { color: var(--sdx-color-green-soft); }
[data-theme="dark"] .page-landing .landing-door-community .landing-door-eyebrow { color: var(--sdx-color-mama-violet-light); }
[data-theme="dark"] .page-landing .landing-door-viridian  .landing-door-eyebrow { color: var(--sdx-color-purple-deep); }
/* V3-FIX: .landing-how-cta dark override removed along with light mode rule. */
[data-theme="dark"] .page-landing .landing-fence-pull { color: var(--sdx-color-mama-amber); }
