html {
  scroll-behavior: smooth;
}

:root{
  --bg: #f8faf6;
  --panel: #ffffff;
  --text: #12312a;
  --muted: #657070;
  --green-600: #2e7d5e;
  --green-400: #57a882;
  --blue-500: #2b7fa6;
  --beige: #efe7db;
  --glass: rgba(255,255,255,0.6);
  --shadow-lg: 0 20px 50px rgba(18,49,42,0.08);
  --transition: 320ms cubic-bezier(.2,.9,.2,1);
  --radius-lg: 18px;
  --container: 1200px;
  --accent-gradient: linear-gradient(135deg,var(--green-600),var(--blue-500));
  --accent-soft: linear-gradient(135deg, rgba(46,125,94,0.12), rgba(43,127,166,0.12));
  --glass-border: rgba(18,49,42,0.06);
  --max-width-content: 1100px;
}

* { box-sizing: border-box; }
html,body { height:100%; }
body{
  overflow-x: hidden;
  margin:0;
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  color:var(--text);
  background: linear-gradient(180deg, var(--bg), #eef6f1 140%);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.55;
  -webkit-tap-highlight-color: transparent;
}

.loading-screen { will-change: opacity; }

.container{
  width: min(94%, var(--container));
  margin: 0 auto;
}

.skip-link{
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px; height: 1px;
  overflow: hidden;
}
.skip-link:focus{
  left: 1rem; top:1rem;
  width: auto; height: auto;
  padding: .5rem .8rem;
  background: var(--panel);
  color: var(--text);
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(18,49,42,0.12);
}

h1,h2,h3,h4{ font-family: "Merriweather", serif; color: var(--text); margin:0; }
h1{ font-size: 1.75rem; line-height:1.05; font-weight:800; }
h2{ font-size:2.4rem; font-weight:700; }
h3{ font-size:1rem; font-weight:700; }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  align-items: center;
  justify-content: center;
  text-align: center;
  vertical-align: middle;
  gap:.5rem;
  padding:.6rem 1rem;
  border-radius: 999px;
  cursor:pointer;
  border:2px solid transparent;
  font-weight:600; text-decoration:none;

  transition: transform var(--transition), box-shadow var(--transition);
}
.btn:active{ transform: translateY(1px); }
.btn-primary{
  background: var(--accent-gradient);
  color: black;
  box-shadow: 0 10px 30px rgba(46,125,94,0.12);
}
.btn-primary:hover{ transform: translateY(-4px); }
.btn-ghost{
  background: rgba(255,255,255,0.1);
  color: black;
  border-color: rgba(46,125,94,0.38);
}
.btn-ghost:hover{ transform: translateY(-4px); }
.btn-outline{
   background: rgba(255,255,255,0.1);
  color: black;
  border-color: rgba(46,125,94,0.38);
}
.btn-outline:hover{ transform: translateY(-4px); }

.loading-screen{
  position: fixed; inset:0;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(180deg, rgba(6,30,20,0.92), rgba(6,30,20,0.6));
  color: #fff; z-index:9999;
  transition: opacity .5s ease;
}
.loading-inner{ text-align:center; max-width:360px; padding:1.25rem; }
.loading-spinner{
  width:72px; height:72px;
  border-radius:50%;
  border:6px solid rgba(255,255,255,0.12);
  border-top-color: rgba(255,255,255,0.9);
  animation: spin 1s linear infinite;
  margin: 0 auto 1rem;
}
@keyframes spin{ to{ transform: rotate(360deg); } }

.progress-bar{
  position: fixed; top:0; left:0; height:4px; width:0%;
  background: linear-gradient(90deg, rgba(46,125,94,1), rgba(43,127,166,1));
  z-index: 9998;
  transition: width .2s ease-out;
}

.floating-elements{ position: fixed; inset:0; pointer-events:none; z-index:1; }
.floating-shape{
  position:absolute; opacity:.08; border-radius:14px; transform-origin:center;
  filter: blur(8px);
  will-change: transform, opacity;
}
.shape-1{ top:6%; left:6%; width:140px; height:140px; background: linear-gradient(135deg,#8fd3a7,#2e7d5e); animation: floaty 18s ease-in-out infinite; }
.shape-2{ bottom:12%; right:10%; width:220px; height:220px; background: linear-gradient(135deg,#8ec7e0,#2b7fa6); animation: floaty 22s ease-in-out infinite; animation-delay:-6s; }
.shape-3{ top:40%; right:30%; width:90px; height:90px; background: linear-gradient(135deg,#efe0c8,#e3b77b); animation: floaty 20s ease-in-out infinite; animation-delay:-10s; }
@keyframes floaty{
  0%{ transform: translateY(0) rotate(0deg) }
  50%{ transform: translateY(-28px) rotate(8deg) }
  100%{ transform: translateY(0) rotate(0deg) }
}


.navbar{
  position: sticky; top:0; z-index: 1000;
  background: linear-gradient(180deg, rgba(255,255,255,0.6), rgba(255,255,255,0.4));
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(18,49,42,0.04);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:.8rem 0;
  max-width:var(--max-width-content); margin:0 auto;
}
.logo img{ height:44px; display:block; margin-right:6rem;}

.nav-links{ display:none; }
.nav-links ul{ display:flex; gap:1rem; align-items:center; list-style:none; margin:0; padding:0; }
.nav-links a{ padding:.5rem .8rem; color:var(--text); font-weight:600; border-radius:10px; transition: all var(--transition); text-decoration: none;}
.nav-links a:hover{ color:var(--green-600); background: rgba(46,125,94,0.06); transform: translateY(-3px); }

.mobile-menu-btn{
  display:inline-flex; gap:.35rem; flex-direction:column; padding:.4rem; border-radius:8px;
  background: transparent; border:0; cursor:pointer;
}
.mobile-menu-btn span{ width:22px; height:3px; background:var(--text); border-radius:2px; transition: all .28s ease; }

.nav-links.active{ display:block; position: absolute; top:100%; left:0; right:0; background: rgba(255,255,255,0.98); padding:1.25rem; box-shadow: 0 12px 40px rgba(18,49,42,0.06); }
.nav-links.active ul{ flex-direction:column; gap:.75rem; }


.hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64vh;
  background-image: url('fond-hero.jpg'); /* image dans le même dossier */
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  color: #fff;
  overflow: hidden;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 61, 46, 0.55), rgba(11, 61, 46, 0.15));
  z-index: 1;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: var(--max-width-content);
  margin: 0 auto;
  padding: 5rem 1rem;
  display: grid;
  gap: 1rem;
  align-items: center;
}

.hero h1 {
  font-size: clamp(1.5rem, 5vw, 3.2rem);
  line-height: 1;
  margin-top: 3rem;
  color: #fff;
  text-shadow: 0 10px 30px rgba(3, 15, 12, 0.45);
}

.hero-sub {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 300;
  max-width: 60ch;
}

.hero-ctas {
  display: flex;
  gap: 1rem;
  margin-top: 0.75rem;
  flex-wrap: wrap;
}

.hero-stats{ display:grid; grid-template-columns: repeat(2,1fr); gap:.75rem; margin-top:1.25rem; max-width: 720px; }
.hero-stat{ background: var(--accent-soft); padding:.9rem 1rem; border-radius: 12px; display:flex; flex-direction:column; align-items:flex-start; color: #fff; backdrop-filter: blur(6px); border:1px solid var(--glass-border); }
.hero-stat-number{ font-weight:800; font-size:1.35rem; color: #fff; }
.hero-stat-label{ font-size:.85rem; opacity:.95; margin-top:.25rem; }


.hero-infos {
  margin-top: 1.5rem;
  color: #fff;
}

.hero-infos-title {
  font-size: 1.6rem;
  margin-bottom: 0.75rem;
  color: white;
}


.hero-infos-content {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.hero-info-skeleton {
  background: rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 0.9rem 1rem;
  height: 70px;
  position: relative;
  overflow: hidden;
}
.hero-info-skeleton::after {
  content: "";
  position: absolute;
  top:0; left:-150px;
  height:100%; width:120px;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.2), rgba(255,255,255,0));
  animation: shimmer 1.2s infinite;
}
@keyframes shimmer {
  100% { left: 100%; }
}


.hero-info-card {
  background: rgba(255,255,255,0.08);
  padding: 0.9rem 1rem;
  border-radius: 12px;
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 6px 16px rgba(0,0,0,0.12);
  position: relative;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.hero-info-card.show {
  opacity: 1;
  transform: none;
}

.hero-info-text {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.95rem;
  line-height: 1.4;
}
.hero-info-icon {
  font-size: 1.1rem;   /* taille de l’emoji */
  line-height: 1;
  flex-shrink: 0;
}

.hero-info-date {
  font-size: 0.75rem;
  background: rgba(255,255,255,0.15);
  padding: 0.2rem 0.6rem;
  border-radius: 8px;
  display: inline-block;
  float: right;
  margin-top: 0.4rem;
}

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

.hero-wave{ display:block; position:absolute; bottom:0; left:0; width:100%; height:64px; color: #fff; opacity: .06; }


.section{ padding:3.25rem 0; }
.section-header{ text-align:center; margin-bottom:1.25rem; font-size: 1.2rem;}
.section-sub{ color:var(--muted); margin-top:.6rem; max-width:72ch; margin-left:auto; margin-right:auto; }


.services {
  background: linear-gradient(180deg, rgba(239, 244, 238, 0.9), rgba(235, 243, 240, 0.9));
}

.services-grid {
  width: 100%;
  max-width: 100%;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  margin-top: 1.25rem;
}

.service-card {
  background: var(--panel);
  border-radius: 14px;
  padding: 1rem;
  padding-top: 1.6rem;
  box-shadow: var(--shadow-lg);
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
  transition: transform var(--transition), box-shadow var(--transition);
  cursor: default;
  overflow: visible;
}

.service-card:hover {
  transform: none;
  box-shadow: var(--shadow-lg);
}

.service-card.hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 60px rgba(18, 49, 42, 0.08);
}

@media (max-width: 600px) {
  .service-card {
    flex-direction: column;
    align-items: flex-start;
  }

  .service-icon img {
    width: 64px;
    height: auto;
  }

  .service-card h4 {
    margin-top: -1rem;
  }
.service-card p {
 margin-top: -0.8rem;
 margin-bottom: -0.4rem !important;
}
}

.service-icon img {
  width: 56px;
  height: 56px;
  display: block;
  object-fit: cover;
  object-position: top center;
  border-radius: 4px;
}

.service-card h3 {
  font-size: 1rem;
  margin-bottom: 0.25rem;
}

.service-card p {
  color: var(--muted);
  margin-top: -0.1rem !important;
  margin-bottom: 0.5rem;
}

.service-cta {
  color: var(--green-600);
  font-weight: 800;
  text-decoration: none;
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  height: 100%;
  transition: color 0.2s;
  cursor: pointer;
  margin-top: -0.3rem;
}

.service-card::before{
  content:''; position:absolute; left:0; right:0; top:0; height:4px; background: linear-gradient(90deg,var(--green-600),var(--blue-500)); transform-origin:left; transform: scaleX(0); transition: transform 320ms ease;
}
.service-card:hover::before{ transform: scaleX(1); }


.about-inner {
  max-width: var(--max-width-content);
  margin: 0 auto;
}

.about-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  align-items: center;
}

.about-photo img {
  width: 130%;
  object-fit: cover;
  object-position: -32px center;
  border-radius: 14px;
  box-shadow: var(--shadow-lg);
  transition: width 0.3s ease, height 0.3s ease;
}

.about-content p {
  color: var(--muted);
  margin-left: 4rem;
}

@media (max-width: 768px) {
  .about-photo img {
    width: 100%;
    height: auto;
    object-position: center center;
  }

  .about-content p {
    margin-left: 2rem;
  }
}

@media (max-width: 480px) {
  .about-photo img {
    width: 100%;
    height: auto;
    object-position: center center;
  }

  .about-content p {
    margin-left: 1rem;
  }
}


.about-features{ color: black; display:grid; gap:.5rem; margin-top:1rem; margin-left:4rem;}
.about-actions{ display:flex; gap: .75rem; margin-top:5rem; margin-left:4rem;}


.programs-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  margin-top: 1rem;
}

.program-card {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  transition: transform var(--transition), box-shadow var(--transition);
  position: relative;
  color: #fff;
}


.program-card.featured {
  transform: translateY(-6px);
  box-shadow: 0 30px 80px rgba(18, 49, 42, 0.12);
  border: 1px solid rgba(46, 125, 94, 0.06);
}


.program-header {
  padding: 1rem;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  align-items: flex-start;
  min-height: 150px;
}


.program-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 0;
}


.program-header > *,
.program-content {
  position: relative;
  z-index: 1;
}

.program-name {
font-weight: 900;
font-size: 1.1rem;
color: black;
}

.program-price {
  font-weight: 800;
  font-size: 1.5rem;
  color: #fff;
}

.program-duration {
  font-size: 1rem;
  color: #e0e0e0;
}

.program-content {
  padding: 0.8rem;
  font-size: 0.9rem;
  color: var(--text);
}

.program-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}


.program-cta {
  width: 100%;
  padding: 0.8rem;
  border-radius: 10px;
  background: linear-gradient(90deg, var(--green-600), var(--blue-500));
  color: #fff;
  border: 0;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
  cursor: pointer;
}

.program-cta:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
  filter: brightness(1.1);
}


.testimonial-slider {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 1rem;
  width: 90%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.slides {
  width: 100%;
  overflow: hidden;
  border-radius: 12px;
}

.slide {
  padding: 1rem;
  min-height: 10px;
  display: none;
  background: var(--panel);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
}

.slide[aria-hidden="false"] {
  display: block;
  animation: fadeUp .8s ease both;
}

.slider-btn {
  background: transparent;
  border: 0;
  font-size: 1.25rem;
  cursor: pointer;
  padding: .5rem;
  color: var(--green-600);
}

.slider-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 1rem;
}


.dots {
  display: flex;
  gap: .5rem;
  align-items: center;
  justify-content: center;
}

.dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ddd;
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.dot.active {
  background: linear-gradient(90deg, var(--green-600), var(--blue-500));
}

@media (max-width: 768px) {
  .testimonial-slider {
    width: 100%;
  }

  .slider-controls {
    flex-direction: row;
    gap: 1rem;
  }

  .slider-btn {
    font-size: 1rem;
    padding: .3rem;
  }

  .dots {
    gap: 0.5rem;
  }
}



.gallery-grid {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(2, 1fr);
}
.gallery-item {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.gallery-item img {
  width: 100%;
  border-radius: 8px;
  display: block;
  transition: transform .28s ease;
}
.gallery-item:hover img {
  transform: scale(1.03);
}


.lightbox {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(6, 20, 16, 0.86);
  z-index: 9999;
  padding: 1.25rem;
}
.lightbox.active {
  display: flex;
}
.lb-content {
  position: relative;
  max-width: 1200px;
  width: 100%;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.lb-content img {
  width: 100%;
  height: auto;
  max-height: 85vh;
  border-radius: 12px;
  object-fit: contain;
}


.lightbox-close {
  position: absolute;
  top: -10px;
  right: -10px;
  background: #fff;
  border: none;
  color: #333;
  font-size: 1.5rem;
  font-weight: bold;
  padding: .25rem .5rem;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}
.lightbox-close:hover {
  background: #eee;
}



.contact-inner{ max-width:var(--max-width-content); margin:0 auto; padding:0 1rem; }
.contact-grid{ display:grid; gap:1rem; grid-template-columns: 1fr; }
.contact-form{ background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.98)); padding:1rem; border-radius:12px; box-shadow: var(--shadow-lg); }
.form-row{ display:grid; gap:.75rem; margin-bottom:.75rem; }
.form-row.columns-2{ grid-template-columns: 1fr 1fr; gap: .75rem; }
.form-group label{ display:block; font-size:1rem; font-weight:600; margin-bottom:.35rem; margin-top:0.6rem; color:var(--text); }
.form-group input, .form-group textarea, .form-group select{
  width:100%; padding:.6rem .8rem; border-radius:10px; border:1px solid rgba(18,49,42,0.06); font-size:0.95rem; background:#fff; }
.form-group textarea{ min-height:120px; resize:vertical; }
.error{ color:#b00020; font-size:.85rem; margin-top:.35rem; }
.socials {display: flex; gap: 12px; margin-top:0.6rem; justify-content: left; align-items: center;}
.socials img { width: 45px; height: 45px; object-fit: contain; transition: transform 0.2s; }
.socials a:hover img { transform: scale(1.1); }
.contact-link {
  color: inherit;
  text-decoration: none;
  opacity: 1;
  transition: opacity 0.3s ease;
}
.contact-link:hover {
  opacity: 0.5;
}

.map-button {
  margin-top: -0.6rem;
  margin-bottom: 0.9rem;
}

.map-button .btn {
  font-size: 1rem;
  padding: 0.4rem 1.2rem;
}



.form-actions{ display:flex; gap:.75rem; margin-top:.8rem; align-items:center; }
.form-feedback.success-message {
  color: #2e7d32;
  margin-top: 1.5rem;
  font-weight: 600;
}

.form-loading {
  margin-left: 1rem;
  margin-top: 2rem;
  font-style: italic;
  color: #666;
  animation: fadeIn 0.3s ease-in-out;
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.spinner {
  width: 24px;
  height: 24px;
  animation: rotate 1s linear infinite;
  margin-left: 1rem;
}

.spinner .path {
  stroke: #333;
  stroke-linecap: round;
  animation: dash 1.5s ease-in-out infinite;
}

@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}

@keyframes dash {
  0% {
    stroke-dasharray: 1, 150;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -35;
  }
  100% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -124;
  }
}



.fab{
  position: fixed; right:20px; bottom:20px; width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background: var(--accent-gradient); color:#fff; border:0; box-shadow: 0 12px 40px rgba(18,49,42,0.12); z-index:999;
  cursor:pointer; transform: translateY(0); transition: transform var(--transition), opacity var(--transition);
  opacity:0; visibility:hidden;
}
.fab.show{ opacity:1; visibility:visible; transform: translateY(-6px); }



.site-footer {
  padding: 1.8rem 0;
  background: linear-gradient(180deg, rgba(100, 170, 100, 0.5), rgba(70, 140, 70, 0.5));
  color: #000000;
  font-family: sans-serif;
}

.footer-notice-content {
            background-color: rgba(255, 255, 255, 0.1);
            width: 100%;
            margin: 0 auto;
            backdrop-filter: blur(4px);
            padding: 0.4rem;
            margin-top: -0.8rem;
            margin-bottom: -1rem;
            border-radius: 0.5rem;
        }

        .footer-notice-text {
            font-size: 0.9rem;
            color: black;
            text-align: center;
        }

.footer-inner {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-start;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
  gap: 2rem;
}



.footer-column h4 {
  margin-bottom: 0.5rem;
  font-weight: bold;
  font-size: 1.1rem;
}

.footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-column ul li {
  margin-bottom: 0.5rem;
}

.footer-column a {
  color: #000;
  text-decoration: none;
}

.footer-column a:hover {
  text-decoration: underline;
}

.footer-brand .muted {
  margin-top: 0.5rem;
  color: #333;
  font-size: 1rem;
}


.footer-legal .copyright {
  margin-top: 1rem;
  font-size: 0.9rem;
  color: #444;
}


.footer-separator {
  border: none;
  height: 1px;
  background-color: rgba(0, 0, 0, 0.1);
  margin: 0.4rem auto 1rem;
  width: 90%;
}


.footer-credit {
  text-align: center;
  font-size: 0.9rem;
  color: #333;
  margin-bottom: -1.4rem;
}

.footer-credit a {
  color: #000;
  text-decoration: underline;
}
.footer-credit a:hover {
  opacity: 0.5;
}



.fade-up{ opacity:0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; will-change: opacity, transform; }
.fade-up.visible{ opacity:1; transform: none; }
.fade-left{ opacity:0; transform: translateX(-18px); transition: opacity .6s ease, transform .6s ease; }
.fade-left.visible{ opacity:1; transform:none; }
.scale-in{ opacity:0; transform: scale(.98); transition: opacity .6s ease, transform .6s ease; }
.scale-in.visible{ opacity:1; transform: none; }


@keyframes fadeUp{ from{ opacity:0; transform: translateY(8px); } to{ opacity:1; transform:none; } }


@media(min-width:640px){
  .nav-links{ display:block; }
  .nav-links ul{ gap:1.25rem; }
  .mobile-menu-btn{ display:none; }

  .services-grid{ grid-template-columns: repeat(2, 1fr); }
  .about-grid{ grid-template-columns: 360px 1fr; gap:2rem; align-items:center; }
  .programs-grid{ grid-template-columns: repeat(3, 1fr); }
  .gallery-grid{ grid-template-columns: repeat(3,1fr); }
  .contact-grid{ grid-template-columns: 1fr 360px; }
  .hero-stats{ grid-template-columns: repeat(4,1fr); max-width:1000px; }
}

@media(min-width:1100px){
  .container{ width: min(96%, var(--container)); }
  h1{ font-size: clamp(2rem, 3vw, 4rem); }
  .hero{ min-height:82vh; }
  .services-grid{ gap:1.5rem; }
  .program-card{ min-height: 100%; }
  .footer-inner{ grid-template-columns: 1fr auto auto; align-items:center; }
}


a:focus, button:focus, input:focus, select:focus, textarea:focus{
  outline: 3px solid rgba(46,125,94,0.12);
  outline-offset: 2px;
  border-radius: 8px;
}


::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background: linear-gradient(180deg,var(--green-400),var(--blue-500)); border-radius:10px; }



.legal-title {
  font-size: 3.6rem;
  text-align: center;
  margin-top: -6rem;
  margin-bottom: 2.2rem;
  color: #0e6a3a;
}

.legal-main {
    background-color: var(--beige);
    padding-top: 8rem;
    padding-bottom: 2rem;
}

.legal-content {
    max-width: 1200px;
    margin: 0 auto;
    background: #fffdf5;
    padding: 2rem 2.5rem;
    border-radius: 0.75rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.legal-content h1 {
    text-align: center;
    color: #4b3f36;
    font-size: 2.5rem;
    margin-bottom: 2rem;
}

.legal-content h2 {
    color: #3a2f2f;
    font-size: 1.6rem;
    margin-top: 3rem;
    margin-bottom: 1.5rem;
}

.legal-content p {
    color: black;
    line-height: 1.7;
    margin-bottom: 1rem;
    font-size: 1rem;
}

.legal-content a {
    color: #0e6a3a;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.legal-content a:hover {
    color: #0e6a3a;
    text-decoration: underline;
}
