/* PRS Discount Cards — /discount-cards page and homepage teaser.
   Everything is prefixed prs- / dc- so it cannot affect other pages. */

/* The card is a size container: every measurement below scales with the card's
   own width (cqw), so a card looks the same, with the same breathing room,
   whether it sits three across on a desktop or alone on a phone. The px floors
   keep the small print readable. Browsers without cqw use the rem fallbacks. */
.prs-card{display:flex;flex-direction:column;gap:18px;container-type:inline-size}
.prs-card__face{--ink:#fff;--pill:rgba(255,255,255,.16);--line:rgba(255,255,255,.3);--sheen:rgba(255,255,255,.28);--stripe:rgba(255,255,255,.05);--ring:rgba(255,255,255,.25);--ring-fill:rgba(255,255,255,.05);--num-shadow:0 1px 2px rgba(0,0,0,.3);
  position:relative;aspect-ratio:1.586/1;border-radius:20px;padding:22px 24px;color:var(--ink);overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:0 18px 40px -16px rgba(15,23,42,.55),inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.prs-card__face::before{content:"";position:absolute;inset:0;background:
  radial-gradient(120% 80% at 100% 0%,var(--sheen),transparent 55%),
  repeating-linear-gradient(115deg,var(--stripe) 0 2px,transparent 2px 14px);pointer-events:none}
.prs-card__face::after{content:"";position:absolute;width:70%;aspect-ratio:1;right:-22%;bottom:-48%;border-radius:50%;
  border:1px solid var(--ring);box-shadow:0 0 0 22px var(--ring-fill),0 0 0 44px var(--ring-fill);pointer-events:none}
.prs-card--silver .prs-card__face{--ink:#0b1220;--pill:rgba(11,18,32,.07);--line:rgba(11,18,32,.3);--sheen:rgba(255,255,255,.8);--stripe:rgba(255,255,255,.12);--ring:rgba(11,18,32,.14);--ring-fill:rgba(11,18,32,.04);--num-shadow:none;
  background:linear-gradient(135deg,#e6e9ee 0%,#b3b9c3 48%,#7d838d 100%)}
.prs-card--gold .prs-card__face{--ink:#2a1a00;--pill:rgba(42,26,0,.08);--line:rgba(42,26,0,.32);--sheen:rgba(255,255,255,.65);--stripe:rgba(255,255,255,.1);--ring:rgba(42,26,0,.16);--ring-fill:rgba(42,26,0,.04);--num-shadow:none;
  background:linear-gradient(135deg,#fbe38a 0%,#e0b02e 50%,#b8860b 100%)}
.prs-card--platinum .prs-card__face{--ink:#0f172a;--pill:rgba(15,23,42,.06);--line:rgba(15,23,42,.28);--sheen:rgba(255,255,255,.95);--stripe:rgba(255,255,255,.2);--ring:rgba(15,23,42,.12);--ring-fill:rgba(15,23,42,.03);--num-shadow:none;
  background:linear-gradient(135deg,#ffffff 0%,#e8edf6 46%,#c5cfe0 100%);
  box-shadow:0 18px 40px -16px rgba(15,23,42,.45),inset 0 0 0 1px rgba(15,23,42,.1),inset 0 1px 0 #fff}
.prs-card__top{display:flex;justify-content:space-between;align-items:center;gap:10px;position:relative;z-index:1}
.prs-card__brand{font-weight:800;letter-spacing:.14em;font-size:.78rem;text-transform:uppercase;line-height:1.25}
.prs-card__brand small{display:block;font-weight:500;letter-spacing:.2em;font-size:.58rem;opacity:.8;margin-top:.3em}
.prs-card__tier{flex:none;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;border-radius:99px;
  background:var(--pill);backdrop-filter:blur(6px);border:1px solid var(--line)}
.prs-card__mid{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.prs-card__off{font-size:3.3rem;font-weight:800;line-height:.9;letter-spacing:-.04em;white-space:nowrap}
.prs-card__off span{font-size:.42em;font-weight:700;letter-spacing:.02em;margin-left:.12em;opacity:.9}
.prs-card__sub{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;opacity:.9;text-align:right;line-height:1.45}
.prs-card__foot{position:relative;z-index:1;display:grid;gap:.9em}
.prs-card__num{font-family:ui-monospace,Consolas,monospace;font-size:1.05rem;letter-spacing:.2em;text-shadow:var(--num-shadow)}
.prs-card__row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;opacity:.95}
.prs-card__row > div:first-child{flex:1;min-width:0}
.prs-card__row > div:last-child{flex:none}
.prs-card__row b{display:block;font-size:.8rem;letter-spacing:.12em;font-weight:700;white-space:nowrap}
.prs-card__row .prs-name{white-space:normal;overflow-wrap:anywhere;line-height:1.2;font-size:calc(.8rem * var(--name-scale,1))}
.prs-card__row em{font-style:normal;opacity:.75;display:block;font-size:.5rem;margin-bottom:.35em}

@supports (width:1cqw){
  .prs-card__face{border-radius:max(14px,4.5cqw);padding:max(16px,5.2cqw) max(18px,5.8cqw)}
  .prs-card__face::after{box-shadow:0 0 0 5cqw var(--ring-fill),0 0 0 10cqw var(--ring-fill)}
  .prs-card__top{gap:3cqw}
  .prs-card__brand{font-size:max(10px,2.9cqw)}
  .prs-card__brand small{font-size:max(8px,2.1cqw)}
  .prs-card__tier{font-size:max(9px,2.5cqw);padding:max(4px,1.2cqw) max(9px,2.5cqw)}
  .prs-card__off{font-size:max(34px,12.2cqw)}
  .prs-card__sub{font-size:max(9px,2.55cqw)}
  .prs-card__num{font-size:max(12.5px,3.8cqw)}
  .prs-card__row{font-size:max(9px,2.2cqw);gap:3cqw}
  .prs-card__row b{font-size:max(11px,3cqw)}
  .prs-card__row .prs-name{font-size:max(9px,calc(11px * var(--name-scale,1)),calc(3cqw * var(--name-scale,1)))}
  .prs-card__row em{font-size:max(8px,1.85cqw)}
}

/* ----- order page ----- */
.dc-wrap{max-width:1200px;margin:0 auto}
.dc-step{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-size:1.25rem;font-weight:700;color:var(--text-heading)}
.dc-step span{flex:none;width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:.95rem}
.dc-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;margin-bottom:56px}
.dc-option{position:relative;flex:1 1 340px;max-width:400px;display:flex;flex-direction:column;gap:16px;padding:12px;border-radius:26px;border:2px solid transparent;
  cursor:pointer;background:var(--bg-surface);box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s,transform .2s}
.dc-option:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.dc-option input{position:absolute;opacity:0;pointer-events:none}
.dc-option:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 4px rgba(var(--primary-rgb),.15),var(--shadow-lg)}
.dc-option:has(input:focus-visible){outline:3px solid var(--primary);outline-offset:3px}
.dc-option .prs-card__face{transition:none}
.dc-flag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);z-index:2;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#92400e;background:#fef3c7;padding:4px 12px;border-radius:99px;white-space:nowrap}
.dc-option h3{margin:0 4px;font-size:1.2rem;color:var(--text-heading)}
.dc-option p{margin:0 4px;font-size:.92rem;line-height:1.5}
.dc-list{list-style:none;margin:0 4px 6px;padding:0;display:grid;gap:7px;font-size:.9rem;color:var(--text-heading)}
.dc-list li{display:flex;gap:9px;align-items:flex-start}
.dc-list li::before{content:"";flex:none;width:16px;height:16px;margin-top:2px;border-radius:50%;
  background:var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.3l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/cover}
.dc-pick{margin:auto 4px 4px;text-align:center;font-weight:700;padding:12px 16px;border-radius:12px;background:var(--bg-subtle);color:var(--text-heading);border:1px solid var(--border);transition:background .2s,color .2s}
.dc-option:has(input:checked) .dc-pick{background:var(--primary);color:#fff;border-color:var(--primary)}
.dc-option:has(input:checked) .dc-pick::before{content:"\2713  "}

.dc-form{max-width:640px;margin:0 auto;padding:32px;border-radius:var(--radius-xl);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-md)}
.dc-form h3{margin:0 0 4px}
.dc-form .dc-sub{margin:0 0 22px;font-size:.95rem}
.dc-form .dc-row{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.dc-form .dc-hint{display:block;margin-top:6px;font-size:.8rem;color:var(--text-body)}
.dc-form .dc-terms{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;margin-bottom:1.25rem}
.dc-form .dc-terms input{margin-top:4px;width:auto}
.dc-note{margin:18px 0 0;font-size:.85rem;text-align:center}
.dc-selected{display:flex;align-items:center;gap:10px;margin-bottom:22px;padding:12px 16px;border-radius:12px;background:rgba(var(--primary-rgb),.08);color:var(--text-heading);font-weight:600}
.dc-selected i{color:var(--primary)}
.dc-done{display:none;text-align:center;padding:12px 0}
.dc-done.visible{display:block}
.dc-done .icon{width:80px;height:80px;background:var(--success-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}
.dc-done .icon i{font-size:2.5rem;color:var(--success-text)}
.dc-ref{display:inline-block;margin:6px 0 14px;padding:8px 16px;border-radius:10px;background:var(--bg-subtle);border:1px dashed var(--border);font-family:ui-monospace,Consolas,monospace;font-size:1.15rem;font-weight:700;letter-spacing:.1em;color:var(--text-heading)}
.dc-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;max-width:1000px;margin:0 auto}
.dc-steps div{padding:22px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border)}
.dc-steps b{display:block;margin-bottom:6px;color:var(--text-heading)}
.dc-steps span{font-size:.92rem}
.dc-fine{max-width:760px;margin:26px auto 0;text-align:center;font-size:.8rem}

@media (max-width:600px){
  .dc-option{padding:8px;border-radius:22px}
  .dc-form{padding:22px 18px}
  .dc-form .dc-row{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.dc-option,.dc-option:hover{transition:none;transform:none}}

/* ----- homepage teaser ----- */
.prs-home-cards .dc-grid{margin-bottom:0}
.dc-grid > .prs-card{flex:1 1 340px;max-width:400px}
.prs-home-card{text-decoration:none;color:inherit}
.prs-home-cards__more{text-align:center;margin-top:30px}
.prs-home-cards__more p{margin:0 0 16px;font-size:.95rem}

.prs-home-card:hover .prs-card__face{transform:translateY(-6px) rotate(-1deg);box-shadow:0 28px 50px -18px rgba(15,23,42,.6),inset 0 1px 0 rgba(255,255,255,.3)}
.dc-form .form-status{margin-top:14px;text-align:center;font-size:.92rem;font-weight:600;min-height:1.2em}
.dc-form .form-status.error{color:var(--error)}
@media (prefers-reduced-motion:reduce){.prs-home-card:hover .prs-card__face{transform:none}}
