/* Epochish premium journey configurator. No external UI library required. */
.epochish-booking,.epochish-booking *{box-sizing:border-box}
.epochish-booking-anchor{display:block;position:relative;top:-30px;visibility:hidden}
.epochish-booking{
    --ep-navy:#182640;
    --ep-navy-deep:#101a2d;
    --ep-gold:#a8843d;
    --ep-gold-soft:#dcc9a5;
    --ep-ink:#202a3d;
    --ep-muted:#6d7687;
    --ep-line:#e0e4ea;
    --ep-soft:#f7f8fa;
    width:100%;
    max-width:1040px;
    margin:0 auto;
    color:var(--ep-ink);
    font-family:inherit;
}
.epochish-editing-banner{
    display:flex;
    flex-direction:column;
    gap:2px;
    margin-bottom:18px;
    padding:14px 16px;
    border:1px solid #d7dfeb;
    border-left:4px solid var(--ep-gold);
    border-radius:10px;
    background:#f8fafc;
    color:#344158;
    font-size:12.5px;
    line-height:1.45;
}
.epochish-editing-banner strong{color:var(--ep-navy);font-size:13px}

.epochish-booking__header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:34px;
    margin-bottom:24px;
    padding:28px 30px;
    border:1px solid var(--ep-line);
    border-radius:18px;
    background:linear-gradient(135deg,#fff 0%,#fbfbfc 100%);
    box-shadow:0 16px 42px rgba(24,38,64,.055);
}
.epochish-booking__intro{max-width:650px;min-width:0}
.epochish-booking__eyebrow{
    margin-bottom:8px;
    color:var(--ep-gold);
    font-size:9px;
    font-weight:700;
    letter-spacing:.16em;
    line-height:1.25;
    text-transform:uppercase;
}
.epochish-booking__title{
    margin:0 0 9px;
    color:var(--ep-navy);
    font-size:28px;
    line-height:1.15;
    font-weight:600;
    letter-spacing:-.025em;
}
.epochish-booking__lead{
    max-width:620px;
    margin:0;
    color:var(--ep-muted);
    font-size:13px;
    line-height:1.65;
}
.epochish-booking__fee{
    flex:0 0 auto;
    min-width:190px;
    padding:15px 17px;
    border:1px solid #ded6c7;
    border-radius:12px;
    background:#fffdf9;
    text-align:right;
}
.epochish-booking__fee>span{
    display:block;
    margin-bottom:4px;
    color:#837153;
    font-size:9px;
    font-weight:600;
    letter-spacing:.1em;
    text-transform:uppercase;
}
.epochish-booking__fee strong{
    display:block;
    color:var(--ep-navy);
    font-size:21px;
    font-weight:760;
    line-height:1.2;
    white-space:nowrap;
}
.epochish-booking__fee strong del{margin-right:6px;color:#8a92a0;font-size:13px;font-weight:500;opacity:.8}
.epochish-booking__fee strong ins{text-decoration:none;color:var(--ep-navy)}
.epochish-booking__fee small{display:block;margin-top:3px;color:var(--ep-muted);font-size:11px}

.epochish-booking__layout{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(315px,.82fr);
    gap:24px;
    align-items:start;
}
.epochish-booking__main{display:flex;flex-direction:column;gap:20px;min-width:0}
.epochish-booking__card,
.epochish-booking__summary{
    border:1px solid var(--ep-line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 12px 34px rgba(24,38,64,.045);
}
.epochish-booking__card{padding:24px}
.epochish-section-head{
    display:flex;
    align-items:center;
    gap:13px;
    margin-bottom:20px;
    padding-bottom:18px;
    border-bottom:1px solid #e8ebef;
}
.epochish-section-index{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    flex:0 0 38px;
    border:1px solid #d7dce4;
    border-radius:50%;
    background:#f8f9fb;
    color:var(--ep-navy);
    font-size:11px;
    font-weight:700;
    letter-spacing:.07em;
}
.epochish-section-head .epochish-booking__eyebrow{margin-bottom:3px}
.epochish-section-title{
    margin:0;
    color:var(--ep-navy);
    font-size:19px;
    font-weight:700;
    line-height:1.25;
    letter-spacing:-.01em;
}

.epochish-booking__traveller-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:26px;
    padding:3px 0 2px;
}
.epochish-booking__traveller-copy strong{display:block;color:var(--ep-navy);font-size:14px;font-weight:700}
.epochish-booking__helper{margin-top:5px;color:var(--ep-muted);font-size:12px;line-height:1.5}

.epochish-qty{
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    width:126px;
    min-width:126px;
    height:44px;
    overflow:hidden;
    border:1px solid #d4dae3!important;
    border-radius:999px;
    background:#fff!important;
    box-shadow:0 3px 10px rgba(24,38,64,.035);
}
.epochish-qty--travellers{width:142px;min-width:142px;height:48px}
.epochish-qty button{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:42px!important;
    min-width:42px!important;
    height:100%!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:#fff!important;
    color:var(--ep-navy)!important;
    -webkit-text-fill-color:var(--ep-navy)!important;
    font:600 18px/1 inherit!important;
    opacity:1!important;
    cursor:pointer!important;
    box-shadow:none!important;
    transition:background .16s ease,color .16s ease;
}
.epochish-qty button:hover{background:#f3f5f8!important;color:var(--ep-gold)!important}
.epochish-qty input{
    display:block!important;
    width:42px!important;
    min-width:42px!important;
    height:100%!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:#fff!important;
    color:var(--ep-navy)!important;
    -webkit-text-fill-color:var(--ep-navy)!important;
    text-align:center!important;
    font:700 14px/44px inherit!important;
    opacity:1!important;
    box-shadow:none!important;
    appearance:textfield!important;
    -webkit-appearance:none!important;
    -moz-appearance:textfield!important;
}
.epochish-qty--travellers input{font-size:15px!important}
.epochish-qty input::-webkit-inner-spin-button,.epochish-qty input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

.epochish-addons{display:flex;flex-direction:column;gap:12px}
.epochish-addon{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:22px;
    padding:18px;
    border:1px solid #e1e5eb;
    border-radius:13px;
    background:#fbfbfc;
    transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.epochish-addon:hover{border-color:#d4d9e1;background:#fff;box-shadow:0 8px 22px rgba(24,38,64,.045)}
.epochish-addon.is-selected{border-color:#cdb681;background:#fffdfa;box-shadow:0 8px 24px rgba(168,132,61,.07)}
.epochish-addon__content{min-width:0}
.epochish-addon__topline{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.epochish-addon__rule{
    color:#8a7350;
    font-size:9px;
    font-weight:600;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.epochish-addon__selected-mark{
    display:none;
    align-items:center;
    justify-content:center;
    width:17px;
    height:17px;
    border-radius:50%;
    background:var(--ep-gold);
    color:#fff;
    font-size:10px;
    font-weight:700;
    line-height:1;
}
.epochish-addon.is-selected .epochish-addon__selected-mark{display:inline-flex}
.epochish-addon__name{display:block;color:var(--ep-navy);font-size:14px;font-weight:700;line-height:1.35}
.epochish-addon__description{margin-top:5px;color:var(--ep-muted);font-size:11.5px;line-height:1.55}
.epochish-addon__description p{margin:0}
.epochish-addon__price{margin-top:9px;color:var(--ep-navy);font-size:13px;font-weight:700}
.epochish-addon__price span{margin-left:3px;color:#7d8492;font-size:10.5px;font-weight:400}
.epochish-addon__control{display:flex;align-items:center;justify-content:flex-end;min-width:132px}

.epochish-switch-label{display:inline-flex;align-items:center;gap:9px;cursor:pointer;user-select:none}
.epochish-switch-label input{position:absolute;opacity:0;pointer-events:none}
.epochish-switch-ui{
    position:relative;
    display:inline-block;
    width:40px;
    height:23px;
    flex:0 0 40px;
    border:1px solid #cfd5de;
    border-radius:999px;
    background:#edf0f4;
    transition:background .18s ease,border-color .18s ease;
}
.epochish-switch-ui:after{
    content:"";
    position:absolute;
    top:3px;
    left:3px;
    width:15px;
    height:15px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 4px rgba(24,38,64,.18);
    transition:transform .18s ease;
}
.epochish-switch-label input:checked + .epochish-switch-ui{background:var(--ep-navy);border-color:var(--ep-navy)}
.epochish-switch-label input:checked + .epochish-switch-ui:after{transform:translateX(17px)}
.epochish-switch-label input:focus-visible + .epochish-switch-ui{outline:3px solid rgba(168,132,61,.18);outline-offset:2px}
.epochish-switch-copy{color:#485367;font-size:11.5px;font-weight:600;white-space:nowrap}

.epochish-booking__aside{position:sticky;top:24px;min-width:0}
.epochish-booking__summary{padding:23px}
.epochish-booking__summary h3{margin:0 0 17px;color:var(--ep-navy);font-size:19px;font-weight:700;line-height:1.25}
.epochish-summary-items{border-top:1px solid #e8ebef}
.epochish-summary-line{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    padding:15px 0;
    border-bottom:1px solid #e8ebef;
}
.epochish-summary-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.epochish-summary-kicker{color:var(--ep-gold);font-size:8px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.epochish-summary-copy strong{color:var(--ep-navy);font-size:12.5px;font-weight:700;line-height:1.35}
.epochish-summary-copy small{color:#7a8291;font-size:10.5px;line-height:1.35}
.epochish-summary-value{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}
.epochish-summary-equation{color:#798190;font-size:10.5px;font-weight:500;white-space:nowrap}
.epochish-summary-value strong{color:var(--ep-navy);font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap}
.epochish-summary-total{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:16px;
    padding-top:19px;
    color:var(--ep-navy);
    font-size:14px;
    font-weight:700;
}
.epochish-grand-total{color:var(--ep-navy);font-size:20px;font-weight:700;letter-spacing:-.01em}

.epochish-booking-message{display:none;margin-top:12px;padding:12px 14px;border-radius:9px;font-size:12px;line-height:1.45}
.epochish-booking-message.is-error{display:block;border:1px solid #efc0bd;background:#fff5f4;color:#94241d}
.epochish-booking-message.is-success{display:block;border:1px solid #b7dfcc;background:#f3fbf7;color:#246947}
.epochish-reserve-button{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:14px 0 0!important;
    padding:15px 22px!important;
    border:1px solid var(--ep-navy)!important;
    border-radius:9px!important;
    background:var(--ep-navy)!important;
    color:#fff!important;
    font-family:inherit!important;
    font-size:13.5px!important;
    font-weight:600!important;
    line-height:1.15!important;
    letter-spacing:.01em!important;
    cursor:pointer!important;
    box-shadow:none!important;
    transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.epochish-reserve-button:hover{padding:15px 22px!important;background:var(--ep-navy-deep)!important;border-color:var(--ep-navy-deep)!important;transform:translateY(-1px)}
.epochish-reserve-button:disabled{background:#aab1bc!important;border-color:#aab1bc!important;color:#fff!important;cursor:wait!important;transform:none!important}
.epochish-booking__assurance{margin:10px 7px 0;color:#7c8492;font-size:10.5px;line-height:1.5;text-align:center}

@media(max-width:900px){
    .epochish-booking__header{align-items:flex-start;flex-direction:column;gap:18px}
    .epochish-booking__fee{width:100%;min-width:0;text-align:left}
    .epochish-booking__layout{grid-template-columns:1fr}
    .epochish-booking__aside{position:static}
}
@media(max-width:620px){
    .epochish-booking__header{padding:22px 19px;border-radius:14px}
    .epochish-booking__title{font-size:24px}
    .epochish-booking__card,.epochish-booking__summary{border-radius:13px}
    .epochish-booking__card{padding:18px}
    .epochish-booking__traveller-row{align-items:flex-start;flex-direction:column;gap:15px}
    .epochish-qty--travellers{width:100%;max-width:170px}
    .epochish-addon{grid-template-columns:1fr;gap:15px;padding:16px}
    .epochish-addon__control{justify-content:flex-start;min-width:0}
    .epochish-switch-copy{white-space:normal}
}

/* v1.0.3 responsive hardening */
.epochish-booking{width:100%;max-width:1120px;margin-left:auto;margin-right:auto;font-family:inherit}
.epochish-booking *{min-width:0;box-sizing:border-box}
@media(max-width:900px){
    .epochish-booking{padding-left:14px;padding-right:14px}
    .epochish-booking__layout{gap:16px}
    .epochish-booking__aside{width:100%}
    .epochish-booking__summary{width:100%}
}
@media(max-width:620px){
    .epochish-booking{padding-left:10px;padding-right:10px}
    .epochish-booking__header{padding:19px 16px}
    .epochish-booking__title{font-size:22px}
    .epochish-booking__lead{font-size:13px;line-height:1.55}
    .epochish-booking__card,.epochish-booking__summary{padding:16px}
    .epochish-section-index{width:34px;height:34px;flex-basis:34px}
    .epochish-section-title{font-size:18px}
    .epochish-summary-line{grid-template-columns:1fr;gap:7px;padding:14px 0}
    .epochish-summary-value{align-items:flex-start;text-align:left}
    .epochish-summary-equation{font-size:12px}
    .epochish-summary-value strong{font-size:14px}
    .epochish-summary-total{align-items:center}
    .epochish-grand-total{font-size:20px}
}

/* =========================================================
   Epochish v1.0.6 — final summary hierarchy + mobile maths
   ========================================================= */
.epochish-booking__summary h3{
    margin:0!important;
    color:var(--ep-navy)!important;
    font-size:20px!important;
    font-weight:600!important;
    line-height:1.3!important;
    text-align:center!important;
}
.epochish-booking__summary-subtitle{
    margin:4px 0 15px!important;
    color:#7a8291!important;
    font-size:12px!important;
    font-weight:400!important;
    line-height:1.4!important;
    text-align:center!important;
}
@media(max-width:620px){
    .epochish-booking__summary h3{font-size:20px!important}
    .epochish-summary-line{
        grid-template-columns:minmax(0,1fr) auto!important;
        gap:12px!important;
        align-items:end!important;
        padding:15px 0!important;
    }
    .epochish-summary-value{
        align-items:flex-end!important;
        justify-self:end!important;
        text-align:right!important;
        max-width:150px!important;
    }
    .epochish-summary-equation{font-size:11.5px!important;white-space:nowrap!important}
    .epochish-summary-value strong{font-size:14px!important;white-space:nowrap!important}
}
@media(max-width:360px){
    .epochish-summary-line{gap:8px!important}
    .epochish-summary-copy strong{font-size:12px!important}
    .epochish-summary-copy small{font-size:10px!important}
    .epochish-summary-equation{font-size:10.5px!important}
    .epochish-summary-value strong{font-size:13px!important}
}

/* =========================================================
   Epochish v1.0.7 — mobile reservation arithmetic alignment
   ========================================================= */
.epochish-booking__summary h3{font-size:22px!important;font-weight:600!important;text-align:center!important}
@media(max-width:620px){
    .epochish-summary-line{
        grid-template-columns:minmax(0,1fr) auto!important;
        align-items:start!important;
    }
    .epochish-summary-value{
        align-items:flex-end!important;
        justify-self:end!important;
        margin-left:auto!important;
        text-align:right!important;
        width:max-content!important;
        max-width:150px!important;
    }
    .epochish-summary-equation{text-align:right!important}
    .epochish-summary-value strong{text-align:right!important}
}
