/* =========================================================

   TAMWORTH BOXING CLUB

   COMPLETE RESPONSIVE STYLE SHEET

   ========================================================= */

:root {

    --blue: #0066ff;

    --blue-dark: #003b9b;

    --yellow: #ffd400;

    --black: #020611;

    --navy: #06142f;

    --navy-2: #091d42;

    --white: #ffffff;

    --muted: #8795aa;

    --border: rgba(255, 255, 255, 0.12);

    --container: 1400px;

    --nav-height: 74px;

    --radius: 4px;

}

/* =========================================================

   RESET

   ========================================================= */

* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}

html {

    scroll-behavior: smooth;

    background: var(--black);

}

body {

    background: var(--black);

    color: var(--white);

    font-family: "Inter", sans-serif;

    overflow-x: hidden;

    line-height: 1.5;

    -webkit-font-smoothing: antialiased;

}

img {

    display: block;

    max-width: 100%;

}

a {

    color: inherit;

    text-decoration: none;

}

button {

    font: inherit;

}

::selection {

    background: var(--yellow);

    color: var(--black);

}

/* =========================================================

   SCROLLBAR

   ========================================================= */

::-webkit-scrollbar {

    width: 8px;

}

::-webkit-scrollbar-track {

    background: var(--black);

}

::-webkit-scrollbar-thumb {

    background: #263752;

}

::-webkit-scrollbar-thumb:hover {

    background: var(--blue);

}

/* =========================================================

   GLOBAL TYPOGRAPHY

   ========================================================= */

h1,

h2,

h3,

h4,

.navbar,

.button,

.section-number,

.hero-label,

.photo-number,

.training-card,

.session-card,

.team-card,

.value-card,

.bring-card {

    font-family: "Barlow Condensed", sans-serif;

}

/* =========================================================

   NAVBAR

   ========================================================= */

.navbar {

    position: fixed;

    z-index: 1000;

    top: 0;

    left: 0;

    width: 100%;

    height: var(--nav-height);

    padding: 0 5%;

    display: flex;

    align-items: center;

    justify-content: space-between;

    background: rgba(2, 6, 17, 0.78);

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);

    backdrop-filter: blur(18px);

    -webkit-backdrop-filter: blur(18px);

}

.logo-image {

    width: 54px;

    height: 54px;

    object-fit: contain;

}

.navbar nav {

    display: flex;

    align-items: center;

    gap: 30px;

}

.navbar nav a {

    position: relative;

    font-size: 13px;

    font-weight: 700;

    letter-spacing: 1.5px;

    text-transform: uppercase;

    color: rgba(255, 255, 255, 0.78);

    transition:

        color 0.25s ease,

        transform 0.25s ease;

}

.navbar nav a::after {

    content: "";

    position: absolute;

    left: 0;

    bottom: -8px;

    width: 0;

    height: 2px;

    background: var(--yellow);

    transition: width 0.25s ease;

}

.navbar nav a:hover {

    color: var(--white);

}

.navbar nav a:hover::after {

    width: 100%;

}

.nav-button {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 44px;

    padding: 0 22px;

    background: var(--yellow);

    color: var(--black);

    font-size: 13px;

    font-weight: 900;

    letter-spacing: 1px;

    transition:

        transform 0.25s ease,

        background 0.25s ease;

}

.nav-button:hover {

    transform: translateY(-2px);

    background: var(--white);

}

/* Existing mobile menu button */

.mobile-menu-button {

    display: none;

    width: 44px;

    height: 44px;

    border: 1px solid rgba(255, 255, 255, 0.15);

    background: rgba(255, 255, 255, 0.04);

    color: var(--white);

    cursor: pointer;

    align-items: center;

    justify-content: center;

}

/* =========================================================

   BUTTONS

   ========================================================= */

.button {

    min-height: 52px;

    padding: 0 26px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    border: 1px solid transparent;

    font-size: 14px;

    font-weight: 800;

    letter-spacing: 1.3px;

    text-transform: uppercase;

    transition:

        transform 0.25s ease,

        background 0.25s ease,

        color 0.25s ease,

        border-color 0.25s ease;

}

.button:hover {

    transform: translateY(-3px);

}

.button.primary {

    background: var(--yellow);

    color: var(--black);

}

.button.primary:hover {

    background: var(--white);

}

.button.secondary {

    background: transparent;

    border-color: rgba(255, 255, 255, 0.3);

    color: var(--white);

}

.button.secondary:hover {

    background: var(--white);

    color: var(--black);

}

.button.blue {

    background: var(--blue);

    color: var(--white);

}

.button.blue:hover {

    background: #3385ff;

}

/* =========================================================

   CINEMATIC INTRO

   ========================================================= */

.site-intro {

    position: fixed;

    z-index: 9999;

    inset: 0;

    width: 100%;

    height: 100vh;

    height: 100dvh;

    display: flex;

    align-items: center;

    justify-content: center;

    background:

        radial-gradient(

            circle at 50% 45%,

            rgba(0, 102, 255, 0.17),

            transparent 38%

        ),

        #020611;

    overflow: hidden;

    transition:

        opacity 0.8s ease,

        visibility 0.8s ease;

}

.site-intro.hidden {

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

}

.intro-glow {

    position: absolute;

    width: 50vw;

    height: 50vw;

    max-width: 700px;

    max-height: 700px;

    border-radius: 50%;

    background: rgba(0, 102, 255, 0.14);

    filter: blur(100px);

    animation: introGlow 5s ease-in-out infinite alternate;

}

.intro-grid {

    position: absolute;

    inset: 0;

    opacity: 0.12;

    background-image:

        linear-gradient(

            rgba(255, 255, 255, 0.08) 1px,

            transparent 1px

        ),

        linear-gradient(

            90deg,

            rgba(255, 255, 255, 0.08) 1px,

            transparent 1px

        );

    background-size: 55px 55px;

    mask-image: linear-gradient(

        to bottom,

        transparent,

        black,

        transparent

    );

    -webkit-mask-image: linear-gradient(

        to bottom,

        transparent,

        black,

        transparent

    );

}

.intro-content {

    position: relative;

    z-index: 2;

    width: min(90%, 900px);

    text-align: center;

}

.intro-content .mini-text {

    margin-bottom: 22px;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 14px;

    font-weight: 800;

    letter-spacing: 4px;

    color: var(--yellow);

    animation: introFadeUp 0.8s 0.1s both;

}

.intro-content img {

    width: 180px;

    height: 180px;

    margin: 0 auto 25px;

    object-fit: contain;

    animation: introLogo 1s 0.15s both;

}

.intro-content h1 {

    font-size: clamp(70px, 11vw, 150px);

    line-height: 0.78;

    font-weight: 900;

    letter-spacing: -2px;

}

.intro-content h1 span {

    display: block;

    animation: introTitle 1s 0.25s both;

}

.intro-content h1 span:last-child {

    color: var(--blue);

    animation-delay: 0.35s;

}

.intro-line {

    width: 90px;

    height: 3px;

    margin: 32px auto 20px;

    background: var(--yellow);

    animation: introFadeUp 0.8s 0.45s both;

}

.intro-content .subtitle {

    font-family: "Barlow Condensed", sans-serif;

    font-size: 17px;

    font-weight: 700;

    letter-spacing: 3px;

    color: rgba(255, 255, 255, 0.7);

    animation: introFadeUp 0.8s 0.55s both;

}

.intro-skip,

#introSkip {

    position: absolute;

    z-index: 3;

    right: 30px;

    bottom: 28px;

    border: 0;

    background: transparent;

    color: rgba(255, 255, 255, 0.5);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 13px;

    font-weight: 800;

    letter-spacing: 2px;

    cursor: pointer;

    transition: color 0.25s ease;

}

.intro-skip:hover,

#introSkip:hover {

    color: var(--white);

}

@keyframes introGlow {

    from {

        transform: scale(0.9);

        opacity: 0.65;

    }

    to {

        transform: scale(1.1);

        opacity: 1;

    }

}

@keyframes introLogo {

    from {

        opacity: 0;

        transform: scale(0.7) translateY(20px);

    }

    to {

        opacity: 1;

        transform: scale(1) translateY(0);

    }

}

@keyframes introFadeUp {

    from {

        opacity: 0;

        transform: translateY(25px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}

@keyframes introTitle {

    from {

        opacity: 0;

        transform: translateY(60px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}

/* =========================================================

   HERO

   ========================================================= */

.hero {

    position: relative;

    min-height: 900px;

    padding: 160px 7% 100px;

    display: flex;

    align-items: center;

    overflow: hidden;

    background:

        radial-gradient(

            circle at 15% 60%,

            rgba(0, 102, 255, 0.14),

            transparent 35%

        ),

        var(--black);

}

.hero-grid {

    position: absolute;

    inset: 0;

    opacity: 0.07;

    background-image:

        linear-gradient(

            rgba(255, 255, 255, 0.08) 1px,

            transparent 1px

        ),

        linear-gradient(

            90deg,

            rgba(255, 255, 255, 0.08) 1px,

            transparent 1px

        );

    background-size: 70px 70px;

    mask-image: linear-gradient(

        to right,

        black,

        transparent

    );

    -webkit-mask-image: linear-gradient(

        to right,

        black,

        transparent

    );

}

.hero-bg {

    position: absolute;

    inset: 0;

    background:

        linear-gradient(

            90deg,

            rgba(2, 6, 17, 0.96) 0%,

            rgba(2, 6, 17, 0.88) 35%,

            rgba(2, 6, 17, 0.38) 70%,

            rgba(2, 6, 17, 0.75) 100%

        );

    z-index: 1;

}

.hero-content {

    position: relative;

    z-index: 5;

    width: 55%;

    max-width: 780px;

}

.hero-label {

    margin-bottom: 25px;

    font-size: 14px;

    font-weight: 800;

    letter-spacing: 3px;

    color: var(--yellow);

}

.hero h1 {

    font-size: clamp(90px, 12vw, 190px);

    line-height: 0.78;

    font-weight: 900;

    letter-spacing: -3px;

}

.hero h1 span {

    display: block;

}

.hero h1 span:last-child {

    color: var(--blue);

}

.hero-tagline {

    margin-top: 35px;

    font-family: "Barlow Condensed", sans-serif;

    font-size: clamp(25px, 3vw, 42px);

    font-weight: 800;

    letter-spacing: 1px;

}

.hero-description {

    max-width: 560px;

    margin-top: 20px;

    color: var(--muted);

    font-size: 16px;

    line-height: 1.8;

}

.hero-buttons {

    margin-top: 35px;

    display: flex;

    flex-wrap: wrap;

    gap: 14px;

}

/* Hero image */

.hero-photo,

.hero-image {

    position: absolute;

    z-index: 2;

    top: 11%;

    right: 4%;

    width: 49%;

    height: 76%;

    overflow: hidden;

    clip-path: polygon(

        8% 0,

        100% 0,

        100% 92%,

        92% 100%,

        0 100%,

        0 8%

    );

}

.hero-photo img,

.hero-image img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    filter:

        contrast(1.1)

        saturate(0.82);

    transform: scale(1.03);

    transition:

        transform 1.2s ease,

        filter 0.8s ease;

}

.hero-photo::after,

.hero-image::after {

    content: "";

    position: absolute;

    inset: 0;

    background:

        linear-gradient(

            90deg,

            rgba(2, 6, 17, 0.75),

            transparent 42%

        ),

        linear-gradient(

            0deg,

            rgba(2, 6, 17, 0.75),

            transparent 45%

        );

}

.hero-photo:hover img,

.hero-image:hover img {

    transform: scale(1.07);

    filter:

        contrast(1.15)

        saturate(1);

}

.hero-watermark {

    position: absolute;

    z-index: 1;

    right: 18%;

    bottom: 4%;

    width: 430px;

    opacity: 0.045;

    filter: grayscale(1);

}

.hero-number {

    position: absolute;

    z-index: 4;

    right: 7%;

    bottom: 8%;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 100px;

    font-weight: 900;

    line-height: 1;

    color: rgba(255, 255, 255, 0.07);

}

.hero-photo-label {

    position: absolute;

    z-index: 5;

    right: 9%;

    bottom: 7%;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 13px;

    font-weight: 800;

    letter-spacing: 3px;

    color: var(--yellow);

}

/* Next session */

.hero-training-card {

    position: absolute;

    z-index: 7;

    left: 7%;

    bottom: 45px;

    width: 240px;

    min-height: 130px;

    padding: 20px;

    background: rgba(6, 20, 47, 0.9);

    border-left: 3px solid var(--yellow);

    backdrop-filter: blur(14px);

}

.hero-training-card .small {

    display: block;

    margin-bottom: 8px;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 2px;

    color: var(--muted);

}

.hero-training-card strong {

    display: block;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 32px;

    line-height: 0.95;

    font-weight: 900;

}

.hero-training-card span {

    display: block;

    margin-top: 7px;

    color: var(--yellow);

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 1px;

}

.scroll-line {

    position: absolute;

    z-index: 5;

    right: 7%;

    bottom: 50px;

    display: flex;

    align-items: center;

    gap: 12px;

    color: rgba(255, 255, 255, 0.4);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 2px;

}

.scroll-line::before {

    content: "";

    width: 45px;

    height: 1px;

    background: var(--yellow);

}

/* =========================================================

   QUICK INFO

   ========================================================= */

.quick-info {

    position: relative;

    z-index: 5;

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    border-top: 1px solid var(--border);

    border-bottom: 1px solid var(--border);

    background: var(--navy);

}

.info-card {

    min-height: 150px;

    padding: 30px;

    border-right: 1px solid var(--border);

    display: flex;

    flex-direction: column;

    justify-content: center;

    transition: background 0.3s ease;

}

.info-card:last-child {

    border-right: 0;

}

.info-card:hover {

    background: var(--navy-2);

}

.info-card .label {

    margin-bottom: 9px;

    color: var(--yellow);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 2px;

}

.info-card strong {

    font-family: "Barlow Condensed", sans-serif;

    font-size: 24px;

    line-height: 1;

    font-weight: 800;

}

.info-card p {

    margin-top: 7px;

    color: var(--muted);

    font-size: 12px;

}

/* =========================================================

   GLOBAL SECTIONS

   ========================================================= */

.training-section,

.fight-section,

.team-section,

.values-section,

.bring-section {

    position: relative;

    padding: 120px 7%;

    background: var(--black);

}

.section-heading {

    max-width: var(--container);

    margin: 0 auto 65px;

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 50px;

}

.section-heading h2 {

    font-size: clamp(65px, 8vw, 110px);

    line-height: 0.8;

    font-weight: 900;

    letter-spacing: -1px;

}

.section-heading h2 span {

    color: var(--blue);

}

.section-heading p {

    width: 330px;

    color: var(--muted);

    font-size: 14px;

    line-height: 1.8;

}

.section-number {

    position: absolute;

    top: 55px;

    right: 7%;

    font-size: 100px;

    line-height: 1;

    font-weight: 900;

    color: rgba(255, 255, 255, 0.025);

}

/* =========================================================

   TRAINING

   ========================================================= */

.session-grid {

    max-width: var(--container);

    margin: 0 auto;

    display: grid;

    grid-template-columns: repeat(5, minmax(0, 1fr));

    gap: 14px;

}

.session-card {

    position: relative;

    min-height: 320px;

    padding: 25px;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    background: var(--navy);

    border: 1px solid var(--border);

    overflow: hidden;

    transition:

        transform 0.3s ease,

        border-color 0.3s ease,

        background 0.3s ease;

}

.session-card::before {

    content: "";

    position: absolute;

    left: 0;

    bottom: 0;

    width: 100%;

    height: 3px;

    background: var(--blue);

    transform: scaleX(0);

    transform-origin: left;

    transition: transform 0.35s ease;

}

.session-card:hover {

    transform: translateY(-8px);

    border-color: rgba(0, 102, 255, 0.5);

}

.session-card:hover::before {

    transform: scaleX(1);

}

.session-card.featured {

    background:

        linear-gradient(

            145deg,

            rgba(0, 102, 255, 0.95),

            rgba(0, 59, 155, 0.95)

        );

}

.session-card.featured::before {

    background: var(--yellow);

}

.session-number {

    font-size: 15px;

    font-weight: 900;

    letter-spacing: 2px;

    color: var(--yellow);

}

.session-card.featured .session-number {

    color: var(--white);

}

.session-day {

    margin-top: auto;

    margin-bottom: 12px;

    font-size: 42px;

    line-height: 0.9;

    font-weight: 900;

}

.session-time {

    font-size: 17px;

    font-weight: 800;

}

.session-name {

    margin-top: 7px;

    color: var(--muted);

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 1px;

}

.session-card.featured .session-name {

    color: rgba(255, 255, 255, 0.72);

}

.training-actions {

    max-width: var(--container);

    margin: 40px auto 0;

    display: flex;

    flex-wrap: wrap;

    gap: 12px;

}

/* =========================================================

   PRICING

   ========================================================= */

.pricing-panel {

    max-width: var(--container);

    margin: 70px auto 0;

    padding: 38px;

    background: var(--navy);

    border: 1px solid var(--border);

}

.pricing-heading {

    margin-bottom: 30px;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 32px;

    font-weight: 900;

    letter-spacing: 1px;

}

.pricing-items {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 14px;

}

.price-item {

    padding: 24px;

    background: rgba(255, 255, 255, 0.035);

    border: 1px solid rgba(255, 255, 255, 0.07);

}

.price-item span {

    display: block;

    margin-bottom: 7px;

    color: var(--yellow);

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 2px;

}

.price-item strong {

    font-family: "Barlow Condensed", sans-serif;

    font-size: 29px;

    font-weight: 900;

}

/* =========================================================

   REGISTRATION PANEL

   ========================================================= */

.registration-panel {

    max-width: var(--container);

    margin: 14px auto 0;

    padding: 35px;

    display: grid;

    grid-template-columns: auto 1fr auto;

    align-items: center;

    gap: 30px;

    background:

        linear-gradient(

            135deg,

            rgba(0, 102, 255, 0.18),

            rgba(6, 20, 47, 0.9)

        );

    border: 1px solid rgba(0, 102, 255, 0.28);

}

.panel-number {

    font-family: "Barlow Condensed", sans-serif;

    font-size: 65px;

    font-weight: 900;

    line-height: 0.8;

    color: var(--blue);

}

.registration-panel h3 {

    margin-bottom: 7px;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 35px;

    font-weight: 900;

}

.registration-panel p {

    color: var(--muted);

    font-size: 13px;

}

.registration-buttons {

    display: flex;

    flex-wrap: wrap;

    gap: 10px;

}

/* =========================================================

   CLUBLINK APP

   ========================================================= */

.app-panel {

    max-width: var(--container);

    margin: 14px auto 0;

    padding: 38px;

    display: grid;

    grid-template-columns: auto 1fr auto;

    align-items: center;

    gap: 30px;

    background: var(--navy-2);

    border: 1px solid var(--border);

}

.app-icon {

    width: 64px;

    height: 64px;

    display: flex;

    align-items: center;

    justify-content: center;

    background: var(--yellow);

    color: var(--black);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 24px;

    font-weight: 900;

}

.app-panel h3 {

    font-family: "Barlow Condensed", sans-serif;

    font-size: 36px;

    font-weight: 900;

}

.app-panel p {

    max-width: 700px;

    margin-top: 6px;

    color: var(--muted);

    font-size: 13px;

    line-height: 1.7;

}

.app-link {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: 48px;

    padding: 0 20px;

    border: 1px solid rgba(255, 255, 255, 0.2);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 14px;

    font-weight: 800;

    letter-spacing: 1px;

    transition:

        background 0.25s ease,

        color 0.25s ease;

}

.app-link:hover {

    background: var(--white);

    color: var(--black);

}

.direct-debit-link {

    color: var(--yellow);

}

/* =========================================================

   TRAINING NOTE

   ========================================================= */

.training-note {

    max-width: var(--container);

    margin: 25px auto 0;

    padding: 22px 25px;

    border-left: 3px solid var(--yellow);

    background: rgba(255, 255, 255, 0.035);

    color: var(--muted);

    font-size: 13px;

    line-height: 1.7;

}

.training-note strong {

    color: var(--white);

}

/* =========================================================

   FIGHT GALLERY

   ========================================================= */

.fight-section {

    background: var(--navy);

}

.fight-gallery {

    max-width: var(--container);

    margin: 0 auto;

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    grid-auto-rows: 280px;

    gap: 14px;

}

.fight-photo {

    position: relative;

    overflow: hidden;

    background: #0a1730;

}

.fight-photo.large {

    grid-row: span 2;

}

.fight-photo.wide {

    grid-column: span 2;

}

.fight-photo img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    filter:

        grayscale(20%)

        contrast(1.08);

    transition:

        transform 0.7s ease,

        filter 0.7s ease;

}

.fight-photo:hover img {

    transform: scale(1.06);

    filter:

        grayscale(0%)

        contrast(1.1);

}

.fight-photo::after {

    content: "";

    position: absolute;

    inset: 0;

    background:

        linear-gradient(

            0deg,

            rgba(0, 0, 0, 0.7),

            transparent 55%

        );

}

.photo-number {

    position: absolute;

    z-index: 2;

    left: 20px;

    bottom: 17px;

    font-size: 22px;

    font-weight: 900;

    color: var(--yellow);

}

/* =========================================================

   TEAM

   ========================================================= */

.team-section {

    overflow: hidden;

}

.team-background-logo {

    position: absolute;

    right: -100px;

    top: 100px;

    width: 500px;

    opacity: 0.035;

}

.team-grid {

    max-width: var(--container);

    margin: 0 auto;

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 14px;

}

.team-card {

    min-height: 360px;

    padding: 27px;

    display: flex;

    flex-direction: column;

    justify-content: flex-end;

    background: var(--navy);

    border: 1px solid var(--border);

    position: relative;

    overflow: hidden;

    transition:

        transform 0.3s ease,

        border-color 0.3s ease;

}

.team-card:hover {

    transform: translateY(-7px);

    border-color: rgba(0, 102, 255, 0.5);

}

.team-card.featured {

    grid-column: span 2;

    background:

        linear-gradient(

            135deg,

            rgba(0, 102, 255, 0.9),

            rgba(6, 20, 47, 1)

        );

}

.team-card-number {

    position: absolute;

    top: 20px;

    right: 23px;

    font-size: 16px;

    font-weight: 900;

    color: var(--yellow);

}

.team-card .initials {

    margin-bottom: 18px;

    font-size: 58px;

    line-height: 0.8;

    font-weight: 900;

    color: rgba(255, 255, 255, 0.08);

}

.team-card h3 {

    font-size: 37px;

    line-height: 0.9;

    font-weight: 900;

}

.team-card .role {

    margin-top: 8px;

    color: var(--yellow);

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 1px;

    text-transform: uppercase;

}

.team-card p {

    margin-top: 8px;

    color: var(--muted);

    font-family: "Inter", sans-serif;

    font-size: 12px;

}

/* =========================================================

   THE CLUB

   ========================================================= */

.club-section {

    min-height: 700px;

    display: grid;

    grid-template-columns: 1fr 1fr;

    background: var(--black);

}

.club-copy {

    padding: 120px 12%;

    display: flex;

    flex-direction: column;

    justify-content: center;

}

.club-copy .label {

    margin-bottom: 25px;

    color: var(--yellow);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 13px;

    font-weight: 800;

    letter-spacing: 3px;

}

.club-copy h2 {

    font-family: "Barlow Condensed", sans-serif;

    font-size: clamp(65px, 8vw, 115px);

    line-height: 0.78;

    font-weight: 900;

}

.club-copy h2 span {

    display: block;

    color: var(--blue);

}

.club-copy p {

    max-width: 570px;

    margin-top: 30px;

    color: var(--muted);

    font-size: 14px;

    line-height: 1.9;

}

.club-stats {

    margin-top: 40px;

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 12px;

}

.club-stat {

    padding-top: 16px;

    border-top: 1px solid var(--border);

}

.club-stat strong {

    display: block;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 30px;

    font-weight: 900;

}

.club-stat span {

    color: var(--muted);

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 1px;

}

.club-visual {

    position: relative;

    min-height: 700px;

    overflow: hidden;

}

.club-visual img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    filter:

        contrast(1.08)

        saturate(0.8);

}

.club-visual::after {

    content: "";

    position: absolute;

    inset: 0;

    background:

        linear-gradient(

            90deg,

            rgba(2, 6, 17, 0.45),

            transparent

        ),

        linear-gradient(

            0deg,

            rgba(2, 6, 17, 0.5),

            transparent

        );

}

.club-visual-logo {

    position: absolute;

    z-index: 2;

    width: 230px;

    left: 50%;

    top: 50%;

    transform: translate(-50%, -50%);

    opacity: 0.85;

}

.club-visual-number {

    position: absolute;

    z-index: 3;

    right: 35px;

    top: 30px;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 90px;

    font-weight: 900;

    color: rgba(255, 255, 255, 0.1);

}

.club-stamp {

    position: absolute;

    z-index: 3;

    left: 30px;

    bottom: 30px;

    padding: 10px 15px;

    border: 1px solid rgba(255, 255, 255, 0.3);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 2px;

}

/* =========================================================

   VALUES

   ========================================================= */

.values-section {

    background: var(--navy);

}

.values-grid {

    max-width: var(--container);

    margin: 0 auto;

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 14px;

}

.value-card {

    min-height: 150px;

    padding: 25px;

    display: flex;

    align-items: flex-end;

    background: rgba(255, 255, 255, 0.025);

    border: 1px solid var(--border);

    font-size: 28px;

    font-weight: 900;

    transition:

        background 0.3s ease,

        transform 0.3s ease;

}

.value-card:hover {

    background: rgba(0, 102, 255, 0.12);

    transform: translateY(-5px);

}

/* =========================================================

   FIRST SESSION

   ========================================================= */

.bring-grid {

    max-width: var(--container);

    margin: 0 auto;

    display: grid;

    grid-template-columns: repeat(5, 1fr);

    gap: 14px;

}

.bring-card {

    min-height: 140px;

    padding: 24px;

    display: flex;

    flex-direction: column;

    justify-content: flex-end;

    background: var(--navy);

    border: 1px solid var(--border);

    font-size: 24px;

    font-weight: 900;

}

.bring-card span {

    margin-bottom: 9px;

    color: var(--yellow);

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 2px;

}

/* =========================================================

   JOIN

   ========================================================= */

.join-section {

    position: relative;

    min-height: 600px;

    padding: 100px 7%;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    overflow: hidden;

    background:

        radial-gradient(

            circle at 50% 50%,

            rgba(0, 102, 255, 0.25),

            transparent 50%

        ),

        var(--black);

}

.join-logo {

    position: absolute;

    width: 600px;

    max-width: 80vw;

    opacity: 0.035;

}

.join-content {

    position: relative;

    z-index: 2;

    max-width: 900px;

}

.join-content h2 {

    font-size: clamp(70px, 9vw, 125px);

    line-height: 0.8;

    font-weight: 900;

}

.join-content h2 span {

    color: var(--blue);

}

.join-content p {

    max-width: 600px;

    margin: 28px auto 35px;

    color: var(--muted);

    font-size: 15px;

    line-height: 1.8;

}

.join-buttons {

    display: flex;

    justify-content: center;

    flex-wrap: wrap;

    gap: 12px;

}

.contact-panel {

    margin-top: 55px;

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    border-top: 1px solid var(--border);

    border-bottom: 1px solid var(--border);

}

.contact-item {

    padding: 22px;

    border-right: 1px solid var(--border);

}

.contact-item:last-child {

    border-right: 0;

}

.contact-item span {

    display: block;

    margin-bottom: 7px;

    color: var(--yellow);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 2px;

}

.contact-item strong,

.contact-item a {

    font-size: 13px;

    font-weight: 700;

}

/* =========================================================

   FOOTER

   ========================================================= */

footer {

    padding: 60px 7% 30px;

    background: #01040b;

    border-top: 1px solid var(--border);

}

.footer-inner {

    max-width: var(--container);

    margin: 0 auto;

    display: grid;

    grid-template-columns: 1.4fr 1fr 1fr;

    gap: 50px;

}

.footer-brand img {

    width: 70px;

    margin-bottom: 15px;

}

.footer-brand strong {

    display: block;

    font-family: "Barlow Condensed", sans-serif;

    font-size: 24px;

    font-weight: 900;

}

.footer-brand p {

    margin-top: 6px;

    color: var(--muted);

    font-size: 12px;

}

.footer-links {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 10px;

}

.footer-links a {

    color: var(--muted);

    font-family: "Barlow Condensed", sans-serif;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: 1px;

}

.footer-links a:hover {

    color: var(--yellow);

}

.footer-contact {

    display: flex;

    flex-direction: column;

    gap: 8px;

}

.footer-contact a {

    color: var(--muted);

    font-size: 13px;

}

.footer-contact a:hover {

    color: var(--white);

}

.footer-bottom {

    max-width: var(--container);

    margin: 45px auto 0;

    padding-top: 20px;

    border-top: 1px solid rgba(255, 255, 255, 0.07);

    display: flex;

    justify-content: space-between;

    gap: 20px;

    color: rgba(255, 255, 255, 0.35);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1px;

}

/* =========================================================

   SCROLL REVEAL

   ========================================================= */

.reveal {

    opacity: 1;

    transform: none;

}

.js-reveal {

    opacity: 0;

    transform: translateY(25px);

    transition:

        opacity 0.7s ease,

        transform 0.7s ease;

}

.js-reveal.visible {

    opacity: 1;

    transform: translateY(0);

}

/* =========================================================

   TABLET

   ========================================================= */

@media (max-width: 1100px) {

    .navbar nav {

        gap: 18px;

    }

    .session-grid {

        grid-template-columns: repeat(3, 1fr);

    }

    .team-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .team-card.featured {

        grid-column: span 2;

    }

    .values-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .bring-grid {

        grid-template-columns: repeat(3, 1fr);

    }

    .hero-content {

        width: 60%;

    }

    .hero-photo,

    .hero-image {

        width: 52%;

        opacity: 0.7;

    }

    .pricing-items {

        grid-template-columns: repeat(2, 1fr);

    }

}

/* =========================================================

   MOBILE

   ========================================================= */

@media (max-width: 900px) {

    :root {

        --nav-height: 68px;

    }

    body {

        width: 100%;

        overflow-x: hidden;

    }

    /* Navbar */

    .navbar {

        height: var(--nav-height);

        padding: 0 16px;

    }

    .logo-image {

        width: 46px;

        height: 46px;

    }

    .mobile-menu-button {

        display: flex;

        flex-shrink: 0;

    }

    .navbar nav {

        position: absolute;

        top: var(--nav-height);

        left: 0;

        right: 0;

        display: none;

        flex-direction: column;

        align-items: stretch;

        gap: 0;

        padding: 8px 16px 18px;

        background: rgba(2, 6, 17, 0.98);

        border-bottom: 1px solid var(--border);

        backdrop-filter: blur(20px);

        -webkit-backdrop-filter: blur(20px);

    }

    .navbar.menu-open nav {

        display: flex;

    }

    .navbar nav a {

        padding: 16px 5px;

        border-bottom: 1px solid rgba(255, 255, 255, 0.07);

        font-size: 14px;

    }

    .navbar nav a::after {

        display: none;

    }

    .nav-button {

        display: none;

    }

    /* =====================================================

       MOBILE HERO

       ===================================================== */

    .hero {

        min-height: 760px;

        padding:

            calc(var(--nav-height) + 45px)

            20px

            30px;

        display: block;

    }

    .hero-grid {

        opacity: 0.035;

        background-size: 45px 45px;

    }

    .hero-bg {

        background:

            linear-gradient(

                180deg,

                rgba(2, 6, 17, 0.96) 0%,

                rgba(2, 6, 17, 0.76) 35%,

                rgba(2, 6, 17, 0.82) 60%,

                rgba(2, 6, 17, 0.99) 100%

            );

    }

    .hero-content {

        position: relative;

        width: 100%;

        max-width: 100%;

        z-index: 6;

    }

    .hero-label {

        margin-bottom: 18px;

        font-size: 10px;

        letter-spacing: 2px;

    }

    .hero h1 {

        font-size: clamp(68px, 20vw, 100px);

        line-height: 0.8;

        letter-spacing: -2px;

    }

    .hero-tagline {

        margin-top: 24px;

        font-size: clamp(25px, 7vw, 31px);

        line-height: 0.95;

    }

    .hero-description {

        max-width: 100%;

        margin-top: 16px;

        font-size: 13px;

        line-height: 1.65;

    }

    .hero-buttons {

        margin-top: 22px;

        display: grid;

        grid-template-columns: 1fr;

        gap: 9px;

    }

    .hero-buttons .button {

        width: 100%;

        min-height: 49px;

    }

    /* Mobile image */

    .hero-photo,

    .hero-image {

        top: 31%;

        right: 0;

        width: 100%;

        height: 48%;

        opacity: 0.34;

        clip-path: none;

    }

    .hero-photo img,

    .hero-image img {

        object-position: center;

    }

    .hero-photo::after,

    .hero-image::after {

        background:

            linear-gradient(

                180deg,

                rgba(2, 6, 17, 1) 0%,

                rgba(2, 6, 17, 0.25) 35%,

                rgba(2, 6, 17, 0.55) 58%,

                rgba(2, 6, 17, 1) 100%

            );

    }

    .hero-watermark {

        width: 260px;

        right: -70px;

        bottom: 17%;

        opacity: 0.035;

    }

    .hero-number {

        right: 18px;

        bottom: 105px;

        font-size: 62px;

    }

    .hero-photo-label {

        right: 20px;

        bottom: 96px;

        font-size: 10px;

        letter-spacing: 2px;

    }

    .hero-training-card {

        left: 20px;

        right: 20px;

        bottom: 18px;

        width: auto;

        min-height: 82px;

        padding: 14px 16px;

        border-left-width: 3px;

    }

    .hero-training-card .small {

        margin-bottom: 5px;

        font-size: 9px;

    }

    .hero-training-card strong {

        font-size: 25px;

    }

    .hero-training-card span {

        margin-top: 5px;

        font-size: 10px;

    }

    .scroll-line {

        display: none;

    }

    /* =====================================================

       QUICK INFO

       ===================================================== */

    .quick-info {

        grid-template-columns: 1fr 1fr;

    }

    .info-card {

        min-height: 118px;

        padding: 18px 15px;

    }

    .info-card:nth-child(2),

    .info-card:nth-child(4) {

        border-right: 0;

    }

    .info-card:nth-child(-n + 2) {

        border-bottom: 1px solid var(--border);

    }

    .info-card .label {

        margin-bottom: 7px;

        font-size: 9px;

        letter-spacing: 1.5px;

    }

    .info-card strong {

        font-size: 20px;

        line-height: 0.95;

    }

    .info-card p {

        margin-top: 6px;

        font-size: 10px;

        line-height: 1.35;

    }

    /* =====================================================

       SECTIONS

       ===================================================== */

    .training-section,

    .fight-section,

    .team-section,

    .values-section,

    .bring-section {

        padding: 72px 18px;

    }

    .section-number {

        top: 27px;

        right: 18px;

        font-size: 55px;

    }

    .section-heading {

        margin-bottom: 38px;

        display: block;

    }

    .section-heading h2 {

        max-width: 100%;

        font-size: clamp(55px, 17vw, 72px);

        line-height: 0.8;

    }

    .section-heading p {

        width: 100%;

        max-width: 100%;

        margin-top: 18px;

        font-size: 13px;

        line-height: 1.7;

    }

    /* =====================================================

       TRAINING CARDS

       ===================================================== */

    .session-grid {

        grid-template-columns: 1fr;

        gap: 10px;

    }

    .session-card {

        min-height: 0;

        height: 190px;

        padding: 20px;

    }

    .session-number {

        font-size: 13px;

    }

    .session-day {

        margin-top: auto;

        margin-bottom: 8px;

        font-size: 34px;

    }

    .session-time {

        font-size: 15px;

    }

    .session-name {

        margin-top: 5px;

        font-size: 10px;

        letter-spacing: 0.8px;

    }

    .training-actions {

        margin-top: 20px;

        display: grid;

        grid-template-columns: 1fr;

        gap: 9px;

    }

    .training-actions .button {

        width: 100%;

    }

    /* =====================================================

       PRICING

       ===================================================== */

    .pricing-panel {

        margin-top: 28px;

        padding: 22px 17px;

    }

    .pricing-heading {

        margin-bottom: 20px;

        font-size: 27px;

    }

    .pricing-items {

        grid-template-columns: 1fr;

        gap: 9px;

    }

    .price-item {

        padding: 17px;

    }

    .price-item span {

        margin-bottom: 5px;

        font-size: 9px;

        letter-spacing: 1.5px;

    }

    .price-item strong {

        font-size: 25px;

    }

    /* =====================================================

       REGISTRATION

       ===================================================== */

    .registration-panel {

        margin-top: 10px;

        padding: 22px 17px;

        grid-template-columns: 1fr;

        gap: 13px;

    }

    .panel-number {

        font-size: 42px;

    }

    .registration-panel h3 {

        margin-bottom: 5px;

        font-size: 28px;

        line-height: 0.95;

    }

    .registration-panel p {

        font-size: 12px;

        line-height: 1.55;

    }

    .registration-buttons {

        display: grid;

        grid-template-columns: 1fr;

        gap: 8px;

    }

    .registration-buttons .button {

        width: 100%;

    }

    /* =====================================================

       CLUBLINK

       ===================================================== */

    .app-panel {

        margin-top: 10px;

        padding: 22px 17px;

        grid-template-columns: 1fr;

        gap: 13px;

    }

    .app-icon {

        width: 52px;

        height: 52px;

        font-size: 20px;

    }

    .app-panel h3 {

        font-size: 29px;

        line-height: 0.95;

    }

    .app-panel p {

        margin-top: 6px;

        font-size: 12px;

        line-height: 1.6;

    }

    .app-link {

        width: 100%;

        min-height: 47px;

    }

    /* =====================================================

       TRAINING NOTE

       ===================================================== */

    .training-note {

        margin-top: 18px;

        padding: 15px 16px;

        font-size: 11px;

        line-height: 1.6;

    }

    /* =====================================================

       FIGHT GALLERY

       ===================================================== */

    .fight-gallery {

        grid-template-columns: 1fr;

        grid-auto-rows: 255px;

        gap: 10px;

    }

    .fight-photo.large,

    .fight-photo.wide {

        grid-column: auto;

        grid-row: auto;

        height: 255px;

    }

    .fight-photo:first-child {

        height: 310px;

    }

    .photo-number {

        left: 15px;

        bottom: 13px;

        font-size: 18px;

    }

    /* =====================================================

       TEAM

       ===================================================== */

    .team-grid {

        grid-template-columns: 1fr;

        gap: 10px;

    }

    .team-card,

    .team-card.featured {

        grid-column: auto;

        min-height: 0;

        height: 255px;

        padding: 22px;

    }

    .team-card-number {

        top: 17px;

        right: 18px;

        font-size: 13px;

    }

    .team-card .initials {

        margin-bottom: 12px;

        font-size: 48px;

    }

    .team-card h3 {

        font-size: 31px;

    }

    .team-card .role {

        margin-top: 6px;

        font-size: 10px;

    }

    .team-card p {

        margin-top: 5px;

        font-size: 11px;

    }

    .team-background-logo {

        right: -150px;

        top: 90px;

        width: 380px;

    }

    /* =====================================================

       THE CLUB

       ===================================================== */

    .club-section {

        grid-template-columns: 1fr;

    }

    .club-copy {

        padding: 72px 18px;

    }

    .club-copy .label {

        margin-bottom: 18px;

        font-size: 11px;

    }

    .club-copy h2 {

        font-size: clamp(57px, 17vw, 76px);

    }

    .club-copy p {

        margin-top: 22px;

        font-size: 13px;

        line-height: 1.75;

    }

    .club-stats {

        margin-top: 30px;

        grid-template-columns: repeat(3, 1fr);

        gap: 8px;

    }

    .club-stat {

        padding-top: 12px;

    }

    .club-stat strong {

        font-size: 23px;

    }

    .club-stat span {

        display: block;

        font-size: 8px;

        line-height: 1.3;

    }

    .club-visual {

        min-height: 430px;

    }

    .club-visual-logo {

        width: 175px;

    }

    .club-visual-number {

        right: 20px;

        top: 20px;

        font-size: 65px;

    }

    .club-stamp {

        left: 18px;

        bottom: 18px;

        padding: 8px 11px;

        font-size: 9px;

    }

    /* =====================================================

       VALUES

       ===================================================== */

    .values-grid {

        grid-template-columns: 1fr 1fr;

        gap: 9px;

    }

    .value-card {

        min-height: 105px;

        padding: 17px;

        font-size: 21px;

        line-height: 0.9;

    }

    /* =====================================================

       FIRST SESSION

       ===================================================== */

    .bring-grid {

        grid-template-columns: 1fr 1fr;

        gap: 9px;

    }

    .bring-card {

        min-height: 105px;

        padding: 17px;

        font-size: 20px;

        line-height: 0.9;

    }

    .bring-card span {

        margin-bottom: 7px;

        font-size: 9px;

    }

    /* =====================================================

       JOIN

       ===================================================== */

    .join-section {

        min-height: 0;

        padding: 75px 18px;

    }

    .join-logo {

        width: 370px;

        max-width: 95vw;

    }

    .join-content {

        width: 100%;

    }

    .join-content h2 {

        font-size: clamp(60px, 18vw, 78px);

    }

    .join-content p {

        margin: 20px auto 25px;

        font-size: 13px;

        line-height: 1.7;

    }

    .join-buttons {

        display: grid;

        grid-template-columns: 1fr;

        gap: 9px;

    }

    .join-buttons .button {

        width: 100%;

    }

    .contact-panel {

        grid-template-columns: 1fr;

        margin-top: 32px;

    }

    .contact-item {

        padding: 17px 10px;

        border-right: 0;

        border-bottom: 1px solid var(--border);

    }

    .contact-item:last-child {

        border-bottom: 0;

    }

    .contact-item span {

        margin-bottom: 5px;

        font-size: 9px;

    }

    .contact-item strong,

    .contact-item a {

        font-size: 12px;

    }

    /* =====================================================

       FOOTER

       ===================================================== */

    footer {

        padding: 45px 18px 22px;

    }

    .footer-inner {

        grid-template-columns: 1fr;

        gap: 30px;

    }

    .footer-brand img {

        width: 60px;

    }

    .footer-links {

        grid-template-columns: 1fr 1fr;

        gap: 9px;

    }

    .footer-links a {

        font-size: 13px;

    }

    .footer-bottom {

        flex-direction: column;

        gap: 7px;

        margin-top: 30px;

        line-height: 1.4;

    }

}

/* =========================================================

   SMALL PHONES

   ========================================================= */

@media (max-width: 480px) {

    .navbar {

        padding: 0 14px;

    }

    .intro-content {

        width: calc(100% - 30px);

    }

    .intro-content .mini-text {

        margin-bottom: 16px;

        font-size: 9px;

        letter-spacing: 1.8px;

    }

    .intro-content img {

        width: 125px;

        height: 125px;

        margin-bottom: 20px;

    }

    .intro-content h1 {

        font-size: 70px;

    }

    .intro-line {

        width: 70px;

        margin: 25px auto 16px;

    }

    .intro-content .subtitle {

        font-size: 10px;

        letter-spacing: 1.3px;

    }

    .intro-skip,

    #introSkip {

        right: 15px;

        bottom: 15px;

        font-size: 11px;

    }

    /* Hero */

    .hero {

        min-height: 735px;

        padding:

            calc(var(--nav-height) + 38px)

            16px

            25px;

    }

    .hero h1 {

        font-size: 72px;

    }

    .hero-tagline {

        margin-top: 21px;

        font-size: 25px;

    }

    .hero-description {

        font-size: 12px;

    }

    .hero-buttons {

        margin-top: 20px;

    }

    .hero-photo,

    .hero-image {

        top: 33%;

        height: 46%;

        opacity: 0.31;

    }

    .hero-watermark {

        width: 220px;

        right: -60px;

    }

    .hero-number {

        right: 15px;

        bottom: 96px;

        font-size: 52px;

    }

    .hero-photo-label {

        right: 16px;

        bottom: 88px;

        font-size: 9px;

    }

    .hero-training-card {

        left: 16px;

        right: 16px;

        bottom: 15px;

        padding: 13px 14px;

    }

    .hero-training-card strong {

        font-size: 23px;

    }

    /* Quick info */

    .info-card {

        min-height: 125px;

        padding: 16px 12px;

    }

    .info-card strong {

        font-size: 18px;

    }

    .info-card p {

        font-size: 9px;

    }

    /* Sections */

    .training-section,

    .fight-section,

    .team-section,

    .values-section,

    .bring-section {

        padding: 65px 15px;

    }

    .section-heading {

        margin-bottom: 34px;

    }

    .section-heading h2 {

        font-size: 57px;

    }

    .section-heading p {

        margin-top: 16px;

        font-size: 12px;

    }

    /* Training */

    .session-card {

        height: 180px;

        padding: 18px;

    }

    .session-day {

        font-size: 32px;

    }

    /* Panels */

    .pricing-panel,

    .registration-panel,

    .app-panel {

        padding: 20px 15px;

    }

    /* Gallery */

    .fight-gallery {

        grid-auto-rows: 240px;

    }

    .fight-photo.large,

    .fight-photo.wide {

        height: 240px;

    }

    .fight-photo:first-child {

        height: 285px;

    }

    /* Team */

    .team-card,

    .team-card.featured {

        height: 240px;

        padding: 20px;

    }

    .team-card h3 {

        font-size: 29px;

    }

    /* Club */

    .club-copy {

        padding: 65px 15px;

    }

    .club-copy h2 {

        font-size: 63px;

    }

    .club-copy p {

        font-size: 12px;

    }

    .club-stats {

        gap: 6px;

    }

    .club-stat strong {

        font-size: 21px;

    }

    .club-stat span {

        font-size: 7px;

    }

    .club-visual {

        min-height: 390px;

    }

    /* Values */

    .values-grid {

        gap: 8px;

    }

    .value-card {

        min-height: 100px;

        padding: 15px;

        font-size: 19px;

    }

    /* Bring */

    .bring-grid {

        gap: 8px;

    }

    .bring-card {

        min-height: 100px;

        padding: 15px;

        font-size: 18px;

    }

    /* Join */

    .join-section {

        padding: 65px 15px;

    }

    .join-content h2 {

        font-size: 66px;

    }

    .contact-item {

        padding: 16px 5px;

    }

}

/* =========================================================

   VERY SMALL PHONES

   ========================================================= */

@media (max-width: 360px) {

    .intro-content h1 {

        font-size: 62px;

    }

    .intro-content img {

        width: 110px;

        height: 110px;

    }

    .hero h1 {

        font-size: 64px;

    }

    .hero-tagline {

        font-size: 22px;

    }

    .hero-description {

        font-size: 11px;

    }

    .hero-training-card strong {

        font-size: 21px;

    }

    .section-heading h2 {

        font-size: 51px;

    }

    .session-card {

        height: 170px;

    }

    .session-day {

        font-size: 29px;

    }

    .club-copy h2 {

        font-size: 56px;

    }

    .join-content h2 {

        font-size: 58px;

    }

    .value-card {

        font-size: 17px;

    }

    .bring-card {

        font-size: 17px;

    }

}

/* =========================================================

   TOUCH DEVICES

   ========================================================= */

@media (hover: none) {

    .button:hover,

    .nav-button:hover,

    .session-card:hover,

    .team-card:hover,

    .value-card:hover {

        transform: none;

    }

    .session-card:hover::before {

        transform: scaleX(0);

    }

    .hero-photo:hover img,

    .hero-image:hover img,

    .fight-photo:hover img {

        transform: none;

    }

}

/* =========================================================

   ACCESSIBILITY

   ========================================================= */

:focus-visible {

    outline: 2px solid var(--yellow);

    outline-offset: 4px;

}

@media (prefers-reduced-motion: reduce) {

    html {

        scroll-behavior: auto;

    }

    *,

    *::before,

    *::after {

        animation-duration: 0.01ms !important;

        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;

    }

}

/* =========================================================

   EMERGENCY INTRO EXIT

   ========================================================= */

.site-intro {

    animation: forceIntroExit 0.8s ease forwards;

    animation-delay: 3.2s;

}

@keyframes forceIntroExit {

    0% {

        opacity: 1;

        visibility: visible;

        pointer-events: auto;

    }

    100% {

        opacity: 0;

        visibility: hidden;

        pointer-events: none;

    }

}

/* =========================================================

   MOBILE HAMBURGER ICON

   ========================================================= */

@media (max-width: 900px) {

    .mobile-menu-button {

        display: flex;

        flex-direction: column;

        align-items: center;

        justify-content: center;

        gap: 5px;

        width: 44px;

        height: 44px;

        padding: 0;

        border: 1px solid rgba(255, 255, 255, 0.15);

        background: rgba(255, 255, 255, 0.04);

        color: var(--white);

        cursor: pointer;

    }

    .mobile-menu-button span,

    .mobile-menu-button::before,

    .mobile-menu-button::after {

        display: block;

        width: 20px;

        height: 2px;

        background: var(--white);

        content: "";

    }

}
/* =========================================================
   TAMWORTH BOXING CLUB
   HERO 2.0 - CINEMATIC PREMIUM UPGRADE
   APPEND-ONLY OVERRIDE
   ========================================================= */

/* ---------- HERO FOUNDATION ---------- */

.hero {
    min-height: 920px;
    padding: 150px 7% 110px;
    isolation: isolate;
    background:
        radial-gradient(
            circle at 20% 55%,
            rgba(0, 102, 255, 0.18),
            transparent 34%
        ),
        radial-gradient(
            circle at 82% 48%,
            rgba(0, 102, 255, 0.08),
            transparent 35%
        ),
        #020611;
}

/* Cinematic light beams */
.hero::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: -20%;
    left: 43%;
    width: 2px;
    height: 150%;
    background: linear-gradient(
        to bottom,
        transparent,
        rgba(0, 102, 255, 0.35),
        transparent
    );
    transform: rotate(18deg);
    opacity: 0.55;
    pointer-events: none;
}

.hero::after {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(
            ellipse at 75% 45%,
            transparent 0%,
            rgba(2, 6, 17, 0.05) 35%,
            rgba(2, 6, 17, 0.65) 100%
        );
}

/* ---------- GRID ---------- */

.hero-grid {
    z-index: 0;
    opacity: 0.1;
    background-size: 64px 64px;
    mask-image:
        linear-gradient(
            to right,
            black 0%,
            black 48%,
            transparent 100%
        );
    -webkit-mask-image:
        linear-gradient(
            to right,
            black 0%,
            black 48%,
            transparent 100%
        );
}

/* ---------- HERO IMAGE ---------- */

.hero-photo,
.hero-image {
    z-index: 1;
    top: 7%;
    right: 2.5%;
    width: 55%;
    height: 86%;
    clip-path: polygon(
        7% 0,
        100% 0,
        100% 94%,
        93% 100%,
        0 100%,
        0 7%
    );
    box-shadow:
        -30px 0 80px rgba(2, 6, 17, 0.9),
        0 25px 80px rgba(0, 0, 0, 0.45);
}

.hero-photo img,
.hero-image img {
    filter:
        contrast(1.16)
        saturate(0.9)
        brightness(0.84);
    transform: scale(1.04);
}

/* Strong cinematic image treatment */
.hero-photo::before,
.hero-image::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(2, 6, 17, 0.95) 0%,
            rgba(2, 6, 17, 0.45) 22%,
            transparent 55%
        ),
        linear-gradient(
            180deg,
            rgba(2, 6, 17, 0.15),
            transparent 45%,
            rgba(2, 6, 17, 0.72)
        );
    pointer-events: none;
}

.hero-photo::after,
.hero-image::after {
    z-index: 3;
    background:
        linear-gradient(
            90deg,
            rgba(2, 6, 17, 0.88) 0%,
            transparent 38%
        ),
        linear-gradient(
            0deg,
            rgba(2, 6, 17, 0.82) 0%,
            transparent 45%
        );
}

/* ---------- CONTENT ---------- */

.hero-content {
    z-index: 6;
    width: 59%;
    max-width: 820px;
}

/* Little premium eyebrow */
.hero-label {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
    padding-left: 30px;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 3.5px;
    color: var(--yellow);
}

.hero-label::before {
    content: "";
    position: absolute;
    left: 0;
    width: 20px;
    height: 2px;
    background: var(--yellow);
}

/* ---------- MAIN TITLE ---------- */

.hero h1 {
    position: relative;
    font-size: clamp(100px, 13vw, 205px);
    line-height: 0.72;
    font-weight: 900;
    letter-spacing: -5px;
    text-transform: uppercase;
    text-shadow:
        0 10px 50px rgba(0, 0, 0, 0.35);
}

.hero h1 span:first-child {
    position: relative;
    z-index: 2;
}

.hero h1 span:last-child {
    position: relative;
    z-index: 1;
    color: var(--blue);
    text-shadow:
        0 0 45px rgba(0, 102, 255, 0.2);
}

/* Thin accent behind title */
.hero h1::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: 4px;
    bottom: -15px;
    width: 115px;
    height: 5px;
    background: var(--yellow);
}

/* ---------- TAGLINE ---------- */

.hero-tagline {
    margin-top: 42px;
    font-size: clamp(28px, 3.2vw, 46px);
    line-height: 0.9;
    font-weight: 900;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

/* ---------- DESCRIPTION ---------- */

.hero-description {
    max-width: 540px;
    margin-top: 21px;
    color: rgba(255, 255, 255, 0.62);
    font-size: 15px;
    line-height: 1.8;
}

/* ---------- BUTTONS ---------- */

.hero-buttons {
    margin-top: 34px;
    gap: 12px;
}

.hero-buttons .button {
    min-height: 56px;
    padding-left: 30px;
    padding-right: 30px;
    position: relative;
    overflow: hidden;
}

.hero-buttons .button.primary {
    box-shadow:
        0 12px 35px rgba(255, 212, 0, 0.12);
}

.hero-buttons .button.primary::after {
    content: "→";
    margin-left: 14px;
    font-family: Arial, sans-serif;
    font-size: 18px;
    transition: transform 0.25s ease;
}

.hero-buttons .button.primary:hover::after {
    transform: translateX(4px);
}

/* ---------- IMAGE LABEL ---------- */

.hero-photo-label {
    z-index: 6;
    right: 5%;
    bottom: 5%;
    padding-left: 18px;
    border-left: 2px solid var(--yellow);
    font-size: 11px;
    letter-spacing: 3px;
}

/* ---------- NUMBER ---------- */

.hero-number {
    z-index: 5;
    right: 6%;
    bottom: 8%;
    font-size: 135px;
    letter-spacing: -5px;
    color: rgba(255, 255, 255, 0.055);
}

/* ---------- WATERMARK ---------- */

.hero-watermark {
    z-index: 0;
    right: 23%;
    bottom: 3%;
    width: 500px;
    opacity: 0.04;
}

/* ---------- NEXT SESSION CARD ---------- */

.hero-training-card {
    z-index: 8;
    left: 7%;
    bottom: 42px;
    width: 265px;
    min-height: 142px;
    padding: 22px;
    background:
        linear-gradient(
            135deg,
            rgba(9, 29, 66, 0.96),
            rgba(2, 6, 17, 0.9)
        );
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-left: 4px solid var(--yellow);
    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.35);
}

.hero-training-card .small {
    letter-spacing: 2.5px;
}

.hero-training-card strong {
    font-size: 35px;
}

.hero-training-card span {
    letter-spacing: 1.5px;
}

/* Small glowing edge */
.hero-training-card::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 35%;
    height: 1px;
    background: linear-gradient(
        to right,
        transparent,
        rgba(255, 212, 0, 0.8)
    );
}

/* ---------- SCROLL INDICATOR ---------- */

.scroll-line {
    right: 7%;
    bottom: 52px;
    opacity: 0.75;
}

.scroll-line::before {
    width: 55px;
}


/* =========================================================
   HERO 2.0 RESPONSIVE
   ========================================================= */

@media (max-width: 1100px) {

    .hero {
        min-height: 850px;
        padding-left: 6%;
        padding-right: 6%;
    }

    .hero-content {
        width: 62%;
    }

    .hero-photo,
    .hero-image {
        width: 55%;
        right: 0;
        opacity: 0.8;
    }

    .hero h1 {
        font-size: clamp(85px, 12vw, 155px);
    }

    .hero-training-card {
        left: 6%;
    }
}


/* =========================================================
   HERO 2.0 MOBILE
   ========================================================= */

@media (max-width: 900px) {

    .hero {
        min-height: 780px;
        padding:
            calc(var(--nav-height) + 42px)
            20px
            30px;
        background:
            radial-gradient(
                circle at 50% 38%,
                rgba(0, 102, 255, 0.14),
                transparent 45%
            ),
            #020611;
    }

    .hero::before {
        left: 50%;
        height: 130%;
        opacity: 0.3;
    }

    .hero::after {
        background:
            radial-gradient(
                circle at 50% 40%,
                transparent,
                rgba(2, 6, 17, 0.65) 75%
            );
    }

    .hero-grid {
        opacity: 0.045;
        background-size: 42px 42px;
        mask-image: linear-gradient(
            to bottom,
            black,
            transparent 80%
        );
        -webkit-mask-image: linear-gradient(
            to bottom,
            black,
            transparent 80%
        );
    }

    .hero-content {
        width: 100%;
        max-width: none;
    }

    .hero-label {
        margin-bottom: 20px;
        padding-left: 25px;
        font-size: 10px;
        letter-spacing: 2.2px;
    }

    .hero-label::before {
        width: 16px;
    }

    .hero h1 {
        font-size: clamp(70px, 21vw, 105px);
        line-height: 0.76;
        letter-spacing: -3px;
    }

    .hero h1::after {
        left: 2px;
        bottom: -10px;
        width: 70px;
        height: 3px;
    }

    .hero-tagline {
        margin-top: 30px;
        font-size: clamp(24px, 7vw, 32px);
        line-height: 0.92;
        letter-spacing: 0.8px;
    }

    .hero-description {
        max-width: 100%;
        margin-top: 15px;
        font-size: 12.5px;
        line-height: 1.65;
        color: rgba(255, 255, 255, 0.62);
    }

    .hero-buttons {
        margin-top: 21px;
        gap: 8px;
    }

    .hero-buttons .button {
        min-height: 50px;
    }

    /* Image becomes a cinematic background */
    .hero-photo,
    .hero-image {
        top: 34%;
        right: 0;
        width: 100%;
        height: 49%;
        opacity: 0.38;
        clip-path: none;
        box-shadow: none;
    }

    .hero-photo img,
    .hero-image img {
        object-position: center;
        filter:
            contrast(1.15)
            saturate(0.85)
            brightness(0.75);
        transform: scale(1.02);
    }

    .hero-photo::before,
    .hero-image::before {
        background:
            linear-gradient(
                180deg,
                rgba(2, 6, 17, 1) 0%,
                rgba(2, 6, 17, 0.08) 35%,
                rgba(2, 6, 17, 0.2) 60%,
                rgba(2, 6, 17, 0.98) 100%
            );
    }

    .hero-photo::after,
    .hero-image::after {
        background:
            linear-gradient(
                180deg,
                rgba(2, 6, 17, 0.95) 0%,
                transparent 32%,
                rgba(2, 6, 17, 0.35) 55%,
                rgba(2, 6, 17, 1) 100%
            );
    }

    .hero-watermark {
        width: 270px;
        right: -75px;
        bottom: 16%;
        opacity: 0.035;
    }

    .hero-number {
        right: 18px;
        bottom: 108px;
        font-size: 64px;
        letter-spacing: -2px;
    }

    .hero-photo-label {
        right: 20px;
        bottom: 98px;
        padding-left: 12px;
        font-size: 9px;
        letter-spacing: 2px;
    }

    .hero-training-card {
        left: 20px;
        right: 20px;
        bottom: 17px;
        width: auto;
        min-height: 82px;
        padding: 14px 16px;
    }

    .hero-training-card strong {
        font-size: 25px;
    }

    .hero-training-card .small {
        font-size: 9px;
    }

    .hero-training-card span {
        font-size: 10px;
    }

    .scroll-line {
        display: none;
    }
}


/* =========================================================
   HERO 2.0 SMALL PHONES
   ========================================================= */

@media (max-width: 480px) {

    .hero {
        min-height: 755px;
        padding:
            calc(var(--nav-height) + 35px)
            16px
            25px;
    }

    .hero-label {
        margin-bottom: 17px;
        font-size: 9px;
        letter-spacing: 1.8px;
    }

    .hero h1 {
        font-size: 72px;
        letter-spacing: -2.5px;
    }

    .hero h1::after {
        width: 58px;
        height: 3px;
    }

    .hero-tagline {
        margin-top: 27px;
        font-size: 24px;
    }

    .hero-description {
        margin-top: 14px;
        font-size: 11.5px;
    }

    .hero-buttons {
        margin-top: 18px;
    }

    .hero-buttons .button {
        min-height: 48px;
        padding-left: 20px;
        padding-right: 20px;
        font-size: 12px;
    }

    .hero-photo,
    .hero-image {
        top: 35%;
        height: 47%;
        opacity: 0.34;
    }

    .hero-number {
        right: 15px;
        bottom: 96px;
        font-size: 53px;
    }

    .hero-photo-label {
        right: 16px;
        bottom: 87px;
        font-size: 8px;
    }

    .hero-training-card {
        left: 16px;
        right: 16px;
        bottom: 14px;
        padding: 12px 14px;
    }

    .hero-training-card strong {
        font-size: 23px;
    }

    .hero-watermark {
        width: 220px;
        right: -65px;
    }
}


/* =========================================================
   HERO 2.0 VERY SMALL PHONES
   ========================================================= */

@media (max-width: 360px) {

    .hero {
        min-height: 730px;
    }

    .hero h1 {
        font-size: 64px;
    }

    .hero-tagline {
        font-size: 22px;
    }

    .hero-description {
        font-size: 11px;
    }

    .hero-training-card strong {
        font-size: 21px;
    }
}


/* =========================================================
   HERO ACCESSIBILITY
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .hero-photo img,
    .hero-image img {
        transform: none;
    }
}