/* /plans/ — page-scoped styles. Everything is built from the site tokens in site.css (forest, gold, cream, ink, hairline,
   the radius and space scales); the only literals are the e-ink "paper" tones inside .plans-screen, which belong to that
   component the way the sketch-plate pigments belong to .plate__*. Loaded only by /plans/ (the technology-refresh.css pattern). */

.page-plans .hero h1 em { font-style:normal; color:var(--gold); }
.page-plans .hero--forest .kicker { margin-bottom:var(--s-3); }

/* ---------- hero ---------- */
.plans-hero__facts { list-style:none; display:flex; flex-wrap:wrap; gap:var(--s-3) var(--s-5); margin:var(--s-5) 0 0; padding:0; color:var(--mist); font-size:var(--t-body-s); }
.plans-hero__facts li::before { content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--gold); margin-right:8px; vertical-align:middle; }
.plans-receipt { background:var(--forest-2); border:1px solid rgba(207,224,210,.28); border-radius:var(--r-l); padding:var(--s-5); color:var(--mist); font-variant-numeric:tabular-nums; min-width:0; }
.plans-receipt h3 { color:var(--cream); font-weight:500; margin:0 0 4px; }
.plans-receipt__sub { font-size:.85rem; margin:0 0 var(--s-4); }
.plans-receipt__row { display:flex; justify-content:space-between; gap:var(--s-3); padding:9px 0; border-bottom:1px dashed rgba(207,224,210,.28); font-size:.95rem; }
.plans-receipt__row b { color:var(--cream); font-weight:600; }
.plans-receipt__row b.is-zero { color:var(--gold); font-weight:700; }
.plans-receipt__row--total { border-bottom:0; padding-top:14px; }
.plans-receipt__row--total b { color:var(--gold); font-family:var(--font-head); font-size:1.6rem; font-weight:900; }
.plans-sim-note { margin:var(--s-3) 0 0; }
.bg-forest .plans-sim-note, .hero--forest .plans-sim-note { color:var(--mist); }

/* the section rail follows the Economics rail */
.plans-rail { z-index:90; }

/* the "A#" assumption markers */
.page-plans .asm { font-family:var(--font-body); font-size:.62em; font-weight:600; vertical-align:super; line-height:0; color:var(--ink-faint); text-decoration:none; border-bottom:1px dotted var(--ink-faint); margin-left:2px; letter-spacing:0; }
.page-plans .asm:hover { color:var(--gold-ink); border-bottom-color:var(--gold-ink); }
.page-plans .bg-forest .asm, .page-plans .hero--forest .asm { color:var(--mist); border-bottom-color:var(--mist); }
/* figures are facts (data-fact) so the numbers stay sourced; they read as plain numbers, not as underlined citations */
.page-plans [data-fact] { text-decoration:none; border:0; }

/* ---------- plans ---------- */
.plans-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:var(--s-4); align-items:stretch; }
@media (max-width:1040px) { .plans-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:600px) { .plans-grid { grid-template-columns:1fr; } }
.plans-card { position:relative; display:flex; flex-direction:column; gap:var(--s-3); min-width:0; background:var(--white); border:1px solid var(--hairline); border-radius:var(--r-l); padding:var(--s-5) 22px; box-shadow:var(--shadow-1); }
.plans-card--featured { border:2px solid var(--gold); box-shadow:var(--shadow-2); }
.plans-card__flag { position:absolute; top:-13px; left:22px; background:var(--gold); color:var(--forest); font-family:var(--font-head); font-weight:700; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; padding:4px 10px; border-radius:999px; }
.plans-card__for { color:var(--ink-soft); font-size:.9rem; min-height:2.9em; margin:0; }
.plans-card__price { font-family:var(--font-head); font-weight:900; font-size:2.6rem; color:var(--forest); line-height:1; font-variant-numeric:tabular-nums; }
.plans-card__price small { font-size:.95rem; font-weight:500; color:var(--ink-soft); margin-left:4px; }
.plans-card__price--quote { font-size:1.7rem; padding-block:8px; }
.plans-card__rate { background:var(--cream-2); border-radius:var(--r-m); padding:10px 12px; font-size:.9rem; }
.plans-card__rate b { font-family:var(--font-head); font-size:1.25rem; color:var(--forest); font-variant-numeric:tabular-nums; }
.plans-card__rate span { color:var(--ink-soft); font-size:.82rem; }
.plans-card .list-check { font-size:.9rem; margin:0; gap:8px; }
.plans-card__hw { font-size:.82rem; color:var(--ink-soft); border-top:1px solid var(--hairline); padding-top:var(--s-3); margin:0; }
.plans-card .btn { margin-top:auto; width:100%; }
.plans-safety { margin-top:var(--s-5); display:flex; gap:var(--s-3); align-items:flex-start; background:var(--pass-wash); border-radius:var(--r-m); padding:14px 18px; font-size:.93rem; }
.plans-safety > span { font-weight:900; color:var(--pass); }
.plans-safety p { margin:0; }
.plans-safety b { color:var(--forest); }

/* ---------- tables ---------- */
.plans-tablewrap { border:1px solid var(--hairline); border-radius:var(--r-m); background:var(--white); }
.plans-table { border:0; border-radius:0; font-variant-numeric:tabular-nums; }
.plans-table thead th { white-space:nowrap; font-size:.85rem; }
.plans-table th.c, .plans-table td.c { text-align:center; }
.plans-table td.no { color:var(--ink-faint); }
.plans-table td.yes { color:var(--pass); font-weight:700; }
.plans-table td.addon { color:var(--gold-ink); font-weight:600; font-size:.82rem; }
.plans-table .asm { color:var(--mist); border-bottom-color:var(--mist); }
.plans-compare { min-width:720px; }
.plans-compare tbody th { min-width:240px; }
.plans-compare .plans-grp th { background:var(--cream-2); color:var(--forest); font-family:var(--font-head); font-weight:700; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; }

.plans-rate-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:var(--s-5); align-items:start; }
.plans-rate-grid > * { min-width:0; }
@media (max-width:900px) { .plans-rate-grid { grid-template-columns:1fr; } }
.plans-side { display:grid; gap:var(--s-3); }
.plans-side__card { background:var(--white); border:1px solid var(--hairline); border-radius:var(--r-m); padding:18px 20px; display:grid; gap:6px; }
.plans-side__card .kicker { margin:0; }
.plans-side__big { font-family:var(--font-head); font-weight:900; font-size:1.6rem; color:var(--forest); font-variant-numeric:tabular-nums; }
.plans-side__card p { font-size:.9rem; color:var(--ink-soft); margin:0; }

/* ---------- how it works ---------- */
.plans-flow { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(6, minmax(0, 1fr)); }
.plans-flow__step { position:relative; padding:0 14px 0 0; min-width:0; }
.plans-flow__dot { width:44px; height:44px; border-radius:50%; background:var(--forest); color:var(--gold); display:grid; place-items:center; font-family:var(--font-head); font-weight:900; font-size:1.05rem; position:relative; z-index:1; }
.plans-flow__step::after { content:""; position:absolute; top:21px; left:44px; right:0; height:2px; background:repeating-linear-gradient(90deg, var(--hairline) 0 6px, transparent 6px 11px); }
.plans-flow__step:last-child::after { display:none; }
.plans-flow__step h3 { margin-top:14px; }
.plans-flow__step p { font-size:.88rem; color:var(--ink-soft); margin:6px 0 0; }
.plans-flow__who { display:inline-block; margin-top:10px; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-ink); }
@media (max-width:980px) { .plans-flow { grid-template-columns:repeat(3, minmax(0, 1fr)); row-gap:var(--s-6); } .plans-flow__step:nth-child(3)::after { display:none; } }
@media (max-width:560px) {
  .plans-flow { grid-template-columns:1fr; row-gap:22px; }
  .plans-flow__step { display:grid; grid-template-columns:44px 1fr; column-gap:14px; }
  .plans-flow__step::after { display:none; }
  .plans-flow__step h3 { margin-top:0; }
  .plans-flow__step > :not(.plans-flow__dot) { grid-column:2; }
}
.plans-values { margin-top:var(--s-7); display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:var(--s-3); }
.plans-values__item { border-top:3px solid var(--gold); padding-top:var(--s-3); min-width:0; }
.plans-values__item b { font-family:var(--font-head); color:var(--forest); display:block; margin-bottom:4px; }
.plans-values__item span { font-size:.86rem; color:var(--ink-soft); }
@media (max-width:900px) { .plans-values { grid-template-columns:repeat(2, minmax(0, 1fr)); } }

/* ---------- estimator ---------- */
.plans-estimator .t-lead { color:var(--mist); }
.plans-est-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--s-5); align-items:start; }
.plans-est-grid > * { min-width:0; }
@media (max-width:900px) { .plans-est-grid { grid-template-columns:1fr; } }
.plans-panel { background:var(--forest-2); border:1px solid rgba(207,224,210,.28); border-radius:var(--r-l); padding:var(--s-5); color:var(--mist); }
.plans-field { display:grid; gap:var(--s-2); margin-bottom:22px; }
.plans-field > label, .plans-field__label { display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-weight:600; font-size:.92rem; color:var(--cream); }
.plans-field output { font-family:var(--font-head); font-weight:900; font-size:1.35rem; color:var(--gold); font-variant-numeric:tabular-nums; }
.plans-field__hint { font-size:.78rem; color:var(--mist); }
.plans-panel input[type="range"] { width:100%; accent-color:var(--gold); }
.plans-seg { display:flex; flex-wrap:wrap; gap:6px; }
.plans-seg button { flex:1 1 auto; background:transparent; border:1px solid rgba(207,224,210,.28); color:var(--mist); font-family:var(--font-body); font-weight:600; font-size:.84rem; padding:8px 10px; border-radius:var(--r-m); cursor:pointer; }
.plans-seg button[aria-pressed="true"] { background:var(--gold); border-color:var(--gold); color:var(--forest); }
.plans-adv { border-top:1px solid rgba(207,224,210,.28); padding-top:14px; }
.plans-adv summary { cursor:pointer; color:var(--mist); font-size:.88rem; font-weight:600; }
.plans-adv .plans-field { margin:16px 0 0; }
.plans-out__hero { display:grid; gap:4px; padding-bottom:18px; border-bottom:1px solid rgba(207,224,210,.28); margin-bottom:8px; }
.plans-out__k { color:var(--mist); font-size:.9rem; }
.plans-out__v { font-family:var(--font-head); font-weight:900; font-size:clamp(2.4rem, 5vw, 3.4rem); color:var(--gold); line-height:1; font-variant-numeric:tabular-nums; }
.plans-out__s { color:var(--mist); font-size:.86rem; }
.plans-out__row { display:flex; justify-content:space-between; gap:14px; padding:11px 0; border-bottom:1px dashed rgba(207,224,210,.28); font-size:.93rem; }
.plans-out__row b { color:var(--cream); font-variant-numeric:tabular-nums; font-weight:600; white-space:nowrap; }
.plans-out__row--ind { padding-left:var(--s-4); font-size:.86rem; }
.plans-bars { margin:20px 0 6px; display:grid; gap:10px; }
.plans-bars__bar { display:grid; grid-template-columns:118px 1fr; gap:10px; align-items:center; font-size:.8rem; }
.plans-bars__track { height:18px; background:var(--forest); border-radius:var(--r-s); overflow:hidden; display:flex; }
.plans-bars__track i { display:block; height:100%; transition:width .3s ease; }
.plans-bars__track i.is-waste, .plans-legend .is-waste { --c:var(--gold); background:var(--gold); }
.plans-bars__track i.is-comp, .plans-legend .is-comp { --c:color-mix(in srgb, var(--gold) 75%, var(--forest)); background:var(--c); }
.plans-bars__track i.is-par, .plans-legend .is-par { --c:color-mix(in srgb, var(--gold) 55%, var(--forest)); background:var(--c); }
.plans-bars__track i.is-fee, .plans-legend .is-fee { --c:var(--mist); background:var(--mist); }
.plans-bars__track i.is-partner, .plans-legend .is-partner { --c:var(--chart-sage); background:var(--chart-sage); }
.plans-legend { display:flex; flex-wrap:wrap; gap:var(--s-3); font-size:.76rem; }
.plans-legend span { background:none; }
.plans-legend span::before { content:""; display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:-1px; background:var(--c); }
.plans-mm { margin-top:var(--s-4); background:var(--forest); border:1px dashed rgba(207,224,210,.28); border-radius:var(--r-m); padding:14px 16px; }
.plans-mm .kicker { color:var(--mist); font-size:.7rem; }
.plans-mm .plans-out__row:last-child { border-bottom:0; }
.plans-mm .plans-out__row b.is-total { color:var(--gold); }
@media (prefers-reduced-motion: reduce) { .plans-bars__track i { transition:none; } }

/* ---------- hardware ---------- */
.plans-renders { display:grid; grid-template-columns:.9fr 1.1fr 1.2fr; gap:22px; align-items:end; margin-bottom:var(--s-7); }
.plans-renders figure { margin:0; display:grid; gap:var(--s-3); min-width:0; }
.plans-renders figcaption { font-size:.86rem; color:var(--ink-soft); }
.plans-renders figcaption b { display:block; color:var(--forest); font-family:var(--font-head); font-size:1rem; }
@media (max-width:900px) { .plans-renders { grid-template-columns:1fr 1fr; } .plans-renders figure:last-child { grid-column:1 / -1; } }
@media (max-width:560px) { .plans-renders { grid-template-columns:1fr; } }
.plans-device { --paper:#e8e6de; --paper-edge:#c9c5b8; --eink:#1d1d1b; --eink-red:#b3261e; --eink-soft:#6b6a64; background:#2b2b29; border-radius:12px; padding:12px; box-shadow:0 16px 30px -20px rgba(0,0,0,.6); }
.plans-device--card { padding:9px; }
.plans-device--wide { padding:14px; }
.plans-screen { background:var(--paper); color:var(--eink); border-radius:3px; font-family:var(--font-head); box-shadow:inset 0 0 0 1px var(--paper-edge); }
.plans-bc { padding:14px 14px 12px; display:grid; gap:var(--s-2); }
.plans-bc__tag { font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--eink-soft); }
.plans-bc__dish { font-weight:900; font-size:1.3rem; line-height:1.1; }
.plans-bc__desc { font-family:var(--font-body); font-size:.72rem; color:var(--eink-soft); line-height:1.35; }
.plans-chips { display:flex; flex-wrap:wrap; gap:5px; }
.plans-chip { font-size:.62rem; font-weight:700; padding:2px 6px; border:1.5px solid var(--eink); border-radius:3px; letter-spacing:.04em; }
.plans-chip.is-red { border-color:var(--eink-red); color:var(--eink-red); }
.plans-chip.is-fill { background:var(--eink); color:var(--paper); }
.plans-nutri { display:grid; grid-template-columns:repeat(4, 1fr); border-top:1.5px solid var(--eink); padding-top:6px; font-size:.6rem; text-align:center; font-variant-numeric:tabular-nums; }
.plans-nutri b { display:block; font-size:.9rem; font-weight:900; }
.plans-stand { height:14px; width:60%; margin:0 auto; background:#2b2b29; clip-path:polygon(12% 0, 88% 0, 100% 100%, 0 100%); border-radius:0 0 4px 4px; }
.plans-sd { padding:12px 14px; font-size:.72rem; display:grid; gap:6px; }
.plans-sd__head { display:flex; justify-content:space-between; align-items:baseline; border-bottom:2px solid var(--eink); padding-bottom:5px; }
.plans-sd__head b { font-weight:900; font-size:.95rem; }
.plans-sd__row { display:grid; grid-template-columns:1fr auto; gap:var(--s-2); padding:3px 0; border-bottom:1px solid var(--paper-edge); font-variant-numeric:tabular-nums; }
.plans-sd__row.is-alert { color:var(--eink-red); font-weight:700; }
.plans-sd__row .q { font-weight:900; }
.plans-sd__foot { font-family:var(--font-body); font-size:.6rem; color:var(--eink-soft); margin:0; }
.plans-sg { padding:18px 20px; display:grid; gap:10px; }
.plans-sg__when { font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--eink-red); }
.plans-sg__title { margin:0; font-family:var(--font-head); font-weight:900; font-size:1.45rem; line-height:1.05; color:var(--eink); }
.plans-sg__course { display:grid; grid-template-columns:70px 1fr; gap:var(--s-2); font-size:.78rem; border-top:1px solid var(--paper-edge); padding-top:6px; }
.plans-sg__course span { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--eink-soft); font-weight:700; padding-top:2px; }
.plans-sg__course p { font-family:var(--font-body); line-height:1.35; margin:0; }
.plans-sg__note { font-family:var(--font-body); font-size:.62rem; color:var(--eink-soft); margin:0; }

.plans-bundles { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:var(--s-4); }
@media (max-width:900px) { .plans-bundles { grid-template-columns:1fr; } }
.plans-bundle { background:var(--white); border:1px solid var(--hairline); border-radius:var(--r-m); padding:22px; display:grid; gap:14px; align-content:start; min-width:0; }
.plans-bundle__size { font-family:var(--font-head); font-weight:500; color:var(--ink-soft); font-size:.9rem; }
.plans-bundle ul { margin:0; padding-left:18px; font-size:.9rem; display:grid; gap:4px; }
.plans-pay { display:grid; border:1px solid var(--hairline); border-radius:var(--r-m); overflow:hidden; }
.plans-pay div { display:flex; justify-content:space-between; gap:10px; padding:10px 12px; font-size:.88rem; border-bottom:1px solid var(--hairline); font-variant-numeric:tabular-nums; }
.plans-pay div:last-child { border-bottom:0; }
.plans-pay b { font-family:var(--font-head); color:var(--forest); }
.plans-pay .is-included { background:var(--pass-wash); }
.plans-pay .is-included b { color:var(--pass); }
.plans-extra { margin-top:var(--s-4); display:flex; flex-wrap:wrap; gap:10px 24px; font-size:.88rem; color:var(--ink-soft); }
.plans-extra b { color:var(--forest); }

/* ---------- add-ons ---------- */
.plans-addons { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:var(--s-4); }
@media (max-width:900px) { .plans-addons { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:560px) { .plans-addons { grid-template-columns:1fr; } }
.plans-addon { background:var(--white); border:1px solid var(--hairline); border-radius:var(--r-m); padding:var(--s-5) 20px; display:grid; gap:var(--s-2); align-content:start; min-width:0; }
.plans-addon .kicker { margin:0; font-size:.7rem; }
.plans-addon p { font-size:.9rem; color:var(--ink-soft); margin:0; }
.plans-addon__price { font-family:var(--font-head); font-weight:700; color:var(--forest); font-variant-numeric:tabular-nums; }
.plans-addon__price small { font-weight:400; color:var(--ink-soft); font-family:var(--font-body); }

/* ---------- FAQ ---------- */
.plans-faq { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 36px; }
@media (max-width:820px) { .plans-faq { grid-template-columns:1fr; } }
.plans-faq details { border-bottom:1px solid var(--hairline); padding:16px 0; min-width:0; }
.plans-faq summary { cursor:pointer; font-family:var(--font-head); font-weight:700; color:var(--forest); font-size:1.02rem; list-style:none; display:flex; justify-content:space-between; gap:var(--s-4); }
.plans-faq summary::-webkit-details-marker { display:none; }
.plans-faq summary::after { content:"+"; color:var(--gold-ink); font-weight:900; font-size:1.2rem; line-height:1; }
.plans-faq details[open] summary::after { content:"–"; }
.plans-faq details p { margin:10px 0 0; color:var(--ink-soft); font-size:.93rem; }

/* ---------- fine print + notes ---------- */
.plans-fine { display:grid; gap:var(--s-3); }
.plans-fine > p { max-width:110ch; margin:0; }
.plans-notes { background:var(--white); border:1px solid var(--hairline); border-radius:var(--r-m); padding:16px 20px; margin-top:var(--s-2); }
.plans-notes summary { cursor:pointer; font-family:var(--font-head); font-weight:700; color:var(--forest); font-size:1rem; }
.plans-notes ol { margin:14px 0 0; padding-left:22px; display:grid; gap:9px; color:var(--ink); font-size:.86rem; list-style:none; }
.plans-notes li { padding-left:4px; }
.plans-notes li:target { background:var(--cream-2); outline:2px solid var(--gold); border-radius:var(--r-s); }
.plans-notes__src { color:var(--ink-faint); }

/* ---------- closing band ---------- */
.plans-close__grid { display:grid; grid-template-columns:1.2fr .8fr; gap:var(--s-6); align-items:center; }
@media (max-width:820px) { .plans-close__grid { grid-template-columns:1fr; } }
.plans-close h2 { color:var(--cream); }
.plans-close .t-lead { color:var(--mist); margin-top:var(--s-3); max-width:56ch; }
.plans-close__pilot { background:var(--forest-2); border:1px solid rgba(207,224,210,.28); border-radius:var(--r-l); padding:22px; display:grid; gap:10px; font-size:.92rem; color:var(--mist); }
.plans-close__pilot b { color:var(--cream); font-family:var(--font-head); }

@media print {
  .plans-rail, .plans-seg { display:none; }
  .plans-card, .plans-bundle, .plans-addon { break-inside:avoid; }
}
