:root {
    --db-navy-950: #06101f;
    --db-navy-900: #081a33;
    --db-navy-800: #123358;

    --db-blue: #0077ff;
    --db-cyan: #29b6ff;

    --db-white: #f5f7fa;
    --db-surface: #ffffff;
    --db-surface-alt: #eef4f8;

    --db-text: #081a33;
    --db-muted: #64748b;
    --db-line: #dbe5ec;

    --db-success: #16a34a;
    --db-warning: #d97706;
    --db-danger: #dc2626;

    --db-radius: 18px;
    --db-radius-sm: 12px;

    --db-shadow:
        0 14px 40px rgba(6, 16, 31, 0.08);

    --db-gradient:
        linear-gradient(
            135deg,
            var(--db-cyan),
            var(--db-blue)
        );
}

/* =========================================================
   BASE
   ========================================================= */

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

html {
    min-height: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-height: 100vh;

    display: flex;
    flex-direction: column;

    font-family:
        "Poppins",
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    color: var(--db-text);
    background: var(--db-white);
    line-height: 1.5;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.db-menu-open {
    overflow: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    color: inherit;
}

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

main {
    flex: 1 0 auto;
    min-height: 60vh;
}

.db-shell {
    width: min(1180px, calc(100% - 32px));
    margin-inline: auto;
}

@media (prefers-reduced-motion: no-preference) {
    .db-reveal { opacity: 0; transform: translateY(12px); transition: opacity .32s ease, transform .32s ease; }
    .db-reveal.is-visible { opacity: 1; transform: none; }
}

/* =========================================================
   TYPOGRAPHY
   ========================================================= */

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--db-text);
    line-height: 1.1;
    margin-top: 0;
}

p {
    margin-top: 0;
}

.db-eyebrow {
    margin: 0 0 8px;

    color: var(--db-blue);

    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.db-lead {
    max-width: 720px;
    margin: 0;

    color: var(--db-muted);

    font-size: 1.05rem;
    line-height: 1.7;
}

/* =========================================================
   HEADER
   ========================================================= */

.db-header {
    position: sticky;
    top: 0;
    z-index: 100;

    background: var(--db-navy-950);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.db-header__inner {
    min-height: 116px;

    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;

    gap: 32px;
}

.db-brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.db-brand__desktop {
    display: block;

    width: auto;
    height: 78px;
    max-width: 150px;

    object-fit: contain;
}

.db-brand__mobile {
    display: none;
}

.db-nav {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 26px;

    color: #fff;

    font-size: 0.9rem;
    font-weight: 600;
}

.db-nav a {
    display: inline-flex;
    align-items: center;

    min-height: 40px;

    opacity: 0.86;

    transition:
        opacity 0.2s ease,
        color 0.2s ease;
}

.db-nav a:hover,
.db-nav a:focus-visible {
    opacity: 1;
    color: var(--db-cyan);
}

.db-nav a.is-current {
    opacity: 1;
    color: var(--db-cyan);
}

.db-nav__membership.is-current { color: var(--db-cyan); }

.db-header__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;

    gap: 10px;
}

.db-cart-link {
    position: relative;

    width: 42px;
    height: 42px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    color: #fff;
}

.db-cart-link:hover {
    background: rgba(255, 255, 255, 0.08);
}

.db-cart-icon {
    font-size: 1rem;
}

.db-cart-count {
    position: absolute;
    top: 1px;
    right: 0;

    min-width: 17px;
    height: 17px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0 4px;

    border-radius: 999px;

    background: var(--db-blue);
    color: #fff;

    font-size: 0.65rem;
    font-weight: 800;
}

.db-header__cta {
    min-height: 42px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 16px;

    border-radius: 10px;

    background: var(--db-gradient);
    color: #fff;

    font-size: 0.86rem;
    font-weight: 800;
}

.db-mobile-menu-toggle {
    display: none;
}

.db-mobile-menu {
    display: none;
}

/* =========================================================
   MOBILE HEADER
   ========================================================= */

@media (max-width: 767px) {

    .db-header__inner {
        min-height: 64px;

        grid-template-columns: 44px 1fr 44px;

        gap: 0;
    }

    .db-mobile-menu-toggle {
        display: flex;

        width: 44px;
        height: 44px;

        align-items: center;
        justify-content: center;
        flex-direction: column;

        gap: 5px;

        padding: 10px;

        border: 0;
        border-radius: 10px;

        background: transparent;

        cursor: pointer;
    }

    .db-mobile-menu-toggle span {
        width: 22px;
        height: 2px;

        display: block;

        border-radius: 999px;

        background: #fff;
    }

    .db-brand {
        justify-content: center;
    }

    .db-brand__desktop {
        display: none;
    }

    .db-brand__mobile {
        display: block;

        width: auto;
        height: 40px;

        object-fit: contain;
    }

    .db-nav,
    .db-header__cta {
        display: none;
    }

    .db-header__actions {
        justify-content: flex-end;
    }

    .db-cart-link {
        width: 44px;
        height: 44px;
    }

    .db-mobile-menu {
        display: none;

        background: var(--db-navy-950);

        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    .db-mobile-menu.is-open {
        display: block;
    }

    .db-mobile-menu__inner {
        display: grid;

        padding-top: 8px;
        padding-bottom: 16px;
    }

    .db-mobile-menu a {
        display: flex;
        align-items: center;

        min-height: 48px;

        color: #fff;

        font-size: 0.95rem;
        font-weight: 600;

        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .db-mobile-menu a:last-child {
        border-bottom: 0;
    }

    .db-mobile-menu a.is-current {
        color: var(--db-cyan);
    }
}

/* =========================================================
   BUTTONS
   ========================================================= */

.db-button {
    min-height: 48px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    padding: 0 18px;

    border: 1px solid transparent;
    border-radius: var(--db-radius-sm);

    cursor: pointer;

    font-weight: 800;
    line-height: 1;

    transition:
        transform 0.15s ease,
        box-shadow 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease;
}

.db-button:hover {
    transform: translateY(-1px);
}

.db-button--primary,
.db-button--accent {
    background: var(--db-gradient);
    color: #fff;

    box-shadow:
        0 10px 24px rgba(0, 119, 255, 0.18);
}

.db-button--primary:hover,
.db-button--accent:hover {
    box-shadow:
        0 14px 30px rgba(0, 119, 255, 0.28);
}

.db-button--ghost {
    background: #fff;

    border-color: var(--db-line);

    color: var(--db-text);
}

.db-button--ghost:hover {
    border-color: #b8cbd8;
}

.db-button--block {
    width: 100%;
}

/* =========================================================
   HERO
   ========================================================= */

.db-hero {
    position: relative;

    overflow: hidden;

    min-height: min(620px, calc(100vh - 116px));

    display: flex;
    align-items: center;

    padding: 84px 0 72px;

    color: #fff;

    background:
        linear-gradient(
            90deg,
            rgba(6, 16, 31, 0.78) 0%,
            rgba(6, 16, 31, 0.38) 48%,
            rgba(6, 16, 31, 0.10) 100%
        ),
        radial-gradient(
            circle at 78% 20%,
            rgba(41, 182, 255, 0.18),
            transparent 34%
        ),
        radial-gradient(
            circle at 12% 85%,
            rgba(0, 119, 255, 0.18),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            rgba(6, 16, 31, 0.18),
            rgba(18, 51, 88, 0.18)
        ),
        url("../img/hero/bajo-piscina-descanso.jpg") center center / cover no-repeat;
}

.db-hero::after {
    content: "";

    position: absolute;
    inset: auto 0 0;

    height: 120px;

    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(6, 16, 31, 0.18)
        );

    pointer-events: none;
}

.db-hero .db-shell {
    position: relative;
    z-index: 1;
}

.db-hero .db-eyebrow {
    color: var(--db-cyan);
}

.db-hero h1 {
    max-width: 860px;

    margin: 10px 0 20px;

    color: #fff;

    font-size:
        clamp(
            2.45rem,
            6.5vw,
            4.6rem
        );

    letter-spacing: -0.055em;
}

.db-hero p:not(.db-eyebrow) {
    max-width: 680px;

    margin: 0 0 28px;

    color: rgba(255, 255, 255, 0.75);

    font-size: 1.08rem;
    line-height: 1.7;
}

.db-hero-finder { display: grid; gap: 10px; max-width: 960px; padding: 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 16px; background: rgba(6,16,31,.45); backdrop-filter: blur(10px); }
.db-hero-finder label { display: grid; gap: 5px; }
.db-hero-finder label span { color: rgba(255,255,255,.82); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.db-hero-finder select { min-height: 46px; padding: 0 12px; border: 1px solid rgba(255,255,255,.22); border-radius: 9px; background: #fff; color: var(--db-text); }
.db-hero-finder .db-button { min-height: 46px; align-self: end; }

.db-home-categories { padding: 72px 0; background: #fff; }
.db-home-categories h2 { margin: 0 0 18px; font-size: 38px; }
.db-category-list { display: flex; flex-wrap: wrap; gap: 9px; }
.db-category-list a { display: inline-flex; align-items: center; gap: 9px; padding: 12px 15px; border: 1px solid var(--db-line); border-radius: 999px; background: var(--db-surface-alt); color: var(--db-text); font-size: .88rem; font-weight: 760; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.db-category-list a span { color: var(--db-blue); font-size: .72rem; }
.db-category-list a:hover { transform: translateY(-2px); border-color: var(--db-blue); background: #fff; }

/* =========================================================
   SECTIONS
   ========================================================= */

.db-section {
    padding: 64px 0;
}

.db-section__heading {
    margin-bottom: 28px;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 24px;
}

.db-section__heading h2 {
    margin: 4px 0 0;

    font-size: 38px;
}

.db-section__heading > a {
    color: var(--db-blue);

    font-weight: 700;
}

.db-home-locations {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 6% 12%, rgba(41, 182, 255, 0.16), transparent 28%),
        var(--db-surface-alt);
}

.db-home-locations h2,
.db-home-family h2 {
    margin: 4px 0 14px;
    font-size: 38px;
}

.db-home-section-heading {
    max-width: 720px;
    margin-bottom: 34px;
}

.db-location-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.db-location-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--db-line);
    border-radius: var(--db-radius);
    box-shadow: 0 16px 36px rgba(6, 16, 31, 0.1);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.db-location-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 48px rgba(6, 16, 31, 0.16);
}

.db-location-card__image {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--db-navy-900);
}

.db-location-card__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(6, 16, 31, 0.46), transparent 60%);
}

.db-location-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.db-location-card:hover .db-location-card__image img {
    transform: scale(1.06);
}

.db-location-card__body {
    display: flex;
    flex-direction: column;
    min-height: 312px;
    padding: 28px;
}

.db-location-card__icon {
    position: absolute;
    z-index: 1;
    right: 18px;
    bottom: 18px;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--db-blue);
    border: 3px solid #fff;
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: 800;
}

.db-location-card h3 {
    margin: 0 0 10px;
    font-size: 1.35rem;
}

.db-location-card__address {
    min-height: 62px;
    margin-bottom: 20px;
    color: var(--db-muted);
    font-size: 0.9rem;
    line-height: 1.55;
}

.db-location-card ul {
    flex: 1;
    margin: 0 0 24px;
    padding: 20px 0 0;
    list-style: none;
    border-top: 1px solid var(--db-line);
}

.db-location-card li {
    position: relative;
    margin-top: 10px;
    padding-left: 18px;
    color: var(--db-muted);
    font-size: 0.88rem;
}

.db-location-card li::before {
    content: "";
    position: absolute;
    top: 0.55em;
    left: 0;
    width: 7px;
    height: 7px;
    background: var(--db-cyan);
    border-radius: 50%;
}

.db-location-card__body > a {
    width: fit-content;
    color: var(--db-blue);
    font-size: 0.9rem;
    font-weight: 800;
}

.db-location-card__body > a span {
    display: inline-block;
    margin-left: 4px;
    transition: transform 0.2s ease;
}

.db-location-card__body > a:hover span {
    transform: translate(2px, -2px);
}
.db-location-card__actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; }
.db-location-card__body .db-location-card__cta { padding: 9px 12px; border-radius: 8px; background: var(--db-blue); color: #fff; font-size: .78rem; }

.db-home-faq { background: #fff; }
.db-home-faq__content { display: grid; gap: 28px; align-items: start; }
.db-home-faq h2 { margin: 4px 0 12px; font-size: 38px; }
.db-faq-list { display: grid; gap: 8px; }
.db-faq-list details { border-bottom: 1px solid var(--db-line); }
.db-faq-list summary { display: flex; justify-content: space-between; gap: 16px; padding: 17px 0; cursor: pointer; font-weight: 780; list-style: none; }
.db-faq-list summary::after { content: '+'; color: var(--db-blue); font-size: 1.25rem; line-height: 1; }
.db-faq-list details[open] summary::after { content: '−'; }
.db-faq-list p { margin: -2px 0 17px; color: var(--db-muted); font-size: .9rem; line-height: 1.65; }

.db-home-family {
    position: relative;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.76);
    background:
        radial-gradient(circle at 8% 80%, rgba(0, 119, 255, 0.28), transparent 32%),
        linear-gradient(135deg, var(--db-navy-950), var(--db-navy-800));
}

.db-home-family__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
    align-items: center;
    gap: clamp(32px, 6vw, 76px);
}

.db-home-family__content > div:first-child {
    position: relative;
    z-index: 1;
}

.db-home-family .db-eyebrow {
    color: var(--db-cyan);
}

.db-home-family h2 {
    color: #fff;
}

.db-home-family p {
    max-width: 640px;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.75;
}

.db-community-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 32px;
}

.db-community-stats div {
    padding: 16px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 12px;
}

.db-community-stats div:last-child {
    border-right: 1px solid rgba(255, 255, 255, 0.11);
}

.db-community-stats strong,
.db-community-stats span {
    display: block;
}

.db-community-stats strong {
    color: var(--db-cyan);
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    line-height: 1.1;
}

.db-community-stats span {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.78rem;
    line-height: 1.35;
}

.db-home-family__image {
    position: relative;
    margin: 0;
    overflow: hidden;
    border: 8px solid rgba(255, 255, 255, 0.08);
    border-radius: 28px;
    box-shadow: 0 28px 55px rgba(0, 0, 0, 0.34);
}

.db-home-family__image img {
    width: 100%;
    min-height: 360px;
    object-fit: cover;
}

.db-home-family__image::after {
    content: "Deep Blue Academy";
    position: absolute;
    right: 0;
    bottom: 0;
    padding: 10px 16px;
    color: #fff;
    background: var(--db-blue);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.db-home-membership {
    padding: 62px 0;
    color: #fff;
    background: linear-gradient(115deg, var(--db-navy-950), var(--db-navy-800));
}

.db-home-membership__content {
    display: grid;
    align-items: center;
    gap: 28px;
}

.db-home-membership .db-eyebrow { color: var(--db-cyan); }
.db-home-membership h2 { margin: 0 0 14px; color: #fff; font-size: 38px; letter-spacing: -.04em; }
.db-home-membership p:not(.db-eyebrow) { max-width: 640px; color: rgba(255,255,255,.76); line-height: 1.7; }
.db-home-membership__price { padding: 24px; border: 1px solid rgba(255,255,255,.16); border-radius: var(--db-radius); background: rgba(255,255,255,.07); }
.db-home-membership__price span,.db-home-membership__price b,.db-home-membership__price small { display:block; }.db-home-membership__price strong { color:var(--db-cyan); font-size:3.5rem; line-height:1; }.db-home-membership__price small { margin-top:12px; color:rgba(255,255,255,.7); }.db-home-membership__price em { color:#fff; font-style:normal; font-weight:800; }

@media (min-width: 720px) { .db-home-membership__content { grid-template-columns: minmax(0,1fr) 250px; } }

/* =========================================================
   CATALOG
   ========================================================= */

.db-catalog {
    background:
        linear-gradient(
            to bottom,
            #f8fbfd,
            var(--db-white)
        );
}

.db-catalog h1 {
    max-width: 820px;

    margin: 8px 0 16px;

    font-size:
        clamp(
            2.4rem,
            7vw,
            4.6rem
        );

    letter-spacing: -0.045em;
}

/* =========================================================
   FILTERS
   ========================================================= */

.db-filters {
    margin: 30px 0 18px;

    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;

    padding: 16px;

    background: #fff;

    border:
        1px solid var(--db-line);

    border-radius: var(--db-radius);

    box-shadow: var(--db-shadow);
}

.db-filters label {
    display: block;
}

.db-filters label span {
    display: block;

    margin-bottom: 6px;

    color: var(--db-muted);

    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.db-filters select {
    width: 100%;
    min-height: 48px;

    padding: 0 12px;

    border:
        1px solid var(--db-line);

    border-radius: 10px;

    background: #fff;

    color: var(--db-text);

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.db-filters select:focus {
    border-color: var(--db-blue);

    box-shadow:
        0 0 0 3px
        rgba(0, 119, 255, 0.12);
}

.db-results-head {
    margin: 22px 0 14px;

    color: var(--db-muted);
}

/* =========================================================
   GRID
   ========================================================= */

.db-grid {
    display: grid;
    grid-template-columns: 1fr;

    gap: 18px;
}

/* =========================================================
   WORKSHOP CARD
   ========================================================= */

.db-card {
    position: relative;

    overflow: hidden;

    display: flex;
    flex-direction: column;

    background: var(--db-surface);

    border:
        1px solid var(--db-line);

    border-radius: var(--db-radius);

    box-shadow: var(--db-shadow);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.db-card:hover {
    transform: translateY(-3px);

    border-color: rgba(0, 119, 255, 0.18);

    box-shadow:
        0 18px 44px
        rgba(6, 16, 31, 0.12);
}

.db-card__image {
    position: relative;

    overflow: hidden;

    aspect-ratio: 16 / 10;

    background:
        linear-gradient(
            135deg,
            var(--db-navy-900),
            var(--db-navy-800)
        );
}

.db-card__image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform 0.35s ease;
}

/* La portada usa imágenes cuadradas y una fila compacta de talleres. */
#db-home-workshops .db-card__image,
#db-workshop-list .db-card__image { aspect-ratio: 1 / 1; }

.db-card:hover .db-card__image img {
    transform: scale(1.03);
}

.db-card__body {
    flex: 1;

    display: flex;
    flex-direction: column;

    padding: 18px;
}

.db-card__meta {
    display: flex;
    flex-wrap: wrap;

    gap: 7px;

    margin-bottom: 10px;
}

.db-card__meta span {
    padding: 5px 9px;

    border-radius: 999px;

    background:
        rgba(0, 119, 255, 0.08);

    color: var(--db-blue);

    font-size: 0.76rem;
    font-weight: 800;
}

.db-card__body h3 {
    margin: 0 0 10px;

    font-size: 1rem;
    line-height: 1.2;
}

.db-card__body h3 a:hover {
    color: var(--db-blue);
}

.db-card__body p {
    margin: 2px 0;

    color: var(--db-muted);

    font-size: 0.9rem;
}

.db-card__details { display: grid; gap: 7px; margin: 2px 0 14px; }
.db-card__details span { display: grid; grid-template-columns: 68px minmax(0,1fr); gap: 8px; color: var(--db-muted); font-size: .82rem; }
.db-card__details b { color: var(--db-text); font-weight: 760; }

.db-card__price {
    margin: 16px 0 14px;

    color: var(--db-text);

    font-size: 1.18rem;
    font-weight: 900;
}

.db-card__stock {
    margin-top: 6px;

    font-size: 0.84rem;
    font-weight: 700;
}

.db-card__stock--available {
    color: var(--db-success);
}

.db-card__stock--limited {
    color: var(--db-warning);
}

.db-card__stock--sold-out {
    color: var(--db-danger);
}

.db-card__variation {
    margin: 0 0 14px;
}

.db-card__variation label {
    display: grid;
    gap: 6px;
    color: var(--db-muted);
    font-size: .82rem;
    font-weight: 400;
}

.db-card__variation select {
    width: 100%;
    min-height: 42px;
    padding: 0 10px;
    border: 1px solid var(--db-line);
    border-radius: 8px;
    background: #fff;
    color: var(--db-text);
    font-size: .78rem;
}

.db-card .db-button {
    margin-top: auto;
}

/* =========================================================
   EMPTY / ERROR
   ========================================================= */

.db-empty {
    grid-column: 1 / -1;

    padding: 30px;

    text-align: center;

    background: #fff;

    color: var(--db-muted);

    border:
        1px dashed var(--db-line);

    border-radius: var(--db-radius);
}

/* =========================================================
   FOOTER
   ========================================================= */

.db-footer {
    flex-shrink: 0;
    padding: 72px 0 24px;

    color: rgba(255, 255, 255, 0.78);

    background:
        radial-gradient(circle at 8% 0%, rgba(41, 182, 255, 0.18), transparent 30%),
        linear-gradient(
            135deg,
            var(--db-navy-950),
            var(--db-navy-900)
        );

    border-top:
        1px solid rgba(255, 255, 255, 0.06);
}

.db-footer strong {
    display: block;
    color: #fff;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.db-footer p {
    margin: 14px 0 0;

    color: rgba(255, 255, 255, 0.72);
    line-height: 1.65;
}

.db-footer__content {
    display: grid;
    grid-template-columns: minmax(250px, 1.45fr) repeat(3, minmax(150px, 0.75fr));
    gap: clamp(36px, 5vw, 80px);
}

.db-footer__brand {
    max-width: 320px;
}

.db-footer__eyebrow {
    margin: 0 0 12px !important;
    color: var(--db-cyan) !important;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1;
    text-transform: uppercase;
}

.db-footer__column {
    min-width: 0;
    padding-left: 22px;
    border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.db-footer__title {
    margin: 2px 0 18px;
    color: #fff !important;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.2;
    text-transform: uppercase;
}

.db-footer__column a {
    display: block;
    width: fit-content;
    margin-top: 13px;
    color: #fff;
    font-size: 0.93rem;
    font-weight: 600;
    line-height: 1.35;
    opacity: 0.82;
    text-decoration: underline;
    text-decoration-color: rgba(41, 182, 255, 0.68);
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    transition: color 0.2s ease, opacity 0.2s ease, text-decoration-color 0.2s ease;
}

.db-footer__column a:hover {
    color: var(--db-cyan);
    opacity: 1;
    text-decoration-color: currentColor;
}

.db-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 52px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.db-footer__bottom p {
    margin: 0;
}

.db-footer__kapital {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px;
    color: #fff;
    background: rgba(41, 182, 255, 0.14);
    border: 1px solid rgba(41, 182, 255, 0.52);
    border-radius: 999px;
    font-size: 0.82rem;
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.db-footer__kapital strong {
    color: var(--db-cyan);
    font-size: inherit;
    font-weight: 700;
    letter-spacing: 0;
}

.db-footer__kapital:hover {
    background: rgba(41, 182, 255, 0.24);
    border-color: var(--db-cyan);
    transform: translateY(-1px);
}

.db-legal-hero {
    padding: 76px 0 62px;
    color: #fff;
    background: linear-gradient(135deg, var(--db-navy-950), var(--db-navy-800));
}

.db-legal-hero h1 { margin: 8px 0 10px; color: #fff; font-size: clamp(2.25rem, 6vw, 4rem); }
.db-legal-hero p:last-child { margin: 0; color: rgba(255,255,255,.7); }
.db-legal { padding: 56px 0 80px; background: var(--db-surface-alt); }
.db-legal__content { max-width: 820px; padding: clamp(24px, 5vw, 52px); background: #fff; border: 1px solid var(--db-line); border-radius: var(--db-radius); box-shadow: var(--db-shadow); }
.db-legal__content h2 { margin: 38px 0 12px; font-size: 1.25rem; }
.db-legal__content h2:first-of-type { margin-top: 30px; }
.db-legal__content p { color: var(--db-muted); line-height: 1.75; }
.db-legal__content a { color: var(--db-blue); font-weight: 700; }

/* =========================================================
   TABLET
   ========================================================= */

@media (min-width: 720px) {

    .db-hero-finder { grid-template-columns: repeat(2, minmax(0,1fr)) auto; align-items: end; }

    .db-home-faq__content { grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); }

    .db-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .db-filters {
        grid-template-columns:
            repeat(2, minmax(0, 1fr))
            auto;

        align-items: end;
    }
}

/* =========================================================
   DESKTOP
   ========================================================= */

@media (min-width: 1024px) {

    .db-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    #db-home-workshops {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    #db-workshop-list {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .db-section {
        padding: 76px 0;
    }
}

@media (max-width: 1023px) {

    .db-footer__content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 42px 32px;
    }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .db-shell {
        width: min(
            100% - 24px,
            1180px
        );
    }

    .db-header__inner {
        min-height: 64px;

        justify-content: space-between;
    }

    .db-mobile-menu-toggle {
        width: 44px;
        height: 44px;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 5px;

        padding: 10px;

        border: 0;
        border-radius: 12px;

        background: transparent;

        cursor: pointer;
    }

    .db-mobile-menu-toggle:hover,
    .db-mobile-menu-toggle:focus-visible {
        background:
            rgba(255, 255, 255, 0.08);
    }

    .db-mobile-menu-toggle span {
        display: block;

        width: 24px;
        height: 2px;

        border-radius: 999px;

        background: #fff;

        transition:
            transform 0.2s ease,
            opacity 0.2s ease;
    }

    .db-mobile-menu-toggle.is-open span:nth-child(1) {
        transform:
            translateY(7px)
            rotate(45deg);
    }

    .db-mobile-menu-toggle.is-open span:nth-child(2) {
        opacity: 0;
    }

    .db-mobile-menu-toggle.is-open span:nth-child(3) {
        transform:
            translateY(-7px)
            rotate(-45deg);
    }

    .db-brand {
        position: absolute;
        left: 50%;

        transform:
            translateX(-50%);
    }

    .db-brand img {
        width: auto;
        height: 40px;

        max-width: none;
    }

    .db-nav,
    .db-header__cta {
        display: none;
    }

    .db-header__actions {
        margin-left: auto;
    }

    .db-cart-link {
        width: 44px;
        height: 44px;
    }

    .db-mobile-menu {
        display: none;

        padding:
            8px 16px 20px;

        background:
            var(--db-navy-950);

        border-top:
            1px solid
            rgba(255, 255, 255, 0.08);
    }

    .db-mobile-menu.is-open {
        display: grid;
    }

    .db-mobile-menu a {
        padding: 14px 2px;

        color: #fff;

        font-size: 0.95rem;
        font-weight: 600;

        border-bottom:
            1px solid
            rgba(255, 255, 255, 0.08);
    }

    .db-mobile-menu a:last-child {
        border-bottom: 0;
    }

    .db-hero {
        min-height: 520px;
        padding: 62px 0 54px;

        background-position: center, center, center, center center;
    }

    .db-hero h1 {
        font-size:
            clamp(
                2.15rem,
                10vw,
                3.15rem
            );
    }

    .db-home-categories {
        padding: 54px 0;
    }

    .db-section {
        padding: 48px 0;
    }

    .db-section__heading {
        align-items: flex-start;
        flex-direction: column;

        gap: 10px;
    }

    .db-home-family__content {
        grid-template-columns: 1fr;
    }

    .db-location-grid {
        grid-template-columns: 1fr;
    }

    .db-location-card__address {
        min-height: 0;
    }

    .db-home-family__image img {
        min-height: 250px;
    }

    .db-footer__content {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .db-footer__column {
        padding-left: 18px;
    }

    .db-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        margin-top: 38px;
    }

    .db-filters {
        margin-top: 22px;

        padding: 12px;
    }

    .db-card__body {
        padding: 16px;
    }
}

/* =========================================================
   ACCESSIBILITY
   ========================================================= */

a:focus-visible,
button:focus-visible,
select:focus-visible {
    outline:
        3px solid
        rgba(41, 182, 255, 0.65);

    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;

        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* =========================================================
   PRODUCT DETAIL / MOBILE PURCHASE FLOW
   ========================================================= */
.db-product { padding: 34px 0 104px; }
.db-back { display: inline-block; margin-bottom: 24px; color: var(--db-blue); font-weight: 750; }
.db-product__grid { display: grid; gap: 28px; }
.db-product__media { overflow: hidden; min-height: 220px; border-radius: var(--db-radius); background: var(--db-surface-alt); }
.db-product__media img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.db-product__content h1 { margin: 12px 0; font-size: clamp(2rem, 7vw, 3.25rem); }
.db-product__description { color: var(--db-muted); line-height: 1.7; }
.db-product__description--short { max-width: 650px; }
.db-product__description--short p { margin: 0 0 10px; }
.db-schedules { margin-top: 28px; padding: 24px; border: 1px solid var(--db-line); border-radius: var(--db-radius); background: #fff; box-shadow: 0 14px 32px rgba(6,16,31,.06); }
.db-schedules__heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 16px; }
.db-schedules__heading h2 { margin: 0; font-size: 1.35rem; }
#db-schedule-price { padding: 7px 10px; border-radius: 999px; background: var(--db-surface-alt); color: var(--db-blue); font-size: .88rem; font-weight: 850; white-space: nowrap; }
.db-schedule-list { display: grid; gap: 12px; }
.db-schedule { position: relative; display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 13px; width: 100%; min-height: 82px; padding: 16px 18px; overflow: hidden; text-align: left; border: 1px solid var(--db-line); border-radius: var(--db-radius-sm); background: #fff; color: var(--db-text); cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.db-schedule:hover { border-color: rgba(0,119,255,.5); transform: translateY(-1px); }
.db-schedule.is-selected { border-color: var(--db-blue); background: linear-gradient(90deg, #f0f8ff, #fff); box-shadow: 0 0 0 3px rgba(0,119,255,.11); }
.db-schedule.is-sold-out { opacity: .58; cursor: not-allowed; }
.db-schedule__choice { width: 18px; height: 18px; border: 2px solid #b4c0cc; border-radius: 50%; }
.is-selected .db-schedule__choice { border: 5px solid var(--db-blue); }
.db-schedule__main,.db-schedule__aside { display: grid; gap: 3px; }
.db-schedule__main strong { font-size: 1.02rem; letter-spacing: -.01em; }
.db-schedule__main small,.db-schedule__aside small { color: var(--db-muted); font-size: .8rem; font-weight: 650; }
.db-schedule__aside { text-align: right; }
.db-schedule__aside b { color: var(--db-blue); font-size: 1rem; }
.db-schedules__checkout { display: block; width: 100%; margin-top: 18px; text-align: center; }
.db-schedules__checkout[aria-disabled="true"] { pointer-events: none; opacity: .55; }
.db-product__details { position: relative; margin-top: 24px; border-top: 1px solid var(--db-line); }
.db-product__details summary { display: grid; gap: 3px; padding: 22px 30px 22px 0; color: var(--db-text); cursor: pointer; list-style: none; }
.db-product__details summary::-webkit-details-marker { display: none; }
.db-product__details summary::after { position: absolute; right: 4px; margin-top: 4px; content: '+'; color: var(--db-blue); font-size: 1.35rem; line-height: 1; }
.db-product__details[open] summary::after { content: '−'; }
.db-product__details summary span { font-weight: 800; }
.db-product__details summary small { color: var(--db-muted); font-size: .84rem; }
.db-product__description--long { padding: 0 0 26px; }
.db-sticky-enroll { position: fixed; z-index: 90; right: 0; bottom: 0; left: 0; padding: 10px 0 calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); border-top: 1px solid var(--db-line); box-shadow: 0 -10px 30px rgba(6,16,31,.08); backdrop-filter: blur(10px); }
.db-sticky-enroll .db-shell { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.db-sticky-enroll span { overflow: hidden; color: var(--db-text); font-size: .82rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.db-sticky-enroll .db-button { flex: 0 0 auto; }
@media (max-width: 480px) { .db-schedules { padding: 20px 16px; } .db-schedules__heading { align-items: center; } .db-schedule { grid-template-columns: 19px minmax(0,1fr) auto; gap: 9px; padding: 15px 12px; } .db-schedule__main strong { font-size: .94rem; } .db-schedule__main small,.db-schedule__aside small { font-size: .73rem; } .db-schedule__aside b { font-size: .91rem; } }
@media (min-width: 768px) { .db-product { padding: 56px 0; } .db-product__grid { grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); align-items: start; } .db-product__media { position: sticky; top: 92px; min-height: 360px; } .db-product__media img { min-height: 360px; } .db-sticky-enroll { display: none; } }

/* Checkout */
body.woocommerce-checkout .db-section { padding: 52px 0 76px; background: #f4f9fd; }
body.woocommerce-checkout .entry-content > .woocommerce { width: 100%; max-width: none; margin: 0; }
body.woocommerce-checkout .entry-content > .woocommerce > .woocommerce-info,
body.woocommerce-checkout .entry-content > .woocommerce > .woocommerce-form-coupon-toggle { margin-bottom: 20px; }
body.woocommerce-checkout form.checkout { display: grid; width: 100%; max-width: none; box-sizing: border-box; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 24px 34px; align-items: start; }
body.woocommerce-checkout #customer_details { grid-column: 1; }
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 { float: none; width: auto; }
body.woocommerce-checkout #customer_details .col-2 { margin-top: 22px; }
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review { grid-column: 2; }
body.woocommerce-checkout #order_review_heading { margin: 0; padding: 22px 24px 0; border: 1px solid var(--db-line); border-bottom: 0; border-radius: var(--db-radius) var(--db-radius) 0 0; background: #fff; font-size: 1.18rem; }
body.woocommerce-checkout #order_review { padding: 16px 24px 24px; border: 1px solid var(--db-line); border-top: 0 !important; border-radius: 0 0 var(--db-radius) var(--db-radius); background: #fff; box-shadow: 0 12px 30px rgba(6,16,31,.06); }
@media (min-width: 801px) {
    body.woocommerce-checkout #customer_details { grid-row: 1; }
    body.woocommerce-checkout #order_review_heading { grid-row: 1; align-self: start; }
    body.woocommerce-checkout #order_review { grid-row: 1; align-self: start; min-width: 0; margin-top: 45px; }
}
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-additional-fields { padding: 26px; border: 1px solid var(--db-line); border-radius: var(--db-radius); background: #fff; box-shadow: 0 12px 30px rgba(6,16,31,.05); }
body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-additional-fields > h3 { display: none; }
body.woocommerce-checkout .form-row { margin: 0 0 17px; padding: 0; }
body.woocommerce-checkout .form-row:last-child { margin-bottom: 0; }
@media (min-width: 561px) {
    body.woocommerce-checkout .form-row-first { clear: left; float: left; width: calc(50% - 8px); }
    body.woocommerce-checkout .form-row-last { float: right; width: calc(50% - 8px); }
}
body.woocommerce-checkout .form-row label { display: block; margin-bottom: 7px; color: var(--db-text); font-size: .82rem; font-weight: 780; }
body.woocommerce-checkout .form-row .required { color: #e34c4c; }
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .form-row textarea { min-height: 46px; padding: 11px 13px; border: 1px solid #ccd8e2; border-radius: 9px; background: #fff; color: var(--db-text); box-shadow: none; }
body.woocommerce-checkout .form-row textarea { min-height: 96px; }
body.woocommerce-checkout .form-row input:focus,
body.woocommerce-checkout .form-row select:focus,
body.woocommerce-checkout .form-row textarea:focus { border-color: var(--db-blue); outline: 3px solid rgba(0,119,255,.12); }
.deepblue-checkout-section { display: flex; align-items: flex-start; gap: 12px; margin: 0 0 24px; padding-bottom: 17px; border-bottom: 1px solid var(--db-line); }
.deepblue-checkout-section--inline { width: 100%; margin-top: 30px; }
.deepblue-checkout-section span { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--db-blue); color: #fff; font-size: .73rem; font-weight: 850; }
.deepblue-checkout-section h3 { margin: 2px 0 3px; font-size: 1.25rem; letter-spacing: -.02em; }
.deepblue-checkout-section p { margin: 0; color: var(--db-muted); font-size: .84rem; line-height: 1.45; }
body.woocommerce-checkout #payment { border-radius: 10px; background: var(--db-surface-alt); }
body.woocommerce-checkout #place_order { width: 100%; padding: 14px 18px; border-radius: 9px; background: var(--db-blue); font-weight: 800; }
.deepblue-choice-group { margin: 0 0 22px; }
.deepblue-choice-label { display: block; margin-bottom: 9px; color: var(--db-text); font-size: .9rem; font-weight: 800; }
.deepblue-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.deepblue-choice { position: relative; display: flex; min-height: 48px; align-items: center; justify-content: center; padding: 9px; border: 1px solid var(--db-line); border-radius: 10px; background: #fff; cursor: pointer; font-size: .82rem; font-weight: 720; text-align: center; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.deepblue-choice input { position: absolute; opacity: 0; }
.deepblue-choice:has(input:checked) { border-color: var(--db-blue); background: #edf7ff; box-shadow: 0 0 0 2px rgba(0,119,255,.12); color: var(--db-blue); }
.deepblue-athlete-extra { overflow: hidden; max-height: 100px; opacity: 1; transform: none; transition: max-height .22s ease, opacity .18s ease, margin .22s ease, transform .22s ease; }
.deepblue-athlete-extra.is-hidden { max-height: 0; margin: 0; opacity: 0; pointer-events: none; transform: translateY(-5px); }
.deepblue-membership-upsell { display: grid; gap: 16px; margin-top: 24px; padding: 20px; border: 1px solid #cce6ff; border-radius: 14px; background: linear-gradient(135deg,#f5fbff,#fff); }
.deepblue-membership-upsell .db-eyebrow { margin-bottom: 4px; font-size: .65rem; }
.deepblue-membership-upsell h3 { margin: 0 0 6px; font-size: 1.15rem; }
.deepblue-membership-upsell p:not(.db-eyebrow) { margin: 0; color: var(--db-muted); font-size: .84rem; line-height: 1.55; }
.deepblue-membership-toggle { display: flex; align-items: center; gap: 11px; padding: 13px; border: 1px solid var(--db-line); border-radius: 10px; background: #fff; cursor: pointer; }
.deepblue-membership-toggle input { width: 19px; height: 19px; accent-color: var(--db-blue); }
.deepblue-membership-toggle b,.deepblue-membership-toggle small { display: block; }.deepblue-membership-toggle small { margin-top: 2px; color: var(--db-muted); font-size: .75rem; }
.deepblue-membership-plan-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.deepblue-membership-plan-option { display: flex; gap: 9px; align-items: flex-start; padding: 13px; border: 1px solid var(--db-line); border-radius: 10px; background: #fff; cursor: pointer; }
.deepblue-membership-plan-option:has(input:checked) { border-color: var(--db-blue); box-shadow: 0 0 0 2px rgba(0,119,255,.1); }
.deepblue-membership-plan-option input { margin-top: 3px; accent-color: var(--db-blue); }
.deepblue-membership-plan-option span { display: grid; gap: 3px; min-width: 0; }
.deepblue-membership-plan-option b { color: var(--db-text); font-size: .85rem; }
.deepblue-membership-plan-option small,.deepblue-membership-note { color: var(--db-muted); font-size: .72rem; line-height: 1.4; }
.deepblue-membership-plan-option strong { margin-left: auto; color: var(--db-blue); font-size: .82rem; white-space: nowrap; }
body.woocommerce-checkout #order_review .shop_table { margin: 0 0 14px; }
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: .76rem; line-height: 1.5; }
body.woocommerce-checkout #place_order:disabled { opacity: .7; cursor: wait; }
@media (max-width: 800px) { body.woocommerce-checkout .db-section { padding: 34px 0 60px; } body.woocommerce-checkout form.checkout { display: block; } body.woocommerce-checkout #order_review_heading { margin-top: 24px; } body.woocommerce-checkout #order_review { margin-top: 0; } body.woocommerce-checkout .woocommerce-billing-fields,body.woocommerce-checkout .woocommerce-additional-fields { padding: 20px; } }
@media (max-width: 560px) {
    body.woocommerce-checkout .db-section { padding: 24px 0 48px; }
    body.woocommerce-checkout .entry-content > .woocommerce > .woocommerce-info,
    body.woocommerce-checkout .entry-content > .woocommerce > .woocommerce-form-coupon-toggle { margin-bottom: 14px; font-size: .78rem; line-height: 1.45; }
    body.woocommerce-checkout .entry-content h1 { margin-bottom: 18px; font-size: 1.8rem; }
    body.woocommerce-checkout .woocommerce-billing-fields,
    body.woocommerce-checkout .woocommerce-additional-fields { padding: 16px; border-radius: 14px; }
    body.woocommerce-checkout #customer_details .col-2 { margin-top: 16px; }
    body.woocommerce-checkout .form-row { margin-bottom: 13px; }
    body.woocommerce-checkout .form-row-first,
    body.woocommerce-checkout .form-row-last { float: none; width: 100%; }
    body.woocommerce-checkout .form-row label { margin-bottom: 5px; font-size: .74rem; }
    body.woocommerce-checkout .form-row input.input-text,
    body.woocommerce-checkout .form-row select,
    body.woocommerce-checkout .form-row textarea { min-height: 42px; padding: 9px 11px; border-radius: 8px; font-size: .86rem; }
    body.woocommerce-checkout .form-row textarea { min-height: 78px; }
    .deepblue-checkout-section { gap: 10px; margin-bottom: 17px; padding-bottom: 13px; }
    .deepblue-checkout-section--inline { margin-top: 23px; }
    .deepblue-checkout-section span { flex-basis: 25px; width: 25px; height: 25px; font-size: .64rem; }
    .deepblue-checkout-section h3 { margin-top: 1px; font-size: 1.04rem; }
    .deepblue-checkout-section p { font-size: .76rem; }
    body.woocommerce-checkout #order_review_heading { margin-top: 18px; padding: 17px 18px 0; border-radius: 14px 14px 0 0; font-size: 1.02rem; }
    body.woocommerce-checkout #order_review { padding: 14px 18px 18px; border-radius: 0 0 14px 14px; font-size: .82rem; }
    body.woocommerce-checkout #order_review table { font-size: .78rem; }
    body.woocommerce-checkout #payment { font-size: .8rem; }
    body.woocommerce-checkout #place_order { min-height: 44px; padding: 11px 14px; font-size: .82rem; }
    .deepblue-choice-grid { grid-template-columns: 1fr; }
    .deepblue-choice-group--gender .deepblue-choice-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .deepblue-choice { min-height: 44px; justify-content: flex-start; padding-left: 14px; font-size: .8rem; }
    .deepblue-membership-upsell { margin-top: 18px; padding: 16px; }
    .deepblue-membership-plan-options { grid-template-columns: 1fr; }
}

/* Membership landing */
.db-membership-hero{padding:72px 0;color:#fff;background:linear-gradient(100deg,rgba(6,16,31,.94),rgba(6,16,31,.5)),url("../img/hero/bajo-piscina-descanso.jpg") center/cover}.db-membership-hero__content{display:grid;gap:32px;align-items:center}.db-membership-hero h1{margin:10px 0 18px;max-width:720px;color:#fff;font-size:clamp(2.55rem,8vw,5.5rem);letter-spacing:-.055em}.db-membership-hero h1 span,.db-membership-hero__price strong{color:var(--db-cyan)}.db-membership-hero p{max-width:620px;color:rgba(255,255,255,.8);font-size:1.08rem;line-height:1.7}.db-membership-hero__actions{display:flex;gap:18px;align-items:center;margin:28px 0 14px;flex-wrap:wrap}.db-membership-text-link{color:#fff;font-weight:750;text-decoration:underline;text-underline-offset:4px}.db-membership-hero small{color:rgba(255,255,255,.7)}.db-membership-hero__price{padding:26px;border:1px solid rgba(255,255,255,.18);border-radius:var(--db-radius);background:rgba(6,16,31,.52);backdrop-filter:blur(9px)}.db-membership-hero__price span,.db-membership-hero__price b{display:block}.db-membership-hero__price strong{display:block;font-size:3.6rem;line-height:1}.db-membership-hero__price em{display:inline-block;margin-top:14px;color:#fff;font-size:.82rem;font-style:normal;font-weight:750}
.db-membership-heading{margin-bottom:28px}.db-membership-heading h2,.db-membership-preference h2,.db-membership-recovery h2,.db-membership-final h2{margin:0;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.04em}.db-membership-benefit-grid,.db-membership-plan-grid{display:grid;gap:14px}.db-membership-benefit,.db-membership-plan{position:relative;padding:24px;border:1px solid var(--db-line);border-radius:var(--db-radius-sm);background:#fff}.db-membership-benefit>span{color:var(--db-blue);font-size:.78rem;font-weight:850;letter-spacing:.1em}.db-membership-benefit h3{margin:10px 0 6px;font-size:1.15rem}.db-membership-benefit strong{color:var(--db-blue)}.db-membership-benefit p,.db-membership-preference p:not(.db-eyebrow){margin:8px 0 0;color:var(--db-muted)}
.db-membership-value{padding:64px 0;color:#fff;background:var(--db-navy-950)}.db-membership-value h2{color:#fff}.db-membership-value__cards{display:grid;gap:12px;align-items:center}.db-membership-value__cards article{padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:var(--db-radius);background:rgba(255,255,255,.06)}.db-membership-value__cards .is-member{border-color:var(--db-cyan);background:linear-gradient(135deg,rgba(41,182,255,.21),rgba(0,119,255,.14))}.db-membership-value__cards span{color:var(--db-cyan);text-transform:uppercase;font-size:.76rem;font-weight:850;letter-spacing:.12em}.db-membership-value__cards p{margin:10px 0;color:rgba(255,255,255,.7)}.db-membership-value__cards strong{font-size:2.7rem}.db-membership-value__vs{text-align:center;color:var(--db-cyan);font-weight:850}.db-membership-value__schedule{text-align:center;color:rgba(255,255,255,.7)}
.db-membership-preference .db-shell{display:grid;gap:28px;align-items:center}.db-membership-timeline{display:grid;gap:12px;margin:0;padding:0;list-style:none;counter-reset:steps}.db-membership-timeline li{position:relative;padding:19px 18px 19px 62px;border-radius:var(--db-radius-sm);background:var(--db-surface-alt)}.db-membership-timeline li:before{content:counter(steps);counter-increment:steps;position:absolute;left:18px;top:18px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--db-blue);color:#fff;font-size:.8rem;font-weight:800}.db-membership-timeline b,.db-membership-timeline span{display:block}.db-membership-timeline span{color:var(--db-muted);font-size:.9rem}
.db-membership-recovery,.db-membership-final{padding:68px 0;text-align:center;color:#fff;background:linear-gradient(135deg,var(--db-navy-900),var(--db-blue))}.db-membership-recovery h2,.db-membership-final h2{color:#fff}.db-membership-recovery p,.db-membership-final p{margin:15px auto;max-width:630px;color:rgba(255,255,255,.84);font-size:1.1rem}.db-membership-recovery small,.db-membership-final small{display:block;margin-top:16px;color:rgba(255,255,255,.7)}.db-membership-plan{padding:26px}.db-membership-plan.is-recommended{border:2px solid var(--db-blue);box-shadow:var(--db-shadow)}.db-membership-plan__badge{position:absolute;top:-13px;left:22px;padding:5px 10px;border-radius:999px;background:var(--db-blue);color:#fff;font-size:.72rem;font-weight:850;text-transform:uppercase}.db-membership-plan h3{margin:0}.db-membership-plan__price{margin:16px 0 4px;font-size:2.6rem;font-weight:850}.db-membership-plan__price small,.db-membership-plan__equivalent{color:var(--db-muted);font-size:.95rem;font-weight:600}.db-membership-plan__equivalent strong{color:var(--db-blue)}.db-membership-plan ul{margin:24px 0;padding:0;list-style:none}.db-membership-plan li{margin:10px 0;color:var(--db-muted)}.db-membership-plan li:before{content:'✓';margin-right:9px;color:var(--db-success);font-weight:850}.db-membership-saving{display:grid;gap:10px;margin-top:22px}.db-membership-saving div{display:flex;justify-content:space-between;padding:14px;border-radius:10px;background:var(--db-surface-alt)}.db-membership-saving span{color:var(--db-muted)}
.db-membership-faq__item{border-bottom:1px solid var(--db-line)}.db-membership-faq__item button{width:100%;display:flex;justify-content:space-between;gap:16px;padding:20px 0;border:0;background:transparent;text-align:left;font-weight:780;cursor:pointer}.db-membership-faq__item button span:last-child{color:var(--db-blue);font-size:1.35rem}.db-membership-faq__item div p{margin:0 0 20px;color:var(--db-muted);line-height:1.7}.db-membership-final{background:linear-gradient(100deg,rgba(6,16,31,.85),rgba(6,16,31,.4)),url("../img/grupo-en-playa.jpg") center/cover}.db-membership-sticky{display:none}
@media(min-width:720px){.db-membership-hero__content{grid-template-columns:minmax(0,1fr) 230px}.db-membership-benefit-grid,.db-membership-plan-grid{grid-template-columns:repeat(2,1fr)}.db-membership-value__cards{grid-template-columns:1fr auto 1fr}.db-membership-preference .db-shell{grid-template-columns:1.1fr .9fr}.db-membership-saving{grid-template-columns:repeat(3,1fr)}.db-membership-saving div{display:block}.db-membership-saving strong{display:block;margin-top:6px}}
@media(max-width:767px){.db-membership-hero{padding:46px 0 58px}.db-membership-hero h1{font-size:clamp(2.45rem,12vw,3.5rem)}.db-membership-hero__price{display:none}.db-membership-benefits,.db-membership-preference,.db-membership-plans,.db-membership-faq{padding:48px 0}.db-membership-value,.db-membership-recovery,.db-membership-final{padding:54px 0}.db-membership-sticky{position:fixed;z-index:90;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--db-line);background:rgba(255,255,255,.96);box-shadow:0 -8px 24px rgba(6,16,31,.1);backdrop-filter:blur(10px)}.db-membership-sticky span{display:grid;font-size:.88rem}.db-membership-sticky small{color:var(--db-muted)}.db-membership-sticky .db-button{padding:11px 15px}}

/* Página de bienvenida tras suscribirse a una membresía. */
.db-membership-thanks{padding:100px 0 92px;text-align:center;color:#fff;background:linear-gradient(115deg,rgba(6,16,31,.94),rgba(8,66,121,.82)),url("../img/grupo-en-playa.jpg") center/cover}.db-membership-thanks__content{max-width:760px}.db-membership-thanks .db-eyebrow{color:var(--db-cyan)}.db-membership-thanks__icon{width:64px;height:64px;margin:20px auto;display:grid;place-items:center;border:2px solid var(--db-cyan);border-radius:50%;color:var(--db-cyan);font-size:2rem;font-weight:800}.db-membership-thanks h1{margin:0;color:#fff;font-size:clamp(2.4rem,6vw,4.4rem);letter-spacing:-.05em}.db-membership-thanks .db-lead{max-width:640px;margin:20px auto 0;color:rgba(255,255,255,.8);line-height:1.7}.db-membership-thanks__actions{display:flex;justify-content:center;gap:12px;margin-top:30px;flex-wrap:wrap}.db-membership-thanks__next h2{margin:4px 0 28px;font-size:38px}.db-membership-thanks__grid{display:grid;gap:16px}.db-membership-thanks__grid article{padding:26px;border:1px solid var(--db-line);border-radius:var(--db-radius);background:#fff}.db-membership-thanks__grid span{color:var(--db-blue);font-size:.78rem;font-weight:850;letter-spacing:.1em}.db-membership-thanks__grid h3{margin:10px 0 6px;font-size:1.1rem}.db-membership-thanks__grid p{margin:0;color:var(--db-muted);line-height:1.65}@media(min-width:720px){.db-membership-thanks__grid{grid-template-columns:repeat(3,1fr)}}
.db-membership-thanks__contact{margin:22px 0 0;color:rgba(255,255,255,.8);font-size:.9rem}.db-membership-thanks__contact a,.db-membership-final small a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* Páginas institucionales: Sedes y Nosotros. */
.db-page-hero{position:relative;padding:106px 0 94px;color:#fff;overflow:hidden;background:var(--db-navy-900)}.db-page-hero .db-shell{position:relative;z-index:1}.db-page-hero h1{max-width:760px;margin:0 0 18px;color:#fff;font-size:clamp(2.7rem,6vw,5rem);letter-spacing:-.055em}.db-page-hero p:not(.db-eyebrow){max-width:620px;margin:0 0 28px;color:rgba(255,255,255,.8);font-size:1.06rem;line-height:1.7}.db-page-hero .db-eyebrow{color:var(--db-cyan)}.db-venues-hero{background:linear-gradient(105deg,rgba(6,16,31,.94),rgba(6,16,31,.43)),url("../img/sede-playa-v2.jpg") center/cover}.db-page-heading{max-width:730px;margin-bottom:36px}.db-page-heading h2,.db-venues-cta h2,.db-about-story h2,.db-about-gallery h2,.db-about-final h2{margin:4px 0 14px;font-size:38px;letter-spacing:-.04em}.db-venue-list{display:grid;gap:32px}.db-venue-detail{display:grid;overflow:hidden;border:1px solid var(--db-line);border-radius:var(--db-radius);background:#fff;box-shadow:var(--db-shadow)}.db-venue-detail__image{position:relative;min-height:300px;background:var(--db-navy-900)}.db-venue-detail__image img{width:100%;height:100%;object-fit:cover}.db-venue-detail__image span{position:absolute;right:20px;bottom:20px;display:grid;width:54px;height:54px;place-items:center;border:3px solid #fff;border-radius:50%;background:var(--db-blue);color:#fff;font-size:.8rem;font-weight:850}.db-venue-detail__content{padding:32px}.db-venue-detail__content h2{margin:0 0 8px;font-size:2rem;letter-spacing:-.035em}.db-venue-detail__address{margin:0 0 16px;color:var(--db-blue);font-size:.9rem;font-weight:750}.db-venue-detail__content>p:not(.db-eyebrow):not(.db-venue-detail__address){margin:0;color:var(--db-muted);line-height:1.7}.db-venue-detail__content ul{display:grid;gap:9px;margin:24px 0;padding:0;list-style:none}.db-venue-detail__content li{position:relative;padding-left:19px;color:var(--db-muted);font-size:.9rem}.db-venue-detail__content li::before{position:absolute;left:0;content:'✓';color:var(--db-blue);font-weight:850}.db-venue-detail__actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.db-venue-detail__actions>a:first-child{color:var(--db-blue);font-size:.88rem;font-weight:800}.db-venue-detail__actions>a:first-child span{display:inline-block;margin-left:3px}.db-venues-cta,.db-about-final{padding:76px 0;text-align:center;color:#fff;background:linear-gradient(135deg,var(--db-navy-950),var(--db-blue))}.db-venues-cta .db-eyebrow,.db-about-final .db-eyebrow{color:var(--db-cyan)}.db-venues-cta h2,.db-about-final h2{color:#fff}.db-about-hero{padding:92px 0;background:linear-gradient(120deg,var(--db-navy-950),var(--db-navy-800))}.db-about-hero__content{display:grid;gap:42px;align-items:center}.db-about-collage{position:relative;min-height:510px}.db-about-collage img{position:absolute;object-fit:cover;box-shadow:0 18px 44px rgba(0,0,0,.22)}.db-about-collage__main{inset:0 18% 0 0;width:82%;height:100%;border-radius:var(--db-radius)}.db-about-collage__top{top:0;right:0;width:38%;height:39%;border:5px solid var(--db-navy-800);border-radius:14px}.db-about-collage__bottom{right:0;bottom:0;width:42%;height:43%;border:5px solid var(--db-navy-800);border-radius:14px}.db-about-story{background:#fff}.db-about-story__grid{display:grid;gap:30px}.db-about-story__grid>div:last-child{max-width:560px}.db-about-story__grid p{color:var(--db-muted);line-height:1.8}.db-about-values{background:var(--db-surface-alt)}.db-about-values__grid{display:grid;gap:16px}.db-about-values__grid article{padding:28px;border:1px solid var(--db-line);border-radius:var(--db-radius-sm);background:#fff}.db-about-values__grid span{color:var(--db-blue);font-size:.78rem;font-weight:850;letter-spacing:.1em}.db-about-values__grid h3{margin:11px 0 7px;font-size:1.18rem}.db-about-values__grid p{margin:0;color:var(--db-muted);line-height:1.65}.db-about-gallery{padding:76px 0;background:#fff}.db-about-gallery__heading{max-width:700px;margin-bottom:30px}.db-about-gallery__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.db-about-gallery__grid img{width:100%;height:100%;min-height:270px;object-fit:cover;border-radius:var(--db-radius-sm)}.db-about-gallery__grid img:first-child{grid-row:span 2;min-height:554px}.db-about-gallery__grid img:last-child{min-height:270px}.db-about-final p:not(.db-eyebrow){margin:0 auto 24px;max-width:570px;color:rgba(255,255,255,.8);line-height:1.7}
@media(min-width:720px){.db-venue-detail{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)}.db-venue-detail:nth-child(even) .db-venue-detail__image{order:2}.db-about-hero__content,.db-about-story__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.db-about-values__grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:719px){.db-page-hero{padding:72px 0}.db-page-hero h1{font-size:clamp(2.45rem,11vw,3.6rem)}.db-page-heading h2,.db-venues-cta h2,.db-about-story h2,.db-about-gallery h2,.db-about-final h2{font-size:32px}.db-venue-detail__image{aspect-ratio:1/1;min-height:0}.db-venue-detail__content{padding:25px}.db-about-hero{padding:66px 0}.db-about-collage{min-height:390px}.db-about-gallery{padding:56px 0}.db-about-gallery__grid{grid-template-columns:1fr 1fr}.db-about-gallery__grid img,.db-about-gallery__grid img:last-child{min-height:190px}.db-about-gallery__grid img:first-child{min-height:394px}.db-venues-cta,.db-about-final{padding:62px 0}}
