/*
 * @file
 * Cleaned plain-CSS stylesheet for production (nested @media removed).
 */

body {
  box-sizing: border-box;
}

:root {
  --color-bg-primary: #F8F9FA;
  --color-bg-secondary: #E8EDF2;
  --color-navy-dark: #001F3D;
  --color-navy-mid: #003D73;
  --color-navy: #00539B;
  --color-saffron: #FF9933;
  --color-saffron-light: #FFA500;
  --color-text-dark: #1A202C;
  --color-text-mid: #4A5568;
  --color-text-light: #A0AEC0;
  --color-white: #FFFFFF;

  --font-heading: 'Crimson Pro', serif;
  --font-body: 'Inter', sans-serif;

  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;

  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);

  --transition-base: all 0.3s ease;
}

/* Base */
* { margin: 0; padding: 0; box-sizing: inherit; }
html, body { height: 100%; font-family: var(--font-body); color: var(--color-text-dark); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Typography */
.heading { font-family: var(--font-heading); font-weight: 700; line-height: 1.2; }
.heading-xl { font-size: 3rem; }
.heading-lg { font-size: 1.875rem; }
.heading-md { font-size: 1.25rem; }

/* Layout */
.app-wrapper { width:100%; height:100%; overflow:auto; background: linear-gradient(180deg, var(--color-bg-primary) 0%, var(--color-bg-secondary) 50%, var(--color-bg-primary) 100%); }
.container { max-width:72rem; margin:0 auto; padding:0 1rem; }

/* Header */
.header { position: relative; overflow:hidden; background: linear-gradient(135deg, var(--color-navy) 0%, var(--color-navy-mid) 50%, var(--color-navy-dark) 100%); }
.header__pattern { position:absolute; inset:0; opacity:0.2; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Ccircle cx='30' cy='30' r='2' fill='%23FF9933' fill-opacity='0.08'/%3E%3C/svg%3E"); }
.header__overlay { position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,153,51,0.1) 0%, rgba(255,255,255,0.05) 50%, rgba(0,51,102,0.1) 100%); }
.header__content { position:relative; z-index:10; text-align:center; padding:3rem 1rem 5rem; }
.header__icon { width:5rem; height:5rem; margin:0 auto 1.5rem; }
.header__title { color:var(--color-white); margin-bottom:1rem; text-shadow:0 2px 4px rgba(0,0,0,0.2); }
.header__subtitle { font-size:1.125rem; color:rgba(255,255,255,0.9); max-width:42rem; margin:0 auto; font-weight:300; }
.header__badges { display:flex; flex-wrap:wrap; justify-content:center; gap:1rem; margin-top:2rem; }
.badge { padding:0.5rem 1rem; border-radius:var(--radius-md); font-size:0.875rem; font-weight:500; background-color:rgba(255,255,255,0.2); color:var(--color-white); }
.header__wave { position:absolute; bottom:0; left:0; width:100%; }

/* Main */
.main { padding:3rem 0; }
.section { margin-bottom:4rem; }
.section__header { text-align:center; margin-bottom:2rem; }
.section__badge { display:inline-block; padding:0.25rem 1rem; border-radius:var(--radius-md); font-size:0.875rem; font-weight:500; margin-bottom:0.75rem; background:linear-gradient(135deg, var(--color-navy), var(--color-navy-mid)); color:var(--color-white); }
.section__badge--accent { background-color:#FF6600; }

/* Schedule Card */
.schedule-card { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-xl); background:linear-gradient(135deg,#1a2642 0%,#243454 100%); border:1px solid rgba(0,83,155,0.3); }
.schedule-grid { display:grid; }
.schedule-grid > * { border-top:1px solid rgba(0,83,155,0.3); }
.schedule-grid > *:first-child { border-top:none; border-left:none; }
.schedule-section { padding:2rem; }
.schedule-section__header { display:flex; align-items:center; gap:0.75rem; margin-bottom:1.5rem; }
.schedule-section__icon { width:3rem; height:3rem; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.5rem; }
.schedule-section__icon--morning { background:linear-gradient(135deg,var(--color-saffron),var(--color-saffron-light)); }
.schedule-section__icon--evening { background:linear-gradient(135deg,var(--color-navy),var(--color-navy-mid)); }
.schedule-section__title { color:var(--color-white); font-size:1.25rem; font-weight:600; }
.schedule-section__subtitle { color:var(--color-text-light); font-size:0.875rem; }
.schedule-list { display:flex; flex-direction:column; gap:1rem; }
.schedule-item { display:flex; align-items:flex-start; gap:1rem; padding:0.75rem; border-radius:var(--radius-sm); background:rgba(0,83,155,0.2); border-left:3px solid var(--color-saffron); transition:var(--transition-base); }
.schedule-item:hover { box-shadow:var(--shadow-md); }
.schedule-item__time { font-weight:600; font-size:0.875rem; white-space:nowrap; color:var(--color-saffron); }
.schedule-item__title { font-weight:500; color:var(--color-white); }
.schedule-item__subtitle { font-size:0.875rem; color:var(--color-text-light); }

/* Events */
.events-grid { display:grid; gap:1rem; }
.event-card { padding:1.25rem; border-radius:var(--radius-lg); background:linear-gradient(135deg,#1a2642,#243454); transition:var(--transition-base); }
.event-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-0.25rem); }
.event-card--saffron { border-left:4px solid var(--color-saffron); }
.event-card--navy { border-left:4px solid var(--color-navy); }
.event-card--special { background:linear-gradient(135deg,var(--color-saffron),var(--color-saffron-light)); color:var(--color-white); border:2px solid var(--color-saffron); }
.event-card__header { display:flex; align-items:center; gap:0.5rem; margin-bottom:0.75rem; }
.event-card__icon { font-size:1.25rem; }
.event-card__day { font-family:var(--font-heading); font-weight:600; color:var(--color-white); }
.event-card__list { display:flex; flex-direction:column; gap:0.5rem; font-size:0.875rem; }
.event-card__item { color:#E2E8F0; }
.event-card__item span { color:var(--color-saffron); }
.event-card--special .event-card__item { opacity:0.95; }

/* Contact */
.contact-card { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-xl); background:linear-gradient(135deg,var(--color-navy),var(--color-navy-mid)); border:1px solid rgba(255,153,51,0.3); }
.contact-card__content { padding:3rem 2rem; text-align:center; color:var(--color-white); }
.contact-card__title { font-size:1.875rem; margin-bottom:1.5rem; }
.contact-grid { display:grid; gap:2rem; max-width:64rem; margin:0 auto; }
.contact-item__icon { width:3.5rem; height:3.5rem; border-radius:50%; margin:0 auto 1rem; display:flex; align-items:center; justify-content:center; background-color:rgba(255,153,51,0.2); font-size:1.5rem; }
.contact-item__title { font-weight:600; margin-bottom:0.5rem; }
.contact-item__text { color:rgba(255,255,255,0.8); font-size:0.875rem; }
.contact-card .contact-item #phone a, .contact-card .contact-item #address a { color:rgba(255,255,255,0.8); text-decoration:none; transition:var(--transition-base); }
.contact-card .contact-item #phone a:hover, .contact-card .contact-item #address a:hover { color:var(--color-saffron); }
.contact-card__footer { margin-top:2.5rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,0.1); }
.contact-card__footer-primary { font-size:0.875rem; color:rgba(255,255,255,0.6); }
.contact-card__footer-secondary { font-size:0.75rem; color:rgba(255,255,255,0.4); margin-top:0.5rem; }

/* Footer */
.footer { padding:1.5rem 0; text-align:center; background:rgba(0,0,0,0.05); border-top:1px solid rgba(0,83,155,0.2); }
.footer__text { font-size:0.875rem; color:var(--color-text-mid); }

/* Terms */
.terms-content { border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-xl); background:linear-gradient(135deg,var(--color-navy),var(--color-navy-mid)); border:1px solid rgba(255,153,51,0.3); }
.terms-content__content { padding:3rem 2rem; text-align:center; color:var(--color-white); }
.terms-content__title { font-size:1.875rem; margin-bottom:1.5rem; }
.terms-grid { display:grid; gap:2rem; max-width:64rem; margin:0 auto; }
.eyebrow { display:inline-block; padding:0.35rem 1rem; border-radius:var(--radius-md); background:rgba(255,153,51,0.15); color:var(--color-saffron); font-size:0.875rem; font-weight:600; margin-bottom:1rem; }
.section-title { display:block; color:var(--color-white); font-family:var(--font-heading); font-size:2rem; font-weight:700; margin-bottom:1rem; }
.intro-copy { max-width:48rem; margin:0 auto 2rem; color:rgba(255,255,255,0.85); line-height:1.8; }
.term-card { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-lg); overflow:hidden; text-align:left; transition:var(--transition-base); }
.term-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.term-card:not(.spring):not(.summer) { border-top:4px solid #ffd166; }
.term-card.spring { border-top:4px solid var(--color-navy); }
.term-card.summer { border-top:4px solid var(--color-saffron); }
.term-card-header { padding:1.5rem; border-bottom:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.04); }
.term-card-title { font-family:var(--font-heading); color:var(--color-white); font-size:1.4rem; margin-bottom:0.25rem; }
.term-card-year { color:var(--color-saffron); font-weight:600; }
.term-card-body { padding:1.5rem; display:flex; flex-direction:column; gap:1.25rem; }
.term-detail { display:flex; flex-direction:column; gap:0.35rem; }
.term-label { font-size:0.75rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--color-text-light); }
.term-value { color:var(--color-white); font-weight:500; }
.term-break { color:#ffd166; font-weight:500; line-height:1.6; }
.important-dates { margin-top:2rem; display:grid; gap:1rem; }
.important-note { display:flex; align-items:flex-start; gap:1rem; text-align:left; padding:1rem 1.25rem; border-radius:var(--radius-md); background:rgba(255,255,255,0.08); border-left:4px solid var(--color-saffron); }
.notice-icon { width:2rem; height:2rem; min-width:2rem; border-radius:50%; background:var(--color-saffron); color:var(--color-white); display:flex; align-items:center; justify-content:center; font-weight:700; }
.notice-copy { margin:0; color:rgba(255,255,255,0.9); }
.notice-copy strong { display:block; margin-bottom:0.25rem; color:var(--color-white); }

/* Contact links */
#phone a, #address a { color:rgba(255,255,255,0.8); text-decoration:none; transition:var(--transition-base); }
#phone a:hover, #address a:hover { color:var(--color-saffron); }

/* Mobile adjustments - moved to top-level media queries below */

/* Top-level responsive rules */
@media (max-width: 768px) {
  .heading-xl { font-size: 1.875rem; }
  .heading-lg { font-size: 1.5rem; }
  .header__content { padding: 3rem 1rem 5rem; }
  .header__icon { width: 5rem; height: 5rem; }
  .header__subtitle { font-size: 1.125rem; }
  .contact-card__title { font-size: 1.5rem; }
  .terms-content__title { font-size: 1.5rem; }
  .section-title { font-size: 1.5rem; }
  .terms-content__content { padding: 2rem 1rem; }
  .term-card-header, .term-card-body { padding: 1rem; }
  .important-note { flex-direction: column; }
}

@media (min-width: 640px) {
  .events-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 768px) {
  .header__content { padding: 5rem 1rem 8rem; }
  .header__icon { width: 6rem; height: 6rem; }
  .header__subtitle { font-size: 1.25rem; }
  .schedule-grid { grid-template-columns: repeat(2, 1fr); }
  .schedule-grid > * { border-top: none; border-left: 1px solid rgba(0, 83, 155, 0.3); }
  .contact-grid { grid-template-columns: repeat(3, 1fr); }
  .terms-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1024px) {
  .events-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1280px) {
  .events-grid { grid-template-columns: repeat(4, 1fr); }
}

/* Animations */
@keyframes fadeInUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
.animate-fade-in { animation:fadeInUp 0.6s ease-out forwards; opacity:0; }
.animate-delay-1 { animation-delay:0.1s; }
.animate-delay-2 { animation-delay:0.2s; }
.animate-delay-3 { animation-delay:0.3s; }
.animate-delay-4 { animation-delay:0.4s; }