/* =========================================================
   WAQAS ALBLOUSHI GOLF
   PREMIUM GOLF PORTFOLIO
   STYLE SHEET
========================================================= */


/* =========================================================
   ROOT
========================================================= */

:root {

    --forest: #0d1712;
    --forest-2: #14231b;
    --forest-3: #1c3025;

    --cream: #f3f0e7;
    --cream-2: #e9e5da;
    --white: #ffffff;

    --ink: #182019;
    --muted: #6d756e;
    --muted-light: #aab1ab;

    --gold: #b79a61;
    --gold-light: #d0b67e;

    --line: rgba(24, 32, 25, 0.14);
    --line-light: rgba(255,255,255,0.15);

    --shadow:
        0 25px 70px rgba(0,0,0,0.12);

    --shadow-dark:
        0 30px 90px rgba(0,0,0,0.35);

    --radius: 2px;

    --container: 1380px;

    --header-height: 84px;

    --ease:
        cubic-bezier(0.22, 1, 0.36, 1);

}


/* =========================================================
   RESET
========================================================= */

*,
*::before,
*::after {

    box-sizing: border-box;

    margin: 0;

    padding: 0;

}


html {

    scroll-behavior: smooth;

    font-size: 16px;

}


body {

    margin: 0;

    padding: 0;

    background: var(--cream);

    color: var(--ink);

    font-family:
        "DM Sans",
        Arial,
        sans-serif;

    overflow-x: hidden;

}


body.loading {

    overflow: hidden;

}


body.menu-open {

    overflow: hidden;

}


body.lightbox-open {

    overflow: hidden;

}


img {

    display: block;

    width: 100%;

}


button,
a {

    font: inherit;

}


button {

    border: 0;

    cursor: pointer;

}


a {

    color: inherit;

    text-decoration: none;

}


ul {

    list-style: none;

}


/* =========================================================
   CONTAINER
========================================================= */

.container {

    width: min(
        calc(100% - 80px),
        var(--container)
    );

    margin-inline: auto;

}


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

.section-light {

    background: var(--cream);

    color: var(--ink);

}


.section-dark {

    background: var(--forest);

    color: var(--white);

}


section {

    position: relative;

}


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

.eyebrow {

    display: inline-flex;

    align-items: center;

    gap: 12px;

    color: var(--gold);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 0.22em;

    text-transform: uppercase;

}


.display-title {

    max-width: 850px;

    margin-top: 28px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(48px, 6vw, 92px);

    font-weight: 500;

    line-height: 0.98;

    letter-spacing: -0.045em;

}


.display-title em {

    color: var(--gold);

    font-style: italic;

}


.section-heading {

    position: relative;

    margin-bottom: 58px;

    padding-bottom: 24px;

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

}


.section-heading::after {

    content: "";

    position: absolute;

    bottom: -1px;
    left: 0;

    width: 64px;
    height: 3px;

    background: var(--gold);


}


.section-heading h2 {

    max-width: 900px;

    margin-top: 20px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(50px, 6vw, 88px);

    font-weight: 500;

    line-height: 0.95;

    letter-spacing: -0.045em;

}


.section-heading-light h2 {

    color: var(--white);

}


.section-heading-light {

    border-bottom-color: var(--line-light);

}


/* =========================================================
   CUSTOM CURSOR
========================================================= */

.cursor-dot,
.cursor-ring {

    position: fixed;

    z-index: 9999;

    pointer-events: none;

    border-radius: 50%;

    opacity: 0;

}


.cursor-dot {

    width: 7px;

    height: 7px;

    background: var(--white);

    transform:
        translate(-50%, -50%);

}


.cursor-ring {

    width: 38px;

    height: 38px;

    border: 1px solid
        rgba(255,255,255,0.7);

    transform:
        translate(-50%, -50%);

    transition:
        width .3s var(--ease),
        height .3s var(--ease);

}


body.page-ready .cursor-dot,
body.page-ready .cursor-ring {

    opacity: 1;

}


@media (max-width: 900px) {

    .cursor-dot,
    .cursor-ring {

        display: none;

    }

}


/* =========================================================
   CINEMATIC LOADER
========================================================= */

.page-loader {

    position: fixed;

    inset: 0;

    z-index: 10000;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    background: var(--forest);

    transition:
        opacity 1.2s var(--ease),
        visibility 1.2s;

}


.page-loader.loader-hidden {

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

}


/* Loader background images */

.loader-image-layer {

    display: none;

    position: absolute;

    inset: 0;

    overflow: hidden;

}


.loader-image {

    position: absolute;

    inset: -6%;

    background-position: center;

    background-size: cover;

    opacity: 0;

    animation:
        loaderImage 12s infinite;

}


.loader-image-1 {

    background-image:
        url("../assets/images/hero-1.jpeg");

    animation-delay: 0s;

}


.loader-image-2 {

    background-image:
        url("../assets/images/hero-2.jpg");

    animation-delay: 4s;

}


.loader-image-3 {

    background-image:
        url("../assets/images/hero-3.jpeg");

    animation-delay: 8s;

}


@keyframes loaderImage {

    0% {

        opacity: 0;

        transform:
            scale(1.08);

    }

    8% {

        opacity: 1;

    }

    30% {

        opacity: 1;

        transform:
            scale(1);

    }

    38% {

        opacity: 0;

    }

    100% {

        opacity: 0;

        transform:
            scale(1.08);

    }

}


.loader-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(5,12,8,.9),
            rgba(5,12,8,.35),
            rgba(5,12,8,.82)
        );

}


.loader-content {

    position: relative;

    z-index: 2;

    width: min(
        calc(100% - 60px),
        1000px
    );

    color: white;

}



/* =========================================================
   INTEGRATED LOADER LOGO
========================================================= */

.loader-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 8px 0 30px;
    animation: loaderLogoIn .9s var(--ease) .08s both;
}

.loader-logo {
    width: clamp(120px, 15vw, 205px);
    height: auto;
    max-height: 90px;
    object-fit: contain;
   filter: none !important;
    opacity: 1 !important;
    mix-blend-mode: normal !important;
}

@keyframes loaderLogoIn {
    from {
        opacity: 0;
        transform: translateY(14px) scale(.92);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.loader-location {

    margin-bottom: 32px;

    color: var(--gold-light);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .25em;

}


.loader-name-wrap {

    overflow: hidden;

}


.loader-name {

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        clamp(55px, 11vw, 155px);

    font-weight: 800;

    line-height: .82;

    letter-spacing: -.075em;

    animation:
        loaderName .9s
        var(--ease)
        both;

}


.loader-last {

    color: transparent;

    -webkit-text-stroke:
        1px rgba(255,255,255,.8);

    animation-delay: .12s;

}


@keyframes loaderName {

    from {

        opacity: 0;

        transform:
            translateY(100%);

    }

    to {

        opacity: 1;

        transform:
            translateY(0);

    }

}


.loader-role {

    margin-top: 35px;

    color: rgba(255,255,255,.72);

    font-size: 11px;

    font-weight: 600;

    letter-spacing: .25em;

}


.loader-progress {

    width: 100%;

    height: 1px;

    margin-top: 55px;

    background:
        rgba(255,255,255,.2);

}


.loader-progress-bar {

    width: 0;

    height: 100%;

    background: var(--gold);

    transition: width .2s linear;

}


.loader-footer {

    display: flex;

    justify-content: space-between;

    margin-top: 15px;

    color: rgba(255,255,255,.55);

    font-size: 9px;

    font-weight: 600;

    letter-spacing: .2em;

}/* =========================================================
   PREMIUM BLACK GOLF HEADER
========================================================= */

.site-header {
    position: sticky;
    top: 0;
    z-index: 5000;

    width: 100%;
    height: 72px;

    background: #000000 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);

    overflow: hidden;
}

/* elegant moving top line */
.site-header::before {
    content: "";
    position: absolute;
    top: 0;
    left: -30%;
    width: 45%;
    height: 1px;

    background: #ffffff;

    opacity: 0.5;

    animation: headerSweep 4s ease-in-out infinite;
}

@keyframes headerSweep {
    0% {
        left: -30%;
        opacity: 0;
    }

    25% {
        opacity: 0.5;
    }

    50% {
        left: 100%;
        opacity: 0;
    }

    100% {
        left: 100%;
        opacity: 0;
    }
}

.header-inner {
    position: relative;

    width: min(calc(100% - 48px), 1440px);
    height: 72px;

    margin: 0 auto;

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

/* =========================================================
   GOLF TRAJECTORY
========================================================= */

.header-golf-trajectory {
    position: absolute;

    left: 18%;
    top: 50%;

    width: 64%;
    height: 45px;

    transform: translateY(-50%);

    pointer-events: none;

    opacity: 0.35;
}

.header-golf-trajectory::before {
    content: "";

    position: absolute;

    left: 0;
    top: 28px;

    width: 100%;
    height: 1px;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,0.12),
        rgba(255,255,255,0.3),
        rgba(255,255,255,0.12),
        transparent
    );

    transform: rotate(-4deg);
}

.header-golf-trajectory::after {
    content: "";

    position: absolute;

    left: -30%;
    top: 28px;

    width: 30%;
    height: 1px;

    background: linear-gradient(
        90deg,
        transparent,
        #ffffff,
        transparent
    );

    transform: rotate(-4deg);

    animation: trajectoryMove 3.8s ease-in-out infinite;
}

@keyframes trajectoryMove {

    0% {
        left: -30%;
        opacity: 0;
    }

    15% {
        opacity: 0.8;
    }

    50% {
        left: 50%;
        opacity: 0.5;
    }

    85% {
        opacity: 0.15;
    }

    100% {
        left: 100%;
        opacity: 0;
    }
}

/* golf ball */
.header-golf-ball {
    position: absolute;

    left: 0;
    top: 24px;

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: #ffffff;

    box-shadow:
        0 0 6px rgba(255,255,255,0.7),
        0 0 14px rgba(255,255,255,0.2);

    animation: golfBallFlight 3.8s cubic-bezier(.45,.05,.55,.95) infinite;
}

@keyframes golfBallFlight {

    0% {
        left: 0%;
        top: 27px;
        opacity: 0;
        transform: scale(0.5);
    }

    10% {
        opacity: 1;
    }

    30% {
        left: 30%;
        top: 11px;
        transform: scale(1);
    }

    50% {
        left: 52%;
        top: 4px;
        transform: scale(1.05);
    }

    70% {
        left: 73%;
        top: 12px;
        transform: scale(0.95);
    }

    90% {
        left: 94%;
        top: 27px;
        opacity: 0.35;
    }

    100% {
        left: 100%;
        top: 27px;
        opacity: 0;
        transform: scale(0.5);
    }
}

/* =========================================================
   BRAND
========================================================= */

.brand {
    position: relative;
    z-index: 10;

    justify-self: start;

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

    gap: 10px;

    color: #ffffff !important;
    text-decoration: none;

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

.brand:hover {
    transform: translateY(-1px);
    opacity: 1;
}

.brand-logo {
    width: 78px;
    height: 78px;
    object-fit: contain;
    filter:
        drop-shadow(0 4px 4px rgba(0, 0, 0, 0.9))
        drop-shadow(0 0 2px rgba(0, 0, 0, 0.95));
    transition: filter 0.3s ease;
}

.brand:hover .brand-logo {
    filter:
        drop-shadow(0 5px 6px rgba(0, 0, 0, 0.95))
        drop-shadow(0 0 3px rgba(0, 0, 0, 1));
}

.brand-mark {
    width: 36px;
    height: 36px;

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

    background: #000000;

    border: 1px solid rgba(255,255,255,0.55);

    color: #ffffff !important;

    font-family: "Manrope", sans-serif;
    font-size: 10px;
    font-weight: 900;

    letter-spacing: -0.04em;

    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        color 0.3s ease;
}

.brand:hover .brand-mark {
    background: #ffffff;
    border-color: #ffffff;
    color: #000000 !important;
}

.brand-text {
    display: flex;
    flex-direction: column;

    line-height: 1;
}

.brand-text strong {
    color: #ffffff !important;

    font-family: "Manrope", sans-serif;

    font-size: 13px;
    font-weight: 900;

    letter-spacing: 0.18em;
}

.brand-text small {
    margin-top: 5px;

    color: rgba(255,255,255,0.5) !important;

    font-family: "Manrope", sans-serif;

    font-size: 7px;
    font-weight: 800;

    letter-spacing: 0.38em;
}

/* =========================================================
   NAVIGATION
========================================================= */

.desktop-nav {
    position: relative;
    z-index: 10;

    height: 100%;

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

    gap: 34px;
}

.nav-link {
    position: relative;

    height: 100%;

    display: flex;
    align-items: center;

    color: rgba(255,255,255,0.65) !important;

    font-family: "Manrope", sans-serif;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: 0.17em;

    text-transform: uppercase;

    text-decoration: none;

    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.nav-link:hover,
.nav-link.active {
    color: #ffffff !important;
    transform: translateY(-1px);
}

.nav-link::after {
    content: "";

    position: absolute;

    left: 50%;
    bottom: 17px;

    width: 0;
    height: 2px;

    background: #ffffff;

    transform: translateX(-50%);

    transition: width 0.3s ease;
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

/* =========================================================
   ENQUIRE BUTTON
========================================================= */

.header-cta {
    position: relative;
    z-index: 20;

    justify-self: end;

    min-width: 112px;
    height: 38px;

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

    gap: 10px;

    padding: 0 17px;

    background: #ffffff;

    border: 1px solid #ffffff;

    color: #000000 !important;

    font-family: "Manrope", sans-serif;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: 0.18em;

    text-transform: uppercase;

    text-decoration: none;

    overflow: hidden;

    transition:
        color 0.35s ease,
        background 0.35s ease,
        transform 0.3s ease,
        box-shadow 0.35s ease;
}

/* sliding black layer */
.header-cta::before {
    content: "";

    position: absolute;

    top: 0;
    left: -105%;

    width: 105%;
    height: 100%;

    background: #000000;

    transition:
        left 0.45s cubic-bezier(.77,0,.18,1);
}

/* moving shine */
.header-cta::after {
    content: "";

    position: absolute;

    top: 0;
    left: -80%;

    width: 40%;
    height: 100%;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,0.5),
        transparent
    );

    transform: skewX(-20deg);

    animation: enquireShine 3.5s ease-in-out infinite;
}

@keyframes enquireShine {

    0% {
        left: -80%;
        opacity: 0;
    }

    25% {
        opacity: 0;
    }

    45% {
        opacity: 1;
    }

    65% {
        left: 130%;
        opacity: 0;
    }

    100% {
        left: 130%;
        opacity: 0;
    }
}

.header-cta span,
.header-cta i {
    position: relative;
    z-index: 2;
}

.header-cta:hover {
    background: #000000;
    color: #ffffff !important;

    transform: translateY(-2px);

    box-shadow:
        0 8px 25px rgba(0,0,0,0.35);
}

.header-cta:hover::before {
    left: 0;
}

.header-cta i {
    font-size: 8px;

    transition:
        transform 0.3s ease;
}

.header-cta:hover i {
    transform: translate(3px,-3px);
}

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

.mobile-menu-button {
    position: relative;
    z-index: 20;

    display: none;

    width: 38px;
    height: 38px;

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

    gap: 5px;

    padding: 0;

    background: #000000;

    border: 1px solid rgba(255,255,255,0.4);

    cursor: pointer;
}

.mobile-menu-button span {
    width: 17px;
    height: 2px;

    background: #ffffff;

    transition:
        transform 0.3s ease,
        opacity 0.25s ease;
}

.mobile-menu-button:hover {
    border-color: #ffffff;
}

.mobile-menu-button.active {
    border-color: #ffffff;
}

.mobile-menu-button.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.mobile-menu-button.active span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-button.active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

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

@media (max-width: 800px) {

    .site-header {
        height: 64px;
    }

    .header-inner {
        width: calc(100% - 22px);
        height: 64px;

        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .desktop-nav,
    .header-cta {
        display: none;
    }

    .mobile-menu-button {
        display: flex;
    }

    .brand {
        gap: 8px;
    }

    .brand-logo {
        width: 62px;
        height: 62px;
    }

    .brand-mark {
        width: 32px;
        height: 32px;
    }

    .brand-text strong {
        font-size: 10px;
    }

    .brand-text small {
        font-size: 6px;
    }

    .header-golf-trajectory {
        left: 25%;
        width: 48%;
        opacity: 0.25;
    }
}

/* =========================================================
   SMALL PHONES
========================================================= */

@media (max-width: 380px) {

    .site-header,
    .header-inner {
        height: 60px;
    }

    .header-inner {
        width: calc(100% - 16px);
    }

    .brand-logo {
        width: 56px;
        height: 56px;
    }

    .brand-mark {
        width: 30px;
        height: 30px;
    }

    .brand-text strong {
        font-size: 9px;
    }

    .brand-text small {
        font-size: 5px;
    }

    .mobile-menu-button {
        width: 34px;
        height: 34px;
    }

    .header-golf-trajectory {
        display: none;
    }
}

/* =========================================================
   MOBILE MENU BUTTON
========================================================= */

.mobile-menu-button {

    display: none;

    width: 42px;

    height: 42px;

    align-items: center;

    justify-content: center;

    flex-direction: column;

    gap: 5px;

    background: transparent;

    color: white;

    transition:
        opacity .22s,
        transform .22s var(--ease);

}


.mobile-menu-button span {

    width: 24px;

    height: 1px;

    background: white;

    transition:
        transform .3s var(--ease),
        opacity .22s;

}


.mobile-menu-button.active span:nth-child(1) {

    transform:
        translateY(6px)
        rotate(45deg);

}


.mobile-menu-button.active span:nth-child(2) {

    opacity: 0;

}


.mobile-menu-button.active span:nth-child(3) {

    transform:
        translateY(-6px)
        rotate(-45deg);

}


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

.mobile-menu {

    position: fixed;

    inset: 0;

    z-index: 4500;

    display: none;

    background: #050505;

    color: white;

    opacity: 0;

    transform:
        translateY(-12px);

    pointer-events: none;

    transition:
        opacity .5s var(--ease),
        transform .5s var(--ease);

}


.mobile-menu.active {

    opacity: 1;

    transform:
        translateY(0);

    pointer-events: auto;

}


.mobile-menu::before {

    content: "";

    position: absolute;

    top: calc(var(--header-height) + 24px);

    right: 30px;

    width: 64px;

    height: 22px;

    border-top:
        1px solid
        rgba(255,255,255,.18);

    border-radius: 50%;

    opacity: 0;

    transform:
        rotate(-12deg)
        scaleX(.2);

    transform-origin: right center;

    pointer-events: none;

}


.mobile-menu.active::before {

    animation:
        headerTrajectory .7s .12s var(--ease)
        forwards;

}


.mobile-menu-inner {

    height: 100%;

    padding:
        calc(var(--header-height) + 36px) 30px 30px;

    display: flex;

    flex-direction: column;

}


.mobile-menu-top,
.mobile-menu-bottom {

    display: flex;

    justify-content: space-between;

    color:
        rgba(255,255,255,.4);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .2em;

}


.mobile-nav {

    margin: auto 0;

}


.mobile-menu-link {

    display: flex;

    align-items: baseline;

    gap: 20px;

    padding: 15px 0;

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

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(36px, 10vw, 64px);

    font-weight: 600;

    line-height: 1;

    transition:
        color .25s var(--ease),
        padding-left .25s var(--ease);

}


.mobile-menu-link:hover {

    color: white;

    padding-left: 8px;

}


.mobile-menu-link span {

    color: var(--gold);

    font-family:
        "DM Sans",
        sans-serif;

    font-size: 9px;

    letter-spacing: .15em;

}


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

.hero {

    position: relative;

    min-height: 100svh;

    height: 100svh;

    overflow: hidden;

    background: var(--forest);

    color: white;

}


.hero-slideshow {

    position: absolute;

    inset: 0;

}


.hero-slide {

    position: absolute;

    inset: 0;

    overflow: hidden;

    opacity: 0;

    visibility: hidden;

    transition:
        opacity 1.2s var(--ease),
        visibility 1.2s;

}


.hero-slide.active {

    opacity: 1;

    visibility: visible;

}


.hero-slide img {

    position: absolute;

    inset: -3%;

    width: 106%;

    height: 106%;

    object-fit: cover;

    transform:
        scale(1.08);

}


.hero-slide.active img {

    animation:
        heroZoom 6s
        var(--ease)
        forwards;

}


@keyframes heroZoom {

    from {

        transform:
            scale(1.08)
            translate3d(0,0,0);

    }

    to {

        transform:
            scale(1)
            translate3d(-1%,0,0);

    }

}


/* =========================================================
   LUXURY LIVE GOLF MOTION
========================================================= */

body.page-ready .header-inner::before {

    animation:
        luxuryTrajectory 6.5s
        cubic-bezier(.45,.05,.55,.95)
        infinite;

}


body.page-ready .header-inner::after {

    animation:
        luxuryGolfBall 6.5s
        cubic-bezier(.45,.05,.55,.95)
        infinite;

}


@keyframes luxuryTrajectory {

    0%,
    100% {

        opacity: .18;

        transform:
            translateY(-50%)
            rotate(-8deg)
            scaleX(.62);

    }

    34% {

        opacity: .44;

        transform:
            translateY(-50%)
            rotate(-8deg)
            scaleX(1);

    }

    66% {

        opacity: .28;

        transform:
            translateY(-50%)
            rotate(-8deg)
            scaleX(.88);

    }

}


@keyframes luxuryGolfBall {

    0%,
    100% {

        opacity: .28;

        transform: translate(0, 5px) scale(.72);

    }

    18% {

        opacity: .74;

        transform: translate(20px, -1px) scale(.92);

    }

    42% {

        opacity: .9;

        transform: translate(42px, -11px) scale(1);

    }

    68% {

        opacity: .6;

        transform: translate(61px, -4px) scale(.88);

    }

    86% {

        opacity: .3;

        transform: translate(68px, 4px) scale(.72);

    }

}


/* =========================================================
   HEADER MOTION DETAIL
========================================================= */

.header-inner::before {

    content: "";

    position: absolute;

    top: 50%;
    right: 160px;

    width: 70px;
    height: 22px;

    border-top:
        1px solid
        rgba(255,255,255,.22);

    border-radius: 50%;

    opacity: 0;

    transform:
        translateY(-50%)
        rotate(-8deg)
        scaleX(.2);

    transform-origin: right center;

    pointer-events: none;

}


.header-inner::after {

    content: "";

    position: absolute;

    top: calc(50% - 2px);
    right: 228px;

    width: 4px;
    height: 4px;

    border-radius: 50%;

    background: #ffffff;

    opacity: 0;

    pointer-events: none;

}


body.page-ready .header-inner::before {

    animation:
        headerPathIn .8s .38s var(--ease)
        forwards;

}


body.page-ready .header-inner::after {

    animation:
        headerBallIn .8s .38s var(--ease)
        forwards;

}


.desktop-nav .nav-link {

    opacity: 0;

    animation:
        headerLinkIn .45s var(--ease)
        forwards;

}


.desktop-nav .nav-link:nth-child(1) {
    animation-delay: .22s;
}


.desktop-nav .nav-link:nth-child(2) {
    animation-delay: .27s;
}


.desktop-nav .nav-link:nth-child(3) {
    animation-delay: .32s;
}


.desktop-nav .nav-link:nth-child(4) {
    animation-delay: .37s;
}


.desktop-nav .nav-link:nth-child(5) {
    animation-delay: .42s;
}


.desktop-nav .nav-link:nth-child(6) {
    animation-delay: .47s;
}


.mobile-menu-button::after {

    content: "";

    position: absolute;

    inset: -4px;

    border:
        1px solid
        rgba(255,255,255,.28);

    border-radius: 50%;

    opacity: 0;

    transform: scale(.8) rotate(-18deg);

    transition:
        opacity .3s ease,
        transform .5s var(--ease);

    pointer-events: none;

}


.mobile-menu-button:hover::after,
.mobile-menu-button.active::after {

    opacity: .65;

    transform: scale(1) rotate(0);

}


@keyframes headerPathIn {

    0% {
        opacity: 0;
        transform:
            translateY(-50%)
            rotate(-8deg)
            scaleX(.2);
    }

    45% {
        opacity: .65;
    }

    100% {
        opacity: .42;
        transform:
            translateY(-50%)
            rotate(-8deg)
            scaleX(1);
    }

}


@keyframes headerBallIn {

    0% {
        opacity: 0;
        transform: translate(0, 6px);
    }

    35% {
        opacity: .9;
    }

    100% {
        opacity: .72;
        transform: translate(66px, -10px);
    }

}


@keyframes headerLinkIn {

    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@media (max-width: 800px) {

    .header-inner::before {

        right: 66px;
        width: 48px;
        height: 18px;

    }

    .header-inner::after {

        right: 112px;

    }

}


@media (max-width: 380px) {

    .header-inner::before,
    .header-inner::after {

        display: none;

    }

}


.hero-slide-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(5,13,9,.82) 0%,
            rgba(5,13,9,.45) 42%,
            rgba(5,13,9,.12) 100%
        );

}


.hero-slide-overlay::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            0deg,
            rgba(5,13,9,.8),
            transparent 45%,
            rgba(5,13,9,.25)
        );

}


/* HERO CONTENT */

.hero-content {

    position: relative;

    z-index: 5;

    height: 100%;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    padding-top:
        70px;

    padding-bottom: 35px;

}


.hero-topline {

    display: flex;

    align-items: center;

    gap: 15px;

    color:
        rgba(255,255,255,.75);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .2em;

}


.hero-line {

    width: 45px;

    height: 1px;

    background: var(--gold);

}


.hero-location {

    margin-left: 15px;

    color:
        rgba(255,255,255,.45);

}


.hero-main {

    max-width: 1000px;

    margin-top: auto;

    margin-bottom: auto;

}


.hero-title {

    margin-top: 20px;

    font-family:
        "Manrope",
        sans-serif;

    font-weight: 800;

    line-height: .9;

    letter-spacing: -.075em;

}


.hero-title-small {

    display: block;

    font-size:
        clamp(45px, 7vw, 100px);

    animation:
        titleIn 1.1s
        .3s
        var(--ease)
        both;

}


.hero-title-large {

    display: block;

    color: transparent;

    -webkit-text-stroke:
        1.5px rgba(255,255,255,.9);

    text-shadow:
        0 3px 16px rgba(0,0,0,.55);

    font-size:
        clamp(70px, 11vw, 165px);

    animation:
        titleIn 1.1s
        .42s
        var(--ease)
        both;

}


@keyframes titleIn {

    from {

        opacity: 0;

        transform:
            translateY(70px);

    }

    to {

        opacity: 1;

        transform:
            translateY(0);

    }

}


.hero-description {

    max-width: 440px;

    margin-top: 35px;

    color:
        rgba(255,255,255,.88);

    font-size:
        clamp(15px, 1.4vw, 19px);

    font-weight: 300;

    line-height: 1.65;

    text-shadow:
        0 2px 8px rgba(0,0,0,.55);

    animation:
        fadeUp 1s .7s
        var(--ease)
        both;

}


.hero-actions {

    display: flex;

    gap: 12px;

    margin-top: 32px;

    animation:
        fadeUp 1s .85s
        var(--ease)
        both;

}


@keyframes fadeUp {

    from {

        opacity: 0;

        transform:
            translateY(25px);

    }

    to {

        opacity: 1;

        transform:
            translateY(0);

    }

}


/* BUTTONS */

.btn {

    min-height: 52px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 18px;

    padding:
        0 23px;

    font-size: 11px;

    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;

    transition:
        transform .35s var(--ease),
        background .35s,
        color .35s;

}


.btn:hover {

    transform:
        translateY(-3px);

}


.btn-light {

    background: white;

    color: var(--forest);

}


.btn-light:hover {

    background: var(--gold);

    color: white;

}


.btn-outline-light {

    border:
        1px solid
        rgba(255,255,255,.45);

    color: white;

}


.btn-outline-light:hover {

    background: white;

    color: var(--forest);

}


/* HERO BOTTOM */

.hero-bottom {

    display: grid;

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

    align-items: end;

}


.hero-counter {

    display: flex;

    gap: 8px;

    color:
        rgba(255,255,255,.4);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .15em;

}


.hero-current {

    color: white;

}


.hero-divider {

    color: var(--gold);

}


.hero-dots {

    display: flex;

    justify-content: center;

    gap: 7px;

}


.hero-dot {

    width: 26px;

    height: 2px;

    background:
        rgba(255,255,255,.3);

    transition:
        width .4s var(--ease),
        background .3s;

}


.hero-dot.active {

    width: 52px;

    background: white;

}


.hero-scroll {

    display: flex;

    align-items: center;

    justify-content: flex-end;

    gap: 14px;

    color:
        rgba(255,255,255,.45);

    font-size: 8px;

    font-weight: 700;

    letter-spacing: .2em;

}


.scroll-line {

    position: relative;

    width: 60px;

    height: 1px;

    overflow: hidden;

    background:
        rgba(255,255,255,.25);

}


.scroll-line span {

    position: absolute;

    left: 0;

    top: 0;

    width: 25px;

    height: 1px;

    background: white;

    animation:
        scrollLine 2s infinite;

}


@keyframes scrollLine {

    0% {

        transform:
            translateX(-30px);

    }

    50% {

        transform:
            translateX(60px);

    }

    100% {

        transform:
            translateX(60px);

    }

}


/* =========================================================
   INTRO
========================================================= */

.intro-section {

    padding:
        120px 0;

}


.intro-grid {

    display: grid;

    grid-template-columns:
        120px 1fr;

    gap: 60px;

}


.section-number {

    color: var(--gold);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: .15em;

}


.intro-content p {

    max-width: 560px;

    margin-top: 40px;

    color: var(--muted);

    font-size: 17px;

    line-height: 1.8;

}


/* =========================================================
   ABOUT
========================================================= */

.about-section {

    padding:
        84px 0
        120px;

}


.about-grid {

    display: grid;

    grid-template-columns:
        minmax(0, .95fr)
        minmax(0, 1fr);

    gap: 100px;

    align-items: center;

}


.about-image {

    position: relative;

    min-height: 680px;

    overflow: hidden;

    background: #d5d1c6;

}


.about-image::before {

    content: "";

    position: absolute;

    z-index: 2;

    inset: 18px;

    border:
        1px solid
        rgba(255,255,255,.35);

    pointer-events: none;

}


.about-image img {

    height: 100%;

    min-height: 680px;

    object-fit: cover;

    transition:
        transform 1s var(--ease);

}


.about-image:hover img {

    transform:
        scale(1.04);

}


.image-caption {

    position: absolute;

    z-index: 3;

    right: 35px;

    bottom: 35px;

    left: 35px;

    display: flex;

    justify-content: space-between;

    color: white;

    font-size: 8px;

    font-weight: 700;

    letter-spacing: .18em;

}


.about-label {

    color: var(--gold);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .2em;

}


.about-content h3 {

    max-width: 650px;

    margin-top: 25px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(45px, 5vw, 75px);

    font-weight: 500;

    line-height: .98;

    letter-spacing: -.045em;

}


.about-content h3 span {

    color: var(--gold);

    font-style: italic;

}


.about-content > p {

    max-width: 610px;

    margin-top: 30px;

    color: var(--muted);

    font-size: 16px;

    line-height: 1.85;

}


.facts-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    margin-top: 55px;

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

}


.fact {

    padding:
        25px 20px 0 0;

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

}


.fact:not(:first-child) {

    padding-left: 20px;

}


.fact:last-child {

    border-right: 0;

}


.fact strong {

    display: block;

    color: var(--ink);

    font-size: 20px;

    font-weight: 700;

}


.fact span {

    display: block;

    margin-top: 8px;

    color: var(--muted);

    font-size: 9px;

    line-height: 1.4;

    text-transform: uppercase;

    letter-spacing: .08em;

}


/* =========================================================
   JOURNEY
========================================================= */

.journey-section {

    padding:
        120px 0;

}


.journey-intro {

    display: flex;

    justify-content: flex-end;

    margin-top: -20px;

    margin-bottom: 100px;

}


.journey-intro p {

    max-width: 430px;

    color:
        var(--muted-light);

    font-size: 15px;

    line-height: 1.8;

}


.timeline {

    border-top:
        1px solid
        var(--line-light);

}


.timeline-item {

    display: grid;

    grid-template-columns:
        100px
        40px
        1fr;

    min-height: 220px;

    border-bottom:
        1px solid
        var(--line-light);

}


.timeline-year {

    padding-top: 35px;

    color: var(--gold);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: .15em;

}


.timeline-line {

    position: relative;

    display: flex;

    justify-content: center;

}


.timeline-line::before {

    content: "";

    position: absolute;

    top: 0;

    bottom: 0;

    width: 1px;

    background:
        var(--line-light);

}


.timeline-line span {

    position: relative;

    z-index: 2;

    width: 9px;

    height: 9px;

    margin-top: 36px;

    border:
        1px solid
        var(--gold);

    background: var(--forest);

    transform:
        rotate(45deg);

}


.timeline-content {

    padding:
        32px 0 45px 45px;

}


.timeline-content > span {

    color:
        rgba(255,255,255,.4);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .2em;

}


.timeline-content h3 {

    margin-top: 15px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(30px, 3.4vw, 48px);

    font-weight: 500;

    line-height: 1;

}


.timeline-content p {

    max-width: 580px;

    margin-top: 18px;

    color:
        var(--muted-light);

    font-size: 14px;

    line-height: 1.7;

}


/* =========================================================
   COACHING
========================================================= */

.coaching-section {

    padding:
        120px 0;

}


.coaching-layout {

    display: grid;

    grid-template-columns:
        .7fr 1.3fr;

    gap: 100px;

}


.coaching-copy {

    position: sticky;

    top: 150px;

    align-self: start;

}


.large-number {

    color: var(--gold);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: .15em;

}


.coaching-copy h3 {

    margin-top: 25px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(50px, 5vw, 78px);

    font-weight: 500;

    line-height: .95;

    letter-spacing: -.04em;

}


.coaching-copy p {

    max-width: 400px;

    margin-top: 30px;

    color: var(--muted);

    font-size: 15px;

    line-height: 1.8;

}


.coaching-cards {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 15px;

}


.coaching-card {

    min-height: 340px;

    padding: 32px;

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

    background:
        rgba(255,255,255,.25);

    transition:
        transform .5s var(--ease),
        background .4s,
        border .4s;

}


.coaching-card:hover {

    transform:
        translateY(-8px);

    border-color:
        rgba(183,154,97,.5);

    background:
        rgba(255,255,255,.7);

}


.card-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 44px;

    height: 44px;

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

    color: var(--gold);

}


.coaching-card > span {

    display: block;

    margin-top: 70px;

    color: var(--gold);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .15em;

}


.coaching-card h4 {

    margin-top: 12px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size: 31px;

    font-weight: 500;

}


.coaching-card p {

    margin-top: 14px;

    color: var(--muted);

    font-size: 13px;

    line-height: 1.7;

}


/* =========================================================
   FEATURE IMAGE
========================================================= */

.feature-image-section {

    background: var(--forest);

}


.feature-image-wrap {

    position: relative;

    height: 78vh;

    min-height: 600px;

    overflow: hidden;

}


.feature-image {

    width: 100%;

    height: 100%;

    object-fit: cover;

    transform:
        scale(1.04);

}


.feature-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(5,13,9,.78),
            rgba(5,13,9,.15)
        );

}


.feature-content {

    position: absolute;

    z-index: 2;

    left: max(
        40px,
        calc((100% - 1380px) / 2)
    );

    bottom: 100px;

    color: white;

}


.feature-content > span {

    color: var(--gold-light);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .2em;

}


.feature-content h2 {

    max-width: 700px;

    margin-top: 25px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(55px, 8vw, 110px);

    font-weight: 500;

    line-height: .88;

    letter-spacing: -.05em;

}


.feature-content em {

    color: var(--gold-light);

}


/* =========================================================
   PLAN
========================================================= */

.plan-section {

    padding:
        120px 0;

}


.plan-wrapper {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 100px;

    align-items: center;

}


.plan-intro > span {

    color: var(--gold);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .2em;

}


.plan-intro h3 {

    margin-top: 20px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(45px, 5vw, 72px);

    font-weight: 500;

    line-height: .95;

}


.plan-intro p {

    max-width: 470px;

    margin-top: 30px;

    color: var(--muted-light);

    font-size: 15px;

    line-height: 1.8;

}


.plan-card {

    position: relative;

    padding: 45px;

    background:
        linear-gradient(
            145deg,
            #f6f2e8,
            #e8e2d4
        );

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

}


.plan-top {

    display: flex;

    justify-content: space-between;

    color: var(--gold);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .18em;

}


.plan-price {

    display: flex;

    align-items: baseline;

    flex-wrap: wrap;

    gap: 8px;

    margin-top: 65px;

}


.plan-price small {

    color: var(--muted);

    font-size: 9px;

    letter-spacing: .1em;

}


.plan-price strong {

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        clamp(42px, 5vw, 70px);

    color: var(--forest);

    font-weight: 900;

    letter-spacing: 0;

    line-height: 1;

    text-shadow:
        0 1px 0 rgba(255,255,255,.7);

}


.plan-price span {

    color: var(--muted);

    font-size: 9px;

    letter-spacing: .12em;

}


.plan-divider {

    height: 1px;

    margin:
        35px 0;

    background:
        rgba(24,32,25,.15);

}


.plan-features {

    display: grid;

    gap: 18px;

}


.plan-features li {

    display: flex;

    align-items: flex-start;

    gap: 13px;

    color: #4f5851;

    font-size: 13px;

    line-height: 1.5;

}


.plan-features i {

    margin-top: 4px;

    color: var(--gold);

    font-size: 10px;

}


.plan-button {

    min-height: 58px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-top: 40px;

    padding:
        0 20px;

    background: var(--forest);

    color: white;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;

    transition:
        background .35s,
        transform .35s var(--ease);

}


.plan-button:hover {

    background: var(--gold);

    transform:
        translateY(-3px);

}


.yearly-package-invite {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

    margin-top: 65px;

    padding: 28px 0;

    border-top: 1px solid var(--line-light);

}


.yearly-package-invite > div > span {

    color: var(--gold-light);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .2em;

}


.yearly-package-invite p {

    margin-top: 9px;

    color: var(--muted-light);

    font-size: 14px;

}


.yearly-package-trigger {

    min-height: 54px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 24px;

    padding: 0 22px;

    border: 1px solid var(--gold);

    background: transparent;

    color: var(--gold-light);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .1em;

    text-transform: uppercase;

    transition:
        color .3s,
        background .3s,
        transform .3s var(--ease);

}


.yearly-package-trigger:hover {

    transform: translateY(-2px);

    background: var(--gold);

    color: var(--forest);

}


.yearly-package-dialog {

    width: min(720px, calc(100% - 32px));

    max-width: none;

    max-height: min(900px, calc(100% - 32px));

    margin: auto;

    padding: 0;

    overflow: auto;

    border: 1px solid rgba(208, 182, 126, .55);

    background:
        radial-gradient(ellipse at 90% 0%, rgba(183, 154, 97, .16), transparent 42%),
        linear-gradient(145deg, #18271e, #0d1712 72%);

    color: var(--white);

    box-shadow: 0 35px 100px rgba(0, 0, 0, .55);

}


.yearly-package-dialog::backdrop {

    background: rgba(5, 10, 7, .82);

    backdrop-filter: blur(8px);

}


.yearly-package-dialog-content {

    position: relative;

    padding: clamp(30px, 6vw, 58px);

}


.yearly-package-close {

    position: absolute;

    top: 20px;

    right: 20px;

    width: 42px;

    height: 42px;

    display: grid;

    place-items: center;

    border: 1px solid rgba(255, 255, 255, .18);

    background: transparent;

    color: var(--cream);

    font-size: 18px;

    transition:
        border-color .3s,
        color .3s;

}


.yearly-package-close:hover {

    border-color: var(--gold-light);

    color: var(--gold-light);

}


.yearly-package-heading > span,
.yearly-package-saving {

    color: var(--gold-light);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .2em;

}


.yearly-package-heading h2 {

    max-width: 500px;

    margin-top: 22px;

    font-family: "Playfair Display", Georgia, serif;

    font-size: clamp(38px, 7vw, 64px);

    font-weight: 500;

    line-height: .98;

}


.yearly-package-heading p {

    max-width: 510px;

    margin-top: 18px;

    color: var(--muted-light);

    font-size: 14px;

    line-height: 1.7;

}


.yearly-package-price {

    margin-top: 34px;

    padding: 24px 0;

    border-top: 1px solid rgba(255, 255, 255, .15);

    border-bottom: 1px solid rgba(255, 255, 255, .15);

}


.yearly-package-price > div {

    display: flex;

    align-items: baseline;

    flex-wrap: wrap;

    gap: 12px;

    margin-top: 12px;

}


.yearly-package-price strong {

    color: var(--cream);

    font-family: "Manrope", sans-serif;

    font-size: clamp(48px, 9vw, 76px);

    font-weight: 800;

    letter-spacing: -.06em;

    line-height: 1;

}


.yearly-package-price > div > span {

    color: var(--gold-light);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: .15em;

}


.yearly-package-price p {

    margin-top: 10px;

    color: var(--muted-light);

    font-size: 12px;

}


.yearly-package-price s {

    margin-left: 5px;

    color: rgba(255, 255, 255, .55);

}


.yearly-package-lesson-count {

    display: flex;

    align-items: center;

    gap: 14px;

    margin-top: 26px;

    color: var(--cream);

    font-size: 14px;

}


.yearly-package-lesson-count i {

    color: var(--gold-light);

    font-size: 18px;

}


.yearly-package-features {

    display: grid;

    gap: 14px;

    margin-top: 24px;

}


.yearly-package-features li {

    display: flex;

    align-items: flex-start;

    gap: 12px;

    color: #d5dbd5;

    font-size: 13px;

    line-height: 1.55;

}


.yearly-package-features i {

    margin-top: 4px;

    color: var(--gold-light);

    font-size: 10px;

}


.yearly-package-enquire {

    min-height: 58px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 16px;

    margin-top: 32px;

    padding: 0 22px;

    background: var(--gold-light);

    color: var(--forest);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;

    transition:
        transform .3s var(--ease),
        background .3s;

}


.yearly-package-enquire:hover {

    transform: translateY(-2px);

    background: var(--cream);

}


.yearly-package-enquire i {

    font-size: 18px;

}


/* =========================================================
   GALLERY
========================================================= */

.gallery-section {

    padding:
        170px 0;

}


.gallery-heading {

    display: flex;

    justify-content: space-between;

    align-items: flex-end;

}


.gallery-heading p {

    max-width: 260px;

    color: var(--muted);

    font-size: 13px;

    line-height: 1.7;

}


.gallery-grid {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 16px;

}


.gallery-item {

    position: relative;

    min-height: 400px;

    overflow: hidden;

    cursor: pointer;

    background: #d6d2c8;

}


.gallery-large {

    min-height: 620px;

}


.gallery-wide {

    min-height: 520px;

}


.gallery-item img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition:
        transform 1s var(--ease);

}


.gallery-item:hover img {

    transform:
        scale(1.06);

}


.gallery-overlay {

    position: absolute;

    inset: 0;

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    padding: 25px;

    background:
        linear-gradient(
            0deg,
            rgba(5,13,9,.75),
            transparent 50%
        );

    color: white;

            padding: 120px 0 140px;

    transition:
        opacity .5s;

}


.gallery-item:hover .gallery-overlay {

    opacity: 1;

}


.gallery-overlay span {

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .18em;

}


.gallery-overlay i {

    font-size: 13px;

}


/* =========================================================
   CONTACT
========================================================= */

.contact-section {

    padding:
        120px 0;

}


.contact-grid {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 100px;

    align-items: center;

}


.contact-heading h2 {

    max-width: 650px;

    margin-top: 25px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(60px, 7vw, 100px);

    font-weight: 500;

    line-height: .9;

    letter-spacing: -.05em;

}


.contact-heading h2 em {

    color: var(--gold);

}


.contact-heading {

    position: relative;

    padding-bottom: 24px;

    border-bottom: 1px solid var(--line-light);

}


.contact-heading::after {

    content: "";

    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;

    width: 64px;
    height: 3px;

    background: var(--gold);

}


.contact-heading p {

    max-width: 450px;

    margin-top: 30px;

    color: var(--muted-light);

    font-size: 15px;

    line-height: 1.8;

}


.contact-options {

    display: grid;

    gap: 12px;

}


.contact-card {

    position: relative;

    min-height: 125px;

    display: flex;

    align-items: center;

    gap: 22px;

    padding:
        25px;

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

    color: white;

    transition:
        border .4s,
        background .4s,
        transform .4s var(--ease);

}


.contact-card:hover {

    border-color:
        rgba(183,154,97,.65);

    background:
        rgba(255,255,255,.035);

}


.contact-icon {

    width: 52px;

    height: 52px;

    display: grid;

    place-items: center;

    border:
        1px solid
        rgba(255,255,255,.15);

    color: var(--gold);

    font-size: 20px;

}


.contact-card div:nth-child(2) {

    display: flex;

    flex-direction: column;

}


.contact-card span {

    color:
        rgba(255,255,255,.4);

    font-size: 8px;

    font-weight: 700;

    letter-spacing: .18em;

}


.contact-card strong {

    margin-top: 8px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size: 25px;

    font-weight: 500;

}


.contact-arrow {

    position: absolute;

    right: 25px;

    color:
        rgba(255,255,255,.45);

    font-size: 12px;

}


/* =========================================================
   FINAL CTA
========================================================= */

.final-cta {

    padding:
        160px 0;

    background: var(--cream);

    text-align: center;

}


.final-cta .eyebrow {

    justify-content: center;

}


.final-cta h2 {

    max-width: 900px;

    margin:
        25px auto 45px;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:
        clamp(60px, 8vw, 120px);

    font-weight: 500;

    line-height: .88;

    letter-spacing: -.055em;

}


.final-cta-button {

    min-height: 60px;

    display: inline-flex;

    align-items: center;

    gap: 35px;

    padding:
        0 28px;

    background: var(--forest);

    color: white;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: .15em;

    text-transform: uppercase;

    transition:
        background .35s,
        transform .35s var(--ease);

}


.final-cta-button:hover {

    background: var(--gold);

    transform:
        translateY(-4px);

}


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

.site-footer {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 92px 0 28px;
    background:
        radial-gradient(circle at 78% 18%, rgba(183,154,97,.12), transparent 24%),
        radial-gradient(ellipse at 18% 108%, #1b3929 0, #0c1b13 42%, #07100b 78%);
    color: var(--white);
}

.site-footer::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: -10%;
    bottom: -36%;
    left: -10%;
    height: 70%;
    border: 1px solid rgba(208,182,126,.14);
    border-radius: 50% 50% 0 0;
    transform: rotate(-4deg);
}

.site-footer::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: -8%;
    bottom: -46%;
    left: 28%;
    height: 72%;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 50% 50% 0 0;
    transform: rotate(7deg);
}

.footer-contours {
    position: absolute;
    z-index: -1;
    top: 12%;
    right: 22%;
    width: 42%;
    height: 44%;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 50%;
    transform: rotate(-16deg);
    overflow: hidden;
    pointer-events: none;
}

.footer-contours::before,
.footer-contours::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255,255,255,.05);
    border-radius: 50%;
}

.footer-contours::before {
    inset: 16px -28px 24px 28px;
}

.footer-contours::after {
    inset: 34px -54px 48px 58px;
}

.footer-flag {
    position: absolute;
    z-index: -1;
    top: 74px;
    right: 13%;
    width: 90px;
    height: 170px;
    opacity: .4;
    transform: rotate(7deg);
}

.footer-flag-pole {
    position: absolute;
    right: 18px;
    bottom: 0;
    width: 1px;
    height: 144px;
    background: linear-gradient(180deg, rgba(208,182,126,.05), rgba(208,182,126,.7));
}

.footer-flag-mark {
    position: absolute;
    top: 18px;
    right: 19px;
    width: 62px;
    height: 30px;
    background: var(--gold);
    clip-path: polygon(0 0, 100% 18%, 66% 100%, 0 78%);
    opacity: .28;
}

.footer-container {
    position: relative;
    z-index: 1;
}

.footer-signature {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr);
    gap: 80px;
    align-items: end;
    padding-bottom: 54px;
    border-bottom: 1px solid rgba(255,255,255,.13);
}

.footer-brand-link {
    display: inline-flex;
    align-items: center;
    gap: 26px;
}

.footer-brand-logo {
    width: 220px;
    height: 220px;
    object-fit: contain;
    filter:
        drop-shadow(0 6px 8px rgba(0,0,0,.9))
        drop-shadow(0 0 3px rgba(0,0,0,1));
}

.footer-brand-copy {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.footer-brand-copy strong {
    color: var(--white);
    font-family: "Manrope", sans-serif;
    font-size: clamp(25px, 3.2vw, 50px);
    font-weight: 800;
    letter-spacing: .04em;
    line-height: .95;
}

.footer-brand-copy small,
.footer-kicker,
.footer-column-title {
    color: var(--gold-light);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.footer-brand p {
    max-width: 420px;
    margin: 24px 0 0 174px;
    color: rgba(255,255,255,.68);
    font-size: 15px;
    line-height: 1.7;
}

.footer-signature-note {
    max-width: 300px;
    justify-self: end;
}

.footer-signature-note p {
    margin-top: 17px;
    color: rgba(255,255,255,.52);
    font-size: 13px;
    line-height: 1.75;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr 1.05fr 1.15fr;
    gap: 60px;
    padding: 54px 0 60px;
}

.footer-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 13px;
}

.footer-column-title {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 10px;
    color: var(--white);
}

.footer-column-title i {
    color: var(--gold-light);
    font-size: 12px;
}

.footer-column a,
.footer-column > span:not(.footer-column-title) {
    color: rgba(255,255,255,.58);
    font-size: 12px;
    line-height: 1.45;
}

.footer-column a {
    transition: color .3s ease, transform .3s var(--ease);
}

.footer-column a:hover {
    color: var(--white);
    transform: translateX(4px);
}

.footer-connect-label {
    max-width: 210px;
    margin-bottom: 4px;
}

.footer-whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 3px;
    padding: 12px 15px;
    border: 1px solid rgba(208,182,126,.45);
    color: var(--white) !important;
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: background .3s ease, border-color .3s ease, transform .3s var(--ease);
}

.footer-whatsapp i:first-child {
    color: var(--gold-light);
    font-size: 15px;
}

.footer-whatsapp i:last-child {
    font-size: 9px;
}

.footer-whatsapp:hover {
    background: rgba(183,154,97,.16);
    border-color: var(--gold-light);
    transform: translateY(-2px);
}

.footer-email {
    color: rgba(255,255,255,.48) !important;
}

.footer-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 34px 0;
    border-top: 1px solid rgba(255,255,255,.1);
    border-bottom: 1px solid rgba(255,255,255,.1);
}

.footer-cta h2 {
    margin-top: 12px;
    color: var(--white);
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(32px, 4.5vw, 64px);
    font-weight: 600;
    letter-spacing: .01em;
    line-height: .95;
}

.footer-cta p {
    margin-top: 12px;
    color: rgba(255,255,255,.58);
    font-size: 13px;
}

.footer-cta-button {
    display: inline-flex;
    align-items: center;
    gap: 20px;
    flex-shrink: 0;
    min-height: 56px;
    padding: 0 22px;
    background: var(--gold);
    color: #111b14;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    transition: background .3s ease, color .3s ease, transform .3s var(--ease);
}

.footer-cta-button i {
    font-size: 17px;
}

.footer-cta-button:hover {
    background: var(--white);
    color: var(--forest);
    transform: translateY(-3px);
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding-top: 24px;
    color: rgba(255,255,255,.38);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1.5;
    text-transform: uppercase;
}

.footer-legal {
    display: flex;
    gap: 24px;
}

.footer-legal span {
    color: inherit;
}


.footer-main {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    gap: 72px;
    align-items: end;
    padding-bottom: 44px;
    border-bottom: 1px solid rgba(255,255,255,.13);
}

.footer-details {
    align-self: end;
}

.footer-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
}

.footer-nav a {
    color: rgba(255,255,255,.72);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: color .3s ease, transform .3s var(--ease);
}

.footer-nav a:hover {
    color: var(--white);
    transform: translateY(-2px);
}

.footer-contact {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    margin-top: 34px;
    color: rgba(255,255,255,.5);
    font-size: 12px;
}

.footer-contact a {
    color: var(--gold-light);
    transition: color .3s ease;
}

.footer-contact a:hover {
    color: var(--white);
}

.footer-cta {
    margin-top: 0;
    padding: 34px 0;
    border-top: 0;
}

.footer-cta h2 {
    margin-top: 0;
}

.footer-cta-button {
    min-width: 190px;
    justify-content: center;
}


@media (max-width: 1100px) {

    .footer-main {
        gap: 45px;
    }

    .footer-signature {
        gap: 45px;
    }

    .footer-grid {
        gap: 35px;
    }

}


@media (max-width: 800px) {

    .site-footer {
        padding: 68px 0 24px;
    }

    .site-footer::before {
        right: 0;
        left: 0;
    }

    .site-footer::after {
        right: 0;
        left: 25%;
    }

    .footer-flag {
        top: 56px;
        right: -2%;
        opacity: .25;
        transform: scale(.8) rotate(7deg);
        transform-origin: top right;
    }

    .footer-contours {
        top: 9%;
        right: 0;
        width: 50%;
        height: 30%;
    }

    .footer-flag {
        right: 0;
    }

    .footer-main {
        grid-template-columns: 1fr;
        gap: 34px;
        padding-bottom: 36px;
    }

    .footer-details {
        align-self: start;
    }

    .footer-contact {
        margin-top: 24px;
    }

    .footer-signature {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-bottom: 38px;
    }

    .footer-signature-note {
        justify-self: start;
        max-width: 360px;
    }

    .footer-brand-link {
        gap: 18px;
    }

    .footer-brand-logo {
        width: 150px;
        height: 150px;
    }

    .footer-brand p {
        margin: 18px 0 0;
        max-width: 360px;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 42px 28px;
        padding: 40px 0 48px;
    }

    .footer-cta {
        align-items: flex-start;
        flex-direction: column;
        gap: 25px;
        padding: 30px 0;
    }

    .footer-cta-button {
        width: 100%;
        justify-content: space-between;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

}


@media (max-width: 480px) {

    .footer-brand-link {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    .footer-brand-logo {
        width: 132px;
        height: 132px;
    }

    .footer-brand-copy strong {
        font-size: 28px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer-cta h2 {
        font-size: 36px;
    }

    .footer-bottom,
    .footer-legal {
        flex-direction: column;
        gap: 10px;
    }

}


/* =========================================================
   LIGHTBOX
========================================================= */

.lightbox {

    position: fixed;

    inset: 0;

    z-index: 9000;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 40px;

    background:
        rgba(3,8,5,.95);

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        opacity .4s,
        visibility .4s;

}


.lightbox.active {

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

}


.lightbox img {

    width: auto;

    max-width: 92vw;

    max-height: 88vh;

    object-fit: contain;

    box-shadow:
        0 30px 100px
        rgba(0,0,0,.5);

}


.lightbox-close {

    position: absolute;

    top: 30px;

    right: 30px;

    width: 48px;

    height: 48px;

    display: grid;

    place-items: center;

    background:
        rgba(255,255,255,.08);

    color: white;

    font-size: 18px;

}


/* =========================================================
   BACK TO TOP
========================================================= */

.back-to-top {

    position: fixed;

    z-index: 4000;

    right: 25px;

    bottom: 25px;

    width: 45px;

    height: 45px;

    display: grid;

    place-items: center;

    border:
        1px solid
        rgba(255,255,255,.2);

    background:
        rgba(13,23,18,.9);

    color: white;

    opacity: 0;

    visibility: hidden;

    transform:
        translateY(15px);

    transition:
        opacity .4s,
        visibility .4s,
        transform .4s var(--ease);

}


.back-to-top.visible {

    opacity: 1;

    visibility: visible;

    transform:
        translateY(0);

}


/* =========================================================
   SCROLL REVEAL
========================================================= */

.reveal {

    opacity: 0;

    transform:
        translateY(45px);

    transition:
        opacity .9s var(--ease),
        transform .9s var(--ease);

}


.reveal-left {

    opacity: 0;

    transform:
        translateX(-50px);

    transition:
        opacity 1s var(--ease),
        transform 1s var(--ease);

}


.reveal-right {

    opacity: 0;

    transform:
        translateX(50px);

    transition:
        opacity 1s var(--ease),
        transform 1s var(--ease);

}


.reveal.visible,
.reveal-left.visible,
.reveal-right.visible {

    opacity: 1;

    transform:
        translate(0,0);

}


/* =========================================================
   IMAGE ERROR
========================================================= */

.image-failed {

    background:
        linear-gradient(
            135deg,
            #26382d,
            #0d1712
        );

}

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

@media (max-width: 1100px) {


    .container {

        width:
            min(
                calc(100% - 50px),
                var(--container)
            );

    }


    .desktop-nav {

        gap: 18px;

    }


    .header-cta {

        display: none;

    }


    .about-grid,
    .plan-wrapper,
    .contact-grid {

        gap: 60px;

    }


    .coaching-layout {

        gap: 50px;

    }


    .footer-top {

        gap: 50px;

    }

}


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

@media (max-width: 800px) {


    html {

        overflow-x: hidden;

    }


    :root {

        --header-height: 72px;

    }


    .site-header {

        height: var(--header-height);

        background:
            #050505;

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

        box-shadow: none;

    }


    .site-header.scrolled {

        background:
            #050505;

        border-bottom-color:
            rgba(255,255,255,.16);

        box-shadow:
            0 8px 18px
            rgba(0,0,0,.2);

    }


    .container {

        width:
            calc(100% - 36px);

    }


    .header-inner {

        width:
            calc(100% - 28px);

        display: flex;

        align-items: center;

        justify-content: space-between;

    }


    .desktop-nav,
    .header-cta {

        display: none;

    }


    .mobile-menu-button {

        display: flex;

    }


    .brand {

        gap: 10px;

    }


    .brand-mark {

        width: 34px;

        height: 34px;

        font-size: 10px;

    }


    .brand-text strong {

        font-size: 12px;

    }


    .mobile-menu-button {

        width: 44px;

        height: 44px;

        border: 0;

        background: transparent;

    }


    .mobile-menu-button:active,
    .mobile-menu-button.active {

        opacity: .78;

    }


    .mobile-menu-button span {

        width: 20px;

    }


    .mobile-menu {

        display: block;

    }


    .hero {

        height: auto;

        min-height: 0;

        aspect-ratio: 1280 / 840;

    }


    .hero-slide img {

        top: 0;

        left: 0;

        width: 100%;

        height: auto;

        min-height: 0;

        object-fit: contain;

        transform: none;

    }


    .hero-slide.active img {

        animation: none;

    }


    .hero-content {

        padding-top:
            12px;

        padding-bottom: 10px;

    }


    .hero-topline {

        flex-wrap: nowrap;

        gap: 10px;

    }


    .hero-location {

        margin-left: 5px;

    }


    .hero-title-small {

        font-size:
            clamp(28px, 7vw, 40px);

    }


    .hero-title-large {

        font-size:
            clamp(40px, 10vw, 52px);

    }


    .hero-description {

        max-width: 250px;

        margin-top: 12px;

        font-size: 11px;

        line-height: 1.4;

    }


    .hero-actions {

        flex-direction: row;

        align-items: center;

        gap: 8px;

        margin-top: 14px;

    }


    .btn {

        min-height: 36px;

        width: auto;

        max-width: none;

        gap: 10px;

        padding:
            0 12px;

        font-size: 8px;

    }


    .hero-bottom {

        grid-template-columns:
            auto
            1fr
            auto;

    }


    .hero-scroll span {

        display: none;

    }


    .hero-scroll {

        justify-content: flex-end;

    }


    .intro-section,
    .about-section,
    .journey-section,
    .coaching-section,
    .plan-section,
    .gallery-section,
    .contact-section {

        padding:
            100px 0;

    }


    .intro-grid {

        grid-template-columns: 1fr;

        gap: 25px;

    }


    .display-title {

        font-size:
            clamp(45px, 13vw, 70px);

    }


    .section-heading {

        margin-bottom: 50px;

    }


    .section-heading h2 {

        font-size:
            clamp(45px, 13vw, 70px);

    }


    .about-grid {

        grid-template-columns: 1fr;

        gap: 55px;

    }


    .about-image,
    .about-image img {

        min-height: 500px;

    }


    .facts-grid {

        grid-template-columns:
            repeat(2, 1fr);

        row-gap: 25px;

    }


    .fact {

        border-right: 0;

    }


    .fact:nth-child(odd) {

        padding-left: 0;

    }


    .journey-intro {

        justify-content: flex-start;

        margin-top: 0;

        margin-bottom: 60px;

    }


    .timeline-item {

        grid-template-columns:
            50px
            25px
            1fr;

        min-height: auto;

    }


    .timeline-content {

        padding:
            28px 0 40px 25px;

    }


    .timeline-content h3 {

        font-size: 30px;

    }


    .coaching-layout {

        grid-template-columns: 1fr;

    }


    .coaching-copy {

        position: static;

    }


    .coaching-cards {

        grid-template-columns: 1fr;

    }


    .coaching-card {

        min-height: 290px;

    }


    .feature-image-wrap {

        height: 70vh;

        min-height: 500px;

    }


    .feature-content {

        left: 18px;

        right: 18px;

        bottom: 60px;

    }


    .feature-content h2 {

        font-size:
            clamp(50px, 14vw, 80px);

    }


    .plan-wrapper {

        grid-template-columns: 1fr;

    }


    .plan-card {

        padding: 30px 25px;

    }


    .yearly-package-invite {

        align-items: stretch;

        flex-direction: column;

        gap: 20px;

        margin-top: 45px;

    }


    .yearly-package-trigger {

        width: 100%;

    }


    .gallery-heading {

        display: block;

    }


    .gallery-heading p {

        margin-top: 20px;

    }


    .gallery-grid {

        grid-template-columns: 1fr;

    }


    .gallery-item,
    .gallery-large,
    .gallery-wide {

        min-height: 420px;

    }


    .gallery-overlay {

        opacity: 1;

    }


    .contact-grid {

        grid-template-columns: 1fr;

    }


    .contact-heading h2 {

        font-size:
            clamp(55px, 15vw, 85px);

    }


    .footer-top {

        grid-template-columns: 1fr;

        gap: 40px;

    }


    .footer-links {

        flex-direction: row;

        flex-wrap: wrap;

    }


    .footer-bottom {

        flex-direction: column;

        gap: 12px;

    }

}


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

@media (max-width: 480px) {


    .container {

        width:
            calc(100% - 28px);

    }


    .header-inner {

        width:
            calc(100% - 28px);

    }


    .loader-content {

        width:
            calc(100% - 35px);

    }


    .loader-name {

        font-size:
            clamp(45px, 16vw, 75px);

    }


    .hero-content {

        padding-bottom: 10px;

    }


    .hero-title-small {

        font-size:
            clamp(28px, 7vw, 36px);

    }


    .hero-title-large {

        font-size:
            clamp(40px, 10vw, 48px);

    }


    .hero-bottom {

        grid-template-columns:
            1fr
            1fr;

        row-gap: 20px;

    }


    .hero-scroll {

        display: none;

    }


    .hero-dots {

        justify-content: flex-end;

    }


    .about-image,
    .about-image img {

        min-height: 430px;

    }


    .facts-grid {

        gap: 15px;

    }


    .coaching-card {

        padding: 25px;

    }


    .plan-price {

        display: block;

    }


    .plan-price strong {

        display: block;

        margin-top: 7px;

    }


    .contact-card {

        min-height: 110px;

        padding: 18px;

    }


    .contact-icon {

        width: 44px;

        height: 44px;

    }


    .contact-card strong {

        font-size: 21px;

    }


    .final-cta {

        padding:
            110px 0;

    }


    .final-cta h2 {

        font-size:
            55px;

    }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

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

    *,
    *::before,
    *::after {

        animation-duration: .01ms !important;

        animation-iteration-count: 1 !important;

        scroll-behavior: auto !important;

        transition-duration: .01ms !important;

    }

}


/* =========================================================
   FINAL MODERN HEADER TREATMENT
========================================================= */

.site-header {

    height: 78px;

    background: #050505 !important;

    border-bottom:
        1px solid
        rgba(255,255,255,.12);

    box-shadow:
        0 8px 24px rgba(0,0,0,.28);

    overflow: visible;

    transition:
        height .35s var(--ease),
        border-color .3s ease,
        box-shadow .3s ease;

}


.site-header::before {

    top: auto;
    right: 32px;
    bottom: -1px;
    left: auto;
    width: 84px;
    height: 1px;

    background: #ffffff;

    opacity: .6;

    animation: none;

}


.site-header.scrolled {

    height: 74px;

    background: #050505 !important;

    border-bottom-color:
        rgba(255,255,255,.18);

    box-shadow:
        0 8px 22px
        rgba(0,0,0,.18);

}


.header-inner {

    width: min(calc(100% - 64px), 1440px);
    height: 100%;

}


.brand {

    animation:
        headerBrandIn .65s .1s var(--ease)
        both;

}


.brand:hover {

    transform: translateY(-1px);

}


.brand-mark {

    width: 38px;
    height: 38px;

    background: transparent;

    border-color:
        rgba(255,255,255,.62);

    transition:
        color .25s ease,
        background .25s ease,
        border-color .25s ease;

}


.brand:hover .brand-mark {

    background: #ffffff;
    color: #050505 !important;

}


.desktop-nav {

    gap: 32px;

    animation:
        headerNavIn .6s .18s var(--ease)
        both;

}


.nav-link {

    height: auto;
    padding: 10px 0 12px;

    color: rgba(255,255,255,.7) !important;

    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;

    transition:
        color .25s ease,
        transform .25s var(--ease);

}


.nav-link:hover,
.nav-link.active {

    color: #ffffff !important;

    transform: translateY(-1px);

}


.nav-link::after {

    right: 0;
    bottom: 3px;
    left: 0;
    width: 0;
    height: 1px;

    background: #ffffff;

    transform: none;

    transition: width .28s var(--ease);

}


.nav-link:hover::after,
.nav-link.active::after {

    width: 100%;

}


.header-cta {

    min-width: 0;
    height: 42px;

    padding: 0 18px;

    background: transparent;

    border-color:
        rgba(255,255,255,.55);

    color: #ffffff !important;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;

    animation:
        headerCtaIn .6s .3s var(--ease)
        both;

    transition:
        background .3s ease,
        color .3s ease,
        border-color .3s ease,
        transform .3s var(--ease);

}


.header-cta::before,
.header-cta::after {

    display: none;

}


.header-cta:hover {

    background: #ffffff;
    border-color: #ffffff;
    color: #050505 !important;

    box-shadow: none;

    transform: translateY(-1px);

}


.header-cta i {

    transition: transform .25s var(--ease);

}


.header-cta:hover i {

    transform: translate(2px,-2px);

}


.mobile-menu-button {

    width: 44px;
    height: 44px;

    background: transparent;
    border: 1px solid rgba(255,255,255,.28);

    transition:
        border-color .25s ease,
        opacity .25s ease;

}


.mobile-menu-button:hover,
.mobile-menu-button.active {

    border-color: rgba(255,255,255,.8);

}


.mobile-menu-button span {

    width: 19px;
    height: 1px;

}


.mobile-menu {

    background: #050505;

    transform: translateY(-8px);

    transition:
        opacity .4s var(--ease),
        transform .4s var(--ease);

}


.mobile-menu-link {

    border-bottom-color:
        rgba(255,255,255,.12);

    font-size: clamp(34px, 9vw, 58px);
    font-weight: 600;

    transition:
        color .25s ease,
        padding-left .25s var(--ease);

}


.mobile-menu-link:hover {

    padding-left: 6px;

}


@keyframes headerBrandIn {

    from {
        opacity: 0;
        transform: translateX(-16px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


@keyframes headerNavIn {

    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes headerCtaIn {

    from {
        opacity: 0;
        transform: translateX(10px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }

}


@media (max-width: 800px) {

    .site-header,
    .site-header.scrolled {

        height: 68px;

    }

    .header-inner {

        width: calc(100% - 28px);

    }

    .brand-mark {

        width: 34px;
        height: 34px;

    }

    .brand-text strong {

        font-size: 11px;

    }

    .mobile-menu-inner {

        padding-top: calc(68px + 32px);

    }

}


@media (max-width: 380px) {

    .site-header,
    .site-header.scrolled {

        height: 64px;

    }

    .mobile-menu-inner {

        padding-top: calc(64px + 28px);

    }

}


/* Keep the golf motion alive after the initial header reveal. */
body.page-ready .header-inner::before {

    animation:
        luxuryTrajectory 6.5s
        cubic-bezier(.45,.05,.55,.95)
        infinite;

}


body.page-ready .header-inner::after {

    animation:
        luxuryGolfBall 6.5s
        cubic-bezier(.45,.05,.55,.95)
        infinite;

}


/* =========================================================
   EDITORIAL GALLERY
========================================================= */

.gallery-section {

    position: relative;

    padding: 170px 0 190px;

    overflow: hidden;

    background:
        radial-gradient(circle at 15% 15%, rgba(183,154,97,0.08), transparent 28%),
        linear-gradient(180deg, rgba(13,23,18,0.02), rgba(13,23,18,0));

}


.gallery-section::before {

    content: "";

    position: absolute;

    top: 4%;
    left: 50%;

    width: min(72vw, 980px);
    height: 1px;

    background: linear-gradient(90deg, transparent, rgba(183,154,97,0.48), transparent);

    transform: translateX(-50%);

    pointer-events: none;

}


.gallery-heading {

    position: relative;

    z-index: 1;

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

    max-width: 1200px;
    margin: 0 auto 56px;

}


.gallery-heading h2 {

    max-width: 620px;

    margin-top: 18px;

    font-size: clamp(46px, 5vw, 86px);
    line-height: .88;
    letter-spacing: -0.06em;

}


.gallery-heading h2 em {

    color: var(--gold);
    font-style: italic;

}


.gallery-heading p {

    max-width: 420px;
    margin-bottom: 10px;

    color: var(--muted);
    font-size: 13px;
    line-height: 1.8;

}


.gallery-grid {

    position: relative;
    z-index: 1;

    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 18px;

    max-width: 1200px;
    margin: 0 auto;

}


.gallery-flight {

    position: absolute;
    inset: 130px 0 42px;
    z-index: 0;
    pointer-events: none;

}


.gallery-ball {

    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;

    width: 18px;
    height: 18px;

    border-radius: 50%;
    background:
        radial-gradient(circle at 32% 30%, #ffffff 0%, #f4efe2 18%, #d7c7a2 42%, #b79a61 62%, #7c6842 100%);
    box-shadow:
        0 0 0 1px rgba(255,255,255,0.4),
        0 8px 20px rgba(183,154,97,0.35);
    transform: translate3d(0, 0, 0);

}


.gallery-grid::before {

    content: "";

    position: absolute;

    inset: 11% 12% auto auto;

    width: min(38vw, 460px);
    height: 76px;

    border-top: 1px solid rgba(183,154,97,0.42);
    border-radius: 50%;

    transform: rotate(-8deg);

    pointer-events: none;

}


.gallery-grid::after {

    content: "";

    position: absolute;

    top: 132px;
    left: 42%;

    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: var(--gold);
    box-shadow: 0 0 0 7px rgba(183,154,97,0.12);

    pointer-events: none;

}


.gallery-item,
.gallery-large,
.gallery-wide {

    position: relative;
    overflow: hidden;

    min-height: 0;
    height: auto;

    border: 0;
    background: transparent;
    box-shadow: 0 26px 54px rgba(12, 19, 15, 0.08);
    cursor: zoom-in;

    isolation: isolate;
    transform: translateY(26px);

    transition:
        transform 0.8s var(--ease),
        box-shadow 0.8s var(--ease),
        opacity 0.8s var(--ease);

}


.gallery-item.visible,
.gallery-large.visible,
.gallery-wide.visible {

    transform: translateY(0);

}


.gallery-item--1 {
    grid-column: 1 / span 7;
}


.gallery-item--2 {
    grid-column: 8 / span 5;
}


.gallery-item--3 {
    grid-column: 8 / span 5;
}


.gallery-item--4 {
    grid-column: 1 / span 5;
}


.gallery-item--5 {
    grid-column: 6 / span 7;
}


.gallery-item--6 {
    grid-column: 1 / span 4;
}


.gallery-item--7 {
    grid-column: 5 / span 4;
}


.gallery-item--8 {
    grid-column: 9 / span 4;
}


.gallery-item--9 {
    grid-column: 1 / span 6;
}


.gallery-item--10 {
    grid-column: 7 / span 6;
}


.gallery-item::before {

    content: "";

    position: absolute;
    inset: 0;
    z-index: 2;

    background: linear-gradient(180deg, rgba(9,15,11,0.08), rgba(9,15,11,0.68));
    opacity: 0;

    transition: opacity 0.7s var(--ease);

}


.gallery-item::after {

    content: "";

    position: absolute;
    inset: 12px;
    z-index: 3;

    border: 1px solid rgba(255,255,255,0.16);

    transition: border-color 0.6s var(--ease), transform 0.7s var(--ease);

    pointer-events: none;

}


.gallery-item img {

    display: block;
    width: 100%;
    height: auto;

    object-fit: contain;
    filter: saturate(0.9) contrast(1.08) brightness(0.96);

    transition:
        transform 0.8s var(--ease),
        filter 0.8s var(--ease);

}


.gallery-item:hover,
.gallery-item:focus-visible,
.gallery-item:focus-within,
.gallery-item.is-active {

    box-shadow: 0 28px 64px rgba(12, 19, 15, 0.12);

}


.gallery-item:hover img,
.gallery-item:focus-visible img,
.gallery-item:focus-within img,
.gallery-item.is-active img {

    transform: scale(1.03);
    filter: brightness(0.76) saturate(0.9) contrast(1.06);

}


.gallery-item:hover::before,
.gallery-item:focus-visible::before,
.gallery-item:focus-within::before,
.gallery-item.is-active::before {

    opacity: 1;

}


.gallery-item:hover::after,
.gallery-item:focus-visible::after,
.gallery-item:focus-within::after,
.gallery-item.is-active::after {

    border-color: rgba(255,255,255,0.72);
    transform: scale(1.01);

}


.gallery-overlay {

    position: absolute;
    inset: 0;
    z-index: 4;

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

    padding: 26px 24px 22px;

    opacity: 0;
    transform: translateY(8px);

    transition:
        opacity 0.6s var(--ease),
        transform 0.6s var(--ease);

}


.gallery-item:hover .gallery-overlay,
.gallery-item:focus-visible .gallery-overlay,
.gallery-item:focus-within .gallery-overlay {

    opacity: 1;
    transform: translateY(0);

}


.gallery-overlay span {

    color: rgba(255,255,255,0.94);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;

    transform: translateY(12px);
    transition: transform 0.6s var(--ease);

}


.gallery-item:hover .gallery-overlay span,
.gallery-item:focus-visible .gallery-overlay span,
.gallery-item:focus-within .gallery-overlay span {

    transform: translateY(0);

}


.gallery-overlay i {

    display: grid;
    place-items: center;

    width: 38px;
    height: 38px;

    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 50%;

    color: rgba(255,255,255,0.96);
    font-size: 12px;

    transform: scale(0.75);
    transition: transform 0.6s var(--ease), border-color 0.6s var(--ease), background 0.6s var(--ease);

}


.gallery-item:hover .gallery-overlay i,
.gallery-item:focus-visible .gallery-overlay i,
.gallery-item:focus-within .gallery-overlay i {

    transform: scale(1);
    border-color: rgba(255,255,255,0.9);
    background: rgba(255,255,255,0.08);

}


.gallery-item.reveal,
.gallery-item.reveal-left,
.gallery-item.reveal-right {

    opacity: 0;

}


.gallery-item.visible.reveal,
.gallery-item.visible.reveal-left,
.gallery-item.visible.reveal-right {

    opacity: 1;

}


.gallery-item:nth-child(1) {
    transition-delay: 0ms;
}


.gallery-item:nth-child(2) {
    transition-delay: 100ms;
}


.gallery-item:nth-child(3) {
    transition-delay: 200ms;
}


.gallery-item:nth-child(4) {
    transition-delay: 300ms;
}


.gallery-item:nth-child(5) {
    transition-delay: 400ms;
}


.gallery-item:nth-child(6) {
    transition-delay: 500ms;
}


.gallery-item:nth-child(7) {
    transition-delay: 600ms;
}


.gallery-item:nth-child(8) {
    transition-delay: 700ms;
}


.gallery-item:nth-child(9) {
    transition-delay: 800ms;
}


.gallery-item:nth-child(10) {
    transition-delay: 900ms;
}


.gallery-item:focus-visible,
.lightbox-close:focus-visible,
.lightbox-control:focus-visible {

    outline: 2px solid rgba(183,154,97,0.9);
    outline-offset: 3px;

}


.lightbox {

    padding: 72px 90px 94px;
    background: rgba(3,3,3,.96);

    transition:
        opacity .5s var(--ease),
        visibility .5s;

}


.lightbox img {

    max-width: min(86vw, 1320px);
    max-height: 80vh;

    object-fit: contain;
    opacity: 0;

    transform: scale(.96);

    transition:
        opacity .55s var(--ease),
        transform .65s var(--ease);

}


.lightbox.active img {

    opacity: 1;
    transform: scale(1);

}


.lightbox-close,
.lightbox-control {

    display: grid;
    place-items: center;

    width: 48px;
    height: 48px;

    border: 1px solid rgba(255,255,255,.28);
    background: rgba(10,10,10,0.18);
    color: white;

    transition:
        color .25s ease,
        background .25s ease,
        border-color .25s ease,
        transform .25s var(--ease);

}


.lightbox-close:hover,
.lightbox-control:hover {

    border-color: white;
    background: white;
    color: #050505;

    transform: translateY(-2px);

}


.lightbox-control {

    position: absolute;
    top: 50%;

    margin-top: -24px;

}


.lightbox-prev {
    left: 30px;
}


.lightbox-next {
    right: 30px;
}


.lightbox-meta {

    position: absolute;
    right: 90px;
    bottom: 34px;
    left: 90px;

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

    color: rgba(255,255,255,.7);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;

}


@media (max-width: 900px) {

    .gallery-section {
        padding: 140px 0 140px;
    }

    .gallery-heading {
        flex-direction: column;
        align-items: flex-start;
        margin-bottom: 42px;
    }

    .gallery-heading p {
        max-width: 100%;
        margin-bottom: 0;
    }

    .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: 320px 220px 220px 220px 220px 220px;
        gap: 16px;
    }

    .gallery-item--1,
    .gallery-item--2,
    .gallery-item--3,
    .gallery-item--4,
    .gallery-item--5,
    .gallery-item--6,
    .gallery-item--7,
    .gallery-item--8,
    .gallery-item--9,
    .gallery-item--10 {
        grid-column: auto;
        grid-row: auto;
    }

    .gallery-grid::before {
        top: 18%;
        left: auto;
        right: 7%;
        width: 44%;
        height: 64px;
    }

    .gallery-grid::after {
        top: 92px;
        left: 54%;
    }

    .gallery-item::after {
        inset: 10px;
    }

    .gallery-overlay {
        opacity: 1;
        transform: none;
    }

    .gallery-overlay span {
        transform: none;
    }

    .gallery-overlay i {
        transform: scale(1);
    }

    .lightbox {
        padding: 70px 24px 92px;
    }

    .lightbox img {
        max-width: 88vw;
        max-height: 68vh;
    }

    .lightbox-close {
        top: 18px;
        right: 18px;
    }

    .lightbox-control {
        top: auto;
        bottom: 28px;
        margin: 0;
    }

    .lightbox-prev {
        left: 24px;
    }

    .lightbox-next {
        right: 24px;
    }

    .lightbox-meta {
        right: 88px;
        bottom: 45px;
        left: 88px;
        font-size: 8px;
    }

}


@media (max-width: 600px) {

    .gallery-section {
        padding: 120px 0 120px;
    }

    .gallery-heading {
        margin-bottom: 32px;
    }

    .gallery-heading h2 {
        font-size: clamp(40px, 13vw, 62px);
    }

    .gallery-grid {
        grid-template-columns: 1fr;
        grid-template-rows: 340px 240px 240px 260px 240px 240px 240px 240px 260px 260px;
        gap: 12px;
    }

    .gallery-grid::before {
        top: 14%;
        left: auto;
        right: 4%;
        width: 62%;
        height: 52px;
    }

    .gallery-grid::after {
        top: 80px;
        left: 58%;
    }

    .gallery-item {
        width: 100%;
    }

}


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

    html {
        scroll-behavior: auto;
    }

    .gallery-item,
    .gallery-item img,
    .gallery-overlay,
    .gallery-item::before,
    .gallery-item::after,
    .lightbox,
    .lightbox img,
    .lightbox-close,
    .lightbox-control {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }

}


/* =========================================================
   CERTIFICATION IMAGE SHOWCASE
========================================================= */

.certifications-section {

    position: relative;
    overflow: hidden;
    padding: 150px 0 125px;

    background:
        radial-gradient(circle at 50% 45%, rgba(255,255,255,.05), transparent 48%),
        #0d1712;

}


.certifications-heading {

    position: relative;
    z-index: 2;

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

    margin-bottom: 58px;

    padding-bottom: 24px;

    border-bottom: 1px solid var(--line-light);

}


.certifications-heading::after {

    content: "";

    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;

    width: 64px;
    height: 3px;

    background: var(--gold);

}


.certifications-heading p {

    margin-bottom: 2px;

    color: var(--muted-light);
    font-size: 13px;

}


.certificate-showcase {

    position: relative;
    min-height: 520px;

    overflow: hidden;

}


.certificate-trajectory {

    position: absolute;
    top: 48%;
    left: -12%;

    width: 124%;
    height: 100px;

    border-top: 1px solid rgba(183,154,97,.22);
    border-radius: 50%;
    transform: rotate(-5deg);
    pointer-events: none;

}


.certificate-trajectory::after {

    content: "";
    position: absolute;
    top: -3px;
    left: 0;

    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(255,255,255,.7);

    animation: certificateBall 8s ease-in-out infinite;

}


@keyframes certificateBall {

    0%, 100% { left: 4%; transform: translateY(8px); opacity: .2; }
    48% { left: 52%; transform: translateY(-28px); opacity: .65; }
    82% { left: 90%; transform: translateY(-2px); opacity: .25; }

}


/* Centered cinematic footer treatment. */
.site-footer {
    min-height: 650px;
    padding: 86px 0 24px;
    background:
        radial-gradient(circle at 50% 28%, rgba(183,154,97,.13), transparent 19%),
        radial-gradient(ellipse at 50% 112%, #1a3828 0, #0b1b12 45%, #050c08 84%);
}

.site-footer::before {
    right: -5%;
    bottom: -32%;
    left: -5%;
    height: 62%;
    border-color: rgba(208,182,126,.13);
    animation: footerFairwayDrift 14s ease-in-out infinite;
}

.site-footer::after {
    right: -2%;
    bottom: -42%;
    left: 2%;
    height: 63%;
    border-color: rgba(255,255,255,.06);
    animation: footerFairwayDrift 18s ease-in-out -4s infinite reverse;
}

.footer-contours {
    top: 15%;
    right: 25%;
    width: 50%;
    height: 38%;
    border-color: rgba(255,255,255,.065);
    animation: footerContourDrift 16s ease-in-out infinite;
}

.footer-contours::before {
    inset: 18px 5% 22px 7%;
}

.footer-contours::after {
    inset: 38px 10% 45px 14%;
}

.footer-flag {
    top: 74px;
    right: 10%;
    opacity: .27;
    transform: rotate(6deg) scale(.85);
    animation: footerFlagSway 5s ease-in-out infinite;
}

.footer-trajectory {
    position: absolute;
    z-index: -1;
    top: 43%;
    left: 8%;
    width: 84%;
    height: 24%;
    border-top: 1px solid rgba(208,182,126,.17);
    border-radius: 50%;
    transform: rotate(-7deg);
    pointer-events: none;
    animation: footerTrajectoryReveal 1.2s .35s var(--ease) both;
}

.footer-trajectory::after {
    content: "";
    position: absolute;
    top: -1px;
    right: 8%;
    left: 8%;
    height: 100%;
    border-top: 1px solid rgba(255,255,255,.055);
    border-radius: 50%;
    transform: translateY(18px) rotate(2deg);
}

.footer-ball {
    position: absolute;
    top: -4px;
    left: 4%;
    width: 7px;
    height: 7px;
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 50%;
    background: rgba(255,255,255,.72);
    box-shadow: 0 0 12px rgba(255,255,255,.28);
    animation: footerBallFlight 8s cubic-bezier(.45,.05,.55,.95) infinite;
}

.footer-center-stage {
    position: relative;
    z-index: 2;
    min-height: 430px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 0 36px;
    border-bottom: 1px solid rgba(255,255,255,.12);
    text-align: center;
}

.footer-brand-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.footer-brand-logo {
    width: 300px;
    height: 300px;
    object-fit: contain;
    filter:
        drop-shadow(0 8px 12px rgba(0,0,0,.9))
        drop-shadow(0 0 4px rgba(208,182,126,.16));
    transform-origin: center;
}

.footer-brand-logo.reveal {
    opacity: 0;
    transform: translateY(24px) scale(.96);
    transition: opacity .8s var(--ease), transform .8s var(--ease);
}

.footer-brand-logo.reveal.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.footer-brand-copy {
    display: block;
    margin-top: -7px;
    color: var(--gold-light);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .24em;
    text-transform: uppercase;
}

.footer-nav {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 26px;
    margin-top: 34px;
}

.footer-nav a {
    color: rgba(255,255,255,.7);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    transition: color .3s ease, transform .3s var(--ease);
}

.footer-nav a:hover {
    color: var(--white);
    transform: translateY(-2px);
}

.footer-contact {
    display: block;
    margin-top: 22px;
    color: rgba(255,255,255,.48);
    font-size: 12px;
}

.footer-cta {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 20px;
    padding: 38px 0 34px;
    border: 0;
    text-align: center;
}

.footer-cta h2 {
    margin: 0;
    color: var(--white);
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(30px, 4vw, 58px);
    font-weight: 600;
    letter-spacing: .01em;
    line-height: .95;
}

.footer-cta-button {
    min-width: 190px;
    min-height: 52px;
    justify-content: center;
}

.footer-bottom {
    position: relative;
    z-index: 2;
    align-items: center;
    padding-top: 20px;
    font-size: 8px;
}

@keyframes footerBallFlight {
    0% { left: 4%; top: 0; opacity: 0; transform: scale(.65); }
    12% { opacity: .8; }
    48% { left: 50%; top: -34px; transform: scale(1); }
    82% { left: 91%; top: -2px; opacity: .34; transform: scale(.8); }
    100% { left: 96%; top: 4px; opacity: 0; }
}

@keyframes footerFairwayDrift {
    0%, 100% { transform: rotate(-4deg) translateX(0); }
    50% { transform: rotate(-2deg) translateX(18px); }
}

@keyframes footerContourDrift {
    0%, 100% { transform: rotate(-16deg) translateY(0); opacity: .7; }
    50% { transform: rotate(-13deg) translateY(8px); opacity: 1; }
}

@keyframes footerFlagSway {
    0%, 100% { transform: rotate(6deg) scale(.85); }
    50% { transform: rotate(8deg) scale(.85); }
}

@keyframes footerTrajectoryReveal {
    from { opacity: 0; transform: rotate(-7deg) scaleX(.7); }
    to { opacity: 1; transform: rotate(-7deg) scaleX(1); }
}

@media (max-width: 800px) {

    .site-footer {
        min-height: 0;
        padding: 58px 0 20px;
    }

    .site-footer::before,
    .site-footer::after {
        right: 0;
        left: 0;
    }

    .footer-contours {
        top: 15%;
        right: 10%;
        width: 80%;
        height: 24%;
    }

    .footer-flag {
        top: 50px;
        right: 2%;
        transform: rotate(6deg) scale(.62);
    }

    .footer-trajectory {
        top: 35%;
        left: 4%;
        width: 92%;
        height: 22%;
    }

    .footer-center-stage {
        min-height: 360px;
        padding-bottom: 30px;
    }

    .footer-brand-logo {
        width: 205px;
        height: 205px;
    }

    .footer-brand-copy {
        margin-top: -2px;
        font-size: 9px;
        letter-spacing: .2em;
    }

    .footer-nav {
        gap: 11px 18px;
        margin-top: 28px;
    }

    .footer-cta {
        padding: 30px 0 28px;
    }

    .footer-cta-button {
        width: min(100%, 320px);
    }

    .footer-bottom {
        align-items: center;
        flex-direction: column;
        gap: 12px;
        text-align: center;
    }

}

@media (max-width: 480px) {

    .footer-center-stage {
        min-height: 330px;
    }

    .footer-brand-logo {
        width: 180px;
        height: 180px;
    }

    .footer-nav {
        gap: 10px 14px;
    }

    .footer-nav a {
        font-size: 9px;
    }

    .footer-legal {
        gap: 14px;
    }

}

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

    .footer-contours,
    .footer-flag,
    .footer-trajectory,
    .footer-ball,
    .site-footer::before,
    .site-footer::after {
        animation: none;
    }

}


.certificate-track {

    position: relative;
    z-index: 2;
    height: 520px;

}


.certificate-item {

    position: absolute;
    top: 50%;
    left: 50%;

    width: min(54vw, 720px);
    aspect-ratio: 1600 / 1236;

    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;

    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, -50%) scale(.8);

    transition:
        opacity .65s var(--ease),
        transform .65s var(--ease),
        visibility .65s;

}


.certificate-item.is-active,
.certificate-item.is-prev,
.certificate-item.is-next {

    visibility: visible;

}


.certificate-item.is-active {

    z-index: 3;
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);

}


.certificate-item.is-prev {

    z-index: 1;
    opacity: .3;
    transform: translate(calc(-50% - 42vw), -50%) scale(.76);

}


.certificate-item.is-next {

    z-index: 1;
    opacity: .3;
    transform: translate(calc(-50% + 42vw), -50%) scale(.76);

}


.certificate-item.is-active:hover {

    transform: translate(-50%, calc(-50% - 5px)) scale(1.025);

}


.certificate-image-wrap {

    position: relative;
    display: block;
    width: 100%;
    height: 100%;

    overflow: hidden;
    border: 1px solid rgba(255,255,255,.32);
    background: #050505;
    box-shadow: 0 28px 75px rgba(0,0,0,.35);

    transition: border-color .45s ease, box-shadow .45s ease;

}


.certificate-image-wrap::after {

    content: "";
    position: absolute;
    inset: 12px;
    border: 1px solid transparent;
    pointer-events: none;
    transition: border-color .45s ease;

}


.certificate-item:hover .certificate-image-wrap {

    border-color: var(--gold-light);
    box-shadow: 0 34px 90px rgba(0,0,0,.5);

}


.certificate-item:hover .certificate-image-wrap::after {

    border-color: rgba(255,255,255,.55);

}


.certificate-image-wrap img {

    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform .55s var(--ease), filter .55s var(--ease);

}


.certificate-item:hover img {

    transform: scale(1.03);
    filter: brightness(1.06);

}


.certificate-view {

    position: absolute;
    right: 24px;
    bottom: 22px;
    z-index: 2;

    padding: 9px 12px;
    border: 1px solid rgba(255,255,255,.7);
    background: rgba(5,5,5,.7);
    color: white;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .18em;

    opacity: 0;
    transform: translateY(6px);
    transition: opacity .4s ease, transform .4s var(--ease);

}


.certificate-item:hover .certificate-view,
.certificate-item:focus-visible .certificate-view {

    opacity: 1;
    transform: translateY(0);

}


.certificate-control {

    position: absolute;
    top: 50%;
    z-index: 5;

    width: 46px;
    height: 46px;
    margin-top: -23px;

    display: grid;
    place-items: center;

    border: 1px solid rgba(255,255,255,.35);
    background: transparent;
    color: white;

    transition: background .25s ease, color .25s ease, border-color .25s ease;

}


.certificate-control:hover {

    border-color: white;
    background: white;
    color: var(--forest);

}


.certificate-prev { left: 0; }
.certificate-next { right: 0; }


.certificate-footer {

    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    margin-top: 12px;
    color: var(--gold-light);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .2em;

}


.certificate-lightbox {

    position: fixed;
    inset: 0;
    z-index: 9200;

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

    padding: 60px 100px;
    background: rgba(3,3,3,.98);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition: opacity .45s var(--ease), visibility .45s;

}


.certificate-lightbox.active {

    opacity: 1;
    visibility: visible;
    pointer-events: auto;

}


.certificate-lightbox-image,
#certificate-lightbox-image {

    max-width: 86vw;
    max-height: 86vh;
    width: auto;
    height: auto;
    object-fit: contain;

    box-shadow: 0 30px 100px rgba(0,0,0,.5);
    transform: scale(.94);
    transition: transform .6s var(--ease);

}


.certificate-lightbox.active #certificate-lightbox-image {
    transform: scale(1);
}


.certificate-lightbox-close,
.certificate-lightbox-control {

    position: absolute;
    z-index: 2;

    width: 48px;
    height: 48px;

    display: grid;
    place-items: center;

    border: 1px solid rgba(255,255,255,.35);
    background: transparent;
    color: white;

    transition: background .25s ease, color .25s ease, border-color .25s ease;

}


.certificate-lightbox-close:hover,
.certificate-lightbox-control:hover {

    border-color: white;
    background: white;
    color: #050505;

}


.certificate-lightbox-close { top: 26px; right: 28px; }
.certificate-lightbox-control { top: 50%; margin-top: -24px; }
.certificate-lightbox-prev { left: 28px; }
.certificate-lightbox-next { right: 28px; }


.certificate-lightbox-counter {

    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);

    color: rgba(255,255,255,.7);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .2em;

}


@media (max-width: 800px) {

    .certifications-section {
        padding: 105px 0 125px;
    }

    .certifications-heading {
        display: block;
        margin-bottom: 42px;
    }

    .certifications-heading p {
        margin-top: 16px;
    }

    .certificate-showcase,
    .certificate-track {
        min-height: 0;
        height: auto;
    }

    .certificate-track {
        aspect-ratio: 1.42 / 1;
    }

    .certificate-item {
        width: 100%;
        aspect-ratio: 1600 / 1236;
    }

    .certificate-item.is-prev {
        transform: translate(-120%, -50%) scale(.82);
    }

    .certificate-item.is-next {
        transform: translate(20%, -50%) scale(.82);
    }

    .certificate-trajectory {
        left: -30%;
        width: 160%;
    }

    .certificate-control {
        top: auto;
        bottom: -68px;
        margin-top: 0;
    }

    .certificate-prev { left: 0; }
    .certificate-next { right: 0; }

    .certificate-footer {
        margin-top: 92px;
    }

    .certificate-lightbox {
        padding: 60px 16px 88px;
    }

    #certificate-lightbox-image {
        max-width: 92vw;
        max-height: 78vh;
    }

    .certificate-lightbox-close { top: 16px; right: 16px; }
    .certificate-lightbox-control { top: auto; bottom: 22px; margin-top: 0; }
    .certificate-lightbox-prev { left: 16px; }
    .certificate-lightbox-next { right: 16px; }

}

.footer-brand-link {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
}

.footer-brand p {
    margin: 18px 0 0;
}


/* =========================================================
   HERO SLIDE CHAPTERS
========================================================= */

.hero-content .hero-main-slide-2,
.hero-content .hero-main-slide-3,
.hero-content .hero-main-slide-4,
.hero-content .hero-main-slide-5,
.hero-content .hero-main-slide-6 {
    display: none;
}

.hero-content[data-active-slide="2"] .hero-topline,
.hero-content[data-active-slide="3"] .hero-topline,
.hero-content[data-active-slide="4"] .hero-topline,
.hero-content[data-active-slide="5"] .hero-topline,
.hero-content[data-active-slide="6"] .hero-topline {
    opacity: 0;
}

.hero-content[data-active-slide="2"] .hero-main-slide-1,
.hero-content[data-active-slide="3"] .hero-main-slide-1,
.hero-content[data-active-slide="4"] .hero-main-slide-1,
.hero-content[data-active-slide="5"] .hero-main-slide-1,
.hero-content[data-active-slide="6"] .hero-main-slide-1 {
    display: none;
}

.hero-content[data-active-slide="2"] .hero-main-slide-2,
.hero-content[data-active-slide="3"] .hero-main-slide-3,
.hero-content[data-active-slide="4"] .hero-main-slide-4,
.hero-content[data-active-slide="5"] .hero-main-slide-5,
.hero-content[data-active-slide="6"] .hero-main-slide-6 {
    display: block;
}

.hero-slide-label {
    display: inline-block;
    color: var(--gold-light);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.hero-main-slide-2 {
    align-self: flex-end;
    width: min(70%, 820px);
    margin-top: auto;
    margin-bottom: auto;
    text-align: right;
}

.hero-title-editorial {
    margin-top: 22px;
    font-size: clamp(64px, 10vw, 150px);
    line-height: .82;
    letter-spacing: -.08em;
}

.hero-title-editorial span,
.hero-title-editorial strong {
    display: block;
}

.hero-title-editorial strong {
    color: var(--gold-light);
    font-family: "Playfair Display", Georgia, serif;
    font-style: italic;
    font-weight: 600;
    letter-spacing: -.05em;
}

.hero-main-slide-2 .hero-description {
    margin-left: auto;
}

.hero-main-slide-2 .hero-actions {
    justify-content: flex-end;
}

.hero-main-slide-3 {
    width: min(75%, 840px);
    margin-top: auto;
    margin-bottom: auto;
    margin-left: 8%;
}

.hero-title-offset {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 24px;
    font-size: clamp(54px, 8vw, 124px);
    line-height: .86;
    letter-spacing: -.07em;
}

.hero-title-offset span {
    padding-left: 9vw;
}

.hero-title-offset em {
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255,255,255,.9);
    font-family: "Playfair Display", Georgia, serif;
    font-size: .82em;
    font-style: italic;
    font-weight: 500;
}

.hero-main-slide-3 .hero-description {
    margin-left: 9vw;
}

.hero-main-slide-3 .hero-actions {
    margin-left: 9vw;
}

.hero-main-slide-4 {
    align-self: flex-end;
    width: min(62%, 700px);
    margin-top: auto;
    margin-bottom: 13%;
    text-align: right;
}

.hero-title-elegant {
    margin-top: 26px;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(60px, 8vw, 126px);
    font-weight: 500;
    letter-spacing: -.055em;l
    line-height: .84;
}

.hero-title-elegant span,
.hero-title-elegant em {
    display: block;
}

.hero-title-elegant em {
    color: var(--gold-light);
    font-style: italic;
    font-weight: 500;
}

.hero-main-slide-4 .hero-description {
    margin-left: auto;
}

.hero-main-slide-4 .hero-actions {
    justify-content: flex-end;
}

.hero-main-slide-5 {
    width: min(82%, 1000px);
    margin-top: auto;
    margin-bottom: auto;
    transform: rotate(-2deg) translateX(2%);
}

.hero-title-layered {
    margin-top: 22px;
    font-size: clamp(52px, 8.5vw, 132px);
    line-height: .82;
    letter-spacing: -.08em;
}

.hero-title-layered span,
.hero-title-layered strong {
    display: block;
}

.hero-title-layered strong {
    padding-left: 8vw;
    color: var(--gold-light);
    font-weight: 900;
}

.hero-main-slide-5 .hero-actions {
    margin-left: 8vw;
}

.hero-main-slide-6 {
    width: min(720px, 70%);
    margin: auto 0;
}

.hero-title-final {
    margin-top: 24px;
    font-size: clamp(64px, 9.5vw, 148px);
    line-height: .8;
    letter-spacing: -.08em;
}

.hero-title-final span,
.hero-title-final strong {
    display: block;
}

.hero-title-final strong {
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255,255,255,.92);
}

.hero-main-slide-6 .hero-description {
    max-width: 380px;
}

.hero-main-slide-2,
.hero-main-slide-3,
.hero-main-slide-4,
.hero-main-slide-5,
.hero-main-slide-6 {
    animation: heroChapterFade .9s var(--ease) both;
}

.hero-content[data-active-slide="2"] .hero-main-slide-2 {
    animation-name: heroEditorialReveal;
}

.hero-content[data-active-slide="3"] .hero-main-slide-3 {
    animation-name: heroStaggeredReveal;
}

.hero-content[data-active-slide="4"] .hero-main-slide-4 {
    animation-name: heroElegantReveal;
}

.hero-content[data-active-slide="5"] .hero-main-slide-5 {
    animation-name: heroDiagonalReveal;
}

.hero-content[data-active-slide="6"] .hero-main-slide-6 {
    animation-name: heroCinematicReveal;
}

.hero-content[data-active-slide="1"] .hero-main-slide-1 {
    width: min(48%, 560px);
}

.hero-content[data-active-slide="1"] .hero-title-small {
    font-size: clamp(34px, 4.2vw, 64px);
}

.hero-content[data-active-slide="1"] .hero-title-large {
    font-size: clamp(52px, 6.8vw, 104px);
}

.hero-slide[data-slide="2"] .hero-slide-overlay {
    background: linear-gradient(90deg, rgba(5,13,9,.2), rgba(5,13,9,.65));
}

.hero-slide[data-slide="3"] .hero-slide-overlay {
    background: linear-gradient(120deg, rgba(5,13,9,.78), rgba(5,13,9,.18) 68%, rgba(5,13,9,.5));
}

.hero-slide[data-slide="4"] .hero-slide-overlay {
    background: linear-gradient(90deg, rgba(5,13,9,.25), rgba(5,13,9,.76));
}

.hero-slide[data-slide="5"] .hero-slide-overlay {
    background: linear-gradient(135deg, rgba(5,13,9,.78), rgba(5,13,9,.16) 62%, rgba(5,13,9,.48));
}

.hero-slide[data-slide="6"] .hero-slide-overlay {
    background: linear-gradient(90deg, rgba(5,13,9,.8), rgba(5,13,9,.2) 65%, rgba(5,13,9,.66));
}

@keyframes heroChapterFade {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes heroEditorialReveal {
    from { opacity: 0; transform: translateX(70px) scale(.96); }
    to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes heroStaggeredReveal {
    from { opacity: 0; transform: translateY(50px); clip-path: inset(0 0 100% 0); }
    to { opacity: 1; transform: translateY(0); clip-path: inset(0); }
}

@keyframes heroElegantReveal {
    from { opacity: 0; transform: translateY(42px); filter: blur(5px); }
    to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes heroDiagonalReveal {
    from { opacity: 0; transform: rotate(-2deg) translate(-70px, 60px); clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); }
    to { opacity: 1; transform: rotate(-2deg) translateX(2%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
}

@keyframes heroCinematicReveal {
    from { opacity: 0; transform: scale(.9) translateY(30px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

@media (max-width: 800px) {

    .hero-content[data-active-slide="1"] .hero-main-slide-1 {
        width: min(58%, 300px);
    }

    .hero-content[data-active-slide="1"] .hero-title-small {
        font-size: clamp(22px, 5.8vw, 32px);
    }

    .hero-content[data-active-slide="1"] .hero-title-large {
        font-size: clamp(32px, 8.2vw, 46px);
    }

    .hero-content[data-active-slide="2"] .hero-topline,
    .hero-content[data-active-slide="3"] .hero-topline,
    .hero-content[data-active-slide="4"] .hero-topline,
    .hero-content[data-active-slide="5"] .hero-topline,
    .hero-content[data-active-slide="6"] .hero-topline {
        display: none;
    }

    .hero-slide-label {
        font-size: 8px;
        letter-spacing: .15em;
    }

    .hero-main-slide-2,
    .hero-main-slide-3,
    .hero-main-slide-4,
    .hero-main-slide-5,
    .hero-main-slide-6 {
        width: 100%;
        margin: auto 0;
    }

    .hero-main-slide-2 {
        padding-left: 12%;
        text-align: right;
    }

    .hero-title-editorial {
        font-size: clamp(48px, 13vw, 66px);
    }

    .hero-main-slide-3 {
        margin-left: 0;
    }

    .hero-title-offset {
        font-size: clamp(39px, 10.5vw, 54px);
    }

    .hero-title-offset span,
    .hero-main-slide-3 .hero-description,
    .hero-main-slide-3 .hero-actions {
        padding-left: 7vw;
        margin-left: 0;
    }

    .hero-main-slide-4 {
        padding-right: 4%;
        margin-bottom: auto;
    }

    .hero-title-elegant {
        font-size: clamp(46px, 12vw, 64px);
    }

    .hero-main-slide-5 {
        width: 104%;
        transform: rotate(-2deg) translateX(-2%);
    }

    .hero-title-layered {
        font-size: clamp(39px, 10vw, 54px);
    }

    .hero-title-layered strong,
    .hero-main-slide-5 .hero-actions {
        padding-left: 6vw;
        margin-left: 0;
    }

    .hero-main-slide-6 {
        width: 100%;
    }

    .hero-title-final {
        font-size: clamp(48px, 13vw, 68px);
    }

    .hero-main-slide-2 .hero-description,
    .hero-main-slide-4 .hero-description {
        max-width: 270px;
    }

}

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

    .hero-main-slide-2,
    .hero-main-slide-3,
    .hero-main-slide-4,
    .hero-main-slide-5,
    .hero-main-slide-6 {
        animation: none;
    }

}


/* =========================================================
   PREMIUM CREDENTIALS SHOWCASE
========================================================= */

.certifications-section {
    position: relative;
    overflow: clip;
    width: 100%;
    max-width: 100vw;
    contain: paint;
    padding: 132px 0 118px;
    background:
        radial-gradient(circle at 50% 38%, rgba(183,154,97,.13), transparent 32%),
        radial-gradient(ellipse at 50% 100%, #1a3426 0, #0d1c14 48%, #07100b 86%);
}

.certifications-section::before,
.certifications-section::after {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    border: 1px solid rgba(208,182,126,.1);
    border-radius: 50%;
}

.certifications-section::before {
    top: 28%;
    right: -12%;
    width: 72%;
    height: 54%;
    transform: rotate(-8deg);
}

.certifications-section::after {
    bottom: -24%;
    left: -18%;
    width: 70%;
    height: 58%;
    border-color: rgba(255,255,255,.05);
    transform: rotate(7deg);
}

.certifications-section .container {
    position: relative;
    z-index: 1;
}

.certifications-heading {
    display: block;
    max-width: 760px;
    margin: 0 auto 60px;
    padding-bottom: 25px;
    border-bottom-color: rgba(255,255,255,.15);
    text-align: center;
}

.certifications-heading::after {
    right: 50%;
    left: auto;
    width: 74px;
    transform: translateX(50%);
}

.certifications-heading h2 {
    margin-top: 18px;
    color: var(--white);
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(44px, 6vw, 82px);
    font-weight: 500;
    letter-spacing: -.035em;
    line-height: .94;
}

.certifications-heading p {
    margin-top: 16px;
    color: rgba(255,255,255,.62);
    font-size: 14px;
}

.certificate-showcase {
    min-height: 650px;
    overflow: visible;
}

.certificate-trajectory {
    top: 48%;
    left: 4%;
    width: 92%;
    height: 160px;
    border-top-color: rgba(208,182,126,.2);
    transform: rotate(-5deg);
}

.certificate-trajectory::after {
    background: rgba(255,255,255,.72);
}

.certificate-track {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    gap: clamp(18px, 4vw, 72px);
    height: auto;
    min-height: 590px;
    padding: 44px 2.5% 20px;
}

.certificate-item,
.certificate-item.is-active,
.certificate-item.is-prev,
.certificate-item.is-next {
    position: relative;
    inset: auto;
    width: 100%;
    aspect-ratio: 1600 / 1236;
    padding: 12px;
    visibility: visible;
    opacity: 1;
    transform: translateY(34px);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 3px;
    background: linear-gradient(145deg, rgba(255,255,255,.1), rgba(255,255,255,.025));
    box-shadow: 0 25px 60px rgba(0,0,0,.32);
    cursor: pointer;
    transition: opacity .8s var(--ease), transform .55s var(--ease), box-shadow .45s ease, border-color .45s ease;
}

.certificate-item-1 {
    margin-top: 72px;
}

.certificate-item-2 {
    z-index: 2;
    margin-top: -42px;
    transform: translateY(34px) scale(1.08);
}

.certificate-item-3 {
    margin-top: 72px;
}

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

.certificate-item-2.reveal.visible {
    transform: translateY(0) scale(1.08);
}

.certificate-item:hover,
.certificate-item:focus-visible {
    z-index: 4;
    border-color: rgba(208,182,126,.75);
    box-shadow: 0 35px 78px rgba(0,0,0,.52);
    transform: translateY(-8px) scale(1.025);
    outline: none;
}

.certificate-item-2:hover,
.certificate-item-2:focus-visible {
    transform: translateY(-8px) scale(1.105);
}

.certificate-image-wrap {
    height: 100%;
    border-color: rgba(255,255,255,.24);
    background: #111a14;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.24);
}

.certificate-image-wrap::after {
    inset: 10px;
    border-color: rgba(255,255,255,.08);
    transition: border-color .45s ease;
}

.certificate-item::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,.2) 50%, transparent 65%);
    transform: translateX(-120%);
    transition: transform .7s var(--ease);
}

.certificate-item:hover::after,
.certificate-item:focus-visible::after {
    transform: translateX(120%);
}

.certificate-item:hover .certificate-image-wrap::after,
.certificate-item:focus-visible .certificate-image-wrap::after {
    border-color: rgba(255,255,255,.4);
}

.certificate-view {
    right: 20px;
    bottom: 18px;
    padding: 8px 10px;
    background: rgba(5,10,7,.82);
}

.certificate-control {
    top: auto;
    bottom: -4px;
    width: 44px;
    height: 44px;
    margin: 0;
    border-color: rgba(255,255,255,.28);
    background: rgba(5,10,7,.35);
}

.certificate-prev { left: 2.5%; }
.certificate-next { right: 2.5%; }

.certificate-footer {
    margin-top: 4px;
    color: var(--gold-light);
}

.certificate-lightbox {
    background: rgba(3,8,5,.97);
    backdrop-filter: blur(10px);
}

.certificate-lightbox-image,
#certificate-lightbox-image {
    max-width: 88vw;
    max-height: 88vh;
    border: 1px solid rgba(255,255,255,.2);
    box-shadow: 0 35px 110px rgba(0,0,0,.65);
}

@media (max-width: 800px) {

    .certifications-section {
        padding: 92px 0 106px;
    }

    .certifications-section::before,
    .certifications-section::after {
        display: none;
    }

    .certifications-heading {
        margin-bottom: 34px;
    }

    .certifications-heading h2 {
        font-size: clamp(38px, 11vw, 60px);
    }

    .certificate-showcase {
        min-height: 0;
    }

    .certificate-track {
        grid-template-columns: 1fr;
        gap: 24px;
        min-height: 0;
        padding: 18px 8% 68px;
    }

    .certificate-item,
    .certificate-item.is-active,
    .certificate-item.is-prev,
    .certificate-item.is-next,
    .certificate-item-1,
    .certificate-item-2,
    .certificate-item-3 {
        width: 100%;
        margin: 0;
        transform: translateY(30px);
    }

    .certificate-item-2.reveal.visible {
        transform: translateY(0);
    }

    .certificate-item-2:hover,
    .certificate-item-2:focus-visible {
        transform: translateY(-7px) scale(1.02);
    }

    .certificate-control {
        bottom: 0;
    }

    .certificate-prev { left: 8%; }
    .certificate-next { right: 8%; }

    .certificate-footer {
        margin-top: 38px;
    }

    .certificate-lightbox {
        padding: 54px 14px 78px;
    }

    .certificate-lightbox-image,
    #certificate-lightbox-image {
        max-width: 94vw;
        max-height: 78vh;
    }

}


/* =========================================================
   CERTIFICATION RESPONSIVE OVERRIDES
========================================================= */

.certificate-showcase {

    width: 100%;
    min-width: 0;
    overflow: visible;

}


.certificate-track {

    width: 100%;
    min-width: 0;
    box-sizing: border-box;

}


.certificate-item {

    box-sizing: border-box;
    min-width: 0;
    overflow: hidden;

}


.certificate-image-wrap,
.certificate-image-wrap img {

    box-sizing: border-box;
    max-width: 100%;

}


@media (max-width: 800px) {

    .certifications-section .container {
        width: min(100% - 32px, 560px);
    }

    .certificate-showcase {
        padding-bottom: 62px;
    }

    .certificate-track {
        display: flex;
        width: 100%;
        height: auto;
        min-height: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 22px;
        padding: 0;
    }

    .certificate-item,
    .certificate-item.is-active,
    .certificate-item.is-prev,
    .certificate-item.is-next {
        position: relative;
        inset: auto;
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        aspect-ratio: 1600 / 1236;
        margin: 0;
        padding: 8px;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .certificate-item-2.reveal.visible,
    .certificate-item-2:hover,
    .certificate-item-2:focus-visible {
        transform: none;
    }

    .certificate-image-wrap {
        width: 100%;
        height: 100%;
    }

    .certificate-image-wrap img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    .certificate-view {
        right: 14px;
        bottom: 14px;
        opacity: 1;
        transform: none;
    }

    .certificate-control {
        top: auto;
        bottom: 0;
        width: 42px;
        height: 42px;
        margin: 0;
    }

    .certificate-prev {
        left: 0;
    }

    .certificate-next {
        right: 0;
    }

    .certificate-footer {
        margin-top: 18px;
    }

}


@media (min-width: 801px) {

    .certificate-item {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .certificate-item-2 {
        transform: translateY(0) scale(1.08);
    }

}


.logo-transition {

    position: fixed;

    inset: 0;

    z-index: 9999;

    display: grid;

    place-items: center;

    background: var(--forest);

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        opacity 1.1s var(--ease),
        visibility 1.1s;

}


.logo-transition.active {

    opacity: 1;

    visibility: visible;

}


.logo-transition-image {

    width: min(280px, 48vw);

    transform: scale(1.9);

    opacity: 0;

}


.logo-transition.active .logo-transition-image {

    animation:
        logoTransitionIn 1.1s var(--ease) both;

}


@keyframes logoTransitionIn {

    from {

        transform: scale(1.9);

        opacity: 0;

    }

    to {

        transform: scale(1);

        opacity: 1;

    }

}


/* =========================================================
   LANGUAGE SELECTOR
========================================================= */

.header-actions {
    position: relative;
    z-index: 20;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 14px;
}

.language-toggle {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.lang-option {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 9px;
    background: transparent;
    color: rgba(255, 255, 255, 0.7);
    font-family: "Manrope", sans-serif;
    font-size: 9px;
    font-weight: 700;
    transition: background 0.25s ease, color 0.25s ease;
}

.lang-option:hover,
.lang-option.active {
    background: rgba(255, 255, 255, 0.13);
    color: #ffffff;
}

.lang-option:focus-visible {
    outline: 1px solid var(--gold-light);
    outline-offset: 2px;
}

.lang-text {
    white-space: nowrap;
}

.flag {
    position: relative;
    flex: 0 0 18px;
    width: 18px;
    height: 12px;
    overflow: hidden;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.24);
}

.flag-uk {
    background:
        linear-gradient(28deg, transparent 40%, #fff 41%, #fff 46%, #c8102e 47%, #c8102e 53%, #fff 54%, #fff 59%, transparent 60%),
        linear-gradient(-28deg, transparent 40%, #fff 41%, #fff 46%, #c8102e 47%, #c8102e 53%, #fff 54%, #fff 59%, transparent 60%),
        linear-gradient(90deg, transparent 39%, #fff 39%, #fff 61%, transparent 61%),
        linear-gradient(transparent 30%, #fff 30%, #fff 70%, transparent 70%),
        linear-gradient(90deg, transparent 45%, #c8102e 45%, #c8102e 55%, transparent 55%),
        linear-gradient(transparent 39%, #c8102e 39%, #c8102e 61%, transparent 61%),
        #012169;
}

.flag-qatar {
    background: #8a1538;
}

.flag-qatar::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 39%;
    background: #ffffff;
    clip-path: polygon(0 0, 100% 0, 83% 10%, 100% 20%, 83% 30%, 100% 40%, 83% 50%, 100% 60%, 83% 70%, 100% 80%, 83% 90%, 100% 100%, 0 100%);
}


/* =========================================================
   ARABIC DIRECTION AND TYPE
========================================================= */

body.rtl-mode {
    font-family: "Noto Naskh Arabic", "DM Sans", sans-serif;
    line-height: 1.8;
}

.rtl-mode .display-title,
.rtl-mode .section-heading h2,
.rtl-mode .feature-content h2,
.rtl-mode .contact-heading h2,
.rtl-mode .yearly-package-heading h2 {
    font-family: "Noto Naskh Arabic", serif;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.35;
}

.rtl-mode .display-title {
    font-size: clamp(42px, 5.4vw, 78px);
}

.rtl-mode .section-heading h2 {
    font-size: clamp(40px, 5.3vw, 76px);
}

.rtl-mode .eyebrow,
.rtl-mode .nav-link,
.rtl-mode .header-cta,
.rtl-mode .footer-brand-copy,
.rtl-mode .footer-cta h2 {
    letter-spacing: 0;
    text-transform: none;
}

.rtl-mode .section-heading,
.rtl-mode .hero-content,
.rtl-mode .about-content,
.rtl-mode .coaching-copy,
.rtl-mode .coaching-card,
.rtl-mode .contact-heading,
.rtl-mode .yearly-package-dialog-content {
    text-align: right;
}

.rtl-mode .section-heading::after {
    right: 0;
    left: auto;
}

.rtl-mode .hero-topline {
    direction: rtl;
}

.rtl-mode .hero-location {
    margin-right: 5px;
    margin-left: 0;
}

.rtl-mode .hero-title {
    letter-spacing: 0;
    line-height: 1.3;
}

.rtl-mode .hero-description {
    line-height: 1.9;
}

.rtl-mode .hero-actions {
    justify-content: flex-start;
}

.rtl-mode .hero-bottom {
    direction: ltr;
}

.rtl-mode .feature-content {
    right: 7%;
    left: auto;
    text-align: right;
}

.rtl-mode .mobile-menu-top,
.rtl-mode .mobile-menu-bottom {
    letter-spacing: 0;
}

.rtl-mode .mobile-menu-link {
    letter-spacing: 0;
    line-height: 1.5;
}

.rtl-mode .mobile-menu-link:hover {
    padding-right: 6px;
    padding-left: 0;
}

.rtl-mode .plan-features li,
.rtl-mode .yearly-package-features li {
    text-align: right;
}

.rtl-mode .footer-nav {
    direction: rtl;
}

@media (max-width: 800px) {
    .header-actions {
        justify-self: auto;
        gap: 0;
    }

    .lang-option {
        min-height: 30px;
        gap: 5px;
        padding: 0 7px;
        font-size: 8px;
    }

    .flag {
        flex-basis: 16px;
        width: 16px;
        height: 11px;
    }

    .rtl-mode .display-title,
    .rtl-mode .section-heading h2 {
        font-size: clamp(36px, 9vw, 58px);
    }

    .rtl-mode .feature-content {
        right: 18px;
    }
}

@media (max-width: 380px) {
    .header-actions {
        margin-inline: auto 0;
    }

    .lang-option {
        padding: 0 5px;
    }
}
/* =========================================================
   FINAL POLISH
========================================================= */

.loader-role {
    margin-top: 4px;
}

.loader-content {
    text-align: center;
}

.loader-logo + .loader-role {
    letter-spacing: .22em;
}

.yearly-price-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(16px, 3vw, 36px);
    margin-top: 14px;
}

.yearly-price-main > div:not(.yearly-price-separator) {
    display: flex;
    align-items: baseline;
    gap: 9px;
    flex-wrap: wrap;
}

.yearly-price-main small {
    color: var(--gold-light);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .18em;
}

.yearly-price-main strong {
    font-size: clamp(32px, 5vw, 58px);
    letter-spacing: -.045em;
}

.yearly-price-main span {
    color: var(--muted-light);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
}

.yearly-price-separator {
    color: var(--gold);
    font-size: 28px;
}

.currency-converter {
    width: min(100%, 760px);
    margin: 26px auto 0;
    padding: 22px;
    border: 1px solid rgba(183,154,97,.24);
    background: rgba(255,255,255,.035);
    backdrop-filter: blur(12px);
}

.currency-converter-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
}

.currency-converter-head > span {
    color: var(--white);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.currency-converter-head small,
.currency-converter-note {
    color: var(--muted-light);
    font-size: 10px;
    letter-spacing: .08em;
}

.currency-converter-fields {
    display: grid;
    grid-template-columns: 1fr 48px 1fr;
    align-items: end;
    gap: 14px;
}

.currency-field label {
    display: block;
    margin-bottom: 7px;
    color: var(--gold-light);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .18em;
}

.currency-field input {
    width: 100%;
    min-height: 54px;
    padding: 0 15px;
    border: 1px solid rgba(255,255,255,.14);
    outline: none;
    background: rgba(0,0,0,.2);
    color: var(--white);
    font: 600 15px "Manrope", sans-serif;
    transition: border-color .25s ease, background .25s ease;
}

.currency-field input:focus {
    border-color: var(--gold);
    background: rgba(255,255,255,.06);
}

.currency-swap {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(183,154,97,.4);
    background: transparent;
    color: var(--gold-light);
    cursor: pointer;
    transition: transform .3s var(--ease), background .3s ease, color .3s ease;
}

.currency-swap:hover {
    transform: rotate(180deg);
    background: var(--gold);
    color: var(--forest);
}

.currency-converter-note {
    margin-top: 13px;
}

.video-section {
    padding: clamp(80px, 10vw, 140px) 0;
    overflow: hidden;
}

.video-heading {
    max-width: 760px;
    margin-bottom: 42px;
}

.video-heading h2 {
    margin-top: 15px;
    color: var(--white);
    font-family: "Cormorant Garamond", "Playfair Display", serif;
    font-size: clamp(48px, 7vw, 92px);
    font-weight: 500;
    line-height: .9;
    letter-spacing: -.04em;
}

.video-heading p {
    max-width: 620px;
    margin-top: 22px;
    color: var(--muted-light);
    font-size: 15px;
    line-height: 1.8;
}

.video-showcase {
    width: 100%;
}

.video-frame {
    position: relative;
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.1);
    background: #070c09;
    box-shadow: 0 30px 90px rgba(0,0,0,.28);
}

.coach-video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    background: #070c09;
    object-fit: contain;
}

.video-corner {
    position: absolute;
    width: 42px;
    height: 42px;
    pointer-events: none;
    border-color: rgba(183,154,97,.8);
}

.video-corner-tl {
    top: 14px;
    left: 14px;
    border-top: 1px solid;
    border-left: 1px solid;
}

.video-corner-br {
    right: 14px;
    bottom: 14px;
    border-right: 1px solid;
    border-bottom: 1px solid;
}

.video-meta {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 14px;
    color: rgba(255,255,255,.46);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

@media (max-width: 700px) {
    .loader-logo {
        width: 135px;
    }

    .loader-logo-wrap {
        margin-bottom: 24px;
    }

    .yearly-price-main {
        flex-direction: column;
        gap: 10px;
    }

    .yearly-price-main > div:not(.yearly-price-separator) {
        justify-content: center;
    }

    .yearly-price-separator {
        display: none;
    }

    .currency-converter {
        padding: 17px;
    }

    .currency-converter-fields {
        grid-template-columns: 1fr;
    }

    .currency-swap {
        justify-self: center;
        transform: rotate(90deg);
    }

    .currency-swap:hover {
        transform: rotate(270deg);
    }

    .video-heading h2 {
        font-size: clamp(44px, 14vw, 66px);
    }

    .video-meta {
        flex-direction: column;
        gap: 8px;
        line-height: 1.5;
    }
}

@media (max-width: 768px) {
    .hero-slide img {
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
        background: #0d1712;
    }

    .hero-slide.active img {
        animation: heroZoomMobile 6s var(--ease) forwards;
    }

    @keyframes heroZoomMobile {
        from {
            transform: scale(1.015);
        }
        to {
            transform: scale(1);
        }
    }
}
