/* BCNLIP Pricing Block */

.bcnlip-pricing {
    padding-block: 5rem;
    background-color: var(--color-dark);
}

.bcnlip-pricing__header {
    text-align: center;
    margin-bottom: 3.5rem;
}

.bcnlip-pricing > .bcnlip-container-xl > .bcnlip-label,
.bcnlip-pricing > .bcnlip-container-xl > .bcnlip-pricing__title,
.bcnlip-pricing > .bcnlip-container-xl > .bcnlip-pricing__intro {
    text-align: center;
    max-width: 56rem;
    margin-inline: auto;
}

.bcnlip-pricing__title {
    font-family: "Courier Prime", "Courier New", monospace;
    font-size: clamp(1.75rem, 4vw, 2.6rem);
    font-weight: 700;
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    margin-bottom: 1rem;
    line-height: 1.2;
}
.bcnlip-pricing__title .bcnlip-accent {
    color: inherit;
}

.bcnlip-pricing__intro {
    max-width: 56rem;
    margin: 0 auto 2.5rem;
    line-height: 1.65;
}

.bcnlip-pricing__subtitle {
    color: var(--color-text-muted-on-dark, #d6d3d1);
    font-size: 1.125rem;
}

/* Grid */
.bcnlip-pricing__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    /* Ancho ampliado para 3 columnas con respiro (la antigua 56rem comprimía la tercera col) */
    max-width: 72rem;
    margin-inline: auto;
    justify-content: center;
    align-items: stretch;
}

@media (min-width: 768px) {
    .bcnlip-pricing__grid {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        justify-content: center;
    }
}
@media (min-width: 1024px) {
    /* Count-aware column distribution — `minmax(0, 1fr)` (not `1fr`) forces
       all columns to share the row's width equally regardless of intrinsic
       content size. */
    .bcnlip-pricing__grid:has(> .bcnlip-pricing__card:nth-child(3):last-child) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .bcnlip-pricing__grid:has(> .bcnlip-pricing__card:nth-child(2):last-child) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 48rem;
    }
    .bcnlip-pricing__grid:has(> .bcnlip-pricing__card:only-child) {
        grid-template-columns: minmax(300px, 24rem);
        max-width: 24rem;
    }
    /* 4+ plans → 4 columns so 8 plans render as a clean 4×2 grid. */
    .bcnlip-pricing__grid:has(> .bcnlip-pricing__card:nth-child(4)) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        max-width: 80rem;
    }
    /* Count-specific overrides — pick the column count that produces
       balanced rows with no orphans. */
    .bcnlip-pricing__grid:has(> .bcnlip-pricing__card:nth-child(6):last-child) {
        /* 6 plans → 3×2 instead of 4+2 orphans */
        grid-template-columns: repeat(3, minmax(0, 1fr));
        max-width: 72rem;
    }
    .bcnlip-pricing__grid:has(> .bcnlip-pricing__card:nth-child(5):last-child) {
        /* 5 plans → single row of 5 */
        grid-template-columns: repeat(5, minmax(0, 1fr));
        max-width: 80rem;
    }
    .bcnlip-pricing__grid:has(> .bcnlip-pricing__card:nth-child(9)) {
        /* 9+ plans → keep 4 cols (rows of 4 fill naturally beyond this). */
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Card — flex column con slots semánticos para alinear horizontalmente
   título · subtítulo · precio · features · botón entre cards de la misma fila. */
.bcnlip-pricing__card {
    border: 1px solid rgba(242, 169, 0, 0.35);
    border-radius: 8px;
    padding: 2rem;
    background: rgba(15, 28, 53, 0.65);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
    transition: border-color .3s ease, background-color .3s ease, transform .3s ease, box-shadow .3s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    overflow-wrap: break-word;
}

.bcnlip-pricing__card:hover {
    border-color: rgba(242, 169, 0, 0.6);
    background: rgba(15, 28, 53, 0.85);
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
}

.bcnlip-pricing__card--popular {
    border-color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    position: relative;
}

.bcnlip-pricing__card--popular:hover {
    border-color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
}

.bcnlip-pricing__popular-badge {
    display: inline-block;
    background: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    color: var(--wp--preset--color--bcnlip-navy-dark, var(--color-dark, #0F1C35));
    font-family: "Courier Prime", "Courier New", monospace;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.25rem 0.75rem;
    margin-bottom: 1rem;
}

.bcnlip-pricing__plan-title {
    font-family: "Courier Prime", "Courier New", monospace;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--wp--preset--color--white, var(--color-white, #ffffff));
    margin-bottom: 0.35rem;
    line-height: 1.25;
    /* slot fijo para que el subtítulo arranque a la misma altura entre cards (3 líneas) */
    min-height: calc(1.25rem * 1.25 * 3);
}

.bcnlip-pricing__plan-subtitle {
    color: var(--color-text-muted-on-dark, #d6d3d1);
    font-size: 0.84rem;
    margin-bottom: 1.5rem;
    line-height: 1.45;
    /* slot fijo para que el precio arranque a la misma altura (3 líneas) */
    min-height: calc(0.84rem * 1.45 * 3);
}

.bcnlip-pricing__price {
    font-family: "Courier Prime", "Courier New", monospace;
    font-size: clamp(1rem, 1.5vw, 1.4rem);
    font-weight: 700;
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    margin-bottom: 2rem;
    line-height: 1.2;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
    white-space: normal;
    max-width: 100%;
    /* slot fijo: el botón final queda alineado entre cards aunque cambie el nº de features */
    min-height: 2.625rem;
}

/* Features list — crece para empujar el CTA al fondo de la card */
.bcnlip-pricing__features {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    flex: 1 1 auto;
}

.bcnlip-pricing__feature {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--color-stone-300);
    font-size: 0.875rem;
}

.bcnlip-pricing__check {
    flex-shrink: 0;
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
}

/* CTA — anclado al fondo de la card */
.bcnlip-pricing__cta {
    display: block;
    text-align: center;
    border: 1px solid var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    padding: 0.875rem 1.5rem;
    font-family: "Courier Prime", "Courier New", monospace;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.3s ease;
    margin-top: auto;
}

.bcnlip-pricing__cta:hover {
    background: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    color: var(--color-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 16px color-mix(in srgb, var(--wp--preset--color--bcnlip-yellow, #F2A900) 35%, transparent);
}

/* WCAG 2.4.7 Focus Visible — keyboard navigation */
.bcnlip-pricing__cta:focus-visible {
    outline: 3px solid var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    outline-offset: 3px;
}

.bcnlip-pricing--white .bcnlip-pricing__cta:focus-visible,
.bcnlip-pricing--cream .bcnlip-pricing__cta:focus-visible {
    outline-color: var(--wp--preset--color--bcnlip-navy-dark, var(--color-dark, #0F1C35));
}

/* Footnote */
.bcnlip-pricing__footnote {
    text-align: center;
    color: var(--wp--preset--color--stone-300, #d6d3d1);
    font-size: 0.875rem;
    margin-top: 2.5rem;
    max-width: 72ch;
    margin-inline: auto;
    line-height: 1.6;
    line-height: 1.55;
}

/* On light schemes, override to mid-tone for legibility on white/cream */
.bcnlip-pricing--white .bcnlip-pricing__footnote,
.bcnlip-pricing--cream .bcnlip-pricing__footnote {
    color: var(--color-text-mid, #57534e);
}

@media (max-width: 480px) {
    .bcnlip-pricing__footnote { font-size: 0.95rem; }
    /* F-M002 P1: text overflow padding mobile — give breathing room.
       F-M005 P1: row-label legibility (.72rem → .82rem).
       F-M009 P2: popular badge legibility (.6875rem → .78rem). */
    .bcnlip-pricing-card { padding: 1.5rem 1rem; }
    .bcnlip-pricing-row__label,
    .bcnlip-pricing-row__amount,
    .bcnlip-pricing-online__row-label,
    .bcnlip-pricing-online__row-amount {
        font-size: 0.82rem;
    }
    .bcnlip-pricing__popular-badge,
    .bcnlip-pricing-card__badge {
        font-size: 0.72rem;
    }
}

/* ─── Light-scheme overrides for legacy Schema C selectors (__card/__price/__feature) ─── */
/* These rules ensure WCAG AA compliance when pricing block uses --white or --cream
   with the legacy double-underscore selectors. Yellow text on white = 1.88:1 FAIL.       */

.bcnlip-pricing--white {
    background-color: var(--wp--preset--color--white, #ffffff);
}
.bcnlip-pricing--cream {
    background-color: var(--wp--preset--color--bcnlip-cream, var(--color-light, #F9F5EC));
}

.bcnlip-pricing--white .bcnlip-pricing__title,
.bcnlip-pricing--cream .bcnlip-pricing__title,
.bcnlip-pricing--white .bcnlip-pricing__plan-title,
.bcnlip-pricing--cream .bcnlip-pricing__plan-title {
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
}

.bcnlip-pricing--white .bcnlip-pricing__subtitle,
.bcnlip-pricing--cream .bcnlip-pricing__subtitle,
.bcnlip-pricing--white .bcnlip-pricing__plan-subtitle,
.bcnlip-pricing--cream .bcnlip-pricing__plan-subtitle {
    color: var(--color-text-light, #78716c);
}

.bcnlip-pricing--white .bcnlip-pricing__card,
.bcnlip-pricing--cream .bcnlip-pricing__card {
    background: var(--wp--preset--color--white, #ffffff);
    border-color: rgba(27, 42, 74, 0.55);
    color: var(--color-text, #1c1917);
}

/* Price — navy on white instead of yellow (yellow #ebb524 on white = 1.88:1 FAIL WCAG AA) */
.bcnlip-pricing--white .bcnlip-pricing__price,
.bcnlip-pricing--cream .bcnlip-pricing__price {
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
}

.bcnlip-pricing--white .bcnlip-pricing__feature,
.bcnlip-pricing--cream .bcnlip-pricing__feature {
    color: var(--color-text, #1c1917);
}

.bcnlip-pricing--white .bcnlip-pricing__check,
.bcnlip-pricing--cream .bcnlip-pricing__check {
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
}

/* CTA — filled (yellow bg + navy text), not ghost (yellow text on white was the WCAG failure) */
.bcnlip-pricing--white .bcnlip-pricing__cta,
.bcnlip-pricing--cream .bcnlip-pricing__cta {
    background: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    color: var(--wp--preset--color--bcnlip-navy-dark, var(--color-primary, #0F1C35));
    border-color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
}

.bcnlip-pricing--white .bcnlip-pricing__cta:hover,
.bcnlip-pricing--cream .bcnlip-pricing__cta:hover {
    background: var(--wp--preset--color--bcnlip-navy-dark, var(--color-primary, #0F1C35));
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    border-color: var(--wp--preset--color--bcnlip-navy-dark, var(--color-primary, #0F1C35));
}

/* ─── Schema A base styles (light scheme — default for --white/--cream) ───── */
/* Cards container grid */
/* ═══════════════════════════════════════════════════════════════════════════
   PRICING GRID — Adaptive layout system (Stripe / Linear pattern)
   ─────────────────────────────────────────────────────────────────────────
   Architecture:
     card
     ├── top      (auto)   header zone — badge + title + subtitle
     ├── body     (1fr)    expandable middle — absorbs all content variance
     └── footer   (auto)   sticky bottom — list bullets + cta

   Behaviour:
   • All cards stretch to the tallest card's height (parent grid stretch).
   • Each card uses its own 3-row grid; the 1fr body grows to push the footer
     to the card's bottom edge — no margin-top:auto, no magic numbers.
   • Internal spacing comes from `gap` (token-driven), never from per-element
     margins, so adding/removing content doesn't shift adjacent sections.
   • Responsive: columns collapse via auto-fit; the row model is intrinsic
     and identical at every breakpoint.
   ═══════════════════════════════════════════════════════════════════════════ */
.bcnlip-pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-template-rows: auto auto auto 1fr auto;
    grid-auto-rows: auto auto auto 1fr auto;
    gap: 1.75rem;
    margin-block: 2rem 1.5rem;
    align-items: stretch;
}

/* ─── Card: subgrid inheriting 5 shared row tracks from parent grid ──
   Track 1: __top (auto)
   Track 2: .pricing-rows / __price (auto) — same max height across cards
   Track 3: pricing-row__note / pricing-online (auto) — note or extra rows
   Track 4: __includes (1fr) — absorbs surplus, includes anchored to start
   Track 5: __footer (auto)
   This guarantees the TOP of `.pricing-card__includes` ("Condiciones")
   sits at the same Y in every card regardless of header/rows/note variations. */
.bcnlip-pricing-card {
    display: grid;
    grid-row: span 5;
    grid-template-rows: subgrid;
    row-gap: 0.9rem;
    background-color: var(--wp--preset--color--white, #ffffff);
    border: 1px solid rgba(27, 42, 74, 0.55);
    border-radius: 8px;
    padding: 1.25rem 1.4rem;
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
    transition: transform .2s ease, box-shadow .2s ease;
}

.bcnlip-pricing-card__top,
.bcnlip-pricing-card__footer {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.bcnlip-pricing-card__top    { gap: 0.4rem; align-items: flex-start; grid-row: 1; }
.bcnlip-pricing-card__footer { gap: 0.55rem; justify-content: flex-end; grid-row: 5; }

/* __body collapses into subgrid: its children become direct grid items
   of the card, occupying tracks 2–4. */
.bcnlip-pricing-card__body {
    display: contents;
}
.bcnlip-pricing-card__body > .bcnlip-pricing-card__price,
.bcnlip-pricing-card__body > .bcnlip-pricing-rows           { grid-row: 2; align-self: start; }
.bcnlip-pricing-card__body > .bcnlip-pricing-online,
.bcnlip-pricing-card__body > .bcnlip-pricing-row__note      { grid-row: 3; align-self: start; }
.bcnlip-pricing-card__body > .bcnlip-pricing-card__includes { grid-row: 4; align-self: start; }

.bcnlip-pricing-card__top:empty,
.bcnlip-pricing-card__body:empty,
.bcnlip-pricing-card__footer:empty { display: none; }

/* Fallback for engines without row subgrid support */
@supports not (grid-template-rows: subgrid) {
    .bcnlip-pricing-card {
        grid-template-rows: auto auto auto 1fr auto;
        grid-row: auto;
    }
}

.bcnlip-pricing-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(15, 28, 53, 0.08);
}

.bcnlip-pricing-card--popular {
    background-color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    border-color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
}

.bcnlip-pricing-card__badge {
    display: inline-block;
    background: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
    font-family: 'Courier Prime', monospace;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.3rem 0.7rem;
    border-radius: 3px;
    align-self: flex-start;
}

.bcnlip-pricing-card--popular .bcnlip-pricing-card__badge {
    background: rgba(15, 28, 53, 0.12);
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
}

.bcnlip-pricing-card__subtitle {
    font-size: 0.92rem;
    line-height: 1.45;
    color: var(--color-text-mid, #57534e);
    margin: 0;
}

.bcnlip-pricing-card--popular .bcnlip-pricing-card__subtitle {
    color: rgba(15, 28, 53, 0.78);
}

/* Rows (price label/amount lines) */
.bcnlip-pricing-rows {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    flex: 1 1 0;
    min-height: 0;
}

.bcnlip-pricing-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    padding-block: 0.45rem;
    border-bottom: 1px solid rgba(27, 42, 74, 0.10);
}

.bcnlip-pricing-row:last-child {
    border-bottom: none;
}

.bcnlip-pricing-row__label {
    font-size: 0.92rem;
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
    flex: 1;
}

.bcnlip-pricing-row__amount {
    font-family: 'Courier Prime', monospace;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
    white-space: nowrap;
}

.bcnlip-pricing-card--popular .bcnlip-pricing-row {
    border-bottom-color: rgba(15, 28, 53, 0.18);
}

.bcnlip-pricing-card--popular .bcnlip-pricing-row__label,
.bcnlip-pricing-card--popular .bcnlip-pricing-row__amount {
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
}

.bcnlip-pricing-card__note {
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--color-text-light, #78716c);
    margin-bottom: 1rem;
    font-style: italic;
}

.bcnlip-pricing-card--popular .bcnlip-pricing-card__note {
    color: rgba(15, 28, 53, 0.75);
}

.bcnlip-pricing-card__includes {
    margin: 1.2rem 0 1.5rem;
    padding: 1rem 1.1rem;
    border: 1px dashed rgba(27, 42, 74, 0.18);
    background: rgba(27, 42, 74, 0.025);
}
.bcnlip-pricing--dark .bcnlip-pricing-card__includes,
.bcnlip-pricing--navy .bcnlip-pricing-card__includes {
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.03);
}
.bcnlip-pricing-card__includes-label {
    display: block;
    font-family: 'Courier Prime', monospace;
    font-size: 0.62rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 0.7rem;
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
    opacity: 0.72;
}
.bcnlip-pricing--dark .bcnlip-pricing-card__includes-label,
.bcnlip-pricing--navy .bcnlip-pricing-card__includes-label {
    color: var(--wp--preset--color--white, #ffffff);
    opacity: 0.78;
}
.bcnlip-pricing-card__includes-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.45rem;
}
@media (min-width: 520px) {
    .bcnlip-pricing-card__includes-list { grid-template-columns: 1fr 1fr; }
}
.bcnlip-pricing-card__includes-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
    opacity: 0.86;
}
.bcnlip-pricing--dark .bcnlip-pricing-card__includes-list li,
.bcnlip-pricing--navy .bcnlip-pricing-card__includes-list li {
    color: var(--wp--preset--color--white, #ffffff);
    opacity: 0.82;
}
.bcnlip-pricing-card__includes-ic {
    color: var(--wp--preset--color--bcnlip-yellow, #F2A900);
    flex-shrink: 0;
    margin-top: 0.2rem;
}

.bcnlip-pricing-card__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.bcnlip-pricing-card__list li {
    font-size: 0.88rem;
    line-height: 1.55;
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
}

.bcnlip-pricing-card__list-ic {
    flex-shrink: 0;
    color: var(--wp--preset--color--bcnlip-red, var(--color-red, #C1262C));
    line-height: 0;
    margin-top: 0.18rem;
}

.bcnlip-pricing--white .bcnlip-pricing-card--popular .bcnlip-pricing-card__list-ic,
.bcnlip-pricing--cream .bcnlip-pricing-card--popular .bcnlip-pricing-card__list-ic {
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
}

.bcnlip-pricing--dark .bcnlip-pricing-card__list-ic,
.bcnlip-pricing--navy .bcnlip-pricing-card__list-ic {
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
}

.bcnlip-pricing-card--popular .bcnlip-pricing-card__list li {
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
}

/* === Online sub-block (estructurado precios online dentro de card presencial) === */
.bcnlip-pricing-online {
    margin: 0;
    padding: 0.75rem 0.95rem;
    background: rgba(27, 42, 74, 0.05);
    border: 1px dashed rgba(27, 42, 74, 0.2);
    border-radius: 3px;
}
.bcnlip-pricing-card--popular .bcnlip-pricing-online {
    background: rgba(15, 28, 53, 0.08);
    border-color: rgba(15, 28, 53, 0.3);
}
.bcnlip-pricing--dark .bcnlip-pricing-online,
.bcnlip-pricing--navy .bcnlip-pricing-online {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(242, 169, 0, 0.2);
}
.bcnlip-pricing-online__label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: 'Courier Prime', 'Courier New', monospace;
    font-size: 0.66rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--wp--preset--color--bcnlip-red, var(--color-red, #C1262C));
    margin-bottom: 0.55rem;
}
.bcnlip-pricing-online__label svg {
    color: inherit;
}
.bcnlip-pricing--dark .bcnlip-pricing-online__label,
.bcnlip-pricing--navy .bcnlip-pricing-online__label {
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
}
.bcnlip-pricing-online__rows {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.bcnlip-pricing-online__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.84rem;
    line-height: 1.35;
    color: rgba(27, 42, 74, 0.85);
    border-bottom: 1px dotted rgba(27, 42, 74, 0.12);
    padding-bottom: 0.28rem;
}
.bcnlip-pricing-online__row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.bcnlip-pricing-card--popular .bcnlip-pricing-online__row {
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
    border-bottom-color: rgba(15, 28, 53, 0.18);
}
.bcnlip-pricing-card--popular .bcnlip-pricing-online__row-amount,
.bcnlip-pricing-card--popular .bcnlip-pricing-online__row-label {
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
}
.bcnlip-pricing-card--popular .bcnlip-pricing-online__label {
    color: var(--wp--preset--color--bcnlip-red, var(--color-red, #C1262C));
}
.bcnlip-pricing--dark .bcnlip-pricing-online__row,
.bcnlip-pricing--navy .bcnlip-pricing-online__row {
    color: rgba(249, 245, 236, 0.82);
    border-bottom-color: rgba(255, 255, 255, 0.1);
}
.bcnlip-pricing-online__row-label {
    font-family: 'Courier Prime', 'Courier New', monospace;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
}
.bcnlip-pricing-online__row-amount {
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--wp--preset--color--bcnlip-yellow-dark, var(--color-secondary-dark, #C8860A));
    white-space: nowrap;
}
.bcnlip-pricing--dark .bcnlip-pricing-online__row-amount,
.bcnlip-pricing--navy .bcnlip-pricing-online__row-amount {
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
}

/* Conditions box (under cards) */
.bcnlip-conditions-box {
    background: rgba(27, 42, 74, 0.04);
    border: 1px solid rgba(27, 42, 74, 0.08);
    border-radius: 6px;
    padding: 1.25rem 1.5rem;
    margin-top: 1.5rem;
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
    font-size: 0.92rem;
    line-height: 1.55;
}

.bcnlip-conditions-box strong {
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
}

/* Icon variant — turns plain conditions text into icon+card grid */
.bcnlip-conditions-box--icons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    background: transparent;
    border: 0;
    padding: 0;
    margin-top: 2rem;
}
@media (min-width: 768px) {
    /* 2+ cards → 2 columns; lonely card stays full-width (default 1fr). */
    .bcnlip-conditions-box--icons:has(> :nth-child(2)) {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 1024px) {
    .bcnlip-conditions-box--icons:has(> :nth-child(3)) {
        grid-template-columns: repeat(3, 1fr);
    }
}
.bcnlip-conditions-box--icons .bcnlip-conditions-box__card {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--wp--preset--color--white, #ffffff);
    border: 1px solid rgba(27, 42, 74, 0.12);
    border-radius: 8px;
    padding: 1.25rem 1.4rem;
}
.bcnlip-conditions-box--icons .bcnlip-conditions-box__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.4rem;
}
.bcnlip-conditions-box__ic {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: color-mix(in srgb, var(--wp--preset--color--bcnlip-yellow, #F2A900) 20%, transparent);
    color: var(--wp--preset--color--bcnlip-navy-dark, var(--color-dark, #0F1C35));
}
.bcnlip-conditions-box__content {
    flex: 1;
    min-width: 0;
}
.bcnlip-conditions-box--icons .bcnlip-conditions-box__label {
    font-family: 'Courier Prime', 'Courier New', monospace;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--wp--preset--color--bcnlip-navy-dark, var(--color-dark, #0F1C35));
    margin-bottom: 0.5rem;
}
.bcnlip-conditions-box--icons p {
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--wp--preset--color--bcnlip-navy, var(--color-text, #1B2A4A));
    margin: 0;
}
.bcnlip-conditions-box--icons ul {
    list-style: none;
    padding: 0;
    margin: 0.4rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.bcnlip-conditions-box--icons li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
}
.bcnlip-conditions-box__list-ic {
    flex-shrink: 0;
    color: var(--wp--preset--color--bcnlip-red, var(--color-red, #C1262C));
    margin-top: 0.15rem;
}

/* Dark scheme override */
.bcnlip-pricing--dark .bcnlip-conditions-box--icons .bcnlip-conditions-box__card {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.12);
}
.bcnlip-pricing--dark .bcnlip-conditions-box--icons .bcnlip-conditions-box__label,
.bcnlip-pricing--dark .bcnlip-conditions-box--icons p {
    color: var(--wp--preset--color--bcnlip-cream, var(--color-light, #F9F5EC));
}
.bcnlip-pricing--dark .bcnlip-conditions-box__list-ic {
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
}

/* Cream variant (slight tint for cards on cream sections) */
.bcnlip-pricing--cream .bcnlip-pricing-card {
    background-color: var(--wp--preset--color--white, #ffffff);
}

/* ─── Dark variant overrides (Schema A + B cards) ─────────────────────────── */
/* Ensures text is always visible when .bcnlip-pricing--dark is set.           */
/* All contrast ratios verified at ≥4.5:1 against dark navy background.        */

/* Section header on dark */
.bcnlip-pricing--dark .bcnlip-pricing__title,
.bcnlip-pricing--dark .bcnlip-heading {
    color: var(--wp--preset--color--white, #ffffff); /* 21:1 on navy */
}

.bcnlip-pricing--dark .bcnlip-pricing__intro,
.bcnlip-pricing--dark .bcnlip-section-intro {
    color: var(--wp--preset--color--bcnlip-stone-100, #f5f5f4); /* stone-100, 18.1:1 on navy */
}

/* Cards on dark sections — clearly lifted surface with a visible border
   so each card reads as a distinct element on the navy background. */
.bcnlip-pricing--dark .bcnlip-pricing-card {
    background-color: rgba(15, 28, 53, 0.65);
    border: 1px solid rgba(242, 169, 0, 0.35);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
    color: var(--wp--preset--color--bcnlip-cream, #f9f5ec);
}
.bcnlip-pricing--dark .bcnlip-pricing-card:hover {
    border-color: rgba(242, 169, 0, 0.6);
    background-color: rgba(15, 28, 53, 0.85);
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
}

.bcnlip-pricing--dark .bcnlip-pricing-card__subtitle {
    color: var(--wp--preset--color--bcnlip-stone-300, #d6d3d1); /* muted cream, 8.2:1 on navy */
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
}

.bcnlip-pricing--dark .bcnlip-pricing-card__price {
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900)); /* yellow, 6.4:1 on navy */
}

/* Schema A — base typography for title / price / period */
.bcnlip-pricing-card__title {
    font-family: 'Courier Prime', 'Courier New', monospace;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
    margin: 0 0 0.35rem;
    letter-spacing: 0.02em;
}
.bcnlip-pricing--dark .bcnlip-pricing-card__title {
    color: var(--wp--preset--color--bcnlip-cream, var(--color-light, #F9F5EC));
}
.bcnlip-pricing-card__price {
    font-family: 'Courier Prime', 'Courier New', monospace;
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 700;
    line-height: 1.1;
    margin: 0 0 0.35rem;
    color: var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
}
.bcnlip-pricing-card__period {
    display: inline-block;
    margin-left: 0.4rem;
    font-size: 0.78rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--color-text-mid, #57534e);
    text-transform: lowercase;
}
.bcnlip-pricing--dark .bcnlip-pricing-card__period {
    color: var(--wp--preset--color--bcnlip-stone-300, #d6d3d1);
}

/* Popular card — yellow bg with navy text */
.bcnlip-pricing--dark .bcnlip-pricing-card--popular {
    background-color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    border-color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35); /* navy-dark, 12.9:1 on yellow */
}

.bcnlip-pricing--dark .bcnlip-pricing-card--popular .bcnlip-pricing-card__subtitle,
.bcnlip-pricing--dark .bcnlip-pricing-card--popular .bcnlip-pricing-row__label,
.bcnlip-pricing--dark .bcnlip-pricing-card--popular .bcnlip-pricing-row__amount,
.bcnlip-pricing--dark .bcnlip-pricing-card--popular .bcnlip-pricing-row__note,
.bcnlip-pricing--dark .bcnlip-pricing-card--popular .bcnlip-pricing-card__list li {
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35); /* keep all text navy on yellow card */
}

.bcnlip-pricing--dark .bcnlip-pricing-card--popular .bcnlip-pricing-row {
    border-bottom-color: rgba(15, 28, 53, 0.2);
}

/* Rows — text and dividers */
.bcnlip-pricing--dark .bcnlip-pricing-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-block: 0.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    color: var(--wp--preset--color--bcnlip-cream, #f9f5ec); /* cream */
}

.bcnlip-pricing--dark .bcnlip-pricing-row__label {
    color: var(--wp--preset--color--bcnlip-stone-300, #d6d3d1); /* 8.2:1 on navy */
}

.bcnlip-pricing--dark .bcnlip-pricing-row__amount {
    color: var(--wp--preset--color--white, #ffffff); /* 21:1 on navy */
    font-weight: 700;
}

.bcnlip-pricing--dark .bcnlip-pricing-row__note {
    color: var(--wp--preset--color--bcnlip-stone-300, #d6d3d1);
    font-size: 0.8125rem;
    margin-top: 0.5rem;
}

/* Feature list items */
.bcnlip-pricing--dark .bcnlip-pricing-card__list {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
}

.bcnlip-pricing--dark .bcnlip-pricing-card__list li {
    color: var(--wp--preset--color--bcnlip-stone-300, #d6d3d1); /* 8.2:1 on navy */
    font-size: 0.875rem;
    padding-block: 0.375rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Badge on dark card */
.bcnlip-pricing--dark .bcnlip-pricing-card__badge {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.25rem 0.625rem;
    margin-bottom: 0.75rem;
}

/* Conditions box on dark */
.bcnlip-pricing--dark .bcnlip-conditions-box {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.15);
    padding: 1.5rem 2rem;
    margin-top: 2rem;
    color: var(--wp--preset--color--bcnlip-cream, #f9f5ec); /* cream, 11.5:1 on near-black */
}

.bcnlip-pricing--dark .bcnlip-conditions-box strong {
    color: var(--wp--preset--color--white, #ffffff); /* 21:1 on dark — override base navy strong */
}

.bcnlip-pricing--dark .bcnlip-conditions-box__label {
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900)); /* yellow label, 6.4:1 */
    font-weight: 700;
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.375rem;
}

.bcnlip-pricing--dark .bcnlip-conditions-box p,
.bcnlip-pricing--dark .bcnlip-conditions-box ul,
.bcnlip-pricing--dark .bcnlip-conditions-box li {
    color: var(--wp--preset--color--bcnlip-stone-300, #d6d3d1); /* 8.2:1 on dark */
    font-size: 0.875rem;
}

/* CTA on dark card (non-popular) */
.bcnlip-pricing--dark .bcnlip-pricing-card:not(.bcnlip-pricing-card--popular) .bcnlip-pricing__cta {
    border-color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
}

.bcnlip-pricing--dark .bcnlip-pricing-card:not(.bcnlip-pricing-card--popular) .bcnlip-pricing__cta:hover {
    background: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    color: var(--wp--preset--color--bcnlip-navy-dark, #0F1C35);
}

/* Label / badge above title */
.bcnlip-pricing--dark .bcnlip-label--dark {
    color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
    border-color: var(--wp--preset--color--bcnlip-yellow, var(--color-accent, #F2A900));
}

/* ── Focus states (WCAG 2.4.7) ──────────────────────────────── */
.bcnlip-pricing__cta:focus-visible {
    outline: 3px solid var(--wp--preset--color--bcnlip-teal, var(--color-primary, #1B2A4A));
    outline-offset: 2px;
}
.bcnlip-pricing-card--popular .bcnlip-pricing__cta:focus-visible {
    outline: 3px solid var(--wp--preset--color--bcnlip-cream, var(--color-cream, #F9F5EC));
    outline-offset: 2px;
}
.bcnlip-pricing--dark .bcnlip-pricing__cta:focus-visible {
    outline: 3px solid var(--wp--preset--color--bcnlip-yellow, var(--color-secondary, #F2A900));
    outline-offset: 2px;
}
