/* ------------------------------------------------------------------
   The Exhale Space - public website styles
   Palette (Lion Vision review, Sept 2026): soft cream #F8F0E7 (page base), powder pink #DDB7B8
   (buttons), sage green #B7C2B3 (footer, accents), dark brown #4a3a34 (testimonial text),
   ink #2f2624, muted #7c6f69. Fonts: Plus Jakarta Sans (headings), Montserrat (body).
   ------------------------------------------------------------------ */
@font-face { font-family: "Gallient"; src: url("/fonts/Gallient.ttf") format("truetype"); font-display: swap; }

:root {
    --ex-cream: #F8F0E7;
    --ex-cream-2: #f1e5da;
    --ex-off-white: #fbf7f2;
    --ex-rose: #DDB7B8;
    --ex-rose-deep: #cfa2a4;
    --ex-rose-soft: #eedcdb;
    --ex-dusk: #efe1de;
    --ex-sage: #B7C2B3;
    --ex-sage-deep: #9aa896;
    --ex-sage-dark: #6f7f6b;
    --ex-sage-soft: #e3e9e0;
    --ex-brown: #4a3a34;
    --ex-brown-soft: #9c8378;
    --ex-ink: #2f2624;
    --ex-muted: #7c6f69;
    --ex-line: #e6dbd2;
    --ex-white: #ffffff;
    --ex-radius: 22px;
    --ex-shadow: 0 14px 40px rgba(47, 38, 36, .07);
}

body.exhale { background: var(--ex-cream); color: var(--ex-ink); font-family: "Montserrat", system-ui, sans-serif; font-size: 15px; line-height: 1.7; }
.exhale h1, .exhale h2, .exhale h3, .exhale h4, .exhale .h1, .exhale .h2, .exhale .h3 { font-family: "Plus Jakarta Sans", "Segoe UI", sans-serif; font-weight: 700; letter-spacing: .005em; color: var(--ex-ink); }
.exhale a { color: var(--ex-ink); text-decoration: none; }
.exhale a:hover { color: var(--ex-rose-deep); }
/* Less empty space on the sides: the content stretches almost to the edges on wide screens. */
.exhale .container { max-width: min(1560px, 100% - 3rem); padding-left: 0; padding-right: 0; }
@media (max-width: 575.98px) { .exhale .container { max-width: calc(100% - 1.6rem); } }
.ex-eyebrow { font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--ex-muted); font-weight: 600; display: inline-flex; align-items: center; gap: .8rem; }
.ex-eyebrow::after { content: ""; width: 56px; height: 1px; background: #cfc5bd; }
.ex-eyebrow.center::after { display: none; }
.ex-section { padding: 5rem 0; }
.ex-title { font-size: clamp(2rem, 3.4vw, 2.8rem); line-height: 1.18; letter-spacing: .01em; }
.ex-lead { color: var(--ex-muted); max-width: 44rem; }
.ex-soft-brown { color: var(--ex-brown-soft); }

/* Buttons */
.ex-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: 999px; padding: .8rem 1.9rem; font-weight: 500; letter-spacing: .12em; font-size: .8rem; text-transform: none; border: 1px solid transparent; transition: all .2s ease; white-space: nowrap; }
.exhale .ex-btn-rose { background: var(--ex-rose); color: var(--ex-ink); }
.exhale .ex-btn-rose:hover { background: var(--ex-rose-deep); color: var(--ex-ink); transform: translateY(-1px); }
.exhale .ex-btn-sage { background: var(--ex-sage-dark); color: #fff; }
.exhale .ex-btn-sage:hover { background: #5e6d5a; color: #fff; transform: translateY(-1px); }
.exhale .ex-btn-outline { border-color: rgba(255, 255, 255, .8); color: #fff; }
.exhale .ex-btn-outline:hover { background: rgba(255, 255, 255, .15); color: #fff; }
.exhale .ex-btn-dark { border-color: var(--ex-ink); color: var(--ex-ink); background: transparent; }
.exhale .ex-btn-dark:hover { background: var(--ex-ink); color: #fff; }
.exhale .ex-btn-white { background: #fff; color: var(--ex-ink); box-shadow: var(--ex-shadow); }
.exhale .ex-btn-white:hover { background: #fff; color: var(--ex-rose-deep); }
.exhale button.ex-btn { cursor: pointer; }
.ex-btn-lg { padding: 1rem 2.4rem; font-size: .85rem; }
.ex-btn-block { width: 100%; }
@media (max-width: 420px) { .ex-btn { white-space: normal; text-align: center; } .ex-btn-lg { padding: 1rem 1.6rem; } }

/* Header - floating pill; the menu sits on the right, next to "Get In Touch" */
.ex-header { position: sticky; top: 14px; z-index: 1030; padding: 0 14px; }
.ex-header-inner { max-width: min(1560px, 100% - 1rem); margin: 0 auto; background: rgba(251, 247, 242, .94); backdrop-filter: blur(14px); border-radius: 999px; box-shadow: 0 10px 30px rgba(47, 38, 36, .08); display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem 1.1rem .55rem 1.8rem; transition: padding .2s ease; }
body.scrolled .ex-header-inner { padding-top: .35rem; padding-bottom: .35rem; }
.ex-logo { display: inline-flex; align-items: center; color: var(--ex-ink); }
.ex-logo:hover { color: var(--ex-ink); }
.ex-logo-svg { display: block; height: 58px; width: auto; transition: height .2s ease; }
body.scrolled .ex-logo-svg { height: 48px; }
.ex-header-right { display: flex; align-items: center; gap: 1.6rem; margin-left: auto; }
.ex-nav { display: flex; gap: 1.8rem; align-items: center; }
.ex-nav > a, .ex-nav .ex-dd > a { font-size: .92rem; font-weight: 500; padding-bottom: .15rem; border-bottom: 1px solid transparent; display: inline-flex; align-items: center; gap: .3rem; }
.ex-nav > a.active, .ex-nav > a:hover, .ex-nav .ex-dd > a.active, .ex-nav .ex-dd:hover > a { border-bottom-color: var(--ex-ink); color: var(--ex-ink); }
.ex-dd { position: relative; }
.ex-dd-menu { position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(6px); min-width: 320px; background: #fff; border-radius: 18px; box-shadow: 0 20px 50px rgba(47, 38, 36, .14); padding: .6rem; opacity: 0; visibility: hidden; transition: all .18s ease; z-index: 5; }
.ex-dd-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.ex-dd:hover .ex-dd-menu, .ex-dd:focus-within .ex-dd-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.ex-dd-menu a { display: block; padding: .6rem .9rem; border-radius: 12px; border: 0 !important; }
.ex-dd-menu a:hover { background: var(--ex-cream); }
.ex-dd-menu a strong { display: block; font-weight: 600; font-size: .92rem; }
.ex-dd-menu a small { display: block; color: var(--ex-muted); font-size: .78rem; }
.ex-dd-menu a .ex-tag { float: right; margin-top: .15rem; background: var(--ex-rose-soft); color: var(--ex-brown); }
.ex-header-actions { display: flex; align-items: center; gap: .6rem; }
.ex-icon-btn { width: 44px; height: 44px; border-radius: 50%; background: #fff; box-shadow: 0 4px 14px rgba(47, 38, 36, .08); display: inline-flex; align-items: center; justify-content: center; color: var(--ex-ink); border: 0; font-size: 1.05rem; }
.ex-icon-btn:hover { color: var(--ex-rose-deep); }
@media (max-width: 374.98px) {   /* smallest phones (320px): logo and the three round buttons must fit on one line */
    .ex-header { padding: 0 8px; }
    .ex-header-inner { padding: .45rem .6rem .45rem 1rem; gap: .5rem; }
    .ex-logo-svg, body.scrolled .ex-logo-svg { height: 44px; }
    .ex-header-actions { gap: .35rem; }
    .ex-icon-btn { width: 38px; height: 38px; }
}
.ex-mobile-nav { max-width: min(1560px, 100% - 1rem); margin: .5rem auto 0; background: #fff; border-radius: 22px; box-shadow: var(--ex-shadow); padding: 1rem 1.4rem; display: none; flex-direction: column; gap: .8rem; }
.ex-mobile-nav.show { display: flex; }
.ex-mobile-nav a { font-weight: 500; }
.ex-mobile-nav .sub { padding-left: 1rem; font-size: .9rem; color: var(--ex-muted); font-weight: 400; }

/* Search overlay */
.ex-search .modal-content { border: 0; border-radius: 22px; background: var(--ex-off-white); }
.ex-search .form-control { border-radius: 999px; padding: .9rem 1.4rem; font-size: 1.05rem; }
.ex-search-results a { display: block; padding: .7rem .9rem; border-radius: 12px; }
.ex-search-results a:hover { background: #fff; }
.ex-search-results small { display: block; color: var(--ex-muted); }

/* Hero - full-width video (or photo) banner */
.ex-hero { position: relative; margin-top: -82px; min-height: min(92vh, 820px); display: flex; align-items: center; overflow: hidden; background: #2b2320; color: #fff; }
.ex-hero-media { position: absolute; inset: 0; }
.ex-hero-media video, .ex-hero-media .photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ex-hero-grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; padding: 14px; }
.ex-hero-grid > div { border-radius: 8px; background-size: cover; background-position: center; opacity: .6; }
.ex-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 14, 12, .35), rgba(20, 14, 12, .55)); z-index: 1; }
.ex-hero-content { position: relative; z-index: 2; text-align: center; padding: 9rem 1rem 6rem; width: 100%; }
.ex-hero h1 { color: #fff; font-size: clamp(2.3rem, 5.4vw, 4.2rem); font-weight: 700; margin-bottom: .6rem; letter-spacing: .01em; }
.ex-hero p { color: rgba(255, 255, 255, .88); font-size: 1.05rem; letter-spacing: .02em; }
.ex-hero .quote { font-style: normal; opacity: .9; }
.ex-hero-actions { display: flex; gap: .9rem; justify-content: center; flex-wrap: wrap; margin-top: 1.6rem; }

/* Photo placeholders (used until real photos are dropped in) */
.ph { position: relative; overflow: hidden; background: linear-gradient(135deg, #ebdfd7 0%, #dcc8bf 50%, #cdb3ac 100%); }
.ph::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .35), transparent 55%), radial-gradient(circle at 75% 70%, rgba(255, 255, 255, .2), transparent 50%); }
.ph i { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 2.6rem; color: rgba(255, 255, 255, .8); z-index: 1; }
.ph.dark { background: linear-gradient(135deg, #3a2f2b, #6d5750 60%, #8f746c); }
.photo { background-size: cover; background-position: center; }

/* Testimonials - off-white cards with dark brown text, side scroll */
.ex-stories { background: var(--ex-dusk); padding: 4.5rem 0; }
.ex-carousel { position: relative; }
.ex-carousel-track { display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: .25rem .25rem 1rem; margin: -.25rem; scrollbar-width: none; -ms-overflow-style: none; }
.ex-carousel-track::-webkit-scrollbar { display: none; }
.ex-carousel-track:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: var(--ex-radius); }
.ex-carousel-track > .ex-story { flex: 0 0 calc(25% - .94rem); scroll-snap-align: start; }
.ex-carousel-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 42px; height: 42px; border-radius: 50%; border: 0; background: #fff; color: var(--ex-ink); box-shadow: 0 6px 18px rgba(47, 38, 36, .16); display: grid; place-items: center; cursor: pointer; font-size: 1.05rem; }
.ex-carousel-nav:hover { background: var(--ex-rose); }
.ex-carousel-nav.prev { left: -20px; }
.ex-carousel-nav.next { right: -20px; }
.ex-carousel-nav[disabled] { opacity: .35; cursor: default; }
.ex-carousel-dots { display: flex; justify-content: center; gap: .4rem; margin-top: .5rem; }
.ex-carousel-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: rgba(47, 38, 36, .25); cursor: pointer; transition: width .2s ease, background .2s ease; }
.ex-carousel-dots button.active { width: 22px; border-radius: 999px; background: var(--ex-brown); }
@media (max-width: 1199.98px) { .ex-carousel-track > .ex-story { flex-basis: calc(33.333% - .84rem); } }
@media (max-width: 991.98px) { .ex-carousel-track > .ex-story { flex-basis: calc(50% - .63rem); } .ex-carousel-nav.prev { left: -6px; } .ex-carousel-nav.next { right: -6px; } }
@media (max-width: 575.98px) { .ex-carousel-track > .ex-story { flex-basis: 86%; } }
.ex-story { background: var(--ex-off-white); border-radius: var(--ex-radius); padding: 1.8rem; height: auto; display: flex; flex-direction: column; color: var(--ex-brown); }
.ex-story .stars { color: var(--ex-brown-soft); letter-spacing: .1em; font-size: .8rem; margin-bottom: .8rem; }
.ex-story p { color: var(--ex-brown); font-size: .9rem; font-weight: 400; flex-grow: 1; margin-bottom: .4rem; }
.ex-story .more { font-size: .78rem; color: var(--ex-brown-soft); text-decoration: underline; background: none; border: 0; padding: 0; align-self: flex-start; }
.ex-story .who { display: flex; align-items: center; gap: .8rem; border-top: 1px solid var(--ex-line); padding-top: 1rem; margin-top: 1rem; }
.ex-story .who i { width: 34px; height: 34px; border-radius: 50%; background: var(--ex-rose-soft); color: var(--ex-rose-deep); display: inline-flex; align-items: center; justify-content: center; }
.ex-story .who-photo { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.ex-story .who strong { color: var(--ex-brown); font-weight: 600; }
.ex-story .who small { display: block; color: var(--ex-brown-soft); }

/* Programme USPs - auto-advancing slider (one slide = text card + photo) */
.ex-usp-head h2 { letter-spacing: .02em; word-spacing: .12em; }
.ex-usp { position: relative; }
.ex-usp-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; gap: 1.5rem; }
.ex-usp-track::-webkit-scrollbar { display: none; }
.ex-usp-slide { flex: 0 0 100%; scroll-snap-align: start; display: grid; grid-template-columns: 5fr 7fr; gap: 1.5rem; }
.ex-usp-card { background: var(--ex-cream-2); border-radius: var(--ex-radius); padding: 2.6rem; display: flex; flex-direction: column; justify-content: center; }
.ex-usp-card h3 { font-size: clamp(1.4rem, 2vw, 1.9rem); margin-bottom: 1rem; }
.ex-usp-card p { color: var(--ex-muted); }
.ex-usp-img { border-radius: var(--ex-radius); min-height: 420px; }
.ex-usp .ex-carousel-nav.prev { left: -20px; }
.ex-usp .ex-carousel-nav.next { right: -20px; }
@media (max-width: 991.98px) { .ex-usp-slide { grid-template-columns: 1fr; } .ex-usp-img { min-height: 260px; order: -1; } .ex-usp .ex-carousel-nav.prev { left: -6px; } .ex-usp .ex-carousel-nav.next { right: -6px; } }

/* Program cards - bigger tiles */
.ex-program { background: #fff; border-radius: var(--ex-radius); padding: 1.4rem; box-shadow: var(--ex-shadow); height: 100%; display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.ex-program:hover { transform: translateY(-5px); box-shadow: 0 22px 50px rgba(47, 38, 36, .12); }
.ex-program-img { border-radius: 16px; aspect-ratio: 4 / 3.2; }
.ex-program h3 { font-size: 1.3rem; font-weight: 700; margin: 1.2rem 0 .5rem; }
.ex-program h3 small { display: block; font-size: .8rem; font-weight: 500; color: var(--ex-muted); margin-top: .2rem; }
.ex-program p { color: var(--ex-muted); font-size: .92rem; flex-grow: 1; }
.ex-explore { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; display: inline-flex; align-items: center; gap: .6rem; }

/* How it works - four numbered cards on a soft band */
.ex-how { background: var(--ex-off-white); position: relative; overflow: hidden; }
.ex-how .ex-eyebrow { gap: .8rem; }
.ex-how .ex-eyebrow::before { content: ""; width: 56px; height: 1px; background: #cfc5bd; }
.ex-how-card { background: #fff; border-radius: 20px; padding: 1.8rem 1.4rem 1.6rem; box-shadow: var(--ex-shadow); text-align: center; height: 100%; position: relative; }
.ex-how-num { position: absolute; left: 1.1rem; top: 1rem; font-size: .72rem; font-weight: 700; color: var(--ex-sage-dark); background: var(--ex-sage-soft); border-radius: 8px; padding: .15rem .5rem; }
.ex-how-num.pink { color: var(--ex-rose-deep); background: var(--ex-rose-soft); }
.ex-how-ico { width: 82px; height: 82px; border-radius: 50%; margin: .6rem auto 1rem; display: grid; place-items: center; font-size: 2rem; color: var(--ex-sage-dark); background: var(--ex-sage-soft); }
.ex-how-ico.pink { color: var(--ex-rose-deep); background: var(--ex-rose-soft); }
.ex-how-card h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: .4rem; }
.ex-how-card p { color: var(--ex-muted); font-size: .88rem; margin: 0; }
.ex-leaf { position: absolute; width: 140px; opacity: .35; color: var(--ex-sage-dark); pointer-events: none; }
.ex-leaf.tr { right: 1rem; top: .5rem; transform: rotate(20deg); }
.ex-leaf.bl { left: 1rem; bottom: 0; transform: rotate(-150deg); }

/* Moving photo strip (marquee) with the two calls to action */
.ex-marquee { background: #2b2320; color: #fff; padding: 4rem 0 4.5rem; overflow: hidden; position: relative; }
.ex-marquee h2 { color: #fff; }
.ex-marquee-rail { display: flex; gap: 1rem; width: max-content; animation: ex-scroll 45s linear infinite; margin: 0 0 2.5rem; }
.ex-marquee:hover .ex-marquee-rail { animation-play-state: paused; }
.ex-marquee-rail > div { width: 260px; height: 340px; border-radius: 16px; flex: none; opacity: .85; }
.ex-marquee-rail > div:nth-child(odd) { transform: translateY(24px); }
@keyframes ex-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ex-marquee-rail { animation: none; } }
.ex-marquee .ex-btn-outline { border-color: rgba(255, 255, 255, .8); }

/* Values / story */
.ex-value i { font-size: 1.4rem; color: var(--ex-ink); display: block; margin-bottom: .6rem; }
.ex-founder { background: #fff; border-radius: var(--ex-radius); padding: 2rem; box-shadow: var(--ex-shadow); }
.ex-founder h3 { font-size: 1.3rem; font-weight: 600; margin-bottom: .1rem; }
.ex-founder .role { font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--ex-muted); margin-bottom: 1rem; }
.ex-founder p { color: var(--ex-muted); }

/* Program detail page - larger rail tiles and numbers */
.ex-rail a { display: flex; align-items: center; gap: .9rem; margin-bottom: 1.4rem; color: var(--ex-muted); }
.ex-rail .num { font-family: "Plus Jakarta Sans", sans-serif; font-size: 2.8rem; font-weight: 700; color: #d8ccc4; width: 44px; line-height: 1; }
.ex-rail .thumb { width: 96px; height: 128px; border-radius: 14px; position: relative; overflow: hidden; flex-shrink: 0; filter: grayscale(.2); background-position: center top; }
.ex-rail .thumb::after { content: ""; position: absolute; inset: 40% 0 0 0; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .7)); }
.ex-rail .thumb .thumb-label { position: absolute; left: 7px; right: 7px; bottom: 7px; z-index: 1; color: #fff; font-size: .62rem; font-weight: 700; text-transform: uppercase; line-height: 1.2; letter-spacing: .02em; text-shadow: 0 1px 3px rgba(0, 0, 0, .6); }
.ex-feature-img.photo, .ex-program-img.photo, .ex-detail-hero .photo, .ex-usp-img.photo { background-position: center 22%; }
.ex-rail a.active .num { color: var(--ex-ink); }
.ex-rail a.active .thumb { outline: 2px solid var(--ex-ink); outline-offset: 2px; filter: none; }
.ex-detail-hero { position: relative; border-radius: var(--ex-radius); overflow: hidden; min-height: 540px; background: #e9dcd4; padding: 2.2rem; box-shadow: var(--ex-shadow); }
.ex-detail-hero .photo, .ex-detail-hero .ph { position: absolute; inset: 0; }
.ex-detail-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(250, 244, 240, .94) 0%, rgba(250, 244, 240, .78) 22%, rgba(250, 244, 240, .25) 45%, rgba(38, 30, 26, .18) 75%, rgba(38, 30, 26, .4) 100%); }
.ex-detail-hero .copy { position: relative; z-index: 2; }
.ex-detail-hero h1 { font-size: clamp(1.9rem, 3vw, 2.5rem); }
.ex-detail-hero .sub { color: #4a4340; font-size: .95rem; }
.ex-detail-cta { position: absolute; left: 2rem; right: 2rem; bottom: 2rem; z-index: 3; display: flex; gap: .8rem; flex-wrap: wrap; align-items: flex-start; }
.ex-launch { position: absolute; left: 1.2rem; right: 1.2rem; bottom: 1.2rem; z-index: 2; background: #fff; border-radius: 16px; padding: 1rem 1.2rem; display: flex; align-items: center; gap: 1rem; box-shadow: var(--ex-shadow); }
.ex-launch .ico { width: 40px; height: 40px; border-radius: 50%; background: var(--ex-rose-soft); color: var(--ex-rose-deep); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ex-launch small { color: var(--ex-muted); display: block; }
/* Enroll now -> plan picker (3 / 6 / 12 months) */
.ex-plans { position: relative; }
.ex-plans-menu { position: absolute; left: 0; top: calc(100% + 10px); min-width: 330px; background: #2f2624; color: #fff; border-radius: 18px; padding: .4rem; box-shadow: 0 20px 50px rgba(0, 0, 0, .3); display: none; z-index: 10; }
.ex-plans.open .ex-plans-menu { display: block; }
.ex-plan { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 1rem; border-radius: 14px; color: #fff; }
.ex-plan:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.ex-plan + .ex-plan { border-top: 1px solid rgba(255, 255, 255, .08); }
.ex-plan .name { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 700; font-size: 1.05rem; }
.ex-plan .badge-offer { display: inline-block; background: var(--ex-rose-deep); color: #2f2624; border-radius: 999px; font-size: .68rem; font-weight: 700; padding: .15rem .6rem; margin-top: .25rem; }
.ex-plan .base { color: rgba(255, 255, 255, .55); text-decoration: line-through; font-size: .85rem; display: block; }
.ex-plan .price { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.25rem; color: var(--ex-rose); display: block; line-height: 1.1; }
.ex-plan .save { font-size: .74rem; color: #9fd8ae; display: block; }
.ex-panel { background: #fff; border-radius: var(--ex-radius); padding: 2rem; box-shadow: var(--ex-shadow); }
.ex-panel h2 { font-size: 1.3rem; font-weight: 600; margin-bottom: 1rem; }
.ex-panel .ex-tagline { font-size: .9rem; color: var(--ex-muted); font-weight: 500; margin-bottom: 1.1rem; display: block; }
.ex-panel hr { border-color: #efe6e0; opacity: 1; margin: 1.6rem 0; }
.ex-panel ul { padding-left: 1.1rem; color: var(--ex-muted); }
.ex-gain { background: var(--ex-cream); border-radius: 14px; padding: .9rem 1.1rem; margin-bottom: .6rem; color: var(--ex-muted); font-size: .93rem; }
.ex-gain strong { color: var(--ex-ink); font-weight: 600; }
.ex-gift { background: #fff; border-radius: var(--ex-radius); padding: 1.4rem 1.6rem; box-shadow: var(--ex-shadow); }
.ex-gift h4 { font-size: 1rem; font-weight: 600; display: flex; align-items: center; gap: .6rem; }
.ex-gift h4 .ico { width: 34px; height: 34px; border-radius: 50%; background: var(--ex-rose-soft); color: var(--ex-rose-deep); display: inline-grid; place-items: center; font-size: 1rem; }

/* Contact / Get in touch */
.ex-contact-card { background: #fff; border-radius: var(--ex-radius); padding: 2rem; box-shadow: var(--ex-shadow); height: 100%; }
.ex-contact-card .lbl { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ex-muted); font-weight: 600; margin-bottom: .3rem; }
.ex-contact-card .row-item { padding: 1rem 0; border-bottom: 1px solid #efe6e0; }
.ex-contact-card .row-item:last-child { border-bottom: 0; }
.ex-form { background: var(--ex-cream); border-radius: 18px; padding: 1.5rem; }
.exhale .form-control, .exhale .form-select { border-radius: 10px; border-color: #e3d9d2; padding: .75rem .9rem; background: #fff; font-size: .95rem; }
.exhale .form-control:focus, .exhale .form-select:focus { border-color: var(--ex-rose-deep); box-shadow: 0 0 0 .2rem rgba(221, 183, 184, .3); }
.exhale .form-label { font-weight: 600; font-size: .85rem; }
.exhale .form-check-input:checked { background-color: var(--ex-sage-dark); border-color: var(--ex-sage-dark); }

/* CTA band */
.ex-cta { background: #2b2320; color: #fff; border-radius: 28px; padding: 3.5rem 2rem; text-align: center; }
.ex-cta h2 { color: #fff; }

/* Auth cards */
.ex-auth { max-width: 460px; margin: 4rem auto; background: #fff; border-radius: var(--ex-radius); padding: 2.5rem; box-shadow: var(--ex-shadow); }
.ex-auth .otp-input { letter-spacing: .5rem; font-size: 1.6rem; text-align: center; }
.ex-auth .btn-link { color: var(--ex-ink); text-decoration: underline; text-underline-offset: 3px; }
.ex-auth .btn-link:disabled { color: var(--ex-muted); opacity: 1; }
.exhale .nav-pills { background: var(--ex-cream); border-radius: 999px; padding: .25rem; gap: .25rem; }
.exhale .nav-pills .nav-link { border-radius: 999px; color: var(--ex-muted); font-size: .88rem; font-weight: 500; padding: .5rem 1rem; }
.exhale .nav-pills .nav-link:hover { color: var(--ex-ink); }
.exhale .nav-pills .nav-link.active { background: var(--ex-rose); color: var(--ex-ink); }
.exhale .input-group-text { border-color: #e3d9d2; border-radius: 10px 0 0 10px; }
.exhale .form-text { color: var(--ex-muted); }

/* Announcements */
.ex-announce { background: #fff; border-left: 4px solid var(--ex-rose); border-radius: 14px; padding: .9rem 1.2rem; box-shadow: var(--ex-shadow); }

/* Footer - soft sage */
.ex-footer { background: var(--ex-sage); padding: 4rem 0 2rem; margin-top: 4rem; color: var(--ex-ink); }
.ex-footer a { display: block; margin-bottom: .5rem; color: #33302d; font-size: .92rem; }
.ex-footer a:hover { color: #fff; }
.ex-footer-title { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; margin-bottom: .9rem; color: #33302d; }
.ex-logo-footer { align-items: flex-start; }
.ex-logo-footer .ex-logo-svg { height: 68px; }
.ex-footer .by { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 600; margin-top: .8rem; color: #33302d; }
.ex-footer-bottom { border-top: 1px solid rgba(47, 38, 36, .15); margin-top: 3rem; padding-top: 1.2rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; font-size: .82rem; color: #4a4744; }
.ex-footer-bottom a { display: inline; margin: 0; color: #4a4744; }

/* Utility */
.ex-cream-2 { background: var(--ex-cream-2); }
.ex-muted { color: var(--ex-muted); }
.ex-tag { display: inline-block; background: var(--ex-rose-soft); color: var(--ex-brown); border-radius: 999px; padding: .2rem .7rem; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.ex-page-head { padding: 3rem 0 1rem; }

@media (max-width: 991.98px) {
    .ex-hero { margin-top: -74px; min-height: 80vh; }
    .ex-hero-grid { grid-template-columns: repeat(2, 1fr); }
    .ex-detail-hero { min-height: 440px; }
    .ex-section { padding: 3.5rem 0; }
}
@media (max-width: 575.98px) {
    .ex-header-inner { padding-left: 1rem; }
    .ex-logo-svg { height: 42px; }
    .ex-detail-cta { flex-direction: column; }
    .ex-plans-menu { min-width: 0; left: 0; right: 0; }
}

/* Registration popup (free trial sessions) */
.ex-popup .modal-dialog { max-width: 640px; }
.ex-popup .modal-content { max-height: calc(100vh - 3rem); overflow-y: auto; }
.ex-popup-card { border: 0; border-radius: 26px; overflow: hidden; box-shadow: 0 30px 80px rgba(47, 38, 36, .25); background: #fff; }
.ex-popup-body { padding: 2.2rem 2.2rem 1.8rem; }
.ex-popup-eyebrow { font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; color: var(--ex-sage-dark); font-weight: 700; padding-right: 2.6rem; }   /* clear of the close button */
.ex-popup-title { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.7rem; letter-spacing: -.01em; margin-bottom: 1.2rem; }
.ex-popup-close { position: absolute; top: .9rem; right: .9rem; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; box-shadow: 0 4px 14px rgba(47, 38, 36, .12); color: var(--ex-ink); z-index: 2; }
.ex-popup .form-label { font-weight: 600; font-size: .9rem; margin-bottom: .3rem; }
.ex-popup .form-label small { font-weight: 400; color: var(--ex-muted); }
.ex-popup .form-control, .ex-popup .form-select { border-radius: 12px; padding: .8rem 1rem; border-color: #e3dbd4; }
.ex-popup .form-control:focus, .ex-popup .form-select:focus { border-color: var(--ex-rose-deep); box-shadow: 0 0 0 .2rem rgba(221, 183, 184, .35); }
.ex-popup-later { display: block; width: 100%; background: none; border: 0; color: var(--ex-muted); font-size: .8rem; margin-top: .7rem; text-decoration: underline; }
.ex-popup-check { width: 64px; height: 64px; border-radius: 50%; background: var(--ex-rose-soft); color: var(--ex-rose-deep); display: grid; place-items: center; font-size: 1.8rem; margin: 0 auto 1rem; }
/* Custom programme picker (shows "Launching soon" pills) */
.ex-pick { position: relative; }
.ex-pick-btn { width: 100%; text-align: left; border: 1px solid #e3dbd4; border-radius: 12px; padding: .8rem 1rem; background: #fff; display: flex; justify-content: space-between; align-items: center; color: var(--ex-muted); }
.ex-pick-btn.has { color: var(--ex-ink); }
/* The list opens in-flow (not floating) so the popup grows with it and nothing is cut off. */
.ex-pick-menu { margin-top: .4rem; background: #fff; border: 1px solid #e3dbd4; border-radius: 14px; box-shadow: 0 10px 30px rgba(47, 38, 36, .1); display: none; overflow: hidden; }
.ex-pick.open .ex-pick-menu { display: block; }
.ex-pick-menu button { width: 100%; text-align: left; border: 0; background: none; padding: .8rem 1rem; display: flex; justify-content: space-between; align-items: center; gap: .8rem; }
.ex-pick-menu button + button { border-top: 1px solid #f1e9e4; }
.ex-pick-menu button:hover { background: var(--ex-cream); }
.ex-pick-menu strong { display: block; font-weight: 600; }
.ex-pick-menu small { color: var(--ex-rose-deep); }
.ex-pick-menu .soon { background: var(--ex-rose-soft); color: var(--ex-brown); border-radius: 8px; font-size: .68rem; font-weight: 700; padding: .25rem .6rem; letter-spacing: .04em; white-space: nowrap; }
.ex-choice { display: flex; flex-wrap: wrap; gap: .5rem; }
.ex-choice label { border: 1px solid #e3dbd4; border-radius: 999px; padding: .45rem 1rem; cursor: pointer; font-size: .88rem; }
.ex-choice input { display: none; }
.ex-choice input:checked + span { color: var(--ex-ink); font-weight: 600; }
.ex-choice label:has(input:checked) { background: var(--ex-rose-soft); border-color: var(--ex-rose-deep); }
/* "Consult your doctor" card */
.ex-doctor { background: var(--ex-off-white); border-radius: 22px; padding: 2.4rem 2rem; text-align: center; position: relative; overflow: hidden; }
.ex-doctor .heart { width: 72px; height: 72px; border-radius: 50%; background: var(--ex-rose-soft); color: var(--ex-sage-dark); display: grid; place-items: center; font-size: 1.8rem; margin: 0 auto 1.2rem; }
.ex-doctor label { display: flex; gap: .8rem; align-items: flex-start; text-align: left; font-size: 1.05rem; max-width: 420px; margin: 0 auto 1.5rem; }
.ex-doctor .form-check-input { width: 1.4rem; height: 1.4rem; flex: none; margin-top: .2rem; border-color: var(--ex-sage-dark); }
@media (max-width: 575.98px) { .ex-popup-body { padding: 1.6rem 1.3rem 1.3rem; } }

/* Gift cards page */
.ex-gift-card { border-radius: 22px; background: #f6efe4; border: 1px solid #e6dccd; padding: 2.2rem 1.6rem; text-align: center; position: relative; box-shadow: var(--ex-shadow); aspect-ratio: 1.05; display: flex; flex-direction: column; justify-content: center; }
.ex-gift-card::before { content: ""; position: absolute; inset: 12px; border: 1px solid #8f8172; border-radius: 12px; pointer-events: none; }
.ex-gift-card .lbl { font-family: Georgia, "Times New Roman", serif; font-style: italic; letter-spacing: .05em; font-size: .9rem; color: #5c4f45; }
.ex-gift-card .lbl.caps { font-style: normal; font-size: .68rem; letter-spacing: .3em; text-transform: uppercase; }
.ex-gift-card .name { font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.6rem, 2.2vw, 2.3rem); font-weight: 400; line-height: 1.15; margin: 1rem 0; color: #2f2624; }
.ex-gift-card .brand { font-size: .9rem; letter-spacing: .12em; color: #2f2624; }
.ex-gift-card .brand small { display: block; font-size: .62rem; letter-spacing: .2em; color: #8f8172; text-transform: uppercase; margin-top: .2rem; }
.ex-gift-card.rose { background: #f8ebe9; }
.ex-gift-card.sage { background: #eef1ea; }
.ex-gift-preview { max-width: 380px; margin: 0 auto; }
.ex-tabs { display: flex; gap: .4rem; border-bottom: 1px solid var(--ex-line); }
.ex-tabs button { border: 0; background: none; padding: .8rem 1.2rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--ex-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.ex-tabs button.on { color: var(--ex-ink); border-bottom-color: var(--ex-sage-dark); }
.ex-code-form { display: flex; gap: .6rem; max-width: 520px; margin: 1.2rem auto 0; }
.ex-code-form .form-control { border-radius: 999px; letter-spacing: .12em; font-weight: 600; text-align: center; border-color: #e3dbd4; }
.ex-code-form .form-control:focus { border-color: var(--ex-rose-deep); box-shadow: 0 0 0 .2rem rgba(221, 183, 184, .35); }
.ex-code-result { border-radius: 18px; padding: 1.1rem 1.3rem; display: inline-block; min-width: 320px; }
.ex-code-result.good { background: #eef6f1; color: #2f6752; }
.ex-code-result.bad { background: #fbeeed; color: #9c3f3a; }
.ex-code-result .code { font-family: Consolas, Menlo, monospace; font-size: 1.4rem; letter-spacing: .14em; font-weight: 700; }
@media (max-width: 575.98px) { .ex-code-form { flex-direction: column; } .ex-code-result { min-width: 0; width: 100%; } }

/* FAQs + legal pages */
.ex-faq-nav a { display: inline-block; border-radius: 999px; padding: .4rem 1rem; font-size: .85rem; background: #fff; box-shadow: var(--ex-shadow); margin: 0 .4rem .4rem 0; }
.ex-faq-nav a.active { background: var(--ex-sage-dark); color: #fff; }
.exhale .accordion-item { border: 0; background: #fff; border-radius: 16px !important; margin-bottom: .6rem; box-shadow: var(--ex-shadow); overflow: hidden; }
.exhale .accordion-button { background: #fff; font-weight: 600; font-family: "Plus Jakarta Sans", sans-serif; box-shadow: none; padding: 1.1rem 1.3rem; }
.exhale .accordion-button:not(.collapsed) { color: var(--ex-ink); background: var(--ex-off-white); }
.exhale .accordion-button:focus { box-shadow: none; }
.exhale .accordion-body { color: var(--ex-muted); padding: .2rem 1.3rem 1.3rem; }
.ex-prose { max-width: 860px; color: var(--ex-muted); }
.ex-prose h2 { font-size: 1.15rem; margin: 2rem 0 .6rem; color: var(--ex-ink); }
.ex-prose ul { padding-left: 1.2rem; }

/* Blog - The Exhale Journal */
.ex-post { background: #fff; border-radius: 20px; overflow: hidden; box-shadow: var(--ex-shadow); height: 100%; display: flex; flex-direction: column; transition: transform .2s ease; }
.ex-post:hover { transform: translateY(-4px); }
.ex-post-img { aspect-ratio: 4 / 3; position: relative; }
.ex-post-tags { position: absolute; left: .8rem; top: .8rem; display: flex; gap: .3rem; }
.ex-post-tags span { background: rgba(255, 255, 255, .92); border-radius: 999px; padding: .15rem .6rem; font-size: .68rem; font-weight: 600; }
.ex-post-body { padding: 1.3rem 1.4rem 1.5rem; display: flex; flex-direction: column; flex-grow: 1; }
.ex-post-body h3 { font-size: 1.05rem; font-weight: 700; line-height: 1.4; }
.ex-post-body p { color: var(--ex-muted); font-size: .88rem; flex-grow: 1; }
.ex-article { max-width: 780px; margin: 0 auto; }
.ex-article-hero { border-radius: 24px; aspect-ratio: 16 / 8; margin-bottom: 2rem; }
.ex-article-body { font-size: 1.02rem; color: #3f3532; line-height: 1.85; }
.ex-article-body h2 { font-size: 1.35rem; margin: 2.2rem 0 .8rem; }
.ex-article-body h3 { font-size: 1.1rem; margin: 1.6rem 0 .5rem; }
.ex-article-body p { margin-bottom: 1rem; }
.ex-article-body hr { border: 0; text-align: center; margin: 2rem 0; }
.ex-article-body hr::after { content: "\2014 \2014 \2014"; color: var(--ex-rose-deep); letter-spacing: .3em; }
.ex-article-body ul, .ex-article-body ol { padding-left: 1.3rem; margin-bottom: 1rem; }

/* Uploaded logo (Admin > Site content > Header & footer) */
.ex-logo-img { display: block; height: 58px; width: auto; max-width: 220px; object-fit: contain; }
.ex-logo-footer .ex-logo-img { height: 68px; }
@media (max-width: 575.98px) { .ex-logo-img { height: 42px; } }

/* Campaign offer countdown (/offer/{slug}) */
.offer-timer { display: inline-flex; align-items: center; background: #fbeeed; color: #9c3f3a; border-radius: 999px; padding: .55rem 1.1rem; font-size: .95rem; }
.offer-timer strong { font-variant-numeric: tabular-nums; margin-left: .3rem; }
.offer-timer.ended { background: #eee7e2; color: var(--ex-muted); }
.validation-summary-valid.empty-hide { display: none; }

/* Cookie banner (Views/Shared/_CookieBanner.cshtml) */
.ex-cookie { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 1090; max-width: 980px; margin: 0 auto; background: #fff; border-radius: 20px; box-shadow: 0 20px 60px rgba(47, 38, 36, .22); padding: 1.2rem 1.4rem; font-size: .88rem; }
.ex-cookie-main { display: flex; gap: 1.2rem; align-items: center; }
.ex-cookie-text strong { font-family: "Plus Jakarta Sans", sans-serif; font-size: 1rem; }
.ex-cookie-text p { margin: .2rem 0 0; color: var(--ex-muted); line-height: 1.55; }
.ex-cookie-text a { text-decoration: underline; }
.ex-cookie-actions { display: flex; gap: .5rem; flex-shrink: 0; }
.ex-cookie .ex-btn { padding: .6rem 1.2rem; letter-spacing: .06em; }
.ex-cookie-prefs { border-top: 1px solid var(--ex-line); margin-top: 1rem; padding-top: .6rem; }
.ex-cookie-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid #f3ece6; cursor: pointer; }
.ex-cookie-row small { display: block; color: var(--ex-muted); }
.ex-cookie-row .form-check-input { width: 1.2rem; height: 1.2rem; flex-shrink: 0; margin: 0; }
@media (max-width: 767.98px) { .ex-cookie-main { flex-direction: column; align-items: stretch; } .ex-cookie-actions { flex-wrap: wrap; } .ex-cookie-actions .ex-btn { flex: 1; } }

/* Shortlisted media: preserve the complete artwork and natural proportions. */
.ex-media { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; }
.ex-program-img.ex-media { aspect-ratio: 3 / 4; object-fit: contain; background: #eee3d6; }
.ex-usp-img.ex-media { width: 100%; height: 100%; min-height: 420px; max-height: 560px; object-fit: cover; object-position: center 25%; }
.ex-programs-banner { margin: 0 0 3rem; border-radius: 20px; }
.ex-gift-card.photo { aspect-ratio: 5 / 3; background-size: contain; background-position: center; background-repeat: no-repeat; border: 0; border-radius: 10px; }
.ex-gift-card.photo::before { display: none; }
.ex-post-img.photo { aspect-ratio: 3 / 4; background-size: contain; background-repeat: no-repeat; background-color: #f6efe4; }
.ex-article-hero.ex-media { aspect-ratio: auto; max-height: 700px; object-fit: contain; }
.ex-marquee-rail > img { display: block; width: auto; height: 300px; max-width: none; border-radius: 16px; flex: none; object-fit: contain; }
.ex-marquee-rail > img:nth-child(odd) { transform: translateY(24px); }
@keyframes ex-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - .5rem)); } }
.ex-detail-hero:has(.ex-detail-image) { min-height: 0; display: flex; flex-direction: column; padding: 0; overflow: visible; }
.ex-detail-hero:has(.ex-detail-image)::after { display: none; }
.ex-detail-hero:has(.ex-detail-image) .copy { order: -1; padding: 1.5rem; }
.ex-detail-image { max-height: 580px; }
.ex-detail-hero:has(.ex-detail-image) .ex-detail-cta,
.ex-detail-hero:has(.ex-detail-image) .ex-launch { position: relative; inset: auto; margin: 1.5rem; }
.ex-rail .thumb.photo { background-size: contain; background-repeat: no-repeat; background-position: center; background-color: #eee3d6; }
.ex-hero { min-height: 0; display: block; }
.ex-hero-media { position: relative; aspect-ratio: 16 / 9; }
.ex-hero-media video { object-fit: contain; }
.ex-hero-media .photo { background-size: contain; background-repeat: no-repeat; }
.ex-hero-content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 6rem 1.5rem 2rem; }
.ex-video-toggle { position: absolute; right: 1rem; bottom: 1rem; z-index: 4; border: 1px solid #ffffff99; border-radius: 24px; padding: .5rem 1rem; background: #2b2320cc; color: white; font: inherit; font-size: .8rem; }
.ex-video-toggle[hidden] { display: none; }
@media (max-width: 767.98px) {
    .ex-hero { margin-top: 0; min-height: 0; }
    .ex-hero::before { display: none; }
    .ex-hero-content { position: relative; padding: 2rem 1rem 2.5rem; }
    .ex-video-toggle { top: 1rem; bottom: auto; }
    .ex-usp-img.ex-media { min-height: 260px; max-height: 360px; }
    .ex-marquee-rail > img { height: 230px; }
    .ex-post-img.photo { aspect-ratio: 4 / 3; }
}

/* ---- Review round 2 (Sept 2026) ---- */
/* Mandatory-field marker on the registration popup */
.ex-popup .req { color: var(--ex-rose-deep, #d98d92); font-weight: 700; }
/* Login: "we couldn't find your account" */
.ex-login-notfound { background: #fbf4f2; border-color: #f0d9d6 !important; }
/* FAQ answers: the linked page stands out */
.ex-faq-link { color: var(--ex-rose-deep, #c96c73); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.ex-faq-link:hover { color: var(--ex-ink); }
/* Programme page: bigger tiles and numbers on the side rail (momday.com reference) */
.ex-rail a { gap: 1.1rem; margin-bottom: 1.6rem; }
.ex-rail .num { font-size: 3.6rem; width: 60px; }
.ex-rail .thumb { width: 124px; height: 166px; border-radius: 18px; }
.ex-rail .thumb .thumb-label { font-size: .72rem; left: 9px; right: 9px; bottom: 9px; }
/* "Launch Offer" sits under the plan name, left aligned */
.ex-plan > span:first-child { display: flex; flex-direction: column; align-items: flex-start; }
.ex-plan .badge-offer { margin-top: .3rem; }
/* Moving photo wall (momday.com reference): four columns of photos scroll behind the centred headline */
.ex-marquee { background: transparent; color: #fff; padding: 1rem 0 4rem; }
.ex-wall { position: relative; height: min(88vh, 760px); border-radius: 28px; overflow: hidden; background: #2b2320; box-shadow: var(--ex-shadow); }
.ex-wall-cols { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 0 8px; }
.ex-wall-col { overflow: hidden; }
.ex-wall-track { display: flex; flex-direction: column; gap: 8px; animation: ex-wall-up var(--wall-speed, 28s) linear infinite; will-change: transform; }
.ex-wall-col.down .ex-wall-track { animation-name: ex-wall-down; }
.ex-wall-track > img { display: block; width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 10px; }
/* the tint that keeps the words readable over the photos */
.ex-wall::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(43, 35, 32, .35), rgba(43, 35, 32, .6) 50%, rgba(43, 35, 32, .35)); pointer-events: none; }
.ex-wall-copy { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2rem 1.5rem; }
.ex-wall-copy .ex-title { color: #fff; font-size: clamp(2.2rem, 4.6vw, 3.6rem); text-shadow: 0 2px 24px rgba(0, 0, 0, .35); }
.ex-wall-copy p { max-width: 560px; font-size: 1.1rem; color: rgba(255, 255, 255, .88); text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.ex-wall-pill { display: inline-block; padding: .35rem .95rem; border-radius: 999px; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .35); backdrop-filter: blur(6px); font-size: .8rem; letter-spacing: .06em; margin-bottom: 1rem; }
/* keeps moving under the mouse - the owner asked for no pause on hover */
@keyframes ex-wall-up { from { transform: translateY(0); } to { transform: translateY(calc(-50% - 4px)); } }
@keyframes ex-wall-down { from { transform: translateY(calc(-50% - 4px)); } to { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .ex-wall-track { animation: none; } }
@media (max-width: 767.98px) {
    .ex-wall { height: 78vh; border-radius: 20px; }
    .ex-wall-cols { grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 0 6px; }
    .ex-wall-col:nth-child(4) { display: none; }
    .ex-wall-track { gap: 6px; }
    .ex-wall-copy .ex-title { font-size: 2rem; }
    .ex-wall-copy p { font-size: 1rem; }
}
/* Video pages (/v/...): Admin > Videos */
.ex-video-page { max-width: 860px; margin: 0 auto; }
.ex-video-frame { position: relative; aspect-ratio: 16 / 9; background: #2b2320; border-radius: 24px; overflow: hidden; box-shadow: var(--ex-shadow); }
.ex-video-frame.ig { aspect-ratio: 9 / 14; max-width: 420px; margin: 0 auto; }
.ex-video-frame > video, .ex-video-frame > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.ex-video-frame.locked { aspect-ratio: auto; }
.ex-video-lock { position: relative; min-height: 420px; display: grid; place-items: center; padding: 1.5rem 1.2rem; background-size: cover; background-position: center; }
.ex-video-lock::before { content: ""; position: absolute; inset: 0; background: rgba(43, 35, 32, .55); backdrop-filter: blur(6px); }
.ex-video-lock-card { position: relative; background: #fff; border-radius: 22px; padding: 1.6rem; max-width: 440px; width: 100%; box-shadow: 0 30px 80px rgba(47, 38, 36, .3); }
.ex-video-lock-card .req { color: var(--ex-rose-deep, #d98d92); font-weight: 700; }
@media (max-width: 575.98px) { .ex-video-lock-card { padding: 1.2rem; } }

/* ---- Programme page, momday.com/collections reference (Sept 2026) ---- */
/* Side rail: outlined number, name + stage top-left on the thumbnail, inactive ones fade back */
.ex-rail a { align-items: center; gap: .9rem; margin-bottom: 1.1rem; }
.ex-rail .num { font-size: 4.2rem; font-weight: 800; width: 56px; color: transparent; -webkit-text-stroke: 2px #cfd9e6; letter-spacing: -.02em; }
.ex-rail a.active .num { -webkit-text-stroke-color: var(--ex-rose-deep, #d98d92); }
.ex-rail .thumb { width: 124px; height: 166px; border-radius: 16px; opacity: .55; filter: none; transition: opacity .2s ease; background-size: cover; background-position: center top; }
.ex-rail .thumb.photo { background-size: cover; background-color: #eee3d6; }
.ex-rail .thumb::after { inset: 0 0 35% 0; background: linear-gradient(180deg, rgba(255, 255, 255, .9) 0%, rgba(255, 255, 255, .55) 55%, transparent 100%); }
.ex-rail .thumb .thumb-label { top: 9px; left: 9px; right: 9px; bottom: auto; color: var(--ex-ink); font-size: .74rem; font-weight: 600; text-transform: none; letter-spacing: 0; line-height: 1.25; text-shadow: none; }
.ex-rail .thumb .thumb-label small { display: block; margin-top: .25rem; font-size: .64rem; font-weight: 500; color: #4a4340; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ex-rail a:hover .thumb, .ex-rail a.active .thumb { opacity: 1; }
.ex-rail a.active .thumb { outline: 2px solid var(--ex-ink); outline-offset: 2px; }
/* Hero: the photo fills the card and the title sits over its top-left corner */
.ex-detail-hero:has(.ex-detail-image) { display: block; padding: 0; overflow: hidden; min-height: 560px; }
.ex-detail-hero:has(.ex-detail-image) .ex-detail-image { display: block; width: 100%; height: 100%; min-height: 560px; max-height: 720px; object-fit: cover; object-position: center 30%; }
.ex-detail-hero:has(.ex-detail-image)::after { display: block; background: linear-gradient(180deg, rgba(250, 244, 240, .92) 0%, rgba(250, 244, 240, .7) 18%, rgba(250, 244, 240, 0) 40%, rgba(38, 30, 26, 0) 70%, rgba(38, 30, 26, .45) 100%); }
.ex-detail-hero:has(.ex-detail-image) .copy { order: 0; position: absolute; top: 0; left: 0; right: 0; z-index: 2; padding: 1.6rem 1.8rem; }
.ex-detail-hero:has(.ex-detail-image) .ex-detail-cta,
.ex-detail-hero:has(.ex-detail-image) .ex-launch { position: absolute; margin: 0; }
.ex-detail-hero:has(.ex-detail-image) .ex-detail-cta { left: 1.8rem; right: 1.8rem; bottom: 1.8rem; }
.ex-detail-hero:has(.ex-detail-image) .ex-launch { left: 1.2rem; right: 1.2rem; bottom: 1.2rem; }
@media (max-width: 767.98px) { .ex-detail-hero:has(.ex-detail-image), .ex-detail-hero:has(.ex-detail-image) .ex-detail-image { min-height: 460px; } }

/* ---------- Gift a programme plan (gift card popup, portal) ---------- */
.ex-gift-plans { display: grid; gap: .5rem; }
.ex-gift-plan { display: flex; align-items: center; gap: .7rem; padding: .65rem .9rem; border: 1px solid var(--ex-line); border-radius: 14px; background: var(--ex-white); cursor: pointer; transition: border-color .15s ease, background .15s ease; margin: 0; }
.ex-gift-plan:hover { border-color: var(--ex-rose-deep); }
.ex-gift-plan input { accent-color: var(--ex-brown); margin: 0; flex-shrink: 0; }
.ex-gift-plan:has(input:checked) { border-color: var(--ex-brown); background: var(--ex-off-white); }
.ex-gift-plan .pl { font-weight: 600; flex: 1; }
.ex-gift-plan .pr { font-weight: 700; white-space: nowrap; }
.ex-gift-plan s { color: var(--ex-muted); font-size: .85em; margin-right: .35rem; font-weight: 400; }
.ex-gift-plan .save { display: inline-block; font-size: .72rem; font-weight: 600; color: var(--ex-sage-dark); background: var(--ex-sage-soft); border-radius: 999px; padding: 0 .5rem; margin-left: .4rem; }
.ex-gift-total { display: flex; justify-content: space-between; align-items: baseline; padding: .7rem .9rem; border-radius: 14px; background: var(--ex-cream-2); }
.ex-gift-total strong { font-size: 1.25rem; }
