#pricing-content, #faq-content {
  --tcp-ink: var(--ink, #102e32);
  --tcp-muted: var(--muted, #425c58);
  --tcp-teal: #14484a;
  --tcp-rule: #b8c2b8;
  --tcp-pale: #e4ece4;
  --tcp-serif: 'Tide Serif', Georgia, serif;
  --tcp-sans: 'Tide Sans', system-ui, sans-serif;
  min-width: 0;
  color: var(--tcp-ink);
  font-family: var(--tcp-sans);
}

.tcp-pricing-head, .tcp-faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: clamp(1.45rem, 4.5vw, 5.25rem);
}
.tcp-pricing-head { align-items: end; margin-bottom: clamp(2rem, 4vw, 3.35rem); }
.tcp-eyebrow {
  color: var(--tcp-teal);
  font: 600 .72rem/1.45 var(--tcp-sans);
  text-transform: uppercase;
  letter-spacing: .16em;
  margin: 0 0 .95rem;
}
.tcp-title {
  margin: 0;
  font: 400 clamp(2.65rem, 6.55vw, 6.2rem)/.91 var(--tcp-serif);
  letter-spacing: -.057em;
  text-wrap: balance;
}
.tcp-title em { color: var(--tcp-teal); font-weight: 400; }
.tcp-deck {
  max-width: 43ch;
  margin: 1.18rem 0 0;
  color: var(--tcp-muted);
  font: 400 clamp(.96rem, 1.2vw, 1.12rem)/1.58 var(--tcp-sans);
}
.tcp-periods { min-width: 0; margin: 0; padding: 0; border: 0; justify-self: end; }
.tcp-periods legend {
  margin: 0 0 .65rem;
  padding: 0;
  color: var(--tcp-muted);
  font: 500 .83rem/1.4 var(--tcp-sans);
}
.tcp-switch {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-width: 0;
  gap: .16rem;
  padding: .22rem;
  border-radius: 100px;
  background: #e8e9df;
}
.tcp-switch label { display: grid; position: relative; min-width: 0; cursor: pointer; }
.tcp-switch input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.tcp-switch span {
  display: grid;
  place-items: center;
  min-height: 46px;
  padding: .44rem .75rem;
  border-radius: 100px;
  font: 500 .85rem/1.14 var(--tcp-sans);
  text-align: center;
  transition: background-color .2s ease, color .2s ease;
}
.tcp-switch label:hover span { background: #dce4da; }
.tcp-switch input:checked + span { color: #fff; background: var(--tcp-teal); }
.tcp-switch input:focus-visible + span, .tcp-purchase:focus-visible, .tcp-note a:focus-visible,
.tcp-faq-item summary:focus-visible { outline: 2px solid var(--tcp-teal); outline-offset: 3px; }

.tcp-plan-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  background: var(--tcp-rule);
  border-radius: 1.02rem;
}
.tcp-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(1.05rem, 2.7vw, 2.25rem);
  background: #faf7ee;
}
.tcp-card:first-child { border-radius: 1rem 0 0 1rem; }
.tcp-card:last-child { border-radius: 0 1rem 1rem 0; }
.tcp-card--featured { background: linear-gradient(155deg, #dce7dc, #e9eee3 70%); }
.tcp-card-index {
  min-height: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .38rem;
  color: var(--tcp-muted);
  font: 600 .72rem/1.28 var(--tcp-sans);
  font-variant-numeric: tabular-nums;
  letter-spacing: .065em;
}
.tcp-feature { display: inline-flex; align-items: center; gap: .32rem; letter-spacing: 0; color: var(--tcp-teal); }
.tcp-feature i { flex: 0 0 5px; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.tcp-card h3, .tcp-premium h3, .tcp-premium-row h4 {
  margin: 0;
  font-family: var(--tcp-serif);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.04em;
}
.tcp-card h3 { margin-top: 1.52rem; font-size: clamp(2.2rem, 3.6vw, 3.9rem); }
.tcp-card-caption {
  min-height: 2.5em;
  margin: .56rem 0 0;
  color: var(--tcp-muted);
  font: 400 .87rem/1.35 var(--tcp-sans);
}
.tcp-cost { display: flex; align-items: baseline; flex-wrap: wrap; gap: .14rem .57rem; margin: 1.12rem 0 1.45rem; }
.tcp-amount {
  display: inline-flex;
  align-items: baseline;
  gap: .17em;
  white-space: nowrap;
  font: 400 clamp(2.65rem, 4.25vw, 4.55rem)/.91 var(--tcp-serif);
  letter-spacing: -.045em;
  font-variant-numeric: lining-nums tabular-nums;
}
.tcp-ruble { font: 500 .32em/1 var(--tcp-sans); letter-spacing: 0; }
.tcp-period-caption { color: var(--tcp-muted); font: 400 .83rem/1.3 var(--tcp-sans); white-space: nowrap; }
.tcp-specs { margin: 0 0 1.4rem; }
.tcp-specs > div {
  display: flex;
  justify-content: space-between;
  gap: .58rem;
  padding-block: .6rem;
  border-top: 1px solid var(--tcp-rule);
  font: 400 .86rem/1.25 var(--tcp-sans);
}
.tcp-specs dt { color: var(--tcp-muted); }
.tcp-specs dd { margin: 0; color: var(--tcp-ink); font-weight: 600; white-space: nowrap; }
.tcp-purchase {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .55rem;
  min-height: 48px;
  margin-top: auto;
  padding: .67rem .88rem;
  border: 1px solid var(--tcp-teal);
  border-radius: .55rem;
  color: var(--tcp-teal);
  text-decoration: none;
  font: 600 .87rem/1.3 var(--tcp-sans);
  transition: background-color .22s ease, color .22s ease;
}
.tcp-purchase > :last-child { flex: none; }
.tcp-card--featured .tcp-purchase, .tcp-purchase:hover { color: #fff; background: var(--tcp-teal); }
.tcp-card--featured .tcp-purchase:hover { background: #0f393d; }

.tcp-premium { margin-top: clamp(2.65rem, 6.4vw, 5.4rem); }
.tcp-premium-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .8fr);
  align-items: end;
  gap: 1rem 2rem;
  padding-bottom: 1.26rem;
}
.tcp-premium-intro h3 { font-size: clamp(2.25rem, 4vw, 4rem); }
.tcp-premium-intro p:not(.tcp-eyebrow) { color: var(--tcp-muted); max-width: 34ch; margin: 0; line-height: 1.55; }
.tcp-premium-row {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .7fr) minmax(0, .76fr);
  align-items: center;
  gap: .76rem 1.4rem;
  padding: 1.15rem .1rem;
  border-top: 1px solid var(--tcp-rule);
}
.tcp-premium-row:last-child { border-bottom: 1px solid var(--tcp-rule); }
.tcp-premium-row h4 { font-size: clamp(1.68rem, 3.1vw, 2.7rem); }
.tcp-premium-label p { color: var(--tcp-muted); margin: .46rem 0 0; font: 400 .87rem/1.4 var(--tcp-sans); }
.tcp-premium-row .tcp-cost, .tcp-premium-row .tcp-purchase { margin: 0; }
.tcp-premium-row .tcp-amount { font-size: clamp(1.95rem, 3vw, 2.85rem); }
.tcp-note { display: flex; justify-content: space-between; align-items: start; gap: .8rem 2rem; margin-top: 1.15rem; font: 400 .9rem/1.55 var(--tcp-sans); }
.tcp-note p { margin: 0; color: var(--tcp-muted); max-width: 71ch; }
.tcp-note a { color: var(--tcp-teal); font-weight: 600; flex: none; text-underline-offset: .24em; }

.tcp-faq-layout { grid-template-columns: minmax(0, .73fr) minmax(0, 1fr); }
.tcp-faq-item { border-bottom: 1px solid var(--tcp-rule); }
.tcp-faq-item:first-child { border-top: 1px solid var(--tcp-rule); }
.tcp-faq-item summary {
  display: grid;
  grid-template-columns: minmax(1.28rem, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: .55rem 1rem;
  min-height: 64px;
  padding: .8rem .09rem;
  color: var(--tcp-ink);
  cursor: pointer;
  list-style: none;
  font: 600 clamp(.98rem, 1.4vw, 1.16rem)/1.28 var(--tcp-sans);
}
.tcp-faq-item summary::-webkit-details-marker { display: none; }
.tcp-faq-number { color: var(--tcp-muted); font: 500 .73rem/1 var(--tcp-sans); font-variant-numeric: tabular-nums; }
.tcp-faq-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: var(--tcp-teal);
  background: var(--tcp-pale);
}
.tcp-faq-icon::before, .tcp-faq-icon::after { content: ''; grid-area: 1 / 1; width: 12px; height: 1px; background: currentColor; }
.tcp-faq-icon::after { transform: rotate(90deg); transition: transform .2s ease; }
.tcp-faq-item[open] .tcp-faq-icon::after { transform: none; }
.tcp-faq-answer { max-width: 63ch; margin: 0; padding: 0 2.4rem 1.22rem 2.28rem; color: var(--tcp-muted); font: 400 .97rem/1.57 var(--tcp-sans); }
.tcp-faq-item[open] .tcp-faq-answer { animation: tcp-faq-in .22s ease-out both; }
@keyframes tcp-faq-in { from { opacity: .55; transform: translateY(-3px); } }
.tcp-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 900px) {
  .tcp-pricing-head { grid-template-columns: minmax(0, 1fr); gap: 1.35rem; }
  .tcp-periods { justify-self: start; }
  .tcp-note { flex-wrap: wrap; }
}
@media (max-width: 720px) {
  .tcp-faq-layout { grid-template-columns: minmax(0, 1fr); }
  .tcp-plan-grid { grid-template-columns: minmax(0, 1fr); }
  .tcp-card { padding: 1.3rem; }
  .tcp-card:first-child { border-radius: 1rem 1rem 0 0; }
  .tcp-card:last-child { border-radius: 0 0 1rem 1rem; }
  .tcp-card h3 { margin-top: 1rem; }
  .tcp-card-caption { min-height: auto; }
  .tcp-premium-intro { grid-template-columns: minmax(0, 1fr); }
  .tcp-premium-row { grid-template-columns: minmax(0, 1fr) auto; gap: .85rem .65rem; }
  .tcp-premium-row .tcp-purchase { grid-column: 1 / -1; }
  .tcp-premium-row .tcp-cost { flex-direction: column; align-items: end; justify-self: end; }
}
@media (max-width: 420px) {
  .tcp-periods { width: 100%; }
  .tcp-switch span { padding-inline: .13rem; font-size: .79rem; }
  .tcp-title { font-size: clamp(2.55rem, 11.5vw, 3.35rem); }
  .tcp-faq-item summary { gap: .55rem; }
  .tcp-faq-answer { padding-inline: 1.83rem 0; }
}
@media (prefers-reduced-motion: reduce) {
  .tcp-switch span, .tcp-purchase, .tcp-faq-icon::after { transition: none; }
  .tcp-faq-item[open] .tcp-faq-answer { animation: none; }
}
