/* Shared readability pass: explanatory copy is intentionally larger and darker. */
:root {
  --read-copy: #303d56;
  --read-muted: #46536b;
  --read-soft: #536079;
}

body { font-size: 16px; }

/* Body copy and supporting explanations */
.hero-description,
.section-heading > p,
.heading-split > p,
.benefit-card p,
.step-card p,
.builder-heading > p,
.step-intro,
.privacy-hint,
.prompt-privacy,
.result-subtitle,
.story-excerpt,
.listen-copy p,
.review-card > p,
.reviews-note,
.pricing-copy > p,
.price-perk,
.faq-title > p,
.faq-item > p,
.footer-brand-block > p,
.footer-note,
.dialog-note,
.order-dialog > p {
  font-size: 17px;
  line-height: 1.7;
  color: var(--read-copy);
}

/* Labels and secondary explanatory text */
.hero .eyebrow,
.builder-heading .eyebrow,
.categories-heading .eyebrow,
.builder-progress-meta,
.field-group,
.field-group > span,
.field-group label,
.field-group input,
.field-group select,
.field-group textarea,
.listen-caption,
.player-meta p,
.player-hint,
.player-footnote,
.sample-transcript,
.sample-transcript summary,
.review-top h3,
.review-top > div:nth-child(2) > span,
.reviews-note,
.price-card-top,
.price-label,
.price-features li,
.price-small,
.faq-item summary,
.concept-banner nav,
.footer-links a,
.footer-note > a,
.footer-bottom,
.order-summary dl,
.order-status,
.required-note,
.privacy-hint,
.prompt-privacy,
.field-group small,
.result-note,
.result-tag,
.floating-card small,
.art-note {
  font-size: 15px;
  line-height: 1.55;
}

/* Keep decorative micro-labels legible without competing with the story. */
.eyebrow,
.player-kicker,
.showcase-topline,
.sound-wave + small,
.builder-progress-meta,
.price-card-top,
.concept-banner {
  font-size: 12px;
  line-height: 1.5;
}

/* Stronger text on light surfaces */
.benefit-card p,
.heading-split > p,
.step-card p,
.builder-heading > p,
.step-intro,
.field-group small,
.required-note,
.privacy-hint,
.result-subtitle,
.story-excerpt,
.result-note,
.listen-copy p,
.player-meta p,
.player-hint,
.player-footnote,
.sample-transcript,
.sample-transcript p,
.review-card > p,
.review-top > div:nth-child(2) > span,
.reviews-note,
.price-label,
.price-features li,
.price-small,
.faq-title > p,
.faq-item > p,
.order-dialog > p,
.dialog-note,
.order-summary dt,
.order-status {
  color: var(--read-muted);
}

.field-group input,
.field-group select,
.field-group textarea { color: #25334e; }
.field-group input::placeholder,
.field-group textarea::placeholder { color: #66738a; opacity: 1; }
.field-group small,
.required-note,
.privacy-hint,
.result-note,
.player-hint,
.player-footnote,
.price-small,
.order-status { color: var(--read-soft); }

.hero-description { color: #f4f6ff; }
.hero .eyebrow,
.hero-trust,
.hero-trust strong,
.hero .trust-note { color: #f2f4ff; }
.art-note { color: #fff; }
.floating-card small { color: #46536b; }
.category-card > span { font-size: 16px; line-height: 1.3; }
.listen-caption { color: #49358f; }
.player-meta p, .player-hint, .player-footnote { color: #46536b; }
.audio-time { color: #46536b; font-size: 14px; }
.player-kicker { color: #4f3a9e; }
.result-tag { color: #463583; font-size: 14px; }
.price-card-top { color: #4d3a9e; }
.price-amount { color: #152143; }
.faq-item summary { color: #182449; }
.footer-brand-block > p,
.footer-links a,
.footer-note,
.footer-bottom { color: #f0f3ff; }
.concept-banner { font-size: 12px; }
.concept-banner nav { font-size: 14px; }
.order-summary dt { color: #4d5870; }
.order-summary dd { color: #263354; }
.order-status { color: #46536b; }

/* Dark night concept: retain its palette but raise small-copy contrast. */
body.concept-night :is(.hero-description, .hero-trust, .trust-note, .section-heading > p,
  .benefit-card p, .heading-split > p, .step-card p, .reviews-note, .review-top > div:nth-child(2) > span,
  .review-card > p, .faq-title > p, .faq-item > p, .listen-copy p, .listen-caption,
  .pricing-copy > p, .price-perk, .footer-brand-block > p, .footer-links a, .footer-note, .footer-bottom) {
  color: #eee8f5;
}
body.concept-night .hero .eyebrow { color: #eee8f5; }
body.concept-night .builder :is(.builder-heading > p, .step-intro, .field-group small, .required-note,
  .privacy-hint, .prompt-privacy, .result-note, .player-hint, .player-footnote, .order-status) { color: #414254; }
body.concept-night .builder .field-group input::placeholder,
body.concept-night .builder .field-group textarea::placeholder { color: #596178; }

/* Warm workshop concept: use deep olive ink on cream and paper surfaces. */
body.concept-workshop :is(.hero-description, .hero-trust, .trust-note, .section-heading > p,
  .benefit-card p, .heading-split > p, .step-card p, .reviews-note, .review-top > div:nth-child(2) > span,
  .review-card > p, .faq-title > p, .faq-item > p, .listen-copy p, .listen-caption,
  .pricing-copy > p, .price-perk, .footer-brand-block > p, .footer-links a, .footer-note, .footer-bottom) {
  color: #3e4a3b;
}
body.concept-workshop .hero .eyebrow { color: #4c5946; }
body.concept-workshop .site-footer :is(.footer-brand-block > p, .footer-links a, .footer-note, .footer-bottom) { color: #f6f2e8; }

/* Mobile: keep explanatory copy comfortably readable and let sections grow. */
@media (max-width: 760px) {
  .hero { max-height: none; }
  .hero-description,
  .section-heading > p,
  .heading-split > p,
  .benefit-card p,
  .step-card p,
  .builder-heading > p,
  .step-intro,
  .privacy-hint,
  .prompt-privacy,
  .result-subtitle,
  .story-excerpt,
  .listen-copy p,
  .review-card > p,
  .reviews-note,
  .pricing-copy > p,
  .price-perk,
  .faq-title > p,
  .faq-item > p,
  .footer-brand-block > p,
  .footer-note,
  .dialog-note,
  .order-dialog > p { font-size: 16px; }

  .hero .eyebrow,
  .builder-heading .eyebrow,
  .categories-heading .eyebrow,
  .builder-progress-meta,
  .field-group,
  .field-group > span,
  .field-group label,
  .field-group input,
  .field-group select,
  .field-group textarea,
  .listen-caption,
  .player-meta p,
  .player-hint,
  .player-footnote,
  .sample-transcript,
  .sample-transcript summary,
  .review-top h3,
  .review-top > div:nth-child(2) > span,
  .price-card-top,
  .price-label,
  .price-features li,
  .price-small,
  .faq-item summary,
  .concept-banner nav,
  .footer-links a,
  .footer-note > a,
  .footer-bottom,
  .order-summary dl,
  .order-status,
  .required-note,
  .privacy-hint,
  .prompt-privacy,
  .field-group small,
  .result-note,
  .result-tag,
  .floating-card small,
  .art-note { font-size: 14px; }

  .category-card > span { font-size: 16px; }
  .hero .text-link { font-size: 14px; }
  .header-cta { font-size: 13px; }
  .mobile-nav a { font-size: 16px; }
  .concept-banner { padding: 8px 14px; gap: 7px; font-size: 10px; letter-spacing: .06em; flex-wrap: wrap; justify-content: center; text-align: center; }
  .concept-banner nav { gap: 12px; font-size: 12px; }
  .footer-bottom { font-size: 13px; }
  .sample-transcript { font-size: 15px; }
}

@media (max-width: 390px) {
  .hero-copy { padding-bottom: 34px; }
  .benefit-card p { font-size: 15px; }
  .concept-banner nav { flex-wrap: wrap; justify-content: center; }
}


/* Navigation and actions should stay legible beside the enlarged copy. */
.main-nav a { font-size: 14px; }
.button, .button-small, .button-back { font-size: 15px; }
.text-link, .hero .text-link { font-size: 15px; }
body.concept-night .main-nav a { color: #eee8f5; }
body.concept-workshop .main-nav a { color: #43523f; }

@media (max-width: 760px) {
  .button, .button-small, .button-back { font-size: 14px; }
  .header-cta { font-size: 14px; }
  .hero .text-link { font-size: 14px; }
}


/* Hero trust notes were still tiny in the visual review. */
.hero-trust,
.hero-trust strong,
.trust-note { font-size: 15px; line-height: 1.5; }
@media (max-width: 760px) {
  .hero-trust,
  .hero-trust strong,
  .trust-note { font-size: 14px; }
}
