:root {
  --ink: #193747;
  --muted: #586c75;
  --paper: #fafaf7;
  --white: #fffefa;
  --blue: #426b95;
  --blue-light: #edf3f4;
  --line: #dfe6e5;
}
html { scroll-behavior: auto; }
body { line-height: 1.75; }
[hidden] { display: none !important; }
.skip-link { z-index: 30; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
header { background: var(--paper); border-bottom-color: var(--line); }
header .nav-row { flex-direction: row; align-items: center; justify-content: space-between; padding-block: .7rem; gap: .5rem 1.5rem; min-height: 78px; }
.brand { font-weight: 600; }
.navigation-controls { display: flex; align-items: center; gap: .65rem; margin-left: auto; }
.home-link, .topics-toggle { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: .45rem 1rem; font: inherit; font-size: .96rem; font-weight: 600; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.topics-toggle { display: none; gap: .5rem; }
.navigation-ready .topics-toggle { display: inline-flex; }
.home-link:hover, .topics-toggle:hover { background: var(--blue-light); }
header nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); flex: 1 1 100%; gap: .5rem 1.5rem; padding: .75rem 0 .5rem; max-height: 55vh; overflow-y: auto; }
.navigation-ready header nav:not([hidden]) { display: grid; }
header nav a { min-height: 44px; padding: .45rem .6rem; font-size: 1rem; font-weight: 600; color: var(--blue); border-radius: .5rem; }
header nav a[aria-current="page"] { background: var(--blue-light); color: var(--ink); text-decoration: underline; text-underline-offset: 5px; }
.hero-grid { min-height: 460px; padding-block: 3.5rem; }
.hero-art { max-height: 370px; }
.hero h1 { font-weight: 400; }
.eyebrow { text-transform: none; letter-spacing: .035em; font-weight: 600; font-size: .88rem; }
.hero .eyebrow { color: #c6d9f2; }
.hero .button-primary { background: #c3d8ee; }
.section { padding-block: clamp(2.5rem, 5vw, 4rem); }
.learning { background: var(--paper); }
.practices { background: var(--paper); }
.section .wrap { max-width: 1000px; }
.section-heading { margin-bottom: 2.5rem; max-width: 780px; }
.section h1, .section-heading h2 { max-width: 800px; font-family: var(--serif); font-size: clamp(2.1rem, 4.2vw, 3.6rem); line-height: 1.18; font-weight: 400; letter-spacing: -.025em; margin: 0 0 1.25rem; }
.section-heading p { line-height: 1.75; }
.topic-breadcrumb { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: .5rem; grid-column: 1 / -1; margin-bottom: 1.75rem; color: var(--muted); font-size: .92rem; }
.topic-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; color: var(--blue); font-weight: 600; }
.topic-breadcrumb span { display: inline-flex; align-items: center; min-height: 44px; }
.about { grid-template-columns: 1fr; gap: 1.5rem; }
.about .topic-breadcrumb { margin-bottom: 0; }
.about-copy, .founder-copy { max-width: 850px; }
.about-copy p { font-size: clamp(1.35rem, 2.3vw, 1.8rem); line-height: 1.6; }
.founder-copy p { font-family: var(--sans); font-size: 1rem; line-height: 1.85; }
.learning-grid, .practice-grid, .ayurveda-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.25rem 2.5rem; }
.learning-card, .practice-card { padding: .35rem 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.learning-card h3, .practice-card h3, .recipe h3, .founder-copy h3 { font-family: var(--serif); font-weight: 600; font-size: 1.35rem; line-height: 1.4; margin-bottom: .8rem; }
.learning-card p, .learning-card li, .practice-card > p, .recipe p, .recipe li { font-size: 1rem; line-height: 1.8; }
.practice-time { text-transform: none; letter-spacing: .02em; font-size: .88rem; font-weight: 600; }
details summary { min-height: 44px; padding-block: .4rem; font-size: 1rem; }
.learning-note, .class-contact, .soul-note { padding: 1.5rem; background: var(--blue-light); color: var(--ink); line-height: 1.8; }
.recipe { background: var(--white); border-color: var(--line); padding: 1.75rem; margin-top: 2.5rem; }
.founder-reflection { border: 0 !important; border-radius: 1rem; background: var(--blue-light); }
.topic-index { padding: 3rem 0 4rem; }
.topic-index .wrap, .topic-ending .wrap { max-width: 1000px; }
.topic-index h2, .topic-ending h2 { font-family: var(--serif); font-size: clamp(1.65rem, 2.6vw, 2.15rem); line-height: 1.35; font-weight: 400; margin: 0 0 1rem; }
.topic-index-intro { color: var(--muted); margin-bottom: 2rem; }
.topic-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem 2rem; align-items: stretch; }
.topic-choice { display: flex; flex-direction: column; gap: .3rem; min-height: 80px; padding: .8rem .15rem 1.2rem; text-decoration: none; border-bottom: 1px solid var(--line); }
.topic-choice-name { color: var(--blue); font-size: 1.05rem; font-weight: 600; }
.topic-choice-description { color: var(--muted); font-size: .92rem; line-height: 1.65; }
.topic-choice:hover .topic-choice-name { text-decoration: underline; text-underline-offset: 5px; }
.topic-ending { padding: 2.5rem 0 3rem; background: var(--blue-light); }
.topic-ending-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.topic-ending h2 { margin: 0; }
.topic-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem 1.5rem; }
.topic-links a { min-height: 44px; display: flex; align-items: center; padding: .5rem .15rem; font-size: 1rem; font-weight: 600; line-height: 1.5; color: var(--blue); text-decoration: none; }
.topic-links a:hover { text-decoration: underline; text-underline-offset: 5px; }
.closing { background: #426b80; }
.community .topic-breadcrumb { margin-bottom: 0; }
.community-text h1 { font-size: clamp(2.1rem, 4.2vw, 3.6rem); }
@media (max-width: 900px) {
  header nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; }
  .topic-choices, .topic-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .learning-grid, .practice-grid, .ayurveda-grid { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 600px) {
  body { font-size: 18px; }
  header .nav-row { flex-direction: row; gap: .5rem; padding-block: .65rem; }
  header .brand { font-size: .9rem; letter-spacing: .065em; gap: .5rem; }
  .brand-globe { width: 28px; height: 28px; flex-basis: 28px; }
  .navigation-controls { gap: .4rem; }
  .home-link, .topics-toggle { font-size: 1rem; padding: .45rem .8rem; }
  header nav a { font-size: 1rem; }
  .hero-grid { min-height: auto; padding-block: 2.75rem; }
  .hero h1 { font-size: clamp(2.1rem, 9.5vw, 3rem); line-height: 1.1; }
  .hero-art { max-height: 180px; width: min(50%, 180px); }
  .topic-choices { grid-template-columns: 1fr; gap: .5rem; }
  .topic-choice { min-height: 70px; }
  .topic-links { grid-template-columns: 1fr; gap: .35rem; }
  .topic-links a { font-size: 1.0625rem; min-height: 48px; }
  .topic-choice-description { font-size: 1rem; }
  .learning-card p, .learning-card li, .practice-card > p, .recipe p, .recipe li, .founder-copy p { font-size: 1.0625rem; }
  .learning-note, .class-list, .class-contact, details p, .soul-note p { font-size: 1.0625rem; }
  .topic-ending-heading { align-items: center; }
  .topic-ending-heading .home-link { flex-shrink: 0; }
  .section { padding-block: 2.5rem; }
}
/* Keep the Earth/name and Topics control together on narrow phones. */
@media (max-width: 420px) {
  header .brand { flex-basis: auto; font-size: .82rem; letter-spacing: .045em; }
  .navigation-controls { width: auto; margin-left: auto; }
}
@media (max-width: 340px) {
  header .brand { font-size: .73rem; gap: .35rem; }
  .topics-toggle { padding-inline: .6rem; font-size: .9rem; }
}


/* Balanced reading widths and adaptable media across screen sizes. */
html { -webkit-text-size-adjust: 100%; }
.hero-grid > *, .learning-grid > *, .practice-grid > *, .community > * { min-width: 0; }
img { max-width: 100%; }
.section p, .section li, .topic-choice-name, .topic-links a { overflow-wrap: anywhere; }
.hero h1 { max-width: 12ch; line-height: 1.12; letter-spacing: -.025em; }
.hero-art { justify-self: center; width: min(100%, 370px); height: auto; aspect-ratio: 1; border-radius: 50%; border: 0; box-shadow: none; }
/* Headings receive navigation focus for screen readers without decorative boxes. */
.page-panel h1:focus, .page-panel h2:focus, main:focus { outline: none; }
header nav { max-height: min(55vh, calc(100dvh - 100px)); overscroll-behavior: contain; }
.about-copy, .founder-copy { max-width: 70ch; }
@media (min-width: 601px) and (max-width: 900px) {
  .hero-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 2rem; }
  .hero h1 { font-size: clamp(2.5rem, 5.5vw, 3.6rem); }
  .hero-art { width: 100%; max-height: none; }
}
@media (max-width: 600px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .hero-art { width: min(48%, 180px); height: auto; }
  .hero h1 { max-width: 15ch; }
  .actions { gap: .65rem; }
  .actions .button { max-width: 100%; }
  .recipe { padding: 1.25rem; }
}
@media (max-height: 500px) and (orientation: landscape) {
  header .nav-row { min-height: 60px; padding-block: .35rem; }
  header nav { max-height: calc(100dvh - 85px); }
}
