
/* =========================================================
   JORDEN PAGE BASKETBALL ACADEMY
   Main Site Stylesheet
   File: /frontend/themes/yumpress/templates/jorden/css/styles.css
   ========================================================= */

/* ---------------------------------------------------------
   THEME TOKENS
   --------------------------------------------------------- */

:root{
    --jpba-primary: var(--theme-primary, #d7a100);
    --jpba-primary-strong: var(--theme-primary-strong, #b88900);
    --jpba-secondary: var(--theme-secondary, #151515);

    --jpba-dark: var(--theme-dark, #080808);
    --jpba-dark-soft: var(--theme-dark-soft, #141414);

    --jpba-light: var(--theme-light, #ffffff);
    --jpba-body: var(--theme-body, #ffffff);
    --jpba-surface: var(--theme-surface, #f6f6f4);
    --jpba-card: var(--theme-card, #ffffff);

    --jpba-text: var(--theme-text, #151515);
    --jpba-muted: var(--theme-muted, #6e6e6e);
    --jpba-border: var(--theme-border, #e4e4e1);

    --jpba-radius-sm: 14px;
    --jpba-radius: 24px;
    --jpba-radius-lg: 34px;

    --jpba-shadow-sm: 0 8px 24px rgba(0,0,0,.08);
    --jpba-shadow: 0 18px 48px rgba(0,0,0,.13);
    --jpba-shadow-lg: 0 28px 70px rgba(0,0,0,.18);

    --jpba-container: 1180px;
    --jpba-transition: .22s ease;
}


/* ---------------------------------------------------------
   RESET / BASE
   --------------------------------------------------------- */

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

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    padding:0;
    background:var(--jpba-body);
    color:var(--jpba-text);
    font-family:Arial, Helvetica, sans-serif;
    line-height:1.55;
    overflow-x:hidden;
}

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

a{
    color:inherit;
}

.jpba-shell{
    width:100%;
    overflow:hidden;
}

.jpba-container{
    width:min(var(--jpba-container), calc(100% - 40px));
    margin:0 auto;
}

.jpba-section{
    padding:96px 0;
}

.jpba-section-sm{
    padding:72px 0;
}

.jpba-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin:0 0 16px;
    color:var(--jpba-primary);
    font-size:.76rem;
    line-height:1;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.jpba-eyebrow::before{
    content:"";
    width:30px;
    height:2px;
    background:var(--jpba-primary);
    flex:0 0 auto;
}

.jpba-title{
    margin:0;
    max-width:900px;
    color:var(--jpba-text);
    font-size:clamp(2.45rem, 5vw, 5rem);
    line-height:.96;
    font-weight:900;
    letter-spacing:-.055em;
}

.jpba-subtitle{
    max-width:760px;
    margin:22px 0 0;
    color:var(--jpba-muted);
    font-size:clamp(1rem, 1.5vw, 1.18rem);
    line-height:1.8;
}


/* ---------------------------------------------------------
   BUTTONS
   --------------------------------------------------------- */

.jpba-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:52px;
    padding:0 25px;
    border:1px solid transparent;
    border-radius:999px;
    text-decoration:none;
    font-size:.95rem;
    font-weight:800;
    line-height:1;
    cursor:pointer;
    transition:
        transform var(--jpba-transition),
        box-shadow var(--jpba-transition),
        background var(--jpba-transition),
        color var(--jpba-transition),
        border-color var(--jpba-transition);
}

.jpba-btn:hover{
    transform:translateY(-2px);
    text-decoration:none;
}

.jpba-btn-primary{
    background:var(--jpba-primary);
    color:var(--jpba-dark);
    box-shadow:0 12px 26px rgba(215,161,0,.28);
}

.jpba-btn-primary:hover{
    background:var(--jpba-primary-strong);
    color:var(--jpba-light);
}

.jpba-btn-outline{
    border-color:rgba(255,255,255,.55);
    color:var(--jpba-light);
    background:rgba(255,255,255,.05);
    backdrop-filter:blur(8px);
}

.jpba-btn-outline:hover{
    background:var(--jpba-light);
    color:var(--jpba-dark);
    border-color:var(--jpba-light);
}

.jpba-btn-soft{
    background:#fff7dc;
    color:var(--jpba-dark);
    border-color:#ead79b;
}

.jpba-btn-soft:hover{
    background:var(--jpba-primary);
    color:var(--jpba-dark);
    border-color:var(--jpba-primary);
}



/* ---------------------------------------------------------
   SITE HEADER / NAVIGATION
   --------------------------------------------------------- */

.jpba-site-header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:10000;
    background:rgba(8,8,8,.90);
    border-bottom:1px solid rgba(255,255,255,.10);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
}

.jpba-nav{
    min-height:82px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}

.jpba-brand{
    display:inline-flex;
    align-items:center;
    gap:12px;
    min-width:max-content;
    color:var(--jpba-light);
    text-decoration:none;
}

.jpba-brand:hover{
    color:var(--jpba-light);
    text-decoration:none;
}


.jpba-brand-logo{
    display:block;
    width:72px;
    height:72px;
    object-fit:contain;
}

.jpba-footer-logo{
    display:block;
    width:118px;
    height:118px;
    object-fit:contain;
}

.jpba-brand-mark{
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border-radius:50%;
    background:var(--jpba-primary);
    color:var(--jpba-dark);
    font-size:1rem;
    line-height:1;
    font-weight:900;
    letter-spacing:-.05em;
}

.jpba-brand-copy{
    display:flex;
    flex-direction:column;
    line-height:1;
}

.jpba-brand-copy strong{
    color:var(--jpba-light);
    font-size:1rem;
    line-height:1.05;
    font-weight:900;
    letter-spacing:-.02em;
}

.jpba-brand-copy small{
    margin-top:5px;
    color:rgba(255,255,255,.58);
    font-size:.66rem;
    line-height:1;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.jpba-menu{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
}

.jpba-menu > a{
    display:inline-flex;
    align-items:center;
    min-height:42px;
    padding:0 12px;
    border-radius:999px;
    color:rgba(255,255,255,.82);
    text-decoration:none;
    font-size:.86rem;
    line-height:1;
    font-weight:800;
    white-space:nowrap;
    transition:
        color var(--jpba-transition),
        background var(--jpba-transition),
        transform var(--jpba-transition);
}

.jpba-menu > a:hover{
    background:rgba(255,255,255,.08);
    color:var(--jpba-light);
    text-decoration:none;
}

.jpba-menu > a.jpba-menu-cta{
    margin-left:7px;
    padding:0 18px;
    background:var(--jpba-primary);
    color:var(--jpba-dark);
}

.jpba-menu > a.jpba-menu-cta:hover{
    background:var(--jpba-primary-strong);
    color:var(--jpba-light);
    transform:translateY(-1px);
}

.jpba-menu-toggle{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.jpba-menu-button{
    display:none;
    width:46px;
    height:46px;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:12px;
    cursor:pointer;
    background:rgba(255,255,255,.05);
}

.jpba-menu-button span{
    display:block;
    width:20px;
    height:2px;
    border-radius:999px;
    background:var(--jpba-light);
}


/* ---------------------------------------------------------
   HERO
   --------------------------------------------------------- */

.jpba-hero{
    position:relative;
    min-height:790px;
    display:flex;
    align-items:flex-end;
    isolation:isolate;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.88) 0%,
            rgba(0,0,0,.70) 38%,
            rgba(0,0,0,.30) 68%,
            rgba(0,0,0,.12) 100%
        ),
        linear-gradient(
            0deg,
            rgba(0,0,0,.72) 0%,
            rgba(0,0,0,.02) 55%
        ),
        url('https://www.jordenpagebasketball.com/frontend/themes/yumpress/templates/jorden/images/jordenhero.png') center 24% / cover no-repeat;
}

.jpba-hero::after{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:130px;
    background:linear-gradient(to top, rgba(0,0,0,.48), transparent);
    z-index:-1;
}

.jpba-hero-inner{
    width:100%;
    padding:184px 0 78px;
    color:var(--jpba-light);
}

.jpba-hero-kicker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
    color:var(--jpba-primary);
    font-size:.8rem;
    line-height:1;
    font-weight:900;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.jpba-hero-kicker::before{
    content:"";
    width:32px;
    height:2px;
    background:var(--jpba-primary);
}

.jpba-hero h1{
    margin:0;
    max-width:980px;
    color:var(--jpba-light);
    font-size:clamp(3.5rem, 8.8vw, 8.2rem);
    line-height:.84;
    font-weight:900;
    letter-spacing:-.068em;
    text-wrap:balance;
}

.jpba-hero p{
    max-width:760px;
    margin:28px 0 0;
    color:rgba(255,255,255,.84);
    font-size:clamp(1.06rem, 1.8vw, 1.35rem);
    line-height:1.7;
}

.jpba-hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:32px;
}

.jpba-hero-points{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    max-width:860px;
    margin-top:48px;
}

.jpba-hero-point{
    display:flex;
    align-items:center;
    min-height:62px;
    padding:15px 18px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:var(--jpba-radius-sm);
    background:rgba(9,9,9,.46);
    color:var(--jpba-light);
    font-size:.92rem;
    font-weight:800;
    backdrop-filter:blur(10px);
}


/* ---------------------------------------------------------
   INTRO / COACHING IMAGE
   --------------------------------------------------------- */

.jpba-intro-grid{
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    gap:72px;
    align-items:center;
}

.jpba-intro-card{
    position:relative;
    min-height:540px;
    overflow:hidden;
    border-radius:var(--jpba-radius-lg);
    background:
        linear-gradient(to top, rgba(0,0,0,.38), transparent 48%),
        url('https://www.jordenpagebasketball.com/frontend/themes/yumpress/templates/jorden/images/jorden-coaching.jpg') center / cover no-repeat;
    box-shadow:var(--jpba-shadow-lg);
}

.jpba-intro-card::after{
    content:"JPBA";
    position:absolute;
    left:22px;
    bottom:18px;
    color:rgba(255,255,255,.92);
    font-size:clamp(2.5rem, 6vw, 5.8rem);
    line-height:.8;
    font-weight:900;
    letter-spacing:-.08em;
}


/* ---------------------------------------------------------
   PACKAGES
   --------------------------------------------------------- */

.jpba-packages{
    background:var(--jpba-surface);
}

.jpba-package-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
    margin-top:46px;
}

.jpba-package-card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-height:340px;
    padding:30px;
    overflow:hidden;
    border:1px solid var(--jpba-border);
    border-radius:var(--jpba-radius);
    background:var(--jpba-card);
    box-shadow:var(--jpba-shadow-sm);
    transition:
        transform var(--jpba-transition),
        box-shadow var(--jpba-transition),
        border-color var(--jpba-transition);
}

.jpba-package-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:4px;
    background:var(--jpba-primary);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform var(--jpba-transition);
}

.jpba-package-card:hover{
    transform:translateY(-6px);
    border-color:#d7b849;
    box-shadow:var(--jpba-shadow);
}

.jpba-package-card:hover::before{
    transform:scaleX(1);
}

.jpba-package-card.featured{
    background:
        linear-gradient(
            140deg,
            #fff9e8,
            var(--jpba-card)
        );
    border-color:#d7b64b;
}

.jpba-package-tag{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    margin-bottom:18px;
    color:var(--jpba-primary-strong);
    font-size:.72rem;
    line-height:1.25;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.jpba-package-card h3{
    margin:0;
    color:var(--jpba-text);
    font-size:1.55rem;
    line-height:1.08;
    font-weight:900;
    letter-spacing:-.025em;
}

.jpba-package-card p{
    margin:16px 0 26px;
    color:var(--jpba-muted);
    font-size:.98rem;
    line-height:1.7;
}

.jpba-package-card .jpba-btn{
    margin-top:auto;
    align-self:flex-start;
}


/* ---------------------------------------------------------
   DEVELOPMENT METHOD
   --------------------------------------------------------- */

.jpba-method-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
    margin-top:46px;
}

.jpba-method-card{
    position:relative;
    min-height:250px;
    padding:30px 26px;
    overflow:hidden;
    border-radius:var(--jpba-radius);
    background:var(--jpba-dark);
    color:var(--jpba-light);
}

.jpba-method-card::after{
    content:"";
    position:absolute;
    right:-34px;
    bottom:-34px;
    width:120px;
    height:120px;
    border-radius:50%;
    background:rgba(215,161,0,.18);
}

.jpba-method-number{
    color:var(--jpba-primary);
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.16em;
}

.jpba-method-card h3{
    margin:18px 0 10px;
    color:var(--jpba-light);
    font-size:1.7rem;
    line-height:1;
    font-weight:900;
}

.jpba-method-card p{
    margin:0;
    color:rgba(255,255,255,.68);
    line-height:1.65;
}


/* ---------------------------------------------------------
   FIND YOUR PATH
   --------------------------------------------------------- */

.jpba-path-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-top:40px;
}

.jpba-path-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    min-height:92px;
    padding:20px 22px;
    border:1px solid var(--jpba-border);
    border-radius:var(--jpba-radius-sm);
    background:var(--jpba-card);
    color:var(--jpba-text);
    text-decoration:none;
    box-shadow:0 5px 16px rgba(0,0,0,.04);
    transition:
        transform var(--jpba-transition),
        border-color var(--jpba-transition),
        box-shadow var(--jpba-transition);
}

.jpba-path-item:hover{
    transform:translateX(4px);
    border-color:var(--jpba-primary);
    box-shadow:var(--jpba-shadow-sm);
    text-decoration:none;
}

.jpba-path-item strong{
    display:block;
    margin-bottom:4px;
    color:var(--jpba-text);
    font-size:1rem;
    line-height:1.3;
}

.jpba-path-item span{
    color:var(--jpba-muted);
    font-size:.92rem;
}

.jpba-path-arrow{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border-radius:50%;
    background:#fff5d6;
    color:var(--jpba-primary-strong);
    font-size:1.35rem;
    transition:background var(--jpba-transition), color var(--jpba-transition);
}

.jpba-path-item:hover .jpba-path-arrow{
    background:var(--jpba-primary);
    color:var(--jpba-dark);
}


.jpba-path-arrow::before{
    content:"\2192";
    display:block;
    line-height:1;
}


/* ---------------------------------------------------------
   ABOUT
   --------------------------------------------------------- */

.jpba-about{
    position:relative;
    background:
        radial-gradient(
            circle at 85% 15%,
            rgba(215,161,0,.12),
            transparent 30%
        ),
        var(--jpba-dark);
    color:var(--jpba-light);
}

.jpba-about .jpba-title{
    color:var(--jpba-light);
}

.jpba-about .jpba-subtitle{
    color:rgba(255,255,255,.72);
}

.jpba-about-grid{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    gap:64px;
    align-items:center;
}

.jpba-about-image{
    min-height:580px;
    border-radius:var(--jpba-radius-lg);
    background:
        linear-gradient(to top, rgba(0,0,0,.38), transparent 52%),
        url('https://www.jordenpagebasketball.com/uploads//27fe2e0923501df2c7f0b9edfd55ca4782866/1746630715681b783bb23958-80348688_New_Project_(1).jpg') center / cover no-repeat;
    box-shadow:0 24px 70px rgba(0,0,0,.35);
}


/* ---------------------------------------------------------
   FINAL CTA
   --------------------------------------------------------- */

.jpba-final-cta{
    position:relative;
    overflow:hidden;
    padding:84px 0;
    background:var(--jpba-primary);
    color:var(--jpba-dark);
}

.jpba-final-cta::before{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    right:-150px;
    top:-190px;
    border:1px solid rgba(0,0,0,.10);
    border-radius:50%;
}

.jpba-final-grid{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:50px;
}

.jpba-final-grid h2{
    margin:0;
    max-width:760px;
    color:var(--jpba-dark);
    font-size:clamp(2.2rem,4.5vw,4.6rem);
    line-height:.95;
    font-weight:900;
    letter-spacing:-.055em;
}

.jpba-final-grid p{
    max-width:700px;
    margin:18px 0 0;
    color:rgba(8,8,8,.76);
    font-size:1rem;
    line-height:1.7;
}

.jpba-final-cta .jpba-btn{
    flex:0 0 auto;
    background:var(--jpba-dark);
    color:var(--jpba-light);
    box-shadow:0 14px 30px rgba(0,0,0,.18);
}

.jpba-final-cta .jpba-btn:hover{
    background:var(--jpba-light);
    color:var(--jpba-dark);
}


/* ---------------------------------------------------------
   GENERIC PAGE HERO
   For About / Packages / Individual / Group / Team etc.
   --------------------------------------------------------- */

.jpba-page-hero{
    position:relative;
    min-height:460px;
    display:flex;
    align-items:flex-end;
    padding:150px 0 64px;
    background:
        linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.38)),
        var(--jpba-dark);
    color:var(--jpba-light);
}

.jpba-page-hero h1{
    margin:0;
    max-width:900px;
    color:var(--jpba-light);
    font-size:clamp(3rem,7vw,6.5rem);
    line-height:.9;
    font-weight:900;
    letter-spacing:-.06em;
}

.jpba-page-hero p{
    max-width:720px;
    margin:22px 0 0;
    color:rgba(255,255,255,.76);
    font-size:1.1rem;
    line-height:1.7;
}


/* ---------------------------------------------------------
   CONTENT PAGE UTILITIES
   --------------------------------------------------------- */

.jpba-content-grid{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);
    gap:56px;
    align-items:start;
}

.jpba-content h2,
.jpba-content h3{
    color:var(--jpba-text);
    line-height:1.08;
    letter-spacing:-.03em;
}

.jpba-content h2{
    font-size:clamp(2rem,4vw,3.6rem);
    margin:0 0 18px;
}

.jpba-content h3{
    font-size:1.5rem;
    margin:34px 0 12px;
}

.jpba-content p,
.jpba-content li{
    color:var(--jpba-muted);
    line-height:1.8;
}

.jpba-content ul{
    padding-left:20px;
}

.jpba-info-card{
    padding:28px;
    border:1px solid var(--jpba-border);
    border-radius:var(--jpba-radius);
    background:var(--jpba-card);
    box-shadow:var(--jpba-shadow-sm);
}

.jpba-info-card h3{
    margin-top:0;
}

.jpba-check-list{
    list-style:none;
    padding:0;
    margin:22px 0 0;
}

.jpba-check-list li{
    position:relative;
    padding:12px 0 12px 30px;
    border-bottom:1px solid var(--jpba-border);
}

.jpba-check-list li:last-child{
    border-bottom:0;
}

.jpba-check-list li::before{
    content:"\2713";
    position:absolute;
    left:0;
    top:12px;
    color:var(--jpba-primary-strong);
    font-weight:900;
}


/* ---------------------------------------------------------
   SIMPLE ENQUIRY FORM
   --------------------------------------------------------- */

.jpba-form{
    display:grid;
    gap:16px;
}

.jpba-form-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.jpba-form-group{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.jpba-form label{
    color:var(--jpba-text);
    font-size:.88rem;
    font-weight:800;
}

.jpba-form input,
.jpba-form select,
.jpba-form textarea{
    width:100%;
    min-height:52px;
    padding:12px 14px;
    border:1px solid var(--jpba-border);
    border-radius:12px;
    background:var(--jpba-card);
    color:var(--jpba-text);
    font:inherit;
    outline:none;
    transition:border-color var(--jpba-transition), box-shadow var(--jpba-transition);
}

.jpba-form textarea{
    min-height:140px;
    resize:vertical;
}

.jpba-form input:focus,
.jpba-form select:focus,
.jpba-form textarea:focus{
    border-color:var(--jpba-primary);
    box-shadow:0 0 0 3px rgba(215,161,0,.16);
}


/* ---------------------------------------------------------
   SITE FOOTER
   --------------------------------------------------------- */

.jpba-site-footer{
    background:var(--jpba-dark);
    color:var(--jpba-light);
    padding:56px 0 22px;
    border-top:1px solid rgba(255,255,255,.08);
}

.jpba-footer-main{
    display:grid;
    grid-template-columns:minmax(260px,1.15fr) minmax(320px,1fr) minmax(280px,.85fr);
    gap:54px;
    align-items:start;
}

.jpba-footer-brand{
    max-width:390px;
}

.jpba-footer-logo{
    display:block;
    width:92px;
    height:92px;
    object-fit:contain;
    margin-bottom:18px;
}

.jpba-footer-brand p{
    margin:0;
    color:rgba(255,255,255,.62);
    line-height:1.72;
    font-size:.94rem;
}

.jpba-footer-nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:34px;
}

.jpba-footer-col{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.jpba-footer-col h3{
    margin:0 0 7px;
    color:var(--jpba-light);
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.jpba-footer-col a{
    color:rgba(255,255,255,.68);
    text-decoration:none;
    font-size:.94rem;
    line-height:1.4;
    transition:color var(--jpba-transition), transform var(--jpba-transition);
}

.jpba-footer-col a:hover{
    color:var(--jpba-primary);
    transform:translateX(3px);
    text-decoration:none;
}

.jpba-footer-cta{
    padding:26px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:var(--jpba-radius);
    background:rgba(255,255,255,.04);
}

.jpba-footer-kicker{
    display:block;
    margin-bottom:8px;
    color:var(--jpba-primary);
    font-size:.72rem;
    line-height:1;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.jpba-footer-cta h3{
    margin:0;
    color:var(--jpba-light);
    font-size:1.5rem;
    line-height:1.08;
    font-weight:900;
    letter-spacing:-.03em;
}

.jpba-footer-cta p{
    margin:12px 0 20px;
    color:rgba(255,255,255,.58);
    line-height:1.6;
    font-size:.9rem;
}

.jpba-footer-cta .jpba-btn{
    min-height:46px;
    padding:0 18px;
}


.jpba-footer-contact-item{
    display:flex;
    flex-direction:column;
    gap:3px;
    margin-bottom:14px;
}

.jpba-footer-contact-label{
    color:var(--jpba-light);
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.jpba-footer-contact-item span:last-child,
.jpba-footer-contact-item a{
    color:rgba(255,255,255,.66);
    font-size:.94rem;
    line-height:1.5;
    text-decoration:none;
}

.jpba-footer-contact-item a:hover{
    color:var(--jpba-primary);
}

.jpba-footer-bottom-links{
    display:flex;
    align-items:center;
    gap:16px;
}

.jpba-footer-bottom-links a{
    color:rgba(255,255,255,.52);
    text-decoration:none;
}

.jpba-footer-bottom-links a:hover{
    color:var(--jpba-primary);
}

.jpba-footer-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:38px;
    padding-top:18px;
    border-top:1px solid rgba(255,255,255,.08);
    color:rgba(255,255,255,.40);
    font-size:.8rem;
}

.jpba-footer-bottom a{
    color:rgba(255,255,255,.52);
    text-decoration:none;
}

.jpba-footer-bottom a:hover{
    color:var(--jpba-primary);
}

@media (max-width: 980px){

    .jpba-footer-main{
        grid-template-columns:1fr 1fr;
        gap:38px;
    }

    .jpba-footer-cta{
        grid-column:1 / -1;
    }
}

@media (max-width: 680px){

    .jpba-footer-bottom-links{
        flex-wrap:wrap;
        gap:10px 16px;
    }


    .jpba-site-footer{
        padding:46px 0 18px;
    }

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

    .jpba-footer-nav{
        grid-template-columns:1fr 1fr;
        gap:24px;
    }

    .jpba-footer-logo{
        width:78px;
        height:78px;
    }

    .jpba-footer-cta{
        grid-column:auto;
    }

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

/* ---------------------------------------------------------
   MOBILE ACTION BAR
   --------------------------------------------------------- */

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



/* ---------------------------------------------------------
   LEGACY BROWSER COMPATIBILITY
   Keeps the site looking correct on older Chrome builds.
   --------------------------------------------------------- */

.jpba-about{
    background-color:#080808;
}

.jpba-about .jpba-title{
    color:#ffffff;
}

.jpba-about .jpba-subtitle{
    color:rgba(255,255,255,.72);
}

.jpba-method-card{
    background-color:#080808;
}

.jpba-path-arrow{
    background:#fff5d6;
}

.jpba-btn-soft{
    background:#fff7dc;
    border-color:#ead79b;
}

.jpba-btn-primary{
    background:#d7a100;
    color:#080808;
}

.jpba-final-cta{
    background:#d7a100;
}


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 1024px){

    .jpba-section{
        padding:82px 0;
    }

    .jpba-intro-grid,
    .jpba-about-grid{
        grid-template-columns:1fr;
        gap:42px;
    }

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

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

    .jpba-about-image{
        min-height:500px;
    }

    .jpba-content-grid{
        grid-template-columns:1fr;
    }

}



@media (max-width: 1100px){

    .jpba-nav{
        min-height:74px;
    }

    .jpba-menu-button{
        display:flex;
        margin-left:auto;
    }

    .jpba-menu{
        position:absolute;
        top:74px;
        left:0;
        right:0;
        display:none;
        padding:12px 18px 18px;
        background:rgba(8,8,8,.98);
        border-top:1px solid rgba(255,255,255,.08);
        border-bottom:1px solid rgba(255,255,255,.10);
        box-shadow:0 20px 40px rgba(0,0,0,.30);
    }

    .jpba-menu > a{
        width:100%;
        min-height:48px;
        padding:0 14px;
        border-radius:10px;
        color:rgba(255,255,255,.88);
    }

    .jpba-menu > a.jpba-menu-cta{
        margin:8px 0 0;
        justify-content:center;
        background:var(--jpba-primary);
        color:var(--jpba-dark);
    }

    .jpba-menu-toggle:checked ~ .jpba-menu{
        display:flex;
        flex-direction:column;
        align-items:stretch;
    }

    .jpba-menu-toggle:checked + .jpba-menu-button span:nth-child(1){
        transform:translateY(7px) rotate(45deg);
    }

    .jpba-menu-toggle:checked + .jpba-menu-button span:nth-child(2){
        opacity:0;
    }

    .jpba-menu-toggle:checked + .jpba-menu-button span:nth-child(3){
        transform:translateY(-7px) rotate(-45deg);
    }

    .jpba-menu-button span{
        transition:transform var(--jpba-transition), opacity var(--jpba-transition);
    }
}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 700px){


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


    body{
        padding-bottom:82px;
    }

    .jpba-container{
        width:min(100% - 24px, var(--jpba-container));
    }

    .jpba-section{
        padding:66px 0;
    }

    .jpba-section-sm{
        padding:56px 0;
    }

    .jpba-title{
        font-size:clamp(2.25rem,11vw,3.5rem);
        line-height:.98;
    }

    .jpba-hero{
        min-height:735px;
        background-position:62% 20%;
    }

    .jpba-hero-inner{
        padding:122px 0 44px;
    }

    .jpba-hero h1{
        font-size:clamp(3rem,15vw,5.1rem);
        line-height:.87;
    }

    .jpba-hero p{
        font-size:1rem;
        line-height:1.65;
    }

    .jpba-hero-actions{
        flex-direction:column;
        align-items:stretch;
    }

    .jpba-hero-actions .jpba-btn{
        width:100%;
    }

    .jpba-hero-points{
        grid-template-columns:1fr;
        gap:8px;
        margin-top:30px;
    }

    .jpba-hero-point{
        min-height:52px;
        padding:12px 14px;
    }

    .jpba-intro-grid,
    .jpba-about-grid{
        gap:32px;
    }

    .jpba-intro-card{
        min-height:390px;
        border-radius:22px;
    }

    .jpba-package-grid,
    .jpba-method-grid,
    .jpba-path-grid{
        grid-template-columns:1fr;
    }

    .jpba-package-card{
        min-height:0;
        padding:24px;
    }

    .jpba-method-card{
        min-height:220px;
    }

    .jpba-about-image{
        min-height:420px;
        border-radius:22px;
    }

    .jpba-final-cta{
        padding:64px 0;
    }

    .jpba-final-grid{
        flex-direction:column;
        align-items:flex-start;
        gap:26px;
    }

    .jpba-final-grid .jpba-btn{
        width:100%;
    }

    .jpba-form-row{
        grid-template-columns:1fr;
    }

    .jpba-page-hero{
        min-height:390px;
        padding:130px 0 48px;
    }

    .jpba-mobile-cta{
        position:fixed;
        z-index:9999;
        left:10px;
        right:10px;
        bottom:10px;
        display:flex;
        gap:8px;
        padding:8px;
        border:1px solid var(--jpba-border);
        border-radius:18px;
        background:rgba(255,255,255,.94);
        box-shadow:var(--jpba-shadow);
        backdrop-filter:blur(14px);
    }

    .jpba-mobile-cta a{
        flex:1;
        min-height:48px;
        padding:0 14px;
    }

}


/* ---------------------------------------------------------
   VERY SMALL MOBILE
   --------------------------------------------------------- */

@media (max-width: 420px){

    .jpba-brand-copy small{
        display:none;
    }

    .jpba-brand-copy strong{
        font-size:.92rem;
    }

    .jpba-brand-mark{
        width:42px;
        height:42px;
    }

    .jpba-container{
        width:min(100% - 18px, var(--jpba-container));
    }

    .jpba-hero h1{
        font-size:3rem;
    }

    .jpba-package-card{
        padding:22px;
    }

    .jpba-path-item{
        padding:18px;
    }

}


/* Temporary text/badge branding is no longer used */
.jpba-brand-mark,
.jpba-brand-copy{
    display:none;
}

.jpba-footer-contact-item a{
    overflow-wrap:anywhere;
    word-break:break-word;
    max-width:100%;
}


/* ---------------------------------------------------------
   ABOUT / LEGACY CONTENT
   --------------------------------------------------------- */

.jpba-about-feature{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    gap:64px;
    align-items:center;
}

.jpba-about-feature-reverse .jpba-about-feature-image{
    order:2;
}

.jpba-about-feature-reverse .jpba-about-feature-copy{
    order:1;
}

.jpba-about-feature-image img{
    display:block;
    width:100%;
    max-height:620px;
    object-fit:cover;
    border-radius:var(--jpba-radius-lg);
    box-shadow:var(--jpba-shadow-lg);
}

.jpba-rich-copy{
    margin-top:22px;
    color:var(--jpba-muted);
    font-size:1rem;
    line-height:1.8;
}

.jpba-rich-copy p{
    margin:0 0 16px;
}

.jpba-rich-copy ul,
.jpba-rich-copy ol{
    padding-left:22px;
}

.jpba-rich-copy li{
    margin-bottom:8px;
}

.jpba-rich-copy-wide{
    max-width:1000px;
}

.jpba-info-card-dark{
    background:#141414;
    border-color:rgba(255,255,255,.12);
    color:#ffffff;
}

.jpba-info-card-dark h3{
    color:#ffffff;
}

.jpba-info-card-dark .jpba-check-list li{
    color:rgba(255,255,255,.72);
    border-bottom-color:rgba(255,255,255,.10);
}

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

@media (max-width: 980px){
    .jpba-about-feature{
        grid-template-columns:1fr;
        gap:38px;
    }

    .jpba-about-feature-reverse .jpba-about-feature-image,
    .jpba-about-feature-reverse .jpba-about-feature-copy{
        order:initial;
    }

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

@media (max-width: 680px){
    .jpba-testimonial-grid,
    .jpba-package-grid-two{
        grid-template-columns:1fr;
    }

    .jpba-testimonial-card{
        min-height:0;
    }
}


/* ---------------------------------------------------------
   TESTIMONIALS
   --------------------------------------------------------- */

.jpba-testimonials{
    background:#f6f6f4;
    position:relative;
}

.jpba-testimonials .jpba-title{
    max-width:760px;
}

.jpba-testimonial-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    margin-top:42px;
}

.jpba-testimonial-card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-height:320px;
    padding:30px;
    overflow:hidden;
    border:1px solid #e4e4e1;
    border-radius:24px;
    background:#ffffff;
    box-shadow:0 8px 24px rgba(0,0,0,.08);
}

.jpba-testimonial-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:4px;
    background:#d7a100;
}

.jpba-testimonial-quote{
    height:38px;
    margin-bottom:12px;
    color:#d7a100;
    font-family:Georgia, serif;
    font-size:4.6rem;
    line-height:.72;
    font-weight:700;
}

.jpba-testimonial-content{
    color:#2a2a2a;
    font-size:1rem;
    line-height:1.75;
}

.jpba-testimonial-content p{
    margin:0;
}

.jpba-testimonial-author{
    display:flex;
    align-items:center;
    gap:16px;
    margin-top:auto;
    padding-top:26px;
}

.jpba-testimonial-logo-wrap{
    width:74px;
    height:74px;
    flex:0 0 74px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:6px;
    border:1px solid #ecece8;
    border-radius:14px;
    background:#ffffff;
}

.jpba-testimonial-logo{
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
}

.jpba-testimonial-author-copy{
    min-width:0;
}

.jpba-testimonial-author-copy strong{
    display:block;
    color:#151515;
    font-size:.95rem;
    line-height:1.3;
    font-weight:900;
}

.jpba-testimonial-author-copy span{
    display:block;
    margin-top:4px;
    color:#6e6e6e;
    font-size:.83rem;
    line-height:1.45;
}

@media (max-width: 800px){
    .jpba-testimonial-grid{
        grid-template-columns:1fr;
    }

    .jpba-testimonial-card{
        min-height:0;
    }
}


/* Prevent legacy testimonial images/content from escaping their cards */
.jpba-testimonial-card img{
    max-width:74px;
    max-height:74px;
}

.jpba-testimonial-content img,
.jpba-testimonial-content figure,
.jpba-testimonial-content iframe{
    display:none !important;
}


/* =========================================================
   JPBA INNER PAGE DISPLAY FIXES
   Explicit compatibility rules so older/global theme styles
   cannot turn light-card text white or override form colours.
   ========================================================= */

/* LIGHT SECTIONS / CARDS */
.jpba-packages{
    background:#f6f6f4 !important;
    color:#151515 !important;
}

.jpba-package-card{
    background:#ffffff !important;
    color:#151515 !important;
    border-color:#e4e4e1 !important;
}

.jpba-package-card.featured{
    background:linear-gradient(140deg,#fff9e8,#ffffff) !important;
    border-color:#d7b64b !important;
}

.jpba-package-card h1,
.jpba-package-card h2,
.jpba-package-card h3,
.jpba-package-card h4,
.jpba-package-card h5,
.jpba-package-card strong{
    color:#151515 !important;
}

.jpba-package-card p,
.jpba-package-card li,
.jpba-package-card .jpba-rich-copy,
.jpba-package-card .jpba-rich-copy p,
.jpba-package-card .jpba-rich-copy li,
.jpba-package-card .jpba-rich-copy span{
    color:#6e6e6e !important;
}

.jpba-package-card .jpba-package-tag{
    color:#b88900 !important;
}

.jpba-package-card .jpba-btn-soft{
    background:#fff7dc !important;
    border-color:#ead79b !important;
    color:#151515 !important;
}

.jpba-package-card .jpba-btn-soft:hover{
    background:#d7a100 !important;
    border-color:#d7a100 !important;
    color:#080808 !important;
}

/* PAGE HERO */
.jpba-page-hero{
    background:#080808 !important;
    color:#ffffff !important;
}

.jpba-page-hero .jpba-eyebrow{
    color:#d7a100 !important;
}

.jpba-page-hero h1,
.jpba-page-hero h2,
.jpba-page-hero h3{
    color:#ffffff !important;
}

.jpba-page-hero p{
    color:rgba(255,255,255,.78) !important;
}

/* GENERIC CONTENT */
.jpba-content{
    color:#151515 !important;
}

.jpba-content h1,
.jpba-content h2,
.jpba-content h3,
.jpba-content h4{
    color:#151515 !important;
}

.jpba-content p,
.jpba-content li{
    color:#6e6e6e !important;
}

.jpba-info-card{
    background:#ffffff !important;
    color:#151515 !important;
    border-color:#e4e4e1 !important;
}

.jpba-info-card h1,
.jpba-info-card h2,
.jpba-info-card h3,
.jpba-info-card h4,
.jpba-info-card strong{
    color:#151515 !important;
}

.jpba-info-card p,
.jpba-info-card li,
.jpba-info-card span{
    color:#6e6e6e !important;
}

.jpba-info-card a:not(.jpba-btn){
    color:#8a6800 !important;
    overflow-wrap:anywhere;
    word-break:break-word;
}

/* DARK ABOUT CARD EXCEPTION */
.jpba-info-card-dark{
    background:#141414 !important;
    border-color:rgba(255,255,255,.12) !important;
}

.jpba-info-card-dark h1,
.jpba-info-card-dark h2,
.jpba-info-card-dark h3,
.jpba-info-card-dark h4,
.jpba-info-card-dark strong{
    color:#ffffff !important;
}

.jpba-info-card-dark p,
.jpba-info-card-dark li,
.jpba-info-card-dark span{
    color:rgba(255,255,255,.72) !important;
}

/* BOOK / ENQUIRE FORM */
.jpba-form label{
    color:#151515 !important;
}

.jpba-form input,
.jpba-form select,
.jpba-form textarea{
    background:#ffffff !important;
    color:#151515 !important;
    border:1px solid #d9d9d5 !important;
}

.jpba-form input::placeholder,
.jpba-form textarea::placeholder{
    color:#8a8a8a !important;
    opacity:1;
}

.jpba-form select option{
    color:#151515 !important;
    background:#ffffff !important;
}

.jpba-form .jpba-btn-primary,
.jpba-btn-primary{
    background:#d7a100 !important;
    color:#080808 !important;
    border-color:#d7a100 !important;
}

.jpba-form .jpba-btn-primary:hover,
.jpba-btn-primary:hover{
    background:#b88900 !important;
    color:#ffffff !important;
}

/* INNER PAGE SPACING UNDER FIXED HEADER */
.jpba-page-hero{
    padding-top:170px !important;
}

@media (max-width:700px){
    .jpba-page-hero{
        padding-top:130px !important;
    }
}


/* =========================================================
   ABOUT PAGE DARK SECTION FIX
   Overrides generic light-content rules inside .jpba-about.
   ========================================================= */

.jpba-about .jpba-content,
.jpba-about .jpba-content h1,
.jpba-about .jpba-content h2,
.jpba-about .jpba-content h3,
.jpba-about .jpba-content h4{
    color:#ffffff !important;
}

.jpba-about .jpba-content p,
.jpba-about .jpba-content li{
    color:rgba(255,255,255,.72) !important;
}

.jpba-about .jpba-eyebrow{
    color:#d7a100 !important;
}

.jpba-about .jpba-content h2{
    font-size:clamp(2.4rem,4.5vw,4.7rem);
    line-height:.96;
    letter-spacing:-.055em;
    margin:0 0 22px;
}

.jpba-about .jpba-content-grid{
    align-items:center;
}

.jpba-about .jpba-info-card-dark{
    box-shadow:0 18px 48px rgba(0,0,0,.24);
}


/* =========================================================
   TYPOGRAPHY / HERO SCALE TUNING
   Keeps the bold sports look without overwhelming laptop screens.
   ========================================================= */

.jpba-hero{
    min-height:680px !important;
}

.jpba-hero-inner{
    padding:150px 0 58px !important;
}

.jpba-hero h1{
    max-width:900px;
    font-size:clamp(3.1rem,7vw,6.4rem) !important;
    line-height:.9 !important;
}

.jpba-hero p{
    max-width:700px;
    font-size:clamp(1rem,1.5vw,1.22rem) !important;
    line-height:1.65 !important;
}

.jpba-title{
    font-size:clamp(2.2rem,4vw,4rem) !important;
    line-height:.98 !important;
}

.jpba-page-hero{
    min-height:400px !important;
    padding-top:145px !important;
    padding-bottom:54px !important;
}

.jpba-page-hero h1{
    font-size:clamp(2.8rem,5.8vw,5.2rem) !important;
    line-height:.94 !important;
}

.jpba-page-hero p{
    font-size:1.05rem !important;
    max-width:700px;
}

.jpba-final-grid h2{
    font-size:clamp(2rem,3.6vw,3.7rem) !important;
    line-height:.98 !important;
}

.jpba-about .jpba-content h2{
    font-size:clamp(2.2rem,3.8vw,3.8rem) !important;
    line-height:.98 !important;
}

.jpba-package-card h3{
    font-size:1.38rem !important;
}

.jpba-method-card h3{
    font-size:1.5rem !important;
}

@media (max-width: 1366px){

    .jpba-hero{
        min-height:620px !important;
    }

    .jpba-hero-inner{
        padding:130px 0 48px !important;
    }

    .jpba-hero h1{
        font-size:clamp(2.9rem,6.5vw,5.6rem) !important;
    }

    .jpba-title{
        font-size:clamp(2.1rem,3.8vw,3.6rem) !important;
    }

    .jpba-page-hero h1{
        font-size:clamp(2.6rem,5.2vw,4.6rem) !important;
    }
}

@media (max-width: 700px){

    .jpba-hero{
        min-height:640px !important;
    }

    .jpba-hero-inner{
        padding:110px 0 38px !important;
    }

    .jpba-hero h1{
        font-size:clamp(2.65rem,12vw,4.2rem) !important;
        line-height:.9 !important;
    }

    .jpba-title{
        font-size:clamp(2rem,9.5vw,3rem) !important;
    }

    .jpba-page-hero{
        min-height:340px !important;
        padding-top:118px !important;
        padding-bottom:42px !important;
    }

    .jpba-page-hero h1{
        font-size:clamp(2.35rem,10vw,3.6rem) !important;
    }

    .jpba-final-grid h2{
        font-size:clamp(2rem,9vw,3rem) !important;
    }
}
