
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Libre+Caslon+Display&display=swap');

:root{
  --cream:#f4f0e8;
  --cream2:#ebe5da;
  --paper:#fbf9f5;
  --ink:#20231f;
  --muted:#6f716b;
  --green:#27382d;
  --green2:#364c3e;
  --line:rgba(32,35,31,.17);
  --white:#fff;
  --shadow:0 16px 60px rgba(24,30,25,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:"DM Sans",Arial,sans-serif;
  font-weight:300;
  line-height:1.65;
}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit}
.wrap{width:min(1240px,calc(100% - 64px));margin:auto}
.serif,h1,h2,h3,.brand{font-family:"Libre Caslon Display",Georgia,serif}
.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:500}
.muted{color:var(--muted)}
.kicker{font-size:.88rem;letter-spacing:.08em;text-transform:uppercase}

/* header */
.site-header{
  position:absolute;
  inset:0 0 auto 0;
  z-index:40;
  color:#fff;
  transition:.25s ease;
}
.site-header.scrolled{
  position:fixed;
  background:rgba(244,240,232,.96);
  color:var(--ink);
  box-shadow:0 1px 0 var(--line);
  backdrop-filter:blur(14px);
}
.nav{
  min-height:92px;
  display:flex;
  align-items:center;
  gap:28px;
}
.brand{
  text-decoration:none;
  line-height:1;
  font-size:1.45rem;
  max-width:220px;
  margin-right:auto;
}
.desktop-nav{display:flex;align-items:center;gap:28px}
.desktop-nav a,.lang-trigger{
  text-decoration:none;
  font-size:.87rem;
  letter-spacing:.03em;
}
.desktop-nav a{position:relative}
.desktop-nav a:after{
  content:"";
  position:absolute;
  left:0;right:100%;bottom:-7px;height:1px;
  background:currentColor;transition:.25s
}
.desktop-nav a:hover:after,.desktop-nav a[aria-current="page"]:after{right:0}
.lang{position:relative}
.lang-trigger{background:none;border:0;color:inherit;cursor:pointer;padding:10px}
.lang-menu{
  display:none;position:absolute;right:0;top:100%;
  min-width:150px;background:var(--paper);color:var(--ink);
  box-shadow:var(--shadow);padding:10px
}
.lang:hover .lang-menu,.lang:focus-within .lang-menu{display:grid}
.lang-menu a{padding:8px 10px;text-decoration:none}
.menu-btn{display:none;background:none;border:1px solid currentColor;color:inherit;padding:9px 13px;cursor:pointer}
.mobile-menu{
  position:fixed;inset:0;background:var(--green);color:white;
  z-index:60;padding:26px;display:none;
}
.mobile-menu.open{display:block}
.mobile-menu-top{display:flex;justify-content:space-between;align-items:center}
.mobile-menu nav{display:grid;gap:18px;margin:12vh 0 0}
.mobile-menu nav a{font-family:"Libre Caslon Display",Georgia,serif;font-size:clamp(2rem,8vw,4.4rem);text-decoration:none}
.mobile-langs{display:flex;gap:15px;margin-top:40px}
.mobile-langs a{text-decoration:none}

/* hero */
.hero{
  position:relative;min-height:94vh;color:#fff;overflow:hidden;
  display:flex;align-items:flex-end;background:#222 center/cover no-repeat;
}
.hero:before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.20) 0%,rgba(0,0,0,.05) 30%,rgba(0,0,0,.62) 100%);
}
.hero-inner{position:relative;z-index:2;padding:190px 0 92px}
.hero h1{
  font-weight:400;font-size:clamp(3.7rem,7.4vw,7.4rem);
  letter-spacing:-.035em;line-height:.92;margin:.35rem 0 1.45rem;max-width:990px;
}
.hero p{font-size:1.05rem;max-width:730px;margin-bottom:28px}
.hero-actions{display:flex;gap:11px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 20px;border:1px solid currentColor;
  text-decoration:none;font-size:.84rem;letter-spacing:.04em;
  transition:.22s;background:transparent;color:inherit;
}
.btn:hover{background:currentColor;color:var(--cream)}
.btn-solid{background:var(--green);color:white;border-color:var(--green)}
.btn-solid:hover{background:#1e2b23;color:#fff}
.scroll-link{position:absolute;z-index:2;right:4vw;bottom:48px;color:white;text-decoration:none;font-size:.8rem}

/* sections */
.section{padding:110px 0}
.section.tight{padding:72px 0}
.section.alt{background:var(--paper)}
.section.dark{background:var(--green);color:#fff}
.section-head{max-width:800px;margin-bottom:45px}
.section h1,.section h2{
  font-weight:400;font-size:clamp(2.65rem,5vw,5.25rem);
  letter-spacing:-.025em;line-height:1.02;margin:.45rem 0 1.25rem;
}
.section h3{font-weight:400;font-size:clamp(1.55rem,2.4vw,2.35rem);line-height:1.12;margin:.6rem 0 1rem}
.lead{font-size:1.08rem;color:var(--muted);max-width:800px}
.dark .lead{color:rgba(255,255,255,.72)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.split.reverse .media{order:-1}
.media{overflow:hidden}
.media.tall{height:680px}
.media.medium{height:520px}
.media img{width:100%;height:100%;object-fit:cover}
.number{font-family:"Libre Caslon Display",Georgia,serif;font-size:4.4rem;color:#a49e91;line-height:1}
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.stat{padding:32px 22px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat strong{font-family:"Libre Caslon Display",Georgia,serif;font-weight:400;font-size:2rem;display:block}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.feature{padding-top:28px;border-top:1px solid var(--line)}
.feature .number{font-size:2rem;margin-bottom:45px}
.image-card{position:relative;min-height:630px;overflow:hidden;color:#fff;display:flex;align-items:flex-end}
.image-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.image-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.68))}
.image-card-content{position:relative;z-index:2;padding:34px}
.image-card h3{font-size:2.7rem}
.pill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.pill{background:var(--paper);padding:28px;min-height:110px}

/* review */
.reviews-top{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end}
.review-badges{display:flex;gap:12px;flex-wrap:wrap}
.review-badge{border:1px solid var(--line);padding:16px 18px;background:var(--paper);min-width:150px}
.review-badge strong{font-family:"Libre Caslon Display",Georgia,serif;font-size:1.8rem;font-weight:400}
.review-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-top:38px}
.review{padding:30px;border-top:1px solid var(--line)}
.quote-logo{width:78px;height:78px;border-radius:50%;object-fit:cover;background:#ddd}
.stars{letter-spacing:.1em}

/* gallery slider */
.slider-shell{position:relative}
.slider{
  display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;padding-bottom:18px;
}
.slider::-webkit-scrollbar{display:none}
.slide{flex:0 0 min(74vw,880px);scroll-snap-align:start}
.slide img{width:100%;height:min(64vw,670px);object-fit:cover}
.slide-meta{display:flex;justify-content:space-between;margin-top:10px;font-size:.78rem}
.slider-controls{display:flex;gap:8px;justify-content:flex-end;margin-bottom:16px}
.slider-btn{width:48px;height:48px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:1.1rem}
.gallery-full .slide{flex-basis:min(82vw,1050px)}

/* CTA / Instagram / footer */
.contact-band{background:var(--green);color:white}
.contact-band .wrap{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.contact-links{display:flex;gap:14px;flex-wrap:wrap}
.instagram{
  min-height:380px;position:relative;display:grid;place-items:center;text-align:center;
  background:url('https://bergerie-alivettu.cousincarine.chatgpt.site/images/jardin-terrasse-bergerie.webp') center/cover no-repeat;color:white
}
.instagram:before{content:"";position:absolute;inset:0;background:rgba(20,28,23,.55)}
.instagram-inner{position:relative;z-index:2}
.instagram h2{font-size:clamp(2.7rem,6vw,5.5rem);margin:.4rem 0}
footer{background:#1f2a22;color:#eee;padding:70px 0 95px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:38px}
footer a{color:inherit;text-decoration:none}
footer h3{font-family:"DM Sans",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.footer-brand{font-family:"Libre Caslon Display",Georgia,serif;font-size:2rem;margin-bottom:18px}
.footer-links{display:grid;gap:9px}
.small{font-size:.82rem;color:rgba(255,255,255,.6)}
.mobile-actions{display:none}

/* forms / FAQ / legal */
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em}
.form input,.form select,.form textarea{
  width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;
  padding:12px 0;outline:none;border-radius:0
}
.form textarea{min-height:150px;resize:vertical}
.form .full{grid-column:1/-1}
.form button{cursor:pointer}
.faq details{border-top:1px solid var(--line);padding:20px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-family:"Libre Caslon Display",Georgia,serif;font-size:1.45rem}
.legal{max-width:850px}.legal h2{font-size:2rem;margin-top:2.2rem}.note{padding:20px;border:1px solid #b28f58;background:#fff6df}

/* internal heroes */
.subhero{min-height:76vh}
.subhero h1{font-size:clamp(3.4rem,6.6vw,6.8rem)}
.simple-hero{padding-top:150px}

/* Responsive */
@media(max-width:980px){
  .wrap{width:min(100% - 38px,1240px)}
  .desktop-nav,.lang{display:none}
  .menu-btn{display:block}
  .nav{min-height:76px}
  .split,.contact-grid{grid-template-columns:1fr;gap:38px}
  .split.reverse .media{order:0}
  .media.tall,.media.medium{height:480px}
  .grid3{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .pill-grid{grid-template-columns:1fr 1fr}
  .reviews-top{grid-template-columns:1fr}
  .review-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .contact-band .wrap{grid-template-columns:1fr}
}
@media(max-width:640px){
  .wrap{width:calc(100% - 28px)}
  .brand{font-size:1.18rem}
  .hero{min-height:88vh}
  .hero-inner{padding:150px 0 72px}
  .hero h1{font-size:clamp(3.2rem,14vw,5rem)}
  .hero p{font-size:.96rem}
  .scroll-link{display:none}
  .section{padding:76px 0}
  .stats{grid-template-columns:1fr}
  .stat{border-right:0;border-bottom:1px solid var(--line)!important}
  .stat:last-child{border-bottom:0!important}
  .pill-grid{grid-template-columns:1fr}
  .media.tall,.media.medium{height:380px}
  .slide{flex-basis:89vw}
  .slide img{height:76vw}
  .footer-grid{grid-template-columns:1fr}
  .mobile-actions{
    display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;
    bottom:0;left:0;right:0;z-index:45;background:var(--paper);box-shadow:0 -6px 20px rgba(0,0,0,.12)
  }
  .mobile-actions a{padding:13px 6px;text-align:center;text-decoration:none;font-size:.72rem;border-right:1px solid var(--line)}
  footer{padding-bottom:130px}
  .form{grid-template-columns:1fr}
  .form .full{grid-column:auto}
}

/* Logo officiel du site de référence */
.brand-logo {
  display:block;
  width:150px;
  height:auto;
  object-fit:contain;
}
.site-header:not(.scrolled) .brand-logo {
  filter:none;
}
.mobile-menu .brand-logo {
  width:165px;
}
.footer-logo {
  display:block;
  width:190px;
  max-width:100%;
  height:auto;
  margin-bottom:24px;
}
@media (max-width:640px){
  .brand-logo{width:122px}
  .mobile-menu .brand-logo{width:145px}
}

/* === CORRECTIONS V3 : HEADER + GALERIE D'APRÈS CAPTURES === */
.site-header{
  height:116px;
  background:transparent;
  border-bottom:1px solid rgba(255,255,255,.30);
  color:#fff;
}
.site-header .wrap.nav{
  width:100%;
  max-width:none;
  height:116px;
  min-height:116px;
  padding:0 60px;
}
.site-header .brand{
  width:132px;
  max-width:132px;
  margin-right:auto;
  display:flex;
  align-items:center;
}
.site-header .brand-logo{
  width:128px;
  max-height:94px;
  object-fit:contain;
}
.site-header .desktop-nav{
  gap:39px;
  margin-left:auto;
}
.site-header .desktop-nav a{
  color:#fff;
  font-size:16px;
  line-height:1;
  font-weight:600;
  letter-spacing:0;
}
.site-header .desktop-nav a:last-child{
  border:1px solid rgba(255,255,255,.8);
  padding:22px 25px;
  margin-left:2px;
}
.site-header .desktop-nav a:last-child:after{display:none}
.site-header .lang{
  margin-left:11px;
}
.site-header .lang-trigger{
  height:54px;
  min-width:74px;
  padding:0 15px;
  border:1px solid rgba(255,255,255,.8);
  color:#fff;
  font-weight:600;
  font-size:15px;
}
.site-header.scrolled{
  position:fixed;
  height:92px;
  background:rgba(39,56,45,.96);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.site-header.scrolled .wrap.nav{height:92px;min-height:92px}
.site-header.scrolled .desktop-nav a{color:#fff}

/* Galerie identique à la capture */
.gallery-reference{
  background:#f3efe8;
  padding:0 0 0;
  overflow:hidden;
}
.gallery-reference .gallery-toolbar{
  height:103px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  padding:21px 72px 0;
}
.gallery-reference .gallery-label{
  margin:0;
  color:#91867b;
  font-size:15px;
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.gallery-reference .gallery-arrows{
  display:flex;
  gap:12px;
  transform:translateY(-22px);
}
.gallery-reference .gallery-arrow{
  width:68px;
  height:68px;
  border:1px solid #8d8379;
  border-radius:50%;
  background:transparent;
  color:#25251f;
  font-size:26px;
  font-weight:300;
  line-height:1;
  cursor:pointer;
}
.gallery-reference .gallery-track{
  display:flex;
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:0 0 0 72px;
}
.gallery-reference .gallery-track::-webkit-scrollbar{display:none}
.gallery-reference .gallery-card{
  position:relative;
  flex:0 0 493px;
  width:493px;
  height:580px;
  overflow:hidden;
  border-radius:26px 26px 0 0;
  scroll-snap-align:start;
  margin:0;
}
.gallery-reference .gallery-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.gallery-reference .gallery-count{
  position:absolute;
  right:22px;
  bottom:0;
  min-width:86px;
  height:38px;
  padding:0 16px;
  border-radius:22px 22px 0 0;
  background:#f7f5ef;
  color:#4d4d43;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:600;
  letter-spacing:.12em;
}
@media(max-width:980px){
  .site-header .wrap.nav{padding:0 28px}
  .gallery-reference .gallery-toolbar{padding-left:28px;padding-right:28px}
  .gallery-reference .gallery-track{padding-left:28px}
  .gallery-reference .gallery-card{flex-basis:390px;width:390px;height:520px}
}
@media(max-width:640px){
  .site-header{height:82px}
  .site-header .wrap.nav{height:82px;min-height:82px;padding:0 18px}
  .site-header .brand{width:104px}
  .site-header .brand-logo{width:100px;max-height:70px}
  .gallery-reference .gallery-toolbar{height:92px;padding:22px 18px 0}
  .gallery-reference .gallery-arrows{transform:none}
  .gallery-reference .gallery-arrow{width:48px;height:48px;font-size:20px}
  .gallery-reference .gallery-label{font-size:12px}
  .gallery-reference .gallery-track{padding-left:18px;gap:14px}
  .gallery-reference .gallery-card{flex:0 0 82vw;width:82vw;height:112vw;border-radius:22px 22px 0 0}
}
