.callback-modal[hidden] { display:none; }
.callback-modal { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:20px; background:rgba(20,23,21,.62); }
.callback-modal__dialog { position:relative; width:min(100%,500px); max-height:calc(100vh - 40px); overflow:auto; padding:34px; background:var(--paper,#f4f2ed); box-shadow:0 24px 80px rgba(0,0,0,.3); }
.callback-modal__close { position:absolute; top:12px; right:14px; width:38px; height:38px; border:0; background:transparent; color:var(--ink,#242725); font-size:2rem; line-height:1; cursor:pointer; }
.callback-modal h2 { margin:0 44px 8px 0; font-size:clamp(1.8rem,5vw,2.5rem); }
.callback-modal p { margin:0 0 22px; color:var(--muted,#656b67); }
.callback-modal form { display:grid; gap:16px; padding:0; background:transparent; box-shadow:none; }
.callback-modal label { display:grid; gap:7px; font-size:.86rem; font-weight:700; }
.callback-modal input { width:100%; min-height:50px; padding:12px 14px; border:1px solid #bbb8b0; background:#fff; color:var(--ink,#242725); }
.callback-modal input:focus { border-color:var(--wood,#b6723d); outline:3px solid rgba(182,114,61,.18); outline-offset:0; }
.callback-modal .form-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.callback-modal .callback-consent { grid-template-columns:22px 1fr; align-items:start; gap:10px; font-weight:400; line-height:1.45; }
.callback-modal .callback-consent input { width:20px; height:20px; min-height:0; margin:2px 0 0; accent-color:var(--wood-dark,#81491f); }
.callback-modal .callback-consent a { color:var(--wood-dark,#81491f); font-weight:700; }
.callback-modal__status { min-height:1.5em; margin:0 !important; color:var(--wood-dark,#81491f) !important; font-weight:700; }
.callback-modal__status.is-error { color:#9e3935 !important; }
body.callback-modal-open { overflow:hidden; }
/* The page-level .button rule is loaded after this stylesheet.  Scope the
   mobile CTA to the navigation so it stays hidden in desktop navigation. */
.nav-links .mobile-callback-cta { display:none !important; }
@media (max-width:1100px) {
  .nav-links.open .mobile-callback-cta { display:inline-flex !important; justify-content:center; width:100%; margin-top:16px; }
}
@media (max-width:520px) { .callback-modal { align-items:end; padding:0; } .callback-modal__dialog { width:100%; padding:28px 20px 24px; } }
