:root{
    --ptx-navy:#001b3f;
    --ptx-navy-light:#0c315c;
    --ptx-red:#ed1c24;
    --ptx-red-dark:#c91018;
    --ptx-green:#215605;
    --ptx-white:#ffffff;
    --ptx-ink:#111827;
    --ptx-line:#d9dde3;
}

/* ============================================================
   SIMPLE SINGLE-ROW HEADER
   Transparent at top, fades to solid white on scroll (sticky).
   Right-aligned hamburger on mobile.
   ============================================================ */
.ptx-site-header{
    font-family:"IBM Plex Sans", Arial, Helvetica, sans-serif;
    position:fixed;
    top:0;
    left:0;
    right:0;
    width:100%;
    z-index:1200;
    background:transparent;
    box-shadow:none;
    transition:background-color .3s ease, box-shadow .3s ease;
}

.ptx-site-header.scrolled{
    background:#fff;
    box-shadow:0 3px 14px rgba(7,31,61,.12);
}

.ptx-header-inner{
    max-width:1280px;
    margin:0 auto;
    padding:14px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

/* LOGO */
.ptx-logo{
    display:inline-flex;
    align-items:center;
    flex-shrink:0;
}

.ptx-logo img{
    display:block;
    height:46px;
    width:auto;
    object-fit:contain;
    transition:filter .3s ease;
}

/* White logo over the transparent (dark hero) state; full colour once solid */
.ptx-site-header:not(.scrolled) .ptx-logo img{
    filter:brightness(0.7) invert(0.1);
}

/* NAV */
.ptx-nav-main{
    display:flex;
    align-items:center;
    gap:4px;
}

.ptx-nav-link{
    color:#fff;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    padding:10px 16px;
    border-radius:8px;
    white-space:nowrap;
    transition:color .2s ease, background .2s ease;
}

.ptx-nav-link:hover{
    background:rgba(255,255,255,.16);
    color:#fff;
    text-decoration:none;
}

/* When solid (scrolled) the links turn dark for contrast on white */
.ptx-site-header.scrolled .ptx-nav-link{
    color:var(--ptx-navy);
}

.ptx-site-header.scrolled .ptx-nav-link:hover{
    background:#eef3f8;
    color:var(--ptx-navy);
}

/* CTA — Book Now */
.ptx-nav-cta{
    background:var(--ptx-red);
    color:#fff !important;
    padding:10px 22px;
    margin-left:6px;
}

.ptx-nav-cta:hover{
    background:var(--ptx-red-dark);
    color:#fff !important;
}

.ptx-site-header.scrolled .ptx-nav-cta{
    color:#fff !important;
}

/* Login Button */
.ptx-nav-login{
    color:#fff !important;
    background:var(--ptx-navy);
    padding:8px 18px;
    margin-left:6px;
    border:none;
}

.ptx-nav-login:hover{
    background:#003d7a !important;
    color:#fff !important;
}

.ptx-site-header.scrolled .ptx-nav-login{
    color:#fff !important;
    background:var(--ptx-navy);
}

.ptx-site-header.scrolled .ptx-nav-login:hover{
    background:#003d7a !important;
    color:#fff !important;
}

/* HAMBURGER TOGGLE (hidden on desktop) */
.ptx-nav-toggle{
    display:none;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    width:46px;
    height:42px;
    padding:0;
    margin-left:auto;
    background:transparent;
    border:none;
    cursor:pointer;
}

.ptx-nav-toggle-bar{
    width:26px;
    height:2px;
    background:#fff;
    border-radius:2px;
    transition:transform .25s ease, opacity .2s ease, background-color .3s ease;
}

.ptx-site-header.scrolled .ptx-nav-toggle-bar{
    background:var(--ptx-navy);
}

.ptx-nav-toggle.is-open .ptx-nav-toggle-bar:nth-child(1){
    transform:translateY(7px) rotate(45deg);
}

.ptx-nav-toggle.is-open .ptx-nav-toggle-bar:nth-child(2){
    opacity:0;
}

.ptx-nav-toggle.is-open .ptx-nav-toggle-bar:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
}

/* Close (×) button lives only inside the mobile menu — hidden on desktop */
.ptx-nav-close{
    display:none;
}

/* ── MOBILE: right-aligned hamburger, full-screen menu overlay ── */
@media(max-width:850px){

    .ptx-header-inner{
        position:relative;
        padding:14px 18px;
    }

    .ptx-nav-toggle{
        display:flex;
    }

    .ptx-nav-main{
        position:fixed;
        top:0;
        left:0;
        right:0;
        bottom:0;
        width:100%;
        height:100vh;
        z-index:1000;
        flex-direction:column;
        align-items:stretch;
        justify-content:center;
        gap:0;
        background:linear-gradient(135deg, var(--ptx-navy) 0%, var(--ptx-navy-light) 100%);
        padding:100px 24px 60px;
        overflow-y:auto;
        opacity:0;
        visibility:hidden;
        transition:opacity .3s ease, visibility .3s ease;
        backdrop-filter:blur(8px);
    }

    .ptx-nav-main.is-open{
        opacity:1;
        visibility:visible;
    }

    .ptx-nav-main::before{
        content:"";
        position:fixed;
        top:0;
        left:0;
        right:0;
        bottom:0;
        background:rgba(0,0,0,.45);
        z-index:-1;
        opacity:0;
        visibility:hidden;
        transition:opacity .3s ease, visibility .3s ease;
    }

    .ptx-nav-main.is-open::before{
        opacity:1;
        visibility:visible;
    }

    .ptx-nav-link{
        color:#fff;
        text-align:center;
        padding:16px 18px;
        border-radius:0;
        text-shadow:0 1px 4px rgba(0,16,38,.55);
        font-size:18px;
        font-weight:700;
        border-bottom:1px solid rgba(255,255,255,.1);
    }

    .ptx-nav-link:last-of-type:not(.ptx-nav-cta){
        border-bottom:none;
    }

    .ptx-nav-link:hover{
        background:rgba(255,255,255,.16);
        color:#fff;
    }

    /* Keep dropdown links light even when the bar is solid/scrolled */
    .ptx-site-header.scrolled .ptx-nav-main .ptx-nav-link{
        color:#fff;
    }

    .ptx-site-header.scrolled .ptx-nav-main .ptx-nav-link:hover{
        background:rgba(255,255,255,.16);
        color:#fff;
    }

    .ptx-nav-cta{
        margin:16px auto 0;
        text-align:center;
        max-width:260px;
        background:var(--ptx-red);
        border-radius:8px;
        border-bottom:none;
    }

    .ptx-nav-cta:hover{
        background:var(--ptx-red-dark);
    }

    .ptx-nav-login{
        margin:12px auto 0;
        text-align:center;
        max-width:260px;
        border:none !important;
        border-bottom:none !important;
        padding:12px 18px !important;
        background:var(--ptx-navy) !important;
    }

    .ptx-nav-login:hover{
        border-color:transparent !important;
        background:#003d7a !important;
    }

    .ptx-nav-close{
        position:absolute;
        top:20px;
        right:20px;
        width:44px;
        height:44px;
        border-radius:50%;
        background:rgba(255,255,255,.16);
        border:2px solid rgba(255,255,255,.4);
        color:#fff;
        font-size:24px;
        line-height:1;
        cursor:pointer;
        transition:all .2s ease;
        display:flex;
        align-items:center;
        justify-content:center;
        padding:0;
    }

    .ptx-nav-close:hover,
    .ptx-nav-close:active{
        background:rgba(255,255,255,.28);
        border-color:rgba(255,255,255,.6);
        transform:scale(1.1);
    }

}

/* ============================================================
   BOOKING MODAL (unchanged)
   ============================================================ */
.ptx-bk-overlay{
    position:fixed;
    inset:0;
    z-index:2000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(0,16,38,.62);
    backdrop-filter:blur(3px);
    opacity:0;
    visibility:hidden;
    transition:opacity .2s ease, visibility .2s ease;
}

.ptx-bk-overlay.is-open{
    opacity:1;
    visibility:visible;
}

.ptx-bk-dialog{
    font-family:Arial, Helvetica, sans-serif;
    position:relative;
    width:100%;
    max-width:460px;
    background:#fff;
    border-radius:18px;
    box-shadow:0 30px 80px rgba(0,16,38,.45);
    overflow:hidden;
    transform:translateY(14px) scale(.98);
    transition:transform .22s ease;
}

.ptx-bk-overlay.is-open .ptx-bk-dialog{
    transform:translateY(0) scale(1);
}

/* HEADER OF MODAL */
.ptx-bk-head{
    background:linear-gradient(135deg, var(--ptx-navy) 0%, var(--ptx-navy-light) 100%);
    color:#fff;
    padding:26px 28px 22px;
}

.ptx-bk-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:7px;
    font-size:11px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#8bd5ff;
    margin-bottom:8px;
}

.ptx-bk-head h2{
    margin:0 0 8px;
    font-size:22px;
    font-weight:800;
    line-height:1.18;
    color:#fff;
}

.ptx-bk-head p{
    margin:0;
    font-size:13.5px;
    line-height:1.55;
    color:rgba(255,255,255,.82);
}

/* CLOSE */
.ptx-bk-close{
    position:absolute;
    top:14px;
    right:14px;
    width:34px;
    height:34px;
    border:none;
    border-radius:50%;
    background:rgba(255,255,255,.16);
    color:#fff;
    font-size:20px;
    line-height:1;
    cursor:pointer;
    transition:.18s ease;
}

.ptx-bk-close:hover{
    background:rgba(255,255,255,.3);
    transform:rotate(90deg);
}

/* OPTIONS */
.ptx-bk-options{
    padding:18px;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.ptx-bk-option{
    position:relative;
    display:grid;
    grid-template-columns:48px 1fr 20px;
    align-items:center;
    gap:14px;
    padding:15px 16px;
    border:1px solid var(--ptx-line);
    border-radius:13px;
    text-decoration:none;
    color:var(--ptx-ink);
    background:#fff;
    transition:.18s ease;
}

.ptx-bk-option:hover,
.ptx-bk-option:focus-visible{
    border-color:var(--ptx-navy);
    box-shadow:0 12px 28px rgba(0,16,38,.14);
    transform:translateY(-2px);
    text-decoration:none;
    color:var(--ptx-ink);
}

.ptx-bk-ico{
    width:48px;
    height:48px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:23px;
    background:#e7f1fb;
    color:var(--ptx-navy);
    flex-shrink:0;
}

.ptx-bk-option--call .ptx-bk-ico{
    background:#fdeaeb;
    color:var(--ptx-red);
}

.ptx-bk-text{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}

.ptx-bk-text strong{
    font-size:15.5px;
    font-weight:800;
    color:var(--ptx-navy);
    line-height:1.2;
}

.ptx-bk-text small{
    font-size:12.5px;
    color:#5b6675;
    line-height:1.4;
}

.ptx-bk-arrow{
    font-size:18px;
    color:var(--ptx-navy);
    transition:transform .18s ease;
}

.ptx-bk-option:hover .ptx-bk-arrow{
    transform:translateX(4px);
}

/* TOOLTIP */
.ptx-bk-option[data-ptx-tip]::after{
    content:attr(data-ptx-tip);
    position:absolute;
    left:50%;
    bottom:calc(100% + 9px);
    transform:translate(-50%, 6px);
    width:max-content;
    max-width:260px;
    background:var(--ptx-navy);
    color:#fff;
    font-size:12px;
    font-weight:600;
    line-height:1.45;
    text-align:center;
    padding:9px 12px;
    border-radius:9px;
    box-shadow:0 12px 30px rgba(0,16,38,.32);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .15s ease, transform .15s ease;
    z-index:5;
}

.ptx-bk-option[data-ptx-tip]::before{
