/* Cloud Assist Group: styles for the Replit integration pieces only. Load after site.css. */

/* Long source URLs in legal copy must wrap instead of widening a phone viewport. */
main p a{overflow-wrap:anywhere}

/* consent banner (built by site.js) */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:720px;margin:0 auto;background:var(--ca-paper);color:var(--ca-ink);border:1px solid var(--ca-line);border-radius:var(--r-card);box-shadow:var(--ca-shadow);padding:16px 18px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.consent p{margin:0;font-size:15px;line-height:1.5;flex:1 1 320px;max-width:none}
.consent a{color:var(--ca-blue)}
.consent-actions{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:640px){.consent{flex-direction:column;align-items:stretch}.consent p{flex-basis:auto}.consent-actions .btn{flex:1 1 auto}}

/* form error states */
form.book [aria-invalid="true"],form.news [aria-invalid="true"]{border-color:var(--ca-red);box-shadow:0 0 0 3px rgba(206,5,5,.12)}
.form-error{margin:0;font-size:14.5px;font-weight:600;color:var(--ca-red)}
form.news .form-error{flex-basis:100%}
form.book button[disabled],form.news button[disabled]{opacity:.6;cursor:wait}
form.book .g-recaptcha{min-height:78px}

/* the booking widget wrapper: the widget carries its own .ca-book styles; this only fits it to the page */
.ca-book-embed{margin:20px 0;font-family:var(--font-body)}
.ca-book-embed .ca-book{max-width:none}
.ca-book-embed .ca-book h2,.ca-book-embed .ca-book h3{font-family:var(--font-display);letter-spacing:-.02em}

/* utility the weekly-note label relies on */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
