/* Branding Package landing page styles.
   Tokens and components mirror branding-package.webflow (css/branding-package.css). */

:root {
  --white: #fff;
  --black: #050608;
  --dark-gray: #444;
  --middle-gray: #828283;
  --light-gray: #8f9095;
  --neutral-lightest: #eee;
  --line: var(--black);
  --line-soft: #d9d9db;
  --radius-pill: 100rem;
  --radius-card: .75rem;
  --font: "Rethink Sans", sans-serif;
  --gutter: 5%;
  --max: 90rem;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background-color: var(--white);
  color: var(--black);
  font-family: var(--font);
  font-size: 1rem;
  line-height: 140%;
  -webkit-font-smoothing: antialiased;
}

img, svg { display: block; max-width: 100%; }

h1, h2, h3, p { margin: 0; }
h1 { font-size: 3.5rem; font-weight: 400; line-height: 1.1; letter-spacing: -.01em; }
h2 { font-size: 2.5rem; font-weight: 400; line-height: 1.15; }
h3 { font-size: 1.5rem; font-weight: 500; line-height: 1.25; }

a { color: var(--black); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.padding-global { padding-left: var(--gutter); padding-right: var(--gutter); }
.container { width: 100%; max-width: var(--max); margin-left: auto; margin-right: auto; }
.section { padding-top: 6rem; padding-bottom: 6rem; }
section[id] { scroll-margin-top: 4.5rem; }
.section.black-bg { background-color: var(--black); color: var(--white); }
.section.gray-bg { background-color: var(--neutral-lightest); }

.eyebrow {
  text-transform: uppercase;
  font-size: .875rem;
  letter-spacing: .06em;
  font-weight: 500;
}
.section-title { text-transform: uppercase; font-size: 1.5rem; font-weight: 400; margin-bottom: 2.5rem; }
.text-size-regular { font-size: 1.125rem; line-height: 140%; }
.text-size-large { font-size: 1.375rem; line-height: 140%; }
.lighter-gray-color { color: var(--light-gray); }
.text-link-underline { color: inherit; text-underline-offset: 4px; transition: color .2s; }
.text-link-underline:hover { color: var(--middle-gray); }

/* ---------- Buttons (btn-ghost-rounded / btn-ghost-rounded-black) ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .6rem;
  border: 1px solid var(--black);
  border-radius: var(--radius-pill);
  padding: 1rem 1.5rem;
  font: inherit; font-size: 1rem; line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: color .2s, background-color .2s, border-color .2s;
}
.btn-black { background-color: var(--black); color: var(--white); }
.btn-black:hover { background-color: var(--white); color: var(--black); }
.btn-ghost { background-color: transparent; color: var(--black); }
.btn-ghost:hover { background-color: var(--black); color: var(--white); }
.btn-white { background-color: var(--white); color: var(--black); border-color: var(--white); }
.btn-white:hover { background-color: transparent; color: var(--white); }
.btn-small { padding: .7rem 1.1rem; font-size: .9375rem; }
.btn-huge { padding: 1.5rem 2.5rem; font-size: 1.5rem; }
.new-nav-right .btn { white-space: nowrap; }
.nav-cta-short { display: none; }
.btn .arrow { width: 1em; height: 1em; flex: none; transition: transform .2s; }
.btn:hover .arrow { transform: translateX(3px); }

/* ---------- Navbar (new-nav-component) ---------- */
.new-nav-component {
  position: sticky; top: 0; z-index: 3000;
  background-color: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color .3s;
}
.new-nav-component.is-scrolled { border-bottom-color: var(--line-soft); }
.new-nav-inner {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding-top: 1rem; padding-bottom: 1rem;
}
.new-nav-brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--black); }
.new-nav-brand img { width: 20px; height: 20px; }
.bold-navbar { font-size: 1.5rem; font-weight: 700; line-height: 1; white-space: nowrap; }
.new-nav-right { display: flex; align-items: center; gap: 1.5rem; }
.support-top-link { display: flex; align-items: center; gap: 5px; color: var(--black); text-underline-offset: 4px; font-size: .9375rem; }
.support-top-link:hover { color: var(--middle-gray); }

/* ---------- Hero ---------- */
.hero { padding-top: 5rem; padding-bottom: 4rem; }
.hero-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 4rem; align-items: end; }
.hero h1 { margin-top: 1.25rem; }
.hero-lead { font-size: 1.25rem; line-height: 145%; color: var(--dark-gray); }
.hero-lead strong { color: var(--black); font-weight: 600; }
.byline { margin-top: 1rem; font-size: .875rem; color: var(--middle-gray); }
.compare-table tbody th { width: 22%; }
.compare-table td { color: var(--dark-gray); }
.compare-table td:last-child { color: var(--black); font-weight: 500; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hero-facts {
  display: grid; grid-template-columns: repeat(4, 1fr);
  margin-top: 4rem; border-top: 1px solid var(--line);
}
.hero-fact { padding: 1.5rem 1.5rem 0 0; }
.hero-fact + .hero-fact { padding-left: 1.5rem; border-left: 1px solid var(--line-soft); }
.hero-fact-value { font-size: 1.75rem; line-height: 1.1; }
.hero-fact-label { margin-top: .4rem; color: var(--middle-gray); font-size: .9375rem; }

/* ---------- Plan calculator ---------- */
.plan {
  --cols: 6;
  background-color: var(--black); color: var(--white);
  border-radius: var(--radius-card);
  overflow: hidden;
}
.plan-intro {
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem;
  padding: 2rem; border-bottom: 1px solid rgba(255, 255, 255, .18);
}
.plan-intro h3 { font-weight: 400; font-size: 1.5rem; }
.plan-intro p { color: rgba(255, 255, 255, .72); }

.plan-board { padding: 1.5rem 2rem 2rem; }
.plan-label { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: rgba(255, 255, 255, .6); }
.plan-grid { display: grid; grid-template-columns: minmax(10rem, 14rem) 1fr 3rem; margin-top: 1rem; }
.plan-weeks, .plan-track {
  display: grid; grid-template-columns: repeat(var(--cols), 1fr);
  position: relative;
}
.plan-head { border-bottom: 1px solid rgba(255, 255, 255, .18); padding: .6rem 0; font-size: .75rem; letter-spacing: .08em; color: rgba(255, 255, 255, .6); }
.plan-weeks span { text-align: center; }
.plan-weeks span.is-dim { opacity: .35; }
.plan-row-name, .plan-track, .plan-row-action { min-height: 4rem; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.plan-row-name { display: flex; flex-direction: column; justify-content: center; gap: .15rem; padding-right: 1rem; }
.plan-row-name strong { font-weight: 500; font-size: .9375rem; }
.plan-row-name small { font-size: .6875rem; text-transform: uppercase; letter-spacing: .08em; color: rgba(255, 255, 255, .55); }
.plan-track { align-items: center; background-image: linear-gradient(to right, rgba(255, 255, 255, .08) 1px, transparent 1px); background-size: calc(100% / var(--cols)) 100%; }
.plan-bar {
  display: flex; justify-content: space-between; align-items: center; gap: .5rem;
  height: 2.5rem; margin: 0 3px; padding: 0 .75rem;
  border-radius: var(--radius-pill);
  font-size: .8125rem; white-space: nowrap; overflow: hidden;
  animation: bar-in .35s ease both;
}
.plan-bar.is-core { background-color: var(--white); color: var(--black); }
.plan-bar.is-extra {
  border: 1px solid rgba(255, 255, 255, .8); color: var(--white);
  background-image: repeating-linear-gradient(-45deg, rgba(255, 255, 255, .14) 0 6px, transparent 6px 12px);
}
.plan-bar .bar-short { display: none; }
.plan-bar em { font-style: normal; text-transform: uppercase; font-size: .6875rem; letter-spacing: .06em; opacity: .7; }
.plan-row-action { display: flex; justify-content: flex-end; align-items: center; }
.plan-remove {
  width: 2rem; height: 2rem; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .3); background: transparent; color: var(--white);
  cursor: pointer; display: grid; place-items: center; font-size: 1.1rem; line-height: 1;
  transition: background-color .2s, color .2s;
}
.plan-remove:hover { background-color: var(--white); color: var(--black); }
@keyframes bar-in { from { opacity: 0; transform: scaleX(.85); transform-origin: left; } to { opacity: 1; transform: none; } }

.plan-picker { padding: 1.5rem 2rem 2rem; border-top: 1px solid rgba(255, 255, 255, .18); }
.plan-picker-list { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.plan-chip {
  display: inline-flex; align-items: center; gap: .5rem;
  border: 1px solid rgba(255, 255, 255, .5); border-radius: var(--radius-pill);
  background: transparent; color: var(--white);
  padding: .7rem 1.1rem; font: inherit; font-size: .9375rem; cursor: pointer;
  transition: background-color .2s, color .2s, opacity .2s;
}
.plan-chip:hover:not(:disabled) { background-color: var(--white); color: var(--black); }
.plan-chip:disabled { opacity: .35; cursor: default; }
.plan-chip .plus { font-size: 1.1rem; line-height: 1; }
.plan-chip-group {
  display: inline-flex; align-items: stretch;
  border: 1px solid rgba(255, 255, 255, .5); border-radius: var(--radius-pill); overflow: hidden;
}
.plan-chip-group .plan-chip { border: 0; border-radius: 0; }
.plan-chip-group select {
  appearance: none; -webkit-appearance: none;
  border: 0; border-left: 1px solid rgba(255, 255, 255, .3);
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='1.5'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E") no-repeat right .8rem center;
  color: var(--white); font: inherit; font-size: .9375rem;
  padding: .7rem 2.2rem .7rem .9rem; cursor: pointer;
}
.plan-chip-group select option { color: var(--black); }
.plan-chip-group.is-used { opacity: .35; }

.plan-summary {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.5rem;
  padding: 1.75rem 2rem; background-color: var(--white); color: var(--black);
}
.plan-total { font-size: 2rem; line-height: 1.1; }
.plan-note { margin-top: 1rem; color: var(--middle-gray); font-size: .875rem; }

/* ---------- Price table ---------- */
.price-table { width: 100%; border-collapse: collapse; font-size: 1.0625rem; }
.price-table caption { text-align: left; }
.price-table th, .price-table td { text-align: left; vertical-align: top; padding: 1.25rem 1rem 1.25rem 0; border-top: 1px solid var(--line); }
.price-table thead th { border-top: 0; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--middle-gray); font-weight: 500; padding-bottom: .75rem; }
.price-table tbody th { font-weight: 500; width: 26%; }
.price-table td.num { white-space: nowrap; font-size: 1.25rem; }
.price-table td.desc { color: var(--dark-gray); }
.price-table a { text-underline-offset: 4px; }
.table-scroll { overflow-x: auto; }

/* ---------- Included ---------- */
.two-col { display: grid; grid-template-columns: 1fr 1.4fr; gap: 4rem; }
.two-col h2 { position: sticky; top: 6rem; }
.included-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; }
.included-list li { padding: 1.25rem 1rem 1.25rem 0; border-top: 1px solid var(--line); }
.included-list strong { display: block; font-weight: 500; font-size: 1.125rem; margin-bottom: .3rem; }
.included-list span { color: var(--dark-gray); }

/* ---------- Timeline ---------- */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255, 255, 255, .3); }
.steps li { padding: 1.5rem 1.5rem 0 0; }
.steps li + li { padding-left: 1.5rem; border-left: 1px solid rgba(255, 255, 255, .18); }
.step-week { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.steps h3 { margin: .75rem 0 .5rem; font-weight: 400; }
.steps p { color: rgba(255, 255, 255, .72); }

/* ---------- FAQs (faqs-item / faqs-element) ---------- */
.faqs-wrapper { border-bottom: 1px solid var(--line); }
.faqs-item { border-top: 1px solid var(--line); }
.faqs-item summary {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: flex-start; gap: 5%;
  padding: 2rem 2rem 2rem 0;
}
.faqs-item summary::-webkit-details-marker { display: none; }
.question-title { font-size: 1.75rem; font-weight: 400; line-height: 120%; }
.faqs-icon { flex: none; width: 1.5rem; height: 1.5rem; margin-top: .3rem; transition: transform .25s; }
.faqs-item[open] .faqs-icon { transform: rotate(180deg); }
.faqs-answer { padding: 0 2rem 2rem 0; max-width: 52rem; color: var(--dark-gray); }
.faqs-answer p + p { margin-top: 1rem; }
.faqs-answer a { text-underline-offset: 4px; }

/* ---------- CTA band ---------- */
.cta-band { text-align: center; }
.cta-band h2 { font-size: 3.5rem; max-width: 50rem; margin: 0 auto; }
.cta-band p { max-width: 38rem; margin: 1.5rem auto 2.5rem; color: rgba(255, 255, 255, .72); }
.cta-band .btn { margin: 0 auto; }

/* ---------- Footer ---------- */
.footer-divider { background-color: var(--black); width: 100%; height: 1px; }
.footer-top { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding-top: 3.75rem; margin-bottom: 3.75rem; }
.footer-logo { display: inline-block; margin-bottom: .5rem; color: var(--black); font-size: 1.25rem; text-decoration: none; }
.footer-center { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.footer-col-title { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--middle-gray); margin-bottom: .75rem; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.footer-link { color: var(--black); text-decoration: none; transition: color .2s; }
.footer-link:hover { color: var(--middle-gray); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 3.75rem; padding: 1rem 0; border-top: 1px solid var(--black); font-size: .8rem; }
.footer-bottom-col-2 { display: flex; flex-wrap: wrap; gap: 1rem; }
.legal-link { color: var(--dark-gray); text-decoration: none; transition: color .2s; }
.legal-link:hover { color: var(--black); }

/* ---------- Responsive ---------- */
@media screen and (max-width: 991px) {
  h1 { font-size: 2.75rem; }
  h2, .cta-band h2 { font-size: 2.25rem; }
  .hero-grid, .two-col, .plan-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .two-col h2 { position: static; }
  .hero-facts, .steps { grid-template-columns: 1fr 1fr; }
  .hero-fact:nth-child(3), .steps li:nth-child(3) { padding-left: 0; border-left: 0; }
  .footer-center { grid-template-columns: 1fr 1fr; }
}

@media screen and (max-width: 767px) {
  :root { --gutter: 16px; }
  .section { padding-top: 4rem; padding-bottom: 4rem; }
  .hero { padding-top: 3rem; }
  h1 { font-size: 2.25rem; }
  h2, .cta-band h2 { font-size: 1.875rem; }
  .bold-navbar { font-size: 1.2rem; }
  .support-top-link { display: none; }
  .nav-cta-long { display: none; }
  .nav-cta-short { display: inline; }
  .question-title { font-size: 1.25rem; }
  .faqs-item summary { padding: 1.5rem 0; }
  .faqs-answer { padding: 0 0 1.5rem; }
  .included-list { grid-template-columns: 1fr; }
  .plan-intro, .plan-board, .plan-picker, .plan-summary { padding-left: 1rem; padding-right: 1rem; }
  .plan-grid { grid-template-columns: 6.5rem 1fr 2rem; }
  .plan-bar { justify-content: center; height: 2rem; margin: 0 1px; padding: 0; font-size: .625rem; }
  .plan-bar em, .plan-bar .bar-long { display: none; }
  .plan-bar .bar-short { display: inline; }
  .plan-head { font-size: .625rem; letter-spacing: 0; }
  .plan-row-name small { font-size: .5625rem; letter-spacing: .04em; }
  .plan-remove { width: 1.6rem; height: 1.6rem; }
  .plan-row-name strong { font-size: .8125rem; }
  .price-table tbody th { width: auto; }
  .price-table thead { display: none; }
  .price-table tr { display: grid; grid-template-columns: 1fr auto; border-top: 1px solid var(--line); padding: 1rem 0; }
  .price-table th, .price-table td { border: 0; padding: .15rem 0; }
  .price-table td.desc { grid-column: 1 / -1; padding-top: .5rem; }
  .price-table td.weeks { grid-column: 1 / -1; color: var(--middle-gray); order: 3; }
  .compare-table thead { display: table-header-group; }
  .compare-table tr { display: table-row; padding: 0; }
  .compare-table th, .compare-table td { display: table-cell; padding: .75rem .5rem .75rem 0; border-top: 1px solid var(--line); font-size: .8125rem; }
  .compare-table thead th { border-top: 0; font-size: .625rem; }
  .footer-top, .footer-bottom { flex-direction: column; align-items: flex-start; }
  .btn-huge { padding: 1.1rem 1.75rem; font-size: 1.125rem; }
}

@media screen and (max-width: 479px) {
  .hero-facts, .steps { grid-template-columns: 1fr; }
  .hero-fact + .hero-fact, .steps li + li { padding-left: 0; border-left: 0; }
  .footer-center { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .plan-bar { animation: none; }
}
