.tt-availability{--tta-ink:#173d3a;--tta-paper:#edf3f1;--tta-rule:#cbd8d3;box-sizing:border-box;max-width:780px;margin:0 auto;padding:clamp(20px,4vw,42px);background:var(--tta-paper);color:var(--tta-ink);border-top:3px solid var(--tta-ink);font-family:Inter,system-ui,sans-serif}
.tt-availability *{box-sizing:border-box}
.tt-availability [hidden]{display:none!important}
.tt-availability .tta-eyebrow{font-size:12px;letter-spacing:.12em;font-weight:600;color:#835044;margin:0 0 16px}
.tt-availability h2{font-family:'Source Serif 4',Georgia,serif;font-size:clamp(28px,4vw,40px);line-height:1.18;margin:0 0 18px}
.tt-availability p{font-size:16px;line-height:1.6;margin:0 0 20px}
.tt-availability .tta-status{font-size:14px;line-height:1.5;padding:12px 0;border-top:1px solid var(--tta-rule);min-height:46px}
.tt-availability .tta-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}
.tt-availability .tta-toolbar h3{font-family:'Source Serif 4',Georgia,serif;font-size:25px;margin:0;text-align:center;line-height:1.3}
.tt-availability button{font:inherit;font-size:22px;color:var(--tta-ink);background:#fff;border:1px solid var(--tta-rule);min-width:44px;min-height:44px;cursor:pointer}
.tt-availability button:disabled{opacity:.35;cursor:default}
.tt-availability button:focus-visible,.tt-availability a:focus-visible{outline:3px solid #835044;outline-offset:3px}
.tt-availability table{border-collapse:collapse;table-layout:fixed;width:100%;background:#fff;margin:0}
.tt-availability th{font-size:12px;padding:10px 0;color:#425f58;font-weight:600;text-align:center}
.tt-availability th abbr{text-decoration:none}
.tt-availability td{border:1px solid var(--tta-rule);height:58px;vertical-align:middle;text-align:center;position:relative;font-size:17px}
.tt-availability .tta-blocked{background:#173d3a;color:#fff}
.tt-availability .tta-partial,.tt-availability .tta-legend-partial{background:#ffe59b;color:#513900}
.tt-availability .tta-legend-partial{padding:1px 7px}
.tt-availability .tta-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;min-width:0;min-height:48px;background:transparent;border:0;color:inherit;font-size:17px}
.tt-availability .tta-day small{font-size:10px;line-height:1.1}
.tt-availability .tta-day[aria-pressed=true]{outline:2px solid currentColor;outline-offset:-4px}
.tt-availability .tta-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;list-style:none;margin:12px 0 24px;padding:0}
.tt-availability .tta-slots li{padding:10px;background:white;border:1px solid var(--tta-rule);font-size:14px}
.tt-availability .tta-slots .tta-slot-busy{background:#173d3a;color:white}
.tt-availability .tta-mark{position:absolute;right:4px;top:2px;font-size:14px}
.tt-availability .tta-past{color:#73807b;background:#f4f6f5}
.tt-availability time[aria-current=date]{font-weight:700;text-decoration:underline;text-underline-offset:5px}
.tt-availability .tta-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:15px 0 22px;font-size:13px}
.tt-availability .tta-legend-blocked{background:#173d3a;color:#fff;padding:1px 7px}
.tt-availability h4{font-size:15px;margin:12px 0 6px;font-weight:600}
.tt-availability .tta-date-list{font-size:14px;margin:0 0 22px}
.tt-availability .tta-note{font-size:14px;color:#425f58;border-top:1px solid var(--tta-rule);padding-top:18px}
.tt-availability .tta-cta{display:inline-block;color:#fff;background:#173d3a;font-size:15px;font-weight:600;padding:13px 18px;text-decoration:none}
.tt-availability .tta-cta:hover{background:#27534e}
.tt-availability .tta-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.tta-reference{box-sizing:border-box;max-width:780px;margin:28px auto;padding:20px 24px;border-left:3px solid #173d3a;background:#edf3f1;color:#173d3a;font-size:15px;line-height:1.6}
.tta-reference a{color:#173d3a;text-decoration:underline;text-underline-offset:3px}
@media(max-width:420px){.tt-availability{padding:18px 12px}.tt-availability td{height:45px}.tt-availability .tta-toolbar h3{font-size:23px}.tt-availability th{font-size:10px}.tt-availability .tta-mark{font-size:11px;right:2px}}
@media(prefers-reduced-motion:reduce){.tt-availability *{scroll-behavior:auto}}
