/* ============================================================================
 * Studio Showcase · Daily-program booking popup theming
 * Only restyles the existing booking-flow popup when launched from a showcase
 * page (body.fv-showcase-page + body.fv-showcase-template-{key}). Booking
 * logic, JS handlers and DOM stay untouched — this file only paints.
 *
 * Architecture:
 *   1. Default vars on `body.fv-showcase-page` (fitVibe blue baseline)
 *   2. Per-template var overrides (palette, font, radius)
 *   3. Generic .fv-showcase-booking-popup rules consume those vars
 *   4. Per-template structural overrides for header, accent strip, cards,
 *      date rail and footer — so each skin is visually distinct, not just a
 *      colour swap
 *   5. Booking confirmation popup consumes the same theme vars
 *   6. Mobile media query keeps the popup full-screen and readable
 * ========================================================================== */

/* ── 1. Shared default vars (fitVibe blue baseline = Template B) ─────────── */
body.fv-showcase-page {
    --fv-showcase-popup-primary:        #325DE6;
    --fv-showcase-popup-primary-strong: #1739A6;
    --fv-showcase-popup-primary-ink:    #FFFFFF;
    --fv-showcase-popup-accent:         #E1E8FE;
    --fv-showcase-popup-bg:             #F3F5FB;
    --fv-showcase-popup-card:           #FFFFFF;
    --fv-showcase-popup-card-soft:      #F8FBFF;
    --fv-showcase-popup-text:           #111827;
    --fv-showcase-popup-text-soft:      #1F2A44;
    --fv-showcase-popup-muted:          #5F6E95;
    --fv-showcase-popup-line:           rgba(213, 217, 231, 0.92);
    --fv-showcase-popup-line-soft:      rgba(213, 217, 231, 0.55);
    --fv-showcase-popup-shadow:         0 30px 90px rgba(15, 23, 42, 0.22);
    --fv-showcase-popup-backdrop:       rgba(8, 14, 28, 0.54);
    --fv-showcase-popup-radius:         24px;
    --fv-showcase-popup-radius-card:    18px;
    --fv-showcase-popup-radius-date:    14px;
    --fv-showcase-popup-font:           "Manrope", "Inter", system-ui, sans-serif;
    --fv-showcase-popup-title-font:     var(--fv-showcase-popup-font);
    --fv-showcase-popup-title-weight:   850;
    --fv-showcase-popup-title-case:     none;
    --fv-showcase-popup-title-tracking: 0;
    --fv-showcase-popup-title-size:     20px;
    --fv-showcase-popup-title-italic:   normal;
    --fv-showcase-popup-accent-strip:   linear-gradient(90deg, var(--fv-showcase-popup-primary) 0%, var(--fv-showcase-popup-primary) 100%);
    --fv-showcase-popup-header-bg:      linear-gradient(180deg, var(--fv-showcase-popup-card) 0%, var(--fv-showcase-popup-card-soft) 100%);
    --fv-showcase-popup-footer-bg:      linear-gradient(180deg, var(--fv-showcase-popup-card-soft) 0%, var(--fv-showcase-popup-card) 100%);
    --fv-showcase-popup-eyebrow:        "Daily program";
}

/* ── 2. Per-template var overrides ────────────────────────────────────────── */

/* A — Luxury Editorial (bone + terracotta + Instrument Serif) */
body.fv-showcase-template-a {
    --fv-showcase-popup-primary:        #A54E33;
    --fv-showcase-popup-primary-strong: #6F321F;
    --fv-showcase-popup-primary-ink:    #FAF6EC;
    --fv-showcase-popup-accent:         #E7C8B5;
    --fv-showcase-popup-bg:             #F1ECE0;
    --fv-showcase-popup-card:           #FAF6EC;
    --fv-showcase-popup-card-soft:      #F5EFE2;
    --fv-showcase-popup-text:           #1B1813;
    --fv-showcase-popup-text-soft:      #2E2A22;
    --fv-showcase-popup-muted:          #756F63;
    --fv-showcase-popup-line:           rgba(27, 24, 19, 0.16);
    --fv-showcase-popup-line-soft:      rgba(27, 24, 19, 0.08);
    --fv-showcase-popup-shadow:         0 30px 80px rgba(48, 30, 20, 0.22);
    --fv-showcase-popup-backdrop:       rgba(31, 22, 14, 0.52);
    --fv-showcase-popup-radius:         8px;
    --fv-showcase-popup-radius-card:    6px;
    --fv-showcase-popup-radius-date:    4px;
    --fv-showcase-popup-font:           "Geist", "Inter", system-ui, sans-serif;
    --fv-showcase-popup-title-font:     "Instrument Serif", "Cormorant Garamond", Georgia, serif;
    --fv-showcase-popup-title-weight:   400;
    --fv-showcase-popup-title-size:     30px;
    --fv-showcase-popup-title-italic:   italic;
    --fv-showcase-popup-title-tracking: -0.01em;
    --fv-showcase-popup-accent-strip:   linear-gradient(90deg, #A54E33 0%, #C97A5A 60%, #A54E33 100%);
    --fv-showcase-popup-header-bg:      var(--fv-showcase-popup-card);
    --fv-showcase-popup-footer-bg:      var(--fv-showcase-popup-card);
    --fv-showcase-popup-eyebrow:        "Programme · daily";
}

/* B — Modern SaaS (default, already covered by base) */

/* C — FORGE Dark (black + amber + Anton condensed) */
body.fv-showcase-template-c {
    --fv-showcase-popup-primary:        #FFB627;
    --fv-showcase-popup-primary-strong: #C98916;
    --fv-showcase-popup-primary-ink:    #0A0A0B;
    --fv-showcase-popup-accent:         #2A2214;
    --fv-showcase-popup-bg:             #0A0A0B;
    --fv-showcase-popup-card:           #14141A;
    --fv-showcase-popup-card-soft:      #1A1A22;
    --fv-showcase-popup-text:           #F7F3EA;
    --fv-showcase-popup-text-soft:      #DCD7CB;
    --fv-showcase-popup-muted:          #8C8678;
    --fv-showcase-popup-line:           rgba(255, 255, 255, 0.10);
    --fv-showcase-popup-line-soft:      rgba(255, 255, 255, 0.05);
    --fv-showcase-popup-shadow:         0 30px 90px rgba(0, 0, 0, 0.72);
    --fv-showcase-popup-backdrop:       rgba(0, 0, 0, 0.78);
    --fv-showcase-popup-radius:         4px;
    --fv-showcase-popup-radius-card:    2px;
    --fv-showcase-popup-radius-date:    2px;
    --fv-showcase-popup-font:           "Manrope", system-ui, sans-serif;
    --fv-showcase-popup-title-font:     "Anton", "Archivo Black", -apple-system, sans-serif;
    --fv-showcase-popup-title-weight:   400;
    --fv-showcase-popup-title-size:     30px;
    --fv-showcase-popup-title-case:     uppercase;
    --fv-showcase-popup-title-tracking: 0.04em;
    --fv-showcase-popup-accent-strip:   linear-gradient(90deg, #FFB627 0%, #FFB627 35%, transparent 35%, transparent 65%, #FFB627 65%, #FFB627 100%);
    --fv-showcase-popup-header-bg:      #0A0A0B;
    --fv-showcase-popup-footer-bg:      #0A0A0B;
    --fv-showcase-popup-eyebrow:        "TODAY · TRAINING /";
}

/* D — fitVibe On-Brand (navy + blue + gold accent ring) */
body.fv-showcase-template-d {
    --fv-showcase-popup-primary:        #325DE6;
    --fv-showcase-popup-primary-strong: #1F4ACD;
    --fv-showcase-popup-primary-ink:    #FFFFFF;
    --fv-showcase-popup-accent:         #F8E066;
    --fv-showcase-popup-bg:             #F3F5FB;
    --fv-showcase-popup-card:           #FFFFFF;
    --fv-showcase-popup-card-soft:      #F8FAFF;
    --fv-showcase-popup-text:           #0D1A3D;
    --fv-showcase-popup-text-soft:      #2B3865;
    --fv-showcase-popup-muted:          #5E6B91;
    --fv-showcase-popup-line:           rgba(13, 26, 61, 0.12);
    --fv-showcase-popup-line-soft:      rgba(13, 26, 61, 0.06);
    --fv-showcase-popup-shadow:         0 30px 90px rgba(13, 26, 61, 0.24);
    --fv-showcase-popup-radius:         20px;
    --fv-showcase-popup-radius-card:    16px;
    --fv-showcase-popup-radius-date:    999px;
    --fv-showcase-popup-font:           "Manrope", system-ui, sans-serif;
    --fv-showcase-popup-title-weight:   800;
    --fv-showcase-popup-title-size:     22px;
    --fv-showcase-popup-title-tracking: -0.005em;
    --fv-showcase-popup-accent-strip:   linear-gradient(90deg, #F8E066 0%, #325DE6 100%);
    --fv-showcase-popup-header-bg:      linear-gradient(180deg, #FFFFFF 0%, #F4F7FF 100%);
    --fv-showcase-popup-footer-bg:      linear-gradient(180deg, #F4F7FF 0%, #FFFFFF 100%);
    --fv-showcase-popup-eyebrow:        "Today's program";
}

/* E — Showstopper Maximalist (midnight + gold + coral + stickers) */
body.fv-showcase-template-e {
    --fv-showcase-popup-primary:        #E5B85C;
    --fv-showcase-popup-primary-strong: #B7772B;
    --fv-showcase-popup-primary-ink:    #0A0E1B;
    --fv-showcase-popup-accent:         #FF7B6B;
    --fv-showcase-popup-bg:             #0A0E1B;
    --fv-showcase-popup-card:           #141827;
    --fv-showcase-popup-card-soft:      #1B2032;
    --fv-showcase-popup-text:           #FFF8E8;
    --fv-showcase-popup-text-soft:      #E8DFC8;
    --fv-showcase-popup-muted:          #B7ADA0;
    --fv-showcase-popup-line:           rgba(229, 184, 92, 0.22);
    --fv-showcase-popup-line-soft:      rgba(229, 184, 92, 0.10);
    --fv-showcase-popup-shadow:         12px 12px 0 #E5B85C, 12px 12px 0 2px #0A0E1B, 0 40px 100px rgba(0, 0, 0, 0.65);
    --fv-showcase-popup-backdrop:       rgba(6, 8, 16, 0.78);
    --fv-showcase-popup-radius:         18px;
    --fv-showcase-popup-radius-card:    16px;
    --fv-showcase-popup-radius-date:    18px;
    --fv-showcase-popup-font:           "Manrope", system-ui, sans-serif;
    --fv-showcase-popup-title-font:     "Instrument Serif", "Cormorant Garamond", Georgia, serif;
    --fv-showcase-popup-title-weight:   400;
    --fv-showcase-popup-title-size:     34px;
    --fv-showcase-popup-title-italic:   italic;
    --fv-showcase-popup-title-tracking: -0.01em;
    --fv-showcase-popup-accent-strip:   linear-gradient(90deg, #FF7B6B 0%, #E5B85C 50%, #B6FF6E 100%);
    --fv-showcase-popup-header-bg:      radial-gradient(circle at 0% 0%, rgba(255, 123, 107, 0.18) 0%, transparent 55%), radial-gradient(circle at 100% 100%, rgba(229, 184, 92, 0.20) 0%, transparent 60%), #0A0E1B;
    --fv-showcase-popup-footer-bg:      radial-gradient(circle at 100% 0%, rgba(229, 184, 92, 0.16) 0%, transparent 60%), #0A0E1B;
    --fv-showcase-popup-eyebrow:        "★ today · drop in";
}

/* F — Flagship Experience (porcelain + navy + gold + glass header) */
body.fv-showcase-template-f {
    --fv-showcase-popup-primary:        #0A1736;
    --fv-showcase-popup-primary-strong: #050C20;
    --fv-showcase-popup-primary-ink:    #F7F5F0;
    --fv-showcase-popup-accent:         #C9A55A;
    --fv-showcase-popup-bg:             #F7F5F0;
    --fv-showcase-popup-card:           #FFFFFF;
    --fv-showcase-popup-card-soft:      #FBF9F4;
    --fv-showcase-popup-text:           #0A1736;
    --fv-showcase-popup-text-soft:      #1F2A48;
    --fv-showcase-popup-muted:          #5B6478;
    --fv-showcase-popup-line:           rgba(10, 23, 54, 0.10);
    --fv-showcase-popup-line-soft:      rgba(10, 23, 54, 0.05);
    --fv-showcase-popup-shadow:         0 50px 120px rgba(10, 23, 54, 0.28);
    --fv-showcase-popup-radius:         28px;
    --fv-showcase-popup-radius-card:    22px;
    --fv-showcase-popup-radius-date:    999px;
    --fv-showcase-popup-font:           "Manrope", system-ui, sans-serif;
    --fv-showcase-popup-title-font:     "Instrument Serif", "Cormorant Garamond", Georgia, serif;
    --fv-showcase-popup-title-weight:   400;
    --fv-showcase-popup-title-size:     34px;
    --fv-showcase-popup-title-tracking: -0.02em;
    --fv-showcase-popup-accent-strip:   linear-gradient(90deg, #C9A55A 0%, #EBDDB4 50%, #4A6CFF 100%);
    --fv-showcase-popup-header-bg:      linear-gradient(180deg, rgba(255, 255, 255, 0.85) 0%, rgba(247, 245, 240, 0.85) 100%);
    --fv-showcase-popup-footer-bg:      linear-gradient(180deg, #FBF9F4 0%, #FFFFFF 100%);
    --fv-showcase-popup-eyebrow:        "Today · live programme";
}

/* G — HAUS° Dark Athletic Club (black + electric lime) */
body.fv-showcase-template-g {
    --fv-showcase-popup-primary:        #B7FF3C;
    --fv-showcase-popup-primary-strong: #84C600;
    --fv-showcase-popup-primary-ink:    #050805;
    --fv-showcase-popup-accent:         #20340E;
    --fv-showcase-popup-bg:             #070A08;
    --fv-showcase-popup-card:           #101510;
    --fv-showcase-popup-card-soft:      #15201B;
    --fv-showcase-popup-text:           #F4FFE8;
    --fv-showcase-popup-text-soft:      #D8E8C2;
    --fv-showcase-popup-muted:          #94A488;
    --fv-showcase-popup-line:           rgba(183, 255, 60, 0.18);
    --fv-showcase-popup-line-soft:      rgba(183, 255, 60, 0.08);
    --fv-showcase-popup-shadow:         0 30px 90px rgba(0, 0, 0, 0.76);
    --fv-showcase-popup-backdrop:       rgba(0, 0, 0, 0.80);
    --fv-showcase-popup-radius:         4px;
    --fv-showcase-popup-radius-card:    2px;
    --fv-showcase-popup-radius-date:    2px;
    --fv-showcase-popup-font:           "Manrope", system-ui, sans-serif;
    --fv-showcase-popup-title-weight:   800;
    --fv-showcase-popup-title-size:     22px;
    --fv-showcase-popup-title-case:     uppercase;
    --fv-showcase-popup-title-tracking: 0.12em;
    --fv-showcase-popup-accent-strip:   repeating-linear-gradient(90deg, #B7FF3C 0px, #B7FF3C 18px, transparent 18px, transparent 28px);
    --fv-showcase-popup-header-bg:      #050805;
    --fv-showcase-popup-footer-bg:      #050805;
    --fv-showcase-popup-eyebrow:        "[ TODAY · OPEN MAT ]";
}

/* ── 3. Generic popup chrome (consumes vars) ──────────────────────────────── */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup {
    background: var(--fv-showcase-popup-backdrop);
    backdrop-filter: blur(18px) saturate(130%);
    -webkit-backdrop-filter: blur(18px) saturate(130%);
    padding: 16px;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box {
    width: min(1120px, calc(100dvw - 32px));
    min-width: 0;
    min-height: min(720px, calc(100dvh - 32px));
    height: min(820px, calc(100dvh - 32px));
    max-height: calc(100dvh - 32px);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius);
    background: var(--fv-showcase-popup-card);
    box-shadow: var(--fv-showcase-popup-shadow);
    color: var(--fv-showcase-popup-text);
    position: relative;
    overflow: hidden;
    font-family: var(--fv-showcase-popup-font);
}

/* Accent strip across the top of every showcase popup. Each template ships a
   different gradient/repeating-pattern so the brand reads at a glance. */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--fv-showcase-popup-accent-strip);
    z-index: 3;
    pointer-events: none;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-header {
    height: auto;
    min-height: 84px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius) var(--fv-showcase-popup-radius) 0 0;
    background: var(--fv-showcase-popup-header-bg);
    grid-template-columns: minmax(0, 1fr) 48px;
    gap: 12px;
    text-align: left;
    position: relative;
}

/* Eyebrow appears above the title — sourced per-template via --eyebrow var. */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
    content: var(--fv-showcase-popup-eyebrow);
    display: block;
    font-family: "Geist Mono", ui-monospace, "SF Mono", monospace;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--fv-showcase-popup-primary);
    margin: 0 0 8px;
    line-height: 1;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title {
    margin: 0;
    min-width: 0;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title span {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-title-font);
    font-size: var(--fv-showcase-popup-title-size);
    font-weight: var(--fv-showcase-popup-title-weight);
    font-style: var(--fv-showcase-popup-title-italic);
    letter-spacing: var(--fv-showcase-popup-title-tracking);
    text-transform: var(--fv-showcase-popup-title-case);
    line-height: 1.15;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-close-icon {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    color: var(--fv-showcase-popup-text);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-close-icon:hover {
    border-color: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-content {
    background: var(--fv-showcase-popup-bg);
    color: var(--fv-showcase-popup-text);
    overflow-x: hidden;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-section,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm {
    min-width: 0;
    color: var(--fv-showcase-popup-text);
    background: transparent;
    font-family: var(--fv-showcase-popup-font);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm {
    padding: 22px;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-header-title {
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    color: var(--fv-showcase-popup-text);
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-tabs {
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-choice,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .f-btn {
    min-height: 42px;
    border-radius: 999px;
    border-color: var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
    box-shadow: none;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle:hover,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn:hover,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .f-btn:hover {
    border-color: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary);
    background: color-mix(in srgb, var(--fv-showcase-popup-primary) 7%, var(--fv-showcase-popup-card));
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__tabs {
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 999px;
    background: var(--fv-showcase-popup-card);
    padding: 5px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button {
    min-height: 38px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--fv-showcase-popup-muted);
    font-weight: 800;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button.is-active {
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.14);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .programm-slide-container,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-container {
    min-width: 0;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date .class-date-btn,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date {
    color: var(--fv-showcase-popup-text);
}

/* Sticky date strip: it must be opaque, otherwise schedule cards bleed behind
   the day rail while scrolling inside the popup. */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .date-container,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .swiper-date {
    background: var(--fv-showcase-popup-bg);
    border-radius: var(--fv-showcase-popup-radius-card);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm .date-container {
    z-index: 45;
    border: 1px solid var(--fv-showcase-popup-line-soft);
    box-shadow: 0 18px 34px rgba(15, 23, 42, 0.12);
    isolation: isolate;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm .date-container .swiper-date,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm .date-container .service-nav {
    position: relative;
    z-index: 1;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-months,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .month-list {
    color: var(--fv-showcase-popup-muted);
    background: transparent;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .month-list span {
    color: var(--fv-showcase-popup-muted);
}

/* Day-strip side navigation arrows — themed pill buttons, not light-silver. */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.silver-b-btn,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.rounded-icon {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    color: var(--fv-showcase-popup-text);
    box-shadow: none;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.silver-b-btn:hover:not(:disabled),
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.rounded-icon:hover:not(:disabled) {
    border-color: var(--fv-showcase-popup-primary);
    background: color-mix(in srgb, var(--fv-showcase-popup-primary) 9%, var(--fv-showcase-popup-card));
    color: var(--fv-showcase-popup-primary);
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.swiper-button-disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

/* Filter toggle pill (Φίλτρα button) — also a silver-b-btn by default. */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle.silver-b-btn {
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    color: var(--fv-showcase-popup-text);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle.silver-b-btn:hover {
    border-color: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary);
    background: color-mix(in srgb, var(--fv-showcase-popup-primary) 8%, var(--fv-showcase-popup-card));
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
}

/* Sharp-corner templates (C, G) keep nav arrows + filter toggle square */
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.silver-b-btn,
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.rounded-icon,
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle.silver-b-btn,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.silver-b-btn,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn.rounded-icon,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle.silver-b-btn {
    border-radius: 4px;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-day-num {
    border-color: var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
    border-radius: var(--fv-showcase-popup-radius-date);
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.dark-selected .studio-day-num,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date .class-date-btn:hover .studio-day-num {
    border-color: var(--fv-showcase-popup-primary);
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date .class-date-btn:hover .studio-day-num {
    background: color-mix(in srgb, var(--fv-showcase-popup-primary) 12%, var(--fv-showcase-popup-card));
    color: var(--fv-showcase-popup-primary);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.dark-selected .studio-day-num {
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-day-name,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .month-list,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-label,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-meta,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-credits,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-trainers,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .fv-pay-method,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .fv-slot-cost {
    color: var(--fv-showcase-popup-muted);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .empty-date-box {
    border: 1px solid var(--fv-showcase-popup-line-soft);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.06);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box {
    box-shadow: none;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box:hover {
    border-color: var(--fv-showcase-popup-line-soft);
    box-shadow: none;
    transform: none;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card:hover {
    border-color: color-mix(in srgb, var(--fv-showcase-popup-primary) 34%, var(--fv-showcase-popup-line));
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.09);
}
/* Markup has a nested .time-line-box (outer container + inner per-date box)
   which produces a double border. Neutralise the inner so only the outer
   carries the chrome. */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box .time-line-box {
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
}

/* "10:00" hour label pill — was hardcoded white. Theme it so dark templates
   don't get a stark white chip riding the card border. */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-label {
    background: var(--fv-showcase-popup-card-soft);
    color: var(--fv-showcase-popup-text);
    border: 1px solid var(--fv-showcase-popup-line-soft);
    border-radius: 999px;
    padding: 4px 14px;
    font-family: var(--fv-showcase-popup-font);
    font-weight: 700;
    font-size: 12.5px;
    letter-spacing: 0.02em;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line .line {
    background: var(--fv-showcase-popup-line-soft);
}
/* Sharp-corner templates keep the time pill square */
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-label,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-label {
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-title,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card strong,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-personal {
    color: var(--fv-showcase-popup-text);
    letter-spacing: 0;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-icon,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card__icon {
    background: var(--fv-showcase-popup-card-soft);
    border-color: var(--fv-showcase-popup-line);
    color: var(--fv-showcase-popup-primary);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-category-box {
    border: 1px solid color-mix(in srgb, var(--fv-showcase-popup-primary) 16%, var(--fv-showcase-popup-line-soft));
    border-radius: var(--fv-showcase-popup-radius-card);
    background: color-mix(in srgb, var(--fv-showcase-popup-card) 88%, var(--fv-showcase-popup-bg));
    color: var(--fv-showcase-popup-text);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.045);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-category-box:hover {
    border-color: color-mix(in srgb, var(--fv-showcase-popup-primary) 32%, var(--fv-showcase-popup-line));
    background: color-mix(in srgb, var(--fv-showcase-popup-card) 94%, var(--fv-showcase-popup-primary));
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.075);
    transform: translateY(-1px);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-category-box .studio-service-time,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-category-box .studio-service-title,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-category-box .studio-service-info,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-category-box .studio-service-category,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-category-box .studio-service-cost {
    color: inherit;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.book-now,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-apply,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .f-btn.primary-btn,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .f-btn.primary-b-btn {
    border-color: var(--fv-showcase-popup-primary);
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.14);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.book-now:hover,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-apply:hover,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .js-booking-view-studio:hover {
    background: var(--fv-showcase-popup-primary-strong);
    border-color: var(--fv-showcase-popup-primary-strong);
    color: var(--fv-showcase-popup-primary-ink);
    transform: translateY(-1px);
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.18);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.disabled:hover,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.is-night-booking-locked:hover {
    border-color: var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-card-soft);
    color: var(--fv-showcase-popup-muted);
    box-shadow: none;
    transform: none;
    cursor: not-allowed;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.disabled,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.is-night-booking-locked {
    border-color: var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-card-soft);
    color: var(--fv-showcase-popup-muted);
    box-shadow: none;
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-share-slot {
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 999px;
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-muted);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-share-slot:hover {
    color: var(--fv-showcase-popup-primary);
    border-color: color-mix(in srgb, var(--fv-showcase-popup-primary) 42%, var(--fv-showcase-popup-line));
    background: color-mix(in srgb, var(--fv-showcase-popup-primary) 8%, var(--fv-showcase-popup-card));
    transform: translateY(-1px);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-panel {
    border-color: var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
    box-shadow: var(--fv-showcase-popup-shadow);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-header,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-footer {
    border-color: var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-card-soft);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-title,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-group-meta label {
    color: var(--fv-showcase-popup-text);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-subtitle,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-group-meta span {
    color: var(--fv-showcase-popup-muted);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-option-copy,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-pill span {
    border-color: var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-card-soft);
    color: var(--fv-showcase-popup-text);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-option input:checked + .studio-programm-filter-option-copy,
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-pill input:checked + span {
    border-color: var(--fv-showcase-popup-primary);
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
}

.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer {
    min-height: 76px;
    padding: 14px 24px;
    border-top: 1px solid var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-footer-bg);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .js-booking-view-studio {
    border-color: var(--fv-showcase-popup-primary);
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    min-width: 170px;
    border-radius: 999px;
}

/* ── 4. Per-template structural overrides ──────────────────────────────────
   These add the small details that make each skin instantly recognisable —
   strip thickness, header treatment, card border style, footer mood — beyond
   what variables alone can express. */

/* ── A · Luxury Editorial — paper feel, hairline borders, serif title ───── */
body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box::before {
    height: 2px;
    background: var(--fv-showcase-popup-primary);
}
body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box {
    border-color: rgba(27, 24, 19, 0.18);
}
body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-header {
    padding-top: 26px;
    padding-bottom: 22px;
    border-bottom-color: rgba(27, 24, 19, 0.18);
}
body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box,
body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card {
    box-shadow: none;
    border-color: rgba(27, 24, 19, 0.14);
}
body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card:hover {
    box-shadow: 0 16px 36px rgba(48, 30, 20, 0.12);
}
body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer {
    border-top-color: rgba(27, 24, 19, 0.18);
}

/* ── C · FORGE Dark — sharp corners, condensed display, dotted accent strip */
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box::before {
    height: 6px;
}
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-header {
    border-bottom: 1px solid rgba(255, 182, 39, 0.22);
}
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
    color: #FFB627;
}
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-close-icon {
    border-radius: 4px;
}
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__tabs {
    border-radius: 4px;
}
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button,
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-choice,
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle,
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn {
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
}
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .js-booking-view-studio {
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* ── D · fitVibe On-Brand — soft pill, gold accent stripe at strip ──────── */
body.fv-showcase-template-d .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box::before {
    height: 3px;
}
body.fv-showcase-template-d .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-template-d .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-day-num {
    border-radius: 999px;
}
body.fv-showcase-template-d .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num {
    box-shadow: 0 0 0 3px rgba(248, 224, 102, 0.55), 0 12px 24px rgba(50, 93, 230, 0.28);
}

/* ── E · Showstopper — colourful header glow, offset card shadow, italic ── */
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box::before {
    height: 5px;
}
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
    color: var(--fv-showcase-popup-accent);
}
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-header {
    border-bottom: 1px dashed rgba(229, 184, 92, 0.38);
}
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-close-icon {
    background: rgba(255, 248, 232, 0.06);
    border-color: rgba(229, 184, 92, 0.32);
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button.is-active,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.dark-selected .studio-day-num {
    color: var(--fv-showcase-popup-primary-ink);
}
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card {
    border-color: rgba(229, 184, 92, 0.22);
}
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box {
    box-shadow: none;
}
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card {
    box-shadow: 5px 5px 0 rgba(229, 184, 92, 0.10);
}
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.book-now,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-apply,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .f-btn.primary-btn,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .js-booking-view-studio {
    color: var(--fv-showcase-popup-primary-ink);
}

/* ── F · Flagship — glass header, hairline borders, serif title ────────── */
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box {
    box-shadow: 0 50px 120px -40px rgba(10, 23, 54, 0.32);
}
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box::before {
    height: 3px;
}
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-header {
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    backdrop-filter: blur(20px) saturate(160%);
    padding-top: 28px;
    padding-bottom: 22px;
}
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
    color: var(--fv-showcase-popup-accent);
}
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box,
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card {
    box-shadow: 0 18px 44px -22px rgba(10, 23, 54, 0.18);
}
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button.is-active,
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .js-booking-view-studio {
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    box-shadow: 0 14px 30px rgba(10, 23, 54, 0.28);
}
body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num {
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    box-shadow: 0 0 0 3px rgba(201, 165, 90, 0.45), 0 14px 28px rgba(10, 23, 54, 0.22);
}

/* ── G · HAUS° — neon lime strip, sharp corners, bracket eyebrow ────────── */
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box::before {
    height: 6px;
}
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-header {
    border-bottom: 1px solid rgba(183, 255, 60, 0.22);
}
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-close-icon {
    border-radius: 4px;
}
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__tabs {
    border-radius: 4px;
}
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-choice,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-nav .f-btn {
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 800;
}
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .js-booking-view-studio {
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num {
    box-shadow: 0 0 0 2px var(--fv-showcase-popup-primary), 0 0 24px rgba(183, 255, 60, 0.35);
}

/* ── Dark-template tint corrections (kept from original implementation) ──── */
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button.is-active,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button.is-active,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-mode__button.is-active {
    color: var(--fv-showcase-popup-primary-ink);
}
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .service-date.is-selected .studio-day-num {
    color: var(--fv-showcase-popup-primary-ink);
}
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.book-now,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-book-now.book-now,
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-apply,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-apply,
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .js-booking-view-studio,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .js-booking-view-studio {
    color: var(--fv-showcase-popup-primary-ink);
}

/* ── 5. Booking confirmation popup ───────────────────────────────────────── */
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .popup-box {
    width: min(760px, calc(100dvw - 32px));
    height: auto;
    min-height: 0;
    max-height: calc(100dvh - 32px);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
    content: "Κράτηση";
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .popup-title span:empty {
    display: none;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .popup-content {
    background: var(--fv-showcase-popup-bg);
    overflow: hidden;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-slide {
    width: 100%;
    max-width: none;
    min-height: 0;
    max-height: calc(100dvh - 112px);
    overflow-y: auto;
    background: transparent;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-confirm-box {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 18px;
    overflow: visible;
    background: transparent;
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-radius {
    width: 100%;
    max-width: none;
    overflow: hidden;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card);
    box-shadow: 0 22px 52px rgba(15, 23, 42, 0.12);
    color: var(--fv-showcase-popup-text);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-radius > h2 {
    width: 100%;
    margin: 0;
    padding: 18px 22px;
    border-bottom: 1px solid var(--fv-showcase-popup-line-soft);
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-title-font);
    font-size: clamp(20px, 2.4vw, var(--fv-showcase-popup-title-size));
    font-style: var(--fv-showcase-popup-title-italic);
    font-weight: var(--fv-showcase-popup-title-weight);
    letter-spacing: var(--fv-showcase-popup-title-tracking);
    line-height: 1.1;
    text-align: left;
    text-transform: var(--fv-showcase-popup-title-case);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 18px 22px;
    border-bottom: 1px solid var(--fv-showcase-popup-line-soft);
    background: var(--fv-showcase-popup-card-soft);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info .content {
    display: grid;
    gap: 4px;
    min-width: 0;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info h2 {
    margin: 0;
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-size: 17px;
    font-weight: 850;
    line-height: 1.25;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info address {
    margin: 0;
    color: var(--fv-showcase-popup-muted);
    font-size: 12.5px;
    font-style: normal;
    line-height: 1.45;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info .logo {
    width: 64px;
    height: 64px;
    margin: 0;
    padding: 4px;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 50%;
    background: var(--fv-showcase-popup-card);
    box-shadow: none;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info .logo img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info .review-total {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0;
    color: var(--fv-showcase-popup-muted);
    font-size: 12px;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info .review-total svg {
    width: 16px;
    height: 16px;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .review-mini {
    display: none;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card {
    display: block;
    background: var(--fv-showcase-popup-card);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .gray-box {
    width: auto;
    margin: 18px 22px;
    padding: 0;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card-soft);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card {
    display: grid;
    gap: 0;
    padding: 0 16px;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .first-area {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, auto);
    gap: 14px;
    align-items: start;
    padding: 18px 0;
    border-bottom: 1px solid var(--fv-showcase-popup-line-soft);
    color: var(--fv-showcase-popup-text);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .first-area strong {
    color: var(--fv-showcase-popup-text);
    font-size: 16px;
    line-height: 1.3;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .book-instructor-area {
    margin-top: 10px;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .instructor {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--fv-showcase-popup-muted);
    font-size: 12.5px;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .instructor img {
    width: 28px;
    height: 28px;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 50%;
    object-fit: cover;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-service-credits.fitcoin,
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-service-credits.fitcoin.packet {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    color: var(--fv-showcase-popup-text);
    text-align: right;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .first-area .fitcoin.packet > div {
    gap: 8px;
    padding: 0;
    border: 0;
    background: transparent;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-choice-summary {
    padding: 10px 12px;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-title-main {
    color: var(--fv-showcase-popup-primary);
    font-weight: 850;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-title-remaining,
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-meta,
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-meta-row,
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-choice-trigger-copy {
    color: var(--fv-showcase-popup-muted);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-choice-trigger {
    min-height: 32px;
    padding: 7px 12px;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 999px;
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-primary);
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-choice-trigger:hover {
    border-color: var(--fv-showcase-popup-primary);
    background: var(--fv-showcase-popup-accent);
    color: var(--fv-showcase-popup-primary-strong);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .badge.pay-badge span {
    color: var(--fv-showcase-popup-muted);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .second-area {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 14px 0;
    border-bottom: 1px solid var(--fv-showcase-popup-line-soft);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .book-date {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 11px;
    border: 1px solid var(--fv-showcase-popup-line-soft);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text-soft);
    font-size: 12.5px;
    line-height: 1.35;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .book-date i {
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .third-area {
    display: grid;
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 16px 0 18px;
    border-bottom: 0;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .studio-message {
    padding: 11px 12px;
    border: 1px solid var(--fv-showcase-popup-line-soft);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-muted);
    font-size: 12.5px;
    font-style: normal;
    line-height: 1.5;
    text-align: left;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .studio-message p {
    margin: 0;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .client-note {
    gap: 8px;
    overflow: visible;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .client-note .shownote-area {
    justify-content: space-between;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--fv-showcase-popup-line-soft);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-primary);
    font-size: 12.5px;
    font-weight: 800;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .client-note textarea {
    min-height: 100px;
    padding: 12px;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-size: 14px;
    box-shadow: none;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .client-note textarea:focus {
    border-color: var(--fv-showcase-popup-primary);
    outline: 3px solid var(--fv-showcase-popup-accent);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .booking-confirm-area {
    justify-content: flex-end;
    margin: 0;
    padding: 16px;
    border-top: 1px solid var(--fv-showcase-popup-line-soft);
    background: var(--fv-showcase-popup-footer-bg);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .booking-confirm-area button,
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .booking-confirm-area .f-btn.primary-btn.completeBooking {
    width: 100%;
    max-width: none;
    min-height: 48px;
    margin: 0;
    border: 1px solid var(--fv-showcase-popup-primary);
    border-radius: 999px;
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    font-family: var(--fv-showcase-popup-font);
    font-size: 14px;
    font-weight: 850;
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.16);
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .booking-confirm-area .f-btn.primary-btn.completeBooking:hover {
    border-color: var(--fv-showcase-popup-primary-strong);
    background: var(--fv-showcase-popup-primary-strong);
    color: var(--fv-showcase-popup-primary-ink);
    transform: translateY(-1px);
}
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .booking-confirm-area .completeBooking.is-disabled,
body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .booking-confirm-area .completeBooking.is-disabled:hover {
    border-color: var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-line-soft);
    color: var(--fv-showcase-popup-muted);
    box-shadow: none;
    cursor: not-allowed;
    transform: none;
}
body.fv-showcase-template-c .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-radius,
body.fv-showcase-template-c .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .gray-box,
body.fv-showcase-template-c .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-choice-summary,
body.fv-showcase-template-c .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .book-date,
body.fv-showcase-template-c .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .studio-message,
body.fv-showcase-template-c .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .client-note .shownote-area,
body.fv-showcase-template-g .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-radius,
body.fv-showcase-template-g .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .gray-box,
body.fv-showcase-template-g .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-choice-summary,
body.fv-showcase-template-g .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .book-date,
body.fv-showcase-template-g .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .studio-message,
body.fv-showcase-template-g .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .client-note .shownote-area {
    border-radius: 4px;
}
body.fv-showcase-template-c .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .booking-confirm-area .completeBooking,
body.fv-showcase-template-g .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .booking-confirm-area .completeBooking {
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* ── 6. Mobile ─────────────────────────────────────────────────────────────── */
@media (max-width: 720px) {
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup {
        padding: 0;
        place-content: stretch;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box {
        width: 100dvw;
        height: 100dvh;
        max-height: 100dvh;
        min-height: 100dvh;
        border-radius: 0;
        border: 0;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-box::before {
        border-radius: 0;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-header {
        min-height: 68px;
        padding: 18px 14px 14px 18px;
        border-radius: 0;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title::before {
        font-size: 9.5px;
        margin-bottom: 6px;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title span {
        font-size: clamp(18px, 5vw, 24px);
    }
    body.fv-showcase-template-a .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title span,
    body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title span,
    body.fv-showcase-template-f .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-title span {
        font-size: clamp(22px, 6vw, 30px);
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-close-icon {
        width: 40px;
        height: 40px;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm {
        padding: 14px 12px 20px;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-services-tabs {
        align-items: stretch;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-programm-filter-toggle,
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-service-choice {
        width: 100%;
        justify-content: center;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box,
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card,
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .empty-date-box {
        border-radius: var(--fv-showcase-popup-radius-card);
    }
    body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box,
    body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .time-line-box {
        border-radius: 4px;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer {
        min-height: 64px;
        padding: 10px 14px;
    }
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .grid-end,
    .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .popup-footer .f-btn {
        width: 100%;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .popup-box {
        width: 100dvw;
        height: 100dvh;
        max-height: 100dvh;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-slide {
        max-height: calc(100dvh - 68px);
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-confirm-box {
        padding: 12px;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-radius > h2,
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info {
        padding-left: 14px;
        padding-right: 14px;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info {
        grid-template-columns: 54px minmax(0, 1fr);
        gap: 10px;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info .logo {
        width: 50px;
        height: 50px;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-info .review-total {
        grid-column: 2;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .gray-box {
        margin: 12px;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .first-area,
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .second-area {
        grid-template-columns: 1fr;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-service-credits.fitcoin,
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .studio-service-credits.fitcoin.packet,
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .booking-card .padding-card .first-area .fitcoin.packet .packet-choice-actions {
        align-items: stretch;
        text-align: left;
    }
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .packet-choice-trigger-copy,
    body.fv-showcase-page .basic-popUp.studio-booking.booking-flow-popup.fv-showcase-booking-popup .badge.pay-badge span {
        text-align: left;
    }
}

/* ============================================================================
 * 7 · Τμήματα view — class catalogue grid
 *   .studio-schedule-class-flow > .studio-schedule-step (wrapper card)
 *     .studio-schedule-step__head { span (Βήμα N), strong, small }
 *     .studio-schedule-class-grid > .studio-schedule-class-card
 *       .studio-schedule-class-card__icon (inline SVG strokes hardcoded #325DE6)
 *       .studio-schedule-class-card__state ("Επιλογή τμήματος" label)
 *       .studio-schedule-class-card__check (arrow circle)
 * ========================================================================== */
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-flow {
    background: transparent;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-step {
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    color: var(--fv-showcase-popup-text);
    padding: 22px;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.06);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-step__head > div {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-step__head span {
    display: inline-block;
    width: fit-content;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--fv-showcase-popup-accent);
    color: var(--fv-showcase-popup-primary);
    font-family: "Geist Mono", ui-monospace, "SF Mono", monospace;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-step__head strong {
    font-family: var(--fv-showcase-popup-font);
    font-size: 18px;
    font-weight: 800;
    color: var(--fv-showcase-popup-text);
    letter-spacing: 0;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-step__head small {
    font-family: var(--fv-showcase-popup-font);
    font-size: 13.5px;
    color: var(--fv-showcase-popup-muted);
    line-height: 1.5;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
    margin-top: 18px;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card {
    border: 1px solid var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-card-soft);
    color: var(--fv-showcase-popup-text);
    border-radius: var(--fv-showcase-popup-radius-card);
    cursor: pointer;
    text-align: left;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card:hover {
    border-color: var(--fv-showcase-popup-primary);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.1);
    transform: translateY(-1px);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card__icon {
    background: var(--fv-showcase-popup-card);
    border-color: var(--fv-showcase-popup-line);
    color: var(--fv-showcase-popup-primary);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card__icon svg path[stroke="#325DE6"] {
    stroke: var(--fv-showcase-popup-primary);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card__state {
    color: var(--fv-showcase-popup-primary);
    font-family: "Geist Mono", ui-monospace, "SF Mono", monospace;
    font-size: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 600;
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card strong {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card small {
    color: var(--fv-showcase-popup-muted);
}
.basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-class-card__check {
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    border-color: var(--fv-showcase-popup-primary);
}

/* Dark templates: pill backdrop needs sufficient contrast against dark bg. */
body.fv-showcase-template-c .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-step__head span,
body.fv-showcase-template-e .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-step__head span,
body.fv-showcase-template-g .basic-popUp.booking-flow-popup.fv-showcase-booking-popup .studio-schedule-step__head span {
    background: rgba(255, 255, 255, 0.06);
    color: var(--fv-showcase-popup-primary);
    border: 1px solid var(--fv-showcase-popup-line);
}

/* ============================================================================
 * 8 · Filter panel (right-side drawer + backdrop)
 *   The drawer renders as a sibling of the popup, scoped via body class.
 *   .studio-programm-filter-backdrop      semi-transparent overlay
 *   .studio-programm-filter-panel         drawer
 *     .studio-programm-filter-header { title-wrap, close }
 *     .studio-programm-filter-body
 *       .studio-programm-filter-hero      primary-colour summary card
 *         .studio-programm-filter-hero-copy { strong, span }
 *         .studio-programm-filter-result   progress bar
 *       .studio-programm-filter-group     per-section
 *       .studio-programm-filter-pill      time-of-day radios
 *       .studio-programm-filter-range-row cost slider
 *     .studio-programm-filter-footer { reset, apply }
 * ========================================================================== */
body.fv-showcase-page .studio-programm-filter-backdrop {
    background: var(--fv-showcase-popup-backdrop);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
body.fv-showcase-page .studio-programm-filter-panel {
    background: var(--fv-showcase-popup-card);
    border-left: 1px solid var(--fv-showcase-popup-line);
    box-shadow: -30px 0 80px rgba(15, 23, 42, 0.32);
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
}
/* Accent strip rides the top of the inner header so we don't fight the
   drawer's own positioning rules. */
body.fv-showcase-page .studio-programm-filter-header {
    position: relative;
}
body.fv-showcase-page .studio-programm-filter-header::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--fv-showcase-popup-accent-strip);
    pointer-events: none;
}

body.fv-showcase-page .studio-programm-filter-header {
    background: var(--fv-showcase-popup-header-bg);
    border-bottom: 1px solid var(--fv-showcase-popup-line);
    padding: 22px 22px 18px;
}
body.fv-showcase-page .studio-programm-filter-title {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-title-font);
    font-size: clamp(20px, 2.2vw, 26px);
    font-weight: var(--fv-showcase-popup-title-weight);
    font-style: var(--fv-showcase-popup-title-italic);
    letter-spacing: var(--fv-showcase-popup-title-tracking);
    text-transform: var(--fv-showcase-popup-title-case);
    line-height: 1.15;
}
body.fv-showcase-page .studio-programm-filter-subtitle {
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 13px;
    line-height: 1.5;
    margin-top: 4px;
}
body.fv-showcase-page .studio-programm-filter-close {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    color: var(--fv-showcase-popup-text);
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
body.fv-showcase-page .studio-programm-filter-close:hover {
    border-color: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary);
}

body.fv-showcase-page .studio-programm-filter-body {
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
}

body.fv-showcase-page .studio-programm-filter-hero {
    background: linear-gradient(140deg, var(--fv-showcase-popup-primary) 0%, var(--fv-showcase-popup-primary-strong) 100%);
    color: var(--fv-showcase-popup-primary-ink);
    border-radius: var(--fv-showcase-popup-radius-card);
    border: 1px solid var(--fv-showcase-popup-primary-strong);
    padding: 18px 20px;
}
body.fv-showcase-page .studio-programm-filter-hero-copy strong {
    color: var(--fv-showcase-popup-primary-ink);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 16px;
}
body.fv-showcase-page .studio-programm-filter-hero-copy span {
    color: var(--fv-showcase-popup-primary-ink);
    opacity: 0.85;
    font-family: var(--fv-showcase-popup-font);
    font-size: 13px;
}
body.fv-showcase-page .studio-programm-filter-result {
    background: rgba(255, 255, 255, 0.18);
    color: var(--fv-showcase-popup-primary-ink);
    border-radius: 999px;
    padding: 8px 14px;
    font-family: var(--fv-showcase-popup-font);
    font-size: 12.5px;
    font-weight: 700;
}

body.fv-showcase-page .studio-programm-filter-group {
    border-top: 1px solid var(--fv-showcase-popup-line-soft);
    padding-top: 18px;
}
body.fv-showcase-page .studio-programm-filter-group {
    background: var(--fv-showcase-popup-card-soft);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    padding: 16px;
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
}
body.fv-showcase-page .studio-programm-filter-group-meta label {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 0;
}
body.fv-showcase-page .studio-programm-filter-group-meta span {
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 12.5px;
}

body.fv-showcase-page .studio-programm-filter-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
body.fv-showcase-page .studio-programm-filter-time-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

body.fv-showcase-page .studio-programm-filter-option,
body.fv-showcase-page .studio-programm-filter-pill {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--fv-showcase-popup-text);
    cursor: pointer;
    position: relative;
}
/* Hide the native radio/checkbox indicator — the wrapping label gives the
   visual state instead. (Native blue dot otherwise breaks the theme.) */
body.fv-showcase-page .studio-programm-filter-option input,
body.fv-showcase-page .studio-programm-filter-pill input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 1;
    -webkit-appearance: none;
    appearance: none;
}
body.fv-showcase-page .studio-programm-filter-option-copy,
body.fv-showcase-page .studio-programm-filter-pill > span {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid var(--fv-showcase-popup-line);
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
    border-radius: var(--fv-showcase-popup-radius-card);
    font-family: var(--fv-showcase-popup-font);
    font-size: 13.5px;
    font-weight: 600;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}
body.fv-showcase-page .studio-programm-filter-option:hover .studio-programm-filter-option-copy,
body.fv-showcase-page .studio-programm-filter-pill:hover > span {
    border-color: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-page .studio-programm-filter-option input:checked + .studio-programm-filter-option-copy,
body.fv-showcase-page .studio-programm-filter-pill input:checked + span {
    border-color: var(--fv-showcase-popup-primary);
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
}
body.fv-showcase-page .studio-programm-filter-option-count {
    background: color-mix(in srgb, var(--fv-showcase-popup-primary) 16%, var(--fv-showcase-popup-card));
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-page .studio-programm-filter-option input:checked + .studio-programm-filter-option-copy .studio-programm-filter-option-count {
    background: color-mix(in srgb, var(--fv-showcase-popup-primary-ink) 88%, transparent);
    color: var(--fv-showcase-popup-primary);
}

body.fv-showcase-page .studio-programm-filter-range-row {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--fv-showcase-popup-muted);
    font-family: "Geist Mono", ui-monospace, "SF Mono", monospace;
    font-size: 12px;
}
body.fv-showcase-page .studio-programm-filter-range-row input[type="range"] {
    flex: 1;
    -webkit-appearance: none;
    appearance: none;
    height: 6px;
    border-radius: 999px;
    background: var(--fv-showcase-popup-line);
    outline: none;
}
body.fv-showcase-page .studio-programm-filter-range-row span {
    color: var(--fv-showcase-popup-muted);
}
body.fv-showcase-page .studio-programm-filter-range-row input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: var(--fv-showcase-popup-primary);
    border: 2px solid var(--fv-showcase-popup-card);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.18);
}
body.fv-showcase-page .studio-programm-filter-range-row input[type="range"]::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: var(--fv-showcase-popup-primary);
    border: 2px solid var(--fv-showcase-popup-card);
    cursor: pointer;
}
body.fv-showcase-page .studio-programm-filter-range-value {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-size: 13px;
    margin-top: 8px;
}
body.fv-showcase-page .studio-programm-filter-range-value strong {
    color: var(--fv-showcase-popup-primary);
    font-weight: 800;
}
body.fv-showcase-page .studio-programm-filter-empty-inline {
    color: var(--fv-showcase-popup-muted);
}

body.fv-showcase-page .studio-programm-filter-footer {
    background: var(--fv-showcase-popup-footer-bg);
    border-top: 1px solid var(--fv-showcase-popup-line);
    padding: 14px 20px;
    display: flex;
    gap: 10px;
}
body.fv-showcase-page .studio-programm-filter-reset {
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    color: var(--fv-showcase-popup-text);
    border-radius: 999px;
    font-weight: 800;
}
body.fv-showcase-page .studio-programm-filter-reset:hover {
    border-color: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-page .studio-programm-filter-apply,
body.fv-showcase-page .studio-programm-filter-apply.f-btn.primary-btn,
body.fv-showcase-page button.studio-programm-filter-apply {
    background: var(--fv-showcase-popup-primary);
    background-color: var(--fv-showcase-popup-primary);
    border: 1px solid var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    border-radius: 999px;
    font-weight: 800;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.14);
}

/* Sharp-corner templates (C, G) — keep the square language inside the drawer. */
body.fv-showcase-template-c .studio-programm-filter-apply,
body.fv-showcase-template-c .studio-programm-filter-reset,
body.fv-showcase-template-c .studio-programm-filter-option-copy,
body.fv-showcase-template-c .studio-programm-filter-pill > span,
body.fv-showcase-template-c .studio-programm-filter-hero,
body.fv-showcase-template-g .studio-programm-filter-apply,
body.fv-showcase-template-g .studio-programm-filter-reset,
body.fv-showcase-template-g .studio-programm-filter-option-copy,
body.fv-showcase-template-g .studio-programm-filter-pill > span,
body.fv-showcase-template-g .studio-programm-filter-hero {
    border-radius: 4px;
}
body.fv-showcase-template-c .studio-programm-filter-apply,
body.fv-showcase-template-g .studio-programm-filter-apply {
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* ============================================================================
 * 8 · Booking confirm popup — auth gate (guest login/signup) + booking summary
 *   Outer popup already has .fv-showcase-booking-popup + .studio-booking, so
 *   header/strip/footer chrome inherits Section 3. Here we theme the inner
 *   auth shell that fills .popup-content for guests, plus the booking-summary
 *   layout for logged-in users.
 *
 *   Auth gate (login modal):
 *     .booking-confirm-box.login-modal > .fv-auth-shell.loginPopUp
 *       .sub-page-area > .sub-page-box[data-step="login"]
 *         .top-row > .login-message { img, h2, p }
 *         .login-box (form) — input-field-box + submit-btn
 *         .line-or .or-wide
 *         .provider-list > .provider-box.btn-login-provider
 *         .fv-auth-terms, .fv-auth-recovery-link, .partner-portal
 *
 *   The booking flow's own popup-content already inherits popup vars, so we
 *   theme the inner auth chrome here so dark templates don't get a stark
 *   white card sitting against a dark popup background.
 * ========================================================================== */

.fv-showcase-booking-popup .popup-content .booking-slide,
.fv-showcase-booking-popup .popup-content .booking-confirm-box.login-modal {
    background: transparent;
}

/* The inner auth card — themed bg, theme-driven border. On dark templates
   this becomes a slightly-lifted dark card; on light templates a soft cream
   panel sitting on the popup bg. */
.fv-showcase-booking-popup .fv-auth-shell.loginPopUp,
.fv-showcase-booking-popup .fv-auth-shell.loginPopUp .sub-page-area,
.fv-showcase-booking-popup .fv-auth-shell.loginPopUp .sub-page-box {
    background: transparent;
    color: var(--fv-showcase-popup-text);
}
.fv-showcase-booking-popup .booking-confirm-box.login-modal .fv-auth-shell.loginPopUp .sub-page-box[data-step] {
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.18);
    padding: 36px 36px 28px;
    max-width: 520px;
    margin: 24px auto;
}
body.fv-showcase-template-c .fv-showcase-booking-popup .sub-page-box[data-step],
body.fv-showcase-template-g .fv-showcase-booking-popup .sub-page-box[data-step] {
    border-radius: 4px;
}

/* Title + subtitle — popup TEXT (not primary) so amber/lime/gold-on-white
   doesn't fade out. */
.fv-showcase-booking-popup .login-message h2 {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-title-font);
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: var(--fv-showcase-popup-title-weight);
    font-style: var(--fv-showcase-popup-title-italic);
    letter-spacing: var(--fv-showcase-popup-title-tracking);
    text-transform: var(--fv-showcase-popup-title-case);
    text-align: center;
    margin: 16px 0 10px;
    /* Cancel any text-fill gradient inherited from the bare auth modal. */
    background: none;
    -webkit-text-fill-color: currentColor;
    -webkit-background-clip: border-box;
    background-clip: border-box;
}
.fv-showcase-booking-popup .login-message p {
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 14px;
    line-height: 1.55;
    text-align: center;
    margin: 0 0 24px;
}

/* Form labels + inputs */
.fv-showcase-booking-popup .login-box .input-field-box {
    margin-bottom: 16px;
}
.fv-showcase-booking-popup .login-box .input-field-box label {
    display: block;
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 13px;
    margin-bottom: 8px;
    letter-spacing: 0;
}
.fv-showcase-booking-popup .login-box .input-field-box input[type="email"],
.fv-showcase-booking-popup .login-box .input-field-box input[type="text"],
.fv-showcase-booking-popup .login-box .input-field-box input[type="password"],
.fv-showcase-booking-popup .login-box .input-field-box input[type="tel"] {
    width: 100%;
    background: var(--fv-showcase-popup-card-soft);
    color: var(--fv-showcase-popup-text);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 12px;
    padding: 12px 14px;
    font-family: var(--fv-showcase-popup-font);
    font-size: 15px;
    outline: none;
    transition: border-color 0.18s ease, background 0.18s ease;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}
.fv-showcase-booking-popup .login-box .input-field-box input:focus {
    border-color: var(--fv-showcase-popup-primary);
    background: var(--fv-showcase-popup-card);
}
.fv-showcase-booking-popup .login-box .input-field-box input::placeholder {
    color: var(--fv-showcase-popup-muted);
    opacity: 0.7;
}
.fv-showcase-booking-popup .login-box .error-message {
    display: block;
    color: #DC4B3C;
    font-family: var(--fv-showcase-popup-font);
    font-size: 12px;
    margin-top: 4px;
}
body.fv-showcase-template-c .fv-showcase-booking-popup .login-box .input-field-box input,
body.fv-showcase-template-g .fv-showcase-booking-popup .login-box .input-field-box input {
    border-radius: 4px;
}

/* Submit / Continue button — primary CTA */
.fv-showcase-booking-popup .login-box .submit-btn,
.fv-showcase-booking-popup input.submit-btn,
.fv-showcase-booking-popup button.submit-btn {
    width: 100%;
    background: var(--fv-showcase-popup-primary);
    background-color: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    border: 1px solid var(--fv-showcase-popup-primary);
    border-radius: 999px;
    padding: 14px 20px;
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 15px;
    cursor: pointer;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.14);
    transition: opacity 0.18s ease, transform 0.18s ease;
}
.fv-showcase-booking-popup .login-box .submit-btn:disabled,
.fv-showcase-booking-popup input.submit-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    box-shadow: none;
}
body.fv-showcase-template-c .fv-showcase-booking-popup .submit-btn,
body.fv-showcase-template-g .fv-showcase-booking-popup .submit-btn {
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* "ή με μία από τις παρακάτω επιλογές" divider */
.fv-showcase-booking-popup .line-or {
    position: relative;
    text-align: center;
    margin: 24px 0 18px;
}
.fv-showcase-booking-popup .line-or::before,
.fv-showcase-booking-popup .line-or::after {
    content: "";
    position: absolute;
    top: 50%;
    width: calc(50% - 140px);
    height: 1px;
    background: var(--fv-showcase-popup-line);
}
.fv-showcase-booking-popup .line-or::before { left: 0; }
.fv-showcase-booking-popup .line-or::after { right: 0; }
.fv-showcase-booking-popup .line-or .or-wide {
    display: inline-block;
    padding: 0 14px;
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 12.5px;
    background: var(--fv-showcase-popup-card);
}

/* Social-provider tiles (Google, Microsoft, Passkey) */
.fv-showcase-booking-popup .provider-list {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 22px;
}
.fv-showcase-booking-popup .provider-box.btn-login-provider {
    width: 64px;
    height: 64px;
    background: var(--fv-showcase-popup-card-soft);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--fv-showcase-popup-text);
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}
.fv-showcase-booking-popup .provider-box.btn-login-provider:hover {
    border-color: var(--fv-showcase-popup-primary);
    transform: translateY(-1px);
}
.fv-showcase-booking-popup .provider-box.btn-login-provider svg {
    width: 28px;
    height: 28px;
}
.fv-showcase-booking-popup .provider-box.btn-login-provider i {
    font-size: 22px;
    color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-template-c .fv-showcase-booking-popup .provider-box.btn-login-provider,
body.fv-showcase-template-g .fv-showcase-booking-popup .provider-box.btn-login-provider {
    border-radius: 4px;
}

/* Terms / recovery / partner-portal supporting text */
.fv-showcase-booking-popup .fv-auth-terms,
.fv-showcase-booking-popup .fv-auth-recovery-link,
.fv-showcase-booking-popup .fv-auth-help,
.fv-showcase-booking-popup .fv-auth-hint,
.fv-showcase-booking-popup .fv-auth-subtitle,
.fv-showcase-booking-popup .fv-passkey-notice,
.fv-showcase-booking-popup .change-lang {
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 12.5px;
    line-height: 1.55;
    text-align: center;
}
.fv-showcase-booking-popup .fv-auth-terms {
    border-top: 1px solid var(--fv-showcase-popup-line-soft);
    padding-top: 16px;
    margin-top: 14px;
}
.fv-showcase-booking-popup .fv-auth-terms-link,
.fv-showcase-booking-popup .fv-auth-recovery-link button,
.fv-showcase-booking-popup .fv-auth-recovery-link a,
.fv-showcase-booking-popup .partner-portal a,
.fv-showcase-booking-popup .link.link-primary {
    color: var(--fv-showcase-popup-primary);
    font-weight: 700;
    text-decoration: none;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}
.fv-showcase-booking-popup .fv-auth-terms-link:hover,
.fv-showcase-booking-popup .fv-auth-recovery-link button:hover,
.fv-showcase-booking-popup .partner-portal a:hover {
    color: var(--fv-showcase-popup-primary-strong);
    text-decoration: underline;
}
.fv-showcase-booking-popup .fv-auth-recovery-link {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed var(--fv-showcase-popup-line);
}
.fv-showcase-booking-popup .fv-auth-recovery-link button {
    display: inline;
}
.fv-showcase-booking-popup .partner-portal {
    margin-top: 14px;
    padding: 12px 16px;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 999px;
    background: var(--fv-showcase-popup-card-soft);
    color: var(--fv-showcase-popup-text);
    text-align: center;
    font-family: var(--fv-showcase-popup-font);
    font-size: 12.5px;
}
body.fv-showcase-template-c .fv-showcase-booking-popup .partner-portal,
body.fv-showcase-template-g .fv-showcase-booking-popup .partner-portal {
    border-radius: 4px;
}

/* OTP step (6-digit code) */
.fv-showcase-booking-popup .fv-otp-boxes {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 18px 0;
}
.fv-showcase-booking-popup .fv-otp-input {
    width: 48px;
    height: 56px;
    text-align: center;
    background: var(--fv-showcase-popup-card-soft);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 10px;
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-size: 22px;
    font-weight: 800;
    outline: none;
}
.fv-showcase-booking-popup .fv-otp-input:focus {
    border-color: var(--fv-showcase-popup-primary);
    background: var(--fv-showcase-popup-card);
}
.fv-showcase-booking-popup .fv-auth-back {
    background: none;
    border: 0;
    color: var(--fv-showcase-popup-primary);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 700;
    cursor: pointer;
}

/* Booking summary (logged-in users — actual booking confirmation page) */
.fv-showcase-booking-popup .booking-confirm-box:not(.login-modal) {
    background: transparent;
    color: var(--fv-showcase-popup-text);
}

/* Pending-claim flow — small confirmation card for unclaimed accounts */
.fv-showcase-booking-popup .fv-pending-claim-card {
    background: var(--fv-showcase-popup-card-soft);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    padding: 16px;
    color: var(--fv-showcase-popup-text);
}
.fv-showcase-booking-popup .fv-pending-claim-label {
    color: var(--fv-showcase-popup-muted);
    font-family: "Geist Mono", ui-monospace, "SF Mono", monospace;
    font-size: 10.5px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

/* ============================================================================
 * 9 · Logged-in booking confirmation (bookingCard) — contrast pass
 *   .booking-confirm-box.bookingCard > .booking-radius
 *     h2 "Επιβεβαίωση κράτησης"
 *     .studio-info { .logo, .content (h2 + address), .review-mini }
 *     .booking-card > .gray-box > .padding-card
 *       .class-name { strong, span }
 *       .left-side { .date-icon, .date-info (.book-date span) }
 *       .border-line
 *       .right-side > .studio-service-credits.fitcoin
 *     .studio-message > p (cancellation rule)
 *     .client-note { .shownote-area, .note-content }
 *     .booking-confirm-area > button "Ολοκλήρωση κράτησης"
 *
 *   Plus two warning-style notices that override the base palette in the
 *   live HTML and must be re-themed to keep contrast on dark templates:
 *     .packet-choice-summary    (yellow "Χρήση από πακέτο: …")
 *     .studio-policy-notice     (cream "Βραδινή πολιτική …")
 * ========================================================================== */

/* Outer container — let the popup bg show, drop the white default. */
.fv-showcase-booking-popup .booking-confirm-box.bookingCard,
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .booking-radius {
    background: transparent;
    color: var(--fv-showcase-popup-text);
}

/* Card title — wins specificity for both .booking-radius > h2 and the inner
   studio-info > h2. Uses popup title font + uppercase/case per template. */
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .booking-radius > h2 {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-title-font);
    font-size: clamp(22px, 2.6vw, 30px);
    font-weight: var(--fv-showcase-popup-title-weight);
    font-style: var(--fv-showcase-popup-title-italic);
    letter-spacing: var(--fv-showcase-popup-title-tracking);
    text-transform: var(--fv-showcase-popup-title-case);
    margin: 0 0 20px;
}

/* Studio identity row */
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-info {
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    padding: 16px;
    margin-bottom: 16px;
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: 14px;
    align-items: center;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-info .logo {
    width: 56px;
    height: 56px;
    border-radius: var(--fv-showcase-popup-radius-card);
    overflow: hidden;
    background: var(--fv-showcase-popup-card-soft);
    border: 1px solid var(--fv-showcase-popup-line);
    display: flex;
    align-items: center;
    justify-content: center;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-info .logo img,
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-info .logo svg {
    max-width: 100%;
    max-height: 100%;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-info .content h2 {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-size: 17px;
    font-weight: 800;
    margin: 0 0 4px;
    letter-spacing: 0;
    text-transform: none;
    font-style: normal;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-info .content address {
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 13px;
    font-style: normal;
    line-height: 1.45;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .review-mini .ratingValue {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 14px;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .review-mini svg,
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .review-mini i {
    color: var(--fv-showcase-popup-primary);
}

/* The main "card" wrapper with the day/time/credits + note + CTA */
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .gray-box {
    background: var(--fv-showcase-popup-card);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    padding: 18px;
    color: var(--fv-showcase-popup-text);
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .padding-card {
    color: var(--fv-showcase-popup-text);
    padding: 0;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .class-name {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .class-name strong {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 19px;
    letter-spacing: 0;
    text-transform: none;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .class-name span {
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 13.5px;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .left-side {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .left-side .date-icon {
    width: 40px;
    height: 40px;
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card-soft);
    color: var(--fv-showcase-popup-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    border: 1px solid var(--fv-showcase-popup-line);
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .date-info .book-date {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 700;
    font-size: 14px;
    line-height: 1.3;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .date-info .book-hour {
    color: var(--fv-showcase-popup-muted);
    font-weight: 600;
    font-size: 13px;
    margin-top: 2px;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .border-line {
    border-top: 1px dashed var(--fv-showcase-popup-line);
    margin: 12px 0;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .right-side {
    text-align: right;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-service-credits.fitcoin {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 17px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-service-credits.fitcoin svg,
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-service-credits.fitcoin img {
    width: 18px;
    height: 18px;
}

/* Cancellation rule sentence (e.g. "Δεν είναι δυνατή η ακύρωση...") */
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-message,
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .studio-message p {
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 12.5px;
    line-height: 1.55;
    margin: 14px 0 0;
}

/* "Προσθήκη σημείωσης" toggle + textarea */
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .client-note {
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: var(--fv-showcase-popup-radius-card);
    background: var(--fv-showcase-popup-card-soft);
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .shownote-area {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    color: var(--fv-showcase-popup-primary);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 700;
    font-size: 14px;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .shownote-area .studio-arrow-down i {
    color: var(--fv-showcase-popup-primary);
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .note-content textarea {
    width: 100%;
    margin-top: 10px;
    background: var(--fv-showcase-popup-card);
    color: var(--fv-showcase-popup-text);
    border: 1px solid var(--fv-showcase-popup-line);
    border-radius: 10px;
    padding: 10px 12px;
    font-family: var(--fv-showcase-popup-font);
    font-size: 14px;
    resize: vertical;
    min-height: 80px;
    outline: none;
}
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .note-content textarea:focus {
    border-color: var(--fv-showcase-popup-primary);
}
body.fv-showcase-template-c .fv-showcase-booking-popup .booking-confirm-box.bookingCard .client-note,
body.fv-showcase-template-g .fv-showcase-booking-popup .booking-confirm-box.bookingCard .client-note,
body.fv-showcase-template-c .fv-showcase-booking-popup .booking-confirm-box.bookingCard .note-content textarea,
body.fv-showcase-template-g .fv-showcase-booking-popup .booking-confirm-box.bookingCard .note-content textarea {
    border-radius: 4px;
}

/* Final CTA "Ολοκλήρωση κράτησης" */
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .booking-confirm-area button,
.fv-showcase-booking-popup .booking-confirm-box.bookingCard .booking-confirm-area .f-btn.primary-btn {
    width: 100%;
    margin-top: 18px;
    background: var(--fv-showcase-popup-primary);
    color: var(--fv-showcase-popup-primary-ink);
    border: 1px solid var(--fv-showcase-popup-primary);
    border-radius: 999px;
    padding: 16px 22px;
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 15px;
    cursor: pointer;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.18);
}
body.fv-showcase-template-c .fv-showcase-booking-popup .booking-confirm-box.bookingCard .booking-confirm-area button,
body.fv-showcase-template-g .fv-showcase-booking-popup .booking-confirm-box.bookingCard .booking-confirm-area button {
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* ─── Warning-style notices (package usage + night policy) ────────────────
 * Both ship with hardcoded cream/yellow palettes in the base CSS. On dark
 * themes they read as bright stickers that don't belong; re-skin to soft
 * primary-tinted cards so they still register as "informational" but match. */

/* .packet-choice-summary — "Χρήση από πακέτο: X" */
.fv-showcase-booking-popup .packet-choice-summary {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--fv-showcase-popup-line);
    border-left: 3px solid var(--fv-showcase-popup-primary);
    border-radius: var(--fv-showcase-popup-radius-card);
    padding: 12px 14px;
    color: var(--fv-showcase-popup-text);
    margin-bottom: 14px;
}
body.fv-showcase-template-c .fv-showcase-booking-popup .packet-choice-summary,
body.fv-showcase-template-g .fv-showcase-booking-popup .packet-choice-summary {
    border-radius: 4px;
}
.fv-showcase-booking-popup .packet-choice-summary .packet-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.fv-showcase-booking-popup .packet-choice-summary .packet-title-main {
    color: var(--fv-showcase-popup-primary);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 13.5px;
}
.fv-showcase-booking-popup .packet-choice-summary .packet-title-remaining {
    color: var(--fv-showcase-popup-muted);
    font-family: "Geist Mono", ui-monospace, "SF Mono", monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
/* Any free text inside packet summary (description, included-in-package
   info) goes muted so it stays readable. */
.fv-showcase-booking-popup .packet-choice-summary,
.fv-showcase-booking-popup .packet-choice-summary p,
.fv-showcase-booking-popup .packet-choice-summary span,
.fv-showcase-booking-popup .packet-choice-summary small {
    color: var(--fv-showcase-popup-text);
}
.fv-showcase-booking-popup .packet-choice-summary p,
.fv-showcase-booking-popup .packet-choice-summary small {
    color: var(--fv-showcase-popup-muted);
    font-size: 12.5px;
    line-height: 1.5;
}

/* .studio-policy-notice — cream "Βραδινή πολιτική..." card */
.fv-showcase-booking-popup .studio-policy-notice,
.fv-showcase-booking-popup .studio-policy-notice-section,
.fv-showcase-booking-popup .studio-policy-notice__body,
.fv-showcase-booking-popup .studio-policy-notice__content {
    background: rgba(255, 255, 255, 0.04);
    color: var(--fv-showcase-popup-text);
}
.fv-showcase-booking-popup .studio-policy-notice {
    border: 1px solid var(--fv-showcase-popup-line);
    border-left: 3px solid var(--fv-showcase-popup-primary);
    border-radius: var(--fv-showcase-popup-radius-card);
    padding: 14px;
    margin: 14px 0;
    overflow: hidden;
}
body.fv-showcase-template-c .fv-showcase-booking-popup .studio-policy-notice,
body.fv-showcase-template-g .fv-showcase-booking-popup .studio-policy-notice {
    border-radius: 4px;
}
.fv-showcase-booking-popup .studio-policy-notice__label,
.fv-showcase-booking-popup .studio-policy-notice__compact-trigger {
    color: var(--fv-showcase-popup-primary);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 13px;
    background: transparent;
    border: 0;
    padding: 0;
}
.fv-showcase-booking-popup .studio-policy-notice__title {
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-weight: 800;
    font-size: 14.5px;
    margin: 4px 0 6px;
    letter-spacing: 0;
    text-transform: none;
    font-style: normal;
}
.fv-showcase-booking-popup .studio-policy-notice__copy,
.fv-showcase-booking-popup .studio-policy-notice__meta {
    color: var(--fv-showcase-popup-muted);
    font-family: var(--fv-showcase-popup-font);
    font-size: 12.5px;
    line-height: 1.55;
    margin: 0 0 6px;
}
.fv-showcase-booking-popup .studio-policy-notice__chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 8px 0;
}
.fv-showcase-booking-popup .studio-policy-notice__chips span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--fv-showcase-popup-card-soft);
    border: 1px solid var(--fv-showcase-popup-line);
    color: var(--fv-showcase-popup-text);
    font-family: var(--fv-showcase-popup-font);
    font-size: 11.5px;
    font-weight: 600;
}
.fv-showcase-booking-popup .studio-policy-notice__icon {
    color: var(--fv-showcase-popup-primary);
}
/* Decorative night-scene illustration is opinionated cream — hide on the
   themed popups so it doesn't fight the palette. */
.fv-showcase-booking-popup .studio-policy-notice__scene {
    display: none;
}
