.tb-prose{color:var(--color-ink,#1e293b);font-size:1.0625rem;line-height:1.75}
.tb-prose p{margin:0 0 1.1rem}
.tb-prose h2{margin:2.2rem 0 .8rem;font-size:1.5rem;font-weight:600;letter-spacing:-.01em;color:var(--color-navy)}
.tb-prose ul{margin:0 0 1.2rem;padding-left:1.4rem;list-style:disc}
.tb-prose li{margin:.35rem 0}
.tb-faq{padding:1.25rem 1.5rem}
.tb-faq summary{list-style:none;display:flex;justify-content:space-between;gap:1rem}
.tb-faq summary::-webkit-details-marker{display:none}
.tb-faq summary::after{content:"+";font-weight:400;color:var(--color-blue)}
.tb-faq[open] summary::after{content:"−"}
#hours dl{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;row-gap:.25rem}

/* Hero slideshow: caption below image, dots below caption */
.tb-slideshow{position:relative;display:grid;grid-template-columns:100%;background:transparent;border-radius:0!important}
.tb-slide{grid-area:1/1;position:relative;margin:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility .9s}
.tb-slide.is-active{opacity:1;visibility:visible}
.tb-slide img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:.75rem;background:#f7f3ea}
.tb-cap{display:block;margin:.85rem auto 0;max-width:95%;color:#0A2158;font-weight:600;font-size:clamp(1.05rem,2.4vw,1.5rem);line-height:1.25;text-align:center}
.tb-dots{grid-area:2/1;display:flex;justify-content:center;gap:.5rem;padding:.7rem 0 .2rem}
.tb-dot{width:.7rem;height:.7rem;padding:0;border:2px solid #0A2158;border-radius:50%;background:transparent;cursor:pointer}
.tb-slideshow .tb-dot.is-active{background:#0A2158}
@media (prefers-reduced-motion:reduce){.tb-slide{transition:none}}

/* Inner-page header banner */
.tb-banner{position:relative;width:100%;height:150px;overflow:hidden;background:#e8eef5}
.tb-banner img{display:block;width:100%;height:100%;object-fit:cover}
.tb-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(15,30,60,.05),rgba(15,30,60,.18))}
@media (min-width:640px){.tb-banner{height:200px}}
@media (min-width:1024px){.tb-banner{height:240px}}

/* Contact form: stop mobile horizontal overflow. The page grid had no explicit
   column below lg, so its implicit auto column grew to the form's min-content
   width (long select options / radio cards). */
@media (max-width:1023.98px){section.grid{grid-template-columns:minmax(0,1fr)}}
section.grid>*{min-width:0}
#contact-form input,#contact-form select,#contact-form textarea{max-width:100%;min-width:0;box-sizing:border-box}
#contact-form select{width:100%}

/* Contact form, round 2: the Turnstile spam-check widget is a fixed 300px, and the
   form grids had auto columns, so on narrow phones (or larger Android display size)
   the whole form was pushed 300px+ wide. Lock columns to the available width, give
   the card less padding on phones, and site.js switches Turnstile to its compact size. */
#contact-form,#contact-form .grid{grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){#contact-form .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
#contact-form .cf-turnstile{max-width:100%}
#contact-form label{overflow-wrap:anywhere}
@media (max-width:639.98px){section.grid>div.rounded-xl:has(#contact-form){padding:1rem}}

/* Accessibility (2026-10-26): AA contrast, underlined in-body links, 48px slideshow dots */
:root{--color-blue:#1660d6;--color-muted:#52647f}
main p a:not(.inline-flex):not([class*="rounded"]),main li a:not(.inline-flex):not([class*="rounded"]),main dd a,.tb-prose a{text-decoration:underline;text-underline-offset:2px}
.tb-slideshow .tb-dots{gap:0;padding:.1rem 0 0}
.tb-slideshow .tb-dot{position:relative;width:48px;height:48px;padding:0;border:0;border-radius:0;background:transparent}
.tb-slideshow .tb-dot::before{content:"";position:absolute;left:50%;top:50%;width:.8rem;height:.8rem;transform:translate(-50%,-50%);border:2px solid #0A2158;border-radius:50%;background:transparent}
.tb-slideshow .tb-dot.is-active{background:transparent}
.tb-slideshow .tb-dot.is-active::before{background:#0A2158}
footer p a,a.underline{text-decoration:underline;text-underline-offset:2px}

.tb-logo{display:block;height:38px;width:auto;max-width:72vw;object-fit:contain;object-position:left}
@media (min-width:640px){.tb-logo{height:50px;max-width:360px}}
.whitespace-nowrap{white-space:nowrap}

.what-to-do-now{margin:1.75rem 0;padding:1.25rem 1.5rem;border:1px solid rgba(0,0,0,.12);border-left:4px solid currentColor;border-radius:.75rem;background:rgba(0,0,0,.03)}
.what-to-do-now h2{margin-top:0}
.what-to-do-now ol{list-style:decimal;padding-left:1.25rem}
.what-to-do-now li{margin:.4rem 0}

/* AA contrast (2026-11-02): muted text and links on navy cards */
.bg-navy .text-muted{color:#c3cde0}
.bg-navy .text-muted a.text-navy{color:#fff}
