/* Shared campaign presentation. Reuses site brand, forms and public timetable. */
.db2-campaign-hero{padding:clamp(50px,7vw,100px) 0;background:var(--paper2)}
.db2-campaign-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.75fr);gap:clamp(20px,5vw,60px);align-items:center}
.db2-campaign-hero .intro{margin:18px 0 26px}
.db2-campaign-photo{width:100%;max-height:475px;object-fit:cover;border:3px solid var(--ink)}
.db2-campaign-panel{padding:clamp(40px,5vw,70px) 0}
.db2-campaign-panel:nth-of-type(even){background:var(--paper2)}
.db2-campaign-panel h2{font-family:Arial Black,Impact,sans-serif;text-transform:uppercase;line-height:1.04;letter-spacing:-.04em;font-size:clamp(2rem,4vw,3rem);margin:0 0 20px}
.db2-campaign-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.db2-campaign-benefits article,.db2-gift-details article{border:2px solid #111;padding:24px;background:#fff}
.db2-campaign-benefits h3,.db2-gift-details h3{margin:0 0 8px;font-size:1.2rem}
.db2-campaign-benefits p,.db2-gift-details p{margin:0}
.db2-interest-section{background:var(--paper);padding:54px 0 80px}
.db2-interest-section .intro{margin-bottom:18px}
/* One compact tabbed picker for all three public entry points. */
.db2-interest-schedule{display:block;margin:22px 0;min-width:0}
.db2-time-picker{background:#fff;border:2px solid var(--ink);padding:clamp(14px,3vw,25px);max-width:850px}
.db2-time-days{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 24px}
.db2-time-day{min-width:0;min-height:56px;padding:8px 2px;background:var(--paper2);border:2px solid #ded9d2;border-radius:8px;font-size:clamp(.81rem,2.3vw,1.06rem);font-weight:900;cursor:pointer;color:var(--ink)}
.db2-time-day.is-active,.db2-time-day[aria-pressed="true"]{background:var(--pink2);border-color:var(--ink)}
.db2-time-heading{font-family:Arial,Helvetica,sans-serif;font-size:clamp(1.15rem,3.5vw,1.65rem);letter-spacing:-.025em;margin:0 0 18px}
.db2-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.db2-time-option{display:flex;min-width:0;min-height:85px;align-items:center;justify-content:center;flex-direction:column;gap:3px;background:var(--paper2);border:2px solid #ded9d2;border-radius:9px;cursor:pointer;padding:8px 4px;color:var(--ink)}
.db2-time-clock{font-size:clamp(1.12rem,3.5vw,1.6rem);font-weight:850;line-height:1.2}
.db2-time-caption{font-size:clamp(.65rem,2vw,.88rem);color:#655f59;line-height:1.2}
.db2-time-option[aria-pressed="true"]{background:var(--pink2);border-color:var(--ink)}
.db2-time-day:hover,.db2-time-option:hover{border-color:var(--ink)}
.db2-time-day:focus-visible,.db2-time-option:focus-visible,.db2-time-continue:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.db2-time-continue{display:flex;align-items:center;justify-content:center;width:100%;min-height:58px;margin:20px 0 0;padding:12px 16px;text-align:center;text-decoration:none;background:var(--ink);color:#fff;border:2px solid var(--ink);border-radius:11px;font-weight:900;font-size:clamp(.95rem,2.5vw,1.16rem);cursor:pointer}
.db2-time-continue:hover{background:#333;color:#fff}
.db2-time-continue:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:380px){.db2-time-days{gap:4px}.db2-time-day{font-size:.77rem;min-height:47px}.db2-time-grid{gap:6px}.db2-time-option{min-height:76px}}
.db2-campaign-safety{padding:15px 20px;background:#fff;border-left:6px solid var(--pink);max-width:840px}
.db2-gift-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.db2-gift-price{font-weight:950;font-size:clamp(2.5rem,5vw,4rem);margin:12px 0}
.db2-campaign-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:25px 0}
.db2-campaign-cta .btn{min-width:220px}

@media(max-width:730px){.db2-campaign-grid,.db2-campaign-benefits,.db2-gift-details{grid-template-columns:1fr}.db2-campaign-photo{max-height:300px}}

/* Campaign pages stand alone: brand only, with legal notices in the footer. */
.db2-campaign-header{background:var(--paper);border-bottom:2px solid #111}
.db2-campaign-header-inner{display:flex;align-items:center;gap:12px;padding:12px 0}
.db2-campaign-header-inner strong{font-size:1.25rem;font-weight:900}
.db2-campaign-header-inner span{margin-left:auto;font-size:.85rem;font-weight:750}
@media(max-width:470px){.db2-campaign-header-inner span{display:none}}

/* Shared embedded copy of the existing request form contract. */
.db2-inline-request{max-width:850px;border:2px solid #111;background:#fff;padding:clamp(16px,3vw,30px)}
.db2-inline-programme{font-weight:900;font-size:1.06rem;margin:0 0 16px}
.db2-inline-request .db2-interest-schedule{margin:15px 0}
.db2-inline-request .db2-time-picker{border:0;padding:0}
.db2-inline-request .db2-campaign-safety{margin-top:18px;background:var(--paper2);border-left:5px solid var(--pink)}
.db2-inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}
.db2-inline-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.db2-inline-field label{font-size:.92rem;font-weight:850}
.db2-inline-field input,.db2-inline-field select,.db2-inline-field textarea{width:100%;min-height:48px;padding:10px;border:2px solid #111;border-radius:3px;background:#fff;color:#111}
.db2-inline-field textarea{min-height:85px}
.db2-inline-contact{margin-top:28px;padding-top:18px;border-top:1px solid #d6d1c9;scroll-margin-top:90px}
.db2-inline-contact h3{font-family:Arial Black,Impact,sans-serif;font-size:1.6rem;text-transform:uppercase;margin:0 0 4px}
.db2-inline-contact p{margin:8px 0}
.db2-inline-flex,.db2-inline-consent{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;line-height:1.45;margin:18px 0}
.db2-inline-flex input,.db2-inline-consent input{width:20px;height:20px;flex-shrink:0;margin:0}
.db2-inline-submit{margin-top:12px;width:100%}
.db2-inline-form-feedback{font-size:.88rem;font-weight:800;min-height:1.4em}
@media(max-width:630px){.db2-inline-fields{grid-template-columns:1fr}}

/* Catalogue-backed, selectable rows replacing the old pink price paragraph. */
.db2-programme-offers .intro{max-width:790px;margin-bottom:24px}
.db2-programme-choice-list{display:flex;flex-direction:column;gap:12px;max-width:910px}
.db2-programme-choice{display:grid;grid-template-columns:116px minmax(0,1fr);gap:22px;
 background:#fff;border:2px solid #151515;padding:16px;align-items:center}
.db2-programme-choice-image{width:116px;height:116px;object-fit:contain;background:var(--paper2)}
.db2-programme-choice-text h3{font-family:Arial Black,Impact,sans-serif;text-transform:uppercase;
 font-size:clamp(1.25rem,2.8vw,1.7rem);margin:0 0 4px}
.db2-programme-choice-text p{margin:4px 0;line-height:1.42}
.db2-programme-choice-meta{font-size:.88rem;font-weight:700;color:#615b55}
.db2-programme-choice-description{max-width:620px}
.db2-programme-choice-price{font-size:1.45rem;font-weight:950}
.db2-programme-choice-per{display:inline-block;font-size:.8rem;font-weight:650;
 color:#5e5750;margin-left:12px}
.db2-programme-choice-button{min-height:44px;padding:8px 16px;border:2px solid #151515;
 border-radius:3px;background:var(--paper2);font:inherit;font-weight:850;cursor:pointer;margin-top:7px}
.db2-programme-choice-button[aria-pressed="true"]{background:var(--pink2)}
.db2-programme-choice-button:hover{background:var(--pink2)}
.db2-programme-choice-button:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.db2-multiple-instruction{max-width:790px;font-size:.99rem;font-weight:650}
.db2-time-day[data-has-selection="true"]{position:relative}
.db2-time-day[data-has-selection="true"]:after{content:"";display:block;margin:3px auto 0;
 width:6px;height:6px;background:#111;border-radius:100%}
.db2-time-selection-summary{border-top:1px solid #d8d1c9;margin-top:18px;padding-top:12px}
.db2-time-selection-header{display:flex;justify-content:space-between;align-items:center;gap:10px}
.db2-time-clear{border:0;background:transparent;font:inherit;font-size:.86rem;
 text-decoration:underline;cursor:pointer;padding:5px;color:#111}
.db2-time-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.db2-time-chip{font:inherit;font-size:.82rem;font-weight:700;padding:7px 10px;
 border:1px solid #111;background:var(--paper2);border-radius:18px;cursor:pointer}
.db2-time-chip:hover{background:var(--pink2)}
@media(max-width:570px){
 .db2-programme-choice{grid-template-columns:84px minmax(0,1fr);gap:12px;padding:12px}
 .db2-programme-choice-image{width:84px;height:84px}
 .db2-programme-choice-price{font-size:1.23rem}
 .db2-programme-choice-per{margin-left:6px}
}

/* Keep selection compact without repeating an instruction under every time. */
.db2-time-picker[data-multi="true"] .db2-time-option{min-height:76px;gap:2px}
.db2-time-picker[data-multi="true"] .db2-time-caption:empty{display:none}
.db2-time-picker[data-multi="true"] .db2-time-caption:not(:empty){
 font-weight:900;color:#121212}
.db2-time-picker[data-multi="true"] .db2-time-heading{margin:14px 0}
.db2-inline-request .db2-multiple-instruction{margin:6px 0 12px;line-height:1.4}
.db2-inline-request .db2-campaign-safety{padding:8px 0;background:transparent;
 border-left:0;color:#625b54;font-size:.85rem;line-height:1.4;margin:8px 0}
.db2-inline-request .db2-inline-programme{font-size:.95rem;margin:0 0 8px}

.db2-account-choice{border:1px solid #bbb;border-radius:12px;padding:1rem;margin:0 0 1rem}.db2-account-choice legend{font-weight:700;padding:0 .3rem}.db2-account-choice label{display:flex;align-items:center;gap:.6rem;margin:.5rem 0}.db2-guardian-only[hidden]{display:none!important}.db2-guardian-pupil{padding:1rem;border:1px solid #bbb;border-radius:12px;margin:1rem 0}
