/* voucher.css — page layer for /gift-voucher-maker/. The shell (header, controls,
   buttons, explainer, footer) is /assets/polyatic.css; this file adds the
   cutting-mat stage with the printed sheet lying on it, the design swatches and
   the coupon idea chips. The sheet is paper-white in both themes: it is an object on the mat. */
@font-face{font-family:"GVM Classic";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/classic.woff2) format("woff2")}
@font-face{font-family:"GVM Script";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/handwritten.woff2) format("woff2")}

.gv-noscript{margin:1rem;padding:.875rem 1rem;border:1px solid var(--line);border-left:.25rem solid var(--accent);border-radius:.625rem;background:var(--surface)}
.gv-head h1{margin-bottom:.25rem}
.gv-head .sub{margin-bottom:.875rem}

/* ---------- the stage ---------- */
.duo.gv-duo>.pane-result{position:static}
.gv-stage{background:radial-gradient(120% 80% at 50% 0%,rgba(255,196,120,.16),transparent 60%),linear-gradient(180deg,var(--mat),var(--mat-2));
  color:var(--mat-ink);border-radius:var(--r);padding:.75rem .75rem 1rem;box-shadow:var(--shadow);min-width:0}
.gv-stage-h{font-family:var(--mono);font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.07em;color:var(--mat-muted);margin:0 0 .5rem;text-align:center}
.gv-paper{margin:0 auto;max-width:44rem;line-height:0}
.gv-paper.is-portrait{max-width:min(100%,26rem)}
.gv-paper canvas{display:block;width:100%;height:auto;background:#fff;border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.1),0 18px 40px -16px rgba(0,0,0,.6)}
.gv-pager{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:.625rem 0 0}
.gv-pager[hidden]{display:none}
.gv-pager button{min-width:2.75rem;min-height:2.25rem;border:1px solid rgba(255,255,255,.4);border-radius:.5rem;background:transparent;color:var(--mat-ink);font:inherit;cursor:pointer}
.gv-pager button:disabled{opacity:.4;cursor:default}
.gv-pager button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gv-pager span{font-size:.875rem;color:var(--mat-ink);min-width:7.5rem;text-align:center}
.gv-summary{margin:.5rem 0 .625rem;text-align:center;font-size:.875rem;color:var(--mat-ink)}
.gv-dl{display:flex;flex-wrap:wrap;gap:.5rem;max-width:30rem;margin:0 auto}
.gv-dl .btn{flex:1 1 11rem}
.gv-dl .btn:disabled{opacity:.6;cursor:progress}
.gv-stage .btn.ghost{color:var(--mat-ink);border-color:rgba(255,255,255,.4);background:transparent}
.gv-msg{margin:.5rem 0 0;text-align:center;font-size:.8125rem;color:var(--mat-muted)}
.gv-msg:empty{display:none}

/* ---------- the form ---------- */
.gv-form-h{margin:0 0 .75rem;font-size:1.1875rem}
.gv-hint{margin:.375rem 0 0;font-size:.8125rem;color:var(--muted);line-height:1.45}
.gv-form textarea{resize:vertical;line-height:1.45}
.gv-form #cList{min-height:12rem}
.gv-form .modes button small{display:block;font-weight:500;font-size:.6875rem;opacity:.8}
.gv-fields{display:grid;gap:1.25rem}
.gv-fields[hidden]{display:none}
.gv-form .controls .modes{margin-bottom:0}
.gv-form .gv-hint+.field,.gv-form .field .gv-hint{margin-top:.375rem}
.gv-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem}
.gv-two .field{margin:0}
.gv-two+.gv-hint{margin-top:-.75rem}
.gv-designs{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.375rem}
.gv-design{display:flex;align-items:center;gap:.4rem;padding:.4375rem .5rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface-2);color:var(--ink);font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;min-width:0;text-align:left}
.gv-design:hover{border-color:var(--muted)}
.gv-design.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.gv-design:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gv-sw{flex:none;width:1.125rem;height:1.125rem;border-radius:50%;border:1px solid rgba(0,0,0,.18)}
.gv-d-christmas .gv-sw{background:linear-gradient(135deg,#b3202c 50%,#1e5a3c 50%)}
.gv-d-birthday .gv-sw{background:conic-gradient(#ef476f 0 25%,#ffd166 0 50%,#06d6a0 0 75%,#118ab2 0)}
.gv-d-love .gv-sw{background:#e46a8c}
.gv-d-elegant .gv-sw{background:linear-gradient(135deg,#f7f2e6 50%,#a8843a 50%)}
.gv-d-kids .gv-sw{background:linear-gradient(135deg,#fff4c2 40%,#2f80ed 40%)}
.gv-d-minimal .gv-sw{background:linear-gradient(135deg,#fff 60%,#0f766e 60%)}
.gv-d-xmas-book .gv-sw{background:radial-gradient(circle at 50% 50%,#c4922a 0 22%,transparent 24%),linear-gradient(135deg,#1e5a3c 50%,#b3202c 50%)}
.gv-d-xmas-ink .gv-sw{background:radial-gradient(circle at 50% 50%,#000 0 18%,#fff 20%);border:1.5px dashed #000}
.gv-sub{margin-top:.625rem}
.gv-sub[hidden]{display:none}
.gv-sub .k{display:block;margin-bottom:.375rem;font-size:.8125rem}
.gv-d-ink .gv-sw{background:#fff;border:1.5px dashed #000}
.gv-ideas{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.5rem}
.gv-ideas[hidden]{display:none}
.gv-idea{border:1px dashed var(--line-2);border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-size:.8125rem;padding:.3125rem .625rem;cursor:pointer;text-align:left}
.gv-idea:hover{border-color:var(--accent)}
.gv-idea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gv-how{border-top:1px solid var(--line);padding-top:.875rem}
.gv-how[hidden]{display:none}
.gv-how h3{margin:0 0 .375rem;font-size:1rem}
.gv-how ol{margin:0;padding-left:1.25rem;font-size:.875rem;line-height:1.5;color:var(--muted)}

@media(min-width:920px){
  .duo.gv-duo{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);grid-template-areas:none}
  .duo.gv-duo>.pane-result,.duo.gv-duo>.pane-main{grid-area:auto}
  .gv-stage{position:sticky;top:1rem}
}
@media(max-width:360px){.gv-two{grid-template-columns:minmax(0,1fr)}}
