/*
Theme Name: Kadence Child
Theme URI:
Description: LTCA Child Theme for Kadence
Author: LTCA
Author URI:
Template: kadence
Version: 1.0.0
Text Domain: kadence-child
*/

/* ===========================================
   LTCA CLIENT-FIRST DESIGN SYSTEM
   Prefix: ltca-cf-
   Version: 1.0.0

   ARCHITECTURE:
   Layer 1 — Reset and base
   Layer 2 — Typography globals
   Layer 3 — Kadence container reset
   Layer 4 — Layout: sections, padding, containers
   Layer 5 — Backgrounds
   Layer 6 — Typography components
   Layer 7 — Buttons
   Layer 8 — Cards and grids
   Layer 9 — Badges and tags
   Layer 10 — Callouts and blockquotes
   Layer 11 — Forms
   Layer 12 — Navigation
   Layer 13 — Blog components
   Layer 14 — Utility classes
   Layer 15 — Page-specific components
   Layer 16 — Responsive overrides
   =========================================== */

/* ═══════════════════════════════════════════
   LAYER 1 — CSS VARIABLES AND RESET
   ═══════════════════════════════════════════ */

:root {
    /* Brand colors — core four */
    --color-navy:        #162C68;
    --color-blue:        #0298CA;
    --color-green:       #85C48D;
    --color-gold:        #FFA300;

    /* Supporting UI colors */
    --color-green-dark:  #3A7A45;
    --color-gold-dark:   #B35A00;
    --color-navy-dark:   #0A3A7A;
    --color-dark:        #0f172a;
    --color-body:        #475569;
    --color-muted:       #64748b;
    --color-light-bg:    #f8fafc;
    --color-white:       #ffffff;
    --color-border:      #e2e8f0;

    /* Tint backgrounds */
    --color-navy-tint:   #E8ECF5;
    --color-blue-tint:   #E8F5FA;
    --color-gold-tint:   #FFF3E0;
    --color-green-tint:  #EBF5EC;

    /* Typography */
    --font-heading:      'Sofia Sans', sans-serif;
    --font-body:         'Open Sans', sans-serif;

    /* Spacing scale */
    --space-xs:          0.5rem;
    --space-sm:          1rem;
    --space-md:          2rem;
    --space-lg:          4rem;
    --space-xl:          6rem;

    /* Border radius */
    --radius-sm:         4px;
    --radius-md:         8px;
    --radius-lg:         12px;
    --radius-xl:         16px;
    --radius-full:       9999px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

/* ═══════════════════════════════════════════
   LAYER 2 — TYPOGRAPHY GLOBALS
   ═══════════════════════════════════════════ */

body {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.25rem);
    color: var(--color-body);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.2;
    margin-bottom: 1rem;
}

h1 { font-size: clamp(2rem, 3.5vw, 3.5rem); line-height: 1.1; }
h2 { font-size: clamp(1.5rem, 2.2vw, 2.25rem); line-height: 1.2; }
h3 { font-size: clamp(1.25rem, 1.8vw, 1.85rem); line-height: 1.3; }
h4 { font-size: clamp(1.1rem, 1.5vw, 1.55rem); line-height: 1.35; }
h5 { font-size: clamp(1rem, 1.3vw, 1.35rem); line-height: 1.4; }
h6 { font-size: clamp(1rem, 1.1vw, 1.15rem); line-height: 1.4; }

p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

a {
    color: var(--color-blue);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover { color: var(--color-navy); }

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ═══════════════════════════════════════════
   LAYER 3 — KADENCE CONTAINER RESET
   Neutralizes Kadence automatic padding and
   width constraints. Do not remove.
   ═══════════════════════════════════════════ */

.site,
.site-container,
.content-container,
.content-wrap,
.entry-content-wrap,
.entry-content,
#primary.content-area,
#main.site-main,
.kadence-inner-column-inner,
.wp-block-kadence-column,
.wp-block-kadence-rowlayout {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.site-main,
#main.site-main,
.content-wrap {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.site { overflow-x: hidden; }

.entry-header,
.entry-title,
.wp-block-post-title {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

article.entry,
.entry.content-bg,
.post-entry,
.page-entry {
    padding: 0 !important;
    margin: 0 !important;
}

.entry-content > section,
.entry-content > div {
    width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.main-navigation {
    padding-left: 0 !important;
}

:root {
    --header-height: 80px;
}

#primary.content-area {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.entry-content-wrap {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Prevent Kadence header from overlapping page content */
.site-content,
#content.site-content {
    padding-top: 0 !important;
}



/* Hide Kadence built-in breadcrumb bar */
.kadence-breadcrumbs,
.kadence-breadcrumb-wrap,
#kadence-breadcrumbs,
.entry-hero .kadence-breadcrumbs,
.wp-block-kadence-breadcrumbs,
nav.breadcrumb,
.site-breadcrumb,
nav[aria-label="Breadcrumbs"],
nav[aria-label="breadcrumb"],
.breadcrumb-trail,
.breadcrumbs {
    display: none !important;
}

.main-header-bar {
    padding-top: 0.75rem !important;
    padding-left: 4rem !important;
    padding-right: 4rem !important;
    padding-bottom: 0.75rem !important;
}

/* Sticky header background — prevents transparent ghost on scroll */
.item-is-fixed {
    background: #ffffff !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08) !important;
}

/* ═══════════════════════════════════════════
   LAYER 4 — LAYOUT
   Section wrappers, padding, containers

   USAGE PATTERN:
   <section class="ltca-cf-section ltca-cf-bg--white ltca-cf-padding--section">
     <div class="ltca-cf-container--wide">
       content
     </div>
   </section>
   ═══════════════════════════════════════════ */

/* Section wrapper — structural only, no visual styles */
.ltca-cf-section {
    width: 100%;
    box-sizing: border-box;
}

/* Padding — controls spacing only */
.ltca-cf-padding--section { padding: 4rem 1.5rem; }
.ltca-cf-padding--section-sm { padding: 2rem 1.5rem; }
.ltca-cf-padding--section-lg { padding: 6rem 1.5rem; }
.ltca-cf-padding--hero { padding: 5rem 1.5rem; }
.ltca-cf-padding--none { padding: 0; }

/* Container — controls max-width and centering only */
.ltca-cf-container--reading {
    max-width: 760px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.ltca-cf-container--content { max-width: 960px; margin: 0 auto; width: 100%; }
.ltca-cf-container--form    { max-width: 1100px; margin: 0 auto; width: 100%; }
.ltca-cf-container--wide    { max-width: 1200px; margin: 0 auto; width: 100%; }
.ltca-cf-container--full    { max-width: 1400px; margin: 0 auto; width: 100%; }

/* Hero layout */
.ltca-cf-hero {
    width: 100%;
    min-height: 480px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    position: relative;
}

/* Primary hero — Home, Programs, Experiences pages */
/* Use: class="ltca-cf-hero ltca-cf-hero--primary ltca-cf-bg--[color] ltca-cf-padding--hero" */
.ltca-cf-hero--primary {
    min-height: 480px;
}

/* Sub-page hero — About, How It Works, Careers, Blog, Legal */
/* Use: class="ltca-cf-hero ltca-cf-hero--sub ltca-cf-bg--[color] ltca-cf-padding--hero" */
.ltca-cf-hero--sub {
    min-height: 480px;
}

.ltca-cf-hero__inner {
    max-width: 860px;
    margin: 0 auto;
    width: 100%;
    text-align: center;
    position: relative;
    z-index: 1;
}

/* Two column layout */
.ltca-cf-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.ltca-cf-two-col--60-40 { grid-template-columns: 3fr 2fr; }
.ltca-cf-two-col--40-60 { grid-template-columns: 2fr 3fr; }
.ltca-cf-two-col--reversed { direction: rtl; }
.ltca-cf-two-col--reversed > * { direction: ltr; }

.ltca-cf-two-col img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    display: block;
    object-fit: cover;
}

/* ═══════════════════════════════════════════
   LAYER 5 — BACKGROUNDS
   Controls color only. Always combined with
   ltca-cf-section and ltca-cf-padding--*
   ═══════════════════════════════════════════ */

.ltca-cf-bg--white    { background-color: var(--color-white); }
.ltca-cf-bg--light    { background-color: var(--color-light-bg); }
.ltca-cf-bg--navy     { background-color: var(--color-navy); }
.ltca-cf-bg--dark     { background-color: var(--color-dark); }
.ltca-cf-bg--gold     { background-color: var(--color-gold); }
.ltca-cf-bg--gradient {
    background: linear-gradient(135deg, #162C68 0%, #0175A0 100%);
}

/* Hero background image variant */
.ltca-cf-bg--image {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
}

.ltca-cf-bg--image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(15, 23, 42, 0.45) 0%,
        rgba(15, 23, 42, 0.60) 50%,
        rgba(15, 23, 42, 0.70) 100%
    );
    z-index: 0;
    pointer-events: none;
}

.ltca-cf-bg--image .ltca-cf-hero__inner,
.ltca-cf-bg--image .ltca-cf-container--full,
.ltca-cf-bg--image .ltca-cf-container--wide,
.ltca-cf-bg--image .ltca-cf-container--content,
.ltca-cf-bg--image .ltca-cf-container--reading {
    position: relative;
    z-index: 1;
}

/* Auto white text on dark backgrounds */
.ltca-cf-bg--navy { color: #ffffff; }
.ltca-cf-bg--navy p,
.ltca-cf-bg--navy span,
.ltca-cf-bg--navy h1,
.ltca-cf-bg--navy h2,
.ltca-cf-bg--navy h3,
.ltca-cf-bg--navy h4,
.ltca-cf-bg--navy h5,
.ltca-cf-bg--navy h6,
.ltca-cf-bg--navy strong { color: #ffffff !important; }

.ltca-cf-bg--dark { color: #ffffff; }
.ltca-cf-bg--dark p,
.ltca-cf-bg--dark span,
.ltca-cf-bg--dark h1,
.ltca-cf-bg--dark h2,
.ltca-cf-bg--dark h3,
.ltca-cf-bg--dark h4,
.ltca-cf-bg--dark h5,
.ltca-cf-bg--dark h6,
.ltca-cf-bg--dark strong { color: #ffffff !important; }

.ltca-cf-bg--gradient { color: #ffffff; }
.ltca-cf-bg--gradient p,
.ltca-cf-bg--gradient span,
.ltca-cf-bg--gradient h1,
.ltca-cf-bg--gradient h2,
.ltca-cf-bg--gradient h3,
.ltca-cf-bg--gradient h4,
.ltca-cf-bg--gradient h5,
.ltca-cf-bg--gradient h6,
.ltca-cf-bg--gradient strong { color: #ffffff !important; }

/* Preserve button colors inside dark sections */
.ltca-cf-bg--navy .ltca-cf-btn--primary,
.ltca-cf-bg--dark .ltca-cf-btn--primary,
.ltca-cf-bg--gradient .ltca-cf-btn--primary {
    color: #ffffff;
    background: #FFA300;
}

.ltca-cf-bg--navy .ltca-cf-btn--secondary,
.ltca-cf-bg--dark .ltca-cf-btn--secondary,
.ltca-cf-bg--gradient .ltca-cf-btn--secondary {
    color: #ffffff;
    background: rgba(255,255,255,0.15);
    border: 2px solid rgba(255,255,255,0.5);
}

/* Preserve eyebrow gold color on dark backgrounds */
.ltca-cf-bg--navy .ltca-cf-eyebrow--gold,
.ltca-cf-bg--dark .ltca-cf-eyebrow--gold,
.ltca-cf-bg--gradient .ltca-cf-eyebrow--gold {
    color: #FFA300;
}

/* Preserve card colors inside dark sections */
.ltca-cf-bg--navy .ltca-cf-card,
.ltca-cf-bg--dark .ltca-cf-card,
.ltca-cf-bg--gradient .ltca-cf-card {
    color: #475569;
}

.ltca-cf-bg--navy .ltca-cf-card *,
.ltca-cf-bg--dark .ltca-cf-card *,
.ltca-cf-bg--gradient .ltca-cf-card * {
    color: inherit;
}

/* Cards have white backgrounds — always use primary dark text inside cards
   regardless of the section background color behind them */
.ltca-cf-card,
.ltca-cf-card * {
    color: inherit;
}

.ltca-cf-card {
    color: #0f172a !important;
}

.ltca-cf-card p,
.ltca-cf-card h1,
.ltca-cf-card h2,
.ltca-cf-card h3,
.ltca-cf-card h4,
.ltca-cf-card h5,
.ltca-cf-card h6 {
    color: #0f172a !important;
}

.ltca-cf-card .ltca-cf-text--muted,
.ltca-cf-card .ltca-cf-text--small {
    color: #475569 !important;
}

.ltca-cf-card .ltca-cf-text--card {
    color: #475569 !important;
}

/* Preserve eyebrow colors inside cards */
.ltca-cf-card .ltca-cf-eyebrow--blue   { color: #0298CA !important; }
.ltca-cf-card .ltca-cf-eyebrow--gold   { color: #FFA300 !important; }
.ltca-cf-card .ltca-cf-eyebrow--green  { color: #85C48D !important; }
.ltca-cf-card .ltca-cf-eyebrow--navy   { color: #162C68 !important; }
.ltca-cf-card .ltca-cf-eyebrow--white  { color: #94a3b8 !important; }
.ltca-cf-card .ltca-cf-eyebrow--yellow { color: #EAB308 !important; }
.ltca-cf-card .ltca-cf-eyebrow--orange { color: #F97316 !important; }
.ltca-cf-card .ltca-cf-eyebrow--purple { color: #7C3AED !important; }
.ltca-cf-card .ltca-cf-eyebrow--brown  { color: #92400E !important; }
.ltca-cf-card .ltca-cf-eyebrow--red    { color: #DC2626 !important; }
.ltca-cf-card .ltca-cf-eyebrow--black  { color: #0f172a !important; }

/* Preserve card button colors */
.ltca-cf-card .ltca-cf-btn--card-blue  { color: #ffffff !important; }
.ltca-cf-card .ltca-cf-btn--card-navy  { color: #ffffff !important; }
.ltca-cf-card .ltca-cf-btn--card-green { color: #ffffff !important; }
.ltca-cf-card .ltca-cf-btn--card-gold  { color: #ffffff !important; }

/* ═══════════════════════════════════════════
   LAYER 6 — TYPOGRAPHY COMPONENTS
   ═══════════════════════════════════════════ */

/* Eyebrow labels */
.ltca-cf-eyebrow {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.75rem;
}

.ltca-cf-eyebrow--gold  { color: var(--color-gold); }
.ltca-cf-eyebrow--blue  { color: var(--color-blue); }
.ltca-cf-eyebrow--navy  { color: var(--color-navy); }
.ltca-cf-eyebrow--green { color: var(--color-green-dark); }
.ltca-cf-eyebrow--white { color: var(--color-white); }

/* Heading styles */
.ltca-cf-heading--h1 { font-family: var(--font-heading); font-size: clamp(2rem, 3.5vw, 3.5rem); font-weight: 800; line-height: 1.1; }
.ltca-cf-heading--h2 { font-family: var(--font-heading); font-size: clamp(1.5rem, 2.2vw, 2.25rem); font-weight: 800; line-height: 1.2; }
.ltca-cf-heading--h3 { font-family: var(--font-heading); font-size: clamp(1.25rem, 1.8vw, 1.85rem); font-weight: 800; line-height: 1.3; }
.ltca-cf-heading--h4 { font-family: var(--font-heading); font-size: clamp(1.1rem, 1.5vw, 1.55rem); font-weight: 800; line-height: 1.35; }
.ltca-cf-heading--h5 { font-family: var(--font-heading); font-size: clamp(1rem, 1.3vw, 1.35rem); font-weight: 800; line-height: 1.4; }
.ltca-cf-heading--h6 { font-family: var(--font-heading); font-size: clamp(1rem, 1.1vw, 1.15rem); font-weight: 800; line-height: 1.4; }

/* Heading color modifiers */
.ltca-cf-heading--white { color: var(--color-white); }
.ltca-cf-heading--navy  { color: var(--color-navy); }
.ltca-cf-heading--gold  { color: var(--color-gold); }
.ltca-cf-heading--blue  { color: var(--color-blue); }

/* Hero typography */
.ltca-cf-hero__eyebrow {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin-bottom: 1rem;
    display: block;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.ltca-cf-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(2.5rem, 4.5vw, 4.5rem);
    font-weight: 800;
    color: #ffffff !important;
    margin-bottom: 1.25rem;
    line-height: 1.1;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.ltca-cf-hero__subtitle {
    font-family: var(--font-body);
    font-size: clamp(1.1rem, 1.4vw, 1.4rem);
    color: #ffffff !important;
    max-width: 760px;
    margin: 0 auto 2rem;
    line-height: 1.6;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

/* Body text styles */
.ltca-cf-text--body  { font-family: var(--font-body); font-size: clamp(1rem, 1.2vw, 1.25rem); color: var(--color-body); line-height: 1.7; }
.ltca-cf-text--lead  { font-family: var(--font-body); font-size: clamp(1.1rem, 1.4vw, 1.4rem); color: var(--color-body); line-height: 1.7; }
.ltca-cf-text--card  { font-family: var(--font-body); font-size: clamp(1rem, 1.1vw, 1.2rem); color: var(--color-body); line-height: 1.6; }
.ltca-cf-text--small { font-family: var(--font-body); font-size: 1rem; color: var(--color-body); line-height: 1.5; }
.ltca-cf-text--muted { font-size: clamp(1rem, 1.2vw, 1.25rem); color: var(--color-muted); }
.ltca-cf-text--white { color: var(--color-white); }
.ltca-cf-text--navy  { color: var(--color-navy); }
.ltca-cf-text--gold  { color: var(--color-gold); }
.ltca-cf-text--blue  { color: var(--color-blue); }

/* ═══════════════════════════════════════════
   LAYER 7 — BUTTONS
   ═══════════════════════════════════════════ */

.ltca-cf-btn {
    display: inline-block;
    text-decoration: none;
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: clamp(0.95rem, 1vw, 1rem);
    font-weight: 700;
    cursor: pointer;
    border: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
}

.ltca-cf-btn:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

.ltca-cf-btn:focus-visible {
    outline: 3px solid var(--color-gold);
    outline-offset: 3px;
}

/* Primary gold */
.ltca-cf-btn--primary {
    background: var(--color-gold);
    color: var(--color-white);
    padding: 0.875rem 2.25rem;
}

/* Secondary navy */
.ltca-cf-btn--secondary {
    background: var(--color-navy);
    color: var(--color-white);
    padding: 0.875rem 1.75rem;
    font-weight: 600;
}

/* Outline white — for dark backgrounds */
.ltca-cf-btn--outline {
    background: transparent;
    color: var(--color-white);
    border: 2px solid rgba(255, 255, 255, 0.5);
    padding: 0.875rem 1.75rem;
    font-weight: 600;
}

/* Card buttons */
.ltca-cf-btn--card {
    padding: 0.625rem 1.25rem;
    font-size: 1rem;
    font-weight: 600;
    margin-top: auto;
}

.ltca-cf-btn--card-blue  { background: var(--color-blue); color: #ffffff !important; }
.ltca-cf-btn--card-navy  { background: var(--color-navy); color: #ffffff !important; }
.ltca-cf-btn--card-green { background: var(--color-green-dark); color: #ffffff !important; }
.ltca-cf-btn--card-gold  { background: var(--color-gold); color: #ffffff !important; }

/* Button group wrapper */
.ltca-cf-btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
}

.ltca-cf-btn-group--center { justify-content: center; }

/* ═══════════════════════════════════════════
   LAYER 8 — CARDS AND GRIDS
   ═══════════════════════════════════════════ */

/* Grid wrapper */
.ltca-cf-grid {
    display: grid;
    gap: 1.5rem;
}

.ltca-cf-grid--2 { grid-template-columns: repeat(2, 1fr); }
.ltca-cf-grid--3 { grid-template-columns: repeat(3, 1fr); }
.ltca-cf-grid--4 { grid-template-columns: repeat(4, 1fr); }
.ltca-cf-grid--auto { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

/* Base card */
.ltca-cf-card {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    overflow: hidden;
}

.ltca-cf-card--light { background: var(--color-light-bg); }

/* Pillar cards — border-top accent */
.ltca-cf-card--top-navy  { border-top: 4px solid var(--color-navy); }
.ltca-cf-card--top-blue  { border-top: 4px solid var(--color-blue); }
.ltca-cf-card--top-green { border-top: 4px solid var(--color-green); }
.ltca-cf-card--top-gold  { border-top: 4px solid var(--color-gold); }
/* Belt-specific color modifiers — used on Belt System page only */
.ltca-cf-card--top-white  { border-top: 4px solid #94a3b8; }
.ltca-cf-card--top-yellow { border-top: 4px solid #EAB308; }
.ltca-cf-card--top-orange { border-top: 4px solid #F97316; }
.ltca-cf-card--top-purple { border-top: 4px solid #7C3AED; }
.ltca-cf-card--top-brown  { border-top: 4px solid #92400E; }
.ltca-cf-card--top-red    { border-top: 4px solid #DC2626; }
.ltca-cf-card--top-black  { border-top: 4px solid #0f172a; }

/* Belt eyebrow color modifiers */
.ltca-cf-eyebrow--white  { color: #94a3b8; }
.ltca-cf-eyebrow--yellow { color: #EAB308; }
.ltca-cf-eyebrow--orange { color: #F97316; }
.ltca-cf-eyebrow--purple { color: #7C3AED; }
.ltca-cf-eyebrow--brown  { color: #92400E; }
.ltca-cf-eyebrow--red    { color: #DC2626; }
.ltca-cf-eyebrow--black  { color: #0f172a; }

/* Belt left-border modifiers for any list card use */
.ltca-cf-card--left-white  { border-left: 3px solid #94a3b8; }
.ltca-cf-card--left-yellow { border-left: 3px solid #EAB308; }
.ltca-cf-card--left-orange { border-left: 3px solid #F97316; }
.ltca-cf-card--left-purple { border-left: 3px solid #7C3AED; }
.ltca-cf-card--left-brown  { border-left: 3px solid #92400E; }
.ltca-cf-card--left-red    { border-left: 3px solid #DC2626; }
.ltca-cf-card--left-black  { border-left: 3px solid #0f172a; }

/* List cards — border-left accent */
.ltca-cf-card--left-navy  { border-left: 3px solid var(--color-navy); }
.ltca-cf-card--left-blue  { border-left: 3px solid var(--color-blue); }
.ltca-cf-card--left-green { border-left: 3px solid var(--color-green); }
.ltca-cf-card--left-gold  { border-left: 3px solid var(--color-gold); }

/* Centered card */
.ltca-cf-card--centered {
    text-align: center;
    align-items: center;
}

/* Role card — button pinned to bottom */
.ltca-cf-card--role {
    display: flex;
    flex-direction: column;
}

.ltca-cf-card--role .ltca-cf-btn--card {
    margin-top: auto;
    align-self: flex-start;
}

/* ═══════════════════════════════════════════
   LAYER 9 — BADGES AND TAGS
   ═══════════════════════════════════════════ */

/* Badge chip row */
.ltca-cf-badge-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

/* Base badge */
.ltca-cf-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--radius-full);
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.5;
}

.ltca-cf-badge--navy       { background: var(--color-navy); color: var(--color-white); }
.ltca-cf-badge--blue       { background: var(--color-blue); color: var(--color-white); }
.ltca-cf-badge--green      { background: var(--color-green); color: var(--color-white); }
.ltca-cf-badge--gold       { background: var(--color-gold); color: var(--color-white); }
.ltca-cf-badge--navy-light { background: var(--color-navy-tint); color: var(--color-navy); }
.ltca-cf-badge--blue-light { background: var(--color-blue-tint); color: var(--color-blue); }
.ltca-cf-badge--green-light{ background: var(--color-green-tint); color: var(--color-green-dark); }
.ltca-cf-badge--gold-light { background: var(--color-gold-tint); color: var(--color-gold-dark); }
.ltca-cf-badge--muted      { background: var(--color-light-bg); color: var(--color-muted); border: 1px solid var(--color-border); }
/* Belt badge color modifiers */
.ltca-cf-badge--white  { background: #f1f5f9; color: #475569; border: 1px solid #94a3b8; }
.ltca-cf-badge--yellow { background: #fefce8; color: #854d0e; }
.ltca-cf-badge--orange { background: #fff7ed; color: #9a3412; }
.ltca-cf-badge--purple { background: #f5f3ff; color: #5b21b6; }
.ltca-cf-badge--brown  { background: #fef3c7; color: #78350f; }
.ltca-cf-badge--red    { background: #fee2e2; color: #991b1b; }
.ltca-cf-badge--black  { background: #1e293b; color: #ffffff; }

/* Blog tags */
.ltca-cf-tag {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-full);
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.ltca-cf-tag:hover { opacity: 0.85; }
.ltca-cf-tag--character { background: var(--color-navy-tint); color: var(--color-navy); }
.ltca-cf-tag--parent    { background: var(--color-blue-tint); color: var(--color-blue); }
.ltca-cf-tag--student   { background: var(--color-green-tint); color: var(--color-green-dark); }
.ltca-cf-tag--programs  { background: var(--color-gold-tint); color: var(--color-gold-dark); }

.ltca-cf-tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

/* ═══════════════════════════════════════════
   LAYER 10 — CALLOUTS AND BLOCKQUOTES
   ═══════════════════════════════════════════ */

/* Callout boxes */
.ltca-cf-callout {
    border-radius: var(--radius-md);
    padding: 1.25rem 1.5rem;
    margin: 1.5rem 0;
    border-left: 4px solid var(--color-gold);
    background: var(--color-gold-tint);
}

.ltca-cf-callout__label {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-gold-dark);
    margin-bottom: 0.5rem;
    display: block;
}

.ltca-cf-callout p {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.25rem);
    color: var(--color-dark);
    margin: 0;
    line-height: 1.6;
}

.ltca-cf-callout--blue  { border-left-color: var(--color-blue); background: var(--color-blue-tint); }
.ltca-cf-callout--blue .ltca-cf-callout__label { color: var(--color-blue); }
.ltca-cf-callout--navy  { border-left-color: var(--color-navy); background: var(--color-navy-tint); }
.ltca-cf-callout--navy .ltca-cf-callout__label { color: var(--color-navy); }
.ltca-cf-callout--green { border-left-color: var(--color-green); background: var(--color-green-tint); }
.ltca-cf-callout--green .ltca-cf-callout__label { color: var(--color-green-dark); }

/* Blockquotes */
.ltca-cf-blockquote {
    border-left: 4px solid var(--color-blue);
    padding: 1.5rem 1.75rem;
    margin: 2rem 0;
    background: var(--color-blue-tint);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.ltca-cf-blockquote p {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.25rem);
    font-style: italic;
    color: var(--color-dark);
    line-height: 1.7;
    margin: 0 0 0.75rem 0;
}

.ltca-cf-blockquote cite {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-muted);
    font-style: normal;
}

.ltca-cf-blockquote--gold  { border-left-color: var(--color-gold); background: var(--color-gold-tint); }
.ltca-cf-blockquote--navy  { border-left-color: var(--color-navy); background: var(--color-navy-tint); }
.ltca-cf-blockquote--green { border-left-color: var(--color-green); background: var(--color-green-tint); }

/* FAQ Accordion — details/summary pattern */
.ltca-cf-accordion {
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 0;
}

.ltca-cf-accordion:first-of-type {
    border-top: 1px solid var(--color-border);
}

.ltca-cf-accordion__question {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.2rem);
    font-weight: 700;
    color: var(--color-dark);
    padding: 1.25rem 2.5rem 1.25rem 0;
    cursor: pointer;
    list-style: none;
    position: relative;
    display: block;
    line-height: 1.4;
}

.ltca-cf-accordion__question::-webkit-details-marker {
    display: none;
}

.ltca-cf-accordion__question::after {
    content: '+';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--color-blue);
    transition: transform 0.2s ease;
    line-height: 1;
}

.ltca-cf-accordion[open] .ltca-cf-accordion__question::after {
    content: '−';
}

.ltca-cf-accordion__answer {
    padding: 0 0 1.25rem 0;
}

.ltca-cf-accordion__answer p {
    color: var(--color-body);
    line-height: 1.8;
}

.ltca-cf-accordion__question:hover {
    color: var(--color-navy);
}

.ltca-cf-accordion[open] .ltca-cf-accordion__question {
    color: var(--color-navy);
}

/* ═══════════════════════════════════════════
   LAYER 11 — FORMS
   ═══════════════════════════════════════════ */

.ltca-cf-form { display: flex; flex-direction: column; gap: 1.25rem; }

.ltca-cf-form__group { display: flex; flex-direction: column; gap: 0.5rem; }

.ltca-cf-form__label {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-dark);
}

.ltca-cf-form__input,
.ltca-cf-form__textarea,
.ltca-cf-form__select {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-dark);
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 0.75rem 1rem;
    width: 100%;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.ltca-cf-form__input:focus,
.ltca-cf-form__textarea:focus,
.ltca-cf-form__select:focus {
    outline: none;
    border-color: var(--color-blue);
    box-shadow: 0 0 0 3px rgba(2, 152, 202, 0.15);
}

.ltca-cf-form__textarea { min-height: 140px; resize: vertical; }

.ltca-cf-form__error {
    font-size: 1rem;
    color: var(--color-gold-dark);
    margin-top: 0.25rem;
}

.ltca-cf-form__success {
    background: var(--color-green-tint);
    border: 1.5px solid var(--color-green);
    border-radius: var(--radius-md);
    padding: 1rem 1.25rem;
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.5vw, 1.2rem);
    color: var(--color-green-dark);
}

/* ═══════════════════════════════════════════
   LAYER 12 — NAVIGATION
   ═══════════════════════════════════════════ */

/* Mobile sticky enroll */
.ltca-cf-sticky-enroll { display: none; }

@media (max-width: 768px) {
    .ltca-cf-sticky-enroll {
        display: block;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 999;
        background: var(--color-gold);
        padding: 1rem 1.5rem;
        text-align: center;
    }

    .ltca-cf-sticky-enroll a {
        display: block;
        color: var(--color-white);
        font-family: var(--font-body);
        font-size: 1rem;
        font-weight: 700;
        text-decoration: none;
    }

    body { padding-bottom: 60px; }
}

/* Breadcrumbs */
.ltca-cf-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 0;
    margin-bottom: 1.5rem;
}

.ltca-cf-breadcrumb__item {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-muted);
}

.ltca-cf-breadcrumb__item a {
    color: var(--color-blue);
    text-decoration: none;
    font-weight: 500;
}

.ltca-cf-breadcrumb__item a:hover {
    color: var(--color-navy);
    text-decoration: underline;
}

.ltca-cf-breadcrumb__separator { color: var(--color-border); font-size: 1rem; }
.ltca-cf-breadcrumb__current { font-size: 1rem; color: var(--color-dark); font-weight: 600; }

/* Enroll nav button — gold CTA in header navigation */
.menu-item.ltca-cf-nav-enroll,
li.ltca-cf-nav-enroll {
    margin-right: 2rem !important;
}

.menu-item.ltca-cf-nav-enroll > a,
.nav-menu .ltca-cf-nav-enroll > a,
li.ltca-cf-nav-enroll > a {
    background: #FFA300 !important;
    color: #ffffff !important;
    padding: 0.5rem 1.25rem !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    transition: opacity 0.2s ease !important;
    display: inline-block !important;
}

.menu-item.ltca-cf-nav-enroll > a:hover,
.nav-menu .ltca-cf-nav-enroll > a:hover,
li.ltca-cf-nav-enroll > a:hover {
    opacity: 0.9 !important;
    color: #ffffff !important;
}

/* ═══════════════════════════════════════════
   LAYER 13 — BLOG COMPONENTS
   ═══════════════════════════════════════════ */

/* Post header */
.ltca-cf-post-header {
    max-width: 760px;
    margin: 0 auto;
    padding: 3rem 1.5rem 2rem;
    text-align: center;
}

.ltca-cf-post-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.ltca-cf-post-meta__item {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-muted);
}

.ltca-cf-post-meta__item a {
    color: var(--color-blue);
    text-decoration: none;
    font-weight: 600;
}

.ltca-cf-post-featured-image {
    width: 100%;
    max-width: 960px;
    margin: 0 auto 3rem;
    padding: 0 1.5rem;
}

.ltca-cf-post-featured-image img {
    width: 100%;
    aspect-ratio: 16 / 7;
    object-fit: cover;
    border-radius: var(--radius-lg);
    display: block;
}

.ltca-cf-post-body {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 1.5rem 4rem;
}

.ltca-cf-post-body p {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.25rem);
    color: var(--color-body);
    line-height: 1.8;
    margin-bottom: 1.5rem;
}

.ltca-cf-post-body h2 {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 2.2vw, 2.25rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 2.5rem 0 1rem;
    line-height: 1.2;
}

.ltca-cf-post-body h3 {
    font-family: var(--font-heading);
    font-size: clamp(1.25rem, 1.8vw, 1.85rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 2rem 0 0.75rem;
    line-height: 1.3;
}

.ltca-cf-post-body ul,
.ltca-cf-post-body ol { padding-left: 1.5rem; margin-bottom: 1.5rem; }

.ltca-cf-post-body li {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.25rem);
    color: var(--color-body);
    line-height: 1.7;
    margin-bottom: 0.5rem;
}

.ltca-cf-post-body a { color: var(--color-blue); text-decoration: underline; font-weight: 600; }
.ltca-cf-post-body a:hover { color: var(--color-navy); }

.ltca-cf-post-footer {
    max-width: 760px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    border-top: 1px solid var(--color-border);
}

/* Pagination */
.ltca-cf-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem 0;
}

.ltca-cf-pagination__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--color-body);
    border: 1.5px solid var(--color-border);
    transition: all 0.2s ease;
}

.ltca-cf-pagination__item:hover {
    background: var(--color-light-bg);
    border-color: var(--color-blue);
    color: var(--color-blue);
}

.ltca-cf-pagination__item--active {
    background: var(--color-navy);
    border-color: var(--color-navy);
    color: var(--color-white);
}

/* ═══════════════════════════════════════════
   LAYER 14 — UTILITY CLASSES
   ═══════════════════════════════════════════ */

/* Text alignment */
.ltca-cf-text-center { text-align: center; }
.ltca-cf-text-left   { text-align: left; }
.ltca-cf-text-right  { text-align: right; }

/* Flex utilities */
.ltca-cf-flex         { display: flex; }
.ltca-cf-flex--center { align-items: center; justify-content: center; }
.ltca-cf-flex--col    { flex-direction: column; }
.ltca-cf-flex--wrap   { flex-wrap: wrap; }

/* Gap utilities */
.ltca-cf-gap--xs { gap: var(--space-xs); }
.ltca-cf-gap--sm { gap: var(--space-sm); }
.ltca-cf-gap--md { gap: var(--space-md); }
.ltca-cf-gap--lg { gap: var(--space-lg); }

/* Margin bottom */
.ltca-cf-mb--xs { margin-bottom: var(--space-xs); }
.ltca-cf-mb--sm { margin-bottom: var(--space-sm); }
.ltca-cf-mb--md { margin-bottom: var(--space-md); }
.ltca-cf-mb--lg { margin-bottom: var(--space-lg); }
.ltca-cf-mb--xl { margin-bottom: var(--space-xl); }

/* Margin top */
.ltca-cf-mt--xs { margin-top: var(--space-xs); }
.ltca-cf-mt--sm { margin-top: var(--space-sm); }
.ltca-cf-mt--md { margin-top: var(--space-md); }
.ltca-cf-mt--lg { margin-top: var(--space-lg); }
.ltca-cf-mt--xl { margin-top: var(--space-xl); }

/* Dividers */
.ltca-cf-divider {
    width: 48px;
    height: 4px;
    border-radius: 2px;
    margin: 1rem auto;
}

.ltca-cf-divider--gold  { background: var(--color-gold); }
.ltca-cf-divider--blue  { background: var(--color-blue); }
.ltca-cf-divider--navy  { background: var(--color-navy); }

/* Focus states */
a:focus-visible {
    outline: 2px solid var(--color-blue);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ═══════════════════════════════════════════
   LAYER 15 — PAGE-SPECIFIC COMPONENTS
   ═══════════════════════════════════════════ */

/* Numbered steps */
.ltca-cf-step {
    display: flex;
    gap: 0.875rem;
    align-items: flex-start;
}

.ltca-cf-step__circle {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    font-weight: 800;
    font-size: 0.8rem;
    flex-shrink: 0;
    margin-top: 0.2rem;
}

.ltca-cf-step__circle--navy  { background: var(--color-navy); }
.ltca-cf-step__circle--blue  { background: var(--color-blue); }
.ltca-cf-step__circle--gold  { background: var(--color-gold); }
.ltca-cf-step__circle--green { background: var(--color-green-dark); }

/* Tables */
.ltca-cf-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-body);
    font-size: 1rem;
}

.ltca-cf-table th {
    background: var(--color-navy);
    color: var(--color-white);
    font-weight: 700;
    text-align: left;
    padding: 0.875rem 1rem;
    font-size: 1rem;
    letter-spacing: 0.04em;
}

.ltca-cf-table td {
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-body);
    vertical-align: top;
    line-height: 1.6;
}

.ltca-cf-table tr:last-child td { border-bottom: none; }
.ltca-cf-table tr:hover td { background: var(--color-light-bg); }
.ltca-cf-table--striped tr:nth-child(even) td { background: var(--color-light-bg); }

/* Image aspect ratios */
.ltca-cf-img--hero    { width: 100%; aspect-ratio: 16/6; object-fit: cover; object-position: center; display: block; }
.ltca-cf-img--card    { width: 100%; aspect-ratio: 16/9; object-fit: cover; object-position: center; border-radius: var(--radius-md); display: block; }
.ltca-cf-img--team    { width: 100%; aspect-ratio: 1/1; object-fit: cover; object-position: center top; border-radius: var(--radius-full); display: block; }
.ltca-cf-img--feature { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: center; border-radius: var(--radius-lg); display: block; }

/* 404 page */
.ltca-cf-404 {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 4rem 1.5rem;
}

.ltca-cf-404__inner  { max-width: 560px; margin: 0 auto; }
.ltca-cf-404__code   { font-family: var(--font-heading); font-size: clamp(4rem, 10vw, 8rem); font-weight: 800; color: var(--color-border); line-height: 1; margin-bottom: 1rem; display: block; }
.ltca-cf-404__title  { font-family: var(--font-heading); font-size: clamp(1.5rem, 2.2vw, 2.25rem); font-weight: 800; color: var(--color-dark); margin-bottom: 1rem; }
.ltca-cf-404__body   { font-family: var(--font-body); font-size: clamp(1rem, 1.2vw, 1.25rem); color: var(--color-body); margin-bottom: 2rem; line-height: 1.7; }

/* Search results */
.ltca-cf-search-result { padding: 1.5rem 0; border-bottom: 1px solid var(--color-border); }
.ltca-cf-search-result:last-child { border-bottom: none; }
.ltca-cf-search-result__title { font-family: var(--font-heading); font-size: clamp(1.25rem, 1.8vw, 1.85rem); font-weight: 800; color: var(--color-navy); margin-bottom: 0.5rem; }
.ltca-cf-search-result__title a { color: var(--color-navy); text-decoration: none; }
.ltca-cf-search-result__title a:hover { color: var(--color-blue); text-decoration: underline; }
.ltca-cf-search-result__excerpt { font-family: var(--font-body); font-size: clamp(1rem, 1.2vw, 1.25rem); color: var(--color-body); line-height: 1.6; }
.ltca-cf-search-result__meta { font-size: 1rem; color: var(--color-muted); margin-top: 0.5rem; }

/* Cookie consent */
.ltca-cf-cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: var(--color-dark);
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.ltca-cf-cookie-banner__text {
    font-family: var(--font-body);
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.8);
    flex: 1;
    min-width: 200px;
    line-height: 1.5;
}

.ltca-cf-cookie-banner__text a { color: var(--color-blue); text-decoration: underline; }
.ltca-cf-cookie-banner__actions { display: flex; gap: 0.75rem; flex-shrink: 0; }

/* Footer */
.ltca-cf-footer {
    background: var(--color-navy);
    color: var(--color-white);
}

.ltca-cf-footer__columns {
    max-width: 1400px;
    margin: 0 auto;
    padding: 4rem 1.5rem;
    display: grid;
    grid-template-columns: 1.75fr 1fr 1fr 1fr;
    gap: 3rem;
}

.ltca-cf-footer__logo-link {
    display: inline-block;
    margin-bottom: 1.25rem;
}

.ltca-cf-footer__logo {
    max-width: 180px;
    height: auto;
    filter: brightness(0) invert(1);
    display: block;
}

.ltca-cf-footer__brand-name {
    font-family: var(--font-heading);
    font-size: clamp(1.1rem, 1.8vw, 1.3rem);
    font-weight: 800;
    color: var(--color-white);
    text-decoration: none;
    letter-spacing: 0.04em;
    display: inline-block;
    margin-bottom: 1.25rem;
}

.ltca-cf-footer__tagline {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-muted);
    line-height: 1.7;
    margin: 0 0 1.5rem 0;
    font-style: italic;
}

.ltca-cf-footer__address {
    font-family: var(--font-body);
    font-style: normal;
    font-size: 1rem;
    line-height: 1.9;
    color: var(--color-muted);
    margin: 0 0 1.25rem 0;
}

.ltca-cf-footer__address a {
    color: var(--color-muted);
    text-decoration: none;
    transition: color 0.2s ease;
}

.ltca-cf-footer__address a:hover { color: var(--color-white); }

.ltca-cf-footer__social-row {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.ltca-cf-footer__social {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    background: rgba(255,255,255,0.1);
    color: var(--color-white);
    text-decoration: none;
    transition: background 0.2s ease;
    flex-shrink: 0;
}

.ltca-cf-footer__social:hover { background: rgba(255,255,255,0.2); }

.ltca-cf-footer__social svg {
    width: 18px;
    height: 18px;
    display: block;
}

.ltca-cf-footer__col-heading {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-gold);
    margin: 0 0 1.25rem 0;
    display: block;
    text-decoration: none;
}

.ltca-cf-footer__col-heading:hover { color: var(--color-gold); opacity: 0.85; }

.ltca-cf-footer__nav {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ltca-cf-footer__nav li { margin-bottom: 0.625rem; }

.ltca-cf-footer__link {
    font-family: var(--font-body);
    font-size: 1rem;
    color: rgba(255,255,255,0.75);
    text-decoration: none;
    transition: color 0.2s ease;
    line-height: 1.5;
    display: inline-block;
}

.ltca-cf-footer__link:hover { color: var(--color-white); }

.ltca-cf-footer__bottom {
    border-top: 1px solid rgba(255,255,255,0.1);
}

.ltca-cf-footer__bottom-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.ltca-cf-footer__copyright {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-muted);
    margin: 0;
}

.ltca-cf-footer__legal-nav {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.ltca-cf-footer__legal-link {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-muted);
    text-decoration: none;
    transition: color 0.2s ease;
}

.ltca-cf-footer__legal-link:hover { color: var(--color-white); }

/* ═══════════════════════════════════════════
   LAYER 16 — RESPONSIVE OVERRIDES
   ═══════════════════════════════════════════ */

@media (max-width: 1024px) {
    .ltca-cf-grid--4 { grid-template-columns: repeat(2, 1fr); }
    .ltca-cf-grid--3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .ltca-cf-padding--section    { padding: 3rem 1.25rem; }
    .ltca-cf-padding--section-sm { padding: 1.5rem 1.25rem; }
    .ltca-cf-padding--section-lg { padding: 4rem 1.25rem; }
    .ltca-cf-padding--hero       { padding: 3.5rem 1.25rem; }

    .ltca-cf-hero { min-height: 480px; }

    .ltca-cf-grid--4,
    .ltca-cf-grid--3,
    .ltca-cf-grid--2 { grid-template-columns: 1fr; }

    .ltca-cf-two-col,
    .ltca-cf-two-col--60-40,
    .ltca-cf-two-col--40-60 { grid-template-columns: 1fr; gap: 2rem; }

    .ltca-cf-two-col--reversed { direction: ltr; }

    .ltca-cf-cookie-banner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
    .ltca-cf-padding--section    { padding: 2.5rem 1rem; }
    .ltca-cf-padding--section-sm { padding: 1.25rem 1rem; }
    .ltca-cf-padding--section-lg { padding: 3rem 1rem; }
    .ltca-cf-padding--hero       { padding: 3rem 1rem; }
}

/* Hero height — tablet */
@media (min-width: 481px) and (max-width: 768px) {
    .ltca-cf-hero,
    .ltca-cf-hero--primary,
    .ltca-cf-hero--sub { min-height: 520px; }
}

/* Hero height — small desktop */
@media (min-width: 769px) and (max-width: 960px) {
    .ltca-cf-hero--primary { min-height: 70vh; }
    .ltca-cf-hero--sub     { min-height: 55vh; }
}

/* Hero height — standard desktop */
@media (min-width: 961px) and (max-width: 1199px) {
    .ltca-cf-hero--primary { min-height: 85vh; }
    .ltca-cf-hero--sub     { min-height: 60vh; }
}

/* Hero height — large desktop */
@media (min-width: 1200px) and (max-width: 1399px) {
    .ltca-cf-hero--primary { min-height: calc(100vh - var(--header-height, 80px)); }
    .ltca-cf-hero--sub     { min-height: 70vh; }
}

/* Hero height — wide desktop */
@media (min-width: 1400px) {
    .ltca-cf-hero--primary { min-height: calc(100vh - var(--header-height, 80px)); }
    .ltca-cf-hero--sub     { min-height: 70vh; }
}

/* Reading container — wider on desktop for better proportion */
@media (min-width: 961px) and (max-width: 1199px) {
    .ltca-cf-container--reading { max-width: 820px; }
}

@media (min-width: 1200px) and (max-width: 1399px) {
    .ltca-cf-container--reading { max-width: 880px; }
}

@media (min-width: 1400px) {
    .ltca-cf-container--reading { max-width: 960px; }
}

/* Footer — tablet */
@media (max-width: 1024px) {
    .ltca-cf-footer__columns { grid-template-columns: 1fr 1fr; gap: 2rem; padding: 3rem 1.25rem; }
}

/* Footer — mobile */
@media (max-width: 640px) {
    .ltca-cf-footer__columns { grid-template-columns: 1fr; padding: 2.5rem 1rem; }
    .ltca-cf-footer__bottom-inner { flex-direction: column; align-items: flex-start; gap: 0.75rem; padding: 1rem; }
}


/* ═══════════════════════════════════════════
   LAYER 2B — WORDPRESS ENTRY CONTENT MAPPING
   Maps WordPress block editor output and
   standard post content to ltca-cf- styles.
   Applies to all blog posts and page content
   rendered through the_content filter.
   ═══════════════════════════════════════════ */

/* Base entry content */
.entry-content {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.25rem);
    color: var(--color-body);
    line-height: 1.8;
    max-width: 760px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

/* Headings inside post content */
.entry-content h1 { font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 800; color: var(--color-dark); margin: 2.5rem 0 1rem; line-height: 1.1; }
.entry-content h2 { font-family: var(--font-heading); font-size: clamp(1.5rem, 2.2vw, 2.25rem); font-weight: 800; color: var(--color-dark); margin: 2.5rem 0 1rem; line-height: 1.2; }
.entry-content h3 { font-family: var(--font-heading); font-size: clamp(1.25rem, 1.8vw, 1.85rem); font-weight: 800; color: var(--color-dark); margin: 2rem 0 0.75rem; line-height: 1.3; }
.entry-content h4 { font-family: var(--font-heading); font-size: clamp(1.1rem, 1.5vw, 1.55rem); font-weight: 800; color: var(--color-dark); margin: 1.5rem 0 0.5rem; line-height: 1.35; }
.entry-content h5 { font-family: var(--font-heading); font-size: clamp(1rem, 1.3vw, 1.35rem); font-weight: 800; color: var(--color-dark); margin: 1.5rem 0 0.5rem; }
.entry-content h6 { font-family: var(--font-heading); font-size: clamp(1rem, 1.1vw, 1.15rem); font-weight: 800; color: var(--color-dark); margin: 1.5rem 0 0.5rem; }

/* Paragraphs */
.entry-content p {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.25rem);
    color: var(--color-body);
    line-height: 1.8;
    margin-bottom: 1.5rem;
}

.entry-content p:last-child { margin-bottom: 0; }

/* Links */
.entry-content a {
    color: var(--color-blue);
    text-decoration: underline;
    font-weight: 600;
    transition: color 0.2s ease;
}

.entry-content a:hover { color: var(--color-navy); }

/* Lists */
.entry-content ul,
.entry-content ol {
    padding-left: 1.5rem;
    margin-bottom: 1.5rem;
}

.entry-content li {
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.2vw, 1.25rem);
    color: var(--color-body);
    line-height: 1.7;
    margin-bottom: 0.5rem;
}

.entry-content ul li { list-style: disc; }
.entry-content ol li { list-style: decimal; }

/* Blockquotes */
.entry-content blockquote {
    border-left: 4px solid var(--color-blue);
    padding: 1.5rem 1.75rem;
    background: var(--color-blue-tint);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    margin: 2rem 0;
    font-style: italic;
    color: var(--color-dark);
}

.entry-content blockquote p { margin-bottom: 0; color: var(--color-dark); }

/* Images */
.entry-content img {
    border-radius: var(--radius-lg);
    max-width: 100%;
    height: auto;
    display: block;
    margin: 2rem auto;
}

/* WordPress block image */
.entry-content .wp-block-image { margin: 2rem 0; }
.entry-content .wp-block-image img { border-radius: var(--radius-lg); }
.entry-content .wp-block-image figcaption {
    font-family: var(--font-body);
    font-size: clamp(0.85rem, 0.9vw, 0.9rem);
    color: var(--color-muted);
    text-align: center;
    margin-top: 0.5rem;
}

/* WordPress cover block inside content */
.entry-content .wp-block-cover { border-radius: var(--radius-lg); margin: 2rem 0; }

/* Horizontal rule */
.entry-content hr {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 3rem 0;
}

/* Tables inside post content */
.entry-content table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-body);
    font-size: clamp(0.95rem, 1vw, 1rem);
    margin: 2rem 0;
}

.entry-content th {
    background: var(--color-navy);
    color: var(--color-white);
    font-weight: 700;
    text-align: left;
    padding: 0.875rem 1rem;
    font-size: 1rem;
    letter-spacing: 0.04em;
}

.entry-content td {
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-body);
    vertical-align: top;
    line-height: 1.6;
}

.entry-content tr:last-child td { border-bottom: none; }
.entry-content tr:hover td { background: var(--color-light-bg); }

/* Code blocks */
.entry-content code {
    font-family: 'Courier New', Courier, monospace;
    font-size: 1rem;
    background: var(--color-light-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 0.125rem 0.375rem;
    color: var(--color-navy);
}

.entry-content pre {
    background: var(--color-dark);
    border-radius: var(--radius-md);
    padding: 1.5rem;
    overflow-x: auto;
    margin: 2rem 0;
}

.entry-content pre code {
    background: none;
    border: none;
    padding: 0;
    color: var(--color-light-bg);
    font-size: 1rem;
    line-height: 1.6;
}

/* WordPress block buttons inside content */
.entry-content .wp-block-buttons { margin: 2rem 0; }
.entry-content .wp-block-button__link {
    background: var(--color-gold);
    color: var(--color-white);
    padding: 0.875rem 2.25rem;
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: clamp(0.95rem, 1vw, 1rem);
    font-weight: 700;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.2s ease;
}

.entry-content .wp-block-button__link:hover { opacity: 0.9; }

/* WordPress separator block */
.entry-content .wp-block-separator {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 3rem auto;
    max-width: 100px;
}

/* WordPress pullquote */
.entry-content .wp-block-pullquote {
    border-top: 4px solid var(--color-gold);
    border-bottom: 4px solid var(--color-gold);
    padding: 2rem;
    margin: 2rem 0;
    text-align: center;
}

.entry-content .wp-block-pullquote p {
    font-size: clamp(1.1rem, 2vw, 1.4rem);
    font-style: italic;
    color: var(--color-dark);
    font-weight: 600;
}

.entry-content .wp-block-pullquote cite {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-muted);
    font-style: normal;
}

/* Single post page overrides */
body.single-post .entry-content {
    max-width: 760px;
    margin: 0 auto;
    padding: 3rem 1.5rem 4rem;
}

/* Page content — wider than blog posts */
body.page .entry-content {
    max-width: none;
    padding: 0;
    margin: 0;
}

/* Mobile entry content */
@media (max-width: 768px) {
    .entry-content { padding: 2rem 1.25rem 3rem; }
    body.single-post .entry-content { padding: 2rem 1.25rem 3rem; }
}

@media (max-width: 480px) {
    .entry-content { padding: 1.5rem 1rem 2.5rem; }
    body.single-post .entry-content { padding: 1.5rem 1rem 2.5rem; }
}
