/* Six combinable plans. Scoped to .plans; no dependencies beyond the site tokens. */
.plans{--plan-red:#DF0814;--plan-navy:#2C3C59;background:var(--paper,#faf9f7);color:var(--plan-navy)}
.plans-heading{text-align:center;max-width:800px;margin:0 auto 58px}
.plans-heading h2{margin-bottom:24px}
.plans-heading>p{max-width:655px;margin:0 auto;color:var(--muted,#667083);font-size:17px;line-height:1.65}
.plans-heading strong{color:var(--plan-navy);font-weight:600}
.plans-network{position:relative;padding-inline:24px;isolation:isolate}
.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:72px 28px;position:relative;z-index:1;padding-bottom:66px}
.plan-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid #2c3c591a;border-radius:20px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}
.plan-card.is-selected,.plan-card:has(.plan-choice input:checked){border-color:var(--plan-red);box-shadow:0 7px 27px #df08140b}
.plan-art{margin:0;aspect-ratio:16/10;overflow:hidden;border-radius:19px 19px 0 0;background:#f0ede7}
.plan-art>img,.plan-art>svg{display:block;width:100%;height:100%;object-fit:cover}
.plan-body{padding:25px 24px 22px;display:flex;flex-direction:column;flex:1}
.plan-body h3{font-size:clamp(24px,2.15vw,30px);line-height:1.12;letter-spacing:-.03em;min-height:68px;margin:0 0 15px;text-wrap:balance}
.plan-subtitle{display:block;font:500 14px/1.5 var(--font-body,Arial,sans-serif);letter-spacing:0;color:var(--muted,#667083);margin-top:7px}
.plan-price{display:flex;align-items:baseline;gap:7px;margin:0 0 18px}
.plan-price strong{font:500 30px/1 var(--font-display,Arial,sans-serif);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.plan-price>span{font-size:14px;color:var(--muted,#667083)}
.plan-assistance{font-size:14px;line-height:1.65;color:var(--muted,#667083);min-height:70px;margin:0 0 17px}
.plan-included{font-size:15px;line-height:1.5;min-height:46px;margin:0 0 20px}
.plan-included strong{font-weight:600}
.plan-details{margin:0 0 22px;font-size:14px;line-height:1.6}
.plan-details summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;cursor:pointer;list-style:none;border-top:1px solid #2c3c5912;font-weight:500}
.plan-details summary::-webkit-details-marker{display:none}
.plan-details summary>span{font-size:24px;font-weight:300;line-height:1;color:var(--plan-red);transition:transform .2s ease}
.plan-details[open] summary>span{transform:rotate(45deg)}
.plan-details p{color:var(--muted,#667083);font-size:14px;margin:6px 0 0}
.plan-choice{position:relative;display:flex;align-items:center;gap:12px;min-height:48px;margin-top:auto;padding:10px 13px;border:1px solid #2c3c5924;border-radius:12px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease,border-color .2s ease}
.plan-choice:hover{background:#faf9f7;border-color:#2c3c5966}
.plan-choice input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.plan-choice:has(input:focus-visible){outline:3px solid var(--plan-red);outline-offset:4px}
.plan-check{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid #2c3c5952;color:transparent;background:#fff;font-size:13px;line-height:1;transition:background .2s ease,border-color .2s ease,color .2s ease}
.plan-choice:has(input:checked){background:#fff1ef;border-color:#df081430}
.plan-choice input:checked+.plan-check{color:#fff;background:var(--plan-red);border-color:var(--plan-red)}
.plan-port,.plans-summary-port{position:absolute;display:block;width:12px;height:12px;border:2px solid #87909f;border-radius:50%;background:#faf9f7;pointer-events:none;z-index:3}
.plan-port{left:50%;bottom:-6px;transform:translateX(-50%)}
.plan-card.is-selected .plan-port{background:var(--plan-red);border-color:var(--plan-red);box-shadow:0 0 0 5px #df081410}
.plans-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.plans-wire{fill:none;stroke:#2c3c592d;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.plans-wire.is-connected{stroke:var(--plan-red);stroke-width:1.8}
.plans-wire-signal{fill:none;stroke:var(--plan-red);stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke}
.plans-summary{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(170px,.7fr);gap:24px 35px;align-items:center;padding:34px 36px;border-radius:20px;background:var(--plan-navy);color:#fff}
.plans-summary-port{top:-6px;right:24px;background:#faf9f7}
.plans-summary.has-selection .plans-summary-port{background:var(--plan-red);border-color:var(--plan-red);box-shadow:0 0 0 5px #df081414}
.plans-summary h3{font-size:28px;line-height:1.15;margin:0 0 12px;letter-spacing:-.025em}
.plans-summary-copy>p{font-size:15px;line-height:1.6;color:#e0e3e9;margin:0;min-height:24px}
.plans-total{text-align:right}
.plans-total>p:first-child{font-size:14px;margin:0 0 9px;color:#e0e3e9}
.plans-total-price{display:flex;align-items:baseline;justify-content:flex-end;gap:7px;margin:0 0 8px;white-space:nowrap}
.plans-total-price strong{font:500 40px/1 var(--font-display,Arial,sans-serif);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.plans-total-price span{font-size:14px;color:#e0e3e9}
.plans-total>span{font-size:13px;color:#c5cbd5}
.plans-summary>.button{grid-column:1/-1;justify-self:start}
.plans-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.plans-scope,.plans-nojs{max-width:760px;margin:29px auto 0;text-align:center;font-size:14px;line-height:1.7;color:var(--muted,#667083)}
.plans-nojs{color:var(--plan-navy)}
.plan-selection-pop{animation:plan-selection-pop .28s ease-out both}
@keyframes plan-selection-pop{0%{transform:scale(.93)}70%{transform:scale(1.05)}100%{transform:scale(1)}}
/* No-script still exposes all prices, content and contact; calculator is progressive enhancement. */
.plans-network:not(.is-enhanced) .plans-wires,.plans-network:not(.is-enhanced) .plan-choice,.plans-network:not(.is-enhanced) .plan-port,.plans-network:not(.is-enhanced) .plans-summary-port,.plans-network:not(.is-enhanced) .plans-total{display:none}
@media(max-width:1050px){.plan-body{padding:23px 19px 20px}.plans-grid{gap:72px 23px}.plan-body h3{font-size:26px;min-height:68px}.plan-assistance{min-height:93px}.plan-price strong{font-size:28px}}
@media(max-width:850px){.plans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-assistance{min-height:70px}.plan-body h3{min-height:62px}.plans-summary{padding:30px}.plans-heading>p{font-size:16px}}
@media(max-width:600px){.plans-heading{margin-bottom:38px}.plans-heading h2{font-size:clamp(34px,8.8vw,46px)}.plans-heading>p{font-size:16px}.plans-network{padding-inline:12px}.plans-grid{grid-template-columns:minmax(0,1fr);gap:52px;padding-bottom:54px}.plan-art{aspect-ratio:16/9}.plan-body{padding:24px}.plan-body h3{font-size:28px;min-height:0;margin-bottom:17px}.plan-assistance{min-height:0}.plan-included{min-height:0}.plan-details{margin-bottom:18px}.plans-summary{grid-template-columns:minmax(0,1fr);gap:25px;padding:28px 24px}.plans-summary-port{right:auto;left:50%;transform:translateX(-50%)}.plans-summary h3{font-size:28px}.plans-total{text-align:left}.plans-total-price{justify-content:flex-start}.plans-summary>.button{width:100%;justify-self:stretch}.plans-scope{margin-top:25px;text-align:left;padding-inline:12px}.plans-total-price strong{font-size:42px}}
@media(prefers-reduced-motion:reduce){.plans *, .plans *::before,.plans *::after{animation:none!important;transition:none!important}.plans-wire-signal{display:none}}

/* Misato / redesign skill: tighter rhythm after feedback on empty columns. */
.plans.section{padding-block:72px 80px}
.plans-heading{margin-bottom:36px}
.plans-heading h2{margin-bottom:18px}
.plans-grid{gap:48px 24px;padding-bottom:48px}
.plan-art{aspect-ratio:16/9}
.plan-body{padding:21px 22px 20px}
.plan-body h3{min-height:56px;margin-bottom:12px}
.plan-card:nth-child(-n+3) .plan-body h3{min-height:30px}
.plan-price{margin-bottom:14px}
.plan-assistance{min-height:54px;margin-bottom:14px}
.plan-included{margin-bottom:12px}
.plan-details{margin-bottom:12px}
@media(max-width:1050px){.plan-body{padding:20px 18px}.plan-assistance{min-height:72px}}
@media(max-width:850px){.plan-body h3,.plan-card:nth-child(-n+3) .plan-body h3{min-height:56px}.plan-assistance{min-height:54px}}
@media(max-width:600px){.plans.section{padding-block:54px 60px}.plans-heading{margin-bottom:28px}.plans-grid{gap:40px;padding-bottom:44px}.plan-body{padding:22px}.plan-body h3,.plan-card:nth-child(-n+3) .plan-body h3,.plan-assistance{min-height:0}.plan-price{margin-bottom:16px}}

/* Price condition stays readable at narrow widths. */
.plans-total-price{flex-wrap:wrap;white-space:normal}
