:root{
  --accent:#00529b;
  --muted:#555;
  --bg:#f7f9fb;
  --card:#ffffff;
}
*{box-sizing:border-box}
body{font-family:Segoe UI, Roboto, Arial, sans-serif;margin:0;background:var(--bg);color:#222}
.container{max-width:1100px;margin:0 auto;padding:1rem}
.site-header{background:linear-gradient(90deg,var(--accent),#0077c8);color:#fff;padding:1rem 0;box-shadow:0 10px 25px rgba(0,0,0,0.08)}
.header-inner{display:flex;align-items:center;gap:1rem}
.logo{width:72px;height:72px;object-fit:contain;border-radius:14px;background:rgba(255,255,255,0.18);padding:8px}
.site-title{font-size:1.35rem;font-weight:700;letter-spacing:0.02em}
.main-content{padding:2rem 1rem}
.intro h1{margin-top:0}
.contact-card{background:var(--card);padding:1.5rem;border-radius:18px;box-shadow:0 12px 28px rgba(0,0,0,0.08);margin:1.25rem 0}
.contact-card h2{margin-top:0}
.contact-card a{color:var(--accent);text-decoration:none}
.hours{margin-top:1rem}
.site-footer{padding:1rem 0;text-align:center;color:var(--muted);font-size:0.95rem}

/* Banner */
.banner{display:flex;flex-direction:column;background:transparent;gap:1rem;padding:1rem 0;align-items:stretch}
.banner-photo img{width:100%;height:300px;object-fit:cover;border-radius:18px}
.banner-info{background:var(--card);padding:1.5rem;border-radius:18px;box-shadow:0 12px 30px rgba(0,0,0,0.06);display:flex;flex-direction:column;justify-content:space-between}
.banner-info h1{margin:0 0 0.5rem 0;font-size:2rem;line-height:1.1}
.banner-info .lead{color:var(--accent);font-weight:700;margin-top:0}
.banner-info ul{margin:1rem 0 0;padding-left:1.25rem;color:#444}
.banner-info ul li{margin-bottom:0.7rem;line-height:1.65}
.hero-label{display:inline-flex;padding:0.5rem 0.9rem;border-radius:999px;background:rgba(0,82,155,0.12);color:#003b6f;font-weight:700;font-size:0.9rem;margin-bottom:1rem}
.cta-button{display:inline-block;margin-top:1.25rem;padding:0.95rem 1.4rem;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;text-decoration:none;box-shadow:0 14px 30px rgba(0,82,155,0.18);transition:transform .2s,filter .2s}
.cta-button:hover{transform:translateY(-2px);filter:brightness(1.05)}

/* Full-width map section */
.map-embed{width:100%;max-width:none;margin:2rem 0;border-radius:20px;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,0.08)}
.map-embed iframe{display:block;border:0;width:100%;min-height:520px}

/* Footer with logo and contact */
.site-footer{padding:2rem 0;background:#003b6f;color:#f7f9fb}
.footer-inner{display:flex;flex-direction:column;gap:1.5rem}
.footer-logo{width:64px;height:64px;object-fit:contain;border-radius:14px;background:rgba(255,255,255,0.18);padding:8px}
.footer-brand-row{display:flex;align-items:center;gap:0.9rem}
.footer-col{display:flex;flex-direction:column;gap:0.5rem;text-align:left}
.footer-col-brand{align-items:flex-start;text-align:left}
.footer-school-name{font-size:1.1rem;font-weight:700}
.footer-copy{opacity:0.85}
.footer-contact-item a{color:#cce5ff;text-decoration:none}
.footer-contact-item{line-height:1.7;max-width:680px}

@media (min-width:720px){
  .header-inner{gap:1.5rem}
  .site-title{font-size:1.5rem}
  .main-content{display:grid;grid-template-columns:1fr 360px;gap:1.25rem;align-items:start}
  .banner{grid-column:1 / 3;display:flex;flex-direction:row;gap:1.25rem;align-items:stretch}
  .banner-photo{flex:1 1 60%}
  .banner-info{flex:0 0 40%}
  .contact-card{grid-column:2 / 3}
  .footer-inner{flex-direction:row;justify-content:space-between;align-items:flex-start}
  .footer-col-brand{align-items:flex-start;text-align:left}
  .highlights{grid-template-columns:repeat(3,1fr)}
}

@media (min-width:1024px){
  .banner-photo img{height:360px}
}

.site-title span{display:block;font-size:0.95rem;font-weight:400;letter-spacing:0.02em;margin-top:0.25rem;color:#cce5ff}
.footer-school-name span{display:block;font-size:0.9rem;font-weight:400;letter-spacing:0.02em;margin-top:0.25rem;color:#cce5ff}

/* Footer bottom: legal links and copyright */
.footer-bottom{padding-top:1rem;border-top:1px solid rgba(255,255,255,0.06);display:flex;flex-direction:column;gap:0.5rem;align-items:center}
.legal-links{font-size:0.95rem}
.legal-links a{color:#e6f3ff;text-decoration:none;margin:0 0.35rem}
.legal-links a:hover{text-decoration:underline}
.copyright{opacity:0.9;font-size:0.9rem;color:#dbeeff}

@media (min-width:720px){
  .footer-bottom{flex-direction:row;justify-content:space-between;align-items:center;padding-top:1.25rem}
}