/* ============================================================================
   MT. ZION BIBLE SCHOOL - shared styles for every page.
   Edit page WORDS in the .html files. Edit the LOOK (colors, fonts) here.
   ========================================================================== */

@font-face{
  font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('fonts/cormorant-garamond.woff2') format('woff2');
}
@font-face{
  font-family:'Libre Franklin';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('fonts/libre-franklin.woff2') format('woff2');
}

:root{
  --navy:#0f2a48;
  --navy-deep:#0a1d34;
  --ink:#1b2432;
  --slate:#4f6076;
  --parchment:#f7f2e8;
  --parchment-2:#f1ead9;
  --gold:#c19a3e;
  --gold-soft:#d9be7e;
  --gold-ink:#8a6a22;
  --line:#e0d6bf;
  --white:#fffdf8;
  --pad:clamp(1.25rem,5vw,4rem);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Libre Franklin','Helvetica Neue',Arial,sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;overflow-x:hidden;font-family:var(--sans);color:var(--ink);background:var(--parchment);
  font-size:clamp(1rem,0.55vw + 0.9rem,1.075rem);line-height:1.7;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.05;text-wrap:balance;margin:0;}

.wrap{max-width:1120px;margin-inline:auto;padding-inline:var(--pad);}
.kicker{font-family:var(--sans);font-weight:700;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-ink);margin:0 0 .9rem;}
.section-title{font-size:clamp(2rem,4.2vw,2.85rem);color:var(--navy);margin-bottom:1.15rem;}
.prose p{color:#2b3543;font-size:1.12rem;line-height:1.75;max-width:64ch;margin:0 0 1.15rem;}
.prose p:last-child{margin-bottom:0;}
section{padding-block:clamp(3.5rem,8vw,6rem);}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--sans);font-weight:600;
  font-size:.85rem;letter-spacing:.05em;padding:.85rem 1.6rem;border-radius:2px;text-decoration:none;
  cursor:pointer;border:1.5px solid transparent;
  transition:transform .15s ease, background .2s ease, color .2s ease, box-shadow .2s ease;}
.btn-gold{background:var(--gold);color:var(--navy-deep);}
.btn-gold:hover{background:var(--gold-soft);transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(0,0,0,.55);}
.btn-ghost{background:transparent;color:var(--parchment);border-color:rgba(217,190,126,.55);}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-soft);transform:translateY(-2px);}
.btn-navy{background:var(--navy);color:var(--parchment);}
.btn-navy:hover{background:var(--navy-deep);transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(0,0,0,.4);}
a:focus-visible,.btn:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:2px;}

/* ================= HEADER / NAV ================= */
.site-head{position:sticky;top:0;z-index:40;background:rgba(15,42,72,.97);
  backdrop-filter:blur(6px);border-bottom:1px solid rgba(217,190,126,.25);}
.site-head .wrap{display:flex;align-items:center;gap:1rem;padding-top:.7rem;padding-bottom:.7rem;}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--parchment);margin-right:auto;}
.brand img{width:38px;height:auto;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));}
.brand b{font-family:var(--serif);font-weight:600;font-size:1.15rem;line-height:1;}
.brand small{display:block;font-family:var(--sans);font-weight:500;font-size:.6rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-soft);margin-top:.2rem;}
.nav{display:flex;gap:1.35rem;align-items:center;}
.nav a{color:var(--parchment);text-decoration:none;font-size:.84rem;font-weight:500;letter-spacing:.02em;
  opacity:.86;transition:opacity .2s,color .2s;white-space:nowrap;}
.nav a:hover{opacity:1;color:var(--gold-soft);}
.nav a.current{opacity:1;color:var(--gold-soft);}
.nav a.nav-donate{border:1.5px solid var(--gold);color:var(--gold-soft);padding:.45rem .95rem;border-radius:2px;opacity:1;}
.nav a.nav-donate:hover{background:var(--gold);color:var(--navy-deep);}
.nav-toggle{display:none;background:none;border:1.5px solid rgba(217,190,126,.5);border-radius:3px;
  color:var(--parchment);width:44px;height:44px;cursor:pointer;align-items:center;justify-content:center;}
.nav-toggle svg{width:20px;height:20px;}

@media (max-width:900px){
  .nav-toggle{display:inline-flex;}
  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
    gap:0;background:var(--navy-deep);border-bottom:1px solid rgba(217,190,126,.25);
    max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .site-head.open .nav{max-height:70vh;}
  .nav a{display:flex;align-items:center;min-height:48px;padding:.7rem var(--pad);
    border-top:1px solid rgba(217,190,126,.12);opacity:.95;font-size:.98rem;}
  .nav a.nav-donate{border:0;color:var(--gold-soft);border-top:1px solid rgba(217,190,126,.12);border-radius:0;}
  .nav a.nav-donate:hover{background:rgba(193,154,62,.12);color:var(--gold-soft);}
}
@media (max-width:520px){
  .brand img{width:32px;} .brand b{font-size:1.02rem;} .brand small{display:none;}
}

/* ================= HOME HERO (photo) ================= */
.hero{position:relative;overflow:hidden;color:var(--parchment);min-height:min(90vh,820px);
  display:flex;flex-direction:column;justify-content:flex-end;padding-block:clamp(3rem,7vw,5rem);
  background:
    linear-gradient(180deg, rgba(10,29,52,.30) 0%, rgba(10,29,52,.14) 34%, rgba(10,29,52,.86) 100%),
    linear-gradient(90deg, rgba(10,29,52,.78) 0%, rgba(10,29,52,.30) 52%, rgba(10,29,52,0) 100%),
    url('hero.webp') center 40% / cover no-repeat;}
.hero::after{content:"";position:absolute;inset:0 0 auto 0;height:140px;pointer-events:none;
  background:linear-gradient(180deg, rgba(10,29,52,.55), transparent);}
.hero .wrap{position:relative;z-index:1;width:100%;}
.hero-inner{max-width:640px;}
.hero .location{font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold-soft);margin:0 0 1rem;}
.hero h1{font-size:clamp(2.4rem,8.5vw,5.4rem);line-height:1;letter-spacing:.005em;margin:0 0 1.1rem;
  color:var(--white);overflow-wrap:break-word;text-shadow:0 2px 30px rgba(6,16,30,.5);}
.hero .lede{max-width:46ch;margin:0 0 2rem;color:#ece6d9;font-size:clamp(1.05rem,1.3vw,1.2rem);
  line-height:1.65;text-shadow:0 1px 16px rgba(6,16,30,.45);}
.hero .cta-row{display:flex;gap:.9rem;flex-wrap:wrap;}

/* ================= SUBPAGE HERO ================= */
.subhero{position:relative;color:var(--parchment);overflow:hidden;
  min-height:min(58vh,500px);display:flex;flex-direction:column;justify-content:flex-end;
  padding-block:clamp(2.5rem,6vw,4rem);
  background:linear-gradient(180deg, rgba(10,29,52,.5), rgba(10,29,52,.72)), var(--navy);}
.subhero.has-photo{
  background-color:var(--navy);
  background-image:
    linear-gradient(178deg, rgba(10,29,52,.14) 0%, rgba(10,29,52,.22) 44%, rgba(10,29,52,.80) 100%),
    linear-gradient(90deg, rgba(10,29,52,.5) 0%, rgba(10,29,52,.06) 60%, rgba(10,29,52,0) 100%),
    var(--photo);
  background-size:cover, cover, cover;
  background-position:center, center, var(--pos, center 45%);
  background-repeat:no-repeat;}
.subhero::after{content:"";position:absolute;inset:0 0 auto 0;height:130px;pointer-events:none;
  background:linear-gradient(180deg, rgba(10,29,52,.5), transparent);}
.subhero .wrap{position:relative;z-index:1;width:100%;}
.subhero .crumbs{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);
  margin:0 0 1rem;font-weight:600;}
.subhero h1{font-size:clamp(2.5rem,6vw,4.2rem);color:var(--white);margin:0;max-width:20ch;
  text-shadow:0 2px 26px rgba(6,16,30,.5);}
.subhero p{max-width:52ch;margin:1.1rem 0 0;color:#ece6d9;font-size:1.12rem;
  text-shadow:0 1px 14px rgba(6,16,30,.4);}

/* ================= HOME: WELCOME ================= */
.welcome .wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(1.5rem,5vw,4rem);align-items:start;}
.welcome h2{font-size:clamp(2.1rem,4.4vw,3rem);margin:0;}
.welcome .lead-line{color:var(--slate);font-size:1.12rem;margin:1rem 0 0;max-width:34ch;}

/* ================= HOME: ACADEMICS teaser ================= */
.academics{background:var(--white);border-block:1px solid var(--line);}
.academics .grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(1.5rem,5vw,3.5rem);align-items:start;}
.ace-panel{background:var(--parchment);border:1px solid var(--line);border-radius:6px;padding:1.9rem;}
.ace-panel h3{font-family:var(--sans);font-weight:700;font-size:.76rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-ink);margin:0 0 1.2rem;}
.ace-list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;}
.ace-list li{position:relative;padding-left:1.6rem;color:#2b3543;font-size:1.05rem;line-height:1.4;}
.ace-list li::before{content:"";position:absolute;left:.05rem;top:.5em;width:.55rem;height:.55rem;
  border:2px solid var(--gold);border-radius:50%;}

/* ================= FACTS STRIP ================= */
.facts{background:var(--parchment-2);border-bottom:1px solid var(--line);}
.facts .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.fact{padding:0 1.6rem;}
.fact:first-child{padding-left:0;}
.fact + .fact{border-left:1px solid var(--line);}
.fact .k{font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.1rem);color:var(--navy);line-height:1.05;}
.fact .v{font-family:var(--sans);font-weight:700;font-size:.7rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gold-ink);margin-top:.55rem;}
.fact small{display:block;color:var(--slate);font-size:.92rem;margin-top:.3rem;
  letter-spacing:0;text-transform:none;font-weight:400;line-height:1.45;}

/* ================= GENERIC CONTENT ================= */
.measure{max-width:66ch;}
.lead{max-width:62ch;color:var(--slate);font-size:1.12rem;}

/* split: text + image */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4rem);align-items:center;}
.split.narrow{grid-template-columns:1.1fr .9fr;}
.figure{margin:0;border-radius:6px;overflow:hidden;box-shadow:0 24px 50px -30px rgba(11,29,52,.55);
  border:1px solid var(--line);background:var(--parchment-2);}
.figure img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;}
.figure.tall img{aspect-ratio:3/4;}
figcaption{font-size:.82rem;color:var(--slate);padding:.7rem .9rem;background:var(--white);
  border-top:1px solid var(--line);}
.alt-bg{background:var(--white);border-block:1px solid var(--line);}
.navy-bg{background:var(--navy);color:var(--parchment);}
.navy-bg h2,.navy-bg h3{color:var(--white);}
.navy-bg .prose p{color:#dcd6c8;}
.navy-bg .kicker{color:var(--gold-soft);}

/* Statement of faith / value cards */
.believe{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem;margin-top:2rem;}
.believe .item{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:1.6rem 1.7rem;}
.believe .item h3{font-size:1.35rem;color:var(--navy);margin:0 0 .5rem;}
.believe .item p{margin:0;color:var(--slate);font-size:1rem;line-height:1.6;}

/* History timeline */
.timeline{margin-top:2.2rem;display:grid;gap:0;border-left:2px solid var(--gold);}
.tl{position:relative;padding:0 0 1.9rem 1.9rem;}
.tl:last-child{padding-bottom:0;}
.tl::before{content:"";position:absolute;left:-7px;top:.35rem;width:12px;height:12px;border-radius:50%;
  background:var(--gold);border:2px solid var(--parchment);}
.tl .yr{font-family:var(--serif);font-size:1.5rem;color:var(--navy);line-height:1;}
.tl p{margin:.5rem 0 0;color:#2b3543;max-width:60ch;}
.navy-bg .tl .yr{color:var(--gold-soft);}
.navy-bg .tl p{color:#dcd6c8;}
.navy-bg .timeline{border-color:rgba(217,190,126,.5);}
.navy-bg .tl::before{border-color:var(--navy);}

/* Steps (admissions) */
.steps{list-style:none;counter-reset:s;margin:2rem 0 0;padding:0;display:grid;gap:1.1rem;}
.steps li{position:relative;counter-increment:s;padding:1.2rem 1.4rem 1.2rem 3.6rem;background:var(--white);
  border:1px solid var(--line);border-radius:6px;color:#2b3543;}
.steps li::before{content:counter(s);position:absolute;left:1.1rem;top:1.1rem;width:1.7rem;height:1.7rem;
  background:var(--navy);color:var(--parchment);border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-family:var(--sans);font-weight:700;font-size:.85rem;}
.steps li b{color:var(--navy);}

/* Checklist */
.checklist{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:.8rem;}
.checklist li{position:relative;padding-left:1.9rem;color:#2b3543;}
.checklist li::before{content:"";position:absolute;left:.1rem;top:.15rem;width:1.1rem;height:1.1rem;
  border:2px solid var(--gold);border-radius:3px;}

/* Events list */
.events{margin-top:2rem;display:grid;gap:.2rem;}
.event{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:baseline;
  padding:1.15rem 0;border-top:1px solid var(--line);}
.event:last-child{border-bottom:1px solid var(--line);}
.event .when{font-family:var(--sans);font-weight:700;font-size:.78rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--gold-ink);white-space:nowrap;min-width:8.5rem;}
.event .what{color:var(--ink);}
.event .what b{font-weight:600;}
.event .what span{display:block;color:var(--slate);font-size:.95rem;margin-top:.15rem;}

/* School calendar (month blocks) */
.cal-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 3.5rem;margin-top:2.2rem;}
.month{padding:1.6rem 0 .3rem;}
.month h3{font-family:var(--sans);font-weight:700;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-ink);margin:0 0 .3rem;
  padding-bottom:.6rem;border-bottom:2px solid var(--gold);}
.cal-item{display:grid;grid-template-columns:4.6rem 1fr;gap:1rem;padding:.6rem 0;
  border-bottom:1px solid var(--line);align-items:baseline;}
.cal-date{font-family:var(--sans);font-weight:700;font-size:.82rem;color:var(--navy);
  font-variant-numeric:tabular-nums;letter-spacing:.01em;}
.cal-item .desc{color:#2b3543;}
.cal-item.off .cal-date{color:var(--gold-ink);}
.cal-item.off .desc{color:var(--slate);}
.cal-note{margin-top:1.4rem;color:var(--slate);font-size:.95rem;}

/* Donate: check info card */
.give{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,5vw,3.5rem);align-items:start;}
.check-card{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:2rem;
  box-shadow:0 24px 50px -34px rgba(11,29,52,.5);}
.check-card h3{font-family:var(--sans);font-weight:700;font-size:.76rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-ink);margin:0 0 1.1rem;}
.check-card .payline{font-family:var(--serif);font-size:1.5rem;color:var(--navy);margin:0 0 .3rem;}
.check-card address{font-style:normal;color:#2b3543;line-height:1.7;margin:.2rem 0 1.2rem;}
.check-card .note{font-size:.95rem;color:var(--slate);margin:0;}

/* Contact page: form + map */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,3.5rem);align-items:start;}
.cform{display:grid;gap:1.1rem;}
.cform .row{display:grid;gap:1.1rem;grid-template-columns:1fr 1fr;}
.field{display:grid;gap:.4rem;}
.field label{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--gold-ink);}
.field input,.field textarea,.field select{
  font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--white);
  border:1px solid var(--line);border-radius:5px;padding:.75rem .85rem;width:100%;}
.field textarea{min-height:150px;resize:vertical;}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(193,154,62,.18);}
.field.req label::after{content:" *";color:var(--gold);}
.optin{display:flex;gap:.65rem;align-items:flex-start;color:#2b3543;font-size:.98rem;}
.optin input{width:1.15rem;height:1.15rem;margin-top:.15rem;accent-color:var(--navy);}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.cform button{justify-self:start;margin-top:.3rem;}
.map-frame{border:1px solid var(--line);border-radius:8px;overflow:hidden;
  box-shadow:0 24px 50px -34px rgba(11,29,52,.5);background:var(--parchment-2);}
.map-frame iframe{display:block;width:100%;height:340px;border:0;}
.map-caption{padding:1rem 1.2rem;background:var(--white);border-top:1px solid var(--line);}
.map-caption b{color:var(--navy);}
.map-caption a{color:var(--gold-ink);text-decoration:none;font-weight:600;}

/* Contact / visit block (shared) */
.visit{background:var(--navy);color:var(--parchment);}
.visit .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.visit h2{color:var(--white);font-size:clamp(2rem,4.5vw,3rem);margin-bottom:1rem;}
.visit p{color:#d9d2c4;max-width:46ch;}
.contact-card{background:rgba(255,253,248,.04);border:1px solid rgba(217,190,126,.28);border-radius:6px;padding:2rem;}
.contact-card dl{margin:0;display:grid;gap:1.15rem;}
.contact-card dt{font-family:var(--sans);font-weight:600;font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-soft);margin-bottom:.15rem;}
.contact-card dd{margin:0;font-size:1.05rem;color:var(--parchment);}
.contact-card dd a{color:var(--parchment);text-decoration:none;border-bottom:1px solid rgba(217,190,126,.4);}
.contact-card dd a:hover{color:var(--gold-soft);}
.visit .cta-row{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:1.8rem;}

/* ================= ALERT BANNER (snow days / closings) ================= */
.alert-bar{width:100%;background:var(--navy-deep);color:#fff;padding:.75rem var(--pad);
  text-align:center;font-size:.98rem;line-height:1.45;border-bottom:2px solid var(--gold);}
.alert-bar.closing{background:#7c1f1f;border-bottom-color:#e6b955;}
.alert-bar.delay{background:#8a5a17;border-bottom-color:#e6b955;}
.alert-bar .lbl{display:inline-block;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  font-size:.72rem;background:rgba(255,255,255,.16);padding:.15rem .5rem;border-radius:3px;
  margin-right:.55rem;vertical-align:.05em;}
.alert-bar a{color:#ffe9b0;}

/* ================= FACEBOOK ICON / SOCIAL ================= */
.fb-ico{width:1.05em;height:1.05em;vertical-align:-.16em;}
.btn .fb-ico{margin-right:.15rem;}
.fsocial{margin:0 0 1.1rem;display:flex;justify-content:center;}
.fsocial a{display:inline-flex;align-items:center;gap:.5rem;color:var(--gold-soft);text-decoration:none;
  border:1px solid rgba(217,190,126,.4);border-radius:24px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;
  min-height:44px;}
.fsocial a:hover{background:var(--gold);color:var(--navy-deep);border-color:var(--gold);}
.fsocial svg{width:20px;height:20px;}
.contact-fb{display:inline-flex;align-items:center;gap:.5rem;color:#2b3543;text-decoration:none;font-weight:600;}
.contact-fb svg{width:20px;height:20px;color:#1877F2;}
.contact-fb:hover{color:var(--navy);}

/* ================= FOOTER ================= */
footer{background:var(--navy-deep);color:#c9cdd6;text-align:center;padding-block:3rem;}
footer .fimg{width:60px;margin:0 auto 1rem;opacity:.95;}
footer .fmotto{font-family:var(--serif);font-size:1.4rem;color:var(--gold-soft);margin-bottom:.5rem;}
.fsignup{max-width:460px;margin:.4rem auto 1.7rem;}
.fsignup-label{display:block;font-size:.9rem;color:#c9cdd6;margin-bottom:.6rem;}
.fsignup-row{display:flex;gap:.5rem;}
.fsignup input[type=email]{flex:1;min-width:0;padding:.8rem .85rem;border-radius:4px;
  border:1px solid rgba(217,190,126,.35);background:rgba(255,255,255,.06);color:var(--parchment);
  font-family:var(--sans);font-size:16px;}
.fsignup input[type=email]::placeholder{color:#8ea0b4;}
.fsignup input[type=email]:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(193,154,62,.25);}
.fsignup .btn{white-space:nowrap;}
@media (max-width:520px){.fsignup-row{flex-direction:column;} .fsignup .btn{justify-content:center;}}
footer .fnav{display:flex;gap:1.1rem;justify-content:center;flex-wrap:wrap;margin:0 0 1.1rem;
  font-size:.85rem;}
footer .fnav a{color:#c9cdd6;text-decoration:none;}
footer .fnav a:hover{color:var(--gold-soft);}
footer .fmeta{font-size:.85rem;opacity:.75;line-height:1.9;}
footer .fmeta a{color:var(--gold-soft);text-decoration:none;}
footer .copy{font-size:.75rem;opacity:.5;margin-top:1.3rem;letter-spacing:.03em;}

/* ================= REVEAL / MOTION ================= */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
.hero .anim{opacity:0;transform:translateY(18px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;}
.hero .a2{animation-delay:.1s;} .hero .a3{animation-delay:.24s;}
.hero .a4{animation-delay:.38s;} .hero .a5{animation-delay:.52s;}
@keyframes rise{to{opacity:1;transform:none;}}

/* ================= RESPONSIVE ================= */
@media (max-width:900px){
  .welcome .wrap{grid-template-columns:1fr;gap:1.4rem;}
  .academics .grid{grid-template-columns:1fr;}
  .split,.split.narrow,.give,.visit .grid{grid-template-columns:1fr;}
  .cal-grid{grid-template-columns:1fr;gap:0;}
  .contact-grid{grid-template-columns:1fr;}
  .cform .row{grid-template-columns:1fr;}
  .believe{grid-template-columns:1fr;}
  .facts .wrap{grid-template-columns:1fr;}
  .fact{padding:0;}
  .fact + .fact{border-left:none;border-top:1px solid var(--line);padding-top:1.5rem;margin-top:1.5rem;}
  .split .figure{order:-1;}
}
@media (max-width:520px){
  .event{grid-template-columns:1fr;gap:.3rem;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .reveal{opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}
