/* plan-concierge.css — Bettrlabs Plan Concierge (restored)
   ================================================================
   Premium guided plan-selection flow. Loads as full-screen modal.
   Uses tokens from shared.css (--black, --stone, --light, --snow,
   --mono, --pixel, --display, --sans).
   ================================================================ */

/* ───── Modal-wide form contrast guards ─────────────────────────
   Every form/button/input inside .pc-modal renders with full
   black ink + sane defaults — neutralizes browser/system styling
   that was washing button labels out to gray.
─────────────────────────────────────────────────────────────── */
.pc-modal,
.pc-modal *,
.pc-modal *::before,
.pc-modal *::after { box-sizing:border-box }

.pc-modal { color:#000 }
.pc-modal button,
.pc-modal input,
.pc-modal textarea,
.pc-modal select {
  font-family:var(--sans);
  color:#000;
  -webkit-text-fill-color:#000;
  -webkit-appearance:none;
  appearance:none;
  background:#fff;
}
.pc-modal button { -webkit-tap-highlight-color:transparent }
.pc-modal input::placeholder,
.pc-modal textarea::placeholder { color:#9a9a9a; -webkit-text-fill-color:#9a9a9a; opacity:1 }

/* ───── Backdrop + shell ────────────────────────────────────── */
.pc-root[hidden]{display:none !important}
.pc-root{
  position:fixed; inset:0; z-index:200;
  display:flex; align-items:stretch; justify-content:center;
  background:rgba(20,18,16,.55);
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  animation:pc-fade .25s ease-out;
}
@keyframes pc-fade{from{opacity:0}to{opacity:1}}

.pc-modal{
  position:relative;
  width:100%; max-width:760px;
  margin:24px;
  background:#fff;
  border-radius:20px;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.45),0 1px 0 rgba(0,0,0,.04);
  display:flex; flex-direction:column;
  max-height:calc(100vh - 48px);
  overflow:hidden;
  animation:pc-rise .35s cubic-bezier(.2,.8,.25,1) backwards;
}
@keyframes pc-rise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}

/* ───── Header ──────────────────────────────────────────────── */
.pc-head{
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:18px;
  padding:18px 24px 14px;
  border-bottom:1px solid var(--light);
  background:#fff;
  flex-shrink:0;
}
.pc-brand{display:flex; align-items:center; gap:10px; font-weight:600; letter-spacing:-.01em; color:var(--black)}
.pc-brand .brand-mark{width:22px;height:22px;border-radius:6px;background:var(--black);display:grid;place-items:center;color:#fff;font-family:var(--pixel);font-size:20px;line-height:1}
.pc-brand .brand-mark span{transform:translateY(2px)}
.pc-brand-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-left:4px}

.pc-progress{display:flex; gap:6px; justify-content:center; align-items:center; padding:0 8px}
.pc-prog-text{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--stone); white-space:nowrap}

.pc-close{
  width:32px; height:32px; border-radius:50%;
  background:transparent; border:1px solid transparent;
  display:grid; place-items:center;
  font-size:20px; color:var(--stone); cursor:pointer;
  transition:all .15s;
}
.pc-close:hover{background:var(--snow);color:var(--black);border-color:var(--rule)}

/* ───── Body ────────────────────────────────────────────────── */
.pc-body{flex:1; overflow-y:auto; padding:28px 28px 18px}
.pc-step{display:flex; flex-direction:column; gap:8px}

/* Headings + text */
.pc-eyebrow{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--stone); margin:0 0 12px;
}
.pc-eyebrow-offer{
  display:inline-block; padding:5px 11px; border-radius:999px;
  background:#0e1a0e; color:#9ee19e;
  font-weight:600;
}
.pc-h{
  font-family:var(--display); font-weight:400;
  font-size:28px; line-height:1.15; letter-spacing:-.02em;
  color:var(--black); margin:0 0 10px;
}
.pc-h .px{font-family:var(--pixel); font-weight:400; letter-spacing:.02em}
.pc-sub{font-size:15px; line-height:1.55; color:var(--stone); margin:0 0 14px; max-width:60ch}

/* Trust pills row */
.pc-trust-row{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px}
.pc-trust-pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 11px; border:1px solid var(--rule); border-radius:999px;
  background:#fff;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; color:var(--near);
}
.pc-trust-pill::before{content:"✓"; color:#1e8e1e; font-weight:700; font-size:9px}

.pc-picker-note{font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; color:var(--stone); opacity:.7; margin:0 0 22px}

/* ───── Question step ───────────────────────────────────────── */
.pc-q-meta{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-bottom:6px}
.pc-q-block{margin-top:18px}
.pc-q-block.is-first{margin-top:8px; padding-top:18px; border-top:1px dashed var(--rule)}
.pc-q-h{font-family:var(--display); font-weight:400; font-size:22px; line-height:1.2; letter-spacing:-.01em; color:var(--black); margin:6px 0 12px}

.pc-options{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:18px}

.pc-opt{
  position:relative; text-align:left;
  padding:16px 16px 16px 48px;
  border:1.5px solid var(--rule); border-radius:12px;
  background:#fff; cursor:pointer;
  font-family:var(--sans); font-size:15px; font-weight:600; color:#000;
  -webkit-text-fill-color:#000; line-height:1.3;
  transition:border-color .18s, background .18s, transform .12s, box-shadow .18s;
}
.pc-opt:hover{border-color:#000; background:#fafafa; transform:translateY(-1px); box-shadow:0 8px 18px -10px rgba(0,0,0,.22)}
.pc-opt::before{
  content:""; position:absolute; left:16px; top:50%; transform:translateY(-50%);
  width:18px; height:18px; border-radius:50%; border:1.6px solid #888; background:#fff;
  transition:border-color .15s, background .15s;
}
.pc-opt::after{
  content:""; position:absolute; left:21px; top:50%; transform:translateY(-50%) scale(0);
  width:8px; height:8px; border-radius:50%; background:#fff;
  transition:transform .15s ease-out;
}
.pc-opt.is-on{border-color:var(--black); background:#fff; box-shadow:0 6px 14px -8px rgba(0,0,0,.22)}
.pc-opt.is-on::before{background:var(--black); border-color:var(--black)}
.pc-opt.is-on::after{transform:translateY(-50%) scale(1)}

/* ───── Plan picker (step 4) ────────────────────────────────── */
.pc-rec-switch-note{
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  margin:8px 0 0; font-size:12.5px; color:var(--stone);
}
.pc-rec-switch-note b{color:var(--black); font-weight:600}
.pc-rec-switch-note .pc-link{font-size:12.5px; padding:0; text-decoration:underline; text-underline-offset:2px}

/* Inline offer strip on plan picker */
.pc-offer-strip{
  display:flex; align-items:center; gap:10px;
  padding:12px 14px; margin:0 0 20px;
  border:1px solid #0e1a0e; border-radius:12px;
  background:linear-gradient(180deg,#0e1a0e 0%,#142214 100%); color:#cdf2cd;
  font-size:13px; line-height:1.45;
}
.pc-offer-strip-ico{
  flex-shrink:0; width:22px; height:22px; border-radius:50%;
  background:#9ee19e; color:#0e1a0e;
  display:grid; place-items:center; font-weight:700; font-size:13px;
}
.pc-offer-strip b{color:#fff; font-family:var(--mono); letter-spacing:.12em; font-weight:600}

/* Recommended (large, full-width) */
.pc-pick-rec{
  border:1.5px solid var(--black); border-radius:18px;
  padding:24px; background:#fff;
  box-shadow:0 28px 60px -32px rgba(0,0,0,.32);
  position:relative; margin-bottom:18px;
}
.pc-pick-rec.is-selected{box-shadow:0 32px 70px -28px rgba(0,0,0,.42)}
.pc-pick-rec-head{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:1px dashed var(--rule)}
.pc-pick-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  padding:5px 11px; border-radius:999px;
  background:var(--black); color:#fff;
}
.pc-pick-badge::before{content:""; width:6px; height:6px; border-radius:50%; background:#9ee19e; animation:pc-pulse 1.6s ease-in-out infinite}
@keyframes pc-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.4)}}
.pc-rec-tag{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--stone); margin-bottom:6px}
.pc-rec-name{font-family:var(--display); font-weight:400; font-size:32px; line-height:1; letter-spacing:-.02em; color:var(--black); margin:6px 0 0}
.pc-rec-price{text-align:right}
.pc-rec-price .num{font-family:var(--display); font-size:34px; line-height:1; color:var(--black); font-weight:400}
.pc-rec-price .per{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-top:2px}
.pc-rec-price-then{font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--stone); margin-top:6px; text-transform:none}
.pc-rec-one-line{font-size:13px; line-height:1.5; color:var(--stone); margin:6px 0 0}

.pc-rec-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px}
.pc-rec-block{padding:14px 16px; border:1px solid var(--light); border-radius:10px; background:var(--snow)}
.pc-rec-block-h{font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--stone); margin-bottom:6px}
.pc-rec-block ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:6px}
.pc-rec-block li{font-size:13px; line-height:1.45; color:var(--near); padding-left:14px; position:relative}
.pc-rec-block li::before{content:"·"; position:absolute; left:4px; top:-2px; color:var(--near); font-weight:700}

/* Other plans grid */
.pc-pick-others{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:14px}
.pc-pick-card{
  background:#fff; border:1px solid var(--light); border-radius:14px;
  padding:18px 18px 16px;
  display:flex; flex-direction:column; gap:8px;
  transition:border-color .18s, transform .12s, box-shadow .18s;
}
.pc-pick-card:hover{border-color:var(--near); transform:translateY(-1px); box-shadow:0 12px 24px -16px rgba(0,0,0,.20)}
.pc-pick-card.is-selected{border-color:var(--black); box-shadow:0 14px 30px -16px rgba(0,0,0,.28)}
.pc-pick-name{font-family:var(--sans); font-size:15px; font-weight:600; color:var(--black); letter-spacing:-.01em}
.pc-pick-name .tier{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); font-weight:500}
.pc-pick-price{font-family:var(--display); font-size:22px; line-height:1; color:var(--black); font-weight:400; margin-bottom:2px}
.pc-pick-price-label{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-bottom:4px}
.pc-pick-price-then{font-family:var(--mono); font-size:11px; color:var(--stone); letter-spacing:.04em; margin-bottom:2px}
.pc-pick-line{font-size:12.5px; line-height:1.5; color:var(--stone); margin:0; flex:1}

.pc-pick-mini-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  margin-top:8px; padding:8px 12px; border-radius:999px;
  font-family:var(--sans); font-size:12.5px; font-weight:500;
  background:#fff; color:var(--black); border:1px solid var(--rule);
  cursor:pointer; transition:background .15s, border-color .15s, color .15s;
  text-decoration:none;
}
.pc-pick-mini-cta:hover{background:var(--snow); border-color:var(--near)}
.pc-pick-card.is-selected .pc-pick-mini-cta{background:var(--black); color:#fff; border-color:var(--black); cursor:default}

.pc-pick-compare{margin-top:6px; text-align:center}
.pc-pick-compare a{font-family:var(--mono); font-size:12px; letter-spacing:.06em; color:var(--stone); text-decoration:underline}
.pc-pick-compare a:hover{color:var(--black)}

/* FREE numerals — green emphasis */
.pc-num-free{color:#1e6a10 !important; font-family:var(--display) !important; letter-spacing:-.01em}

/* ───── Activation page (step 5) ────────────────────────────── */
.pc-offer-banner{
  display:flex; align-items:center; gap:14px; margin:0 0 18px;
  padding:16px 18px; border:1.5px solid #0e1a0e; border-radius:14px;
  background:linear-gradient(180deg,#0e1a0e 0%,#1a2e1a 100%); color:#fff;
  position:relative; overflow:hidden;
}
.pc-offer-banner::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 0% 0%, rgba(158,225,158,.12), transparent 60%);
}
.pc-offer-banner-left{display:flex; align-items:center; gap:14px; flex:1; position:relative}
.pc-offer-banner-ico{
  flex-shrink:0; width:32px; height:32px; border-radius:50%;
  background:#9ee19e; color:#0e1a0e;
  display:grid; place-items:center; font-size:16px; font-weight:700;
}
.pc-offer-banner-title{font-size:14px; line-height:1.4; color:#fff}
.pc-offer-banner-title b{font-family:var(--mono); letter-spacing:.12em; font-size:13px; font-weight:600; color:#9ee19e}
.pc-offer-banner-sub{margin-top:3px; font-size:12px; line-height:1.45; color:#cdf2cd; opacity:.85}

.pc-pay-card{border:1px solid var(--light); border-radius:14px; background:#fff; padding:22px 24px; margin-top:8px}
.pc-pay-row{display:flex; align-items:baseline; justify-content:space-between; padding:10px 0; border-bottom:1px dashed var(--rule); font-size:14px}
.pc-pay-row:last-child{border-bottom:0}
.pc-pay-row .k{color:var(--stone); font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase}
.pc-pay-row .v{color:var(--black); font-weight:500; font-family:var(--sans); text-align:right}
.pc-pay-row.total .v{font-family:var(--display); font-size:20px; font-weight:400; line-height:1; text-align:right}
.pc-pay-row .v small{display:block; font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--stone); font-weight:400; text-align:right; margin-top:3px}
.pc-pay-row.coupon .v,.pc-v-green{color:#1e8e1e !important; font-weight:500}

/* Digital-only / Lab Units clarifier */
.pc-clarify{
  display:flex; gap:14px; margin-top:14px;
  padding:14px 16px; border:1px solid var(--rule); border-radius:12px;
  background:var(--snow);
}
.pc-clarify-ico{
  flex-shrink:0; width:24px; height:24px; border-radius:50%;
  background:#0e1a14; color:#9ee19e;
  display:grid; place-items:center;
  font-weight:700; font-size:13px; font-family:var(--display);
}
.pc-clarify-body{flex:1; min-width:0}
.pc-clarify-title{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--black); margin-bottom:8px; font-weight:600;
}
.pc-clarify-list{display:flex; flex-direction:column; gap:6px}
.pc-clarify-row{
  font-size:12.5px; line-height:1.55; color:var(--near);
  padding-left:18px; position:relative;
}
.pc-clarify-row b{color:var(--black); font-weight:600}
.pc-clarify-row.pc-clarify-yes::before{
  content:"✓"; position:absolute; left:0; top:0;
  color:#1e8e1e; font-weight:700; font-size:13px;
}
.pc-clarify-row.pc-clarify-no::before{
  content:"·"; position:absolute; left:5px; top:-3px;
  color:var(--stone); font-weight:700; font-size:18px;
}

/* Coupon promo pill */
.pc-coupon-promo{margin-top:14px}
.pc-coupon-promo-label{font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--stone); margin-bottom:8px}
.pc-coupon-promo-pill{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 16px; border:1.5px solid var(--black); border-radius:12px;
  background:#fff; margin-bottom:10px;
}
.pc-coupon-promo-left{display:flex; flex-direction:column; gap:3px}
.pc-coupon-promo-code{font-family:var(--mono); font-size:16px; font-weight:600; letter-spacing:.14em; color:var(--black)}
.pc-coupon-promo-desc{font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--stone)}
.pc-coupon-promo-btn{
  font-family:var(--sans); font-size:13px; font-weight:500;
  padding:9px 18px; border-radius:999px;
  background:var(--black); color:#fff; border:none;
  cursor:pointer; white-space:nowrap; transition:opacity .15s;
  flex-shrink:0;
}
.pc-coupon-promo-btn:hover{opacity:.82}

.pc-coupon-alt{margin-top:4px}
.pc-coupon-alt-label{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.04em; color:var(--stone); margin-bottom:6px}
.pc-coupon-row{display:flex; gap:8px}
.pc-coupon-input{
  flex:1; font-family:var(--sans); font-size:15px; font-weight:500; color:#000;
  -webkit-text-fill-color:#000;
  padding:11px 14px; border:1.5px solid #d4d4d4; border-radius:8px;
  background:#fff; transition:border-color .15s, box-shadow .15s;
}
.pc-coupon-input::placeholder{color:#9a9a9a; font-weight:400; -webkit-text-fill-color:#9a9a9a}
.pc-coupon-input:focus{outline:none; border-color:#000; box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.pc-coupon-apply{
  font-family:var(--sans); font-size:13px; font-weight:500;
  padding:10px 16px; border-radius:8px;
  border:1px solid var(--black); background:#fff; color:var(--black);
  cursor:pointer; white-space:nowrap; transition:background .15s,color .15s;
}
.pc-coupon-apply:hover{background:var(--black); color:#fff}
.pc-coupon-msg{margin-top:7px; font-size:12.5px; font-family:var(--mono); letter-spacing:.04em; line-height:1.4}
.pc-coupon-msg.is-ok{color:#1e8e1e}
.pc-coupon-msg.is-err{color:#b00020}

.pc-coupon-applied-banner{
  display:flex; align-items:center; gap:10px; margin-top:14px;
  padding:12px 14px; border:1px solid #cbe9bd; border-radius:10px;
  background:#eaffe1; font-size:13px; line-height:1.45; color:#1e6a10;
}
.pc-coupon-applied-ico{
  flex-shrink:0; width:20px; height:20px; border-radius:50%;
  background:#1e8e1e; color:#fff; display:grid; place-items:center;
  font-size:10px; font-weight:700;
}
.pc-coupon-applied-banner b{color:#1e4a10; font-weight:600}

/* Setup form (free path) */
.pc-setup-form{margin-top:24px; padding-top:24px; border-top:1px dashed var(--rule)}
.pc-setup-form-title{font-family:var(--display); font-size:20px; line-height:1.2; letter-spacing:-.01em; color:#000; font-weight:400; margin:0 0 6px}
.pc-setup-form-sub{font-family:var(--sans); font-size:13.5px; line-height:1.5; color:var(--stone); margin:0 0 18px; max-width:54ch}

/* Form fields */
.pc-pay-fields{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:18px}
.pc-pay-fields label{
  display:flex; flex-direction:column; gap:6px;
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:#262626; font-weight:600;
}
.pc-pay-fields input{
  font-family:var(--sans); font-size:15px; font-weight:500; color:#000;
  -webkit-text-fill-color:#000;
  padding:12px 14px; border:1.5px solid #d4d4d4; border-radius:8px;
  background:#fff; transition:border-color .15s, box-shadow .15s;
}
.pc-pay-fields input::placeholder{color:#9a9a9a; font-weight:400; -webkit-text-fill-color:#9a9a9a}
.pc-pay-fields input:focus{outline:none; border-color:#000; box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.pc-pay-fields .full{grid-column:1/-1}

.pc-pay-fields textarea{
  font-family:var(--sans); font-size:15px; font-weight:500; color:#000;
  -webkit-text-fill-color:#000;
  padding:12px 14px; border:1.5px solid #d4d4d4; border-radius:8px;
  background:#fff; transition:border-color .15s, box-shadow .15s;
  resize:vertical; width:100%; box-sizing:border-box; min-height:84px; line-height:1.5;
}
.pc-pay-fields textarea::placeholder{color:#9a9a9a; font-weight:400; -webkit-text-fill-color:#9a9a9a}
.pc-pay-fields textarea:focus{outline:none; border-color:#000; box-shadow:0 0 0 3px rgba(0,0,0,.08)}

.pc-pay-fields select.pc-select{
  font-family:var(--sans); font-size:15px; font-weight:500; color:#000;
  -webkit-text-fill-color:#000;
  padding:12px 40px 12px 14px; border:1.5px solid #d4d4d4; border-radius:8px;
  background:#fff;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  cursor:pointer; width:100%; box-sizing:border-box;
  -webkit-appearance:none; appearance:none;
  transition:border-color .15s, box-shadow .15s;
}
.pc-pay-fields select.pc-select:focus{outline:none; border-color:#000; box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.pc-pay-fields select.pc-select:invalid{color:#9a9a9a; -webkit-text-fill-color:#9a9a9a}

.pc-pay-fine{margin-top:14px; font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--silver); text-align:center}

/* ───── Success page (step 6) ───────────────────────────────── */
.pc-success{text-align:center; padding:18px 0}
.pc-success-ico{
  width:64px; height:64px; border-radius:50%;
  background:#eaffe1; border:2px solid #1e8e1e;
  color:#1e8e1e; display:grid; place-items:center;
  font-size:30px; font-weight:600;
  margin:0 auto 18px;
  animation:pc-pop .5s cubic-bezier(.2,.8,.25,1.4) backwards;
}
@keyframes pc-pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.pc-success .pc-h{text-align:center}
.pc-success .pc-sub{text-align:center; margin-left:auto; margin-right:auto}

.pc-success-steps{
  display:flex; flex-direction:column; gap:10px;
  margin:18px auto 0; max-width:480px; text-align:left;
}
.pc-success-step{
  display:flex; gap:14px; align-items:flex-start;
  padding:14px 16px; border:1px solid var(--light); border-radius:12px;
  background:#fff;
}
.pc-success-step-num{
  flex-shrink:0; width:26px; height:26px; border-radius:50%;
  background:var(--black); color:#fff;
  display:grid; place-items:center;
  font-family:var(--mono); font-size:11px; font-weight:600;
}
.pc-success-step b{font-size:13.5px; color:var(--black); font-weight:600}
.pc-success-step span{font-size:12.5px; color:var(--stone); line-height:1.5}

.pc-receipt{
  display:inline-block; text-align:left;
  margin:20px auto 0; padding:14px 18px;
  border:1px dashed var(--rule); border-radius:10px;
  font-family:var(--mono); font-size:12px; line-height:1.7; color:var(--near);
  background:var(--snow);
}
.pc-receipt b{color:var(--black); font-weight:500}

.pc-billing-note{margin:20px auto 0; max-width:44ch; font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; color:var(--stone); text-align:center; line-height:1.65}

/* ───── Booking (step 7) ────────────────────────────────────── */
.pc-booking-frame{
  margin-top:8px;
  border:1px solid var(--light); border-radius:14px; overflow:hidden;
  background:#fff; min-height:600px;
}
.pc-booking-frame > *{width:100% !important; min-width:0 !important}
.pc-booking-iframe{width:100%; height:680px; border:0; display:block}

/* ───── Footer (sticky CTAs) ────────────────────────────────── */
.pc-foot{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 24px;
  border-top:1px solid var(--light);
  background:#fff;
  flex-shrink:0;
}
.pc-foot-right{display:flex; align-items:center; gap:14px}

.pc-cta{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 20px; border-radius:999px;
  background:var(--black); color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border:1.5px solid var(--black);
  font-family:var(--sans); font-size:14.5px; font-weight:500; letter-spacing:.01em;
  cursor:pointer; text-decoration:none;
  transition:all .18s;
  box-shadow:0 8px 20px -10px rgba(0,0,0,.5);
}
.pc-cta:hover{background:#000; transform:translateY(-1px); box-shadow:0 12px 28px -10px rgba(0,0,0,.6)}
.pc-cta:active{transform:translateY(0)}
.pc-cta:disabled{opacity:.5; cursor:not-allowed; box-shadow:none; transform:none}
.pc-cta .arrow{font-size:16px; transition:transform .2s}
.pc-cta:hover .arrow{transform:translateX(3px)}
.pc-cta.ghost{background:#fff; color:var(--black) !important; -webkit-text-fill-color:var(--black) !important; box-shadow:none}
.pc-cta.ghost:hover{background:var(--snow)}
.pc-cta.pc-cta-static:hover{background:#fff; box-shadow:none; transform:none}
.pc-cta.pc-cta-static:hover .arrow{transform:none}

.pc-back, .pc-link{
  background:transparent; border:none; cursor:pointer;
  font-family:var(--sans); font-size:14px; font-weight:500;
  color:var(--stone); padding:8px 4px;
  text-decoration:none; transition:color .15s;
}
.pc-back:hover, .pc-link:hover{color:var(--black)}
.pc-back{padding-left:0}
.pc-back:disabled{opacity:.4; cursor:not-allowed}

/* ───── Mobile ──────────────────────────────────────────────── */
@media (max-width: 720px) {
  .pc-modal{margin:12px; max-height:calc(100vh - 24px)}
  .pc-body{padding:20px 18px 14px}
  .pc-h{font-size:24px}
  .pc-pick-others{grid-template-columns:1fr}
  .pc-pick-rec-head{flex-direction:column}
  .pc-pick-rec{padding:18px}
  .pc-rec-grid{grid-template-columns:1fr}
  .pc-pay-fields{grid-template-columns:1fr}
  .pc-options{grid-template-columns:1fr}
  .pc-foot{padding:14px 18px}
}

@media (prefers-reduced-motion: reduce) {
  .pc-root, .pc-modal, .pc-step, .pc-success-ico{animation:none}
  .pc-cta:hover{transform:none}
}
