/* Destination Ghost Bookings: booking form and ticket page. A self-contained light card that sits
   on any page background. Override the variables on .dgb to restyle. */
.dgb{--dgb-ink:#141a24;--dgb-soft:#5b6472;--dgb-line:#e3e7ee;--dgb-tint:#f4f7fb;--dgb-blue:#0b6fd1;--dgb-blue-2:#0958a8;--dgb-blue-tint:#e8f2fd;--dgb-ok:#137a3a;--dgb-ok-tint:#e6f5ec;--dgb-bad:#b42318;--dgb-bad-tint:#fdecea;--dgb-gold:#9a6408;--dgb-gold-tint:#fdf4e3;color:var(--dgb-ink);font-size:16px;line-height:1.5;max-width:720px;margin:0 auto;text-align:left}
.dgb *,.dgb *::before,.dgb *::after{box-sizing:border-box}
.dgb [hidden]{display:none!important}
.dgb h1,.dgb h2,.dgb h3,.dgb p,.dgb dl,.dgb dd,.dgb ul{margin:0;padding:0}
.dgb button{font:inherit;color:inherit}
.dgb-card{background:#fff;color:var(--dgb-ink);border:1px solid var(--dgb-line);border-radius:18px;padding:22px;box-shadow:0 8px 30px rgba(20,26,36,.08)}
.dgb-h{font-size:clamp(22px,4vw,28px);line-height:1.15;font-weight:800;color:var(--dgb-ink);letter-spacing:-.01em;padding:0}
.dgb-k{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--dgb-blue);margin:0 0 4px}
.dgb-muted{color:var(--dgb-soft);font-size:15px}
.dgb-sum{color:var(--dgb-soft);margin:6px 0 0}
.dgb-test{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:var(--dgb-gold-tint);color:var(--dgb-gold);font-weight:700;font-size:14px}
.dgb-back{background:none;border:0;padding:0;margin:0 0 12px;color:var(--dgb-blue);font-weight:700;cursor:pointer}
.dgb-top{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;margin:0 0 6px}
.dgb-top__img{width:96px;height:96px;object-fit:cover;border-radius:14px}
.dgb-top:not(:has(img)){grid-template-columns:1fr}
.dgb-step{border-top:1px solid var(--dgb-line);margin:20px 0 0;padding:18px 0 0}
.dgb-sh{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:800;margin:0 0 12px;padding:0;color:var(--dgb-ink)}
.dgb-sh span{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--dgb-blue);color:#fff;font-size:14px}
/* calendar */
.dgb-cal__top{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px}
.dgb-cal__top strong{font-size:16px}
.dgb-nav{width:40px;height:40px;border-radius:50%;border:1px solid var(--dgb-line);background:#fff;font-size:22px;line-height:1;cursor:pointer}
.dgb-nav:disabled{opacity:.35;cursor:default}
.dgb-cal__g{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.dgb-cal__dow{text-align:center;font-size:12px;font-weight:700;color:var(--dgb-soft);padding:2px 0}
.dgb-day{aspect-ratio:1;min-height:40px;border-radius:12px;border:0;background:transparent;color:#a3abb8;font-weight:600;cursor:default}
.dgb-day.is-open{background:var(--dgb-blue-tint);color:var(--dgb-blue-2);cursor:pointer;font-weight:800}
.dgb-day.is-open:hover{background:#d4e8fc}
.dgb-day.is-sold{text-decoration:line-through}
.dgb-day.is-today{box-shadow:inset 0 0 0 2px var(--dgb-line)}
.dgb-day.is-on{background:var(--dgb-blue);color:#fff;box-shadow:none}
/* times */
.dgb-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.dgb-times>p{grid-column:1/-1}
.dgb-time{display:grid;gap:2px;padding:12px;border-radius:12px;border:1px solid var(--dgb-line);background:#fff;cursor:pointer;text-align:center}
.dgb-time strong{font-size:17px}
.dgb-time small{font-size:12px;color:var(--dgb-soft);font-weight:700}
.dgb-time.is-on{border-color:var(--dgb-blue);box-shadow:inset 0 0 0 1px var(--dgb-blue);background:var(--dgb-blue-tint)}
.dgb-time.is-off{opacity:.5;cursor:default}
/* tickets */
.dgb-tix{display:grid;gap:10px}
.dgb-tk{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--dgb-line);border-radius:12px}
.dgb-tk__t span{color:var(--dgb-soft);margin-left:4px}
.dgb-tk__t small{display:block;color:var(--dgb-soft);font-size:13px}
.dgb-step-n{display:flex;align-items:center;gap:6px}
.dgb-step-n button{width:40px;height:40px;border-radius:50%;border:1px solid var(--dgb-line);background:#fff;font-size:20px;font-weight:700;cursor:pointer;line-height:1}
.dgb-step-n button:disabled{opacity:.35;cursor:default}
.dgb-step-n output{min-width:28px;text-align:center;font-weight:800;font-size:18px}
.dgb-promo{margin:12px 0 0}
.dgb-promo summary{cursor:pointer;color:var(--dgb-blue);font-weight:700;font-size:14px}
.dgb-promo .dgb-row{display:flex;gap:8px;margin:10px 0 0}
.dgb-promo__msg{font-size:14px;color:var(--dgb-ok);margin:6px 0 0;font-weight:600}
.dgb-promo__msg.is-bad{color:var(--dgb-bad)}
.dgb-total{margin:14px 0 0}
.dgb-total dl{display:grid;gap:4px;padding:12px 14px;border-radius:12px;background:var(--dgb-tint)}
.dgb-total dl>div{display:flex;justify-content:space-between;gap:12px}
.dgb-total dt{color:var(--dgb-soft)}
.dgb-total .is-off dd{color:var(--dgb-ok)}
.dgb-total__t{border-top:1px solid var(--dgb-line);padding-top:6px;margin-top:4px;font-weight:800;font-size:18px}
.dgb-total__t dt{color:var(--dgb-ink)}
/* details */
.dgb-who{display:grid;gap:12px}
.dgb-who label{display:grid;gap:4px;font-weight:700;font-size:14px}
.dgb-who label small{font-weight:500;color:var(--dgb-soft)}
.dgb-in{width:100%;min-height:48px;padding:10px 12px;border:1px solid #cdd3dc;border-radius:10px;background:#fff;color:var(--dgb-ink);font:inherit;font-size:16px}
textarea.dgb-in{min-height:64px;resize:vertical}
.dgb-in:focus{outline:2px solid var(--dgb-blue);outline-offset:1px;border-color:var(--dgb-blue)}
.dgb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.dgb-meet{font-size:15px}
.dgb-policy{font-size:13px;color:var(--dgb-soft)}
.dgb-err{padding:10px 12px;border-radius:10px;background:var(--dgb-bad-tint);color:var(--dgb-bad);font-weight:600;font-size:15px}
.dgb-total .dgb-err{margin:8px 0 0}
.dgb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 20px;border:0;border-radius:999px;background:var(--dgb-blue);color:#fff!important;font-weight:800;font-size:16px;text-decoration:none!important;cursor:pointer;transition:background .15s}
.dgb-btn:hover{background:var(--dgb-blue-2)}
.dgb-btn:disabled{background:#b9c2cf;cursor:default}
.dgb-btn--ghost{background:#fff;color:var(--dgb-blue)!important;box-shadow:inset 0 0 0 1px var(--dgb-line)}
.dgb-btn--ghost:hover{background:var(--dgb-blue-tint)}
.dgb-btn--pay{width:100%;min-height:56px;font-size:17px}
.dgb-secure{text-align:center;font-size:13px;color:var(--dgb-soft)}
/* tour picker */
.dgb-chips{display:flex;gap:8px;overflow-x:auto;margin:14px 0 4px;padding-bottom:2px}
.dgb-chip{flex:0 0 auto;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--dgb-line);background:#fff;font-weight:700;cursor:pointer}
.dgb-chip.is-on{background:var(--dgb-blue);border-color:var(--dgb-blue);color:#fff}
.dgb-tours{list-style:none;display:grid;gap:10px;margin:14px 0 0}
.dgb-tour{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;align-items:center;width:100%;padding:10px;border:1px solid var(--dgb-line);border-radius:14px;background:#fff;text-align:left;cursor:pointer}
.dgb-tour:hover{border-color:var(--dgb-blue)}
.dgb-tour img,.dgb-tour__ph{width:88px;height:88px;border-radius:10px;object-fit:cover;background:var(--dgb-tint)}
.dgb-tour__b{display:grid;gap:2px}
.dgb-tour__t{font-size:18px;font-weight:800}
.dgb-tour__m{color:var(--dgb-soft);font-size:14px}
/* ticket page */
.dgb-page{padding:clamp(110px,14vw,150px) 16px 60px}
.dgb--ticket{max-width:520px}
.dgb-state{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px;padding:14px 16px;border-radius:14px;background:var(--dgb-tint)}
.dgb-state--ok{background:var(--dgb-ok-tint);color:var(--dgb-ok)}
.dgb-state--off{background:var(--dgb-bad-tint);color:var(--dgb-bad)}
.dgb-state>strong{margin-right:4px}
.dgb-state--wait{background:var(--dgb-blue-tint);color:var(--dgb-blue-2)}
.dgb-spin{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:3px solid currentColor;border-right-color:transparent;animation:dgbspin .8s linear infinite}
@keyframes dgbspin{to{transform:rotate(360deg)}}
.dgb-ticket{text-align:center}
.dgb-when{margin:8px 0 16px;font-size:17px}
.dgb-qr{width:220px;max-width:70%;margin:0 auto 10px;padding:8px;border-radius:12px;border:1px solid var(--dgb-line);background:#fff}
.dgb-qr svg{display:block;width:100%;height:auto}
.dgb-code{display:grid;gap:2px;margin:0 0 18px}
.dgb-code span{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--dgb-soft)}
.dgb-code strong{font:800 26px/1.1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.12em}
.dgb-dl{display:grid;gap:0;text-align:left;border-top:1px solid var(--dgb-line)}
.dgb-dl>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--dgb-line)}
.dgb-dl dt{color:var(--dgb-soft);font-size:14px}
.dgb-dl a{color:var(--dgb-blue);font-weight:700}
.dgb-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:18px 0 0}
.dgb-info{text-align:left;margin:18px 0 0;padding:14px;border-radius:12px;background:var(--dgb-tint)}
.dgb-info h2{font-size:15px;margin:0 0 4px}
.dgb-ticket .dgb-policy{margin:14px 0 0;text-align:left}
@media (max-width:520px){.dgb-card{padding:18px 14px;border-radius:16px}.dgb-top{grid-template-columns:72px minmax(0,1fr)}.dgb-top__img{width:72px;height:72px}.dgb-day{min-height:36px;border-radius:10px}}
/* Keep the form's own look inside themes that style every input. */
.dgb .dgb-in,.dgb input.dgb-in[type],.dgb textarea.dgb-in{background:#fff!important;color:var(--dgb-ink)!important;border:1px solid #cdd3dc!important;box-shadow:none!important;border-radius:10px!important;font-family:inherit!important;-webkit-text-fill-color:var(--dgb-ink)}
.dgb .dgb-in::placeholder{color:#8a93a1!important;-webkit-text-fill-color:#8a93a1}
.dgb .dgb-in:focus{outline:2px solid var(--dgb-blue)!important;outline-offset:1px;border-color:var(--dgb-blue)!important}
.dgb .dgb-in:-webkit-autofill{-webkit-box-shadow:0 0 0 40px #fff inset!important}
.dgb h1,.dgb h2,.dgb h3,.dgb strong,.dgb dt,.dgb dd,.dgb label{color:inherit}
.dgb .dgb-card h1,.dgb .dgb-card h2,.dgb .dgb-card h3{color:var(--dgb-ink)!important}
.dgb .dgb-info h2{font:800 15px/1.3 inherit;font-family:inherit!important;margin:0 0 4px}
/* 0.4: extras, gift cards, text opt-in */
.dgb-extras{margin:14px 0 0;display:grid;gap:10px}
.dgb-extras__h{font-weight:800;font-size:15px}
.dgb-extras__h small{font-weight:500;color:var(--dgb-soft)}
.dgb-add1{display:inline-flex;align-items:center;gap:6px;font-weight:700;cursor:pointer}
.dgb-add1 input,.dgb-check input{width:20px;height:20px;accent-color:var(--dgb-blue)}
.dgb-who label.dgb-check{display:flex;align-items:flex-start;gap:10px;font-weight:500;font-size:14px;color:var(--dgb-soft)}
.dgb-check input{flex:0 0 auto;margin-top:2px}
.dgb-time__p{color:var(--dgb-blue-2)!important}
.dgb-tk__t s{color:#a3abb8;margin-right:2px}
.dgb-gift{display:grid;gap:14px}
.dgb-gift label{display:grid;gap:4px;font-weight:700;font-size:14px}
.dgb-gift label small{font-weight:500;color:var(--dgb-soft)}
.dgb-amts{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.dgb-amts legend{font-weight:800;margin:0 0 8px;padding:0}
.dgb-gift .dgb-amt{display:block;position:relative;cursor:pointer}
.dgb-amt input{position:absolute;opacity:0;inset:0}
.dgb-amt span{display:inline-grid;place-items:center;min-width:84px;min-height:48px;padding:0 16px;border:1px solid var(--dgb-line);border-radius:12px;font-weight:800;font-size:17px}
.dgb-amt input:checked+span{border-color:var(--dgb-blue);box-shadow:inset 0 0 0 1px var(--dgb-blue);background:var(--dgb-blue-tint);color:var(--dgb-blue-2)}
.dgb-amt input:focus-visible+span{outline:2px solid var(--dgb-blue);outline-offset:2px}
.dgb-gift .dgb-other{flex:1 0 100%;display:none}
.dgb-amts:has(.dgb-amt--other input:checked) .dgb-other{display:grid}
.dgb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.dgb-secure{font-size:13px;color:var(--dgb-soft);text-align:center}
.dgb-meetimg{display:block;width:100%;height:auto;border-radius:12px;margin:12px 0 0}
.dgb-phone{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:10px}
.dgb-phone select.dgb-in{appearance:auto}
@media (max-width:420px){.dgb-phone{grid-template-columns:1fr}}
