:root {
  --page-max: 1200px;
  --header-h: 130px;
  --surface-soft: #F7F3EA;
  --ink-soft: #6D5A4C;
  --coral-soft: #FFE3DE;
  --gold-soft: #FFF0C6;
  --green-soft: #E8EFDE;
  --blue-soft: #E1F0F7;
  --ease: cubic-bezier(.2, 0, 0, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  color: var(--jn-text-primary);
  background: var(--jn-surface-base);
  font-family: var(--jn-font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }

.skip-link {
  position: fixed; left: 16px; top: 16px; z-index: 999;
  background: var(--jn-color-brown-dark); color: white;
  padding: 10px 14px; border-radius: var(--jn-radius-md);
  transform: translateY(-150%); transition: transform 160ms var(--ease);
}
.skip-link:focus { transform: translateY(0); }

.shell { width: min(calc(100% - 40px), var(--page-max)); margin-inline: auto; }
.narrow { max-width: 780px; text-align: center; }
.section { position: relative; padding: clamp(72px, 8vw, 120px) 0; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  height: var(--header-h);
  background: color-mix(in srgb, var(--jn-color-cream) 86%, transparent);
  backdrop-filter: blur(18px) saturate(140%);
  border-bottom: 1px solid color-mix(in srgb, var(--jn-border-default) 65%, transparent);
}
.nav-shell { height: 100%; display: flex; align-items: center; gap: 28px; }
.brand { flex: 0 0 auto; display: flex; align-items: center; width: 275px; height: 113px; overflow: hidden; }
.brand img { width: 100%; height: 100%; object-fit: contain; }
.site-nav { display: flex; align-items: center; justify-content: center; gap: 28px; flex: 1; }
.site-nav a { text-decoration: none; font-weight: 700; color: var(--ink-soft); font-size: 15px; position: relative; }
.site-nav a::after { content: ""; position: absolute; height: 2px; left: 0; right: 100%; bottom: -7px; background: var(--jn-color-green); border-radius: 2px; transition: right var(--jn-motion-standard) var(--ease); }
.site-nav a:hover::after, .site-nav a:focus-visible::after { right: 0; }
.nav-cta { flex: 0 0 auto; }
/* Between the desktop nav and the mobile menu, seven program links need a
   tighter rhythm or the nav pushes past the viewport edge (761-900px). */
@media (min-width: 761px) and (max-width: 900px) {
  .site-nav { gap: 14px; }
  .site-nav a { font-size: 14px; }
}
.menu-toggle { display: none; }

.button {
  min-height: 48px; display: inline-flex; align-items: center; justify-content: center;
  padding: 0 24px; border-radius: var(--jn-radius-pill); text-decoration: none;
  border: 0; font-weight: 800; transition: transform var(--jn-motion-standard) var(--ease), box-shadow var(--jn-motion-standard) var(--ease), background var(--jn-motion-standard) var(--ease);
}
.button:hover { transform: translateY(-2px); }
.button:focus-visible, .text-link:focus-visible, .site-nav a:focus-visible, .program-card:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--jn-focus); outline-offset: 3px;
}
.button-primary { background: var(--jn-action-primary); color: var(--jn-color-cream); box-shadow: var(--jn-shadow-sm); }
.button-primary:hover { background: #46642D; box-shadow: var(--jn-shadow-md); }
.button-lg { min-height: 56px; padding-inline: 30px; }
.text-link { font-weight: 800; text-decoration: none; color: var(--jn-color-brown-dark); }
.text-link span { display: inline-block; margin-left: 6px; transition: transform 180ms var(--ease); }
.text-link:hover span { transform: translateX(5px); }

.hero { min-height: calc(92vh - var(--header-h)); display: flex; align-items: center; overflow: hidden; padding-top: clamp(22px, calc(7vw - 42px), 66px); padding-bottom: clamp(100px, 11vw, 150px); }
.hero-grid { display: grid; grid-template-columns: 1.04fr .96fr; gap: clamp(36px, 6vw, 84px); align-items: center; }
.hero-copy { position: relative; z-index: 3; }
.eyebrow, .section-kicker { text-transform: uppercase; letter-spacing: .14em; font-size: 12px; font-weight: 800; color: var(--jn-color-green); }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; background: var(--green-soft); padding: 8px 13px; border-radius: var(--jn-radius-pill); }
.eyebrow-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--jn-color-gold); box-shadow: 0 0 0 5px rgba(248,177,32,.18); }
h1, h2, h3 { font-family: var(--jn-font-display); margin: 0; line-height: 1.08; letter-spacing: -.025em; }
h1 { max-width: 780px; margin-top: 24px; font-size: clamp(52px, 6.8vw, 88px); }
h1 span { color: var(--jn-color-coral); }
.hero-lede { max-width: 680px; margin: 26px 0 0; font-size: clamp(18px, 1.7vw, 21px); color: var(--ink-soft); line-height: 1.65; }
.hero-actions { margin-top: 32px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.trust-row { margin-top: 42px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; max-width: 660px; }
.trust-row div { padding: 16px 16px 15px; border-radius: var(--jn-radius-lg); background: rgba(255,255,255,.62); border: 1px solid rgba(230,208,173,.75); }
.trust-row strong, .trust-row span { display: block; }
.trust-row strong { font-family: var(--jn-font-display); font-size: 18px; }
.trust-row span { margin-top: 2px; font-size: 13px; color: var(--ink-soft); }

.hero-visual { position: relative; z-index: 2; }
.hero-card {
  position: relative; min-height: 560px; border-radius: 48px;
  background: linear-gradient(145deg, #fff 0%, #fffdf8 58%, #f5f0e3 100%);
  border: 1px solid rgba(230,208,173,.75); box-shadow: 0 24px 70px rgba(49,24,11,.12);
  display: grid; place-items: center; overflow: hidden; padding: 40px;
}
.hero-card::before { content:""; position:absolute; inset:auto -12% -38% -10%; height:56%; border-radius:50% 50% 0 0; background:linear-gradient(180deg,#DCE8CB,#C9DCA9); transform:rotate(-4deg); }
.hero-card::after { content:""; position:absolute; width:46%; aspect-ratio:1; border-radius:50%; background:rgba(183,197,161,.26); right:-14%; top:18%; }
.hero-logo { position: relative; z-index: 3; width: 92%; max-width: 560px; filter: drop-shadow(0 12px 20px rgba(49,24,11,.09)); }
.hero-note { position: absolute; z-index: 5; left: 32px; right: 32px; bottom: 28px; display:flex; gap:14px; align-items:center; padding:16px 18px; background:rgba(254,251,243,.9); backdrop-filter: blur(12px); border:1px solid rgba(230,208,173,.9); border-radius:20px; box-shadow:var(--jn-shadow-md); }
.hero-note .heart { flex:0 0 40px; width:40px; height:40px; border-radius:14px; display:grid; place-items:center; background:var(--coral-soft); color:var(--jn-color-coral); }
.hero-note strong { font-family:var(--jn-font-display); }
.hero-note span:last-child { color:var(--ink-soft); font-size:14px; }
.sun { position:absolute; width:92px; height:92px; border-radius:50%; background:var(--jn-color-gold); top:44px; right:48px; box-shadow:0 0 0 18px rgba(248,177,32,.12),0 0 0 36px rgba(248,177,32,.05); }
.cloud { position:absolute; border-radius:999px; background:#fff; opacity:.72; filter:blur(.2px); }
.cloud::before,.cloud::after { content:""; position:absolute; background:inherit; border-radius:50%; }
.cloud-one { width:130px; height:34px; left:28px; top:82px; }
.cloud-one::before { width:54px; height:54px; left:24px; top:-26px; }
.cloud-one::after { width:42px; height:42px; right:18px; top:-18px; }
.cloud-two { width:86px; height:24px; right:24px; top:184px; opacity:.55; }
.cloud-two::before { width:38px; height:38px; left:16px; top:-20px; }
.cloud-two::after { width:30px; height:30px; right:10px; top:-15px; }
.hero-glow { position:absolute; border-radius:50%; filter:blur(10px); pointer-events:none; }
.hero-glow-one { width:520px; height:520px; background:radial-gradient(circle,rgba(243,88,77,.10),transparent 65%); left:-180px; top:0; }
.hero-glow-two { width:560px; height:560px; background:radial-gradient(circle,rgba(103,139,51,.12),transparent 65%); right:-200px; bottom:-140px; }
.hero-hills { position:absolute; inset:auto 0 0; height:120px; pointer-events:none; }
.hero-hills span { position:absolute; left:-8%; bottom:-70px; width:70%; height:150px; border-radius:50% 50% 0 0; background:#EDF3E5; transform:rotate(2deg); }
.hero-hills span:nth-child(2) { left:36%; width:72%; bottom:-78px; background:#E1EBD5; transform:rotate(-2deg); }
.hero-hills span:nth-child(3) { left:74%; width:42%; bottom:-62px; background:#D5E2C5; }

.intro { background: #fff; }
.intro h2 { margin-top: 12px; font-size: clamp(38px, 4.5vw, 60px); }
.intro p { max-width: 760px; margin: 22px auto 0; color: var(--ink-soft); font-size: 19px; }

.values { background: linear-gradient(180deg,#fff 0%,var(--jn-color-cream) 100%); }
.section-heading { display:flex; justify-content:space-between; gap:48px; align-items:end; margin-bottom:44px; }
.section-heading h2, .day-copy h2, .family-copy h2, .faq-intro h2, .contact-copy h2 { margin-top:10px; font-size:clamp(36px,4.2vw,54px); }
.section-heading > p { max-width:460px; margin:0; color:var(--ink-soft); font-size:17px; }
.value-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.value-card { position:relative; min-height:330px; padding:28px; border-radius:var(--jn-radius-xl); background:#fff; border:1px solid var(--jn-border-default); box-shadow:var(--jn-shadow-sm); overflow:hidden; transition:transform var(--jn-motion-slow) var(--ease),box-shadow var(--jn-motion-slow) var(--ease); }
.value-card:hover { transform:translateY(-7px); box-shadow:var(--jn-shadow-lg); }
.value-card::after { content:""; position:absolute; width:140px; height:140px; border-radius:50%; right:-52px; top:-55px; opacity:.75; }
.value-card.coral::after { background:var(--coral-soft); }
.value-card.gold::after { background:var(--gold-soft); }
.value-card.green::after { background:var(--green-soft); }
.value-card.blue::after { background:var(--blue-soft); }
.value-number { position:absolute; right:22px; top:18px; font:700 13px/1 var(--jn-font-body); color:var(--ink-soft); }
.value-icon { width:56px; height:56px; border-radius:18px; display:grid; place-items:center; font-size:27px; font-weight:800; margin-bottom:42px; }
.coral .value-icon { background:var(--coral-soft); color:var(--jn-color-coral); }
.gold .value-icon { background:var(--gold-soft); color:#C47A00; }
.green .value-icon { background:var(--green-soft); color:var(--jn-color-green); }
.blue .value-icon { background:var(--blue-soft); color:var(--jn-color-blue); }
.value-card h3 { font-size:30px; }
.value-card p { margin:14px 0 0; color:var(--ink-soft); }

/* Homepage programs band: three cards that route to the program pages. */
.programs-section { background:var(--jn-surface-base); }
.program-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.program-card { display:flex; flex-direction:column; gap:10px; padding:clamp(26px,3vw,36px); border-radius:var(--jn-radius-xl); background:#fff; border:1px solid var(--jn-border-default); box-shadow:var(--jn-shadow-sm); text-decoration:none; transition:transform var(--jn-motion-slow) var(--ease),box-shadow var(--jn-motion-slow) var(--ease); }
.program-card:hover { transform:translateY(-6px); box-shadow:var(--jn-shadow-lg); }
.program-tag { font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--jn-color-green); }
.program-card h3 { margin:0; font-size:clamp(24px,2.2vw,30px); color:var(--jn-text-primary); }
.program-card p { margin:0; color:var(--ink-soft); font-size:16px; }
.program-link { margin-top:auto; padding-top:10px; font-weight:800; color:var(--jn-color-green); }
@media (max-width: 900px) { .program-grid { grid-template-columns:1fr; } }

.day-section { background:var(--surface-soft); }
.day-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(50px,8vw,110px); align-items:start; }
.day-copy { position:sticky; top:calc(var(--header-h) + 48px); }
.day-copy p { color:var(--ink-soft); font-size:18px; margin:20px 0 0; }
.soft-callout { margin-top:28px; padding:20px 22px; background:#fff; border:1px solid var(--jn-border-default); border-radius:var(--jn-radius-lg); box-shadow:var(--jn-shadow-sm); }
.soft-callout strong,.soft-callout span { display:block; }
.soft-callout strong { font-family:var(--jn-font-display); }
.soft-callout span { margin-top:5px; color:var(--ink-soft); font-size:14px; }
.timeline { display:grid; gap:14px; }
.timeline-item { display:grid; grid-template-columns:62px 1fr; gap:18px; padding:20px 22px; border-radius:22px; background:#fff; border:1px solid rgba(230,208,173,.85); box-shadow:var(--jn-shadow-sm); }
.timeline-item > span { width:48px; height:48px; border-radius:16px; display:grid; place-items:center; background:var(--green-soft); color:var(--jn-color-green); font-weight:900; }
.timeline-item strong { font-family:var(--jn-font-display); font-size:20px; }
.timeline-item p { margin:3px 0 0; color:var(--ink-soft); font-size:14px; }

.family-section { background:#fff; }
.family-card { display:grid; grid-template-columns:.78fr 1.22fr; min-height:560px; overflow:hidden; border-radius:38px; background:linear-gradient(135deg,#FDF6E4,#F7F2E9 55%,#EDF3E5); border:1px solid var(--jn-border-default); box-shadow:var(--jn-shadow-md); }
.family-art { position:relative; min-height:420px; overflow:hidden; }
.family-art::before { content:""; position:absolute; inset:auto -20% -20% -10%; height:55%; background:#B7C5A1; border-radius:55% 45% 0 0; transform:rotate(-3deg); }
.family-art::after { content:""; position:absolute; width:240px; height:240px; border-radius:50%; background:#fff9; left:50%; top:50%; transform:translate(-50%,-50%); }
.mini-sun { position:absolute; width:100px; height:100px; border-radius:50%; background:var(--jn-color-gold); right:15%; top:14%; box-shadow:0 0 0 20px rgba(248,177,32,.12); }
.mini-house { position:absolute; z-index:3; left:50%; top:52%; transform:translate(-50%,-50%); width:160px; height:160px; border-radius:38px; background:#fff; color:var(--jn-color-brown); display:grid; place-items:center; font:700 92px/1 var(--jn-font-display); box-shadow:var(--jn-shadow-lg); }
.leaf { position:absolute; z-index:4; width:80px; height:34px; border-radius:90% 0 90% 0; background:var(--jn-color-green-accent); }
.leaf-a { left:13%; bottom:24%; transform:rotate(24deg); }
.leaf-b { right:13%; bottom:30%; transform:rotate(-28deg); }
.family-copy { padding:clamp(42px,6vw,78px); align-self:center; }
.family-copy p { color:var(--ink-soft); font-size:18px; margin:22px 0 0; }
.check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:28px; }
.check-grid span { padding:12px 14px; border-radius:14px; background:#fff9; border:1px solid #EDE1CC; font-weight:700; font-size:14px; }

.faq-section { background:var(--jn-color-cream); }
.faq-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(44px,7vw,100px); }
.faq-intro p { color:var(--ink-soft); font-size:17px; }
.accordion { display:grid; gap:12px; }
details { background:#fff; border:1px solid var(--jn-border-default); border-radius:18px; overflow:hidden; box-shadow:var(--jn-shadow-sm); }
summary { list-style:none; cursor:pointer; padding:20px 22px; display:flex; justify-content:space-between; align-items:center; gap:20px; font-family:var(--jn-font-display); font-weight:600; font-size:19px; }
summary::-webkit-details-marker { display:none; }
summary span { color:var(--jn-color-green); font-size:24px; transition:transform var(--jn-motion-standard) var(--ease); }
details[open] summary span { transform:rotate(45deg); }
details p { margin:0; padding:0 22px 22px; color:var(--ink-soft); }
.faq-jump { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:28px; }
.faq-jump a { padding:10px 15px; border-radius:var(--jn-radius-pill); background:#fff; border:1px solid var(--jn-border-default); color:var(--jn-color-green); font-size:14px; font-weight:800; text-decoration:none; box-shadow:var(--jn-shadow-sm); }
.faq-jump a:hover { background:var(--green-soft); }
.faq-topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.faq-topic-card { display:flex; flex-direction:column; gap:5px; padding:22px 24px; border-radius:var(--jn-radius-lg); background:#fff; border:1px solid var(--jn-border-default); text-decoration:none; box-shadow:var(--jn-shadow-sm); transition:transform var(--jn-motion-slow) var(--ease),box-shadow var(--jn-motion-slow) var(--ease); }
.faq-topic-card strong { font-family:var(--jn-font-display); font-size:20px; }
.faq-topic-card span { color:var(--ink-soft); font-size:14px; }
.faq-topic-card:hover { transform:translateY(-4px); box-shadow:var(--jn-shadow-lg); }
.faq-page .prose > section + section { margin-top:56px; }

.contact-section { background:var(--jn-color-brown-dark); color:var(--jn-color-cream); overflow:hidden; }
.contact-section::before { content:""; position:absolute; width:520px; height:520px; border-radius:50%; background:rgba(243,88,77,.12); left:-220px; top:-180px; }
.contact-section .section-kicker { color:#D4E4BE; }
.contact-section .text-link { color:var(--jn-color-cream); }
.contact-section .text-link:hover { color:var(--jn-color-gold); }
/* .hero-lede sets a dark brown that is unreadable on the dark CTA band. */
.contact-section .hero-lede { color:#E8DED6; }
.contact-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(44px,7vw,96px); position:relative; z-index:2; align-items:center; }
.contact-section .contact-copy p { color:#E8DED6; font-size:18px; max-width:520px; }
.contact-meta { margin-top:30px; display:grid; gap:12px; }
.contact-meta div { display:grid; grid-template-columns:100px 1fr; gap:14px; }
.contact-meta span { color:var(--ink-soft); }
.contact-section .contact-meta span { color:#BFAFA4; }
.contact-meta strong { color:var(--jn-text-primary); }
.contact-section .contact-meta strong { color:#fff; }
.contact-meta a { color:var(--jn-color-green); font-weight:700; text-decoration:none; }
.contact-section .contact-meta a { color:#fff; }
.inquiry-card { padding:clamp(28px,4vw,44px); border-radius:30px; background:var(--jn-color-cream); color:var(--jn-color-brown-dark); box-shadow:0 26px 70px rgba(0,0,0,.22); }
.form-row { display:grid; gap:16px; }
.form-row.two { grid-template-columns:1fr 1fr; }
.inquiry-card label { display:grid; gap:7px; font-weight:800; font-size:14px; margin-bottom:16px; }
.inquiry-card input,.inquiry-card textarea { width:100%; border:1px solid var(--jn-border-default); background:#fff; color:var(--jn-color-brown-dark); border-radius:14px; padding:13px 14px; outline:0; transition:border-color var(--jn-motion-standard) var(--ease),box-shadow var(--jn-motion-standard) var(--ease); }
.inquiry-card textarea { resize:vertical; min-height:126px; }
.inquiry-card input:focus,.inquiry-card textarea:focus { border-color:var(--jn-color-blue); box-shadow:0 0 0 4px rgba(53,121,158,.12); }
.form-note { margin:12px 0 0; color:var(--ink-soft); font-size:12px; }
.hp-trap { position:absolute !important; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
#inquiry-status { margin:12px 0 0; font-size:14px; font-weight:700; }
#inquiry-status:empty { margin:0; }

.site-footer { padding:60px 0 30px; background:#241107; color:#F7EFEA; }
.footer-grid { display:grid; grid-template-columns:1.7fr .95fr .95fr .95fr; gap:44px; }
.footer-brand img { width:240px; filter:drop-shadow(0 6px 12px rgba(0,0,0,.18)); }
.footer-brand p { color:#CDBDB3; max-width:430px; }
.footer-brand .footer-note { margin-top:14px; font-size:14px; line-height:1.6; color:#A9958A; }
.footer-brand .footer-note a { color:#D9CAC1; }
.footer-grid > div:not(.footer-brand) { display:flex; flex-direction:column; gap:10px; }
.footer-grid strong { font-family:var(--jn-font-display); margin-bottom:5px; }
.footer-grid a { text-decoration:none; color:#D9CAC1; }
.footer-grid a:hover { color:#fff; }
.footer-bottom { margin-top:44px; padding-top:22px; border-top:1px solid #4C3428; display:flex; justify-content:space-between; gap:20px; color:#A9958A; font-size:13px; }
.footer-bottom a { color:#D9CAC1; text-decoration:none; }

.reveal { opacity:0; transform:translateY(20px); transition:opacity 700ms var(--ease),transform 700ms var(--ease); }
.phone-reveal { background:none; border:0; padding:0; color:inherit; font:inherit; font-weight:inherit; text-decoration:underline; cursor:pointer; }
.reveal.visible { opacity:1; transform:none; }
.reveal-delay { transition-delay:100ms; }
.reveal-1 { transition-delay:60ms; }.reveal-2 { transition-delay:120ms; }.reveal-3 { transition-delay:180ms; }

.ref-hero { background: linear-gradient(180deg, var(--jn-color-cream) 0%, #fff 100%); }
.ref-hero h1 { margin-inline: auto; }
.ref-hero .hero-lede { margin-inline: auto; }
.ref-hero-actions { justify-content: center; }

/* Interior pages (/about, /tuition, /infant-…, /indian-…, /home-…) */
.page-hero { padding-top: clamp(56px, 6vw, 88px); background: linear-gradient(180deg, var(--jn-color-cream) 0%, #fff 100%); }
/* Interior H1s are long and sentence-like — smaller than the homepage hero. */
.page-hero h1 { margin-top: 14px; max-width: 780px; font-size: clamp(32px, 5vw, 56px); }
.page-hero .hero-lede { margin-inline: auto; }
/* Hero and body share one width, so their left edges line up at every size. */
.prose { max-width: 780px; font-size: 18px; line-height: 1.7; }
.prose h2 { margin-top: 48px; font-size: clamp(28px, 2.6vw, 34px); }
.prose > h2:first-child { margin-top: 0; }
.prose p { margin-top: 16px; }
.prose .lede { font-size: 20px; line-height: 1.65; color: var(--ink-soft); }
.prose ul { margin: 18px 0 0; padding-left: 22px; display: grid; gap: 9px; }
.prose .check-grid { margin-top: 24px; }
/* Three price cards in the body column: two up, early opening full width. */
.prose .price-grid { margin-top: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.prose .price-grid > :last-child { grid-column: 1 / -1; min-height: 240px; }
@media (max-width: 760px) {
  .prose .price-grid { grid-template-columns: 1fr; }
  .prose .price-grid > :last-child { grid-column: auto; }
}
/* Inline body links read as links, not as emphasised text. */
.intro a, .family-copy a, .prose a { color: var(--jn-color-green); font-weight: 700; }

/* Homepage tuition band and service-area index. */
.price-band { background: linear-gradient(180deg, var(--jn-color-cream) 0%, #fff 100%); }
.price-band-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,6vw,80px); align-items:center; }
.price-band h2 { margin-top:10px; font-size:clamp(36px,4.2vw,54px); }
.price-band p { color:var(--ink-soft); font-size:18px; }
.price-band .text-link { display:inline-block; margin-top:22px; }
.price-cards { display:grid; gap:14px; }
.price-card { display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; padding:22px 24px; border-radius:var(--jn-radius-lg); background:#fff; border:1px solid var(--jn-border-default); box-shadow:var(--jn-shadow-sm); }
.price-card strong { font:700 clamp(34px,4vw,44px)/1 var(--jn-font-display); color:var(--jn-color-brown-dark); }
.price-card .price-label { display:block; font-weight:800; font-size:15px; color:var(--jn-text-primary); }
.price-card span { display:block; margin-top:2px; font-size:14px; color:var(--ink-soft); }
.price-card.highlight { background:var(--green-soft); border-color:#C9DCA9; }

.areas-section { background:var(--surface-soft); }
.area-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.area-card { display:block; padding:22px 24px; border-radius:var(--jn-radius-lg); background:#fff; border:1px solid var(--jn-border-default); text-decoration:none; box-shadow:var(--jn-shadow-sm); transition:transform var(--jn-motion-slow) var(--ease),box-shadow var(--jn-motion-slow) var(--ease); }
.area-card strong { font-family:var(--jn-font-display); font-size:20px; }
.area-card span { display:block; margin-top:4px; color:var(--ink-soft); font-size:14px; }
.area-card:hover { transform:translateY(-4px); box-shadow:var(--jn-shadow-lg); }

/* Prose media, price tables, and sourced callouts on guide pages. */
.prose-figure { margin:30px 0 0; }
.prose-figure img { width:100%; height:auto; border-radius:var(--jn-radius-xl); border:1px solid var(--jn-border-default); box-shadow:var(--jn-shadow-md); }
.prose-figure figcaption { margin-top:10px; font-size:14px; color:var(--ink-soft); }
.prose h3 { margin-top:32px; font-size:22px; }
.table-wrap { overflow-x:auto; }
.market-table { width:100%; border-collapse:collapse; margin-top:22px; font-size:16px; }
.market-table th, .market-table td { text-align:left; padding:14px 12px; border-bottom:1px solid var(--jn-border-default); vertical-align:top; }
.market-table th { font-family:var(--jn-font-display); font-size:17px; background:var(--green-soft); }
.market-table td:last-child { white-space:nowrap; }
.callout { margin:28px 0 0; padding:22px 24px; background:var(--gold-soft); border-left:4px solid var(--jn-color-gold); border-radius:0 var(--jn-radius-lg) var(--jn-radius-lg) 0; }
.callout strong { display:block; font-family:var(--jn-font-display); font-size:20px; }
.callout p { margin:6px 0 0; color:var(--jn-text-primary); }
.source-list { margin:18px 0 0; padding-left:22px; font-size:14px; color:var(--ink-soft); }
.source-list li { margin-top:6px; }
.breadcrumbs { margin-bottom:18px; font-size:14px; color:var(--ink-soft); }
.breadcrumbs ol { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0; padding:0; list-style:none; text-align:left; }
.breadcrumbs li { display:flex; align-items:center; gap:8px; }
.breadcrumbs li + li::before { content:"\203A"; color:var(--ink-soft); }
.breadcrumbs a { color:var(--jn-color-green); font-weight:700; text-decoration:none; }
.breadcrumbs a:hover { text-decoration:underline; }
.breadcrumbs [aria-current="page"] { font-weight:700; }

@media (max-width: 900px) { .price-band-grid { grid-template-columns:1fr; } .area-grid { grid-template-columns:1fr 1fr; } }
@media (max-width: 760px) { .area-grid { grid-template-columns:1fr; } }

.ref-rewards { background: #fff; }
.reward-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.reward-card { padding: clamp(28px, 4vw, 44px); border-radius: var(--jn-radius-xl); border: 1px solid var(--jn-border-default); box-shadow: var(--jn-shadow-sm); }
.reward-referrer { background: var(--green-soft); }
.reward-family { background: var(--gold-soft); }
.reward-amount { margin: 12px 0 0; font: 700 clamp(56px, 7vw, 84px)/1 var(--jn-font-display); color: var(--jn-color-brown-dark); }
.reward-amount span { font-size: .35em; color: var(--ink-soft); }
.reward-sub { margin: 8px 0 0; font-weight: 800; color: var(--ink-soft); }
.reward-list { margin: 22px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.reward-list li { padding: 12px 14px; border-radius: 14px; background: #fff9; border: 1px solid #EDE1CC; }

.ref-steps-section { background: var(--surface-soft); }
.ref-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }

.terms-list { margin: 0 0 24px; padding: 22px 22px 22px 42px; background: #fff; border: 1px solid var(--jn-border-default); border-radius: 18px; box-shadow: var(--jn-shadow-sm); display: grid; gap: 10px; }
.terms-list li { color: var(--jn-color-brown-dark); }

#refer .shell { position: relative; z-index: 2; }
#refer h2 { margin-top: 10px; font-size: clamp(36px, 4.2vw, 54px); }
.ref-cta-copy { color: #E8DED6; font-size: 18px; max-width: 620px; margin: 20px auto 0; }
.ref-contact-actions { margin-top: 28px; display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }
.ref-text-button { background: var(--jn-color-cream); color: var(--jn-color-brown-dark); }
.ref-text-button:hover { background: var(--gold-soft); }
.ref-cta-note { margin: 18px 0 0; color: #BFAFA4; font-size: 14px; }
.ref-cta-note strong { color: #fff; }

.site-nav a[aria-current="page"] { color: var(--jn-color-green); }
.site-nav a[aria-current="page"]::after { right: 0; }

.legal-hero { background: linear-gradient(180deg, var(--jn-color-cream) 0%, #fff 100%); padding-bottom: clamp(40px, 5vw, 64px); }
.legal-hero .shell { max-width: 780px; }
.legal-hero h1 { max-width: 780px; font-size: clamp(44px, 5.6vw, 70px); }
.legal-hero .hero-lede { max-width: 680px; }
.legal-meta { margin: 24px 0 0; color: var(--ink-soft); font-size: 14px; font-weight: 700; }
.legal-body { background: #fff; padding-top: clamp(44px, 6vw, 72px); }
.legal-prose { max-width: 780px; margin-inline: auto; font-size: 18px; line-height: 1.7; }
.legal-prose > section { margin-top: 48px; }
.legal-prose > section > h2 { scroll-margin-top: calc(var(--header-h) + 24px); font-size: clamp(28px, 3vw, 36px); }
.legal-prose h3 { margin-top: 28px; font-size: 21px; }
.legal-prose p { margin: 14px 0 0; color: var(--ink-soft); }
.legal-prose ul { margin: 16px 0 0; padding-left: 22px; display: grid; gap: 9px; color: var(--ink-soft); }
.legal-prose li::marker { color: var(--jn-color-green); }
.legal-prose strong { color: var(--jn-text-primary); }
.legal-prose a { color: var(--jn-color-green); font-weight: 700; }
.legal-summary { padding: 24px 26px; background: var(--green-soft); border-left: 4px solid var(--jn-color-green); border-radius: 0 var(--jn-radius-lg) var(--jn-radius-lg) 0; }
.legal-summary strong { display: block; font-family: var(--jn-font-display); font-size: 21px; }
.legal-summary p { margin: 7px 0 0; color: var(--jn-text-primary); }
.legal-contact-card { margin-top: 20px; padding: 24px; background: var(--jn-color-cream); border: 1px solid var(--jn-border-default); border-radius: var(--jn-radius-lg); }
.legal-contact-card p { margin: 0; }
.legal-contact-card p + p { margin-top: 6px; }

@media (max-width: 1050px) {
  .nav-cta { display:none; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-copy { text-align:center; }
  .hero-lede,.trust-row { margin-left:auto; margin-right:auto; }
  .hero-actions { justify-content:center; }
  .hero-card { min-height:500px; max-width:760px; margin-inline:auto; }
  .value-grid { grid-template-columns:repeat(2,1fr); }
  .day-grid,.faq-grid,.contact-grid { grid-template-columns:1fr; }
  .day-copy { position:static; }
  .family-card { grid-template-columns:1fr; }
  .family-art { min-height:340px; }
  .ref-steps { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  :root { --header-h: 90px; }
  .shell { width:min(calc(100% - 28px),var(--page-max)); }
  .brand { width:180px; height:74px; }
  .menu-toggle { margin-left:auto; display:grid; place-content:center; gap:5px; width:44px; height:44px; border:0; border-radius:14px; background:#fff; box-shadow:var(--jn-shadow-sm); }
  .menu-toggle span { width:20px; height:2px; background:var(--jn-color-brown-dark); border-radius:2px; transition:transform 180ms var(--ease),opacity 180ms var(--ease); }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .site-nav { position:absolute; left:14px; right:14px; top:calc(100% + 8px); display:none; flex-direction:column; align-items:stretch; gap:2px; padding:12px; background:var(--jn-color-cream); border:1px solid var(--jn-border-default); border-radius:20px; box-shadow:var(--jn-shadow-lg); }
  .site-nav.open { display:flex; }
  .site-nav a { padding:12px 14px; border-radius:12px; }
  .site-nav a:hover { background:var(--green-soft); }
  .site-nav a::after { display:none; }
  .hero { min-height:auto; padding-top:42px; }
  h1 { font-size:clamp(46px,13.5vw,68px); }
  .hero-lede { font-size:18px; }
  .trust-row { grid-template-columns:1fr; max-width:500px; }
  .hero-card { min-height:420px; padding:24px; border-radius:34px; }
  .hero-note { left:18px; right:18px; bottom:18px; }
  .sun { width:68px; height:68px; right:28px; top:30px; }
  .section-heading { display:block; }
  .section-heading > p { margin-top:16px; }
  .value-grid { grid-template-columns:1fr; }
  .value-card { min-height:280px; }
  .check-grid { grid-template-columns:1fr; }
  .form-row.two { grid-template-columns:1fr; gap:0; }
  .faq-topic-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:34px; }
  .footer-brand { grid-column:1 / -1; }
  .footer-bottom { flex-direction:column; }
  .reward-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .section { padding:68px 0; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-actions .button,.hero-actions .text-link { width:100%; text-align:center; }
  .hero-card { min-height:380px; }
  .hero-note { align-items:flex-start; }
  .hero-note .heart { flex-basis:36px; width:36px; height:36px; }
  .timeline-item { grid-template-columns:48px 1fr; padding:17px; }
  .timeline-item > span { width:40px; height:40px; border-radius:13px; }
  .footer-grid { grid-template-columns:1fr; }
  .ref-contact-actions { flex-direction: column; align-items: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.001ms !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; }
  .reveal { opacity:1; transform:none; }
}
