/* Functional layout, kept separate from the site's visual theme. Colors follow the Slate/Coral tokens in site.css. */
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--coral-deep,#B9471C);outline-offset:4px}
.skip-link{position:fixed;z-index:100;top:8px;left:16px;transform:translateY(-180%);padding:10px 16px;background:var(--slate,#2D3142);color:#fff}
.skip-link:focus{transform:translateY(0)}
.mobile-nav-toggle{display:none}
.intake-section{border:1px solid var(--line);background:var(--panel);padding:clamp(20px,4vw,34px);border-radius:12px;margin:36px 0;box-shadow:0 1px 2px rgba(45,49,66,.04)}
.intake-section h2{margin-top:0}
.intake-section>p{color:var(--steel)}
.intake-form{display:grid;gap:20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.intake-form label{display:grid;gap:7px;font-size:13px;font-weight:600;color:var(--slate)}
.intake-form input:not([type=checkbox]),.intake-form select,.intake-form textarea,.library-search input{font:inherit;font-size:15px;color:var(--slate);background:#fff;border:1px solid #B8BDC7;border-radius:6px;padding:12px;width:100%;min-width:0}
.intake-form textarea{resize:vertical;min-height:130px}
.intake-form input:focus,.intake-form select:focus,.intake-form textarea:focus,.library-search input:focus{border-color:var(--coral-deep);outline:2px solid var(--coral);outline-offset:0}
.optional,.form-hint{color:var(--steel);font-weight:400;font-size:12px}
.intake-form .consent-label{display:flex;align-items:flex-start;gap:10px;font-weight:400}
.consent-label input{margin-top:5px;accent-color:var(--slate);width:17px;height:17px;flex-shrink:0}
.intake-form .cta,.receipt .cta{border:0;cursor:pointer;justify-self:start;min-height:44px}
.intake-form .cta:disabled{opacity:.6;cursor:wait}
.form-error{border:1px solid var(--coral-deep);background:var(--coral-tint);padding:12px;font-size:14px;color:#7A2E10;border-radius:6px}
.receipt-reference{font-family:var(--mono,"IBM Plex Mono",monospace);overflow-wrap:anywhere}
.receipt{border-left:3px solid var(--coral);padding:0 0 0 20px}
/* The verification widget (ALTCHA, self-hosted) is themed through its own custom properties; the hint sits under it. */
.verify-row{display:grid;gap:8px}
.verify-row altcha-widget{display:block;--altcha-color-base:#fff;--altcha-color-base-content:var(--slate);--altcha-color-primary:var(--slate);--altcha-color-primary-content:#fff;--altcha-color-neutral:var(--steel);--altcha-color-neutral-content:#fff;--altcha-color-success:var(--slate);--altcha-color-success-content:#fff;--altcha-color-error:var(--coral-deep);--altcha-color-error-content:#fff;--altcha-border-color:#B8BDC7;--altcha-border-width:1px;--altcha-border-radius:6px;--altcha-checkbox-border-color:#B8BDC7;--altcha-max-width:100%}
.verify-row altcha-widget:not(:defined){min-height:52px;border:1px dashed #B8BDC7;border-radius:6px}
/* The direct line arrives with the receipt of a verified request and is rendered by site.js, never in the page. */
.receipt-contact{margin:20px 0;padding:16px 18px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--coral);border-radius:8px}
.receipt-contact h4{margin:0 0 6px;color:var(--slate);font-size:1rem;font-weight:700}
.receipt-contact p{margin:0 0 6px;overflow-wrap:anywhere}
.receipt-contact a{font-weight:600;color:var(--slate)}
.booking-upfront{margin:0 0 32px;padding:22px 24px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--coral);border-radius:8px}
.booking-upfront h2{margin:0 0 10px;font-size:clamp(20px,2.3vw,24px)}
.booking-upfront p{margin:0 0 16px;color:var(--steel)}
.booking-upfront p:last-child{margin:0}
.booking-cta{margin:24px 0;padding:20px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--slate);border-radius:8px}
.booking-cta h4{margin:0 0 8px;color:var(--slate);font-size:1.1rem;font-weight:700}
.booking-cta p{margin:0 0 16px;color:var(--steel);font-size:.9rem;line-height:1.5}
.booking-cta .cta{padding:10px 22px;border-radius:6px}
.honey-field{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.library-search{margin:28px 0;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.library-search label{display:block;font-size:13px;margin-bottom:8px;font-weight:600}
.library-search p{font-size:12px;color:var(--muted);margin:10px 0 0}
.search-empty{padding:22px 0;color:var(--muted)}
@media(max-width:760px){
  nav.main .wrap{gap:12px;padding-top:12px;padding-bottom:12px}
  nav.main .brand{flex:1}
  nav.main .nav-row{display:contents}
  nav.main .nav-cta{font-size:10px;padding:10px 12px}
  .mobile-nav-toggle{display:block;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:4px;padding:10px 14px;min-height:44px;cursor:pointer;font:600 12px/1 var(--body,sans-serif)}
  nav.main ul#site-menu{display:flex;width:100%;order:5;gap:0}
  nav.main ul#site-menu li{margin:0;flex:1 1 45%;border-top:1px solid rgba(255,255,255,.12)}
  nav.main ul#site-menu a{display:block;padding:12px 4px}
  html.has-js nav.main ul#site-menu{display:none}
  html.has-js nav.main ul#site-menu.is-open{display:flex}
  .form-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
