:root{
  --font-base:"Montserrat", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Avenir Next", "Avenir", sans-serif;
  --font-display:"EB Garamond", "adobe-jenson-pro", Georgia, serif;
  --font-script:"Caveat", cursive;
  --bg:#FAF5EE;
  --ink:#1f1b18;
  --muted:#5a4a41;
  --paper:#fff;
  --accent:#D5734B;
  --accent2:#AC4928;
  --border:rgba(31,27,24,.12);
  --shadow: 0 14px 30px rgba(0,0,0,.10);
  --shadow2: 0 8px 20px rgba(0,0,0,.10);
  --radius:20px;
  --radius-sm:16px;
  --max:1280px;
  --pad:24px;
  --header-height:72px;
  --focus: 0 0 0 4px rgba(213,115,75,.22);
  --warm-btn-border:1px solid color-mix(in srgb, var(--accent2) 85%, white);
  --warm-btn-gradient:linear-gradient(
    180deg,
    color-mix(in srgb, var(--accent2) 70%, white) 0%,
    var(--accent2) 100%
  );
  --warm-btn-shadow:0 6px 14px rgba(0,0,0,.10);
}
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-snap-type:y mandatory;
}
html.no-snap{
  scroll-snap-type:none;
}
button,input,select,textarea{font-family:var(--font-base)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display)}
body{
  margin:0;
  background:var(--bg);
  color:var(--accent2);
  font-family:var(--font-base);
  line-height:1.55;
}
a{color:inherit}
a:hover{color:var(--accent2)}
img{max-width:100%;display:block}

/* Typography */
.display{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:.02em;
}
.script{
  font-family:var(--font-script);
  font-weight:600;
}
.small{font-size:.92rem;color:var(--muted)}
.accentText{color:var(--accent)}

/* Layout */
.container{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.section{
  padding:72px 0;
  position:relative;
  min-height:calc(100svh - var(--header-height));
  scroll-margin-top:var(--header-height);
  display:flex;
  align-items:center;
}
main.section {
  display: block; /* Empêche le haut du contenu d'être coupé sur les pages longues */
}
.section > .container{width:100%}
.section h2{margin:0 0 18px;font-size:2rem}
.kicker{color:var(--accent2);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700}
main > section{
  scroll-snap-align:center;
  scroll-snap-stop:always;
}

/* Header */
.header{
  position:sticky;top:0;z-index:20;
  background:rgba(250,245,238,.85);
  backdrop-filter:saturate(140%) blur(10px);
  background:color-mix(in srgb, var(--bg) 85%, transparent);
  border-bottom:1px solid var(--border);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 0;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:44px;height:44px}
.brand .name{line-height:1.1}
.brand .name strong{display:block;font-family:var(--font-display);font-size:1.24rem;color:var(--accent2)}
.brand .name span{display:block;font-family:var(--font-base);font-size:.8rem;color:var(--accent2)}

.links{
  display:flex;
  flex:1;
  align-items:center;
  justify-content:center;
  gap:28px;
  padding:0 24px;
  white-space:nowrap;
}
.links a{font-weight:600;text-decoration:none;color:var(--accent2)}
.links a:hover{color:var(--ink)}

.cta{display:flex;align-items:center;gap:10px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:10px 14px;border-radius:14px;
  border:1px solid var(--border);
  background:var(--paper);
  box-shadow:0 8px 18px rgba(0,0,0,.06);
  text-decoration:none;font-weight:700;
}
.btn:hover{transform:none}
.btn:active{transform:translateY(0)}
.btn.primary,
.btn.ghost{
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 92%, white) 0%, var(--accent2) 100%);
  color:white;border-color:transparent;
}

.cta .btn.primary,
.cta .btn.ghost,
#devis .btn.primary,
.menuBtn{
  border:var(--warm-btn-border);
  background:var(--accent2);
  background-image:var(--warm-btn-gradient);
  color:#fff;
  box-shadow:var(--warm-btn-shadow);
  cursor:pointer;
}

.menuBtn{
  display:none;
  appearance:none;
  -webkit-appearance:none;
  width:44px;height:44px;border-radius:14px;
  overflow:hidden;
  align-items:center;justify-content:center;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.menuBtn:hover{transform:none;box-shadow:var(--warm-btn-shadow)}
.menuBtn:active{transform:translateY(0)}
.menuBtn[aria-expanded="true"]{filter:saturate(1.08) brightness(.95)}
.menuBtn:focus-visible,.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.projectsDot:focus-visible,.beforeAfterRange:focus-visible{
  outline:none;box-shadow:var(--focus)
}

.skip{
  position:absolute;
  left:10px;
  top:-48px;
  background:var(--paper);
  color:var(--ink);
  border:1px solid var(--border);
  border-radius:10px;
  padding:8px 12px;
  z-index:50;
  text-decoration:none;
}
.skip:focus{
  top:10px;
  box-shadow:var(--focus);
}

/* Mobile nav */
.mobileMenu{
  display:none;
  margin:10px 0 14px;
  padding:12px 14px 16px;
  background:var(--paper);
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.mobileMenu[data-open="true"]{
  display:block;
}
.mobileMenu a{
  display:block;
  padding:11px 12px;
  text-decoration:none;
  color:var(--accent2);
  font-weight:700;
  border-radius:12px;
}
.mobileMenu a:hover{
  color:var(--ink);
  background:rgba(172,73,40,.08);
}
.mobileMenu .cta{
  margin-top:10px;
  display:grid;
  gap:10px;
}
.mobileMenu .cta .btn{
  width:100%;
}

/* Cards + grids */
.grid{display:grid;gap:18px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.card{
  border:1px solid var(--border);
  background:var(--paper);
  box-shadow:0 10px 20px rgba(0,0,0,.06);
  border-radius:var(--radius-sm);
  padding:18px;
}
.gallery .tile{
  border:1px solid var(--border);
  background:var(--paper);
  box-shadow:0 10px 20px rgba(0,0,0,.06);
  border-radius:var(--radius-sm);
  overflow:hidden;
  aspect-ratio:1/1;
}
.card h3{margin:10px 0 8px;font-size:1.18rem}
.card p{margin:0;color:var(--accent)}
.icon{
  width:50px;height:50px;border-radius:14px;
  background:rgba(213,115,75,.18);
  background:color-mix(in srgb, var(--accent) 18%, white);
  display:grid;place-items:center;
  border:1px solid rgba(172,73,40,.2);
  border:1px solid color-mix(in srgb, var(--accent2) 20%, transparent);
}
.icon svg{width:22px;height:22px;fill:none;stroke:var(--accent2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon img{width:30px;height:30px;object-fit:contain}

/* Gallery */
.gallery{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  align-items:stretch;
}
.gallery .main{
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  aspect-ratio:4/5;
}
.gallery .main img{width:100%;height:100%;object-fit:cover}
.gallery .tile{border-radius:var(--radius-sm);overflow:hidden}
.gallery .tile{
  border:1px solid var(--border);
  box-shadow:0 10px 20px rgba(0,0,0,.06);
  aspect-ratio:1/1;
}
.gallery .tile img{width:100%;height:100%;object-fit:cover;opacity:.96}

.footer{
  padding:28px 0 34px;
  border-top:1px solid var(--border);
  color:var(--muted);
  scroll-snap-align:start;
  background:var(--bg);
}
.footer a{text-decoration:none}
.footerPanel{
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow2);
  padding:20px;
  display:grid;
  grid-template-columns:1fr;
  align-items:center;
  gap:20px;
}
.footerPanel > p.small{
  margin:0;
  justify-self:center;
  text-align:center;
  white-space:nowrap;
  color:var(--muted);
}
.footerLinks{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:8px 16px;
  text-align:center;
}
.footerLinks h3{
  flex-basis:100%;
  margin:0 0 4px;
  font-size:1.2rem;
  color:var(--accent2);
}
.footerLinks a{
  color:var(--muted);
  font-weight:600;
}
.footerLinks a:hover{color:var(--accent2)}

/* Utility */
.badges{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;
  background:var(--paper);
  background:color-mix(in srgb, var(--paper) 80%, var(--bg));
  border:1px solid var(--border);
  color:var(--muted);font-weight:700;font-size:.92rem
}
.pill b{color:var(--accent2)}
.mt-18{margin-top:18px}

@media (max-width: 1040px){
  /* Mobile nav */
  .links{display:none}
  .ctaNav > a{display:none !important}
  .ctaNav .btn{display:none !important}
  .menuBtn{display:inline-flex}

  .grid.cols-3{grid-template-columns:1fr}
  .grid.cols-2{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .gallery .main{aspect-ratio:16/10}
  .gallery .tile{aspect-ratio:4/3}
  .footerPanel{
    grid-template-columns:1fr;
  }
}

@media (max-width: 680px){
  :root {
    --pad: 16px; /* Optimise l'espace de lecture sur petit écran */
  }
  .nav { padding: 8px 0; }
  .section { padding: 56px 0; }
  .backBtn{
    width:46px;
    height:46px;
    padding:0;
    font-size:0;
    display:grid;
    place-items:center;
    position:relative;
    border-radius:14px;
    border:var(--warm-btn-border);
    background:var(--accent2);
    background-image:var(--warm-btn-gradient);
    box-shadow:var(--warm-btn-shadow);
  }
  .backBtn::before{
    content:none;
  }
  .backBtn::after{
    content:"";
    position:absolute;
    width:7px;
    height:7px;
    border-left:2px solid #fff;
    border-bottom:2px solid #fff;
    left:50%;
    top:50%;
    transform:translate(-50%, -50%) rotate(45deg);
  }
  html{
    scroll-snap-type:none;
  }
  main > section{
    scroll-snap-align:none;
    scroll-snap-stop:normal;
  }
  .footer{
    padding:20px 0 26px;
  }
  .footerPanel{
    padding:16px;
    gap:16px;
  }
}

@media (max-width: 480px){
  :root{
    --pad: 14px;
  }
  .section{
    padding:44px 0;
  }
  .section h2{
    font-size:1.7rem;
  }
  .brand .name strong{
    font-size:1.12rem;
  }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto;
    scroll-snap-type:none;
  }
  .btn:hover{transform:none}
}
