/*
Theme Name: Boisvert
Description: Thème du site de Boisvert, jardinier paysagiste à Heers.
Author: Boisvert
Version: 1.6.5
Requires at least: 6.4
Text Domain: boisvert
*/

@font-face { font-family: "Bricolage Grotesque"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/bricolage-grotesque-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/figtree-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/figtree-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/figtree-latin-700-normal.woff2") format("woff2"); }

.wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
.wp-block-image img { background: var(--wp--preset--color--cream); }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--wp--preset--color--moss); outline-offset: 2px; }
.sec-dark :focus-visible { outline-color: var(--wp--preset--color--leaf); }

/* Boutons */
.wp-block-buttons { gap: .8rem; }
.wp-block-button .wp-block-button__link.wp-element-button,
.devis-form button {
  display: inline-flex; align-items: center; gap: .7rem; border: 0; border-radius: 999px; padding: 7px 7px 7px 1.3rem;
  font-size: 1rem; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer;
  background: var(--wp--preset--color--forest); color: #fff; transition: background-color .2s, color .2s, border-color .2s;
}
.wp-block-button .wp-block-button__link.wp-element-button::after,
.devis-form button::after {
  content: ""; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%;
  background: var(--wp--preset--color--leaf) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231F3A2D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 18px no-repeat;
  transition: background-position .2s;
}
.wp-block-button .wp-block-button__link.wp-element-button:hover,
.devis-form button:hover { background-color: var(--wp--preset--color--moss); color: #fff; }
.wp-block-button .wp-block-button__link.wp-element-button:hover::after,
.devis-form button:hover::after { background-position: calc(50% + 4px) center; }

.sec-dark .wp-block-button .wp-block-button__link.wp-element-button { background: #fff; color: var(--wp--preset--color--forest); }
.sec-dark .wp-block-button .wp-block-button__link.wp-element-button:hover { background: var(--wp--preset--color--cream); color: var(--wp--preset--color--forest); }

/* Bouton téléphone, en second plan */
.wp-block-button .wp-block-button__link.wp-element-button[href^="tel:"] {
  padding: .8rem 1.3rem; background: transparent; color: var(--wp--preset--color--forest); box-shadow: inset 0 0 0 1px rgba(31, 58, 45, .45);
}
.wp-block-button .wp-block-button__link.wp-element-button[href^="tel:"]::after { content: none; }
.wp-block-button .wp-block-button__link.wp-element-button[href^="tel:"]::before {
  content: ""; flex: 0 0 18px; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wp-block-button .wp-block-button__link.wp-element-button[href^="tel:"]:hover { background: var(--wp--preset--color--forest); color: #fff; }
.sec-dark .wp-block-button .wp-block-button__link.wp-element-button[href^="tel:"] { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5); }
.sec-dark .wp-block-button .wp-block-button__link.wp-element-button[href^="tel:"]:hover { background: #fff; color: var(--wp--preset--color--forest); }

/* En-tête */
.site-head { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--wp--preset--color--line); }
.site-head .wp-block-site-title { font-family: var(--wp--preset--font-family--title); font-size: 1.5rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0; }
.site-head .wp-block-site-title a { color: var(--wp--preset--color--forest); text-decoration: none; }
.site-head .wp-block-navigation { font-size: .98rem; font-weight: 600; }
.site-head .wp-block-navigation a:hover { color: var(--wp--preset--color--moss); }
.head-call a { white-space: nowrap; }
.site-head .wp-block-site-logo { flex: 0 0 56px; width: 56px; }
.site-head .wp-block-site-logo img { width: 56px; height: 56px; display: block; }

/* Sections */
.sec { padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem); margin-top: 0 !important; margin-bottom: 0 !important; }
.sec-cream { background: var(--wp--preset--color--cream); }
.sec-dark { background: var(--wp--preset--color--forest); color: #fff; }
.sec-dark h1, .sec-dark h2, .sec-dark h3 { color: #fff; }
.sec-dark a:not(.wp-element-button) { color: var(--wp--preset--color--leaf); }
.sec > * + * { margin-top: 1.1rem; }
.eyebrow { font-size: .85rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--wp--preset--color--moss); margin-bottom: .5rem; }
.sec-dark .eyebrow { color: var(--wp--preset--color--leaf); }
.lead { font-size: 1.15rem; line-height: 1.6; }

/* Accueil */
.hero { position: relative; overflow: hidden; padding-top: clamp(5rem, 11vw, 9rem); padding-bottom: clamp(4.5rem, 10vw, 8rem); }
.hero > figure.wp-block-image { position: absolute; inset: 0; z-index: 0; margin: 0 !important; width: 100%; max-width: none !important; height: 100%; }
.hero > figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; background: var(--wp--preset--color--forest); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(20, 38, 30, .92) 0%, rgba(20, 38, 30, .72) 45%, rgba(20, 38, 30, .15) 100%); }
.hero-in { position: relative; z-index: 2; margin-top: 0 !important; }
.hero-in > * { max-width: 640px; }
.hero h1 { font-size: clamp(2.4rem, 5.6vw, 4rem); line-height: 1.04; margin-top: 0; }
.hero-score { display: inline-flex; align-items: center; gap: .6rem; margin: 1.2rem 0 0; padding: .4rem .9rem .4rem .45rem; border-radius: 999px; font-size: .95rem; background: rgba(255, 255, 255, .14); }
.hero-score strong { padding: .15rem .55rem; border-radius: 999px; font-family: var(--wp--preset--font-family--title); background: var(--wp--preset--color--leaf); color: var(--wp--preset--color--forest); }
.shine { font-weight: 700; }
.shine i { display: inline-block; font-style: normal; color: rgba(255, 255, 255, .72); animation: shine-letter 2.8s ease-in-out infinite; animation-delay: calc(var(--i) * .13s); }
@keyframes shine-letter {
  0%, 30%, 100% { color: rgba(255, 255, 255, .72); text-shadow: none; transform: none; }
  13% { color: #fff; text-shadow: 0 0 4px #fff, 0 0 10px #fff, 0 0 20px rgba(255, 255, 255, .95), 0 0 34px rgba(255, 255, 255, .7); transform: translateY(-2px) scale(1.22); }
}
@keyframes shine-letter-still {
  0%, 30%, 100% { color: rgba(255, 255, 255, .72); text-shadow: none; }
  13% { color: #fff; text-shadow: 0 0 4px #fff, 0 0 10px #fff, 0 0 20px rgba(255, 255, 255, .95), 0 0 34px rgba(255, 255, 255, .7); }
}
@media (prefers-reduced-motion: reduce) {
  .shine i { animation-name: shine-letter-still; }
}
.facts { list-style: none; padding: 0; margin: 1.25rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: .98rem; }
.facts li::before { content: "✓"; color: var(--wp--preset--color--leaf); font-weight: 800; margin-right: .4rem; }

/* Cartes */
.cards { gap: 1.25rem; }
.card { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
.card figure { margin: 0; }
.card figure img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.card h3 { font-size: 1.2rem; margin: 1rem 1.1rem .4rem; }
.card h3 a { color: var(--wp--preset--color--forest); text-decoration: none; }
.card h3 a:hover { text-decoration: underline; }
.wp-block-column.card p { margin: 0 1.1rem 1.3rem; font-size: .98rem; }

/* Cartes cliquables : toute la carte mène à la page du service */
.card { position: relative; transition: background-color .25s ease, border-color .25s ease; }
.card figure { overflow: hidden; }
.card figure img { transition: transform .5s ease; }
.card h3 a, .wp-block-column.card p { transition: color .2s; }
.card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: 14px; }
.wp-block-column.card p { margin-bottom: .9rem; }
.card::after {
  content: "En savoir plus"; display: block; width: fit-content; margin: auto 1.1rem 1.1rem; padding-right: 1.7em; font-size: .95rem; font-weight: 700; color: var(--wp--preset--color--moss);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%233F6B35' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") right .35em center / 1.1em no-repeat;
  transition: color .2s, background-position .2s;
}
html[lang^="nl"] .card::after { content: "Meer weten"; }
.card:hover, .card:focus-within { background: var(--wp--preset--color--forest); border-color: var(--wp--preset--color--forest); }
.card:hover figure img, .card:focus-within figure img { transform: scale(1.06); }
.card:hover h3 a, .card:focus-within h3 a { color: #fff; text-decoration: none; }
.wp-block-column.card:hover p, .wp-block-column.card:focus-within p { color: #DDE3DE; }
.card:hover::after, .card:focus-within::after {
  color: var(--wp--preset--color--leaf);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23B9E25B' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  background-position: right 0 center;
}
.card h3 a:focus-visible { outline: none; }
.card h3 a:focus-visible::after { outline: 3px solid var(--wp--preset--color--moss); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .card, .card figure img, .card::after { transition: none; }
  .card:hover figure img, .card:focus-within figure img { transform: none; }
}

/* Avis */
.reviews { align-items: stretch; gap: clamp(1.5rem, 4vw, 3rem); }
.score-card { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 3vw, 2.2rem); border-radius: 18px; background: var(--wp--preset--color--forest); color: #fff; }
.score-card h2 { color: #fff; font-size: 1.4rem; margin: 0 0 .4rem; }
.score-card .eyebrow { margin: 0; color: var(--wp--preset--color--leaf); }
.score-card .score-num { margin: .2rem 0 0; font-family: var(--wp--preset--font-family--title); font-size: clamp(4rem, 9vw, 5.6rem); font-weight: 700; line-height: 1; color: var(--wp--preset--color--leaf); }
.score-card .score-label { margin: 0 0 1rem; }
.score-card .score-alt { margin: .9rem 0 0; font-size: .92rem; }
.score-card .score-alt a { color: #fff; }
.review-list { display: flex; flex-direction: column; gap: .8rem; }
.quote { flex: 1 1 auto; margin: 0 !important; background: #fff; border-radius: 14px; padding: 1.1rem 1.3rem; border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--ink); }
.quote p { margin: 0 0 .35rem; }
.quote .stars { color: var(--wp--preset--color--moss); letter-spacing: .1em; font-size: .92rem; }
.quote .who { font-size: .9rem; color: #55615A; margin: 0; }

/* Zone d'intervention */
.zone-wrap { align-items: stretch !important; gap: clamp(1.5rem, 5vw, 4rem); }
.zone-wrap h2 { margin: 0 0 .5rem; }
.zone-word { display: inline-block; padding: 0 .28em; border-radius: 10px; white-space: nowrap; color: var(--wp--preset--color--forest); background: var(--wp--preset--color--leaf); transition: opacity .25s ease, transform .25s ease; }
.zone-word.is-out { opacity: 0; transform: translateY(-.25em); }
.zone-list { list-style: none; margin: 1rem 0 0; padding: 0; border-top: 1px solid rgba(31, 58, 45, .14); }
.zone-list li { margin: 0; }
.zone-list button { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; padding: .62rem .1rem; border: 0; border-bottom: 1px solid rgba(31, 58, 45, .14); cursor: pointer; font: inherit; font-weight: 600; text-align: left; color: var(--wp--preset--color--forest); background: none; transition: padding .2s ease, color .2s ease; }
.zone-list small { font-weight: 400; font-size: .9rem; color: #55615A; }
.zone-list button:hover, .zone-list button.is-on { padding-left: .7rem; color: var(--wp--preset--color--moss); }
.zone-note { margin: .6rem 0 0; font-size: .85rem; color: #55615A; }
.zone-photo { position: relative; min-height: 340px; overflow: hidden; border-radius: 16px; }
.zone-photo figure.wp-block-image { position: absolute; inset: 0; margin: 0; height: 100%; }
.zone-photo figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zone-dist { position: absolute; left: 1rem; bottom: 1rem; z-index: 2; display: grid; gap: .1rem; padding: .7rem 1.1rem; border-radius: 14px; color: var(--wp--preset--color--forest); background: var(--wp--preset--color--leaf); }
.zone-dist b { font-family: var(--wp--preset--font-family--title); font-size: 1.9rem; line-height: 1; }
.zone-dist span { font-size: .92rem; font-weight: 600; }
.zone-map { display: block; width: 100%; max-width: 440px; margin: 0 auto; height: auto; }
.zone-map text { font-family: Figtree, "Segoe UI", sans-serif; font-size: 13px; fill: var(--wp--preset--color--forest); }
.zone-map .town { fill: var(--wp--preset--color--moss); }
.zone-map .home-label { font-family: "Bricolage Grotesque", "Segoe UI", sans-serif; font-size: 16px; font-weight: 700; }
.chips { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.chips li { margin: 0; padding: .3rem .8rem; border-radius: 999px; font-size: .95rem; font-weight: 600; color: var(--wp--preset--color--forest); background: var(--wp--preset--color--cream); }

/* Bandeau de contact */
.cta-wrap { background: var(--wp--preset--color--cream); padding-top: 0; }
.sec:not(.sec-cream):not(.sec-dark) + .cta-wrap { background: #fff; }
.cta-card { gap: clamp(1.5rem, 4vw, 3rem) !important; padding: clamp(1.75rem, 5vw, 3.4rem); border-radius: 22px; align-items: center !important; }
.cta-card h2 { margin: 1rem 0 .5rem; font-size: clamp(1.9rem, 4vw, 2.8rem); }
.cta-card .hero-score { margin-top: 0; }
.cta-card .hero-score a { display: inline-flex; align-items: center; gap: .6rem; color: #fff; text-decoration: none; }
.cta-card .hero-score a:hover { text-decoration: underline; }
.cta-card .wp-block-buttons { margin-top: 1.4rem; }

/* Avis qui défilent par deux */
.ticker { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 86%, transparent); mask-image: linear-gradient(180deg, #000 86%, transparent); }
.ticker-track { display: flex; flex-direction: column; gap: .7rem; }
.ticker .quote { flex: 0 0 auto; background: #2C4B3B; border-color: #2C4B3B; color: #fff; }
.ticker .quote .stars { color: var(--wp--preset--color--leaf); }
.ticker .quote .who { color: #C7D2CA; }
.ticker-pause { display: block; margin: .5rem 0 0 auto; width: 30px; height: 30px; border: 0; border-radius: 50%; font-size: .72rem; line-height: 1; cursor: pointer; color: #fff; background: rgba(255, 255, 255, .16); }
.ticker-pause:hover { background: rgba(255, 255, 255, .3); }

/* Réalisations */
.gal-filters { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.gal-filters button { border: 0; border-radius: 999px; padding: .55rem 1.1rem; font: inherit; font-weight: 600; cursor: pointer; color: var(--wp--preset--color--forest); background: var(--wp--preset--color--cream); transition: background-color .2s, color .2s; }
.gal-filters button:hover { background: #E8E3D3; }
.gal-filters button[aria-pressed="true"] { background: var(--wp--preset--color--forest); color: #fff; }
.wp-block-gallery.has-nested-images.mosaic { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 210px; grid-auto-flow: dense; gap: .6rem; }
.wp-block-gallery.has-nested-images.mosaic figure.wp-block-image { width: auto !important; height: 100%; margin: 0; }
.wp-block-gallery.has-nested-images.mosaic figure.wp-block-image:nth-child(6n + 1) { grid-column: span 2; grid-row: span 2; }
.wp-block-gallery.has-nested-images.mosaic figure.wp-block-image:nth-child(6n + 4) { grid-column: span 2; }
.wp-block-gallery.has-nested-images.mosaic figure.wp-block-image.is-hidden { display: none; }
.wp-block-gallery.has-nested-images.mosaic figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.wp-block-gallery:not(.slides) figure.wp-block-image img { cursor: zoom-in; transition: transform .4s ease; }
.wp-block-gallery:not(.slides) figure.wp-block-image { overflow: hidden; }
.wp-block-gallery:not(.slides) figure.wp-block-image:hover img { transform: scale(1.04); }
.lb { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(10, 20, 15, .94); color: #fff; }
.lb[open] { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.lb img { max-width: min(92vw, 1290px); max-height: 80vh; object-fit: contain; border-radius: 8px; }
.lb p { margin: .8rem 1rem 0; text-align: center; }
.lb button { position: absolute; width: 46px; height: 46px; border: 0; border-radius: 50%; cursor: pointer; font-size: 1.4rem; line-height: 1; color: #fff; background: rgba(255, 255, 255, .16); }
.lb button:hover { background: rgba(255, 255, 255, .3); }
.lb .lb-close { top: 14px; right: 14px; }
.lb .lb-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.lb .lb-next { right: 14px; top: 50%; transform: translateY(-50%); }

/* Page Contact */
.contact-top { padding-top: clamp(1.5rem, 4vw, 3rem); }
.contact-top h1 { margin: 0 0 .4rem; font-size: clamp(2.1rem, 4.5vw, 3.2rem); }
.contact-top .wp-block-columns { align-items: flex-start !important; gap: clamp(1.5rem, 5vw, 4rem); }
.contact-top .contact-card { align-self: flex-start; }
.contact-card { padding: clamp(1.4rem, 3vw, 2rem); border-radius: 18px; background: var(--wp--preset--color--forest); color: #fff; }
.contact-card h2, .contact-card h3 { margin-top: 0; color: #fff; }
.contact-card h2 { font-size: 1.4rem; }
.contact-card h3 { font-size: 1.1rem; margin-top: 1.2rem; }
.contact-card a { color: var(--wp--preset--color--leaf); }
.contact-card .hours td { border-bottom-color: rgba(255, 255, 255, .22); }

/* Pages de service */
.split { align-items: center; gap: clamp(1.5rem, 4vw, 3rem); }
.split figure { margin: 0; }
.split figure img { border-radius: 14px; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.page-top h1 { font-size: clamp(2rem, 4.5vw, 3rem); line-height: 1.12; margin-top: 0; }

/* Réalisations */
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 10px; }
.wp-block-gallery { gap: .75rem; }

/* Contact */
.nap p { margin: .25rem 0; }
.hours { width: 100%; border-collapse: collapse; font-size: .98rem; }
.hours td { padding: .3rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.hours td:last-child { text-align: right; }

.devis-form { display: grid; gap: .9rem; }
.devis-form label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: .25rem; }
.devis-form input[type=text], .devis-form input[type=tel], .devis-form input[type=email], .devis-form select, .devis-form textarea {
  width: 100%; box-sizing: border-box; padding: .7rem .8rem; font: inherit; color: inherit; background: #fff;
  border: 1px solid #A9B3AB; border-radius: 8px;
}
.devis-form .row { display: grid; gap: .9rem; grid-template-columns: 1fr 1fr; }
.devis-form .consent { display: flex; gap: .5rem; align-items: flex-start; font-size: .9rem; }
.devis-form .consent label { font-weight: 400; margin: 0; font-size: .9rem; }
.devis-form .hp { position: absolute; left: -9999px; height: 1px; overflow: hidden; }
.devis-form button { justify-self: start; font-family: inherit; }
.form-msg { padding: .8rem 1rem; border-radius: 8px; font-weight: 600; }
.form-msg.ok { background: #E3F1DF; color: #1F4D1A; }
.form-msg.err { background: #FBE6E2; color: #7A1F10; }

/* Pied de page */
.site-foot { background: var(--wp--preset--color--ink); color: #DDE3DE; font-size: .95rem; margin-top: 0 !important; }
.foot-in { max-width: 1180px; margin: 0 auto; padding: 3rem 20px 1.5rem; display: grid; gap: 2rem; grid-template-columns: 1.3fr 1fr 1fr 1fr; }
.site-foot h2 { font-size: 1rem; color: #fff; margin: 0 0 .7rem; }
.site-foot a { color: #DDE3DE; text-decoration: none; }
.site-foot a:hover { color: var(--wp--preset--color--leaf); text-decoration: underline; }
.foot-brand { display: flex; align-items: center; gap: .7rem; margin-bottom: .8rem; font-family: var(--wp--preset--font-family--title); font-size: 1.35rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.foot-brand img { width: 52px; height: 52px; display: block; }
.site-foot ul { list-style: none; margin: 0; padding: 0; }
.site-foot li { margin: .25rem 0; }
.site-foot p { margin: .25rem 0; }
.foot-legal { max-width: 1180px; margin: 0 auto; padding: 1rem 20px 1.5rem; border-top: 1px solid #38423C; font-size: .85rem; }

/* Langues */
.lang-switch { display: inline-flex; align-items: center; gap: .15rem; font-size: .85rem; font-weight: 700; border: 1px solid var(--wp--preset--color--line); border-radius: 8px; padding: .15rem; }
.lang-switch a, .lang-switch span { padding: .3rem .5rem; border-radius: 6px; line-height: 1; text-decoration: none; }
.lang-switch a { color: var(--wp--preset--color--forest); }
.lang-switch a:hover { background: var(--wp--preset--color--cream); }
.lang-switch span { background: var(--wp--preset--color--forest); color: #fff; }
.lang-hint { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 55; max-width: 460px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .7rem .9rem; font-size: .95rem; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.lang-hint button { border: 0; background: none; font-size: 1.4rem; line-height: 1; cursor: pointer; color: inherit; padding: 0 .25rem; }
.brand-nl { display: flex; align-items: center; gap: .9rem; text-decoration: none; color: var(--wp--preset--color--forest); font-family: var(--wp--preset--font-family--title); font-size: 1.5rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.brand-nl img { width: 56px; height: 56px; display: block; }

/* Fil d'Ariane */
.crumbs { font-size: .88rem; padding-top: .7rem; padding-bottom: .7rem; color: #55615A; background: #fff; max-width: 1180px; margin: 0 auto; }
.crumbs a { color: inherit; }

/* Questions fréquentes */
.faq details { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; padding: .85rem 1.1rem; margin-top: .7rem; }
.faq summary { font-weight: 700; cursor: pointer; color: var(--wp--preset--color--forest); }
.faq details p { margin: .6rem 0 .2rem; }

/* Notre façon de travailler */
.why-wrap { align-items: stretch; gap: clamp(1.75rem, 5vw, 4rem); }
.why-wrap > .wp-block-column:first-child { display: flex; }
.why-wrap > .wp-block-column:first-child .slides { flex: 1 1 auto; }
.why-wrap .wp-block-button + .wp-block-button .wp-block-button__link.wp-element-button { padding: .8rem 1.3rem; min-height: 50px; box-sizing: border-box; background: transparent; color: var(--wp--preset--color--forest); box-shadow: inset 0 0 0 1px rgba(31, 58, 45, .45); }
.why-wrap .wp-block-button + .wp-block-button .wp-block-button__link.wp-element-button::after { content: none; }
.why-wrap .wp-block-button + .wp-block-button .wp-block-button__link.wp-element-button:hover { background: var(--wp--preset--color--forest); color: #fff; }
.why-wrap h2 { margin-top: 0; margin-bottom: .6rem; }
.why { position: relative; padding: 1rem 0 1rem 3.4rem; border-bottom: 1px solid rgba(31, 58, 45, .14); margin-top: 0 !important; }
.why h3 { margin: 0 0 .2rem; font-size: 1.15rem; }
.why p { margin: 0; font-size: 1rem; }
.why::before { content: ""; position: absolute; left: 0; top: 1.05rem; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--wp--preset--color--leaf); }
.why::after { content: ""; position: absolute; left: .6rem; top: 1.65rem; width: 1.2rem; height: 1.2rem; background: var(--wp--preset--color--forest); -webkit-mask: var(--why-icon) center / contain no-repeat; mask: var(--why-icon) center / contain no-repeat; }
.why-bolt { --why-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 3v7h6l-8 11v-7H5l8-11'/%3E%3C/svg%3E"); }
.why-file { --why-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3v4a1 1 0 0 0 1 1h4'/%3E%3Cpath d='M17 21H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7l5 5v11a2 2 0 0 1-2 2zM9 13h6M9 17h6'/%3E%3C/svg%3E"); }
.why-leaf { --why-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21c.5-4.5 2.5-8 7-10'/%3E%3Cpath d='M9 18c6.218 0 10.5-3.288 11-12V4h-4.014C7 4 4 8 4 13c0 1 0 2 2 4h3'/%3E%3C/svg%3E"); }
.why-wrap .wp-block-buttons { margin-top: 1.4rem; }

/* Photos qui défilent */
.wp-block-gallery.slides { display: block; position: relative; min-height: 420px; overflow: hidden; border-radius: 16px; background: var(--wp--preset--color--forest); margin: 0; }
.wp-block-gallery.has-nested-images.slides figure.wp-block-image { position: absolute; inset: 0; width: 100% !important; height: 100%; margin: 0; opacity: 0; transition: opacity .7s ease; display: block; }
.wp-block-gallery.has-nested-images.slides figure.wp-block-image:first-child { opacity: 1; }
.wp-block-gallery.has-nested-images.slides.ready figure.wp-block-image { opacity: 0; }
.wp-block-gallery.has-nested-images.slides.ready figure.wp-block-image.is-on { opacity: 1; }
.wp-block-gallery.has-nested-images.slides figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; display: block; }
.wp-block-gallery.has-nested-images.slides figcaption.wp-element-caption { position: absolute; left: 0; right: 0; bottom: 0; top: auto; max-height: none; margin: 0; padding: 3rem 1.1rem 3.1rem; text-align: left; font-size: .95rem; font-weight: 600; color: #fff; background: linear-gradient(0deg, rgba(15, 28, 22, .75), rgba(15, 28, 22, 0)); }
.slides-nav { position: absolute; z-index: 3; left: 1.1rem; bottom: .9rem; display: flex; align-items: center; gap: .1rem; }
.slides-nav button { border: 0; padding: 0; cursor: pointer; background: none; color: #fff; }
.slides-nav .dot { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; }
.slides-nav .dot::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, .55); transition: width .25s, background .25s; }
.slides-nav .dot[aria-current="true"]::before { width: 22px; border-radius: 6px; background: var(--wp--preset--color--leaf); }
.slides-nav .pause { width: 28px; height: 28px; margin-left: .4rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: .72rem; line-height: 1; background: rgba(255, 255, 255, .22); }
@media (max-width: 781px) {
  .wp-block-gallery.slides { aspect-ratio: 4 / 3; min-height: 0; width: 100%; }
}

/* Légendes des réalisations */
.wp-block-gallery.has-nested-images figcaption.wp-element-caption { font-size: .85rem; line-height: 1.3; }

/* Barre d'appel mobile */
.callbar { display: none; }

@media (max-width: 1120px) {
  .site-head .head-call { display: none !important; }
}
@media (max-width: 900px) {
  .site-head .wp-block-navigation { font-size: .88rem; }
  .site-head .wp-block-navigation__container { gap: .4rem .8rem; }
  .site-head .wp-block-site-title, .brand-nl { font-size: 1.2rem; }
}

@media (max-width: 900px) {
  .foot-in { grid-template-columns: 1fr 1fr; }
  .foot-in > div:first-child, .foot-in > div:nth-child(3) { grid-column: 1 / -1; }
  .foot-in > div:nth-child(3) { order: 3; }
  .foot-in > div:nth-child(4) { order: 2; }
}

/* Menu mobile plein écran */
.wp-block-navigation__responsive-container:not(.is-menu-open) .nav-only-mobile { display: none; }
.has-modal-open .callbar, .has-modal-open .lang-hint { display: none; }
.site-head .wp-block-navigation__responsive-container.is-menu-open { padding: 1.2rem 1.5rem 2rem; background: var(--wp--preset--color--forest) !important; color: #fff !important; }
.site-head .is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }
.site-head .is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; padding-top: 3.2rem; }
.site-head .is-menu-open .wp-block-navigation__container { align-items: flex-start !important; gap: .85rem; width: 100%; }
.site-head .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; width: 100%; }
.site-head .is-menu-open .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--title); font-size: 1.9rem; font-weight: 700; color: #fff; }
.site-head .is-menu-open .nav-only-mobile .wp-block-navigation-item__content { display: inline-block; padding: .75rem 1.3rem; border-radius: 999px; font-family: var(--wp--preset--font-family--system); font-size: 1.05rem; font-weight: 700; }
.site-head .is-menu-open .nav-cta { margin-top: 1rem; }
.site-head .is-menu-open .nav-cta .wp-block-navigation-item__content { background: var(--wp--preset--color--leaf); color: var(--wp--preset--color--forest); }
.site-head .is-menu-open .nav-tel .wp-block-navigation-item__content { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5); }
@media (max-width: 781px) {
  .lang-hint { bottom: 3.8rem; }
  .hero::before { background: linear-gradient(180deg, rgba(20, 38, 30, .78), rgba(20, 38, 30, .86)); }
  .cards.wp-block-columns { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: .8rem; margin-left: -20px; margin-right: -20px; padding: 0 20px .4rem; scroll-padding-left: 20px; scrollbar-width: none; }
  .cards.wp-block-columns::-webkit-scrollbar { display: none; }
  .cards.wp-block-columns > .card.wp-block-column { flex: 0 0 80% !important; scroll-snap-align: start; }
  .wp-block-gallery.has-nested-images.mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; }
  .callbar { display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; box-shadow: 0 -2px 10px rgba(0,0,0,.2); }
  .callbar a { padding: .9rem .5rem; text-align: center; font-weight: 700; text-decoration: none; }
  .callbar .c1 { background: var(--wp--preset--color--forest); color: #fff; }
  .callbar .c2 { background: var(--wp--preset--color--leaf); color: var(--wp--preset--color--ink); }
  body { padding-bottom: 3.2rem; }
  .devis-form .row { grid-template-columns: 1fr; }
}
