@font-face { font-family:'Kepler ConforTiny'; src:url('/public/fonts/KeplerStdRegular.otf') format('opentype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Kepler ConforTiny'; src:url('/public/fonts/KeplerStdSemibold.otf') format('opentype'); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:'Akmorn Grotesque'; src:url('/public/fonts/AkmornGrotesque-Light.ttf') format('truetype'); font-style:normal; font-weight:300; font-display:swap; }
@font-face { font-family:'Akmorn Grotesque'; src:url('/public/fonts/AkmornGrotesque-Regular.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Akmorn Grotesque'; src:url('/public/fonts/AkmornGrotesque-Medium.ttf') format('truetype'); font-style:normal; font-weight:500; font-display:swap; }
@font-face { font-family:'Akmorn Grotesque'; src:url('/public/fonts/AkmornGrotesque-SemiBold.ttf') format('truetype'); font-style:normal; font-weight:600; font-display:swap; }

:root {
  --green:#476456;
  --green-deep:#20392d;
  --sage:#dfe9e2;
  --sage-soft:#f1f6f2;
  --paper:#fffefa;
  --warm:#f7eee8;
  --ink:#1e261f;
  --muted:#667167;
  --terra:#b46148;
  --gold:#d7a315;
  --line:#d9e1da;
  --serif:'Kepler ConforTiny', Georgia, serif;
  --sans:'Akmorn Grotesque', Arial, sans-serif;
  --shadow:0 18px 50px rgba(32,57,45,.10);
  --page-gutter:max(5vw,calc((100vw - 1180px)/2));
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
::selection { background:var(--sage); color:var(--green-deep); }
body {
  margin:0;
  color:var(--ink);
  background:linear-gradient(180deg,var(--paper),#fbfaf5 42%,var(--paper));
  font-family:var(--sans);
  font-size:15px;
  font-weight:400;
  line-height:1.7;
  letter-spacing:0;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,iframe { max-width:100%; }
button,a { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:2px solid var(--terra); outline-offset:4px; }

.header {
  height:82px;
  padding:0 var(--page-gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:rgba(255,254,250,.88);
  backdrop-filter:blur(18px);
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid rgba(217,225,218,.85);
  transition:background .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.is-scrolled .header { background:rgba(255,254,250,.96); border-color:rgba(71,100,86,.16); box-shadow:0 10px 32px rgba(32,57,45,.07); }
.logo { border:0; background:none; display:flex; align-items:center; padding:0; flex:0 0 auto; }
.logo img { width:104px; height:60px; object-fit:contain; display:block; filter:brightness(0) saturate(100%) invert(38%) sepia(13%) saturate(720%) hue-rotate(88deg) brightness(91%) contrast(87%); transition:filter .2s ease; }
.logo:hover img { filter:brightness(0) saturate(100%) invert(25%) sepia(18%) saturate(780%) hue-rotate(91deg) brightness(91%) contrast(88%); }
.logo--light img { width:132px; height:80px; filter:brightness(0) invert(1); opacity:.92; }
.nav { display:flex; align-items:center; gap:22px; }
.nav button {
  border:0;
  background:none;
  color:var(--muted);
  padding:30px 0 26px;
  position:relative;
  white-space:nowrap;
  font-size:13px;
  font-weight:500;
  transition:color .2s ease;
}
.nav button::after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:24px;
  height:1px;
  background:var(--terra);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .25s ease;
}
.nav button:hover,.nav button.active { color:var(--green-deep); }
.nav button:hover::after,.nav button.active::after { transform:scaleX(1); transform-origin:left; }
.menu-button { display:none; border:0; background:none; color:var(--green); width:38px; padding:7px 2px; }
.menu-button span { display:block; height:1px; background:currentColor; margin:7px 0; }

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:0 24px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transform:translateY(0);
  transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s cubic-bezier(.22,.8,.27,1);
}
.button::before {
  content:'';
  position:absolute;
  z-index:-1;
  top:-80%;
  bottom:-80%;
  left:-42%;
  width:30%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  transform:translateX(-180%) rotate(18deg);
  transition:transform .65s cubic-bezier(.22,.8,.27,1);
}
.button:hover { transform:translateY(-2px); box-shadow:0 15px 30px rgba(32,57,45,.16); }
.button:hover::before { transform:translateX(580%) rotate(18deg); }
.button:active { transform:translateY(0) scale(.98); transition-duration:.08s; }
.button--green { background:var(--green); color:white; box-shadow:0 10px 24px rgba(71,100,86,.16); }
.button--green:hover { background:var(--green-deep); }
.button--outline,.button--terracotta { border-color:rgba(71,100,86,.45); color:var(--green-deep); background:rgba(255,254,250,.56); }
.button--outline:hover,.button--terracotta:hover { background:var(--green); border-color:var(--green); color:white; }
.button--light { background:white; color:var(--green-deep); border-color:white; }
.mobile-nav-cta { display:none; }

.hero { padding:22px max(3vw,calc((100vw - 1280px)/2)) 58px; background:linear-gradient(180deg,var(--paper) 0 68%,var(--sage-soft) 68%); }
.hero-frame {
  min-height:clamp(560px,calc(100vh - 112px),660px);
  border:1px solid var(--line);
  border-radius:8px;
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  align-items:center;
  padding:clamp(38px,5vw,64px);
  background:linear-gradient(135deg,rgba(255,254,250,.96),rgba(241,246,242,.84));
  box-shadow:var(--shadow);
}
.hero-copy { position:relative; z-index:3; max-width:530px; }
.hero-pretitle,.video-hero-copy span {
  display:block;
  color:var(--terra);
  font-size:12px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:14px;
}
.hero h1,.page-hero h1,.simple-hero h1,.video-hero h1 {
  font:400 clamp(48px,5.4vw,84px)/1.02 var(--serif);
  color:var(--green-deep);
  margin:0 0 22px;
  letter-spacing:0;
}
.hero-copy>p,.page-hero p,.simple-hero p,.video-hero p { color:var(--muted); margin:0; max-width:560px; font-size:16px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.hero-visual { position:absolute; z-index:1; width:min(60%,740px); height:clamp(420px,42vw,540px); right:6%; top:50%; transform:translateY(-50%); opacity:0; animation:visualReveal .65s .12s cubic-bezier(.22,.8,.27,1) forwards; }
.hero-shape { position:absolute; inset:-18px -20px 22% 12%; background:var(--sage); border-radius:52% 48% 47% 53% / 43% 52% 48% 57%; transform:rotate(-3deg); animation:organicFloat 11s ease-in-out infinite alternate; }
.hero-image { position:absolute; right:0; bottom:0; width:78%; height:88%; object-fit:cover; border-radius:8px; filter:saturate(.92); box-shadow:0 22px 55px rgba(32,57,45,.15); animation:imageBreath 12s ease-in-out 1s infinite alternate; }
.hero-copy>* { opacity:0; animation:heroReveal .7s cubic-bezier(.22,.8,.27,1) forwards; }
.hero-copy>*:nth-child(1) { animation-delay:.06s; }
.hero-copy>*:nth-child(2) { animation-delay:.14s; }
.hero-copy>*:nth-child(3) { animation-delay:.22s; }
.hero-copy>*:nth-child(4) { animation-delay:.30s; }

.section { max-width:1180px; margin:auto; padding:clamp(72px,8vw,108px) 32px; }
h2 { color:var(--green-deep); font:400 clamp(34px,3.8vw,58px)/1.08 var(--serif); margin:0 0 24px; letter-spacing:0; }
h3 { margin:0; }
.lead { font-size:20px; line-height:1.55; color:var(--green); }
.intro { display:grid; grid-template-columns:.92fr 1.08fr; gap:12%; }
.intro p { max-width:560px; }
.text-link {
  border:0;
  border-bottom:1px solid var(--green);
  background:none;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 0 5px;
  color:var(--green-deep);
  font-size:13px;
  font-weight:700;
  transition:color .25s ease,border-color .25s ease;
}
.text-link svg { width:18px; transition:transform .2s ease; }
.text-link:hover { color:var(--terra); border-color:var(--terra); }
.text-link:hover svg { transform:translateX(5px); }
.featured { border-top:1px solid var(--line); }
.section-head { display:flex; justify-content:space-between; align-items:end; gap:28px; margin-bottom:30px; }
.section-head p { color:var(--muted); margin:0; max-width:560px; }

.category-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.category-card {
  min-height:210px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.78);
  padding:28px;
  border-radius:8px;
  box-shadow:0 14px 34px rgba(32,57,45,.06);
  transition:transform .4s cubic-bezier(.22,.8,.27,1),box-shadow .4s ease,border-color .4s ease,background .4s ease;
}
.category-card h3 { color:var(--green-deep); font:400 29px/1.12 var(--serif); }
.category-card p { color:var(--muted); margin:12px 0 18px; }
.category-card strong { color:var(--terra); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }

.page-hero {
  min-height:430px;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  background:linear-gradient(135deg,var(--paper),var(--sage-soft));
  border-bottom:1px solid var(--line);
  padding:48px var(--page-gutter);
  gap:58px;
}
.page-hero>div { align-self:center; }
.page-hero h1 { font-size:clamp(44px,4.8vw,72px); }
.page-hero img { width:100%; height:360px; object-fit:cover; object-position:center 34%; border-radius:8px; box-shadow:var(--shadow); }

.page-body { display:grid; grid-template-columns:1fr 300px; gap:56px; align-items:start; }
.tarifs { display:grid; gap:14px; }
.tarif-category {
  border:1px solid var(--line);
  background:white;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 14px 34px rgba(32,57,45,.06);
  transition:border-color .35s ease,box-shadow .35s ease,transform .35s ease;
}
.tarif-category[open] { border-color:rgba(71,100,86,.34); box-shadow:0 20px 44px rgba(32,57,45,.10); }
.tarif-category summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:86px;
  padding:20px 22px;
  cursor:pointer;
  transition:background .3s ease;
}
.tarif-category summary:hover { background:var(--sage-soft); }
.tarif-category summary::-webkit-details-marker { display:none; }
.tarif-category summary strong { display:block; color:var(--green-deep); font:400 clamp(24px,3vw,36px)/1.08 var(--serif); }
.tarif-category summary small { display:block; color:var(--muted); font-size:12px; margin-top:5px; }
.summary-icon {
  width:36px;
  height:36px;
  border:1px solid var(--line);
  border-radius:50%;
  position:relative;
  flex:0 0 auto;
  background:var(--sage-soft);
  transition:transform .35s cubic-bezier(.22,.8,.27,1),background .35s ease,border-color .35s ease;
}
.summary-icon::before,.summary-icon::after { content:''; position:absolute; left:10px; right:10px; top:17px; height:1px; background:var(--green-deep); }
.summary-icon::before,.summary-icon::after { transition:transform .35s ease; }
.summary-icon::after { transform:rotate(90deg); }
.tarif-category[open] .summary-icon { transform:rotate(180deg); background:var(--green); border-color:var(--green); }
.tarif-category[open] .summary-icon::before,.tarif-category[open] .summary-icon::after { background:white; }
.tarif-category[open] .summary-icon::after { transform:rotate(0); }
.tarif-description { color:var(--muted); margin:0; padding:0 22px 18px; max-width:760px; }
.service-list { border-top:1px solid var(--line); background:linear-gradient(180deg,#fff,var(--sage-soft)); }
.service {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding:18px 22px;
  transition:background .25s ease,padding-left .3s ease;
}
.service:last-child { border-bottom:0; }
.service h3 { color:var(--ink); font:500 16px/1.35 var(--sans); }
.service strong { color:var(--terra); font-size:16px; font-weight:700; white-space:nowrap; }
.duration { color:var(--muted); display:flex; align-items:center; gap:6px; margin-top:5px; font-size:12px; }
.duration svg { width:14px; }
.note {
  background:linear-gradient(180deg,var(--green),var(--green-deep));
  color:white;
  padding:28px;
  border-radius:8px;
  position:sticky;
  top:104px;
  box-shadow:var(--shadow);
}
.note h3 { font:400 30px/1.12 var(--serif); }
.note p { color:#edf2ee; margin-bottom:22px; }
.note .button { width:100%; padding:0 16px; }

.space-section {
  display:grid;
  grid-template-columns:1.12fr .88fr;
  min-height:500px;
  background:var(--sage-soft);
  padding:52px var(--page-gutter);
  gap:56px;
}
.space-section img { width:100%; height:100%; min-height:390px; object-fit:cover; border-radius:8px; box-shadow:var(--shadow); }
.space-section>div { align-self:center; }
.space-section p { max-width:430px; margin-bottom:28px; color:var(--muted); }

.video-hero {
  padding:clamp(56px,7vw,90px) var(--page-gutter);
  background:linear-gradient(135deg,var(--sage-soft),var(--warm));
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:48px;
  align-items:center;
}
.video-hero-copy { max-width:460px; }
.video-frame {
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:8px;
  background:var(--green-deep);
  box-shadow:var(--shadow);
  transition:transform .5s cubic-bezier(.22,.8,.27,1),box-shadow .5s ease;
}
.video-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.values { background:var(--paper); }
.values h2 { max-width:620px; }
.values-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--green); }
.values-grid article { padding:28px 24px 10px 0; border-right:1px solid var(--line); }
.values-grid article+article { padding-left:24px; }
.values-grid article:last-child { border-right:0; }
.values-grid h3 { color:var(--green-deep); font:400 27px var(--serif); margin-bottom:8px; }
.values-grid p { color:var(--muted); }

.simple-hero {
  padding:clamp(58px,8vw,104px) var(--page-gutter) clamp(40px,5vw,70px);
  background:linear-gradient(135deg,var(--paper),var(--sage-soft) 58%,var(--warm));
  border-bottom:1px solid var(--line);
}
.simple-hero>div { max-width:820px; }
.simple-hero h1 { font-size:clamp(46px,5.2vw,78px); }
.simple-hero p { font-size:17px; }
.instagram-section { max-width:1180px; }
.carousel-shell { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:14px; align-items:center; }
.instagram-carousel {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(320px,440px);
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding:4px;
  padding:6px 4px 18px;
  scrollbar-width:thin;
}
.instagram-card {
  scroll-snap-align:center;
  min-width:0;
  border:1px solid var(--line);
  border-radius:8px;
  background:white;
  padding:12px;
  box-shadow:0 14px 34px rgba(32,57,45,.07);
  transition:transform .4s cubic-bezier(.22,.8,.27,1),box-shadow .4s ease,border-color .4s ease;
}
.instagram-card .instagram-media { min-width:0!important; width:100%!important; max-width:420px!important; margin:0 auto!important; box-shadow:none!important; border:0!important; }
.carousel-button {
  width:44px;
  height:44px;
  border:1px solid var(--line);
  border-radius:50%;
  background:white;
  color:var(--green-deep);
  font-size:32px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 24px rgba(32,57,45,.08);
  transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease;
}
.gallery-note { padding-top:28px; text-align:center; }

.reviews-section { max-width:1120px; }
.reviews-summary {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-bottom:24px;
}
.reviews-summary>div {
  min-height:96px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--sage-soft);
  padding:22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.reviews-summary strong { color:var(--green-deep); font:400 46px/1 var(--serif); }
.reviews-summary span { color:var(--muted); font-size:13px; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.review-card {
  margin:0;
  border:1px solid var(--line);
  border-radius:8px;
  padding:24px;
  background:white;
  box-shadow:0 12px 28px rgba(32,57,45,.06);
  transition:transform .4s cubic-bezier(.22,.8,.27,1),box-shadow .4s ease,border-color .4s ease;
}
.review-card>svg { width:26px; color:var(--terra); margin-bottom:12px; }
.review-card p { color:var(--green-deep); font:400 21px/1.34 var(--serif); margin:14px 0 20px; }
.review-card--compact p { font-size:18px; }
.review-card footer { font-weight:700; color:var(--ink); }
.review-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:12px; }
.stars { display:inline-flex; gap:2px; color:var(--gold); }
.stars svg { width:13px; height:13px; fill:currentColor; stroke:currentColor; }
.more-reviews { margin-top:20px; }
.more-reviews summary {
  min-height:50px;
  border:1px solid var(--line);
  border-radius:999px;
  background:white;
  color:var(--green-deep);
  display:inline-flex;
  align-items:center;
  padding:0 22px;
  font-weight:700;
  cursor:pointer;
}
.reviews-grid--more { margin-top:18px; grid-template-columns:repeat(2,1fr); }

.contact-section { display:grid; grid-template-columns:.82fr 1.18fr; gap:56px; }
.contact-details>div { padding:24px 0; border-bottom:1px solid var(--line); }
.contact-label { color:var(--terra); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.contact-details h3 { color:var(--green-deep); font:400 28px var(--serif); margin:10px 0; }
.contact-details p { margin:5px 0; color:var(--muted); }
.hours-list { display:grid; gap:7px; margin-top:12px; }
.hours-list p { display:flex; justify-content:space-between; gap:20px; margin:0; }
.hours-list strong { color:var(--green-deep); font-weight:700; }
.contact-actions { display:flex; flex-wrap:wrap; gap:10px; border:0!important; }
.contact-actions .button { min-height:46px; padding:0 20px; }
.map iframe { width:100%; min-height:520px; border:0; border-radius:8px; background:var(--sage-soft); box-shadow:var(--shadow); }

.footer {
  background:var(--green-deep);
  color:#edf2ee;
  padding:62px var(--page-gutter);
  display:grid;
  grid-template-columns:1.25fr 1fr .7fr .7fr;
  gap:42px;
  font-size:12px;
}
.footer .logo { margin-bottom:14px; }
.footer p { margin:5px 0; }
.footer a,.footer button { display:flex; align-items:center; gap:9px; margin:9px 0; color:inherit; background:none; border:0; padding:0; font-size:12px; }
.footer a,.footer button { transition:color .2s ease,transform .2s ease; }
.footer a:hover,.footer button:hover { color:white; transform:translateX(3px); }
.footer-title { font-weight:700; color:white; margin-bottom:14px!important; }

.reveal { opacity:0; transform:translateY(24px) scale(.988); filter:blur(5px); transition:opacity .72s cubic-bezier(.22,.8,.27,1),transform .72s cubic-bezier(.22,.8,.27,1),filter .72s ease; transition-delay:var(--reveal-delay,0ms); will-change:opacity,transform; }
.reveal.in-view { opacity:1; transform:translateY(0) scale(1); filter:blur(0); }
@keyframes heroReveal { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@keyframes visualReveal { from { opacity:0; transform:translate(18px,-50%) scale(.99); } to { opacity:1; transform:translate(0,-50%) scale(1); } }
@keyframes organicFloat { from { border-radius:52% 48% 47% 53% / 43% 52% 48% 57%; transform:rotate(-3deg) translate3d(0,0,0); } to { border-radius:48% 52% 54% 46% / 49% 45% 55% 51%; transform:rotate(-1deg) translate3d(-7px,6px,0); } }
@keyframes imageBreath { from { transform:scale(1); } to { transform:scale(1.014); } }
@keyframes accordionEnter { from { opacity:0; transform:translateY(-7px); } to { opacity:1; transform:translateY(0); } }
.tarif-category[open] .tarif-description,.tarif-category[open] .service-list { animation:accordionEnter .38s cubic-bezier(.22,.8,.27,1) both; }

.cream-cursor {
  position:fixed;
  top:0;
  left:0;
  width:1px;
  height:1px;
  z-index:9999;
  pointer-events:none;
  opacity:0;
  transition:opacity .2s ease;
  will-change:transform;
}
.cream-cursor.is-visible { opacity:1; }
.cream-cursor-leaf {
  position:absolute;
  width:34px;
  height:28px;
  left:0;
  top:0;
  border:1px solid rgba(71,100,86,.35);
  border-radius:72% 28% 68% 32% / 62% 38% 62% 38%;
  background:radial-gradient(circle at 34% 28%,#fffdf7 0 17%,#f2e4d4 48%,#d9bfa7 100%);
  box-shadow:0 5px 15px rgba(32,57,45,.14),inset -5px -5px 10px rgba(180,97,72,.08);
  transform:translate(-50%,-50%) rotate(-25deg) scale(1);
  transition:width .25s ease,height .25s ease,transform .25s cubic-bezier(.22,.8,.27,1),border-color .25s ease,background .25s ease;
}
.cream-cursor-leaf::after {
  content:'';
  position:absolute;
  width:15px;
  height:1px;
  left:9px;
  top:14px;
  background:rgba(71,100,86,.42);
  transform:rotate(-9deg);
  transform-origin:left;
}
.cream-cursor-dot {
  position:absolute;
  width:4px;
  height:4px;
  left:0;
  top:0;
  border-radius:50%;
  background:var(--green-deep);
  transform:translate(-50%,-50%);
  transition:opacity .2s ease,transform .2s ease;
}
.cream-cursor.is-interactive .cream-cursor-leaf { width:48px; height:40px; border-color:rgba(180,97,72,.5); background:rgba(247,238,232,.68); transform:translate(-50%,-50%) rotate(-12deg) scale(1.02); }
.cream-cursor.is-interactive .cream-cursor-dot { transform:translate(-50%,-50%) scale(1.45); }
.cream-cursor.is-pressed .cream-cursor-leaf { transform:translate(-50%,-50%) rotate(-12deg) scale(.86); }
.has-custom-cursor body,.has-custom-cursor a,.has-custom-cursor button,.has-custom-cursor summary { cursor:none; }

@media (hover:hover) and (pointer:fine) {
  .category-card:hover,.review-card:hover,.instagram-card:hover { transform:translateY(-5px); border-color:rgba(71,100,86,.34); box-shadow:0 22px 48px rgba(32,57,45,.12); }
  .service:hover { background:rgba(223,233,226,.52); padding-left:27px; }
  .video-frame:hover { transform:translateY(-4px) scale(1.006); box-shadow:0 26px 65px rgba(32,57,45,.16); }
  .carousel-button:hover { transform:translateY(-2px) scale(1.04); background:var(--green); color:white; box-shadow:0 14px 30px rgba(32,57,45,.16); }
  .carousel-button:active { transform:scale(.94); }
}

@media (max-width:1050px) {
  :root { --page-gutter:clamp(20px,6vw,42px); }
  .header { height:72px; padding:0 var(--page-gutter); }
  .header-cta { display:none; }
  .menu-button { display:block; width:44px; min-height:44px; margin-right:-8px; padding:7px 8px; }
  .nav { display:none; position:absolute; top:72px; left:0; right:0; padding:12px var(--page-gutter) calc(22px + env(safe-area-inset-bottom)); background:rgba(255,254,250,.98); backdrop-filter:blur(18px); flex-direction:column; align-items:stretch; gap:0; border-bottom:1px solid var(--line); box-shadow:0 16px 30px rgba(32,57,45,.12); max-height:calc(100svh - 72px); overflow-y:auto; }
  .nav--open { display:flex; }
  .nav button { min-height:48px; text-align:left; padding:12px 0; font-size:15px; }
  .nav button::after { right:auto; bottom:6px; width:34px; }
  .nav .mobile-nav-cta { display:inline-flex; width:100%; margin-top:14px; color:white; min-height:50px; padding:0 20px; }
  .logo img { width:84px; height:52px; }
  .hero,.page-hero,.video-hero { grid-template-columns:1fr; }
  .hero { padding:14px var(--page-gutter) 38px; }
  .hero-frame { min-height:auto; display:flex; flex-direction:column; align-items:stretch; padding:36px 28px 28px; border-radius:12px; }
  .hero h1 { font-size:clamp(42px,9vw,54px); }
  .hero-copy>p { max-width:460px; }
  .hero-visual { position:relative; width:100%; height:340px; right:auto; top:auto; bottom:auto; transform:none; margin-top:28px; animation:visualRevealMobile .5s .12s cubic-bezier(.22,.8,.27,1) forwards; }
  .hero-image { width:88%; height:300px; left:50%; right:auto; transform:translateX(-50%); animation:none; }
  .hero-shape { inset:-10px 3% 22%; }
  .section { padding:68px var(--page-gutter); }
  .intro,.page-body,.contact-section,.space-section { grid-template-columns:1fr; gap:40px; }
  .page-hero { min-height:auto; padding:42px var(--page-gutter) 0; gap:30px; }
  .page-hero img { height:320px; min-height:0; }
  .section-head { align-items:start; flex-direction:column; }
  .category-grid,.reviews-grid,.reviews-grid--more { grid-template-columns:1fr; }
  .note { position:static; }
  .space-section { padding:44px var(--page-gutter); }
  .space-section img { height:340px; min-height:0; }
  .video-hero { padding:44px var(--page-gutter) 58px; }
  .values-grid { grid-template-columns:1fr 1fr; }
  .values-grid article:nth-child(2) { border-right:0; }
  .carousel-shell { grid-template-columns:1fr; }
  .carousel-button { display:none; }
  .instagram-carousel { grid-auto-columns:100%; gap:14px; padding-inline:0; scroll-padding:0; }
  .instagram-card { scroll-snap-align:start; }
  .reviews-summary { grid-template-columns:1fr; }
  .footer { grid-template-columns:1fr 1fr; }
}
@keyframes visualRevealMobile { from { opacity:0; transform:translateX(16px) scale(.99); } to { opacity:1; transform:translateX(0) scale(1); } }
@media (max-width:520px) {
  :root { --page-gutter:20px; }
  body { font-size:15px; line-height:1.62; }
  .header { height:68px; }
  .nav { top:68px; max-height:calc(100svh - 68px); }
  .hero { padding-top:12px; padding-bottom:32px; }
  .hero h1,.page-hero h1,.simple-hero h1,.video-hero h1 { font-size:clamp(36px,10.2vw,42px); line-height:1.04; }
  .hero-frame { padding:28px 20px 20px; }
  .hero-pretitle,.video-hero-copy span { margin-bottom:10px; }
  .hero-copy>p,.page-hero p,.simple-hero p,.video-hero p { font-size:15px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-actions .button { width:100%; }
  .hero-image { width:94%; height:258px; }
  .hero-visual { height:288px; margin-top:22px; }
  .button { width:100%; padding:0 18px; }
  .text-link,.footer .button { width:auto; }
  .section { padding-block:56px; }
  h2 { font-size:clamp(34px,10vw,42px); }
  .intro { gap:10px; }
  .intro h2 br,.space-section h2 br { display:none; }
  .section-head { gap:4px; margin-bottom:24px; }
  .category-card { min-height:0; }
  .page-hero { padding-top:36px; gap:24px; }
  .page-hero img { height:240px; border-radius:8px 8px 0 0; }
  .tarif-category summary { min-height:76px; padding:18px; }
  .tarif-category summary strong { font-size:clamp(23px,7vw,27px); }
  .tarif-category summary small { line-height:1.4; }
  .summary-icon { width:34px; height:34px; }
  .summary-icon::before,.summary-icon::after { top:16px; left:9px; right:9px; }
  .tarif-description { padding:0 18px 16px; }
  .service { grid-template-columns:1fr; gap:9px; padding:16px 18px; }
  .service strong { font-size:16px; }
  .category-card,.review-card,.note { padding:22px; }
  .note { text-align:left; }
  .review-card p { font-size:19px; }
  .values-grid { grid-template-columns:1fr; }
  .values-grid article,.values-grid article+article { border-right:0; border-bottom:1px solid var(--line); padding:24px 0; }
  .space-section { gap:28px; }
  .space-section img { height:280px; }
  .simple-hero { padding-top:52px; padding-bottom:38px; }
  .reviews-summary { grid-template-columns:1fr 1fr; gap:10px; }
  .reviews-summary>div { min-height:104px; padding:16px; }
  .reviews-summary strong { font-size:40px; }
  .reviews-summary .stars { flex-wrap:wrap; }
  .more-reviews summary { width:100%; justify-content:center; }
  .contact-details h3,.contact-details p { overflow-wrap:anywhere; }
  .hours-list p { display:grid; grid-template-columns:1fr auto; gap:16px; }
  .contact-actions { display:grid; grid-template-columns:1fr 1fr; }
  .contact-actions .button:first-child { grid-column:1/-1; }
  .map iframe { min-height:340px; }
  .footer { grid-template-columns:1fr; gap:32px; padding-top:48px; padding-bottom:calc(52px + env(safe-area-inset-bottom)); }
  .footer .logo--light img { width:112px; height:66px; }
  .text-link { min-height:44px; }
  .footer a,.footer button { min-height:40px; margin:0; }
  .reveal { opacity:1; transform:none; filter:none; transition:none; }
}
@media (max-width:350px) {
  :root { --page-gutter:16px; }
  .hero-frame { padding-inline:16px; }
  .hero h1,.page-hero h1,.simple-hero h1,.video-hero h1 { font-size:34px; }
  .reviews-summary { grid-template-columns:1fr; }
  .contact-actions { grid-template-columns:1fr; }
  .contact-actions .button:first-child { grid-column:auto; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
  .reveal,.hero-copy>*,.hero-visual { opacity:1!important; transform:none!important; }
}
