
:root{
    --public-max-width:1180px;
    --public-page-padding:5vw;
    --public-card-radius:14px;
    --public-border:#ddd;
    --public-shadow:0 12px 32px #00000012;
}

*{box-sizing:border-box}

.public-top,
.top,
.checkout-top,
.account-site-header{
    min-height:72px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:0 var(--public-page-padding);
    background:#fff;
    border-bottom:1px solid var(--public-border);
    position:sticky;
    top:0;
    z-index:50;
}

.public-brand,
.top .brand,
.checkout-top .brand,
.account-site-header .brand{
    font-family:var(--brand-heading-font,var(--brand-body-font,inherit));
    font-weight:900;
    letter-spacing:0;
    color:var(--brand-primary,#263786);
    text-decoration:none;
    font-size:1.15rem;
    white-space:nowrap;
}

.public-nav,
.top nav,
.checkout-top nav,
.account-site-header nav{
    display:flex;
    align-items:center;
    gap:22px;
    flex-wrap:wrap;
}

.public-nav a,
.public-nav button,
.top nav a,
.top nav button,
.checkout-top nav a,
.checkout-top nav button,
.account-site-header nav a,
.account-site-header nav button{
    appearance:none;
    border:0;
    background:transparent;
    color:var(--brand-text,#222);
    font:inherit;
    text-decoration:none;
    cursor:pointer;
    padding:8px 0;
}

.public-language,
#languageButton,
#checkoutLanguageButton,
#languageToggle{
    padding:8px 12px!important;
    border-radius:10px!important;
    background:var(--brand-button-background,var(--brand-primary,#263786))!important;
    color:var(--brand-button-text,#fff)!important;
}

.public-card,
.checkout-card,
.card,
.summary-grid button,
.booking-card{
    border-radius:var(--public-card-radius);
    background:var(--brand-surface,#fff);
    border:1px solid var(--public-border);
    box-shadow:var(--public-shadow);
}

.public-context-link{
    display:inline-flex;
    margin:18px 0 2px;
    color:var(--brand-link,var(--brand-primary,#263786));
    text-decoration:none;
    font-weight:700;
}

.public-progress{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
    margin:18px 0;
}
.public-progress span{
    padding:10px 12px;
    border-radius:999px;
    background:#fff;
    border:1px solid var(--public-border);
    text-align:center;
    font-size:.83rem;
    font-weight:800;
}
.public-progress span.active{
    background:var(--brand-button-background,var(--brand-primary,#263786));
    color:var(--brand-button-text,#fff);
    border-color:transparent;
}

@media(max-width:700px){
    :root{--public-page-padding:16px}
    .public-top,.top,.checkout-top,.account-site-header{
        min-height:60px;
        gap:12px;
    }
    .public-brand,.top .brand,.checkout-top .brand,.account-site-header .brand{
        font-size:.95rem;
        max-width:52vw;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .public-nav,.top nav,.checkout-top nav,.account-site-header nav{
        gap:12px;
        font-size:.82rem;
    }
    .public-nav a:first-child,
    .checkout-top nav a:first-child{
        display:none;
    }
    .public-progress{
        grid-template-columns:repeat(4,minmax(0,1fr));
        gap:4px;
    }
    .public-progress span{
        padding:8px 4px;
        font-size:.7rem;
    }
}
