/* ==========================================================================
   LAMER — Feuille de style principale
   Design : sophistiqué / raffiné · océan · glassmorphism · animations fluides
   ========================================================================== */

:root{
  /* Palette océan */
  --deep:        #061a2b;
  --deep-2:      #0a2a43;
  --ocean:       #0f4c68;
  --teal:        #0f6b8f;
  --turquoise:   #17a2b8;
  --aqua:        #35d0c4;
  --foam:        #7fe3d4;
  --mousse:      #bff0e8;
  --sand:        #e8dcc8;
  --ecume:       #eaf6f9;
  --white:       #ffffff;

  --text:        #eaf6f9;
  --text-dark:   #0a2a43;
  --muted:       #a9c6d2;
  --muted-dark:  #5b7d8d;

  /* Glass */
  --glass-bg:     rgba(255,255,255,0.08);
  --glass-bg-2:   rgba(255,255,255,0.14);
  --glass-border: rgba(255,255,255,0.22);
  --glass-blur:   blur(16px);

  --shadow-sm:  0 6px 18px rgba(3,17,29,0.18);
  --shadow-md:  0 18px 45px rgba(3,17,29,0.28);
  --shadow-lg:  0 30px 70px rgba(3,17,29,0.38);
  --glow:       0 0 40px rgba(53,208,196,0.35);

  --radius:     18px;
  --radius-lg:  28px;
  --max:        1200px;

  --grad-ocean: linear-gradient(135deg,#0a2a43 0%,#0f6b8f 48%,#35d0c4 100%);
  --grad-text:  linear-gradient(100deg,#eaf6f9 0%,#7fe3d4 55%,#35d0c4 100%);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:'Jost','Helvetica Neue',Helvetica,Arial,sans-serif;
  font-weight:300;
  color:var(--text);
  background:var(--deep);
  line-height:1.75;
  overflow-x:hidden;
  letter-spacing:.01em;
}

/* Fond océan animé */
body::before{
  content:'';
  position:fixed;
  inset:0;
  background:
    radial-gradient(1100px 700px at 12% -10%, rgba(53,208,196,.22), transparent 60%),
    radial-gradient(900px 650px at 90% 8%, rgba(15,107,143,.35), transparent 62%),
    radial-gradient(900px 700px at 50% 110%, rgba(127,227,212,.16), transparent 65%),
    linear-gradient(180deg,#061a2b 0%,#082234 45%,#061a2b 100%);
  background-size:200% 200%,180% 180%,160% 160%,100% 100%;
  animation:oceanFlow 26s ease-in-out infinite alternate;
  z-index:-2;
}
body::after{
  content:'';
  position:fixed;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
  opacity:.03;
  pointer-events:none;
  z-index:-1;
}

@keyframes oceanFlow{
  0%{ background-position:0% 0%,100% 0%,50% 100%,0 0; }
  100%{ background-position:40% 30%,60% 20%,30% 60%,0 0; }
}

img{ max-width:100%; display:block; }

a{ color:inherit; text-decoration:none; }

h1,h2,h3,h4{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:400;
  line-height:1.15;
  margin:0 0 .6em;
  letter-spacing:.005em;
}

h1{ font-size:clamp(2.5rem,6.4vw,5rem); }
h2{ font-size:clamp(1.9rem,4.4vw,3.2rem); }
h3{ font-size:clamp(1.25rem,2.4vw,1.7rem); }

p{ margin:0 0 1.1em; }

.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 24px;
}

.section{ padding:clamp(64px,9vw,130px) 0; position:relative; }
.section--tight{ padding:clamp(48px,6vw,80px) 0; }

/* ---------------- Header / Navigation transparente ---------------- */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:900;
  transition:background .45s ease, backdrop-filter .45s ease, box-shadow .45s ease, padding .35s ease;
  padding:18px 0;
}
.site-header.scrolled{
  background:rgba(6,26,43,.72);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  box-shadow:0 10px 30px rgba(3,17,29,.4);
  border-bottom:1px solid rgba(255,255,255,.08);
  padding:10px 0;
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.65rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ecume);
}
.brand svg{ flex:0 0 auto; }
.brand span{ display:block; line-height:1; }
.brand small{
  display:block;
  font-family:'Jost',sans-serif;
  font-size:.55rem;
  letter-spacing:.42em;
  color:var(--foam);
  margin-top:4px;
  text-transform:uppercase;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:34px;
  list-style:none;
  margin:0; padding:0;
}
.nav-links a{
  position:relative;
  font-size:.82rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--mousse);
  padding:6px 0;
  transition:color .3s ease;
}
.nav-links a::after{
  content:'';
  position:absolute;
  left:0; bottom:0;
  width:0; height:1px;
  background:var(--foam);
  transition:width .4s cubic-bezier(.2,.8,.2,1);
}
.nav-links a:hover,
.nav-links a.active{ color:var(--white); }
.nav-links a:hover::after,
.nav-links a.active::after{ width:100%; }

.nav-cta{
  padding:12px 26px;
  border:1px solid var(--glass-border);
  border-radius:100px;
  background:var(--glass-bg);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  font-size:.75rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--white);
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, background .35s ease;
  white-space:nowrap;
}
.nav-cta:hover{
  background:var(--glass-bg-2);
  transform:translateY(-2px);
  box-shadow:var(--glow);
}

.burger{
  display:none;
  width:44px; height:40px;
  border:1px solid var(--glass-border);
  border-radius:12px;
  background:var(--glass-bg);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  cursor:pointer;
  padding:0;
  position:relative;
}
.burger span{
  position:absolute;
  left:12px; right:12px;
  height:1.5px;
  background:var(--white);
  transition:transform .35s ease, opacity .3s ease;
}
.burger span:nth-child(1){ top:14px; }
.burger span:nth-child(2){ top:19px; }
.burger span:nth-child(3){ top:24px; }
.burger.open span:nth-child(1){ transform:translateY(5px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-5px) rotate(-45deg); }

.mobile-menu{
  position:fixed;
  inset:0;
  z-index:880;
  background:rgba(6,26,43,.96);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-14px);
  transition:opacity .4s ease, visibility .4s ease, transform .5s ease;
}
.mobile-menu.open{ opacity:1; visibility:visible; transform:none; }
.mobile-menu a{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:2rem;
  color:var(--ecume);
  padding:12px 0;
  letter-spacing:.06em;
}
.mobile-menu a:hover{ color:var(--foam); }

/* ---------------- Hero ---------------- */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  padding:120px 0 90px;
}
.hero-bg{
  position:absolute;
  inset:0;
  z-index:-1;
}
.hero-bg img{
  width:100%; height:100%;
  object-fit:cover;
  transform:scale(1.08);
  animation:heroZoom 22s ease-in-out infinite alternate;
}
@keyframes heroZoom{
  0%{ transform:scale(1.04) translateY(0); }
  100%{ transform:scale(1.14) translateY(-18px); }
}
.hero-bg::after{
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(6,26,43,.72) 0%,rgba(6,26,43,.45) 42%,rgba(6,26,43,.92) 100%),
    radial-gradient(900px 520px at 50% 45%, rgba(53,208,196,.16), transparent 68%);
}
.hero-inner{ position:relative; z-index:2; max-width:960px; }
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:.72rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--foam);
  margin-bottom:26px;
}
.eyebrow::before,
.eyebrow::after{
  content:'';
  width:44px; height:1px;
  background:linear-gradient(90deg,transparent,var(--foam));
}
.eyebrow::after{ background:linear-gradient(90deg,var(--foam),transparent); }

.hero h1{
  background:var(--grad-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  margin-bottom:24px;
}
.hero p.lead{
  font-size:clamp(1rem,1.6vw,1.22rem);
  color:var(--mousse);
  max-width:640px;
  margin:0 auto 38px;
  font-weight:300;
}
.hero-actions{
  display:flex;
  justify-content:center;
  gap:16px;
  flex-wrap:wrap;
}

/* Boutons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 38px;
  border-radius:100px;
  font-size:.78rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, background .4s ease, color .4s ease;
  position:relative;
  overflow:hidden;
}
.btn-primary{
  background:linear-gradient(120deg,var(--turquoise),var(--aqua));
  color:#04212f;
  font-weight:500;
  box-shadow:0 14px 34px rgba(53,208,196,.32);
}
.btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 48px rgba(53,208,196,.45);
}
.btn-ghost{
  background:var(--glass-bg);
  border-color:var(--glass-border);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  color:var(--white);
}
.btn-ghost:hover{
  background:var(--glass-bg-2);
  transform:translateY(-3px);
  box-shadow:var(--glow);
}
.btn-block{ width:100%; }

.scroll-hint{
  position:absolute;
  bottom:34px; left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  font-size:.62rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--muted);
}
.scroll-hint i{
  display:block;
  width:1px; height:52px;
  background:linear-gradient(180deg,var(--foam),transparent);
  animation:scrollPulse 2.4s ease-in-out infinite;
}
@keyframes scrollPulse{
  0%,100%{ opacity:.3; transform:scaleY(.6); }
  50%{ opacity:1; transform:scaleY(1); }
}

/* ---------------- Titres de section ---------------- */
.section-head{
  text-align:center;
  max-width:720px;
  margin:0 auto clamp(40px,5vw,68px);
}
.section-head .kicker{
  display:inline-block;
  font-size:.7rem;
  letter-spacing:.4em;
  text-transform:uppercase;
  color:var(--foam);
  margin-bottom:16px;
}
.section-head h2{ color:var(--ecume); margin-bottom:18px; }
.section-head p{ color:var(--muted); margin:0; }
.rule{
  width:70px; height:1px;
  margin:22px auto 0;
  background:linear-gradient(90deg,transparent,var(--aqua),transparent);
}

/* ---------------- Cartes verre ---------------- */
.glass{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  box-shadow:var(--shadow-md);
}

.grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
.grid-2{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:30px;
  align-items:center;
}
.grid-4{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}

/* Carte service 3D */
.service-card{
  position:relative;
  padding:44px 34px;
  border-radius:var(--radius-lg);
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease, background .5s ease, border-color .5s ease;
  transform-style:preserve-3d;
  will-change:transform;
  overflow:hidden;
}
.service-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(53,208,196,.16),transparent 60%);
  opacity:0;
  transition:opacity .5s ease;
  pointer-events:none;
}
.service-card:hover{
  transform:translateY(-12px) rotateX(6deg) rotateY(-4deg);
  box-shadow:var(--shadow-lg), var(--glow);
  border-color:rgba(127,227,212,.5);
  background:var(--glass-bg-2);
}
.service-card:hover::before{ opacity:1; }
.service-icon{
  width:64px; height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(53,208,196,.22),rgba(15,107,143,.28));
  border:1px solid rgba(127,227,212,.28);
  margin-bottom:24px;
  transition:transform .5s ease;
}
.service-card:hover .service-icon{ transform:translateZ(26px) scale(1.06); }
.service-card h3{ color:var(--ecume); margin-bottom:12px; }
.service-card p{ color:var(--muted); margin:0; font-size:.95rem; }

/* ---------------- Bandeau image plein ---------------- */
.band{
  position:relative;
  min-height:56vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
}
.band::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(6,26,43,.78),rgba(6,26,43,.66));
}
.band-inner{ position:relative; z-index:2; max-width:760px; padding:0 24px; }
.band-inner h2{ color:var(--white); }
.band-inner p{ color:var(--mousse); margin:0; }

/* ---------------- Chiffres ---------------- */
.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin-top:clamp(40px,5vw,64px);
}
.stat{
  text-align:center;
  padding:30px 16px;
  border-radius:var(--radius);
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  transition:transform .45s cubic-bezier(.2,.8,.2,1);
}
.stat:hover{ transform:translateY(-8px); }
.stat b{
  display:block;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(2rem,4vw,2.9rem);
  color:var(--foam);
  line-height:1;
  margin-bottom:8px;
}
.stat span{
  font-size:.7rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--muted);
}

/* ---------------- Listes de prestations ---------------- */
.treat{
  display:flex;
  align-items:center;
  gap:20px;
  padding:22px 26px;
  border-radius:var(--radius);
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  transition:transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, background .45s ease;
}
.treat:hover{
  transform:translateX(8px) translateY(-4px);
  box-shadow:var(--shadow-md), var(--glow);
  background:var(--glass-bg-2);
}
.treat .thumb{
  flex:0 0 86px;
  width:86px; height:86px;
  border-radius:14px;
  overflow:hidden;
}
.treat .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.treat:hover .thumb img{ transform:scale(1.1); }
.treat h3{ font-size:1.3rem; margin:0 0 6px; color:var(--ecume); }
.treat p{ margin:0; font-size:.9rem; color:var(--muted); }
.treat .price{
  margin-left:auto;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.5rem;
  color:var(--foam);
  white-space:nowrap;
}
.treat-list{ display:grid; gap:16px; }

/* ---------------- Tarifs ---------------- */
.price-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
  align-items:stretch;
}
.price-card{
  display:flex;
  flex-direction:column;
  padding:46px 34px;
  border-radius:var(--radius-lg);
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease, border-color .5s ease;
}
.price-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-lg);
  border-color:rgba(127,227,212,.45);
}
.price-card.featured{
  background:linear-gradient(160deg,rgba(23,162,184,.23),rgba(6,26,43,.35));
  border-color:rgba(127,227,212,.55);
  box-shadow:var(--shadow-lg),var(--glow);
}
.price-card .tag{
  font-size:.66rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--foam);
  margin-bottom:14px;
}
.price-card h3{ color:var(--white); margin-bottom:6px; }
.price-card .amount{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:3rem;
  color:var(--foam);
  line-height:1;
  margin:10px 0 22px;
}
.price-card .amount small{ font-size:1rem; color:var(--muted); letter-spacing:.1em; }
.price-card ul{
  list-style:none;
  margin:0 0 30px;
  padding:0;
  display:grid;
  gap:12px;
}
.price-card li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:.92rem;
  color:var(--mousse);
}
.price-card li svg{ flex:0 0 auto; margin-top:4px; }
.price-card .btn{ margin-top:auto; }

/* ---------------- Galerie ---------------- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.gallery-item{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  cursor:pointer;
  aspect-ratio:4/3;
  border:1px solid var(--glass-border);
  box-shadow:var(--shadow-sm);
}
.gallery-item.tall{ grid-row:span 2; aspect-ratio:4/6; }
.gallery-item img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .6s ease;
}
.gallery-item::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(6,26,43,.75));
  opacity:0;
  transition:opacity .5s ease;
}
.gallery-item figcaption{
  position:absolute;
  left:22px; right:22px; bottom:20px;
  z-index:2;
  font-size:.72rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--ecume);
  opacity:0;
  transform:translateY(12px);
  transition:opacity .5s ease, transform .5s ease;
}
.gallery-item:hover img{ transform:scale(1.08); }
.gallery-item:hover::after,
.gallery-item:hover figcaption{ opacity:1; }
.gallery-item:hover figcaption{ transform:none; }

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(4,15,25,.92);
  backdrop-filter:blur(8px);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transition:opacity .35s ease;
  padding:30px;
}
.lightbox.active{ opacity:1; }
.lightbox img{
  max-width:92%;
  max-height:88%;
  object-fit:contain;
  border-radius:12px;
  box-shadow:var(--shadow-lg);
}
.lightbox-close{
  position:absolute;
  top:24px; right:30px;
  width:44px; height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid var(--glass-border);
  background:var(--glass-bg);
  color:#fff;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  transition:background .3s ease, transform .3s ease;
}
.lightbox-close:hover{ background:var(--glass-bg-2); transform:rotate(90deg); }

/* ---------------- Témoignages ---------------- */
.quotes{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.quote{
  padding:40px 32px;
  border-radius:var(--radius-lg);
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease;
  display:flex;
  flex-direction:column;
}
.quote:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.quote .mark{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:3.4rem;
  line-height:.6;
  color:var(--aqua);
  margin-bottom:18px;
}
.quote p{ color:var(--mousse); font-style:italic; }
.quote .who{
  margin-top:auto;
  padding-top:20px;
  font-size:.7rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--foam);
}

/* ---------------- Contact ---------------- */
.contact-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:34px;
  align-items:start;
}
.card-pad{
  padding:clamp(28px,3.4vw,46px);
  border-radius:var(--radius-lg);
}
.field{ margin-bottom:18px; }
.field label{
  display:block;
  font-size:.68rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--foam);
  margin-bottom:8px;
}
.field input,
.field textarea,
.field select{
  width:100%;
  padding:15px 18px;
  border-radius:12px;
  border:1px solid var(--glass-border);
  background:rgba(255,255,255,.06);
  color:var(--ecume);
  font-family:inherit;
  font-size:.95rem;
  font-weight:300;
  transition:border-color .3s ease, background .3s ease, box-shadow .3s ease;
}
.field textarea{ min-height:150px; resize:vertical; }
.field input::placeholder,
.field textarea::placeholder{ color:rgba(169,198,210,.6); }
.field input:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--aqua);
  background:rgba(255,255,255,.1);
  box-shadow:0 0 0 4px rgba(53,208,196,.14);
}
.form-note{ font-size:.78rem; color:var(--muted); margin:14px 0 0; }

.info-item{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:20px 0;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.info-item:last-child{ border-bottom:none; }
.info-item .ico{
  flex:0 0 44px;
  width:44px; height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:linear-gradient(135deg,rgba(53,208,196,.2),rgba(15,107,143,.26));
  border:1px solid rgba(127,227,212,.25);
}
.info-item .lbl{
  font-size:.65rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:4px;
}
.info-item .val{ color:var(--ecume); font-size:1rem; }
.info-item .val a:hover{ color:var(--foam); }

.map-frame{
  margin-top:26px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--glass-border);
  box-shadow:var(--shadow-md);
  line-height:0;
}
.map-frame iframe{
  width:100%;
  height:320px;
  border:0;
  filter:saturate(.9) contrast(1.05);
}

/* Toast */
.toast{
  position:fixed;
  left:50%; bottom:34px;
  transform:translate(-50%,120%);
  z-index:9500;
  padding:16px 30px;
  border-radius:100px;
  background:linear-gradient(120deg,var(--turquoise),var(--aqua));
  color:#04212f;
  font-size:.85rem;
  letter-spacing:.06em;
  box-shadow:0 18px 44px rgba(53,208,196,.4);
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
  max-width:90vw;
  text-align:center;
}
.toast.show{ transform:translate(-50%,0); }
.toast.error{ background:linear-gradient(120deg,#d95757,#f08a6a); color:#2a0b0b; }

/* ---------------- Footer ---------------- */
.site-footer{
  position:relative;
  padding:clamp(56px,7vw,96px) 0 34px;
  background:linear-gradient(180deg,rgba(6,26,43,.2),rgba(4,15,25,.85));
  border-top:1px solid rgba(255,255,255,.08);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.2fr;
  gap:38px;
}
.footer-grid h4{
  font-family:'Jost',sans-serif;
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--foam);
  margin-bottom:20px;
}
.footer-grid p,
.footer-grid a{ color:var(--muted); font-size:.92rem; }
.footer-grid a{ display:block; padding:5px 0; transition:color .3s ease, transform .3s ease; }
.footer-grid a:hover{ color:var(--white); transform:translateX(4px); }
.footer-links{ display:grid; gap:2px; }
.footer-bottom{
  margin-top:52px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  font-size:.78rem;
  color:var(--muted-dark);
}

/* ---------------- Animations d'apparition ---------------- */
.reveal{
  opacity:0;
  transform:translateY(38px);
  transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1);
  animation:revealFallback .9s ease .3s forwards;
}
.reveal.visible{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.12s; }
.reveal.d2{ transition-delay:.24s; }
.reveal.d3{ transition-delay:.36s; }
@keyframes revealFallback{ to{ opacity:1; transform:translateY(0); } }

/* Rester cliquable pendant l'animation */
.reveal{ pointer-events:auto; }

/* ---------------- Responsive ---------------- */
@media (max-width:1024px){
  .grid-3,.price-cards,.quotes,.gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .grid-4{ grid-template-columns:repeat(2,1fr); }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:30px; }
  .contact-grid{ grid-template-columns:1fr; }
  .nav-links{ display:none; }
  .nav-cta{ display:none; }
  .burger{ display:block; }
  .band{ background-attachment:scroll; }
}

@media (max-width:768px){
  .grid-3,.grid-2,.grid-4,.price-cards,.quotes,.gallery-grid,.stats{ grid-template-columns:1fr; }
  .gallery-item.tall{ grid-row:auto; aspect-ratio:4/3; }
  .footer-grid{ grid-template-columns:1fr; }
  .treat{ flex-wrap:wrap; }
  .treat .price{ margin-left:0; width:100%; }
  .hero{ min-height:92svh; }
  .section{ padding:64px 0; }
  .footer-bottom{ flex-direction:column; text-align:center; }
  .btn{ width:100%; }
  .hero-actions .btn{ width:auto; }
  .scroll-hint{ display:none; }
}

@media (max-width:480px){
  .hero-actions{ flex-direction:column; }
  .hero-actions .btn{ width:100%; }
  .container{ padding:0 18px; }
}

/* Accessibilité / mouvement réduit */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* Cookie bar */
.cookie-bar{
  position:fixed;
  left:18px; right:18px; bottom:18px;
  z-index:8000;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:18px 26px;
  border-radius:var(--radius);
  background:rgba(6,26,43,.9);
  border:1px solid var(--glass-border);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  box-shadow:var(--shadow-lg);
}
.cookie-bar p{ margin:0; font-size:.86rem; color:var(--mousse); }
.cookie-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.cookie-actions .btn{ padding:11px 24px; }
@media (max-width:640px){
  .cookie-actions{ width:100%; }
  .cookie-actions .btn{ flex:1; }
}

/* Page légale / texte long */
.legal-body{ max-width:820px; margin:0 auto; }
.legal-body h2{ color:var(--ecume); margin-top:40px; }
.legal-body h3{ color:var(--foam); font-size:1.2rem; }
.legal-body p,.legal-body li{ color:var(--muted); }
.legal-body a{ color:var(--foam); text-decoration:underline; }

.page-hero{
  padding:clamp(140px,17vw,210px) 0 clamp(48px,6vw,80px);
  text-align:center;
  position:relative;
}
.page-hero h1{
  color:var(--ecume);
  margin-bottom:16px;
}
.page-hero p{ color:var(--muted); max-width:640px; margin:0 auto; }
.breadcrumb{
  font-size:.68rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:20px;
}
.breadcrumb a:hover{ color:var(--foam); }

/* ==========================================================================
   AMBIANCE SONORE — bruits de l'océan (lecteur discret flottant)
   ========================================================================== */
.sound-toggle{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:7600;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 15px;
  border-radius:12px;
  background:rgba(6,26,43,.74);
  border:1px solid var(--glass-border);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  color:var(--ecume);
  font-family:inherit;
  font-size:.68rem;
  font-weight:400;
  letter-spacing:.18em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:var(--shadow-md);
  transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, background .35s ease;
}
.sound-toggle:hover{
  transform:translateY(-3px);
  background:rgba(10,42,67,.88);
  box-shadow:var(--glow);
}
.sound-toggle:focus-visible{
  outline:2px solid var(--foam);
  outline-offset:3px;
}
.sound-toggle .bars{
  display:inline-flex;
  align-items:flex-end;
  gap:2px;
  height:14px;
}
.sound-toggle .bars i{
  display:block;
  width:2px;
  height:4px;
  border-radius:1px;
  background:var(--foam);
  opacity:.55;
}
.sound-toggle.is-playing .bars i{ animation:eq 1.1s ease-in-out infinite; }
.sound-toggle.is-playing .bars i:nth-child(2){ animation-delay:.16s; }
.sound-toggle.is-playing .bars i:nth-child(3){ animation-delay:.32s; }
.sound-toggle.is-playing .bars i:nth-child(4){ animation-delay:.48s; }
.sound-toggle.is-playing .bars i:nth-child(5){ animation-delay:.64s; }
@keyframes eq{
  0%,100%{ height:4px;  opacity:.5; }
  50%    { height:14px; opacity:1; }
}
.sound-toggle .label-narrow{ display:none; }

/* Invitation douce tant que le son n'a jamais été activé */
.sound-toggle.invite{ animation:invite 3.4s ease-in-out infinite; }
@keyframes invite{
  0%,74%,100%{ box-shadow:var(--shadow-md), 0 0 0 0 rgba(53,208,196,0); }
  86%        { box-shadow:var(--shadow-md), 0 0 0 9px rgba(53,208,196,.16); }
}

@media (max-width:520px){
  .sound-toggle{
    right:12px;
    bottom:12px;
    padding:8px 12px;
    gap:8px;
    font-size:.62rem;
    letter-spacing:.12em;
  }
  .sound-toggle .label-wide{ display:none; }
  .sound-toggle .label-narrow{ display:inline; }
}

@media (prefers-reduced-motion:reduce){
  .sound-toggle.invite{ animation:none; }
  .sound-toggle.is-playing .bars i{ animation:none; height:9px; opacity:.85; }
}
