/* ── Google Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=DM+Sans:wght@300;400;500;600;700&display=swap');

/* ── Material Icons ── */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  vertical-align: middle;
}

/* ── Organic Wave Dividers ── */
.organic-wave          { width: 100%; height: 60px; display: block; }
.leaf-divider-cream    { fill: #F8F5EE; }
.leaf-divider-white    { fill: #ffffff; }
.leaf-divider-green    { fill: #002203; }
.leaf-divider-surface  { fill: #fcf9f2; }

/* ── Floating Leaf Hero Animation ── */
.floating-leaf { animation: float 6s ease-in-out infinite; }
@keyframes float {
  0%, 100% { transform: translateY(0)     rotate(0deg); }
  50%       { transform: translateY(-20px) rotate(10deg); }
}

/* ── Organic Shape (blob border-radius) ── */
.organic-shape {
  border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
}

/* ── Programme Horizontal Scroll ── */
.program-scroll::-webkit-scrollbar { display: none; }
.program-scroll { -ms-overflow-style: none; scrollbar-width: none; }

/* ── Programme Card Hover ── */
.program-card-hover:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 25px -5px rgba(55,106,51,.1),
              0 8px 10px -6px rgba(55,106,51,.1);
}

/* ── Admission Step Arrow (desktop) ── */
.step-arrow {
  position: relative;
}
.step-arrow::after {
  content: '→';
  position: absolute;
  right: -24px; top: 50%;
  transform: translateY(-50%);
  color: #dcc1b1;
  font-size: 24px;
}
@media (max-width: 768px) {
  .step-arrow::after {
    content: '↓';
    right: 50%; top: auto; bottom: -32px;
    transform: translateX(50%);
  }
}

/* ── Sticky Nav active state ── */
.sticky-nav-active {
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05);
  background-color: rgba(252,249,242,0.95);
  backdrop-filter: blur(8px);
}

/* ── Scroll-reveal base state ── */
.reveal { opacity: 0; transform: translateY(32px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ── Base resets ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
img  { display: block; max-width: 100%; }
a    { text-decoration: none; }
