/* PRIZENTA form kit (2026-11): the compact block language first used on the Gift Calendar page
   (apps/pwa/templates/pwa/gift-calendar.html). Scope a page with .pz on its outer container; the
   site theme forces 28px line-height, 48px h2 and 44px buttons, so .pz resets those to this scale.
   Headings inside .pz carry class "pz-h small" because the theme h2 rule excludes .small via :not(). */

.pz { font-size:16px; line-height:1.4; color:#333; }
.pz p { margin:0; }
.pz .pz-page-title.pt-title-subpages { padding-bottom:.4rem; }
.pz-intro { color:#777; font-size:.95rem; margin:0 0 .8rem !important; text-align:center; }

/* Flash messages */
.pz-flash { display:flex; align-items:center; gap:.5rem; background:#eef8ef; border:1px solid #cfe9d2; color:#24692f;
    border-radius:8px; padding:.45rem .8rem; margin:0 0 .8rem; font-size:.92rem; transition:opacity .4s; }
.pz-flash.is-error { background:#fdf0f2; border-color:#f3cdd5; color:#a11d38; }
.pz-flash.is-warn { background:#fff7e6; border-color:#f3dfae; color:#8a5a00; }
.pz-flash.is-gone { opacity:0; }

/* Blocks */
.pz-block { border:1px solid #e6e6e6; border-radius:10px; padding:.9rem 1.1rem 1rem; margin:0 0 .9rem; background:#fff; }
.pz-block.is-editing { border-color:#dd4a42; box-shadow:0 0 0 3px rgba(221,74,66,.08); }
.pz-block.is-soft { background:#fafafa; }
.pz h2.pz-h, .pz h3.pz-h { font-size:1.15rem; line-height:1.3; font-weight:700; margin:0 0 .6rem; padding:0; text-transform:none; }
.pz .pz-h .pz-count { color:#999; font-weight:400; font-size:.9rem; margin-left:.3rem; }
.pz .pz-h .pz-h-link { float:right; font-weight:400; font-size:.8rem; }

/* Buttons and links */
.pz .btn { height:auto; min-height:0; line-height:1.2; padding:.55rem 1rem; font-size:.8rem; border-radius:6px; }
.pz .btn .fa { margin-right:.35rem; }
.pz .btn.pz-ghost { background:#fff; color:#333; border:1px solid #d6d6d6; }
.pz .btn.pz-ghost:hover { border-color:#999; color:#333; }
.pz .btn.pz-sm { padding:.45rem .8rem; font-size:.74rem; }
.pz .btn.pz-pay { width:100%; padding:.8rem 1rem; font-size:.9rem; }
.pz .pz-link { background:none; border:0; padding:0; color:#666; font-size:.82rem; text-decoration:underline; cursor:pointer; }
.pz .pz-link:hover { color:#dd4a42; }
.pz .pz-icon { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #e0e0e0;
    border-radius:6px; background:#fff; color:#666; font-size:.95rem; padding:0; cursor:pointer; vertical-align:middle; }
.pz .pz-icon:hover { color:#dd4a42; border-color:#dd4a42; }
.pz .pz-muted { color:#888; font-size:.85rem; }
.pz .pz-hint { font-size:.75rem; line-height:1.3; color:#999; margin-top:.25rem; }
.pz .pz-err { color:#dd4a42; font-size:.78rem; line-height:1.3; margin-top:.2rem; }

/* Form grid: 12 columns on desktop, 2 on tablet, 1 on phone */
.pz-form { display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); gap:.6rem .9rem; }
.pz-f { grid-column:span 3; min-width:0; }
.pz-f.w2 { grid-column:span 2; } .pz-f.w4 { grid-column:span 4; } .pz-f.w5 { grid-column:span 5; }
.pz-f.w6 { grid-column:span 6; } .pz-f.w8 { grid-column:span 8; } .pz-f.w12 { grid-column:1 / -1; }
.pz-f label, .pz-f .pz-label, .pz .pz-label { display:block; font-size:.8rem; line-height:1.25; color:#666; margin:0 0 .25rem; font-weight:400; text-transform:none; }
.pz-f label { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pz-lrow { display:flex; justify-content:space-between; gap:.5rem; }
.pz-lrow .pz-link { font-size:.78rem; }
.pz .pz-check { display:inline-flex; align-items:center; gap:.35rem; color:#333; cursor:pointer; overflow:visible; font-size:.9rem; margin:0; }
.pz .pz-check input { margin:0; }
.pz .pz-check.is-locked { color:#777; cursor:default; }
.pz .pz-check.is-locked input { opacity:.6; }
.pz .pz-check-list { display:flex; flex-direction:column; gap:.35rem; }
.pz .form-control { height:38px; padding:.35rem .6rem; font-size:.95rem; line-height:1.3; border-radius:6px; }
.pz textarea.form-control { height:38px; min-height:38px; resize:vertical; }
.pz .form-control.is-invalid { border-color:#dd4a42; }
.pz .form-control[readonly] { background:#f7f7f7; color:#555; }
.pz-pair { display:flex; gap:.35rem; align-items:center; }
.pz-pair .form-control { min-width:0; flex:1 1 0; }
.pz-pair span { color:#999; font-size:.85rem; }
.pz-inline { display:flex; gap:.4rem; align-items:flex-end; }
.pz-inline .pz-f, .pz-inline .form-control { flex:1 1 auto; min-width:0; }
.pz-inline .btn { flex:none; }
.pz-submit { grid-column:1 / -1; display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; margin-top:.3rem; }
.pz-submit.is-split { justify-content:space-between; }

/* Choice cards (radio / checkbox with a title and a sub-line) */
.pz-choice { display:flex; gap:.5rem; align-items:flex-start; border:1px solid #e0e0e0; border-radius:8px; padding:.55rem .7rem; margin:0 0 .45rem; font-size:.9rem; cursor:pointer; background:#fff; }
.pz-choice input { margin:3px 0 0; flex:none; }
.pz-choice.is-on { border-color:#dd4a42; background:#fff6f7; }
.pz-choice b { display:block; font-weight:600; }
.pz-choice small { color:#888; font-size:.8rem; }

/* Chips, pills, amount presets */
.pz-chips { display:flex; flex-wrap:wrap; gap:.35rem; margin:.3rem 0 .5rem; }
.pz-chip { border:1px solid #e0e0e0; border-radius:999px; padding:.2rem .6rem; font-size:.8rem; color:#444; background:#fff; cursor:pointer; }
.pz-chip.is-on { background:#222; color:#fff; border-color:#222; }
.pz-pill { display:inline-block; min-width:2.6rem; text-align:center; font-weight:700; font-size:.9rem; border-radius:999px; padding:.1rem .5rem; background:#f2f2f2; color:#333; }
.pz-pill.is-soon { background:#dd4a42; color:#fff; }
.pz-pill.is-muted { background:none; color:#aaa; font-weight:400; font-size:.8rem; }
.pz-amounts { display:flex; gap:.4rem; flex-wrap:wrap; margin:.4rem 0 .6rem; }
.pz-amount { border:1px solid #d6d6d6; border-radius:999px; padding:.3rem .75rem; font-size:.85rem; font-weight:600; background:#fff; cursor:pointer; }
.pz-amount.is-on { background:#222; color:#fff; border-color:#222; }

/* One-line rows (lists inside a block) */
.pz-rows { display:block; }
.pz-row { display:flex; justify-content:space-between; gap:.6rem; align-items:center; padding:.45rem 0; border-top:1px solid #f0f0f0; font-size:.92rem; flex-wrap:wrap; }
.pz-row:first-child { border-top:0; }
.pz-row b { font-weight:600; }
.pz-row .pz-actions { white-space:nowrap; display:flex; gap:.3rem; }
.pz-row .pz-actions form { display:inline; margin:0; }
.pz-empty { color:#888; padding:.4rem 0; }

/* Totals (receipt) */
.pz-tot { display:flex; justify-content:space-between; gap:.6rem; font-size:.92rem; padding:.2rem 0; font-variant-numeric:tabular-nums; }
.pz-tot.is-muted { color:#888; font-size:.8rem; }
.pz-tot.is-sum { border-top:1px solid #e6e6e6; margin-top:.3rem; padding-top:.45rem; font-weight:800; font-size:1.05rem; }

/* Big figure (balance) */
.pz-big { font-size:1.7rem; font-weight:800; color:#222; line-height:1.1; }
.pz-big small { font-size:.8rem; font-weight:400; color:#888; margin-left:.4rem; }

/* Divider with a word ("or") */
.pz-or { text-align:center; color:#aaa; font-size:.75rem; margin:.1rem 0 .6rem; position:relative; }
.pz-or:before { content:""; position:absolute; left:0; right:0; top:50%; border-top:1px solid #eee; }
.pz-or span { background:#fff; padding:0 .6rem; position:relative; }

/* Two-up blocks */
.pz-2up { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.pz-2up > .pz-block { margin:0; }

@media (max-width: 991px) {
    .pz-f, .pz-f.w2, .pz-f.w4, .pz-f.w5, .pz-f.w8 { grid-column:span 6; }
    .pz-f.w12 { grid-column:1 / -1; }
}
@media (max-width: 575px) {
    .pz-block { padding:.8rem .85rem .9rem; }
    .pz-f, .pz-f.w2, .pz-f.w4, .pz-f.w5, .pz-f.w6, .pz-f.w8 { grid-column:1 / -1; }
    .pz-f.pz-half { grid-column:span 6; }
    .pz-2up { grid-template-columns:1fr; }
    .pz-inline { flex-wrap:wrap; }
}

/* Footer link lists: smaller than the theme's 16px so the long "My Prizenta" column stays compact */
footer .pt-list li a { font-size:14px; line-height:1.3; padding:4px 0; }
footer .pt-list li a svg { width:13px; height:13px; margin-right:6px !important; }

/* Premium offer and its four benefits, shared by all purchase surfaces. */
.pz-premium-lead { font-size:1.05rem; line-height:1.4; margin:0 0 .9rem !important; }
.pz-premium-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin:0 0 1rem; }
.pz-premium-benefit { border:1px solid #ecdedd; border-radius:10px; padding:.9rem; background:#fffafa; font-size:.95rem; line-height:1.5; }
.pz-premium-benefit p { margin:0; }
.pz-premium-price { margin:0 0 .65rem; }
.pz-premium-price-before { display:flex; gap:.55rem; align-items:center; margin-bottom:.3rem; }
.pz-premium-price-before s { color:#888; font-size:.95rem; }
.pz-premium-discount { display:inline-block; background:#fdebe9; color:#b81f45; border-radius:999px; padding:.15rem .5rem; font-size:.8rem; font-weight:700; }
@media (max-width:575px) { .pz-premium-benefits { grid-template-columns:1fr; } }
