
:root{
  --paper:#f3eee4;
  --ink:#20211d;
  --olive:#4f5e42;
  --olive-dark:#34402d;
  --wine:#79363a;
  --white:#fffdf8;
  --line:rgba(32,33,29,.15)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-weight:300}
img{display:block;width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
.site-header{
  position:fixed;z-index:30;top:0;left:0;right:0;
  display:flex;justify-content:space-between;align-items:center;
  min-height:86px;padding:10px 4vw;
  color:white;background:rgba(52,64,45,.96);
  box-shadow:0 4px 18px rgba(0,0,0,.15);
}
.brand{display:flex;align-items:center;gap:14px;min-width:255px}
.brand img{width:70px;height:52px;object-fit:contain;background:white;border-radius:2px}
.brand-text{font-family:"Playfair Display",serif;font-size:1.15rem;white-space:nowrap}
nav{display:flex;gap:28px;font-size:.98rem;font-weight:500}
nav a{padding:10px 0}
nav a:hover{text-decoration:underline;text-underline-offset:5px}
.actions{display:flex;gap:8px;align-items:center}
.lang,.menu-toggle{border:0;background:none;color:white;cursor:pointer}
.lang.active{text-decoration:underline;text-underline-offset:4px}
.menu-toggle{display:none}
.mobile-menu{
  display:none;position:fixed;inset:0;background:var(--paper);z-index:25;
  flex-direction:column;justify-content:center;align-items:center;gap:25px;
  font-family:"Playfair Display";font-size:2rem
}
.mobile-menu.open{display:flex}
.hero{min-height:100svh;position:relative;display:flex;align-items:flex-end;padding-top:86px}
.hero>img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center 35%}
.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.05))}
.hero-copy{position:relative;color:white;padding:0 6vw 9vh;max-width:840px}
.kicker,.label{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:500}
.hero h1,h2,h3{font-family:"Playfair Display",serif;font-weight:500;line-height:1.04;margin:0}
.hero h1{font-size:clamp(3.3rem,7.8vw,7.7rem)}
h2{font-size:clamp(2.5rem,5vw,5.1rem)}
h3{font-size:clamp(1.8rem,2.6vw,2.8rem)}
.hero-copy>p:not(.kicker){max-width:570px;line-height:1.7;font-size:1.05rem}
.pill{display:inline-flex;border:1px solid currentColor;border-radius:999px;padding:14px 24px;margin-top:14px;cursor:pointer;background:transparent;color:inherit}
.pill:hover{background:white;color:var(--ink)}
.pill.dark{background:var(--ink);color:white;border-color:var(--ink)}
.section{padding:105px 6vw}
.two{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;margin-top:35px}
.body-copy,.homemade p,.story p{font-size:1.06rem;line-height:1.8}
.welcome-photo{margin-top:38px;aspect-ratio:1/1;object-fit:cover}
.section-separator{display:flex;justify-content:center;padding:5px 20px}
.section-separator img{width:min(470px,90vw);height:auto;mix-blend-mode:multiply}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.cards article{background:var(--white)}
.cards img{aspect-ratio:4/5;object-fit:cover}
.cards article div{padding:26px}
.cards small{color:var(--wine)}
.cards p{line-height:1.7}
.text-link{display:inline-block;margin-top:12px;font-weight:500;color:var(--olive-dark)}
.homemade{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}
.homemade img{aspect-ratio:4/5;object-fit:cover}
.detail-list{list-style:none;padding:0;margin:28px 0 0;border-top:1px solid var(--line)}
.detail-list li{padding:14px 0;border-bottom:1px solid var(--line)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:120px;gap:14px;margin-top:36px}
.grid img{height:100%;object-fit:cover;grid-column:span 4;grid-row:span 3}
.grid .wide{grid-column:span 8}
.grid .tall{grid-row:span 6}
.story{display:grid;grid-template-columns:1fr .85fr;gap:8vw;align-items:start}
.story img{aspect-ratio:4/5;object-fit:cover;position:sticky;top:110px}
.contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;background:var(--white)}
form{display:flex;flex-direction:column;gap:18px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:flex;flex-direction:column;gap:8px;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}
input,textarea{border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;outline:none;text-transform:none;letter-spacing:normal}
footer{background:#111;color:white;padding:42px 6vw;display:flex;justify-content:space-between;align-items:center;gap:35px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center;gap:18px}
.footer-brand img{width:105px;background:white}
.footer-at{font-family:"Annabelle JF Regular","Brush Script MT",cursive;font-size:3rem}
.footer-contact{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.reveal{opacity:0;transform:translateY(22px);transition:.7s ease}
.reveal.visible{opacity:1;transform:none}
@media(max-width:1050px){
  nav{gap:16px;font-size:.86rem}
  .brand-text{font-size:1rem}
}
@media(max-width:900px){
  nav{display:none}.menu-toggle{display:block}
  .two,.homemade,.story,.contact{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .cards article{display:grid;grid-template-columns:1fr 1fr}
  .story img{position:static}
  .grid{grid-auto-rows:90px}
}
@media(max-width:620px){
  html{scroll-padding-top:78px}
  .site-header{min-height:74px;padding:8px 4vw}
  .brand{min-width:0}.brand img{width:58px;height:44px}.brand-text{font-size:.86rem}
  .section{padding:75px 5vw}
  .hero{padding-top:74px}
  .hero>img{object-position:60% center}
  .shade{background:linear-gradient(0deg,rgba(0,0,0,.75),rgba(0,0,0,.06) 70%)}
  .cards article{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px}
  .grid img,.grid .wide,.grid .tall{grid-column:span 1;grid-row:span 1}
  .grid img:first-child,.grid img:last-child{grid-column:1/-1}
  .row{grid-template-columns:1fr}
  footer{align-items:flex-start}
  .footer-contact{align-items:flex-start}
}

.subpage{padding-top:86px}
.subpage-hero{padding:110px 6vw 65px;max-width:1050px}
.subpage-hero h1{font-family:"Playfair Display",serif;font-size:clamp(3.4rem,8vw,8rem);line-height:1;margin:18px 0}
.subpage-hero>p:last-child{max-width:720px;font-size:1.1rem;line-height:1.8}
.service-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-gallery img{aspect-ratio:1/1;object-fit:cover}
.service-gallery img:nth-child(4n+1){grid-column:span 2;aspect-ratio:2/1}
.subpage-cta{padding:0 6vw 100px}
@media(max-width:720px){
  .subpage{padding-top:74px}
  .service-gallery{grid-template-columns:1fr 1fr}
  .service-gallery img:nth-child(4n+1){grid-column:1/-1}
}


/* V2 adjustments */
.welcome-title{
  max-width:980px;
  margin:28px 0 46px;
}
.welcome-layout{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:6vw;
  align-items:center;
}
.welcome-photo{
  margin:0;
  aspect-ratio:1/1;
  object-fit:cover;
}
.welcome-copy{
  max-width:620px;
}
.coming-soon{
  cursor:default;
  opacity:.75;
}
footer{
  background:#111;
  color:white;
  padding:34px 6vw;
}
.footer-line{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:24px;
  width:100%;
}
.footer-brand img{
  width:88px;
  background:transparent;
}
.footer-title{
  margin:0;
}
.footer-contact{
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:flex-start;
}
@media(max-width:900px){
  .welcome-layout{
    grid-template-columns:1fr;
  }
  .footer-line{
    grid-template-columns:1fr;
    justify-items:start;
  }
}


/* V3 adjustments */
.welcome-title{
  text-align:center;
  white-space:pre-line;
  max-width:1100px;
  margin:28px auto 46px;
}
.locations{
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:8vw;
  align-items:end;
}
.locations>p{
  font-size:1.06rem;
  line-height:1.8;
  margin:0;
}
@media(max-width:900px){
  .locations{
    grid-template-columns:1fr;
    gap:32px;
  }
}


/* V4 — final requested changes */
.welcome-title{
  max-width:1100px;
  margin:28px auto 48px;
  text-align:center;
  white-space:pre-line;
}
.welcome-layout{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:6vw;
  align-items:center;
}
.welcome-layout .welcome-photo{
  width:100%;
  margin:0;
}
.welcome-copy{
  max-width:630px;
}
.grid img.full-photo{
  object-fit:contain;
  background:var(--paper);
}
.supplied-gallery{
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
}
.supplied-gallery img,
.supplied-gallery img:nth-child(4n+1){
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  grid-column:auto;
  background:transparent;
}
footer{
  padding:24px 4vw;
}
.footer-one-line{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  white-space:nowrap;
  font-size:.92rem;
}
.footer-one-line img{
  flex:0 0 auto;
  width:86px;
  height:58px;
  object-fit:contain;
  background:var(--paper);
}
.footer-one-line a{
  flex:0 0 auto;
}
.footer-one-line span{
  flex:1 1 auto;
}
@media(max-width:1100px){
  .footer-one-line{
    gap:14px;
    font-size:.8rem;
  }
  .footer-one-line img{
    width:70px;
  }
}
@media(max-width:900px){
  .welcome-layout{
    grid-template-columns:1fr;
  }
  .supplied-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .footer-one-line{
    white-space:normal;
    flex-wrap:wrap;
    justify-content:flex-start;
  }
  .footer-one-line span{
    flex-basis:calc(100% - 100px);
  }
}
@media(max-width:560px){
  .supplied-gallery{
    grid-template-columns:1fr;
  }
}


/* Final requested corrections only */
.site-header{
  background:#111;
}

/* Keep gallery images aligned in regular rows. */
.expanded-gallery{
  align-items:stretch;
}
.expanded-gallery img{
  width:100%;
  height:100%;
}
.expanded-gallery img.full-photo{
  object-fit:contain;
  background:var(--paper);
}

/* Align the three service galleries without changing their content. */
.supplied-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.supplied-gallery img,
.supplied-gallery img:nth-child(4n+1){
  width:100%;
  height:320px;
  aspect-ratio:auto;
  object-fit:cover;
  grid-column:auto;
}
@media(max-width:900px){
  .supplied-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:560px){
  .supplied-gallery{
    grid-template-columns:1fr;
  }
  .supplied-gallery img,
  .supplied-gallery img:nth-child(4n+1){
    height:auto;
    object-fit:contain;
  }
}




/* Galerie principale : photos originales, sans recadrage ni cases vides */
#galerie .grid{
  display:block;
  column-count:3;
  column-gap:18px;
}
#galerie .grid img,
#galerie .grid img.wide,
#galerie .grid img.tall,
#galerie .grid img.full-photo{
  display:block;
  width:100%;
  height:auto;
  margin:0 0 18px;
  object-fit:contain;
  grid-column:auto;
  grid-row:auto;
  break-inside:avoid;
  background:transparent;
}
@media(max-width:900px){
  #galerie .grid{
    column-count:2;
  }
}
@media(max-width:560px){
  #galerie .grid{
    column-count:1;
  }
}
