.divebk-form { display: flex; flex-direction: column; gap: 18px; max-width: 480px; }
.divebk-field label { display: block; font-weight: 600; margin-bottom: 6px; }
.divebk-field input[type=text], .divebk-field input[type=number], .divebk-field select { width: 100%; }
.divebk-date-display { cursor: pointer; background: #fff; }
.divebk-hint { font-size: .9em; color: #666; margin: 4px 0 0; }
.divebk-error { color: #b32d2e; }
.divebk-slots { display: flex; flex-direction: column; gap: 10px; }
.divebk-slot { position: relative; display: flex !important; align-items: center; flex-wrap: wrap; gap: 6px 10px; padding: 14px 16px 14px 52px; margin: 0 !important; background: #fff; color: #222; border: 2px solid #cfd6dc; border-radius: 999px; cursor: pointer; font-weight: 400 !important; line-height: 1.3; transition: border-color .15s, box-shadow .15s; }
.divebk-slot:hover { border-color: #0a7ea4; }
.divebk-slot input[type=radio] { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }
.divebk-slot-check { position: absolute; left: 16px; top: 50%; width: 24px; height: 24px; margin-top: -12px; border: 2px solid #9aa4ad; border-radius: 50%; background: #fff; box-sizing: border-box; }
.divebk-slot-check::after { content: ""; position: absolute; left: 7px; top: 3px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); opacity: 0; }
.divebk-slot:has(input:checked) { border-color: #0a7ea4; background: #eaf6fb; box-shadow: 0 0 0 3px rgba(10,126,164,.18); }
.divebk-slot:has(input:checked) .divebk-slot-check { background: #0a7ea4; border-color: #0a7ea4; }
.divebk-slot:has(input:checked) .divebk-slot-check::after { opacity: 1; }
.divebk-slot.is-disabled { opacity: .5; cursor: not-allowed; background: #f3f4f5; }
.divebk-slot-time { font-size: 1.15em; font-weight: 800; letter-spacing: .01em; }
.divebk-slot-name { font-weight: 600; }
.divebk-slot-status { color: #4b5560; font-size: .92em; }
.divebk-slot-price { margin-left: auto; font-weight: 700; }
.divebk-slot.is-disabled .divebk-slot-status { color: #b32d2e; }
/* Add-on tiles */
.divebk-label-note { font-weight: 400; color: #777; font-size: .85em; }
.divebk-addons { display: grid; grid-template-columns: 1fr; gap: 8px; }
.divebk-addon { position: relative; display: flex !important; align-items: flex-start; gap: 12px; padding: 12px 14px 12px 46px; margin: 0 !important; background: #fff; color: #222; border: 2px solid #dfe4e8; border-radius: 10px; cursor: pointer; font-weight: 400 !important; line-height: 1.35; transition: border-color .15s, box-shadow .15s; }
.divebk-addon:hover { border-color: #0a7ea4; }
.divebk-addon input[type=checkbox] { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }
.divebk-addon-check { position: absolute; left: 14px; top: 14px; width: 20px; height: 20px; border: 2px solid #9aa4ad; border-radius: 5px; background: #fff; box-sizing: border-box; }
.divebk-addon-check::after { content: ""; position: absolute; left: 5px; top: 1px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); opacity: 0; }
.divebk-addon:has(input:checked) { border-color: #0a7ea4; background: #eaf6fb; box-shadow: 0 0 0 3px rgba(10,126,164,.15); }
.divebk-addon:has(input:checked) .divebk-addon-check { background: #0a7ea4; border-color: #0a7ea4; }
.divebk-addon:has(input:checked) .divebk-addon-check::after { opacity: 1; }
.divebk-addon-body { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.divebk-addon-name { font-weight: 700; }
.divebk-addon-desc { font-size: .88em; color: #5a6670; }
.divebk-addon-price { flex: 0 0 auto; font-weight: 800; white-space: nowrap; color: #0a7ea4; }
.divebk-addon-price .woocommerce-Price-amount { color: inherit; }
.divebk-total { font-size: 1.15em; font-weight: 700; }
.divebk-policy { display: block; margin-top: 10px; }
/* Hide express-pay buttons on dive products (they bypass the booking form). */
.divebk-no-express .ppc-button-wrapper, .divebk-no-express #ppc-button, .divebk-no-express [id^="ppc-button"], .divebk-no-express .ppcp-express-checkout, .divebk-no-express .wc-ppcp-button, .divebk-no-express #ppcp-google-pay, .divebk-no-express #ppcp-apple-pay, .divebk-no-express .wc-stripe-payment-request-wrapper, .divebk-no-express #wc-stripe-payment-request-wrapper, .divebk-no-express #wc-stripe-payment-request-button-separator, .divebk-no-express .wc-stripe-express-checkout-element, .divebk-no-express .wc-stripe-express-checkout__separator, .divebk-no-express .wc-square-digital-wallet { display: none !important; }
.divebk-waiver-agree { margin-top: 10px; }
.divebk-thankyou { margin: 24px 0; }
.divebk-policy { font-size: .9em; color: #555; }
.divebk-policy summary { cursor: pointer; font-weight: 600; }
.divebk-policy-box { border: 1px solid #ddd; padding: 10px 14px; border-radius: 6px; margin: 14px 0 6px; font-size: .9em; max-height: 160px; overflow: auto; }

.divebk-added { background: #eaf6fb !important; border: 2px solid #0a7ea4 !important; border-radius: 12px; padding: 18px 20px !important; margin: 0 0 24px !important; color: #1b2a33 !important; }
.divebk-added * { color: inherit; }
.divebk-added-head { font-weight: 800; color: #0a7ea4 !important; font-size: 1.1em; margin: 0 0 10px; }
.divebk-added-list { list-style: none !important; margin: 0 0 14px !important; padding: 0 !important; }
.divebk-added-list li { display: flex; flex-wrap: wrap; gap: 4px 8px; padding: 8px 10px; margin: 0 0 6px !important; border-bottom: 0; background: rgba(255,255,255,.6); border-radius: 8px; font-size: .95em; list-style: none !important; }
.divebk-added-list li.is-new { background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.divebk-added-list li strong { color: #0a7ea4 !important; }
.divebk-added-total { margin-left: auto; font-weight: 700; }
.divebk-added-q { font-weight: 700; margin: 6px 0 10px !important; font-size: 1.1em; }
.divebk-added-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; }
.divebk-added-actions a { flex: 1 1 180px; display: inline-block; text-align: center; padding: 12px 16px !important; border-radius: 999px !important; font-weight: 700 !important; font-size: .95em !important; text-decoration: none !important; line-height: 1.2 !important; border: 2px solid #0a7ea4 !important; background: #fff !important; color: #0a7ea4 !important; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; transition: background .15s, color .15s; }
.divebk-added-actions a:hover { background: #d8eef6 !important; }
.divebk-added-actions a.divebk-btn-checkout { background: #0a7ea4 !important; color: #fff !important; }
.divebk-added-actions a.divebk-btn-checkout:hover { background: #086a8a !important; }
.divebk-added .divebk-hint { color: #4b5560 !important; margin: 0; font-size: .88em; }

/* Checkout divers section */
.divebk-checkout-divers { margin: 24px 0; }
.divebk-dive-counts { display: flex; flex-direction: column; gap: 6px; margin: 10px 0 16px; }
.divebk-dive-count { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 8px 12px; border: 1px solid #ddd; border-radius: 8px; background: #fafafa; }
.divebk-dive-count-label { font-weight: 600; }
.divebk-dive-count-num { font-weight: 700; color: #b32d2e; }
.divebk-dive-count.is-ok .divebk-dive-count-num { color: #1a8f4a; }
.divebk-dive-count.is-ok .divebk-dive-count-num::before { content: "✓ "; }
.divebk-diver-card { border: 1px solid #ddd; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; background: #fff; color: #222; }
.divebk-diver-card-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.divebk-remove-diver { font-size: .85em; color: #b32d2e; }
.divebk-diver-fields { display: grid; grid-template-columns: 1.3fr 1.3fr 1fr; gap: 8px; margin-bottom: 8px; }
.divebk-diver-fields input, .divebk-diver-fields select { width: 100%; min-width: 0; }
.divebk-diver-on { display: flex; flex-direction: column; gap: 4px; font-size: .92em; }
.divebk-diver-on.is-single { display: none; }
.divebk-on { display: flex; align-items: center; gap: 8px; margin: 0 !important; font-weight: 400 !important; }
.divebk-on input:disabled + * , .divebk-on:has(input:disabled) { opacity: .5; }
@media (max-width: 640px) { .divebk-diver-fields { grid-template-columns: 1fr; } }
