/* Public marketing site. Shares the palette in styles.css but is laid out for
   reading and persuasion rather than for operating an app. */

body.site { background: var(--bg); }

.wrap { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.section { padding: 76px 24px; }
.section-title { font-size: 1.9rem; margin-bottom: 10px; text-align: center; }
.section-sub { text-align: center; color: var(--muted); margin: 0 auto 34px; max-width: 560px; }
.band { background: var(--panel); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.lead { font-size: 1.05rem; line-height: 1.65; color: var(--muted); }
.small { font-size: 0.85rem; }
.btn-lg { padding: 13px 24px; font-size: 0.98rem; }
.block-btn { display: block; width: 100%; margin-top: 10px; text-align: center; text-decoration: none; }

/* ---------- Nav ---------- */

.site-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 14px 28px;
  background: rgba(251, 249, 243, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}

.site-brand {
  display: flex;
  align-items: center;
  gap: 7px;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--text);
  text-decoration: none;
}

.site-nav-links { display: flex; gap: 22px; flex: 1; }
.site-nav-links a { color: var(--muted); text-decoration: none; font-size: 0.9rem; }
.site-nav-links a:hover { color: var(--text); }
.site-nav-actions { display: flex; gap: 8px; align-items: center; }

/* ---------- Hero ---------- */

.hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 48px;
  align-items: center;
  max-width: 1140px;
  margin: 0 auto;
  padding: 72px 24px 84px;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.11em;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--gold);
  margin: 0 0 14px;
}

.hero-title {
  font-size: 2.75rem;
  line-height: 1.14;
  margin: 0 0 18px;
  letter-spacing: -0.015em;
}

.hero-sub { font-size: 1.08rem; line-height: 1.62; color: var(--muted); margin: 0 0 26px; max-width: 33em; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.hero-note { font-size: 0.82rem; color: var(--muted); margin-top: 18px; }

/* Static mock of the product, so the page shows the thing rather than describing it. */
.demo-page {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 26px;
  box-shadow: 0 18px 44px rgba(27, 36, 48, 0.11);
}

.demo-text {
  font-family: Georgia, "Iowan Old Style", serif;
  font-size: 1.12rem;
  line-height: 1.75;
  margin: 0 0 16px;
}

.demo-text mark { background: var(--gold-soft); border-bottom: 2px solid var(--gold); padding: 1px 2px; }

.demo-card { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.demo-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--ink);
  color: #f4ead2;
  padding: 9px 13px;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.demo-lang { color: #b9c2cf; }
.demo-card-body { padding: 14px; font-size: 0.86rem; line-height: 1.55; }
.demo-card-body p { margin: 0 0 12px; }
.demo-meaning { font-size: 0.92rem; }
.demo-label {
  display: block;
  font-size: 0.63rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: #8d8672;
  margin-bottom: 3px;
}

/* ---------- Comparison ---------- */

.split { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: center; }
.split h2 { font-size: 1.75rem; }

.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.compare-col { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 18px; }
.compare-col h4 { margin: 0 0 10px; font-size: 0.88rem; }
.compare-col ul { margin: 0; padding-left: 17px; font-size: 0.85rem; line-height: 1.65; color: var(--muted); }
.compare-col.bad { border-color: #e6d4d2; }
.compare-col.bad h4 { color: var(--danger); }
.compare-col.good { border-color: var(--gold-border); background: var(--gold-soft); }
.compare-col.good h4 { color: var(--gold); }

/* ---------- Steps & features ---------- */

.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.step { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 24px; }
.step h3 { font-size: 1.02rem; margin: 12px 0 8px; }
.step p { margin: 0; font-size: 0.9rem; line-height: 1.6; color: var(--muted); }

.step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--ink);
  color: var(--gold-soft);
  font-weight: 700;
  font-size: 0.88rem;
}

.feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.feature { background: var(--card); border: 1px solid var(--border); border-radius: 11px; padding: 20px; }
.feature h4 { margin: 0 0 7px; font-size: 0.95rem; }
.feature p { margin: 0; font-size: 0.87rem; line-height: 1.58; color: var(--muted); }

.tick-list { list-style: none; padding: 0; margin: 18px 0 24px; }
.tick-list li { position: relative; padding-left: 26px; margin-bottom: 11px; font-size: 0.92rem; line-height: 1.5; }
.tick-list li::before { content: "✓"; position: absolute; left: 0; color: var(--gold); font-weight: 700; }

/* ---------- Roster mock ---------- */

.panel-mock { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 8px 0; box-shadow: 0 10px 30px rgba(27,36,48,0.08); }
.mock-row { display: grid; grid-template-columns: 1.4fr 0.6fr 1fr; gap: 10px; padding: 12px 20px; font-size: 0.87rem; align-items: center; }
.mock-row + .mock-row { border-top: 1px solid var(--border); }
.mock-head { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); font-weight: 700; }
.pill { padding: 3px 9px; border-radius: 999px; font-size: 0.73rem; font-weight: 700; text-align: center; }
.pill-high { background: #e5e8ee; color: var(--ink); }
.pill-ok { background: #e3ede3; color: var(--success); }
.pill-low { background: var(--gold-soft); color: var(--gold); }
.pill-none { background: #f1efe7; color: var(--muted); }

/* ---------- Pricing ---------- */

.price-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; align-items: start; }
.price-card { position: relative; background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 24px 20px; }
.price-card.featured { border-color: var(--gold); box-shadow: 0 12px 30px rgba(166, 128, 45, 0.15); }
.price-card h3 { font-size: 1rem; margin: 0 0 10px; }
.price { font-family: Georgia, serif; font-size: 1.75rem; font-weight: 700; margin-bottom: 16px; }
.price span { display: block; font-family: inherit; font-size: 0.76rem; font-weight: 400; color: var(--muted); margin-top: 3px; }
.price-card ul { margin: 0 0 18px; padding-left: 17px; font-size: 0.85rem; line-height: 1.7; color: var(--muted); }
.price-tag {
  position: absolute;
  top: -10px;
  left: 20px;
  background: var(--gold);
  color: #fff;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 999px;
}
.price-note { text-align: center; color: var(--muted); font-size: 0.82rem; margin-top: 26px; }

/* ---------- Schools ---------- */

.verify-card { background: var(--card); border: 1px solid var(--gold-border); border-left: 3px solid var(--gold); border-radius: 11px; padding: 24px; }
.verify-card h4 { margin: 0 0 10px; font-size: 0.98rem; }
.verify-card p { font-size: 0.89rem; line-height: 1.6; color: var(--muted); }
.verify-steps { margin: 14px 0; padding-left: 18px; font-size: 0.88rem; line-height: 1.7; }

/* ---------- Get started ---------- */

.start-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.start-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 26px 22px; text-align: center; }
.start-card h3 { font-size: 1rem; margin: 12px 0 8px; }
.start-card p { font-size: 0.87rem; line-height: 1.58; color: var(--muted); margin: 0 0 16px; }
.start-icon { display: inline-block; font-size: 1.5rem; color: var(--gold); }

/* ---------- Footer ---------- */

.site-footer { background: var(--ink); color: #d7d2c4; padding: 40px 0; }
.footer-inner { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; align-items: center; }
.site-footer .site-brand { color: #fdfbf6; }
.site-footer .muted { color: #a9a396; }
.footer-links { display: flex; gap: 20px; }
.footer-links a { color: #d7d2c4; text-decoration: none; font-size: 0.87rem; }
.footer-links a:hover { color: #fff; text-decoration: underline; }

.signin-dialog { width: 360px; text-align: center; }
.signin-dialog #googleSignInBtn { display: flex; justify-content: center; margin: 18px 0 6px; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; padding-top: 48px; }
  .split { grid-template-columns: 1fr; gap: 28px; padding: 44px 0; }
  .compare { grid-template-columns: 1fr; }
  .site-nav-links { display: none; }
  .hero-title { font-size: 2.1rem; }
}

/* Reader mock for the individual-learner section. */
.reader-mock { padding: 24px; }
.reader-quote {
  font-family: Georgia, "Iowan Old Style", serif;
  font-size: 1.05rem;
  line-height: 1.75;
  margin: 0 0 16px;
}
.reader-quote mark { background: var(--gold-soft); border-bottom: 2px solid var(--gold); padding: 1px 2px; }
.reader-note {
  border-left: 3px solid var(--gold);
  background: var(--bg);
  border-radius: 0 8px 8px 0;
  padding: 12px 14px;
}
.reader-note p { margin: 0; font-size: 0.88rem; line-height: 1.55; }

/* Pricing list emphasis: what a plan notably includes, and what it pointedly
   doesn't — the individual/tutor distinction is the one people get wrong. */
.price-card li.price-excl { color: var(--muted); font-style: italic; }

/* Two plain sections in a row share a background and otherwise read as one
   long block with a hole in it. A hairline marks the boundary without adding
   a third background colour to the page. */
section.section + section.section { border-top: 1px solid var(--border); }

/* Give the comparison cards room inside their band rather than letting them
   sit flush against the colour change. */
.compare { gap: 16px; }
.compare-col { padding: 22px 20px; }

.contact-line { text-align: center; font-size: 1.35rem; margin: 4px 0 10px; }
.contact-line a { color: var(--ink); text-decoration: none; border-bottom: 2px solid var(--gold-border); }
.contact-line a:hover { border-bottom-color: var(--gold); }
.contact-note { text-align: center; }

/* "from" is a qualifier, not part of the number — at full price size it made
   the cheaper tier look like the more expensive one. */
.price-qual {
  display: inline;
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--muted);
  margin: 0 2px 0 0;
}

.start-price { font-weight: 700; color: var(--ink); margin: 0 0 6px; font-size: 0.92rem; }
.start-grid { grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); }

.hero-lede {
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--ink);
  margin: 0 0 18px;
  max-width: 34em;
}

.hero-lede em { font-style: italic; }

.lang-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(165px, 1fr));
  gap: 9px;
  max-width: 760px;
  margin: 0 auto;
}

.lang {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 9px;
  font-size: 0.88rem;
}

.lang .flag { font-size: 1.05rem; line-height: 1; }
.lang-note { text-align: center; margin-top: 18px; }

/* Inline links in body copy shouldn't render as browser-default blue. */
.plain-link { color: var(--gold); text-decoration: none; border-bottom: 1px solid var(--gold-border); }
.plain-link:hover { color: var(--ink); border-bottom-color: var(--ink); }

/* Get-started cards: equal height with the button pinned to the bottom, so a
   card whose text runs to two lines doesn't drop its button below the others. */
.start-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.start-card p { flex: 1 1 auto; }
.start-card .btn { margin-top: auto; }
.start-grid { align-items: stretch; }
