/* ===== Little Horizons: theme tokens + base ===== */
:root,
[data-theme="light"] {
  color-scheme: light;
  --bg: #FFFFFF;
  --surface: #FFFFFF;
  --text: #1F2A24;
  --muted: #4B5C52;
  --theme: #2F6B4F;
  --on-theme: #FFFFFF;
  --border: #D5E3BE;
  --shade: rgba(47, 107, 79, .08);
  --shade-strong: rgba(47, 107, 79, .15);
  --shadow: 0 12px 32px rgba(47, 107, 79, .14);

    /* hero scene */
  --wave-0: #CFE4D6;
  --wave-1: #E7F1D8;
  --wave-2: #D5E6BC;
  --blob: #EAF4EC;
  --ink: #26302B;
  --sun: #F4E7A8;
  --skin: #FFF6EA;
  --hair: #F0E1A2;
  --house: #FFFFFF;
  --heart: #C9DEAA;
  --tree-a: #93C2A2;
  --tree-b: #CFE2B0;
  --dress-a: #F5D5DB;
  --dress-b: #DCCBF2;
  --shirt: #CFE6F2;
  --shorts: #E5EFF7;


    /* how it works band */
  --band-bg: #2F6B4F;
  --band-text: #FFFFFF;
  --band-soft: rgba(255, 255, 255, .84);
  --band-line: rgba(255, 255, 255, .4);
  --band-accent: #E7F1D8;
  --band-on-accent: #1F3F2E;
  --band-node-bg: #FFFFFF;
  --band-node-fg: #2F6B4F;
  --band-blob: rgba(255, 255, 255, .07);



  /* inside :root, [data-theme="light"] */
  --photo-ring: #FFFFFF;
  --photo-filter: none;


  --font-heading: "DM Sans", system-ui, sans-serif;
  --font-body: "Manrope", system-ui, sans-serif;

    /* program image cards */
  --card-text: #FFFFFF;
  --card-text-soft: rgba(255, 255, 255, .88);
  --card-glass: rgba(255, 255, 255, .16);
  --card-glass-line: rgba(255, 255, 255, .34);
  --card-shade-from: rgba(13, 27, 20, .10);
  --card-shade-mid: rgba(13, 27, 20, .45);
  --card-shade-to: rgba(13, 27, 20, .92);

  /* inside :root, [data-theme="light"] */
--team-arch-line: #BBD3A3;



/* inside :root, [data-theme="light"] */
--next-trail: rgba(47, 107, 79, .35);
--next-pin-fill: #FFFFFF;
--next-cloud: #FFFFFF;

/* inside :root, [data-theme="light"] */
--voices-overlay: linear-gradient(180deg, rgba(47, 107, 79, .86), rgba(33, 78, 56, .94));
--voices-glass: rgba(18, 45, 31, .45);
--voices-img-filter: none;

}

[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0D1B14;           /* deep forest green instead of black */
  --surface: #14281E;      /* raised surfaces */
  --text: #EEF4EA;
  --muted: #B4C7BA;
  --theme: #B9D39A;        /* light sage */
  --on-theme: #0D1B14;
  --border: #27463A;
  --shade: rgba(185, 211, 154, .08);
  --shade-strong: rgba(185, 211, 154, .16);
  --shadow: 0 14px 36px rgba(0, 0, 0, .45);

    /* hero scene */
  --wave-0: #1D4535;
  --wave-1: #12291E;
  --wave-2: #1A3B2B;
  --blob: rgba(185, 211, 154, .06);
  --ink: #EEF4EA;
  --sun: #F4E7A8;
  --skin: #FFF6EA;
  --hair: #F0E1A2;
  --house: #14281E;
  --heart: #3E7D5C;
  --tree-a: #3F7F5C;
  --tree-b: #6D9A6A;
  --dress-a: #D9A9B4;
  --dress-b: #B5A3D6;
  --shirt: #9CC3D6;
  --shorts: #7FA6B8;





    /* how it works band */
  --band-bg: #1A3B2B;
  --band-text: #EEF4EA;
  --band-soft: rgba(238, 244, 234, .82);
  --band-line: rgba(185, 211, 154, .45);
  --band-accent: #B9D39A;
  --band-on-accent: #0D1B14;
  --band-node-bg: #B9D39A;
  --band-node-fg: #0D1B14;
  --band-blob: rgba(185, 211, 154, .07);

  /* inside [data-theme="dark"] */
  --photo-ring: #27463A;
  --photo-filter: brightness(.92) contrast(1.03);


  /* inside [data-theme="dark"] */
--team-arch-line: #3A6650;


/* inside [data-theme="dark"] */
--next-trail: rgba(185, 211, 154, .4);
--next-pin-fill: #14281E;
--next-cloud: rgba(185, 211, 154, .14);

/* inside [data-theme="dark"] */
--voices-overlay: linear-gradient(180deg, rgba(26, 59, 43, .88), rgba(13, 27, 20, .95));
--voices-glass: rgba(8, 20, 14, .5);
--voices-img-filter: brightness(.8);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  line-height: 1.6;
  transition: background .3s ease, color .3s ease;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body { transition: none; }
}

/* Logo mark: same in light and dark mode */
:root {
  --logo-bg: #427a58;
  --logo-fg: #FFFFFF;
}

/* Home 2 video hero (same in light and dark) */
:root {
  --vhero-ink: #FFFFFF;
  --vhero-soft: rgba(255, 255, 255, .86);
  --vhero-accent: #B9D39A;
  --vhero-dark: #0D1B14;
  --vhero-overlay-a: rgba(13, 27, 20, .90);
  --vhero-overlay-b: rgba(13, 27, 20, .72);
  --vhero-overlay-c: rgba(13, 27, 20, .35);
  --vhero-glass: rgba(255, 255, 255, .12);
  --vhero-glass-line: rgba(255, 255, 255, .32);
}

/* Contact hero veil (same in light and dark) */
:root {
  --chero-veil: linear-gradient(180deg,
    rgba(13, 27, 20, .78) 0%,
    rgba(20, 48, 34, .72) 50%,
    rgba(13, 27, 20, .88) 100%);
}


/* Form validation red (readable on both modes) */
:root,
[data-theme="light"] { --err: #B3261E; }

[data-theme="dark"] { --err: #FF9E97; }


/* Contact CTA veil (same in light and dark) */
:root {
  --ccta-veil: linear-gradient(to right,
    rgba(13, 27, 20, .94) 0%,
    rgba(15, 35, 25, .88) 45%,
    rgba(20, 48, 34, .55) 72%,
    rgba(20, 48, 34, .15) 100%);
  --ccta-veil-rtl: linear-gradient(to left,
    rgba(13, 27, 20, .94) 0%,
    rgba(15, 35, 25, .88) 45%,
    rgba(20, 48, 34, .55) 72%,
    rgba(20, 48, 34, .15) 100%);
}