body.request-open{overflow:hidden}
.request-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:28px;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}
.request-modal.open{visibility:visible;opacity:1;pointer-events:auto}
.request-backdrop{position:absolute;inset:0;background:rgba(7,3,1,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.request-dialog{position:relative;z-index:1;width:min(1120px,100%);max-height:calc(100vh - 56px);overflow:auto;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr);background:#f3e7d5;color:#24140c;border:1px solid rgba(224,182,111,.45);box-shadow:0 28px 90px rgba(0,0,0,.48)}
.request-close{position:absolute;top:18px;right:18px;z-index:3;width:44px;height:44px;border:1px solid rgba(72,42,24,.18);border-radius:50%;background:rgba(255,250,242,.72);color:#402719;font-size:27px;line-height:1;cursor:pointer;transition:background .2s ease,transform .2s ease}
.request-close:hover{background:#fffaf2;transform:rotate(6deg)}
.request-intro{position:relative;overflow:hidden;padding:64px 48px;background:#190b06;color:#fffaf2}
.request-intro:before{content:"";position:absolute;width:290px;height:290px;right:-120px;bottom:-120px;border:1px solid rgba(224,182,111,.25);border-radius:50%;box-shadow:0 0 0 35px rgba(224,182,111,.035),0 0 0 70px rgba(224,182,111,.025)}
.request-kicker{position:relative;margin:0 0 22px;color:#e0b66f;font-size:10px;font-weight:800;letter-spacing:.24em;text-transform:uppercase}
.request-intro h2{position:relative;margin:0;font-family:var(--serif,Georgia,serif);font-size:clamp(42px,5vw,70px);font-weight:400;line-height:.94;letter-spacing:-.045em}
.request-intro>p:not(.request-kicker){position:relative;margin:28px 0 0;color:rgba(255,250,242,.68);font-size:15px;line-height:1.75}
.request-points{position:relative;display:grid;gap:16px;margin:42px 0 0;padding:0;list-style:none}
.request-points li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;color:#e9dcca;font-size:13px;line-height:1.55}
.request-points span{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(224,182,111,.45);border-radius:50%;color:#e0b66f;font-size:10px}
.request-form{padding:62px 52px 42px;background:#f3e7d5}
.request-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px}
.request-field{display:block;min-width:0}
.request-field.full{grid-column:1/-1}
.request-field>span{display:block;margin:0 0 9px;color:#6d4d36;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.request-field input,.request-field select,.request-field textarea{width:100%;border:0;border-bottom:1px solid rgba(84,50,29,.3);border-radius:0;background:transparent;color:#24140c;padding:11px 2px 13px;outline:none;font-size:15px;transition:border-color .2s ease,box-shadow .2s ease}
.request-field textarea{min-height:92px;resize:vertical;line-height:1.55}
.request-field input::placeholder,.request-field textarea::placeholder{color:rgba(75,50,35,.45)}
.request-field input:focus,.request-field select:focus,.request-field textarea:focus{border-color:#9d6a35;box-shadow:0 1px 0 #9d6a35}
.request-field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#7d5636 50%),linear-gradient(135deg,#7d5636 50%,transparent 50%);background-position:calc(100% - 13px) 54%,calc(100% - 8px) 54%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px}
.request-field.invalid input,.request-field.invalid select,.request-field.invalid textarea{border-color:#9c3e2b;box-shadow:0 1px 0 #9c3e2b}
.request-privacy{display:flex;align-items:flex-start;gap:11px;margin:23px 0 0;color:#705845;font-size:11px;line-height:1.55}
.request-privacy:before{content:"✓";flex:0 0 auto;display:grid;place-items:center;width:20px;height:20px;margin-top:1px;border-radius:50%;background:#2b160d;color:#e0b66f;font-size:10px}
.request-submit{width:100%;margin:24px 0 0;border:0;background:#2b160d;color:#fffaf2;padding:18px 22px;font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,transform .2s ease}
.request-submit:hover{background:#4a2918;transform:translateY(-1px)}
.request-submit:focus-visible,.request-close:focus-visible{outline:2px solid #b98548;outline-offset:3px}
.request-error{min-height:18px;margin:12px 0 0;color:#8f321f;font-size:12px;line-height:1.45}
@media(max-width:900px){.request-modal{padding:14px}.request-dialog{display:block;max-height:calc(100vh - 28px)}.request-intro{padding:52px 30px 38px}.request-intro h2{font-size:48px}.request-points{grid-template-columns:1fr 1fr;margin-top:28px}.request-form{padding:38px 30px 34px}}
@media(max-width:620px){.request-modal{padding:0;place-items:stretch}.request-dialog{max-height:100vh;height:100%;border:0}.request-close{position:fixed;top:12px;right:12px;width:40px;height:40px}.request-intro{padding:60px 22px 30px}.request-intro h2{font-size:42px}.request-intro>p:not(.request-kicker){margin-top:20px}.request-points{grid-template-columns:1fr;gap:10px;margin-top:24px}.request-form{padding:30px 22px 34px}.request-grid{grid-template-columns:1fr;gap:19px}.request-field.full{grid-column:auto}.request-submit{padding:17px 16px}}


/* =========================================================
   STAGE 9.1.5 — MOBILE REQUEST FORM SCROLL FIX
   Reliable full-screen scrolling on iOS/Android, including
   dynamic browser bars and the on-screen keyboard.
   ========================================================= */
.request-modal{
  width:100%;
  height:var(--request-viewport-height,100dvh);
  max-height:var(--request-viewport-height,100dvh);
  overflow:hidden;
  overscroll-behavior:none;
}
.request-dialog{
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  scrollbar-gutter:stable;
}
@supports not (height:100dvh){
  .request-modal{height:var(--request-viewport-height,100vh);max-height:var(--request-viewport-height,100vh)}
}
@media(max-width:620px){
  body.request-open{
    position:fixed;
    left:0;
    right:0;
    width:100%;
    overflow:hidden;
    overscroll-behavior:none;
  }
  .request-modal{
    display:block;
    padding:0;
    height:var(--request-viewport-height,100dvh);
    max-height:var(--request-viewport-height,100dvh);
    overflow:hidden;
  }
  .request-dialog{
    display:block;
    width:100%;
    height:var(--request-viewport-height,100dvh);
    min-height:0;
    max-height:var(--request-viewport-height,100dvh);
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    touch-action:pan-y;
    scroll-behavior:smooth;
    padding:0;
  }
  .request-intro,.request-form{width:100%}
  .request-form{padding-bottom:calc(46px + env(safe-area-inset-bottom))}
  .request-close{
    position:fixed;
    top:calc(12px + env(safe-area-inset-top));
    right:calc(12px + env(safe-area-inset-right));
    z-index:1305;
  }
}
