/* Scoped enhancement: load after the site's existing CSS. */
html.gk-schema-modal-open { overflow: hidden; }
.gk-schema-v2 { --schema-ink:#183f34; --schema-soft:#eef3ec; --schema-line:#d3dfd4; color:var(--schema-ink); background:#fcfdf8; border:1px solid #dfe6d9; border-radius:28px; padding:0; width:min(760px,calc(100vw - 32px)); max-width:760px; max-height:calc(100dvh - 40px); overflow:hidden; box-shadow:0 28px 100px #0a201e59; }
.gk-schema-v2::backdrop { background:#102921b8; backdrop-filter:blur(5px); }
.gk-schema-v2 .gk-schema-shell { display:flex; flex-direction:column; max-height:calc(100dvh - 40px); }
.gk-schema-v2 .gk-schema-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:26px 32px 20px; border-bottom:1px solid var(--schema-line); flex-shrink:0; }
.gk-schema-v2 .gk-schema-header .gk-eyebrow { margin:0 0 8px; font-size:11px; letter-spacing:.12em; }
.gk-schema-v2 .gk-schema-header h2 { margin:0; font-size:clamp(20px,3.2vw,27px); line-height:1.18; letter-spacing:-.025em; }
.gk-schema-v2 .gk-schema-close { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; padding:0; border:1px solid var(--schema-line); border-radius:50%; background:white; color:var(--schema-ink); font:30px/1 sans-serif; cursor:pointer; }
.gk-schema-v2 .gk-schema-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:24px 32px; }
.gk-schema-v2 .gk-schema-progress { height:5px; border-radius:10px; background:#e1e8dc; overflow:hidden; }
.gk-schema-v2 .gk-schema-progress span { display:block; height:100%; background:#70a782; transition:width .2s ease; }
.gk-schema-v2 .gk-schema-step-label { margin:12px 0 24px; font-size:12px; font-weight:700; letter-spacing:.04em; }
.gk-schema-v2 h3 { margin:0 0 12px; color:var(--schema-ink); font-size:clamp(24px,4.5vw,34px); line-height:1.16; letter-spacing:-.035em; }
.gk-schema-v2 .gk-schema-hint { margin:0 0 22px; font-size:15px; line-height:1.6; color:#53695f; }
.gk-schema-v2 .gk-schema-group { border:0; padding:0; margin:0 0 20px; min-width:0; }
.gk-schema-v2 .gk-schema-group legend { font-size:12px; font-weight:600; color:#576d61; margin-bottom:10px; }
.gk-schema-v2 .gk-schema-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gk-schema-v2 .gk-schema-option { display:flex; gap:12px; align-items:center; min-height:64px; width:100%; padding:15px 16px; border:1px solid var(--schema-line); border-radius:14px; background:white; color:var(--schema-ink); font:inherit; font-size:14px; font-weight:600; line-height:1.35; text-align:left; cursor:pointer; transition:background .15s,border-color .15s; }
.gk-schema-v2 .gk-schema-option:hover { background:var(--schema-soft); border-color:#91ad98; }
.gk-schema-v2 .gk-schema-option[aria-pressed="true"] { background:#e5f0e5; border-color:#427653; box-shadow:inset 0 0 0 1px #427653; }
.gk-schema-v2 .gk-schema-dot { width:18px; height:18px; flex-shrink:0; border:1.5px solid #acbdb0; border-radius:50%; background:white; display:grid; place-items:center; }
.gk-schema-v2 .gk-schema-dot.is-multiple { border-radius:5px; }
.gk-schema-v2 [aria-pressed="true"] .gk-schema-dot { background:#326446; border-color:#326446; }
.gk-schema-v2 [aria-pressed="true"] .gk-schema-dot::after { content:'✓'; color:white; font:12px/1 sans-serif; }
.gk-schema-v2 .gk-schema-footer { display:flex; gap:12px; justify-content:space-between; padding:18px 32px max(20px,env(safe-area-inset-bottom)); border-top:1px solid var(--schema-line); background:#fcfdf8; flex-shrink:0; }
.gk-schema-v2 .gk-schema-footer button { min-height:48px; border-radius:10px; padding:13px 18px; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.gk-schema-v2 .gk-schema-footer .gk-button { margin-left:auto; background:var(--schema-ink); color:white; border:1px solid var(--schema-ink); }
.gk-schema-v2 .gk-schema-back { color:var(--schema-ink); border:1px solid var(--schema-line); background:white; }
.gk-schema-v2 [hidden] { display:none!important; }
.gk-schema-v2 .gk-schema-error { color:#963c2e; font-size:14px; line-height:1.45; margin:10px 0 0; }
.gk-schema-v2 .gk-schema-error:empty { display:none; }
.gk-schema-v2 .gk-schema-result-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#e2efdf; color:#366c46; font-size:26px; margin-bottom:18px; }
.gk-schema-v2 .gk-schema-result > p { line-height:1.6; }
.gk-schema-v2 .gk-schema-price { font-size:30px; font-weight:700; margin:12px 0; }
.gk-schema-v2 .gk-schema-limit { font-weight:600; font-size:14px; background:var(--schema-soft); padding:12px 15px; border-radius:10px; }
.gk-schema-v2 .gk-schema-result .gk-button { display:inline-flex; gap:12px; align-items:center; justify-content:space-between; background:var(--schema-ink); color:white; border-radius:10px; padding:15px 20px; text-decoration:none; font-size:15px; font-weight:600; }
.gk-schema-v2 .gk-schema-small { color:#5a6e61; font-size:12px; line-height:1.6; }
.gk-schema-v2 .gk-schema-summary { margin:22px 0; border:1px solid var(--schema-line); border-radius:12px; padding:15px; font-size:14px; }
.gk-schema-v2 .gk-schema-summary summary { font-weight:600; cursor:pointer; min-height:24px; }
.gk-schema-v2 .gk-schema-summary pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:12px; line-height:1.65; color:#52675a; }
.gk-schema-v2 .gk-schema-reset { background:none; color:var(--schema-ink); border:0; padding:12px 0; font:inherit; font-size:13px; text-decoration:underline; cursor:pointer; }
.gk-schema-v2 :is(button,a,summary):focus-visible { outline:3px solid #326446; outline-offset:3px; }
.gk-schema-v2 h3:focus { outline:0; }
@media(max-width:540px) {
  .gk-schema-v2 { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); border-radius:22px; }
  .gk-schema-v2 .gk-schema-shell { max-height:calc(100dvh - 16px); }
  .gk-schema-v2 .gk-schema-header { padding:18px 18px 14px; gap:12px; }
  .gk-schema-v2 .gk-schema-body { padding:18px; }
  .gk-schema-v2 .gk-schema-options { grid-template-columns:1fr; gap:8px; }
  .gk-schema-v2 .gk-schema-option { min-height:56px; font-size:14px; padding:13px; border-radius:12px; }
  .gk-schema-v2 .gk-schema-footer { padding:12px 18px max(14px,env(safe-area-inset-bottom)); gap:8px; }
  .gk-schema-v2 .gk-schema-footer button { padding:12px; font-size:13px; }
  .gk-schema-v2 .gk-schema-step-label { margin-bottom:20px; }
}
@media(prefers-reduced-motion:reduce) { .gk-schema-v2 * { transition:none!important; } }
