/* Tenant public portfolio — mockup-aligned dark UI, RTL-friendly */

:root {
    --tp-page-bg: #0a0c10;
    --tp-primary: #e53e3e;
    --tp-secondary: #1a1a1a;
    --tp-accent-a: #4c5df4;
    --tp-accent-b: #7a5af8;
    --tp-gradient-cta: linear-gradient(135deg, var(--tp-accent-a), var(--tp-accent-b));
    --tp-dark-900: #0a0c10;
    --tp-dark-800: #141821;
    --tp-dark-700: #1e2430;
    --tp-glass-bg: rgba(42, 42, 42, 0.7);
    --tp-glass-border: rgba(255, 255, 255, 0.05);
    --tp-glass-border-strong: rgba(255, 255, 255, 0.08);
    --tp-text: #fafafa;
    --tp-text-muted: color-mix(in srgb, var(--tp-text) 52%, var(--tp-dark-900));
    --tp-text-subtle: color-mix(in srgb, var(--tp-text) 38%, var(--tp-dark-900));
    --tp-surface: rgba(255, 255, 255, 0.04);
    --tp-surface-raised: color-mix(in srgb, var(--tp-dark-800) 88%, transparent);
    --tp-ring-faint: rgba(255, 255, 255, 0.08);
    --tp-backdrop: rgba(0, 0, 0, 0.72);
    --tp-bg-veil-top: color-mix(in srgb, var(--tp-dark-900) 88%, black);
    --tp-bg-veil-bottom: color-mix(in srgb, var(--tp-dark-900) 92%, black);
    --tp-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --tp-duration: 0.25s;
    --tp-timing: ease;
    --tp-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.3);
    --tp-shadow-md: 0 4px 20px rgba(0, 0, 0, 0.4);
    --tp-shadow-lg: 0 8px 40px rgba(0, 0, 0, 0.5);
    --tp-radius-sm: 8px;
    --tp-radius-md: 12px;
    --tp-radius-lg: 16px;
    --tp-radius-xl: 20px;
}

.tp-page-body::selection {
    background: color-mix(in srgb, var(--tp-primary) 35%, transparent);
    color: var(--tp-text);
}

.tp-skip {
    position: fixed;
    top: 0.75rem;
    inset-inline-end: 0.75rem;
    z-index: 99999;
    background: var(--tp-primary);
    color: var(--tp-text);
    padding: 0.65rem 0.85rem;
    border-radius: var(--tp-radius-md);
    font-size: 0.875rem;
    font-weight: 700;
    transform: translateY(-150%);
    transition: transform var(--tp-duration) var(--tp-timing);
    box-shadow: var(--tp-shadow-md);
}

.tp-skip:focus,
.tp-skip:focus-visible {
    transform: translateY(0);
    outline: 2px solid color-mix(in srgb, var(--tp-text) 92%, transparent);
    outline-offset: 2px;
}

.tp-bg {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    background:
        radial-gradient(ellipse 90% 50% at 80% 0%, color-mix(in srgb, var(--tp-accent-a) 12%, transparent), transparent 50%),
        radial-gradient(ellipse 70% 45% at 15% 20%, color-mix(in srgb, var(--tp-accent-b) 8%, transparent), transparent 55%),
        linear-gradient(180deg, var(--tp-bg-veil-top) 0%, var(--tp-page-bg) 45%, var(--tp-bg-veil-bottom) 100%);
}

.tp-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.25) 0%,
        transparent 35%,
        transparent 75%,
        rgba(0, 0, 0, 0.35) 100%
    );
}

.tp-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(72px);
    opacity: 0.12;
    animation: tp-orb-float 24s ease-in-out infinite;
}

.tp-orb--primary {
    background: color-mix(in srgb, var(--tp-primary) 42%, transparent);
}

.tp-orb--accent {
    background: color-mix(in srgb, var(--tp-accent-a) 38%, transparent);
}

.tp-orb--subtle {
    opacity: 0.09;
    animation: none;
}

@keyframes tp-orb-float {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    50% {
        transform: translate(-28px, 24px) scale(1.06);
    }
}

@media (prefers-reduced-motion: reduce) {
    .tp-orb {
        animation: none;
        opacity: 0.16;
    }

    .tp-reveal {
        opacity: 1 !important;
        transform: none !important;
        transition-duration: 0.01ms !important;
    }

    .tp-card {
        transition: none;
    }

    .tp-card:hover {
        transform: none;
    }

    .tp-pkg-card {
        transition: none;
    }

    .tp-pkg-card:hover {
        transform: none;
    }
}

.tp-shell {
    position: relative;
    z-index: 1;
    color: var(--tp-text);
}

.tp-page-body {
    background-color: var(--tp-page-bg);
    color: var(--tp-text);
    font-family: "Tajawal", sans-serif;
}

/* Portfolio 2.0 visual quality pass: resilient with real tenant content. */
.tp-page-body:not(.tp-template-legacy) {
    --tp-accent-a: var(--tp-primary);
    --tp-accent-b: color-mix(in srgb, var(--tp-primary) 72%, #ff9b66);
    --tp-gradient-cta: linear-gradient(135deg, var(--tp-accent-a), var(--tp-accent-b));
    --tp-content-width: 76rem;
    background: #060a10;
}

.tp-page-body:not(.tp-template-legacy) .tp-bg {
    background:
        radial-gradient(circle at 82% 8%, color-mix(in srgb, var(--tp-primary) 16%, transparent), transparent 28rem),
        radial-gradient(circle at 12% 34%, rgba(58, 83, 138, .14), transparent 30rem),
        linear-gradient(180deg, #060a10 0%, #09111c 48%, #060a10 100%);
}

.tp-page-body:not(.tp-template-legacy) .tp-nav-glass {
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 18px;
    background: rgba(8,13,22,.84);
    box-shadow: 0 16px 50px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.04);
}

.tp-page-body:not(.tp-template-legacy) .tp-nav-scroll .tp-nav-link:first-child {
    color: color-mix(in srgb, var(--tp-primary) 72%, white);
}

.tp-page-body:not(.tp-template-legacy) .tp-nav-scroll .tp-nav-link:first-child::after {
    background: var(--tp-primary);
    box-shadow: 0 0 18px color-mix(in srgb, var(--tp-primary) 58%, transparent);
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-section {
    min-height: min(43rem, calc(100svh - 5rem));
    display: flex;
    align-items: center;
    padding-block: clamp(2.5rem, 6vw, 5rem) !important;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-section::before {
    inset: -5rem 0 -2rem;
    opacity: .78;
    background-image:
        linear-gradient(90deg, rgba(6,10,16,.9) 0%, rgba(6,10,16,.56) 48%, rgba(6,10,16,.9) 100%),
        var(--tp-hero-image);
    background-position: center;
    filter: saturate(.82) contrast(1.08);
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-section::after {
    height: 14rem;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-section > .max-w-6xl {
    width: min(var(--tp-content-width), 100%);
    min-height: 0;
    grid-template-columns: minmax(0, 1.1fr) minmax(19rem, .78fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 5rem);
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-section > .max-w-6xl > div:first-child {
    max-width: 46rem;
    padding: clamp(1.35rem, 2.5vw, 2rem);
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 28px;
    background: linear-gradient(145deg, rgba(11,18,29,.86), rgba(11,18,29,.58));
    box-shadow: 0 28px 80px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.05);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.tp-page-body:not(.tp-template-legacy) #hero .tp-reveal {
    opacity: 1;
    transform: none;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-kicker,
.tp-page-body:not(.tp-template-legacy) .tp-section-eyebrow {
    color: color-mix(in srgb, var(--tp-primary) 76%, white);
    text-shadow: none;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-title {
    font-size: clamp(3rem, 6vw, 5.3rem);
    line-height: 1;
    letter-spacing: -.035em;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-lead {
    display: -webkit-box;
    max-width: 42rem;
    overflow: hidden;
    color: #d6deec;
    font-size: clamp(1rem, 1.6vw, 1.17rem);
    font-weight: 500;
    line-height: 1.85;
    white-space: normal;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    text-align: start;
    -webkit-line-clamp: 3;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-chips {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    max-width: 38rem;
    gap: .65rem;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-chip {
    flex-direction: column;
    justify-content: center;
    min-height: 70px;
    padding: .5rem;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 13px;
    background: rgba(255,255,255,.045);
    color: #c3ccdb;
    text-align: center;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-chip i {
    flex: 0 0 auto;
    color: color-mix(in srgb, var(--tp-primary) 78%, white);
    background: color-mix(in srgb, var(--tp-primary) 16%, transparent);
    border-color: color-mix(in srgb, var(--tp-primary) 24%, transparent);
}

.tp-page-body:not(.tp-template-legacy) .tp-btn-primary--gradient {
    background: var(--tp-gradient-cta);
    box-shadow: 0 14px 34px color-mix(in srgb, var(--tp-primary) 30%, transparent);
}

.tp-page-body:not(.tp-template-legacy) .tp-btn-primary--hero,
.tp-page-body:not(.tp-template-legacy) .tp-btn-ghost--hero-row {
    min-height: 48px;
    padding-inline: 1.1rem;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-art-wrap {
    display: block !important;
    position: relative;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-art-wrap::before {
    content: "";
    position: absolute;
    inset: 10% -10%;
    border-radius: 50%;
    background: color-mix(in srgb, var(--tp-primary) 24%, transparent);
    filter: blur(55px);
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-visual {
    display: block !important;
    position: relative;
    max-height: 28rem;
    aspect-ratio: 4/5;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 30px;
    background: #0c131f;
    box-shadow: 0 32px 90px rgba(0,0,0,.46), 0 0 0 8px rgba(255,255,255,.025);
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-visual-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    padding: 2rem;
    color: #fff;
    text-align: center;
    background:
        radial-gradient(circle at 50% 34%, color-mix(in srgb, var(--tp-primary) 32%, transparent), transparent 28%),
        repeating-linear-gradient(135deg, transparent 0 22px, rgba(255,255,255,.018) 23px 24px),
        linear-gradient(155deg, #121d2d, #080d15);
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-visual-fallback[hidden] { display: none !important; }

.tp-page-body:not(.tp-template-legacy) .tp-hero-visual-fallback > span {
    width: 5.25rem;
    height: 5.25rem;
    display: grid;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--tp-primary) 35%, rgba(255,255,255,.12));
    border-radius: 24px;
    color: color-mix(in srgb, var(--tp-primary) 74%, white);
    background: color-mix(in srgb, var(--tp-primary) 16%, rgba(255,255,255,.04));
    font-size: 2rem;
    box-shadow: 0 18px 45px color-mix(in srgb, var(--tp-primary) 18%, transparent);
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-visual-fallback strong {
    font-size: clamp(1.5rem,3vw,2.25rem);
    font-weight: 900;
}

.tp-page-body:not(.tp-template-legacy) .tp-hero-visual-fallback small {
    color: #9eabba;
    font-weight: 700;
}

.tp-page-body:not(.tp-template-legacy) .tp-v2-section,
.tp-page-body:not(.tp-template-legacy) #systems,
.tp-page-body:not(.tp-template-legacy) #coaches,
.tp-page-body:not(.tp-template-legacy) #packages,
.tp-page-body:not(.tp-template-legacy) #ratings,
.tp-page-body:not(.tp-template-legacy) #gallery,
.tp-page-body:not(.tp-template-legacy) #locations {
    padding-block: clamp(3.5rem, 5vw, 5rem) !important;
}

.tp-page-body:not(.tp-template-legacy) .tp-section-title {
    font-size: clamp(2rem, 4vw, 3.2rem);
    letter-spacing: -.025em;
}

.tp-page-body:not(.tp-template-legacy) .tp-section-sub {
    max-width: 42rem;
    color: #98a5b9;
    font-size: 1rem;
    line-height: 1.75;
}

.tp-page-body:not(.tp-template-legacy) .tp-v2-story {
    max-width: 62rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    border-color: rgba(255,255,255,.1);
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--tp-primary) 12%, transparent), transparent 30rem),
        linear-gradient(145deg, rgba(18,27,42,.94), rgba(11,18,29,.9));
}

.tp-page-body:not(.tp-template-legacy) .tp-v2-story-copy {
    position: relative;
    color: #b8c2d2;
    font-size: clamp(1rem, 1.7vw, 1.12rem);
    line-height: 1.9;
    white-space: pre-line;
    overflow-wrap: anywhere;
    transition: max-height .35s ease;
}

.tp-page-body:not(.tp-template-legacy) .tp-v2-story-copy.is-collapsed {
    max-height: 13rem;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(#000 68%, transparent);
    mask-image: linear-gradient(#000 68%, transparent);
}

.tp-page-body:not(.tp-template-legacy) .tp-v2-story-copy.is-expanded {
    max-height: 80rem;
}

.tp-story-details summary {
    display: block;
    cursor: pointer;
    list-style: none;
}

.tp-story-details summary::-webkit-details-marker { display: none; }

.tp-story-preview {
    display: block;
    max-height: 13rem;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(#000 68%, transparent);
    mask-image: linear-gradient(#000 68%, transparent);
}

.tp-story-full { display: none; }
.tp-story-less { display: none; }
.tp-story-details[open] .tp-story-preview { display: none; }
.tp-story-details[open] .tp-story-full { display: block; }
.tp-story-details[open] .tp-story-more { display: none; }
.tp-story-details[open] .tp-story-less { display: inline; }

.tp-story-toggle {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-block-start: 1rem;
    padding: .65rem 1rem;
    border: 1px solid color-mix(in srgb, var(--tp-primary) 35%, rgba(255,255,255,.1));
    border-radius: 999px;
    color: #fff;
    background: color-mix(in srgb, var(--tp-primary) 13%, rgba(255,255,255,.04));
    font-weight: 800;
}

.tp-story-toggle i { transition: transform .25s ease; }
.tp-story-details[open] .tp-story-toggle i { transform: rotate(180deg); }

.tp-page-body:not(.tp-template-legacy) .tp-feature-strip {
    border-radius: 22px;
    border-color: rgba(255,255,255,.1);
    background: rgba(14,22,34,.88);
}

.tp-page-body:not(.tp-template-legacy) .tp-feature-icon,
.tp-page-body:not(.tp-template-legacy) .tp-system-icon {
    color: color-mix(in srgb, var(--tp-primary) 74%, white);
    background: color-mix(in srgb, var(--tp-primary) 16%, #101722);
    border-color: color-mix(in srgb, var(--tp-primary) 28%, transparent);
}

@media (min-width: 1024px) {
    .tp-page-body:not(.tp-template-legacy) .tp-systems-scroll {
        display: grid;
        grid-template-columns: repeat(4,minmax(0,1fr));
        gap: 1rem;
        overflow: visible;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-system-card {
        width: 100%;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-coaches-grid {
        grid-template-columns: repeat(auto-fit,minmax(16rem,21rem));
        justify-content: center;
        gap: 1.25rem;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-locations-list {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .tp-page-body:not(.tp-template-legacy) .tp-location-split {
        grid-template-columns: 1fr;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-location-split .tp-location-map {
        min-height: 14rem;
    }
}

.tp-page-body:not(.tp-template-legacy) .tp-coach-card,
.tp-page-body:not(.tp-template-legacy) .tp-pkg-card,
.tp-page-body:not(.tp-template-legacy) .tp-location-split,
.tp-page-body:not(.tp-template-legacy) .tp-primary-location {
    border-color: rgba(255,255,255,.1);
    border-radius: 22px;
    background: linear-gradient(155deg, rgba(20,30,46,.96), rgba(10,17,28,.96));
}

.tp-page-body:not(.tp-template-legacy) .tp-coach-photo-wrap {
    aspect-ratio: 4/4.4;
}

.tp-page-body:not(.tp-template-legacy) [data-tp-coach-photo][hidden] {
    display: none !important;
}

.tp-page-body:not(.tp-template-legacy) .tp-coach-profile-link {
    background: var(--tp-gradient-cta);
}

.tp-page-body:not(.tp-template-legacy) .tp-tabs-wrap {
    border-radius: 999px;
    padding: .35rem;
}

.tp-page-body:not(.tp-template-legacy) .tp-tab,
.tp-page-body:not(.tp-template-legacy) .tp-tab--active {
    min-height: 44px;
    border-radius: 999px;
}

.tp-page-body:not(.tp-template-legacy) .tp-promo-card {
    background:
        radial-gradient(circle at 20% 0%, rgba(255,255,255,.17), transparent 14rem),
        var(--tp-gradient-cta);
}

.tp-page-body:not(.tp-template-legacy) .tp-gallery-grid {
    display: grid;
    grid-template-columns: repeat(12,minmax(0,1fr));
    grid-auto-rows: 10.5rem;
    gap: .85rem;
}

.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell {
    grid-column: span 4;
    aspect-ratio: auto;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 20px;
    box-shadow: 0 18px 45px rgba(0,0,0,.24);
}

.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:first-child {
    grid-column: span 6;
    grid-row: span 2;
}

.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(2) { grid-column: span 6; }
.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(3),
.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(4) { grid-column: span 3; }

.tp-page-body:not(.tp-template-legacy) [data-tp-gallery-image][hidden],
.tp-page-body:not(.tp-template-legacy) .tp-gallery-fallback[hidden] {
    display: none !important;
}

.tp-page-body:not(.tp-template-legacy) .tp-gallery-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: 1rem;
    color: #fff;
    cursor: default;
    background:
        radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--tp-primary) 25%, transparent), transparent 28%),
        linear-gradient(145deg, #152237, #09111c);
}

.tp-page-body:not(.tp-template-legacy) .tp-gallery-fallback i {
    margin-block-end: .35rem;
    color: color-mix(in srgb, var(--tp-primary) 72%, white);
    font-size: 1.55rem;
}

.tp-page-body:not(.tp-template-legacy) .tp-gallery-fallback strong { font-size: 1rem; }
.tp-page-body:not(.tp-template-legacy) .tp-gallery-fallback small { color: #91a0b5; font-weight: 700; }

.tp-page-body:not(.tp-template-legacy) .tp-primary-location-map {
    min-height: 19rem;
}

.tp-page-body:not(.tp-template-legacy) .tp-location-directions {
    background: var(--tp-gradient-cta);
    box-shadow: 0 14px 32px color-mix(in srgb, var(--tp-primary) 24%, transparent);
}

.tp-page-body:not(.tp-template-legacy) .tp-reveal {
    opacity: 1;
    transform: none;
    transition: opacity .35s ease, transform .35s ease;
}

@media (max-width: 1023px) {
    .tp-page-body:not(.tp-template-legacy) .tp-hero-section {
        min-height: auto;
        padding-block: 2.5rem 4rem !important;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-section > .max-w-6xl {
        grid-template-columns: minmax(0,1fr);
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-art-wrap {
        width: min(32rem,100%);
        margin-inline: auto;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-visual {
        max-height: 24rem;
        aspect-ratio: 16/10;
    }
}

@media (max-width: 767px) {
    .tp-page-body:not(.tp-template-legacy) header {
        padding-inline: .65rem;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-nav-glass {
        border-radius: 15px;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-section {
        padding-inline: .75rem;
        padding-block-start: 1.25rem !important;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-section > .max-w-6xl > div:first-child {
        padding: 1.25rem;
        border-radius: 22px;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-title {
        font-size: clamp(2.45rem,14vw,3.45rem);
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-lead {
        font-size: .96rem;
        line-height: 1.7;
        -webkit-line-clamp: 5;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-chip {
        min-height: 44px;
        padding: .45rem .55rem;
        font-size: .72rem;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-hero-art-wrap {
        display: none !important;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-v2-section,
    .tp-page-body:not(.tp-template-legacy) #systems,
    .tp-page-body:not(.tp-template-legacy) #coaches,
    .tp-page-body:not(.tp-template-legacy) #packages,
    .tp-page-body:not(.tp-template-legacy) #ratings,
    .tp-page-body:not(.tp-template-legacy) #gallery,
    .tp-page-body:not(.tp-template-legacy) #locations {
        padding-block: 4rem !important;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-v2-story-copy.is-collapsed {
        max-height: 15rem;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-gallery-grid {
        display: flex;
        gap: .75rem;
        margin-inline: -.75rem;
        padding-inline: .75rem;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-gallery-grid::-webkit-scrollbar { display: none; }

    .tp-page-body:not(.tp-template-legacy) .tp-gallery-cell,
    .tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:first-child,
    .tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(2),
    .tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(3),
    .tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(4) {
        flex: 0 0 84vw;
        min-height: 17rem;
        scroll-snap-align: center;
    }

    .tp-page-body:not(.tp-template-legacy) .tp-primary-location-map {
        min-height: 14rem;
    }
}

/* Portfolio 2.0 semantic sections and curated templates */
.tp-v2-story{padding:clamp(1.5rem,5vw,3.5rem);border:1px solid rgba(255,255,255,.08);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.015));box-shadow:0 24px 70px rgba(0,0,0,.24)}
.tp-v2-story-copy{margin-block-start:1.25rem;color:var(--tp-text-muted,#aeb8c8);font-size:clamp(1rem,2vw,1.2rem);line-height:1.95;white-space:pre-line}
.tp-v2-card-grid,.tp-testimonial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.tp-v2-info-card,.tp-testimonial-card{padding:1.5rem;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:rgba(16,23,34,.74);box-shadow:0 16px 40px rgba(0,0,0,.22);text-align:start}
.tp-v2-info-card>i{display:grid;place-items:center;width:3rem;height:3rem;border-radius:14px;color:#fff;background:var(--tp-primary);font-size:1.1rem}
.tp-v2-info-card h3{margin-block-start:1.1rem;color:#fff;font-size:1.15rem;font-weight:800}.tp-v2-info-card p{margin-block-start:.55rem;color:#aeb8c8;line-height:1.75}
.tp-testimonial-stars{color:#fbbf24;display:flex;gap:.22rem}.tp-testimonial-card blockquote{margin-block:1rem;color:#f5f7fb;font-size:1.05rem;line-height:1.85}.tp-testimonial-card figcaption{color:#aeb8c8;font-weight:700}
.tp-timetable-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-block-end:1rem}.tp-timetable-filters label{display:grid;gap:.35rem;color:#9aa6b7;font-size:.78rem;font-weight:800}.tp-timetable-filters select{min-width:11rem;min-height:44px;padding:.55rem .8rem;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#101722;color:#fff}.tp-timetable{display:grid;gap:.75rem}.tp-class-slot{display:grid;grid-template-columns:8rem minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:1rem 1.15rem;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(16,23,34,.75);text-align:start}
.tp-class-slot h3{color:#fff;font-weight:800}.tp-class-slot p{color:#8f9bad;font-size:.88rem}.tp-class-slot time{color:#fff;font-weight:800}.tp-class-slot>a{min-height:44px;display:inline-flex;align-items:center;padding:.65rem 1rem;border-radius:999px;background:var(--tp-primary);color:#fff;font-weight:800}
.tp-class-day{color:var(--tp-primary);font-weight:900}.tp-faq-list{display:grid;gap:.75rem}.tp-faq-item{border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(16,23,34,.72);overflow:hidden}.tp-faq-item summary{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;color:#fff;font-weight:800;cursor:pointer;list-style:none}.tp-faq-item summary::-webkit-details-marker{display:none}.tp-faq-item[open] summary i{transform:rotate(45deg)}.tp-faq-item p{padding:0 1.2rem 1.25rem;color:#aeb8c8;line-height:1.8}
.tp-open-status{display:flex;align-items:center;gap:.5rem;margin-block-start:1rem;color:#cbd5e1;font-size:.9rem;font-weight:800}.tp-open-status span{width:.55rem;height:.55rem;border-radius:50%;background:#ef4444;box-shadow:0 0 0 5px rgba(239,68,68,.12)}.tp-open-status.is-open span{background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.12)}.tp-branch-details{display:inline-flex;align-items:center;gap:.45rem;margin-block-start:1rem;color:#fff;font-weight:800}
.tp-template-bold-red{--tp-accent-a:var(--tp-primary);--tp-accent-b:#8f1010}.tp-template-clean-light{--tp-page-bg:#f7f8fb;--tp-dark-900:#f7f8fb;--tp-dark-800:#fff;--tp-dark-700:#e7eaf0;color:#172033}.tp-template-clean-light .tp-bg{background:radial-gradient(circle at 15% 15%,color-mix(in srgb,var(--tp-primary) 12%,transparent),transparent 40%),#f7f8fb}.tp-template-clean-light .tp-section-title,.tp-template-clean-light .tp-card-title,.tp-template-clean-light .tp-v2-info-card h3,.tp-template-clean-light .tp-testimonial-card blockquote,.tp-template-clean-light .tp-class-slot h3,.tp-template-clean-light .tp-class-slot time,.tp-template-clean-light .tp-faq-item summary{color:#172033}.tp-template-clean-light .tp-v2-info-card,.tp-template-clean-light .tp-testimonial-card,.tp-template-clean-light .tp-class-slot,.tp-template-clean-light .tp-faq-item,.tp-template-clean-light .tp-v2-story{background:#fff;border-color:#dfe4ec}.tp-template-clean-light .tp-v2-info-card p,.tp-template-clean-light .tp-testimonial-card figcaption,.tp-template-clean-light .tp-class-slot p,.tp-template-clean-light .tp-faq-item p,.tp-template-clean-light .tp-v2-story-copy{color:#536174}
.tp-spacing-compact .tp-v2-section{padding-block:2.5rem}.tp-spacing-airy .tp-v2-section{padding-block:6.5rem}
.tp-virtual-tour{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:24px;background:#05080d;box-shadow:0 24px 70px rgba(0,0,0,.35)}.tp-virtual-tour iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.tp-app-install{position:fixed;z-index:85;inset-inline:1rem;bottom:max(1rem,env(safe-area-inset-bottom));max-width:36rem;margin-inline:auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.8rem;padding:.85rem;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:linear-gradient(135deg,rgba(17,25,38,.98),rgba(7,11,17,.98));color:#fff;box-shadow:0 24px 70px rgba(0,0,0,.5);backdrop-filter:blur(18px)}.tp-app-install[hidden]{display:none}.tp-app-install-logo{width:3.25rem;height:3.25rem;border:1px solid rgba(255,255,255,.13);border-radius:15px;background:#fff;object-fit:cover}.tp-app-install-copy{min-width:0;text-align:start}.tp-app-install-copy>span{display:block;margin-block-end:.1rem;color:var(--tp-primary);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.tp-app-install-copy strong{display:block;overflow:hidden;color:#fff;font-size:.96rem;text-overflow:ellipsis;white-space:nowrap}.tp-app-install p{overflow:hidden;margin-block-start:.15rem;color:#9aa6b7;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.tp-app-install button{min-height:44px;border-radius:12px;font-weight:800}.tp-app-install-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem .9rem;background:var(--tp-primary);color:#fff}.tp-app-install-close{width:44px;padding:0;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#cbd5e1;font-size:1.3rem}.tp-preset-ramadan .tp-bg:after{content:'☾';position:fixed;inset-inline-end:7vw;top:14vh;color:color-mix(in srgb,var(--tp-primary) 35%,transparent);font-size:18vw;pointer-events:none}.tp-preset-new-year .tp-bg{background-image:radial-gradient(circle at 20% 15%,rgba(234,179,8,.12),transparent 30%)}.tp-preset-national-event .tp-bg{background-image:linear-gradient(135deg,rgba(34,197,94,.08),transparent 45%)}
#tp-app-install-button{background:var(--tp-primary);color:#fff}.tp-consent{position:fixed;z-index:100;inset-inline:1rem;bottom:max(1rem,env(safe-area-inset-bottom));max-width:72rem;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1.1rem 1.25rem;border:1px solid rgba(255,255,255,.13);border-radius:20px;background:rgba(9,14,22,.96);color:#fff;box-shadow:0 24px 80px rgba(0,0,0,.55);backdrop-filter:blur(18px)}.tp-consent[hidden]{display:none}.tp-consent strong{font-size:1rem}.tp-consent p{margin-block-start:.25rem;color:#aeb8c8;font-size:.88rem}.tp-consent-actions{display:flex;flex-wrap:wrap;gap:.5rem;flex-shrink:0}.tp-consent button{min-height:44px;padding:.6rem .9rem;border:1px solid rgba(255,255,255,.16);border-radius:12px;font-weight:800}.tp-consent button.primary{background:var(--tp-primary);border-color:transparent}

/* Dedicated branch experience */
.tp-branch-page{min-height:100vh;background:#070b11;color:#fff}.tp-branch-header{position:absolute;z-index:5;inset-inline:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:1rem clamp(1rem,5vw,4rem)}.tp-branch-back,.tp-branch-brand{min-height:44px;display:flex;align-items:center;gap:.7rem;padding:.55rem .9rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(7,11,17,.65);backdrop-filter:blur(12px);font-weight:800}.tp-branch-brand img{border-radius:50%;object-fit:cover}.tp-branch-hero{min-height:min(700px,78vh);display:flex;align-items:end;padding:8rem clamp(1rem,6vw,5rem) 4rem;background:linear-gradient(0deg,#070b11 0%,rgba(7,11,17,.45) 60%,rgba(7,11,17,.7) 100%),var(--tp-branch-hero) center/cover}.tp-branch-hero-inner{width:min(760px,100%)}.tp-branch-hero h1{font-size:clamp(2.5rem,7vw,5rem);font-weight:900;line-height:1.05}.tp-branch-hero p:not(.tp-section-eyebrow){max-width:680px;margin-block-start:1rem;color:#d4d9e3;font-size:clamp(1rem,2vw,1.2rem);line-height:1.8}.tp-branch-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-block-start:1.5rem}.tp-branch-content{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding-block:2rem 5rem}.tp-branch-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-block-start:-4rem;position:relative}.tp-branch-facts article{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;padding:1.25rem;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(16,23,34,.94);box-shadow:0 20px 50px rgba(0,0,0,.3)}.tp-branch-facts i{grid-row:span 2;align-self:center;color:var(--tp-primary);font-size:1.2rem}.tp-branch-facts span{color:#8995a7;font-size:.78rem}.tp-branch-facts strong{font-size:.95rem}.tp-branch-facts strong.is-open{color:#4ade80}.tp-branch-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:1.25rem;margin-block-start:2rem}.tp-branch-map-card,.tp-arrival-notes article{border:1px solid rgba(255,255,255,.08);border-radius:20px;background:#101722}.tp-branded-map{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:2rem;text-align:center;background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--tp-primary) 18%,transparent),transparent 35%),linear-gradient(30deg,transparent 49%,rgba(255,255,255,.035) 50%,transparent 51%) 0 0/28px 28px}.tp-branded-map i{font-size:3rem;color:var(--tp-primary)}.tp-branded-map span{color:#8f9bad}.tp-map-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem}.tp-map-actions a,.tp-map-actions button{min-height:44px;display:inline-flex;align-items:center;padding:.65rem .9rem;border:1px solid rgba(255,255,255,.12);border-radius:12px;font-weight:800}.tp-distance{padding:0 1rem 1rem;color:#4ade80;font-weight:900}.tp-arrival-notes{display:grid;gap:1rem}.tp-arrival-notes article{display:flex;gap:1rem;padding:1.2rem}.tp-arrival-notes i{color:var(--tp-primary);font-size:1.25rem}.tp-arrival-notes h2{font-weight:900}.tp-arrival-notes p{margin-block-start:.35rem;color:#aeb8c8;line-height:1.7}.tp-branch-gallery,.tp-branch-slots{margin-block-start:3rem}.tp-branch-gallery h2,.tp-branch-slots>h2{margin-block-end:1rem;font-size:1.7rem;font-weight:900}.tp-branch-gallery>div{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.tp-branch-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px}

@media(max-width:767px){.tp-v2-card-grid,.tp-testimonial-grid{grid-template-columns:1fr}.tp-class-slot{grid-template-columns:1fr auto;gap:.55rem}.tp-class-day,.tp-class-slot>div{grid-column:1}.tp-class-slot>a{grid-column:1/-1;justify-content:center}.tp-consent{align-items:stretch;flex-direction:column}.tp-consent-actions{display:grid;grid-template-columns:1fr 1fr}.tp-consent button.primary{grid-column:1/-1}.tp-app-install{bottom:calc(5.25rem + env(safe-area-inset-bottom));grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;padding:.7rem}.tp-app-install-logo{width:2.85rem;height:2.85rem}.tp-app-install-button{grid-column:1/-1;width:100%}.tp-app-install-close{grid-column:3;grid-row:1;width:40px;min-height:40px}.tp-app-install-copy{grid-column:2;grid-row:1}.tp-app-install p{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.tp-branch-header{align-items:flex-start}.tp-branch-brand span{display:none}.tp-branch-hero{min-height:620px;padding-block-end:5rem}.tp-branch-hero-actions>*{width:100%;justify-content:center}.tp-branch-facts{grid-template-columns:1fr;margin-block-start:-3rem}.tp-branch-layout{grid-template-columns:1fr}.tp-branch-gallery>div{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.tp-branch-gallery img{min-width:85%;scroll-snap-align:center}.tp-map-actions>*{flex:1;justify-content:center}.tp-v2-info-card,.tp-testimonial-card{padding:1.2rem}}
@media(prefers-reduced-motion:reduce){.tp-faq-item summary i{transition:none!important}.tp-reveal{animation:none!important;transition:none!important}}

.tp-nav-glass {
    background: var(--tp-glass-bg);
    border: 1px solid var(--tp-glass-border);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.03) inset,
        var(--tp-shadow-sm);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: var(--tp-radius-xl);
}

.tp-nav-title {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--tp-text);
    letter-spacing: -0.01em;
}

@media (min-width: 640px) {
    .tp-nav-title {
        font-size: 1rem;
    }
}

.tp-logo-thumb {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--tp-radius-md);
    object-fit: cover;
    box-shadow: var(--tp-shadow-sm);
    border: 1px solid var(--tp-ring-faint);
}

.tp-branch-thumb {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: var(--tp-radius-md);
    object-fit: cover;
    border: 1px solid var(--tp-ring-faint);
}

.tp-branch-thumb-fallback {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: var(--tp-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--tp-surface);
    border: 1px solid var(--tp-ring-faint);
    color: var(--tp-text-subtle);
}

.tp-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity 0.65s var(--tp-ease-out),
        transform 0.65s var(--tp-ease-out);
}

.tp-reveal.tp-reveal-visible {
    opacity: 1;
    transform: translateY(0);
}

.tp-card {
    background: var(--tp-surface);
    border: 1px solid var(--tp-glass-border-strong);
    border-radius: var(--tp-radius-lg);
    box-shadow: var(--tp-shadow-sm);
    transition:
        border-color var(--tp-duration) var(--tp-timing),
        box-shadow var(--tp-duration) var(--tp-timing),
        transform var(--tp-duration) var(--tp-ease-out);
}

@media (hover: hover) and (pointer: fine) {
    .tp-card:hover {
        border-color: rgba(255, 255, 255, 0.12);
        box-shadow: var(--tp-shadow-md);
        transform: translateY(-2px);
    }
}

/* Value proposition — single glass panel, no repeated icon silos */
.tp-value-strip {
    background: var(--tp-glass-bg);
    border: 1px solid var(--tp-glass-border);
    border-radius: var(--tp-radius-xl);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--tp-shadow-sm);
    display: grid;
    grid-template-columns: 1fr;
    overflow: hidden;
}

@media (min-width: 768px) {
    .tp-value-strip {
        grid-template-columns: repeat(3, 1fr);
    }
}

.tp-value-cell {
    padding: clamp(1.25rem, 3vw, 1.75rem) clamp(1rem, 2.5vw, 1.5rem);
    text-align: start;
    border-block-end: 1px solid var(--tp-glass-border);
}

@media (min-width: 768px) {
    .tp-value-cell {
        border-block-end: none;
        border-inline-end: 1px solid var(--tp-glass-border);
    }

    .tp-value-cell:last-child {
        border-inline-end: none;
    }
}

.tp-value-cell:last-child {
    border-block-end: none;
}

.tp-value-kicker {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tp-text-subtle);
    margin-bottom: 0.5rem;
}

.tp-value-title {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--tp-text);
    margin-bottom: 0.375rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.tp-value-desc {
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--tp-text-muted);
}

.tp-hero-kicker {
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--tp-text-muted);
    max-width: 34rem;
    line-height: 1.5;
}

.tp-hero-title {
    font-size: clamp(1.875rem, 4vw + 1rem, 3.25rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.02em;
    color: var(--tp-text);
    overflow-wrap: anywhere;
    word-break: break-word;
}

.tp-hero-lead {
    font-size: clamp(1rem, 1.2vw + 0.85rem, 1.2rem);
    line-height: 1.65;
    color: var(--tp-text-muted);
    max-width: 36rem;
    overflow-wrap: anywhere;
}

.tp-section-eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--tp-text-subtle);
    margin-bottom: 0.5rem;
}

.tp-section-title {
    font-size: clamp(1.375rem, 2vw + 0.75rem, 1.875rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--tp-text);
    overflow-wrap: anywhere;
}

.tp-section-sub {
    font-size: 0.9375rem;
    color: var(--tp-text-muted);
    max-width: 28rem;
    line-height: 1.55;
}

.tp-hero-glow {
    background: radial-gradient(
        ellipse 75% 55% at 50% 0%,
        color-mix(in srgb, var(--tp-primary) 18%, transparent),
        transparent 70%
    );
}

.tp-hero-glow--subtle {
    background: radial-gradient(
        ellipse 70% 45% at 50% 0%,
        color-mix(in srgb, var(--tp-primary) 7%, transparent),
        transparent 65%
    );
}

.tp-hero-glow--accent {
    background: radial-gradient(
        ellipse 75% 55% at 50% 0%,
        color-mix(in srgb, var(--tp-accent-a) 14%, transparent),
        transparent 70%
    );
}

.tp-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.8125rem 1.35rem;
    border-radius: var(--tp-radius-md);
    font-weight: 700;
    font-size: 0.9375rem;
    background: var(--tp-primary);
    color: var(--tp-text);
    border: none;
    cursor: pointer;
    text-decoration: none;
    box-shadow: var(--tp-shadow-sm);
    touch-action: manipulation;
    transition: filter 0.2s var(--tp-ease-out), transform 0.2s var(--tp-ease-out);
}

.tp-btn-primary:hover {
    filter: brightness(1.06);
}

.tp-btn-primary:active {
    transform: scale(0.98);
}

.tp-btn-primary--gradient {
    background: var(--tp-gradient-cta);
    color: #fff;
    box-shadow: 0 4px 24px color-mix(in srgb, var(--tp-accent-a) 35%, transparent);
}

.tp-btn-primary--gradient:hover {
    filter: brightness(1.08);
}

.tp-btn-primary:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--tp-text) 92%, var(--tp-primary));
    outline-offset: 2px;
}

.tp-btn-primary--hero {
    padding-block: 0.9375rem;
    padding-inline: 1.5rem;
    font-size: 1rem;
    min-height: 2.75rem;
}

@media (max-width: 639px) {
    .tp-btn-primary--hero {
        min-height: 3rem;
    }
}

.tp-btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.8125rem 1.35rem;
    border-radius: var(--tp-radius-md);
    font-weight: 600;
    font-size: 0.9375rem;
    min-height: 2.75rem;
    background: rgba(255, 255, 255, 0.05);
    color: color-mix(in srgb, var(--tp-text) 94%, transparent);
    border: 1px solid var(--tp-glass-border-strong);
    text-decoration: none;
    touch-action: manipulation;
    transition:
        background 0.2s var(--tp-ease-out),
        border-color 0.2s var(--tp-ease-out),
        transform 0.2s var(--tp-ease-out);
}

.tp-btn-ghost:hover {
    background: rgba(255, 255, 255, 0.09);
    border-color: rgba(255, 255, 255, 0.12);
}

.tp-btn-ghost:active {
    transform: scale(0.99);
}

.tp-btn-ghost:focus-visible {
    outline: 2px solid var(--tp-primary);
    outline-offset: 2px;
}

/* Hero row: full-width tap targets on small screens only */
.tp-btn-ghost--hero-row {
    width: 100%;
}

@media (min-width: 640px) {
    .tp-btn-ghost--hero-row {
        width: auto;
    }
}

/* Card footer CTAs: always span card */
.tp-btn-ghost--fill {
    width: 100%;
}

.tp-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    border-radius: var(--tp-radius-md);
    color: color-mix(in srgb, var(--tp-text) 88%, transparent);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--tp-glass-border);
    text-decoration: none;
    touch-action: manipulation;
    transition: background 0.2s var(--tp-ease-out), color 0.2s var(--tp-ease-out), border-color 0.2s var(--tp-ease-out);
}

.tp-icon-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--tp-text);
    border-color: rgba(255, 255, 255, 0.1);
}

.tp-icon-btn:active {
    transform: scale(0.96);
}

.tp-icon-btn:focus-visible {
    outline: 2px solid var(--tp-primary);
    outline-offset: 2px;
}

.tp-footer {
    border-top: 1px solid var(--tp-glass-border);
    background: color-mix(in srgb, var(--tp-dark-900) 88%, black);
}

.tp-address {
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--tp-text-muted);
    overflow-wrap: anywhere;
}

.tp-divider-section {
    border-top: 1px solid var(--tp-glass-border);
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, transparent 100%);
}

.tp-branch-meta {
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--tp-text-muted);
    overflow-wrap: anywhere;
}

.tp-link-footer {
    color: var(--tp-text-muted);
    transition: color 0.2s var(--tp-ease-out);
    border-radius: var(--tp-radius-sm);
    padding: 0.125rem 0.25rem;
    margin: -0.125rem -0.25rem;
}

.tp-link-footer:hover {
    color: var(--tp-text);
}

.tp-link-footer:focus-visible {
    outline: 2px solid var(--tp-primary);
    outline-offset: 3px;
    color: var(--tp-text);
}

.tp-nav-caption {
    font-size: 0.8125rem;
    line-height: 1.3;
    color: var(--tp-text-subtle);
}

@media (min-width: 640px) {
    .tp-nav-caption {
        font-size: 0.875rem;
        line-height: 1.35;
    }
}

.tp-icon-accent {
    color: color-mix(in srgb, var(--tp-accent-b) 82%, var(--tp-accent-a));
}

.tp-icon-accent-soft {
    color: color-mix(in srgb, var(--tp-accent-a) 70%, var(--tp-text-muted));
}

.tp-prose-muted {
    color: var(--tp-text-muted);
}

.tp-card-title {
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--tp-text);
    overflow-wrap: anywhere;
}

.tp-footer-copy {
    overflow-wrap: anywhere;
}

.tp-border-section {
    border-top: 1px solid var(--tp-glass-border);
}

.tp-type-pill {
    flex: 1 1 14rem;
    max-width: 22rem;
    padding: 1rem 1.125rem;
    border-radius: var(--tp-radius-lg);
    border: 1px solid var(--tp-glass-border);
    background: var(--tp-glass-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--tp-shadow-sm);
}

.tp-type-pill-name {
    font-weight: 700;
    font-size: 0.9375rem;
    color: var(--tp-text);
    margin-bottom: 0.25rem;
}

.tp-type-pill-desc {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--tp-text-muted);
}

.tp-packages-group-title {
    font-size: 1.125rem;
    font-weight: 800;
    color: var(--tp-text);
    letter-spacing: -0.02em;
}

.tp-pkg-card {
    padding: 1.25rem 1.35rem;
    border-radius: var(--tp-radius-lg);
    border: 1px solid var(--tp-glass-border-strong);
    background: var(--tp-surface);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-height: 100%;
    box-shadow: var(--tp-shadow-sm);
    transition:
        border-color var(--tp-duration) var(--tp-timing),
        box-shadow var(--tp-duration) var(--tp-timing),
        transform var(--tp-duration) var(--tp-ease-out);
}

@media (hover: hover) and (pointer: fine) {
    .tp-pkg-card:hover {
        border-color: rgba(255, 255, 255, 0.12);
        box-shadow: var(--tp-shadow-md);
        transform: translateY(-2px);
    }
}

.tp-pkg-name {
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1.25;
    color: var(--tp-text);
    overflow-wrap: anywhere;
}

.tp-pkg-price-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem 0.75rem;
    margin-top: 0.25rem;
}

.tp-pkg-old {
    font-size: 0.875rem;
    color: var(--tp-text-subtle);
    text-decoration: line-through;
}

.tp-pkg-price {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--tp-text);
    letter-spacing: -0.02em;
}

.tp-pkg-meta {
    font-size: 0.8125rem;
    color: var(--tp-text-muted);
}

.tp-pkg-meta-sep {
    opacity: 0.5;
}

.tp-pkg-desc {
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--tp-text-muted);
    margin-top: 0.25rem;
    flex: 1;
}

.tp-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
}

@media (min-width: 640px) {
    .tp-gallery-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.65rem;
    }
}

@media (min-width: 1024px) {
    .tp-gallery-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.tp-gallery-cell {
    position: relative;
    aspect-ratio: 4 / 3;
    border: none;
    padding: 0;
    border-radius: var(--tp-radius-md);
    overflow: hidden;
    cursor: zoom-in;
    background: var(--tp-dark-800);
}

.tp-gallery-cell:focus-visible {
    outline: 2px solid var(--tp-accent-a);
    outline-offset: 3px;
}

.tp-gallery-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s var(--tp-ease-out);
}

@media (hover: hover) and (pointer: fine) {
    .tp-gallery-cell:hover .tp-gallery-img {
        transform: scale(1.04);
    }
}

@media (prefers-reduced-motion: reduce) {
    .tp-gallery-img {
        transition: none;
    }

    .tp-gallery-cell:hover .tp-gallery-img {
        transform: none;
    }
}

.tp-gallery-dialog {
    max-width: min(96vw, 56rem);
    width: 100%;
    border: 1px solid var(--tp-glass-border-strong);
    border-radius: var(--tp-radius-lg);
    background: var(--tp-dark-900);
    padding: 0;
    color: var(--tp-text);
}

.tp-gallery-dialog::backdrop {
    background: var(--tp-backdrop);
}

.tp-gallery-dialog-inner {
    position: relative;
    padding: 0.5rem;
}

.tp-gallery-close {
    position: absolute;
    top: 0.5rem;
    inset-inline-end: 0.5rem;
    z-index: 2;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--tp-radius-md);
    border: 1px solid var(--tp-glass-border);
    background: color-mix(in srgb, var(--tp-dark-800) 90%, black);
    color: var(--tp-text);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.tp-gallery-close:focus-visible {
    outline: 2px solid var(--tp-primary);
    outline-offset: 2px;
}

.tp-gallery-dialog-img {
    display: block;
    width: 100%;
    height: auto;
    max-height: min(85vh, 52rem);
    object-fit: contain;
    border-radius: var(--tp-radius-md);
}

.tp-empty-hint {
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--tp-text-muted);
    padding: 1rem 1.125rem;
    border-radius: var(--tp-radius-md);
    border: 1px solid var(--tp-glass-border);
    background: var(--tp-surface-raised);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* —— Mockup: nav, hero chips, feature row, systems, tabs, promo, testimonials, locations, footer —— */

.tp-icon-btn--round {
    border-radius: 9999px;
}

.tp-nav-scroll {
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--tp-accent-a) 35%, transparent) transparent;
}

.tp-nav-link {
    flex-shrink: 0;
    padding: 0.4rem 0.65rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--tp-text-muted);
    text-decoration: none;
    border-radius: 9999px;
    transition: color 0.2s var(--tp-ease-out), background 0.2s var(--tp-ease-out);
    white-space: nowrap;
}

@media (min-width: 640px) {
    .tp-nav-link {
        font-size: 0.875rem;
        padding: 0.45rem 0.85rem;
    }
}

.tp-nav-link:hover {
    color: var(--tp-text);
    background: rgba(255, 255, 255, 0.06);
}

.tp-nav-link:focus-visible {
    outline: 2px solid var(--tp-accent-a);
    outline-offset: 2px;
}

.tp-hero-chips {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tp-hero-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--tp-text-muted);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--tp-glass-border);
    border-radius: 9999px;
}

.tp-hero-chip i {
    font-size: 0.75rem;
    opacity: 0.85;
    color: color-mix(in srgb, var(--tp-accent-a) 75%, var(--tp-text-muted));
}

.tp-hero-visual-fallback {
    background: linear-gradient(
        160deg,
        color-mix(in srgb, var(--tp-dark-800) 90%, var(--tp-accent-a)),
        var(--tp-dark-900)
    );
    color: var(--tp-text-subtle);
}

.tp-feature-card {
    padding: 1.35rem 1.25rem;
    border-radius: var(--tp-radius-lg);
    border: 1px solid var(--tp-glass-border);
    background: color-mix(in srgb, var(--tp-dark-800) 92%, transparent);
    text-align: start;
}

.tp-feature-icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--tp-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.85rem;
    background: var(--tp-gradient-cta);
    color: #fff;
    font-size: 1.1rem;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--tp-accent-a) 28%, transparent);
}

.tp-feature-title {
    font-size: 1.0625rem;
    font-weight: 800;
    color: var(--tp-text);
    margin-bottom: 0.35rem;
    letter-spacing: -0.02em;
}

.tp-feature-desc {
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--tp-text-muted);
}

.tp-systems-scroll {
    -webkit-overflow-scrolling: touch;
}

.tp-system-card {
    position: relative;
    width: min(11rem, 72vw);
    min-height: 15rem;
    border-radius: var(--tp-radius-lg);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.tp-system-card-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        165deg,
        color-mix(in srgb, var(--tp-accent-a) 28%, var(--tp-dark-800)),
        color-mix(in srgb, var(--tp-accent-b) 18%, var(--tp-dark-900))
    );
    opacity: 0.95;
}

.tp-system-card-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 30%, rgba(0, 0, 0, 0.75) 100%);
}

.tp-system-card-inner {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    gap: 1rem;
}

.tp-system-icon {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #fff;
    font-size: 1.35rem;
}

.tp-system-name {
    margin-top: auto;
    font-weight: 800;
    font-size: 1rem;
    color: #fff;
    text-align: center;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6);
}

.tp-tab {
    padding: 0.55rem 1.15rem;
    font-size: 0.875rem;
    font-weight: 700;
    border-radius: 9999px;
    border: 1px solid var(--tp-glass-border);
    background: rgba(255, 255, 255, 0.04);
    color: var(--tp-text-muted);
    cursor: pointer;
    transition:
        background 0.2s var(--tp-ease-out),
        color 0.2s var(--tp-ease-out),
        border-color 0.2s var(--tp-ease-out),
        box-shadow 0.2s var(--tp-ease-out);
}

.tp-tab:hover {
    color: var(--tp-text);
    border-color: rgba(255, 255, 255, 0.12);
}

.tp-tab--active {
    background: var(--tp-gradient-cta);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 4px 20px color-mix(in srgb, var(--tp-accent-a) 35%, transparent);
}

.tp-tab:focus-visible {
    outline: 2px solid var(--tp-accent-a);
    outline-offset: 2px;
}

.tp-promo-card {
    border-radius: var(--tp-radius-xl);
    background: var(--tp-gradient-cta);
    color: #fff;
    box-shadow: 0 8px 40px color-mix(in srgb, var(--tp-accent-a) 38%, transparent);
}

.tp-promo-badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.35rem 0.65rem;
    border-radius: 9999px;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.tp-promo-title {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.02em;
}

.tp-promo-list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    opacity: 0.95;
}

.tp-promo-list li {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

.tp-promo-list i {
    margin-top: 0.2rem;
    opacity: 0.95;
}

.tp-promo-card .tp-btn-primary--gradient {
    background: #fff;
    color: var(--tp-accent-a);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.tp-promo-card .tp-btn-primary--gradient:hover {
    filter: brightness(1.03);
}

.tp-pkg-card {
    position: relative;
}

.tp-pkg-card--popular {
    border-color: color-mix(in srgb, var(--tp-accent-a) 55%, var(--tp-glass-border-strong));
    box-shadow:
        0 0 0 1px color-mix(in srgb, var(--tp-accent-a) 35%, transparent),
        0 8px 32px color-mix(in srgb, var(--tp-accent-a) 22%, transparent);
}

.tp-pkg-ribbon {
    position: absolute;
    top: 0.75rem;
    inset-inline-end: 0.75rem;
    font-size: 0.6875rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.25rem 0.5rem;
    border-radius: var(--tp-radius-sm);
    background: var(--tp-gradient-cta);
    color: #fff;
}

.tp-pkg-save {
    font-size: 0.8125rem;
    font-weight: 700;
    color: color-mix(in srgb, #4ade80 85%, var(--tp-text-muted));
    margin-top: 0.15rem;
}

.tp-testimonial-card {
    border-radius: var(--tp-radius-lg);
    border: 1px solid var(--tp-glass-border);
    background: color-mix(in srgb, var(--tp-dark-800) 94%, transparent);
}

.tp-testimonial-avatar {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--tp-text-muted);
}

.tp-testimonial-name {
    font-weight: 800;
    font-size: 0.9375rem;
    color: var(--tp-text);
}

.tp-testimonial-stars {
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    color: #fbbf24;
    margin-top: 0.15rem;
}

.tp-testimonial-quote {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--tp-text-muted);
}

.tp-location-cover {
    background: var(--tp-dark-700);
}

.tp-location-cover-fallback {
    background: linear-gradient(
        135deg,
        color-mix(in srgb, var(--tp-dark-700) 88%, var(--tp-accent-a)),
        var(--tp-dark-900)
    );
    color: var(--tp-text-subtle);
}

.tp-link-map {
    color: color-mix(in srgb, var(--tp-accent-b) 80%, var(--tp-text));
    text-decoration: none;
    border-radius: var(--tp-radius-sm);
    transition: color 0.2s var(--tp-ease-out);
}

.tp-link-map:hover {
    color: #fff;
}

.tp-link-map:focus-visible {
    outline: 2px solid var(--tp-accent-a);
    outline-offset: 3px;
}

.tp-footer--rich {
    background: linear-gradient(180deg, color-mix(in srgb, var(--tp-page-bg) 92%, black) 0%, #050608 100%);
}

.tp-footer-col-title {
    font-size: 0.6875rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--tp-text-subtle);
}

.tp-footer-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--tp-glass-border);
    color: var(--tp-text-muted);
    transition:
        background 0.2s var(--tp-ease-out),
        color 0.2s var(--tp-ease-out);
}

.tp-footer-social:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--tp-text);
}

.tp-footer-list a,
.tp-footer-contact a {
    color: var(--tp-text-muted);
    text-decoration: none;
    border-radius: var(--tp-radius-sm);
    transition: color 0.2s var(--tp-ease-out);
}

.tp-footer-list a:hover,
.tp-footer-contact a:hover {
    color: var(--tp-text);
}

.tp-footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

@media (prefers-reduced-motion: reduce) {
    .tp-tab {
        transition: none;
    }
}

/* Reference screenshot alignment pass */

:root {
    --tp-page-bg: #070b11;
    --tp-dark-900: #070b11;
    --tp-dark-800: #101722;
    --tp-dark-700: #192334;
    --tp-accent-a: #5265ff;
    --tp-accent-b: #7257f4;
    --tp-gradient-cta: linear-gradient(135deg, var(--tp-accent-a), var(--tp-accent-b));
    --tp-glass-bg: rgba(17, 24, 36, 0.68);
    --tp-glass-border: rgba(177, 197, 255, 0.11);
    --tp-glass-border-strong: rgba(177, 197, 255, 0.18);
    --tp-text: #f7f9ff;
    --tp-text-muted: #a8b2c7;
    --tp-text-subtle: #6f7b93;
    --tp-surface: rgba(18, 26, 39, 0.76);
    --tp-surface-raised: rgba(19, 28, 42, 0.9);
    --tp-shadow-sm: 0 10px 30px rgba(0, 0, 0, 0.24);
    --tp-shadow-md: 0 18px 50px rgba(0, 0, 0, 0.34);
    --tp-shadow-lg: 0 28px 90px rgba(0, 0, 0, 0.46);
}

.tp-page-body {
    min-height: 100vh;
    background: var(--tp-page-bg);
    letter-spacing: 0;
}

#hero,
#trust,
#systems,
#coaches,
#packages,
#gallery,
#locations,
#contact {
    scroll-margin-top: 7rem;
}

.tp-bg {
    background:
        radial-gradient(circle at 18% 8%, rgba(82, 101, 255, 0.16), transparent 24rem),
        radial-gradient(circle at 84% 44%, rgba(70, 113, 255, 0.12), transparent 26rem),
        linear-gradient(180deg, #05080d 0%, #08101a 44%, #070b11 100%);
}

.tp-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.24;
    background-image:
        radial-gradient(circle, rgba(114, 139, 255, 0.42) 0 1px, transparent 1.5px),
        radial-gradient(circle, rgba(255, 255, 255, 0.25) 0 1px, transparent 1.4px);
    background-position: 4rem 5rem, 11rem 14rem;
    background-size: 13rem 17rem, 19rem 23rem;
}

.tp-bg::after {
    background: linear-gradient(180deg, rgba(4, 7, 11, 0.28), transparent 34%, rgba(4, 7, 11, 0.72));
}

.tp-nav-glass {
    border-radius: 0;
    border-width: 0 0 1px;
    border-color: rgba(177, 197, 255, 0.1);
    background: linear-gradient(180deg, rgba(5, 8, 13, 0.82), rgba(5, 8, 13, 0.46));
    box-shadow: none;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.tp-logo-thumb {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.08);
}

.tp-nav-title,
.tp-nav-caption,
.tp-hero-title,
.tp-section-title,
.tp-card-title,
.tp-feature-title,
.tp-pkg-name,
.tp-pkg-price,
.tp-promo-title,
.tp-testimonial-name {
    letter-spacing: 0;
}

.tp-nav-title {
    font-size: 0.95rem;
    font-weight: 800;
}

.tp-nav-caption {
    font-size: 0.72rem;
}

.tp-icon-btn {
    width: 2.35rem;
    height: 2.35rem;
    min-width: 2.35rem;
    min-height: 2.35rem;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.08);
}

.tp-nav-link {
    position: relative;
    border-radius: 0;
    color: #8d97ad;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.55rem 0.72rem;
}

.tp-nav-link:hover {
    color: #f7f9ff;
    background: transparent;
}

.tp-nav-scroll .tp-nav-link:first-child {
    color: var(--tp-accent-a);
}

.tp-nav-scroll .tp-nav-link:first-child::after {
    content: "";
    position: absolute;
    inset-inline: 0.72rem;
    bottom: -0.72rem;
    height: 2px;
    border-radius: 9999px;
    background: var(--tp-accent-a);
    box-shadow: 0 0 18px rgba(82, 101, 255, 0.65);
}

.tp-nav-scroll {
    scrollbar-width: none;
}

.tp-nav-scroll::-webkit-scrollbar {
    display: none;
}

.tp-hero-section {
    min-height: 25rem;
    padding-top: 1.65rem;
    padding-bottom: 1.25rem !important;
    isolation: isolate;
    overflow: hidden;
}

.tp-hero-section::before,
.tp-hero-section::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.tp-hero-section::before {
    z-index: -2;
    inset: -7rem 0 -3rem;
    opacity: 0.82;
    background-image:
        linear-gradient(90deg, rgba(7, 11, 17, 0.12) 0%, rgba(7, 11, 17, 0.52) 42%, rgba(7, 11, 17, 0.97) 82%),
        var(--tp-hero-image);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: left center;
    filter: saturate(0.9) contrast(1.05);
}

.tp-hero-section::after {
    z-index: -1;
    inset: auto 0 0;
    height: 11rem;
    background: linear-gradient(180deg, transparent, var(--tp-page-bg));
}

.tp-hero-glow {
    display: none;
}

.tp-hero-section > .max-w-6xl {
    min-height: 22rem;
    align-items: start;
}

.tp-hero-art-wrap {
    display: none !important;
}

.tp-hero-kicker {
    color: #6677ff;
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.35;
    text-shadow: 0 0 24px rgba(82, 101, 255, 0.34);
}

.tp-hero-title {
    font-size: 3.35rem;
    line-height: 0.98;
    font-weight: 800;
    color: #ffffff;
    text-shadow: 0 12px 42px rgba(0, 0, 0, 0.55);
}

.tp-hero-lead {
    max-width: 31rem;
    color: #6e7dff;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.65;
}

.tp-hero-chips {
    display: grid;
    grid-template-columns: repeat(4, minmax(4.5rem, 1fr));
    max-width: 36rem;
    gap: 0.75rem;
    padding-top: 0.35rem;
}

.tp-hero-chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.42rem;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #b5bfd4;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
}

.tp-hero-chip i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.72rem;
    background: rgba(82, 101, 255, 0.13);
    border: 1px solid rgba(130, 148, 255, 0.2);
    color: #8fa0ff;
    font-size: 1rem;
}

.tp-btn-primary--gradient {
    background: linear-gradient(135deg, #5568ff 0%, #755bf7 100%);
    box-shadow: 0 10px 30px rgba(82, 101, 255, 0.34);
}

.tp-btn-primary,
.tp-btn-ghost {
    border-radius: 0.62rem;
}

.tp-feature-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid rgba(177, 197, 255, 0.15);
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(23, 33, 50, 0.84), rgba(16, 23, 35, 0.78));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 18px 60px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.tp-feature-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 1rem;
    row-gap: 0.14rem;
    padding: 1.25rem 1.45rem;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.tp-feature-card:not(:last-child) {
    border-inline-end: 1px solid rgba(177, 197, 255, 0.1);
}

.tp-feature-icon {
    grid-row: 1 / span 2;
    flex: 0 0 auto;
    width: 3rem;
    height: 3rem;
    margin: 0;
    border-radius: 9999px;
    background: rgba(82, 101, 255, 0.14);
    border: 1px solid rgba(130, 148, 255, 0.24);
    color: #7185ff;
    box-shadow: inset 0 0 20px rgba(82, 101, 255, 0.18);
}

.tp-feature-title {
    grid-column: 2;
    margin-bottom: 0.18rem;
    font-size: 0.94rem;
}

.tp-feature-desc {
    grid-column: 2;
    font-size: 0.76rem;
    color: #7e8aa2;
}

.tp-divider-section,
.tp-border-section {
    border-top: 1px solid rgba(177, 197, 255, 0.08);
    background: linear-gradient(180deg, rgba(5, 9, 15, 0.34), rgba(5, 9, 15, 0));
}

.tp-section-heading-center {
    text-align: center;
}

.tp-section-heading-center .tp-section-sub {
    margin-inline: auto;
}

.tp-section-eyebrow {
    color: #6677ff;
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: none;
}

.tp-section-title {
    font-size: 2rem;
    line-height: 1.2;
}

.tp-section-sub {
    color: #7f8aa2;
}

.tp-systems-scroll {
    scrollbar-width: none;
}

.tp-systems-scroll::-webkit-scrollbar {
    display: none;
}

.tp-system-card {
    width: min(11.75rem, 76vw);
    min-height: 12.4rem;
    border-radius: 0.9rem;
    border-color: rgba(177, 197, 255, 0.18);
    background: #111927;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.26);
}

.tp-system-card-bg {
    background-image:
        linear-gradient(180deg, rgba(6, 10, 16, 0.26) 0%, rgba(6, 10, 16, 0.52) 46%, rgba(6, 10, 16, 0.9) 100%),
        var(--tp-system-bg),
        linear-gradient(135deg, #172235, #0b111b);
    background-size: cover;
    background-position: center;
}

.tp-system-card-bg::after {
    background: radial-gradient(circle at 50% 82%, rgba(82, 101, 255, 0.22), transparent 42%);
}

.tp-system-card-inner {
    justify-content: flex-end;
    padding: 1.05rem 0.85rem;
    gap: 0.48rem;
}

.tp-system-icon {
    width: 2.6rem;
    height: 2.6rem;
    background: rgba(82, 101, 255, 0.64);
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.35);
    font-size: 1.05rem;
}

.tp-system-name {
    margin-top: 0;
    font-size: 0.9rem;
    line-height: 1.25;
}

.tp-coaches-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1rem;
}

.tp-coach-card {
    overflow: hidden;
    border-radius: 0.95rem;
    border: 1px solid rgba(177, 197, 255, 0.14);
    background: linear-gradient(180deg, rgba(21, 30, 45, 0.92), rgba(13, 20, 31, 0.94));
    box-shadow: 0 18px 52px rgba(0, 0, 0, 0.24);
}

.tp-coach-photo-wrap {
    position: relative;
    display: block;
    aspect-ratio: 4 / 5;
    background: #111927;
    color: inherit;
    text-decoration: none;
}

.tp-coach-photo-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 38%, rgba(7, 11, 17, 0.84) 100%);
}

.tp-coach-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.92) contrast(1.04);
}

.tp-coach-rating {
    position: absolute;
    z-index: 1;
    inset-inline-start: 0.85rem;
    bottom: 0.85rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.36rem 0.58rem;
    border-radius: 9999px;
    background: rgba(7, 11, 17, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #fbbf24;
    font-size: 0.78rem;
    font-weight: 800;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.tp-coach-body {
    padding: 1.1rem;
}

.tp-coach-role {
    color: #6677ff;
    font-size: 0.75rem;
    font-weight: 800;
    margin-bottom: 0.28rem;
}

.tp-coach-name {
    color: #f7f9ff;
    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1.25;
    margin-bottom: 0.45rem;
    overflow-wrap: anywhere;
}

.tp-coach-name a {
    color: inherit;
    text-decoration: none;
}

.tp-coach-name a:hover {
    color: #ffffff;
}

.tp-coach-branch {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: #8a96ad;
    font-size: 0.82rem;
    margin-bottom: 0.78rem;
}

.tp-coach-stats {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.8rem;
}

.tp-coach-stats span {
    display: flex;
    align-items: center;
    gap: 0.42rem;
    color: #a9b4c8;
    font-size: 0.78rem;
    font-weight: 700;
}

.tp-coach-stats i,
.tp-coach-branch i {
    color: #7185ff;
}

.tp-coach-profile-link,
.tp-coach-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: 100%;
    min-height: 2.45rem;
    margin-top: 1rem;
    border-radius: 0.62rem;
    border: 1px solid rgba(177, 197, 255, 0.15);
    background: rgba(255, 255, 255, 0.055);
    color: #f7f9ff;
    font-size: 0.83rem;
    font-weight: 800;
    text-decoration: none;
    transition: background 0.2s var(--tp-ease-out), border-color 0.2s var(--tp-ease-out), transform 0.2s var(--tp-ease-out);
}

.tp-coach-profile-link {
    background: linear-gradient(135deg, rgba(82, 101, 255, 0.88), rgba(229, 62, 62, 0.72));
    border-color: rgba(255, 255, 255, 0.16);
}

.tp-coach-profile-link:hover,
.tp-coach-link:hover {
    background: rgba(82, 101, 255, 0.16);
    border-color: rgba(130, 148, 255, 0.26);
}

.tp-coach-profile-link:active,
.tp-coach-link:active {
    transform: scale(0.99);
}

@media (min-width: 640px) {
    .tp-coaches-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .tp-coaches-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

#packages {
    background:
        radial-gradient(circle at 25% 0%, rgba(82, 101, 255, 0.13), transparent 26rem),
        linear-gradient(180deg, rgba(8, 16, 28, 0.9), rgba(7, 11, 17, 0.72));
}

.tp-tabs-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.18rem;
    width: min(36rem, 100%);
    margin-inline: auto;
    padding: 0.28rem;
    border: 1px solid rgba(177, 197, 255, 0.12);
    border-radius: 0.65rem;
    background: rgba(17, 25, 38, 0.84);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.tp-tab {
    flex: 1 1 7rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: #a5afc3;
    padding: 0.58rem 0.8rem;
    font-size: 0.83rem;
}

.tp-tab--active {
    background: var(--tp-gradient-cta);
    box-shadow: 0 8px 22px rgba(82, 101, 255, 0.34);
}

.tp-pricing-layout {
    direction: ltr;
    align-items: stretch;
}

.tp-pricing-layout > * {
    direction: rtl;
}

.tp-promo-card {
    min-height: 100%;
    border-radius: 0.95rem;
    background:
        radial-gradient(circle at 20% 0%, rgba(255, 255, 255, 0.18), transparent 14rem),
        linear-gradient(155deg, #3948bf 0%, #6d55f2 100%);
    box-shadow: 0 18px 56px rgba(82, 101, 255, 0.26);
    overflow: hidden;
}

.tp-promo-badge {
    border-radius: 0.55rem;
    letter-spacing: 0;
}

.tp-promo-title {
    font-size: 1.65rem;
}

.tp-promo-list {
    color: rgba(255, 255, 255, 0.82);
}

.tp-pkg-card {
    min-height: 11.4rem;
    align-items: center;
    text-align: center;
    gap: 0.58rem;
    padding: 1.25rem 1rem;
    border-radius: 0.82rem;
    background: linear-gradient(180deg, rgba(21, 30, 45, 0.94), rgba(16, 24, 36, 0.9));
    border-color: rgba(177, 197, 255, 0.15);
}

.tp-pkg-name {
    font-size: 0.88rem;
    color: #aab5cb;
}

.tp-pkg-meta {
    color: #758199;
}

.tp-pkg-price-row {
    justify-content: center;
}

.tp-pkg-price {
    font-size: 1.42rem;
    color: #f7f9ff;
}

.tp-pkg-desc {
    text-align: center;
    color: #8994aa;
}

.tp-pkg-card .tp-btn-ghost {
    margin-top: auto;
    min-height: 2.35rem;
    padding-block: 0.55rem;
    font-size: 0.8rem;
}

.tp-pkg-card--popular {
    border-color: rgba(82, 101, 255, 0.88);
    box-shadow: inset 0 0 0 1px rgba(82, 101, 255, 0.36), 0 18px 44px rgba(82, 101, 255, 0.18);
}

.tp-pkg-ribbon {
    top: -0.75rem;
    inset-inline-end: 0.75rem;
    border-radius: 0.55rem;
    letter-spacing: 0;
    box-shadow: 0 10px 22px rgba(82, 101, 255, 0.28);
}

.tp-testimonial-card {
    background: linear-gradient(180deg, rgba(22, 31, 46, 0.88), rgba(18, 26, 39, 0.86));
    border-color: rgba(177, 197, 255, 0.12);
    box-shadow: 0 16px 44px rgba(0, 0, 0, 0.22);
}

.tp-testimonial-avatar {
    background: rgba(255, 255, 255, 0.09);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.tp-testimonial-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.45rem;
    margin-top: 1.25rem;
}

.tp-testimonial-dots span {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 9999px;
    background: rgba(177, 197, 255, 0.56);
}

.tp-testimonial-dots .tp-testimonial-dot--active {
    width: 2.35rem;
    background: #b9c5ff;
}

.tp-location-split {
    border-radius: 0.95rem;
    border-color: rgba(177, 197, 255, 0.13) !important;
    background: linear-gradient(180deg, rgba(21, 30, 45, 0.92), rgba(16, 24, 36, 0.88)) !important;
    box-shadow: 0 18px 52px rgba(0, 0, 0, 0.24);
}

.tp-footer--rich {
    background: linear-gradient(180deg, rgba(6, 10, 16, 0.86), #05070b 100%);
}

.tp-footer-col-title {
    color: #f2f5ff;
    letter-spacing: 0;
    text-transform: none;
    font-size: 0.95rem;
}

.tp-footer--rich > .max-w-6xl:last-child {
    padding: 0.72rem 1rem;
    border-radius: 9999px;
    background: rgba(0, 0, 0, 0.28);
    border-top: 1px solid rgba(177, 197, 255, 0.08);
}

@media (min-width: 1024px) {
    .tp-nav-glass > div {
        display: grid;
        grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr) minmax(10rem, 14rem);
        align-items: center;
        position: relative;
        min-height: 3rem;
    }

    .tp-nav-glass > div > div:first-child {
        grid-column: 1 / -1;
        grid-row: 1;
        width: 100% !important;
        display: flex !important;
        flex-direction: row-reverse !important;
        align-items: center !important;
        justify-content: space-between !important;
        direction: ltr;
        pointer-events: none;
    }

    .tp-nav-glass > div > div:first-child > * {
        pointer-events: auto;
    }

    .tp-nav-glass > div > div:first-child > div:first-child {
        direction: rtl;
    }

    .tp-nav-scroll {
        grid-column: 2;
        grid-row: 1;
        justify-content: center !important;
        overflow: visible !important;
        position: relative;
        z-index: 2;
        padding-bottom: 0 !important;
    }

    .tp-nav-glass {
        padding-block: 0.85rem;
    }

    .tp-hero-visual {
        display: none;
    }
}

#trust {
    padding-top: 0 !important;
}

@media (max-width: 1023px) {
    .tp-hero-section {
        min-height: auto;
        padding-top: 3rem;
        padding-bottom: 3rem !important;
    }

    .tp-hero-section::before {
        opacity: 0.48;
        background-image:
            linear-gradient(180deg, rgba(7, 11, 17, 0.78) 0%, rgba(7, 11, 17, 0.92) 64%, rgba(7, 11, 17, 0.98) 100%),
            var(--tp-hero-image);
        background-position: center top;
    }

    .tp-hero-section > .max-w-6xl {
        min-height: auto;
    }

    .tp-hero-title {
        font-size: 2.75rem;
    }

    .tp-feature-strip {
        grid-template-columns: 1fr;
    }

    .tp-feature-card:not(:last-child) {
        border-inline-end: 0;
        border-block-end: 1px solid rgba(177, 197, 255, 0.1);
    }
}

@media (max-width: 640px) {
    .tp-nav-scroll .tp-nav-link:first-child::after {
        bottom: -0.35rem;
    }

    .tp-hero-kicker {
        font-size: 1rem;
    }

    .tp-hero-title {
        font-size: 2.25rem;
    }

    .tp-hero-lead {
        font-size: 1.02rem;
    }

    .tp-hero-chips {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 100%;
    }

    .tp-section-title {
        font-size: 1.65rem;
    }

    .tp-tabs-wrap {
        width: 100%;
    }

    .tp-tab {
        flex-basis: calc(50% - 0.18rem);
    }
}

/* Portfolio 2.1 — cinematic, conversion-first public design layer. */
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) {
    --tp-accent-a: var(--tp-primary);
    --tp-accent-b: color-mix(in srgb, var(--tp-primary) 68%, #ffbd79);
    --tp-gradient-cta: linear-gradient(135deg, var(--tp-accent-a), var(--tp-accent-b));
    --tp-surface: rgba(14, 21, 32, 0.82);
    --tp-surface-strong: #101824;
    --tp-line: rgba(255, 255, 255, 0.09);
    --tp-muted: #9ba7b9;
    background: #070a0f;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-bg {
    background:
        radial-gradient(circle at 82% 7%, color-mix(in srgb, var(--tp-primary) 15%, transparent) 0, transparent 27rem),
        radial-gradient(circle at 7% 38%, rgba(50, 76, 120, 0.13) 0, transparent 32rem),
        linear-gradient(180deg, #070a0f 0%, #080d14 48%, #06090e 100%);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-bg::before {
    opacity: 0.16;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(180deg, #000, transparent 78%);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-nav-glass {
    max-width: 80rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1.25rem;
    background: rgba(7, 11, 17, 0.76);
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(22px) saturate(135%);
    -webkit-backdrop-filter: blur(22px) saturate(135%);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-logo-thumb {
    width: 2.65rem;
    height: 2.65rem;
    border: 1px solid color-mix(in srgb, var(--tp-primary) 32%, transparent);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--tp-primary) 7%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-nav-link {
    padding: 0.62rem 0.82rem;
    border-radius: 0.7rem;
    color: #9aa5b7;
    transition: color 180ms ease, background 180ms ease;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-nav-link:hover,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-nav-link.is-active {
    color: #fff;
    background: color-mix(in srgb, var(--tp-primary) 12%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-nav-scroll .tp-nav-link:first-child::after {
    display: none;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-language-switch,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-icon-btn,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-mobile-menu-button {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.055);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) main > section > .max-w-6xl,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-footer > .max-w-6xl {
    max-width: 80rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section {
    min-height: calc(100svh - 5.25rem);
    padding-block: clamp(2rem, 5vh, 4.5rem) clamp(2.5rem, 6vh, 5rem) !important;
    overflow: visible;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section::before {
    inset: -6rem 0 -2rem;
    opacity: 0.92;
    background-image:
        linear-gradient(90deg, rgba(7, 10, 15, 0.96) 0%, rgba(7, 10, 15, 0.72) 42%, rgba(7, 10, 15, 0.95) 100%),
        var(--tp-hero-image);
    filter: saturate(0.78) contrast(1.08);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section::after {
    height: 16rem;
    background: linear-gradient(180deg, transparent, #070a0f 94%);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section > .max-w-6xl {
    max-width: 80rem;
    min-height: min(42rem, calc(100svh - 10rem));
    grid-template-columns: minmax(0, 1.08fr) minmax(22rem, 0.92fr);
    gap: clamp(3rem, 7vw, 7rem);
    align-items: center;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-content {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-kicker,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-section-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: color-mix(in srgb, var(--tp-primary) 74%, #fff);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-kicker::before,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-section-eyebrow::before {
    content: "";
    width: 1.75rem;
    height: 1px;
    background: currentColor;
    box-shadow: 0 0 12px currentColor;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-title {
    max-width: 12ch;
    font-size: clamp(4rem, 6.8vw, 6.75rem);
    font-weight: 800;
    line-height: 0.92;
    letter-spacing: -0.055em;
    text-wrap: balance;
    text-shadow: 0 18px 55px rgba(0, 0, 0, 0.55);
}

html[dir="rtl"] body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-title {
    letter-spacing: -0.025em;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-lead {
    max-width: 42rem;
    color: #c3cad6;
    font-size: clamp(1rem, 1.35vw, 1.18rem);
    font-weight: 500;
    line-height: 1.85;
    -webkit-line-clamp: 3;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-chips {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    max-width: 43rem;
    gap: 0.65rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-chip {
    min-height: 4.65rem;
    padding: 0.75rem 0.55rem;
    border: 1px solid rgba(255, 255, 255, 0.075);
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.035);
    color: #c2cad6;
    font-size: 0.72rem;
    backdrop-filter: blur(12px);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-chip i {
    width: 2.1rem;
    height: 2.1rem;
    border: 0;
    background: color-mix(in srgb, var(--tp-primary) 13%, transparent);
    color: color-mix(in srgb, var(--tp-primary) 72%, #fff);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-btn-primary,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-btn-ghost {
    min-height: 3.25rem;
    border-radius: 0.9rem;
    padding-inline: 1.15rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-btn-primary--gradient {
    color: #fff;
    background: var(--tp-gradient-cta);
    box-shadow: 0 14px 34px color-mix(in srgb, var(--tp-primary) 28%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-address {
    color: #8f9aac;
    font-size: 0.84rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-art-wrap {
    display: block !important;
    position: relative;
    width: min(28rem, 100%);
    justify-self: center;
    padding: 1rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-art-wrap::before {
    content: "";
    position: absolute;
    inset: 9% -9% 7%;
    border-radius: 44% 56% 50% 50%;
    background: color-mix(in srgb, var(--tp-primary) 22%, transparent);
    filter: blur(56px);
    opacity: 0.82;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-visual {
    display: block !important;
    position: relative;
    width: 100%;
    max-height: 34rem !important;
    aspect-ratio: 4 / 5 !important;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 2rem 2rem 7rem 2rem;
    background: linear-gradient(155deg, #162235, #0c121c);
    box-shadow: 0 34px 80px rgba(0, 0, 0, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transform: rotate(-1.5deg);
}

html[dir="rtl"] body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-visual {
    border-radius: 2rem 2rem 2rem 7rem;
    transform: rotate(1.5deg);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-visual-fallback {
    background:
        radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--tp-primary) 16%, transparent), transparent 26%),
        repeating-linear-gradient(135deg, transparent 0 19px, rgba(255, 255, 255, 0.022) 20px 21px),
        linear-gradient(155deg, #162235, #0b111a);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-visual-fallback > span {
    width: 5.2rem;
    height: 5.2rem;
    border-radius: 1.55rem;
    color: #fff;
    background: var(--tp-gradient-cta);
    box-shadow: 0 18px 45px color-mix(in srgb, var(--tp-primary) 33%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof {
    position: absolute;
    z-index: 4;
    min-width: 9rem;
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.72rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 1rem;
    color: #fff;
    background: rgba(8, 13, 20, 0.84);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.38);
    backdrop-filter: blur(18px);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof--rating {
    inset-inline-start: -1.5rem;
    top: 18%;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof--count {
    inset-inline-end: -1.25rem;
    bottom: 13%;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof-icon {
    width: 2.25rem;
    height: 2.25rem;
    display: grid;
    place-items: center;
    border-radius: 0.72rem;
    color: color-mix(in srgb, var(--tp-primary) 72%, #fff);
    background: color-mix(in srgb, var(--tp-primary) 14%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof > span:last-child {
    display: grid;
    line-height: 1.1;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof strong {
    font-size: 1.05rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof small {
    margin-top: 0.2rem;
    color: #93a0b2;
    font-size: 0.68rem;
    font-weight: 700;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) main > section:not(#hero) {
    position: relative;
    padding-block: clamp(4.5rem, 7.5vw, 7rem) !important;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-divider-section,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-border-section {
    border-top-color: rgba(255, 255, 255, 0.065);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 70%);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-section-heading-center {
    margin-bottom: clamp(2.25rem, 4vw, 3.5rem) !important;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-section-title {
    margin-top: 0.6rem;
    color: #f7f9fc;
    font-size: clamp(2.35rem, 4.5vw, 4rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

html[dir="rtl"] body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-section-title {
    letter-spacing: -0.015em;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-section-sub {
    max-width: 42rem;
    color: #909bad;
    font-size: 0.98rem;
    line-height: 1.75;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) #about {
    background:
        radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--tp-primary) 9%, transparent), transparent 26rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.015), transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-v2-story {
    display: grid;
    grid-template-columns: minmax(15rem, 0.7fr) minmax(0, 1.55fr);
    gap: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--tp-line);
    border-radius: 1.75rem;
    background: var(--tp-surface);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.26);
    backdrop-filter: blur(18px);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-identity {
    position: relative;
    min-height: 25rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    padding: 2rem;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.22), transparent 32%),
        var(--tp-gradient-cta);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-identity::after {
    content: "";
    position: absolute;
    width: 18rem;
    height: 18rem;
    inset-inline-end: -7rem;
    bottom: -8rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    box-shadow: 0 0 0 2.5rem rgba(255, 255, 255, 0.04), 0 0 0 5rem rgba(255, 255, 255, 0.025);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-identity span {
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-identity i {
    font-size: 3.2rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-identity strong {
    position: relative;
    z-index: 1;
    max-width: 10ch;
    font-size: 1.55rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-content {
    padding: clamp(2rem, 5vw, 4.5rem);
    align-self: center;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-v2-story-copy {
    color: #aeb8c7;
    font-size: 1rem;
    line-height: 1.95;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-details summary {
    padding: 0;
    background: transparent;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-toggle {
    width: fit-content;
    margin-top: 1.25rem;
    padding: 0.72rem 1rem;
    border: 1px solid color-mix(in srgb, var(--tp-primary) 28%, transparent);
    border-radius: 999px;
    color: #fff;
    background: color-mix(in srgb, var(--tp-primary) 10%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-feature-strip {
    max-width: 80rem;
    border-radius: 1.4rem;
    border-color: var(--tp-line);
    background: rgba(15, 23, 35, 0.72);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-feature-card {
    padding: 1.5rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-feature-icon {
    color: color-mix(in srgb, var(--tp-primary) 72%, #fff);
    border-color: color-mix(in srgb, var(--tp-primary) 22%, transparent);
    background: color-mix(in srgb, var(--tp-primary) 11%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-systems-scroll {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: 1rem !important;
    overflow: visible !important;
    margin-inline: 0 !important;
    padding: 0 !important;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-system-card {
    width: auto;
    min-height: 16.5rem;
    border-radius: 1.35rem;
    border-color: var(--tp-line);
    box-shadow: 0 20px 55px rgba(0, 0, 0, 0.28);
    transition: transform 260ms ease, border-color 260ms ease, box-shadow 260ms ease;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-system-card:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--tp-primary) 38%, transparent);
    box-shadow: 0 28px 65px rgba(0, 0, 0, 0.4);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-system-card-bg::after {
    background: radial-gradient(circle at 50% 78%, color-mix(in srgb, var(--tp-primary) 22%, transparent), transparent 44%);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-system-card-inner {
    align-items: flex-start;
    padding: 1.35rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-system-icon {
    color: #fff;
    background: var(--tp-gradient-cta);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-system-name {
    font-size: 1rem;
    text-align: start;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coaches-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    max-width: 80rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-card {
    display: grid;
    grid-template-columns: minmax(12rem, 0.82fr) minmax(0, 1.18fr);
    min-height: 24rem;
    border-radius: 1.5rem;
    border-color: var(--tp-line);
    background: linear-gradient(145deg, rgba(19, 28, 42, 0.95), rgba(10, 16, 25, 0.96));
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-photo-wrap {
    min-height: 100%;
    aspect-ratio: auto;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-photo-wrap::after {
    background: linear-gradient(180deg, transparent 42%, rgba(7, 11, 17, 0.7));
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.35rem, 3vw, 2rem);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-role,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-stats i,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-branch i {
    color: color-mix(in srgb, var(--tp-primary) 72%, #fff);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-name {
    font-size: 1.55rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-profile-link {
    margin-top: auto;
    background: var(--tp-gradient-cta);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) #packages {
    background:
        radial-gradient(circle at 86% 6%, color-mix(in srgb, var(--tp-primary) 14%, transparent), transparent 28rem),
        linear-gradient(180deg, #0a111a, #070b11);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-tabs-wrap {
    width: fit-content;
    max-width: 100%;
    padding: 0.38rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.045);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-tab {
    min-width: 8rem;
    border-radius: 999px;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pricing-layout {
    gap: 1.25rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-promo-card {
    min-height: 25rem;
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at 25% 8%, rgba(255, 255, 255, 0.24), transparent 13rem),
        var(--tp-gradient-cta);
    box-shadow: 0 26px 70px color-mix(in srgb, var(--tp-primary) 24%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pricing-plans-col > .grid {
    height: 100%;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)) !important;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pricing-plans-col:has(.tp-pkg-card:only-child) > .grid {
    grid-template-columns: minmax(18rem, 31rem) !important;
    justify-content: center;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pkg-card {
    min-height: 25rem;
    align-items: flex-start;
    padding: 2rem 1.6rem;
    border-radius: 1.5rem;
    text-align: start;
    background:
        radial-gradient(circle at 85% 8%, color-mix(in srgb, var(--tp-primary) 10%, transparent), transparent 15rem),
        linear-gradient(155deg, rgba(21, 31, 47, 0.97), rgba(11, 17, 27, 0.98));
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pkg-card--popular {
    border-color: color-mix(in srgb, var(--tp-primary) 62%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tp-primary) 23%, transparent), 0 24px 60px color-mix(in srgb, var(--tp-primary) 13%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pkg-name {
    color: #fff;
    font-size: 1.2rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pkg-price-row {
    justify-content: flex-start;
    margin-block: 1rem;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pkg-price {
    font-size: clamp(1.8rem, 3vw, 2.5rem);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pkg-desc {
    text-align: start;
    line-height: 1.75;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pkg-ribbon {
    color: #fff;
    background: var(--tp-gradient-cta);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-rating-summary {
    position: relative;
    overflow: hidden;
    padding: clamp(2.5rem, 6vw, 5rem);
    border-radius: 1.75rem;
    border-color: var(--tp-line);
    background:
        radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--tp-primary) 17%, transparent), transparent 52%),
        linear-gradient(145deg, rgba(20, 30, 45, 0.96), rgba(9, 15, 24, 0.98));
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-rating-score {
    color: color-mix(in srgb, var(--tp-primary) 70%, #ffd476);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-gallery-cell {
    border-radius: 1.35rem;
    border-color: var(--tp-line);
    box-shadow: 0 22px 55px rgba(0, 0, 0, 0.26);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-gallery-fallback {
    background:
        radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--tp-primary) 15%, transparent), transparent 34%),
        linear-gradient(145deg, #152134, #0b111b);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-gallery-fallback i,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-location-kicker,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-location-map-overlay i,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-location-map-hint i {
    color: color-mix(in srgb, var(--tp-primary) 72%, #fff);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-primary-location,
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-location-split {
    border-radius: 1.5rem;
    border-color: var(--tp-line) !important;
    background: linear-gradient(145deg, rgba(18, 27, 41, 0.97), rgba(9, 15, 24, 0.98)) !important;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-map-surface-pin {
    background: var(--tp-gradient-cta);
    box-shadow: 0 12px 30px color-mix(in srgb, var(--tp-primary) 36%, transparent), 0 0 0 0.6rem color-mix(in srgb, var(--tp-primary) 9%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-location-directions {
    background: var(--tp-gradient-cta);
    box-shadow: 0 14px 32px color-mix(in srgb, var(--tp-primary) 22%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-footer--rich {
    padding-top: 5rem;
    background:
        radial-gradient(circle at 85% 0%, color-mix(in srgb, var(--tp-primary) 9%, transparent), transparent 24rem),
        #05080c;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-footer-social:hover {
    color: #fff;
    border-color: color-mix(in srgb, var(--tp-primary) 42%, transparent);
    background: color-mix(in srgb, var(--tp-primary) 12%, transparent);
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) :is(a, button, summary):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--tp-primary) 70%, #fff);
    outline-offset: 3px;
}

@media (max-width: 1100px) {
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section > .max-w-6xl {
        grid-template-columns: minmax(0, 1.1fr) minmax(19rem, 0.9fr);
        gap: 2.5rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-title {
        font-size: clamp(3.7rem, 7vw, 5rem);
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-card {
        grid-template-columns: minmax(10rem, 0.8fr) minmax(0, 1.2fr);
    }
}

@media (max-width: 900px) {
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section {
        min-height: auto;
        padding-top: 2rem !important;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section > .max-w-6xl {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-content {
        order: 1;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-art-wrap {
        order: 2;
        width: min(25rem, 86vw);
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-v2-story {
        grid-template-columns: minmax(12rem, 0.65fr) minmax(0, 1.35fr);
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coaches-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-nav-glass {
        border-radius: 1rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-mobile-nav {
        padding: 0.75rem;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 0.9rem;
        background: rgba(255, 255, 255, 0.035);
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section {
        padding-block: 1.25rem 3.5rem !important;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section > .max-w-6xl {
        gap: 2rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-title {
        max-width: 100%;
        font-size: clamp(3rem, 15vw, 4.25rem);
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-lead {
        font-size: 0.96rem;
        line-height: 1.75;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-chips {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-chip {
        min-height: 4.25rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-art-wrap {
        width: 100%;
        padding: 0.5rem 1rem 1.5rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-visual {
        width: min(19rem, 88vw);
        max-height: 24rem !important;
        margin-inline: auto;
        border-radius: 1.5rem 1.5rem 4rem 1.5rem;
    }

    html[dir="rtl"] body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-visual {
        border-radius: 1.5rem 1.5rem 1.5rem 4rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof--rating {
        inset-inline-start: 0;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-proof--count {
        inset-inline-end: 0;
        bottom: 0;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) main > section:not(#hero) {
        padding-block: 4.5rem !important;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-section-title {
        font-size: clamp(2.15rem, 10vw, 3rem);
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-v2-story {
        grid-template-columns: 1fr;
        border-radius: 1.35rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-identity {
        min-height: 11rem;
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: 1rem;
        padding: 1.5rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-identity i {
        font-size: 2rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-identity strong {
        font-size: 1.15rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-story-content {
        padding: 1.5rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-systems-scroll {
        display: flex !important;
        gap: 0.8rem !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        margin-inline: -1rem !important;
        padding-inline: 1rem !important;
        padding-bottom: 0.5rem !important;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-system-card {
        width: min(17rem, 78vw);
        min-height: 19rem;
        scroll-snap-align: center;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-card {
        grid-template-columns: minmax(8.5rem, 0.8fr) minmax(0, 1.2fr);
        min-height: 22rem;
        border-radius: 1.25rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-body {
        padding: 1.1rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-name {
        font-size: 1.2rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-stats {
        gap: 0.35rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-profile-link,
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-coach-link {
        font-size: 0.75rem;
        padding-inline: 0.55rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pricing-layout {
        display: grid;
        grid-template-columns: 1fr;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-promo-card,
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-pkg-card {
        min-height: 22rem;
        border-radius: 1.25rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-tabs-wrap {
        width: 100%;
        border-radius: 1rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-tab {
        min-width: 0;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-primary-location,
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-location-split {
        border-radius: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-system-card,
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-location-split,
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-visual {
        transition: none;
        transform: none;
    }
}

/* Public portfolio UX controls */
.tp-language-switch,
.tp-mobile-menu-button {
    min-height: 2.5rem;
    border: 1px solid rgba(177, 197, 255, 0.18);
    border-radius: 9999px;
    color: #eef2ff;
    background: rgba(14, 22, 35, 0.76);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.tp-language-switch {
    padding-inline: 0.85rem;
    font-size: 0.78rem;
    font-weight: 800;
}

.tp-mobile-menu-button {
    width: 2.5rem;
    flex: 0 0 2.5rem;
    cursor: pointer;
}

.tp-language-switch:hover,
.tp-mobile-menu-button:hover,
.tp-language-switch:focus-visible,
.tp-mobile-menu-button:focus-visible {
    border-color: color-mix(in srgb, var(--tp-primary) 65%, white);
    background: rgba(31, 43, 65, 0.96);
}

.tp-mobile-nav[hidden] {
    display: none !important;
}

.tp-mobile-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    padding-top: 0.8rem;
    margin-top: 0.7rem;
    border-top: 1px solid rgba(177, 197, 255, 0.12);
}

.tp-mobile-nav-link {
    min-height: 2.75rem;
    padding: 0.7rem 0.85rem;
    border-radius: 0.75rem;
    color: #dce4f7;
    background: rgba(255, 255, 255, 0.035);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    font-size: 0.9rem;
    font-weight: 700;
}

.tp-mobile-nav-link:hover,
.tp-mobile-nav-link:focus-visible {
    color: white;
    background: rgba(82, 101, 255, 0.18);
}

.tp-coach-avatar-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: clamp(2.75rem, 8vw, 4.75rem);
    font-weight: 800;
    letter-spacing: 0.04em;
    background:
        radial-gradient(circle at 24% 20%, rgba(255, 255, 255, 0.2), transparent 32%),
        linear-gradient(145deg, var(--tp-accent-a), var(--tp-accent-b));
}

.tp-coach-avatar-fallback[hidden] {
    display: none !important;
}

/* Location experience: map-first cards with reliable mobile touch targets. */
.tp-locations-list {
    display: grid;
    gap: clamp(1rem, 2.5vw, 1.5rem);
}

.tp-location-split {
    isolation: isolate;
    transition: transform 220ms var(--tp-ease-out), border-color 220ms var(--tp-ease-out), box-shadow 220ms var(--tp-ease-out);
}

.tp-primary-location {
    border: 1px solid rgba(153, 170, 255, 0.22);
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 100% 0%, rgba(82, 101, 255, 0.2), transparent 46%),
        linear-gradient(135deg, rgba(20, 30, 47, 0.96), rgba(11, 17, 28, 0.98));
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
}

/* A direct link to #locations should never land on an invisible first card. */
.tp-primary-location.tp-reveal {
    opacity: 1;
    transform: none;
}

.tp-primary-location-map {
    position: relative;
    min-height: 22rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 72% 43%, rgba(119, 139, 255, 0.42) 0 2px, transparent 3px),
        linear-gradient(135deg, #172743, #0d1728 58%, #111d31);
}

.tp-primary-location-map::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 2;
    background: linear-gradient(90deg, rgba(11, 17, 28, 0.14), rgba(11, 17, 28, 0.68));
}

.tp-primary-location-map-frame {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    border: 0;
    filter: saturate(0.8) contrast(1.04) brightness(0.58);
    opacity: 0.46;
}

.tp-map-surface {
    position: absolute;
    z-index: 1;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(120deg, transparent 0 46%, rgba(170, 187, 255, 0.18) 46.2% 46.8%, transparent 47% 100%),
        linear-gradient(28deg, transparent 0 34%, rgba(170, 187, 255, 0.15) 34.2% 34.8%, transparent 35% 100%),
        repeating-linear-gradient(0deg, transparent 0 35px, rgba(189, 202, 255, 0.08) 36px 37px),
        repeating-linear-gradient(90deg, transparent 0 46px, rgba(189, 202, 255, 0.07) 47px 48px);
    opacity: 0.95;
}

.tp-map-surface::before,
.tp-map-surface::after {
    content: "";
    position: absolute;
    border-radius: 9999px;
    border: 1px solid rgba(179, 193, 255, 0.34);
}

.tp-map-surface::before {
    width: 9.25rem;
    height: 9.25rem;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
}

.tp-map-surface::after {
    width: 5.9rem;
    height: 5.9rem;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    border-color: rgba(197, 208, 255, 0.46);
}

.tp-map-surface-pin {
    position: absolute;
    z-index: 1;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 50% 50% 50% 0;
    rotate: -45deg;
    color: #fff;
    background: linear-gradient(135deg, #7788ff, #7355f6);
    box-shadow: 0 10px 25px rgba(76, 90, 233, 0.52), 0 0 0 0.5rem rgba(129, 147, 255, 0.1);
    display: grid;
    place-items: center;
}

.tp-map-surface-pin i {
    rotate: 45deg;
    font-size: 1.05rem;
}

.tp-primary-location-copy {
    padding: clamp(1.5rem, 4vw, 2.8rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1rem;
}

.tp-primary-location-copy h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.4rem, 3vw, 2rem);
    line-height: 1.22;
}

.tp-primary-location-address {
    margin: 0;
    color: #c7d0e3;
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    line-height: 1.7;
}

.tp-primary-location-address i {
    margin-top: 0.35rem;
    color: #aebaff;
}

.tp-location-split:hover {
    transform: translateY(-3px);
    border-color: rgba(139, 153, 255, 0.42) !important;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.34);
}

.tp-location-map {
    min-height: 22rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 72% 43%, rgba(119, 139, 255, 0.42) 0 2px, transparent 3px),
        linear-gradient(135deg, #172743, #0d1728 58%, #111d31);
}

.tp-location-map-frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    filter: saturate(0.78) contrast(1.06) brightness(0.56);
    opacity: 0.46;
}

.tp-location-map::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 2;
    background: linear-gradient(180deg, rgba(6, 10, 17, 0.28), rgba(6, 10, 17, 0.7));
}

.tp-location-map-overlay {
    position: absolute;
    z-index: 3;
    inset-inline: 1rem;
    bottom: 1rem;
    pointer-events: none;
}

.tp-primary-location-map-overlay {
    top: 1rem;
    bottom: auto;
}

.tp-location-map-overlay span {
    width: fit-content;
    max-width: 100%;
    min-height: 2.35rem;
    padding-inline: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 9999px;
    color: #fff;
    background: rgba(8, 13, 22, 0.76);
    backdrop-filter: blur(10px);
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    font-weight: 800;
}

.tp-location-map-overlay i {
    color: #b9c5ff;
}

.tp-location-kicker {
    margin: 0 0 0.65rem;
    color: #9aaaff;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tp-location-actions {
    display: grid;
    gap: 0.7rem;
}

.tp-location-directions {
    min-height: 3.25rem;
    padding: 0.8rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 0.85rem;
    color: #fff;
    background: var(--tp-gradient-cta);
    box-shadow: 0 14px 32px rgba(55, 76, 230, 0.24);
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.92rem;
    font-weight: 800;
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.tp-location-directions:hover,
.tp-location-directions:focus-visible {
    color: #fff;
    filter: brightness(1.08);
    transform: translateY(-1px);
    box-shadow: 0 18px 38px rgba(55, 76, 230, 0.34);
}

.tp-location-external-icon {
    margin-inline-start: auto;
    opacity: 0.78;
    font-size: 0.75rem;
}

.tp-location-map-hint {
    margin: 0;
    color: #a9b4cb;
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    font-size: 0.78rem;
    line-height: 1.5;
}

.tp-location-map-hint i {
    margin-top: 0.12rem;
    color: #9aaaff;
}

@media (max-width: 767px) {
    .tp-location-split:hover {
        transform: none;
    }

    .tp-location-map {
        min-height: 13.5rem;
    }

    .tp-primary-location-map {
        min-height: 15.5rem;
    }

    .tp-primary-location-map::after {
        background: linear-gradient(180deg, transparent 48%, rgba(11, 17, 28, 0.62));
    }

    .tp-primary-location-map-frame {
        pointer-events: none;
    }

    .tp-primary-location-copy {
        padding: 1.35rem;
        gap: 0.85rem;
    }

    .tp-location-map-frame {
        pointer-events: none;
    }

    .tp-location-split > div:last-child {
        padding: 1.35rem !important;
    }

    .tp-location-directions {
        justify-content: center;
        min-height: 3.5rem;
    }

    .tp-location-map-hint {
        justify-content: center;
        text-align: center;
    }

    .tp-mobile-cta {
        min-height: 3.6rem;
    }
}

.tp-rating-summary {
    padding: clamp(1.8rem, 5vw, 3.5rem);
    border: 1px solid rgba(177, 197, 255, 0.14);
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 50% 0%, rgba(82, 101, 255, 0.2), transparent 50%),
        linear-gradient(180deg, rgba(23, 33, 50, 0.94), rgba(13, 20, 31, 0.96));
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.26);
}

.tp-rating-score {
    margin-block: 1.4rem 0.65rem;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.45rem;
    color: #f7ca55;
}

.tp-rating-score i {
    font-size: 1.25rem;
}

.tp-rating-score strong {
    color: #fff;
    font-size: clamp(3rem, 10vw, 5.2rem);
    line-height: 0.95;
}

.tp-rating-score span {
    color: #aab6ce;
    font-size: 1rem;
    font-weight: 700;
}

.tp-mobile-cta {
    display: none;
}

html[dir="ltr"] .tp-nav-glass > div > div:first-child > div:first-child {
    direction: ltr;
}

@media (min-width: 1024px) {
    .tp-mobile-menu-button,
    .tp-mobile-nav {
        display: none !important;
    }
}

@media (max-width: 1023px) {
    .tp-nav-desktop {
        display: none !important;
    }

    .tp-hero-section {
        padding-top: 1.75rem;
    }

    .tp-hero-section .tp-reveal {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 640px) {
    .tp-nav-glass {
        border-radius: 1rem;
    }

    .tp-header-row {
        gap: 0.6rem;
    }

    .tp-header-actions {
        gap: 0.35rem;
    }

    .tp-header-contact-action {
        display: none !important;
    }

    .tp-language-switch {
        min-height: 2.35rem;
        padding-inline: 0.7rem;
        font-size: 0.72rem;
    }

    .tp-mobile-menu-button {
        width: 2.35rem;
        min-height: 2.35rem;
        flex-basis: 2.35rem;
    }

    .tp-nav-title {
        max-width: 8.5rem;
    }

    .tp-hero-section {
        padding-top: 1.25rem;
    }

    .tp-hero-section::before {
        opacity: 0.36;
    }

    .tp-has-mobile-cta {
        padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px));
    }

    .tp-mobile-cta {
        position: fixed;
        z-index: 70;
        inset-inline: 0.85rem;
        bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
        min-height: 3.35rem;
        padding: 0.85rem 1.25rem;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 9999px;
        color: #fff;
        background: var(--tp-gradient-cta);
        box-shadow: 0 18px 44px rgba(30, 43, 137, 0.48);
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.65rem;
        font-weight: 800;
        text-align: center;
    }
}

/* Portfolio 2.1 final cascade guards. */
body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-section > .max-w-6xl > .tp-hero-content {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-nav-scroll .tp-nav-link:first-child:not(.is-active) {
    color: #9aa5b7;
}

body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-nav-link.is-active {
    color: #fff;
    background: color-mix(in srgb, var(--tp-primary) 13%, transparent);
}

@media (min-width: 901px) {
    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-content > :not([hidden]) ~ :not([hidden]) {
        margin-top: 0.85rem;
    }

    body.tp-page-body:is(.tp-template-midnight-performance, .tp-template-bold-red) .tp-hero-chips {
        grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
    }
}

/* Portfolio 2.2 — phone-first conversion and media layout. */
@media (max-width: 640px) {
    html { scroll-padding-top: calc(5.25rem + env(safe-area-inset-top, 0px)); }

    body.tp-page-body:not(.tp-template-legacy) header { padding-inline: .65rem !important; }

    body.tp-page-body:not(.tp-template-legacy) .tp-nav-glass {
        padding: .55rem .65rem !important;
        border-radius: 1.05rem;
        box-shadow: 0 14px 38px rgba(0, 0, 0, .38);
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-header-row,
    body.tp-page-body:not(.tp-template-legacy) .tp-header-row > * { min-width: 0; }

    body.tp-page-body:not(.tp-template-legacy) .tp-logo-thumb {
        width: 2.25rem;
        height: 2.25rem;
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--tp-primary) 8%, transparent);
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-nav-caption { display: none; }
    body.tp-page-body:not(.tp-template-legacy) .tp-nav-title { max-width: 7.5rem; font-size: .92rem; }

    body.tp-page-body:not(.tp-template-legacy) .tp-language-switch,
    body.tp-page-body:not(.tp-template-legacy) .tp-mobile-menu-button { min-height: 2.75rem; }

    body.tp-page-body:not(.tp-template-legacy) .tp-mobile-menu-button {
        width: 2.75rem;
        flex-basis: 2.75rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-mobile-nav {
        gap: .5rem;
        margin-top: .55rem;
        padding: .65rem 0 .1rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-mobile-nav-link {
        min-height: 3rem;
        padding: .65rem .8rem;
        border: 1px solid rgba(255, 255, 255, .055);
        font-size: .82rem;
    }

    body.tp-page-body:not(.tp-template-legacy) main {
        padding-top: calc(5.15rem + env(safe-area-inset-top, 0px)) !important;
    }

    body.tp-page-body:not(.tp-template-legacy) main > section { padding-inline: 1rem !important; }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-section {
        min-height: auto;
        padding-block: 1.25rem 3.25rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-section > .max-w-6xl { gap: 1.25rem !important; }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-section > .max-w-6xl,
    body.tp-page-body:not(.tp-template-legacy) .tp-hero-content,
    body.tp-page-body:not(.tp-template-legacy) .tp-hero-art-wrap {
        width: 100%;
        min-width: 0;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-content > :not([hidden]) ~ :not([hidden]) {
        margin-top: .9rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-kicker {
        font-size: .74rem;
        letter-spacing: .06em;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-title {
        max-width: 100%;
        font-size: clamp(2.55rem, 13vw, 3.35rem) !important;
        line-height: 1;
        letter-spacing: -.025em;
        overflow-wrap: anywhere;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-lead {
        font-size: .93rem !important;
        line-height: 1.7;
        -webkit-line-clamp: 4;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-chips {
        width: calc(100% + 2rem);
        max-width: none;
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: .55rem;
        margin-inline: -1rem;
        padding: .1rem 1rem .45rem;
        overflow-x: auto;
        scroll-padding-inline: 1rem;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-chips::-webkit-scrollbar,
    body.tp-page-body:not(.tp-template-legacy) .tp-systems-scroll::-webkit-scrollbar,
    body.tp-page-body:not(.tp-template-legacy) .tp-tabs-wrap::-webkit-scrollbar,
    body.tp-page-body:not(.tp-template-legacy) .tp-gallery-grid::-webkit-scrollbar { display: none; }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-chip {
        flex: 0 0 auto;
        min-width: 8.25rem;
        min-height: 3rem !important;
        flex-direction: row;
        justify-content: flex-start;
        gap: .55rem;
        padding: .55rem .7rem;
        scroll-snap-align: start;
        font-size: .72rem;
        white-space: nowrap;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-chip i {
        width: 1.8rem !important;
        height: 1.8rem !important;
        flex: 0 0 1.8rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .6rem !important;
        padding-top: .1rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-actions > a {
        width: auto !important;
        min-width: 0;
        min-height: 3.15rem;
        padding: .65rem .7rem;
        border-radius: .9rem;
        gap: .45rem;
        font-size: .78rem;
        line-height: 1.25;
        text-align: center;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-actions > a:first-child { grid-column: 1 / -1; }

    body.tp-page-body:not(.tp-template-legacy) .tp-address {
        padding-top: .2rem !important;
        font-size: .78rem;
        line-height: 1.55;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-art-wrap {
        width: 100% !important;
        padding: .25rem 0 .75rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-art-wrap::before {
        inset: 10% 4% 0;
        filter: blur(40px);
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-visual,
    html[dir="rtl"] body.tp-page-body:not(.tp-template-legacy) .tp-hero-visual {
        width: 100% !important;
        height: clamp(12.5rem, 58vw, 14rem);
        max-height: none !important;
        aspect-ratio: auto !important;
        margin: 0;
        border-radius: 1.35rem 1.35rem 3.25rem 1.35rem;
        transform: none;
    }

    html[dir="rtl"] body.tp-page-body:not(.tp-template-legacy) .tp-hero-visual {
        border-radius: 1.35rem 1.35rem 1.35rem 3.25rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-visual img { object-position: center 34%; }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-proof {
        min-width: 0;
        gap: .45rem;
        padding: .5rem .6rem;
        border-radius: .8rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-proof-icon { width: 1.85rem; height: 1.85rem; }
    body.tp-page-body:not(.tp-template-legacy) .tp-hero-proof--rating { inset-inline-start: .55rem; top: .85rem; }
    body.tp-page-body:not(.tp-template-legacy) .tp-hero-proof--count { inset-inline-end: .55rem; bottom: 0; }

    body.tp-page-body:not(.tp-template-legacy) main > section:not(#hero) {
        padding-block: 3.75rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-section-heading-center,
    body.tp-page-body:not(.tp-template-legacy) #gallery .tp-reveal:first-child {
        margin-bottom: 1.75rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-section-title {
        margin-top: .45rem;
        font-size: clamp(1.9rem, 9.5vw, 2.45rem) !important;
        line-height: 1.12;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-section-sub {
        font-size: .88rem;
        line-height: 1.65;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-story-identity { min-height: 8.5rem; padding: 1.15rem; }
    body.tp-page-body:not(.tp-template-legacy) .tp-story-content { padding: 1.25rem; }

    body.tp-page-body:not(.tp-template-legacy) .tp-v2-story-copy {
        font-size: .9rem;
        line-height: 1.8;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-systems-scroll { gap: .7rem !important; }

    body.tp-page-body:not(.tp-template-legacy) .tp-system-card {
        width: min(15.5rem, 76vw) !important;
        min-height: 10.5rem !important;
        border-radius: 1.1rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-system-card-inner {
        justify-content: flex-end;
        padding: 1rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-coach-card {
        grid-template-columns: 1fr !important;
        min-height: 0 !important;
        border-radius: 1.2rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-coach-photo-wrap {
        min-height: 14rem !important;
        aspect-ratio: 4 / 3 !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-coach-body {
        min-height: 14rem;
        padding: 1.15rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-coach-profile-link,
    body.tp-page-body:not(.tp-template-legacy) .tp-coach-link {
        min-height: 2.8rem;
        font-size: .8rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-tabs-wrap {
        width: 100% !important;
        max-width: 100% !important;
        flex-wrap: nowrap;
        justify-content: flex-start !important;
        gap: .45rem;
        margin-inline: 0;
        margin-bottom: 1.5rem !important;
        padding: .35rem !important;
        overflow-x: auto;
        scroll-padding-inline: 1rem;
        scroll-snap-type: x proximity;
        border-radius: 0;
        background: transparent !important;
        scrollbar-width: none;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-tab {
        flex: 0 0 auto !important;
        min-width: 7.5rem !important;
        min-height: 2.8rem;
        padding-inline: 1rem;
        scroll-snap-align: start;
        border: 1px solid rgba(255, 255, 255, .08);
        background: rgba(255, 255, 255, .04);
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-promo-card {
        min-height: 16rem !important;
        padding: 1.35rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-promo-list { margin-top: 1rem !important; }
    body.tp-page-body:not(.tp-template-legacy) .tp-promo-card .tp-btn-primary { margin-top: 1.25rem !important; }

    body.tp-page-body:not(.tp-template-legacy) .tp-pkg-card {
        min-height: 17rem !important;
        padding: 1.4rem 1.2rem !important;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-rating-summary {
        padding: 2rem 1.25rem !important;
        border-radius: 1.25rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-gallery-grid {
        gap: .75rem !important;
        scroll-padding-inline: 1rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell,
    body.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:first-child,
    body.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(2),
    body.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(3),
    body.tp-page-body:not(.tp-template-legacy) .tp-gallery-cell:nth-child(4) {
        position: relative;
        flex: 0 0 86vw;
        width: 86vw;
        height: auto !important;
        aspect-ratio: 4 / 3 !important;
        border-radius: 1.1rem;
        scroll-snap-align: center;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-gallery-img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100% !important;
        object-fit: cover;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-primary-location-map { min-height: 13rem; }
    body.tp-page-body:not(.tp-template-legacy) .tp-location-map { min-height: 12rem; }

    body.tp-page-body:not(.tp-template-legacy) .tp-footer--rich {
        padding: 3.5rem 1rem calc(2rem + env(safe-area-inset-bottom, 0px));
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-footer--rich > .max-w-6xl:first-child { gap: 2rem; }

    body.tp-page-body:not(.tp-template-legacy) .tp-mobile-cta {
        inset-inline: .75rem;
        bottom: max(.65rem, env(safe-area-inset-bottom, 0px));
        min-height: 3.5rem;
        border-radius: 1rem;
        transition: transform 220ms ease, opacity 180ms ease;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-mobile-cta.is-suppressed {
        opacity: 0;
        transform: translateY(calc(100% + 1.5rem));
        pointer-events: none;
    }
}

@media (max-width: 350px) {
    body.tp-page-body:not(.tp-template-legacy) .tp-nav-title { max-width: 5.5rem; }

    body.tp-page-body:not(.tp-template-legacy) .tp-language-switch {
        padding-inline: .55rem;
        font-size: .68rem;
    }

    body.tp-page-body:not(.tp-template-legacy) .tp-hero-title { font-size: 2.35rem !important; }
    body.tp-page-body:not(.tp-template-legacy) .tp-hero-actions > a { font-size: .72rem; }
}
