@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Pinyon+Script&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');

:root{
  --vb-deep:#314235;
  --vb-ivory:#f3efe7;
  --vb-white:#fff;
  --vb-title:"Playfair Display",Georgia,serif;
  --vb-text:"Montserrat",Arial,sans-serif;
}

/* On masque uniquement le header/footer natifs du thème : le gestionnaire fournit la navigation globale. */
body.lvg-manager-nav-active #site-header,
body.lvg-manager-nav-active .site-header,
body.lvg-manager-nav-active #site-footer,
body.lvg-manager-nav-active .site-footer{
  display:none!important;
}

/* Header signature : mêmes proportions, typo et comportement que l’accueil validé. */
.vb-header[data-lv-global-header]{
  position:absolute;
  z-index:9998;
  inset:0 0 auto;
  min-height:104px;
  padding:24px clamp(28px,5vw,88px);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  border-bottom:1px solid rgba(255,255,255,.18);
  color:var(--vb-white);
  font-family:var(--vb-text);
}
body.admin-bar .vb-header[data-lv-global-header]{top:32px}

.vb-header[data-lv-global-header] .vb-brand{
  grid-column:2;
  display:flex;
  align-items:center;
  justify-content:center;
  width:116px;
  text-decoration:none;
}
.vb-header[data-lv-global-header] .vb-brand__logo{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.vb-header[data-lv-global-header] .vb-nav{
  position:absolute;
  left:clamp(28px,5vw,88px);
  display:flex;
  gap:clamp(18px,2vw,34px);
}
.vb-header[data-lv-global-header] .vb-nav a,
.vb-header[data-lv-global-header] .vb-header__booking{
  color:rgba(255,255,255,.92);
  text-decoration:none;
  font-size:12px;
  letter-spacing:.06em;
}
.vb-header[data-lv-global-header] .vb-nav a{
  position:relative;
}
.vb-header[data-lv-global-header] .vb-nav a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-8px;
  width:0;
  height:1px;
  background:currentColor;
  transition:width .3s ease;
}
.vb-header[data-lv-global-header] .vb-nav a:hover::after{width:100%}
.vb-header[data-lv-global-header] .vb-header__booking{
  justify-self:end;
  text-transform:uppercase;
  letter-spacing:.14em;
  padding-bottom:5px;
  border-bottom:1px solid rgba(255,255,255,.9);
}
.vb-header[data-lv-global-header] .vb-menu-toggle{
  display:none;
  justify-self:end;
  width:44px;
  height:44px;
  border:0;
  background:none;
  padding:8px;
  cursor:pointer;
}
.vb-header[data-lv-global-header] .vb-menu-toggle span{
  display:block;
  width:100%;
  height:1px;
  margin:7px 0;
  background:#fff;
}

.vb-mobile-menu[data-lv-global-menu]{
  position:fixed;
  inset:0;
  z-index:9997;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--vb-deep);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.35s ease;
  font-family:var(--vb-text);
}
.vb-mobile-menu[data-lv-global-menu].is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.vb-mobile-menu[data-lv-global-menu] nav{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:15px;
}
.vb-mobile-menu[data-lv-global-menu] a{
  color:var(--vb-ivory);
  text-decoration:none;
  font-family:var(--vb-title);
  font-size:clamp(32px,8vw,54px);
}
.vb-mobile-menu[data-lv-global-menu] .vb-mobile-menu__booking{
  margin-top:26px;
  font-family:var(--vb-text)!important;
  font-size:12px!important;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding-bottom:6px;
  border-bottom:1px solid currentColor;
}

@media (max-width:1180px){
  .vb-header[data-lv-global-header] .vb-nav,
  .vb-header[data-lv-global-header] .vb-header__booking{display:none}
  .vb-header[data-lv-global-header] .vb-menu-toggle{display:block}
}
@media (max-width:782px){
  body.admin-bar .vb-header[data-lv-global-header]{top:46px}
}
@media (max-width:767px){
  .vb-header[data-lv-global-header]{
    min-height:84px;
    padding:18px 20px;
  }
  .vb-header[data-lv-global-header] .vb-brand{width:92px}
}


/* Footer signature validé — identique au bloc final de l’accueil */
.lv-global-reservation{
  --lv-green:#001f17;
  --lv-cream:#f7f2ea;
  position:relative;
  z-index:20;
  margin:0;
  background:var(--lv-green);
  color:var(--lv-cream);
  padding:100px 8%;
  text-align:center;
  font-family:Montserrat,Arial,sans-serif;
}
.lv-global-reservation .lv-kicker{
  margin:0;
  font-size:10px;
  letter-spacing:.19em;
  font-weight:500;
  line-height:1.8;
}
.lv-global-reservation h2{
  color:inherit;
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(48px,5.8vw,90px);
  font-weight:400;
  line-height:1.06;
  letter-spacing:-.045em;
  margin:25px 0 30px;
}
.lv-global-reservation h2 em{font-weight:400}
.lv-global-reservation p:not(.lv-kicker){
  font-size:12px;
  line-height:1.8;
  max-width:420px;
  margin:20px auto;
}
.lv-global-reservation .lv-link{
  display:inline-flex;
  gap:45px;
  align-items:center;
  min-height:48px;
  padding:12px 0;
  border-bottom:1px solid currentColor;
  text-decoration:none;
  color:inherit;
  font-size:12px;
  line-height:1.5;
}
.lv-global-reservation .lv-link:hover{opacity:.72}
.lv-global-legal{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 22px;
  max-width:760px;
  margin:50px auto 0;
  padding-top:20px;
  border-top:1px solid rgba(247,242,234,.18);
}
.lv-global-legal a{
  color:rgba(247,242,234,.66);
  text-decoration:none;
  font-size:9px;
  line-height:1.5;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.lv-global-legal a:hover{color:var(--lv-cream)}

@media(max-width:767px){
  .lv-global-reservation{padding:75px 7%}
  .lv-global-reservation h2{
    font-size:clamp(43px,11vw,68px);
    line-height:1.09;
  }
  .lv-global-reservation .lv-link{gap:28px}
  .lv-global-legal{
    margin-top:38px;
    flex-direction:column;
    gap:10px;
  }
}

/* Réseaux sociaux + avis Google — intégrés au footer signature sans changer sa DA */
.lv-social-review-links{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 24px;
  max-width:760px;
  margin:28px auto 16px;
}
.lv-social-review-links a{
  position:relative;
  color:rgba(247,242,234,.72);
  text-decoration:none;
  font:500 10px/1.4 Montserrat,Arial,sans-serif;
  letter-spacing:.10em;
  text-transform:uppercase;
  transition:color .2s ease,opacity .2s ease;
}
.lv-social-review-links a:hover{
  color:#f7f2ea;
}
.lv-social-review-links .lv-review-link{
  color:#f7f2ea;
}
@media(max-width:767px){
  .lv-social-review-links{
    flex-direction:column;
    gap:11px;
    margin:24px auto 14px;
  }
}


/* Copyright & réalisation — ligne discrète sous les liens légaux */
.lv-footer-credits{
  max-width:760px!important;
  margin:18px auto 0!important;
  color:rgba(247,242,234,.46)!important;
  font:500 9px/1.75 Montserrat,Arial,sans-serif!important;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.lv-footer-credits span{
  color:rgba(247,242,234,.58);
}
@media(max-width:767px){
  .lv-footer-credits{
    margin-top:16px!important;
    font-size:8px!important;
    line-height:1.8!important;
  }
}

/* v1.5.16 : header global lisible sur les pages intérieures claires.
   Le header transparent intégré au héros de l’accueil reste inchangé. */
body .vb-header[data-lv-global-header]{
  position:relative;
  inset:auto;
  background:#001f17;
}
body.admin-bar .vb-header[data-lv-global-header]{top:auto}
html.lv-menu-open{overflow:hidden}

/* v1.5.14 — botanique décorative du footer, commune à l’accueil et aux pages. */
#lv-home footer.lv-reservation,
footer.lv-global-reservation{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
#lv-home footer.lv-reservation::before,
#lv-home footer.lv-reservation::after,
footer.lv-global-reservation::before,
footer.lv-global-reservation::after{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  width:clamp(300px,32vw,570px);
  height:clamp(360px,38vw,630px);
  background:center / contain no-repeat;
  filter:brightness(0) invert(1);
  opacity:.12;
  transform-origin:50% 85%;
  animation:lv-footer-botanical-sway 18s ease-in-out infinite alternate;
}
#lv-home footer.lv-reservation::before,
footer.lv-global-reservation::before{
  left:clamp(-180px,-9vw,-70px);
  top:-40px;
  background-image:url('../botanique/le-velobre-4.svg');
}
#lv-home footer.lv-reservation::after,
footer.lv-global-reservation::after{
  right:clamp(-180px,-9vw,-70px);
  bottom:-60px;
  background-image:url('../botanique/le-velobre-2.svg');
  animation-duration:22s;
  animation-delay:-9s;
  animation-direction:alternate-reverse;
}
#lv-home footer.lv-reservation > *,
footer.lv-global-reservation > *{
  position:relative;
  z-index:1;
}
@keyframes lv-footer-botanical-sway{
  from{transform:translateY(0) rotate(-2deg)}
  to{transform:translateY(-7px) rotate(2deg)}
}
@media(max-width:767px){
  #lv-home footer.lv-reservation::before,
  #lv-home footer.lv-reservation::after,
  footer.lv-global-reservation::before,
  footer.lv-global-reservation::after{
    width:290px;
    height:380px;
    opacity:.08;
  }
  #lv-home footer.lv-reservation::before,
  footer.lv-global-reservation::before{left:-145px;top:-45px}
  #lv-home footer.lv-reservation::after,
  footer.lv-global-reservation::after{right:-145px;bottom:-50px}
}
@media(prefers-reduced-motion:reduce){
  #lv-home footer.lv-reservation::before,
  #lv-home footer.lv-reservation::after,
  footer.lv-global-reservation::before,
  footer.lv-global-reservation::after{animation:none;transform:none}
}
