/* -------------------------------------------------
   ROOT THEME — Montessori Warm + Brand Variables
--------------------------------------------------- */
:root {
  /* Brand colors */
  --primary: #FC46AA;       /* Pink brand accent */
  --accent: #4CBB17;        /* Montessori green (new Bootstrap primary) */

  /* Warm Montessori Palette */
  --warm1: #FFF6F0;
  --warm2: #F7EDE4;
  --wood: linear-gradient(180deg,#f3e9df 0%, #efe0cf 100%);
  --muted: #7b6f66;

  /* Component UI */
  --radius: 16px;

  /* Typography */
  font-family: 'Nunito', system-ui, -apple-system, 'Segoe UI', Roboto, Arial;
}

/* -------------------------------------------------
   BASE STYLES
--------------------------------------------------- */
body {
  background: var(--warm1);
  color: #2b2b2b;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 { color: #3b2d24; }
p, small { color: var(--muted); }

/* -------------------------------------------------
   GENERAL COMPONENTS
--------------------------------------------------- */

/* Brand bubble in navbar */
.brand-bubble {
  display: inline-flex;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #fff;
  color: var(--primary);
  font-weight: 700;
  border: 3px solid rgba(255,255,255,0.6);
}

/* Soft section background */
.bg-soft {
  background: rgba(76,187,23,0.08);
}

/* Card */
.card {
  border-radius: 14px;
  background: #fff;
  border: none;
}

/* -------------------------------------------------
   BOOTSTRAP OVERRIDES — Make primary = green
--------------------------------------------------- */

.btn-primary,
.btn-primary:active,
.btn-primary:focus {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(76,187,23,0.18);
}

.btn-primary:hover {
  background: #3ca113 !important;
}

.btn-secondary {
  background: transparent;
  border: 1px solid rgba(0,0,0,0.06);
  color: #6b5b50;
  border-radius: 12px;
}

.btn-success {
  background: var(--accent) !important;
  border: 0;
}

/* PINK ACCENT BUTTON */
.btn-accent {
  background: var(--primary);
  color: #fff;
  border-radius: 12px;
}

/* -------------------------------------------------
   HERO (Montessori warm design)
--------------------------------------------------- */

.hero {
  background:
    radial-gradient(1200px 400px at 10% 10%, rgba(252,70,170,0.06), transparent 10%),
    radial-gradient(900px 300px at 90% 90%, rgba(76,187,23,0.04), transparent 10%),
    var(--wood);
  border-radius: 20px;
  padding: 64px 28px;
  margin: 20px 0;
  box-shadow: 0 10px 30px rgba(33,33,33,0.06);
  position: relative;
  overflow: hidden;
}

.hero .headline {
  font-size: clamp(1.8rem, 3.6vw, 2.6rem);
  line-height: 1.05;
  font-weight: 700;
  color: #3b2d24;
}

.hero .tag {
  color: var(--muted);
  margin-top: 8px;
  display: block;
  font-size: 1rem;
}

/* Decorative leaf */
.leaf {
  position: absolute;
  right: -40px;
  top: -40px;
  opacity: 0.12;
  transform: rotate(18deg);
}

/* -------------------------------------------------
   FEATURES / BENEFITS
--------------------------------------------------- */

.feature-card {
  background: var(--warm2);
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 8px 26px rgba(60,40,30,0.04);
  border: 1px solid rgba(255,255,255,0.6);
}

.feature-icon {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0,0,0,0.04);
  font-size: 22px;
  color: var(--primary);
}

/* Checkmark list */
.benefits li {
  margin-bottom: 12px;
  color: #3b2d24;
}

.benefits i {
  color: var(--accent);
  margin-right: 8px;
}

/* -------------------------------------------------
   GALLERY
--------------------------------------------------- */

.gallery-thumb img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.06);
}

@media (max-width: 767px) {
  .gallery-thumb img { height: 120px; }
}

/* -------------------------------------------------
   TESTIMONIALS / AVATARS
--------------------------------------------------- */
.kid-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,0.08);
}

/* -------------------------------------------------
   CTA SECTIONS
--------------------------------------------------- */

.contact-cta {
  background: linear-gradient(
    90deg,
    rgba(76,187,23,0.06),
    rgba(252,70,170,0.04)
  );
  padding: 22px;
  border-radius: 14px;
}

/* -------------------------------------------------
   MICRO-ANIMATIONS
--------------------------------------------------- */

.reveal {
  transform: translateY(18px);
  opacity: 0;
  transition: all 700ms cubic-bezier(.2,.9,.2,1);
}

.reveal.in {
  transform: translateY(0);
  opacity: 1;
}

/* ----------------------------------------------------------------
   Homepage extensions: airy layout, bigger photos, blobs, stats,
   timeline, testimonial carousel tweaks, CTA strips, parallax
   ---------------------------------------------------------------- */

/* Aerial spacing — increase paddings & gaps (medium airiness) */
.homepage-aero { --space-lg: 36px; --space-md: 20px; --space-sm: 12px; }
.hero { padding: calc(var(--space-lg) + 8px) 24px; border-radius: 22px; }

/* Headline sizing slightly larger */
.headline { font-size: clamp(1.9rem, 3.8vw, 2.8rem); line-height:1.02; }

/* more airy cards */
.feature-card.roomy { padding: 22px; border-radius: 16px; }
.airy-card { border-radius: 14px; background:#fff; box-shadow:0 12px 32px rgba(0,0,0,0.05); }

/* pill and hero copy spacing */
.pill { padding: 12px 16px; border-radius: 999px; font-weight:700; }

/* hero image larger (about +35%) */
.hero-image { width:100%; height: auto; border-radius: 14px; max-height: 420px; object-fit:cover; }

/* feature icon scale */
.feature-icon { width:64px; height:64px; font-size:24px; border-radius:14px; }

/* increase spacing between feature items */
.row.gx-4 > .col-md-6 { padding-bottom: 22px; }

/* CTA strip */
.cta-strip { background: linear-gradient(90deg, rgba(76,187,23,0.06), rgba(252,70,170,0.04)); padding:18px; border-radius:14px; box-shadow:0 8px 20px rgba(0,0,0,0.04); }

/* STAT BAR */
.stats-bar { background: transparent; padding: 12px 0 24px; }
.stat { padding: 14px 10px; }
.stat-value { font-size: clamp(1.4rem, 2.4vw, 2.2rem); font-weight:800; color:var(--accent); }
.stat-label { margin-top:4px; }

/* Testimonial carousel tweaks */
.kid-avatar { width:72px; height:72px; border-radius:50%; object-fit:cover; border:3px solid #fff; box-shadow:0 10px 24px rgba(0,0,0,0.08); }
.carousel-inner .carousel-item { padding:12px 0; }

/* Timeline styles */
.timeline { display:flex; flex-direction:column; gap:14px; max-width:900px; margin:0 auto; }
.timeline-item { display:flex; gap:18px; align-items:flex-start; padding:12px 16px; background: #fff; border-radius:12px; box-shadow:0 8px 22px rgba(0,0,0,0.04); }
.timeline-time { min-width:78px; text-align:right; font-weight:700; color:var(--accent); }
.timeline-body { flex:1; }

/* Gallery larger pictures (+35%) */
.gallery-grid-lg .gallery-thumb-lg img,
.gallery-thumb-lg img {
  width:100%; height: auto; border-radius:14px; object-fit:cover; max-height:420px;
  box-shadow:0 10px 28px rgba(0,0,0,0.08);
}

/* Lightbox for gallery - override to be roomy */
.lightbox img { max-width:94% !important; max-height:94% !important; border-radius:12px !important; }

/* Parallax blob background in hero */
.hero-parallax { position:relative; overflow:visible; }
.hero-blobs {
  position:absolute; inset:auto; right:-6%; top:-12%; width:680px; height:680px; pointer-events:none;
  background:
    radial-gradient(closest-side at 20% 20%, rgba(76,187,23,0.06), transparent 20%),
    radial-gradient(closest-side at 80% 80%, rgba(252,70,170,0.06), transparent 20%),
    linear-gradient(180deg,#fff6f0 0%, #fff 100%);
  border-radius:50%;
  filter: blur(18px);
  transform: translateY(0);
  transition: transform 0.2s linear;
  z-index:0;
}

/* Make sure hero copy sits above blobs */
.hero .hero-copy, .hero .feature-card { position:relative; z-index:2; }

/* CTA accent button */
.btn-accent { background:var(--primary); color:#fff; border-radius:12px; padding:10px 16px; }

/* more breathing room for sections */
.main-section { padding-top:28px; padding-bottom:28px; }

/* responsive adjustments */
@media (max-width: 991px) {
  .hero-blobs { display:none; }
  .hero-image { max-height:320px; }
  .kid-avatar { width:64px; height:64px; }
}

/* small visual polish */
.feature-card .feature-icon { box-shadow: 0 8px 22px rgba(0,0,0,0.06); background:#fff; display:grid; place-items:center; color:var(--primary); }
