/* Puddle & Pip: booking flows */
.book-in{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}
.book-main{padding:clamp(20px,3vw,36px)}
.book-sum{position:sticky;top:100px}
@media (max-width:960px){.book-in{grid-template-columns:1fr}.book-sum{position:static;order:-1}}
.step-h{font-size:1.6rem;margin-bottom:18px}
.step-h:focus{outline:none}
.saved{margin-bottom:18px}
.saved .lbl{margin:0 0 8px}
.size-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
@media (max-width:640px){.size-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tile{position:relative;display:block;cursor:pointer}
.tile input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.tile>span{display:flex;flex-direction:column;gap:2px;height:100%;padding:12px;border-radius:var(--r-s);border:1.5px solid var(--line-2);background:#fff;font-size:.9rem;transition:border-color .15s,background .15s}
.tile b{font-size:1.1rem}
.tile small{color:var(--ink-2);font-size:.8rem}
.tile input:checked+span{border-color:var(--ink);background:var(--sky);box-shadow:inset 0 0 0 1px var(--ink)}
.tile input:focus-visible+span{outline:3px solid var(--corn);outline-offset:2px}
.tile input:disabled+span{opacity:.45;cursor:not-allowed}
.tile-row{margin-bottom:8px}
.tile-row>span{flex-direction:row;flex-wrap:wrap;align-items:center;padding:14px 16px;padding-right:90px}
.tile-row>span b{font-family:var(--display);width:100%}
.tile-row>span small{font-size:.85rem}
.tile-row em{position:absolute;right:16px;top:50%;transform:translateY(-50%);font:700 1.3rem/1 var(--display);font-style:normal;pointer-events:none}
.addon-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}
@media (max-width:560px){.addon-pick{grid-template-columns:1fr}}
.date-strip{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;margin-bottom:16px}
@media (max-width:760px){.date-strip{grid-template-columns:repeat(5,minmax(0,1fr))}}
.date{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px;border-radius:var(--r-s);border:1.5px solid var(--line-2);background:#fff;cursor:pointer;min-height:76px}
.date .mono{font-size:.7rem;text-transform:uppercase;color:var(--ink-2)}
.date b{font:700 1.3rem/1 var(--display)}
.date small{font-size:.72rem;color:var(--ink-2)}
.date[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.date[aria-pressed=true] .mono,.date[aria-pressed=true] small{color:#DDE2F5}
.date:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.times{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.time{min-height:44px;min-width:78px;border-radius:999px;border:1.5px solid var(--line-2);background:#fff;cursor:pointer;font-weight:600}
.time[aria-pressed=true]{background:var(--corn);border-color:var(--corn);color:#fff}
.time:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.sum{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px;font-size:.95rem}
.sum li{display:flex;justify-content:space-between;gap:14px;border-bottom:1px dashed var(--line-2);padding-bottom:10px}
.sum li b{text-align:right;font-weight:600}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;margin:6px 0 8px}
.sum-total b{font:700 2rem/1 var(--display)}
.review{display:grid;gap:0;margin:0;border-top:1px solid var(--line)}
.review div{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.review dt{color:var(--ink-2);font-size:.9rem}
.review dd{margin:0;font-weight:600}
@media (max-width:480px){.review div{grid-template-columns:1fr;gap:2px}}
.done{text-align:left;padding:8px 0}
.done:focus{outline:none}
.done-h{font-size:clamp(1.8rem,3vw,2.4rem)}
.done .hero-cta{margin:18px 0}
.done .link{background:none;border:0;cursor:pointer;font:inherit;font-weight:600;color:var(--ink);padding:0}

/* calendar (daycare) */
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.cal-head h4{margin:0;font-size:1.3rem}
.cal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.cal .dow{font:500 .7rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-align:center;padding:6px 0}
.cal .day{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;border-radius:var(--r-s);border:1.5px solid var(--line-2);background:#fff;cursor:pointer;min-height:84px;text-align:left}
.cal .day b{font:700 1.15rem/1 var(--display)}
.cal .day small{font-size:.74rem;color:var(--ink-2);line-height:1.2}
.cal .day .tri{font:600 .64rem/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--corn-d)}
.cal .day[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.cal .day[aria-pressed=true] small,.cal .day[aria-pressed=true] .tri{color:#DDE2F5}
.cal .day:disabled{opacity:.42;cursor:not-allowed;background:var(--cream-2)}
.cal .blank{visibility:hidden}
.cal .low small{color:var(--warn)}
@media (max-width:520px){.cal .day{min-height:70px;padding:8px 6px}.cal .day small{font-size:.66rem}}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem;color:var(--ink-2);margin:12px 0 0}
.mode{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.book-main .step-h{margin-top:34px}.book-main .step-h:first-child,.book-main [data-step] .step-h{margin-top:0}
@media (max-width:520px){.cal-head h4{font-size:1rem;text-align:center}}
.step-nav [data-next]{margin-left:auto}
