:root{
  --bg:#F8F5EE; --bg-alt:#EEE7D6; --ink:#262B1F; --green:#4ebc2d; --green-dark:#333F22; --sage:#7C8863; --wood:#E4D3B4; --link:#2f6e15;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Karla',sans-serif;overflow-x:hidden}
h1,h2{font-family:'Lora',serif;font-weight:600;margin:0}
img{max-width:100%;display:block}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--green-dark)}
.container{max-width:1440px;margin:0 auto;padding:0 80px;box-sizing:border-box}
.container-narrow{max-width:1280px;margin:0 auto;padding:0 80px;box-sizing:border-box}
.container-doc{max-width:760px;margin:0 auto;padding:0 80px;box-sizing:border-box}

/* header */
.site-header{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid rgba(38,43,31,.12)}
.site-header.transparent{position:absolute;top:0;left:0;right:0;background:transparent;border-bottom:none;z-index:30}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 40px;max-width:1440px;margin:0 auto}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.site-header.transparent .logo{color:#fff}
.logo svg{stroke:currentColor}
.logo span{font-family:'Lora',serif;font-weight:600;font-size:19px}
.main-nav{display:flex;align-items:center;gap:22px}
.main-nav a{font-size:15px;font-weight:500;color:var(--ink);white-space:nowrap}
.site-header.transparent .main-nav a{color:#fff}
.main-nav a[aria-current="page"]{color:var(--link);font-weight:700}
.site-header.transparent .main-nav a[aria-current="page"]{color:#fff}
.btn{font-family:'Karla',sans-serif;font-weight:600;font-size:15px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:0 26px;cursor:pointer;border:none;text-decoration:none;box-sizing:border-box}
.btn-primary{background:var(--green);color:var(--ink)}
.btn-secondary{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.site-header.transparent .btn-secondary{color:#fff;border-color:#fff}
.header-cta{padding:0 22px}
.menu-toggle{display:none}
.burger-label{display:none;cursor:pointer}

@media (max-width:980px){
  .header-row{padding:14px 20px}
  .main-nav,.header-cta{display:none}
  .burger-label{display:flex;color:var(--ink)}
  .site-header.transparent .burger-label{color:#fff}
  .menu-toggle:checked ~ .mobile-nav{display:flex}
  .mobile-nav{display:none;flex-direction:column;gap:4px;background:var(--bg);border-bottom:1px solid rgba(38,43,31,.12);padding:12px 20px 20px}
  .mobile-nav a{padding:12px 0;font-size:16px;color:var(--ink);font-weight:500;border-bottom:1px solid rgba(38,43,31,.08)}
  .mobile-nav .btn{margin-top:8px;width:100%}
}
@media (min-width:981px){ .mobile-nav{display:none} }

/* hero (home) */
.hero{position:relative;width:100%;height:92vh;min-height:640px;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-scrim{position:absolute;inset:0;background:rgba(38,43,31,.4)}
.hero-content{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:20px;padding:0 80px 72px;max-width:720px;color:#fff;box-sizing:border-box}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#E4D3B4}
.hero h1{font-size:54px;line-height:1.12;color:#fff}
.hero p{font-size:17px;line-height:1.6;opacity:.92;max-width:480px;margin:0}
.btn-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:4px}
.stats-row{display:flex;gap:40px;margin-top:24px;padding-top:24px;border-top:1px solid rgba(255,255,255,.35);flex-wrap:wrap}
.stat b{display:block;font-family:'Lora',serif;font-size:24px;font-weight:600;color:#fff}
.stat span{font-size:13px;color:#fff;opacity:.85}
.trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:48px 80px;max-width:1280px;margin:0 auto;box-sizing:border-box}
@media (max-width:1000px){
  .trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .hero{height:820px;min-height:820px}
  .hero-content{padding:100px 20px 40px;max-width:none;box-sizing:border-box}
  .hero h1{font-size:32px}
  .trust-grid{grid-template-columns:1fr;gap:16px;padding:32px 20px}
}

/* generic page hero */
.page-hero{padding:88px 80px 32px;max-width:1280px;margin:0 auto;box-sizing:border-box}
.page-hero h1{font-size:46px;line-height:1.15;margin:12px 0 20px;max-width:780px}
.page-hero p{font-size:17px;line-height:1.6;opacity:.85;max-width:640px;margin:0}
@media (max-width:760px){ .page-hero{padding:48px 20px 24px} .page-hero h1{font-size:30px} }

/* dark section */
.section-dark{background:var(--green-dark);color:var(--bg);padding:96px 80px}
.section-dark h2{font-size:36px;max-width:640px;margin:0 auto 48px;line-height:1.2;text-align:center;color:var(--bg)}
@media (max-width:760px){ .section-dark{padding:56px 20px} .section-dark h2{font-size:26px;text-align:left} }

.card-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;max-width:1280px;margin:0 auto}
.card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:28px}
.card .num{font-family:'Lora',serif;font-size:14px;color:#B7C79E;letter-spacing:1px}
.card svg{color:var(--bg);margin:18px 0 16px}
.card h3{font-size:19px;margin:0 0 8px}
.card p{font-size:14.5px;line-height:1.55;opacity:.75;margin:0}
.section-link{display:block;text-align:center;margin-top:40px;font-weight:700;font-size:15px;color:#B7C79E}
@media (max-width:760px){ .card-grid-4{grid-template-columns:1fr;gap:16px} }

/* demarche 2col on home */
.demarche{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:72px;padding:96px 80px;background:var(--bg-alt);max-width:1440px;margin:0 auto;box-sizing:border-box}
.demarche-photo{border:1px solid var(--wood);border-radius:6px;overflow:hidden;aspect-ratio:4/5}
.quote{font-family:'Lora',serif;font-style:italic;font-size:19px;line-height:1.5;margin:12px 0 8px}
.quote-author{font-size:13px;font-weight:700;letter-spacing:.6px;color:var(--sage);text-transform:uppercase}
.demarche h2{font-size:32px;line-height:1.25;margin-bottom:36px}
.steps{display:flex;flex-direction:column;gap:28px}
.step{display:flex;gap:20px;align-items:flex-start}
.step .step-num{min-width:34px;color:var(--ink);opacity:.45;font-family:'Lora',serif;font-size:22px;font-weight:600;line-height:1}
.step h4{font-size:17px;margin:0 0 4px;font-family:'Karla',sans-serif;font-weight:700}
.step p{font-size:14.5px;line-height:1.55;opacity:.75;margin:0}
.demarche-link{display:inline-block;margin-top:8px;font-weight:700;font-size:15px}
@media (max-width:760px){ .demarche{grid-template-columns:1fr;gap:40px;padding:56px 20px} .demarche h2{font-size:26px} }

/* realisations grid */
.section{padding:96px 80px;max-width:1440px;margin:0 auto;box-sizing:border-box}
.section-narrow{padding:96px 80px;max-width:1280px;margin:0 auto;box-sizing:border-box}
.section h2,.section-narrow h2{font-size:36px;margin-bottom:44px}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.project-photo{border:1px solid var(--wood);border-radius:6px;overflow:hidden;aspect-ratio:4/3}
.project-name{font-family:'Lora',serif;font-weight:600;font-size:20px;margin-top:16px}
.project-meta{font-size:14px;opacity:.7;margin-top:4px}
.all-link{display:inline-block;margin-top:40px;font-weight:700;font-size:15px}
@media (max-width:760px){ .section,.section-narrow{padding:56px 20px} .project-grid{grid-template-columns:1fr;gap:24px} .section h2,.section-narrow h2{font-size:26px;margin-bottom:28px} }

/* blog */
.section-alt{background:var(--bg-alt);padding:96px 80px}
.blog-header-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px;max-width:1280px;margin:0 auto 40px}
.section-alt h2{font-size:32px;margin:0}
.blog-all-link{font-size:14px;font-weight:700;color:var(--link);white-space:nowrap}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1280px;margin:0 auto}
.blog-card{display:block}
.blog-img{aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:var(--wood);border:1px solid var(--wood);margin-bottom:16px}
.blog-img-empty{background:linear-gradient(135deg,var(--ink) 0%,var(--wood) 100%);opacity:.35}
.blog-img img{width:100%;height:100%;object-fit:cover;display:block}
.blog-cat{font-size:12.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--sage);margin-bottom:10px}
.blog-title{font-family:'Lora',serif;font-weight:600;font-size:20px;line-height:1.3;color:var(--ink)}
.blog-date{font-size:13px;opacity:.6;margin-top:8px}
@media (max-width:760px){ .section-alt{padding:56px 20px} .section-alt h2{font-size:24px} .blog-header-row{margin-bottom:24px} .blog-grid{grid-template-columns:1fr;gap:20px} }

/* contact section on home + form */
.contact-dark{background:var(--green-dark);color:var(--bg);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;padding:96px 80px;max-width:1440px;margin:0 auto;box-sizing:border-box}
.contact-dark h2{font-size:36px;margin-bottom:28px;color:var(--bg)}
.coord-list{display:flex;flex-direction:column;gap:14px}
.coord-row{display:flex;align-items:center;gap:12px;font-size:16px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:6px}
.field-full{grid-column:1/-1}
.field label{font-size:13px;opacity:.75}
.field input,.field select,.field textarea{background:rgba(255,255,255,.07);border:1px solid rgba(248,245,238,.3);border-radius:6px;padding:12px 14px;color:var(--bg);font-size:15px;font-family:'Karla',sans-serif;min-height:44px;box-sizing:border-box}
.field textarea{resize:vertical;min-height:auto}
.field input::placeholder,.field textarea::placeholder{color:rgba(248,245,238,.5)}
.submit-btn{margin-top:8px;width:fit-content}
@media (max-width:760px){
  .contact-dark{grid-template-columns:1fr;gap:40px;padding:56px 20px}
  .contact-dark h2{font-size:26px}
  .form-grid{grid-template-columns:1fr}
  .field-full{grid-column:auto}
  .submit-btn{width:100%}
}

/* contact page */
.contact-content{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:64px;padding:0 80px 96px;max-width:1280px;margin:0 auto;box-sizing:border-box}
.info-col{display:flex;flex-direction:column;gap:32px}
.hours-block{border-top:1px solid var(--wood);padding-top:20px;display:flex;flex-direction:column;gap:6px}
.hours-block h3{font-size:17px}
.hours-block span{font-size:15px;opacity:.8}
.map-frame{border:1px solid var(--wood);border-radius:6px;overflow:hidden;aspect-ratio:4/3;width:100%}
.form-card{background:var(--bg-alt);border-radius:6px;padding:40px;display:flex;flex-direction:column;gap:20px}
.form-card .field input,.form-card .field select,.form-card .field textarea{background:var(--bg);border:1px solid var(--wood);color:var(--ink)}
.form-card .field label{color:var(--ink);opacity:.75}
@media (max-width:760px){ .contact-content{grid-template-columns:1fr;padding:0 20px 56px;gap:40px} .form-card{padding:24px} }

/* generic content pages (savoir-faire, nos-maisons, demarche, realisations) */
.method-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;padding:88px 80px;max-width:1440px;margin:0 auto;box-sizing:border-box;align-items:center}
.method-section.alt{background:var(--bg-alt)}
.method-photo{aspect-ratio:4/3;border:1px solid var(--wood);border-radius:6px;overflow:hidden}
.method-section:nth-of-type(even) .method-photo{order:1}
.method-num{font-family:'Lora',serif;font-size:14px;color:var(--ink);opacity:.55;letter-spacing:1px}
.method-section svg{color:var(--ink);margin:14px 0 8px}
.method-section h2{font-size:30px;margin:0 0 12px}
.method-section > div:last-child p.lead{font-size:16px;line-height:1.6;opacity:.85;margin:0 0 20px}
.point-list div{font-size:15px;opacity:.85;padding:9px 0;border-top:1px solid var(--wood)}
@media (max-width:760px){
  .method-section{grid-template-columns:1fr;gap:32px;padding:48px 20px}
  .method-section .method-photo{order:0!important}
  .method-section h2{font-size:24px}
}

.cta-row{border-top:1px solid var(--wood);padding:88px 80px;max-width:1280px;margin:0 auto;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;gap:24px}
.cta-row h2{font-size:28px}
@media (max-width:760px){ .cta-row{flex-direction:column;align-items:flex-start;padding:48px 20px} .cta-row h2{font-size:24px} }

.cta-dark{background:var(--green-dark);color:var(--bg);text-align:center;padding:88px 80px;display:flex;flex-direction:column;align-items:center;gap:16px}
.cta-dark h2{color:var(--bg);font-size:32px;max-width:560px}
.cta-dark p{font-size:16px;line-height:1.6;opacity:.85;max-width:480px;margin:0}
@media (max-width:760px){ .cta-dark{padding:48px 20px} .cta-dark h2{font-size:24px} }

.style-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;max-width:1280px;margin:0 auto}
.style-card .method-photo{aspect-ratio:4/3;margin-bottom:16px}
.style-card h3{font-family:'Lora',serif;font-weight:600;font-size:20px;margin:0 0 8px}
.style-card p{font-size:15px;line-height:1.55;opacity:.8;margin:0}
@media (max-width:760px){ .style-grid{grid-template-columns:1fr} }

.surface-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1280px;margin:0 auto}
.surface-card{border:1px solid var(--wood);border-radius:6px;padding:28px 24px;text-align:center}
.surface-card b{display:block;font-family:'Lora',serif;font-weight:600;font-size:28px;margin-bottom:8px}
.surface-card span{font-size:14.5px;opacity:.75}
.surface-title{font-size:30px;margin:0 0 32px;text-align:center}
@media (max-width:760px){ .surface-grid{grid-template-columns:1fr} .surface-title{font-size:24px} }

.step-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:40px;padding:48px 80px;max-width:1280px;margin:0 auto;box-sizing:border-box;align-items:flex-start}
.step-row.alt{background:var(--bg-alt)}
.step-row .num{font-family:'Lora',serif;font-size:40px;font-weight:600;color:var(--green)}
.step-row h2{font-size:26px;margin:0 0 10px}
.step-row p{font-size:15.5px;line-height:1.6;opacity:.85;margin:0}
@media (max-width:760px){ .step-row{grid-template-columns:56px 1fr;gap:20px;padding:32px 20px} .step-row .num{font-size:26px} .step-row h2{font-size:22px} }

.quote-dark{background:var(--green-dark);color:var(--bg);padding:88px 80px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.quote-dark p{font-family:'Lora',serif;font-style:italic;font-size:24px;line-height:1.5;margin:0;max-width:720px}
.quote-dark .quote-author{opacity:.75}
@media (max-width:760px){ .quote-dark{padding:56px 20px} .quote-dark p{font-size:20px} }

/* image placeholder */
.img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-alt);color:var(--sage);font-size:13px;text-align:center;padding:16px;font-style:italic}

/* footer */
.site-footer{background:var(--green-dark);color:var(--bg);border-top:1px solid rgba(255,255,255,.12);padding:24px 80px}
.footer-inner{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;max-width:1440px;margin:0 auto}
.footer-inner p{font-size:13px;opacity:.65;margin:0}
.footer-links{display:flex;gap:20px}
.footer-links a{font-size:13px;color:var(--bg);opacity:.65}
@media (max-width:760px){ .site-footer{padding:20px 20px} .footer-inner{flex-direction:column;align-items:flex-start} }

/* legal pages */
.legal-content{padding:80px 80px 96px;max-width:760px;margin:0 auto;box-sizing:border-box}
.legal-content h1{font-size:40px;margin-bottom:32px}
.legal-content h2{font-size:20px;margin:32px 0 10px}
.legal-content p{font-size:15.5px;line-height:1.7;opacity:.85;margin:0}
@media (max-width:760px){ .legal-content{padding:48px 20px 56px} .legal-content h1{font-size:30px} }
