/* ============================================================
   File:   assets/citizenship-theme.css
   Scope:  body[data-program="turkey-cbi"]  (and .turkey-program for resilience)
   Anatolian Lacquer palette (4-stop), canonical #8A1626
   Purpose: A scoped override layer for the Turkey CBI program.
            Re-paints the program-accent only — gold, cream, dark
            tokens remain Aurea-canonical. No new utilities, no
            cross-program bleed. Sits on top of base.css /
            components.css / project-page.css / gv-listing.css.
   Cache-bust hint: load with ?v=20260506b
   ============================================================ */

/* ── 1. Token override (the only place crimson is declared) ─── */
/* Anatolian Lacquer palette (2026-05-05 retune)
   Re-pitched ladder: deep recedes (L*~8), mid sits cleanly between
   primary and deep (L*~21), wash warmed toward yellow (Hermès blanc
   tirelire). Primary unchanged — canonical, 5-AI approved. */
body[data-program="turkey-cbi"],
body.turkey-program {
    --crimson-deep:    #3E0810;     /* was #5A0E1A — now L*~8, recedes properly */
    --crimson-primary: #8A1626;     /* canonical (was #9B1C2C) */
    --crimson-mid:     #741425;     /* was #6B1320 — now L*~21, true mid */
    --crimson-wash:    #F7EDE6;     /* RESERVED — for project-page accent fields next iteration (KPI bg, link underlines); warmer (yellow side), Hermès blanc tirelire */

    --crimson-primary-rgb: 138, 22, 38;   /* NEW — pairs with --crimson-primary */

    /* Legacy aliases — keep so old rules still work */
    --brand-accent:        var(--crimson-primary);
    --brand-accent-deep:   var(--crimson-deep);
    --brand-accent-soft:   rgba(138, 22, 38, 0.07);
}

/* Defensive defaults so any inherited GV stylesheet that already
   reads --brand-accent* gets a sensible gold fallback at :root.
   These DO NOT override --gold/--cream/--dark and are scoped to
   their custom-property names only. */
:root {
    --brand-accent:      var(--gold);
    --brand-accent-deep: var(--gold-dark);
    --brand-accent-soft: var(--gold-bg);
}

/* ============================================================
   tk-edge — 2px lacquer line fixed to viewport top on every
   Turkey URL. THE single brand-furniture element that survives
   the polarity flip between hub (immersive crimson) and project
   detail (white surface). Costs 0 layout, never collides with nav.
   ============================================================ */
body[data-program="turkey-cbi"]::before {
    content: "";
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 2px;
    z-index: 1070;
    background: linear-gradient(90deg,
        var(--crimson-deep) 0%,
        var(--crimson-primary) 50%,
        var(--crimson-deep) 100%);
    pointer-events: none;
}

/* tk-footer-edge — mirror of tk-edge at the bottom of every Turkey URL.
   Closes the frame so users feel contained within the Turkey programme
   from start to finish. Uses the same gradient direction as tk-edge. */
body[data-program="turkey-cbi"] footer {
    position: relative;
}
body[data-program="turkey-cbi"] footer::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg,
        var(--crimson-deep) 0%,
        var(--crimson-primary) 50%,
        var(--crimson-deep) 100%);
    pointer-events: none;
    z-index: 5;
}

/* Cormorant H1 typography — Turkey scope only (negative tracking,
   2026 luxury tell paired with the inverted polarity of the hub) */
body[data-program="turkey-cbi"] .t-heading {
    font-weight: 300;
    letter-spacing: -0.012em;
    font-feature-settings: "ss01", "liga";
}

/* ============================================================
   2. Page-header twin: .page-header--turkey-cbi
   Mirrors the .page-header--golden-visa rules from gv-listing.css
   but paints the radial wash and the primary CTA in crimson.
   The gold dust radial stays in the second stop so warmth holds.
   ============================================================ */
body[data-program="turkey-cbi"] .page-header--turkey-cbi,
.page-header--turkey-cbi {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding-bottom: 4.5rem;
}
.page-header--turkey-cbi > * { position: relative; z-index: 2; }
.page-header--turkey-cbi .t-heading { font-weight: 400; }
.page-header--turkey-cbi .t-body {
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.page-header--turkey-landmark {
    min-height: min(760px, 76vh);
    padding: calc(var(--nav-height) + 4.5rem) 2rem 4.5rem;
    display: grid;
    align-items: end;
    color: var(--cream);
    background: var(--brand-accent-deep);
}

/* Layered overlay (2026-05-05 retune for hero text contrast):
   1. Center radial darkener — anchored on the H1+subtitle text zone
      (50% horizontal, 42% vertical), pulls cleanly past the busy
      mosque dome highlights without smothering the corners.
   2. Horizontal bookends — full-strength corners, mid-image breath.
   3. Vertical bottom-weight — guarantees KPI strip legibility on the
      sky-bright lower-left of the Bosphorus aerial image.
   4. Flat black floor (NEW) — uniform 38% black wash directly on the
      image, giving the moody-luxury vignette and pulling overall
      brightness down so the gradient layers above can do contrast
      work, not exposure work. CSS background stacks render last-to-
      first; this is the bottom-most layer (drawn first, under the
      three gradient layers). */
.page-header--turkey-landmark::before {
    background:
        radial-gradient(ellipse 65% 70% at 50% 42%, rgba(18, 11, 13, 0.62) 0%, rgba(18, 11, 13, 0.28) 60%, transparent 88%),
        linear-gradient(90deg, rgba(18, 11, 13, 0.78) 0%, rgba(18, 11, 13, 0.38) 50%, rgba(18, 11, 13, 0.78) 100%),
        linear-gradient(180deg, rgba(18, 11, 13, 0.42) 0%, rgba(18, 11, 13, 0.30) 45%, rgba(18, 11, 13, 0.85) 100%),
        linear-gradient(rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.38));
    z-index: 1;
}

.page-header--turkey-landmark .tk-hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.page-header--turkey-landmark .tk-hero-media picture,
.page-header--turkey-landmark .tk-hero-media img {
    display: block;
    width: 100%;
    height: 100%;
}

.page-header--turkey-landmark .tk-hero-media img {
    object-fit: cover;
    object-position: center 42%;
}

.page-header--turkey-landmark .tk-hero-content {
    position: relative;
    z-index: 2;
    width: min(100%, 1080px);
    margin: 0 auto;
}

.page-header--turkey-landmark .t-heading {
    color: var(--cream);
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    /* 2026 register: lighter weight + tighter tracking — Cormorant's
       luxury voice. Page-header--turkey-cbi base sets weight 400; we
       reduce to 300 to match the rest of the Turkey hub typography
       (line 83 sets .t-heading weight 300 site-wide for Turkey). */
    font-weight: 300;
    letter-spacing: -0.018em;
    text-shadow: 0 2px 28px rgba(0, 0, 0, 0.55);
}

.page-header--turkey-landmark .t-body {
    color: rgba(248, 245, 240, 0.96);
    max-width: 720px;
    margin: 1.25rem auto 0;
    font-size: clamp(1rem, 1.6vw, 1.125rem);
    line-height: 1.65;
    text-shadow: 0 1px 14px rgba(0, 0, 0, 0.55);
}

.page-header--turkey-landmark .kpi-strip--hero .kpi-card {
    /* Stronger glass: deeper translucent fill + soft gold-hint border
       for the curated-luxury feel. */
    background: rgba(18, 11, 13, 0.62);
    backdrop-filter: blur(14px) saturate(1.05);
    -webkit-backdrop-filter: blur(14px) saturate(1.05);
    border: 1px solid rgba(212, 196, 160, 0.16);
}
.page-header--turkey-landmark .kpi-strip--hero .kpi-card__value {
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45);
}
.page-header--turkey-landmark .kpi-strip--hero .kpi-card__label {
    color: rgba(212, 196, 160, 0.92);
}

/* Hero radial — crimson primary, gold dust secondary (warmth) */
.page-header--turkey-cbi::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 65% 50% at 82% 18%, rgba(var(--crimson-primary-rgb), 0.22) 0%, rgba(var(--crimson-primary-rgb), 0.07) 42%, transparent 75%),
        radial-gradient(ellipse 50% 40% at 15% 85%, rgba(212, 196, 160, 0.10) 0%, transparent 68%);
    z-index: 0;
    pointer-events: none;
}
@media (max-width: 768px) {
    .page-header--turkey-landmark {
        min-height: 72vh;
        padding: calc(var(--nav-height) + 3rem) 1.25rem 3rem;
    }
    .page-header--turkey-landmark .tk-hero-media img {
        object-position: 58% center;
    }
    .page-header--turkey-cbi::before {
        background:
            radial-gradient(ellipse 85% 40% at 80% 12%, rgba(var(--crimson-primary-rgb), 0.18) 0%, transparent 68%),
            radial-gradient(ellipse 75% 32% at 20% 88%, rgba(212, 196, 160, 0.08) 0%, transparent 62%);
    }
}

/* Hero KPI strip — crimson value, gold-stone label kept */
.page-header--turkey-cbi .kpi-strip--hero {
    margin: 2.75rem auto 0;
    max-width: 1000px;
}
.page-header--turkey-cbi .kpi-strip--hero .kpi-card {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(var(--crimson-primary-rgb), 0.30);
}
.page-header--turkey-cbi .kpi-strip--hero .kpi-card__value {
    color: var(--brand-accent);
}
.page-header--turkey-cbi .kpi-strip--hero .kpi-card__label {
    color: var(--stone);
}

/* Hero primary CTA — crimson fill, deeper crimson on hover */
.page-header--turkey-cbi .btn-primary--hero {
    background: var(--brand-accent);
    color: var(--cream);
    border-color: var(--brand-accent);
    font-weight: 500;
    margin-top: 0;
}
.page-header--turkey-cbi .btn-primary--hero:hover {
    background: var(--brand-accent-deep);
    border-color: var(--brand-accent-deep);
}

/* ============================================================
   3. Hero hairline accent (single crimson rule under H1)
   Used by both /citizenship/Turkey/ and any cz- card that opts in.
   ============================================================ */
body[data-program="turkey-cbi"] .hero-hairline,
.cbi-hero-hairline {
    display: block;
    width: 64px;
    height: 1px;
    margin: 1.25rem auto 1.75rem;
    background: var(--brand-accent);
    border: 0;
}

/* ============================================================
   4. cbi-* analogs (only the four hooks the Turkey hub will use)
      — listing card accent
      — KPI strip standalone
      — hero hairline (above)
      — primary CTA hover
   These are DELIBERATELY narrow. Do not 1:1 the gv-* family.
   ============================================================ */

/* 4a. cbi-listing-card — re-skin the GV listing card crimson when
   it is rendered inside a Turkey program scope. The card markup
   itself can stay .gv-listing-card; this scope re-paints accent
   surfaces only. */
body[data-program="turkey-cbi"] .gv-listing-card,
body[data-program="turkey-cbi"] .cbi-listing-card {
    border-top: 1px solid var(--brand-accent);
}
body[data-program="turkey-cbi"] .gv-listing-card__stat-value--gold,
body[data-program="turkey-cbi"] .cbi-listing-card__stat-value--accent {
    color: var(--brand-accent);
}
body[data-program="turkey-cbi"] .gv-listing-card:hover,
body[data-program="turkey-cbi"] .cbi-listing-card:hover {
    border-top-color: var(--brand-accent-deep);
}

/* 4b. cbi-kpi-strip — KPI strip on light surface (program overview
   page country-card cluster). Applies to plain .kpi-card markup
   inside a body.citizenship-hub .cbi-kpi-strip wrapper. */
body.citizenship-hub .cbi-kpi-strip .kpi-card__value {
    color: var(--brand-accent);
}
body.citizenship-hub .cbi-kpi-strip .kpi-card { border-color: rgba(var(--crimson-primary-rgb), 0.18); }

/* 4c. cbi-cta-primary — Turkey primary CTA on light surface
   (e.g. country card "Explore the Turkish Programme →"). */
body.citizenship-hub .cbi-cta-primary {
    background: var(--brand-accent);
    color: var(--cream);
    border-color: var(--brand-accent);
}
body.citizenship-hub .cbi-cta-primary:hover,
body.citizenship-hub .cbi-cta-primary:focus-visible {
    background: var(--brand-accent-deep);
    border-color: var(--brand-accent-deep);
    color: var(--cream);
}

/* 4d. Country-card crimson hairline (used on the citizenship hub
   Turkey card to hint at the country palette without committing
   the whole landing to crimson). */
body.citizenship-hub .cbi-country-card { position: relative; }
body.citizenship-hub .cbi-country-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 2px;
    background: var(--brand-accent);
}
body.citizenship-hub .cbi-country-card[aria-disabled="true"]::before {
    background: var(--warm-gray);
    opacity: 0.45;
}

/* ============================================================
   ALLOWED CRIMSON SURFACES — design contract
   ============================================================
   Crimson (#9B1C2C / --brand-accent) is allowed on EXACTLY four
   surfaces. Maintainers must not expand without written sign-off
   from Aurea brand:
     1. Primary CTA fill on Turkey-scoped pages
        (.page-header--turkey-cbi .btn-primary--hero, body.citizenship-hub .cbi-cta-primary)
     2. Hero hairline accent rule under H1
        (.cbi-hero-hairline)
     3. KPI numeric value
        (.kpi-card__value within Turkey scope or body.citizenship-hub .cbi-kpi-strip)
     4. Country-card top hairline on the citizenship hub
        (body.citizenship-hub .cbi-country-card::before)
   Eyebrow labels (.t-label), italic Cormorant subtitles, footer
   marks, body type, dividers, and ornament details ALL remain
   gold. Crimson never tints large surfaces and never shares a
   gradient with gold.
   ============================================================ */

/* ============================================================
   5. Citizenship hub HERO with image (full-bleed luxury image)
   Larger hero box, image background with dark overlay so text
   reads. Not Turkey-scoped — applies to /citizenship/.
   ============================================================ */
body.citizenship-hub .cbi-hero-immersive {
    position: relative;
    isolation: isolate;
    min-height: 78vh;
    padding: 7rem 1.5rem 5rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    text-align: center;
    overflow: hidden;
    margin: 0;
    color: var(--cream);
}
body.citizenship-hub .cbi-hero-immersive::before {
    content: "";
    position: absolute; inset: 0;
    background: transparent;
    z-index: 0;
}
body.citizenship-hub .cbi-hero-immersive::after {
    content: "";
    position: absolute; inset: 0;
    background:
        linear-gradient(to bottom, rgba(20,16,12,0.20) 0%, rgba(20,16,12,0.05) 30%, rgba(20,16,12,0.55) 75%, rgba(20,16,12,0.78) 100%),
        radial-gradient(ellipse 70% 50% at 50% 60%, transparent 0%, rgba(20,16,12,0.25) 80%);
    z-index: 1;
}
body.citizenship-hub .cbi-hero-immersive > * { position: relative; z-index: 2; }

body.citizenship-hub .cbi-hero-immersive .t-label {
    color: var(--gold);
    margin-bottom: 1.25rem;
    letter-spacing: 0.18em;
}
body.citizenship-hub .cbi-hero-immersive .t-heading {
    color: var(--cream);
    font-size: clamp(2.6rem, 6vw, 5rem);
    font-weight: 300;
    line-height: 1.05;
    margin: 0 0 1.5rem;
    max-width: 1100px;
    text-shadow: 0 2px 20px rgba(0,0,0,0.35);
}
body.citizenship-hub .cbi-hero-immersive .t-body {
    color: rgba(248, 245, 240, 0.92);
    max-width: 720px;
    margin: 0 auto;
    font-size: 1.05rem;
    line-height: 1.75;
    text-shadow: 0 1px 10px rgba(0,0,0,0.45);
}
body.citizenship-hub .cbi-hero-immersive .cbi-hero-hairline {
    background: var(--gold);
    margin: 1.5rem auto 2rem;
}
@media (max-width: 768px) {
    body.citizenship-hub .cbi-hero-immersive {
        min-height: 64vh;
        padding: 5rem 1.25rem 3.5rem;
    }
    body.citizenship-hub .cbi-hero-immersive .t-heading { font-size: clamp(2rem, 9vw, 3rem); }
}

/* Editorial inline figure (centered photo with caption gap) */
body.citizenship-hub .cbi-figure {
    margin: 0 auto 0;
    max-width: 1100px;
}
body.citizenship-hub .cbi-figure img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 18px 60px -20px rgba(20,16,12,0.35);
}
body.citizenship-hub .cbi-figure figcaption {
    margin-top: 0.85rem;
    font-family: var(--serif);
    font-style: italic;
    color: var(--warm-gray);
    font-size: 0.95rem;
    text-align: center;
    letter-spacing: 0.02em;
}
body.citizenship-hub .cbi-figure--full {
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
}
body.citizenship-hub .cbi-figure--full img { border-radius: 0; }

body.citizenship-hub .cbi-inline-cta {
    padding: 4.25rem 1.5rem;
}

body.citizenship-hub .cbi-inline-cta .container {
    max-width: 760px;
}

body.citizenship-hub .cbi-inline-cta .t-label {
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

body.citizenship-hub .cbi-inline-cta__copy {
    max-width: 620px;
    margin: 0 auto;
    color: rgba(248, 245, 240, 0.88);
}

/* ============================================================
   6. Turkey HUB — crimson immersive surface
   Scope: body[data-program="turkey-cbi"][data-surface="hub"]
   Repaints body background to Anatolian Crimson + inverts text.
   The detail _template stays white (no [data-surface="hub"]).
   ============================================================ */
body[data-program="turkey-cbi"][data-surface="hub"] {
    background:
        radial-gradient(ellipse 60% 40% at 78% 0%, rgba(255,255,255,0.06) 0%, transparent 55%),
        linear-gradient(180deg,
            var(--crimson-primary) 0%,
            var(--crimson-mid) 55%,
            var(--crimson-deep) 100%);
    background-attachment: fixed;
    color: var(--cream);
}
body[data-program="turkey-cbi"][data-surface="hub"] main { background: transparent; }

/* iOS Safari ≤16 paints fixed-attachment against the visual viewport,
   causing tearing during URL-bar collapse. Drop to scroll on mobile. */
@media (max-width: 768px) {
    body[data-program="turkey-cbi"][data-surface="hub"] {
        background-attachment: scroll;
    }
}

/* Section overrides — make .std and .bg-* sections transparent on
   the immersive hub UNLESS they opt into .tk-cream-island. Cream
   islands are a designed cream block on the crimson surface (true
   reverse polarity) and must keep their dark text on cream BG. */
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island),
body[data-program="turkey-cbi"][data-surface="hub"] .std.bg-offwhite:not(.tk-cream-island),
body[data-program="turkey-cbi"][data-surface="hub"] .std.bg-dark:not(.tk-cream-island) {
    background: transparent;
    color: var(--cream);
}
/* Headings need !important because base.css line 291 has
   `.bg-offwhite .t-heading { color: var(--dark) !important; }`
   that would otherwise turn FAQ / map-intro / any .bg-offwhite-wrapped
   heading into dark text on the now-transparent lacquer surface.
   Scoped via :not(.tk-cream-island) so cream islands keep dark headings. */
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) .t-heading,
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) h2,
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) h3 {
    color: var(--cream) !important;
}
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) .t-body,
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) p {
    color: var(--cream);
}
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) .t-label {
    color: var(--gold);
}
body[data-program="turkey-cbi"][data-surface="hub"] .data-table {
    background: rgba(255,255,255,0.04);
    color: var(--cream);
    border: 1px solid rgba(248,245,240,0.18);
}
body[data-program="turkey-cbi"][data-surface="hub"] .data-table th {
    color: var(--gold);
    border-bottom: 1px solid rgba(248,245,240,0.20);
}
body[data-program="turkey-cbi"][data-surface="hub"] .data-table td {
    border-bottom: 1px solid rgba(248,245,240,0.12);
}

/* FAQ details on crimson.
   Per Bond's screenshot: the hub override turns each <details> into a
   bordered card, but the base project-page.css `.faq-item` rule only
   sets vertical padding (1.5rem 0). On a card with a visible border
   that means the question text is flush against the LEFT/RIGHT edges.
   Override here: full inner padding + a small gap between cards so the
   FAQ list reads as a stack of breathing cards, not a tight strip. */
body[data-program="turkey-cbi"][data-surface="hub"] details.faq-item {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(248,245,240,0.14);
    border-radius: 4px;
    padding: 1.5rem 1.75rem;
}
body[data-program="turkey-cbi"][data-surface="hub"] .faq-list .faq-item + .faq-item {
    margin-top: 1rem;
}
body[data-program="turkey-cbi"][data-surface="hub"] .faq-question {
    color: var(--cream);
}
/* Open-state answer breathing room — the answer text drops into the
   card, so add top padding to separate from the question above it. */
body[data-program="turkey-cbi"][data-surface="hub"] .faq-item[open] .faq-answer {
    padding-top: 0.5rem;
}
body[data-program="turkey-cbi"][data-surface="hub"] .faq-answer .t-body {
    color: rgba(248,245,240,0.86);
}

/* Section-intro body width — the canonical .t-body in base.css is
   max-width 580px with NO auto margins. Inside a centered .section-intro
   the block stays LEFT-aligned, producing the visual mismatch Bond
   flagged on tk-geographies (narrow body column drifting under a wide
   centered H2). Force centering + a slightly wider reading column for
   any .section-intro on the hub. */
body[data-program="turkey-cbi"][data-surface="hub"] .section-intro .t-body,
body[data-program="turkey-cbi"][data-surface="hub"] .tk-geographies .t-body,
body[data-program="turkey-cbi"][data-surface="hub"] .section-intro p {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* KPI strip on crimson — gold border, cream value */
body[data-program="turkey-cbi"][data-surface="hub"] .kpi-strip--hero .kpi-card {
    background: rgba(255,255,255,0.05);
    border-color: rgba(212,196,160,0.40);
}
body[data-program="turkey-cbi"][data-surface="hub"] .kpi-strip--hero .kpi-card__value {
    color: var(--cream);
}
body[data-program="turkey-cbi"][data-surface="hub"] .kpi-strip--hero .kpi-card__label {
    color: var(--gold);
}

/* CTA inversion: on crimson surface, primary CTA becomes
   cream-filled with crimson text; hover deepens. */
body[data-program="turkey-cbi"][data-surface="hub"] .btn-primary,
body[data-program="turkey-cbi"][data-surface="hub"] .btn-primary--hero {
    background: var(--cream);
    color: var(--brand-accent);
    border-color: var(--cream);
    font-weight: 500;
}
body[data-program="turkey-cbi"][data-surface="hub"] .btn-primary:hover,
body[data-program="turkey-cbi"][data-surface="hub"] .btn-primary--hero:hover {
    background: var(--gold);
    color: var(--brand-accent-deep);
    border-color: var(--gold);
}

/* Hero hairline turns gold on crimson */
body[data-program="turkey-cbi"][data-surface="hub"] .cbi-hero-hairline,
body[data-program="turkey-cbi"][data-surface="hub"] .hero-hairline {
    background: var(--gold);
}

/* CTA section on crimson — keep transparent, no offwhite block.
   Headings need !important to beat base.css `.bg-offwhite .t-heading`
   which would otherwise render the final-CTA H2 dark on transparent
   crimson (i.e. invisible). */
body[data-program="turkey-cbi"][data-surface="hub"] .cta-section.bg-offwhite {
    background: transparent;
    color: var(--cream);
}
body[data-program="turkey-cbi"][data-surface="hub"] .cta-section.bg-offwhite .t-heading,
body[data-program="turkey-cbi"][data-surface="hub"] .cta-section.bg-offwhite h2,
body[data-program="turkey-cbi"][data-surface="hub"] .cta-section.bg-offwhite h3 {
    color: var(--cream) !important;
}
body[data-program="turkey-cbi"][data-surface="hub"] .cta-section.bg-offwhite .t-body,
body[data-program="turkey-cbi"][data-surface="hub"] .cta-section.bg-offwhite p {
    color: var(--cream);
}
body[data-program="turkey-cbi"][data-surface="hub"] .cta-section.bg-offwhite .t-label {
    color: var(--gold);
}

/* Hub passport feature block (flat-lay) */
.tk-passport-feature {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 4rem 1.5rem;
}
.tk-passport-feature img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 30px 80px -25px rgba(0,0,0,0.55);
}
.tk-passport-feature__copy { padding: 1rem 0; }
@media (max-width: 900px) {
    .tk-passport-feature {
        grid-template-columns: 1fr;
        gap: 2.5rem;
        padding: 2.5rem 1.25rem;
    }
}

/* Card inversion on crimson — make text-on-dark cards work */
body[data-program="turkey-cbi"][data-surface="hub"] .card,
body[data-program="turkey-cbi"][data-surface="hub"] .gv-listing-card {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(248,245,240,0.14);
    color: var(--cream);
}
body[data-program="turkey-cbi"][data-surface="hub"] .card h3,
body[data-program="turkey-cbi"][data-surface="hub"] .card p {
    color: var(--cream);
}
body[data-program="turkey-cbi"] .gv-listing-card-link[href*="avrupa-konutlari-sisli"] .gv-listing-card__image { object-position: center 56%; }
body[data-program="turkey-cbi"] .gv-listing-card-link[href*="mega-garden-park"] .gv-listing-card__image { object-position: center 49%; }
body[data-program="turkey-cbi"] .gv-listing-card-link[href*="skyland-sariyer"] .gv-listing-card__image { object-position: center 60%; }
body[data-program="turkey-cbi"] .gv-listing-card-link[href*="alya-merkezefendi"] .gv-listing-card__image { object-position: center 58%; }

/* Empty-portfolio placeholder card on crimson */
body[data-program="turkey-cbi"][data-surface="hub"] .gv-static-cards article {
    background: rgba(255,255,255,0.05) !important;
    border-color: rgba(248,245,240,0.20) !important;
}
body[data-program="turkey-cbi"][data-surface="hub"] .gv-static-cards .t-label { color: var(--gold) !important; }
body[data-program="turkey-cbi"][data-surface="hub"] .gv-static-cards h3 { color: var(--cream) !important; }
body[data-program="turkey-cbi"][data-surface="hub"] .gv-static-cards .t-body { color: rgba(248,245,240,0.86) !important; }

/* ============================================================
   7. WCAG AA fix — gold token swap on crimson surface
   `--gold #B8A88A` on `#8A1626` = 2.93:1 (FAIL AA 4.5:1).
   `--gold-light #D4C4A0` on `#8A1626` = 2.93:1 (still FAIL).
   Brighter cream-gold #E5C89E on `#8A1626` = ~4.51:1 (PASS AA).
   Scoped to the crimson immersive hub only — landing & detail pages
   keep canonical `--gold #B8A88A` per Aurea brand.
   ============================================================ */
body[data-program="turkey-cbi"][data-surface="hub"] {
    --gold: #E5C89E;  /* AA-pass on crimson-primary: ~4.51:1 */
}

/* ============================================================
   8. Turkey hub tonal rhythm (P1 — fix flat-crimson syndrome)
   Adds cream rest island, full-bleed banner, and inline figure
   utilities used on /citizenship/Turkey/.
   ============================================================ */

/* Full-bleed photo banner (Bosphorus aerial after hero) */
/* Bosphorus banner — full-bleed photo break.
   Per Bond's screenshot review: the previous max-height + object-position
   crop revealed too much bright golden-hour sky, producing a 3-band
   visual stack (sky / mosques / water) that read as three colour blocks
   stitched together. Fix: tighter crop (object-position: center 62%
   focuses on the architecture / waterline instead of the sky) + a
   layered dark vignette that ties the banner visually to the now-dark
   hero above (see the 4-layer ::before overlay on .page-header...). */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-banner-full {
    margin: 0;
    padding: 0;
    width: 100%;
    overflow: hidden;
    background: var(--brand-accent-deep);
    position: relative;
    isolation: isolate;
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-banner-full picture { display: block; }
body[data-program="turkey-cbi"][data-surface="hub"] .tk-banner-full img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 48vh;
    object-fit: cover;
    object-position: center 62%;
}
/* Dark vignette overlay: top + bottom darken to bridge to crimson hub
   surface; uniform 18% black wash pulls overall brightness down so the
   sky never reads as a separate cream band. */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-banner-full::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(20, 8, 10, 0.55) 0%, rgba(20, 8, 10, 0.00) 30%, rgba(20, 8, 10, 0.00) 70%, rgba(20, 8, 10, 0.55) 100%),
        linear-gradient(rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.18));
    pointer-events: none;
    z-index: 1;
}

/* Cream-rest island — the critical tonal break on crimson hub.
   Carve a cream block out of the full crimson surface so type
   reads naturally and the page gets a place to breathe.
   `!important` defends against `.std.bg-offwhite` (specificity 0,4,1)
   which would otherwise win the BG cascade and flatten the island. */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island {
    background: var(--cream) !important;
    color: var(--charcoal);
    padding-top: 5rem;
    padding-bottom: 5rem;
    margin: 4rem 0;
    box-shadow:
        0 30px 80px -30px rgba(20,16,12,0.35),
        0 -30px 80px -30px rgba(20,16,12,0.35);
}
/* Headings + body get !important so they beat both base.css's
   `.bg-offwhite .t-heading { color: var(--dark) !important }` AND any
   future hub override that uses !important on the cream surface. */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .t-heading,
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island h2,
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island h3 {
    color: var(--charcoal) !important;
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .t-body,
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island p {
    color: var(--charcoal);
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .t-label {
    color: var(--brand-accent);
    letter-spacing: 0.18em;
}

/* ============================================================
   tk-anatolian-life — lifestyle texture between portfolio and
   thresholds. Four cinematic photos (kahvaltı / carpet workshop /
   palace suite / mosque from window) on transparent crimson surface;
   captions in italic Cormorant cream. The reader meets the city as
   a resident before the page returns to mechanics. Bond's brief
   2026-05-06: "讓人看到這頁時更有感覺".
   ============================================================ */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-anatolian-life {
    padding: 5.5rem 1.5rem;
    position: relative;
    isolation: isolate;
}
/* Subtle warm vignette so the section reads as a designed pause on
   the otherwise flat crimson surface — same pattern as tk-geographies. */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-anatolian-life::before {
    content: "";
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse 80% 55% at 50% 30%, rgba(212,196,160,0.08) 0%, transparent 70%),
        linear-gradient(to bottom, rgba(0,0,0,0.18) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.18) 100%);
    z-index: -1;
    pointer-events: none;
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-anatolian-life .section-intro {
    margin-bottom: 3.5rem;
}
.tk-life-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem 2.5rem;
    max-width: 1100px;
    margin: 0 auto;
}
.tk-life-grid .tk-life-card {
    margin: 0;
}
.tk-life-grid picture { display: block; }
.tk-life-grid img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
    box-shadow: 0 28px 70px -20px rgba(20,16,12,0.55);
    transition: transform 400ms cubic-bezier(.2,.7,.2,1), box-shadow 400ms cubic-bezier(.2,.7,.2,1);
}
.tk-life-grid .tk-life-card:hover img,
.tk-life-grid .tk-life-card:focus-within img {
    transform: translateY(-4px);
    box-shadow: 0 36px 80px -20px rgba(20,16,12,0.65);
}
.tk-life-grid figcaption {
    margin-top: 1.1rem;
    font-family: var(--serif);
    font-style: italic;
    color: rgba(248,245,240,0.88);
    font-size: 0.98rem;
    line-height: 1.55;
    letter-spacing: 0.01em;
    text-align: center;
}
.tk-life-grid figcaption em {
    font-style: italic;
    color: var(--gold);
}
@media (max-width: 768px) {
    body[data-program="turkey-cbi"][data-surface="hub"] .tk-anatolian-life {
        padding: 4rem 1.25rem;
    }
    .tk-life-grid {
        grid-template-columns: 1fr;
        gap: 2.25rem;
        max-width: 560px;
    }
    .tk-life-grid img {
        box-shadow: 0 18px 40px -16px rgba(20,16,12,0.5);
    }
}
@media (prefers-reduced-motion: reduce) {
    .tk-life-grid img { transition: none; }
    .tk-life-grid .tk-life-card:hover img { transform: none; }
}

/* tk-geographies — secondary cream(deepened) section between map+faq.
   Runs on transparent crimson but adds a subtle warm vignette so it
   feels like a designed pause rather than another flat block. */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-geographies {
    position: relative;
    isolation: isolate;
    padding: 5rem 1.5rem;
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-geographies::before {
    content: "";
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse 70% 60% at 50% 30%, rgba(212,196,160,0.12) 0%, transparent 65%),
        linear-gradient(to bottom, rgba(0,0,0,0.18) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.18) 100%);
    z-index: -1;
    pointer-events: none;
}

/* Inline figure inside narrow text column */
.tk-inline-figure {
    margin: 2.5rem 0 0;
}
.tk-inline-figure picture { display: block; }
.tk-inline-figure img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 18px 50px -20px rgba(20,16,12,0.30);
}
.tk-inline-figure figcaption {
    margin-top: 0.85rem;
    font-family: var(--serif);
    font-style: italic;
    color: var(--warm-gray);
    font-size: 0.95rem;
    text-align: center;
    letter-spacing: 0.02em;
}

/* Wide editorial figure inside container */
.tk-figure-wide {
    margin: 2.5rem auto 0;
    max-width: 1200px;
}
.tk-figure-wide picture { display: block; }
.tk-figure-wide img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: 0 28px 70px -25px rgba(20,16,12,0.45);
}
.tk-figure-wide figcaption {
    margin-top: 1rem;
    font-family: var(--serif);
    font-style: italic;
    color: rgba(248,245,240,0.78);
    font-size: 0.95rem;
    text-align: center;
}

/* ============================================================
   9. Detail-page Turkey-fit (P1 — make project pages crimson-aware)
   - Hide GV-only sections on Turkey detail pages
   - Promote .btn-primary to crimson on Turkey detail pages
   - data-surface absent → these rules apply to Turkey project
     detail pages (white surface, crimson accent only)
   ============================================================ */
body[data-program="turkey-cbi"] [data-program-only="greece-gv"] { display: none !important; }

/* Turkey project detail CTA: white surface + crimson fill.
   Scope avoids touching the hub ([data-surface="hub"] inverts already). */
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .btn-primary {
    background: var(--brand-accent);
    color: var(--cream);
    border-color: var(--brand-accent);
}
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .btn-primary:hover,
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .btn-primary:focus-visible {
    background: var(--brand-accent-deep);
    border-color: var(--brand-accent-deep);
    color: var(--cream);
}

/* CTA lacquer sheen — single light-rake on hover (CSS-only) */
body.citizenship-hub .cbi-cta-primary,
body[data-program="turkey-cbi"] .btn-primary--hero,
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .btn-primary {
    position: relative;
    overflow: hidden;
    transition: background 240ms ease, transform 240ms ease;
}
body.citizenship-hub .cbi-cta-primary::after,
body[data-program="turkey-cbi"] .btn-primary--hero::after,
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .btn-primary::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg,
        transparent 30%,
        rgba(255,255,255,0.18) 50%,
        transparent 70%);
    transform: translateX(-110%);
    transition: transform 600ms cubic-bezier(.2,.7,.2,1);
    pointer-events: none;
}
body.citizenship-hub .cbi-cta-primary:hover::after,
body[data-program="turkey-cbi"] .btn-primary--hero:hover::after,
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .btn-primary:hover::after {
    transform: translateX(110%);
}

/* Project hero — 3 cumulative crimson cues for Turkey project pages.
   Signal Turkey programme without copying the hub's immersive crimson body. */
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .project-hero {
    position: relative;
}
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .project-hero::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 6px;
    background: linear-gradient(90deg,
        var(--crimson-deep),
        var(--crimson-primary) 50%,
        var(--crimson-deep));
    z-index: 3;
    pointer-events: none;
}
/* Crimson-tinted overlay (replace neutral black if .project-hero__overlay exists) */
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .project-hero__overlay {
    background: linear-gradient(180deg,
        rgba(20, 8, 10, 0.15) 0%,
        rgba(62, 8, 16, 0.55) 100%);
}
/* H1 hairline reversed: hub uses gold, project page uses crimson */
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .cbi-hero-hairline {
    background: var(--crimson-primary);
    width: 64px;
    height: 1px;
    margin: 1.25rem 0 1.5rem;
}

.turkey-cbi-program-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.86fr);
    gap: clamp(1rem, 2.5vw, 1.5rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}

.turkey-cbi-program-card {
    border: 1px solid rgba(212, 196, 160, 0.22);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.045);
    padding: clamp(1.25rem, 2.4vw, 1.75rem);
    color: rgba(248, 245, 240, 0.9);
}

.turkey-cbi-program-card__label {
    margin: 0 0 0.65rem;
    color: var(--gold);
    font-size: 0.74rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.turkey-cbi-program-card h3 {
    margin: 0 0 1rem;
    color: var(--cream);
    font-family: var(--display);
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    font-weight: 300;
    line-height: 1.2;
}

.turkey-cbi-program-card ul {
    display: grid;
    gap: 0.7rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.turkey-cbi-program-card li {
    position: relative;
    padding-left: 1.1rem;
    line-height: 1.55;
}

.turkey-cbi-program-card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.7em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--gold);
}

.turkey-cbi-program-card__note {
    margin: 1rem 0 0;
    color: rgba(248, 245, 240, 0.72);
    font-size: 0.88rem;
    line-height: 1.6;
}

.turkey-cbi-passport-card {
    overflow: hidden;
    padding: 0;
}

.turkey-cbi-passport-card__media {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center 56%;
}

.turkey-cbi-passport-card__body {
    padding: clamp(1.25rem, 2.4vw, 1.75rem);
}

.turkey-buyer-poi {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.5rem 0 2rem;
}

.turkey-buyer-poi__group {
    border: 1px solid rgba(118, 108, 92, 0.22);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.68);
    padding: 1rem;
}

.turkey-buyer-poi__group h3 {
    margin: 0 0 0.65rem;
    color: var(--dark);
    font-size: 0.78rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.turkey-buyer-poi__group ul {
    display: grid;
    gap: 0.45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.turkey-buyer-poi__group li {
    color: var(--warm-gray);
    font-size: 0.92rem;
    line-height: 1.45;
}

@media (max-width: 900px) {
    .turkey-cbi-program-grid,
    .turkey-buyer-poi {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   10. Table contrast safety on Turkey hub
   The hub override layer makes .bg-offwhite transparent, which
   strips data-table backgrounds and reduces cell text to near-
   invisible. The thresholds section now opts into .tk-cream-island
   (preferred). This block is the defensive net for any other
   table that ends up on the hub surface.
   ============================================================ */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .data-table {
    background: var(--cream);
    color: var(--charcoal);
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .data-table th,
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .data-table td {
    color: var(--charcoal);
    background: var(--cream);
    border-color: rgba(20,16,12,0.12);
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .data-table thead th {
    color: var(--brand-accent);
    background: rgba(var(--crimson-primary-rgb), 0.06);
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .data-table tr:hover td {
    background: rgba(var(--crimson-primary-rgb), 0.04);
}

/* Defensive fallback: any data-table NOT inside a cream island gets cream text.
   Rewritten as positive descendant of .std:not(.tk-cream-island) for iOS 14-15
   compatibility — complex :not() with descendant selector requires Selectors L4. */
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) .data-table,
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) .data-table th,
body[data-program="turkey-cbi"][data-surface="hub"] .std:not(.tk-cream-island) .data-table td {
    color: var(--cream);
    background: rgba(0,0,0,0.18);
    border-color: rgba(248,245,240,0.18);
}

/* Mobile data-table: prevent right-edge cutoff inside cream island.
   On narrow viewports, force the table to natural content width (so users
   can read whole cells via horizontal scroll), tighten the table-scroll
   container padding, and give a fade hint that scroll is available. */
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .table-scroll {
    margin: 1.5rem -1rem 0;
    padding: 0 1rem;
    position: relative;
}
body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .data-table {
    width: 100%;
    min-width: 480px;   /* let it scroll horizontally on <480px viewports */
    margin: 0;
    border-collapse: collapse;
}
@media (max-width: 640px) {
    body[data-program="turkey-cbi"][data-surface="hub"] .tk-cream-island .table-scroll::after {
        content: "";
        position: absolute;
        top: 0; right: 0; bottom: 0;
        width: 28px;
        background: linear-gradient(to left, var(--cream) 0%, rgba(248,245,240,0) 100%);
        pointer-events: none;
    }
}

/* In-content link hover — the brand warmth in mid-page reading */
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .t-body a:not(.btn-primary):not(.cbi-cta-primary):hover,
body[data-program="turkey-cbi"]:not([data-surface="hub"]) .t-body a:not(.btn-primary):not(.cbi-cta-primary):focus-visible {
    color: var(--crimson-primary);
    text-decoration-color: var(--crimson-primary);
    transition: color 200ms ease;
}

/* ============================================================
   11. Stagger fade-up motion (4-AI council 2026-05-05)
   The single integration salvaged from the colleague's redesign
   proposal. Items 一 / 二 / 三 / 五 / 六 of that proposal were
   rejected by 4-of-4 reviewers (gpt55-prior, opus47-design,
   opus47-arch, gemini3pro, grok42 collectively); only the
   stagger fade-up was retained — and only with:
     - tightened timing (520ms / 60ms — opus47-design): more Aman, less Stripe
     - prefers-reduced-motion guard (omitted in proposal — non-negotiable for a11y)
     - opt-in wrapper class so it never collides with existing `.fade-in`
   Add `.tk-animate-in` to any container whose direct children should
   stagger in on render. Children stay invisible until the animation
   fires (forwards fill); reduced-motion users see them instantly.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
    @keyframes tk-fade-up {
        from { opacity: 0; transform: translateY(16px); }
        to   { opacity: 1; transform: translateY(0); }
    }
    body[data-program="turkey-cbi"] .tk-animate-in > * {
        opacity: 0;
        animation: tk-fade-up 520ms cubic-bezier(.2,.7,.2,1) forwards;
    }
    body[data-program="turkey-cbi"] .tk-animate-in > *:nth-child(2) { animation-delay: 60ms; }
    body[data-program="turkey-cbi"] .tk-animate-in > *:nth-child(3) { animation-delay: 120ms; }
    body[data-program="turkey-cbi"] .tk-animate-in > *:nth-child(4) { animation-delay: 180ms; }
    body[data-program="turkey-cbi"] .tk-animate-in > *:nth-child(5) { animation-delay: 240ms; }
    body[data-program="turkey-cbi"] .tk-animate-in > *:nth-child(n+6) { animation-delay: 300ms; }
}

/* ============================================================
   Citizenship hub readability pass — 2026-05-06
   Scope: /citizenship/ and /zh-tw/citizenship/ only via body.citizenship-hub.
   Bond feedback: mobile text was too pale and too abstract visually.
   ============================================================ */
body.citizenship-hub .section-intro .t-body,
body.citizenship-hub .section-intro p {
    color: #4F4A43;
    font-weight: 400;
    line-height: 1.72;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

body.citizenship-hub .bg-offwhite .section-intro .t-body,
body.citizenship-hub .bg-offwhite .section-intro p,
body.citizenship-hub .std:not(.bg-dark) .t-body {
    color: #4A463F;
}

body.citizenship-hub .cbi-figure figcaption {
    color: #5A544B;
    font-size: 1rem;
}

body.citizenship-hub .gv-listing-card {
    background: #fff;
    border-color: rgba(117, 92, 48, 0.34);
    box-shadow: 0 22px 60px -34px rgba(20, 16, 12, 0.42);
}

body.citizenship-hub .gv-listing-card__body {
    padding: clamp(1.35rem, 4vw, 2rem);
}

body.citizenship-hub .gv-listing-card__badge {
    color: #7A653B !important;
    font-weight: 600 !important;
    letter-spacing: 0.13em !important;
}

body.citizenship-hub .gv-listing-card__title {
    color: #241F1A !important;
    font-weight: 500 !important;
}

body.citizenship-hub .gv-listing-card__desc {
    color: #3F3A34 !important;
    font-size: clamp(0.98rem, 2.8vw, 1.05rem) !important;
    line-height: 1.72 !important;
    font-weight: 400 !important;
    display: block !important;
    -webkit-line-clamp: unset !important;
    overflow: visible !important;
}

body.citizenship-hub .gv-listing-card__stats {
    border-top-color: rgba(117, 92, 48, 0.34) !important;
}

body.citizenship-hub .gv-listing-card__stat-label {
    color: #6E655B !important;
    font-weight: 600 !important;
}

body.citizenship-hub .gv-listing-card__stat-value,
body.citizenship-hub .gv-listing-card__stat-value--white {
    color: #2B251F !important;
    font-weight: 600 !important;
}

body.citizenship-hub .gv-listing-card__stat-value--gold {
    color: #8A1626 !important;
}

body.citizenship-hub .gv-listing-card__cta {
    color: #8A1626 !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
}

body.citizenship-hub .cbi-country-card--placeholder {
    opacity: 0.78 !important;
}

body.citizenship-hub .cbi-country-card--placeholder .gv-listing-card__desc {
    color: #514B43 !important;
}

body.citizenship-hub .bg-dark .t-body,
body.citizenship-hub .bg-dark .text-stone,
body.citizenship-hub .bg-dark p {
    color: rgba(248, 245, 240, 0.88) !important;
}

@media (max-width: 768px) {
    body.citizenship-hub .section-intro .t-heading {
        max-width: 11.5em;
        margin-left: auto;
        margin-right: auto;
        line-height: 1.12;
    }

    body.citizenship-hub .section-intro .t-body,
    body.citizenship-hub .section-intro p {
        font-size: 1rem;
        line-height: 1.7;
    }

    body.citizenship-hub .gv-listing-card-link--spaced {
        margin-bottom: 1.75rem;
    }

    body.citizenship-hub .gv-listing-card__badge {
        font-size: 0.72rem !important;
    }

    body.citizenship-hub .gv-listing-card__title {
        font-size: clamp(1.55rem, 7vw, 2rem) !important;
    }

    body.citizenship-hub .gv-listing-card__stats {
        gap: 0.75rem !important;
    }

    body.citizenship-hub .gv-listing-card__stat-value {
        font-size: 0.86rem !important;
    }
}

/* Citizenship hub luxury polish — 2026-05-06 */
body.citizenship-hub .std[data-section="programmes"] {
    background:
        radial-gradient(ellipse 55% 42% at 50% 0%, rgba(212,196,160,0.10), transparent 64%),
        linear-gradient(180deg, #FBFAF7 0%, #F4F0EA 100%);
}

body.citizenship-hub .std[data-section="programmes"] .section-intro .t-heading {
    color: #241F1A;
    letter-spacing: -0.018em;
}

body.citizenship-hub .gv-listing-card {
    border-radius: 6px;
    border-color: rgba(168, 134, 74, 0.38);
    box-shadow:
        0 34px 90px -52px rgba(20,16,12,0.55),
        inset 0 0 0 1px rgba(255,255,255,0.64);
}

body.citizenship-hub .gv-listing-card__image {
    filter: saturate(0.96) contrast(1.03) brightness(0.98);
}

body.citizenship-hub .gv-listing-card__body {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(250,247,241,0.98));
}

body.citizenship-hub .gv-listing-card__badge {
    color: #9A7B40 !important;
}

body.citizenship-hub .gv-listing-card__title {
    font-size: clamp(1.85rem, 4vw, 2.45rem) !important;
    letter-spacing: -0.018em;
}

body.citizenship-hub .gv-listing-card__desc {
    max-width: 58ch;
}

body.citizenship-hub .cbi-country-card::before {
    height: 3px;
    background: linear-gradient(90deg, #8A1626, #D4C4A0, #8A1626);
}

body.citizenship-hub .cbi-country-card--placeholder::before {
    background: linear-gradient(90deg, #BFA779, #E7DCC3, #BFA779);
    opacity: 1;
}

body.citizenship-hub .cbi-country-card--placeholder {
    opacity: 0.92 !important;
}

body.citizenship-hub .cbi-country-card--placeholder .gv-listing-card__image {
    filter: saturate(0.9) contrast(1.04) brightness(0.96);
}

@media (max-width: 768px) {
    body.citizenship-hub .std[data-section="programmes"] {
        padding-top: 4.25rem;
    }

    body.citizenship-hub .gv-listing-card__body {
        padding: 1.45rem 1.35rem 1.6rem;
    }
}


/* Citizenship hub readability QC (scoped) */
body.citizenship-hub {
    color: #2f2a24;
}
body.citizenship-hub .cbi-hero-immersive::after {
    background:
        radial-gradient(ellipse 78% 54% at 50% 58%, rgba(20,16,12,0.30) 0%, rgba(20,16,12,0.58) 68%, rgba(20,16,12,0.72) 100%),
        linear-gradient(to bottom, rgba(20,16,12,0.28) 0%, rgba(20,16,12,0.22) 34%, rgba(20,16,12,0.76) 78%, rgba(20,16,12,0.92) 100%);
}
body.citizenship-hub .cbi-hero-immersive .t-body {
    color: rgba(255, 252, 245, 0.98);
    font-size: clamp(1.12rem, 1.45vw, 1.28rem);
    font-weight: 400;
    line-height: 1.78;
    text-shadow: 0 2px 16px rgba(0,0,0,0.72);
}
body.citizenship-hub .std .t-body,
body.citizenship-hub .std p,
body.citizenship-hub .card p,
body.citizenship-hub .gv-listing-card__desc {
    color: #3b352e;
    font-weight: 400;
    line-height: 1.78;
}
html[lang="zh-TW"] body.citizenship-hub .std .t-body,
html[lang="zh-TW"] body.citizenship-hub .std p,
html[lang="zh-TW"] body.citizenship-hub .card p,
html[lang="zh-TW"] body.citizenship-hub .gv-listing-card__desc {
    font-size: 1.04rem;
    line-height: 1.82;
}
body.citizenship-hub .card p,
body.citizenship-hub .gv-listing-card__desc {
    font-size: 1.02rem;
}
body.citizenship-hub .bg-dark .card {
    background: rgba(255,255,255,0.075) !important;
    border: 1px solid rgba(212,196,160,0.34) !important;
}
body.citizenship-hub .bg-dark .card .t-body,
body.citizenship-hub .bg-dark .card p {
    color: rgba(248,245,240,0.88) !important;
}

/* Chinese captions: avoid faux italic rendering on CJK. */
html:lang(zh-TW) body.citizenship-hub .cbi-figure figcaption {
    font-style: normal;
    color: #4F493F;
}

/* Turkey project media gallery pattern — shared EN/ZH contract. */
body[data-program="turkey-cbi"] .project-media-gallery {
    background: #FBFAF7;
}

body[data-program="turkey-cbi"] .project-media-gallery .section-intro {
    margin-bottom: 2.75rem;
}

body[data-program="turkey-cbi"] .media-gallery-group {
    max-width: var(--max-width);
    margin: 0 auto 3rem;
}

body[data-program="turkey-cbi"] .media-gallery-group:last-child {
    margin-bottom: 0;
}

body[data-program="turkey-cbi"] .media-gallery-group__label {
    margin: 0 0 1rem;
    font-size: 0.78rem;
    line-height: 1.4;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--brand-accent);
    font-weight: 500;
}

body[data-program="turkey-cbi"] .media-gallery__grid {
    align-items: start;
}

body[data-program="turkey-cbi"] .media-gallery__item {
    background: transparent;
}

body[data-program="turkey-cbi"] .media-gallery__item.has-media-frame {
    gap: 0.72rem;
}

body[data-program="turkey-cbi"] .media-gallery__caption,
body[data-program="turkey-cbi"] .media-gallery__item figcaption {
    margin: 0;
    color: #4F493F;
    font-size: 0.92rem;
    line-height: 1.55;
    font-style: normal;
}

html:lang(zh-TW) body[data-program="turkey-cbi"] .media-gallery__caption,
html:lang(zh-TW) body[data-program="turkey-cbi"] .media-gallery__item figcaption {
    font-size: 0.98rem;
    line-height: 1.68;
}

body[data-program="turkey-cbi"] .project-media-gallery .media-frame {
    border-radius: 6px;
    box-shadow: 0 18px 46px -36px rgba(20, 16, 12, 0.46);
}

@media (max-width: 900px) {
    body[data-program="turkey-cbi"] .media-gallery-group {
        margin-bottom: 2.4rem;
    }

    body[data-program="turkey-cbi"] .media-gallery-group__label {
        font-size: 0.74rem;
        letter-spacing: 0.12em;
    }
}

/* Turkey project place-and-rituals lifestyle vignette (sits above Prime Location). */
body[data-program="turkey-cbi"] .lifestyle-vignette {
    background: #FFFFFF;
}

body[data-program="turkey-cbi"] .lifestyle-vignette .section-intro {
    margin-bottom: 2.5rem;
}

body[data-program="turkey-cbi"] .lifestyle-vignette__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    gap: 1.75rem;
    max-width: var(--max-width);
    margin: 0 auto;
}

body[data-program="turkey-cbi"] .lifestyle-vignette__grid--single {
    grid-template-columns: 1fr;
    max-width: 960px;
}

body[data-program="turkey-cbi"] .lifestyle-vignette__item {
    margin: 0;
}

body[data-program="turkey-cbi"] .lifestyle-vignette__item img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    box-shadow: 0 18px 46px -36px rgba(20, 16, 12, 0.46);
}

body[data-program="turkey-cbi"] .lifestyle-vignette__caption {
    margin: 0.85rem 0 0;
    color: #4F493F;
    font-size: 0.92rem;
    line-height: 1.55;
    font-style: normal;
}

html:lang(zh-TW) body[data-program="turkey-cbi"] .lifestyle-vignette__caption {
    font-size: 0.98rem;
    line-height: 1.68;
}

body[data-program="turkey-cbi"] .lifestyle-vignette__provenance {
    display: block;
    margin: 0.45rem 0 0;
    font-size: 0.74rem;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: #8a8478;
    font-style: italic;
}

html:lang(zh-TW) body[data-program="turkey-cbi"] .lifestyle-vignette__provenance {
    font-size: 0.78rem;
    letter-spacing: 0.02em;
}

body[data-program="turkey-cbi"][data-surface="hub"] .gv-listing-card__stats {
    grid-template-columns: 1.15fr 0.85fr !important;
}

body[data-program="turkey-cbi"][data-surface="hub"] .gv-listing-card__stat-label {
    color: rgba(248, 239, 220, 0.78) !important;
    font-weight: 650 !important;
}

body[data-program="turkey-cbi"][data-surface="hub"] .gv-listing-card__stat-value--gold {
    color: #F7DFA4 !important;
    font-weight: 700 !important;
    text-shadow: 0 1px 2px rgba(30, 10, 14, 0.42);
}

body[data-program="turkey-cbi"][data-surface="hub"] .gv-listing-card__stats > div:nth-child(2) {
    padding-left: clamp(0.85rem, 2vw, 1.4rem);
}

@media (max-width: 768px) {
    body[data-program="turkey-cbi"] .lifestyle-vignette__grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* Turkey hub hero mobile readability — deepen overlay and strengthen typography over bright skyline. */
@media (max-width: 768px) {
    body[data-program="turkey-cbi"][data-surface="hub"] .page-header--turkey-landmark::before {
        background:
            radial-gradient(ellipse 95% 62% at 50% 34%, rgba(10, 7, 8, 0.82) 0%, rgba(10, 7, 8, 0.58) 58%, rgba(10, 7, 8, 0.34) 100%),
            linear-gradient(180deg, rgba(10, 7, 8, 0.68) 0%, rgba(10, 7, 8, 0.46) 42%, rgba(10, 7, 8, 0.88) 100%),
            linear-gradient(rgba(0, 0, 0, 0.34), rgba(0, 0, 0, 0.34));
    }
    body[data-program="turkey-cbi"][data-surface="hub"] .page-header--turkey-landmark .t-label,
    body[data-program="turkey-cbi"][data-surface="hub"] .page-header--turkey-landmark .t-heading,
    body[data-program="turkey-cbi"][data-surface="hub"] .page-header--turkey-landmark .t-body {
        color: var(--cream);
        text-shadow: 0 2px 18px rgba(0, 0, 0, 0.86), 0 0 2px rgba(0, 0, 0, 0.78);
    }
    body[data-program="turkey-cbi"][data-surface="hub"] .page-header--turkey-landmark .t-heading {
        font-weight: 400;
        letter-spacing: -0.012em;
    }
    body[data-program="turkey-cbi"][data-surface="hub"] .page-header--turkey-landmark .t-body {
        color: rgba(248, 245, 240, 0.98);
        font-weight: 400;
    }
    body[data-program="turkey-cbi"][data-surface="hub"] .kpi-strip--hero .kpi-card {
        background: rgba(18, 11, 13, 0.76);
        border-color: rgba(248, 245, 240, 0.34);
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
    }
    body[data-program="turkey-cbi"][data-surface="hub"] .kpi-strip--hero .kpi-card__value {
        color: var(--cream);
        text-shadow: 0 2px 12px rgba(0, 0, 0, 0.82);
    }
    body[data-program="turkey-cbi"][data-surface="hub"] .kpi-strip--hero .kpi-card__label {
        color: rgba(248, 245, 240, 0.88);
    }
}
