/* Paywall and subscription boxes. Uses the Porcino theme tokens when present. */
.pa-box { margin: 1.5em 0; padding: 1.4em 1.6em; border: 1px solid var(--pc-line, #d5d9cf); border-radius: 14px; background: var(--pc-surface, #fff); }
.pa-box h2 { margin-top: 0; }
.pa-box.pa-ok { border-color: var(--pc-forest, #1f4a32); }
.pa-teaser { position: relative; }
.pa-teaser::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3em; background: linear-gradient(transparent, var(--paper, #f1f2ec)); }
.pa-benefits { padding-left: 1.2em; }
.pa-benefits li { margin: .3em 0; }
.pa-btn { display: inline-block; font-weight: 600; border-radius: 999px; padding: .55em 1.2em; border: 1px solid var(--pc-ink, #17241b); color: var(--pc-ink, #17241b); text-decoration: none; background: transparent; cursor: pointer; font-size: .95em; }
.pa-btn-primary { background: var(--pc-cap, #7a3a17); border-color: var(--pc-cap, #7a3a17); color: #fff; }
.pa-btn-primary:hover { color: #fff; filter: brightness(1.1); }
.pa-btn-danger { color: #a3261b; border-color: #a3261b; }
.pa-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin: 1.5em 0; max-width: 760px; }
.pa-plan { position: relative; border: 1px solid var(--pc-line, #d5d9cf); border-radius: 14px; padding: 1.3em 1.4em; background: var(--pc-surface, #fff); min-width: 0; }
.pa-plan-best { border: 2px solid var(--pc-cap, #7a3a17); }
.pa-plan-tag { position: absolute; top: -.8em; left: 1.2em; background: var(--pc-cap, #7a3a17); color: #fff; font-size: .75em; font-weight: 700; padding: .15em .7em; border-radius: 999px; }
.pa-plan h3 { margin: .2em 0; }
.pa-plans .pa-plan p.pa-price { font-size: 1.9rem; font-weight: 700; margin: .2em 0; font-variant-numeric: tabular-nums; }
.pa-plans .pa-plan p.pa-price span { font-size: .95rem; font-weight: 400; color: var(--pc-muted, #5b675e); }
.pa-note { color: var(--pc-muted, #5b675e); font-size: .9em; margin: 0 0 1em; }
.pa-paypal { min-height: 45px; }
.pa-msg { font-weight: 600; }
.pa-small { font-size: .88em; color: var(--pc-muted, #5b675e); }
.pa-dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .5em 1.4em; }
.pa-dl dt { color: var(--pc-muted, #5b675e); }
.pa-dl dd { margin: 0; }
.pa-cancel { margin-top: 1.5em; }
