/* checkout lightbox, details form then Stripe embedded payment, all on-page */
.gclb{position:fixed;inset:0;z-index:1000;visibility:hidden;pointer-events:none;}
.gclb.open{visibility:visible;pointer-events:auto;}
.gclb-bg{position:absolute;inset:0;background:rgba(11,17,32,.62);-webkit-backdrop-backdrop-opacity:0;transition:opacity .3s;}
.gclb.open .gclb-bg{opacity:1;}
.gclb-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.97);width:min(560px,calc(100vw - 28px));max-height:min(90vh,900px);overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:26px;padding:clamp(22px,4.5vw,34px);opacity:0;transition:opacity .3s,transform .35s cubic-bezier(.16,.84,.44,1);}
.gclb.open .gclb-panel{opacity:1;transform:translate(-50%,-50%) scale(1);}
.gclb-x{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(22,32,51,.14);background:#fff;color:var(--ink);font-size:19px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;}
.gclb-x:hover{background:var(--ink);color:#fff;}
.gclb-title{font-size:clamp(21px,3vw,25px);font-weight:800;letter-spacing:-.02em;padding-right:44px;}
.gclb-sub{font-size:14.5px;color:var(--muted);line-height:1.55;margin:6px 0 0;}
.gclb-opts{display:grid;gap:10px;margin:18px 0 0;}
.gclb-opt{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1.5px solid rgba(22,32,51,.12);border-radius:16px;padding:14px 18px;background:#fff;cursor:pointer;font-family:var(--body);text-align:left;transition:border-color .2s,background .2s;}
.gclb-opt.sel{border-color:var(--ink);background:rgba(22,32,51,.045);}
.gclb-opt .t{font-family:var(--head);font-weight:700;font-size:15.5px;color:var(--ink);line-height:1.35;display:block;}
.gclb-opt .sub{display:block;font-family:var(--body);font-weight:600;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.45;}
.gclb-opt .p{font-family:var(--head);font-weight:800;font-size:16px;color:var(--ink);white-space:nowrap;}
.gclb-amt{display:none;margin:12px 0 0;}
.gclb-amt.show{display:block;}
.gclb-presets{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;}
.gclb-preset{border:1.5px solid rgba(22,32,51,.12);background:#fff;border-radius:100px;padding:9px 16px;font-family:var(--body);font-weight:600;font-size:14px;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.gclb-preset.sel{border-color:var(--ink);background:var(--ink);color:#fff;}
.gclb-field{margin:14px 0 0;}
.gclb-field label{display:block;font-family:var(--body);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:6px;}
.gclb-field input,.gclb-field textarea{width:100%;border:1.5px solid rgba(22,32,51,.12);border-radius:14px;padding:13px 16px;font-family:var(--body);font-size:15.5px;color:var(--ink);background:#fff;outline:none;transition:border-color .2s;resize:none;}
.gclb-field textarea{line-height:1.6;}
.gclb-field input:focus,.gclb-field textarea:focus{border-color:var(--ink);}
.gclb-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:520px){ .gclb-2col{grid-template-columns:1fr;} }
.gclb-err{display:none;margin:14px 0 0;background:#fdeeee;color:#b03030;border-radius:12px;padding:11px 14px;font-size:14px;font-weight:600;line-height:1.45;}
.gclb-err.show{display:block;}
.gclb-submit{display:block;width:100%;margin:18px 0 0;border:0;border-radius:100px;padding:16px 30px;font-family:var(--body);font-size:16px;font-weight:600;background:var(--ink);color:#fff;cursor:pointer;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),opacity .2s;}
.gclb-submit:hover{transform:translateY(-2px);}
.gclb-submit:disabled{opacity:.55;cursor:default;transform:none;}
.gclb-fine{font-size:12.5px;color:var(--muted);text-align:center;margin:12px 0 0;}
.gclb-back{background:none;border:0;padding:0;margin:0 0 12px;color:var(--muted);font-family:var(--body);font-weight:600;font-size:14px;cursor:pointer;}
.gclb-back:hover{color:var(--ink);}
#gclbStripe{min-height:440px;}
.gclb-done{text-align:center;padding:22px 6px 10px;}
.gclb-done .big{font-family:var(--head);font-weight:800;font-size:24px;color:var(--ink);letter-spacing:-.02em;}
.gclb-done p{font-size:15px;color:var(--grey);line-height:1.7;margin:12px auto 0;max-width:38ch;}
.gclb-done .gclb-view{display:inline-block;margin:18px 0 0;color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
