/* =======================================================================
   Giulo Création — Système de design « Éditorial vert »
   Repris fidèlement du site en ligne : crème #f4f1ea, vert sapin #152e28,
   accent émeraude #0f7d5b, sable #e7c9a8. Serif Spectral + Manrope + IBM Plex Mono.
   ======================================================================= */

:root{
  --bg:#f4f1ea;      /* fond crème */
  --paper:#ffffff;   /* cartes / inputs */
  --ink:#152e28;     /* vert sapin — texte principal, blocs sombres */
  --ink-2:#24443c;   /* vert foncé secondaire */
  --accent:#0f7d5b;  /* émeraude — action, liens, sur-titres */
  --sand:#e7c9a8;    /* sable — chiffres sur fond sombre, badges */
  --muted:#4f5a54;   /* gris-vert — paragraphes */
  --border:#e0dace;  /* bordures cartes/inputs */
  --hair:#eae4d8;    /* filets fins */

  --serif:"Spectral", Georgia, "Times New Roman", serif;
  --sans:"Manrope", system-ui, -apple-system, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --maxw:1160px;
  --radius:20px;
  --radius-lg:28px;
  --pad:76px;
}

/* ---- Polices auto-hébergées (déposer les .woff2 dans assets/fonts/) ---- */
@font-face{font-family:"Spectral";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/spectral-400.woff2") format("woff2")}
@font-face{font-family:"Spectral";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/spectral-400-italic.woff2") format("woff2")}
@font-face{font-family:"Spectral";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/spectral-600.woff2") format("woff2")}
@font-face{font-family:"Spectral";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/spectral-700.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/manrope-400.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/manrope-600.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/manrope-700.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-mono-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-mono-500.woff2") format("woff2")}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
::selection{background:var(--sand);color:var(--ink)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

h1,h2,h3,.serif{font-family:var(--serif);font-weight:600;line-height:1.08;letter-spacing:-.01em}
h1{font-size:clamp(2.3rem,5vw,3.9rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
p{color:var(--muted)}
strong,b{color:var(--ink);font-weight:700}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:24px}
.eyebrow{font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.eyebrow.on-dark{color:var(--sand)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.skip-link{position:absolute;left:-999px;top:0;z-index:100;background:var(--accent);color:#fff;padding:10px 16px;font-family:var(--mono);font-size:12px}
.skip-link:focus{left:8px;top:8px}

/* ---- Boutons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:700;font-size:15px;padding:15px 26px;border-radius:100px;border:1.5px solid transparent;cursor:pointer;transition:transform .15s,background .2s,color .2s,border-color .2s;line-height:1}
.btn:hover{transform:translateY(-1px)}
.btn--accent{background:var(--accent);color:#fff;box-shadow:0 12px 26px -10px var(--accent)}
.btn--accent:hover{background:#0c6a4d}
.btn--ghost{background:var(--paper);color:var(--ink);border-color:var(--border)}
.btn--ghost:hover{border-color:var(--ink)}
.btn--dark{background:var(--ink);color:#fff;padding:11px 20px;font-size:14px}
.btn--dark:hover{background:var(--ink-2)}
.btn--light{background:#fff;color:var(--ink)}
.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn--outline-light:hover{background:rgba(255,255,255,.12)}
.btn--full{width:100%;justify-content:center}

/* ---- Header ---- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(244,241,234,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:70px}
.brand{font-family:var(--serif);font-weight:600;font-size:21px;color:var(--ink)}
.nav-desk{display:flex;align-items:center;gap:26px}
.nav-desk ul,.nav-desk .menu{display:flex;gap:26px;list-style:none;align-items:center}
.nav-desk a{font-family:var(--sans);font-weight:600;font-size:14.5px;color:var(--ink-2)}
.nav-desk a:hover,.nav-desk .current-menu-item>a{color:var(--accent)}
.nav-desk a.btn--dark,.nav-desk a.btn--dark:hover{color:#fff}
.burger{display:none;width:44px;height:44px;border:1px solid var(--border);background:var(--paper);border-radius:12px;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px}
.burger span{display:block;width:18px;height:2px;background:var(--ink)}
.nav-mobile{display:none;flex-direction:column;gap:6px;padding:12px 24px 20px;border-bottom:1px solid var(--border);background:var(--bg)}
.nav-mobile.open{display:flex}
.nav-mobile a{font-family:var(--sans);font-weight:600;font-size:16px;color:var(--ink);padding:10px 0;border-bottom:1px solid var(--hair)}
.nav-mobile .btn{margin-top:10px}

/* ---- Sections ---- */
.section{padding:var(--pad) 0 20px}
.section.tight{padding-top:40px}
.sec-head{display:grid;grid-template-columns:1.3fr 1fr;gap:24px 48px;align-items:end;margin-bottom:40px}
.sec-head .lead{color:var(--muted);font-size:16px;align-self:center}
.sec-head h2{margin-top:14px}

/* ---- Hero ---- */
.hero{padding:64px 0 40px}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.hero-copy h1{margin:18px 0 22px}
.hero-copy .sub{font-size:18px;line-height:1.6;color:var(--muted);max-width:44ch}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:32px 0 22px}
.reassure{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:14px;color:var(--ink-2);font-weight:600}
.reassure .dot{width:9px;height:9px;border-radius:50%;background:#2e8b57;box-shadow:0 0 0 5px rgba(46,139,87,.15)}
.hero-media{position:relative}
.hero-media .shot{aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:var(--sand);box-shadow:0 40px 80px -30px rgba(21,46,40,.4)}
.hero-media .shot img{width:100%;height:100%;object-fit:cover;object-position:70% center}
.floating-stat{position:absolute;left:-14px;bottom:-14px;background:var(--ink);color:#fff;border-radius:16px;padding:20px 24px;box-shadow:0 20px 40px -16px rgba(21,46,40,.5);max-width:60%}
.floating-stat .v{font-family:var(--serif);font-weight:600;font-size:34px;color:var(--sand);line-height:1}
.floating-stat .l{font-size:12.5px;color:#cddbd5;margin-top:6px}

/* ---- Bandeau stats ---- */
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);border-radius:20px;margin-top:56px;overflow:hidden}
.stats-strip .cell{padding:26px 28px;border-left:1px solid var(--ink-2)}
.stats-strip .cell:first-child{border-left:0}
.stats-strip .v{font-family:var(--serif);font-weight:600;font-size:34px;color:var(--sand);line-height:1}
.stats-strip .l{font-family:var(--sans);font-size:13px;color:#a9c0b8;margin-top:8px}

/* ---- Cartes (expertises, services, réalisations) ---- */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.card{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:30px;display:flex;flex-direction:column;gap:14px;transition:transform .18s,box-shadow .18s}
a.card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(21,46,40,.45)}
.card--dark{background:var(--ink);border-color:var(--ink);color:#fff}
.card--dark p{color:#c6d6cf}
.card--dark .num{color:var(--sand)}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.card .num{font-family:var(--mono);font-size:13px;color:var(--accent)}
.card h3{font-size:clamp(1.3rem,2.4vw,1.6rem)}
.card .desc{font-size:15px;line-height:1.6}
.badge{font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;background:var(--sand);color:var(--ink);padding:5px 11px;border-radius:100px}
.card--dark .badge{background:var(--sand);color:var(--ink)}
.ticks{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:6px}
.ticks li{position:relative;padding-left:20px;font-size:14px;color:var(--muted)}
.card--dark .ticks li{color:#cddbd5}
.ticks li::before{content:"—";position:absolute;left:0;color:var(--accent)}
.card--dark .ticks li::before{color:var(--sand)}
.card-overline{font-family:var(--sans);font-weight:700;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.card--dark .card-overline{color:var(--sand)}
.card-link{font-family:var(--mono);font-size:13px;color:var(--accent);margin-top:auto}
.card--dark .card-link{color:var(--sand)}

/* ---- Panneau sombre (résultats) + KPIs ---- */
.panel{background:var(--ink);color:#fff;border-radius:var(--radius-lg);padding:clamp(32px,5vw,56px)}
.panel .eyebrow{color:var(--sand)}
.panel h2{color:#fff}
.panel .lead{color:#a9c0b8}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink-2);border-radius:16px;overflow:hidden;margin-top:36px}
.kpi{background:var(--ink);padding:28px 26px}
.kpi .v{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1;color:#fff}
.kpi:first-child .v,.kpi .v.sand{color:var(--sand)}
.kpi .l{font-size:13px;color:#a9c0b8;margin-top:10px}

/* ---- À propos ---- */
.about-grid{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:56px;align-items:start}
.portrait{aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:var(--sand);box-shadow:0 40px 80px -30px rgba(21,46,40,.35)}
.portrait img{width:100%;height:100%;object-fit:cover}
.about-body h2{margin:14px 0 18px}
.about-body>p{font-size:16px;max-width:56ch}
.steps{display:grid;grid-template-columns:1fr 1fr;gap:22px 32px;margin-top:32px}
.step{border-left:2px solid var(--accent);padding-left:18px}
.step h3{font-size:19px;margin-bottom:4px}
.step p{font-size:14.5px}

/* ---- FAQ (accordéons) ---- */
.faq{display:flex;flex-direction:column;gap:14px;max-width:900px;margin-inline:auto}
details.qa{background:var(--paper);border:1px solid var(--border);border-radius:16px;overflow:hidden}
details.qa summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;font-family:var(--serif);font-weight:600;font-size:19px;color:var(--ink)}
details.qa summary::-webkit-details-marker{display:none}
details.qa summary::after{content:"+";font-family:var(--sans);font-weight:400;font-size:24px;color:var(--accent);transition:transform .2s}
details.qa[open] summary::after{content:"–"}
details.qa .a{padding:0 26px 24px;color:var(--muted);font-size:15.5px;line-height:1.7;max-width:70ch}

/* ---- Bande CTA (accent) ---- */
.band{background:var(--accent);color:#fff;border-radius:var(--radius-lg);padding:clamp(48px,7vw,84px) 24px;text-align:center}
.band h2{color:#fff;max-width:20ch;margin:0 auto 18px}
.band p{color:#fbe6dc;max-width:60ch;margin:0 auto;font-size:17px}
.band .hero-actions{justify-content:center;margin-top:34px}

/* ---- Contact ---- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.contact-info h2{margin:14px 0 28px}
.contact-list{display:flex;flex-direction:column;gap:22px}
.contact-item{display:flex;align-items:center;gap:14px}
.contact-item .ico{width:44px;height:44px;border-radius:12px;background:var(--paper);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:14px;color:var(--accent);flex:none}
.contact-item .k{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted)}
.contact-item .val{font-size:17px;color:var(--ink);font-weight:600}
.form{background:var(--paper);border:1px solid var(--border);border-radius:22px;padding:28px;display:grid;gap:16px}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:block;font-family:var(--sans);font-weight:600;font-size:13px;color:var(--ink);margin-bottom:6px}
.form input,.form textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:11px;padding:13px 14px;font-family:var(--sans);font-size:15px;color:var(--ink)}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--accent)}
.form .note{font-size:13px;color:var(--muted)}
.form .note code{font-family:var(--mono);background:var(--hair);padding:2px 6px;border-radius:4px;font-size:12px}

/* ---- Fil d'ariane ---- */
.breadcrumb{padding-top:28px}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted)}
.breadcrumb li{display:flex;gap:8px;align-items:center}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb .sep{color:var(--border)}
.breadcrumb li[aria-current]{color:var(--accent)}

/* ---- Prose (blog / contenu libre) ---- */
.prose{max-width:72ch;font-size:17px;line-height:1.8;color:var(--ink)}
.prose h2{margin:1.5em 0 .4em}
.prose h3{margin:1.3em 0 .3em;font-size:1.5rem}
.prose p{margin:0 0 1.1em;color:var(--muted)}
.prose a{color:var(--accent);border-bottom:1px solid rgba(15,125,91,.4)}
.prose ul,.prose ol{margin:0 0 1.1em 1.2em}
.prose li{margin:.3em 0;color:var(--muted)}
.prose blockquote{border-left:3px solid var(--accent);padding-left:20px;margin:1.4em 0;font-style:italic;color:var(--ink)}
.prose img{border-radius:12px;margin:1.2em 0}

/* ---- Liste d'articles ---- */
.post-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px}
.post-item{display:flex;flex-direction:column;gap:12px}
.post-thumb{aspect-ratio:16/10;border-radius:16px;overflow:hidden;border:1px solid var(--border)}
.post-thumb img{width:100%;height:100%;object-fit:cover}
.post-item h2{font-size:1.5rem}
.post-item h2 a:hover{color:var(--accent)}
.post-meta{font-family:var(--mono);font-size:12px;color:var(--muted)}
.pagination{display:flex;gap:10px;justify-content:center;margin-top:56px;font-family:var(--mono);font-size:13px}
.pagination .page-numbers{padding:8px 14px;border:1px solid var(--border);border-radius:8px;color:var(--muted)}
.pagination .current,.pagination a.page-numbers:hover{border-color:var(--accent);color:var(--accent)}

/* ---- Deliverables (pages service détaillées) ---- */
.deliverables{list-style:none;display:grid;gap:2px;counter-reset:d}
.deliverables li{display:grid;grid-template-columns:54px 1fr;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--border)}
.deliverables li::before{counter-increment:d;content:counter(d,decimal-leading-zero);font-family:var(--mono);font-size:13px;color:var(--accent)}
.deliverables .d{font-family:var(--serif);font-size:20px;color:var(--ink)}

/* ---- Footer ---- */
.site-footer{background:var(--ink);color:#fff;margin-top:80px}
.site-footer .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px;padding:56px 0 30px}
.site-footer .brand{color:#fff}
.site-footer .about{color:#a9c0b8;font-size:14px;margin-top:14px;max-width:34ch}
.foot-col h4{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sand);margin-bottom:16px}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.foot-col a,.foot-col li{color:#cddbd5;font-size:14.5px}
.foot-col a:hover{color:#fff}
.foot-col .mono{font-family:var(--mono);font-size:13px}
.foot-bottom{border-top:1px solid var(--ink-2);padding:20px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#8ba69d;font-size:13px}
.foot-bottom .mono{font-family:var(--mono)}

/* ---- Responsive ---- */
@media (max-width:860px){
  .nav-desk{display:none}
  .burger{display:flex}
  .hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr}
  .sec-head{grid-template-columns:1fr}
  .stats-strip{grid-template-columns:1fr 1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .site-footer .foot-grid{grid-template-columns:1fr 1fr}
  .floating-stat{max-width:70%}
}
@media (max-width:520px){
  .stats-strip,.kpis{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .form .row2{grid-template-columns:1fr}
  .site-footer .foot-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* ---- Héros de page interne (services, pages) ---- */
.page-hero{padding:44px 0 8px}
.page-hero h1{margin:14px 0 16px}
.page-hero .sub{font-size:18px;color:var(--muted);max-width:60ch}
.lead-p{font-size:17px;color:var(--muted);max-width:74ch;margin-bottom:28px}

/* ---- Stats « pourquoi » (fond clair) ---- */
.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px 48px}
.why .v{font-family:var(--serif);font-weight:600;font-size:clamp(2.4rem,4.4vw,3.6rem);color:var(--accent);line-height:1}
.why .l{font-size:14.5px;color:var(--muted);margin-top:12px;max-width:32ch}

/* ---- Liste « autres prestations » ---- */
.others{list-style:none;border-top:1px solid var(--border)}
.others li{border-bottom:1px solid var(--border)}
.others a{display:grid;grid-template-columns:54px 1fr 24px;gap:16px;align-items:center;padding:20px 0;font-family:var(--serif);font-size:1.3rem;color:var(--ink);transition:padding .2s}
.others a:hover{padding-left:10px;color:var(--accent)}
.others .n{font-family:var(--mono);font-size:12px;color:var(--accent)}
.others .arr{color:var(--muted);text-align:right}
.others a:hover .arr{color:var(--accent)}

/* ---- Bloc réalisation détaillée ---- */
.rea-hero-img{aspect-ratio:16/9;border-radius:24px;overflow:hidden;border:1px solid var(--border);margin-bottom:40px}
.rea-hero-img img{width:100%;height:100%;object-fit:cover}
.rea-kpis{display:flex;gap:40px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:24px;margin:32px 0}
.rea-kpis .v{font-family:var(--serif);font-weight:600;font-size:2.4rem;color:var(--accent);line-height:1}
.rea-kpis .l{font-size:13px;color:var(--muted);margin-top:6px}
