/* Plans-only composition. Entitlements live in content/plans_copy.py. */
body[data-page="plans"] main { overflow-wrap:anywhere; }
.plans-intro { position:relative;background:var(--section-soft);isolation:isolate; }
.plans-intro > img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 27%;z-index:-2; }
.plans-intro::after { content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--white) 25%,rgba(255,255,255,.96) 43%,rgba(244,252,255,.42) 75%),linear-gradient(0deg,var(--white),transparent 60%); }
.plans-intro .container { padding-block:28px 36px; }
.plans-intro h1 { font-size:clamp(2rem,3.2vw,2.8rem);max-width:680px;margin:0 0 14px; }
.plans-intro h1 span { display:inline; }
.plans-intro .kicker { margin-bottom:12px; }
.plans-intro .container > p:last-child { max-width:650px;margin:0;line-height:1.6; }
section.plans-cards.container { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding-block:0 30px;position:relative; }
.plans-card { --plan-accent:var(--kizoshi-primary-dark);--plan-fill:var(--kizoshi-primary-soft);border:1px solid var(--line);border-radius:12px;background:var(--white);padding:22px 16px 18px;display:flex;flex-direction:column;min-width:0; }
.plans-card--1 { border:2px solid var(--kizoshi-primary);box-shadow:0 8px 24px #007ca512; }
.plans-card--2 { --plan-accent:#08796e;--plan-fill:#edf9f6; }
.plans-card--3 { --plan-accent:#6736ba;--plan-fill:#f5f1ff; }
.plans-card__heading { display:flex;gap:10px;align-items:flex-start; }
.plans-card__heading > .icon { width:40px;height:40px;border-radius:50%;padding:9px;background:var(--plan-fill);color:var(--plan-accent);flex-shrink:0; }
.plans-card h2 { font-size:1.12rem;line-height:1.5;margin:0 0 5px;letter-spacing:-.03em; }
.plans-card__heading p { font-size:.85rem;line-height:1.5;margin:0; }
.plans-card ul { list-style:none;padding:0;margin:24px 0;display:grid;gap:12px; }
.plans-card li { display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;align-items:start;font-size:.8rem;line-height:1.45; }
.plans-feature-text { min-width:0;color:var(--ink); }
.plans-feature-text > span { display:block; }
.plans-card li .plans-tier { display:inline-block;max-width:100%;margin-top:5px;padding:3px 9px;border-radius:12px;background:var(--plan-fill);font-size:.75rem;font-weight:600;color:var(--plan-accent);overflow-wrap:anywhere; }

.plans-card .btn { width:100%;margin-top:auto;padding-inline:8px;font-size:.82rem;min-height:48px; }
section.plans-comparison.container { padding-block:8px 34px; }
.plans-comparison .kicker { margin-bottom:8px; }
.plans-comparison h2 { font-size:1.9rem;margin-bottom:14px; }
.plans-note { max-width:900px;font-size:.9rem;line-height:1.6; }
.plans-scroll-hint { font-size:.8rem;color:var(--kizoshi-primary-dark);margin-bottom:12px; }
.plans-table-wrap { overflow-x:auto;border:1px solid var(--line);border-radius:8px; }
.plans-table-wrap:focus-visible { outline:3px solid var(--kizoshi-primary-dark);outline-offset:4px; }
.plans-table-wrap table { width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed;font-size:.82rem; }
.plans-table-wrap caption { text-align:left;padding:12px 14px;color:var(--muted);background:var(--white); }
.plans-table-wrap th,.plans-table-wrap td { padding:10px 12px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;line-height:1.5; }
.plans-table-wrap th:first-child { width:30%;text-align:left; }
.plans-table-wrap th { color:var(--ink); }
.plans-table-wrap thead { background:var(--section-soft); }
.plans-table-wrap tbody tr:nth-child(even) { background:var(--page); }
.plans-table-wrap td { color:var(--muted); }
.plans-table-wrap tr:last-child > * { border-bottom:0; }
.plans-faq { background:var(--section-soft);border-block:1px solid var(--line); }
.plans-faq__layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:30px;padding-block:28px; }
.plans-faq h2 { font-size:1.8rem; }
.plans-faq .text-link { min-height:44px;display:inline-flex;align-items:center; }
.plans-faq__items { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;align-items:start; }
.plans-faq details { border:1px solid var(--line);border-radius:8px;background:var(--white);padding:0 14px;min-width:0; }
.plans-faq summary { display:flex;gap:12px;align-items:center;justify-content:space-between;min-height:52px;font-size:.85rem;font-weight:500;padding-block:10px;cursor:pointer;list-style:none; }
.plans-faq summary::-webkit-details-marker { display:none; }
.plans-faq summary span { color:var(--kizoshi-primary-dark);flex-shrink:0; }
.plans-faq summary span::after { content:'+';font-size:1.3rem; }
.plans-faq details[open] summary span::after { content:'−'; }
.plans-faq details p { font-size:.9rem;line-height:1.6;padding-bottom:12px;margin:0; }
@media(max-width:1100px) { section.plans-cards.container { grid-template-columns:repeat(2,minmax(0,1fr)); } .plans-faq__layout { grid-template-columns:minmax(0,1fr); } }
@media(max-width:600px) {
 section.plans-cards.container { grid-template-columns:minmax(0,1fr);gap:18px; }
 .plans-intro .container { padding-block:26px; }
 .plans-intro::after { background:linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.88)); }
 .plans-card { padding:20px; }
 .plans-card li { font-size:1rem; }
 .plans-card li strong,.plans-card__heading p { font-size:.9rem; }
 .plans-card h2 { font-size:1.25rem; }
 .plans-card .btn { font-size:.95rem; }
 .plans-faq__items { grid-template-columns:minmax(0,1fr); }
 .plans-faq summary { font-size:1rem; }
}
@media(min-width:808px) { .plans-scroll-hint { display:none; } }

.plans-card__price { font-size:1.6rem;font-weight:700;color:var(--ink);margin:20px 0 0; }

.plans-included { display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--kizoshi-primary-dark);color:var(--white);vertical-align:middle; }
.plans-included .icon { width:16px;height:16px;stroke-width:2.5; }

.plans-excluded { display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:#b8c2cc;vertical-align:middle; }
.plans-excluded .icon { width:18px;height:18px;stroke-width:2; }
