html.abcf-lock, html.abcf-lock body { overflow: hidden; }
.abcf-root { --abcf-accent:#0d94cf; --abcf-text:#444; display:none; position:fixed; inset:0; z-index:999999; font-family:inherit; color:var(--abcf-text); }
.abcf-root.is-open { display:block; }
.abcf-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.48); display:grid; place-items:center; padding:24px; }
.abcf-modal { position:relative; width:min(680px, 100%); max-height:min(820px, calc(100vh - 48px)); overflow:auto; background:#fff; border-radius:18px; box-shadow:0 24px 70px rgba(0,0,0,.24); padding:28px; box-sizing:border-box; }
.abcf-close { position:absolute; top:14px; right:16px; width:40px; height:40px; border:0; background:transparent; color:#111; font:inherit; font-size:30px; line-height:1; cursor:pointer; }
.abcf-header { padding-right:46px; }
.abcf-logo { display:block; max-width:150px; max-height:72px; object-fit:contain; object-position:left center; margin-bottom:22px; }
.abcf-progress { height:4px; border-radius:99px; background:#e8e8e8; overflow:hidden; margin-bottom:24px; }
.abcf-progress span { display:block; height:100%; background:var(--abcf-accent); border-radius:99px; transition:width .2s ease; }
.abcf-content h2 { font-size:clamp(24px,4vw,34px); line-height:1.15; margin:0 0 26px; color:#111; }
.abcf-choices { display:grid; gap:12px; }
.abcf-choice { width:100%; min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 18px; border:1px solid #d7d7d7; border-radius:10px; background:#fff; color:#161616; font:inherit; font-weight:600; text-align:left; cursor:pointer; transition:.15s ease; }
.abcf-choice:hover, .abcf-choice:focus-visible { border-color:var(--abcf-accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--abcf-accent) 15%, transparent); outline:0; }
.abcf-choice span { font-size:24px; font-weight:400; }
.abcf-compact .abcf-choice { min-height:50px; }
.abcf-form { display:grid; gap:16px; }
.abcf-field { display:grid; gap:7px; font-size:14px; font-weight:600; }
.abcf-field input, .abcf-field select, .abcf-field textarea { width:100%; box-sizing:border-box; border:1px solid #d2d2d2; border-radius:9px; background:#fff; color:#222; padding:13px 14px; font:inherit; font-weight:400; }
.abcf-field input:focus, .abcf-field select:focus, .abcf-field textarea:focus { outline:2px solid var(--abcf-accent); outline-offset:1px; border-color:var(--abcf-accent); }
.abcf-primary, .abcf-open-button { border:0; border-radius:9px; background:#111; color:#fff; min-height:48px; padding:12px 18px; font:inherit; font-weight:700; cursor:pointer; }
.abcf-primary:hover, .abcf-primary:focus-visible { background:#2b2b2b; }
.abcf-primary:disabled { opacity:.55; cursor:wait; }
.abcf-footer { margin-top:26px; }
.abcf-back { border:0; background:transparent; padding:6px 0; color:var(--abcf-text); font:inherit; cursor:pointer; }
.abcf-privacy-note, .abcf-hint { margin:22px 0 0; font-size:13px; line-height:1.5; color:#666; }
.abcf-root a { color:var(--abcf-accent); }
.abcf-check { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.45; font-weight:400; }
.abcf-check input { margin-top:3px; }
.abcf-error { color:#a40000; min-height:1em; font-size:14px; }
.abcf-hp { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; opacity:0 !important; }
.abcf-success { text-align:center; padding:18px 0 8px; }
.abcf-success-icon { width:64px; height:64px; margin:0 auto 18px; display:grid; place-items:center; border:3px solid var(--abcf-accent); color:var(--abcf-accent); border-radius:50%; font-size:34px; font-weight:700; }
.abcf-floating-button { position:fixed; right:22px; bottom:22px; z-index:99990; border:0; border-radius:999px; background:#111; color:#fff; padding:14px 20px; box-shadow:0 10px 30px rgba(0,0,0,.22); font:inherit; font-weight:700; cursor:pointer; }
.abcf-floating-button:hover { background:#2b2b2b; }

@media (max-width: 720px) {
  .abcf-backdrop { padding:0; background:#fff; }
  .abcf-modal { width:100%; height:100dvh; max-height:none; border-radius:0; box-shadow:none; padding:22px 20px 28px; }
  .abcf-logo { max-width:132px; max-height:64px; margin-bottom:18px; }
  .abcf-content h2 { font-size:28px; margin-bottom:22px; }
  .abcf-choice { min-height:58px; }
  .abcf-floating-button { right:14px; bottom:14px; padding:13px 17px; }
}
