/* Usability refinements shared by the verified HTML and React surfaces. */
:is(.reference-site,.sane-app) :is(a,button,input,select,textarea,summary):focus-visible {
  outline:2px solid var(--paper); outline-offset:4px;
}
:is(.reference-site,.sane-app) .mobile-menu {
  justify-content:flex-start; overflow-y:auto; overscroll-behavior:contain;
  padding:112px max(24px,8vw) max(28px,env(safe-area-inset-bottom));
  scrollbar-width:thin; scrollbar-color:var(--border-strong) transparent;
}
:is(.reference-site,.sane-app) .mobile-menu a {
  flex:none; min-height:48px; font-size:clamp(24px,5vw,32px); line-height:1.35;
  display:flex; align-items:center; padding:8px 0;
}
:is(.reference-site,.sane-app) .mobile-menu .reference-menu-secondary {
  font-family:var(--font-body); font-size:17px; font-weight:500; letter-spacing:0;
  color:var(--muted-strong); min-height:44px;
}
:is(.reference-site,.sane-app) .mobile-menu a[aria-current=page] { color:var(--sec); }
.reference-site .nav:not(:has([aria-current=page])):not(.is-pointing) .nav-indicator { opacity:0; }
.reference-site .nav.is-pointing .nav-item.is-target .nav-roll span { color:var(--on-sec); }
.reference-site .nav-item[aria-current=page] .nav-roll span { color:var(--on-sec); }
.reference-site :is(#main,#brief-form) { scroll-margin-top:120px; }
.reference-form-intro { margin-bottom:28px; }
.reference-form-intro h2 { font-size:clamp(26px,3vw,34px); line-height:1.12; letter-spacing:-.03em; margin-bottom:12px; }
.reference-form-intro p { font-size:14px; line-height:1.7; color:var(--muted-strong); }
.reference-site .reference-request-context { margin-bottom:24px; }
.reference-site .field { margin-bottom:22px; }
.reference-field-help { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin-top:8px; color:var(--muted-strong); font-size:12px; line-height:1.5; }
.reference-site .reference-consent { color:var(--muted-strong); line-height:1.65; }
.reference-site .reference-consent input { width:20px; height:20px; padding:0; border-radius:4px; }
.reference-site #form-status { scroll-margin-top:130px; overflow-wrap:anywhere; }
.reference-site #form-status:empty { display:none; }
.reference-brief-recovery { margin-top:20px; padding-top:20px; border-top:1px solid var(--border); }
.reference-brief-recovery p,.reference-contact-alternative { font-size:13px; line-height:1.7; color:var(--muted-strong); }
.reference-brief-recovery button { margin-top:12px; }
.reference-brief-recovery textarea { min-height:200px; margin-top:16px; }
.reference-brief-recovery a,.reference-contact-alternative a { color:var(--paper); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.reference-contact-alternative { margin-top:24px; }
:is(.reference-site,.sane-app) [data-cookie-preferences] {
  display:inline-flex; align-items:center; min-height:44px; border:0; padding:8px 0;
  background:none; color:var(--muted-strong); font:inherit; font-size:12px; cursor:pointer; text-align:left;
}
:is(.reference-site,.sane-app) [data-cookie-preferences]:hover { color:var(--paper); }
:is(.reference-site,.sane-app) .footer-legal-links { flex-wrap:wrap; gap:12px; }
:is(.reference-site,.sane-app) .fvc-icons a { min-width:44px; min-height:44px; }
.reference-site:has(.reference-cookie) .sticky-cta,
.reference-site:has(#brief-form :focus) .sticky-cta,
.reference-site.menu-open .sticky-cta { visibility:hidden; pointer-events:none; }
.reference-cookie,.sane-app .cookie-banner { max-height:calc(100dvh - 24px); overflow-y:auto; }
.sane-app .reference-cart-page li { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:20px; }
.sane-app .reference-cart-page li > span { overflow-wrap:anywhere; }
.sane-app .reference-cart-remove { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--border); border-radius:100px; background:transparent; color:var(--muted-strong); }
.sane-app .reference-cart-remove:hover { color:var(--paper); border-color:var(--paper); }
.sane-app .cart-error a { display:inline-flex; align-items:center; min-height:44px; color:var(--paper); text-decoration:underline; text-underline-offset:4px; }
.sane-app .cart-line button:disabled,.sane-app .cart-clear-button:disabled { opacity:.45; cursor:wait; }
.sane-app .footer-legal { gap:12px; }
@media(max-height:500px) { :is(.reference-site,.sane-app) .mobile-menu { padding-top:100px; padding-bottom:24px; } }
@media(max-width:600px) {
  .sane-app .reference-cart-page li { padding:20px; column-gap:12px; }
  .sane-app .reference-cart-page li > span { grid-column:1 / 3; }
  .sane-app .reference-cart-page li > button { grid-column:3; grid-row:1 / 3; }
  .sane-app .reference-cart-page li > strong { grid-column:1 / 3; }
}
