.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.plans-page .main-navigation a[aria-current="page"] { color: var(--teal); }

.plans-hero { background: linear-gradient(135deg, #f7fbff 0%, var(--baby-blue) 54%, var(--sage) 100%); }
.plans-hero-copy { max-width: 760px; padding-top: 38px; padding-bottom: 56px; text-align: center; }
.plans-hero h1 { margin: 0 0 16px; color: var(--navy); font-size: clamp(2.1rem, 3.4vw, 3.3rem); line-height: 1.06; letter-spacing: -.045em; }
.plans-hero-copy > p:last-child { margin: 0 auto; color: var(--muted); font-size: 1.04rem; line-height: 1.7; }

.plans-overview { padding: 38px 0 30px; }
.plans-overview .plans-grid { max-width: 1040px; margin: 0 auto; }
.plans-overview .plan-addons { max-width: 1040px; margin: 18px auto 0; }
.plan-card h2 { display: inline-flex; justify-content: center; min-width: 150px; margin: 0 0 11px; padding: 7px 18px; border-radius: 999px; color: #fff; background: var(--plan-color); font-size: .96rem; letter-spacing: .01em; }
.plan-module-count { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 18px 0 0; color: var(--navy); font-size: .82rem; }
.plan-module-count i { color: var(--plan-color); font-size: 1.1rem; }
.plan-module-count strong { color: var(--plan-color); }

.plans-compare { padding: 34px 0 70px; }
.plans-compare-heading { max-width: 1040px; margin: 0 auto 20px; }
.plans-compare-heading h2 { margin: 0 0 6px; color: var(--navy); font-size: clamp(1.55rem, 2.2vw, 2rem); letter-spacing: -.03em; }
.plans-compare-heading p { margin: 0; font-size: .95rem; }

.plans-table { max-width: 1040px; margin: 0 auto; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 12px 30px rgba(24,54,83,.06); }
.plans-row { display: grid; grid-template-columns: minmax(0,1fr) repeat(3, 150px); align-items: center; min-height: 46px; border-top: 1px solid #edf1f4; }
.plans-row > span { padding: 10px 16px; }
.plans-row > span:not(:first-child) { display: flex; justify-content: center; text-align: center; }
.plans-row > span:first-child { color: var(--navy); font-size: .86rem; }
.plans-table-head { position: sticky; top: 0; z-index: 5; border-radius: 16px 16px 0 0; background: #fff; box-shadow: 0 6px 14px rgba(24,54,83,.06); }
.plans-table-head .plans-row { min-height: 58px; border-top: 0; }
.plans-table-head .plans-row > span:first-child { color: var(--muted); font-size: .76rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.plans-table-head .plans-row > span:not(:first-child) { color: var(--plan-color); font-size: .9rem; font-weight: 850; }
.plans-name-short { display: none; }
.plans-group-title { min-height: 52px; background: var(--sage); }
.plans-group-title > span:first-child { display: flex; align-items: center; gap: 10px; color: var(--navy); font-size: .95rem; font-weight: 850; }
.plans-group-title > span:first-child i { color: var(--teal); font-size: 1.35rem; }
.plans-group-title > span:not(:first-child) { color: var(--muted); font-size: .74rem; font-weight: 750; }
.plans-row .ph-check-circle { color: var(--plan-color); font-size: 1.3rem; }
.plans-row .ph-minus { color: #b8c3d1; font-size: 1.05rem; }
.plans-group:last-child .plans-row:last-child { border-radius: 0 0 16px 16px; }

.plans-unavailable { padding: 70px 0 90px; text-align: center; }
.plans-unavailable i.ph-list-checks { color: var(--teal); font-size: 2.6rem; }
.plans-unavailable h2 { margin: 12px 0 8px; color: var(--navy); }
.plans-unavailable p { margin: 0 0 24px; }

@media (max-width: 880px) {
  .plans-row { grid-template-columns: minmax(0,1fr) repeat(3, 96px); }
  .plans-overview .plans-grid { margin-top: 0; }
}

@media (max-width: 600px) {
  .plans-hero-copy { padding-top: 26px; padding-bottom: 38px; text-align: left; }
  .plans-overview { padding-top: 34px; }
  .plans-overview .plans-grid { gap: 26px; }
  .plans-table { border-radius: 12px; }
  .plans-row { grid-template-columns: minmax(0,1fr) repeat(3, 56px); }
  .plans-row > span { padding: 9px 10px; }
  .plans-row > span:not(:first-child) { padding-inline: 2px; }
  .plans-row > span:first-child { font-size: .8rem; line-height: 1.35; }
  .plans-table-head .plans-row > span:not(:first-child) { font-size: .68rem; }
  .plans-name-full { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .plans-name-short { display: inline; }
  .plans-table-head .plans-row > span:first-child { font-size: .66rem; }
  .plans-group-title > span:not(:first-child) { font-size: .62rem; }
}
