:root{--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',sans-serif;--bg:#F7F4EF;--bg-alt:#EDEBE3;--bg-inv:#2C2C2A;--text:#2C2C2A;--muted:#8A8880;--light:#C8C5BF;--inv:#F0EDE6;--border:#D8D5CE}
[data-theme="dark"]{--bg:#1A1A18;--bg-alt:#222220;--bg-inv:#F0EDE6;--text:#F0EDE6;--muted:#7A7872;--light:#3A3836;--inv:#2C2C2A;--border:#333330}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;overflow-x:hidden;transition:background .5s,color .5s}
body.loading{overflow:hidden;background:#2C2C2A!important;transition:none}
@media(hover:hover){body{cursor:none}#cur,#cf{display:block!important}}
#cur{display:none;position:fixed;width:7px;height:7px;background:#fff;border-radius:50%;pointer-events:none;z-index:10001;transform:translate(-50%,-50%);transition:transform .15s;mix-blend-mode:difference}
#cf{display:none;position:fixed;width:32px;height:32px;border:1px solid #fff;border-radius:50%;pointer-events:none;z-index:10000;transform:translate(-50%,-50%);opacity:.6;mix-blend-mode:difference}
.theme-toggle{display:flex;align-items:center;gap:.6rem;background:rgba(20,20,18,.55);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18);padding:.5rem .8rem;border-radius:100px;cursor:pointer;transition:background .4s;user-select:none}
[data-theme="light"] .theme-toggle{background:var(--bg-alt);border-color:var(--border)}
.toggle-track{width:32px;height:17px;background:var(--border);border-radius:100px;position:relative;flex-shrink:0}
[data-theme="dark"] .toggle-track{background:var(--muted)}
.toggle-thumb{position:absolute;top:2.5px;left:2.5px;width:12px;height:12px;background:var(--text);border-radius:50%;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
[data-theme="dark"] .toggle-thumb{transform:translateX(15px)}

#loader{position:fixed;inset:0;background:#2C2C2A;z-index:2000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.6rem;text-align:center;padding:2rem;transition:opacity 2.5s cubic-bezier(.4,0,.2,1);animation:lflashbg 0.7s ease 1.8s forwards}
#loader.out{opacity:0;pointer-events:none}
@keyframes lflashbg{
  0%  {background:#2C2C2A}
  6%  {background:#fff}
  12% {background:#2C2C2A}
  20% {background:#fff}
  24% {background:#2C2C2A}
  26% {background:#fff}
  30% {background:#2C2C2A}
  44% {background:#fff}
  48% {background:#2C2C2A}
  52% {background:#fff}
  55% {background:#2C2C2A}
  100%{background:#2C2C2A}
}
/* .l-flash désactivé — iOS ne peut pas dépasser le viewport Safari */
.l-flash{display:none}
/* Contenu visible au-dessus — SVG et texte restent blancs, invisibles sur fond blanc = effet flash propre */
.l-name,.l-sub,.l-camera-wrap{position:relative;z-index:1}
.l-name{font-family:var(--serif);font-weight:300;font-size:clamp(1.6rem,3.5vw,2.4rem);color:#F7F4EF;letter-spacing:.35em;text-transform:uppercase;opacity:0;animation:fu .8s ease .4s forwards;white-space:nowrap}
.l-sub{font-family:var(--sans);font-weight:200;font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;color:#C8C5BF;opacity:0;animation:fu .8s ease .7s forwards;text-align:center;max-width:90vw;line-height:1.8}
.l-bar{width:80px;height:52px;display:block}
.l-camera-wrap{position:relative;opacity:0;animation:fu .8s ease 1.1s forwards}
/* Point rouge — centré sur le carré flash : rect x=10,y=22,w=8,h=5 → centre (14, 24.5) */
.l-recdot{
  position:absolute;
  width:5px;height:5px;border-radius:50%;background:#e03030;
  left:14px;top:24.5px;
  transform:translate(-50%,-50%);
  opacity:0;
  animation:lrec .15s ease 1.85s forwards, lrecblink .45s steps(1) 2.0s 6
}
@keyframes lrec{to{opacity:1}}
@keyframes lrecblink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes fu{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:2rem 5rem;transition:padding .4s,background .4s,backdrop-filter .4s;background:linear-gradient(to bottom,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 100%);backdrop-filter:blur(0px)}
nav.scrolled{padding:1.4rem 5rem;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px)}
/* Nav fond clair sur toutes les pages sauf la home (qui a le carousel) */
body:not(.home) nav {
  background: color-mix(in srgb,var(--bg) 92%,transparent) !important;
  backdrop-filter: blur(14px);
}
body:not(.home) .nav-logo {
  color: var(--text) !important;
  text-shadow: none !important;
}
body:not(.home) .nav-links a {
  color: var(--text) !important;
  text-shadow: none !important;
}
body:not(.home) .burger span {
  background: var(--text) !important;
}
.nav-logo{font-family:var(--serif);font-weight:300;font-size:clamp(1.1rem,4vw,1.85rem);letter-spacing:.12em;text-transform:uppercase;color:#fff;text-decoration:none;text-shadow:0 1px 8px rgba(0,0,0,.35);transition:color .4s;white-space:nowrap}
nav.scrolled .nav-logo{color:var(--text);text-shadow:none}
.nav-links{display:flex;gap:clamp(.8rem,1.5vw,3rem);list-style:none;align-items:center}
.nav-links a{font-family:var(--sans);font-weight:400;font-size:clamp(.7rem,.8vw,1.1rem);letter-spacing:.18em;text-transform:uppercase;color:#fff;text-decoration:none;position:relative;padding-bottom:4px;transition:color .3s;text-shadow:0 1px 6px rgba(0,0,0,.3)}
nav.scrolled .nav-links a{color:var(--text);text-shadow:none}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:currentColor;transition:width .35s}
.nav-links a:hover::after{width:100%}
.burger{display:none;flex-direction:column;gap:6px;cursor:pointer;padding:8px;background:none;border:none}
.burger span{display:block;width:26px;height:1px;background:#fff;transition:transform .35s,opacity .35s,background .4s}
nav.scrolled .burger span{background:var(--text)}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-overlay{position:fixed;inset:0;background:var(--bg);z-index:150;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.ov-links{display:flex;flex-direction:column;align-items:center;gap:1.8rem}
.ov-links a,.ov-lieux-trigger{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,6vw,3.2rem);color:var(--text);text-decoration:none;letter-spacing:0;transition:color .3s,transform .3s}
.ov-links a:hover{opacity:.5}
.ov-toggles{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.ov-lang-btn,.ov-theme-btn{background:none;border:1px solid var(--border);padding:.6rem 1.2rem;color:var(--text);font-size:.8rem;letter-spacing:.15em;cursor:pointer;border-radius:100px;display:flex;align-items:center;gap:.5rem;transition:background .2s,color .2s}
.ov-lang-btn:hover,.ov-theme-btn:hover{background:var(--text);color:var(--bg)}
.nav-overlay.open{opacity:1;visibility:visible}
.ov-close{position:absolute;top:2rem;right:2rem;background:none;border:none;color:var(--text);font-size:1.8rem;cursor:pointer;opacity:.6;transition:opacity .2s;line-height:1;padding:.5rem}
.ov-close:hover{opacity:1}
.nav-overlay a{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,6vw,3.2rem);color:var(--text);text-decoration:none;transition:color .3s,transform .3s}
.nav-overlay a:hover{color:var(--muted);transform:translateX(8px)}
.ov-sub{font-family:var(--sans);font-weight:200;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-top:1rem}

/* CAROUSEL */
.carousel{position:relative;overflow:hidden;background:#111}
.c-strip{display:flex;align-items:flex-start;will-change:transform;transition:transform .75s cubic-bezier(.77,0,.175,1);cursor:grab;line-height:0;font-size:0}
.c-strip:active{cursor:grabbing}
.c-photo{flex:0 0 auto;position:relative;overflow:hidden}
.c-photo + .c-photo{border-left:2px solid rgba(247,244,239,.12)}
.c-photo img{width:100%;height:auto;display:block;pointer-events:none;vertical-align:bottom}
[data-theme="dark"] .c-photo img{filter:brightness(.85)}
.c-caption{position:absolute;bottom:2.5rem;left:3rem;z-index:10;pointer-events:none}
.c-caption h1{font-family:var(--serif);font-weight:300;font-size:clamp(.95rem,1.3vw,1.3rem);color:rgba(255,255,255,.85);line-height:1.35;letter-spacing:.03em}
.c-caption h1 em{font-style:italic;color:rgba(255,255,255,.6)}
.c-caption p{font-family:var(--sans);font-weight:200;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:.5rem}
.c-prev,.c-next{position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;width:52px;height:52px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:background .3s;user-select:none;backdrop-filter:blur(4px)}
.c-prev{left:1.5rem}.c-next{right:1.5rem}
.c-prev:hover,.c-next:hover{background:rgba(255,255,255,.22)}
.c-dots{position:absolute;bottom:2.2rem;right:3rem;display:flex;gap:.6rem;z-index:10}
.c-dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;transition:background .3s,transform .3s}
.c-dot.on{background:#fff;transform:scale(1.5)}
.c-scroll{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.8rem;z-index:10;opacity:.5}
.c-scroll span{font-family:var(--sans);font-weight:200;font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:#fff;writing-mode:vertical-rl}
.c-scroll-line{width:1px;height:45px;background:linear-gradient(to bottom,#fff,transparent);animation:sp 2s ease infinite}
@keyframes sp{0%,100%{opacity:.3}50%{opacity:.8}}

.strip{background:var(--bg-inv);color:var(--inv);padding:5rem;display:grid;grid-template-columns:1fr 2fr 1fr;gap:4rem;align-items:center;transition:background .5s,color .5s}
.strip-lbl{font-family:var(--sans);font-weight:200;font-size:.95rem;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
.strip-txt{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(1.3rem,2vw,1.9rem);line-height:1.65}
.strip-stats{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-end}
.stat-n{font-family:var(--serif);font-size:2.8rem;font-weight:300;line-height:1}
.stat-l{font-family:var(--sans);font-weight:200;font-size:.88rem;letter-spacing:.2em;text-transform:uppercase;opacity:.5;margin-top:.3rem}
.sh{padding:7rem 5rem 4rem;display:flex;align-items:flex-end;justify-content:space-between}
.stag{font-family:var(--sans);font-weight:200;font-size:1rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}
.stitle{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,2.6vw,2.8rem);line-height:1.15}
.stitle em{font-style:italic;color:var(--muted)}
.slink{font-family:var(--sans);font-weight:200;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:1rem;padding-bottom:.3rem;border-bottom:1px solid var(--border);transition:gap .3s,border-color .3s}
.slink:hover{gap:1.8rem;border-color:var(--text)}
.mgrid{padding:0 5rem 7rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.mcard{position:relative;overflow:hidden;aspect-ratio:3/4}
.mcard:nth-child(2){margin-top:4.5rem}
.mcard:nth-child(3){margin-top:-2rem}
.mcard img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.25,.46,.45,.94),filter .5s;filter:grayscale(10%);user-select:none;-webkit-user-drag:none;pointer-events:none}
[data-theme="dark"] .mcard img{filter:grayscale(20%) brightness(.86)}
.mcard:hover img{transform:scale(1.07);filter:grayscale(0%)}
.minfo{position:absolute;bottom:0;left:0;right:0;padding:1.4rem 1.8rem;background:rgba(20,20,18,.72)}
.mnames{font-family:var(--serif);font-weight:300;font-style:italic;font-size:1.45rem;color:#fff}
.mlieu{font-family:var(--sans);font-weight:200;font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:.4rem}
.services{background:var(--bg-alt);padding:7rem 5rem;transition:background .5s}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:3rem;margin-top:4rem}
.sitem{padding-top:2rem;border-top:1px solid var(--border);transition:padding-left .3s}
.sitem:hover{padding-left:.5rem}
.snum{font-family:var(--serif);font-size:1.05rem;color:var(--light);margin-bottom:1.5rem}
.sname{font-family:var(--serif);font-weight:300;font-size:clamp(1.4rem,1.8vw,2rem);line-height:1.35;margin-bottom:1rem}
.sname em{font-style:italic}
.sdesc{font-family:var(--sans);font-weight:300;font-size:clamp(1rem,1.1vw,1.2rem);line-height:1.9;color:var(--muted)}
.feat{height:85vh;min-height:500px;position:relative;overflow:hidden}
.feat-bg{position:absolute;top:-50%;left:0;width:100%;height:200%;background-size:cover;background-position:center;will-change:transform}
.feat-ov{position:absolute;inset:0;background:rgba(20,20,18,.42)}
@media(max-width:1024px){.feat{height:80vw;min-height:380px;max-height:600px}.feat-bg{top:0;height:100%}}
.feat-cnt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;padding:0 2rem}
.feat-ey{font-family:var(--sans);font-weight:200;font-size:.75rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.feat-q{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(1.4rem,3.5vw,3.4rem);color:#fff;text-align:center;max-width:760px;line-height:1.35}
.feat-cta{display:inline-block;font-family:var(--sans);font-weight:200;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.8) !important;text-decoration:none !important;padding-bottom:.3rem;border-bottom:1px solid rgba(255,255,255,.4);transition:color .3s,border-color .3s}
.feat-cta:hover{color:#fff !important;border-color:#fff}
@media(max-width:768px){.feat{background-attachment:scroll;height:80vw;min-height:380px}}
.process{padding:7rem 5rem;display:grid;grid-template-columns:1fr minmax(0,420px);gap:7rem;align-items:center;background:var(--bg-inv);transition:background .5s}
.pstep{padding:2.5rem 0;border-bottom:1px solid var(--border);display:flex;gap:2.2rem;align-items:flex-start;transition:padding-left .3s}
.pstep:hover{padding-left:.8rem}
.pn{font-family:var(--serif);font-size:1.1rem;color:var(--light);min-width:2rem;padding-top:.2rem}
.pt{font-family:var(--serif);font-weight:300;font-size:clamp(1.3rem,1.6vw,1.8rem);margin-bottom:.6rem}
.pt em{font-style:italic}
.pd{font-family:var(--sans);font-weight:300;font-size:clamp(1rem,1.1vw,1.2rem);line-height:1.9;color:var(--muted)}
.pimgw{position:relative}
.pimgw img{width:100%;aspect-ratio:3/4;object-fit:cover}
.pbadge{position:absolute;top:-1.5rem;right:-1.5rem;background:var(--bg-inv);color:var(--inv);padding:1.4rem 1.6rem;font-family:var(--serif);font-style:italic;font-size:1rem;line-height:1.55;max-width:200px;transition:background .5s,color .5s}
.testi{background:var(--bg-inv);color:var(--inv);padding:7rem 5rem;text-align:center;transition:background .5s,color .5s}
.tq{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(1.6rem,2.8vw,2.6rem);max-width:800px;margin:0 auto 2rem;line-height:1.55;transition:opacity .4s}
.ta{font-family:var(--sans);font-weight:200;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;opacity:.5}
.dots{display:flex;justify-content:center;gap:.7rem;margin-top:2.5rem}
.dot{width:6px;height:6px;border-radius:50%;background:var(--light);cursor:pointer;transition:background .3s,transform .3s}
.dot.on,.dot:hover{background:var(--inv);transform:scale(1.3)}
.insta{padding:7rem 5rem}
.igrid{display:grid;grid-template-columns:repeat(5,1fr);gap:.7rem;margin-top:3.5rem}
.iitem{aspect-ratio:1;overflow:hidden}
.iitem:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.iitem img{width:100%;height:100%;object-fit:cover;transition:transform .7s,filter .4s;filter:grayscale(12%)}
[data-theme="dark"] .iitem img{filter:grayscale(22%) brightness(.86)}
.iitem:hover img{transform:scale(1.08);filter:grayscale(0%)}
.cta{padding:7rem 5rem;background:var(--bg);display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;transition:background .5s}
.cta-t{font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,2.6vw,2.8rem);line-height:1.12}
.cta-t em{font-style:italic;color:var(--muted)}
.cta-d{font-family:var(--sans);font-weight:300;font-size:clamp(1rem,1.1vw,1.2rem);line-height:2;color:var(--muted);margin-bottom:3rem}
.cta-btn{display:inline-flex;align-items:center;gap:1.5rem;background:var(--text);color:var(--bg);padding:1.2rem 2.6rem;font-family:var(--sans);font-weight:200;font-size:.78rem;letter-spacing:.25em;text-transform:uppercase;text-decoration:none;transition:gap .3s}
.cta-btn-l{display:block;width:24px;height:1px;background:var(--bg);transition:width .35s}
.cta-btn:hover{gap:2.2rem}
.cta-btn:hover .cta-btn-l{width:40px}
footer{background:var(--bg-inv);color:var(--inv);padding:5rem 5rem 3rem;transition:background .5s}
.ftop{display:grid;grid-template-columns:2fr 1fr 1fr;gap:4rem;padding-bottom:4rem;border-bottom:1px solid rgba(128,128,128,.15)}
.flogo{font-family:var(--serif);font-weight:300;font-size:1.75rem;letter-spacing:.1em;margin-bottom:1.5rem}
.ftag{font-family:var(--sans);font-weight:300;font-size:1rem;line-height:1.9;opacity:.5;max-width:280px}
.fct{font-family:var(--sans);font-weight:200;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;opacity:.4;margin-bottom:1.5rem}
.flinks{list-style:none;display:flex;flex-direction:column;gap:.9rem}
.flinks a{font-family:var(--sans);font-weight:300;font-size:1rem;color:var(--inv);text-decoration:none;opacity:.5;transition:opacity .2s}
.flinks a:hover{opacity:1}
.fbot{display:flex;justify-content:space-between;align-items:center;padding-top:2.5rem}
.fcopy{font-family:var(--sans);font-weight:200;font-size:.82rem;letter-spacing:.1em;opacity:.28}
.fcopy-link{color:inherit;text-decoration:none;border-bottom:1px solid currentColor;transition:opacity .2s}
.fcopy-link:hover{opacity:.6}
.flangs{display:flex;gap:1.5rem}
.flangs a{font-family:var(--sans);font-weight:200;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;opacity:.28;color:var(--inv);text-decoration:none;transition:opacity .3s}
.flangs a.on,.flangs a:hover{opacity:1}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.rv{animation:fadeUp .9s ease both}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}
@media(max-width:1100px){
  nav,nav.scrolled{padding:1.2rem 1.8rem}
  .nav-links{display:none}
  .nav-logo{font-size:clamp(1rem,2.5vw,1.4rem);letter-spacing:.1em;white-space:nowrap}
  .burger{display:flex}
  .c-caption{left:1.5rem;bottom:4rem}
  .c-prev,.c-next{display:none}
  .c-dots{right:1.5rem}
  .c-scroll{display:none}
  .strip{grid-template-columns:1fr;padding:3.5rem 2rem;gap:2rem}
  .strip-stats{align-items:flex-start}
  .sh{padding:5rem 2rem 3rem;flex-direction:column;gap:1.5rem;align-items:flex-start}
  .mgrid{padding:0 2rem 5rem;grid-template-columns:1fr}
  .mcard:nth-child(2),.mcard:nth-child(3){margin-top:0}
  .services{padding:5rem 2rem}
  .sgrid{grid-template-columns:1fr 1fr;gap:2rem}
  .feat{height:60vh}
  .process{padding:5rem 2rem;grid-template-columns:1fr;gap:3rem}
  .pimgw{max-width:400px;margin:0 auto}
  .pbadge{right:0}
  .testi{padding:5rem 2rem}
  .insta{padding:5rem 2rem}
  .igrid{grid-template-columns:repeat(3,1fr)}
  .iitem:first-child{grid-column:span 1;grid-row:span 1;aspect-ratio:1}
  .cta{padding:5rem 2rem;grid-template-columns:1fr;gap:2.5rem}
  footer{padding:4rem 2rem 2rem}
  .ftop{grid-template-columns:1fr 1fr;gap:2rem}
  .theme-toggle{bottom:1.5rem;right:1.5rem}
}
@media(max-width:500px){.sgrid{grid-template-columns:1fr}.ftop{grid-template-columns:1fr}}

/* CAROUSEL HOVER */
.c-photo{text-decoration:none;display:block}
.c-hover{
  position:absolute;inset:0;
  background:rgba(20,20,18,0);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:.5rem;
  transition:background .4s;
  pointer-events:none;
}
.c-photo:hover .c-hover{background:rgba(20,20,18,.55)}
.c-hover-name{
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(.85rem,1.1vw,1.25rem);color:#fff;
  transform:translateY(8px);opacity:0;
  transition:transform .4s,opacity .4s;
  text-align:center;padding:0 .5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.c-hover-cta{
  font-family:var(--sans);font-weight:200;
  font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.75);
  transform:translateY(6px);opacity:0;
  transition:transform .4s .06s,opacity .4s .06s;
  white-space:nowrap;
}
.c-photo:hover .c-hover-name{transform:none;opacity:1}
.c-photo:hover .c-hover-cta{transform:none;opacity:1}



/* INSTAGRAM SECTION */
.insta-section{padding:5rem 5rem 4rem;background:var(--bg-alt);transition:background .5s}
.insta-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2.5rem}
.insta-handle{font-family:var(--serif);font-weight:300;font-size:clamp(1.4rem,2.2vw,2.2rem);color:var(--text);text-decoration:none;display:block;margin-top:.3rem;transition:color .3s}
.insta-handle:hover{color:var(--muted)}
.insta-wrap{overflow:hidden;margin:0 -5rem}
.insta-track{display:flex;gap:4px;animation:scrollInsta 30s linear infinite;width:max-content}
.insta-track:hover{animation-play-state:paused}
@keyframes scrollInsta{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.insta-photo{flex:0 0 auto;width:180px;height:180px;overflow:hidden;display:block}
.insta-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s,filter .4s;filter:grayscale(10%)}
.insta-photo:hover img{transform:scale(1.07);filter:grayscale(0%)}
@media(max-width:900px){
  .insta-section{padding:4rem 2rem 3rem}
  .insta-wrap{margin:0 -2rem}
  .insta-photo{width:130px;height:130px}
}


/* GOOGLE REVIEWS — section sombre sous le carousel */
.grev{
  display:grid;
  grid-template-columns:220px 1fr;
  background:#2C2C2A;
  color:rgba(247,244,239,.88);
  min-height:220px;
  overflow:hidden;
  margin:0;
}
/* Supprime l'espace blanc entre grev et footer (Elementor ajoute des marges) */
.grev+*,.grev~footer,[class*="elementor"]>.grev{margin-bottom:0!important;padding-bottom:0!important}
/* Colonne gauche : score + logo */
.grev-left{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.6rem;
  padding:3rem 2rem;
  border-right:1px solid rgba(247,244,239,.12);
}
.grev-logo-wrap{
  width:48px;height:48px;background:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.3);
  margin-bottom:.4rem;
}
.grev-score{
  font-family:var(--serif);font-weight:300;font-size:2.8rem;line-height:1;
  color:#fff;
}
.grev-stars{
  color:#F4B942;font-size:1.1rem;letter-spacing:.1em;
}
.grev-label{
  font-family:var(--sans);font-weight:200;font-size:.65rem;
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(247,244,239,.5);text-align:center;
}
.grev-cta{
  margin-top:.8rem;
  font-family:var(--sans);font-weight:200;font-size:.68rem;
  letter-spacing:.18em;text-transform:uppercase;
  color:rgba(247,244,239,.7);text-decoration:none;
  padding-bottom:.25rem;border-bottom:1px solid rgba(247,244,239,.25);
  transition:color .3s,border-color .3s;
}
.grev-cta:hover{color:#fff;border-color:rgba(247,244,239,.7)}

/* Colonne droite : cards scrollantes */
.grev-right{display:flex;align-items:center;overflow:hidden;padding:2.5rem 0}
.grev-track-wrap{overflow:hidden;width:100%}
.grev-track{
  display:flex;gap:1.5rem;padding:0 2.5rem;
  animation:scrollGrev 70s linear infinite;
  width:max-content;
}
.grev-track:hover{animation-play-state:paused}
@keyframes scrollGrev{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

.grev-card{
  flex:0 0 300px;
  background:rgba(247,244,239,.06);
  border:1px solid rgba(247,244,239,.1);
  padding:1.6rem 1.8rem;
  text-decoration:none;color:rgba(247,244,239,.88);
  display:block;
  transition:background .3s,border-color .3s;
}
.grev-track-mobile{display:none}
.grev-card:hover{background:rgba(247,244,239,.1);border-color:rgba(247,244,239,.22)}
.grev-card-head{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem}
.grev-av{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-weight:300;font-size:.65rem;
  letter-spacing:.04em;color:rgba(255,255,255,.9);
}
.grev-name{font-family:var(--sans);font-weight:300;font-size:.85rem;color:rgba(247,244,239,.9);margin-bottom:.2rem}
.grev-cs{color:#F4B942;font-size:.78rem;letter-spacing:.06em}
.grev-date{font-family:var(--sans);font-weight:200;font-size:.6rem;color:rgba(247,244,239,.4);margin-left:auto;white-space:nowrap;align-self:flex-start;padding-top:.1rem}
.grev-txt{
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:.95rem;line-height:1.75;
  color:rgba(247,244,239,.65);
}

@media(max-width:900px){
  .grev{grid-template-columns:1fr;grid-template-rows:auto auto}
  .grev-left{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:1rem;padding:2rem;border-right:none;border-bottom:1px solid rgba(247,244,239,.12)}
  .grev-score{font-size:2.2rem}
  .grev-right{padding:1.5rem 0;height:auto}
  .grev-track-wrap{overflow:visible}
  .grev-track{display:none}
  .grev-track-mobile{display:flex;flex-direction:column;gap:1rem;padding:0 1.5rem}
  .grev-card{flex:none;width:100%}
}


/* QSTRIP */
.qstrip{
  display:grid;grid-template-columns:200px 1fr 220px;
  background:var(--bg-inv);color:var(--inv);
  padding:3rem 5rem;gap:3rem;align-items:center;
  transition:background .5s;
}
.qs-left{display:flex;flex-direction:column;gap:.3rem}
.qs-title{font-family:var(--sans);font-weight:200;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--inv);opacity:.55}
.qs-sub{font-family:var(--serif);font-weight:300;font-size:1.8rem;color:var(--inv)}
.qs-center{position:relative;min-height:6rem;display:flex;align-items:center;justify-content:center;border-left:1px solid rgba(127,127,127,.25);border-right:1px solid rgba(127,127,127,.25);padding:0 2.5rem}
.qs-reviews-rotator{width:100%;text-align:center}
.qs-review{
  position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);
  display:block;text-decoration:none;color:inherit;
  opacity:0;transition:opacity 1s ease;pointer-events:none;
  padding:0 1rem;
}
.qs-review.active{opacity:1;pointer-events:auto}
.qs-quote{font-family:var(--serif);font-size:1.4rem;color:var(--inv);opacity:.3;vertical-align:baseline;line-height:1}
.qs-quote--close{white-space:nowrap} /* classe optionnelle si présente dans le HTML */
.qs-rtext{display:inline;font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(1.1rem,1.6vw,1.45rem);line-height:1.7;color:var(--inv);opacity:.85;margin:0 .2rem}
/* Empêcher le guillemet fermant seul sur une ligne */
.qs-review { word-spacing: -.05em; }
.qs-quote:last-of-type { display: inline; }
.qs-rauthor{display:block;margin-top:.7rem;font-family:var(--sans);font-weight:200;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--inv);opacity:.5}
.qs-right{display:flex;flex-direction:column;gap:1.2rem;align-items:flex-end}
.qs-n{font-family:var(--serif);font-size:2.4rem;font-weight:300;line-height:1;color:var(--inv)}
.qs-l{font-family:var(--sans);font-weight:200;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--inv);opacity:.5;margin-top:.2rem}

/* SEE ALL */
.see-all-wrap{padding:4rem 5rem;text-align:center;border-bottom:1px solid var(--border)}
.see-all-btn{font-family:var(--sans);font-weight:400;font-size:1rem;letter-spacing:.25em;text-transform:uppercase;color:var(--text);text-decoration:none;padding-bottom:.4rem;border-bottom:2px solid var(--text);transition:border-color .3s,opacity .3s}
.see-all-btn:hover{opacity:.6}

/* MASONRY — layout géré par JS (masonry.js), gap uniforme H et V */
.masonry-section{padding:5rem 5rem 6rem;background:var(--bg);transition:background .5s;position:relative}
.masonry-grid{
  position:relative;
  max-width:1400px;margin:0 auto;
}
.m-item{position:absolute;overflow:hidden;cursor:pointer;}
.m-item img{width:100%;display:block;transition:transform .5s,filter .4s;filter:grayscale(8%);user-select:none;-webkit-user-drag:none;pointer-events:none}
.m-item:hover img{transform:scale(1.04);filter:grayscale(0%)}
.m-item::after{content:'';position:absolute;inset:0;background:rgba(20,20,18,0);transition:background .4s}
.m-item:hover::after{background:rgba(20,20,18,.2)}
@media(max-width:900px){
  .masonry-section{padding:4rem 1.2rem 0}
}
/* Colonnes PHP mobile cachées — on utilise uniquement le JS */
.masonry-col{display:none!important}

/* LIGHTBOX */
.lightbox{
  position:fixed;inset:0;z-index:9999;
  background:rgba(10,10,8,.95);
  display:none;align-items:center;justify-content:center;
}
.lightbox.open{display:flex}
.lb-img{max-height:88vh;max-width:88vw;object-fit:contain;display:block}
.lb-close{position:absolute;top:2rem;right:2rem;background:none;border:none;color:rgba(247,244,239,.7);font-size:1.8rem;cursor:pointer;padding:.5rem;transition:color .3s;z-index:2}
.lb-close:hover{color:#fff}
.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:rgba(247,244,239,.6);font-size:4rem;cursor:pointer;padding:1rem;transition:color .3s;line-height:1;z-index:2}
.lb-prev{left:2rem}.lb-next{right:2rem}
.lb-prev:hover,.lb-next:hover{color:#fff}

@media(max-width:900px){
  .qstrip{grid-template-columns:1fr;padding:2.5rem 2rem;gap:1.5rem}
  .qs-center{border-left:none;border-right:none;border-top:1px solid rgba(247,244,239,.15);border-bottom:1px solid rgba(247,244,239,.15);padding:2rem 0;min-height:8rem}
  .qs-right{flex-direction:row;align-items:center;gap:2.5rem}
  .see-all-wrap{padding:2.5rem 2rem}
}


/* GREV LIGHT MODE */


/* CAROUSEL BLACK LINE FIX */
.carousel{font-size:0;line-height:0}
.c-strip{font-size:0;line-height:0}
a.c-photo{font-size:0;line-height:0;display:block;vertical-align:bottom}
.c-photo img{display:block;width:100%;height:100%;object-fit:cover;vertical-align:bottom;line-height:0}


/* CONTROLS WRAP */
.controls-wrap{
  position:fixed;bottom:2rem;right:2rem;z-index:500;
  display:flex;flex-direction:row;gap:.6rem;align-items:center;
}
.theme-toggle{position:static}

/* LANG TOGGLE */
.lang-toggle{
  display:flex;align-items:center;gap:.6rem;
  background:rgba(20,20,18,.55);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.18);
  padding:.5rem .8rem;border-radius:100px;cursor:pointer;
  transition:background .4s;user-select:none;
}
[data-theme="light"] .lang-toggle{background:var(--bg-alt);border-color:var(--border)}
.lang-flag{display:flex;align-items:center;line-height:0;border-radius:2px;overflow:hidden;transition:opacity .3s}
.lang-flag svg{display:block;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.lang-toggle.fr #langEN{opacity:.38}
.lang-toggle.en #langFR{opacity:.38}
.lang-toggle.fr #langThumb{transform:translateX(0)}
.lang-toggle.en #langThumb{transform:translateX(22px)}


/* CAROUSEL HINT */
.carousel-hint{
  text-align:center;
  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:1.05rem;
  color:var(--text);
  padding:1.2rem 1rem;
  letter-spacing:.02em;
  background:var(--bg);
  transition:background .5s,color .5s;
}
/* SERVICES 5 colonnes */
.sgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px}
@media(max-width:900px){.sgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.sgrid{grid-template-columns:1fr}}


/* Process on inverted bg - always use --inv for text */
.process .stag{color:var(--inv);opacity:.5}
.process .stitle,.process .pt{color:var(--inv)}
.process .pn{color:var(--inv);opacity:.3}
.process .pd{color:var(--inv);opacity:.6}
.process .pstep{border-top-color:var(--inv);border-top-width:1px;border-top-style:solid;opacity:1}
.process .pstep{border-top-color:var(--border)}


/* ── SERVICES: MENU FORMAT ── */
.services{background:var(--bg);padding:3rem 5rem 5rem;transition:background .5s;text-align:center}
.menu-card{
  max-width:560px;margin:4rem auto 0;
  border:1px solid var(--border);
  padding:3.5rem 4rem;
  background:var(--bg-alt);
  transition:background .5s,border-color .5s;
}
.menu-deco{
  font-family:var(--serif);font-size:.8rem;letter-spacing:.3em;
  color:var(--muted);text-align:center;margin-bottom:2rem;
}
.menu-deco:last-child{margin-top:2.5rem;margin-bottom:0}
.menu-list{list-style:none;padding:0;margin:0}
.menu-item{
  display:flex;flex-direction:column;align-items:center;gap:.3rem;
  padding:.9rem 0;text-align:center;
}
.menu-sep{
  text-align:center;color:var(--light);
  font-family:var(--serif);font-size:.7rem;letter-spacing:.2em;
  padding:.2rem 0;
}
.piment{font-size:.85rem;filter:grayscale(0%) saturate(2);color:red;letter-spacing:-.05em;white-space:nowrap;display:block;text-align:center;margin-bottom:.2rem}
.menu-entry strong{
  display:block;
  font-family:'Courier New',Courier,monospace;
  font-size:1.05rem;font-weight:600;letter-spacing:.02em;
  color:var(--text);margin-bottom:.25rem;
}
.menu-entry em{
  font-family:'Courier New',Courier,monospace;
  font-size:.88rem;font-weight:400;font-style:italic;
  color:var(--muted);line-height:1.5;
}
.menu-option .menu-entry em{font-size:.82rem;opacity:.75}

/* ── SEO BLOCK ── */
.seo-block{
  max-width:780px;margin:0 auto;
  padding:3rem 5rem 4rem;
  text-align:left;
}
.seo-h{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1.2rem,1.8vw,1.7rem);
  margin-bottom:1.5rem;line-height:1.3;
  color:var(--text);
}
.seo-block p{
  font-family:var(--sans);font-weight:300;
  font-size:.95rem;line-height:1.9;
  color:var(--muted);margin-bottom:1rem;
}
.seo-link{color:var(--text);text-decoration:underline;text-underline-offset:3px;transition:opacity .3s}
.seo-link:hover{opacity:.6}

/* ── TESTIMONIALS ── */
.testi{
  background:var(--bg-inv);
  padding:6rem 5rem;text-align:center;
  transition:background .5s;
}
.testi .stag{color:var(--inv);opacity:.5}
.testi .stitle{color:var(--inv)}
.tbox{max-width:700px;margin:0 auto 2rem;min-height:8rem}
.tslide{transition:opacity .5s}
.tq{
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(1.2rem,1.8vw,1.6rem);line-height:1.7;
  color:var(--inv);margin-bottom:1.5rem;
}
.ta{
  font-family:var(--sans);font-weight:200;font-size:.75rem;
  letter-spacing:.25em;text-transform:uppercase;color:var(--inv);opacity:.5;
}
.tdots{display:flex;justify-content:center;gap:.7rem;margin-top:2.5rem}
.dot{width:6px;height:6px;border-radius:50%;background:var(--inv);opacity:.3;cursor:pointer;transition:opacity .3s}
.dot.active{opacity:1}

/* ── PROCESS text on --bg-inv ── */
.process .stag{color:var(--inv);opacity:.5 !important}
.process .stitle{color:var(--inv) !important}
.process .pn{color:var(--inv);opacity:.3 !important}
.process .pt{color:var(--inv) !important}
.process .pd{color:var(--inv);opacity:.65 !important}
.process .pstep{border-top-color:var(--border) !important}

/* ── RESPONSIVE FIXES ── */
@media(max-width:768px){
  .menu-card{padding:2.5rem 1.5rem}
  .seo-block{padding:2rem 1.5rem 3rem}
  .feat{height:380px}
  .testi{padding:4rem 1.5rem}
  .services{padding:4rem 1.5rem}
}
@media(max-width:500px){
  /* iPhone: carousel 1 photo, no truncation */
  .c-hover-name{font-size:.8rem}
  .c-hover-cta{font-size:.5rem;letter-spacing:.15em}
  /* Nav logo - prevent wrap */
  .nav-logo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:65vw}
}
/* iPhone landscape: carousel height cap */
@media(max-width:900px) and (orientation:landscape){
  /* getN() returns 2 for <820px - this handles landscape iPhone */
  #carousel{max-height:70vw !important}
}


/* ── WHATSAPP FLOTTANT ── */
.wa-float{
  position:fixed;bottom:2rem;right:2rem;z-index:900;
  display:flex;align-items:center;justify-content:center;
  background:#25D366;color:#fff;
  width:48px;height:48px;padding:0;
  border-radius:50%;
  box-shadow:0 4px 20px rgba(37,211,102,.35);
  cursor:pointer;border:none;
  transition:transform .25s,box-shadow .25s;
}
.wa-float:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(37,211,102,.45)}
.wa-float svg{pointer-events:none}

/* Panel contact (desktop + mobile) */
.wa-qr-panel{
  position:fixed;bottom:5.5rem;right:2rem;z-index:901;
  background:var(--bg);border:1px solid var(--border);
  padding:1.6rem 1.4rem;text-align:center;
  box-shadow:0 8px 32px rgba(0,0,0,.12);
  opacity:0;visibility:hidden;
  transform:translateY(8px) scale(.97);
  transition:opacity .3s,visibility .3s,transform .3s;
  pointer-events:none;min-width:220px;max-width:260px;
}
.wa-qr-panel.visible{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.wa-panel-title{
  font-family:var(--serif);font-weight:300;font-size:1rem;
  color:var(--text);margin-bottom:1.2rem;line-height:1.4;
}
.wa-panel-actions{display:flex;flex-direction:column;gap:.7rem;}
.wa-panel-btn{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--sans);font-weight:300;font-size:.72rem;
  letter-spacing:.15em;text-transform:uppercase;
  padding:.75rem 1rem;border:1px solid var(--border);
  text-decoration:none;color:var(--text);
  transition:background .25s,color .25s,border-color .25s;
  cursor:pointer;background:none;width:100%;
}
.wa-panel-btn:hover{background:var(--text);color:var(--bg);border-color:var(--text);}
.wa-panel-btn--wa{
  background:#25D366;color:#fff;border-color:#25D366;
}
.wa-panel-btn--wa:hover{background:#1ebe5d;border-color:#1ebe5d;color:#fff;}
.wa-panel-sep{
  font-family:var(--sans);font-size:.65rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin:.1rem 0;
}

/* Mobile : panel s'affiche aussi */
@media(max-width:768px){
  .wa-qr-panel{right:1.2rem;bottom:5rem;min-width:200px;}
  .wa-float{bottom:1.2rem;right:1.2rem;}
}

/* Bouton intégré dans la section CTA */
.wa-cta-btn{
  display:inline-flex;align-items:center;gap:.6rem;
  background:#25D366;color:#fff;
  font-family:var(--sans);font-weight:300;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  padding:.8rem 2rem;border:none;cursor:pointer;border-radius:100px;
  text-decoration:none;
  transition:transform .25s,box-shadow .25s;
  box-shadow:0 4px 16px rgba(37,211,102,.3);
}
.wa-cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(37,211,102,.4)}
.wa-cta-btn svg{width:18px;height:18px;flex-shrink:0}


/* ── TOGGLES NAV (compacts, inline) ── */
.nav-toggles{display:flex;align-items:center;gap:.6rem;margin-left:.8rem;padding-left:.8rem;border-left:1px solid var(--border)}
.nav-lang-btn,.nav-theme-btn{
  background:none;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  padding:.3rem;opacity:.6;transition:opacity .3s;
  color:var(--text);font-size:.9rem;line-height:1;
}
.nav-lang-btn:hover,.nav-theme-btn:hover{opacity:1}
.nav-lang-btn svg{display:block;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
/* Cacher les anciens controls-wrap au cas où */
.controls-wrap{display:none!important}
/* Mobile : toggles dans le menu overlay */
@media(max-width:480px){
  .nav-toggles{display:none}

}


/* Delays cascade par section */
.carousel-hint.rv{animation-delay:.1s}
.qstrip.rv,.qstrip .rv{animation-delay:.15s}
.see-all-wrap.rv{animation-delay:.1s}
.seo-block.rv{animation-delay:.2s}
.services .rv{animation-delay:.15s}
.masonry-section.rv,.masonry-section .rv{animation-delay:.1s}
.process .rv{animation-delay:.15s}
.feat .rv,.testi .rv{animation-delay:.1s}
.insta-section .rv{animation-delay:.1s}
.cta .rv{animation-delay:.1s}
.blog-hero.rv{animation-delay:.1s}
.d1{animation-delay:.1s}.d2{animation-delay:.2s}.d3{animation-delay:.3s}.d4{animation-delay:.4s}.d5{animation-delay:.5s}



/* ── GALERIE SINGLE ─────────────────────────────────────────── */
.gallery-single{min-height:60vh}
.see-all-btn{font-family:var(--sans);font-weight:200;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text);text-decoration:none;border-bottom:1px solid var(--text);padding-bottom:2px;transition:opacity .3s}
.see-all-btn:hover{opacity:.5}

/* ── LIGHTBOX ───────────────────────────────────────────────── */
.rl-lb-overlay{position:fixed;inset:0;background:rgba(14,14,12,.85);z-index:9998;opacity:0;pointer-events:none;transition:opacity .3s}
.rl-lb-overlay.active{opacity:1;pointer-events:all}
.rl-lb{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.rl-lb.active{opacity:1;pointer-events:all}
.rl-lb-img-wrap{position:relative;max-width:70vw;max-height:80vh;display:flex;align-items:center;justify-content:center}
.rl-lb-img-wrap img{max-width:70vw;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:2px;transition:opacity .25s;box-shadow:0 8px 40px rgba(0,0,0,.5)}
.rl-lb-loader{position:absolute;width:32px;height:32px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--cream);border-radius:50%;animation:spin .8s linear infinite;display:none}
@keyframes spin{to{transform:rotate(360deg)}}
.rl-lb-close{position:fixed;top:1.5rem;right:2rem;background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer;opacity:.7;transition:opacity .2s;z-index:10000;font-family:var(--sans)}
.rl-lb-close:hover{opacity:1}
.rl-lb-prev,.rl-lb-next{position:fixed;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;opacity:.6;transition:opacity .2s;z-index:10000;padding:1rem;font-family:var(--sans)}
.rl-lb-prev{left:1.5rem}
.rl-lb-next{right:1.5rem}
.rl-lb-prev:hover,.rl-lb-next:hover{opacity:1}
.rl-lb-counter{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);font-family:var(--sans);font-weight:200;font-size:.75rem;letter-spacing:.2em;color:rgba(255,255,255,.6);z-index:10000}
@media(max-width:768px){
  .rl-lb-img-wrap img{max-width:92vw;max-height:75vh}
  .rl-lb-img-wrap{max-width:92vw}
  .rl-lb-prev{left:.5rem}
  .rl-lb-next{right:.5rem}
  .rl-lb-prev,.rl-lb-next{font-size:1.5rem}
}

/* ── OVERRIDE Elementor prefers-reduced-motion ──────────────── */
#cStrip,
.c-strip {
  transition: transform .75s cubic-bezier(.77,0,.175,1) !important;
}

/* ── ELEMENTOR : suppression padding/margin sur conteneurs shortcodes pleine largeur ── */
.elementor-widget-shortcode,
.elementor-widget-shortcode .elementor-widget-container {
    padding: 0 !important;
    margin: 0 !important;
}
/* Supprime padding sur la section Elementor qui contient le shortcode grev */
.elementor-widget-shortcode:has(.grev),
.elementor-widget-shortcode:has(.grev) .elementor-widget-container,
.elementor-element:has(.grev) {
    padding: 0 !important;
    margin: 0 !important;
}

/* ── ELEMENTOR : pleine largeur forcée pour tous les conteneurs ── */
.elementor-section-wrap > .elementor-container,
.e-con,
.e-con-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100% !important;
}

/* ── ELEMENTOR : suppression padding sur conteneurs pleine largeur (e-con-full) ── */
:is(.elementor-section-wrap, [data-elementor-id]) > .e-con.e-con-full {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.e-con.e-con-full > .e-con-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100% !important;
}

/* ── AVAILABILITY ─────────────────────────────────────────────────────────── */
.availability{padding:4rem 5rem;background:var(--bg);transition:background .5s}
.availability .rv{max-width:600px}
.avail-sub{font-family:var(--sans);font-weight:300;font-size:.9rem;color:var(--muted);margin-top:.5rem}
.avail-nav{display:flex;align-items:center;gap:2rem;margin:2.5rem 0 1.5rem}
.avail-prev,.avail-next{background:none;border:1px solid var(--muted);color:var(--text);width:36px;height:36px;cursor:pointer;font-size:1rem;transition:background .2s,color .2s}
.avail-prev:hover,.avail-next:hover{background:var(--text);color:var(--bg)}
.avail-prev:disabled{opacity:.3;cursor:default}
.avail-month-label{font-family:var(--serif);font-weight:300;font-size:1.3rem;color:var(--text);min-width:180px}
.avail-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.avail-weekdays span{font-family:var(--sans);font-weight:300;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center;padding:.4rem 0}
.avail-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.avail-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-weight:300;font-size:.85rem;border-radius:4px;transition:background .2s,color .2s;position:relative}
.avail-day span{pointer-events:none}
.avail-day.empty{background:transparent}
.avail-day.past{color:var(--muted);opacity:.35}
.avail-day.busy{background:#F2D0D0;color:#a83228}
.avail-day.busy::after{content:'';position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:#a83228}
.avail-day.free{background:#D4E6D4;color:#2a4a2a}
.avail-day.free:hover{background:#c0d8c0;cursor:pointer}
.avail-day.today{outline:2px solid var(--text);outline-offset:-2px}
.avail-day.weekend{background:#B8D4B8;color:#1e3a1e}
.avail-day.weekend:hover{background:#a0c4a0;cursor:pointer}
.avail-legend{display:flex;gap:2rem;margin-top:1.5rem;flex-wrap:wrap}
.avail-legend-item{display:flex;align-items:center;gap:.5rem;font-family:var(--sans);font-weight:300;font-size:.78rem;color:var(--muted)}
.avail-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.avail-dot.free{background:#7a9e7a}
.avail-dot.busy{background:#a83228}
.avail-dot.past{background:var(--muted);opacity:.4}
.avail-grid-wrap,.avail-nav,.avail-legend,.avail-cta{max-width:560px}
@media(max-width:768px){
  .availability{padding:5rem 2rem}
  .avail-day{font-size:.75rem}
}

/* ── DATE POPUP ── */
.date-popup-overlay{position:fixed;inset:0;background:rgba(20,20,18,.55);z-index:2000;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;display:flex;align-items:center;justify-content:center;padding:1rem;overflow-y:auto;-webkit-overflow-scrolling:touch}
.date-popup-overlay.open{opacity:1;visibility:visible}
.date-popup{background:var(--bg);max-width:480px;width:100%;padding:3rem;position:relative;transform:translateY(16px);transition:transform .3s;margin:auto;max-height:none}
.date-popup-overlay.open .date-popup{transform:none}
.date-popup-close{position:absolute;top:1.2rem;right:1.5rem;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--text);opacity:.5;transition:opacity .2s;line-height:1}
.date-popup-close:hover{opacity:1}
.date-popup-contact{font-family:var(--sans);font-weight:300;font-size:.85rem;letter-spacing:.05em;color:var(--text);margin-bottom:1.5rem}
.date-popup-btns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2rem}
.date-popup-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:1.4rem 1rem;border:1px solid var(--text);background:transparent;cursor:pointer;transition:background .2s,border-color .2s;font-family:var(--sans);font-weight:300;font-size:.75rem;letter-spacing:.1em;color:var(--text)}
.date-popup-btn.active{background:var(--text);color:var(--bg)}
.date-popup-btn svg{width:22px;height:22px;flex-shrink:0}
.date-popup-btn--solo{width:100%;margin-top:.5rem;flex-direction:row;gap:.75rem;justify-content:center;text-decoration:none;padding:1.4rem 1.5rem}
.dp-formule-price{font-size:1.2em;opacity:.9;font-weight:700;display:block;margin-top:.4rem}
.date-popup-form{display:none}
.date-popup-form.open{display:block}
.dpf-label{display:block;font-family:var(--sans);font-weight:300;font-size:.7rem;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:.5rem}
.dpf-label-hint{font-size:.65rem;letter-spacing:.06em;opacity:.8;text-transform:none}
.dpf-label-hint--required{color:#c0625a;opacity:1}
.dpf-field{margin-bottom:1.2rem}
.dpf-input,.dpf-textarea{width:100%;background:none;border:none;border-bottom:1px solid var(--border);padding:.5rem 0;font-family:var(--sans);font-weight:300;font-size:.95rem;color:var(--text);outline:none;transition:border-color .2s;resize:none}
.dpf-input:focus,.dpf-textarea:focus{border-bottom-color:var(--text)}
#dpForm_tarifs .dpf-input::placeholder,#dpForm_tarifs .dpf-textarea::placeholder{color:#c0625a;opacity:.75}
.dpf-textarea{min-height:240px;max-height:400px;line-height:1.7;resize:vertical;overflow-y:auto}
.dpf-actions{display:flex;gap:.75rem;align-items:stretch;margin-top:1.5rem}
.dpf-actions .dpf-submit{flex:1}
.dpf-submit{width:100%;padding:1.2rem;background:var(--text);color:var(--bg);border:none;font-family:var(--sans);font-weight:300;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:opacity .2s}
.dpf-submit:hover{opacity:.8}
.dpf-submit--wa{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#25D366!important;color:#fff!important}

/* Mobile ≤600px : modale plein écran, textarea extensible */
@media(max-width:600px){
.date-popup-overlay{padding:0!important;align-items:stretch!important;overflow:hidden!important}
.date-popup{padding:1.25rem!important;margin:0!important;max-width:100%!important;width:100%!important;height:100vh!important;height:-webkit-fill-available!important;height:100dvh!important;max-height:none!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;transform:none!important;transition:none!important}
.date-popup-overlay.open .date-popup{transform:none}
.date-popup-contact{margin-bottom:.6rem!important}
.date-popup-btns{gap:.5rem!important;margin-bottom:.75rem!important}
.date-popup-btn{padding:.75rem .5rem!important;gap:.2rem!important}
.date-popup-btn svg{display:none!important}
.dp-formule-price{font-size:1em!important;margin-top:.1rem!important}
.date-popup-form.open{display:flex!important;flex-direction:column!important;flex:1!important;min-height:0!important}
#dpForm_tarifs{display:flex!important;flex-direction:column!important;flex:1!important;min-height:0!important}
#dpForm_tarifs .dpf-field--msg{flex:1!important;display:flex!important;flex-direction:column!important;min-height:0!important;margin-bottom:0!important}
#dpForm_tarifs .dpf-field--msg .dpf-textarea{flex:1!important;min-height:0!important;max-height:none!important;resize:none!important;overflow-y:auto!important}
.dpf-input{padding:.35rem 0!important}
.dpf-field{margin-bottom:.5rem!important}
.dpf-label{font-size:.65rem!important;margin-bottom:3px!important}
.dpf-actions{margin-top:.75rem!important;flex-shrink:0!important}
}

/* ── CAMERA CURSOR — effet sur nav-logo ── */
#cam-cursor{
  position:fixed;pointer-events:none;z-index:9990;
  opacity:0;transition:opacity .25s ease;
  transform:translate(-50%,-110%);
}
#cam-cursor.visible{opacity:1}
#cam-cursor svg{width:52px;height:34px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}
#cam-dot{
  position:fixed;pointer-events:none;z-index:9991;
  width:5px;height:3px;border-radius:1px;background:#e03030;
  opacity:0;transform:translate(-50%,-50%);
  transition:opacity .2s;
}
#cam-dot.visible{opacity:1}

/* ═══════════════════════════════════════════════════════════
   SINGLE POST — double layout galerie / article
   ═══════════════════════════════════════════════════════════ */

/* ── Hero commun ─────────────────────────────────────────── */
.sp-hero{
  position:relative;height:100vh;min-height:500px;
  overflow:hidden;display:flex;align-items:flex-end;
}
.sp-hero--article{height:70vh;}
.sp-hero-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;
}
.sp-hero-ov{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(15,15,13,.85) 0%,rgba(15,15,13,.1) 60%,transparent 100%);
}
.sp-hero-cnt{
  position:relative;z-index:2;
  padding:4rem 5rem;width:100%;
}
.sp-eyebrow{
  font-family:var(--sans);font-weight:200;font-size:.7rem;
  letter-spacing:.4em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin-bottom:1rem;
  padding-right:.4em; /* compense trailing letter-spacing Safari iOS */
}
.sp-title{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1.6rem,3.5vw,3.5rem);
  line-height:1.02;letter-spacing:-.01em;
  color:#fff;margin-bottom:1rem;
  max-width:900px;
}
.sp-lieu{
  font-family:var(--sans);font-weight:200;font-size:.85rem;
  letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.5);margin-bottom:2rem;
}
.sp-article-meta{
  font-family:var(--sans);font-weight:200;font-size:.75rem;
  letter-spacing:.15em;color:rgba(255,255,255,.5);
}
.sp-hero-actions{
  display:flex;gap:1.5rem;align-items:center;margin-top:2rem;
}
.sp-share-trigger,.sp-comments-trigger{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--sans);font-weight:200;font-size:.7rem;
  letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.7);background:none;border:1px solid rgba(255,255,255,.25);
  padding:.55rem 1.2rem;cursor:pointer;text-decoration:none;
  transition:all .25s;
}
.sp-share-trigger:hover,.sp-comments-trigger:hover{
  background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.5);
}
.sp-scroll-hint{
  position:absolute;bottom:2.5rem;right:3rem;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:.8rem;opacity:.45;
}
.sp-scroll-hint span{
  font-family:var(--sans);font-weight:200;font-size:.58rem;
  letter-spacing:.3em;text-transform:uppercase;color:#fff;writing-mode:vertical-rl;
}
.sp-scroll-line{
  width:1px;height:45px;
  background:linear-gradient(to bottom,#fff,transparent);
  animation:sp 2s ease infinite;
}

/* ── Header sans image (article sans miniature) ──────────── */
.sp-header{
  padding:10rem 5rem 4rem;
  border-bottom:1px solid var(--border);
}

/* ── Header galerie — titre sur fond clair ───────────────── */
.sp-post-header {
  padding: 6.5rem 0 1rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 0;
  scroll-margin-top: 110px;
}
.sp-title--dark {
  color: var(--text);
}
.sp-lieu--dark {
  color: var(--muted);
}

/* ── Intro galerie ───────────────────────────────────────── */
.sp-intro{
  display:grid;grid-template-columns:1fr 1fr;
  gap:0;border-bottom:1px solid var(--border);
}
.sp-intro-body{
  padding:2.5rem;grid-column:2;
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(1.1rem,1.5vw,1.5rem);line-height:1.75;
  color:var(--text);
}
.sp--gallery .sp-intro-body p{margin-bottom:1.2rem;}

/* ── Lightbox galerie ────────────────────────────────────── */
.sp-lb{
  position:fixed;inset:0;z-index:9999;
  background:rgba(8,8,6,.96);
  display:none;align-items:center;justify-content:center;
  cursor:none; /* hérite body cursor:none — curseur custom reste actif */
}
.sp-lb.open{display:flex;}
.sp-lb-img{
  max-height:88vh;max-width:88vw;
  object-fit:contain;
  transition:opacity .18s ease;
  user-select:none;
  -webkit-user-drag:none;
  pointer-events:none;
}
.sp-lb-close{
  position:absolute;top:1.5rem;right:2rem;
  background:none;border:none;color:rgba(255,255,255,.6);
  font-size:1.6rem;cursor:none;transition:color .2s;z-index:2;
}
.sp-lb-close:hover{color:#fff;}
.sp-lb-prev,.sp-lb-next{
  position:absolute;top:50%;transform:translateY(-50%);
  background:none;border:none;color:rgba(255,255,255,.5);
  font-size:3.5rem;cursor:none;padding:1rem 1.5rem;
  transition:color .2s;line-height:1;
}
.sp-lb-prev{left:1rem;}.sp-lb-next{right:1rem;}
.sp-lb-prev:hover,.sp-lb-next:hover{color:#fff;}

/* ── Contenu article texte ───────────────────────────────── */
.sp-article-body{
  max-width:720px;margin:0 auto;
  padding:5rem 2rem;
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1.05rem,1.3vw,1.25rem);
  line-height:1.85;color:var(--text);
}
.sp-article-body h2{
  font-size:clamp(1.4rem,2vw,2rem);font-weight:300;
  margin:3rem 0 1rem;line-height:1.15;
}
.sp-article-body h3{
  font-size:clamp(1.1rem,1.5vw,1.5rem);font-weight:300;
  margin:2.5rem 0 .8rem;
}
.sp-article-body p{margin-bottom:1.5rem;}
.sp-article-body img{
  width:100%;height:auto;display:block;
  margin:2.5rem 0;
}
.sp-article-body a{
  color:var(--text);text-decoration:underline;
  text-underline-offset:3px;transition:opacity .2s;
}
.sp-article-body a:hover{opacity:.6;}
.sp-article-body blockquote{
  border-left:2px solid var(--border);
  margin:2rem 0;padding:1rem 2rem;
  font-style:italic;color:var(--muted);
}

/* Tags */
.sp-tags{
  max-width:720px;margin:0 auto;
  padding:0 2rem 4rem;
  display:flex;gap:.6rem;flex-wrap:wrap;
}
.sp-tag{
  font-family:var(--sans);font-weight:200;font-size:.65rem;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);text-decoration:none;
  border:1px solid var(--border);padding:.3rem .8rem;
  transition:all .2s;
}
.sp-tag:hover{background:var(--text);color:var(--bg);border-color:var(--text);}

/* ── Partage ─────────────────────────────────────────────── */
/* ── Contenu centré (même largeur que l'archive) ─────────── */
.sp-body {
  max-width: 860px;
  margin: 0 auto;
  padding: 0;
}

/* ── Header galerie — titre sur fond clair ───────────────── */
.sp-post-header {
  padding: 6.5rem 0 1rem;
  border-bottom: none;
  margin-bottom: 0;
}
.sp-post-header .sp-eyebrow { color: var(--muted); }
.sp-post-header .sp-title { color: var(--text) !important; }
.sp-post-header .sp-lieu { color: var(--muted); }

/* Intro galerie dans sp-body */
.sp-body .sp-intro {
  display: block !important;
  border-bottom: none !important;
  padding: 0 !important;
  min-height: 0 !important;
}
/* Elementor injecte un padding sur les conteneurs enfants — on l'écrase */
.sp-body .sp-intro .elementor,
.sp-body .sp-intro .e-con,
.sp-body .sp-intro .elementor-section,
.sp-body .sp-intro .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}
.sp-body .sp-intro-body {
  grid-column: 1;
  padding: 0;
}

.sp-share{ max-width:860px; margin:0 auto;
  padding:4rem 0; border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  background: var(--bg); /* évite héritage body sombre */
}
.sp-share-btns{
  display:flex;
  align-items:center;
  border:1px solid var(--border);
  border-radius:2px;
  overflow:hidden;
  margin-top:2rem;
}
.sp-share-label{
  font-family:var(--sans);font-weight:200;font-size:.65rem;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);
  padding:0 1.2rem;
  white-space:nowrap;
  border-right:1px solid var(--border);
  align-self:stretch;
  display:flex;align-items:center;
}
.sp-share-btn{
  flex:1;
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);text-decoration:none;
  padding:.9rem .5rem;
  border-right:1px solid var(--border);
  background:var(--bg);
  transition:background .2s,color .2s;
  cursor:pointer;border-top:none;border-bottom:none;border-left:none;
}
.sp-share-btn:last-child{border-right:none;}
.sp-share-btn:hover{background:var(--text);color:var(--bg);}
.sp-share-btn svg{display:block;}

/* ── Navigation prev/next ────────────────────────────────── */
.sp-nav{
  display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--border);
  max-width:860px; margin:0 auto;
  position:static; /* override global nav { position:fixed } */
  top:auto; left:auto; right:auto; z-index:auto;
  padding:0;
}
.sp-nav-item{
  padding:3rem 5rem;text-decoration:none;color:var(--text);
  transition:background .3s;display:block;
}
.sp-nav-item:hover{background:var(--bg-alt);}
.sp-nav-prev{border-right:1px solid var(--border);}
.sp-nav-next{text-align:right;}
.sp-nav-dir{
  display:block;font-family:var(--sans);font-weight:200;
  font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.6rem;
}
.sp-nav-title{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1rem,1.4vw,1.4rem);line-height:1.2;
}

/* ── CTA contact ─────────────────────────────────────────── */
.sp-cta{
  padding:3.5rem 5rem;text-align:center;
  background:var(--bg-inv);color:var(--inv);
  transition:background .5s;
}
.sp-cta-txt{
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(1.1rem,1.8vw,1.6rem);
  color:var(--inv);margin-bottom:2rem;line-height:1.3;
}

/* ── Commentaires ────────────────────────────────────────── */
.sp-comments{
  padding:4rem 5rem;border-top:1px solid var(--border);
  max-width:860px;margin:0 auto;
}
/* "Les commentaires sont fermés" — sobre, pas en pleine page */
.sp-comments .comments-closed,
.sp-comments p.no-comments {
  font-family:var(--sans);font-weight:200;font-size:.72rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  margin:0;padding:0;
}
.sp-comments .comment-list{list-style:none;padding:0;}
.sp-comments .comment{
  padding:2rem 0;border-bottom:1px solid var(--border);
}
.sp-comments .comment-author .fn{
  font-family:var(--sans);font-weight:300;font-size:.9rem;
  letter-spacing:.05em;
}
.sp-comments .comment-metadata{
  font-family:var(--sans);font-weight:200;font-size:.72rem;
  color:var(--muted);margin-top:.3rem;
}
.sp-comments .comment-content p{
  font-family:var(--serif);font-weight:300;font-size:1.05rem;
  line-height:1.8;margin-top:1rem;
}
.sp-comments #respond{margin-top:3rem; scroll-margin-top:120px;}
.sp-comments .comment-reply-title{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(1.3rem,2vw,1.8rem);margin-bottom:2rem;
}
.sp-comments .comment-form label{
  font-family:var(--sans);font-weight:200;font-size:.68rem;
  letter-spacing:.25em;text-transform:uppercase;color:var(--muted);
  display:block;margin-bottom:.5rem;
}
.sp-comments .comment-form input[type="text"],
.sp-comments .comment-form input[type="email"],
.sp-comments .comment-form textarea{
  width:100%;background:none;border:none;
  border-bottom:1px solid var(--border);
  padding:.5rem 0;font-family:var(--sans);font-weight:300;
  font-size:.95rem;color:var(--text);outline:none;
  transition:border-color .2s;resize:none;
}
.sp-comments .comment-form input:focus,
.sp-comments .comment-form textarea:focus{border-bottom-color:var(--text);}
.sp-comments .comment-form textarea{min-height:120px;line-height:1.7;}
.sp-comments .comment-form .form-submit input{
  background:var(--text);color:var(--bg);border:none;
  padding:1rem 2.5rem;font-family:var(--sans);font-weight:200;
  font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;
  cursor:pointer;transition:opacity .2s;margin-top:1.5rem;
}
.sp-comments .comment-form .form-submit input:hover{opacity:.8;}

/* ── Responsive ──────────────────────────────────────────── */
@media(max-width:900px){
  .sp-hero-cnt{padding:2.5rem 2rem;}
  .sp-title{font-size:clamp(1.8rem,6vw,3rem);}
  .sp-intro{grid-template-columns:1fr;}
  .sp-intro-body{grid-column:1;padding:3rem 2rem;}

  .sp-share{padding:3rem 2rem;}
  .sp-nav{grid-template-columns:1fr;}
  .sp-nav-item{padding:2rem;}
  .sp-nav-prev{border-right:none;border-bottom:1px solid var(--border);}
  .sp-nav-next{text-align:left;}
  .sp-cta{padding:4rem 2rem;}
  .sp-comments{padding:3rem 2rem;}
  .sp-header{padding:6.5rem 2rem 3rem;}
  .sp-article-body{padding:3rem 2rem;}
}

/* ── iPad portrait : header fixe + éventuelle admin bar ──── */
@media(min-width:768px) and (max-width:1100px){
  .sp-post-header {
    padding-top: 6.5rem;
  }
  .sp-header {
    padding-top: 6.5rem;
  }
}

/* ═══════════════════════════════════════════════════════════
   BLOG ARCHIVE — flux d'articles complets (style Wesley Nulens)
   ═══════════════════════════════════════════════════════════ */

/* Filtres */
.bla-filters {
  position: sticky;
  top: 89px; /* hauteur nav mesurée */
  z-index: 50;
  display: flex; gap: 0;
  justify-content: flex-start;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  padding: 0 4rem;
  overflow-x: auto;
}
/* Avec barre admin WP */
.admin-bar .bla-filters { top: 121px; /* 89 + 32 adminbar */ }
.bla-filter {
  background: none; border: none; border-bottom: 2px solid transparent;
  font-family: var(--sans); font-weight: 200; font-size: .68rem;
  letter-spacing: .3em; text-transform: uppercase; color: var(--muted);
  padding: 1.2rem 1.5rem 1.2rem 0; margin-right: 2rem; cursor: pointer; white-space: nowrap;
  transition: color .2s, border-color .2s, font-weight .2s;
}
.bla-filter:hover { color: var(--text); }
.bla-filter.active { color: var(--text); border-bottom-color: var(--text); font-weight: 500; }

/* Flux */
/* padding-top compense nav sticky + filtres sticky */
.bla-feed { max-width: 860px; margin: 0 auto; padding-top: 5rem; }
.admin-bar .bla-feed { padding-top: 5rem; }

/* Article complet */
.bla-post { padding: 5rem 2rem; }
.bla-post:first-child { padding-top: 1.5rem; }

/* En-tête */
.bla-post-header { margin-bottom: 2.5rem; }
.bla-post-cat {
  font-family: var(--sans); font-weight: 200; font-size: .68rem;
  letter-spacing: .35em; text-transform: uppercase; color: var(--muted);
  margin-bottom: .8rem;
  padding-right: .35em; /* compense l'espace trailing letter-spacing sur Safari iOS */
}
.bla-post-title {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1.08; letter-spacing: -.01em;
  margin-bottom: .8rem;
}
.bla-post-title a {
  color: var(--text); text-decoration: none; transition: opacity .25s;
}
.bla-post-title a:hover { opacity: .6; }
.bla-post-meta {
  font-family: var(--sans); font-weight: 200; font-size: .72rem;
  letter-spacing: .2em; color: var(--muted);
}

/* Image à la une */
.bla-post-thumb { margin-bottom: 2.5rem; }
.bla-post-img {
  width: 100%; height: auto; display: block;
  transition: opacity .4s;
}

/* Contenu texte */
.bla-post-body {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1rem, 1.2vw, 1.18rem);
  line-height: 1.85; color: var(--text);
  margin-bottom: 2.5rem;
}
.bla-post-body p { margin-bottom: 1.4rem; }
.bla-post-body h2, .bla-post-body h3 {
  font-size: 1.3rem; font-weight: 300; margin: 2.5rem 0 1rem;
}
.bla-post-body img { width: 100%; height: auto; display: block; margin: 2rem 0; }
.bla-post-body a { color: var(--text); text-underline-offset: 3px; }
.bla-post-body blockquote {
  border-left: 2px solid var(--border);
  padding: 1rem 2rem; margin: 2rem 0;
  font-style: italic; color: var(--muted);
}

/* Photos galerie — disposition Wesley Nulens (grille CSS) */
/* Photos galerie — portraits par paires, paysages pleine largeur */
.bla-post-photos, .sp-photos {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 2.5rem;
}
/* Paire de portraits côte à côte */
.bla-photo-pair, .sp-photo-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
/* Photo pleine largeur (paysage ou portrait isolé) */
.bla-post-photo--full, .sp-photo--full {
  width: 100%;
}
/* ── Cellule photo de base ── */
.bla-post-photo, .sp-photo {
  overflow: hidden;
  cursor: none;
  display: block;
  position: relative;
  width: 100%;
  margin: 0;
}

/* ── Overlay transparent — intercepte clic droit et drag ── */
.bla-post-photo::after, .sp-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  user-select: none;
  -webkit-user-drag: none;
}

/* ── Watermark discret en diagonale ── */
.bla-post-photo::before, .sp-photo::before {
  content: 'Romain Lhuissier';
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--sans);
  font-size: clamp(.55rem, .8vw, .8rem);
  font-weight: 300;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(255,255,255,.13);
  transform: rotate(-30deg);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

/* ── Image de base ── */
.bla-post-photo img, .sp-photo img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .7s cubic-bezier(.25,.46,.45,.94), filter .5s;
  filter: grayscale(5%);
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none; /* l'overlay ::after prend le relais */
}

.bla-post-photo:hover img, .sp-photo:hover img {
  transform: scale(1.02); filter: grayscale(0%);
}

/* Pied article */
.bla-post-footer {
  padding: 3rem 0 0;
  border-top: 1px solid var(--border);
  margin-top: 3rem;
}
.bla-post-link {
  font-family: var(--sans); font-weight: 200; font-size: .68rem;
  letter-spacing: .25em; text-transform: uppercase;
  color: var(--muted); text-decoration: none;
  display: inline-flex; align-items: center; gap: .8rem;
  margin-bottom: 2rem;
  transition: color .25s, gap .3s;
}
.bla-post-link:hover { color: var(--text); gap: 1.4rem; }
.bla-post-link-line {
  display: block; width: 20px; height: 1px;
  background: currentColor; transition: width .3s; flex-shrink: 0;
}
.bla-post-link:hover .bla-post-link-line { width: 36px; }

/* Partage */
.bla-post-footer {
  padding: 3rem 0 0;
  border-top: 1px solid var(--border);
  margin-top: 3rem;
  background: var(--bg); /* évite héritage du body sombre en dark mode */
}
.bla-post-share {
  display: flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 2px;
  overflow: hidden;
  margin-top: 2rem;
}
.bla-post-share-label {
  font-family: var(--sans);
  font-weight: 200;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 0 1.2rem;
  white-space: nowrap;
  border-right: 1px solid var(--border);
  align-self: stretch;
  display: flex;
  align-items: center;
}
.bla-share-btn {
  flex: 1;
  display: flex; align-items: center; justify-content: center;
  color: var(--muted); text-decoration: none;
  padding: .9rem .5rem;
  border-right: 1px solid var(--border);
  border-top: none; border-bottom: none; border-left: none;
  background: var(--bg);
  transition: background .2s, color .2s;
  cursor: pointer;
}
.bla-share-btn:last-child { border-right: none; }
.bla-share-btn:hover { background: var(--text); color: var(--bg); }
.bla-share-btn svg { display: block; }

/* Lien commentaires en archive */
.bla-post-comments-link {
  margin-top: 1.5rem;
}

/* Commentaires */
.bla-post-comments {
  padding: 4rem 0;
}
.bla-post-comments .comment-list {
  list-style: none; padding: 0; margin: 0 0 3rem;
}
.bla-post-comments .comment {
  padding: 2rem 0; border-bottom: 1px solid var(--border);
}
.bla-post-comments .comment-author .fn {
  font-family: var(--sans); font-weight: 300; font-size: .9rem;
}
.bla-post-comments .comment-metadata {
  font-family: var(--sans); font-weight: 200; font-size: .7rem;
  color: var(--muted); margin-top: .3rem;
}
.bla-post-comments .comment-content p {
  font-family: var(--serif); font-weight: 300;
  font-size: 1.05rem; line-height: 1.8; margin-top: 1rem;
}
.bla-post-comments #respond { margin-top: 3rem; }
.bla-post-comments .comment-reply-title {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1.3rem,2vw,1.8rem); margin-bottom: 2rem;
}
.bla-post-comments .comment-form label {
  font-family: var(--sans); font-weight: 200; font-size: .65rem;
  letter-spacing: .25em; text-transform: uppercase; color: var(--muted);
  display: block; margin-bottom: .5rem;
}
.bla-post-comments .comment-form input[type="text"],
.bla-post-comments .comment-form input[type="email"],
.bla-post-comments .comment-form textarea {
  width: 100%; background: none; border: none;
  border-bottom: 1px solid var(--border);
  padding: .5rem 0; font-family: var(--sans); font-weight: 300;
  font-size: .95rem; color: var(--text); outline: none;
  transition: border-color .2s; resize: none;
}
.bla-post-comments .comment-form input:focus,
.bla-post-comments .comment-form textarea:focus { border-bottom-color: var(--text); }
.bla-post-comments .comment-form textarea { min-height: 100px; line-height: 1.7; }
.bla-post-comments .comment-form .form-submit input {
  background: var(--text); color: var(--bg); border: none;
  padding: .9rem 2.5rem; font-family: var(--sans); font-weight: 200;
  font-size: .7rem; letter-spacing: .3em; text-transform: uppercase;
  cursor: pointer; transition: opacity .2s; margin-top: 1.5rem;
}
.bla-post-comments .comment-form .form-submit input:hover { opacity: .75; }

/* Séparateur entre articles */
.bla-separator {
  display: flex; align-items: center; gap: 1.5rem;
  max-width: 860px; margin: 0 auto; padding: 0 2rem;
}
.bla-separator::before, .bla-separator::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}
.bla-separator::before { content: '✦'; flex: none; 
  font-size: .5rem; color: var(--border); letter-spacing: .5em;
}

/* Loader */
.bla-loader {
  display: none; justify-content: center; align-items: center;
  gap: .5rem; padding: 4rem;
}
.bla-loader span {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--muted); animation: blDot 1.2s ease infinite;
}
.bla-loader span:nth-child(2) { animation-delay: .2s; }
.bla-loader span:nth-child(3) { animation-delay: .4s; }

/* Sentinelle */
.bla-sentinel { height: 1px; pointer-events: none; }

/* Pagination fallback */
.bla-pagination {
  display: none;  /* masquée par défaut — scroll infini actif */
  padding: 3rem 2rem; gap: .8rem; flex-wrap: wrap;
  max-width: 860px; margin: 0 auto;
}
.no-js .bla-pagination {
  display: flex;  /* fallback sans JS */
}
.bla-pagination a, .bla-pagination span {
  font-family: var(--sans); font-weight: 200; font-size: .75rem;
  letter-spacing: .15em; color: var(--text); text-decoration: none;
  padding: .4rem .8rem; border: 1px solid var(--border); transition: all .2s;
}
.bla-pagination a:hover, .bla-pagination .current {
  background: var(--text); color: var(--bg); border-color: var(--text);
}

/* Responsive */
@media (max-width: 768px) {
  .bla-filters { padding: 0 1rem; top: 60px; }
  .admin-bar .bla-filters { top: 92px; }
  .bla-post { padding: 3rem 1.5rem; }
  /* Photos : colonne unique sur mobile */

}
/* ═══════════════════════════════════════════════════════════
   PAGE TARIFS
   ═══════════════════════════════════════════════════════════ */

/* ── Hero ── */
.tarifs-hero {
  padding: 9rem 5rem 4rem;
  text-align: center;
  background: var(--bg);
}
.tarifs-eyebrow {
  font-family: var(--sans); font-weight: 500; font-size: .9rem;
  letter-spacing: .4em; text-transform: uppercase; color: var(--muted);
  margin-bottom: 1.2rem; padding-right: .4em;
}
.tarifs-title {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(2.8rem, 6vw, 5.5rem);
  letter-spacing: -.01em; line-height: 1;
  color: var(--text);
}

/* ── Main content (Elementor) ── */
.tarifs-main {
  max-width: 900px;
  margin: 0 auto;
  padding: 4rem 2rem 0;
}

/* ── Formules — styles pour blocs Elementor ── */
.tarifs-formules {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-bottom: 4rem;
}
.tarifs-formule {
  border: 1px solid var(--border);
  padding: 3rem 2.5rem;
  position: relative;
  transition: border-color .3s;
  display: flex;
  flex-direction: column;
}
.tarifs-formule:hover { border-color: var(--text); }
.tarifs-formule--featured {
  border-color: var(--text);
}
.tarifs-formule-badge {
  position: absolute; top: -1px; left: 50%;
  transform: translateX(-50%);
  background: var(--text); color: var(--bg);
  font-family: var(--sans); font-weight: 300;
  font-size: .6rem; letter-spacing: .25em; text-transform: uppercase;
  padding: .3rem 1rem; white-space: nowrap;
}
.tarifs-formule-title {
  font-family: var(--sans); font-weight: 200;
  font-size: .72rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 1rem; padding-right: .3em;
}
.tarifs-formule-price {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(2.4rem, 4vw, 3.8rem);
  line-height: 1; letter-spacing: -.02em;
  color: var(--text); margin-bottom: .4rem;
}
.tarifs-formule-price sup {
  font-size: .45em; vertical-align: super; letter-spacing: 0;
}
.tarifs-formule-price-detail {
  font-family: var(--sans); font-weight: 300;
  font-size: .72rem; color: var(--muted);
  margin-top: .4rem; margin-bottom: .4rem;
  line-height: 1.5;
}
.tarifs-formule-desc {
  font-family: var(--sans); font-weight: 300;
  font-size: .8rem; color: var(--muted);
  margin-bottom: 2rem; line-height: 1.6;
}
.tarifs-formule-divider {
  width: 2rem; height: 1px;
  background: var(--border); margin-bottom: 2rem;
}
.tarifs-formule-menu {
  list-style: none; padding: 0; margin: 0;
}
.tarifs-formule-menu li {
  font-family: var(--sans); font-weight: 300;
  font-size: .82rem; color: var(--text);
  padding: .65rem 0;
  border-bottom: 1px solid var(--border);
  display: flex; align-items: baseline; gap: .7rem;
  line-height: 1.4;
}
.tarifs-formule-menu li::before {
  content: '✦'; font-size: .5rem; color: var(--muted);
  flex-shrink: 0; position: relative; top: -.1em;
}
.tarifs-formule-menu li:last-child { border-bottom: none; }
.tarifs-formule-menu li.option {
  color: var(--muted); font-style: italic;
}
.tarifs-formule-cta {
  display: block; margin-top: auto; padding-top: 2.5rem;
  font-family: var(--sans); font-weight: 700;
  font-size: .72rem; letter-spacing: .25em; text-transform: uppercase;
  color: var(--text); text-decoration: none;
  padding-bottom: .3rem; border-bottom: 2px solid var(--border);
  transition: border-color .3s; text-align: center;
}
.tarifs-formule-cta:hover { border-color: var(--text); }

/* ── Inclus / Non inclus ── */
.tarifs-inclus {
  padding: 4rem 0;
  border-top: 1px solid var(--border);
}
.tarifs-inclus-title {
  font-family: var(--sans); font-weight: 200;
  font-size: .72rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 2rem; padding-right: .3em;
}
.tarifs-inclus-list {
  list-style: none; padding: 0; margin: 0 0 3rem;
}
.tarifs-inclus-list li {
  font-family: var(--sans); font-weight: 300;
  font-size: .88rem; color: var(--text);
  padding: .8rem 0 .8rem 1.6rem;
  border-bottom: 1px solid var(--border);
  position: relative; line-height: 1.65;
}
.tarifs-inclus-list li::before {
  content: '—'; position: absolute; left: 0;
  color: var(--muted); font-size: .8rem;
}
.tarifs-inclus-list li:last-child { border-bottom: none; }
.tarifs-inclus--non li::before { content: '✕'; font-size: .7rem; top: .9rem; }
.tarifs-inclus--non li { color: var(--muted); }

/* ── Voir tous les mariages ── */
.tarifs-see-all { padding: 5rem 2rem; text-align: center; }

/* ── Citation ── */
.tarifs-quote {
  padding: 6rem 5rem;
  background: var(--bg-alt);
  text-align: center;
  transition: background .5s;
}
.tarifs-quote-inner { max-width: 680px; margin: 0 auto; }
.tarifs-blockquote p {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(1.1rem, 1.8vw, 1.55rem);
  line-height: 1.7; color: var(--text);
  margin-bottom: 2.5rem;
}
.tarifs-signature {
  font-family: var(--sans); font-weight: 300;
  font-size: .82rem; color: var(--muted);
  font-style: normal; line-height: 1.7;
}
.tarifs-signature span {
  font-size: .72rem; letter-spacing: .05em;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .tarifs-hero { padding: 7rem 1.5rem 3rem; }
  .tarifs-main { padding: 3rem 1.5rem 0; }
  .tarifs-formules { grid-template-columns: 1fr; gap: 1.5rem; }
  .tarifs-formule { padding: 2.5rem 1.5rem; }
  .tarifs-quote { padding: 4rem 1.5rem; }
}

/* ── [rl_services_tarifs] ─────────────────────────────────────────────────── */
.rl-st-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  max-width: 1000px;
  margin: 0 auto;
  padding: 4rem 2rem;
}
.rl-st-card {
  display: flex;
  flex-direction: column;
}
.rl-st-img-wrap {
  width: 100%;
  aspect-ratio: 3/4;
  overflow: hidden;
  margin-bottom: 2rem;
}
.rl-st-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.rl-st-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-align: center;
}
.rl-st-title {
  font-family: var(--serif);
  font-size: 2rem;
  font-weight: 400;
  color: var(--text);
  margin: 0 0 1rem;
}
.rl-st-desc {
  font-family: var(--sans);
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.7;
  color: var(--text);
  margin: 0 0 1.25rem;
  flex: 1;
}
.rl-st-desc a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rl-st-prix {
  font-family: var(--sans);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 4px;
  margin: 0 0 1.5rem;
}
.rl-st-btn {
  display: inline-block;
  align-self: center;
  font-family: var(--sans);
  font-size: 0.75rem;
  font-weight: 300;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--bg);
  background: #C8B89A;
  padding: 0.9rem 2rem;
  text-decoration: none;
  transition: background 0.3s;
  margin-top: auto;
}
.rl-st-btn:hover {
  background: #b8a88a;
}
@media (max-width: 700px) {
  .rl-st-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
    padding: 3rem 1.5rem;
  }
}

/* ── PAGE GÉNÉRIQUE ─────────────────────────────────────────── */
/* Masquer le h1 auto de page.php quand Elementor gère le contenu */
.elementor-page .page-title { display: none; }
/* Supprimer le padding parasite autour du contenu Elementor */
.elementor-page .page-article { padding: 0; }
.elementor-page .page-body { padding: 0; }
.elementor-page main.page-content { padding: 0; }

/* ── PAGE CONTACT ────────────────────────────────────────────── */
.contact-hero {
  padding: 8rem 2rem 4rem;
  text-align: center;
}
.contact-hero .stag { margin-bottom: 0.5rem; }
.contact-hero .stitle { margin-bottom: 1rem; }
.contact-hero p {
  font-family: var(--sans);
  font-size: 0.9rem;
  color: var(--muted);
  max-width: 520px;
  margin: 0 auto;
  line-height: 1.8;
}
.contact-form-wrap {
  max-width: 640px;
  margin: 0 auto;
  padding: 3rem 2rem 6rem;
}
/* CF7 reset & restyle */
.contact-form-wrap .wpcf7 { width: 100%; }
.contact-form-wrap .wpcf7-form { display: flex; flex-direction: column; gap: 1.2rem; }
.contact-form-wrap p { margin: 0; }
.contact-form-wrap input,
.contact-form-wrap textarea {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--border);
  padding: 0.75rem 0;
  font-family: var(--sans);
  font-size: 0.9rem;
  color: var(--text);
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
}
.contact-form-wrap input::placeholder,
.contact-form-wrap textarea::placeholder { color: var(--muted); }
.contact-form-wrap input:focus,
.contact-form-wrap textarea:focus { border-bottom-color: var(--text); }
.contact-form-wrap textarea { resize: vertical; min-height: 140px; }
.contact-form-wrap input[type="submit"],
.contact-form-wrap .wpcf7-submit {
  background: var(--text);
  color: var(--bg);
  border: none;
  border-bottom: none;
  padding: 1rem 2.5rem;
  font-family: var(--sans);
  font-size: 0.75rem;
  font-weight: 300;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  cursor: pointer;
  width: auto;
  align-self: flex-start;
  transition: opacity 0.2s;
  margin-top: 0.5rem;
}
.contact-form-wrap input[type="submit"]:hover,
.contact-form-wrap .wpcf7-submit:hover { opacity: 0.75; }
.contact-form-wrap .wpcf7-not-valid-tip { font-size: 0.75rem; color: #b94a3f; }
.contact-form-wrap .wpcf7-response-output {
  font-family: var(--sans);
  font-size: 0.82rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  color: var(--text);
}
/* Labels CF7 */
.contact-form-wrap label {
  font-family: var(--sans);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  display: block;
  margin-bottom: 0.25rem;
}

/* ═══════════════════════════════════════════════════
   DROPDOWN LIEUX DE RÉCEPTION — nav desktop + overlay mobile
   ═══════════════════════════════════════════════════ */

.nav-dropdown-wrap {
  position: relative;
  display: flex;
  align-items: center;
  align-self: center;
}
.nav-dropdown-trigger {
  display: flex;
  align-items: center;
  gap: .35rem;
  font-family: var(--sans);
  font-weight: 400;
  font-size: clamp(.7rem,.8vw,1.1rem);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 1px 6px rgba(0,0,0,.3);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  padding-bottom: 4px;
  position: relative;
  transition: color .3s;
  /* Reset Safari/iOS qui décale les <button> par rapport aux <a> */
  -webkit-appearance: none;
  appearance: none;
  line-height: normal;
  vertical-align: baseline;
}
.nav-dropdown-trigger::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1px;
  background: currentColor;
  transition: width .35s;
}
.nav-dropdown-wrap:hover .nav-dropdown-trigger::after,
.nav-dropdown-trigger[aria-expanded="true"]::after { width: 100%; }
body:not(.home) .nav-dropdown-trigger { color: var(--text) !important; text-shadow: none !important; }
nav.scrolled .nav-dropdown-trigger { color: var(--text); text-shadow: none; }
.nav-chevron { transition: transform .3s; flex-shrink: 0; }
.nav-dropdown-wrap:hover .nav-chevron,
.nav-dropdown-trigger[aria-expanded="true"] .nav-chevron { transform: rotate(180deg); }

/* Pont transparent pour éviter la fermeture entre trigger et panel */
.nav-dropdown-wrap::before {
  content: '';
  position: absolute;
  top: 100%;
  left: 0; right: 0;
  height: 1.4rem;
  background: transparent;
}

.nav-dropdown {
  position: absolute;
  top: calc(100% + 1.2rem);
  left: 50%;
  min-width: 240px;
  background: color-mix(in srgb,var(--bg) 96%,transparent);
  backdrop-filter: blur(18px);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: .6rem 0;
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(-6px);
  transition: opacity .25s,transform .25s,visibility .25s;
  z-index: 200;
  box-shadow: 0 12px 40px rgba(0,0,0,.12);
}
.nav-dropdown-wrap:hover .nav-dropdown,
.nav-dropdown-trigger[aria-expanded="true"] + .nav-dropdown {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown a {
  font-family: var(--sans);
  font-weight: 300;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text) !important;
  text-shadow: none !important;
  text-decoration: none;
  padding: .7rem 1.4rem;
  display: block;
  transition: background .2s,padding-left .2s;
  white-space: nowrap;
}
.nav-dropdown a:hover { background: var(--bg-alt); padding-left: 1.8rem; }
.nav-dropdown a::after { display: none; }

/* ── Overlay mobile — accordéon Lieux ── */
.ov-lieux-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  /* Alignement vertical identique aux <a> voisins dans le flex de .ov-links */
  align-self: center;
  line-height: 1;
}
.ov-lieux-trigger {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  gap: .35rem;
  /* Reset complet iOS/iPadOS qui ajoute des styles natifs sur <button> */
  -webkit-appearance: none;
  appearance: none;
  line-height: normal;
  vertical-align: baseline;
}
.ov-lieux-trigger:hover { color: var(--muted); transform: translateX(8px); }
.ov-lieux-chevron { transition: transform .3s; flex-shrink: 0; width: 14px; height: 9px; }
.ov-lieux {
  display: flex; flex-direction: column; align-items: center; gap: .8rem;
  max-height: 0; overflow: hidden;
  transition: max-height .4s ease,padding .3s;
}
.ov-lieux.open { max-height: 400px; padding: 1rem 0 .5rem; }
.ov-lieux a {
  font-family: var(--sans) !important; font-weight: 300 !important;
  font-size: .8rem !important; letter-spacing: .18em !important;
  text-transform: uppercase; color: var(--muted) !important;
  text-decoration: none; transition: color .2s;
}
.ov-lieux a:hover { color: var(--text) !important; transform: none !important; }

/* ── /photographe-mariage-tours/ — grille galeries ─────────── */
/* Forcer la grille à prendre toute la largeur et override Elementor padding */
.rl-portfolio-grid-wrap {
  width: 100%;
}
/* Ratio portrait 2/3 pour les images galerie sur cette page */
body.page-id-7917 .rlp-item {
  aspect-ratio: 2 / 3 !important;
}
body.page-id-7917 .rlp-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}
/* Annuler le padding 250px du shortcode sur mobile */
@media (max-width: 768px) {
  body.page-id-7917 .rl-portfolio {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}


