
:root {
  --pierre: #FFFFFF; --lin: #F3FAF5; --lin-2: #DCF1E3; --carte: #FFFFFF; --blanc: #FFFFFF;
  --olivier: #008749; --olivier-fonce: #006B3A; --sauge: #4EB625; --brun: #B4654A; --taupe: #9AD4F2;
  --or: #4AD504; --or-encre: #0A76B4; --or-clair: #8BE87A; --or-pale: #B9F5A0;
  --sarcelle: #18A5E6; --sarcelle-fonce: #006B3A; --volet: #9AD4F2; --terre: #B4654A; --ambre: #A6EB5C;
  --encre: #10262B; --titre: #008749; --texte: #24383D; --doux: #55696E;
  --filet: rgba(0, 135, 73, .15); --filet-fort: rgba(0, 135, 73, .32);
  --voile: 6, 32, 38;   
  --serif: 'Cormorant Garamond', 'Cormorant', Garamond, Georgia, serif;
  --sans: 'Jost', 'Futura', 'Helvetica Neue', Arial, sans-serif;
  --main: 'Parisienne', 'Snell Roundhand', cursive;
  --gouttiere: max(16px, 4.4vw);
  --largeur: 1280px;
  --entete: 92px;
  --courbe: cubic-bezier(.22, .68, .12, 1);
  --lent: cubic-bezier(.45, .05, .2, 1);
  color-scheme: light;
  
  --vr-fond: var(--pierre); --vr-accent: var(--olivier); --vr-or: var(--or); --vr-encre: var(--encre);
}
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--entete) + 16px); background: var(--pierre); }
body { margin: 0; background: var(--pierre); color: var(--texte); font: 300 17px/1.7 var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
img, video, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; text-decoration-color: var(--filet-fort); }
a:hover { text-decoration-color: currentColor; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; color: var(--titre); }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; list-style: none; }
strong, b { font-weight: 500; }
[hidden] { display: none !important; }
:focus-visible { outline: 1px solid var(--or-encre); outline-offset: 4px; }
::selection { background: var(--or-pale); color: var(--encre); }
main { display: block; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.evitement { position: fixed; left: 16px; top: 0; z-index: 200; background: var(--olivier); color: #fff; padding: 10px 16px; transform: translateY(-150%); transition: transform .2s; }
.evitement:focus { transform: translateY(12px); }
.titre-1 { font: 400 clamp(46px, 6.8vw, 108px)/1 var(--serif); letter-spacing: -.012em; color: var(--titre); text-wrap: balance; }
.titre-2 { font: 400 clamp(38px, 4.6vw, 72px)/1.04 var(--serif); letter-spacing: -.01em; text-wrap: balance; }
.titre-3 { font: 500 clamp(27px, 2.4vw, 36px)/1.12 var(--serif); }
.titre-1 em, .titre-2 em, .titre-3 em { font-style: italic; color: var(--or-encre); }
.chapeau { font: 300 clamp(17px, 1.4vw, 19.5px)/1.7 var(--sans); color: var(--texte); max-width: 60ch; }
.texte-lu { max-width: 62ch; }
.texte-lu--grand { font: 400 clamp(23px, 2.1vw, 30px)/1.45 var(--serif); color: var(--titre); max-width: 38ch; }
.note-fine { font-size: 14px; color: var(--doux); }
.surtitre { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; font: 500 11.5px/1.3 var(--sans); letter-spacing: .32em; text-transform: uppercase; color: var(--or-encre); }
.surtitre::before { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; flex: none; }
.surtitre .num { font: italic 500 18px/1 var(--serif); letter-spacing: .04em; text-transform: none; color: var(--or); margin-right: -2px; }
.surtitre--centre { justify-content: center; }
.surtitre--centre::after { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; }
.ico { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.picto { width: 24px; height: 24px; flex: none; }
.enveloppe { width: 100%; max-width: calc(var(--largeur) + 2 * var(--gouttiere)); margin-inline: auto; padding-inline: var(--gouttiere); }
.enveloppe--large { max-width: calc(1500px + 2 * var(--gouttiere)); }
.enveloppe--moyenne { max-width: calc(980px + 2 * var(--gouttiere)); }
.enveloppe--etroite { max-width: calc(780px + 2 * var(--gouttiere)); }
.sec { padding-block: clamp(84px, 10vw, 156px); position: relative; }
.sec--serre { padding-block: clamp(44px, 6vw, 80px); }
.sec:not(.sec-clair):not(.sec-final) { background-image: radial-gradient(ellipse 70% 55% at 0% 0%, rgba(78, 182, 37, .08), transparent 70%), radial-gradient(ellipse 60% 50% at 100% 100%, rgba(24, 165, 230, .04), transparent 70%); }
.sec-clair { background: var(--lin); }
.sec-entete { margin-bottom: clamp(40px, 5vw, 70px); max-width: 880px; }
.sec-entete .titre-2 { margin-bottom: 22px; }
.sec-entete--centre { text-align: center; margin-inline: auto; }
.sec-entete--centre .surtitre { justify-content: center; }
.sec-entete--centre .surtitre::after { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; }
.sec-entete--centre .chapeau { margin-inline: auto; }
.sec-entete-ligne { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(30px, 4vw, 50px); }
.sec-entete-ligne .sec-entete { margin-bottom: 0; }
.sec-pied { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 30px; margin-top: 44px; }
.sec-pied--centre { justify-content: center; }
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 14px 30px; border: 1px solid transparent; border-radius: 0; cursor: pointer; overflow: hidden; isolation: isolate;
  font: 500 12.5px/1.1 var(--sans); letter-spacing: .22em; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: color .5s var(--courbe), background .5s var(--courbe), border-color .5s; }
.btn .ico { width: 17px; height: 17px; transition: transform .5s var(--courbe); }
.btn:hover .ico { transform: translateX(4px); }
.btn::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(160px circle at var(--mx, 50%) var(--my, 50%), rgba(214, 250, 196, .4), transparent 70%); opacity: 0; transition: opacity .5s var(--courbe); }
.btn:hover::after { opacity: 1; }
.btn--or { background: var(--olivier); color: #fff; border-color: var(--olivier); }
.btn--or:hover { background: var(--olivier-fonce); border-color: var(--olivier-fonce); }
.btn--ligne { border-color: var(--filet-fort); color: var(--titre); background: transparent; }
.btn--ligne:hover { border-color: var(--olivier); background: rgba(0, 135, 73, .06); }
.btn--verre { border-color: rgba(255, 255, 255, .45); color: #fff; background: rgba(var(--voile), .25); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.btn--petit { min-height: 42px; padding: 10px 20px; font-size: 11.5px; letter-spacing: .2em; }
.lien-fleche { display: inline-flex; align-items: center; gap: 12px; padding: 6px 0; background: none; border: 0; border-bottom: 1px solid var(--filet-fort); cursor: pointer; text-decoration: none;
  font: 500 12px/1.3 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--or-encre); transition: color .4s, border-color .4s, gap .4s var(--courbe); }
.lien-fleche:hover { color: var(--olivier); border-color: var(--olivier); gap: 16px; }
.lien-fleche .ico { width: 17px; height: 17px; }
.puce { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 18px; border: 1px solid var(--filet-fort); border-radius: 99px; background: transparent; cursor: pointer; text-decoration: none;
  font: 400 14.5px/1.2 var(--sans); color: var(--texte); white-space: nowrap; transition: all .35s var(--courbe); }
.puce:hover { border-color: var(--olivier); color: var(--olivier); }
.puce[aria-pressed="true"], .puce--or { background: var(--olivier); border-color: var(--olivier); color: #fff; }
.filtres { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; }
.logo { height: auto; }
.filet-orne { display: flex; align-items: center; gap: 22px; }
.filet-orne i { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--or) 40%, var(--or)); opacity: .55; }
.filet-orne i:last-child { background: linear-gradient(270deg, transparent, var(--or) 40%, var(--or)); }
.filet-orne .filet-oiseau { width: 30px; height: 30px; flex: none; color: var(--or); }
.courbe { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 3; display: block; width: 100%; max-width: none; height: clamp(18px, 3.6vw, 52px); color: var(--pierre); pointer-events: none; }
.courbe--pied { position: relative; bottom: auto; margin-bottom: -1px; margin-top: calc(-1 * clamp(18px, 3.6vw, 52px)); color: var(--lin); z-index: 2; }
main > :last-child:not(.sec-final) { padding-bottom: calc(clamp(60px, 7vw, 100px) + clamp(18px, 3.6vw, 52px)); }
.js .apparait { opacity: 0; transform: translateY(26px); filter: blur(4px); transition: opacity 1.2s var(--courbe) var(--d, 0ms), transform 1.2s var(--courbe) var(--d, 0ms), filter 1.2s var(--courbe) var(--d, 0ms); }
.js .apparait.vu { opacity: 1; transform: none; filter: none; }
.js .revele { clip-path: inset(10% 7% 10% 7%); transition: clip-path 1.6s var(--courbe); }
.js .revele img { transform: scale(1.1); transition: transform 2.2s var(--courbe); }
.js .revele.vu { clip-path: inset(0 0 0 0); }
.js .revele.vu img { transform: none; }
.entree { animation: entree 1.4s var(--courbe) both; }
.entree + .entree { animation-delay: .18s; }
.entree + .entree + .entree { animation-delay: .32s; }
@keyframes entree { from { opacity: 0; transform: translateY(22px); filter: blur(6px); } }
.entete { position: fixed; inset: 0 0 auto; z-index: 60; color: var(--titre); transition: background .6s var(--courbe), border-color .6s, box-shadow .6s; border-bottom: 1px solid transparent; background: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, 0)); }
.entete--solide { background: rgba(255, 255, 255, .93); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); border-bottom-color: var(--filet); box-shadow: 0 20px 50px -40px rgba(10, 36, 44, .5); }
.entete-in { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(16px, 2vw, 34px); height: var(--entete); padding-inline: var(--gouttiere); max-width: 1680px; margin-inline: auto; transition: height .5s var(--courbe); }
.entete--compact .entete-in { height: 66px; }
.entete-g, .entete-d { display: flex; align-items: center; gap: clamp(14px, 1.8vw, 26px); min-width: 0; }
.entete-d { justify-content: flex-end; }
.entete-menu { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; padding: 0; background: none; border: 0; cursor: pointer; color: inherit; font: 500 11.5px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; }
.burger { position: relative; width: 30px; height: 12px; }
.burger i { position: absolute; left: 0; height: 1px; background: currentColor; transition: transform .5s var(--courbe), width .5s var(--courbe); }
.burger i:first-child { top: 0; width: 30px; } .burger i:last-child { bottom: 0; width: 20px; }
.entete-menu:hover .burger i:last-child { width: 30px; }
.burger--x i:first-child { top: 50%; transform: rotate(45deg); }
.burger--x i:last-child { bottom: auto; top: 50%; width: 30px; transform: rotate(-45deg); }
.entete-logo { position: relative; display: block; }
.entete-logo .logo { transition: height .5s var(--courbe), opacity .5s; }
.logo--blanc { position: absolute; inset: 0; opacity: 0; }
.entete-nav { justify-self: center; min-width: 0; }
.entete-nav ul { display: flex; gap: clamp(14px, 1.6vw, 28px); }
.entete-nav a { position: relative; display: block; padding: 10px 0; text-decoration: none; white-space: nowrap; font: 500 11.5px/1 var(--sans); letter-spacing: .17em; text-transform: uppercase; color: var(--titre); }
.entete-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: var(--or); transform: scaleX(0); transform-origin: right; transition: transform .5s var(--courbe); }
.entete-nav a:hover::after, .entete-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.entete-nav a[aria-current="page"] { color: var(--or-encre); }
body:not(.p-legal) .entete:not(.entete--solide) { background: linear-gradient(180deg, rgba(var(--voile), .5), rgba(var(--voile), 0)); color: #fff; }
body:not(.p-legal) .entete:not(.entete--solide) :is(.entete-nav a, .entete-tel) { color: #fff; }
body:not(.p-legal) .entete:not(.entete--solide) .logo--blanc { opacity: 1; }
body:not(.p-legal) .entete:not(.entete--solide) .logo--couleur { opacity: 0; }
body:not(.p-legal) .entete:not(.entete--solide) .entete-resa { background: var(--or); border-color: var(--or); color: var(--encre); }
.menu { position: fixed; inset: 0; z-index: 90; background: var(--pierre); display: grid; grid-template-rows: auto 1fr auto; overflow-y: auto; overscroll-behavior: contain; animation: menu-ouvre .6s var(--courbe); }
@keyframes menu-ouvre { from { opacity: 0; } }
.menu-fond { position: fixed; inset: 0 0 0 48%; z-index: 0; pointer-events: none; }
.menu-fond img { width: 100%; height: 100%; object-fit: cover; transition: opacity .5s; }
.menu-fond::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--pierre) 0%, rgba(255, 255, 255, .5) 22%, rgba(255, 255, 255, 0) 50%); }
.menu-haut { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; height: var(--entete); padding-inline: var(--gouttiere); }
.menu-resa { justify-self: end; }
.menu-nav { position: relative; z-index: 1; padding: clamp(14px, 3vh, 40px) var(--gouttiere); align-self: center; }
.menu-nav ol { display: grid; gap: 0; max-width: 640px; }
.menu-nav li { opacity: 0; transform: translateY(14px); animation: entree-menu .8s var(--courbe) forwards; animation-delay: calc(var(--i) * 40ms + .1s); }
@keyframes entree-menu { to { opacity: 1; transform: none; } }
.menu-nav a { display: flex; align-items: baseline; gap: 22px; padding: 3px 0; text-decoration: none; color: var(--titre); }
.menu-num { width: 40px; flex: none; font: italic 500 15px/1 var(--serif); color: var(--or); text-align: right; }
.menu-nom { font: 400 clamp(26px, 3.6vh, 42px)/1.15 var(--serif); transition: color .4s, transform .5s var(--courbe); }
.menu-nav a:hover .menu-nom, .menu-nav a:focus-visible .menu-nom { color: var(--or-encre); transform: translateX(10px); font-style: italic; }
.menu-nav a[aria-current="page"] .menu-nom { color: var(--or-encre); font-style: italic; }
.menu-bas { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 18px; padding: 22px var(--gouttiere) max(26px, env(safe-area-inset-bottom)); border-top: 1px solid var(--filet); background: rgba(255, 255, 255, .9); max-width: 52%; }
.menu-bas p { margin: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 15px; }
.menu-bas p a { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; }
.menu-bas .ico { width: 16px; height: 16px; color: var(--or-encre); }
.hall { position: relative; min-height: 100vh; min-height: 100svh; display: grid; grid-template-rows: 1fr auto auto; isolation: isolate; overflow: hidden; color: #fff; background: #0C2A33; }
.hall-scene { position: absolute; inset: 0; z-index: -1; }
.hall-film { position: absolute; inset: 0; }
.hall-film > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hall-film .seq { background: transparent; }
.hall-film .seq img, .hall-film .seq video { filter: saturate(1.02) contrast(1.02); }
.hall-voile { position: absolute; inset: 0; z-index: 2; pointer-events: none; background:
    radial-gradient(ellipse 70% 95% at 0% 55%, rgba(var(--voile), .66) 0%, rgba(var(--voile), .34) 46%, rgba(var(--voile), 0) 76%),
    linear-gradient(180deg, rgba(var(--voile), .42) 0%, rgba(var(--voile), 0) 20%, rgba(var(--voile), 0) 70%, rgba(var(--voile), .55) 100%); }
.hall-rideau { position: absolute; inset: 0; z-index: 3; display: flex; pointer-events: none; }
.hall-rideau i { flex: 1; background: var(--pierre); transition: transform 1.6s var(--lent) .15s; }
.hall.leve .hall-rideau i:first-child { transform: translateX(-101%); }
.hall.leve .hall-rideau i:last-child { transform: translateX(101%); }
html:not(.js) .hall-rideau { display: none; }
.hall-contenu { position: relative; display: grid; align-items: center; padding: calc(var(--entete) + 30px) var(--gouttiere) 50px; max-width: 1680px; width: 100%; margin-inline: auto; }
@keyframes apparaitre { from { opacity: 0; transform: translateY(18px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
.accueil { max-width: 940px; }
.accueil-sur { display: flex; align-items: center; gap: 18px; margin: 0 0 clamp(18px, 3vh, 32px); font: 500 11.5px/1.3 var(--sans); letter-spacing: .34em; text-transform: uppercase; color: var(--or-pale); opacity: 0; animation: apparaitre 1.4s var(--courbe) 1.1s forwards; text-shadow: 0 1px 12px rgba(var(--voile), .6); }
.accueil-blason { width: 46px; filter: drop-shadow(0 2px 10px rgba(var(--voile), .4)); }
.accueil-titre { margin: 0; font: 400 clamp(44px, 6.2vw, 98px)/1.02 var(--serif); letter-spacing: -.012em; color: #fff; text-wrap: balance; text-shadow: 0 2px 26px rgba(var(--voile), .45); }
.accueil-ligne { display: block; }
.accueil-ligne + .accueil-ligne { font-style: italic; color: var(--or-pale); }
.accueil .m { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .02em .14em; margin-bottom: -.14em; }
.accueil .m > span { display: inline-block; }
.js .accueil .m > span { transform: translateY(105%); opacity: 0; filter: blur(8px); }
.js .accueil.pose .m > span { transform: none; opacity: 1; filter: none; transition: transform 1.2s var(--courbe), opacity 1.2s var(--courbe), filter 1.2s var(--courbe); transition-delay: calc(var(--i) * 80ms + .25s); }
.js .accueil.pose .accueil-ligne + .accueil-ligne .m > span { transition-delay: calc(var(--i) * 80ms + .55s); }
.accueil-texte { margin: clamp(18px, 3vh, 28px) 0 0; max-width: 52ch; font-size: clamp(16px, 1.3vw, 18.5px); color: rgba(255, 255, 255, .92); text-shadow: 0 1px 14px rgba(var(--voile), .6); opacity: 0; animation: apparaitre 1.4s var(--courbe) 2.2s forwards; }
.hall-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 30px; margin-top: clamp(22px, 4vh, 38px); opacity: 0; animation: apparaitre 1.4s var(--courbe) 2.5s forwards; }
.hall .btn--or { background: var(--or); color: var(--encre); border-color: var(--or); }
.hall .btn--or:hover { background: #fff; border-color: #fff; }
.lien-fleche--clair { color: #fff; border-color: rgba(255, 255, 255, .55); }
.lien-fleche--clair:hover { color: var(--or-pale); border-color: var(--or-pale); }
.diapo-legende { position: absolute; right: var(--gouttiere); bottom: 30px; display: grid; justify-items: end; gap: 4px; text-align: right; }
.diapo-legende p { margin: 0; font: italic 500 18px/1.2 var(--serif); color: var(--or-pale); text-shadow: 0 1px 10px rgba(var(--voile), .7); }
.hall-film-nom { font: 500 10.5px/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: rgba(255, 255, 255, .78); }
.hall-bas { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 14px clamp(22px, 3vw, 46px); padding: 18px var(--gouttiere); border-top: 1px solid rgba(185, 245, 160, .35); background: linear-gradient(180deg, rgba(var(--voile), .38), rgba(var(--voile), .66)); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.hall-etat { display: flex; align-items: center; gap: 12px; margin: 0; text-decoration: none; color: #fff; }
.hall-etat .picto { width: 28px; height: 28px; color: var(--or-pale); }
.hall-etat span { display: grid; gap: 3px; }
.hall-etat small { font: 500 10px/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: rgba(255, 255, 255, .72); }
.hall-etat b { font: 500 18px/1.15 var(--serif); }
.hall-etat.ouvert b::before, [data-etat-domaine].ouvert b::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #9fc27a; box-shadow: 0 0 0 3px rgba(159, 194, 122, .3); vertical-align: 2px; }
.hall-resa { margin-left: auto; }
.hall-bas { border-bottom: 0; }
.bandeau { position: relative; min-height: 84vh; min-height: 84svh; display: flex; align-items: flex-end; isolation: isolate; overflow: hidden; padding: calc(var(--entete) + 60px) 0 calc(clamp(54px, 7vw, 100px) + clamp(18px, 3.6vw, 52px)); color: #fff; }
.bandeau-image { position: absolute; inset: -4% 0; z-index: -2; background: #0C2A33; }
.bandeau-image > img { width: 100%; height: 100%; object-fit: cover; animation: bandeau-zoom 2.6s var(--courbe) both; }
@keyframes bandeau-zoom { from { transform: scale(1.1); filter: brightness(.55); } }
.bandeau-voile { position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 75% 100% at 0% 75%, rgba(var(--voile), .72), rgba(var(--voile), .3) 50%, rgba(var(--voile), 0) 78%), linear-gradient(180deg, rgba(var(--voile), .5) 0%, rgba(var(--voile), .1) 26%, rgba(var(--voile), .12) 60%, rgba(var(--voile), .4) 100%); }
.bandeau .titre-1 { color: #fff; max-width: 15ch; margin-bottom: 22px; text-shadow: 0 2px 26px rgba(var(--voile), .4); }
.bandeau .titre-1 em { color: var(--or-pale); }
.bandeau .chapeau { color: rgba(255, 255, 255, .93); text-shadow: 0 1px 14px rgba(var(--voile), .55); }
.bandeau .surtitre { color: var(--or-pale); }
.bandeau-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.bandeau .btn--or { background: var(--or); color: var(--encre); border-color: var(--or); }
.bandeau .btn--or:hover { background: #fff; border-color: #fff; }
.bandeau-legende { position: absolute; right: var(--gouttiere); bottom: calc(clamp(18px, 3.6vw, 52px) + 18px); margin: 0; font: italic 500 16px/1.2 var(--serif); color: var(--or-pale); text-shadow: 0 1px 10px rgba(var(--voile), .7); }
.ariane { margin-bottom: 26px; }
.ariane ol { display: flex; flex-wrap: wrap; gap: 6px 12px; font: 500 10.5px/1.4 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: rgba(255, 255, 255, .8); }
.ariane li + li::before { content: "·"; margin-right: 12px; color: var(--or-clair); }
.ariane a { text-decoration: none; }
.ariane a:hover { color: var(--or-pale); }
.ariane [aria-current] { color: var(--or-pale); }
.bandeau--court { min-height: 0; color: var(--texte); padding: calc(var(--entete) + clamp(54px, 8vw, 110px)) 0 clamp(50px, 6vw, 84px); background: radial-gradient(ellipse 60% 90% at 85% 0%, rgba(78, 182, 37, .2), transparent 70%), radial-gradient(ellipse 40% 60% at 10% 100%, rgba(74, 213, 4, .12), transparent 70%), var(--pierre); border-bottom: 1px solid var(--filet); }
.bandeau--court .bandeau-contenu { text-align: center; display: grid; justify-items: center; }
.bandeau--court .ariane ol { justify-content: center; color: var(--doux); }
.bandeau--court .ariane a:hover, .bandeau--court .ariane [aria-current] { color: var(--or-encre); }
.bandeau--court .titre-1 { color: var(--titre); text-shadow: none; max-width: 18ch; }
.bandeau--court .titre-1 em { color: var(--or-encre); }
.bandeau--court .chapeau { color: var(--texte); text-shadow: none; margin-inline: auto; }
.bandeau--court .surtitre { color: var(--or-encre); }
.bandeau-orn { width: min(260px, 70%); margin: 0 auto 22px; }
.sommaire-chips { position: relative; z-index: 3; margin-top: -24px; }
.sommaire-chips .enveloppe { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; padding-block: 4px; }
.sommaire-chips .enveloppe::-webkit-scrollbar { display: none; }
.sommaire-chips .puce { background: var(--carte); }
.sommaire-chips .puce--or { background: var(--olivier); }
.univers-mur { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(320px, 34vw, 520px); gap: 4px; padding-inline: 4px; }
.univers-tuile { position: relative; display: block; overflow: hidden; isolation: isolate; text-decoration: none; color: #fff; }
.univers-mur { grid-template-areas: "a b c" "a d e" "f f e"; }
.univers-tuile--1 { grid-area: a; } .univers-tuile--2 { grid-area: b; } .univers-tuile--3 { grid-area: c; } .univers-tuile--4 { grid-area: d; } .univers-tuile--5 { grid-area: f; } .univers-tuile--6 { grid-area: e; }
.univers-tuile > img, .univers-tuile .seq { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 2s var(--courbe); }
.univers-tuile:hover > img, .univers-tuile:hover .seq { transform: scale(1.05); }
.univers-tuile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--voile), 0) 22%, rgba(var(--voile), .5) 52%, rgba(var(--voile), .86) 100%); transition: background .8s; }
.univers-tuile-txt { text-shadow: 0 1px 12px rgba(var(--voile), .55); }
.univers-tuile::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(185, 245, 160, 0); transition: border-color .8s var(--courbe), inset .8s var(--courbe); pointer-events: none; }
.univers-tuile:hover::after { border-color: rgba(185, 245, 160, .55); inset: 20px; }
.univers-tuile-txt { position: absolute; left: clamp(20px, 2.6vw, 38px); right: clamp(20px, 2.6vw, 38px); bottom: clamp(20px, 2.6vw, 34px); display: grid; gap: 6px; }
.univers-picto .picto { width: 34px; height: 34px; color: var(--or-pale); margin-bottom: 6px; }
.univers-tuile-txt small { font: 500 10.5px/1.3 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--or-pale); }
.univers-tuile-txt b { font: 400 clamp(30px, 3vw, 46px)/1.05 var(--serif); }
.univers-tuile-txt > span:not(.univers-picto) { max-width: 40ch; font-size: 15.5px; color: rgba(255, 255, 255, .9); }
.univers-tuile-txt em { display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; font: 500 11px/1 var(--sans); font-style: normal; letter-spacing: .24em; text-transform: uppercase; color: var(--or-pale); }
.univers-tuile-txt em .ico { width: 16px; height: 16px; transition: transform .5s var(--courbe); }
.univers-tuile:hover em .ico { transform: translateX(5px); }
.visite-guidee { padding-top: clamp(90px, 11vw, 160px); }
.chapitres { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 500px) var(--gouttiere); }
.chapitres-scene { grid-column: 1 / -1; grid-row: 1; position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; align-self: start; }
.scene { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s var(--lent); }
.scene.actif { opacity: 1; }
.scene-img, .scene .seq { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 9s linear; }
.scene.actif .scene-img, .scene.actif .seq { transform: scale(1); }
.chapitres-voile { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, .7) 62%, rgba(255, 255, 255, .96) 100%), linear-gradient(180deg, var(--pierre) 0%, rgba(255, 255, 255, 0) 14%, rgba(255, 255, 255, 0) 86%, var(--pierre) 100%); }
.chapitres-progres { position: absolute; left: var(--gouttiere); bottom: clamp(30px, 8vh, 80px); display: flex; gap: 22px; padding: 14px 18px; background: rgba(255, 255, 255, .85); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.chapitres-progres li { display: grid; gap: 10px; font: italic 500 18px/1 var(--serif); color: var(--doux); transition: color .6s; }
.chapitres-progres li::after { content: ""; width: 40px; height: 1px; background: var(--filet-fort); transform-origin: left; }
.chapitres-progres li.actif { color: var(--or-encre); }
.chapitres-progres li.actif::after { background: var(--or); animation: trait 1.2s var(--courbe); }
@keyframes trait { from { transform: scaleX(0); } }
.chapitres-recits { grid-column: 2; grid-row: 1; position: relative; z-index: 2; }
.recit { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding-block: 18vh; }
.recit > * { max-width: 500px; }
.recit-num { display: flex; align-items: baseline; gap: 16px; margin-bottom: 18px; font: 500 11.5px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--or-encre); }
.recit-num span { font: italic 500 54px/1 var(--serif); letter-spacing: 0; color: var(--or); }
.recit .titre-3 { font-size: clamp(34px, 3.2vw, 50px); font-weight: 400; margin-bottom: 20px; }
.js .recit > * { opacity: .12; transform: translateY(18px); transition: opacity 1s var(--courbe), transform 1s var(--courbe); }
.js .recit.actif > * { opacity: 1; transform: none; }
.matin-grille { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 120px); align-items: center; }
.matin-photos { position: relative; padding-bottom: 18%; }
.matin-photos figure { margin: 0; overflow: hidden; }
.matin-grande { position: relative; aspect-ratio: 4 / 5; }
.matin-grande img, .matin-grande .seq { width: 100%; height: 100%; object-fit: cover; }
.matin-petite { position: absolute; right: -8%; bottom: 0; width: 48%; aspect-ratio: 1; border: 10px solid var(--pierre); }
.matin-petite img { width: 100%; height: 100%; object-fit: cover; }
.chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(40px, 5vw, 70px); border-top: 1px solid var(--filet-fort); }
.chiffres--trois { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.chiffres--cinq { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.chiffres li { display: grid; grid-template-rows: 20px auto auto; align-content: start; padding: 22px 18px 0 0; }
.chiffres small { display: block; font: italic 500 16px/1 var(--serif); color: var(--or-encre); }
.chiffres strong { display: block; font: 400 clamp(40px, 4.4vw, 66px)/1 var(--serif); color: var(--olivier); margin-bottom: 10px; }
.chiffres span { display: block; font: 500 10.5px/1.5 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--doux); }
.attentions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--filet); border-left: 1px solid var(--filet); }
.attentions--quatre { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.attentions li { position: relative; padding: clamp(26px, 3vw, 42px); border-right: 1px solid var(--filet); border-bottom: 1px solid var(--filet); text-align: center; background: linear-gradient(160deg, rgba(255, 255, 255, .45), transparent 60%); }
.rond { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 18px; border: 1px solid var(--filet-fort); border-radius: 50%; color: var(--olivier); }
.rond .picto { width: 32px; height: 32px; }
.attentions h3 { font: 500 23px/1.2 var(--serif); margin-bottom: 8px; }
.attentions p { margin: 0 auto; max-width: 30ch; font-size: 15.5px; color: var(--doux); }
.duo { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 120px); align-items: center; }
.duo--inverse > .duo-image { order: 2; }
.duo:has(> .duo-texte:first-child) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
.duo-image { position: relative; margin: 0; }
.duo-image > img, .duo-image > .seq { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.duo-image > .seq { position: absolute; inset: 0; aspect-ratio: auto; height: 100%; }
.duo-image--portrait > img { aspect-ratio: 4 / 5; }
.duo-image--avec { margin-bottom: 12%; }
.duo-petite { position: absolute; right: -6%; bottom: -14%; width: 42%; aspect-ratio: 1; border: 10px solid var(--pierre); overflow: hidden; }
.sec-clair .duo-petite { border-color: var(--lin); }
.duo--inverse .duo-petite { right: auto; left: -6%; }
.duo-petite img { width: 100%; height: 100%; object-fit: cover; }
.duo-texte .texte-lu + .texte-lu { margin-top: -.2em; }
.duo-texte .sec-entete { margin-bottom: clamp(24px, 2.6vw, 36px); }
.duo-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 30px; }
.duo--serre { margin-top: clamp(50px, 6vw, 90px); }
.atouts-mini { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 26px; margin: 26px 0 0; }
.atouts-mini li, .liste-points li { position: relative; padding-left: 22px; font-size: 15.5px; }
.atouts-mini li::before, .liste-points li::before { content: ""; position: absolute; left: 0; top: .8em; width: 12px; height: 1px; background: var(--or); }
.liste-points { display: grid; gap: 10px; margin: 0 0 1.2em; }
.horaires { margin: 26px 0 0; display: grid; border-top: 1px solid var(--filet); max-width: 560px; }
.horaires > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--filet); }
.horaires dt { font: 500 10.5px/1.7 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--or-encre); }
.horaires dd { margin: 0; font-size: 15.5px; }
.grille-ch { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 44px) clamp(18px, 2.4vw, 34px); }
.grille-ch--deux { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.carte-ch a { display: block; text-decoration: none; color: inherit; }
.carte-ch-photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; margin-bottom: 20px; }
.grille-ch--deux .carte-ch-photo { aspect-ratio: 3 / 2; }
.carte-ch-photo img, .carte-ch-photo .seq { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--courbe); }
.carte-ch-photo::after { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(185, 245, 160, 0); transition: border-color .8s var(--courbe), inset .8s var(--courbe); }
.carte-ch a:hover .carte-ch-photo img { transform: scale(1.05); }
.carte-ch a:hover .carte-ch-photo::after { border-color: rgba(185, 245, 160, .7); inset: 16px; }
.carte-ch-num { margin: 0 0 8px; font: italic 500 17px/1.2 var(--serif); color: var(--or-encre); }
.carte-ch h3 { font: 500 clamp(26px, 2.2vw, 32px)/1.12 var(--serif); margin-bottom: 8px; transition: color .4s; }
.carte-ch a:hover h3 { color: var(--or-encre); }
.carte-ch-txt > p { color: var(--doux); font-size: 15.5px; margin-bottom: 12px; }
.carte-ch-faits { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; color: var(--texte) !important; }
.carte-ch-faits span { display: inline-flex; align-items: center; gap: 8px; }
.carte-ch-faits .picto { width: 20px; height: 20px; color: var(--or-encre); }
.lignes-villas { display: grid; gap: clamp(70px, 9vw, 140px); }
.ligne-villa { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 100px); align-items: center; }
.ligne-villa--inverse .ligne-villa-image { order: 2; }
.ligne-villa-image { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.ligne-villa-image img, .ligne-villa-image .seq { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.8s var(--courbe); }
.ligne-villa-image:hover img { transform: scale(1.04); }
.ligne-villa-txt .titre-2 { margin-bottom: 16px; }
.tableau-env { overflow-x: auto; border: 1px solid var(--filet); background: var(--carte); }
.tableau { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 760px; }
.tableau th, .tableau td { text-align: left; padding: 16px 18px; border-bottom: 1px solid var(--filet); vertical-align: top; }
.tableau thead th { font: 500 10.5px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--doux); background: var(--lin); }
.tableau tbody th a { font: 500 20px/1.25 var(--serif); color: var(--titre); text-decoration: none; }
.citation { text-align: center; display: grid; justify-items: center; gap: 22px; }
.citation .filet-orne { width: min(420px, 80%); }
.citation-source { margin: 0; font: 500 11px/1.5 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--or-encre); }
.faits-barre { border-bottom: 1px solid var(--filet); background: var(--carte); }
.faits { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px 30px; padding: 22px 0; }
.faits li { display: flex; align-items: center; gap: 14px; }
.faits .picto { width: 28px; height: 28px; color: var(--or-encre); }
.faits span { display: grid; gap: 3px; }
.faits small { font: 500 10px/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--doux); }
.faits b { font: 500 19px/1.2 var(--serif); color: var(--titre); }
.galerie { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; gap: clamp(10px, 1.4vw, 18px); }
.galerie-item:first-child { grid-column: span 2; grid-row: span 2; }
.galerie--carre .galerie-item:first-child, .galerie--trois .galerie-item:first-child { grid-column: auto; grid-row: auto; }
.galerie--trois { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.galerie-item button { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; overflow: hidden; }
.galerie-item img { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 1.4s var(--courbe); }
.galerie--carre img { aspect-ratio: 1; }
.galerie-item button:hover img { transform: scale(1.04); }
.visionneuse { position: fixed; inset: 0; z-index: 96; background: rgba(10, 36, 44, .96); display: grid; grid-template-rows: auto 1fr auto; color: #fff; }
.visionneuse-haut { display: flex; justify-content: space-between; align-items: center; padding: max(12px, env(safe-area-inset-top)) 16px 8px 22px; font: italic 500 17px/1 var(--serif); color: var(--or-pale); }
.visionneuse figure { margin: 0; display: grid; place-items: center; min-height: 0; padding: 0 70px; }
.visionneuse img { max-width: 100%; max-height: calc(100svh - 170px); object-fit: contain; }
.visionneuse figcaption { padding: 14px 22px max(20px, env(safe-area-inset-bottom)); text-align: center; font: italic 400 19px/1.4 var(--serif); }
.visionneuse button { width: 48px; height: 48px; border: 1px solid rgba(185, 245, 160, .5); background: rgba(10, 36, 44, .4); color: #fff; display: grid; place-items: center; cursor: pointer; }
.visionneuse .v-prec, .visionneuse .v-suiv { position: absolute; top: 50%; transform: translateY(-50%); }
.visionneuse .v-prec { left: 12px; } .visionneuse .v-suiv { right: 12px; }
.mosaique { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: clamp(220px, 26vw, 400px) clamp(200px, 22vw, 340px); gap: 4px; padding: 4px; }
.mosaique figure { margin: 0; overflow: hidden; }
.mosaique img { width: 100%; height: 100%; object-fit: cover; }
.mosaique-1 { grid-column: span 3; } .mosaique-2 { grid-column: span 3; } .mosaique-3 { grid-column: span 3; } .mosaique-4 { grid-column: span 3; }
.trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 0 4px; }
.trio figure { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; }
.trio img { width: 100%; height: 100%; object-fit: cover; }
.formule-grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: clamp(30px, 5vw, 80px); align-items: center; }
.carte-papier { position: relative; padding: clamp(34px, 4vw, 56px); background: var(--carte); text-align: center; outline: 1px solid var(--filet-fort); outline-offset: -11px; box-shadow: 0 40px 80px -46px rgba(16, 38, 43, .6); }
.carte-papier-titre { font: 400 clamp(32px, 3vw, 46px)/1.1 var(--serif); margin-bottom: 18px; }
.carte-papier-titre em { font-style: italic; color: var(--or-encre); }
.carte-papier > p { max-width: 50ch; margin-inline: auto; }
.formule-faits { display: grid; gap: 10px; margin: 24px auto 28px; max-width: 420px; text-align: left; }
.formule-faits li { display: flex; align-items: center; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--filet); font-size: 15.5px; }
.formule-faits li:last-child { border-bottom: 0; }
.formule-faits .picto { width: 26px; height: 26px; color: var(--olivier); }
.formule-faits b { font: 500 21px/1.2 var(--serif); color: var(--titre); }
.formule-photos { display: grid; grid-template-columns: 1.4fr 1fr; gap: 12px; align-items: end; }
.formule-photos figure { margin: 0; overflow: hidden; }
.formule-photos img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.formule-photos figure:first-child img { aspect-ratio: 3 / 4; }
.resa-inline { min-height: 200px; padding: clamp(10px, 2vw, 24px); background: var(--carte); border: 1px solid var(--filet); }
.resa-repli { text-align: center; padding: 50px 0; margin: 0; }
.distinction { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin: 0 0 clamp(36px, 4vw, 56px); padding: 18px 24px; border: 1px solid var(--filet-fort); background: rgba(255, 255, 255, .55); }
.distinction .picto { width: 38px; height: 38px; color: var(--or-encre); }
.distinction p { flex: 1; min-width: 240px; margin: 0; font: italic 500 clamp(19px, 1.6vw, 23px)/1.35 var(--serif); color: var(--titre); }
.distinction p small { display: block; margin-top: 4px; font: 500 10.5px/1.5 var(--sans); font-style: normal; letter-spacing: .18em; text-transform: uppercase; color: var(--or-encre); }
.distinction--bas { margin: clamp(40px, 5vw, 70px) 0 0; }
.contact-grille { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(30px, 5vw, 70px); align-items: start; }
.contact-grille--form { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.contact-blocs { display: grid; gap: 12px; }
.contact-bloc { display: flex; align-items: center; gap: 18px; padding: 18px 22px; border: 1px solid var(--filet); background: var(--carte); text-decoration: none; transition: border-color .4s; }
a.contact-bloc:hover { border-color: var(--or); }
.contact-bloc .picto { width: 30px; height: 30px; color: var(--olivier); }
.contact-bloc span { display: grid; gap: 3px; min-width: 0; }
.contact-bloc small { font: 500 10px/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--doux); }
.contact-bloc strong { font: 500 21px/1.25 var(--serif); color: var(--titre); overflow-wrap: anywhere; }
.contact-bloc em { font-style: normal; font-size: 14px; color: var(--doux); }
.carte { position: relative; aspect-ratio: 4 / 3.4; background: var(--lin); border: 1px solid var(--filet); overflow: hidden; }
.carte-fond { position: absolute; inset: 0; }
.carte-repli { padding: 30px; color: var(--doux); }
.leaflet-container { font-family: var(--sans) !important; background: var(--lin) !important; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { border-radius: 0 !important; }
.leaflet-popup-content strong { display: block; font: 500 19px/1.25 var(--serif); color: var(--titre); margin-bottom: 4px; }
.marqueur { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--carte); border: 1px solid var(--or); box-shadow: 0 8px 20px -6px rgba(10, 36, 44, .5); }
.marqueur img { width: 40px; }
.formulaire { display: grid; gap: 16px; }
.formulaire label { display: grid; gap: 6px; }
.formulaire label > span { font: 500 10.5px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--doux); }
.formulaire input, .formulaire textarea, .formulaire select { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--filet-fort); border-radius: 0; background: var(--blanc); color: var(--encre); font: 400 16px/1.4 var(--sans); }
.formulaire input:focus, .formulaire textarea:focus, .formulaire select:focus { outline: none; border-color: var(--olivier); box-shadow: 0 0 0 3px rgba(0, 135, 73, .12); }
.champs-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.formulaire-pied { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin: 6px 0 0; }
.formulaire-pied small { flex: 1; min-width: 200px; font-size: 13px; color: var(--doux); }
.formulaire-ok { margin: 0; padding: 14px 18px; border-left: 2px solid var(--olivier); background: rgba(78, 182, 37, .12); }
.lettre-bloc { position: sticky; top: calc(var(--entete) + 30px); padding: clamp(28px, 3vw, 44px); background: var(--carte); text-align: center; outline: 1px solid var(--filet-fort); outline-offset: -11px; }
.lettre-embleme { margin: 0 auto 16px; }
.lettre-bloc .titre-3 { margin-bottom: 14px; }
.lettre-bloc .formulaire { text-align: left; margin-top: 22px; }
.legal h2 { font: 500 26px/1.2 var(--serif); margin: 40px 0 12px; }
.legal h2:first-child { margin-top: 0; }
.sec-final { overflow: hidden; isolation: isolate; padding-block: clamp(110px, 14vw, 200px) calc(clamp(110px, 14vw, 200px) + clamp(18px, 3.6vw, 52px)); }
.final-image { position: absolute; inset: -12% 0; z-index: -1; }
.final-image img { width: 100%; height: 100%; object-fit: cover; }
.sec-final::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 70% 70% at 50% 50%, rgba(var(--voile), .1), rgba(var(--voile), .45)); }
.final-contenu { display: grid; justify-items: center; }
.final-carte { width: min(820px, 100%); display: grid; justify-items: center; text-align: center; padding: clamp(36px, 5vw, 70px) clamp(22px, 5vw, 70px); background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); outline: 1px solid var(--filet-fort); outline-offset: -12px; box-shadow: 0 50px 100px -50px rgba(10, 36, 44, .7); }
.final-embleme { margin-bottom: 26px; }
.final-carte .titre-1 { font-size: clamp(42px, 5.4vw, 80px); margin-bottom: 20px; max-width: 14ch; }
.final-carte .chapeau { margin-inline: auto; }
.final-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin: 20px 0 22px; }
.final-adresse { margin: 0; font: italic 400 17px/1.5 var(--serif); color: var(--doux); }
.pied { position: relative; padding: clamp(40px, 6vw, 80px) 0 0; background: var(--lin); border-top: 0; }
.pied-marque { display: grid; justify-items: center; text-align: center; padding-inline: var(--gouttiere); margin-bottom: clamp(46px, 6vw, 80px); }
.pied-logo { display: block; }
.pied-accroche { margin: 24px 0 0; max-width: 46ch; font: italic 400 21px/1.45 var(--serif); color: var(--titre); }
.pied-in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px; max-width: calc(1240px + 2 * var(--gouttiere)); margin: 0 auto; padding-inline: var(--gouttiere); }
.pied-col h2 { font: 500 10.5px/1.3 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--or-encre); margin-bottom: 16px; }
.pied-col h2:not(:first-child) { margin-top: 24px; }
.pied-col li { margin-bottom: 8px; }
.pied-col a { text-decoration: none; font-size: 15.5px; color: var(--texte); }
.pied-col a:hover { color: var(--olivier); }
.pied-col p { font-size: 15px; }
.pied-contact address { font-style: normal; font: 500 20px/1.4 var(--serif); color: var(--titre); margin-bottom: 12px; }
.reseaux { display: flex; gap: 10px; }
.reseaux a { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--filet-fort); border-radius: 50%; color: var(--olivier); transition: all .4s; }
.reseaux a:hover { background: var(--olivier); color: #fff; border-color: var(--olivier); }
.reseaux .picto { width: 22px; height: 22px; }
.pied-lettre { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 14px; max-width: calc(1240px + 2 * var(--gouttiere)); margin: clamp(40px, 5vw, 64px) auto 0; padding: 26px var(--gouttiere); border-block: 1px solid var(--filet); }
.pied-lettre-titre { margin: 0 12px 0 0; font: italic 500 22px/1.2 var(--serif); color: var(--titre); }
.pied-lettre input { min-height: 44px; width: min(240px, 100%); padding: 10px 14px; border: 1px solid var(--filet-fort); background: var(--blanc); font: 400 15px/1.3 var(--sans); color: var(--encre); }
.pied-lettre-merci { flex-basis: 100%; margin: 0; text-align: center; font-size: 14.5px; color: var(--olivier); }
.pied-filet { max-width: calc(1240px + 2 * var(--gouttiere)); margin: clamp(30px, 4vw, 50px) auto 0; padding-inline: var(--gouttiere); }
.pied-bas { display: grid; justify-items: center; gap: 8px; text-align: center; padding: 26px var(--gouttiere) calc(36px + env(safe-area-inset-bottom)); font-size: 13px; color: var(--doux); }
.pied-bas p { margin: 0; }
.pied-legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; }
.pied-legal a { text-decoration: none; }
.pied-legal a:hover { color: var(--olivier); }
.pied-espace { opacity: .75; }
.pied-presentation { font-size: 12px; opacity: .8; }
.p404 { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; isolation: isolate; overflow: hidden; padding: calc(var(--entete) + 40px) 0 60px; color: #fff; }
.p404-image { position: absolute; inset: 0; z-index: -2; }
.p404-image img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.6); }
.p404-contenu { text-align: center; display: grid; justify-items: center; }
.p404 .titre-1 { color: #fff; max-width: 14ch; }
.p404 .titre-1 em { color: var(--or-pale); }
.p404 .chapeau { color: rgba(255, 255, 255, .92); margin-inline: auto; }
.p404-liens { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.halo:not(.btn) { position: relative; }
.halo:not(.btn)::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%), rgba(74, 213, 4, .1), transparent 72%); opacity: 0; transition: opacity .55s var(--courbe); }
.halo:not(.btn):hover::after { opacity: 1; }
.univers-tuile.halo::after, .carte-ch a.halo::after { display: none; }
.barre-mobile { display: none; }
.marque { display: inline-flex; align-items: center; gap: 12px; color: var(--titre); text-decoration: none; white-space: nowrap; }
.marque-oiseaux { width: 50px; height: 50px; flex: none; filter: drop-shadow(0 2px 6px rgba(var(--voile), .18)); }
.marque-txt { display: grid; gap: 3px; line-height: 1; }
.marque-txt b { font: 500 25px/1 var(--serif); letter-spacing: .005em; color: inherit; }
.marque-txt small { font: 500 10.5px/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--or-encre); }
.marque--blanc { color: #fff; text-shadow: 0 1px 12px rgba(var(--voile), .55); }
.marque--blanc .marque-txt small { color: var(--or-pale); }
.entete-logo { display: inline-flex; }
.entete-logo .logo { width: auto; height: 58px; }
.entete--compact .entete-logo .logo { height: 46px; width: auto; }
.logo--inverse { filter: brightness(0) invert(1) drop-shadow(0 1px 10px rgba(var(--voile), .5)); }
.entete-logo .marque--blanc { position: absolute; inset: 0; opacity: 0; transition: opacity .5s; }
.entete-logo .marque.logo--couleur { transition: opacity .5s; }
body:not(.p-legal) .entete:not(.entete--solide) .entete-logo .marque--blanc { opacity: 1; }
body:not(.p-legal) .entete:not(.entete--solide) .entete-logo .marque.logo--couleur { opacity: 0; }
.entete--compact .marque-oiseaux { width: 42px; height: 42px; }
.entete--compact .marque-txt b { font-size: 22px; }
.menu-haut .entete-logo .logo { height: 56px; width: auto; }
.pied-logo { width: auto; }
.pied-logo .logo { width: auto; height: clamp(84px, 9vw, 120px); }
.pied-logo .marque { flex-direction: column; gap: 14px; text-align: center; }
.pied-logo .marque-oiseaux { width: 74px; height: 74px; }
.pied-logo .marque-txt { justify-items: center; gap: 8px; }
.pied-logo .marque-txt b { font-size: clamp(30px, 3vw, 40px); }
.final-embleme.marque, .lettre-embleme.marque { flex-direction: column; gap: 10px; margin-inline: auto; }
.final-embleme .marque-txt, .lettre-embleme .marque-txt { justify-items: center; }
.final-embleme .marque-txt b, .lettre-embleme .marque-txt b { font-size: 22px; }
.final-embleme.logo { width: auto; height: 80px; }
.lettre-embleme.logo { width: auto; height: 70px; margin-inline: auto; }
.p404-embleme { margin: 0 auto 24px; }
.p404-embleme.logo { width: auto; height: 90px; }
.entete-tel { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; text-decoration: none; white-space: nowrap; font: 500 13px/1 var(--sans); letter-spacing: .08em; color: var(--titre); }
.entete-tel .ico { width: 18px; height: 18px; }
.menu-bas-resa { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.manuscrit { margin: -6px 0 18px; font: 400 clamp(28px, 2.6vw, 38px)/1.1 var(--main); color: var(--or-encre); }
.manuscrit--clair { color: var(--or-pale); }
.note-centre { text-align: center; margin: 34px auto 0; max-width: 70ch; }
.pied-slogan { margin: 8px 0 0; font: 500 11px/1.4 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--or-encre); }
.pied-resa { margin-top: 16px; }
.accueil-titre em { display: block; font-style: italic; color: var(--or-pale); }
.hall-etat--spa .picto { color: #8FDBF5; }
.btn--verre:hover { background: rgba(255, 255, 255, .92); color: var(--olivier); border-color: #fff; }
.courbe--hall { z-index: 5; }
.hall-bas { padding-bottom: calc(18px + clamp(18px, 3.6vw, 52px)); }
.grille-ch--cinq { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.grille-ch--cinq > li { grid-column: span 2; }
.grille-ch--cinq > li:nth-child(4) { grid-column: 2 / span 2; }
.grille-ch--quatre { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grille-ch--quatre .carte-ch-photo { aspect-ratio: 4 / 3; }
.grille-ch--quatre .carte-ch h3 { font-size: clamp(23px, 1.8vw, 28px); }
.carte-ch-photo { aspect-ratio: 4 / 3.4; }
.carte-ch-prix { position: absolute; left: 14px; bottom: 14px; z-index: 1; padding: 8px 12px; background: rgba(255, 255, 255, .94); font: 500 10.5px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--doux); }
.carte-ch-prix b { font: 500 19px/1 var(--serif); letter-spacing: 0; color: var(--olivier); text-transform: none; margin-left: 2px; }
.carte-ch .lien-fleche { margin-top: 4px; }
.prix { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 26px 0 0; border: 1px solid var(--filet-fort); background: var(--carte); }
.prix > div { display: grid; gap: 6px; padding: 16px 14px; text-align: center; }
.prix > div + div { border-left: 1px solid var(--filet); }
.prix dt { font: 500 10px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--or-encre); }
.prix dd { margin: 0; display: grid; gap: 2px; }
.prix b { font: 400 clamp(30px, 2.6vw, 40px)/1 var(--serif); color: var(--olivier); }
.prix small { font-size: 12.5px; color: var(--doux); }
.prix-note { margin-top: 10px; }
.carte-papier .prix { margin: 22px 0 14px; text-align: center; }
.tableau-prix { font: 500 19px/1.2 var(--serif); color: var(--olivier); white-space: nowrap; }
.equip { display: grid; gap: 10px; }
.equip li { display: flex; align-items: center; gap: 12px; font-size: 15.5px; }
.equip .picto { width: 26px; height: 26px; flex: none; color: var(--sarcelle); }
.equip--deux { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--filet); }
.equip-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(26px, 4vw, 60px); margin-bottom: 30px; }
.equip-grille--cinq { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.equip-titre { margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--filet-fort); font: 500 24px/1.2 var(--serif); }
.sec-equip .sec-entete--centre + .equip-grille { max-width: 900px; margin-inline: auto; }
.moments { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding-inline: 4px; }
.moment { position: relative; display: block; min-height: clamp(460px, 46vw, 680px); overflow: hidden; isolation: isolate; color: #fff; text-decoration: none; }
.moment-photo, .moment-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 2s var(--courbe); }
.moment:hover .moment-photo img { transform: scale(1.04); }
.moment::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--voile), 0) 25%, rgba(var(--voile), .55) 55%, rgba(var(--voile), .88) 100%); }
.moment--soir::before { background: linear-gradient(180deg, rgba(6, 36, 52, .05) 20%, rgba(6, 36, 52, .86) 100%); }
.moment-txt { position: absolute; left: clamp(22px, 3vw, 46px); right: clamp(22px, 3vw, 46px); bottom: clamp(24px, 3vw, 44px); display: grid; gap: 8px; }
.moment-txt small { display: inline-flex; align-items: center; gap: 10px; font: 500 11px/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--or-pale); }
.moment-txt small .picto { width: 26px; height: 26px; }
.moment--soir .moment-txt small { color: #8FDBF5; }
.moment-txt b { font: 400 clamp(38px, 4vw, 62px)/1 var(--serif); }
.moment-txt > span { max-width: 46ch; font-size: 16px; color: rgba(255, 255, 255, .92); text-shadow: 0 1px 12px rgba(var(--voile), .5); }
.moment-txt em { font: italic 400 19px/1.3 var(--serif); color: rgba(255, 255, 255, .86); }
.points-pdj { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 18px; }
.points-pdj li { display: inline-flex; align-items: center; gap: 9px; padding: 8px 14px 8px 10px; border: 1px solid var(--filet-fort); border-radius: 99px; background: var(--carte); font-size: 14.5px; }
.points-pdj .picto { width: 22px; height: 22px; color: var(--or-encre); }
.points-pdj b { font-weight: 400; }
.attentions--cinq { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.attentions--cinq li { padding: clamp(22px, 2.4vw, 34px) clamp(14px, 1.6vw, 24px); }
.affiche { margin: 36px 0 0; max-width: 340px; box-shadow: 0 30px 60px -36px rgba(10, 36, 44, .6); }
.affiche img { width: 100%; }
.affiche--centre { margin: clamp(40px, 5vw, 70px) auto 0; max-width: 300px; }
.affiche--spa { margin: 0 auto; max-width: 420px; }
.soir { position: relative; background: radial-gradient(ellipse 70% 50% at 0% 0%, rgba(166, 235, 92, .16), transparent 70%), radial-gradient(ellipse 60% 50% at 100% 60%, rgba(24, 165, 230, .32), transparent 70%), linear-gradient(180deg, #06303F 0%, #04202C 100%); color: rgba(255, 255, 255, .88); }
.soir .sec { background-image: none !important; }
.soir .titre-2 { color: #fff; }
.soir .titre-2 em { color: var(--ambre); }
.soir .surtitre { color: #8FDBF5; }
.soir .surtitre .num { color: var(--ambre); }
.soir .texte-lu--grand { color: #fff; }
.soir .equip .picto { color: var(--ambre); }
.soir .equip--deux { border-top-color: rgba(255, 255, 255, .16); }
.soir .duo-petite { border-color: #06303F; }
.soir .sec + .sec { padding-top: 0; }
.dimanche { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-left: 2px solid var(--sarcelle); background: rgba(24, 165, 230, .07); font: italic 500 20px/1.35 var(--serif); color: var(--titre); }
.dimanche .picto { width: 30px; height: 30px; flex: none; color: var(--terre); }
.formules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); margin-top: clamp(50px, 6vw, 90px); }
.formule { padding: clamp(24px, 2.6vw, 36px); background: var(--carte); text-align: center; outline: 1px solid var(--filet-fort); outline-offset: -9px; }
.formule-quand { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 12px; font: 500 10.5px/1.3 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--or-encre); }
.formule-quand .picto { width: 24px; height: 24px; color: var(--sarcelle); }
.formule h3 { font: 500 clamp(25px, 2.2vw, 31px)/1.15 var(--serif); margin-bottom: 8px; }
.formule-prix { font: italic 500 22px/1.3 var(--serif); color: var(--olivier); margin-bottom: 6px; }
.carte-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 5vw, 80px); max-width: 1080px; margin: 0 auto; padding: clamp(28px, 4vw, 56px); background: var(--carte); outline: 1px solid var(--filet-fort); outline-offset: -11px; }
.carte-menu-titre { margin: 0 0 12px; font: italic 500 26px/1.2 var(--serif); color: var(--or-encre); }
.carte-menu-titre:not(:first-child) { margin-top: 30px; }
.menu-ligne { display: grid; grid-template-columns: auto minmax(20px, 1fr) auto; align-items: baseline; gap: 10px; padding: 9px 0; }
.menu-ligne-nom { display: grid; gap: 2px; }
.menu-ligne-nom b { font: 500 19px/1.2 var(--serif); color: var(--titre); }
.menu-ligne-nom small { font-size: 13.5px; color: var(--doux); }
.menu-ligne i { border-bottom: 1px dotted var(--filet-fort); transform: translateY(-4px); }
.menu-ligne-prix { font: 500 19px/1 var(--serif); color: var(--olivier); white-space: nowrap; }
.lieux-typo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2.4vw, 34px); max-width: 1040px; margin: 0 auto; }
.carte-papier-picto { width: 46px; height: 46px; margin: 0 auto 14px; color: var(--sarcelle); }
.visite { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--lin-2); display: grid; place-items: center; }
.visite-fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) brightness(.82); }
.visite-bouton { position: relative; z-index: 1; }
.visite iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.horaires--large { max-width: none; }
.horaires--large > div { grid-template-columns: 210px minmax(0, 1fr); }
.lettre-actions { display: grid; gap: 10px; margin-top: 22px; }
.lettre-actions .btn { width: 100%; }
.legal h3 { font: 500 21px/1.3 var(--serif); margin: 24px 0 8px; color: var(--titre); }
.sommaire-chips { margin-top: 0; padding-top: 22px; }
@media (max-width: 1600px) { .entete-tel-txt { display: none; } }
@media (max-width: 1480px) { .entete-g .entete-menu-txt { display: none; } }
@media (max-width: 1340px) { .entete-nav { display: none; } }
@media (max-width: 1340px) and (min-width: 961px) { .entete-g .entete-menu-txt { display: inline; } }
@media (max-width: 1240px) {
  .entete-nav { display: none; }
  .entete-in { grid-template-columns: auto minmax(0, 1fr) auto; }
  .chiffres--cinq { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pied-in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .grille-ch--cinq, .grille-ch--quatre { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grille-ch--cinq > li, .grille-ch--cinq > li:nth-child(4) { grid-column: auto; }
  .moments { grid-template-columns: minmax(0, 1fr); }
  .attentions--cinq { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .formules, .equip-grille--cinq { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .carte-menu { grid-template-columns: minmax(0, 1fr); }
  .entete-tel { display: none; }
  :root { --entete: 70px; }
  .entete-tel-txt, .entete-menu-txt { display: none; }
  .entete-resa { display: none; }
  .entete-logo .logo { height: 50px; width: auto; }
  .entete--compact .entete-in { height: 60px; }
  .entete--compact .entete-logo .logo { height: 44px; width: auto; }
  .menu-fond { display: none; }
  .menu-bas { max-width: none; }
  .univers-mur { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(300px, 60vw, 460px); grid-template-areas: "a a" "b c" "d e" "f f"; }
  .univers-tuile--6 { grid-area: auto; }
  .univers-mur { grid-template-areas: "a a" "b c" "d e" "f f" "g g"; }
  .univers-tuile--6 { grid-area: g; }
  .chapitres { grid-template-columns: var(--gouttiere) minmax(0, 1fr) var(--gouttiere); }
  .chapitres-voile { background: linear-gradient(180deg, var(--pierre) 0%, rgba(255, 255, 255, .1) 16%, rgba(255, 255, 255, .1) 50%, rgba(255, 255, 255, .92) 78%, var(--pierre) 100%); }
  .recit { justify-content: flex-end; padding-block: 40vh 12vh; }
  .chapitres-progres { top: 90px; bottom: auto; }
  .matin-grille, .duo, .duo:has(> .duo-texte:first-child), .ligne-villa, .formule-grille, .contact-grille, .contact-grille--form, .art-corps--cote, .carte-art--grand a { grid-template-columns: minmax(0, 1fr); }
  .duo--inverse > .duo-image, .ligne-villa--inverse .ligne-villa-image { order: 0; }
  .duo .duo-texte:first-child { order: 2; }
  .attentions, .attentions--quatre { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grille-ch, .grille-art { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .equipe { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .formats { grid-template-columns: minmax(0, 1fr); }
  .galerie { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .affiche { max-width: 280px; }
  .hall-resa { margin-left: 0; }
}
@media (max-width: 700px) {
  .grille-ch--cinq, .grille-ch--quatre, .formules, .equip-grille, .equip-grille--cinq, .lieux-typo, .attentions--cinq { grid-template-columns: minmax(0, 1fr); }
  .equip--deux { grid-template-columns: minmax(0, 1fr); }
  .prix b { font-size: 28px; }
  .prix > div { padding: 14px 8px; }
  .marque-oiseaux { width: 40px; height: 40px; }
  .marque-txt b { font-size: 20px; }
  .marque-txt small { font-size: 9px; letter-spacing: .2em; }
  .entete-logo .logo { height: 46px; }
  .horaires--large > div { grid-template-columns: minmax(0, 1fr); }
  .moment { min-height: 440px; }
  body { font-size: 16px; }
  .pied { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
  .vb-flottant { bottom: calc(78px + env(safe-area-inset-bottom)) !important; }
  .hall-bas [data-etat-terrasse] { display: none; }
  .hall-bas { grid-template-columns: minmax(0, 1fr); padding-block: 14px; }
  .hall-bas a.hall-etat { grid-column: auto; }
  .entete-g { gap: 12px; }
  .hall-contenu { align-items: end; padding-bottom: 30px; }
  .accueil-titre { font-size: clamp(38px, 10.4vw, 56px); }
  .accueil-sur { font-size: 10px; letter-spacing: .24em; gap: 12px; }
  .accueil-blason { width: 34px; }
  .diapo-legende { display: none; }
  .hall-bas { display: grid; gap: 12px; }
  .hall-resa { display: none; }
  .hall-etat b { font-size: 16px; }
  .bandeau { min-height: 78svh; }
  .bandeau-legende { display: none; }
  .univers-mur { grid-template-columns: minmax(0, 1fr); grid-auto-rows: 360px; padding: 0; grid-template-areas: none; }
  .univers-tuile { grid-area: auto !important; }
  .chiffres, .chiffres--trois, .chiffres--cinq { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chiffres li { padding-right: 10px; }
  .attentions, .attentions--quatre { grid-template-columns: minmax(0, 1fr); }
  .grille-ch, .grille-ch--deux, .grille-art { grid-template-columns: minmax(0, 1fr); }
  .equipe { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .membre h3 { font-size: 19px; }
  .galerie, .galerie--trois { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mosaique { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 200px 200px; }
  .mosaique-1, .mosaique-2, .mosaique-3, .mosaique-4 { grid-column: span 1; }
  .trio { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .trio figure:last-child { display: none; }
  .duo-petite { width: 46%; right: -2%; }
  .duo--inverse .duo-petite { left: -2%; }
  .produit-ligne { grid-template-columns: minmax(0, 1fr) auto; }
  .produit-cond { grid-column: 1; grid-row: 2; }
  .produit-prix { grid-column: 2; grid-row: 1; }
  .produits .btn { grid-column: 2; grid-row: 2; }
  .champs-2 { grid-template-columns: minmax(0, 1fr); }
  .horaires > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .art-nav { grid-template-columns: minmax(0, 1fr); text-align: center; }
  .art-nav > * { justify-self: center; justify-items: center !important; text-align: center !important; }
  .pied-in { grid-template-columns: minmax(0, 1fr); gap: 28px; text-align: center; }
  .reseaux { justify-content: center; }
  .pied-lettre input { width: 100%; }
  .final-carte .titre-1 { font-size: clamp(38px, 11vw, 54px); }
  .sommaire-chips { margin-top: -18px; }
  .hall { min-height: calc(100svh - 62px - env(safe-area-inset-bottom)); }
  .hall-etat--spa { display: none !important; }
  .moment-txt > span { display: none; }
  .barre-mobile .picto { width: 22px; height: 22px; color: var(--or-encre); }
  .pv-cigales { bottom: calc(74px + env(safe-area-inset-bottom)) !important; }
  .barre-mobile { position: fixed; inset: auto 0 0; z-index: 70; display: grid; grid-template-columns: 1fr 1fr 1.6fr; align-items: stretch; height: calc(62px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-top: 1px solid var(--filet-fort); }
  .barre-mobile a, .barre-mobile button { display: grid; place-items: center; align-content: center; gap: 3px; border: 0; background: none; text-decoration: none; font: 500 10px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--titre); cursor: pointer; }
  .barre-mobile .ico { width: 20px; height: 20px; color: var(--or-encre); }
  .barre-mobile .barre-resa { background: var(--olivier); color: #fff; font-size: 11px; letter-spacing: .16em; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; }
  .js .apparait, .js .revele, .js .revele img, .js .accueil .m > span { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
}


:root { --titre: #006B3A; }
.entete-logo .logo { height: 66px; }
.entete--compact .entete-logo .logo { height: 52px; }
.menu-haut .entete-logo .logo { height: 64px; }
@media (max-width: 960px) {
  .entete-logo .logo { height: 56px; }
  .entete--compact .entete-logo .logo { height: 50px; }
}
@media (max-width: 700px) {
  .entete-logo .logo { height: 52px; }
  .entete--compact .entete-logo .logo { height: 48px; }
}
.pied-logo .logo { height: clamp(112px, 12vw, 160px); }
.final-embleme.logo { height: 108px; }
.logo--blanc { filter: drop-shadow(0 1px 10px rgba(var(--voile), .45)); }
.dimanche .picto { color: var(--or-encre); }
:root { --ombre-texte: 0 1px 2px rgba(var(--voile), .55), 0 2px 22px rgba(var(--voile), .5); }
.accueil-titre, .bandeau:not(.bandeau--court) .titre-1 { font-weight: 500; text-shadow: 0 1px 3px rgba(var(--voile), .45), 0 3px 30px rgba(var(--voile), .5); }
.accueil-titre em, .bandeau:not(.bandeau--court) .titre-1 em { font-weight: 500; }
.accueil-texte, .bandeau:not(.bandeau--court) .chapeau { font-weight: 400; color: #fff; text-shadow: var(--ombre-texte); }
.accueil-sur, .bandeau:not(.bandeau--court) .surtitre, .bandeau:not(.bandeau--court) .ariane ol { text-shadow: var(--ombre-texte); }
.lien-fleche--clair { font-weight: 500; text-shadow: var(--ombre-texte); border-color: rgba(255, 255, 255, .75); }
.hall-etat small { color: rgba(255, 255, 255, .86); }
.hall-etat b, .hall-etat small, .hall-film-nom, .bandeau-legende, .diapo-legende p { text-shadow: var(--ombre-texte); }
.hall-bas { background: linear-gradient(180deg, rgba(var(--voile), .5), rgba(var(--voile), .74)); }
body:not(.p-legal) .entete:not(.entete--solide) { background: linear-gradient(180deg, rgba(var(--voile), .62), rgba(var(--voile), .18) 70%, rgba(var(--voile), 0)); }
body:not(.p-legal) .entete:not(.entete--solide) :is(.entete-nav a, .entete-tel, .entete-menu) { text-shadow: 0 1px 2px rgba(var(--voile), .7), 0 1px 14px rgba(var(--voile), .55); }
body:not(.p-legal) .entete:not(.entete--solide) .entete-nav a { font-size: 12px; letter-spacing: .16em; }
body:not(.p-legal) .entete:not(.entete--solide) .burger i { box-shadow: 0 1px 3px rgba(var(--voile), .6); }

/* theme:origine */
