*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  background:#F5F3ED;
  color:#1C1B18;
  font-family:'Source Serif 4', serif;
  line-height:1.6;
}

a{color:inherit;text-decoration:none;}

:focus-visible{
  outline:2px solid #FFE4C4;
  outline-offset:3px;
}

.eyebrow{
  font-family:'Space Grotesk', sans-serif;
  font-size:0.72rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-weight:600;
}

/* ---------- Site header / nav ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:60;
  background:#0F3D26;
  box-shadow:0 1px 0 rgba(255,255,255,0.06);
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0.9rem clamp(1.2rem, 5vw, 3.2rem);
  max-width:82rem;
  margin:0 auto;
}
.brand{
  display:flex;
  align-items:center;
  gap:0.65rem;
  color:#FFFFFF;
  font-family:'Fraunces', serif;
  font-size:1.1rem;
  font-weight:600;
  letter-spacing:0.01em;
}
.brand img{
  height:40px;
  width:40px;
  border-radius:50%;
  background:#fff;
  flex-shrink:0;
}
.brand em{
  font-style:normal;
   color:bisque;
}

/* Desktop links */
.nav-links{
  display:none;
  align-items:center;
  gap:clamp(1.1rem, 2.6vw, 2rem);
  font-family:'Space Grotesk', sans-serif;
  font-size:0.82rem;
  letter-spacing:0.03em;
}
.nav-links a{
  position:relative;
  color:#DCE3D9;
  padding:0.3rem 0;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0; bottom:-2px;
  width:0; height:1.5px;
  background:bisque;
  transition:width 0.25s ease;
}
.nav-links a:hover, .nav-links a.active{color:#fff;}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
@media(min-width:900px){
  .nav-links{display:flex;}
}

/* Hamburger toggle (mobile only) */
.nav-toggle{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:38px;
  height:34px;
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
}
.nav-toggle span{
  display:block;
  width:100%;
  height:2px;
  background:#FFFFFF;
  border-radius:1px;
  transition:transform 0.3s ease, opacity 0.3s ease;
}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media(min-width:900px){
  .nav-toggle{display:none;}
}

/* Mobile off-canvas panel */
.nav-backdrop{
  position:fixed;
  inset:0;
  background:rgba(10,30,20,0.55);
  opacity:0;
  pointer-events:none;
  transition:opacity 0.3s ease;
  z-index:55;
}
.nav-backdrop.is-open{opacity:1;pointer-events:auto;}

.nav-panel{
  position:fixed;
  top:0; right:0;
  height:100vh;
  width:min(78vw, 320px);
  background:#FFFFFF;
  transform:translateX(100%);
  transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);
  z-index:58;
  padding:5.5rem 1.8rem 2rem;
  overflow-y:auto;
  box-shadow:-10px 0 32px rgba(0,0,0,0.18);
}
.nav-panel.is-open{transform:translateX(0);}
.nav-panel nav{
  display:flex;
  flex-direction:column;
  gap:0.15rem;
}
.nav-panel a{
  font-family:'Fraunces', serif;
  font-size:1.05rem;
  color:#1C1B18;
  padding:0.85rem 0;
  border-bottom:1px solid #EDE8DA;
}
.nav-panel a.active{color:#C41E2A;}
@media(min-width:900px){
  .nav-panel, .nav-backdrop{display:none;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:clamp(440px, 82vh, 760px);
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#FFFFFF;
 

}
.hero-media{
  position:absolute;
  inset:0;
  z-index:0;

}
.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.hero-media::after{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0, 0, 0, 0.45);
  z-index:1;
}
.hero-inner{
  position:relative;
  z-index:2;
  max-width:52rem;
  margin:0 auto;
  text-align:center;
  padding:clamp(2rem,6vw,3rem) clamp(1.3rem,5vw,3rem);
}
/*.hero .eyebrow{
   color:#DFBA73;
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  margin-bottom:1.4rem;
}*/
.hero .eyebrow::before, .hero .eyebrow::after{
  content:"";
  width:22px;
  height:1px;
  background:#0b582a;
  opacity:0.7;
}
.hero h1{
   font-family:'Montserrat', sans-serif;
  font-weight:500;
  font-size:clamp(2rem, 5.2vw, 3.6rem);
  line-height:1.12;
  letter-spacing:-0.01em;
  text-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 
               0 2px 4px rgba(0, 0, 0, 0.2);
}

.hero-lede{
   margin-top:1.6rem;
  font-size:clamp(1rem, 1.6vw, 1.15rem);
  color:#E9EEE6;
  max-width:36rem;
  margin-inline:auto;
  text-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 
               0 2px 4px rgba(0, 0, 0, 0.2);
   font-family:'Montserrat', sans-serif;
   letter-spacing:0.09em;
   font-weight: 500;

}


/* ---------- Foundations ---------- */
.foundations{
  padding:clamp(4rem,8vw,6rem) clamp(1.5rem,5vw,4rem) clamp(3rem,6vw,5rem);
  max-width:72rem;
  margin:0 auto;
}
.foundations-head{
  text-align:center;
  max-width:34rem;
  margin:0 auto 3rem;
}
.foundations-head .eyebrow{color:#8C1520;}
.foundations-head h2{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(1.7rem, 3.2vw, 2.3rem);
  margin-top:0.6rem;
  color:#0F3D26;
}

.grid{
  display:grid;
  grid-template-columns:repeat(1, minmax(0,1fr));
  gap:1.4rem;
}
@media(min-width:640px){
  .grid{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media(min-width:980px){
  .grid{grid-template-columns:repeat(3, minmax(0,1fr));}
}

.card{
  background:#FFFFFF;
  border:1px solid #E2DBC7;
  border-top:3px solid #1C6B3B;
  padding:1.9rem 1.7rem 2.1rem;
  transition:transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.card:hover{
  transform:translateY(-3px);
  border-top-color:#C41E2A;
  box-shadow:0 14px 28px -18px rgba(20,42,34,0.35);
}
.card .eyebrow{color:#C41E2A;}
.card h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:1.2rem;
  margin:0.5rem 0 0.7rem;
  color:#1C1B18;
}
.card p{
  font-size:0.96rem;
  color:#4B4A44;
   font-family:'Montserrat', sans-serif;
}

/* ---------- Closing ---------- */
.closing{
  background:#0F3D26;
  color:#FFFFFF;
  padding:clamp(3.5rem,8vw,5.5rem) clamp(1.5rem,5vw,4rem);
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.closing-inner{
  max-width:42rem;
  margin:0 auto;
  text-align:center;
}
.closing blockquote{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.25rem, 2.4vw, 1.65rem);
  line-height:1.5;
  color:#F1EEE3;
}
.closing blockquote::before{content:"\201C";}
.closing blockquote::after{content:"\201D";}
.closing .signoff{
  margin-top:1.8rem;
  font-family:'Space Grotesk', sans-serif;
  font-size:0.85rem;
  letter-spacing:0.04em;
  color:#dfba73;
}
.closing .signoff span{
  display:block;
  color:#B9C2B4;
  font-size:0.78rem;
  letter-spacing:0.02em;
  margin-top:0.2rem;
}

/* ---------- Footer ---------- */
.site-footer{
  background:#0F3D26;
  color:#DCE3D9;
  padding:3.5rem clamp(1.5rem,5vw,4rem) 0;
  font-family:'Space Grotesk', sans-serif;
}
.footer-inner{
  max-width:72rem;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:2.5rem;
}
@media(min-width:640px){
  .footer-inner{grid-template-columns:2fr 1fr 1fr;}
}
.footer-brand{
  display:flex;
  flex-direction:column;
  gap:0.8rem;
}
.footer-brand .brand{
  font-family:'Fraunces', serif;
  font-size:1.1rem;
  font-weight:600;
  color:#FFFFFF;
  display:flex;
  align-items:center;
  gap:0.65rem;
}
.footer-brand .brand img{
  height:40px;
  width:40px;
  border-radius:50%;
  background:#fff;
}
.footer-brand .brand em{
  font-style:normal;
  color:bisque;
}
.footer-brand p{
  font-size:0.85rem;
  color:#B9C2B4;
  line-height:1.6;
  max-width:24rem;
}
.footer-col h4{
  font-family:'Space Grotesk', sans-serif;
  font-size:0.72rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-weight:600;
  color:#DFBA73;
  margin-bottom:1rem;
}
.footer-col nav{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}
.footer-col a{
  color:#B9C2B4;
  font-size:0.85rem;
  transition:color 0.2s ease;
}
.footer-col a:hover{color:#FFFFFF;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.08);
  margin-top:2.5rem;
  padding:1.4rem 0;
  text-align:center;
  font-size:0.72rem;
  color:#8A9E91;
  letter-spacing:0.03em;
}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;}
}

/* ==========================================================
   Contact page — Hero with color‑mix overlay (no image)
   ========================================================== */

.hero-contact{
  background:linear-gradient(135deg, #0F3D26 0%, #1a6b3b 40%, #2a7a4a 100%);
  min-height:clamp(340px, 50vh, 480px);
}

.hero-contact::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(ellipse 70% 60% at 20% 30%, rgba(120,80,200,0.30) 0%, transparent 60%),
    radial-gradient(ellipse 80% 50% at 80% 40%, rgba(0,180,255,0.25) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 40% 70%, rgba(255,200,50,0.20) 0%, transparent 50%),
    radial-gradient(ellipse 50% 50% at 70% 80%, rgba(0,200,100,0.20) 0%, transparent 50%);
  mix-blend-mode:overlay;
  pointer-events:none;
}

.hero-contact .hero-inner{
  position:relative;
  z-index:2;
  max-width:52rem;
  margin:0 auto;
  text-align:center;
  padding:clamp(3rem, 8vw, 5rem) clamp(1.3rem, 5vw, 3rem);
}

/* Stars animation */
.hero-contact .stars{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  z-index:0;
}

.hero-contact .stars span{
  position:absolute;
  font-size:0.6rem;
  color:#FFD700;
  opacity:0;
  animation:floatUp 8s ease-in infinite;
}

.hero-contact .stars span:nth-child(1){bottom:-5%;left:5%;animation-delay:0s;}
.hero-contact .stars span:nth-child(2){bottom:-10%;left:85%;animation-delay:1.2s;font-size:1.2rem;}
.hero-contact .stars span:nth-child(3){bottom:-15%;left:10%;animation-delay:2.5s;font-size:0.7rem;}
.hero-contact .stars span:nth-child(4){bottom:-8%;left:80%;animation-delay:3.8s;font-size:1.1rem;}
.hero-contact .stars span:nth-child(5){bottom:-20%;left:92%;animation-delay:0.8s;}
.hero-contact .stars span:nth-child(6){bottom:-12%;left:3%;animation-delay:5s;font-size:1.3rem;}
.hero-contact .stars span:nth-child(7){bottom:-25%;left:50%;animation-delay:1.8s;font-size:0.6rem;}
.hero-contact .stars span:nth-child(8){bottom:-18%;left:40%;animation-delay:4.2s;font-size:0.8rem;}
.hero-contact .stars span:nth-child(9){bottom:-6%;left:45%;animation-delay:6s;font-size:1rem;}
.hero-contact .stars span:nth-child(10){bottom:-30%;left:70%;animation-delay:2.2s;font-size:0.7rem;}
.hero-contact .stars span:nth-child(11){bottom:-3%;left:30%;animation-delay:7s;font-size:1.4rem;}
.hero-contact .stars span:nth-child(12){bottom:-22%;left:15%;animation-delay:3s;font-size:0.6rem;}
.hero-contact .stars span:nth-child(13){bottom:-14%;left:55%;animation-delay:5.5s;font-size:1rem;}
.hero-contact .stars span:nth-child(14){bottom:-28%;left:65%;animation-delay:4.5s;font-size:0.8rem;}
.hero-contact .stars span:nth-child(15){bottom:-35%;left:20%;animation-delay:1.5s;font-size:1.1rem;}

@keyframes floatUp{
  0%{transform:translateY(0) rotate(0deg) scale(0.8);opacity:0;}
  15%{opacity:1;transform:translateY(-30px) rotate(10deg) scale(1);}
  50%{opacity:0.8;transform:translateY(-120px) rotate(20deg) scale(0.9);}
  85%{opacity:0.3;transform:translateY(-220px) rotate(35deg) scale(0.7);}
  100%{transform:translateY(-280px) rotate(45deg) scale(0.5);opacity:0;}
}

.hero-contact .eyebrow{
  color:#DFBA73;
  margin-bottom:0.6rem;
  letter-spacing:0.25em;
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  position:relative;
  z-index:3;
}

.hero-contact h1{
  position:relative;
  z-index:3;
}

.hero-contact .hero-lede{
  position:relative;
  z-index:3;
}

.hero-contact .intro-stars{
  font-size:1rem;
  color:#FFD700;
  letter-spacing:0.5em;
  margin-bottom:1rem;
  filter:drop-shadow(0 0 8px rgba(255,215,0,0.4));
  animation:pulseStars 2s ease-in-out infinite alternate;
  position:relative;
  z-index:3;
}

@keyframes pulseStars{
  0%{opacity:0.6;transform:scale(0.98);}
  100%{opacity:1;transform:scale(1.02);}
}

/* ---------- Form header ---------- */
.form-header{
  text-align:center;
  margin-bottom:1.5rem;
  padding-bottom:1.2rem;
  border-bottom:1px solid #EDE8DA;
}

.form-header-stars{
  font-size:0.9rem;
  color:#FFD700;
  letter-spacing:0.4em;
  margin-bottom:0.5rem;
  animation:pulseStars 3s ease-in-out infinite alternate;
}

.form-header h3{
  font-family:'Montserrat', sans-serif;
  font-weight:500;
  font-size:1.2rem;
  color:#0F3D26;
  margin-bottom:0.3rem;
}

.form-header p{
  font-family:'Montserrat', sans-serif;
  font-size:0.9rem;
  color:#6B6A63;
}

/* ---------- Contact split layout (form + info side by side) ---------- */
.contact-split{
  display:grid;
  grid-template-columns:1fr;
  gap:2.5rem;
  align-items:start;
}
@media(min-width:900px){
  .contact-split{grid-template-columns:1.3fr 1fr;}
}

/* ---------- Contact Form ---------- */
.contact-form-wrapper{
  background:#FFFFFF;
  border:1px solid #E2DBC7;
  border-top:3px solid #1C6B3B;
  padding:2rem 2rem 2.5rem;
  border-radius:0;
  transition:box-shadow 0.3s ease;
  position:relative;
}
.contact-form-wrapper:hover{
  box-shadow:0 12px 32px -16px rgba(0,0,0,0.12);
}

.contact-form{
  display:flex;
  flex-direction:column;
  gap:1.4rem;
}

.form-row{
  display:grid;
  grid-template-columns:1fr;
  gap:1.4rem;
}
@media(min-width:640px){
  .form-row{grid-template-columns:1fr 1fr;}
}

.form-group{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
}

.form-group label{
  font-family:'Space Grotesk', sans-serif;
  font-size:0.78rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  font-weight:600;
  color:#1C1B18;
  display:flex;
  align-items:center;
  gap:0.35rem;
}

.label-icon{
  font-size:0.9rem;
  line-height:1;
}

.form-group .required{
  color:#C41E2A;
}

.form-group input,
.form-group select,
.form-group textarea{
  font-family:'Source Serif 4', serif;
  font-size:0.95rem;
  color:#1C1B18;
  background:#F9F8F4;
  border:1.5px solid #E2DBC7;
  padding:0.75rem 1rem;
  border-radius:4px;
  transition:border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
  width:100%;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  outline:none;
  border-color:#1C6B3B;
  background:#FFFFFF;
  box-shadow:0 0 0 3px rgba(28,107,59,0.1);
}

.form-group input::placeholder,
.form-group textarea::placeholder{
  color:#9A9A8E;
  opacity:1;
}

.form-group select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='%234B4A44'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  padding-right:2.5rem;
  cursor:pointer;
}

.form-group textarea{
  resize:vertical;
  min-height:120px;
  line-height:1.6;
}

/* Error state */
.form-group.has-error input,
.form-group.has-error select,
.form-group.has-error textarea{
  border-color:#C41E2A;
  box-shadow:0 0 0 3px rgba(196,30,42,0.08);
}

.form-error{
  font-family:'Space Grotesk', sans-serif;
  font-size:0.72rem;
  color:#C41E2A;
  letter-spacing:0.02em;
  display:none;
  margin-top:0.1rem;
}

.form-group.has-error .form-error{
  display:block;
}

/* Submit button */
.form-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.6rem;
  align-self:flex-start;
  background:#1C6B3B;
  color:#FFFFFF;
  font-family:'Space Grotesk', sans-serif;
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:0.85rem 2.2rem;
  border:none;
  border-radius:4px;
  cursor:pointer;
  transition:background 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
  position:relative;
  overflow:hidden;
}

.form-submit::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,0.1), transparent);
  opacity:0;
  transition:opacity 0.3s ease;
}

.form-submit:hover{
  background:#0F3D26;
  transform:translateY(-2px);
  box-shadow:0 8px 20px -8px rgba(15,61,38,0.4);
}

.form-submit:hover::before{
  opacity:1;
}

.form-submit:active{
  transform:translateY(0);
}

.submit-icon{
  font-size:1.2rem;
  transition:transform 0.3s ease;
}

.form-submit:hover .submit-icon{
  transform:translateX(4px);
}

.submit-stars{
  font-size:0.8rem;
  color:#FFD700;
  opacity:0.8;
  transition:opacity 0.3s ease, transform 0.3s ease;
}

.form-submit:hover .submit-stars{
  opacity:1;
  transform:rotate(90deg);
}

/* Success message */
.form-success{
  display:none;
  align-items:center;
  gap:0.7rem;
  background:#E8F5E9;
  border:1px solid #A5D6A7;
  border-left:4px solid #1C6B3B;
  padding:1rem 1.2rem;
  font-family:'Source Serif 4', serif;
  font-size:0.95rem;
  color:#1C6B3B;
  line-height:1.5;
  border-radius:4px;
  margin-top:0.5rem;
}

.form-success.is-visible{
  display:flex;
}

.success-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:#1C6B3B;
  color:#FFD700;
  font-size:1rem;
  font-weight:700;
  flex-shrink:0;
}

/* ---------- Contact Info Cards ---------- */
.contact-info-wrapper{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.contact-info-card{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  background:#FFFFFF;
  border:1px solid #E2DBC7;
  border-left:4px solid #B8860B;
  padding:1.2rem 1.4rem;
  transition:transform 0.25s ease, box-shadow 0.25s ease, border-left-color 0.25s ease;
}

.contact-info-card:hover{
  transform:translateX(4px);
  box-shadow:0 8px 20px -14px rgba(0,0,0,0.12);
  border-left-color:#1C6B3B;
}

.contact-info-icon{
  font-size:1.5rem;
  flex-shrink:0;
  line-height:1;
  margin-top:0.1rem;
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#F5F3ED;
  border-radius:8px;
}

.contact-info-card:hover .contact-info-icon{
  background:#E8F5E9;
}

.contact-info-content h4{
  font-family:'Montserrat', sans-serif;
  font-weight:500;
  font-size:0.88rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:#1C6B3B;
  margin-bottom:0.2rem;
}

.contact-info-content p{
  font-family:'Montserrat', sans-serif;
  font-size:1rem;
  color:#4B4A44;
  line-height:1.5;
  margin:0;
}

.contact-info-content a{
  color:#0F3D26;
  text-decoration:none;
  transition:color 0.2s ease;
}

.contact-info-content a:hover{
  color:#C41E2A;
  text-decoration:underline;
}

/* Starred contact info card (standout) */
.contact-info-card-starred{
  background:linear-gradient(135deg, #FFFDF5, #FFF8E1);
  border-left-color:#FFD700;
}

.contact-info-card-starred .contact-info-icon{
  background:#FFF8E1;
  color:#B8860B;
}

.contact-info-card-starred:hover .contact-info-icon{
  background:#FFD700;
  color:#0F3D26;
}

/* ---------- Map ---------- */
.map-stars{
  text-align:center;
  font-size:1rem;
  color:#FFD700;
  letter-spacing:0.5em;
  padding:0.5rem 0 0.3rem;
  opacity:0.6;
}

/* Note star */
.note-star{
  float:left;
  font-size:1.2rem;
  color:#FFD700;
  margin-right:0.5rem;
  line-height:1.4;
}
.map-wrapper{
  background:#FFFFFF;
  border:1px solid #E2DBC7;
  padding:0.5rem;
  border-radius:4px;
  box-shadow:0 4px 16px rgba(0,0,0,0.06);
  overflow:hidden;
}

.map-wrapper iframe{
  display:block;
  width:100%;
  height:420px;
  border-radius:2px;
}

/* Larger map on desktop */
@media(min-width:900px){
  .map-wrapper iframe{height:480px;}
}

/* ==========================================================
   Admissions page
   ========================================================== */

/* ---------- Admission Info Grid (4 cards) ---------- */
.admission-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
@media(min-width:640px){
  .admission-grid{grid-template-columns:1fr 1fr;}
}

.admission-card{
  background:#FFFFFF;
  border:1px solid #E2DBC7;
  border-left:4px solid #B8860B;
  padding:1.5rem 1.5rem 1.5rem 1.2rem;
  display:flex;
  align-items:flex-start;
  gap:1rem;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.admission-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 24px -16px rgba(0,0,0,0.15);
  border-left-color:#8C1520;
}
.admission-icon{
  font-size:1.8rem;
  flex-shrink:0;
  line-height:1;
  margin-top:0.1rem;
}
.admission-card h4{
  font-family:'Montserrat', sans-serif;
  font-weight:500;
  font-size:0.98rem;
  color:#1C1B18;
  line-height:1.5;
  margin:0;
}

/* ---------- Commitment box ---------- */
.commitment-wrapper{
  background:#FFFFFF;
  border:1px solid #E2DBC7;
  border-top:3px solid #1C6B3B;
padding:1.8rem 1.8rem;
}
.commitment-box{
  max-width:38rem;
  margin:0 auto;
  text-align:center;
}
.commitment-box p{
  font-family:'Montserrat', sans-serif;
  font-size:1.1rem;
  color:#0F3D26;
  line-height:1.7;
  font-weight:500;
}

/* ---------- Contact info (simple) ---------- */
.contact-simple{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1.5rem;
  max-width:36rem;
  margin:0 auto;
}
.contact-simple-item{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.6rem;
  flex:1 1 14rem;
  min-width:12rem;
  background:#FFFFFF;
  border:1px solid #E2DBC7;
  border-left:3px solid #B8860B;
  padding:0.9rem 1.4rem;
  font-family:'Montserrat', sans-serif;
  font-size:1rem;
  color:#1C1B18;
  transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.contact-simple-item:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px -14px rgba(0,0,0,0.15);
}
.contact-simple-icon{
  font-size:1.3rem;
  flex-shrink:0;
}
/* ==========================================================
   About page
   ========================================================== */

/* ---------- Page hero (secondary pages) ---------- */


/* ---------- Section shell ---------- */
section.block{
 /* max-width:64rem;margin:0 auto;
  padding:clamp(3.5rem,7vw,5rem) clamp(1.5rem,5vw,4rem);*/
   padding:clamp(2.5rem,4vw,3.5rem) clamp(1.5rem,5vw,4rem) clamp(1.5rem,3vw,2.5rem);
  max-width:72rem;
  margin:0 auto;
}
.block-head{max-width:38rem;margin-bottom:1.8rem;}
.block-head.center{margin-inline:auto;text-align:center;}
.block-head .eyebrow{color:#8C1520;}
.block-head h2{
 font-family:'Montserrat', sans-serif; ;font-weight:500;
 font-size:clamp(1.7rem, 3.2vw, 2.3rem);;
  margin-top:0.5rem;color:#0F3D26;
}
.block-head p{margin-top:0.8rem;color:#4B4A44; font-family:'Montserrat', sans-serif;}

/* ---------- Timeline ---------- */
.timeline{position:relative;padding-left:2rem;}
.timeline::before{
  content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;
  background:linear-gradient(180deg, #C41E2A, #1C6B3B);
}
.tl-item{position:relative;padding-bottom:2.2rem;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{
  content:"";position:absolute;left:-2rem;top:5px;
  width:12px;height:12px;border-radius:50%;
  background:#FFFFFF;border:2px solid #C41E2A;
}
.tl-item .yr{
  font-family:'Space Grotesk', sans-serif;font-weight:600;
  font-size:0.9rem;letter-spacing:0.03em;color:#1C6B3B;
  display:block;margin-bottom:0.39rem;
}
.tl-item h3{
  /*font-family:'Fraunces', serif;*/font-weight:500;font-size:1.20rem;
  margin-bottom:0.4rem;color:#1C1B18;
   font-family:'Montserrat', sans-serif;
}
.tl-item p{color:#4B4A44;font-size:0.97rem;max-width:42rem; font-family:'Montserrat', sans-serif;}

/* ---------- Location note ---------- */
.note{
  background:#FFFFFF;border-left:3px solid #C41E2A;
padding:1.2rem 1.4rem;margin-top:1.4rem;font-size:0.94rem;color:#4B4A44;
  line-height: 2em;
  font-size:1em;
  font-family:'Montserrat', sans-serif;
}

/* ---------- Mission / Vision split ---------- */
.split{
  display:grid;grid-template-columns:1fr;gap:1.4rem;
}
@media(min-width:760px){.split{grid-template-columns:1fr 1fr;}}
.split .panel{
  background:#FFFFFF;border-top:3px solid #1C6B3B;
  padding:2rem 1.9rem;
}
.split .panel.alt{border-top-color:#C41E2A;}
.split .panel .eyebrow{color:#C41E2A;}
.split .panel h3{
   font-family:'Montserrat', sans-serif;;font-weight:500;font-size:1.3rem;
  margin:0.5rem 0 0.8rem;color:#0F3D26;
}
.split .panel p{color:#4B4A44;font-size:0.98rem; font-family:'Montserrat', sans-serif;}

/* ---------- Values grid number badge (used inside .card) ---------- */
.card .num{
  font-family:'Fraunces', serif;font-style:italic;font-size:1.6rem;
  color:#C41E2A;display:block;margin-bottom:0.4rem;
}
.card h4{
   font-family:'Montserrat', sans-serif;font-weight:500;font-size:1.05rem;
  margin-bottom:0.5rem;color:#1C1B18;
}

/* ---------- Stats strip ---------- */
.stats{
  background:#0F3D26;color:#FFFFFF;
  display:grid;grid-template-columns:repeat(2,1fr);
  text-align:center;
}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr);}}
.stats div{padding:2.2rem 1rem;border-right:2px solid rgba(255,255,255,0.08);}
.stats div:last-child{border-right:none;}
.stats .val{
  font-family:'Fraunces', serif;font-weight:500;font-size:2rem;color:#DFBA73;
}
.stats .lbl{
  font-family:'Space Grotesk', sans-serif;font-size:0.72rem;
  letter-spacing:0.08em;text-transform:uppercase;color:#B9C2B4;margin-top:0.4rem;
}


/* ---------- Academic Activities icon list ---------- */
.activity-list{
  list-style:none;
  padding:0;
  margin:0;
}
.activity-list li{
  position:relative;
  padding:0.55rem 0 0.55rem 1.8rem;
  font-family:'Montserrat', sans-serif;
  font-size:0.95rem;
  color:#4B4A44;
  line-height:1.5;
}
.activity-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.75rem;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#1C6B3B;
}

/* ---------- Video embed wrapper ---------- */
.video-wrapper{
  position:relative;
  width:100%;
  max-width:800px;
  margin:2rem auto;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 8px 32px rgba(0,0,0,0.15);
  background:#0F3D26;
}
.video-wrapper iframe,
.video-wrapper video{
  display:block;
  border:none;
  margin:0 auto;
}
.video-wrapper iframe{max-width:100%;}
.video-wrapper .portrait-video{
  aspect-ratio:auto;
  width:auto;
  max-height:600px;
}
.video-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0.8rem;
  width:100%;
  aspect-ratio:16/9;
  background:linear-gradient(135deg, #0F3D26, #1C6B3B);
  color:#FFFFFF;
  font-family:'Space Grotesk', sans-serif;
  font-size:1rem;
  letter-spacing:0.05em;
  cursor:pointer;
  transition:background 0.3s ease;
}
.video-placeholder:hover{
  background:linear-gradient(135deg, #1C6B3B, #0F3D26);
}
.video-placeholder .play-icon{
  width:64px;
  height:64px;
  border-radius:50%;
  background:rgba(255,255,255,0.15);
  border:2px solid rgba(255,255,255,0.3);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.8rem;
  transition:background 0.3s ease, transform 0.3s ease;
}
.video-placeholder:hover .play-icon{
  background:rgba(255,255,255,0.25);
  transform:scale(1.05);
}

/* ---------- Icon badges for academic sections ---------- */
.icon-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:12px;
  font-size:1.4rem;
  margin-bottom:0.8rem;
}
.icon-badge.green{background:#E8F5E9;color:#1C6B3B;}
.icon-badge.red{background:#FFEBEE;color:#C41E2A;}
.icon-badge.gold{background:#FFF8E1;color:#B8860B;}

/* ---------- Objectives grid (2-col on desktop) ---------- */
.objectives-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:0.8rem;
}
@media(min-width:640px){
  .objectives-grid{grid-template-columns:1fr 1fr;}
}
.objective-card{
  background:#FFFFFF;
  border-left:3px solid #1C6B3B;
  padding:1.2rem 1.4rem;
  display:flex;
  align-items:flex-start;
  gap:0.9rem;
  transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.objective-card:hover{
  transform:translateX(4px);
  box-shadow:0 4px 16px rgba(0,0,0,0.06);
}
.objective-card .icon{
  font-size:1.5rem;
  flex-shrink:0;
  margin-top:0.1rem;
}
.objective-card h4{
  font-family:'Montserrat', sans-serif;
  font-weight:500;
  font-size:1rem;
  color:#1C1B18;
  margin-bottom:0.2rem;
}
.objective-card p{
  font-size:0.9rem;
  color:#4B4A44;
  font-family:'Montserrat', sans-serif;
  line-height:1.5;
}

/* ---------- Teaching grid (2-col) ---------- */
.teaching-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:0.8rem;
}
@media(min-width:640px){
  .teaching-grid{grid-template-columns:1fr 1fr;}
}

/* ---------- Section divider ---------- */
.section-divider{
  width:60px;
  height:2px;
  background:linear-gradient(90deg, #C41E2A, #1C6B3B);
  margin:0 auto 0.5rem;
}

.pagehero{
  position:relative;
  min-height:clamp(440px, 82vh, 760px);
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#FFFFFF;
  display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    gap:10px;
}
.pagehero-media{
  position:absolute;
  inset:0;
  z-index:0;
  /*background:#0F3D26;*/
}
.pagehero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.hero-media::after{
  content:"";
  position:absolute;
  inset:0;
}

/* ---------- Larger paragraph text on laptop screens ---------- */
@media(min-width:1024px){
  section.block p,
  .block-head p,
  .card p,
  .split .panel p,
  .tl-item p,
  .objective-card p,
  .note,
  .activity-list li,
  .grade-card p{font-size:1.1em;}
}

/* ---------- Students page — Grade cards ---------- */
.student-grades{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
@media(min-width:640px){
  .student-grades{grid-template-columns:1fr 1fr;}
}
.grade-card{
  background:#FFFFFF;
  border:1px solid #E2DBC7;
  border-left:4px solid #1C6B3B;
  padding:1.2rem 1.4rem;
  display:flex;
  align-items:center;
  gap:1rem;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.grade-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 24px -16px rgba(0,0,0,0.15);
}
.grade-card.grade-a{border-left-color:#1C6B3B;}
.grade-card.grade-b{border-left-color:#2E86AB;}
.grade-card.grade-c{border-left-color:#B8860B;}
.grade-card.grade-d{border-left-color:#C41E2A;}
.grade-icon{
  font-size:1.8rem;
  flex-shrink:0;
  line-height:1;
}
.grade-label{
  font-family:'Montserrat', sans-serif;
  font-weight:600;
  font-size:1rem;
  color:#1C1B18;
  display:block;
  margin-bottom:0.15rem;
}
.grade-card p{
  font-family:'Montserrat', sans-serif;
  font-size:0.9rem;
  color:#4B4A44;
  margin:0;
}
