.yoap-booking-app{
    --yoap-bg:#0f1711;
    --yoap-panel:#172019;
    --yoap-panel-2:#202a22;
    --yoap-text:#f7f8f4;
    --yoap-muted:#c4cbbf;
    --yoap-border:#3d493e;
    --yoap-accent:#b9f000;
    --yoap-accent-dark:#111b08;
    --yoap-error:#ffd8d8;
    --yoap-error-bg:#4b1717;
    --yoap-review:#ffe8a3;
    --yoap-review-bg:#3a3012;
    max-width:960px;
    margin:2rem auto;
    color:var(--yoap-text);
    font-size:16px;
    line-height:1.5;
}
.yoap-booking-app *{box-sizing:border-box}
.yoap-booking-app [hidden]{display:none!important}
.yoap-booking-intro{margin-bottom:1.25rem;padding:1.5rem 1.6rem;background:var(--yoap-bg);border:1px solid var(--yoap-border);border-radius:14px}
.yoap-booking-intro h2{margin:.15rem 0 .35rem;color:var(--yoap-text)!important;font-size:clamp(1.7rem,3vw,2.4rem)}
.yoap-booking-intro p{margin:.25rem 0;color:var(--yoap-muted)!important}
.yoap-booking-kicker{font-weight:800;letter-spacing:.07em;color:var(--yoap-accent)!important}
.yoap-booking-section{display:grid;grid-template-columns:52px minmax(0,1fr);gap:1rem;margin:0 0 1rem;padding:1.35rem 1.45rem;background:var(--yoap-panel);border:1px solid var(--yoap-border);border-radius:14px}
.yoap-step-number{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--yoap-accent);color:var(--yoap-accent-dark);font-weight:900;font-size:1.15rem}
.yoap-step-content{min-width:0}
.yoap-step-content h3{margin:.2rem 0 1rem;color:var(--yoap-text)!important;font-size:1.35rem}
.yoap-booking-app label,.yoap-field-label{display:block;margin:.7rem 0 .35rem;color:var(--yoap-text)!important;font-weight:700}
.yoap-booking-app input[type=text],.yoap-booking-app input[type=email],.yoap-booking-app input[type=tel],.yoap-booking-app input[type=number],.yoap-booking-app input[type=date],.yoap-booking-app select{
    width:100%;min-height:48px;padding:.7rem .8rem;border:1px solid #657264;border-radius:8px;background:#fff!important;color:#111!important;font:inherit;box-shadow:none!important
}
.yoap-booking-app input:focus,.yoap-booking-app select:focus{outline:3px solid rgba(185,240,0,.28);outline-offset:1px;border-color:var(--yoap-accent)}
.yoap-help,.yoap-activity-info{margin:.55rem 0;color:var(--yoap-muted)!important;font-size:.93rem}
/* Keep Paintball opening/joining guidance visible inside dark panels and light theme prose. */
html body .yoap-booking-app[data-yoap-booking] .yoap-paintball-minimum-notice,
html body .yoap-booking-app[data-yoap-booking] .yoap-paintball-session-minimum{
    margin:.75rem 0!important;padding:.9rem 1rem;border:2px solid #d5a941;border-radius:10px;
    background:#3a3012!important;color:#fff1b8!important;font-size:1rem!important;line-height:1.55!important;
    overflow-wrap:anywhere;
}
html body .yoap-booking-app[data-yoap-booking] .yoap-paintball-minimum-notice strong{color:#fff7de!important}
html body .yoap-booking-app[data-yoap-booking] .yoap-paintball-minimum-notice a{
    color:#ffe388!important;font-weight:800;text-decoration:underline;text-underline-offset:3px;
}
html body .yoap-booking-app[data-yoap-booking] .yoap-paintball-minimum-notice a:focus-visible{outline:3px solid #ffe388;outline-offset:3px}
html body .yoap-booking-app[data-yoap-booking] .yoap-paintball-session-minimum.is-joining-session{
    border-color:#82c46b;background:#173c23!important;color:#efffeb!important;
}
.yoap-activity-info{padding:.65rem .8rem;border-left:4px solid var(--yoap-accent);background:rgba(185,240,0,.07)}
.yoap-booking-app.yoap-paintball-date-first [data-activity-content] [data-package-wrap]{margin-top:.75rem}
.yoap-booking-app.yoap-paintball-date-first [data-options-section]{scroll-margin-top:140px}
.yoap-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.yoap-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem;margin:.5rem 0 1rem}
.yoap-choice-card{position:relative;display:flex!important;gap:.65rem;margin:0!important;padding:.9rem;border:1px solid var(--yoap-border);border-radius:10px;background:var(--yoap-panel-2);cursor:pointer;font-weight:400!important;transition:border-color .15s ease,background .15s ease}
.yoap-choice-card:hover{border-color:#748271}
.yoap-choice-card:has(input:checked){border-color:var(--yoap-accent);background:#26301f}
.yoap-choice-card input{margin:.22rem 0 0;width:18px;height:18px;accent-color:var(--yoap-accent);flex:0 0 auto}
.yoap-choice-body{display:flex;flex-direction:column;min-width:0;color:var(--yoap-text)}
.yoap-choice-body strong{color:var(--yoap-text)!important;font-size:1rem}
.yoap-choice-body span{color:var(--yoap-muted)!important;font-size:.91rem}
.yoap-choice-body small{margin-top:.3rem;color:var(--yoap-muted)!important;line-height:1.35}
.yoap-slot-card.yoap-slot-unavailable{opacity:.55;cursor:not-allowed}
.yoap-slot-card.yoap-slot-review{border-color:#8c7831}
.yoap-slot-status{font-weight:700}
.yoap-loading,.yoap-no-slots{padding:.9rem;border:1px dashed var(--yoap-border);border-radius:8px;color:var(--yoap-muted)!important}
.yoap-booking-alert{margin:0 0 1rem;padding:1rem 1.1rem;border:1px solid #8b3535;border-radius:10px;background:var(--yoap-error-bg);color:var(--yoap-error)!important;font-weight:650}
.yoap-booking-app .yoap-booking-summary{--yoap-text:#172019;--yoap-muted:#4c5d51;--yoap-border:#ccd3cf;background:#fff!important;color:var(--yoap-text);border:1px solid var(--yoap-border);border-radius:10px;overflow:hidden;margin-bottom:1rem}
.yoap-booking-summary>div{display:flex;justify-content:space-between;gap:1rem;padding:.72rem .85rem;border-bottom:1px solid var(--yoap-border);color:var(--yoap-text)}
.yoap-booking-summary>div:last-child{border-bottom:0}
.yoap-booking-summary span{color:var(--yoap-muted)!important}
.yoap-booking-summary strong{color:var(--yoap-text)!important;text-align:right;min-width:0;overflow-wrap:anywhere}
.yoap-booking-summary .yoap-total-row{--yoap-muted:#f7f8f4;background:#26301f!important;font-size:1.15rem}
.yoap-booking-summary .yoap-total-row strong{color:var(--yoap-accent)!important}
.yoap-review-message{display:block!important;background:var(--yoap-review-bg);color:var(--yoap-review)!important;line-height:1.45}
.yoap-review-message strong{color:var(--yoap-review)!important;text-align:left!important}
.yoap-check-row{display:flex!important;align-items:flex-start;gap:.65rem;margin:.8rem 0!important;font-weight:400!important}
.yoap-check-row input{margin:.25rem 0 0;width:18px;height:18px;accent-color:var(--yoap-accent);flex:0 0 auto}
.yoap-check-row a{color:var(--yoap-accent)!important;text-decoration:underline}
.yoap-booking-submit{display:inline-flex;align-items:center;justify-content:center;min-height:50px;margin-top:.65rem;padding:.75rem 1.25rem;border:2px solid var(--yoap-accent);border-radius:8px;background:var(--yoap-accent)!important;color:#101600!important;font:inherit;font-weight:900;cursor:pointer;text-transform:uppercase;letter-spacing:.025em}
.yoap-booking-submit:hover{filter:brightness(.95)}
.yoap-booking-submit:disabled{opacity:.5;cursor:not-allowed}
.yoap-payment-note{margin:.65rem 0 0;color:var(--yoap-muted)!important;font-size:.9rem}
.yoap-booking-success{padding:1.6rem;border:1px solid var(--yoap-accent);border-radius:14px;background:var(--yoap-panel);color:var(--yoap-text)}
.yoap-booking-success h3{color:var(--yoap-text)!important;font-size:1.5rem;margin:.25rem 0}
.yoap-booking-success p{color:var(--yoap-text)!important}
.yoap-success-mark{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--yoap-accent);color:#111;font-size:1.5rem;font-weight:900}
.yoap-booking-notice{max-width:900px;margin:2rem auto;padding:1rem;border-radius:8px}
.yoap-booking-error{background:#4b1717;color:#ffd8d8}
@media(max-width:640px){
    .yoap-booking-app{margin:1rem auto}
    .yoap-booking-section{grid-template-columns:1fr;padding:1rem}
    .yoap-step-number{width:38px;height:38px}
    .yoap-two-col{grid-template-columns:1fr;gap:0}
    .yoap-choice-grid{grid-template-columns:1fr}
    .yoap-booking-summary>div{align-items:flex-start}
}

/* v0.7.1 customer-booking UX improvements */
.yoap-booking-app{margin-top:4rem;scroll-margin-top:140px}
.yoap-availability-hint{margin:.15rem 0 .65rem;padding:.75rem .85rem;border-left:4px solid var(--yoap-accent);background:rgba(185,240,0,.07);color:var(--yoap-text)!important;font-weight:700}
.yoap-calendar{margin:.8rem 0 1rem;padding:.8rem;border:1px solid var(--yoap-border);border-radius:12px;background:var(--yoap-panel-2)}
.yoap-calendar-toolbar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:.65rem;margin-bottom:.75rem}
.yoap-calendar-toolbar strong{text-align:center;color:var(--yoap-text)!important;font-size:1.05rem}
.yoap-calendar-nav{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--yoap-border);border-radius:8px;background:#fff!important;color:#111!important;font:inherit;font-weight:900;cursor:pointer}
.yoap-calendar-nav:disabled{opacity:.35;cursor:not-allowed}
.yoap-calendar-weekdays,.yoap-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.yoap-calendar-weekdays{margin-bottom:.35rem}
.yoap-calendar-weekdays span{text-align:center;color:var(--yoap-muted)!important;font-size:.78rem;font-weight:800}
.yoap-calendar-day,.yoap-calendar-blank{min-width:0;aspect-ratio:1/1}
.yoap-calendar-day{display:flex;align-items:center;justify-content:center;min-height:42px;padding:.2rem;border:1px solid var(--yoap-border);border-radius:8px;background:#111812!important;color:var(--yoap-muted)!important;font:inherit;font-weight:800;cursor:pointer}
.yoap-calendar-day:disabled{opacity:.38;cursor:not-allowed}
.yoap-calendar-day.yoap-calendar-available{border-color:#719200;background:#243015!important;color:#f7f8f4!important}
.yoap-calendar-day.yoap-calendar-review{border-color:#9a7b18;background:#352d13!important;color:#fff1b4!important}
.yoap-calendar-day.is-selected{outline:3px solid var(--yoap-accent);outline-offset:1px;background:var(--yoap-accent)!important;color:#111!important}
.yoap-calendar-day:not(:disabled):focus{outline:3px solid rgba(185,240,0,.35);outline-offset:1px}
.yoap-calendar-loading{grid-column:1/-1;padding:1rem;text-align:center;color:var(--yoap-muted)!important}
.yoap-calendar-error{color:var(--yoap-error)!important}
.yoap-calendar-status{margin:.75rem 0 0;color:var(--yoap-muted)!important;font-size:.9rem}
.yoap-date-fallback{margin:.9rem 0 0;color:var(--yoap-muted)!important}
.yoap-date-fallback summary{cursor:pointer;color:var(--yoap-muted)!important;font-weight:700}
.yoap-date-fallback label{margin-top:.65rem}
.yoap-selected-date{margin:.7rem 0 0;padding:.6rem .75rem;border-radius:8px;background:#26301f;color:var(--yoap-text)!important;font-weight:800}
@media(max-width:640px){
    .yoap-booking-app{margin-top:2.5rem}
    .yoap-calendar{padding:.6rem}
    .yoap-calendar-weekdays,.yoap-calendar-days{gap:.2rem}
    .yoap-calendar-day{min-height:40px;border-radius:6px;font-size:.92rem}
    .yoap-calendar-weekdays span{font-size:.7rem}
}


/* v1.5.5 VIP Paintball Ticket Book information page */
.yoap-vip-information{
    --yoap-bg:#0f1711;
    --yoap-panel:#172019;
    --yoap-text:#f7f8f4;
    --yoap-muted:#c4cbbf;
    --yoap-border:#3d493e;
    --yoap-accent:#b9f000;
    max-width:960px;
    margin:2rem auto 1.25rem;
    color:var(--yoap-text);
    font-size:16px;
    line-height:1.6;
}
.yoap-vip-information *{box-sizing:border-box}
.yoap-vip-hero,.yoap-vip-card{
    padding:1.5rem 1.6rem;
    border:1px solid var(--yoap-border);
    border-radius:14px;
    background:var(--yoap-bg);
}
.yoap-vip-hero{margin-bottom:1rem}
.yoap-vip-card{background:var(--yoap-panel)}
.yoap-vip-information h1,
.yoap-vip-information h2,
.yoap-vip-information h3,
.yoap-vip-information h4{
    color:var(--yoap-text)!important;
}
.yoap-vip-information h1{margin:.15rem 0 .4rem;font-size:clamp(2rem,4vw,3rem)}
.yoap-vip-information h2{margin:.15rem 0 1rem;font-size:clamp(1.5rem,3vw,2rem)}
.yoap-vip-information h3{margin:1.6rem 0 .55rem;font-size:1.3rem}
.yoap-vip-information h4{margin:1.25rem 0 .25rem;font-size:1.05rem}
.yoap-vip-information p,
.yoap-vip-information li{color:var(--yoap-muted)!important}
.yoap-vip-information strong{color:var(--yoap-text)!important}
.yoap-vip-kicker{margin:0;color:var(--yoap-accent)!important;font-weight:900;letter-spacing:.07em}
.yoap-vip-information ol{padding-left:1.5rem}
.yoap-vip-booking-image{margin:1.35rem 0}
.yoap-vip-booking-image img{
    display:block;
    width:100%;
    max-width:760px;
    height:auto;
    margin:0 auto;
    border:1px solid var(--yoap-border);
    border-radius:12px;
}
@media(max-width:640px){
    .yoap-vip-information{margin:1rem auto}
    .yoap-vip-hero,.yoap-vip-card{padding:1rem}
}

/* Keep VIP dark-panel headings readable over the child theme's prose colours. */
html body .yoap-vip-information :is(.yoap-vip-hero,.yoap-vip-card) :is(h1,h2,h3,h4),
html body .yoap-booking-app[data-booking-mode="vip_paintball"] :is(.yoap-booking-intro,.yoap-step-content,.yoap-booking-success) :is(h2,h3,h4){
    color:#f7f8f4!important;
}
