:root {
  --brand: #4A9B9B;
  --brand-dark: #3A7A7A;
}
html { scroll-behavior: smooth; }
body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
h1,h2,h3,h4,.font-title { font-family: 'Raleway', Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -0.03em; }
.prose-content p { margin-bottom: 1rem; line-height: 1.75; }
.prose-content ul { list-style: disc; padding-left: 1.25rem; }
.prose-content li { margin-bottom: .5rem; }
.form-control, .form-select, .form-textarea {
  width: 100%; border-radius: .75rem; border: 1px solid rgb(226 232 240);
  background: #fff; padding: .875rem 1rem; color: rgb(15 23 42); outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.form-control:focus, .form-select:focus, .form-textarea:focus {
  border-color: rgba(74, 155, 155, 0.9);
  box-shadow: 0 0 0 4px rgba(74, 155, 155, .14);
}
.form-textarea { min-height: 10rem; resize: vertical; }
.hp-field { position: absolute !important; left: -9999px !important; opacity: 0 !important; }
.notice-success, .notice-error {
  border-radius: 1rem; padding: 1rem 1.25rem; margin-bottom: 1.5rem; font-size: .95rem;
}
.notice-success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.notice-error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.tailwind-content ul { list-style: none; padding-left: 0; }


.admin-shell .admin-sidebar a.active{
  background: rgba(255,255,255,.12);
  color: #fff;
}
.admin-login{
  min-height: 100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem;
}
.admin-login-box{
  width:min(100%, 520px);
}
.shadow-soft{
  box-shadow: 0 20px 60px rgba(15,23,42,.08);
}
.line-clamp-3{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}


.parallax-panel{
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  transform:scale(1.06);
}
@media (min-width: 1024px){
  .parallax-panel{ background-attachment:fixed; }
}

.reason-block__media{
  position:absolute;
  top:0;
  right:0;
  height:100%;
  width:min(45%, 520px);
  background-image:url('../img/about-reason-placeholder.jpg');
  background-position:right center;
  background-repeat:no-repeat;
  background-size:cover;
}
.reason-block__fade{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 50%, rgba(255,255,255,0.2) 70%, rgba(255,255,255,0) 100%);
}
@media (max-width: 1023px){
  .reason-block__media{ position:relative; width:100%; min-height:220px; }
  .reason-block__fade{ background:linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.88) 42%, rgba(255,255,255,0.2) 100%); }
}

.service-stack{ display:flex; flex-direction:column; gap:0; }
.service-item{ position:relative; padding:3.5rem 0; }
.service-item + .service-item::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(90deg, transparent 0%, rgba(148,163,184,0.55) 12%, rgba(74,155,155,0.45) 50%, rgba(148,163,184,0.55) 88%, transparent 100%);
}

.formation-approach-visual{ position:relative; }
.formation-approach-visual::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:-1px;
  transform:translateX(-50%);
  width:min(100%, 56rem);
  height:45%;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.86) 72%, rgba(255,255,255,1) 100%);
  border-bottom-left-radius:2rem;
  border-bottom-right-radius:2rem;
}

.map-card{ position:relative; }
.map-embed-wrapper{ position:relative; overflow:hidden; min-height:480px; }
.map-embed{ width:100%; height:480px; border:0; display:block; filter:saturate(.9) contrast(1.02); }
.map-radius-overlay{ position:absolute; inset:0; pointer-events:none; }
.map-radius-circle{
  position:absolute;
  left:50%; top:50%;
  width:min(48vw, 430px);
  aspect-ratio:1/1;
  transform:translate(-50%, -50%);
  border-radius:999px;
  border:2px solid rgba(74,155,155,0.75);
  background:rgba(74,155,155,0.12);
  box-shadow:0 0 0 999px rgba(15,23,42,0.04) inset;
}
.map-radius-center{
  position:absolute;
  left:50%; top:50%;
  width:14px; height:14px;
  transform:translate(-50%, -50%);
  border-radius:999px;
  background:#4A9B9B;
  box-shadow:0 0 0 6px rgba(255,255,255,0.92), 0 0 0 12px rgba(74,155,155,0.28);
}

.privacy-sidebox{
  position:fixed;
  right:1rem;
  bottom:1rem;
  z-index:45;
  display:flex;
  gap:.9rem;
  align-items:flex-start;
  width:min(360px, calc(100vw - 2rem));
  padding:1rem 1rem 1rem .95rem;
  border:1px solid rgba(203,213,225,.85);
  border-radius:1.25rem;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
  box-shadow:0 22px 50px rgba(15,23,42,.14);
}
.privacy-sidebox__icon{
  flex:0 0 auto;
  width:2.75rem;
  height:2.75rem;
  border-radius:.95rem;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(74,155,155,.12);
  font-size:1.35rem;
}
.privacy-sidebox__title{ margin:0 0 .25rem; font-weight:700; color:#0f172a; }
.privacy-sidebox__text{ margin:0; font-size:.92rem; line-height:1.55; color:#475569; }
@media (max-width: 767px){
  .privacy-sidebox{ left:1rem; right:1rem; bottom:1rem; width:auto; }
  .map-embed-wrapper,.map-embed{ min-height:360px; height:360px; }
}


:root {
  --brand-accent: #DB5C57;
  --brand-accent-soft: rgba(219, 92, 87, 0.12);
}

.bg-brand-accent { background-color: var(--brand-accent); }
.text-brand-accent { color: var(--brand-accent); }
.border-brand-accent { border-color: var(--brand-accent); }
.section-kicker{
  align-items:center;
  gap:.55rem;
  padding:.4rem .8rem;
  border-radius:999px;
  border:1px solid rgba(219,92,87,.18);
  background:rgba(255,255,255,.72);
  color:var(--brand-accent);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.section-kicker::before{
  content:'';
  width:.55rem;
  height:.55rem;
  border-radius:999px;
  background:var(--brand-accent);
  box-shadow:0 0 0 6px rgba(219,92,87,.12);
}
.feature-pin{
  flex:0 0 auto;
  display:flex;
  width:1.6rem;
  height:1.6rem;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(74,155,155,.16), rgba(219,92,87,.18));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.9);
}
.feature-pin__dot{
  width:.45rem;
  height:.45rem;
  border-radius:999px;
  background:var(--brand-accent);
}
.accent-orb{
  color:var(--brand-accent);
  background:linear-gradient(135deg, rgba(74,155,155,.14), rgba(219,92,87,.18));
}
.home-local-section,
.about-reason-section,
.formation-approach-section{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.home-local-section > .mx-auto,
.about-reason-section > .mx-auto,
.formation-approach-section > .mx-auto{
  position:relative;
  z-index:2;
}
.home-local-section__bg{
  position:absolute;
  inset:0;
  background-image:url('../img/home-local-placeholder.jpg');
}
.home-local-section__overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.9) 36%, rgba(255,255,255,.78) 58%, rgba(255,255,255,.9) 100%),
    linear-gradient(135deg, rgba(74,155,155,.06), rgba(219,92,87,.08));
}
.about-reason-section{
  background:linear-gradient(180deg, #fff 0%, #fff 100%);
}
.about-reason-section__media{
  position:absolute;
  top:0;
  right:0;
  height:100%;
  width:min(45vw, 760px);
  background-image:url('../img/about-reason-placeholder.jpg');
  background-position:right center;
  background-repeat:no-repeat;
  background-size:cover;
}
.about-reason-section__fade{
  position:absolute;
  inset:0;
  background:linear-gradient(to left, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.4) 10%, rgba(255,255,255,0.7) 20%, rgba(255,255,255,1) 45%);
}
.formation-approach-section{
  background:linear-gradient(270deg, #ffffff 0%, #f8fafc 100%);
}
.formation-approach-section__media{
  position:absolute;
  left:50%;
  top:0;
  width:min(100%, 1040px);
  height:min(360px, 48vw);
  transform:translateX(-50%);
  background-image:url('../img/formation-approach-placeholder.jpg');
  background-position:center top;
  background-repeat:no-repeat;
  background-size:contain;
  opacity:.98;
}
.formation-approach-section__fade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.62) 34%, rgba(255,255,255,.95) 56%, rgba(248,250,252,1) 100%);
}
.formation-approach-section .mx-auto.max-w-7xl{
  padding-top:clamp(12rem, 24vw, 18rem);
}
.contact-map-shell{ position:relative; }
.contact-map-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.2rem 1.4rem;
  border-bottom:1px solid rgba(226,232,240,1);
  background:linear-gradient(135deg, rgba(74,155,155,.06), rgba(219,92,87,.08));
}
.contact-map-toolbar__title{ margin:0; font-weight:700; color:#0f172a; }
.contact-map-toolbar__text{ margin:.2rem 0 0; color:#475569; font-size:.92rem; }
.contact-map-toolbar__link{
  display:inline-flex; align-items:center; justify-content:center; padding:.75rem 1rem; border-radius:999px;
  background:#fff; border:1px solid rgba(203,213,225,.9); color:#0f172a; transition:.2s ease;
}
.contact-map-toolbar__link:hover{ border-color:rgba(219,92,87,.35); color:var(--brand-accent); }
.contact-leaflet-map{ height:520px; width:100%; }
.leaflet-container{ font: inherit; }
.privacy-sidebox{ transition:opacity .2s ease, transform .2s ease; }
.privacy-sidebox.is-hidden{ opacity:0; transform:translateY(14px); pointer-events:none; }
.privacy-sidebox__content{ min-width:0; }
.privacy-sidebox__button{
  margin-top:.8rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg, var(--brand-accent), #c94c48);
  color:#fff;
  padding:.68rem 1rem;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 12px 24px rgba(219,92,87,.22);
}
.privacy-sidebox__button:hover{ filter:brightness(.98); }
@media (max-width: 1023px){
  .about-reason-section__media{
    width:100%;
    height:260px;
    top:auto;
    bottom:0;
    background-position:center bottom;
  }
  .about-reason-section__fade{
    background:linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,.94) 38%, rgba(255,255,255,.72) 58%, rgba(255,255,255,.18) 100%);
  }
}
@media (max-width: 767px){
  .formation-approach-section .mx-auto.max-w-7xl{ padding-top:11rem; }
  .formation-approach-section__media{ height:190px; width:92%; }
  .contact-leaflet-map{ height:400px; }
}


/* Pass v3 */
:root{
  --brand-accent-dark:#c94c48;
  --brand-accent-glow:rgba(219,92,87,.18);
}

body{
  background:
    radial-gradient(circle at top right, rgba(219,92,87,.045), transparent 26%),
    linear-gradient(180deg, #fff 0%, #fff 100%);
}

a{ text-decoration-thickness:1px; text-underline-offset:3px; }

.bg-accent-wash{
  background:linear-gradient(135deg, rgba(219,92,87,.06), rgba(74,155,155,.05));
}
.text-gradient-accent{
  background:linear-gradient(135deg, var(--brand-accent-dark), var(--brand));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.home-local-section__bg.parallax-panel{
  transform:none;
  will-change:transform;
}

.service-item h2,
.service-item h3,
.service-item h4,
#services-process h2,
#services-process h3{
  color:#172033;
}
.service-item .bg-brand,
#services-process .bg-brand{
  background:linear-gradient(135deg, var(--brand-accent), var(--brand-accent-dark));
}
.service-item .text-brand,
#services-process .text-brand,
#services-process .text-brand-accent{
  color:var(--brand-accent);
}
.service-item .bg-brand\/10,
#services-process .bg-brand\/10{
  background:rgba(219,92,87,.12);
}
.service-item .rounded-lg.bg-slate-50,
.service-item .rounded-2xl.bg-gradient-to-br{
  background:
    linear-gradient(135deg, rgba(255,255,255,.95), rgba(248,250,252,.94)),
    linear-gradient(135deg, rgba(219,92,87,.08), rgba(74,155,155,.06));
  border:1px solid rgba(219,92,87,.1);
}
.service-item .border-t.border-slate-200{ border-color:rgba(219,92,87,.14); }
.service-item + .service-item::before{
  background:linear-gradient(90deg, transparent 0%, rgba(219,92,87,.16) 12%, rgba(219,92,87,.42) 50%, rgba(74,155,155,.22) 88%, transparent 100%);
}

.services-process{
  background:
    radial-gradient(circle at top right, rgba(219,92,87,.08), transparent 32%),
    linear-gradient(180deg, #fff7f6 0%, #ffffff 100%);
}
.services-process__flow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
  align-items:center;
}
.services-process__step{
  position:relative;
  text-align:center;
  padding:2rem 1.4rem;
  border-radius:1.5rem;
  border:1px solid rgba(219,92,87,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 18px 42px rgba(15,23,42,.06);
}
.services-process__index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:3rem;
  height:3rem;
  margin:0 auto 1rem;
  border-radius:999px;
  background:linear-gradient(135deg, var(--brand-accent), var(--brand-accent-dark));
  color:#fff;
  font-weight:800;
  box-shadow:0 12px 24px rgba(219,92,87,.18);
}
.services-process__arrow{
  position:absolute;
  right:-1rem;
  top:50%;
  transform:translateY(-50%);
  width:2rem;
  height:2rem;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(219,92,87,.14);
  color:var(--brand-accent);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 25px rgba(15,23,42,.08);
}
.services-process__step:last-child .services-process__arrow{ display:none; }

.formation-approach-section{
  min-height:auto;
}
.formation-approach-section__media{
  left: 50%;
  top: -5%;
  width: 100%;
  height: 100%;
  transform: translateX(-50%);
  opacity: .46;
  background-size: contain;
  pointer-events: none;
}
.formation-approach-section__fade{
  background: linear-gradient(to bottom, rgba(255,255,255,.5) 5%, rgba(255,255,255,.70) 10%, rgba(255,255,255,.8) 15%, rgb(255, 255, 255) 20%);
}
.formation-approach-section .mx-auto.max-w-7xl{ padding-top:0; }

.contact-map-shell{
  overflow:hidden;
  border:1px solid rgba(226,232,240,1);
  border-radius:1.5rem;
  background:#fff;
  box-shadow:0 16px 42px rgba(15,23,42,.06);
}
.contact-map-grid{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);
}
.contact-map-frame{
  min-height:460px;
  border:0;
  width:100%;
  display:block;
}
.contact-map-panel{
  padding:1.5rem;
  border-left:1px solid rgba(226,232,240,1);
  background:linear-gradient(180deg, rgba(255,247,246,.96), rgba(255,255,255,1));
}
.contact-map-badge{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.45rem .8rem;
  border-radius:999px;
  background:rgba(219,92,87,.1);
  color:var(--brand-accent-dark);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.contact-map-list{ margin-top:1rem; display:grid; gap:.75rem; color:#475569; }
.contact-map-list li{ display:flex; gap:.65rem; }
.contact-map-list li::before{ content:'•'; color:var(--brand-accent); font-weight:700; }

.privacy-sidebox__button{ position:relative; z-index:2; }

@media (max-width: 1023px){
  .services-process__flow{ grid-template-columns:1fr; }
  .services-process__arrow{
    right:50%;
    top:auto;
    bottom:-1rem;
    transform:translateX(50%) rotate(90deg);
  }
  .contact-map-grid{ grid-template-columns:1fr; }
  .contact-map-panel{ border-left:0; border-top:1px solid rgba(226,232,240,1); }
}
@media (max-width: 767px){
  .formation-approach-section__media{ height:190px; opacity:.36; }
  .contact-map-frame{ min-height:360px; }
}


/* Home hero + header states */
:root{
  --site-header-height: 5rem;
  --site-header-transition: 280ms cubic-bezier(.22,.61,.36,1);
}
.site-header,
.site-header__logo,
.site-header__link,
.site-header__toggle,
.site-header__brand{
  transition: background-color var(--site-header-transition), color var(--site-header-transition), border-color var(--site-header-transition), box-shadow var(--site-header-transition), filter var(--site-header-transition), opacity var(--site-header-transition);
}
.home-page .site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  border-color:transparent;
  background:transparent;
  backdrop-filter:none;
  box-shadow:none;
}
.home-page .site-header__brand,
.home-page .site-header__link,
.home-page .site-header__toggle{ color:#fff; }
.home-page .site-header__link:hover,
.home-page .site-header__link.is-active{ color:var(--brand-accent); }
.home-page .site-header.is-scrolled{
  border-color:rgba(226,232,240,.85);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  box-shadow:0 12px 40px rgba(15,23,42,.08);
}
.home-page .site-header.is-scrolled .site-header__brand,
.home-page .site-header.is-scrolled .site-header__toggle{ color:#0f172a; }
.home-page .site-header.is-scrolled .site-header__link{ color:#334155; }
.home-page .site-header.is-scrolled .site-header__link:hover,
.home-page .site-header.is-scrolled .site-header__link.is-active{ color:var(--brand-accent); }

.home-hero{
  min-height:100svh;
  background:#03131c;
}
.home-hero__media,
.home-hero__overlay,
.home-hero__glow,
.home-hero__video{
  position:absolute;
  inset:0;
}
.home-hero__video{
  width:100%;
  height:100%;
  object-fit:cover;
}
.home-hero__overlay{
  background:
    linear-gradient(90deg, rgba(1,10,16,.82) 0%, rgba(1,10,16,.68) 38%, rgba(1,10,16,.48) 62%, rgba(1,10,16,.72) 100%),
    linear-gradient(180deg, rgba(3,8,12,.34) 0%, rgba(3,8,12,.18) 22%, rgba(3,8,12,.62) 100%);
}
.home-hero__glow{
  background:
    radial-gradient(circle at 16% 28%, rgba(219,92,87,.22), transparent 28%),
    radial-gradient(circle at 72% 46%, rgba(74,155,155,.18), transparent 30%);
  mix-blend-mode:screen;
  opacity:.85;
}
.home-hero > .mx-auto{
  min-height:100svh;
  padding-top:calc(var(--site-header-height) + 3rem);
  padding-bottom:4rem;
}
.home-hero__eyebrow-dot{
  width:.7rem;
  height:.7rem;
  border-radius:999px;
  background:var(--brand-accent);
  box-shadow:0 0 0 6px rgba(219,92,87,.18);
}
.btn-hero{
  position:relative;
  overflow:hidden;
  border:1px solid transparent;
  text-decoration:none;
  transition:background-color .28s ease, color .28s ease, border-color .28s ease, transform .28s ease, box-shadow .28s ease;
}
.btn-hero:hover{ transform:translateY(-1px); }
.btn-hero--filled{
  background:var(--brand-accent);
  color:#fff;
  box-shadow:0 18px 34px rgba(219,92,87,.22);
}
.btn-hero--filled::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1.5px;
  background:linear-gradient(90deg, rgba(255,255,255,.95) 0 25%, rgba(255,255,255,0) 25% 100%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  clip-path:inset(0 100% 0 0);
  transition:clip-path .45s ease;
}
.btn-hero--filled:hover::before{ clip-path:inset(0 0 0 0); }
.btn-hero--outline{
  border-color:rgba(219,92,87,.9);
  color:#fff;
  background:rgba(255,255,255,.02);
}
.btn-hero--outline::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--brand-accent);
  transform:translateX(-101%);
  transition:transform .35s ease;
  z-index:-1;
}
.btn-hero--outline:hover{
  color:#fff;
  border-color:var(--brand-accent);
}
.btn-hero--outline:hover::before{ transform:translateX(0); }

@media (max-width: 1023px){
  .home-page .site-header{
    background:rgba(3,8,12,.6);
    backdrop-filter:blur(8px);
  }
  .home-page .site-header.is-scrolled{
    background:rgba(255,255,255,.94);
  }
  .home-hero > .mx-auto{
    padding-top:calc(var(--site-header-height) + 2.5rem);
    align-items:flex-end;
  }
}
@media (max-width: 767px){
  .home-hero > .mx-auto{
    padding-top:calc(var(--site-header-height) + 2rem);
    padding-bottom:2.5rem;
  }
  .home-hero h1{ font-size:clamp(2.8rem, 10vw, 4.5rem); }
}


.site-header__logo {
    display: block;
}

.site-header__logo .logo-main path,
.site-header__logo .logo-main rect {
    fill: #111827; /* noir par défaut */
    transition: fill 0.3s ease;
}

.site-header__logo .logo-stars path,
.site-header__logo .logo-stars rect {
    fill: #DB5C57; /* étoiles toujours orange */
    transition: fill 0.3s ease;
}

/* Exception : uniquement sur Home, tout en haut */
.home-page .site-header:not(.is-scrolled) .site-header__logo .logo-main path,
.home-page .site-header:not(.is-scrolled) .site-header__logo .logo-main rect {
    fill: #ffffff;
}

/* Sur Home après scroll : retour au noir */
.home-page .site-header.is-scrolled .site-header__logo .logo-main path,
.home-page .site-header.is-scrolled .site-header__logo .logo-main rect {
    fill: #111827;
}