/* ============================================================
   PALETTE RÉTRO 70s
   ============================================================ */
:root{
  --ease:cubic-bezier(.2,.8,.2,1);
  --ease-pop:cubic-bezier(.18,.9,.3,1.4);
  --cream:#FFFC00;
  --cream2:#FFE800;
  --paper:#fff;
  --pink:#F63794;
  --pink-deep:#D81B7A;
  --orange:#F0883E;
  --brown:#4A2E24;
  --brown-t:#5A3A2E;
  /* Cartouche · ADN sticker (hero-tag → cards) */
  --cart-bg:#fff;
  --cart-border:4px solid var(--brown);
  --cart-radius:22px;
  --cart-shadow:7px 7px 0 rgba(246,55,148,.78);
  --cart-shadow-hover:11px 11px 0 rgba(246,55,148,.78);
  --cart-shadow-mobile:5px 5px 0 rgba(246,55,148,.78);
  --banner-h:0px;
  --header-h:64px;
  --topbar-h:50px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--banner-h) + var(--topbar-h) + var(--header-h))}
body{font-family:'Space Grotesk',sans-serif;font-size:1rem;color:var(--brown-t);background:var(--cream);
  line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;
  font-feature-settings:"kern","liga","ss01";text-rendering:optimizeLegibility}
h1,h2,h3,.display{font-family:'Bricolage Grotesque',sans-serif;line-height:1.04;font-weight:700;letter-spacing:-.02em;font-feature-settings:"ss01","kern","liga"}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--pink);color:#fff}
.wrap{max-width:1040px;margin:0 auto;padding:0 28px}

/* ============================================================
   BOUTONS
   ============================================================ */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:1.22rem;letter-spacing:-.015em;padding:.55em 1.9em;border-radius:var(--cart-radius);cursor:pointer;border:0;
  transition:transform .22s var(--ease), filter .22s var(--ease), box-shadow .3s var(--ease)}
.btn:hover{transform:translateY(-4px) scale(1.03)}
.btn:active{transform:translateY(-1px) scale(.98);transition-duration:.08s}
.btn-pink{background:var(--pink);color:#fff;box-shadow:0 10px 22px -8px rgba(216,27,122,.55)}
.cta-band .btn{border:2.5px solid transparent;
  background:linear-gradient(var(--pink),var(--pink)) padding-box,linear-gradient(120deg,rgba(255,255,255,.95),rgba(255,255,255,.15) 50%,rgba(255,255,255,.95)) border-box;
  box-shadow:none}
.cta-band .btn:hover{box-shadow:0 8px 18px -10px rgba(216,27,122,.55)}
.btn-pink:hover{filter:brightness(1.07);box-shadow:0 22px 40px -10px rgba(216,27,122,.75)}
.btn-line{background:transparent;color:var(--brown);border:2px solid var(--brown)}
.btn-line:hover{background:var(--brown);color:var(--cream)}

/* ============================================================
   NAV
   ============================================================ */
.construction-banner{background:var(--pink);color:#fff;text-align:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.18rem;letter-spacing:.02em;padding:6px 16px;line-height:1;position:sticky;top:0;z-index:100}
header{position:sticky;top:var(--banner-h);z-index:90;background:transparent}
.top-bar{background:transparent}
.top-bar-inner{max-width:1040px;margin:0 auto;min-height:var(--topbar-h);padding:0 28px 4px;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:16px;background:rgba(255,252,0,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
nav{display:flex;align-items:center;justify-content:space-between;padding:3px 28px 8px;background:rgba(255,252,0,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:0 0 20px 20px;max-width:1040px;margin:0 auto}
body:has(.page-nav) header nav{border-radius:0}
.nav-logo{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.55rem;letter-spacing:-.02em;color:var(--pink)}
.nav-logo span{color:var(--brown-t)}
.nav-links{display:flex;align-items:center;gap:30px;font-weight:700;font-size:1.3rem;font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-.003em;flex:1}
.nav-links a:not(.btn){position:relative;padding:4px 0;transition:color .25s var(--ease)}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:var(--pink);border-radius:3px;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav-links a:not(.btn):hover{color:var(--pink)}
.nav-links a:not(.btn):hover::after{transform:scaleX(1)}
.nav-links a[aria-current="page"]{color:var(--pink)}
.nav-links a[aria-current="page"]::after{transform:scaleX(1)}
.nav-actions{display:flex;align-items:center;gap:12px}
.nav-actions .btn,.btn-in-menu{padding:.55em 1.4em;font-size:1.14rem;
  color:var(--paper);border:2.5px solid transparent;
  background:linear-gradient(var(--pink),var(--pink)) padding-box,linear-gradient(120deg,rgba(255,255,255,.95),rgba(255,255,255,.15) 50%,rgba(255,255,255,.95)) border-box;
  box-shadow:none;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease)}
.nav-actions .btn:hover,.btn-in-menu:hover{transform:translateY(-3px) scale(1.04);
  background:linear-gradient(var(--pink),var(--pink)) padding-box,linear-gradient(120deg,rgba(255,255,255,.95),rgba(255,255,255,.15) 50%,rgba(255,255,255,.95)) border-box;
  filter:brightness(1.08);
  box-shadow:0 8px 18px -10px rgba(216,27,122,.55)}
.nav-actions .btn:active,.btn-in-menu:active{transform:translateY(0) scale(.97)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.burger span{width:26px;height:3px;background:var(--brown-t);border-radius:3px}

/* ============================================================
   HERO — rayons soleil + logo
   ============================================================ */
/* Accessibilité / SEO : lu par les lecteurs d'écran et Google, invisible à l'écran */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero{text-align:center;padding:50px 28px 50px;position:relative;overflow:hidden;
  background:var(--cream)}
/* Vague décorative en bas du menu / haut de la 1re section.
   Masque jaune (couleur du menu) : ne recouvre que les pointes des rayons,
   l'éclat central du soleil reste intact. */
.hero::before,.page-hero::before{content:"";position:absolute;top:-1px;left:0;right:0;
  height:clamp(28px,4vw,46px);z-index:3;background:var(--cream);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 54' preserveAspectRatio='none'%3E%3Cpath d='M0,0 H1440 V30 C1200,6 960,52 720,30 C480,8 240,50 0,28 Z'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 54' preserveAspectRatio='none'%3E%3Cpath d='M0,0 H1440 V30 C1200,6 960,52 720,30 C480,8 240,50 0,28 Z'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%;
  filter:drop-shadow(0 4px 5px rgba(74,46,36,.12))}
/* Vague en bas du hero : son bord supérieur ondulé vient toucher les rayons.
   Couleur de la section suivante (À PROPOS = cream2), masque collé au bas. */
.hero::after,.page-hero::after{content:"";position:absolute;bottom:-1px;left:0;right:0;
  height:clamp(14px,1.8vw,20px);z-index:3;background:var(--cream2);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 54' preserveAspectRatio='none'%3E%3Cpath d='M0,26 C240,52 480,0 720,22 C960,44 1200,52 1440,24 V54 H0 Z'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 54' preserveAspectRatio='none'%3E%3Cpath d='M0,26 C240,52 480,0 720,22 C960,44 1200,52 1440,24 V54 H0 Z'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%}
.sun{position:absolute;top:50%;left:50%;width:1500px;height:1500px;transform:translate(-50%,-50%);z-index:0;
  background:repeating-conic-gradient(from 0deg at 50% 50%, rgba(120,50,0,1) 0deg 11deg, transparent 11deg 22deg);
  opacity:.18;border-radius:50%;
  animation:spin 140s linear infinite, sunPulse 8s ease-in-out infinite;will-change:transform,opacity}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes sunPulse{0%,100%{opacity:.15}50%{opacity:.24}}
@media (prefers-reduced-motion: reduce){
  .sun,.footer-sun{animation:none}
  .pill,.hero-logo,.hero-tag,.hero-sub,.hero-cta{opacity:1;animation:none}
  .reveal,.reveal-pop{opacity:1;transform:none;transition:none;animation:none}
}
.hero .in{position:relative;z-index:1;max-width:760px;margin:0 auto;width:100%}
.pill{display:inline-block;background:var(--pink);color:#fff;font-family:'Space Grotesk';font-weight:600;
  padding:6px 20px;border-radius:var(--cart-radius);margin-bottom:18px;opacity:0;
  animation:rise .8s .1s var(--ease) both, pillFloat 3.8s 1.2s ease-in-out infinite}
@keyframes pillFloat{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-7px) rotate(.5deg)}}
.hero-logo{max-width:480px;width:84%;margin:0 auto 24px;
  filter:drop-shadow(0 14px 26px rgba(74,46,36,.22));opacity:0;
  transform-origin:center bottom;
  animation:logoGrow 1.35s .15s cubic-bezier(.18,.9,.3,1.4) both}
.hero-tag{display:inline-block;
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:clamp(1.037rem,2.65vw,1.67rem);color:var(--brown-t);
  letter-spacing:-.015em;line-height:1.04;
  padding:11px 25px;border:var(--cart-border);border-radius:var(--cart-radius);
  background:var(--cart-bg);box-shadow:var(--cart-shadow);
  rotate:-1.2deg;
  opacity:0;animation:rise .9s .35s cubic-bezier(.2,.8,.2,1) both}
.hero-tag .pk{color:var(--pink);font-style:italic;font-weight:800;display:inline-block;padding-bottom:.06em;line-height:1.12}
.hero-sub{max-width:500px;margin:16px auto 32px;font-weight:500;color:var(--brown-t);font-size:1.08rem;line-height:1.55;
  opacity:0;animation:rise .9s .5s cubic-bezier(.2,.8,.2,1) both}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;
  opacity:0;animation:rise .9s .65s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{0%{opacity:0;transform:translateY(26px)}100%{opacity:1;transform:none}}
@keyframes logoGrow{0%{opacity:0;transform:scale(.04) rotate(-14deg)}45%{opacity:1;transform:scale(1.22) rotate(6deg)}68%{transform:scale(.9) rotate(-3deg)}85%{transform:scale(1.06) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
/* margin-bottom négatif : l'élément suivant (section ou footer) remonte d'1px
   et recouvre le joint de rendu en bas du SVG (sinon un fin trait de la couleur
   de fond de la vague apparaît, surtout sur écran Retina). */
.wave{line-height:0;margin-bottom:-1px}.wave svg{display:block;width:100%;height:54px}

/* ============================================================
   SECTIONS
   ============================================================ */
.sec{padding:47px 0}
#prestations{background:var(--cream)}
.sec-head{text-align:center;max-width:620px;margin:-30px auto 48px}
.eyebrow{display:inline-block;font-family:'Space Grotesk',sans-serif;
  font-weight:700;font-size:1.05rem;line-height:1;letter-spacing:-.005em;
  color:var(--pink-deep);background:rgba(246,55,148,.12);
  padding:10px 22px;border-radius:var(--cart-radius);margin-bottom:22px}
.sec-head h2{font-size:clamp(1.536rem,3.712vw,2.432rem);color:var(--brown);letter-spacing:-.025em;line-height:1.02;font-weight:800;font-family:'Bricolage Grotesque',sans-serif}
.sec-head p{margin-top:16px;font-weight:500;color:var(--brown-t);font-size:1.05rem;line-height:1.6;max-width:52ch;margin-left:auto;margin-right:auto}

/* À PROPOS */
.about{background:var(--cream2)}
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.about-photo{width:100%;height:auto;aspect-ratio:4/5;border-radius:var(--cart-radius);background:var(--cart-bg);
  border:var(--cart-border);
  display:flex;align-items:center;justify-content:center;text-align:center;color:#b08c6f;
  font-family:'Space Grotesk';font-weight:500;box-shadow:var(--cart-shadow);
  rotate:-2deg;overflow:hidden;object-fit:cover;
  transition:transform .55s var(--ease), rotate .55s var(--ease), box-shadow .55s var(--ease)}
/* Carrousel photo du magicien : fondu enchaîné lent + points de navigation */
.about-carousel{position:relative}
.about-carousel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease}
.about-carousel img.on{opacity:1}
.about-dots{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;gap:9px;z-index:3}
.about-dots button{width:12px;height:12px;border-radius:50%;padding:0;cursor:pointer;
  border:2px solid var(--brown);background:#fff;box-shadow:2px 2px 0 rgba(74,46,36,.35);
  transition:background .3s var(--ease), transform .3s var(--ease)}
.about-dots button:hover{transform:scale(1.25)}
.about-dots button.on{background:var(--pink);transform:scale(1.15)}
.about-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:38px;height:38px;border-radius:50%;padding:0;cursor:pointer;
  border:2px solid var(--brown);background:#fff;box-shadow:2px 2px 0 rgba(74,46,36,.35);
  display:flex;align-items:center;justify-content:center;
  font-family:'Space Grotesk',sans-serif;font-size:1.3rem;font-weight:700;line-height:1;color:var(--brown);
  transition:background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease)}
.about-arrow:hover{background:var(--pink);color:#fff;transform:translateY(-50%) scale(1.1)}
.about-arrow-prev{left:12px}
.about-arrow-next{right:12px}
@media(max-width:680px){.about-arrow{width:34px;height:34px;font-size:1.15rem}.about-arrow-prev{left:8px}.about-arrow-next{right:8px}}
.about-text .eyebrow{background:rgba(246,55,148,.14);color:var(--pink-deep)}
.about-text h2{font-size:clamp(1.76rem,4vw,2.72rem);margin-bottom:22px;color:var(--brown);letter-spacing:-.022em;line-height:1.0;font-weight:800}
.about-text p{font-weight:500;color:var(--brown-t);margin-bottom:18px;font-size:1.08rem;line-height:1.65;max-width:60ch}
.about-text p.about-frame{
  display:inline-block;
  font-family:'Bricolage Grotesque',sans-serif;font-weight:600;
  font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.45;letter-spacing:-.012em;
  color:var(--brown);background:var(--cart-bg);
  padding:22px 32px;border:var(--cart-border);border-radius:var(--cart-radius);
  box-shadow:var(--cart-shadow);
  max-width:48ch;margin-bottom:0;
  rotate:1deg;
}
.about-text .hl{color:var(--pink-deep);font-weight:700}
.about-text:has(.feat-list){background:var(--cart-bg);border:var(--cart-border);border-radius:var(--cart-radius);
  box-shadow:var(--cart-shadow);padding:24px 28px}
.about-text:has(.feat-list) h2{margin-bottom:10px;font-size:clamp(1.5rem,3.2vw,2rem);line-height:1.05}
.about-text:has(.feat-list) .feat-list li{max-width:none}

/* PRESTATIONS */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.cards.cards-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:680px){
  .cards.cards-2{grid-template-columns:1fr 1fr;gap:12px}
  .cards.cards-2 .card{padding:16px 14px;border-radius:16px}
  .cards.cards-2 .card .badge{width:32px;height:32px;font-size:.9rem;margin-bottom:9px;border-width:2px;box-shadow:2px 2px 0 var(--brown)}
  .cards.cards-2 .card h3{font-size:1.02rem;margin-bottom:0;line-height:1.12}
  .cards.cards-2 .card p{display:none}
  .cards.cards-2 .card .tag{margin-top:8px;font-size:.78rem}
  .cards.cards-2 .card:nth-child(1),.cards.cards-2 .card:nth-child(3){rotate:0deg}
}
.card{background:var(--cart-bg);border:var(--cart-border);border-radius:var(--cart-radius);
  padding:18px 22px;box-shadow:var(--cart-shadow);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease)}
.card:hover{transform:translate(-4px,-4px) scale(1.015);box-shadow:var(--cart-shadow-hover)}
.card:nth-child(1){rotate:-0.8deg}
.card:nth-child(3){rotate:0.8deg}
.card{transition:transform .35s var(--ease), box-shadow .35s var(--ease), rotate .35s var(--ease), background .35s var(--ease)}
.card:hover{rotate:0deg;background:#FFE3F1}
.card .badge{width:46px;height:46px;border-radius:var(--cart-radius);display:flex;align-items:center;justify-content:center;
  font-family:'Space Grotesk';font-weight:700;font-size:1.1rem;color:var(--pink);
  background:var(--paper);border:3px solid var(--pink);margin-bottom:13px;
  box-shadow:4px 4px 0 var(--brown)}
.card h3{font-size:clamp(1.25rem,2.4vw,1.5rem);margin-bottom:9px;color:var(--brown);letter-spacing:-.02em;line-height:1.08;font-weight:800}
.card p{font-weight:500;color:var(--brown-t);font-size:.97rem;line-height:1.5;max-width:38ch}
.card .tag{display:inline-block;margin-top:12px;font-family:'Space Grotesk';font-weight:600;color:var(--pink-deep)}

/* GALERIE (bandeau menthe) */
.gallery{background:var(--cream)}
.grid-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.photo{position:relative;aspect-ratio:1;border-radius:var(--cart-radius);border:var(--cart-border);background:var(--paper);
  overflow:hidden;cursor:pointer;padding:0;display:block;width:100%;box-shadow:var(--cart-shadow);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease)}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.photo .photo-cap{position:absolute;left:12px;bottom:12px;z-index:1;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.8rem;color:var(--brown);letter-spacing:-.01em;
  background:rgba(255,255,255,.92);padding:5px 12px;border-radius:var(--cart-radius);
  box-shadow:0 4px 10px -4px rgba(74,46,36,.4)}
.photo .photo-count{position:absolute;top:12px;right:12px;z-index:1;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.8rem;color:var(--brown);
  background:rgba(255,255,255,.92);padding:5px 12px;border-radius:var(--cart-radius);
  box-shadow:0 4px 10px -4px rgba(74,46,36,.4)}
.photo:hover{transform:translate(-4px,-4px) scale(1.015);box-shadow:var(--cart-shadow-hover);rotate:0deg}
.photo-social{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%);
  display:flex;align-items:center;justify-content:center}
.photo-social svg{width:34%;height:34%;flex:none}
.photo-social .photo-cap{left:0;right:0;bottom:0;top:auto;border-radius:0;background:rgba(0,0,0,.28);
  text-align:center;color:#fff;padding:10px 12px 12px}
.photo-social .photo-count{background:rgba(255,255,255,.92)}
.photo-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Vidéo dans le carrousel */
.lb-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;
  opacity:0;transition:opacity .3s ease;display:none}
.lb-vid.on{opacity:1;display:block}
.lb.lb-single .lb-prev,.lb.lb-single .lb-next{display:none}
/* Zoom dynamique lié au scroll (natif, GPU, repli statique si non supporté) */
@keyframes photoScrollZoom{from{transform:scale(1)}to{transform:scale(1.12)}}
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    .photo img,.about-photo img{animation:photoScrollZoom linear both;animation-timeline:view();animation-range:cover}
  }
}
.photo:nth-child(1){rotate:-1.2deg}
.photo:nth-child(2){rotate:0.8deg}
.photo:nth-child(3){rotate:-0.6deg}
.photo:nth-child(4){rotate:1.5deg}
.photo:nth-child(5){rotate:-0.4deg}
.photo:nth-child(6){rotate:1deg}
.photo{transition:transform .35s var(--ease), box-shadow .35s var(--ease), rotate .35s var(--ease)}

/* CONTACT */
.contact{background:var(--cream);color:var(--brown-t)}
.contact .btn{border:2.5px solid transparent;
  background:linear-gradient(var(--pink),var(--pink)) padding-box,linear-gradient(120deg,rgba(255,255,255,.95),rgba(255,255,255,.15) 50%,rgba(255,255,255,.95)) border-box;
  box-shadow:none}
.contact .btn:hover{box-shadow:0 8px 18px -10px rgba(216,27,122,.55)}
.contact .sec-head h2{display:inline-block;background:var(--pink);color:#fff;padding:.7em .9em;border-radius:var(--cart-radius);box-shadow:0 10px 22px -8px rgba(216,27,122,.55);font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(0.96rem,2.32vw,1.52rem)}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;max-width:1000px;margin:0 auto}
.form-card{background:var(--cart-bg);border:var(--cart-border);border-radius:var(--cart-radius);
  padding:32px;box-shadow:var(--cart-shadow)}
.field{margin-bottom:16px}
.field label{display:block;font-family:'Space Grotesk';font-weight:700;color:var(--brown);margin-bottom:8px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.field:has(input[required]) label::after,.field:has(select[required]) label::after,.field:has(textarea[required]) label::after{content:' ✦';color:var(--pink)}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;border-radius:14px;border:2px solid var(--pink);
  background:var(--paper);color:var(--brown);font-family:'Space Grotesk';font-weight:500;font-size:1.02rem;letter-spacing:-.003em;
  transition:border-color .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;
  border-color:var(--pink-deep);
  background:#FFF8FB;
  box-shadow:0 0 0 4px rgba(246,55,148,.18)}
.contact-aside .line{display:flex;align-items:center;gap:14px;margin-bottom:20px;font-family:'Space Grotesk';font-weight:600;font-size:1.08rem;letter-spacing:-.005em}
.contact-aside .line .dot{width:48px;height:48px;border-radius:14px;background:var(--paper);color:var(--pink);
  border:2.5px solid var(--pink);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease)}
.contact-aside .line .dot svg{width:22px;height:22px;display:block}
.contact-aside .line a:hover{color:var(--pink)}
.contact-aside .muted{color:var(--brown);opacity:.7;font-weight:600;margin-top:8px}
.socials{display:flex;gap:12px;margin-top:18px}
.socials a{width:50px;height:50px;border-radius:14px;background:var(--paper);color:var(--pink);
  border:2.5px solid var(--pink);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease)}
.socials a:hover{transform:translateY(-3px) scale(1.06);box-shadow:0 8px 18px -10px rgba(216,27,122,.55)}

footer{background:var(--pink-deep);color:#fff;position:relative;overflow:hidden;min-height:240px;display:flex;align-items:flex-end;justify-content:center}
.footer-sun{position:absolute;top:calc(100% + 130px);left:50%;width:1900px;height:1900px;transform:translate(-50%,-50%);
  background:repeating-conic-gradient(from 0deg at 50% 50%, rgba(255,255,255,1) 0deg 11deg, transparent 11deg 22deg);
  border-radius:50%;pointer-events:none;z-index:0;opacity:.16;
  animation:spin 150s linear infinite, footerSunPulse 8s ease-in-out infinite;will-change:transform,opacity}
@keyframes footerSunPulse{0%,100%{opacity:.12}50%{opacity:.22}}
footer::after{content:"";position:absolute;top:-1px;left:0;right:0;height:clamp(26px,3.6vw,44px);z-index:2;background:var(--cream);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 54' preserveAspectRatio='none'%3E%3Cpath d='M0,0 H1440 V32 C1380,30 1260,52 1080,42 C720,14 360,46 0,28 Z'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 54' preserveAspectRatio='none'%3E%3Cpath d='M0,0 H1440 V32 C1380,30 1260,52 1080,42 C720,14 360,46 0,28 Z'/%3E%3C/svg%3E") no-repeat 0 0/100% 100%}
.foot{position:relative;z-index:1;text-align:center;padding:24px 28px;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:.95rem;letter-spacing:-.005em}
@media(max-width:680px){footer{min-height:200px}.footer-sun{top:calc(100% + 90px);width:1400px;height:1400px}}
.foot b{color:var(--cream)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(42px);transition:opacity .85s var(--ease), transform .85s var(--ease)}
.reveal.in{opacity:1;transform:none}
/* Cartouches : apparition "pop" élastique (sticker/bonbon) — n'affecte pas le survol */
@keyframes cartouchePop{0%{opacity:0;transform:translateY(26px) scale(.95)}55%{opacity:1;transform:translateY(-6px) scale(1.02)}100%{opacity:1;transform:translateY(0) scale(1)}}
.reveal-pop{opacity:0}
.reveal-pop.in{opacity:1;animation:cartouchePop .6s cubic-bezier(.34,1.5,.64,1) backwards}
.cards .reveal-pop:nth-child(2).in{animation-delay:.06s}
.cards .reveal-pop:nth-child(3).in{animation-delay:.12s}
.cards .reveal-pop:nth-child(4).in{animation-delay:.18s}
.grid-photos .reveal-pop:nth-child(2).in{animation-delay:.05s}
.grid-photos .reveal-pop:nth-child(3).in{animation-delay:.1s}
.grid-photos .reveal-pop:nth-child(4).in{animation-delay:.15s}
.grid-photos .reveal-pop:nth-child(5).in{animation-delay:.2s}

.grid-photos .reveal-pop:nth-child(6).in{animation-delay:.25s}

/* RESPONSIVE */
@media(max-width:880px){
  .about-grid{grid-template-columns:1fr;gap:34px}
  .cards{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:34px}
}
@media(max-width:680px){
  .sec{padding:18px 0}
  .cta-band{padding:48px 28px}
  .grid-photos{grid-template-columns:repeat(2,1fr)}
  .sun{width:1100px;height:1100px}
  .hero-tag{padding:9px 16px;border-width:3px;border-radius:18px;box-shadow:var(--cart-shadow-mobile)}
  .about-text p.about-frame{padding:18px 22px;border-width:3px;border-radius:18px;box-shadow:var(--cart-shadow-mobile);font-size:0.95rem}
  .card,.about-photo,.photo,.form-card,.about-text:has(.feat-list){border-width:3px;box-shadow:var(--cart-shadow-mobile)}
  .about-text:has(.feat-list){padding:22px 22px}
  .card:hover,.photo:hover{box-shadow:var(--cart-shadow-hover)}
}

/* ============================================================
   SOCIALS HEADER · simple round icons
   ============================================================ */
.nav-socials{display:flex;align-items:center;gap:10px}
.nav-social{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  color:var(--pink);
  transition:transform .25s var(--ease), filter .25s var(--ease);
}
.nav-social.ig{margin-right:14px}
.nav-social svg{width:100%;height:100%;display:block}
.nav-phone,.nav-wa{display:inline-flex;align-items:center;gap:8px;color:var(--brown);font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1rem;letter-spacing:-.015em;white-space:nowrap;text-decoration:none;transition:color .25s var(--ease)}
.nav-phone svg,.nav-wa svg{width:20px;height:20px;flex-shrink:0}
.top-bar .nav-wa,.top-bar .nav-phone{font-size:1.04rem;font-weight:800;color:#fff;padding:.4em 1em;border-radius:var(--cart-radius);box-shadow:0 4px 14px rgba(0,0,0,.15);transition:transform .2s var(--ease),box-shadow .2s var(--ease),filter .2s var(--ease);margin-top:2px;min-width:210px;justify-content:center}
.top-bar .nav-wa svg,.top-bar .nav-phone svg{width:1.2em;height:1.2em}
.top-bar .nav-wa{border:2px solid transparent;background:linear-gradient(#25D366,#25D366) padding-box,linear-gradient(120deg,rgba(255,255,255,.95),rgba(255,255,255,.15) 50%,rgba(255,255,255,.95)) border-box}
.top-bar .nav-phone{border:2px solid transparent;background:linear-gradient(var(--brown),var(--brown)) padding-box,linear-gradient(120deg,rgba(255,255,255,.95),rgba(255,255,255,.15) 50%,rgba(255,255,255,.95)) border-box}
.top-bar .nav-wa:hover,.top-bar .nav-phone:hover{color:#fff;transform:translateY(-2px) scale(1.06);box-shadow:0 7px 20px rgba(0,0,0,.2)}
.top-bar .nav-wa:active,.top-bar .nav-phone:active{transform:translateY(0) scale(.97)}
.nav-phone:hover{color:var(--pink)}
.nav-wa:hover{color:#25D366}
.nav-social:hover{transform:translateY(-2px) scale(1.08);filter:brightness(1.06)}
.nav-social:active{transform:translateY(0) scale(.96)}
@media (max-width:980px){
  /* Menu burger dès 980px : 5 liens texte + icônes + CTA ne tiennent plus en ligne en dessous */
  .nav-socials{gap:8px;order:1;margin-left:12px}.nav-social{width:34px;height:34px}
  .nav-links{position:fixed;inset:60px 0 auto 0;flex-direction:column;gap:0;background:var(--cream);
    max-height:0;overflow:hidden;transition:max-height .3s ease;box-shadow:0 12px 20px rgba(216,27,122,.12)}
  .nav-links.open{max-height:420px;padding:10px 0}
  .nav-links a{padding:14px 28px;width:100%;text-align:center}
  .nav-actions{gap:8px;order:2;margin-left:auto}
  .nav-actions .btn{padding:.55em 1em;font-size:1.14rem}
  .burger{display:flex;order:0}
  .btn-in-menu{display:flex!important;margin-top:8px;width:100%;justify-content:center}
}
@media (max-width:680px){.top-bar-inner{gap:12px;padding:8px 12px}.nav-socials{gap:6px}.nav-social{width:32px;height:32px}.nav-social.ig{margin-right:0}.top-bar .nav-wa,.top-bar .nav-phone{flex:1;min-width:0}}
.btn-in-menu{display:none}

/* ============================================================
   SOUS-PAGES PRESTATIONS (titre visible, listes, FAQ, fil d'ariane)
   ============================================================ */
.page-hero{text-align:center;padding:50px 28px;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--cream);position:relative;overflow:hidden}
.page-hero .in{max-width:760px;margin:0 auto;position:relative;z-index:1}
.page-hero .sun{animation:spinPage 140s linear infinite,sunPulse 8s ease-in-out infinite}
@keyframes spinPage{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
/* Accroche + CTA hors du soleil : on garde le hero léger, juste le gros titre rayonne */
.page-intro{text-align:center;padding:24px 28px 40px;background:var(--cream)}
/* Fil d'ariane au-dessus du soleil */
.page-crumbs{margin:0;padding:18px 28px 0;background:var(--cream);text-align:center}
/* Navigation prestations au-dessus du soleil */
.page-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;padding:4px 16px;background:rgba(255,252,0,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:sticky;top:calc(var(--banner-h) + var(--topbar-h) + var(--header-h));z-index:40;box-shadow:0 6px 16px rgba(74,46,36,.10);border-radius:0 0 20px 20px;max-width:1040px;margin:0 auto}
.page-nav a{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:clamp(.96rem,2vw,1.1rem);color:var(--brown-t);padding:4px 13px;border:2px solid var(--brown);border-radius:var(--cart-radius);background:#fff;box-shadow:2px 2px 0 var(--brown);transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s,color .2s}
.page-nav a:hover{transform:translate(-2px,-2px) scale(1.05);box-shadow:4px 4px 0 var(--brown)}
.page-nav a[aria-current="page"]{background:var(--pink);color:#fff;box-shadow:2px 2px 0 var(--pink-deep);cursor:default}
.page-nav a[aria-current="page"]:hover{transform:none;box-shadow:2px 2px 0 var(--pink-deep)}
@media(max-width:560px){.page-nav{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;padding:7px 8px;position:static;top:auto;border-radius:0}.page-nav a{padding:5px 11px;font-size:.86rem;box-shadow:2px 2px 0 var(--brown)}.page-nav a[aria-current="page"]{box-shadow:2px 2px 0 var(--pink-deep)}}
.page-title{font-size:clamp(3rem,7vw,5rem);color:var(--brown);letter-spacing:-.025em;line-height:1.04;font-weight:800;margin:10px 0 16px}
.page-title .pk{color:var(--pink)}
.page-title.is-logo{margin:0}
.page-h1{font-size:clamp(1.6rem,4.4vw,2.6rem);color:var(--brown);font-weight:800;letter-spacing:-.015em;line-height:1.14;text-align:center;margin:0 auto 28px;max-width:24ch}
/* Breadcrumb visible masqué : le SEO est assuré par le JSON-LD BreadcrumbList
   (données structurées indépendantes que Google lit pour le fil d'Ariane
   dans les résultats). La page-nav sous le header donne déjà le contexte. */
.breadcrumb{display:none}
.breadcrumb a{color:inherit;text-decoration:none;opacity:.85}
.breadcrumb a:hover{opacity:1;text-decoration:underline}
.breadcrumb .sep{margin:0 .45em;opacity:.5}
.breadcrumb [aria-current="page"]{font-weight:700;color:var(--brown)}
.hero-logo{display:block;width:clamp(280px,42vw,460px);height:auto;margin:0 auto;filter:drop-shadow(0 8px 22px rgba(74,46,36,.18))}
@media(max-width:680px){.hero-logo{width:min(62vw,285px)}}
.page-lead{max-width:620px;margin:0 auto 26px;font-weight:700;color:var(--brown-t);font-size:1.65rem;line-height:1.5}
.crumbs{font-family:'Space Grotesk',sans-serif;font-size:1.38rem;font-weight:600;color:var(--brown-t)}
.crumbs a{color:var(--pink-deep);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.feat-list{list-style:none;margin:2px 0 0;padding:0}
.feat-list li{position:relative;padding:5px 0 5px 28px;font-weight:500;color:var(--brown-t);font-size:1rem;line-height:1.38;max-width:60ch}
.feat-list li::before{content:"";position:absolute;left:0;top:11px;width:13px;height:13px;border-radius:50%;
  background:var(--pink);box-shadow:0 0 0 3px rgba(246,55,148,.18)}
.about-grid.rev .about-photo{order:2}
.faq-wrap{max-width:760px;margin:0 auto}
.faq-item{background:var(--cart-bg);border:var(--cart-border);border-radius:18px;padding:18px 22px;margin-bottom:16px;
  box-shadow:var(--cart-shadow-mobile)}
.faq-item h3{font-size:1.12rem;color:var(--brown);font-weight:800;margin-bottom:8px;letter-spacing:-.01em}
.faq-item p{font-weight:500;color:var(--brown-t);font-size:1.02rem;line-height:1.6;margin:0}
.cta-band{text-align:center;padding:64px 28px}
.cta-band h2{font-size:clamp(1.44rem,3.52vw,2.24rem);color:var(--brown);font-weight:800;margin-bottom:20px;letter-spacing:-.02em}
@media (max-width:760px){.about-grid.rev .about-photo{order:0}}

/* ============================================================
   LIGHTBOX GALERIE
   ============================================================ */
.lb{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;
  background:rgba(74,46,36,.93);padding:28px;overflow:hidden}
.lb.open{display:flex;animation:lbFade .25s var(--ease)}
@keyframes lbFade{from{opacity:0}to{opacity:1}}
/* Carrousel : crossfade (2 images empilées) — aucun mouvement, zéro saut */
/* .lb-frame : MOBILE = cadre fixe 4:5 (photos en cover, paysages rognés).
   DESKTOP = taille libre pilotée en JS (le cadre épouse chaque photo) avec morphing animé. */
.lb-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(90vw,66vh);aspect-ratio:4/5;
  border-radius:18px;border:4px solid #fff;background:#fff;box-sizing:border-box;
  box-shadow:0 24px 70px rgba(0,0,0,.45);overflow:hidden;
  transition:width .42s var(--ease), height .42s var(--ease)}
.lb.open .lb-frame{animation:lbFramePop .42s var(--ease-pop,cubic-bezier(.18,.9,.3,1.4)) both}
@keyframes lbFramePop{from{transform:translate(-50%,-50%) scale(.86);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
.lb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;z-index:1;transition:opacity .35s ease}
.lb-img.on{opacity:1;z-index:2;animation:lbImgIn .5s var(--ease) both}
@keyframes lbImgIn{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion: reduce){.lb-frame,.lb-img{transition:none;animation:none}}
.lb-cap{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:#fff;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.15rem;letter-spacing:-.01em;
  text-shadow:0 2px 10px rgba(0,0,0,.4)}
.lb-btn{position:absolute;z-index:2;background:rgba(255,255,255,.14);border:2px solid #fff;color:#fff;
  width:54px;height:54px;border-radius:50%;cursor:pointer;line-height:1;
  font-family:'Space Grotesk',sans-serif;font-size:1.7rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s var(--ease), transform .2s var(--ease)}
.lb-btn:hover{background:var(--pink);transform:scale(1.08)}
.lb-close{top:24px;right:24px}
.lb-prev{left:24px;top:50%;transform:translateY(-50%)}
.lb-next{right:24px;top:50%;transform:translateY(-50%)}
.lb-prev:hover,.lb-next:hover{transform:translateY(-50%) scale(1.08)}
@media (max-width:680px){
  .lb{padding:14px}
  /* cadre un peu plus petit ; on réserve le bas pour la rangée de flèches */
  .lb-frame{width:min(86vw,52vh)}
  .lb-btn{width:44px;height:44px;font-size:1.3rem}
  .lb-close{top:12px;right:12px}
  /* flèches en rangée centrée SOUS la photo */
  .lb-prev,.lb-next{top:auto;bottom:16px;transform:none}
  .lb-prev{left:calc(50% - 52px);right:auto}
  .lb-next{left:calc(50% + 8px);right:auto}
  .lb-prev:hover,.lb-next:hover{transform:scale(1.08)}
  .lb-cap{bottom:74px;font-size:1rem}
}

/* ============================================================
   Anciens boutons flottants — désactivés.
   Le contact WhatsApp + téléphone est désormais dans la barre
   du haut (.top-bar), aussi bien sur ordinateur que sur mobile.
   ============================================================ */
.phone-float,.wa-float{display:none}

/* Date picker */
input[type="date"]{color-scheme:light;appearance:auto;box-sizing:border-box;min-width:0;max-width:100%;width:100%}
@media(max-width:680px){
  /* iOS Safari impose une largeur intrinsèque au champ date et ignore width:100%,
     ce qui le fait déborder à droite. appearance:none lui fait respecter le conteneur.
     Le picker natif s'ouvre quand même au toucher ; on ré-ajoute juste une icône. */
  input[type="date"]{-webkit-appearance:none;appearance:none;font-size:16px;padding:14px 16px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23D81B7A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 14px center}
  input[type="date"]::-webkit-date-and-time-value{text-align:left;margin:0}
  input[type="date"]::-webkit-calendar-picker-indicator{opacity:0}
}

/* Google Maps autocomplete dropdown */
.pac-container{border-radius:14px;border:2px solid var(--pink);box-shadow:0 8px 24px rgba(74,46,36,.14);font-family:'Space Grotesk',sans-serif;margin-top:4px;overflow:hidden}
.pac-item{padding:10px 16px;font-size:.95rem;color:var(--brown-t);cursor:pointer}
.pac-item:hover,.pac-item-selected{background:rgba(246,55,148,.08)}
.pac-item-query{color:var(--brown);font-weight:700}
.pac-icon{display:none}

