/* ============ Cleanax — Liquid Glass design system ============ */
:root{
  --ink:#0b1210;
  --ink-2:#0f1a18;
  --chalk:#f5f1e8;
  --chalk-dim:#eae3d2;
  --water:#1f5c63;
  --water-bright:#3fb6ba;
  --champagne:#c9a66b;
  --text-dark:#12181a;
  --text-soft:#3c4644;
  --text-on-dark:#f5f1e8;
  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:12px;
  --ease:cubic-bezier(.2,.8,.2,1);

  --glass-light-bg:linear-gradient(135deg, rgba(255,255,255,0.62), rgba(255,255,255,0.28));
  --glass-light-border:rgba(255,255,255,0.7);
  --glass-dark-bg:linear-gradient(135deg, rgba(255,255,255,0.14), rgba(255,255,255,0.045));
  --glass-dark-border:rgba(255,255,255,0.22);
}
html[data-theme="dark"]{
  --chalk:#141f1c;
  --chalk-dim:#0e1815;
  --text-dark:#f1ede3;
  --text-soft:#a9b4b1;
  --glass-light-bg:linear-gradient(135deg, rgba(255,255,255,0.09), rgba(255,255,255,0.03));
  --glass-light-border:rgba(255,255,255,0.14);
}
html[data-theme="dark"] body{background:var(--chalk);}
html{transition:background 0.4s var(--ease);}
html[data-theme="dark"] .field input,
html[data-theme="dark"] .field select,
html[data-theme="dark"] .field textarea{
  background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.16);
}
html[data-theme="dark"] .field input:focus,
html[data-theme="dark"] .field select:focus,
html[data-theme="dark"] .field textarea:focus{background:rgba(255,255,255,0.1);}
html[data-theme="dark"] .dropzone{background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.2);}
html[data-theme="dark"] .dropzone:hover, html[data-theme="dark"] .dropzone.is-dragover{background:rgba(63,182,186,0.12);}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
body{
  margin:0;
  background:var(--chalk);
  color:var(--text-dark);
  font-family:'Plus Jakarta Sans', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  line-height:1.05;
  margin:0;
  letter-spacing:-0.01em;
}
h1 em, h2 em{font-style:italic; font-weight:500; color:var(--water);}
.wrap{max-width:1220px; margin:0 auto; padding:0 24px;}
:focus-visible{outline:3px solid var(--water-bright); outline-offset:3px; border-radius:4px;}

.eyebrow{
  font-family:'Plus Jakarta Sans', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.16em;
  font-size:12px;
  font-weight:700;
  color:var(--water);
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:7px 16px 7px 8px;
  border-radius:999px;
  background:var(--glass-light-bg);
  border:1px solid var(--glass-light-border);
  box-shadow:0 4px 14px rgba(20,30,28,0.06), inset 0 1px 0 rgba(255,255,255,0.6);
}
.eyebrow .dot{width:7px; height:7px; border-radius:50%; background:var(--champagne); display:inline-block;}
.on-dark .eyebrow{
  color:#bdeeef; background:var(--glass-dark-bg); border-color:var(--glass-dark-border);
  box-shadow:0 4px 14px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.18);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .glass, .eyebrow, .btn-glass, .btn-glass-accent, .drawer, .chip, .price-card, .service, .ba-tag, .contact-side, .stat-chip{
    background:rgba(255,255,255,0.92) !important;
  }
  .on-dark.glass, .on-dark .price-card{background:rgba(15,26,24,0.92) !important;}
}

/* glass surfaces */
.glass{
  background:var(--glass-light-bg);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--glass-light-border);
  border-radius:var(--radius-lg);
  box-shadow:0 10px 36px rgba(20,30,28,0.10), inset 0 1px 0 rgba(255,255,255,0.55);
}
.glass.on-dark{
  background:var(--glass-dark-bg);
  border-color:var(--glass-dark-border);
  box-shadow:0 14px 40px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.16);
  color:var(--text-on-dark);
}
/* These two sit on light backgrounds (a section bg, or a bright video frame) rather than
   an already-dark surface, so the standard frosted "on-dark" tint (a light tint meant to
   sit over dark) isn't dark enough on its own — give them a genuinely dark tint instead. */
.zone-card.on-dark, .video-caption.on-dark{
  background:linear-gradient(135deg, rgba(9,15,13,0.74), rgba(9,15,13,0.56));
}

/* ---------- NAV ---------- */
.topbar{
  position:fixed; top:18px; left:0; right:0; z-index:200;
  pointer-events:none;
}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; pointer-events:none;}
.topbar .wrap > *{pointer-events:auto;}
.menu-btn{
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--glass-light-bg);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--glass-light-border);
  box-shadow:0 8px 24px rgba(20,30,28,0.14), inset 0 1px 0 rgba(255,255,255,0.6);
  cursor:pointer; color:var(--text-dark);
}
.menu-btn svg{width:20px; height:20px;}
.topbar .brand{
  display:flex; align-items:center; text-decoration:none;
  background:var(--glass-light-bg);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--glass-light-border);
  border-radius:999px; padding:8px 18px 8px 10px;
  box-shadow:0 8px 24px rgba(20,30,28,0.14), inset 0 1px 0 rgba(255,255,255,0.6);
  transition:padding 0.35s var(--ease);
}
.topbar .brand img{height:28px; width:auto;}
.topbar .brand span{
  display:inline-block; overflow:hidden; white-space:nowrap;
  max-width:160px; margin-left:9px; opacity:1;
  font-family:'Fraunces',serif; font-weight:600; font-size:16px; color:var(--text-dark);
  transition:max-width 0.35s var(--ease), opacity 0.25s var(--ease), margin-left 0.35s var(--ease);
}
.topbar.scrolled .brand{padding:8px;}
.topbar.scrolled .brand span{max-width:0; opacity:0; margin-left:0;}

.scrim{
  position:fixed; inset:0; background:rgba(11,18,16,0.45); z-index:250;
  opacity:0; pointer-events:none; transition:opacity 0.3s var(--ease);
}
.scrim.open{opacity:1; pointer-events:auto;}
.drawer{
  position:fixed; top:0; bottom:0; left:0; width:min(360px, 86vw); z-index:260;
  background:linear-gradient(160deg, rgba(11,18,16,0.72), rgba(11,18,16,0.6));
  -webkit-backdrop-filter:blur(28px) saturate(160%);
  backdrop-filter:blur(28px) saturate(160%);
  border-right:1px solid rgba(255,255,255,0.16);
  transform:translateX(-105%);
  transition:transform 0.35s var(--ease);
  padding:30px 26px;
  display:flex; flex-direction:column;
}
.drawer.open{transform:translateX(0);}
.drawer-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:30px;}
.drawer-brand{
  width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--glass-light-bg); border:1px solid var(--glass-light-border);
  box-shadow:0 8px 20px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.7);
}
.drawer-brand img{width:26px; height:26px; object-fit:contain;}
.drawer-close{
  width:44px; height:44px; border-radius:50%;
  background:var(--glass-dark-bg); border:1px solid var(--glass-dark-border);
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:#fff;
}
.drawer-top-left{display:flex; align-items:center; gap:10px;}
.theme-toggle{
  width:44px; height:44px; border-radius:50%; position:relative; flex:none;
  background:var(--glass-dark-bg); border:1px solid var(--glass-dark-border);
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:#fff; overflow:hidden;
}
.theme-toggle svg{position:absolute; width:20px; height:20px; transition:transform 0.5s var(--ease), opacity 0.4s var(--ease);}
.theme-toggle .icon-sun{opacity:1; transform:rotate(0deg) scale(1);}
.theme-toggle .icon-moon{opacity:0; transform:rotate(-90deg) scale(0.5);}
html[data-theme="dark"] .theme-toggle .icon-sun{opacity:0; transform:rotate(90deg) scale(0.5);}
html[data-theme="dark"] .theme-toggle .icon-moon{opacity:1; transform:rotate(0deg) scale(1);}
.drawer nav{display:flex; flex-direction:column; gap:4px;}
.drawer nav a{
  color:var(--text-on-dark); text-decoration:none; font-family:'Fraunces',serif; font-weight:500;
  font-size:24px; padding:13px 6px; border-bottom:1px solid rgba(255,255,255,0.1);
}
.drawer nav a.link-gallery{
  color:var(--water-bright); display:flex; align-items:center; justify-content:space-between;
}
.drawer-foot{margin-top:auto; padding-top:20px; color:#b9c4c1; font-size:13.5px; display:flex; flex-direction:column; gap:6px;}
.drawer-foot a{color:var(--text-on-dark); text-decoration:none; font-weight:600;}

/* ---------- BUTTONS ---------- */
.btn-row{display:flex; gap:14px; flex-wrap:wrap;}
.btn-glass, .btn-glass-accent{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 28px; border-radius:999px;
  font-weight:700; font-size:15px; text-decoration:none; cursor:pointer; border:none;
  transition:transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.btn-glass{
  background:var(--glass-light-bg); color:var(--text-dark);
  -webkit-backdrop-filter:blur(16px) saturate(160%); backdrop-filter:blur(16px) saturate(160%);
  border:1px solid var(--glass-light-border);
  box-shadow:0 8px 24px rgba(20,30,28,0.12), inset 0 1px 0 rgba(255,255,255,0.6);
}
.btn-glass-accent{
  background:linear-gradient(135deg, rgba(63,182,186,0.92), rgba(31,92,99,0.92));
  color:#fff;
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,0.35);
  box-shadow:0 10px 28px rgba(31,92,99,0.35), inset 0 1px 0 rgba(255,255,255,0.35);
}
.btn-glass:hover, .btn-glass-accent:hover{transform:translateY(-3px) scale(1.015);}

/* ---------- TILT + GLARE (liquid glass, Apple-style) ---------- */
.tilt{
  position:relative;
  transition:transform 0.15s ease-out, box-shadow 0.3s var(--ease);
  will-change:transform;
}
.tilt::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,0.65), transparent 55%);
  mix-blend-mode:overlay; opacity:0; transition:opacity 0.35s var(--ease); z-index:1;
}
.tilt:hover::after{opacity:1;}
.tilt.on-dark::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,0.35), transparent 55%);}
@media (pointer:coarse){
  .tilt{transition:none;}
  .tilt::after{display:none;}
}

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  overflow:hidden; background:var(--ink);
}
.hero img.hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(5,9,8,0.9) 0%, rgba(5,9,8,0.74) 26%, rgba(5,9,8,0.4) 48%, rgba(5,9,8,0.12) 66%, rgba(5,9,8,0) 80%),
    linear-gradient(180deg, rgba(11,18,16,0.25) 0%, rgba(11,18,16,0.08) 26%, rgba(11,18,16,0.52) 72%, rgba(11,18,16,0.94) 100%);
}
@media (max-width:720px){
  .hero{padding-top:104px;}
  .hero img.hero-bg{object-position:88% 30%;}
  .hero-critter-mask--kangaroo{left:78%; top:61%; right:0; bottom:16%;}
  .hero-critter-mask--bird{display:block; left:85%; top:7%; right:0; bottom:83%; animation:critter-bob-fast 2.4s ease-in-out infinite;}
  .hero::before{
    background:linear-gradient(180deg, rgba(6,10,9,0.48) 0%, rgba(6,10,9,0.3) 24%, rgba(6,10,9,0.66) 66%, rgba(6,10,9,0.96) 100%);
  }
}
.hero-inner{
  position:relative; z-index:2; width:100%; padding-bottom:110px;
  opacity:0; transform:translateY(28px);
  transition:opacity 0.9s var(--ease), transform 0.9s var(--ease);
}
.hero-inner.is-visible{opacity:1; transform:translateY(0);}
.hero-inner .eyebrow{
  margin-bottom:22px;
  color:var(--champagne);
  background:rgba(6,10,9,0.34);
  border-color:rgba(255,255,255,0.14);
}
.hero-copy{position:relative;}
.hero-copy::before{
  content:"";
  position:absolute;
  inset:-26px -70px -22px -32px;
  background:radial-gradient(ellipse 68% 78% at 30% 42%, rgba(3,6,5,0.4) 0%, rgba(3,6,5,0.24) 42%, rgba(3,6,5,0.1) 65%, rgba(3,6,5,0) 85%);
  z-index:-1;
  pointer-events:none;
}
.hero-inner h1{
  color:#fff; font-size:clamp(38px, 6.2vw, 76px); max-width:16ch;
  -webkit-text-stroke:0.6px rgba(0,0,0,0.35);
  text-shadow:
    0 1px 3px rgba(0,0,0,0.55),
    0 6px 20px rgba(0,0,0,0.5),
    0 18px 44px rgba(0,0,0,0.35);
}
.hero-inner h1 em{
  color:var(--water-bright);
  -webkit-text-stroke:0.6px rgba(0,0,0,0.3);
}
.hero-inner p.lead{
  color:#f1ede3; max-width:50ch; font-size:clamp(15px,1.5vw,18px); margin:22px 0 32px;
  text-shadow:
    0 1px 4px rgba(0,0,0,0.5),
    0 8px 22px rgba(0,0,0,0.35);
}
.stat-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:34px;}
.stat-chip{
  display:flex; align-items:center; gap:9px;
  padding:11px 18px; border-radius:999px; font-size:13.5px; font-weight:600; color:#fff;
  background:var(--glass-dark-bg); -webkit-backdrop-filter:blur(18px) saturate(160%); backdrop-filter:blur(18px) saturate(160%);
  border:1px solid var(--glass-dark-border);
  box-shadow:0 8px 24px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.18);
}
.stat-chip svg{width:16px; height:16px; color:var(--champagne);}

/* ---------- SECTIONS ---------- */
section{padding:110px 0;}
.section-head{max-width:680px; margin-bottom:56px;}
.section-head h2{font-size:clamp(30px,4vw,50px); margin-top:18px;}
.section-head p.lead{margin-top:18px; font-size:17px; color:var(--text-soft); max-width:58ch;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

/* ---------- SERVICES ---------- */
.services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.service{padding:32px 26px; display:flex; flex-direction:column; gap:16px;}
.service .icon-badge{
  width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(31,92,99,0.14), rgba(63,182,186,0.06));
  border:1px solid rgba(31,92,99,0.16);
  transform:perspective(500px) rotateY(110deg) rotateX(8deg) scale(0.4);
  transition:transform 1.1s cubic-bezier(0.34, 1.56, 0.64, 1) 0.1s;
}
.service.is-visible .icon-badge{
  transform:perspective(500px) rotateY(0deg) rotateX(0deg) scale(1);
}
.service svg{width:24px; height:24px; color:var(--water);}
.service h3{font-size:19px; font-weight:600; font-family:'Fraunces',serif;}
.service p{margin:0; font-size:14.5px; color:var(--text-soft); line-height:1.55;}

/* ---------- METHODE / VIDEO ---------- */
.method-showcase-wrap{max-width:680px; margin:0 auto 26px;}
.method-showcase{
  position:relative; display:flex; align-items:center; justify-content:center; gap:16px;
}
.video-tile{position:relative; border-radius:var(--radius-lg); overflow:hidden; background:#000; box-shadow:0 16px 40px rgba(20,30,28,0.18); flex:1; min-width:0; transition:max-width 0.45s var(--ease), aspect-ratio 0.45s var(--ease);}
.video-tile video, .video-tile img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.video-tile--main{aspect-ratio:16/10;}
.video-tile--main.is-portrait{aspect-ratio:9/16; flex:none; width:100%; max-width:280px; margin:0 auto;}
.video-caption-row{display:flex; justify-content:center; margin-top:16px;}
.video-caption{
  position:static; z-index:2;
  padding:12px 20px; font-size:13.5px; font-weight:600; color:#fff;
}
.method-notes{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.method-note{padding:26px; display:flex; flex-direction:column; justify-content:center;}
.method-note .num{font-family:'Fraunces',serif; font-style:italic; color:var(--water); font-size:15px; margin-bottom:8px; display:block;}
.method-note p{margin:0; font-size:15px; color:var(--text-soft); line-height:1.6;}
.method-nav{
  flex:none; display:flex; width:44px; height:44px; border-radius:50%; align-items:center; justify-content:center;
  background:var(--glass-light-bg); -webkit-backdrop-filter:blur(20px) saturate(160%); backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--glass-light-border); box-shadow:0 8px 20px rgba(20,30,28,0.14);
  color:var(--text-dark); cursor:pointer;
}
.method-nav svg{width:18px; height:18px;}

/* ---------- GALLERY (shared: teaser + full) ---------- */
.gallery-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}

/* ---------- GALLERY TABS (photos / videos) ---------- */
.gallery-tabs{
  display:inline-flex; gap:4px; padding:5px; border-radius:999px; margin-bottom:32px;
  background:var(--glass-light-bg);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--glass-light-border);
  box-shadow:0 8px 24px rgba(20,30,28,0.1), inset 0 1px 0 rgba(255,255,255,0.55);
}
.gallery-tab{
  border:none; background:transparent; padding:11px 24px; border-radius:999px;
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:14px;
  color:var(--text-soft); cursor:pointer;
  transition:background 0.35s var(--ease), color 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.gallery-tab.is-active{
  background:linear-gradient(135deg, var(--water), var(--water-bright));
  color:#fff; box-shadow:0 6px 16px rgba(31,92,99,0.3);
}
.gallery-tabs-viewport{overflow:hidden;}
.gallery-tabs-track{display:flex; width:200%; transition:transform 0.55s var(--ease);}
.gallery-tabs-track.show-videos{transform:translateX(-50%);}
.gallery-panel{width:50%; flex-shrink:0;}
.gallery-panel .gallery-grid{padding-right:2px;}
.ba{--pos:50%;}
.ba-frame{
  position:relative; overflow:hidden; border-radius:var(--radius-lg);
  aspect-ratio:3/4; background:var(--ink); cursor:ew-resize;
  box-shadow:0 16px 40px rgba(20,30,28,0.16);
}
.ba.ba--wide .ba-frame{aspect-ratio:16/9;}
.ba-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0);}
.ba-divider{
  position:absolute; top:0; bottom:0; left:var(--pos); width:2px;
  background:rgba(255,255,255,0.85); transform:translateX(-50%); z-index:3; pointer-events:none;
}
.ba-tag{
  position:absolute; top:14px; z-index:4; font-size:11px; font-weight:700; letter-spacing:0.08em;
  color:#fff; padding:6px 13px; border-radius:999px; pointer-events:none;
  background:var(--glass-dark-bg); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid var(--glass-dark-border);
}
.ba-tag.tag-before{left:14px;}
.ba-tag.tag-after{right:14px;}
.ba-tag.tag-video{left:14px; display:inline-flex; align-items:center; gap:6px;}
.ba-tag.tag-video svg{width:11px; height:11px;}
.ba-frame.video-frame{cursor:default;}
.ba-frame img, .ba-frame video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; -webkit-user-select:none; user-select:none; pointer-events:none;}
.ba-range{position:absolute; inset:0; width:100%; height:100%; margin:0; -webkit-appearance:none; appearance:none; background:transparent; z-index:5;}
.ba-range::-webkit-slider-runnable-track{background:transparent;}
.ba-range::-moz-range-track{background:transparent; border:none;}
.ba-thumb-svg{display:none;}
.ba-range::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:48px; height:48px; border-radius:50%;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1210' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 7 4 12 9 17'/><polyline points='15 7 20 12 15 17'/></svg>") center/20px no-repeat,
    linear-gradient(135deg, rgba(255,255,255,0.95), rgba(255,255,255,0.65));
  border:1px solid rgba(255,255,255,0.9);
  box-shadow:0 6px 18px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.8);
  cursor:ew-resize; position:relative; top:calc(50% - 24px);
}
.ba-range::-moz-range-thumb{
  width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,0.9);
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b1210' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 7 4 12 9 17'/><polyline points='15 7 20 12 15 17'/></svg>") center/20px no-repeat,
    linear-gradient(135deg, rgba(255,255,255,0.95), rgba(255,255,255,0.65));
  box-shadow:0 6px 18px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.8); cursor:ew-resize;
}
.ba-caption{margin:14px 4px 0; font-size:14.5px; font-weight:600; color:var(--text-dark); display:flex; justify-content:space-between; align-items:baseline;}
.ba-caption span{font-size:11px; letter-spacing:0.08em; color:var(--water); font-weight:700; text-transform:uppercase;}
.gallery-cta{display:flex; justify-content:center; margin-top:52px;}

/* ---------- PRICING ---------- */
.pricing-section{
  background:radial-gradient(circle at 20% 10%, #14201d 0%, var(--ink) 55%);
  color:var(--text-on-dark);
}
.pricing-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:12px;}
.price-card{padding:36px;}
.price-card h3{font-size:20px; font-weight:500; margin-bottom:24px; color:var(--text-on-dark);}
.price-row{display:flex; justify-content:space-between; align-items:baseline; padding:15px 0; border-top:1px solid rgba(255,255,255,0.12); gap:16px;}
.price-row:first-of-type{border-top:none;}
.price-row .tier{font-size:14.5px; color:#c7d0cd;}
.price-row .rate{font-family:'Fraunces',serif; font-style:italic; font-weight:600; font-size:23px; color:var(--water-bright); white-space:nowrap;}
.price-note{margin-top:26px; padding:22px 26px; font-size:13.5px; color:#c7d0cd;}
.price-note strong{color:var(--text-on-dark); font-weight:700;}

/* ---------- ZONE ---------- */
.zone-wrap{display:grid; grid-template-columns:1.1fr 0.9fr; gap:44px; align-items:start;}
.chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px;}
.chip{font-size:13.5px; font-weight:600; padding:10px 18px; border-radius:999px;}
.zone-note{margin-top:28px; font-size:14.5px; color:var(--text-soft); display:flex; gap:12px; align-items:flex-start;}
.zone-note svg{width:20px; height:20px; flex-shrink:0; margin-top:2px; color:var(--water);}
.zone-card{padding:32px;}
.zone-card h3{font-size:19px; font-weight:600; margin-bottom:12px;}
.zone-card p{font-size:14.5px; color:var(--text-soft); margin:0; line-height:1.6;}

/* ---------- SERVICE MAP ---------- */
.service-map-wrap{margin-top:44px;}
.service-map-card{padding:14px;}
.service-map{
  width:100%; height:360px; border-radius:calc(var(--radius-lg) - 10px);
  overflow:hidden; background:var(--chalk-dim);
}
.service-map-caption{margin-top:12px; padding:0 6px; font-size:13px; color:var(--text-soft); text-align:center;}
.service-map .leaflet-control-attribution{
  font-size:10px; background:rgba(255,255,255,0.75); color:var(--text-soft);
}
.service-map .leaflet-bar{border:none; box-shadow:0 4px 14px rgba(20,30,28,0.18);}
.service-map .leaflet-bar a{
  background:#fff; color:var(--text-dark); border-color:rgba(20,30,28,0.12);
}
.service-map .leaflet-bar a:hover{background:var(--chalk);}
.service-map .leaflet-tooltip{
  font-family:'Plus Jakarta Sans', sans-serif; font-weight:600; font-size:12.5px;
  background:var(--text-dark); color:var(--chalk); border:none; border-radius:6px;
  box-shadow:0 4px 12px rgba(20,30,28,0.2);
}
.service-map .leaflet-tooltip-top:before{border-top-color:var(--text-dark);}
html[data-theme="dark"] .service-map .leaflet-control-attribution{
  background:rgba(14,24,21,0.78); color:#c7d0cd;
}
html[data-theme="dark"] .service-map .leaflet-control-attribution a{color:#c7d0cd;}
html[data-theme="dark"] .service-map .leaflet-bar a{
  background:#1b2624; color:#e8ede9; border-color:rgba(255,255,255,0.14);
}
html[data-theme="dark"] .service-map .leaflet-bar a:hover{background:#233330;}
html[data-theme="dark"] .service-map .leaflet-tooltip{background:#e8ede9; color:#12181a;}
html[data-theme="dark"] .service-map .leaflet-tooltip-top:before{border-top-color:#e8ede9;}
@media (max-width:980px){.service-map{height:280px;}}

/* ---------- CONTACT ---------- */
.contact-wrap{display:grid; grid-template-columns:1.2fr 0.8fr; gap:26px;}
form.devis{padding:36px; display:flex; flex-direction:column; gap:18px;}
.field{display:flex; flex-direction:column; gap:7px;}
.field label{font-size:12.5px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--water);}
.field input, .field select, .field textarea{
  font-family:'Plus Jakarta Sans'; font-size:15px; padding:14px 16px;
  border:1.5px solid rgba(20,30,28,0.14); border-radius:var(--radius-sm);
  background:rgba(255,255,255,0.75); color:var(--text-dark);
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--water); background:#fff;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
textarea{resize:vertical; min-height:110px;}
.honey{position:absolute; left:-9999px; opacity:0;}

/* ---------- REVIEWS MARQUEE ---------- */
.reviews-marquee{display:flex; flex-direction:column; gap:22px; padding:8px 0 4px; margin-top:8px;}
.reviews-row{overflow:hidden; width:100%; -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);}
.reviews-track{display:flex; gap:22px; width:max-content;}
.reviews-row--left .reviews-track{animation:marquee-left 52s linear infinite;}
.reviews-row--right .reviews-track{animation:marquee-right 58s linear infinite;}
.reviews-row:hover .reviews-track{animation-play-state:paused;}
@keyframes marquee-left{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@keyframes marquee-right{from{transform:translateX(-50%);} to{transform:translateX(0);}}
@media (prefers-reduced-motion: reduce){
  .reviews-track{animation:none !important;}
}
.review-card{
  flex:none; width:320px; padding:26px; display:flex; flex-direction:column;
}
.review-stars{color:var(--champagne); font-size:15px; letter-spacing:3px; margin-bottom:14px;}
.review-quote{font-size:14.5px; color:var(--text-dark); line-height:1.65; font-style:italic; margin:0 0 20px; flex:1;}
.review-author{display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid rgba(31,92,99,0.12);}
.review-avatar{
  flex:none; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; font-family:'Fraunces',serif; font-size:16px;
}
.avatar-a{background:linear-gradient(135deg, var(--water), var(--water-bright));}
.avatar-b{background:linear-gradient(135deg, var(--water-bright), var(--champagne));}
.avatar-c{background:linear-gradient(135deg, var(--champagne), var(--water));}
.review-author div{display:flex; flex-direction:column;}
.review-name{font-weight:700; font-size:14px; color:var(--text-dark);}
.review-location{font-size:12.5px; color:var(--text-soft);}
@media (max-width:720px){
  .review-card{width:270px; padding:22px;}
}

/* ---------- INTRO SPLASH ---------- */
.intro-overlay{
  position:fixed; inset:0; z-index:1000; background:var(--chalk);
  display:flex; align-items:center; justify-content:center; padding:24px;
  transition:opacity 0.8s var(--ease);
}
.intro-overlay.is-hidden{opacity:0; pointer-events:none;}
.intro-video{
  width:100%; max-width:520px; height:auto; border-radius:24px; display:block;
  box-shadow:0 20px 60px rgba(20,30,28,0.18);
}
@media (prefers-reduced-motion: reduce){
  .intro-overlay{display:none;}
}

/* ---------- SCROLL PROGRESS BAR ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:400;
  background:linear-gradient(90deg, var(--water), var(--water-bright), var(--champagne));
  transition:width 0.1s linear;
}
.dropzone{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  padding:24px 20px; border-radius:var(--radius-sm); text-align:center; cursor:pointer;
  border:1.5px dashed rgba(31,92,99,0.35); background:rgba(255,255,255,0.55);
  transition:border-color 0.25s var(--ease), background 0.25s var(--ease);
}
.dropzone svg{width:24px; height:24px; color:var(--water);}
.dropzone-text{font-size:13.5px; color:var(--text-soft);}
.dropzone-text strong{color:var(--water); font-weight:700;}
.dropzone:hover, .dropzone.is-dragover{border-color:var(--water); background:rgba(63,182,186,0.1);}
.dropzone-input{position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; margin:0;}
.submit-btn{align-self:flex-start;}
.contact-side{padding:34px; height:fit-content;}
.contact-side .row{display:flex; align-items:center; gap:14px; padding:15px 0; border-top:1px solid rgba(20,30,28,0.1);}
.contact-side .row:first-of-type{border-top:none; padding-top:0;}
.contact-side .icon-badge{
  width:42px; height:42px; border-radius:13px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
  background:linear-gradient(135deg, rgba(31,92,99,0.14), rgba(63,182,186,0.06)); border:1px solid rgba(31,92,99,0.16);
}
.contact-side svg{width:19px; height:19px; color:var(--water);}
.contact-side a{text-decoration:none; font-weight:700;}
.contact-side .row span.label{display:block; font-size:11.5px; color:var(--text-soft); font-weight:600; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:2px;}

/* ---------- FOOTER ---------- */
footer{background:var(--ink); color:#a9b6b3; padding:56px 0 26px; margin-top:0;}
.footer-top{display:flex; justify-content:space-between; flex-wrap:wrap; gap:32px; padding-bottom:32px; border-bottom:1px solid rgba(255,255,255,0.1);}
.footer-brand{display:flex; align-items:center; gap:10px;}
.footer-brand img{height:32px;}
.footer-brand span{font-family:'Fraunces',serif; color:var(--text-on-dark); font-size:19px; font-weight:600;}
.footer-links{display:flex; gap:26px; flex-wrap:wrap;}
.footer-links a{color:#c7d0cd; text-decoration:none; font-size:14px;}
.footer-links a:hover{color:var(--text-on-dark);}
.footer-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:22px; font-size:12.5px;}

/* ---------- FOOTER LEGAL LINKS + MODAL ---------- */
.footer-legal{
  margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,0.08);
  display:flex; align-items:center; gap:12px; font-size:12.5px;
}
.footer-legal-link{
  background:none; border:none; padding:0; margin:0; color:#c7d0cd; font:inherit;
  cursor:pointer; text-decoration:underline; text-underline-offset:2px;
}
.footer-legal-link:hover{color:var(--text-on-dark);}
.footer-legal-sep{color:rgba(255,255,255,0.25);}

.modal-backdrop{
  position:fixed; inset:0; z-index:500; background:rgba(8,14,13,0.55);
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; pointer-events:none; transition:opacity 0.3s var(--ease);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}
.modal-backdrop.is-open{opacity:1; pointer-events:auto;}
.modal-panel{
  position:relative; width:100%; max-width:640px; max-height:82vh; overflow-y:auto;
  padding:44px; background:var(--chalk); border-radius:var(--radius-lg);
  box-shadow:0 30px 80px rgba(0,0,0,0.35);
  transform:translateY(14px) scale(0.98); transition:transform 0.3s var(--ease);
}
.modal-backdrop.is-open .modal-panel{transform:translateY(0) scale(1);}
.modal-panel h3{font-family:'Fraunces',serif; font-size:26px; font-weight:600; margin:0 0 6px; color:var(--text-dark);}
.modal-updated{font-size:12.5px; color:var(--text-soft); margin:0 0 24px;}
.modal-panel h4{font-size:15px; font-weight:700; margin:22px 0 8px; color:var(--text-dark);}
.modal-panel p{font-size:14.5px; line-height:1.65; color:var(--text-soft); margin:0 0 6px;}
.modal-panel ul{margin:0 0 14px; padding-left:20px;}
.modal-panel li{font-size:14.5px; line-height:1.65; color:var(--text-soft); margin-bottom:6px;}
.modal-panel a{color:var(--water);}
html[data-theme="dark"] .modal-panel a{color:var(--water-bright);}
.modal-close{
  position:absolute; top:18px; right:18px; width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:var(--chalk-dim);
  border:1px solid rgba(20,30,28,0.1); color:var(--text-dark); cursor:pointer;
}
.modal-close svg{width:16px; height:16px;}
.modal-close:hover{background:var(--glass-light-border);}
@media (max-width:640px){.modal-panel{padding:30px 22px 26px; max-height:86vh;}}

/* ---------- GALLERY PAGE HEADER ---------- */
.page-header{padding:170px 0 20px;}
.back-link{display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px; color:var(--water); text-decoration:none; margin-bottom:26px;}
.back-link svg{width:16px; height:16px;}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(20px); transition:opacity 0.7s var(--ease), transform 0.7s var(--ease);}
.reveal.is-visible{opacity:1; transform:none;}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .services-grid{grid-template-columns:1fr 1fr;}
  .zone-wrap, .contact-wrap{grid-template-columns:1fr;}
  .pricing-grid{grid-template-columns:1fr;}
  .method-notes{grid-template-columns:1fr;}
  .method-showcase{gap:10px;}
  .method-nav{width:38px; height:38px;}
  .method-nav svg{width:16px; height:16px;}
}
@media (max-width:720px){
  .services-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  section{padding:72px 0;}
  .hero-inner{padding-bottom:70px;}
  .page-header{padding:130px 0 10px;}
}

/* ---------- HERO CRITTERS (subtle animation, background stays still) ---------- */
.hero-critter-mask{position:absolute; overflow:hidden; z-index:0; pointer-events:none; background-repeat:no-repeat; will-change:transform;}
@keyframes critter-bob{0%,100%{transform:translateY(0);} 50%{transform:translateY(-5px);}}
@keyframes critter-bob-fast{0%,100%{transform:translate(0,0);} 50%{transform:translate(1px,-3px);}}
.hero-critter-mask--kangaroo{left:77.5%; top:86%; right:6%; bottom:0; animation:critter-bob 3.6s ease-in-out infinite;}
.hero-critter-mask--bird{display:none;}
@media (max-width:720px){
  .hero-critter-mask--kangaroo{left:78%; top:61%; right:0; bottom:16%;}
  .hero-critter-mask--bird{display:block; left:85%; top:7%; right:0; bottom:83%; animation:critter-bob-fast 2.4s ease-in-out infinite;}
}
@media (prefers-reduced-motion: reduce){ .hero-critter-mask{animation:none !important;} }

