:root{
  --cream:#F4EDE6;
  --cream-soft:#FBF8F3;
  --ink:#2B2418;
  --ink-soft:#877459;
  --terracotta:#B77E61;
  --terracotta-deep:#9C6449;
  --sage:#464C37;
  --sage-pale:#C8D0C2;
  --line: rgba(43,36,24,0.10);
  --gold:#E3A23C;
  --grey-card:#FFFFFF;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink-soft);
  font-family:'Work Sans', sans-serif;
  font-weight:300;
  font-size:15.5px;
  line-height:1.7;
}
h1,h2,h3,h4{ font-family:'Fraunces', serif; font-weight:400; margin:0; color:var(--ink); }
.num-serif{ font-variant-numeric: oldstyle-nums; }
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 48px;}
em{ color:var(--terracotta); font-style:italic; font-weight:400; }

/* header */
header{ position:sticky; top:0; z-index:30; background:rgba(244,237,230,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; }
.logo{ font-family:'Fraunces', serif; font-size:21px; font-weight:400; color:var(--sage); letter-spacing:.01em; }
.nav-links{ display:flex; align-items:center; gap:32px; font-size:12.5px; letter-spacing:.05em; color:var(--ink); font-weight:400; }
.nav-links a{ padding:4px 0; border-bottom:1px solid transparent; transition:.2s; }
.nav-links a.active{ color:var(--terracotta-deep); border-color:var(--terracotta); }
.nav-links a:hover{ color:var(--terracotta-deep); border-color:var(--terracotta); }
.nav-links a.nav-cta{ background:var(--terracotta); color:#fff !important; padding:10px 22px; letter-spacing:.06em; margin-left:14px; }
.nav-cta:hover{ background:var(--terracotta-deep); }
.nav-social{ display:flex; gap:18px; margin-left:24px; }
.nav-social svg{ width:19px; height:19px; color:var(--ink); opacity:.65; }
.nav-social a:hover svg{ opacity:1; color:var(--terracotta-deep); }

/* hero */
.hero{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.hero-text{ padding:64px 56px 64px 0; padding-left:max(48px, calc((100vw - 1180px) / 2 + 48px)); margin-left:0; }
.eyebrow{ font-size:11.5px; letter-spacing:.16em; color:var(--ink-soft); margin-bottom:28px; text-transform:uppercase; }
.hero h1{ font-size:37px; line-height:1.32; font-weight:400; }
.hero-text p{ margin:30px 0 36px; font-size:15px; max-width:42ch; line-height:1.75; }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; }
.btn{ display:inline-block; padding:15px 28px; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; }
.btn-solid{ background:var(--terracotta); color:#fff; }
.btn-solid:hover{ background:var(--terracotta-deep); }
.btn-line{ color:var(--ink); border:1px solid var(--line); }
.btn-line:hover{ border-color:var(--ink); }
.hero-photo{ height:100%; }
.hero-photo img{ width:100%; height:100%; object-fit:cover; }

/* generic sections */
section{ padding:120px 0; }
.section-label{ font-size:11.5px; letter-spacing:.16em; color:var(--terracotta); margin-bottom:20px; text-transform:uppercase; font-weight:400; }
.section-head{ max-width:600px; }
.section-head.center{ margin:0 auto; text-align:center; }
.section-head h2{ font-size:27px; line-height:1.4; font-weight:400; }
.section-head p{ margin-top:20px; font-size:14.5px; line-height:1.75; }

/* accueil : cartes de bifurcation pro / particuliers */
.split-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:80px; }
.split-card{ padding:76px 72px; display:block; }
.split-card.light{ background:var(--cream); }
.split-card.dark{ background:var(--ink); }
.split-card.dark, .split-card.dark h3{ color:var(--cream-soft); }
.split-card.dark p{ color:rgba(251,248,243,0.62); }
.split-index{ font-family:'Fraunces', serif; font-size:40px; font-weight:300; margin-bottom:20px; display:block; }
.split-card.light .split-index{ color:var(--sage); }
.split-card.dark .split-index{ color:var(--terracotta); }
.split-card h3{ font-size:22px; font-weight:300; margin-bottom:18px; }
.split-card p{ font-size:14px; margin-bottom:32px; max-width:40ch; line-height:1.75; }
.split-card .go{ font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; margin-top:26px; display:block; }
.split-card.light .go{ color:var(--terracotta-deep); }
.split-card.dark .go{ color:var(--terracotta); }
.tag-list{ display:flex; flex-wrap:wrap; gap:10px; }
.tag-list span{ font-size:10.5px; letter-spacing:.05em; padding:10px 16px; text-transform:uppercase; font-weight:400; border-radius:3px; }
.split-card.light .tag-list span{ background:var(--sage-pale); color:var(--ink); }
.split-card.dark .tag-list span{ background:var(--terracotta); color:#fff; }

/* espaces */
.espaces-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:64px; }
.espace-card{ background:var(--cream-soft); padding:38px; }
.espace-card h4{ font-size:18px; font-weight:400; margin-bottom:18px; }
.espace-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.espace-row p{ font-size:13.5px; line-height:1.7; max-width:24ch; }
.espace-row .num{ font-family:'Fraunces', serif; font-size:38px; color:var(--terracotta); font-weight:400; flex-shrink:0; }
.capacity-row{ display:grid; grid-template-columns:repeat(4,1fr); background:var(--ink); margin-top:26px; }
.capacity-cell{ padding:54px 20px; text-align:center; }
.capacity-cell .n{ font-family:'Fraunces', serif; font-size:30px; color:var(--terracotta); font-weight:400; }
.capacity-cell .tag{ display:block; font-size:11px; letter-spacing:.08em; color:rgba(251,248,243,.6); margin:10px 0 6px; text-transform:lowercase; }
.capacity-cell .l{ font-family:'Fraunces', serif; font-size:16px; color:var(--cream-soft); }
.capacity-cell .l em{ font-style:italic; color:inherit; }

/* formules */
.formules{ background:var(--cream-soft); }
.formules-row{ display:grid; grid-template-columns:repeat(4,1fr); margin-top:76px; }
.formules-row.cols-3{ grid-template-columns:repeat(3,1fr); }
.formule-item{ text-align:center; padding:0 24px; border-left:1px solid var(--line); }
.formule-item:first-child{ border-left:none; }
.formule-icon{ width:26px; height:26px; margin:0 auto 22px; color:var(--terracotta); }
.formule-item h4{ font-size:17px; font-weight:400; margin-bottom:12px; }
.formule-item p{ font-size:12.5px; line-height:1.7; }

/* avis */
.avis-head{ text-align:center; }
.avis-divider{ display:flex; align-items:center; justify-content:center; gap:10px; margin-top:24px; }
.avis-divider span{ width:34px; height:1px; background:var(--line); }
.avis-divider i{ width:4px; height:4px; border-radius:50%; background:var(--terracotta); }
.avis-carousel{ margin-top:64px; }
.avis-track{ display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -ms-overflow-style:none; scrollbar-width:none; }
.avis-track::-webkit-scrollbar{ display:none; }
.review-card{ background:var(--grey-card); border-radius:5px; padding:24px; flex:0 0 calc((100% - 40px)/3); scroll-snap-align:start; }
.review-top{ display:flex; align-items:center; gap:10px; position:relative; }
.avatar{ width:34px; height:34px; border-radius:50%; background:var(--sage); color:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:500; position:relative; flex-shrink:0; overflow:hidden; }
.avatar img{ width:100%; height:100%; object-fit:cover; }
.avatar::after{ content:""; position:absolute; bottom:-1px; right:-1px; width:11px; height:11px; border-radius:50%; background:#4285F4; border:1.5px solid var(--grey-card); }
.review-name{ font-size:13px; color:var(--ink); font-weight:500; }
.review-date{ font-size:11px; color:var(--ink-soft); margin-top:1px; }
.g-badge{ margin-left:auto; width:16px; height:16px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; color:#9AA0A6; }
.review-stars{ color:var(--gold); font-size:11px; margin:12px 0; letter-spacing:1px; }
.review-text{ font-size:13px; line-height:1.7; color:var(--ink-soft); }
.review-more, .review-less{ background:none; border:none; padding:0; margin-left:2px; font:inherit; font-weight:500; color:var(--terracotta-deep); cursor:pointer; text-decoration:underline; }
.review-more:hover, .review-less:hover{ color:var(--terracotta); }
.avis-controls{ display:flex; align-items:center; justify-content:center; gap:22px; margin-top:36px; }
.avis-arrow{ width:30px; height:30px; border-radius:50%; border:1px solid var(--line); background:none; color:var(--ink); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:15px; transition:.2s; }
.avis-arrow:hover{ border-color:var(--terracotta); color:var(--terracotta); }
.avis-dots{ display:flex; gap:8px; }
.avis-dots button{ width:5px; height:5px; border-radius:50%; background:var(--line); border:none; padding:0; cursor:pointer; }
.avis-dots button.active{ background:var(--terracotta); }

/* bannière photo pleine largeur (pages secondaires) */
.page-banner{ position:relative; min-height:520px; display:flex; align-items:center; background-size:cover; background-position:center; }
.page-banner::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(24,19,12,.32), rgba(24,19,12,.78)); }
.page-banner .wrap{ position:relative; z-index:1; }
.page-banner .eyebrow{ color:rgba(255,255,255,.8); }
.page-banner h1{ color:#fff; }
.page-banner p{ color:rgba(251,248,243,.82); max-width:46ch; margin:26px 0 34px; font-size:15px; line-height:1.75; }
@media (max-width:900px){ .page-banner{ min-height:420px; } }

/* galerie d'activités (page professionnels) */
.gallery-filter{ display:flex; flex-wrap:wrap; gap:10px; margin:40px 0 8px; }
.gallery-filter button{ background:none; border:1px solid var(--line); padding:9px 18px; font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink); cursor:pointer; border-radius:2px; transition:.2s; font-family:inherit; }
.gallery-filter button:hover{ border-color:var(--terracotta); color:var(--terracotta-deep); }
.gallery-filter button.active{ background:var(--ink); border-color:var(--ink); color:#fff; }
.space-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:56px; }
.space-item{ position:relative; overflow:hidden; border-radius:2px; }
.space-item img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; transition:transform .6s ease; }
.space-item:hover img{ transform:scale(1.05); }
.space-caption{ position:absolute; left:0; right:0; bottom:0; padding:20px 18px 16px; background:linear-gradient(to top, rgba(24,19,12,.82), rgba(24,19,12,0) 70%); display:flex; align-items:flex-end; gap:10px; }
.space-num{ font-size:15px; color:var(--terracotta); line-height:1; }
.space-item h4{ margin:0; font-size:15.5px; font-weight:400; color:#fff; }
@media (max-width:900px){ .space-gallery{ grid-template-columns:repeat(2,1fr); } }

/* decouvrir : liens tourisme */
.tourism-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:64px; }
.tourism-card{ background:var(--cream-soft); padding:36px; }
.tourism-card h4{ font-size:18px; font-weight:400; margin-bottom:12px; }
.tourism-card p{ font-size:13.5px; line-height:1.75; margin-bottom:18px; }
.tourism-card a.ext{ font-size:12px; letter-spacing:.05em; color:var(--terracotta-deep); text-transform:uppercase; }
.tourism-card a.ext:hover{ color:var(--terracotta); }
.tourism-card.has-img{ padding:0 0 30px; overflow:hidden; }
.tourism-card.has-img > *:not(.tourism-img){ margin-left:30px; margin-right:30px; }
.tourism-img{ width:100%; height:170px; object-fit:cover; display:block; margin-bottom:24px; transition:transform .6s ease; }
.tourism-card.has-img:hover .tourism-img{ transform:scale(1.04); }

/* galerie */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px; }
.gallery-note{ background:var(--cream-soft); border:1px dashed var(--line); padding:40px; text-align:center; font-size:13.5px; color:var(--ink-soft); }

/* calendrier */
.calendar-wrap{ margin-top:56px; border:1px solid var(--line); background:var(--cream-soft); padding:12px; }
.calendar-wrap iframe{ width:100%; height:600px; border:none; display:block; }

/* contact */
.contact{ background:var(--ink); color:rgba(251,248,243,.7); }
.contact .section-label{ color:var(--terracotta); }
.contact h2{ color:var(--cream-soft); }
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:80px; align-items:start; }
.contact-list{ display:flex; flex-direction:column; gap:24px; margin-top:44px; }
.contact-item{ display:flex; align-items:center; gap:16px; font-size:14px; color:var(--cream-soft); }
.contact-item svg{ width:17px; height:17px; color:var(--terracotta); flex-shrink:0; }

footer{ padding:36px 0; text-align:center; font-size:12px; color:var(--ink-soft); background:var(--cream); }
.footer-links{ margin-bottom:14px; display:flex; gap:20px; justify-content:center; font-size:11.5px; letter-spacing:.04em; }
.footer-links a:hover{ color:var(--terracotta-deep); }

@media (max-width: 900px){
  .wrap{ padding:0 28px; }
  .nav-links{ display:none; }
  .hero{ grid-template-columns:1fr; }
  .hero-text{ margin:0; padding:56px 0; order:2; }
  .hero-photo{ order:1; }
  .hero h1{ font-size:30px; }
  section{ padding:80px 0; }
  .split-grid{ grid-template-columns:1fr; }
  .split-card{ padding:48px 32px; }
  .espaces-grid{ grid-template-columns:1fr; }
  .espace-row{ flex-wrap:wrap; }
  .capacity-row{ grid-template-columns:repeat(2,1fr); }
  .formules-row, .formules-row.cols-3{ grid-template-columns:repeat(2,1fr); gap:36px 0; }
  .formule-item:nth-child(odd){ border-left:none; }
  .tourism-grid{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
}

/* ===== Mobile : menu burger & ajustements responsive ===== */
.nav-toggle{ display:none; background:none; border:none; padding:10px 6px; margin-left:10px; cursor:pointer; color:var(--ink); }
.nav-toggle span{ display:block; width:22px; height:1.5px; background:currentColor; margin:5px 0; transition:transform .25s, opacity .25s; }
@media (max-width:900px){
  .nav-toggle{ display:block; }
  .nav-social{ margin-left:auto; gap:6px; }
  .nav-social a{ padding:8px; }
  header.menu-open .nav-links{ display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:var(--cream); border-bottom:1px solid var(--line); padding:4px 28px 24px; box-shadow:0 12px 24px rgba(43,36,24,.08); }
  header.menu-open .nav-links a{ padding:15px 0; font-size:14px; border-bottom:1px solid var(--line); }
  header.menu-open .nav-links a.active{ border-color:var(--line); }
  header.menu-open .nav-links a.nav-cta{ margin:20px 0 0; text-align:center; border:none; padding:14px 22px; }
  header.menu-open .nav-toggle span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  header.menu-open .nav-toggle span:nth-child(2){ opacity:0; }
  header.menu-open .nav-toggle span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

  .hero-text{ padding:48px 28px 56px; }
  .contact-grid{ gap:8px; }
  .footer-links{ flex-wrap:wrap; gap:6px 18px; padding:0 20px; }
  .footer-links a{ padding:6px 0; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .space-gallery{ gap:12px; }
  .space-caption{ padding:14px 12px 12px; gap:6px; }
  .space-item h4{ font-size:14px; line-height:1.3; }
  .avis-arrow{ width:40px; height:40px; }
  .tourism-card a.ext{ display:inline-block; padding:8px 0; }
}
@media (max-width:600px){
  .review-card{ flex:0 0 86%; }
}

/* ===== Sélecteur de langue (menu déroulant) ===== */
.lang-menu{ position:relative; margin-left:4px; }
.lang-btn{ display:flex; align-items:center; gap:6px; background:none; border:none; padding:4px 0; font:inherit; font-size:12.5px; letter-spacing:.05em; color:var(--ink); cursor:pointer; }
.lang-btn svg{ width:11px; height:11px; transition:transform .2s; }
.lang-btn:hover{ color:var(--terracotta-deep); }
.lang-list{ display:none; position:absolute; top:calc(100% + 12px); right:0; min-width:150px; background:var(--cream-soft); border:1px solid var(--line); box-shadow:0 10px 24px rgba(43,36,24,.10); padding:6px 0; z-index:40; }
.lang-menu.open .lang-list{ display:block; }
.lang-menu.open .lang-btn svg{ transform:rotate(180deg); }
.nav-links .lang-list a{ display:block; padding:10px 18px; border:none; font-size:12.5px; color:var(--ink); }
.nav-links .lang-list a:hover{ background:var(--cream); color:var(--terracotta-deep); }
.nav-links .lang-list a.current{ color:var(--terracotta-deep); }
.nav-links .lang-list a.current::after{ content:" ✓"; }
@media (max-width:1180px) and (min-width:901px){
  .wrap.nav{ padding:0 28px; }
  .nav-links{ gap:18px; font-size:12px; }
  .nav-links a.nav-cta{ padding:9px 16px; margin-left:6px; }
  .nav-social{ display:none; }
}
@media (max-width:900px){
  header.menu-open .lang-menu{ margin:18px 0 0; }
  header.menu-open .lang-btn{ display:none; }
  header.menu-open .lang-list{ display:grid; grid-template-columns:1fr 1fr; position:static; gap:8px; background:none; border:none; box-shadow:none; padding:0; min-width:0; }
  header.menu-open .nav-links .lang-list a{ padding:10px 12px; text-align:center; border:1px solid var(--line); font-size:13px; }
  header.menu-open .nav-links .lang-list a.current{ border-color:var(--terracotta); }
  header.menu-open .nav-links .lang-list a.current::after{ content:""; }
}

/* ===== Mobile : drapeaux dans le sélecteur de langue ===== */
@media (max-width:900px){
  header.menu-open .lang-list{ display:flex; justify-content:center; gap:14px; }
  header.menu-open .nav-links .lang-list a{ font-size:0; line-height:0; padding:6px; border:1px solid transparent; border-radius:3px; }
  header.menu-open .nav-links .lang-list a.current{ border-color:var(--terracotta); }
  header.menu-open .nav-links .lang-list a::before{ content:""; display:block; width:30px; height:20px; background-size:cover; background-position:center; box-shadow:0 0 0 1px rgba(43,36,24,.12); }
  header.menu-open .nav-links .lang-list a[hreflang="fr"]::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Cpath fill='%23002654' d='M0 0h1v2H0z'/%3E%3Cpath fill='%23fff' d='M1 0h1v2H1z'/%3E%3Cpath fill='%23CE1126' d='M2 0h1v2H2z'/%3E%3C/svg%3E"); }
  header.menu-open .nav-links .lang-list a[hreflang="en"]::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'%3E%3CclipPath id='t'%3E%3Cpath d='M30 15h30v15zv15H0zH0V0zV0h30z'/%3E%3C/clipPath%3E%3Cpath fill='%23012169' d='M0 0h60v30H0z'/%3E%3Cpath stroke='%23fff' stroke-width='6' d='M0 0l60 30M60 0L0 30'/%3E%3Cpath stroke='%23C8102E' stroke-width='4' clip-path='url%28%23t%29' d='M0 0l60 30M60 0L0 30'/%3E%3Cpath stroke='%23fff' stroke-width='10' d='M30 0v30M0 15h60'/%3E%3Cpath stroke='%23C8102E' stroke-width='6' d='M30 0v30M0 15h60'/%3E%3C/svg%3E"); }
  header.menu-open .nav-links .lang-list a[hreflang="de"]::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 3'%3E%3Cpath d='M0 0h5v1H0z'/%3E%3Cpath fill='%23DD0000' d='M0 1h5v1H0z'/%3E%3Cpath fill='%23FFCE00' d='M0 2h5v1H0z'/%3E%3C/svg%3E"); }
  header.menu-open .nav-links .lang-list a[hreflang="nl"]::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 6'%3E%3Cpath fill='%23AE1C28' d='M0 0h9v2H0z'/%3E%3Cpath fill='%23fff' d='M0 2h9v2H0z'/%3E%3Cpath fill='%2321468B' d='M0 4h9v2H0z'/%3E%3C/svg%3E"); }
}
