/* ======================================
   TOKENS
====================================== */
:root {
  /* Brand palette - from venue & logo */
  --brick:      #B5643A;   /* terracotta brick floor */
  --brick-lt:   #D4845A;
  --green:      #3D7A3A;   /* lush plant green */
  --green-dk:   #2A5628;
  --gold:       #D8A350;   /* logo gold */
  --gold-lt:    #E8C080;
  --cream:      #FAF6F0;   /* light day background */
  --cream-dk:   #F0EAE0;
  --parchment:  #EDE5D8;
  --white:      #FFFFFF;
  --charcoal:   #1E1712;
  --bark:       #1E3B1D;
  --t1:         #1E1712;
  --t2:         #5C4A38;
  --t3:         #9A8872;
  --bd:         rgba(90,70,50,.13);
  --bd-h:       rgba(90,70,50,.25);
  --shadow:     0 4px 24px rgba(30,18,8,.09);
  --shadow-lg:  0 12px 56px rgba(30,18,8,.16);
  --F-title:    'Playfair Display', serif;
  --F-body:     'DM Sans', sans-serif;
  --r:          6px;
  --rl:         14px;
  --T:          .3s cubic-bezier(.4,0,.2,1);
  --nav-h:      68px;
}
[data-theme=dark] {
  --cream:      #0D1A10;
  --cream-dk:   #132218;
  --parchment:  #1A2C1F;
  --t1:         #F0E8D8;
  --t2:         #A9BFAE;
  --t3:         #6C8272;
  --bd:         rgba(175,205,180,.13);
  --bd-h:       rgba(175,205,180,.26);
  --shadow:     0 4px 24px rgba(0,0,0,.35);
  --shadow-lg:  0 12px 56px rgba(0,0,0,.55);
  --white:      #16261B;
}
 
/* ======================================
   RESET & BASE
====================================== */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html { scroll-behavior:smooth }
body {
  font-family: var(--F-body);
  background: var(--cream);
  color: var(--t1);
  font-size: 16px;
  line-height: 1.65;
  overflow-x: hidden;
  transition: background var(--T), color var(--T);
}
img { display:block; max-width:100% }
a { text-decoration:none; color:inherit }
button { font-family:var(--F-body); cursor:pointer }
 
/* ======================================
   HEADER - STICKY
====================================== */
header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 300;
  height: var(--nav-h);
  background: rgba(250,246,240,.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--bd);
  transition: background var(--T), box-shadow var(--T);
}
[data-theme=dark] header {
  background: rgba(21,16,12,.96);
}
header.scrolled {
  box-shadow: var(--shadow);
}
.header-inner {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 clamp(16px,4vw,56px);
  height: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2rem;
}
 
/* Logo */
.h-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
.h-logo-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--brick));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.h-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.h-logo-thom {
  font-family: var(--F-title);
  font-size: 1.25rem;
  font-weight: 400;
  font-style: italic;
  color: var(--brick);
  letter-spacing: .02em;
}
.h-logo-culinary {
  font-family: var(--F-body);
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--t3);
  margin-top: 1px;
}
 
/* Nav links */
.h-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.2rem, 3vw, 2.5rem);
  list-style: none;
}
.h-nav a {
  font-size: .78rem;
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--t2);
  transition: color var(--T);
  position: relative;
  padding-bottom: 3px;
}
.h-nav a::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1.5px;
  background: var(--green);
  transform: scaleX(0);
  transition: transform var(--T);
  transform-origin: left;
}
.h-nav a:hover { color: var(--green) }
.h-nav a:hover::after { transform: scaleX(1) }
@media(max-width:768px) { .h-nav { display:none } }
 
/* Right actions */
.h-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.lang-toggle {
  display: flex;
  background: var(--parchment);
  border: 1px solid var(--bd);
  border-radius: 20px;
  overflow: hidden;
  font-size: .72rem;
}
.lang-toggle button {
  padding: 5px 11px;
  background: transparent;
  border: none;
  color: var(--t3);
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .06em;
  transition: all var(--T);
}
.lang-toggle button.active {
  background: var(--green);
  color: #fff;
  font-weight: 500;
}
.theme-btn {
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 1px solid var(--bd);
  background: transparent;
  color: var(--t3);
  font-size: .9rem;
  display: flex; align-items:center; justify-content:center;
  transition: all var(--T);
}
.theme-btn:hover { border-color:var(--gold); transform:rotate(20deg) }
.cta-book {
  background: var(--green);
  color: #fff;
  border: none;
  padding: 10px 20px;
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-radius: var(--r);
  white-space: nowrap;
  transition: background var(--T), transform .15s;
  text-decoration: none;
  display: inline-block;
}
.cta-book:hover { background:var(--green-dk); transform:translateY(-1px) }
.ham-btn {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 28px;
  background: none;
  border: none;
  padding: 3px;
}
.ham-btn span { display:block; height:1.5px; background:var(--t1); border-radius:2px }
@media(max-width:768px) {
  .h-nav { display:none }
  .ham-btn { display:flex }
  .cta-book { display:none }
}
 
/* Mobile drawer */
.mob-drawer {
  position: fixed;
  top: var(--nav-h); left:0; right:0; bottom:0;
  background: var(--cream);
  z-index: 299;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  transform: translateX(100%);
  transition: transform .38s cubic-bezier(.4,0,.2,1);
}
.mob-drawer.open { transform:translateX(0) }
.mob-drawer a {
  font-family: var(--F-title);
  font-size: 2rem;
  font-style: italic;
  color: var(--t1);
  transition: color var(--T);
}
.mob-drawer a:hover { color: var(--brick) }
 
/* ======================================
   HERO - VIDEO LOOP
====================================== */
.hero {
  position: relative;
  height: 100svh;
  min-height: 600px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  padding: 0 clamp(24px,6vw,96px) clamp(56px,8vw,96px);
}
.hero-video-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-video-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top,
      rgba(20,12,6,.88) 0%,
      rgba(20,12,6,.35) 50%,
      rgba(20,12,6,.1) 100%),
    linear-gradient(120deg, #2A3A1A 0%, #4A6A30 30%, #B5643A 60%, #3A2A1A 100%);
  animation: heroPan 12s ease-in-out infinite alternate;
}
@keyframes heroPan {
  0%   { background-position:0% 50% }
  100% { background-position:100% 50% }
}
.hero-video-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 0;
}
.hero-video-placeholder span {
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(240,232,216,.2);
  font-family:var(--F-body);
}
.hero::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events:none;
  opacity:.4;
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 720px;
  animation: heroUp 1.2s cubic-bezier(.2,0,.2,1) both;
}
@keyframes heroUp {
  from { opacity:0; transform:translateY(32px) }
  to   { opacity:1; transform:translateY(0) }
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .68rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.5rem;
}
.hero-eyebrow::before {
  content:'';
  display:block;
  width:28px;
  height:1px;
  background:var(--gold);
}
.hero h1 {
  font-family: var(--F-title);
  font-size: clamp(2.6rem,7vw,5.5rem);
  font-weight: 400;
  font-style: italic;
  color: #F5EFE6;
  line-height: 1.08;
  margin-bottom: 1.4rem;
  letter-spacing: -.01em;
}
.hero h1 strong {
  font-style: normal;
  font-weight: 500;
  color: var(--gold);
}
.hero-sub {
  font-size: clamp(.95rem,1.8vw,1.12rem);
  color: rgba(245,239,230,.68);
  font-weight: 300;
  max-width: 480px;
  line-height: 1.8;
  margin-bottom: 2.5rem;
}
.hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  color: #F5EFE6;
  border: 1.5px solid rgba(245,239,230,.45);
  padding: 14px 32px;
  font-family: var(--F-body);
  font-size: .82rem;
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  border-radius: var(--r);
  transition: all var(--T);
}
.hero-cta:hover {
  background: rgba(245,239,230,.1);
  border-color: var(--gold);
  color: var(--gold);
  gap: 16px;
}
.hero-cta-arrow { transition: transform var(--T) }
.hero-cta:hover .hero-cta-arrow { transform:translateX(4px) }
.hero-scroll {
  position: absolute;
  bottom: 2rem;
  right: clamp(24px,6vw,96px);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  animation: scrollBob 2.5s ease-in-out infinite;
}
.hero-scroll span {
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(245,239,230,.35);
  writing-mode: vertical-lr;
}
.hero-scroll::after {
  content:'';
  width:1px;
  height:40px;
  background:linear-gradient(to bottom, rgba(216,163,80,.5), transparent);
}
@keyframes scrollBob {
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(8px)}
}
 
/* ======================================
   SECTION COMMONS
====================================== */
.sec { padding: clamp(56px,7vw,88px) clamp(20px,5vw,80px) }
.sec-alt { background:var(--cream-dk) }
.sec-dark { background:var(--bark); color:#F0E8D8 }
[data-theme=dark] .sec-alt { background:var(--parchment) }
.mw { max-width:1340px; margin:0 auto }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: .66rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--brick);
  margin-bottom: 1rem;
  font-weight: 500;
}
.eyebrow::before {
  content:'';
  width:22px; height:1px;
  background:var(--brick);
}
.sec-title {
  font-family: var(--F-title);
  font-size: clamp(1.9rem,4.2vw,3.2rem);
  font-weight: 400;
  font-style: italic;
  color: var(--t1);
  line-height: 1.12;
  margin-bottom: 1.2rem;
}
.sec-title strong {
  font-style: normal;
  color: var(--green);
}
.sec-title-light { color:#F5EFE6 }
.sec-body {
  font-size: .97rem;
  color: var(--t2);
  line-height: 1.82;
  font-weight: 300;
  max-width: 540px;
}
.sec-body-light { color:rgba(240,232,216,.65) }
.divider-gold {
  width:48px; height:2px;
  background:linear-gradient(to right, var(--gold), transparent);
  margin:1.4rem 0;
}
 
/* Utility */
.tc { text-align:center }
.mx { margin:0 auto }
.btn-primary {
  display:inline-block;
  background:var(--green);
  color:#fff;
  border:none;
  padding:13px 28px;
  font-family:var(--F-body);
  font-size:.82rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  border-radius:var(--r);
  transition:background var(--T),transform .15s;
  cursor:pointer;
}
.btn-primary:hover { background:var(--green-dk); transform:translateY(-2px) }
.btn-outline-brick {
  display:inline-block;
  background:transparent;
  color:var(--brick);
  border:1.5px solid var(--brick);
  padding:11px 24px;
  font-family:var(--F-body);
  font-size:.78rem;
  font-weight:400;
  letter-spacing:.1em;
  text-transform:uppercase;
  border-radius:var(--r);
  transition:all var(--T);
  cursor:pointer;
}
.btn-outline-brick:hover { background:var(--brick); color:#fff }
 
/* ======================================
   SEC 1 - EXPERIENCE SPLIT-SCREEN
====================================== */
#experience { padding:0; overflow:hidden }
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 90vh;
}
@media(max-width:900px) {
  .split { grid-template-columns:1fr; min-height:auto }
}
.split-left {
  padding: clamp(56px,8vw,100px) clamp(32px,5vw,80px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--cream);
}
[data-theme=dark] .split-left { background:var(--cream-dk) }
.exp-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 2rem;
}
.exp-tag {
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 20px;
  font-weight: 500;
  border: 1.5px solid;
}
.tag-green { color:var(--green); border-color:var(--green); background:rgba(61,122,58,.07) }
.tag-brick  { color:var(--brick); border-color:var(--brick); background:rgba(181,100,58,.07) }
.tag-gold   { color:var(--gold);  border-color:var(--gold);  background:rgba(216,163,80,.07) }
.exp-features {
  margin-top: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.exp-feat {
  display: flex;
  gap: .9rem;
  align-items: flex-start;
}
.feat-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--gold);
  margin-top: 8px;
  flex-shrink: 0;
}
.feat-text h4 {
  font-family: var(--F-title);
  font-size: 1rem;
  font-weight: 400;
  font-style: italic;
  color: var(--t1);
  margin-bottom: 2px;
}
.feat-text p {
  font-size: .82rem;
  color: var(--t2);
  line-height: 1.6;
  font-weight: 300;
}
.split-right {
  position: relative;
  overflow: hidden;
  background: var(--bark);
  min-height: 500px;
}
.carousel {
  position: absolute;
  inset: 0;
  display: flex;
}
.carousel-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.carousel-slide.active { opacity:1 }
.carousel-slide:nth-child(1) { background:linear-gradient(145deg,#2A3A1A,#4A6A30,#2E5228) }
.carousel-slide:nth-child(2) { background:linear-gradient(145deg,#3A2010,#B5643A,#5C3018) }
.carousel-slide:nth-child(3) { background:linear-gradient(145deg,#1A2A1A,#3A5A30,#D8A350) }
.carousel-label {
  position: absolute;
  bottom: 24px;
  left: 24px;
  font-size: .65rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(240,232,216,.4);
  font-family: var(--F-body);
}
.carousel-inner-label {
  font-size: .7rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(240,232,216,.22);
}
.carousel-dots {
  position: absolute;
  bottom: 24px;
  right: 24px;
  display: flex;
  gap: 6px;
}
.c-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(240,232,216,.25);
  transition: background var(--T), transform var(--T);
  cursor: pointer;
  border: none;
}
.c-dot.active { background:var(--gold); transform:scale(1.3) }
 
/* ======================================
   SEC 2 - BOOKING MODULE
====================================== */
#booking {
  background: var(--parchment);
}
[data-theme=dark] #booking { background:var(--cream-dk) }
.booking-wrap {
  max-width: 1100px;
  margin: 0 auto;
}
.booking-header {
  text-align: center;
  margin-bottom: 3rem;
}
.booking-ui {
  background: var(--white);
  border: 1px solid var(--bd);
  border-radius: var(--rl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
[data-theme=dark] .booking-ui { background:var(--parchment) }
.booking-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
}
@media(max-width:768px) { .booking-grid { grid-template-columns:1fr } }
 
.cal-pane {
  padding: 2rem;
  border-right: 1px solid var(--bd);
}
@media(max-width:768px) { .cal-pane { border-right:none; border-bottom:1px solid var(--bd) } }
.cal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.cal-month {
  font-family: var(--F-title);
  font-size: 1.1rem;
  font-style: italic;
  color: var(--t1);
}
.cal-nav {
  display: flex;
  gap: 4px;
}
.cal-nav button {
  width: 30px; height: 30px;
  border: 1px solid var(--bd);
  border-radius: var(--r);
  background: transparent;
  color: var(--t2);
  font-size: .9rem;
  display: flex; align-items:center; justify-content:center;
  transition: all var(--T);
}
.cal-nav button:hover { border-color:var(--green); color:var(--green) }
.cal-days-header {
  display: grid;
  grid-template-columns: repeat(7,1fr);
  gap: 2px;
  margin-bottom: 6px;
}
.cal-days-header span {
  font-size: .65rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--t3);
  text-align: center;
  padding: 4px 0;
}
.cal-grid {
  display: grid;
  grid-template-columns: repeat(7,1fr);
  gap: 3px;
  background: #F0EAE0;
  border-radius: var(--r);
  padding: 6px;
}
[data-theme=dark] .cal-grid { background: #0A150D }
.cal-day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .82rem;
  color: var(--t2);
  border-radius: var(--r);
  cursor: pointer;
  border: none;
  background: transparent;
  transition: all var(--T);
  font-family: var(--F-body);
  position: relative;
}
.cal-day:hover:not(.disabled):not(.empty) { background:rgba(61,122,58,.1); color:var(--green) }
.cal-day.selected { background:var(--green); color:#fff; font-weight:500 }
.cal-day.today { border:1.5px solid var(--gold); color:var(--gold) }
.cal-day.disabled { color:var(--t3); opacity:.35; cursor:not-allowed }
.cal-day.empty { cursor:default }
.cal-day.has-slot::after {
  content:'';
  display:block;
  width:4px; height:4px;
  border-radius:50%;
  background:var(--gold);
  position:absolute;
  bottom:3px;
  left:50%;
  transform:translateX(-50%);
}
 
.booking-opts {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.opt-group label {
  display: block;
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: .6rem;
  font-weight: 500;
}
.session-btns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.session-btn {
  padding: 10px 8px;
  border: 1.5px solid var(--bd);
  border-radius: var(--r);
  background: transparent;
  color: var(--t2);
  font-size: .78rem;
  font-weight: 400;
  text-align: center;
  cursor: pointer;
  transition: all var(--T);
}
.session-btn:hover { border-color:var(--green); color:var(--green) }
.session-btn.on { border-color:var(--green); background:rgba(61,122,58,.08); color:var(--green); font-weight:500 }
.pax-control {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--bd);
  border-radius: var(--r);
  padding: 8px 14px;
  background: var(--cream);
}
[data-theme=dark] .pax-control { background:var(--cream-dk) }
.pax-btn {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 1px solid var(--bd);
  background: transparent;
  color: var(--t2);
  font-size: 1rem;
  display: flex; align-items:center; justify-content:center;
  transition: all var(--T);
}
.pax-btn:hover { border-color:var(--green); color:var(--green); background:rgba(61,122,58,.06) }
.pax-count { flex:1; text-align:center; font-family:var(--F-title); font-size:1.3rem; font-style:italic; color:var(--t1) }
.class-select {
  width:100%;
  padding:10px 14px;
  border:1.5px solid var(--bd);
  border-radius:var(--r);
  background:var(--cream);
  color:var(--t1);
  font-family:var(--F-body);
  font-size:.88rem;
  font-weight:300;
  outline:none;
  -webkit-appearance:none;
  cursor:pointer;
  transition:border-color var(--T);
}
[data-theme=dark] .class-select { background:var(--cream-dk) }
.class-select:focus { border-color:var(--green) }
.lang-select {
  display:flex;
  gap:8px;
}
.lang-opt {
  flex:1;
  padding:9px;
  border:1.5px solid var(--bd);
  border-radius:var(--r);
  background:transparent;
  color:var(--t2);
  font-size:.78rem;
  font-weight:400;
  cursor:pointer;
  transition:all var(--T);
  text-align:center;
}
.lang-opt:hover { border-color:var(--green); color:var(--green) }
.lang-opt.on { border-color:var(--green); background:rgba(61,122,58,.08); color:var(--green); font-weight:500 }
.booking-confirm {
  background:var(--cream-dk);
  border-radius:var(--r);
  padding:1rem;
  border-left:3px solid var(--green);
}
[data-theme=dark] .booking-confirm { background:var(--parchment) }
.booking-confirm p {
  font-size:.78rem;
  color:var(--t2);
  line-height:1.6;
}
.booking-confirm strong { color:var(--green); font-weight:500 }
.booking-submit-wrap {
  display:flex;
  flex-direction:column;
  gap:.6rem;
}
.booking-total {
  font-size:.78rem;
  color:var(--t3);
}
.booking-total span {
  font-family:var(--F-title);
  font-size:1.1rem;
  font-style:italic;
  color:var(--t1);
  margin-left:6px;
}
 
/* ======================================
   SEC 3 - SOCIAL PROOF
====================================== */
#social { background:var(--cream) }
[data-theme=dark] #social { background:var(--cream-dk) }
.social-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
  max-width: 1340px;
  margin: 3rem auto 0;
}
@media(max-width:900px) { .social-grid { grid-template-columns:1fr; gap:3rem } }
 
.ig-masonry {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  grid-template-rows: auto;
  gap: 4px;
}
.ig-cell {
  background: var(--cream-dk);
  overflow: hidden;
  cursor: pointer;
  position: relative;
  border-radius: 4px;
}
.ig-cell:nth-child(1) { grid-row: span 2 }
.ig-cell:nth-child(4) { grid-row: span 2 }
.ig-cell-inner {
  width:100%;
  padding-bottom:100%;
  position:relative;
  background:linear-gradient(145deg, var(--green-dk), var(--green));
  opacity:.7;
  transition:opacity var(--T);
}
.ig-cell:nth-child(1) .ig-cell-inner { padding-bottom:200%; background:linear-gradient(145deg,var(--brick),#8A3A18) }
.ig-cell:nth-child(2) .ig-cell-inner { background:linear-gradient(145deg,var(--green),#2A5A20) }
.ig-cell:nth-child(3) .ig-cell-inner { background:linear-gradient(145deg,var(--gold),#B8822A) }
.ig-cell:nth-child(4) .ig-cell-inner { padding-bottom:200%; background:linear-gradient(145deg,#3A5A2A,var(--green)) }
.ig-cell:nth-child(5) .ig-cell-inner { background:linear-gradient(145deg,var(--brick-lt),var(--brick)) }
.ig-cell:nth-child(6) .ig-cell-inner { background:linear-gradient(145deg,var(--gold-lt),var(--gold)) }
.ig-cell:hover .ig-cell-inner { opacity:1 }
.ig-cell-label {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.6rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(255,255,255,.3);
}
.ig-cta {
  margin-top:1rem;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.76rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--t3);
  text-decoration:none;
  transition:color var(--T);
}
.ig-cta:hover { color:var(--brick) }
 
.testi-header {
  margin-bottom:2rem;
}
.testi-slider {
  position:relative;
  overflow:hidden;
}
.testi-track {
  display:flex;
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.testi-card {
  min-width:100%;
  background:var(--white);
  border:1px solid var(--bd);
  border-radius:var(--rl);
  padding:2rem;
  position:relative;
  box-shadow:var(--shadow);
}
[data-theme=dark] .testi-card { background:var(--parchment) }
.testi-quote {
  font-family:var(--F-title);
  font-size:3rem;
  color:var(--gold);
  opacity:.3;
  line-height:1;
  margin-bottom:.5rem;
}
.testi-text {
  font-family:var(--F-title);
  font-size:1.1rem;
  font-style:italic;
  color:var(--t1);
  line-height:1.7;
  margin-bottom:1.5rem;
  font-weight:400;
}
.testi-meta {
  display:flex;
  align-items:center;
  gap:.75rem;
}
.testi-avatar {
  width:40px;height:40px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--brick),var(--gold));
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;
}
.testi-name {
  font-size:.82rem;
  font-weight:500;
  color:var(--t1);
}
.testi-role {
  font-size:.72rem;
  color:var(--t3);
  margin-top:1px;
}
.testi-stars {
  position:absolute;
  top:1.5rem;
  right:1.5rem;
  color:var(--gold);
  font-size:.8rem;
  letter-spacing:2px;
}
.testi-controls {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:1.25rem;
}
.testi-dots {
  display:flex;
  gap:6px;
}
.t-dot {
  width:6px;height:6px;
  border-radius:50%;
  background:var(--bd);
  border:none;
  cursor:pointer;
  transition:all var(--T);
}
.t-dot.active { background:var(--brick); transform:scale(1.4) }
.testi-arrows {
  display:flex;
  gap:6px;
}
.t-arr {
  width:32px;height:32px;
  border:1px solid var(--bd);
  border-radius:50%;
  background:transparent;
  color:var(--t2);
  font-size:.9rem;
  display:flex;align-items:center;justify-content:center;
  transition:all var(--T);
}
.t-arr:hover { border-color:var(--brick); color:var(--brick) }
.testi-tag {
  display:inline-block;
  font-size:.6rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:3px 8px;
  border-radius:20px;
  background:rgba(181,100,58,.1);
  color:var(--brick);
  border:1px solid rgba(181,100,58,.2);
  margin-left:8px;
}
 
/* ======================================
   SEC 4 - BOUTIQUE
====================================== */
#boutique {
  background: #F4EFEA;
}
[data-theme=dark] #boutique { background:var(--parchment) }
.boutique-intro {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  max-width:1340px;
  margin:0 auto 3rem;
  flex-wrap:wrap;
}
.products-grid {
  max-width:1340px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:1.25rem;
}
.product-card {
  background:var(--white);
  border-radius:var(--rl);
  overflow:hidden;
  border:1px solid var(--bd);
  transition:transform var(--T),box-shadow var(--T),border-color var(--T);
  cursor:pointer;
  display:flex;
  flex-direction:column;
}
[data-theme=dark] .product-card { background:var(--cream-dk) }
.product-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow-lg);
  border-color:var(--gold);
}
.product-img {
  aspect-ratio:4/3;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:8px;
  position:relative;
  overflow:hidden;
  flex-shrink:0;
}
.product-body {
  padding:1.2rem;
  display:flex;
  flex-direction:column;
  flex:1;
}
.product-name {
  font-family:var(--F-title);
  font-size:1.05rem;
  font-weight:400;
  font-style:italic;
  color:var(--t1);
  margin-bottom:.3rem;
}
.product-desc {
  font-size:.78rem;
  color:var(--t2);
  line-height:1.55;
  font-weight:300;
  flex:1;
  margin-bottom:.75rem;
}
.product-price {
  font-family:var(--F-title);
  font-size:1.1rem;
  color:var(--brick);
  font-weight:400;
  margin-bottom:.65rem;
}
.add-cart {
  width:100%;
  padding:9px;
  background:var(--bark);
  color:#F5EFE6;
  border:none;
  border-radius:var(--r);
  font-family:var(--F-body);
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background var(--T),transform .15s;
  margin-top:auto;
}
.add-cart:hover { background:var(--brick); transform:translateY(-1px) }
.product-card:nth-child(1) .product-img { background:linear-gradient(145deg,#E8C080,#D4A050) }
.product-card:nth-child(2) .product-img { background:linear-gradient(145deg,#C4714A,#9A4A28) }
.product-card:nth-child(3) .product-img { background:linear-gradient(145deg,#3D7A3A,#2A5628) }
.product-card:nth-child(4) .product-img { background:linear-gradient(145deg,#5C4A38,#3A2A1A) }
.product-card:nth-child(5) .product-img { background:linear-gradient(145deg,#D8A350,#B07828) }
.product-img-label {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
}
.product-img-label span { font-size:2.2rem;opacity:.55 }
.product-img-label p {
  font-size:.58rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(255,255,255,.35);
}
.product-featured {
  position:absolute;
  top:10px;left:10px;
  background:var(--gold);
  color:var(--bark);
  font-size:.58rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:3px 8px;
  border-radius:20px;
  font-weight:500;
}
 
/* ======================================
   SEC 5 - EQUIPE
====================================== */
#team {
  background:var(--cream-dk);
}
[data-theme=dark] #team { background:var(--cream) }
.team-grid {
  max-width:900px;
  margin:3rem auto 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
}
@media(max-width:640px) { .team-grid { grid-template-columns:1fr } }
.coach-card {
  background:var(--white);
  border:1px solid var(--bd);
  border-radius:var(--rl);
  overflow:hidden;
  transition:box-shadow var(--T),transform var(--T);
}
[data-theme=dark] .coach-card { background:var(--parchment) }
.coach-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px) }
.coach-photo {
  aspect-ratio:4/3;
  position:relative;
  overflow:hidden;
}
.coach-photo-inner {
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:10px;
}
.coach-card:nth-child(1) .coach-photo-inner {
  background:linear-gradient(160deg,#4A6A30,#2A3A1A);
}
.coach-card:nth-child(2) .coach-photo-inner {
  background:linear-gradient(160deg,#B5643A,#4A2010);
}
.coach-photo-inner span { font-size:3rem;opacity:.3 }
.coach-photo-inner p {
  font-size:.62rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(240,232,216,.28);
}
.coach-photo-overlay {
  position:absolute;
  bottom:0;left:0;right:0;
  height:50%;
  background:linear-gradient(to top, rgba(20,12,6,.7), transparent);
}
.coach-body {
  padding:1.5rem;
}
.coach-name {
  font-family:var(--F-title);
  font-size:1.3rem;
  font-style:italic;
  font-weight:400;
  color:var(--t1);
  margin-bottom:.2rem;
}
.coach-role-tag {
  font-size:.65rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brick);
  font-weight:500;
  margin-bottom:1rem;
  display:block;
}
.coach-quote {
  font-family:var(--F-title);
  font-size:1rem;
  font-style:italic;
  font-weight:400;
  color:var(--t2);
  line-height:1.65;
  padding-left:1rem;
  border-left:2px solid var(--gold);
  margin-bottom:1rem;
}
.coach-bio {
  font-size:.8rem;
  color:var(--t2);
  line-height:1.65;
  font-weight:300;
}
 
/* ======================================
   FOOTER
====================================== */
footer {
  background:var(--bark);
  color:rgba(245,239,230,.7);
  padding:4rem clamp(20px,5vw,80px) 2rem;
}
.footer-top {
  max-width:1340px;
  margin:0 auto 3rem;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
  gap:3rem;
}
@media(max-width:768px) { .footer-top { grid-template-columns:1fr } }
.footer-brand .logo-txt {
  font-family:var(--F-title);
  font-size:1.8rem;
  font-style:italic;
  color:#F5EFE6;
  display:block;
  margin-bottom:.5rem;
}
.footer-brand p {
  font-size:.82rem;
  color:rgba(245,239,230,.45);
  line-height:1.75;
  max-width:320px;
  font-weight:300;
}
.footer-tagline {
  font-family:var(--F-title);
  font-style:italic;
  color:var(--gold);
  font-size:.88rem;
  margin-top:.9rem;
  display:block;
}
.footer-contact {
  text-align:right;
}
@media(max-width:768px) { .footer-contact { text-align:left } }
.footer-contact-label {
  font-size:.62rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1rem;
  display:block;
}
.contact-btns {
  display:flex;
  flex-direction:column;
  gap:.75rem;
  align-items:flex-end;
}
@media(max-width:768px) { .contact-btns { align-items:flex-start } }
.contact-btn {
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:12px 20px;
  border-radius:var(--r);
  text-decoration:none;
  font-size:.9rem;
  font-weight:500;
  transition:all var(--T);
}
.contact-btn-wa {
  background:#25D366;
  color:#fff;
}
.contact-btn-wa:hover { background:#1DA851; transform:translateY(-1px) }
.contact-btn-call {
  background:rgba(245,239,230,.08);
  color:#F5EFE6;
  border:1px solid rgba(245,239,230,.15);
}
.contact-btn-call:hover { background:rgba(245,239,230,.15) }
.contact-btn-num {
  font-family:var(--F-title);
  font-size:1.2rem;
  font-style:italic;
  color:#F5EFE6;
  display:block;
  margin-top:.25rem;
}
.footer-divider {
  max-width:1340px;
  margin:0 auto 2rem;
  border:none;
  border-top:1px solid rgba(245,239,230,.08);
}
.footer-bottom {
  max-width:1340px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}
@media(min-width:768px) { .footer-bottom { flex-direction:row; justify-content:space-between; align-items:flex-start } }
.footer-legal-links {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.5rem;
}
.footer-legal-links a {
  font-size:.72rem;
  color:rgba(245,239,230,.35);
  text-decoration:none;
  transition:color var(--T);
  display:flex;
  align-items:center;
  gap:5px;
}
.footer-legal-links a:hover { color:var(--gold) }
.footer-legal-links a::before { content:'—'; color:rgba(216,163,80,.3); font-size:.65rem }
.footer-copy {
  font-size:.7rem;
  color:rgba(245,239,230,.22);
}
.footer-address {
  font-size:.72rem;
  color:rgba(245,239,230,.32);
  line-height:1.6;
}
 
/* ======================================
   FLOAT MOBILE
====================================== */
.float-mobile {
  position:fixed;
  bottom:20px;right:16px;
  z-index:250;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}
@media(min-width:900px) { .float-mobile { display:none } }
.float-wa {
  width:50px;height:50px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  font-size:1.35rem;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.4);
  text-decoration:none;
  transition:transform .2s;
}
.float-wa:hover { transform:scale(1.07) }
.float-book-label {
  background:var(--green);
  color:#fff;
  padding:9px 16px;
  border-radius:22px;
  font-size:.74rem;
  font-weight:500;
  letter-spacing:.09em;
  text-transform:uppercase;
  box-shadow:var(--shadow-lg);
  text-decoration:none;
  transition:background var(--T),transform .2s;
}
.float-book-label:hover { background:var(--green-dk); transform:scale(1.03) }
 
/* ======================================
   GALLERY SECTION
====================================== */
#gallery { background:var(--bark); padding:clamp(64px,9vw,110px) 0 }
.gallery-header {
  padding:0 clamp(20px,5vw,80px);
  margin-bottom:2.5rem;
}
.gallery-header .sec-title { color:#F5EFE6 }
.gallery-header .eyebrow { color:var(--gold) }
.gallery-header .eyebrow::before { background:var(--gold) }
 
.gallery-tabs {
  display:flex;
  gap:0;
  overflow-x:auto;
  scrollbar-width:none;
  padding:0 clamp(20px,5vw,80px);
  margin-bottom:2rem;
  border-bottom:1px solid rgba(245,239,230,.1);
}
.gallery-tabs::-webkit-scrollbar { display:none }
.gtab {
  padding:10px 20px;
  background:transparent;
  border:none;
  border-bottom:2px solid transparent;
  color:rgba(245,239,230,.45);
  font-family:var(--F-body);
  font-size:.72rem;
  font-weight:400;
  letter-spacing:.1em;
  text-transform:uppercase;
  white-space:nowrap;
  cursor:pointer;
  margin-bottom:-1px;
  transition:color var(--T), border-color var(--T);
}
.gtab:hover { color:rgba(245,239,230,.8) }
.gtab.active { color:var(--gold); border-bottom-color:var(--gold) }
.gtab.empty { color:rgba(245,239,230,.2); cursor:default }
 
.gallery-carousel-wrap { position:relative; overflow:hidden }
.gallery-panels { display:flex; transition:transform .6s cubic-bezier(.4,0,.2,1) }
.gallery-panel {
  min-width:100%;
  padding:0 clamp(20px,5vw,80px);
}
.gallery-panel-inner {
  position:relative;
  overflow:hidden;
}
 
.subgallery { position:relative }
.subgallery-track {
  display:flex;
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.subgallery-slide {
  min-width:100%;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:4px;
}
@media(max-width:640px) { .subgallery-slide { grid-template-columns:repeat(2,1fr) } }
.gal-cell {
  aspect-ratio:4/3;
  border-radius:4px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
  cursor:pointer;
  transition:opacity var(--T),transform var(--T);
}
.gal-cell:hover { opacity:.85; transform:scale(1.01) }
.gal-cell span { font-size:2rem;opacity:.3;pointer-events:none }
.gal-cell p { font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.25);pointer-events:none }
 
.gal-theme-work   .gal-cell:nth-child(odd)  { background:linear-gradient(145deg,#3A2A1A,#5C3820) }
.gal-theme-work   .gal-cell:nth-child(even) { background:linear-gradient(145deg,#4A3A28,#2E1E10) }
.gal-theme-garden .gal-cell:nth-child(odd)  { background:linear-gradient(145deg,#2A4A1A,#3D7A3A) }
.gal-theme-garden .gal-cell:nth-child(even) { background:linear-gradient(145deg,#1A3A10,#2A5A20) }
.gal-theme-vaiss  .gal-cell:nth-child(odd)  { background:linear-gradient(145deg,#4A3828,#6A5040) }
.gal-theme-vaiss  .gal-cell:nth-child(even) { background:linear-gradient(145deg,#5A4030,#3A2820) }
.gal-theme-prep   .gal-cell:nth-child(odd)  { background:linear-gradient(145deg,#B5643A,#8A3A18) }
.gal-theme-prep   .gal-cell:nth-child(even) { background:linear-gradient(145deg,#8A4820,#5A2810) }
.gal-theme-plats  .gal-cell:nth-child(odd)  { background:linear-gradient(145deg,#D8A350,#B07828) }
.gal-theme-plats  .gal-cell:nth-child(even) { background:linear-gradient(145deg,#C09040,#905820) }
.gal-theme-degu   .gal-cell:nth-child(odd)  { background:linear-gradient(145deg,#2A3A1A,#4A6A30) }
.gal-theme-degu   .gal-cell:nth-child(even) { background:linear-gradient(145deg,#1A2A10,#3A5A28) }
.gal-theme-tb     .gal-cell:nth-child(odd)  { background:linear-gradient(145deg,#1A2A3A,#2A4A6A) }
.gal-theme-tb     .gal-cell:nth-child(even) { background:linear-gradient(145deg,#0A1A2A,#1A3A5A) }
.gal-theme-priv   .gal-cell:nth-child(odd)  { background:linear-gradient(145deg,#3A1A2A,#6A2A4A) }
.gal-theme-priv   .gal-cell:nth-child(even) { background:linear-gradient(145deg,#2A0A1A,#5A1A3A) }
.gal-theme-empty  .gal-cell                 { background:rgba(245,239,230,.04); border:1px dashed rgba(245,239,230,.1) }
 
.subgal-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:1rem;
  padding:0 4px;
}
.subgal-count {
  font-size:.7rem;
  letter-spacing:.1em;
  color:rgba(245,239,230,.35);
}
.subgal-arrows { display:flex; gap:6px }
.subgal-arr {
  width:34px;height:34px;
  border:1px solid rgba(245,239,230,.15);
  border-radius:50%;
  background:transparent;
  color:rgba(245,239,230,.5);
  font-size:.95rem;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:all var(--T);
}
.subgal-arr:hover { border-color:var(--gold);color:var(--gold) }
.gallery-empty-msg {
  height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:.75rem;
  border:1px dashed rgba(245,239,230,.12);
  border-radius:var(--rl);
}
.gallery-empty-msg span { font-size:2rem;opacity:.18 }
.gallery-empty-msg p { font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(245,239,230,.22) }
 
/* ======================================
   CALENDAR - HIGH CONTRAST FIXES
====================================== */
.cal-pane {
  background: #FFFFFF !important;
  border-radius: 0;
}
[data-theme=dark] .cal-pane { background: #2A2018 !important }
.cal-month { font-size:1.05rem; color:#1E1712 }
[data-theme=dark] .cal-month { color:#F0E8D8 }
.cal-nav button { background:#F5F0E8; border-color:#D0C8B8; color:#3A2A1A }
.cal-nav button:hover { border-color:var(--green); color:var(--green); background:#F0FAF0 }
.cal-days-header span {
  color: #6A5A48;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
}
[data-theme=dark] .cal-days-header span { color:#A09080 }
.cal-day {
  color: #2A1E12;
  font-size: .86rem;
  font-weight: 500;
  background: #FFFFFF;
  border-radius: 5px;
  box-shadow: 0 1px 2px rgba(0,0,0,.06);
}
[data-theme=dark] .cal-day { color:#D8C8B0; background:#2E2418 }
.cal-day:hover:not(.disabled):not(.empty) {
  background: rgba(61,122,58,.12);
  color: #1A4A18;
  font-weight: 700;
}
[data-theme=dark] .cal-day:hover:not(.disabled):not(.empty) { color:var(--green) }
.cal-day.selected {
  background: var(--green) !important;
  color: #fff !important;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(61,122,58,.4);
}
.cal-day.today {
  border: 2px solid var(--gold);
  color: #7A4A00;
  font-weight: 700;
}
[data-theme=dark] .cal-day.today { color:var(--gold) }
.cal-day.disabled { color: #B8AEA0 !important; background:#F8F4F0 !important; opacity:1; cursor:not-allowed }
[data-theme=dark] .cal-day.disabled { color:#4A3E30 !important; background:#221810 !important }
.cal-day.empty { background:transparent !important; box-shadow:none; cursor:default }
.cal-day.has-slot::after { width:5px; height:5px; background:var(--gold); bottom:2px }
 
.dish-selector {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.dish-opt {
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border:1.5px solid var(--bd);
  border-radius:var(--r);
  cursor:pointer;
  transition:all var(--T);
  font-size:.78rem;
  color:var(--t2);
  background:var(--cream);
  text-align:left;
  font-family:var(--F-body);
}
[data-theme=dark] .dish-opt { background:var(--cream-dk) }
.dish-opt:hover { border-color:var(--gold);color:var(--t1) }
.dish-opt.on { border-color:var(--green);background:rgba(61,122,58,.07);color:var(--green-dk);font-weight:500 }
.dish-opt input { display:none }
.dish-opt-check {
  width:16px;height:16px;
  border:1.5px solid currentColor;
  border-radius:3px;
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:.65rem;
}
.dish-opt.on .dish-opt-check::after { content:'✓' }
.dish-selector-note {
  font-size:.72rem;
  color:var(--t3);
  font-style:italic;
  margin-top:.4rem;
}
 
.payment-note {
  background:rgba(61,122,58,.06);
  border:1px solid rgba(61,122,58,.2);
  border-radius:var(--r);
  padding:.85rem 1rem;
  font-size:.76rem;
  color:var(--t2);
  line-height:1.6;
}
.payment-note strong { color:var(--green);display:block;margin-bottom:.25rem;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase }
 
/* ======================================
   IG CAROUSEL - FULL BLEED HORIZONTAL
====================================== */
.ig-carousel-wrap {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 280px;
}
@media(min-width:768px) { .ig-carousel-wrap { height:320px } }
.ig-carousel-track {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform .55s cubic-bezier(.4,0,.2,1);
}
.ig-carousel-slide {
  min-width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(6,1fr);
  gap: 3px;
}
@media(max-width:480px) { .ig-carousel-slide { grid-template-columns: repeat(3,1fr) } }
.ig-c {
  height: 100%;
  cursor: pointer;
  overflow: hidden;
  transition: opacity var(--T), transform var(--T);
}
.ig-c:hover { opacity:.82; transform:scale(1.02) }
.ig-c1 { background:linear-gradient(145deg,var(--brick),#8A3A18) }
.ig-c2 { background:linear-gradient(145deg,var(--green),#2A5A20) }
.ig-c3 { background:linear-gradient(145deg,var(--gold),#B8822A) }
.ig-c4 { background:linear-gradient(145deg,#3A5A2A,var(--green)) }
.ig-c5 { background:linear-gradient(145deg,var(--brick-lt),var(--brick)) }
.ig-c6 { background:linear-gradient(145deg,var(--gold-lt),var(--gold)) }
.ig-cl {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:.58rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.25);
}
.ig-arr {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(30,18,8,.5);
  color: rgba(255,255,255,.8);
  font-size: 1.1rem;
  display: flex; align-items:center; justify-content:center;
  cursor: pointer;
  transition: all var(--T);
  backdrop-filter: blur(4px);
  z-index: 5;
}
.ig-arr:hover { background:rgba(30,18,8,.85); border-color:var(--gold); color:var(--gold) }
.ig-arr-l { left: 14px }
.ig-arr-r { right: 14px }
.ig-dots {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
}
.ig-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,.35);
  cursor: pointer;
  transition: all var(--T);
}
.ig-dot.active { background: var(--gold); transform: scale(1.4) }
#social {
  padding: clamp(64px,8vw,100px) clamp(20px,5vw,80px);
}
.social-two-col {
  max-width: 1340px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
}
@media(max-width:900px) { .social-two-col { grid-template-columns:1fr; gap:3rem } }
 
.ig-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 5px;
  margin-top: 1.5rem;
}
.ig-cell {
  aspect-ratio: 1;
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
  position: relative;
  transition: opacity var(--T), transform var(--T);
}
.ig-cell:hover { opacity:.82; transform:scale(1.02) }
.ig-cell-inner {
  width: 100%;
  height: 100%;
  transition: opacity var(--T);
}
.ig-cell:nth-child(1) .ig-cell-inner { background:linear-gradient(145deg,var(--brick),#8A3A18) }
.ig-cell:nth-child(2) .ig-cell-inner { background:linear-gradient(145deg,var(--green),#2A5A20) }
.ig-cell:nth-child(3) .ig-cell-inner { background:linear-gradient(145deg,var(--gold),#B8822A) }
.ig-cell:nth-child(4) .ig-cell-inner { background:linear-gradient(145deg,#3A5A2A,var(--green)) }
.ig-cell:nth-child(5) .ig-cell-inner { background:linear-gradient(145deg,var(--brick-lt),var(--brick)) }
.ig-cell:nth-child(6) .ig-cell-inner { background:linear-gradient(145deg,var(--gold-lt),var(--gold)) }
.ig-cell-label {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:.58rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.28);
}
 
.tripadvisor-note {
  background:rgba(0,170,128,.06);
  border:1px solid rgba(0,170,128,.2);
  border-radius:var(--r);
  padding:.85rem 1rem;
  font-size:.76rem;
  color:var(--t2);
  line-height:1.6;
  margin-top:1rem;
}
.tripadvisor-note strong { color:#00AA80;display:block;margin-bottom:.2rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase }
 
/* ======================================
   CONTACT FAN - FLOAT BAS DROITE
====================================== */
.contact-fan {
  position: fixed;
  bottom: 56px;
  right: 20px;
  z-index: 500;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .4s ease;
}
.contact-fan.visible { opacity:1; pointer-events:auto }
.contact-fan.open    { opacity:1; pointer-events:auto }
 
.fan-item {
  display: flex;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px) scale(.9);
  transition:
    opacity .22s cubic-bezier(.4,0,.2,1),
    transform .22s cubic-bezier(.4,0,.2,1);
}
.fan-item:nth-child(1) { transition-delay:.06s }
.fan-item:nth-child(2) { transition-delay:.03s }
.fan-item:nth-child(3) { transition-delay:0s   }
.contact-fan.open .fan-item {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}
.contact-fan.open .fan-item:nth-child(1) { transition-delay:.06s }
.contact-fan.open .fan-item:nth-child(2) { transition-delay:.03s }
.contact-fan.open .fan-item:nth-child(3) { transition-delay:0s   }
 
.fan-icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  box-shadow: 0 4px 16px rgba(0,0,0,.22);
  flex-shrink: 0;
  transition: transform .16s;
}
.fan-item:hover .fan-icon { transform: scale(1.1) }
.fan-wa    .fan-icon { background:#25D366 }
.fan-email .fan-icon { background:var(--gold); font-size:.95rem }
.fan-phone .fan-icon { background:var(--brick); font-size:.95rem }
 
.fan-trigger {
  display: flex;
  align-items: center;
  gap: 9px;
  background: var(--bark);
  color: #F5EFE6;
  border: none;
  padding: 12px 18px;
  border-radius: 26px;
  font-family: var(--F-body);
  font-size: .76rem;
  font-weight: 500;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(0,0,0,.26);
  transition: background var(--T), transform .16s, box-shadow .16s;
  white-space: nowrap;
}
.fan-trigger:hover {
  background: var(--brick);
  transform: translateY(-2px);
  box-shadow: 0 6px 26px rgba(181,100,58,.38);
}
.contact-fan.open .fan-trigger { background: var(--green) }
.fan-trigger-icon {
  font-size: .95rem;
  font-weight: 300;
  display: inline-block;
  transition: transform .28s cubic-bezier(.4,0,.2,1);
  opacity: .8;
  line-height: 1;
}
.contact-fan.open .fan-trigger-icon { transform: rotate(45deg); opacity:1 }
 
/* ======================================
   FOOTER - MINIMAL REDESIGN
====================================== */
.footer-top {
  grid-template-columns:1fr 1fr 1fr;
  gap:2.5rem;
  align-items:start;
}
@media(max-width:768px) { .footer-top { grid-template-columns:1fr } }
.footer-nav h5 {
  font-size:.62rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:.9rem;
}
.footer-nav ul { list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem 1.2rem }
.footer-nav a {
  font-size:.78rem;
  color:rgba(245,239,230,.42);
  text-decoration:none;
  transition:color var(--T);
}
.footer-nav a:hover { color:var(--gold) }
.footer-contact-mini h5 {
  font-size:.62rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:.9rem;
}
.footer-contact-mini p {
  font-size:.78rem;
  color:rgba(245,239,230,.42);
  line-height:1.7;
}
.footer-contact-mini a {
  color:rgba(245,239,230,.55);
  text-decoration:none;
  transition:color var(--T);
}
.footer-contact-mini a:hover { color:var(--gold) }
.reveal {
  opacity:0;
  transform:translateY(20px);
  transition:opacity .55s ease, transform .55s ease;
}
.reveal.visible { opacity:1; transform:translateY(0) }
 
/* ======================================
   TRANSITIONS
====================================== */
*{transition-property:background-color,border-color,color;transition-duration:.28s;transition-timing-function:cubic-bezier(.4,0,.2,1)}
a,button,.product-card,.coach-card,.ig-cell,.testi-card{transition-property:background-color,border-color,color,transform,box-shadow,opacity}
 
/* ======================================
   HEADER SOCIAL ICONS
====================================== */
.h-social {
  display: none;
  align-items: center;
  gap: 14px;
}
@media(min-width:900px) { .h-social { display:flex } }
 
.h-social-icon {
  color: var(--t3);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color var(--T), transform .18s;
}
.h-social-icon:hover {
  color: var(--brick);
  transform: translateY(-2px);
}
 
.header-inner {
  grid-template-columns: auto 1fr auto auto !important;
}
 
/* ======================================
   FOOTER SOCIAL ICONS
====================================== */
.footer-social {
  display: flex;
  gap: 14px;
  margin-top: 1.25rem;
}
.footer-social a {
  color: rgba(245,239,230,.4);
  display: flex;
  align-items: center;
  transition: color var(--T), transform .18s;
}
.footer-social a:hover {
  color: var(--gold);
  transform: translateY(-2px);
}
 
@media(max-width:900px) {
  .footer-top {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media(max-width:560px) {
  .footer-top {
    grid-template-columns: 1fr !important;
  }
}
 
.h-social-icon svg {
  width: 22px;
  height: 22px;
}
.h-social {
  gap: 18px;
}
.footer-social a svg {
  width: 20px;
  height: 20px;
}
 
.h-logo img,
.custom-logo {
  height: 44px !important;
  width: auto !important;
  max-width: 160px !important;
}
.header-inner {
  display: grid !important;
  grid-template-columns: auto 1fr auto auto auto !important;
  align-items: center;
  gap: 1.5rem;
}
@media(max-width:899px) {
  .header-inner {
    grid-template-columns: auto 1fr auto !important;
  }
  .h-social { display:none !important }
}
 
:root { --nav-h: 88px }
 
header { height: var(--nav-h) }
 
.mob-drawer { top: var(--nav-h) }
 
.h-logo img,
.custom-logo {
  height: 62px !important;
  width: auto !important;
  max-width: 220px !important;
}
 
section[id] {
  scroll-margin-top: 96px;
}
 
.h-logo {
  display: flex !important;
  align-items: center !important;
  height: var(--nav-h) !important;
  overflow: hidden !important;
}
.custom-logo-link {
  display: flex !important;
  align-items: center !important;
  height: 100% !important;
}
.custom-logo-link img,
.custom-logo {
  height: 60px !important;
  width: auto !important;
  max-width: 200px !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
  transform: none !important;
}
.h-logo figure,
.custom-logo-link figure {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}
 
.h-logo {
  display: flex !important;
  align-items: center !important;
  height: var(--nav-h) !important;
  flex-shrink: 0;
}
.h-logo-img {
  height: 64px !important;
  width: auto !important;
  max-width: 200px !important;
  object-fit: contain !important;
  display: block !important;
  position: static !important;
  transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
 
/* -- Google Translator flags fix -- */
.lang-toggle {
  overflow: visible !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 0 4px !important;
}
.lang-toggle img,
.lang-toggle .glt-translate-trigger img {
  width: 24px !important;
  height: 16px !important;
  border-radius: 2px !important;
  display: block !important;
}
.lang-toggle a,
.lang-toggle .glt-translate-trigger {
  display: flex !important;
  align-items: center !important;
  opacity: .6 !important;
  transition: opacity .2s !important;
}
.lang-toggle a:hover,
.lang-toggle .glt-translate-trigger:hover {
  opacity: 1 !important;
}
 
/* ============================================================
   TEAM BUILDING PAGE
   ============================================================ */
 
/* HERO */
.tb-hero{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
}
.tb-hero-video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  z-index:0;
}
.tb-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(0,0,0,.25) 0%,
    rgba(0,0,0,.35) 50%,
    rgba(0,0,0,.75) 100%);
  z-index:1;
}
.tb-hero-content{
  position:relative;z-index:2;
  max-width:1200px;margin:0 auto;
  padding:0 1.5rem 5rem;width:100%;
}
.tb-hero-eyebrow{ color:rgba(255,255,255,.7) !important; letter-spacing:.18em; }
.tb-hero h1{
  font-family:var(--F-title);
  font-size:clamp(2.4rem, 5.5vw, 4.6rem);
  line-height:1.05;
  margin:.5rem 0 1rem;
  font-weight:500;
}
.tb-hero h1 em{ font-style:italic; color:var(--gold); }
.tb-hero-sub{
  font-size:clamp(1rem, 1.4vw, 1.18rem);
  max-width:560px;
  opacity:.92;
  margin-bottom:2rem;
  line-height:1.55;
}
.tb-hero-cta{ display:flex; gap:.9rem; flex-wrap:wrap; align-items:center; }
 
/* CTA BUTTON SYSTEM */
.btn-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  height:52px;
  padding:0 1.7rem;
  font-family:var(--F-body);
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.04em;
  text-decoration:none;
  border-radius:var(--r);
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;
  line-height:1;
  text-transform:none;
}
.btn-cta:hover{ transform:translateY(-2px); }
.btn-cta svg{ flex-shrink:0; }
 
.btn-cta-primary{
  background:var(--brick);
  color:#fff;
}
.btn-cta-primary:hover{
  background:var(--brick-lt);
  box-shadow:0 8px 22px rgba(181,100,58,.35);
}
 
.btn-cta-whatsapp{
  background:#25D366;
  color:#fff;
}
.btn-cta-whatsapp:hover{
  background:#1ebe5a;
  box-shadow:0 8px 22px rgba(37,211,102,.35);
}
 
.btn-cta-email{
  background:transparent;
  color:var(--t1);
  border-color:var(--bd-h);
}
.btn-cta-email:hover{
  background:var(--t1);
  color:#fff;
  border-color:var(--t1);
}
 
.tb-usp-dark .btn-cta-email,
.tb-hero .btn-cta-email{
  color:#fff;
  border-color:rgba(255,255,255,.55);
}
.tb-usp-dark .btn-cta-email:hover,
.tb-hero .btn-cta-email:hover{
  background:#fff;
  color:var(--t1);
}
 
/* TWO FORMATS */
.tb-formats .sec-title{ text-align:center; }
.tb-formats .sec-sub{ text-align:center; max-width:680px; margin:0 auto 3rem; }
.tb-formats-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:1.75rem;
  margin-bottom:3.5rem;
}
.tb-format-card{
  background:var(--white);
  border-radius:var(--r);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:transform .35s ease, box-shadow .35s ease;
}
.tb-format-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-lg);
}
.tb-format-photo{
  height:260px;
  background-size:cover;
  background-position:center;
}
.tb-format-body{ padding:1.75rem 1.85rem 2rem; }
.tb-format-tag{
  display:inline-block;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--brick);
  font-weight:600;
  margin-bottom:.5rem;
}
.tb-format-body h3{
  font-family:var(--F-title);
  font-size:1.55rem;
  margin:.1rem 0 .55rem;
  font-weight:500;
  color:var(--t1);
}
.tb-format-meta{
  font-size:.95rem;
  color:var(--t2);
  margin-bottom:1rem;
}
.tb-format-tags{
  list-style:none;
  padding:0;margin:0;
  display:flex;flex-wrap:wrap;gap:.4rem;
}
.tb-format-tags li{
  font-size:.78rem;
  padding:.32rem .7rem;
  background:var(--parchment);
  color:var(--t2);
  border-radius:2px;
}
 
/* USP SECTIONS */
.tb-usp{ padding:6rem 0; }
.tb-usp-dark{
  background:var(--bark);
  color:#f4ede2;
}
.tb-usp-dark .sec-title{ color:#fff; }
.tb-usp-dark .sec-sub{ color:#cbbfa8; }
.tb-usp-dark .tb-usp-bullets li{ color:#e6d9c1; }
.tb-usp-dark .tb-usp-bullets li strong{ color:#fff; }
.tb-usp-dark .tb-usp-footnote{ color:#a89a82; }
.tb-usp-dark .tb-usp-num{ color:var(--gold); }
 
.tb-usp-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}
.tb-usp-reverse{ direction:rtl; }
.tb-usp-reverse > *{ direction:ltr; }
.tb-usp-media img{
  width:100%;height:auto;
  display:block;
  border-radius:var(--r);
  aspect-ratio:4/3;
  object-fit:cover;
}
.tb-usp-num{
  font-size:.7rem;
  letter-spacing:.22em;
  font-weight:600;
  color:var(--brick);
}
.tb-usp .sec-title{
  font-family:var(--F-title);
  font-size:clamp(1.9rem, 3.2vw, 2.7rem);
  line-height:1.15;
  margin:.5rem 0 .85rem;
}
.tb-usp .sec-sub{
  font-size:1.05rem;
  margin-bottom:1.5rem;
}
.tb-usp-bullets{
  list-style:none;
  padding:0;margin:0 0 1.5rem;
}
.tb-usp-bullets li{
  padding:.55rem 0 .55rem 1.4rem;
  position:relative;
  font-size:.98rem;
  line-height:1.55;
  border-bottom:1px solid var(--bd);
}
.tb-usp-dark .tb-usp-bullets li{ border-bottom-color:rgba(255,255,255,.08); }
.tb-usp-bullets li:last-child{ border-bottom:0; }
.tb-usp-bullets li::before{
  content:"";
  position:absolute;
  left:0;top:1.05rem;
  width:6px;height:6px;
  background:var(--brick);
  border-radius:50%;
}
.tb-usp-bullets li strong{ display:inline-block; margin-right:.25rem; }
.tb-usp-footnote{
  font-size:.92rem;
  font-style:italic;
  color:var(--t2);
  margin-top:1rem;
}
.tb-usp-subhead{
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--brick);
  margin:2rem 0 .9rem;
  font-weight:600;
}
 
.tb-team-table{
  display:grid;
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r);
  overflow:hidden;
}
.tb-usp:not(.tb-usp-dark) .tb-team-table{ border-color:var(--bd); }
.tb-team-row{
  display:grid;
  grid-template-columns:1fr 1.6fr;
  font-size:.94rem;
}
.tb-team-row > div{
  padding:.75rem 1rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.tb-usp:not(.tb-usp-dark) .tb-team-row > div{ border-bottom-color:var(--bd); }
.tb-team-row:last-child > div{ border-bottom:0; }
.tb-team-head{
  background:var(--brick);
}
.tb-team-head > div{
  color:#fff;
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
 
/* INLINE CTA BAND */
.tb-inline-cta{
  background:var(--parchment);
  padding:2.5rem 0;
  text-align:center;
}
.tb-inline-cta .mw{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  flex-wrap:wrap;
}
.tb-inline-cta p{
  font-family:var(--F-title);
  font-size:1.15rem;
  margin:0;
  font-weight:500;
  color:var(--t1);
}
 
/* CASE STUDIES */
.tb-cases{
  padding:6rem 0;
  background:var(--cream);
}
.tb-cases .sec-title{ text-align:center; }
.tb-cases .sec-sub{
  text-align:center;
  max-width:680px;
  margin:0 auto 3rem;
}
 
.tb-cases-tabs{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.5rem;
  margin-bottom:3rem;
  padding-bottom:1.25rem;
  border-bottom:1px solid var(--bd);
}
.tb-cases-tab{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  background:transparent;
  border:0;
  padding:.85rem 1.4rem;
  cursor:pointer;
  border-radius:var(--r);
  transition:background .2s ease;
  text-align:left;
  font-family:inherit;
}
.tb-cases-tab:hover{ background:var(--white); }
.tb-cases-tab.is-active{
  background:var(--white);
  box-shadow:0 -3px 0 var(--brick) inset;
}
.tb-cases-tab-name{
  font-size:1rem;
  font-weight:600;
  color:var(--t1);
  letter-spacing:.01em;
}
.tb-cases-tab-date{
  font-size:.78rem;
  color:var(--t3);
  margin-top:.15rem;
  letter-spacing:.06em;
}
.tb-cases-tab.is-active .tb-cases-tab-name{ color:var(--brick); }
 
.tb-cases-panel{
  display:none;
  animation:tbFadeIn .4s ease;
}
.tb-cases-panel.is-active{ display:block; }
@keyframes tbFadeIn{
  from{ opacity:0; transform:translateY(8px); }
  to  { opacity:1; transform:translateY(0); }
}
 
.tb-cases-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:3rem;
  align-items:start;
}
 
.tb-cases-media{ display:flex; flex-direction:column; gap:.65rem; }
.tb-cases-hero{
  position:relative;
  border-radius:var(--r);
  overflow:hidden;
  cursor:zoom-in;
  aspect-ratio:16/10;
  background:var(--parchment);
}
.tb-cases-hero-img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s ease;
}
.tb-cases-hero:hover .tb-cases-hero-img{ transform:scale(1.04); }
.tb-cases-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,.55) 100%);
  display:flex;
  align-items:flex-end;
  padding:1.25rem;
  opacity:0;
  transition:opacity .3s ease;
}
.tb-cases-hero:hover .tb-cases-hero-overlay{ opacity:1; }
.tb-cases-zoom{
  color:#fff;
  font-size:.9rem;
  letter-spacing:.05em;
  font-weight:500;
}
 
.tb-cases-thumbs{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:.5rem;
}
.tb-cases-thumb{
  background:var(--parchment);
  border:0;padding:0;cursor:pointer;
  border-radius:var(--r);overflow:hidden;
  aspect-ratio:1/1;
  transition:transform .2s ease, opacity .2s ease;
  opacity:.85;
}
.tb-cases-thumb:hover{ opacity:1; transform:scale(1.03); }
.tb-cases-thumb img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
 
.tb-cases-body{ padding-top:.5rem; }
.tb-cases-tag{
  display:inline-block;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--brick);
  font-weight:600;
  margin-bottom:.7rem;
  padding:.3rem .7rem;
  background:rgba(181,100,58,.08);
  border-radius:2px;
}
.tb-cases-body h3{
  font-family:var(--F-title);
  font-size:1.65rem;
  margin:0 0 .35rem;
  font-weight:500;
  line-height:1.25;
  color:var(--t1);
}
.tb-cases-meta{
  font-size:.9rem;
  color:var(--t3);
  margin-bottom:1.3rem;
  letter-spacing:.03em;
}
.tb-cases-cta{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  margin-top:1.5rem;
  color:var(--brick);
  text-decoration:none;
  font-weight:600;
  font-size:.95rem;
  transition:gap .2s ease;
}
.tb-cases-cta:hover{ gap:.7rem; }
 
/* LIGHTBOX */
.tb-lightbox{
  position:fixed;inset:0;
  background:rgba(0,0,0,.92);
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:2rem;
}
.tb-lightbox.is-open{ display:flex; }
.tb-lightbox-img{
  max-width:92vw;
  max-height:88vh;
  object-fit:contain;
  border-radius:var(--r);
}
.tb-lightbox-close,
.tb-lightbox-prev,
.tb-lightbox-next{
  position:absolute;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  cursor:pointer;
  font-size:1.6rem;
  width:48px;height:48px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease;
  line-height:1;
}
.tb-lightbox-close:hover,
.tb-lightbox-prev:hover,
.tb-lightbox-next:hover{ background:rgba(255,255,255,.25); }
.tb-lightbox-close{ top:1.5rem; right:1.5rem; }
.tb-lightbox-prev{ left:1.5rem; top:50%; transform:translateY(-50%); }
.tb-lightbox-next{ right:1.5rem; top:50%; transform:translateY(-50%); }
.tb-lightbox-counter{
  position:absolute;
  bottom:1.5rem;
  left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.7);
  font-size:.85rem;
  letter-spacing:.1em;
}
 
/* FLOAT CTA */
.tb-float-cta{
  position:fixed;
  bottom:1.5rem;
  right:1.5rem;
  z-index:50;
}
.tb-float-btn{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  background:var(--brick);
  color:#fff;
  border:none;
  padding:.95rem 1.4rem;
  border-radius:50px;
  text-decoration:none;
  font-family:inherit;
  font-weight:500;
  font-size:.95rem;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  transition:transform .2s ease, box-shadow .2s ease;
}
.tb-float-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 32px rgba(0,0,0,.22);
}
 
/* RESPONSIVE */
@media (max-width:900px){
  .tb-hero{ min-height:78vh; }
  .tb-hero-content{ padding-bottom:3.5rem; }
  .tb-formats-grid{ grid-template-columns:1fr; gap:1.25rem; }
  .tb-format-photo{ height:220px; }
  .tb-usp{ padding:4rem 0; }
  .tb-usp-grid{ grid-template-columns:1fr; gap:2rem; }
  .tb-usp-reverse{ direction:ltr; }
  .tb-cases{ padding:4rem 0; }
  .tb-cases-grid{ grid-template-columns:1fr; gap:2rem; }
  .tb-cases-tabs{ gap:.25rem; }
  .tb-cases-tab{ padding:.7rem 1rem; }
  .tb-cases-tab-name{ font-size:.92rem; }
  .tb-inline-cta .mw{ flex-direction:column; gap:1rem; }
  .tb-hero-cta{ flex-direction:column; align-items:stretch; }
  .tb-hero-cta .btn-cta{ width:100%; }
  .corp-cta-btns{ flex-direction:column; align-items:center; gap:.75rem; }
  .corp-cta-btns .btn-cta{ width:100%; max-width:320px; }
  .tb-float-btn{ padding:.85rem 1.15rem; font-size:.88rem; }
  .tb-float-btn span{ display:none; }
}
 
@media (max-width:600px){
  .tb-hero h1{ font-size:2.1rem; }
  .tb-pillars-list{ font-size:.92rem; }
  .tb-pillar-sep{ display:block; height:.3rem; visibility:hidden; }
  .tb-cases-thumbs{ gap:.35rem; }
  .tb-lightbox-prev{ left:.5rem; }
  .tb-lightbox-next{ right:.5rem; }
}
 
/* Video fallback mobile */
@media (max-width:600px){
  .tb-hero-video{ display:none; }
  .tb-hero{
    background-image:url('../images/team-building/horizontal/hero-poster.jpg');
    background-size:cover;
    background-position:center;
  }
}
 
/* ============================================================
   LOGO DAY/NIGHT SWITCH
   ============================================================ */
.h-logo .logo-light { display: none !important; }
.h-logo .logo-dark  { display: block !important; filter: invert(1); }
 
[data-theme="dark"] .h-logo .logo-light { display: none  !important; }
[data-theme="dark"] .h-logo .logo-dark  { display: block !important; filter: none; }
 
/* ============================================================
   THEME TOGGLE FIX
   ============================================================ */
.theme-btn,
.theme-btn:focus,
.theme-btn:active {
  background: transparent !important;
  color: var(--t3) !important;
  border: 1px solid var(--bd) !important;
}
 
@media (hover: hover) and (pointer: fine) {
  .theme-btn:hover {
    border-color: var(--gold) !important;
    color: var(--gold) !important;
    transform: rotate(20deg);
  }
}
 
[data-theme="dark"] .theme-btn {
  color: var(--t2) !important;
  border-color: var(--bd) !important;
}
 
/* ============================================================
   HERO SUB-CTA
   ============================================================ */
.tb-hero-subcta{
  margin-top:1rem;
  font-size:.92rem;
  color:rgba(255,255,255,.75);
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}
.tb-hero-subcta-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  color:#fff;
  text-decoration:none;
  font-weight:500;
  border-bottom:1px solid rgba(255,255,255,.35);
  padding-bottom:1px;
  transition:border-color .2s ease, color .2s ease;
}
.tb-hero-subcta-link:hover{
  border-bottom-color:#fff;
}
.tb-hero-subcta-wa:hover{ color:#25D366; border-bottom-color:#25D366; }
.tb-hero-subcta-mail:hover{ color:var(--gold); border-bottom-color:var(--gold); }
.tb-hero-subcta-sep{ color:rgba(255,255,255,.4); }
.tb-hero-subcta svg{ flex-shrink:0; opacity:.9; }
 
/* ============================================================
   PULSE animation on final CTA buttons
   ============================================================ */
#finalCtaBtns.is-pulsing .btn-cta{
  animation:tbPulse .8s ease-in-out 3;
}
@keyframes tbPulse{
  0%, 100% { transform:scale(1);    box-shadow:0 0 0 0   rgba(216,163,80,0);  }
  50%      { transform:scale(1.04); box-shadow:0 0 0 14px rgba(216,163,80,0); }
}
 
/* ============================================================
   CUSTOM CURSOR
   ============================================================ */
@media (hover: hover) and (pointer: fine) {
  body, body * {
    cursor: none !important;
  }
  a, button,
  a *, button *,
  [role="button"], [role="button"] *,
  input, select, textarea, label,
  .tb-cases-tab, .tb-cases-tab *,
  .tb-cases-thumb, .tb-cases-thumb *,
  .tb-cases-hero, .tb-cases-hero *,
  .tb-lightbox, .tb-lightbox *,
  .theme-btn, .ham-btn {
    cursor: pointer !important;
  }
  input[type="text"], input[type="email"], input[type="tel"],
  input[type="search"], input[type="url"], textarea {
    cursor: text !important;
  }
}
 
.thom-cursor{
  position:fixed;
  top:0; left:0;
  width:24px;
  height:24px;
  pointer-events:none;
  z-index:99999;
  margin-left:-12px;
  margin-top:-12px;
  background-image:var(--thom-cursor-img, url('../images/logo-souris.svg'));
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  transition:opacity .25s ease;
  will-change:transform;
}
 
@media (hover: none), (pointer: coarse) {
  .thom-cursor{ display:none !important; }
  body, body * { cursor: auto !important; }
}
 
/* ============================================================
   FOOTER FIX — 4 colonnes : brand · navigate · contact · carte
   ============================================================ */
footer#contact .footer-top{
  display:grid !important;
  grid-template-columns:1.2fr 1.7fr 1.2fr 1fr !important;
  gap:clamp(2.5rem,4vw,4.5rem) !important;
  align-items:start !important;
  max-width:1340px !important;
  margin:0 auto 2.5rem !important;
}
 
@media(max-width:1024px){
  footer#contact .footer-top{
    grid-template-columns:1fr 1fr !important;
    gap:2.5rem !important;
    max-width:720px !important;
  }
}
 
@media(max-width:600px){
  footer#contact .footer-top{
    grid-template-columns:1fr !important;
    gap:2rem !important;
  }
}
 
footer#contact .footer-brand p{
  max-width:none;
}
 
/* ============================================================
   HERO CTA POPOVER
   ============================================================ */
.tb-cta-popover-wrap{
  position:relative;
  display:inline-block;
}
 
.tb-cta-trigger{
  gap:.6rem;
}
.tb-cta-arrow{
  transition:transform .25s ease;
  opacity:.9;
}
.tb-cta-trigger[aria-expanded="true"] .tb-cta-arrow{
  transform:rotate(180deg);
}
 
.tb-cta-popover{
  position:absolute;
  top:calc(100% + .65rem);
  left:0;
  min-width:240px;
  display:flex;
  flex-direction:column;
  gap:.55rem;
  padding:.65rem;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.15);
  border-radius:var(--r);
  box-shadow:0 14px 40px rgba(0,0,0,.4);
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
  z-index:10;
}
.tb-cta-popover.is-open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition:opacity .25s ease, transform .25s ease, visibility 0s linear 0s;
}
 
.tb-cta-popover-btn{
  width:100%;
  height:48px;
  padding:0 1.2rem;
  font-size:.92rem;
  justify-content:flex-start;
}
 
@media (max-width:600px){
  .tb-cta-popover{
    left:0;
    right:0;
    min-width:0;
  }
}
 
/* ============================================================
   FLOAT CTA — Popover vers le HAUT
   ============================================================ */
.tb-float-popover-wrap{
  position:relative;
}
 
.tb-cta-popover-up{
  top:auto !important;
  bottom:calc(100% + .65rem) !important;
  left:auto !important;
  right:0 !important;
  transform:translateY(6px) !important;
}
.tb-cta-popover-up.is-open{
  transform:translateY(0) !important;
}
 
/* ============================================================
   THREE PILLARS BANNER
   ============================================================ */
.tb-pillars-banner{
  margin-top:3rem;
  padding-top:2.5rem;
  border-top:1px solid var(--bd);
  text-align:center;
}
 
.tb-pillars-intro{
  font-family:var(--F-title);
  font-style:italic;
  font-size:1.15rem;
  color:var(--t2);
  margin:0 0 1.5rem;
  letter-spacing:.01em;
}
 
.tb-pillars-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
  max-width:1000px;
  margin:0 auto;
}
 
.tb-pillar-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  padding:1.25rem 1.4rem;
  background:var(--white);
  border:1px solid var(--bd);
  border-radius:var(--r);
  text-decoration:none;
  color:var(--t1);
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  position:relative;
}
.tb-pillar-card:hover{
  transform:translateY(-3px);
  border-color:var(--brick);
  box-shadow:0 8px 22px rgba(181,100,58,.12);
}
 
.tb-pillar-num{
  font-size:.72rem;
  letter-spacing:.16em;
  font-weight:600;
  color:var(--brick);
  margin-bottom:.5rem;
}
 
.tb-pillar-name{
  font-family:var(--F-title);
  font-size:1.05rem;
  font-weight:500;
  line-height:1.3;
  color:var(--t1);
}
 
.tb-pillar-arrow{
  position:absolute;
  bottom:1.25rem;
  right:1.4rem;
  font-size:1.1rem;
  color:var(--brick);
  opacity:.5;
  transition:opacity .25s ease, transform .25s ease;
}
.tb-pillar-card:hover .tb-pillar-arrow{
  opacity:1;
  transform:translateX(4px);
}
 
@media (max-width:900px){
  .tb-pillars-grid{ grid-template-columns:1fr; max-width:480px; }
  .tb-pillar-card{ padding:1rem 1.2rem; }
}
 
/* =====================================================================
   HOMEPAGE (front-page.php) + EXPERIENCE PAGE (page-exp.php)
   Rebuilt section styles — appended 2026-06
   Uses existing tokens (--green, --gold, --brick, --bark, --cream...).
===================================================================== */
 
/* ---- Shared helpers ---- */
.btn-outline {
  display:inline-block; background:transparent; color:var(--green);
  border:1.5px solid var(--green); padding:11px 24px;
  font-size:.8rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase;
  border-radius:var(--r); transition:all var(--T); cursor:pointer;
}
.btn-outline:hover { background:var(--green); color:#fff; }
.format-card > .btn-outline-sm { margin-top:auto; align-self:flex-start; }
.btn-outline-sm {
  display:inline-block; background:transparent; color:var(--green);
  border:1px solid var(--green); padding:8px 16px;
  font-size:.72rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase;
  border-radius:var(--r); transition:all var(--T); cursor:pointer;
}
.btn-outline-sm:hover { background:var(--green); color:#fff; }
.btn-full { width:100%; text-align:center; }
.eyebrow-sm {
  display:inline-block; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--t3); font-weight:600; margin-bottom:.4rem;
}
.sec-divider {
  width:48px; height:2px;
  background:linear-gradient(to right,var(--gold),transparent);
  margin:1.2rem 0 1.4rem;
}
 
/* ---- KEY NUMBERS ---- */
.sec-numbers { padding-top:clamp(40px,5vw,64px); padding-bottom:clamp(40px,5vw,64px); }
.numbers-band {
  max-width:1100px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; flex-wrap:wrap;
}
.num-item { flex:1 1 0; min-width:120px; text-align:center; display:flex; flex-direction:column; gap:.3rem; }
.num-val { font-family:var(--F-title); font-style:italic; font-size:clamp(1.8rem,3.5vw,2.6rem); color:var(--green); line-height:1; }
.num-label { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--t3); font-weight:500; }
.num-sep { width:1px; align-self:stretch; min-height:42px; background:var(--bd); }
@media(max-width:700px){ .num-sep{ display:none } .num-item{ flex-basis:40% } }
 
/* ---- EXPERIENCE split-screen (homepage) ---- */
.exp-split { display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch; }
.exp-text {
  padding:clamp(48px,6vw,84px) clamp(28px,4vw,64px);
  display:flex; flex-direction:column; justify-content:center; background:var(--cream);
}
[data-theme=dark] .exp-text { background:var(--cream-dk); }
.exp-visual { position:relative; min-height:480px; }
@media(max-width:900px){ .exp-split{ grid-template-columns:1fr } .exp-visual{ min-height:340px } }
.exp-feats { margin-top:2rem; display:flex; flex-direction:column; gap:1.1rem; }
.exp-feat strong { display:block; font-family:var(--F-title); font-style:italic; font-weight:400; font-size:1.02rem; color:var(--t1); margin-bottom:2px; }
.exp-feat p { font-size:.9rem; color:var(--t2); line-height:1.7; font-weight:300; }
.exp-formats { margin-top:2.2rem; }
.format-tags { display:flex; gap:.6rem; flex-wrap:wrap; margin:.7rem 0; }
.format-tag { font-size:.72rem; letter-spacing:.04em; padding:7px 14px; border-radius:20px; background:rgba(61,122,58,.08); color:var(--green); border:1px solid rgba(61,122,58,.25); font-weight:500; }
.format-tag.gold { background:rgba(216,163,80,.12); color:#9a6f1f; border-color:rgba(216,163,80,.45); }
.format-note { font-size:.85rem; color:var(--t2); line-height:1.7; font-weight:300; }
.exp-actions { display:flex; gap:1rem; flex-wrap:wrap; margin-top:2rem; align-items:center; }
 
/* Experience carousel */
.exp-slides { position:absolute; inset:0; }
.exp-slide { position:absolute; inset:0; opacity:0; transition:opacity .6s ease; }
.exp-slide.active { opacity:1; }
.exp-slide img { width:100%; height:100%; object-fit:cover; }
.exp-dots { position:absolute; left:0; right:0; bottom:18px; display:flex; gap:8px; justify-content:center; z-index:2; }
.e-dot { width:9px; height:9px; padding:0; border-radius:50%; border:none; background:rgba(255,255,255,.55); cursor:pointer; transition:all var(--T); }
.e-dot.active { background:#fff; width:24px; border-radius:5px; }
 
/* ---- 3 FORMATS ("three doors") ---- */
.formats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:2.5rem; }
@media(max-width:860px){ .formats-grid{ grid-template-columns:1fr } }
.format-card {
  background:var(--white); border:1px solid var(--bd); border-radius:var(--rl);
  padding:2rem 1.6rem; box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:.6rem;
  transition:transform var(--T),box-shadow var(--T);
}
.format-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.format-icon { font-size:1.8rem; }
.format-card h3 { font-family:var(--F-title); font-style:italic; font-weight:400; font-size:1.35rem; color:var(--t1); }
.format-card p { font-size:.9rem; color:var(--t2); line-height:1.7; font-weight:300; flex-grow:1; }
.format-card-gold { border-color:rgba(216,163,80,.4); }
.format-card-brick { border-color:rgba(181,100,58,.4); }
.format-contact-block { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:.75rem; margin-top:auto; padding-top:.4rem; }
.format-contact-btn {
  display:inline-flex; align-items:center; gap:.5rem; align-self:flex-start;
  background:#25D366; color:#0B2016; padding:10px 18px; border-radius:var(--r);
  font-size:.8rem; font-weight:500; letter-spacing:.04em;
  transition:background var(--T),transform .15s;
}
.format-contact-btn:hover { background:#1EBE5A; transform:translateY(-2px); }
.format-contact-btn-brick { background:var(--brick); color:#fff; }
.format-contact-btn-brick:hover { background:#8f4a28; }
.format-contact-link { font-size:.8rem; color:var(--t2); }
.format-contact-link:hover { color:var(--green); }
 
/* ---- TEAM (text cards) ---- */
.team-text-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; margin-top:2.5rem; }
@media(max-width:760px){ .team-text-grid{ grid-template-columns:1fr } }
.team-text-card {
  background:var(--white); border:1px solid var(--bd); border-radius:var(--rl);
  padding:2rem; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:.6rem;
}
.team-role { font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brick); font-weight:600; }
.team-name { font-family:var(--F-title); font-style:italic; font-weight:400; font-size:1.5rem; color:var(--t1); }
.team-text-card blockquote {
  font-size:.95rem; color:var(--t2); line-height:1.8; font-weight:300; font-style:italic;
  border-left:2px solid var(--gold); padding-left:1rem; margin:.4rem 0 .8rem;
}
 
/* ---- REVIEWS ---- */
.tripadvisor-embed { margin-top:1.5rem; }
 
/* ---- INSTAGRAM TEASER ---- */
.ig-teaser-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3rem); align-items:center; }
@media(max-width:820px){ .ig-teaser-inner{ grid-template-columns:1fr } }
.ig-teaser-text { display:flex; flex-direction:column; gap:.4rem; align-items:flex-start; }
.ig-teaser-visual { aspect-ratio:4/5; border-radius:var(--rl); overflow:hidden; box-shadow:var(--shadow-lg); }
.ig-teaser-visual img { width:100%; height:100%; object-fit:cover; }
 
/* ---- DISHES SLIDER ---- */
.sec-dishes .sec-sub { text-align:center; margin-left:auto; margin-right:auto; }
.dishes-slider-wrap { position:relative; margin-top:2.5rem; }
.dishes-track {
  display:flex; gap:1rem; overflow-x:auto; scroll-behavior:smooth;
  scroll-snap-type:x mandatory; padding:.5rem .2rem 1rem;
  scrollbar-width:none; -ms-overflow-style:none;
}
.dishes-track::-webkit-scrollbar { display:none; }
.dish-slide {
  flex:0 0 auto; width:clamp(220px,28vw,300px); aspect-ratio:4/5;
  border-radius:var(--rl); overflow:hidden; scroll-snap-align:start; box-shadow:var(--shadow);
}
.dish-slide img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.dish-slide:hover img { transform:scale(1.05); }
.dishes-arr {
  position:absolute; top:42%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%; border:none;
  background:var(--white); box-shadow:var(--shadow); color:var(--t1);
  font-size:1.5rem; line-height:1; display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:3; transition:all var(--T);
}
.dishes-arr:hover { background:var(--green); color:#fff; }
.dishes-arr-l { left:-6px; }
.dishes-arr-r { right:-6px; }
.dishes-dots { display:flex; gap:7px; justify-content:center; margin-top:1rem; }
.dishes-dots button { width:8px; height:8px; padding:0; border-radius:50%; border:none; background:var(--bd-h); cursor:pointer; transition:all var(--T); }
.dishes-dots button.active { background:var(--green); width:22px; border-radius:4px; }
@media(max-width:700px){ .dishes-arr{ display:none } }
 
/* ---- CORPORATE TESTIMONIALS (also used on Team Building page) ---- */
.corp-testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:2.5rem; }
@media(max-width:860px){ .corp-testi-grid{ grid-template-columns:1fr } }
.corp-testi-card {
  background:var(--white); border:1px solid var(--bd); border-radius:var(--rl);
  padding:1.8rem; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:.7rem;
}
.corp-testi-stars { color:var(--gold); letter-spacing:2px; }
.corp-testi-text { font-size:.92rem; color:var(--t2); line-height:1.75; font-weight:300; font-style:italic; flex-grow:1; }
.corp-testi-author { display:flex; flex-direction:column; }
.corp-author-name { font-weight:600; color:var(--t1); font-size:.9rem; }
.corp-author-co { font-size:.78rem; color:var(--t3); }
.corp-testi-ph { align-items:center; justify-content:center; text-align:center; border-style:dashed; background:transparent; box-shadow:none; }
.corp-testi-ph-label { font-family:var(--F-title); font-style:italic; color:var(--t3); font-size:1.05rem; }
.corp-testi-ph-sub { font-size:.82rem; color:var(--t3); font-weight:300; }
 
/* ---- CORPORATE FINAL CTA ---- */
.sec-corp-cta { background:var(--bark); color:#F0E8D8; }
.sec-corp-cta .sec-title { color:#F5EFE6; }
.sec-corp-cta .sec-sub { color:rgba(240,232,216,.7); margin:0 auto 1.6rem; }
.corp-cta-btns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:1.5rem; }
.corp-cta-note { margin-top:1.2rem; font-size:.85rem; color:rgba(240,232,216,.6); letter-spacing:.04em; }
 
/* ---- BOOKING — missing sub-parts ---- */
.booking-cal { background:var(--white); border:1px solid var(--bd); border-radius:var(--rl); padding:1.4rem; box-shadow:var(--shadow); }
.booking-field { margin-bottom:1.1rem; }
.field-label { display:block; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--t3); font-weight:600; margin-bottom:.5rem; }
.pax-ctrl { display:inline-flex; align-items:center; gap:1rem; }
.pax-num { font-family:var(--F-title); font-style:italic; font-size:1.4rem; color:var(--t1); min-width:2ch; text-align:center; }
.field-select { width:100%; padding:11px 14px; border:1px solid var(--bd-h); border-radius:var(--r); background:var(--white); color:var(--t1); font-family:var(--F-body); font-size:.9rem; }
.booking-note { background:var(--cream-dk); border-radius:var(--r); padding:.9rem 1rem; font-size:.82rem; color:var(--t2); line-height:1.6; margin:1.1rem 0; }
.total-label { font-size:.8rem; color:var(--t2); letter-spacing:.05em; }
.total-value { font-family:var(--F-title); font-style:italic; font-size:1.4rem; color:var(--green); }
.cal-month-label { font-family:var(--F-title); font-style:italic; font-size:1.1rem; color:var(--t1); }
 
/* =====================================================================
   EXPERIENCE PAGE (page-exp.php)
===================================================================== */
.page-exp .page-hero, .page-blog .page-hero {
  position:relative; min-height:60vh;
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:#fff; padding:calc(var(--nav-h) + 2rem) 1.5rem 2.5rem;
  background-size:cover; background-position:center;
}
.page-hero-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.4),rgba(0,0,0,.15) 60%); z-index:1; }
.page-hero-content { position:relative; z-index:2; max-width:740px; }
.page-hero-content .eyebrow { color:var(--gold-lt); }
.page-hero-content .eyebrow::before { background:var(--gold-lt); }
.page-hero-content h1 { font-family:var(--F-title); font-style:italic; font-weight:400; font-size:clamp(2.2rem,5vw,3.6rem); line-height:1.12; color:#fff; }
.tsteps { margin-top:2.5rem; display:flex; flex-direction:column; gap:1.6rem; max-width:760px; }
.tstep { display:flex; gap:1.2rem; align-items:flex-start; }
.tstep-num { font-family:var(--F-title); font-style:italic; font-size:1.6rem; color:var(--gold); line-height:1; flex-shrink:0; min-width:2.2rem; }
.tstep h4 { font-family:var(--F-title); font-style:italic; font-weight:400; font-size:1.15rem; color:var(--t1); margin-bottom:.2rem; }
.tstep p { font-size:.92rem; color:var(--t2); line-height:1.7; font-weight:300; }
/* ============================================================
   FIX — Bouton email CTA lisible sur fond sombre (bark)
   Section "Ready to plan your next event?" / corp-cta
   ============================================================ */
.corp-cta-btns .btn-cta-email{
  color:#fff;
  border-color:rgba(255,255,255,.55);
}
.corp-cta-btns .btn-cta-email:hover{
  background:#fff;
  color:var(--bark);
  border-color:#fff;
}

/* =====================================================================
   ABOUT US PAGE (page-about.php) — reconstruction mise en page
   Scopé sous .page-about pour n'impacter aucune autre page.
   ===================================================================== */

/* HERO — base .page-hero manquait (seul .page-exp .page-hero existait) */
.page-about .page-hero {
  position:relative; min-height:48vh;
  display:flex; align-items:center;
  padding:calc(var(--nav-h) + 2.4rem) clamp(20px,5vw,80px) 2.6rem;
  background:var(--green-dk); background-size:cover; background-position:center;
}

/* OUR STORY — deux colonnes (texte + image) */
.about-split {
  display:grid; grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,4vw,4rem); align-items:center;
}
@media(max-width:860px){ .about-split{ grid-template-columns:1fr } }
.about-img-ph {
  min-height:360px; border-radius:var(--rl);
  background:linear-gradient(135deg,var(--green-dk),var(--green));
  background-size:cover; background-position:center;
  box-shadow:var(--shadow);
}

/* Sous-titre de section (aucune base n'existait) */
.page-about .sec-sub {
  font-size:.97rem; color:var(--t2); line-height:1.82; font-weight:300;
  max-width:600px; margin-bottom:2.2rem;
}

/* THE VENUE — grille 2x2 de cartes */
.venue-grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1.4rem; margin-top:2.5rem;
}
@media(max-width:760px){ .venue-grid{ grid-template-columns:1fr } }
.venue-feat {
  background:var(--white); border:1px solid var(--bd); border-radius:var(--rl);
  padding:1.8rem; box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:.55rem;
  transition:transform var(--T),box-shadow var(--T);
}
.venue-feat:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.venue-icon { font-size:1.8rem; line-height:1; }
.venue-feat h4 {
  font-family:var(--F-title); font-style:italic; font-weight:400;
  font-size:1.3rem; color:var(--t1);
}
.venue-feat p { font-size:.9rem; color:var(--t2); line-height:1.7; font-weight:300; }

/* THE TEAM — encart photo de groupe */
.team-group-encart { margin-top:2.5rem; }
.team-group-photo {
  aspect-ratio:16/7; min-height:280px; border-radius:var(--rl);
  background:linear-gradient(135deg,var(--bark),var(--brick));
  background-size:cover; background-position:center;
  box-shadow:var(--shadow-lg);
}

/* THE TEAM — cartes texte coachs */
.coach-text-grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1.4rem; margin-top:2.5rem;
}
@media(max-width:760px){ .coach-text-grid{ grid-template-columns:1fr } }
.coach-text-card {
  background:var(--white); border:1px solid var(--bd); border-radius:var(--rl);
  padding:2rem; box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:.55rem;
}
.coach-text-card h3 {
  font-family:var(--F-title); font-style:italic; font-weight:400;
  font-size:1.5rem; color:var(--t1);
}
.coach-text-card blockquote {
  font-size:.95rem; color:var(--t2); line-height:1.8; font-weight:300; font-style:italic;
  border-left:2px solid var(--gold); padding-left:1rem; margin:.4rem 0 .8rem;
}
.coach-text-card p { font-size:.9rem; color:var(--t2); line-height:1.7; font-weight:300; }

/* REVIEWS — fond doux pour le rythme visuel */
.page-about .sec-reviews { background:var(--cream-dk); }

/* ============================================================
   FOOTER — carte de localisation (Google Maps embed)
   ============================================================ */
.footer-map h5 {
  font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.9rem;
}
.footer-map iframe {
  width:100%; aspect-ratio:1/1; height:auto; border:0; display:block;
  border-radius:var(--rl); filter:grayscale(.15);
}

/* ---- DISH RING — 3D carousel ---- */
.sec-dishring { overflow:hidden; }
.dish-ring-wrap {
  position:relative; width:100%; max-width:1100px; margin:2.5rem auto 0;
  height:min(56vh,440px); perspective:1400px;
  touch-action:pan-y; user-select:none; cursor:grab;
}
.dish-ring-wrap.dragging { cursor:grabbing; }
.dish-ring { position:absolute; inset:0; transform-style:preserve-3d; will-change:transform; }
.dr-card {
  position:absolute; left:50%; top:50%; width:var(--cw,260px);
  margin-left:calc(var(--cw,260px) / -2); margin-top:calc(var(--cw,260px) * -0.60);
  transform-style:preserve-3d; text-align:center;
  opacity:.42; transition:opacity .45s var(--E,ease);
}
.dr-card.is-front { opacity:1; }
.dr-plate {
  position:relative; width:100%; aspect-ratio:1; border-radius:50%; overflow:hidden;
  background:radial-gradient(circle at 34% 28%, #fff 0%, #F0E7DA 38%, #DFD1BE 66%, #C7B49C 100%);
  box-shadow:0 26px 46px rgba(58,42,26,.20), inset 0 0 0 1px rgba(255,255,255,.55);
}
.dr-plate img { width:100%; height:100%; object-fit:cover; display:block; }
.dr-card figcaption { margin-top:1rem; opacity:0; transition:opacity .4s ease; }
.dr-card.is-front figcaption { opacity:1; }
.dr-name { font-family:var(--serif,'Playfair Display',Georgia,serif); font-style:italic; font-size:1.25rem; color:var(--t1); }
.dr-desc { font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--t2); margin-top:.3rem; }
.dish-ring-dots { display:flex; gap:7px; justify-content:center; margin-top:1.2rem; }
.dish-ring-dots button {
  width:8px; height:8px; padding:0; border-radius:50%; border:none;
  background:var(--bd-h); cursor:pointer; transition:all var(--T,.3s);
}
.dish-ring-dots button.active { background:var(--green); width:22px; border-radius:4px; }
.dish-ring-hint {
  display:block; text-align:center; margin-top:.9rem;
  font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--t3,#A08F7D);
}
@media(max-width:640px){
  .dish-ring-wrap { height:min(50vh,360px); }
  .dr-name { font-size:1.05rem; }
}
@media(prefers-reduced-motion:reduce){
  .dr-card, .dr-card figcaption { transition:none; }
}
