/* Pro Dive date picker — see date-picker.js. Uses the layout.mjs tokens. */
.dates{margin-top:4.5rem}
.dates .head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.dates .head .c-h2{margin:0}
.dates .head span{color:var(--muted);font-size:.9rem}
.dp-bar{display:grid;gap:.85rem;margin:0 0 1.5rem}
.dp-gloc{margin:1.4rem 0 .2rem;font-family:var(--display);font-size:1.35rem;text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--brand);padding-bottom:.2rem}
.dp-panel>h3+.dp-gloc{margin-top:.4rem}
.dp-gact{margin:.8rem 0 .4rem;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.dp-more{white-space:nowrap}
.dp-filter,.dp-views{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.dp-flabel{font-family:var(--display);font-weight:700;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);min-width:6.5rem}
.dp-chip{font:inherit;font-size:.92rem;border:1px solid #c9d3dd;background:var(--bg);color:var(--navy);border-radius:999px;padding:.38rem .95rem;cursor:pointer}
.dp-chip:hover{border-color:var(--navy)}
.dp-chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.dp-views{margin-left:auto}
.dp-views .dp-chip{border-radius:6px}
.dp-app{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:2rem;align-items:start}
.dp-app>.dp-bar,.dp-app>.table-scroll,.dp-app>p,.dp-app>.dp-empty{grid-column:1/-1}
.dp-cal{border:1px solid #c9d3dd;border-radius:10px;padding:1.1rem}
.dp-mhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.dp-mhead h3{margin:0;font-size:1.6rem;text-transform:uppercase;color:var(--navy)}
.dp-nav{font:inherit;font-size:1.6rem;line-height:1;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid #c9d3dd;background:var(--bg);color:var(--navy);cursor:pointer}
.dp-nav:disabled{opacity:.3;cursor:default}
.dp-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}
.dp-wd{text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:.25rem}
.dp-day{font:inherit;min-height:4.1rem;border-radius:8px;border:1px solid transparent;background:var(--soft);padding:.35rem .2rem;
  display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--ink)}
button.dp-day{cursor:pointer;border-color:#c9d3dd;background:var(--bg)}
button.dp-day:hover{border-color:var(--navy)}
button.dp-day[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.dp-off{background:transparent;color:#aab5c1}
.dp-n{font-weight:700;font-size:1rem;line-height:1.1}
.dp-dots{display:flex;gap:3px;min-height:7px;max-width:100%;overflow:hidden}
.dp-count{font-size:.68rem;line-height:1;color:var(--accent);font-weight:600;white-space:nowrap}
button.dp-day[aria-pressed="true"] .dp-count{color:var(--foam)}
.dp-dots i,.dp-key i{display:inline-block;width:7px;height:7px;border-radius:50%}
i.am{background:var(--accent)}
i.pm{background:#e3a008}
.dp-from{font-size:.72rem;color:var(--muted);line-height:1}
button.dp-day[aria-pressed="true"] .dp-from{color:var(--foam)}
.dp-full{opacity:.6}
.dp-full .dp-n{text-decoration:line-through}
.dp-key{display:flex;gap:1.25rem;margin:.85rem 0 0;font-size:.85rem;color:var(--muted)}
.dp-key span{display:inline-flex;align-items:center;gap:.4rem}
.dp-panel h3{margin:0 0 .85rem;font-size:1.8rem;text-transform:uppercase;color:var(--navy);line-height:1.05}
.dp-sess{border:1px solid #c9d3dd;border-radius:10px;padding:1.1rem 1.2rem;margin-bottom:1rem}
.dp-shead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;align-items:baseline}
.dp-shead b{font-family:var(--display);font-size:1.35rem;text-transform:uppercase;color:var(--navy)}
.dp-shead span{font-size:.88rem;color:var(--muted)}
.dp-site{margin:.55rem 0 0;display:flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:center}
.dp-site b{font-weight:600}
.dp-tbc{color:var(--muted);font-style:italic}
.dp-cert{font-size:.78rem;font-weight:600;background:#e0f2f1;color:#115e59;border-radius:4px;padding:.12rem .45rem;white-space:nowrap}
.dp-cert.adv{background:#fde8e9;color:var(--brand-dark)}
.dp-depth{font-size:.85rem;color:var(--muted)}
.dp-opts{list-style:none;margin:.9rem 0 0;padding:0;display:grid;gap:.6rem}
.dp-opts li{display:grid;grid-template-columns:1fr auto auto;gap:.4rem 1rem;align-items:center;border-top:1px solid var(--line);padding-top:.6rem}
.dp-opt{display:flex;flex-direction:column;gap:.1rem}
.dp-opt b{font-weight:600;line-height:1.3}
.dp-price{font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--navy)}
.dp-opts .btn{padding:.45rem 1rem;white-space:nowrap}
.dp-spots{font-size:.82rem;color:#15803d;font-weight:600}
.dp-spots.low{color:#b45309}
.dp-spots.full,.dp-spots.closed{color:var(--brand-dark)}
.dp-call{font-size:.88rem;white-space:nowrap}
.dp-table{width:100%;border-collapse:collapse;font-size:.95rem}
.dp-table th,.dp-table td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:middle}
.dp-table thead th{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dp-table tbody th{font-weight:600;white-space:nowrap}
.dp-link{font:inherit;background:none;border:0;color:var(--accent);text-decoration:underline;cursor:pointer;padding:0}
.dp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dp-empty{padding:1.25rem;background:var(--soft);border-radius:8px}
.dp-note{color:var(--muted);font-size:.88rem;line-height:1.45;margin:1.25rem 0 0;max-width:52rem}
.dp-static ol{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.dp-static li{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:baseline;border-bottom:1px solid var(--line);padding:.5rem 0}
.dp-chip:focus-visible,.dp-day:focus-visible,.dp-nav:focus-visible,.dp-link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media(max-width:900px){.dp-app{grid-template-columns:1fr}}
@media(max-width:560px){
  .dp-filter{flex-wrap:nowrap;overflow-x:auto;margin:0 -1.25rem;padding:0 1.25rem .2rem;scrollbar-width:none}
  .dp-filter::-webkit-scrollbar{display:none}
  .dp-flabel{display:none}
  .dp-chip{white-space:nowrap;flex-shrink:0}
  .dp-views{margin-left:0}
  .dp-cal{padding:.7rem}
  .dp-day{min-height:3.1rem}
  .dp-from{display:none}
  .dp-opts li{grid-template-columns:1fr auto}
  .dp-opts li .btn,.dp-opts li .dp-call{grid-column:1/-1;text-align:center}
}
/* Dark scheme — mirrors layout.mjs (headings #cfe1f0, surfaces from tokens). */
@media(prefers-color-scheme:dark){
  .dp-chip,.dp-nav,button.dp-day,.dp-cal,.dp-sess{border-color:var(--line);background:var(--bg);color:#cfe1f0}
  .dp-chip:hover,.dp-nav:hover,button.dp-day:hover{border-color:#cfe1f0}
  .dp-chip[aria-pressed="true"],button.dp-day[aria-pressed="true"]{background:var(--navy-2);border-color:var(--navy-2);color:#fff}
  .dp-mhead h3,.dp-panel h3,.dp-shead b,.dp-price{color:#cfe1f0}
  .dp-off{color:#4a5a6a}
  .dp-cert{background:#12383a;color:#8fe0d6}
  .dp-cert.adv{background:#3a1a1d;color:#f3a3a8}
  .dp-spots{color:#6ee7a0}
  .dp-spots.low{color:#fbbf6b}
  .dp-spots.full,.dp-spots.closed{color:#f3a3a8}
}
.dp-prod{flex-direction:column;align-items:flex-start}
.dp-prod b{font-size:1.2rem;line-height:1.15}
/* "Book now" on the option cards scrolls to the picker. */
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Number of people per option */
.dp-opts li{grid-template-columns:1fr auto auto auto}
.dp-qty{display:inline-flex;align-items:center;border:1px solid #c9d3dd;border-radius:999px;overflow:hidden}
.dp-qty button{font:inherit;font-size:1.1rem;line-height:1;width:2rem;height:2rem;border:0;background:transparent;color:var(--navy);cursor:pointer}
.dp-qty button:disabled{opacity:.3;cursor:default}
.dp-qty output{min-width:4.6rem;text-align:center;font-size:.85rem;font-weight:600;white-space:nowrap}
.dp-qty button:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.dp-price small{display:block;font-family:inherit;font-size:.72rem;font-weight:400;color:var(--muted);text-align:right}
@media(prefers-color-scheme:dark){.dp-qty{border-color:var(--line)}.dp-qty button{color:#cfe1f0}}
@media(max-width:560px){
  .dp-opts li{grid-template-columns:1fr auto}
  .dp-opts li .dp-qty{grid-column:1/-1;justify-self:start}
}
/* Secondary actions under each option: Add to cart · Enquire */
.dp-opts li .dp-more{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:center;font-size:.85rem;color:var(--muted);margin-top:-.2rem}
.dp-opts li .dp-more .dp-enq-btn{font-size:.95rem;margin-top:.15rem}
.dp-link{font-size:inherit}
/* Enquiry form (legacy "Enquire") */
.dp-enq{grid-column:1/-1;display:grid;gap:.6rem;background:var(--soft);border-radius:8px;padding:1rem;margin-top:.25rem}
.dp-enq-about{margin:0;font-size:.9rem}
.dp-enq label{display:grid;gap:.2rem;font-size:.85rem;font-weight:600}
.dp-enq .tel-cc{display:flex;gap:.4rem}.dp-enq .tel-cc select{flex:none;width:auto;font:inherit;font-weight:400;padding:.5rem .3rem;border:1px solid #c9d3dd;border-radius:6px;background:var(--bg);color:var(--ink)}
.dp-enq input,.dp-enq textarea{font:inherit;font-weight:400;padding:.5rem .6rem;border:1px solid #c9d3dd;border-radius:6px;background:var(--bg);color:var(--ink);width:100%}
.dp-enq-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.dp-enq-acts{display:flex;gap:1rem;align-items:center;margin:0}
.dp-enq .hp{position:absolute;left:-9999px}
/* /booking-cart */
.dp-cart-list li{grid-template-columns:1fr auto auto auto auto}
.dp-cart-list .dp-opt span{font-size:.88rem;color:var(--muted)}
.dp-cart-list .dp-opt a{color:inherit}
.dp-cart-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border-top:2px solid var(--line);margin-top:1rem;padding-top:1rem}
.dp-cart-foot p{margin:0;font-size:1.2rem}
@media(prefers-color-scheme:dark){.dp-enq input,.dp-enq textarea{border-color:var(--line)}}
@media(max-width:560px){
  .dp-enq-row{grid-template-columns:1fr}
  .dp-cart-list li{grid-template-columns:1fr auto}
  .dp-cart-list li .dp-qty{justify-self:start}
}
.dp-enq select{font:inherit;font-weight:400;padding:.45rem .6rem;border:1px solid #c9d3dd;border-radius:6px;background:var(--bg);color:var(--ink);width:auto;min-width:5rem}
@media(prefers-color-scheme:dark){.dp-enq select{border-color:var(--line)}}
