
:root{
  --navy:#082c55;
  --navy-deep:#061f3c;
  --gold:#c89213;
  --gold-light:#e8bd43;
  --forest:#165f3c;
  --cream:#fbf5e8;
  --paper:#fffaf0;
  --ink:#192d46;
  --muted:#5d6b7b;
  --border:#dfd1b2;
  --purple:#6b4388;
  --pink:#c84d6d;
  --shadow:0 16px 36px rgba(22,42,62,.10);
}

/* Inner pages share the approved homepage header/navigation. */
.inner-header .nav-shell{min-height:92px}
.inner-header .site-nav{margin-left:0}

.inner-hero{
  min-height:500px;
  position:relative;
  overflow:hidden;
  background:var(--cream);
}
.inner-hero-art{
  position:absolute;
  inset:0;
  background:var(--cream);
}
.inner-hero-art img{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  height:100%;
  width:auto;
  max-width:none;
}
.inner-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,
    rgba(255,250,240,1) 0%,
    rgba(255,250,240,.98) 25%,
    rgba(255,250,240,.91) 38%,
    rgba(255,250,240,.55) 52%,
    rgba(255,250,240,.12) 66%,
    rgba(255,250,240,0) 78%);
}
.inner-logo{
  position:absolute;
  z-index:8;
  left:max(22px,calc((100vw - 1480px)/2));
  top:26px;
  width:265px;
  filter:drop-shadow(0 12px 22px rgba(13,40,66,.16));
}
.inner-logo img{width:100%;height:auto}
.inner-hero-shell{
  position:relative;
  z-index:3;
  min-height:500px;
  display:grid;
  grid-template-columns:285px minmax(460px,640px) 1fr;
  align-items:center;
}
.inner-hero-copy{grid-column:2;padding:58px 0 42px}
.inner-hero-copy h1{
  margin:0 0 16px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(3rem,4.2vw,5rem);
  line-height:.98;
  color:var(--navy);
  letter-spacing:-.025em;
}
.inner-hero-copy h1 span{color:var(--forest)}
.theme-membership .inner-hero-copy h1 span,
.theme-support .inner-hero-copy h1 span{color:var(--gold)}
.theme-community .inner-hero-copy h1 span,
.theme-contact .inner-hero-copy h1 span{color:var(--forest)}
.inner-hero-copy p{
  max-width:620px;
  font-size:1.05rem;
  color:#31445b;
}
.section-kicker{
  text-transform:uppercase;
  color:var(--forest);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.11em;
  margin-bottom:8px;
}
.section-kicker.light{color:#f4d575}

.story-section,.tchart-section,.schedule-page-section,.membership-section,.community-section,.support-section,.contact-section,.partners-section{
  padding:76px 0;
  background:linear-gradient(180deg,#fffaf0,#fbf5e8);
}
.parchment-section{
  padding:72px 0;
  background:
    linear-gradient(rgba(255,250,240,.94),rgba(255,250,240,.94)),
    repeating-linear-gradient(0deg,rgba(120,93,45,.025) 0 1px,transparent 1px 5px);
  border-top:1px solid rgba(198,157,63,.15);
  border-bottom:1px solid rgba(198,157,63,.15);
}
.about-intro{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:60px;
  align-items:center;
}
.about-art{
  min-height:470px;
  display:flex;
  justify-content:center;
  align-items:flex-end;
}
.about-art img{
  width:min(100%,600px);
  max-height:520px;
  object-fit:contain;
  filter:drop-shadow(0 18px 22px rgba(17,41,62,.12));
}
.about-copy h2,.story-columns h2,.support-grid h2,.contact-intro h2,.partners-grid h2{
  margin:0 0 18px;
  font-family:Georgia,'Times New Roman',serif;
  color:var(--navy);
  font-size:clamp(2.1rem,3.5vw,3.25rem);
  line-height:1.08;
}
.about-copy p,.story-columns p,.support-grid p,.contact-intro p,.partners-grid p{font-size:1.03rem;color:#34475d}
.story-quote{
  margin-top:24px;
  padding:20px 22px;
  border-left:4px solid var(--gold);
  background:#fff;
  border-radius:0 16px 16px 0;
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.18rem;
  font-style:italic;
  color:var(--forest);
}
.story-columns{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:48px;
  align-items:center;
}
.story-columns.reverse{grid-template-columns:.75fr 1.25fr}
.storybook-card{
  padding:30px;
  border:1px solid var(--border);
  border-radius:24px;
  background:#fffaf0;
  box-shadow:var(--shadow);
}
.green-card{background:linear-gradient(135deg,#f3f8ef,#fffaf0)}
.card-icon{font-size:2.6rem}
.storybook-card h3{
  margin:8px 0 10px;
  font-family:Georgia,'Times New Roman',serif;
  color:var(--forest);
  font-size:1.55rem;
}
.purpose-banner{
  padding:68px 0;
  text-align:center;
  color:white;
  background:
    linear-gradient(rgba(6,34,63,.86),rgba(6,34,63,.86)),
    url('assets/hero-scene.jpg') center 42%/cover no-repeat;
}
.purpose-banner h2{
  margin:0 0 14px;
  color:white;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(2.4rem,4vw,4rem);
}
.purpose-banner p{max-width:820px;margin:0 auto 24px;color:#edf4f8;font-size:1.05rem}
.button-gold{background:var(--gold);color:#132640}

/* Classes */
.section-heading{text-align:center;max-width:850px;margin:0 auto 34px}
.section-heading h2{
  margin:0 0 8px;
  font-family:Georgia,'Times New Roman',serif;
  color:var(--navy);
  font-size:clamp(2rem,3.4vw,3.2rem);
}
.section-heading p{color:var(--muted)}
.class-table{
  border:1px solid var(--border);
  border-radius:26px;
  overflow:hidden;
  background:#fffaf0;
  box-shadow:var(--shadow);
}
.class-row{
  display:grid;
  grid-template-columns:180px 190px 1fr;
  min-height:190px;
  border-bottom:1px solid var(--border);
}
.class-row:last-child{border-bottom:0}
.class-day{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:linear-gradient(135deg,#0b3c6c,#082c55);
  color:white;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.class-day strong{font-family:Georgia,'Times New Roman',serif;font-size:1.45rem}
.class-day span{margin-top:5px;color:#bce1d2;font-weight:700}
.class-row:nth-child(2) .class-day{background:linear-gradient(135deg,#17694a,#165f3c)}
.class-row:nth-child(3) .class-day{background:linear-gradient(135deg,#b64262,#8e3550)}
.class-row:nth-child(4) .class-day{background:linear-gradient(135deg,#b27611,#8a5b0b)}
.class-row:nth-child(5) .class-day{background:linear-gradient(135deg,#684384,#49305f)}
.class-icon{display:flex;align-items:center;justify-content:center;padding:20px;background:#fffdf8}
.class-icon img{max-width:145px;max-height:145px;object-fit:contain}
.class-description{padding:28px 34px}
.class-description h3{margin:0 0 8px;color:var(--navy);font-family:Georgia,'Times New Roman',serif;font-size:1.7rem}
.class-description p{margin:0 0 12px;color:#34475d}
.class-description a{color:var(--forest);font-weight:800}
.flexible-banner{
  margin-top:28px;
  padding:28px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  border-radius:24px;
  background:linear-gradient(135deg,#f2ead3,#fffaf0);
  border:1px solid var(--border);
}
.flexible-banner h2{margin:0 0 6px;font-family:Georgia,'Times New Roman',serif;color:var(--navy)}

/* Schedule */
.schedule-frame{
  max-width:1040px;
  margin:0 auto;
  padding:14px;
  background:white;
  border:1px solid var(--border);
  border-radius:26px;
  box-shadow:var(--shadow);
}
.schedule-frame img{width:100%;height:auto;border-radius:16px}
.schedule-notes{
  max-width:1040px;
  margin:30px auto 0;
  display:flex;
  justify-content:space-between;
  gap:36px;
  align-items:center;
  padding:26px 30px;
  background:#fffaf0;
  border:1px solid var(--border);
  border-radius:22px;
}
.schedule-notes h2{margin:0 0 8px;font-family:Georgia,'Times New Roman',serif;color:var(--navy)}

/* Membership */
.membership-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start}
.membership-benefits h2{margin:0 0 18px;font-family:Georgia,'Times New Roman',serif;color:var(--navy);font-size:2.6rem}
.benefit-list{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.benefit-list li{display:flex;gap:12px;align-items:flex-start;font-size:1.04rem}
.benefit-list span{width:27px;height:27px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--forest);color:white;font-weight:900;flex:0 0 auto}
.complement-card{margin-top:26px;padding:24px 26px;border:1px solid var(--border);border-radius:20px;background:#fffaf0}
.complement-card h3{margin:0 0 8px;color:var(--forest);font-family:Georgia,'Times New Roman',serif}
.royal-price-card,.support-card{
  padding:38px;
  text-align:center;
  color:white;
  border-radius:28px;
  background:linear-gradient(145deg,#0b3c6c,#061f3c);
  box-shadow:0 18px 40px rgba(6,31,60,.22);
}
.crown-mark{font-size:3.4rem;color:var(--gold-light);line-height:1}
.price{font-family:Georgia,'Times New Roman',serif;font-size:5.2rem;line-height:1;margin:8px 0 0}
.per-month{color:#f0cd72;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:1.15rem;margin-bottom:20px}
.royal-price-card p,.support-card p{color:#e8eff5}
.membership-values{padding:34px 0 70px;background:#fbf5e8}
.value-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.value-grid article{text-align:center;padding:22px 14px;border-top:1px solid var(--border)}
.value-grid article>div{font-size:2.2rem}
.value-grid h3{margin:8px 0 5px;color:var(--navy);font-family:Georgia,'Times New Roman',serif}
.value-grid p{margin:0;color:var(--muted);font-size:.9rem}

/* Community */
.community-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.community-card{overflow:hidden;border:1px solid var(--border);border-radius:24px;background:#fffaf0;box-shadow:var(--shadow)}
.community-art{height:210px;background-image:url('assets/hero-scene.jpg');background-size:210% auto;background-repeat:no-repeat}
.service-card .community-art{background-position:12% 75%}
.fieldtrip-card .community-art{background-position:58% 32%}
.friendship-card .community-art{background-position:92% 78%}
.community-card-body{padding:24px}
.community-card-body h3{margin:0 0 8px;color:var(--forest);font-family:Georgia,'Times New Roman',serif;font-size:1.5rem}
.community-values-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:46px;align-items:center}
.community-manifesto h2{font-family:Georgia,'Times New Roman',serif;color:var(--navy);font-size:2.4rem;line-height:1.08}
.mini-values{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.mini-values article{padding:20px;border:1px solid var(--border);border-radius:18px;background:#fff}
.mini-values span{font-size:1.8rem;color:var(--gold)}
.mini-values h3{margin:6px 0;color:var(--navy);font-family:Georgia,'Times New Roman',serif}
.mini-values p{margin:0;color:var(--muted);font-size:.92rem}

/* Support */
.support-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:start}
.support-reasons{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px}
.support-reasons article{padding:20px;border:1px solid var(--border);border-radius:18px;background:#fffaf0}
.support-reasons span{font-size:2rem}
.support-reasons h3{margin:7px 0;color:var(--forest);font-family:Georgia,'Times New Roman',serif}
.support-reasons p{margin:0;font-size:.92rem}
.support-card h2{margin:8px 0 14px;color:white;font-family:Georgia,'Times New Roman',serif;font-size:2rem}
.support-small{font-size:.92rem}

/* Contact + partners */
.contact-grid,.partners-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:start}
.contact-email{display:flex;gap:14px;align-items:center;margin:24px 0}
.contact-email span{width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--forest);color:white;font-size:1.25rem}
.contact-email a{display:block;color:var(--navy);font-weight:800;margin-top:2px}
.contact-note{padding:18px 20px;border-radius:16px;background:#f0eedc;border:1px solid #d9d4b3}
.royal-form{padding:30px;border:1px solid var(--border);border-radius:24px;background:rgba(255,255,255,.82);box-shadow:var(--shadow)}
.royal-form h2{margin:0 0 20px;color:var(--navy);font-family:Georgia,'Times New Roman',serif;font-size:2rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid.one-column{grid-template-columns:1fr}
.form-grid .full{grid-column:1/-1}
label{display:block;margin-bottom:5px;color:var(--navy);font-weight:800}
input,select,textarea{width:100%;padding:13px 14px;border:1px solid #cfc5b3;border-radius:11px;background:#fff;font:inherit}
textarea{min-height:130px;resize:vertical}
.website-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-button{border:0;cursor:pointer}
.form-message{margin-top:14px;padding:12px 14px;border-radius:12px}
.form-message[hidden]{display:none!important}
.form-message.success{background:#e6f4e7;border:1px solid #9bc59f;color:#215d32}
.form-message.error{background:#fff0ee;border:1px solid #e1a19a;color:#8b2e24}
.partner-list{padding-left:0;list-style:none;display:grid;gap:11px}
.partner-list li:before{content:"✦";color:var(--gold);margin-right:10px}

/* Footer */
.inner-footer{margin-top:0}
.footer-links{
  padding:22px 0;
  display:grid;
  grid-template-columns:1.25fr 1fr .75fr;
  gap:30px;
  align-items:center;
  color:#c8d5e2;
  border-top:1px solid rgba(255,255,255,.10);
}
.footer-links strong{color:white}
.footer-links div:nth-child(2){display:flex;gap:16px;flex-wrap:wrap}
.footer-links a:hover{color:#f0c65a}

/* Responsive */
@media(max-width:1200px){
  .inner-logo{width:225px;top:34px}
  .inner-hero-shell{grid-template-columns:245px minmax(430px,560px) 1fr}
  .class-row{grid-template-columns:150px 160px 1fr}
}
@media(max-width:980px){
  .inner-header .nav-shell{min-height:78px}
  .inner-header .site-nav{top:78px}
  .inner-hero{min-height:610px}
  .inner-logo{left:50%;top:18px;transform:translateX(-50%);width:215px}
  .inner-hero-shell{display:block;min-height:610px;padding-top:230px}
  .inner-hero-copy{padding:30px 0 70px;max-width:650px}
  .inner-hero-art img{right:-18%}
  .inner-hero-overlay{background:linear-gradient(90deg,rgba(255,250,240,.97) 0%,rgba(255,250,240,.90) 55%,rgba(255,250,240,.38) 100%)}
  .about-intro,.story-columns,.story-columns.reverse,.membership-grid,.community-values-grid,.support-grid,.contact-grid,.partners-grid{grid-template-columns:1fr}
  .about-art{min-height:360px}
  .class-row{grid-template-columns:125px 145px 1fr}
  .community-cards{grid-template-columns:1fr}
  .community-art{background-size:130% auto}
  .value-grid{grid-template-columns:repeat(3,1fr)}
  .footer-links{grid-template-columns:1fr;text-align:center}
  .footer-links div:nth-child(2){justify-content:center}
}
@media(max-width:650px){
  .inner-header .nav-shell{min-height:84px}
  .inner-header .site-nav{top:84px}
  .inner-logo{top:-76px;left:14px;transform:none;width:140px;z-index:50}
  .inner-hero{min-height:680px;overflow:visible}
  .inner-hero-shell{min-height:680px;padding-top:86px}
  .inner-hero-copy{padding:32px 0 300px}
  .inner-hero-copy h1{font-size:clamp(2.55rem,11vw,3.6rem)}
  .inner-hero-art img{width:100%;height:auto;right:0;top:auto;bottom:0;transform:none}
  .inner-hero-overlay{background:linear-gradient(180deg,rgba(255,250,240,.99) 0%,rgba(255,250,240,.97) 46%,rgba(255,250,240,.78) 65%,rgba(255,250,240,.13) 100%)}
  .story-section,.tchart-section,.schedule-page-section,.membership-section,.community-section,.support-section,.contact-section,.partners-section,.parchment-section{padding:52px 0}
  .class-row{grid-template-columns:95px 1fr;grid-template-areas:"day icon" "desc desc"}
  .class-day{grid-area:day;padding:14px 8px}
  .class-day strong{font-size:1.05rem}
  .class-icon{grid-area:icon;padding:12px}
  .class-icon img{max-height:100px}
  .class-description{grid-area:desc;padding:22px}
  .flexible-banner,.schedule-notes{flex-direction:column;align-items:flex-start}
  .value-grid{grid-template-columns:1fr 1fr}
  .mini-values,.support-reasons{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .form-grid .full{grid-column:auto}
  .royal-form{padding:22px}
}

/* ============================================================
   V2 HERO READABILITY FIX
   Keep the scenic artwork visible, but maintain a solid parchment
   veil behind all introductory hero copy so paragraphs never fade
   into the mountains/castle.
   ============================================================ */

.inner-hero-overlay {
  background:
    linear-gradient(
      90deg,
      rgba(255,250,240,1) 0%,
      rgba(255,250,240,.99) 30%,
      rgba(255,250,240,.97) 47%,
      rgba(255,250,240,.88) 58%,
      rgba(255,250,240,.48) 69%,
      rgba(255,250,240,.10) 79%,
      rgba(255,250,240,0) 88%
    );
}

.inner-hero-copy p {
  color: #20364f;
  font-weight: 500;
}

@media (max-width: 1200px) and (min-width: 981px) {
  .inner-hero-overlay {
    background:
      linear-gradient(
        90deg,
        rgba(255,250,240,1) 0%,
        rgba(255,250,240,.99) 36%,
        rgba(255,250,240,.95) 55%,
        rgba(255,250,240,.72) 68%,
        rgba(255,250,240,.22) 82%,
        rgba(255,250,240,0) 100%
      );
  }
}

@media (max-width: 980px) and (min-width: 651px) {
  .inner-hero-overlay {
    background:
      linear-gradient(
        90deg,
        rgba(255,250,240,.99) 0%,
        rgba(255,250,240,.98) 58%,
        rgba(255,250,240,.80) 74%,
        rgba(255,250,240,.30) 90%,
        rgba(255,250,240,.08) 100%
      );
  }
}

@media (max-width: 650px) {
  .inner-hero-overlay {
    background:
      linear-gradient(
        180deg,
        rgba(255,250,240,1) 0%,
        rgba(255,250,240,.99) 48%,
        rgba(255,250,240,.93) 62%,
        rgba(255,250,240,.56) 76%,
        rgba(255,250,240,.12) 100%
      );
  }
}
