
/* ---- style.css ---- */
/*
Theme Name: Borealis Gutenberg
Description: Thème enfant Twenty Twenty-Five pour Atelier Borealis, sans dépendance Elementor.
Template: twentytwentyfive
Version: 1.1.0
Requires at least: 6.7
Requires PHP: 8.0
Text Domain: borealis-gutenberg
*/

/*@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@200;300;400;500;600;700;800&display=swap');*/

:root {
  --ab-dark: #353535;
  --ab-light: #ffffff;
  --ab-grey-dark: #2B2B2B;
  --ab-accent: var(--wp--preset--color--accent-1, #aa897e);
  --ab-ink: #333;
  --ab-muted: #666;
  --ab-wide: 1600px;
  --ab-gutter: clamp(1rem, 3vw, 3.125rem);
  --ab-section-space: clamp(2.5rem, 5vw, 5rem);
  --ab-header-height: 150px;
  --ab-admin-offset: 0px;
  --ab-mask-header: url('/wp-content/uploads/2025/07/AtelierBorealis-DirtBorder7.png');
  --divider-color: #fff;
  --divider-border-width: 1px;
  --divider-pattern-size: auto;
  --divider-pattern-height: 20px;
  --divider-pattern-repeat: repeat-x;
 /* --divider-border-style: trees_2_tribal;*/
  --divider-pattern-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMidYMid meet' overflow='visible' height='100%' viewBox='0 0 126 26' fill='black' stroke='none'%3E%3Cpath d='M111.9,18.3v3.4H109v-3.4H111.9z M90.8,18.3v3.4H88v-3.4H90.8z M69.8,18.3v3.4h-2.9v-3.4H69.8z M48.8,18.3v3.4h-2.9v-3.4H48.8z M27.7,18.3v3.4h-2.9v-3.4H27.7z M6.7,18.3v3.4H3.8v-3.4H6.7z M46.4,4l4.3,4.8l-1.8,0l3.5,4.4l-2.2-0.1l3,3.3l-11,0.4l3.6-3.8l-2.9-0.1l3.1-4.2l-1.9,0L46.4,4z M111.4,4l2.4,4.8l-1.8,0l3.5,4.4l-2.5-0.1l3.3,3.3h-11l3.1-3.4l-2.5-0.1l3.1-4.2l-1.9,0L111.4,4z M89.9,4l2.9,4.8l-1.9,0l3.2,4.2l-2.5,0l3.5,3.5l-11-0.4l3-3.1l-2.4,0L88,8.8l-1.9,0L89.9,4z M68.6,4l3,4.4l-1.9,0.1l3.4,4.1l-2.7,0.1l3.8,3.7H63.8l2.9-3.6l-2.9,0.1L67,8.7l-2,0.1L68.6,4z M26.5,4l3,4.4l-1.9,0.1l3.7,4.7l-2.5-0.1l3.3,3.3H21l3.1-3.4l-2.5-0.1l3.2-4.3l-2,0.1L26.5,4z M4.9,4l3.7,4.8l-1.5,0l3.1,4.2L7.6,13l3.4,3.4H0l3-3.3l-2.3,0.1l3.5-4.4l-2.3,0L4.9,4z'/%3E%3C/svg%3E");
}

/* ACCUEIL : fond explicite, sans dépendance à la palette du parent. */
body.home,
body.home .wp-site-blocks,
.ab-main-home,
.ab-main-home > .wp-block-post-content {
  background-color: var(--ab-dark);
  color: var(--ab-light);
}
body.home .wp-site-blocks,
.ab-main-home,
.ab-main-home > .wp-block-post-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Fontes et réglages généraux : theme.json. */
:where(.ab-main, .ab-header-shell, .ab-footer-shell),
:where(.ab-main, .ab-header-shell, .ab-footer-shell) * { box-sizing: border-box; }
.wp-site-blocks > * { margin-block: 0; }
.ab-main, .ab-main > .wp-block-post-content { margin-block: 0; }
.ab-main img, .ab-footer-shell img { max-width: 100%; }
.ab-main :where(a, button), .ab-header-shell :where(a, button),
.ab-footer-shell :where(a, button) { text-underline-offset: .2em; }
:where(.ab-main, .ab-header-shell, .ab-footer-shell) :focus-visible {
  /*outline: 3px solid currentColor;
  outline-offset: 5px;*/
	outline: none;
}
:where(.wp-site-blocks :focus) {
  	outline: none;
}
.ab-main :where(section[id], h2[id], h3[id]) {
  scroll-margin-top: calc(var(--ab-header-height) + var(--ab-admin-offset) + 1rem);
}
.ab-section {
  width: calc(100% - 2 * var(--ab-gutter));
  max-width: var(--ab-wide);
  margin-inline: auto;
  margin-block: 0;
  padding-block: var(--ab-section-space);
}
.ab-section-title {
  margin-block: 0 2.5rem;
  padding-bottom: 1rem;
  font-size: clamp(1.5rem, 2.5vw, 2.1875rem);
  font-weight: 300;
  line-height: 1.15;
  text-transform: uppercase;
}

/* =========================================================
   HEADER
   ========================================================= */

.ab-site-header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    margin: 0;
}

.ab-header-shell {
    position: sticky;
    top: 0;
    z-index: 9999;
    /*overflow: hidden;*/
    transition:
        height .4s ease,
        min-height .4s ease,
        padding .4s ease,
        background-color .4s ease,
        box-shadow .4s ease;
}
.ab-header-shell {
    min-height: 110px;
}

.ab-header-shell.is-hidden {
    transform: translateY(-100%);
}

.ab-header-shell.is-scrolled {
    height: 80px;
    min-height: 80px;
    /*background: rgba(20,20,20,.96);
    box-shadow: 0 5px 20px rgba(0,0,0,.15);*/
}
.ab-header-shell.is-scrolled .wp-block-navigation {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-15px);
}

.ab-header-shell .wp-block-site-logo {
  margin-top: 15px !important;
}

.ab-header-shell.is-scrolled .wp-block-site-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    margin-top: 0 !important;
}
.ab-header-shell.is-scrolled .wp-block-site-logo img {
    width: auto;
    height: 80px;
    max-height: 80px;
}

.ab-header-shell .wp-block-site-logo {
    transition:
        transform .4s ease,
        top .4s ease,
        left .4s ease;
}

.ab-header-shell .wp-block-site-logo img {
    transition:
        width .4s ease,
        height .4s ease,
        max-height .4s ease;
}
/* Si barre admin WordPress */
body.admin-bar .ab-site-header {
    top: 32px;
}

.ab-header-shell {
    position: relative;
    width: 100%;
    color: #fff;
}
.ab-header-shell .wp-block-navigation {
    opacity: 1;
    visibility: visible;

    transition:
        opacity .25s ease,
        transform .4s ease,
        visibility .25s ease;
}
.ab-header-shell .wp-block-navigation-item__content:hover {
	text-decoration: none;
}
.ab-header-shell .wp-block-navigation-item__content:hover:after {
	display: block;
    position: absolute;
    transition: .3s;
    transition-timing-function: cubic-bezier(.58, .3, .005, 1);
	transform: scale(1);
	height: 3px;
    left: 0;
    width: 100%;
    z-index: 2;
	bottom: -5px;
    content: "";
    background-color: var(--ab-accent);
}
/* Sous-menu desktop */
.ab-main-nav .wp-block-navigation__submenu-container {
    min-width: 400px !important;
    padding: 10px 20px !important;
    border: 0 !important;
    backdrop-filter: blur(5px);
}

.ab-main-nav .wp-block-navigation__submenu-container
.wp-block-navigation-item {
    width: 100%;
}

.ab-main-nav .wp-block-navigation__submenu-container
.wp-block-navigation-item__content {
    width: 100%;
    padding: 10px 20px !important;
    color: #fff !important;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.3;
    text-transform: uppercase;
    white-space: nowrap;
}

.ab-main-nav .wp-block-navigation__submenu-container
.wp-block-navigation-item__content:hover {
    background: rgba(255, 255, 255, .08);
}

.wp-block-navigation-item.is-current-page
> .wp-block-navigation-item__content,
.wp-block-navigation-item.is-current-ancestor
> .wp-block-navigation-item__content {
    position: relative;
}

.wp-block-navigation-item.is-current-page
> .wp-block-navigation-item__content::after,
.wp-block-navigation-item.is-current-ancestor
> .wp-block-navigation-item__content::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 2px;
    background: var(--ab-accent);
}

/* Fond translucide / masque uniquement derrière le contenu */
.ab-header-shell::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;

    background: #22222288;

    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);

    -webkit-mask:
        var(--ab-mask-header) center / 100% 100% no-repeat;
    mask:
        var(--ab-mask-header) center / 100% 100% no-repeat;
}

.ab-header-inner {
    width: calc(100% - 2 * var(--ab-gutter));
    max-width: var(--ab-wide);
    /*min-height: 180px;*/

    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;

    padding: 0 0 1.5rem;
}

.ab-brand {
    flex: 0 1 260px;
}

.ab-brand img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 120px;
    object-fit: contain;
}

.ab-main-nav {
    flex: 1;
}


.ab-main-nav .wp-block-navigation__container { gap: clamp(1rem, 2vw, 2rem); }
.ab-header-shell a { color: inherit; text-decoration: none; }
.ab-header-shell a:hover { text-decoration: underline; }
.ab-main-nav .wp-block-navigation__submenu-container { background: var(--ab-dark); color: #fff; }
.ab-main-nav .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--ab-dark);
  color: #fff;
  padding: max(2rem, env(safe-area-inset-top)) var(--ab-gutter) 2rem;
}
.ab-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.5rem; }
.wp-block-navigation .wp-block-navigation-item__label {
    font-family: "Montserrat", Sans-serif;
    font-size: 18px;
    font-weight: 300;
    text-transform: uppercase;
    line-height: 1em;
}
.wp-block-navigation .wp-block-navigation-submenu ul {
	left: -50px !important;
}
/* =========================================================
   HERO / ACCUEIL
   ========================================================= */


#accueil.ab-hero {
    position: relative;
    isolation: isolate;

    width: 100%;
    max-width: none;

    min-height: 100vh;
    min-height: 100svh;
    min-height: 100dvh;

    margin: 0;
    padding: 0;

    overflow: hidden;

    background: #353535;
    color: #fff;
}

.ab-hero-images {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  z-index: 0;
  margin: 0;
  overflow: hidden;
  pointer-events: none;

mask-image: url(/wp-content/uploads/2025/07/AtelierBorealis-DirtBorder2.png);
    mask-mode: alpha;
    mask-repeat: no-repeat;
    mask-size: cover;
    -webkit-mask-image: url(/wp-content/uploads/2025/07/AtelierBorealis-DirtBorder2.png);
    -webkit-mask-mode: alpha;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: cover;
}
.ab-hero-images::after { content: ''; position: absolute; inset: 0; z-index: 2; background: #00000030; pointer-events: none; }
.ab-hero-images > .ab-hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  transition: opacity 1s ease;
}
.ab-hero-images:not(.is-ready) > .ab-hero-slide-first,
.ab-hero-images.is-ready > .ab-hero-slide.is-active { opacity: 1; }
.ab-hero-images .ab-hero-slide picture,
.ab-hero-images .ab-hero-slide img { display: block; width: 100%; height: 100%; }
.ab-hero-slide img { object-fit: cover; object-position: center center; }
.ab-hero-content { position: relative; z-index: 1; width: 100%; top: 20vh; min-height: 75vh; margin-top:150px;}
@media (max-width: 979px) {
  .ab-hero-content {
 	top: 260px !important;
  }
}
.ab-hero-title, .ab-hero-text {
  background: #ffffff11;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  padding: clamp(1rem, 2vw, 1.5rem);
  color: #fff !important;
  text-shadow: 0 2px 20px #0009;
}
.ab-hero-title {
  margin: 0;
  font-size: clamp(1.6rem, 2.8vw, 2.1875rem);
  line-height: 1em;
  font-weight: 200;
  text-align: center;
  text-transform: uppercase;
  text-wrap: balance;
  color: #ffffff !important;
}
.ab-hero-text { max-width: 1080px; margin: 1.5rem auto 0; font-weight: 400; line-height: 1.7; }
.ab-hero-controls { position: absolute; z-index: 3; inset-inline-end: var(--ab-gutter); bottom: 1.25rem; display: flex; align-items: center; gap: .5rem; }
.ab-hero-controls button { min-width: 44px; min-height: 44px; padding: .5rem .75rem; border: 1px solid #fff8; border-radius: 0; background: #222d; color: #fff; font: inherit; cursor: pointer; }
.ab-hero-controls button:hover { background: #111; }
.ab-hero-controls button:disabled { opacity: .5; cursor: wait; }
.ab-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* INTRODUCTION */
.ab-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.ab-intro > * { margin-block: 0; min-width: 0; }
.ab-intro-mountain img { display: block; width: 100%; height: auto; }
.ab-intro-text { margin-block: 1rem; font-size: clamp(1.1rem, 1.75vw, 1.25rem); line-height: 1.5; }
.ab-intro-text a { color: inherit; }
.ab-quote-mark { width: 60px; margin-block: 0; }
.ab-quote-mark img { display: block; width: 100%; }
.ab-quote-close { margin-left: auto; }

/* PROJETS : aucune requête PHP propriétaire, la boucle est un bloc Query. */
.ab-projects-query .ab-project-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.ab-project-grid > li { min-width: 0; }
.ab-project-card { height: 100%; padding-bottom: 15px; }
.ab-project-card .wp-block-post-featured-image { margin: 0 0 15px; overflow: hidden; }
.ab-project-card .wp-block-post-featured-image img { display: block; width: 100%; object-fit: cover; transition: transform .25s ease; }
.ab-project-card:hover .wp-block-post-featured-image img { transform: scale(1.05); }
.ab-project-card:hover { box-shadow :7px -3px 100px 20px rgba(0,0,0,0.5);transform: scale(1.05); cursor: pointer; } 
.ab-project-title { margin: 0; font-size: .9rem; font-weight: 500; line-height: 1.4; text-align: center; text-transform: uppercase; }
.ab-project-title a { color: inherit; text-decoration: none; font-weight:200; cursor: pointer; }
.ab-project-title a:hover { opacity:0.7; color:var(--ab-accent); }

/* EQUIPE : les sept photos, dans l'ordre de l'export. */
.ab-team-grid { display: grid; gap: clamp(.5rem, 1.5vw, 1.5rem); margin-block: 0; }
.ab-team-grid-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ab-team-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: clamp(.5rem, 1.5vw, 1.5rem); }
.ab-team-photo { min-width: 0; margin: 0; }
.ab-team-photo img { display: block; width: 100%; height: auto; }

/* PROCESSUS */
.ab-process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 3rem); }
.ab-process-grid > * { margin-block: 0; min-width: 0; }
.ab-step-icon { width: 110px; margin: 0 auto 1rem; }
.ab-step-icon img { display: block; width: 100%; height: 110px; object-fit: contain; }
.ab-step-title { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 400; line-height: 1.4; text-align: center; text-transform: uppercase; }
.ab-step ul { margin: 0; padding-inline-start: 1.2rem; font-size: .9rem; line-height: 1.3; font-weight: 200; opacity:0.8;margin-left: 50px;width:80%;}
.ab-step li + li { margin-top: .3rem; }

/* LABELS ET OPTION DE CTA NATIF */
.ab-certifications { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: clamp(1.5rem, 6vw, 6rem); }
.ab-certifications > * { margin: 0; }
.ab-certification { width: clamp(80px, 12vw, 150px); }
.ab-certification img { display: block; width: 100%; height: 105px; object-fit: contain; border-radius: 10px; }
.ab-cta { display: flex; justify-content: space-between; align-items: center; gap: 2rem; border-top: 1px solid #fff4; }
.ab-cta > * { margin: 0; }
.ab-cta h2 { font-size: clamp(1.5rem, 2.5vw, 2.2rem); font-weight: 400; }
.ab-cta .wp-block-button__link { border-radius: 0; background: #fff; color: #333; text-decoration: none; }

/*.ab-reading h2 {*/
.ab-section h2 {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 30px;
}

.ab-section-title > span {
    display: block;
    flex: 0 0 auto;
    text-align: left;
    line-height: 1.1;
}

/*.ab-reading h2 b*/
.ab-section h2 b {
	font-weight: 600;
}

/*.ab-reading h2::after {*/
.ab-section h2::after {
    content: "";
    display: block;

    flex: 1 1 auto;
    min-width: 0;
    height: var(--divider-pattern-height);

    background-color: var(--divider-color);

    -webkit-mask-image: var(--divider-pattern-url);
    mask-image: var(--divider-pattern-url);

    -webkit-mask-repeat: var(--divider-pattern-repeat);
    mask-repeat: var(--divider-pattern-repeat);

    -webkit-mask-size: var(--divider-pattern-size) 100%;
    mask-size: var(--divider-pattern-size) 100%;

    border-block-start:
        var(--divider-border-width)
        var(--divider-border-style)
        var(--divider-color);
}
.ab-cta-slot {
  width: 75%;
}

.ab-cta-slot a {
	text-decoration: none !important;
}

/* FOOTER : hauteur naturelle, sans décalage négatif. */
.ab-site-footer { margin: 0;  color: #fff; }
.ab-site-footer .ab-footer-inner { background: var(--ab-grey-dark); padding: 0 !important;}
.ab-footer-shell { padding-block: 0; }
.ab-footer-trees { width: 100%; margin: 0; }
.ab-footer-trees img { display: block; width: 100%; height: auto; }
.ab-footer-inner { width: 100%; margin: 0; }
.ab-footer-inner div { margin : 0 10px; }
.ab-footer-grid { display: grid; grid-template-columns: 1fr 1.6fr 1fr; gap: 2rem; align-items: center; }
.ab-footer-grid > * { margin: 0; min-width: 0; }
.ab-footer-brand img { display: block;  max-width: 300px; max-height: 250px; object-fit: contain; }
.ab-footer-socials { display: flex; justify-content: center; align-items: center; gap: 1.25rem; }
.ab-footer-socials > * { margin: 0; }
.ab-contact-icon { width: 150px; }
.ab-contact-icon img { display: block; width: 100%; height: 150px; object-fit: contain; transition: transform .2s ease; }
.ab-contact-icon a:hover img { transform: rotate(6deg); }
.ab-footer-nav { font-size: 1rem; font-weight: 300; text-transform: uppercase; padding: 15px 30px; }
.ab-footer-nav .wp-block-navigation-link a .wp-block-navigation-item__label {font-size: 0.9rem; font-weight:200;}
.ab-footer-nav .wp-block-navigation-link a:hover {text-decoration: none; color: var(--ab-accent); transform: translateY(5px); }
.ab-footer-nav .wp-block-navigation-link a { cursor:pointer; transition: transform 0.3s ease, color 0.3s ease;}
.ab-footer-nav .wp-block-navigation__container { align-items: flex-end; gap: .55rem; }
.ab-footer-shell a { color: #fff; }
.ab-footer-certifications { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; margin: 0 50px !important; }
.ab-footer-certifications > * { width: 75px; margin: 0; }
.ab-footer-certifications img { height: 50px; filter: grayscale(1); }
.ab-footer-rule { max-width: none; width: 80%; margin-block: 1.5rem; border: 0; border-top: 1px solid #fff7; color: #fff; }
.ab-copyright, .ab-footer-legal { margin-block: .5rem 0; text-align: center; font-size: 15px; line-height: 13px;  }
.ab-footer-legal a { text-decoration: none; font-size: .8rem; font-weight: 200; }
.ab-footer-legal a:hover {color: var(--ab-accent);}
.ab-footer-legal { padding-bottom: 40px; }

/* PAGES ET ARTICLES LISIBLES SUR FOND BLANC. */
.ab-reading { /*padding: var(--ab-section-space) var(--ab-gutter);*/ /*background: #fff; */color: var(--ab-ink);}

/* page ss entete visuel */
.page-id-2781 .ab-reading,
.page-id-2781 .ab-site-footer,
.page-id-2800 .ab-reading,
.page-id-2800 .ab-site-footer,
.page-id-2803 .ab-reading,
.page-id-2803 .ab-site-footer,
.page-id-2806 .ab-reading,
.page-id-2806 .ab-site-footer,
.page-id-2809 .ab-reading,
.page-id-2809 .ab-site-footer,
.page-id-2812 .ab-reading,
.page-id-2812 .ab-site-footer
{top: 250px; position: relative;}

.ab-reading-inner { max-width: 100%; margin-inline: auto; }
.ab-reading-inner > :where(h1, .wp-block-post-date, .wp-block-post-terms) { max-width: 860px; margin-inline: auto; }
.ab-reading h1 { font-size: clamp(2rem, 4vw, 2rem); font-weight: 700; line-height: 1.15; }
/*.ab-reading :where(h1, h2, h3, p, li, figcaption, a) { color: #fff; }*/
.ab-reading :where(a:not(.wp-element-button)) { text-decoration: underline; }
.ab-reading .wp-block-post-date { color: var(--ab-muted); }
.ab-reading .wp-element-button { color: var(--ab-ink); }
.ab-reading .wp-block-post-content { margin-top: 2rem; }
.ab-reading .wp-block-post-content section { width: 100%; max-width: 100%; }
.ab-article-featured { max-width: 1200px; margin: 2rem auto; }
.ab-article-featured img { display: block; width: 100%; height: auto; }
/* Classes de contenu non Elementor du précédent thème, maintenues. */
.ab-main .custom-post { color: #ccc; margin-bottom: 5rem; }
.ab-main .blog-card img { width: 100%; height: clamp(240px, 38vw, 520px); object-fit: cover; }
.ab-main .blog-content { padding-inline: 1.25rem; margin-bottom: clamp(4rem, 10vw, 11.25rem); }
.ab-main .blog-content h2 { font-size: 1.5rem; font-weight: 600; margin-bottom: 1.25rem; }
.ab-main .blog-content p { font-size: .875rem; margin-bottom: 5rem; }
.ab-main .page-borealis-white { background: #fff; color: #333; }
.ab-main .page-borealis-white :where(h1, h2, h3, a) { color: inherit; }
.ab-main #breadcrumbs { color: inherit; }
/* Utilitaires déjà présents dans le style.css fourni, conservés. */
.ab-breadcrumb { max-width: 1200px; margin: 1.25rem auto; padding-inline: 1rem; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; font-size: .9rem; }
.ab-breadcrumb a { text-decoration: none; }
.ab-toc { padding: clamp(1.25rem, 3vw, 2.25rem); border: 1px solid currentColor; border-radius: 4px; }
.ab-toc ol { columns: 2; column-gap: 3rem; margin-bottom: 0; }
.ab-toc li { break-inside: avoid; margin-bottom: .55rem; }
.ab-related-card { height: 100%; padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid #0002; background: #fff; }
.ab-related-card h3 a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
.ab-upcoming-article { padding: clamp(1.5rem, 4vw, 3rem); border-left: 4px solid currentColor; }
.ab-coming-soon strong { display: inline-block; margin-right: .35rem; padding: .25rem .6rem; border: 1px solid currentColor; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.ab-photo-source-renovation { margin-block: clamp(1.5rem, 4vw, 3rem); }
.ab-quote-section { padding-block: clamp(2.5rem, 6vw, 5rem); }

@media (max-width: 1024px) {
  .ab-projects-query .ab-project-grid, .ab-process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-team-grid-five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ab-footer-grid { grid-template-columns: 1fr 1fr; }
  .ab-footer-nav { grid-column: 1 / -1; }
  .ab-footer-nav .wp-block-navigation__container { flex-direction: row; justify-content: center; flex-wrap: wrap; gap: 1rem; }
}
@media (max-width: 979px) {
  .ab-main-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .ab-main-nav .wp-block-navigation__responsive-container-open { display: flex; margin-inline-start: auto; min-width: 44px; min-height: 44px; align-items: center; justify-content: center;}
  .ab-main-nav .wp-block-navigation__responsive-container.is-menu-open { display: flex; }
  .ab-main-nav .wp-block-navigation__responsive-container { background-color:#2B2B2B99 !important; -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);}
  .ab-main-nav .wp-block-navigation__responsive-container ul, .ab-main-nav .wp-block-navigation__responsive-container li { width: 100%; align-items: center !important;}
  .ab-main-nav .wp-block-navigation__responsive-container .wp-block-navigation-submenu { display: none; }
  .ab-header-inner { min-height: 100px; gap: 1rem; }
  .ab-brand { flex-basis: 220px; }
}
@media (max-width: 767px) {
  :root { --ab-header-height: 120px; }
  .ab-hero { padding-bottom: 6rem;}
  .ab-main-home .ab-hero { padding-top: calc(var(--ab-header-height) + 2rem); }
  .ab-hero-title { font-size: clamp(1.4rem, 5.5vw, 1.8rem); }
  .ab-hero-text { font-size: .9375rem; }
  .ab-intro, .ab-footer-grid { grid-template-columns: 1fr; }
  .ab-intro-mountain { max-width: 280px; margin-inline: auto; }
  .ab-team-grid-five, .ab-team-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-team-grid-five > :last-child { grid-column: 1 / -1; max-width: 60%; justify-self: center; }
  .ab-cta { align-items: flex-start; flex-direction: column; }
  .ab-footer-brand { justify-self: center; }
  .ab-footer-nav { grid-column: auto; }
  .ab-footer-certifications { justify-content: center; }
  .ab-toc ol { columns: 1; }
}
@media (max-width: 540px) {
  .ab-projects-query .ab-project-grid, .ab-process-grid { grid-template-columns: 1fr; }
  .ab-step { max-width: 30rem; margin-inline: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .ab-hero-images > .ab-hero-slide,
  .ab-project-card .wp-block-post-featured-image img,
  .ab-contact-icon img { transition: none; }
  .ab-project-card:hover .wp-block-post-featured-image img,
  .ab-contact-icon a:hover img { transform: none; }
}

/* Dans l'éditeur, les quatre images sont accessibles sous forme de vignettes.
   Le diaporama et l'en-tête fixe ne sont actifs que sur le site public. 
.editor-styles-wrapper .ab-site-header { position: relative; top: auto; }
.editor-styles-wrapper .ab-header-shell::before { z-index: 0; }
.editor-styles-wrapper .ab-header-inner { position: relative; }
.editor-styles-wrapper .ab-hero { display: block; min-height: 0; padding: 2rem var(--ab-gutter); }
.editor-styles-wrapper .ab-hero-images { position: relative; height: auto; pointer-events: auto; z-index: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin-bottom: 2rem; overflow: visible; }
.editor-styles-wrapper .ab-hero-images::after { display: none; }
.editor-styles-wrapper .ab-hero-images > .ab-hero-slide { position: relative; inset: auto; opacity: 1; height: auto; }
.editor-styles-wrapper .ab-hero-slide img { aspect-ratio: 4 / 3; height: auto; }*/

/* =========================================================
   A PROPOS 
   ========================================================= */

body:has(.ab-about) {
  background-color: var(--ab-dark, #353535);
}

.wp-site-blocks:has(.ab-about) {
  padding: 0;
  background-color: var(--ab-dark, #353535);
}

.wp-site-blocks :where(
  main,
  #contenu,
  .ab-reading,
  .ab-reading-inner,
  .wp-block-post-content,
  .wp-block-group
):has(.ab-about) {
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
}

/* Le H1 et la bannière sont déjà dans le contenu de cette page. */
.wp-site-blocks :where(
  main,
  #contenu,
  .wp-block-group
):has(.ab-about) > :where(
  .wp-block-post-title,
  .wp-block-post-featured-image
) {
  display: none;
}

.ab-about,
.ab-about * {
  box-sizing: border-box;
}

.ab-about {
  --ab-about-gutter: 150px;
  --ab-about-intro-width: 1140px;

  display: flow-root;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0;

  background-color: var(--ab-dark, #353535);
  color: var(--ab-light, #fff);
  font-family: "Montserrat", Arial, sans-serif;
}

.ab-about > * {
  margin-block: 0;
}

.ab-about :where(h1, h2, p, a) {
  color: inherit;
}

/* Bannière : 650 px, sans espace au-dessus ni sur les côtés. */
.ab-about .ab-about-hero {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: 650px;

  margin: 0;
  padding: 0;
  overflow: hidden;
}

.ab-about .ab-about-hero .wp-block-image {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
}

.ab-about .ab-about-hero img {
  display: block;
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center center;
}

.ab-about .ab-about-hero-desktop {
  display: block;
}

.ab-about .ab-about-hero-mobile {
  display: none;
}

/* Fil d'Ariane statique et titre de page. */
.ab-about .ab-about-intro {
  width: 100%;
  max-width: var(--ab-about-intro-width);
  margin: 0 auto;
  padding: 10px;
}

.ab-about .ab-about-breadcrumb {
  margin: 0 0 20px;
  font-size: 13px;
  font-weight: 300;
  line-height: 1.5;
}

.ab-about .ab-about-breadcrumb a {
  text-decoration: none;
}

.ab-about .ab-about-breadcrumb a:hover {
  text-decoration: underline;
}

.ab-about .ab-about-breadcrumb a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

.ab-about .ab-about-title {
  max-width: none;
  margin: 0;
  padding: 0;

  font-family: inherit;
  font-size: 35px;
  font-weight: 200;
  line-height: 1;
  letter-spacing: normal;

  text-align: left;
  text-transform: uppercase;
}

.ab-about .ab-about-title strong {
  font-weight: 700;
}

/* Trois sections : 35/65, 40/60 et 35/65 dans les blocs. */
.ab-about .ab-about-section {
  width: 100%;
  max-width: none;
  margin: 50px 0;
  padding: 0 var(--ab-about-gutter);
}

.ab-about .ab-about-section--last {
  margin-bottom: 150px;
}

.ab-about .ab-about-columns {
  display: flex;
  flex-wrap: nowrap !important;
  align-items: stretch;

  gap: 0;
  margin: 0;
}

.ab-about .ab-about-columns > .wp-block-column {
  flex-grow: 0;
  min-width: 0;
  margin: 0;
  padding: 10px;
}

.ab-about .ab-about-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}

.ab-about h2.ab-about-heading {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 0 30px;
  padding: 0;

  font-family: inherit;
  font-size: 35px;
  font-weight: 200;
  line-height: 1;
  letter-spacing: normal;

  text-align: left;
  text-transform: uppercase;
}

.ab-about h2.ab-about-heading::after {
  content: none;
  display: none;
}

.ab-about .ab-about-text {
  width: 100%;
  max-width: 100%;
  margin: 0 0 50px;
  padding: 0;
  text-align: left;
}

.ab-about .ab-about-text--justify {
  text-align: justify;
}

.ab-about .ab-about-text p {
  margin: 0 0 1em;

  font-family: inherit;
  font-size: 15px;
  font-weight: 200;
  line-height: 1.4;
}

.ab-about .ab-about-text p:last-child {
  margin-bottom: 0;
}

.ab-about .ab-about-text strong {
  font-weight: 700;
}

.ab-about .ab-about-text .wp-block-spacer {
  margin: 0;
}

.ab-about .ab-about-photo {
  width: 100%;
  max-width: none;
  margin: 0;
}

.ab-about .ab-about-photo img {
  display: block;
  width: 100%;
  height: auto;

  border: 0;
  border-radius: 0;

  -webkit-mask-image: var(--ab-about-photo-mask);
  mask-image: var(--ab-about-photo-mask);

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;

  -webkit-mask-position: center;
  mask-position: center;

  -webkit-mask-size: contain;
  mask-size: contain;

  mask-mode: alpha;
}

.ab-about .ab-about-photo--left {
  --ab-about-photo-mask: url('/wp-content/uploads/2025/04/GUILLEMET-BEIGE-1-GAUCHE.png');
}

.ab-about .ab-about-photo--frame {
  --ab-about-photo-mask: url('/wp-content/uploads/2025/04/CADRE-PHOTO-BEIGE_inverse-scaled.png');
}

.ab-about .ab-about-photo--right {
  --ab-about-photo-mask: url('/wp-content/uploads/2025/04/GUILLEMET-BEIGE-2-DROITE.png');
}

@media (max-width: 1024px) {
  .ab-about {
    --ab-about-gutter: 10px;
  }
}

@media (max-width: 979px) {
  .ab-about .ab-about-hero-desktop {
    display: none;
  }

  .ab-about .ab-about-hero-mobile {
    display: block;
  }

  .ab-about .ab-about-columns {
    flex-direction: column;
  }

  .ab-about .ab-about-columns > .wp-block-column {
    flex-basis: auto !important;
    width: 100%;
  }
}

@media (max-width: 767px) {
  .ab-about .ab-about-title {
    font-size: 12px;
  }
}

/* Dans Gutenberg, rendre les deux bannières sélectionnables. 
.editor-styles-wrapper .ab-about-hero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;

  min-height: 0;
  padding: 12px;
}

.editor-styles-wrapper .ab-about-hero .wp-block-image {
  position: relative;
  inset: auto;

  display: block;
  height: auto;
}

.editor-styles-wrapper .ab-about-hero img {
  height: auto;
  object-fit: contain;
}*/
/* =========================================================
   A PROPOS 
   ========================================================= */

.ab-about {
  --ab-about-soft-color: #ffffffdf;

  /* Fil d'Ariane : valeurs provisoires, à caler sur l'original. */
  --ab-about-breadcrumb-size: 15px;
  --ab-about-breadcrumb-weight: 200;

  --ab-about-hero-mask: url('/wp-content/uploads/2025/07/AtelierBorealis-DirtBorder2.png');
}


/* =========================================================
   1. MASQUE AU BAS DU VISUEL
   ========================================================= */

.ab-about .ab-about-hero {
  background-color: var(--ab-dark, #353535);
}

.ab-about .ab-about-hero > .wp-block-image {
  -webkit-mask-image: var(--ab-about-hero-mask);
  mask-image: var(--ab-about-hero-mask);

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;

  -webkit-mask-position: center bottom;
  mask-position: center bottom;

  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;

  mask-mode: alpha;
}


/* =========================================================
   2. TITRE PRINCIPAL
   ========================================================= */

.ab-about h1.ab-about-title {
  display: block;

  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;

  font-family: "Montserrat", Arial, sans-serif;
  font-size: 50px !important;
  font-weight: 200 !important;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;

  color: #fff !important;

  text-align: left;
  text-transform: uppercase;
  text-wrap: wrap;
}

/* Conserver l'emphase déjà présente dans le bloc Gutenberg. */
.ab-about h1.ab-about-title strong {
  color: inherit;
}


/* =========================================================
   3. SOUS-TITRES ET TEXTES LÉGÈREMENT GRISÉS
   ========================================================= */

.ab-about h2.ab-about-heading,
.ab-about .ab-about-text,
.ab-about .ab-about-text p {
  color: var(--ab-about-soft-color) !important;
}

.ab-about h2.ab-about-heading,
.ab-about .ab-about-text p {
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 200;
}

.ab-about .ab-about-text p :where(strong, b, em, a) {
  color: inherit;
}


/* =========================================================
   4. FIL D'ARIANE
   ========================================================= */

.ab-about p.ab-about-breadcrumb {
  display: block;

  width: 100%;
  max-width: none;
  margin: 0 0 20px;
  padding: 0;

  font-family: "Montserrat", Arial, sans-serif;
  font-size: var(--ab-about-breadcrumb-size);
  font-weight: var(--ab-about-breadcrumb-weight);
  font-style: normal;
  line-height: 1.4;
  letter-spacing: normal;

  color: #fff;

  text-align: left;
  text-transform: none;
  text-wrap: wrap;
}

.ab-about .ab-about-breadcrumb :where(a, span) {
  font: inherit;
  color: inherit;
}

.ab-about .ab-about-breadcrumb a {
  text-decoration: none;
}

.ab-about .ab-about-breadcrumb a:hover {
  color: grey;
  text-decoration: none;
}


/* =========================================================
   5. MOBILE
   Valeurs mobiles définies dans l'ancien thème.
   ========================================================= */

@media (max-width: 767px) {
  .ab-about h1.ab-about-title {
    font-size: 36px !important;
  }

  .ab-about h2.ab-about-heading {
    font-size: 24px !important;
  }
}

/* =========================================================
   CONTACT 
   ========================================================= */

/* Neutraliser les espacements du modèle pour cette page. */
body:has(.ab-contact-page),
.wp-site-blocks:has(.ab-contact-page) {
  background-color: var(--ab-dark, #353535);
}

.wp-site-blocks:has(.ab-contact-page) {
  padding: 0;
}

.wp-site-blocks :where(
  main, #contenu, .ab-reading, .ab-reading-inner,
  .wp-block-post-content, .wp-block-group
):has(.ab-contact-page) {
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
}

.wp-site-blocks :where(main, #contenu):has(.ab-contact-page)
  :where(.wp-block-post-title, .wp-block-post-featured-image) {
  display: none;
}

.ab-contact-page,
.ab-contact-page * {
  box-sizing: border-box;
}

.ab-contact-page {
  --ab-contact-boxed-width: 1140px;
  --ab-contact-breadcrumb-size: 15px;
  --ab-contact-label-size: 32px;

  --ab-contact-soft: #ffffffdf;
  --ab-contact-mask: url('/wp-content/uploads/2025/07/AtelierBorealis-DirtBorder2.png');

  display: flow-root;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0;
  background-color: var(--ab-dark, #353535);
  color: var(--ab-contact-soft);
  font-family: "Montserrat", Arial, sans-serif;
}

.ab-contact-page > * {
  margin-block: 0;
}

/* Bannière desktop / mobile, avec découpe dans le bas. */
.ab-contact-page .ab-contact-hero {
  position: relative;
  width: 100%;
  min-height: 650px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: var(--ab-dark, #353535);
}

.ab-contact-page .ab-contact-hero > .wp-block-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;

  -webkit-mask-image: var(--ab-contact-mask);
  mask-image: var(--ab-contact-mask);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center bottom;
  mask-position: center bottom;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  mask-mode: alpha;
}

.ab-contact-page .ab-contact-hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left -24px;
  border: 0;
  border-radius: 0;
}

.ab-contact-page .ab-contact-hero-desktop {
  display: block;
}

.ab-contact-page .ab-contact-hero-mobile {
  display: none;
}

/* Fil d'Ariane et titre. */
.ab-contact-page .ab-contact-intro {
  width: 100%;
  max-width: var(--ab-contact-boxed-width);
  margin: 0 auto;
  padding: 10px;
}

.ab-contact-page p.ab-contact-breadcrumb {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0 0 20px;
  padding: 0;
  font-family: inherit;
  font-size: var(--ab-contact-breadcrumb-size);
  font-weight: 200;
  line-height: 1.4;
  letter-spacing: normal;
  color: #fff;
  text-align: left;
  text-transform: none;
}

.ab-contact-page .ab-contact-breadcrumb :where(a, span) {
  font: inherit;
  color: inherit;
}

.ab-contact-page .ab-contact-breadcrumb a {
  text-decoration: none;
}

.ab-contact-page .ab-contact-breadcrumb a:hover {
  color: grey;
}

.ab-contact-page h1.ab-contact-title {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  font-family: inherit;
  font-size: 50px;
  font-weight: 200;
  line-height: 1;
  letter-spacing: normal;
  color: #fff;
  text-align: left;
  text-transform: uppercase;
  text-wrap: wrap;
}

.ab-contact-page .ab-contact-title strong {
  font-weight: 700;
  color: inherit;
}

.ab-contact-page .ab-contact-details {
  display: flow-root;
  margin: 0;
  padding: 0;
}

.ab-contact-page .ab-contact-invitation {
  margin: 30px 0;
  padding: 0 16%;
}

.ab-contact-page h3.ab-contact-subtitle {
  max-width: var(--ab-contact-boxed-width);
  margin: 0 auto;
  padding: 0;
  font-family: inherit;
  font-size: 25px;
  font-weight: 200;
  line-height: 1;
  letter-spacing: normal;
  color: var(--ab-contact-soft);
  text-align: center;
  text-transform: uppercase;
}

/* Coordonnées : trois colonnes, pictogrammes de 100 × 100 px. */
.ab-contact-page .ab-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  max-width: var(--ab-contact-boxed-width);
  margin: 0 auto;
  padding: 10px;
}

.ab-contact-page .ab-contact-grid > .ab-contact-item {
  min-width: 0;
  margin: 0;
  padding: 10px;
  text-align: center;
}

.ab-contact-page .ab-contact-pictogram {
  width: 100px;
  height: 100px;
  margin: 0 auto 20px;
}

.ab-contact-page .ab-contact-pictogram img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border: 0;
  border-radius: 0;
}

.ab-contact-page h2.ab-contact-label {
  display: block;
  width: 100%;
  margin: 0 0 20px;
  padding: 0;
  font-family: inherit;
  font-size: var(--ab-contact-label-size);
  font-weight: 200;
  line-height: 1.2;
  letter-spacing: normal;
  color: var(--ab-contact-soft);
  text-align: center;
  text-transform: uppercase;
}

.ab-contact-page p.ab-contact-value {
  margin: 0;
  padding: 0;
  font-family: inherit;
  font-size: 15px;
  font-weight: 200;
  line-height: 1.4;
  color: var(--ab-contact-soft);
  text-align: center;
  overflow-wrap: anywhere;
}

.ab-contact-page .ab-contact-value a {
  color: inherit;
  text-decoration: none;
}

.ab-contact-page .ab-contact-value a:hover {
  color: grey;
}

.ab-contact-page .ab-contact-item > .wp-block-spacer {
  margin: 0;
}

.ab-contact-page .ab-contact-map-section {
  width: 100%;
  margin: 100px 0;
  padding: 0 16%;
}

.ab-contact-page .ab-contact-map-inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

.ab-contact-page h2.ab-contact-map-title {
  display: block;
  width: 100%;
  margin: 0 0 5px;
  padding: 0;
  font-family: inherit;
  font-size: 35px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: normal;
  color: var(--ab-contact-soft);
  text-align: left;
  text-transform: uppercase;
}

.ab-contact-page h2.ab-contact-label::after,
.ab-contact-page h2.ab-contact-map-title::after {
  content: none;
  display: none;
}

.ab-contact-page .ab-contact-map {
  width: 100%;
  margin: 0;
  padding: 0;
}

.ab-contact-page .ab-contact-map iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 453px;
  margin: 0;
  padding: 0;
  border: 0;
}

.ab-contact-page .ab-contact-quote {
  width: 100%;
  max-width: var(--ab-contact-boxed-width);
  margin: 0 auto;
  padding: 10px;
}

.ab-contact-page a:focus-visible,
.ab-contact-page iframe:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

@media (max-width: 1024px) {
  .ab-contact-page .ab-contact-map-section {
    padding-inline: 5%;
  }

  .ab-contact-page .ab-contact-map-inner {
    padding: 0;
  }
}

@media (max-width: 979px) {
  .ab-contact-page .ab-contact-hero-desktop {
    display: none;
  }

  .ab-contact-page .ab-contact-hero-mobile {
    display: block;
  }

  .ab-contact-page .ab-contact-invitation {
    margin: 50px 0 0;
    padding-inline: 5%;
  }

  .ab-contact-page .ab-contact-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  .ab-contact-page h1.ab-contact-title {
    font-size: 36px;
  }

  .ab-contact-page h2.ab-contact-label,
  .ab-contact-page h2.ab-contact-map-title {
    font-size: 24px;
  }
}

/* Dans l'éditeur, les deux bannières restent sélectionnables. 
.editor-styles-wrapper .ab-contact-page .ab-contact-hero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-height: 0;
  padding: 12px;
}

.editor-styles-wrapper .ab-contact-page .ab-contact-hero .wp-block-image {
  position: relative;
  inset: auto;
  display: block;
  height: auto;
  -webkit-mask-image: none;
  mask-image: none;
}

.editor-styles-wrapper .ab-contact-page .ab-contact-hero img {
  height: auto;
  object-fit: contain;
  object-position: center;
}*/

/* =========================================================
   CARNET D'OUVRAGES
   ========================================================= */

body:has(.ab-carnet-page),
.wp-site-blocks:has(.ab-carnet-page) {
  background-color: var(--ab-dark, #353535);
}

.wp-site-blocks:has(.ab-carnet-page) {
  padding: 0;
}

.ab-carnet-page,
.ab-carnet-page * {
  box-sizing: border-box;
}

/* Annuler notamment le padding-top:150px du #contenu existant. */
#contenu.ab-carnet-page,
.ab-carnet-page {
  /* Valeurs d'intégration non détaillées dans l'export. */
  --ab-carnet-intro-width: 1140px;
  --ab-carnet-breadcrumb-size: 15px;
  --ab-carnet-image-ratio: 3 / 2;
  --ab-carnet-image-gap: 20px;

  /* Continuité avec les pages À propos et Contact corrigées. */
  --ab-carnet-soft: #ffffffdf;
  --ab-carnet-mask: url('/wp-content/uploads/2025/07/AtelierBorealis-DirtBorder2.png');

  display: flow-root;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;
  background-color: var(--ab-dark, #353535);
  color: var(--ab-carnet-soft);
  font-family: "Montserrat", Arial, sans-serif;
}

.ab-carnet-page > * {
  margin-block: 0;
}

/* BANNIÈRE : 650 px, photos desktop/mobile de l'export. */
.ab-carnet-page .ab-carnet-hero {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: 650px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: var(--ab-dark, #353535);
}

.ab-carnet-page .ab-carnet-hero > .wp-block-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;

  -webkit-mask-image: var(--ab-carnet-mask);
  mask-image: var(--ab-carnet-mask);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center bottom;
  mask-position: center bottom;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  mask-mode: alpha;
}

.ab-carnet-page .ab-carnet-hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left top;
  border: 0;
  border-radius: 0;
}

.ab-carnet-page .ab-carnet-hero-desktop {
  display: block;
}

.ab-carnet-page .ab-carnet-hero-mobile {
  display: none;
}

/* INTRODUCTION : fil d'Ariane statique, puis H1. */
.ab-carnet-page .ab-carnet-intro {
  width: 100%;
  max-width: var(--ab-carnet-intro-width);
  margin: 0 auto;
  padding: 10px;
}

.ab-carnet-page p.ab-carnet-breadcrumb {
  margin: 0 0 20px;
  padding: 0;
  color: #fff;
  font-family: inherit;
  font-size: var(--ab-carnet-breadcrumb-size);
  font-weight: 200;
  line-height: 1.4;
  text-align: left;
  text-transform: none;
}

.ab-carnet-page .ab-carnet-breadcrumb :where(a, span) {
  font: inherit;
  color: inherit;
}

.ab-carnet-page .ab-carnet-breadcrumb a {
  text-decoration: none;
}

.ab-carnet-page .ab-carnet-breadcrumb a:hover {
  color: grey;
}

.ab-carnet-page h1.ab-carnet-title {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  color: #fff;
  font-family: inherit;
  font-size: 50px;
  font-weight: 200;
  line-height: 1;
  letter-spacing: normal;
  text-align: left;
  text-transform: uppercase;
  text-wrap: wrap;
  overflow-wrap: anywhere;
}

.ab-carnet-page .ab-carnet-title strong {
  font-weight: 700;
  color: inherit;
}

/* LISTE : retraits 16 %, marge haute 100 px dans l'export. */
.ab-carnet-page .ab-carnet-listing {
  width: 100%;
  max-width: none;
  margin: 100px 0 0;
  padding: 0 16%;
}

.ab-carnet-page .ab-carnet-query {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Classes distinctes de la grille de projets de l'accueil. */
.ab-carnet-page .ab-carnet-query .ab-carnet-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 50px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ab-carnet-page .ab-carnet-grid > li,
.ab-carnet-page .ab-carnet-card {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.ab-carnet-page .ab-carnet-card {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  text-align: center;
}

.ab-carnet-page .ab-carnet-image {
  width: 100%;
  margin: 0 0 var(--ab-carnet-image-gap);
}

.ab-carnet-page .ab-carnet-image a {
  display: block;
}

.ab-carnet-page .ab-carnet-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--ab-carnet-image-ratio);
  object-fit: cover;
  object-position: center;
  border: 0;
  border-radius: 0;
}

/* Titres des articles : H2, 16 px, graisse 300, centrés. */
.ab-carnet-page h2.ab-carnet-card-title {
  display: block;
  width: 100%;
  margin: 0 0 10px;
  padding: 0;
  color: var(--ab-carnet-soft);
  font-family: inherit;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: normal;
  text-align: center;
  text-transform: none;
  overflow-wrap: anywhere;
}

.ab-carnet-page h2.ab-carnet-card-title::after {
  content: none;
  display: none;
}

.ab-carnet-page .ab-carnet-card-title a {
  color: inherit;
  font: inherit;
  text-decoration: none;
}

.ab-carnet-page .ab-carnet-card-title a:hover {
  color: grey;
}

/* PAGINATION NATIVE */
.ab-carnet-page .ab-carnet-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 20px;
  margin: 50px 0;
  color: var(--ab-carnet-soft);
  font-family: inherit;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.4;
}

.ab-carnet-page .ab-carnet-pagination > * {
  margin: 0;
}

.ab-carnet-page .ab-carnet-pagination a {
  color: inherit;
  text-decoration: none;
}

.ab-carnet-page .ab-carnet-pagination a:hover,
.ab-carnet-page .ab-carnet-pagination .current {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: .25em;
}

.ab-carnet-page .ab-carnet-pagination .page-numbers {
  display: inline-block;
  padding: 8px;
}

.ab-carnet-page .ab-carnet-pagination:empty {
  display: none;
}

.ab-carnet-page .ab-carnet-empty {
  margin: 0 0 50px;
  color: var(--ab-carnet-soft);
  font-size: 16px;
  text-align: center;
}

.ab-carnet-page a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

@media (max-width: 1024px) {
  .ab-carnet-page .ab-carnet-listing {
    margin-top: 50px;
    padding-inline: 5%;
  }
}

@media (max-width: 979px) {
  .ab-carnet-page .ab-carnet-hero-desktop {
    display: none;
  }

  .ab-carnet-page .ab-carnet-hero-mobile {
    display: block;
  }

  .ab-carnet-page .ab-carnet-query .ab-carnet-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (max-width: 767px) {
  .ab-carnet-page h1.ab-carnet-title {
    font-size: 36px;
  }
}

@media (max-width: 359px) {
  .ab-carnet-page h1.ab-carnet-title {
    font-size: 32px;
  }
}

/* Éditeur : les deux bannières restent sélectionnables. 
.editor-styles-wrapper .ab-carnet-page .ab-carnet-hero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-height: 0;
  padding: 12px;
}

.editor-styles-wrapper .ab-carnet-page .ab-carnet-hero > .wp-block-image {
  position: relative;
  inset: auto;
  display: block;
  height: auto;
  -webkit-mask-image: none;
  mask-image: none;
}

.editor-styles-wrapper .ab-carnet-page .ab-carnet-hero img {
  height: auto;
  object-fit: contain;
}*/

/* =========================================================
   ARTICLE PROJET 
   ========================================================= */

body:has(.ab-projet-single),
.wp-site-blocks:has(.ab-projet-single) {
  background-color: var(--ab-dark, #353535);
}

.wp-site-blocks:has(.ab-projet-single) {
  padding: 0;
}

.ab-projet-single,
.ab-projet-single * {
  box-sizing: border-box;
}

#contenu.ab-projet-single {
  --ab-projet-width: 1140px;
  --ab-projet-soft: #ffffffdf;
  --ab-projet-title-size: 55px;
  --ab-projet-content-gap: 20px;

  --ab-projet-mask: url('/wp-content/uploads/2025/07/AtelierBorealis-DirtBorder2.png');

  display: flow-root;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0 !important;

  background-color: var(--ab-dark, #353535);
  color: var(--ab-projet-soft);
  font-family: "Montserrat", Arial, sans-serif;
}

.ab-projet-single > *,
.ab-projet-single .ab-projet-article {
  margin-block: 0;
}


/* =========================================================
   BANNIÈRE DYNAMIQUE + MASQUE
   ========================================================= */

.ab-projet-single .ab-projet-hero {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: 650px;
  margin: 0;
  padding: 0;
  overflow: hidden;

  background-color: var(--ab-dark, #353535);
}

.ab-projet-single .ab-projet-featured {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;

  -webkit-mask-image: var(--ab-projet-mask);
  mask-image: var(--ab-projet-mask);

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;

  -webkit-mask-position: center bottom;
  mask-position: center bottom;

  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;

  mask-mode: alpha;
}

.ab-projet-single .ab-projet-featured img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;

  object-fit: cover;
  object-position: 0% 60%;

  border: 0;
  border-radius: 0;
}


/* =========================================================
   FIL D'ARIANE + TITRE DYNAMIQUES
   ========================================================= */

.ab-projet-single .ab-projet-intro {
  width: 100%;
  max-width: var(--ab-projet-width);
  margin: 0 auto;
  padding: 10px;
}

.ab-projet-single .ab-projet-breadcrumb {
  margin: 0 0 20px;
  padding: 0;

  color: var(--ab-projet-soft);
  font-family: inherit;
  font-size: 15px;
  font-weight: 200;
  line-height: 1.4;

  text-transform: none;
  overflow-wrap: anywhere;
}

.ab-projet-single .ab-projet-breadcrumb p {
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
}

.ab-projet-single .ab-projet-breadcrumb :where(a, span) {
  color: inherit;
  font: inherit;
}

.ab-projet-single .ab-projet-breadcrumb a {
  text-decoration: none;
}

.ab-projet-single .ab-projet-breadcrumb a:hover {
  color: grey;
}

.ab-projet-single h1.ab-projet-title {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;

  color: #fff;
  font-family: inherit;
  font-size: var(--ab-projet-title-size);
  font-weight: 200;
  line-height: 1.05;
  letter-spacing: normal;

  text-align: left;
  text-transform: uppercase;
  text-wrap: wrap;
  overflow-wrap: anywhere;
}


/* =========================================================
   CONTENU DE L'ARTICLE
   ========================================================= */

.ab-projet-single .ab-projet-body {
  width: 100%;
  max-width: var(--ab-projet-width);
  margin: var(--ab-projet-content-gap) auto 100px;
  padding: 10px;
}

.ab-projet-single .ab-projet-content {
  margin: 0;
  padding: 0;

  color: var(--ab-projet-soft);
  font-family: inherit;
  font-size: 15px;
  font-weight: 200;
  line-height: 1.4;

  overflow-wrap: anywhere;
}

.ab-projet-single .ab-projet-content :where(p, li, figcaption) {
  color: inherit;
}

.ab-projet-single .ab-projet-content :where(h2, h3, h4, h5, h6) {
  color: inherit;
  font-family: inherit;
  font-weight: 200;
  line-height: 1.2;
}

.ab-projet-single .ab-projet-content :where(h2) {
  font-size: 35px;
}

.ab-projet-single .ab-projet-content :where(h3) {
  font-size: 25px;
}

.ab-projet-single .ab-projet-content a:not(.wp-element-button) {
  color: inherit;
  text-underline-offset: .2em;
}

.ab-projet-single .ab-projet-content :where(img, video, iframe) {
  max-width: 100%;
}

.ab-projet-single :where(a, button, input, textarea, select):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

@media (max-width: 1024px) {
  .ab-projet-single .ab-projet-featured img {
    object-position: 0% 0%;
  }
}

@media (max-width: 767px) {
  #contenu.ab-projet-single {
    --ab-projet-title-size: 36px;
  }

  .ab-projet-single .ab-projet-content :where(h2) {
    font-size: 24px;
  }

  .ab-projet-single .ab-projet-body {
    margin-bottom: 50px;
  }
}


/* =========================================================
   ÉDITEUR GUTENBERG
   =========================================================

.editor-styles-wrapper .ab-projet-single .ab-projet-hero {
  min-height: 0;
}

.editor-styles-wrapper .ab-projet-single .ab-projet-featured {
  position: relative;
  inset: auto;
  height: auto;

  -webkit-mask-image: none;
  mask-image: none;
}

.editor-styles-wrapper .ab-projet-single .ab-projet-featured img {
  height: auto;
  object-fit: contain;
} */

/* =========================================================
   REFUGE : contenu natif + galerie progressive 
   ========================================================= */
.ab-refuge-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  color: var(--ab-projet-soft, #ffffffdf);
}
.ab-refuge-content h2.ab-refuge-subtitle {
  display: block;
  margin: 0 0 30px;
  padding: 0;
  color: inherit;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 35px;
  font-weight: 200;
  line-height: 1.2;
  text-transform: none;
}
.ab-refuge-content h2.ab-refuge-subtitle::after {
  content: none;
  display: none;
}
.ab-refuge-content .ab-refuge-quote {
  margin: 50px 0 0;
  padding: 0;
}

/* RÃ©glages d'intÃ©gration : les durÃ©es et l'espacement ne sont
   pas prÃ©cisÃ©s dans le JSON Elementor. */
.ab-progressive-gallery {
  --ab-gallery-columns: 2;
  --ab-gallery-gap: 10px;
  --ab-gallery-fade: 600ms;
  --ab-gallery-stagger: 120; /* millisecondes, nombre lu par JS */
  --ab-gallery-move: 12px;

  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--ab-gallery-columns), minmax(0, 1fr));
  gap: var(--ab-gallery-gap);
  align-items: start;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.ab-progressive-gallery,
.ab-progressive-gallery * { box-sizing: border-box; }

.ab-progressive-gallery .ab-gallery-item {
  position: relative;
  min-width: 0;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0;
  border: 0;
}
.ab-progressive-gallery .ab-gallery-item > a {
  position: relative;
  display: block;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  cursor: zoom-in;
  background: #ffffff08;
}
.ab-progressive-gallery .ab-gallery-item img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
}
.ab-progressive-gallery .ab-gallery-item figcaption {
  margin: 8px 0 0;
  font-size: 14px;
  color: inherit;
}

/* Le masonry est activÃ© uniquement aprÃ¨s initialisation du JS. */
.ab-progressive-gallery.is-enhanced { display: block; }
.ab-progressive-gallery.is-enhanced > .ab-gallery-item {
  position: absolute;
  top: 0;
  left: 0;
}
.ab-progressive-gallery.is-enhanced.is-settled > .ab-gallery-item {
  transition: transform 350ms ease;
}
.ab-progressive-gallery.is-enhanced .ab-gallery-item > a {
  aspect-ratio: var(--ab-photo-ratio, 3 / 2);
}
.ab-progressive-gallery.is-enhanced .ab-gallery-item img {
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transform: translateY(var(--ab-gallery-move)) scale(.985);
  transition: opacity var(--ab-gallery-fade) ease,
              transform var(--ab-gallery-fade) ease;
}
.ab-progressive-gallery.is-enhanced .ab-gallery-item.is-revealed img {
  opacity: 1;
  transform: none;
}
.ab-progressive-gallery .ab-gallery-item.is-loading > a::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 -11px;
  border: 2px solid #ffffff33;
  border-top-color: #ffffffbb;
  border-radius: 50%;
  animation: ab-gallery-spin 800ms linear infinite;
}
.ab-progressive-gallery .ab-gallery-retry {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  padding: 12px 16px;
  border: 1px solid #ffffff77;
  background: #353535;
  color: #fff;
  font: inherit;
  cursor: pointer;
}
.ab-progressive-gallery :where(a, button):focus-visible {
  outline: 3px solid var(--ab-accent, #aa897e);
  outline-offset: 3px;
}
.ab-progressive-gallery .ab-gallery-item:focus-within { z-index: 3; }
@keyframes ab-gallery-spin { to { transform: rotate(360deg); } }

/* Visionneuse indÃ©pendante : photo suivante/prÃ©cÃ©dente, sans autoplay. */
html.ab-gallery-modal-open { overflow: hidden; }
.ab-gallery-dialog {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: #171717f5;
  color: #fff;
  font-family: "Montserrat", Arial, sans-serif;
  overflow: hidden;
}
.ab-gallery-dialog:not([open]) { display: none; }
.ab-gallery-dialog::backdrop { background: #000b; }
.ab-gallery-dialog .ab-gallery-stage {
  position: absolute;
  inset: 70px 70px 55px;
  display: grid;
  place-items: center;
  touch-action: pan-y pinch-zoom;
}
.ab-gallery-dialog .ab-gallery-stage img {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  opacity: 0;
  transition: opacity 240ms ease;
}
.ab-gallery-dialog .ab-gallery-stage img.is-active { opacity: 1; }
.ab-gallery-dialog button {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  min-width: 48px;
  min-height: 48px;
  padding: 8px;
  border: 1px solid #ffffff55;
  border-radius: 0;
  background: #222a;
  color: #fff;
  font: inherit;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.ab-gallery-dialog button:disabled,
.ab-gallery-dialog button[aria-disabled="true"] { opacity: .35; cursor: progress; }
.ab-gallery-dialog button:focus-visible,
.ab-gallery-dialog a:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.ab-gallery-dialog .ab-gallery-close { top: max(12px, env(safe-area-inset-top)); right: 12px; }
.ab-gallery-dialog .ab-gallery-prev { left: 10px; top: calc(50% - 24px); }
.ab-gallery-dialog .ab-gallery-next { right: 10px; top: calc(50% - 24px); }
.ab-gallery-dialog .ab-gallery-counter { position: absolute; top: 20px; left: 20px; margin: 0; font-size: 16px; }
.ab-gallery-dialog .ab-gallery-status { position: absolute; bottom: max(16px, env(safe-area-inset-bottom)); left: 10%; width: 80%; margin: 0; text-align: center; font-size: 14px; }
.ab-gallery-dialog .ab-gallery-status a { color: inherit; text-decoration: underline; }

@media (max-width: 979px) {
  .ab-progressive-gallery { --ab-gallery-columns: 1; }
}
@media (max-width: 767px) {
  .ab-refuge-content h2.ab-refuge-subtitle { font-size: 24px; }
  .ab-gallery-dialog .ab-gallery-stage { inset: 75px 8px 70px; }
  .ab-gallery-dialog .ab-gallery-prev,
  .ab-gallery-dialog .ab-gallery-next { top: auto; bottom: max(12px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .ab-progressive-gallery.is-enhanced.is-settled > .ab-gallery-item { transition: none; }
  .ab-progressive-gallery.is-enhanced .ab-gallery-item img,
  .ab-gallery-dialog .ab-gallery-stage img { transition: none; transform: none; }
  .ab-progressive-gallery .ab-gallery-item.is-loading > a::after { animation: none; }
}

/* Aucun JS dans l'Ã©diteur : tous les blocs restent sÃ©lectionnables. */
.editor-styles-wrapper .ab-progressive-gallery { display: block; height: auto !important; }
.editor-styles-wrapper .ab-progressive-gallery > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.editor-styles-wrapper .ab-progressive-gallery .ab-gallery-item {
  position: relative;
  width: auto !important;
  transform: none !important;
}
.editor-styles-wrapper .ab-progressive-gallery .ab-gallery-item img { opacity: 1; transform: none; height: auto; }

/* ============================================================
   REFUGE DE LA LAVEY
   Styles exclusivement réservés aux blocs .lavey-*
   ============================================================ */


/* ------------------------------------------------------------
   HERO VIDÉO
   ------------------------------------------------------------ */

.lavey-hero {
	position: relative;
	overflow: hidden;
	background: #181816;
}

/* On utilise directement le calque Gutenberg pour assurer
   le contraste, plutôt qu'un pseudo-élément supplémentaire */
.lavey-hero > .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(
			180deg,
			rgba(12, 13, 11, .35) 0%,
			rgba(12, 13, 11, .22) 35%,
			rgba(12, 13, 11, .78) 100%
		) !important;
}

.lavey-hero .wp-block-cover__video-background {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lavey-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	width: 100%;
	box-sizing: border-box;
	padding:
		clamp(130px, 18vh, 220px)
		clamp(22px, 5vw, 70px)
		70px;
	color: #fff;
}

.lavey-hero .lavey-kicker {
	margin: 0 0 18px;
	color: rgba(255, 255, 255, .78);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.lavey-hero .lavey-title {
	max-width: 1000px;
	margin: 0;
	color: #fff !important;
	font-size: clamp(54px, 8vw, 108px);
	font-weight: 700;
	line-height: .94;
	letter-spacing: -.055em;
}

.lavey-hero .lavey-hero-lead {
	max-width: 800px;
	margin: 28px 0 0;
	color: rgba(255, 255, 255, .94) !important;
	font-size: clamp(22px, 3vw, 38px);
	line-height: 1.18;
}

.lavey-hero-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 38px;
	margin-top: 48px;
}

.lavey-hero-stats > div {
	display: flex;
	flex-direction: column;
	min-width: 135px;
	padding-left: 16px;
	border-left: 1px solid rgba(255, 255, 255, .40);
}

.lavey-hero-stats strong {
	color: #fff !important;
	font-size: 20px;
	line-height: 1.25;
}

.lavey-hero-stats span {
	margin-top: 4px;
	color: rgba(255, 255, 255, .70) !important;
	font-size: 13px;
	line-height: 1.4;
}

.lavey-hero-button {
	margin-top: 42px;
}

.lavey-hero-button .wp-block-button__link {
	border: 1px solid rgba(255, 255, 255, .8) !important;
	background: transparent !important;
	color: #fff !important;
	transition:
		background .25s ease,
		color .25s ease;
}

.lavey-hero-button .wp-block-button__link:hover {
	background: #fff !important;
	color: #171815 !important;
}


/* ------------------------------------------------------------
   INTRODUCTION
   ------------------------------------------------------------ */

.lavey-intro {
	box-sizing: border-box;
	padding-top: clamp(70px, 8vw, 125px);
	padding-bottom: 65px;
	color: #1d1e1b !important;
}

.lavey-intro .lavey-intro-text {
	margin-top: 0;
	color: #1d1e1b !important;
	font-size: clamp(25px, 3vw, 39px);
	line-height: 1.30;
	letter-spacing: -.025em;
}

.lavey-intro > p:not(.lavey-intro-text) {
	max-width: 770px;
	margin-top: 30px;
	color: #3f403b !important;
	font-size: 18px;
	line-height: 1.8;
}


/* ------------------------------------------------------------
   SOMMAIRE
   ------------------------------------------------------------ */

.lavey-toc {
	box-sizing: border-box;
	max-width: 1180px;
	margin: 0 auto 100px;
	padding: 32px 36px;
	display: grid;
	grid-template-columns: 210px minmax(0, 1fr);
	gap: 45px;
	color: #20211e !important;
	background: #fff;
	border-top: 1px solid #d5d5cf;
	border-bottom: 1px solid #d5d5cf;
}

.lavey-toc-title {
	display: flex;
	gap: 14px;
	align-items: baseline;
	color: #20211e !important;
}

.lavey-toc-title span {
	color: #85857f !important;
	font-size: 12px;
}

.lavey-toc-title strong {
	color: #20211e !important;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.lavey-toc-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 11px 35px;
}

.lavey-toc-links a {
	color: #353631 !important;
	font-size: 15px;
	line-height: 1.45;
	text-decoration: none;
	transition: opacity .2s ease;
}

.lavey-toc-links a::before {
	content: "↳";
	margin-right: 9px;
	color: #94958e;
}

.lavey-toc-links a:hover {
	opacity: .55;
}


/* ------------------------------------------------------------
   SECTIONS CLAIRES
   ------------------------------------------------------------ */

.lavey-section {
	box-sizing: border-box;
	padding-top: 90px;
	padding-bottom: 100px;
	color: #20211e !important;
}

.lavey-section .lavey-section-number,
.lavey-editorial-block .lavey-section-number,
.lavey-closing .lavey-section-number,
.lavey-fact-section .lavey-section-number,
.lavey-autonomy .lavey-section-number {
	margin-bottom: 16px;
	color: #74756e !important;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .17em;
	text-transform: uppercase;
}

.lavey-section h2,
.lavey-editorial-block h2,
.lavey-closing h2,
.lavey-fact-section h2,
.lavey-autonomy h2 {
	margin-top: 0;
	color: #1b1c19 !important;
	font-size: clamp(36px, 4vw, 58px);
	line-height: 1.06;
	letter-spacing: -.04em;
}

.lavey-section p,
.lavey-editorial-block p,
.lavey-closing p,
.lavey-fact-section p,
.lavey-autonomy p {
	color: #41423d !important;
	line-height: 1.75;
}

.lavey-section strong,
.lavey-editorial-block strong,
.lavey-closing strong,
.lavey-fact-section strong,
.lavey-autonomy strong {
	color: #20211e;
}

.lavey-split {
	gap: clamp(42px, 6vw, 90px);
}

.lavey-split-large {
	gap: clamp(50px, 7vw, 110px);
}


/* ------------------------------------------------------------
   IMAGES
   ------------------------------------------------------------ */

.lavey-image {
	overflow: hidden;
	margin: 0;
}

.lavey-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.lavey-image-landscape img {
	aspect-ratio: 1.34 / 1;
}

.lavey-image-feature img {
	aspect-ratio: 1.18 / 1;
}

.lavey-image figcaption {
	margin: 11px 0 0;
	color: #767770 !important;
	font-size: 12px;
	line-height: 1.5;
}


/* ------------------------------------------------------------
   BANDE CLAIRE ARCHITECTURE
   ------------------------------------------------------------ */

.lavey-band {
	box-sizing: border-box;
	padding-top: clamp(80px, 9vw, 130px);
	padding-bottom: clamp(80px, 9vw, 130px);
}

.lavey-band-light {
	background: #f1f0ea !important;
	color: #1e1f1c !important;
}

.lavey-band-light h2 {
	color: #1b1c19 !important;
}

.lavey-band-light p {
	color: #41423d !important;
}

.lavey-band-light strong {
	color: #20211e !important;
}

.lavey-band-light .lavey-section-number {
	color: #70716b !important;
}


/* ------------------------------------------------------------
   REPRISE DU CHANTIER / CHIFFRES
   ------------------------------------------------------------ */

.lavey-fact-section {
	box-sizing: border-box;
	padding-top: 115px;
	padding-bottom: 115px;
	color: #20211e !important;
	background: #fff;
}

.lavey-fact-section > .lavey-section-number {
	text-align: center;
}

.lavey-fact-section h2 {
	max-width: 900px;
	margin-right: auto;
	margin-left: auto;
	font-size: clamp(38px, 5vw, 65px);
	line-height: 1.05;
}

.lavey-big-facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin: 65px 0 45px;
	overflow: hidden;
	background: #d6d6d0;
	border: 1px solid #d6d6d0;
}

.lavey-big-facts > div {
	min-height: 145px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	box-sizing: border-box;
	padding: 24px;
	background: #f8f8f5 !important;
	color: #20211e !important;
}

.lavey-big-facts strong {
	color: #20211e !important;
	font-size: 24px;
	line-height: 1.15;
}

.lavey-big-facts span {
	margin-top: 9px;
	color: #70716b !important;
	font-size: 13px;
	line-height: 1.4;
}


/* ------------------------------------------------------------
   PROCESS / LOGISTIQUE
   ------------------------------------------------------------ */

.lavey-process {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 60px;
	border-top: 1px solid #d5d5cf;
	border-bottom: 1px solid #d5d5cf;
}

.lavey-process > div {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	padding: 30px 24px;
	color: #20211e !important;
	background: #fff;
	border-right: 1px solid #d5d5cf;
}

.lavey-process > div:last-child {
	border-right: 0;
}

.lavey-process span {
	margin-bottom: 35px;
	color: #898a83 !important;
	font-size: 11px;
}

.lavey-process strong {
	color: #20211e !important;
	font-size: 19px;
	line-height: 1.3;
}

.lavey-process small {
	margin-top: 6px;
	color: #70716b !important;
	font-size: 13px;
	line-height: 1.45;
}


/* ------------------------------------------------------------
   CITATION
   ------------------------------------------------------------ */

.lavey-quote {
	margin: 42px 0 0;
	padding: 2px 0 2px 24px;
	border-left: 3px solid #20211e;
}

.lavey-quote p,
.lavey-quote strong {
	color: #20211e !important;
	font-size: 21px;
	line-height: 1.5;
}


/* ------------------------------------------------------------
   BANDE SOMBRE CLT
   ------------------------------------------------------------ */

.lavey-band-dark {
	background: #181916 !important;
	color: #fff !important;
}

.lavey-band-dark h2 {
	color: #fff !important;
}

.lavey-band-dark p {
	color: rgba(255, 255, 255, .79) !important;
}

.lavey-band-dark strong {
	color: #fff !important;
}

.lavey-band-dark .lavey-section-number {
	color: rgba(255, 255, 255, .58) !important;
}

.lavey-band-dark .lavey-source-inline,
.lavey-band-dark .lavey-source-inline a {
	color: rgba(255, 255, 255, .67) !important;
}


/* ------------------------------------------------------------
   AUTONOMIE / CARTES TECHNIQUES
   ------------------------------------------------------------ */

.lavey-autonomy {
	box-sizing: border-box;
	padding-top: 110px;
	padding-bottom: 115px;
	color: #20211e !important;
	background: #fff;
}

.lavey-centered-lead {
	max-width: 760px;
	margin: 20px auto 55px;
	color: #50514c !important;
	font-size: 18px;
}

.lavey-tech-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

.lavey-tech-grid > div {
	box-sizing: border-box;
	min-height: 260px;
	padding: 32px 27px;
	background: #f1f0ea !important;
	color: #20211e !important;
}

.lavey-tech-grid span {
	display: block;
	margin-bottom: 48px;
	color: #20211e !important;
	font-size: 29px;
	line-height: 1;
}

.lavey-tech-grid strong {
	display: block;
	color: #20211e !important;
	font-size: 19px;
	line-height: 1.3;
}

.lavey-tech-grid p {
	margin: 10px 0 0;
	color: #62635d !important;
	font-size: 14px;
	line-height: 1.6;
}


/* ------------------------------------------------------------
   PATRIMOINE
   ------------------------------------------------------------ */

.lavey-editorial-block {
	box-sizing: border-box;
	margin-top: 70px;
	margin-bottom: 120px;
	padding: 68px 78px;
	color: #20211e !important;
	background: #fff;
	border-left: 1px solid #bbbcb5;
}

.lavey-editorial-block .lavey-large-copy {
	color: #292a26 !important;
	font-size: clamp(22px, 2.6vw, 34px);
	line-height: 1.42;
}


/* ------------------------------------------------------------
   GRAND VISUEL BOREALIS
   ------------------------------------------------------------ */

.lavey-borealis-cover {
	position: relative;
	overflow: hidden;
	background: #171815;
}

.lavey-borealis-cover > .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(
			180deg,
			rgba(10, 11, 9, .26) 0%,
			rgba(10, 11, 9, .62) 100%
		) !important;
}

.lavey-borealis-cover .wp-block-cover__image-background {
	object-fit: cover;
}

.lavey-borealis-cover .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	padding: 80px 30px;
	color: #fff;
}

.lavey-borealis-cover .lavey-kicker {
	color: rgba(255, 255, 255, .73) !important;
}

.lavey-borealis-cover h2 {
	color: #fff !important;
	font-size: clamp(40px, 5vw, 67px);
	line-height: 1.05;
	letter-spacing: -.04em;
}

.lavey-borealis-cover .lavey-cover-copy {
	max-width: 700px;
	margin-right: auto;
	margin-left: auto;
	color: rgba(255, 255, 255, .88) !important;
	font-size: 18px;
	line-height: 1.7;
}

.lavey-borealis-cover .lavey-cover-copy strong {
	color: #fff !important;
}


/* ------------------------------------------------------------
   CONCLUSION
   ------------------------------------------------------------ */

.lavey-closing {
	box-sizing: border-box;
	padding-top: 105px;
	padding-bottom: 95px;
	color: #20211e !important;
	background: #fff;
}


/* ------------------------------------------------------------
   SOURCES INLINE
   ------------------------------------------------------------ */

.lavey-source-inline {
	margin-top: 25px;
	color: #6c6d67 !important;
	font-size: 12px !important;
	line-height: 1.55 !important;
}

.lavey-source-inline a {
	color: #4d4e49 !important;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.lavey-source-inline a:hover {
	color: #111 !important;
}


/* ------------------------------------------------------------
   SOURCES DE FIN D'ARTICLE
   ------------------------------------------------------------ */

.lavey-separator {
	margin-top: 0;
	margin-bottom: 0;
	border-color: #deded8;
}

.lavey-sources {
	box-sizing: border-box;
	padding-top: 55px;
	padding-bottom: 100px;
	color: #292a26 !important;
	background: #fff;
}

.lavey-sources h3 {
	color: #20211e !important;
	font-size: 25px;
}

.lavey-sources > p {
	color: #64655f !important;
	font-size: 13px;
	line-height: 1.7;
}

.lavey-sources li {
	margin-bottom: 7px;
	color: #64655f !important;
	font-size: 13px;
	line-height: 1.65;
}

.lavey-sources a {
	color: #4d4e49 !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.lavey-sources a:hover {
	color: #111 !important;
}


/* ============================================================
   TABLETTE
   ============================================================ */

@media (max-width: 900px) {

	.lavey-hero {
		min-height: 700px !important;
	}

	.lavey-hero .wp-block-cover__inner-container {
		padding-right: 22px;
		padding-left: 22px;
	}

	.lavey-hero .lavey-title {
		font-size: clamp(50px, 13vw, 76px);
	}

	.lavey-hero .lavey-hero-lead {
		font-size: 24px;
	}

	.lavey-hero-stats {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 10px;
	}

	.lavey-toc {
		margin-right: 20px;
		margin-left: 20px;
		padding: 28px 8px;
		grid-template-columns: 1fr;
		gap: 25px;
	}

	.lavey-toc-links {
		grid-template-columns: 1fr;
	}

	.lavey-split,
	.lavey-split-large {
		gap: 38px;
	}

	.lavey-big-facts,
	.lavey-tech-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lavey-process {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lavey-process > div:nth-child(2) {
		border-right: 0;
	}

	.lavey-process > div:nth-child(-n+2) {
		border-bottom: 1px solid #d5d5cf;
	}

	.lavey-editorial-block {
		margin-right: 20px !important;
		margin-left: 20px !important;
		padding: 48px 35px;
	}
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 600px) {

	.lavey-hero {
		min-height: 680px !important;
	}

	.lavey-hero .wp-block-cover__inner-container {
		padding-top: 130px;
		padding-bottom: 50px;
	}

	.lavey-hero .lavey-title {
		font-size: clamp(46px, 16vw, 68px);
	}

	.lavey-hero .lavey-hero-lead {
		font-size: 21px;
	}

	.lavey-hero-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lavey-hero-stats strong {
		font-size: 17px;
	}

	.lavey-section,
	.lavey-fact-section,
	.lavey-autonomy {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.lavey-band {
		padding-top: 70px;
		padding-bottom: 70px;
	}

	.lavey-section h2,
	.lavey-editorial-block h2,
	.lavey-closing h2,
	.lavey-fact-section h2,
	.lavey-autonomy h2 {
		font-size: clamp(34px, 10vw, 46px);
	}

	.lavey-big-facts,
	.lavey-tech-grid,
	.lavey-process {
		grid-template-columns: 1fr;
	}

	.lavey-big-facts > div {
		min-height: 105px;
	}

	.lavey-process > div,
	.lavey-process > div:nth-child(2) {
		border-right: 0;
		border-bottom: 1px solid #d5d5cf;
	}

	.lavey-process > div:last-child {
		border-bottom: 0;
	}

	.lavey-process span {
		margin-bottom: 20px;
	}

	.lavey-tech-grid > div {
		min-height: 0;
	}

	.lavey-tech-grid span {
		margin-bottom: 25px;
	}

	.lavey-editorial-block {
		padding: 40px 24px;
		border-top: 1px solid #bbbcb5;
		border-left: 0;
	}

	.lavey-closing,
	.lavey-sources {
		padding-right: 20px;
		padding-left: 20px;
	}

	.lavey-borealis-cover {
		min-height: 620px !important;
	}

	.lavey-borealis-cover .wp-block-cover__inner-container {
		padding-right: 22px;
		padding-left: 22px;
	}
}

/* ---- assets/css/mobile-steps.css ---- */
/* Borealis — navigation mobile par étapes, correctif visuel 1.1.1.
 * Chargé uniquement côté public. Bureau inchangé à partir de 980px. */
@media (max-width: 979px) {
  :root {
    --ab-step-padding: clamp(24px, 4vh, 48px);
    --ab-team-mobile-gap: 24px;
    --ab-mobile-logo-width: 275px; /* 220px × 1,25. */
    --ab-mobile-screen-width: min(var(--ab-step-width, 100vw), 100vw);
  }

  /* Un titre non rétractable ne doit pas élargir le viewport mobile
     et décentrer à son tour le header sur les écrans très étroits. */
  .ab-main.ab-reading .ab-section-title > span {
    min-width: 0;
    max-width: 100%;
    flex-shrink: 1;
    overflow-wrap: anywhere;
  }

  /* Logo centré sur l'écran, et non dans l'espace restant à côté du menu.
     Deux colonnes latérales symétriques réservent la place du hamburger.
     Le logo ne rétrécit que si l'écran est trop étroit pour ses 275px. */
  .ab-site-header .ab-header-inner {
    display: grid;
    grid-template-columns: minmax(44px, 1fr) minmax(0, var(--ab-mobile-logo-width)) minmax(44px, 1fr);
    align-items: center;
    gap: 0;
    width: 100%;
    max-width: none;
    padding-inline: max(8px, env(safe-area-inset-left), env(safe-area-inset-right));
  }
  .ab-site-header .ab-header-inner > .ab-brand {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    flex: none;
    width: 100%;
    max-width: var(--ab-mobile-logo-width);
    min-width: 0;
    margin: 0 !important;
    padding: 0;
  }
  .ab-site-header .ab-brand a { display: block; width: 100%; }
  .ab-site-header .ab-brand img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 150px; /* Ancienne limite de 120px × 1,25. */
    object-fit: contain;
  }
  .ab-site-header .ab-header-inner > .ab-main-nav {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    flex: none;
    min-width: 0;
    margin: 0 !important;
  }

  /* Diaporama bord à bord, même dans le modèle de page .ab-reading.
     Le padding est réservé au texte : ni la section, ni les figures, ni
     le calque d'images ne doivent créer de retrait à gauche ou en haut. */
  :root .ab-main .wp-block-post-content .ab-hero,
  :root .ab-main .ab-hero {
    position: relative;
    isolation: isolate;
    box-sizing: border-box;
    width: var(--ab-mobile-screen-width) !important;
    max-width: none !important;
    min-height: 100svh;
    margin-inline: calc((100% - var(--ab-mobile-screen-width)) / 2) !important;
    margin-block: 0 !important;
    padding: 0 !important;
    overflow: hidden;
  }
  .ab-main .ab-hero .ab-hero-images {
    position: absolute;
    inset: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .ab-main .ab-hero-images > .ab-hero-slide {
    inset: 0;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .ab-main .ab-hero-images .ab-hero-slide :is(picture, img) {
    display: block;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0;
    padding: 0;
  }
  .ab-main .ab-hero .ab-hero-content {
    top: auto;
    min-height: 0;
    width: 100%;
    max-width: none;
    margin: 0 !important;
    padding-block: calc(var(--ab-header-height, 120px) + var(--ab-step-padding))
      max(var(--ab-step-padding), env(safe-area-inset-bottom));
  }

  /* Équipe : également utilisable sans JavaScript, sans toucher au bureau. */
  .ab-main .ab-team .ab-team-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    --ab-team-screen-width: min(var(--ab-step-width, 100vw), 100vw);
    width: var(--ab-team-screen-width) !important;
    max-width: none !important;
    margin-inline: calc((100% - var(--ab-team-screen-width)) / 2) !important;
    gap: 0 !important;
    margin-block: 0 !important;
    padding: 0 !important;
  }
  /* 12px au-dessus + 12px au-dessous : 24px entre deux photos,
     y compris au raccord entre les deux grilles. */
  .ab-main .ab-team .ab-team-photo,
  .ab-main .ab-team .ab-team-grid-five > :last-child {
    grid-column: auto !important;
    justify-self: stretch;
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    margin: 0 !important;
    padding: calc(var(--ab-team-mobile-gap) / 2) 0 !important;
  }
  .ab-main .ab-team .ab-team-photo :is(a, picture) { display: block; width: 100%; }
  .ab-main .ab-team .ab-team-photo img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain;
  }

  /* Pas de conteneur bloqué en 100vh : le document reste scrollable. */
  html.ab-mobile-steps {
    scroll-behavior: auto !important;
    scroll-padding-top: 0;
  }
  html.ab-mobile-steps.ab-steps-admin { margin-top: 0 !important; }
  html.ab-mobile-steps #wpadminbar { position: fixed !important; top: 0; }
  html.ab-mobile-steps body.admin-bar .ab-site-header {
    top: var(--ab-step-admin-height, 0px) !important;
  }
  html.ab-mobile-steps .ab-steps-main {
    /* Garder les textes hors de la petite navigation superposée. */
    --ab-gutter: max(36px, 3vw, env(safe-area-inset-left), env(safe-area-inset-right));
    padding-block-start: var(--ab-step-offset, 120px);
    padding-block-end: 0;
  }
  html.ab-mobile-steps .ab-steps-main.ab-steps-has-hero { padding-block-start: 0; }
  html.ab-mobile-steps .ab-steps-main.ab-steps-has-hero > .wp-block-post-content,
  html.ab-mobile-steps .ab-steps-main.ab-steps-has-hero > .ab-reading-inner > .wp-block-post-content {
    margin-block-start: 0 !important;
  }
  html.ab-mobile-steps .ab-mobile-step {
    box-sizing: border-box;
    /*min-height: var(--ab-step-height, calc(100svh - 120px)) !important;*/
    padding-block-start: var(--ab-step-padding) !important;
    padding-block-end: max(var(--ab-step-padding), env(safe-area-inset-bottom)) !important;
    scroll-margin-top: var(--ab-step-offset, 120px);
  }
  html.ab-mobile-steps .ab-steps-main :where([id]) {
    scroll-margin-top: calc(var(--ab-step-offset, 120px) + 12px);
    min-height: 350px;
  }
  .page-id-99 .ab-steps-main :where([id]),
  .page-id-91 .ab-steps-main :where([id]),
  .page-id-3 .ab-steps-main :where([id]),
  .category-8 .ab-steps-main :where([id]),
  .single-post .ab-steps-main :where([id]){
    min-height: 650px !important;
  }
  html.ab-mobile-steps .ab-mobile-step.ab-hero {
    padding: 0 !important;
  }
  html.ab-mobile-steps .ab-mobile-step.ab-step-first-hero {
    min-height: var(--ab-step-viewport, 100svh) !important;
  }
  html.ab-mobile-steps .ab-mobile-step.ab-steps-main {
    min-height: var(--ab-step-viewport, 100svh) !important;
    padding-block-start: calc(var(--ab-step-offset, 120px) + var(--ab-step-padding)) !important;
  }
  html.ab-mobile-steps .ab-mobile-step.ab-hero :is(.ab-hero-title, .ab-hero-text) {
    padding-inline: var(--ab-gutter);
  }
  html.ab-mobile-steps .ab-mobile-step.ab-hero .ab-hero-content {
    padding-block-start: var(--ab-step-padding);
  }
  html.ab-mobile-steps .ab-mobile-step.ab-step-first-hero .ab-hero-content {
    /*padding-block-start: calc(var(--ab-step-offset, 120px) + var(--ab-step-padding));*/*
  }
  html.ab-mobile-steps .ab-mobile-step-group {
    display: flow-root;
    width: 100%;
    max-width: none;
    margin-block: 0;
  }
  html.ab-mobile-steps .ab-mobile-step-group > :first-child { margin-block-start: 0; }
  html.ab-mobile-steps .ab-mobile-step-group > :last-child { margin-block-end: 0; }

  /* Points de 8px, mais une cible tactile de 28px. */
  .ab-step-nav {
    position: fixed;
    z-index: 990;
    top: calc(var(--ab-step-offset, 120px) + var(--ab-step-height, 70vh) / 2);
    right: max(4px, env(safe-area-inset-right));
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 28px;
    max-height: calc(var(--ab-step-height, 70vh) - 32px);
    padding: 4px 0;
    border-radius: 20px;
    background: #17171799;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
    box-sizing: border-box;
  }
  .ab-step-nav::-webkit-scrollbar { display: none; }
  .ab-step-nav[hidden] { display: none !important; }
  .ab-step-dot {
    appearance: none;
    display: grid;
    place-items: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    cursor: pointer;
    box-sizing: border-box;
  }
  .ab-step-dot::before {
    content: '';
    width: 8px;
    height: 8px;
    box-sizing: border-box;
    border: 1px solid #fff;
    border-radius: 50%;
    background: transparent;
    transition: transform .18s ease, background-color .18s ease;
  }
  .ab-step-dot[aria-current='step']::before {
    background: #fff;
    transform: scale(1.35);
    box-shadow: 0 0 0 2px var(--ab-accent, #aa897e);
  }
  .ab-step-dot:focus-visible { outline: 2px solid #fff !important; outline-offset: -2px; }
  @media (prefers-reduced-motion: reduce) {
    .ab-step-dot::before { transition: none; }
  }
}

/* ---- assets/css/archive-tag.css ---- */
/* ==========================================================
   BOREALIS — ARCHIVES DE TAG
   Twenty Twenty-Five child theme
   ========================================================== */

body.tag {
	--tag-bg: #f3f3f0;
	--tag-dark: var(--ab-dark, #20211f);
	--tag-text: #222320;
	--tag-muted: #73756f;
	--tag-line: rgba(20, 20, 18, .14);
	--tag-max: 1320px;
}


/* ==========================================================
   GLOBAL
   ========================================================== */

.borealis-tag-archive {
	background: var(--tag-bg);
	color: var(--tag-text);
	overflow: hidden;
}

.borealis-tag-archive a {
	text-underline-offset: .18em;
}


/* ==========================================================
   HERO
   ========================================================== */

.borealis-tag-hero {
	position: relative;

	padding-top: clamp(9rem, 16vw, 15rem);
	padding-bottom: clamp(7rem, 12vw, 12rem);

	background:
		linear-gradient(
			135deg,
			rgba(255,255,255,.025),
			rgba(255,255,255,0)
		),
		var(--tag-dark);

	color: #fff;
}

.borealis-tag-hero-inner {
	width: min(
		calc(100% - clamp(2rem, 8vw, 10rem)),
		var(--tag-max)
	);
	margin-inline: auto;
}

.borealis-eyebrow {
	margin: 0 0 2rem;

	font-size: .72rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .17em;
	text-transform: uppercase;

	color: rgba(255,255,255,.62);
}

.borealis-tag-title {
	max-width: 1050px;
	margin: 0;

	font-size: clamp(3.7rem, 9vw, 8.5rem);
	font-weight: 400;
	line-height: .9;
	letter-spacing: -.065em;

	text-wrap: balance;
}

.borealis-tag-description {
	max-width: 760px;
	margin-top: clamp(2.5rem, 5vw, 4.5rem);

	font-size: clamp(1.05rem, 1.6vw, 1.4rem);
	line-height: 1.65;

	color: rgba(255,255,255,.72);
}

.borealis-tag-description:empty {
	display: none;
}

.borealis-tag-scroll {
	margin: clamp(4rem, 8vw, 8rem) 0 0;

	font-size: .78rem;
	letter-spacing: .08em;
	text-transform: uppercase;

	color: rgba(255,255,255,.46);
}


/* ==========================================================
   CONTENT
   ========================================================== */

.borealis-tag-content {
	padding-top: clamp(7rem, 11vw, 12rem);
	padding-bottom: clamp(8rem, 13vw, 14rem);
}

.borealis-tag-heading,
.borealis-tag-query {
	width: min(
		calc(100% - clamp(2rem, 8vw, 10rem)),
		var(--tag-max)
	);
	margin-inline: auto;
}

.borealis-tag-heading {
	margin-bottom: clamp(5rem, 9vw, 9rem);
}

.borealis-eyebrow-dark {
	margin-bottom: 1.5rem;
	color: var(--tag-muted);
}

.borealis-tag-section-title {
	margin: 0;

	font-size: clamp(2.5rem, 5vw, 5.25rem);
	font-weight: 400;
	line-height: .96;
	letter-spacing: -.05em;
}


/* ==========================================================
   GRID
   ========================================================== */

.borealis-tag-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

	column-gap: clamp(3rem, 7vw, 8rem) !important;
	row-gap: clamp(7rem, 12vw, 12rem) !important;

	margin: 0 !important;
	padding: 0 !important;
}

.borealis-tag-grid > li {
	margin: 0 !important;
}

.borealis-tag-card {
	height: 100%;
	margin: 0;
}


/* ==========================================================
   IMAGE
   ========================================================== */

.borealis-tag-card-image {
	margin: 0 0 clamp(2rem, 4vw, 3.25rem);
	overflow: hidden;
	background: #ddd;
}

.borealis-tag-card-image a {
	display: block;
	overflow: hidden;
}

.borealis-tag-card-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;

	transition:
		transform .8s cubic-bezier(.2,.75,.25,1),
		filter .5s ease;
}

.borealis-tag-card:hover .borealis-tag-card-image img {
	transform: scale(1.025);
}


/* ==========================================================
   META
   ========================================================== */

.borealis-tag-meta {
	display: flex;
	align-items: center;
	gap: .75rem 1.2rem;

	margin-bottom: 1.35rem;
}

.borealis-tag-category,
.borealis-tag-date {
	margin: 0;

	font-size: .68rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .13em;
	text-transform: uppercase;

	color: var(--tag-muted);
}

.borealis-tag-category a {
	color: inherit;
	text-decoration: none;
}

.borealis-tag-category a:hover {
	color: var(--tag-text);
}

.borealis-tag-date::before {
	content: "—";
	margin-right: 1.2rem;
	color: rgba(0,0,0,.25);
}


/* ==========================================================
   TITRE
   ========================================================== */

.borealis-tag-card-title {
	max-width: 620px;
	margin: 0 0 1.6rem;

	font-size: clamp(1.75rem, 2.8vw, 3rem);
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -.04em;

	text-wrap: balance;
}

.borealis-tag-card-title a {
	color: inherit;
	text-decoration: none;
}

.borealis-tag-card-title a:hover {
	opacity: .62;
}


/* ==========================================================
   EXCERPT
   ========================================================== */

.borealis-tag-card-excerpt {
	max-width: 600px;
	margin: 0;

	font-size: clamp(.98rem, 1.2vw, 1.1rem);
	line-height: 1.75;

	color: #63655f;
}

.borealis-tag-card-excerpt p {
	margin: 0;
}


/* ==========================================================
   READ MORE
   ========================================================== */

.borealis-tag-readmore {
	display: inline-flex;
	align-items: center;

	margin-top: 2rem;
	padding-bottom: .35rem;

	border-bottom: 1px solid currentColor;

	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;

	color: var(--tag-text);
	text-decoration: none;

	transition:
		opacity .25s ease,
		transform .25s ease;
}

.borealis-tag-readmore:hover {
	opacity: .55;
	transform: translateX(.25rem);
}


/* ==========================================================
   DÉCALAGE DES CARTES
   effet éditorial / architecture
   ========================================================== */

@media (min-width: 900px) {

	.borealis-tag-grid > li:nth-child(even) {
		transform: translateY(clamp(4rem, 8vw, 8rem));
	}

	.borealis-tag-grid {
		margin-bottom: clamp(4rem, 8vw, 8rem) !important;
	}

}


/* ==========================================================
   PAGINATION
   ========================================================== */

.borealis-tag-pagination {
	margin-top: clamp(8rem, 14vw, 15rem);
	padding-top: 2rem;

	border-top: 1px solid var(--tag-line);

	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.borealis-tag-pagination a {
	color: inherit;
	text-decoration: none;
}

.borealis-tag-pagination a:hover {
	opacity: .55;
}


/* ==========================================================
   CTA
   ========================================================== */

.borealis-tag-cta {
	padding-top: clamp(7rem, 11vw, 11rem);
	padding-bottom: clamp(7rem, 11vw, 11rem);

	background: var(--tag-dark);
	color: #fff;
}

.borealis-tag-cta-inner {
	width: min(
		calc(100% - clamp(2rem, 8vw, 10rem)),
		1000px
	);

	margin-inline: auto;
	margin-left:
		max(
			clamp(1rem, 4vw, 5rem),
			calc((100vw - var(--tag-max)) / 2)
		);
}

.borealis-tag-cta h2 {
	max-width: 850px;
	margin: 0 0 2rem;

	font-size: clamp(2.8rem, 6vw, 6rem);
	font-weight: 400;
	line-height: .95;
	letter-spacing: -.055em;

	color: #fff;
}

.borealis-tag-cta p:not(.borealis-eyebrow) {
	max-width: 650px;

	font-size: clamp(1rem, 1.5vw, 1.25rem);
	line-height: 1.7;

	color: rgba(255,255,255,.68);
}

.borealis-tag-cta .wp-block-buttons {
	margin-top: 3rem;
	gap: 1rem;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 899px) {

	.borealis-tag-hero {
		padding-top: 8rem;
		padding-bottom: 6rem;
	}

	.borealis-tag-title {
		font-size: clamp(3.1rem, 15vw, 5rem);
	}

	.borealis-tag-grid {
		grid-template-columns: 1fr !important;
		row-gap: 6rem !important;
	}

	.borealis-tag-card-title {
		font-size: clamp(1.8rem, 8vw, 2.8rem);
	}

	.borealis-tag-pagination {
		margin-top: 7rem;
	}

}


@media (max-width: 600px) {

	.borealis-tag-hero-inner,
	.borealis-tag-heading,
	.borealis-tag-query {
		width: calc(100% - 2rem);
	}

	.borealis-tag-content {
		padding-top: 5.5rem;
		padding-bottom: 7rem;
	}

	.borealis-tag-heading {
		margin-bottom: 4.5rem;
	}

	.borealis-tag-card-image {
		margin-bottom: 1.8rem;
	}

	.borealis-tag-date::before {
		display: none;
	}

	.borealis-tag-cta-inner {
		width: calc(100% - 2rem);
		margin-inline: auto;
	}

}

/* ---- assets/css/borealis-gallery.css ---- */
/* =========================================================
   REFUGE : contenu natif + galerie progressive réutilisable
   Version 2.0.0 — chargé automatiquement par inc/borealis-gallery.php.
   ========================================================= */
.ab-refuge-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  color: var(--ab-projet-soft, #ffffffdf);
}
.ab-refuge-content h2.ab-refuge-subtitle {
  display: block;
  margin: 0 0 30px;
  padding: 0;
  color: inherit;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 35px;
  font-weight: 200;
  line-height: 1.2;
  text-transform: none;
}
.ab-refuge-content h2.ab-refuge-subtitle::after {
  content: none;
  display: none;
}
.ab-refuge-content .ab-refuge-quote {
  margin: 50px 0 0;
  padding: 0;
}

/* Réglages d'intégration : les durées et l'espacement ne sont
   pas précisés dans le JSON Elementor. */
.ab-progressive-gallery {
  --ab-gallery-css-version: 2;
  --ab-gallery-columns: 2;
  --ab-gallery-gap: 10px;
  --ab-gallery-fade: 700ms;
  --ab-gallery-stagger: 170; /* millisecondes, nombre lu par JS */
  --ab-gallery-move: 22px;

  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--ab-gallery-columns), minmax(0, 1fr));
  gap: var(--ab-gallery-gap);
  align-items: start;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.ab-progressive-gallery,
.ab-progressive-gallery * { box-sizing: border-box; }

.ab-progressive-gallery .ab-gallery-item {
  position: relative;
  min-width: 0;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  padding: 0;
  border: 0;
}
.ab-progressive-gallery .ab-gallery-item > a {
  position: relative;
  display: block;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  cursor: zoom-in;
  background: #ffffff08;
}
.ab-progressive-gallery .ab-gallery-item img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
}
.ab-progressive-gallery .ab-gallery-item figcaption {
  margin: 8px 0 0;
  font-size: 14px;
  color: inherit;
}

/* Le masonry est activé uniquement après initialisation du JS. */
.ab-progressive-gallery.is-enhanced { display: block; }
.ab-progressive-gallery.is-enhanced > .ab-gallery-item,
.ab-progressive-gallery.is-enhanced > .ab-gallery-grid-host > .ab-gallery-item {
  position: absolute;
  top: 0;
  left: 0;
}
.ab-progressive-gallery.is-enhanced.is-settled > .ab-gallery-item,
.ab-progressive-gallery.is-enhanced.is-settled > .ab-gallery-grid-host > .ab-gallery-item {
  transition: transform 350ms ease;
}
.ab-progressive-gallery.is-enhanced .ab-gallery-item > a {
  aspect-ratio: var(--ab-photo-ratio, 3 / 2);
}
.ab-progressive-gallery.is-enhanced .ab-gallery-item img {
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transform: translateY(var(--ab-gallery-move)) scale(.985);
  transition: opacity var(--ab-gallery-fade) ease,
              transform var(--ab-gallery-fade) ease;
}
.ab-progressive-gallery.is-enhanced .ab-gallery-item.is-revealed img {
  opacity: 1;
  transform: none;
}
.ab-progressive-gallery .ab-gallery-item.is-loading > a::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 -11px;
  border: 2px solid #ffffff33;
  border-top-color: #ffffffbb;
  border-radius: 50%;
  animation: ab-gallery-spin 800ms linear infinite;
}
.ab-progressive-gallery .ab-gallery-retry {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  padding: 12px 16px;
  border: 1px solid #ffffff77;
  background: #353535;
  color: #fff;
  font: inherit;
  cursor: pointer;
}
.ab-progressive-gallery :where(a, button):focus-visible {
  outline: 3px solid var(--ab-accent, #aa897e);
  outline-offset: 3px;
}
.ab-progressive-gallery .ab-gallery-item:focus-within { z-index: 3; }
@keyframes ab-gallery-spin { to { transform: rotate(360deg); } }

/* Visionneuse indépendante : photo suivante/précédente, sans autoplay. */
html.ab-gallery-modal-open { overflow: hidden; }
.ab-gallery-dialog {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: #171717f5;
  color: #fff;
  font-family: "Montserrat", Arial, sans-serif;
  overflow: hidden;
}
.ab-gallery-dialog:not([open]) { display: none; }
.ab-gallery-dialog::backdrop { background: #000b; }
.ab-gallery-dialog .ab-gallery-stage {
  position: absolute;
  inset: 70px 70px 55px;
  display: grid;
  place-items: center;
  touch-action: pan-y pinch-zoom;
}
.ab-gallery-dialog .ab-gallery-stage img {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  opacity: 0;
  transition: opacity 240ms ease;
}
.ab-gallery-dialog .ab-gallery-stage img.is-active { opacity: 1; }
.ab-gallery-dialog button {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  min-width: 48px;
  min-height: 48px;
  padding: 8px;
  border: 1px solid #ffffff55;
  border-radius: 0;
  background: #222a;
  color: #fff;
  font: inherit;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.ab-gallery-dialog button:disabled,
.ab-gallery-dialog button[aria-disabled="true"] { opacity: .35; cursor: progress; }
.ab-gallery-dialog button:focus-visible,
.ab-gallery-dialog a:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.ab-gallery-dialog .ab-gallery-close { top: max(12px, env(safe-area-inset-top)); right: 12px; }
.ab-gallery-dialog .ab-gallery-prev { left: 10px; top: calc(50% - 24px); }
.ab-gallery-dialog .ab-gallery-next { right: 10px; top: calc(50% - 24px); }
.ab-gallery-dialog .ab-gallery-counter { position: absolute; top: 20px; left: 20px; margin: 0; font-size: 16px; }
.ab-gallery-dialog .ab-gallery-status { position: absolute; bottom: max(16px, env(safe-area-inset-bottom)); left: 10%; width: 80%; margin: 0; text-align: center; font-size: 14px; }
.ab-gallery-dialog .ab-gallery-status a { color: inherit; text-decoration: underline; }

@media (max-width: 979px) {
  .ab-progressive-gallery { --ab-gallery-columns: 1; }
}
@media (max-width: 767px) {
  .ab-refuge-content h2.ab-refuge-subtitle { font-size: 24px; }
  .ab-gallery-dialog .ab-gallery-stage { inset: 75px 8px 70px; }
  .ab-gallery-dialog .ab-gallery-prev,
  .ab-gallery-dialog .ab-gallery-next { top: auto; bottom: max(12px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .ab-progressive-gallery.is-enhanced.is-settled > .ab-gallery-item,
.ab-progressive-gallery.is-enhanced.is-settled > .ab-gallery-grid-host > .ab-gallery-item { transition: none; }
  .ab-progressive-gallery.is-enhanced .ab-gallery-item img,
  .ab-gallery-dialog .ab-gallery-stage img { transition: none; transform: none; }
  .ab-progressive-gallery .ab-gallery-item.is-loading > a::after { animation: none; }
}

/* Aucun JS dans l'éditeur : tous les blocs restent sélectionnables. */
.editor-styles-wrapper .ab-progressive-gallery { display: block; height: auto !important; }
.editor-styles-wrapper .ab-progressive-gallery > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.editor-styles-wrapper .ab-progressive-gallery .ab-gallery-item {
  position: relative;
  width: auto !important;
  transform: none !important;
}
.editor-styles-wrapper .ab-progressive-gallery .ab-gallery-item img { opacity: 1; transform: none; height: auto; }

/* V2 : compatibilité Groupe ancien + hover indépendant du masonry. */
.ab-progressive-gallery > .ab-gallery-grid-host {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(var(--ab-gallery-columns), minmax(0, 1fr));
  gap: var(--ab-gallery-gap);
}
.ab-progressive-gallery:has(> .ab-gallery-grid-host) { display: block; }
.ab-progressive-gallery.is-enhanced > .ab-gallery-grid-host { display: block; }
.ab-progressive-gallery .ab-gallery-item > a {
  isolation: isolate;
  border-radius: 4px;
  transition: box-shadow 400ms ease;
}
.ab-progressive-gallery .ab-gallery-item img,
.ab-progressive-gallery.is-enhanced .ab-gallery-item img {
  transition: opacity var(--ab-gallery-fade) ease,
              transform var(--ab-gallery-fade) cubic-bezier(.22,.61,.36,1),
              filter 500ms ease;
}
.ab-progressive-gallery .ab-gallery-item > a::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 45%, #0007);
  box-shadow: inset 0 0 0 1px #ffffff30;
  opacity: 0;
  transition: opacity 400ms ease;
}
.ab-progressive-gallery .ab-gallery-zoom {
  position: absolute;
  z-index: 2;
  right: 18px;
  bottom: 18px;
  display: block;
  padding: 10px 14px;
  border: 1px solid #ffffff66;
  border-radius: 3px;
  background: #1b1b1b99;
  color: #fff;
  font: 400 13px/1.2 "Montserrat", Arial, sans-serif;
  letter-spacing: .03em;
  pointer-events: none;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 350ms ease, transform 350ms ease;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
@media (hover: hover) and (pointer: fine) {
  .ab-progressive-gallery .ab-gallery-item.is-revealed > a:hover img,
  .ab-progressive-gallery:not(.is-enhanced) .ab-gallery-item > a:hover img {
    transform: scale(1.055);
    filter: brightness(1.06) saturate(1.06);
  }
  .ab-progressive-gallery .ab-gallery-item.is-revealed > a:hover {
    box-shadow: 0 14px 35px #0005;
  }
  .ab-progressive-gallery .ab-gallery-item.is-revealed > a:hover::before,
  .ab-progressive-gallery .ab-gallery-item.is-revealed > a:hover .ab-gallery-zoom {
    opacity: 1;
    transform: none;
  }
}
.ab-progressive-gallery .ab-gallery-item > a:focus-visible::before,
.ab-progressive-gallery .ab-gallery-item > a:focus-visible .ab-gallery-zoom {
  opacity: 1;
  transform: none;
}
/* Indicateur visible même sur cache froid : shimmer et anneau. */
.ab-progressive-gallery .ab-gallery-item.is-loading > a::before {
  opacity: 1;
  background: linear-gradient(110deg, #ffffff03 25%, #ffffff15 45%, #ffffff03 65%);
  background-size: 240% 100%;
  animation: ab-gallery-shimmer 1500ms linear infinite;
}
.ab-progressive-gallery .ab-gallery-item.is-loading > a::after { z-index: 3; }
@keyframes ab-gallery-shimmer { from { background-position: 200% 0; } to { background-position: -50% 0; } }
/* Ouverture en fondu, fenêtre native au-dessus du header fixe. */
.ab-gallery-dialog[open] { display: block; }
.ab-gallery-dialog { opacity: 0; transition: opacity 200ms ease; }
.ab-gallery-dialog.is-visible { opacity: 1; }
.ab-gallery-dialog button { border-radius: 50%; transition: background 200ms ease, transform 200ms ease; }
.ab-gallery-dialog button:hover { background: #ffffff24; transform: scale(1.06); }
.ab-gallery-dialog .ab-gallery-stage img { border-radius: 2px; }
.ab-gallery-dialog .ab-gallery-status { padding-inline: 24px; }
@media (prefers-reduced-motion: reduce) {
  .ab-progressive-gallery .ab-gallery-item,
  .ab-progressive-gallery .ab-gallery-item img,
  .ab-progressive-gallery .ab-gallery-item > a,
  .ab-progressive-gallery .ab-gallery-item > a::before,
  .ab-progressive-gallery .ab-gallery-item > a::after,
  .ab-progressive-gallery .ab-gallery-zoom,
  .ab-gallery-dialog, .ab-gallery-dialog button,
  .ab-gallery-dialog .ab-gallery-stage img { animation: none !important; transition: none !important; }
  .ab-progressive-gallery .ab-gallery-item > a img { transform: none !important; }
}
/* Affichage sans JS : le noscript restitue les fichiers source. */
ab-progressive-gallery > noscript,
.ab-progressive-gallery .ab-gallery-grid-host > noscript {
  display: none;
}

/* ---- assets/css/ab-charpentier-hub.css ---- */
/* Atelier Borealis Â· Page pilier Charpentier Ã  Embrun
 * Scope : .ab-hub uniquement, sauf corrections d'ancÃªtres portant cette page.
 * Aucun changement des pages .ab-about / carnet d'ouvrages.
 * Police du thÃ¨me rÃ©utilisÃ©e ; aucune requÃªte Google Fonts.
 */
.ab-hub.ab-hub {
  --hub-base: #efe4dc;
  --hub-legacy-base: #aa897e;
  --hub-legacy-paper: #f4efe9;
  --hub-legacy-sand: #e8dfd8;
  --hub-legacy-dark: #2d2f2e;
  --hub-paper: #f7f1eb;
  --hub-sand: #eadcd3;
  --hub-sand-light: #fff;
  --hub-ink: #272421;
  --hub-muted: #51423c;
  --hub-accent: #704738;
  --hub-dark: #272421;
  --hub-on-dark: #f7f1eb;
  --hub-line: rgba(39,36,33,.19);
  --hub-radius: 10px;
  --hub-width: 1240px;
  --hub-gutter: clamp(20px,4.2vw,64px);
  --ab-hub-top-clearance: 112px; /* Fallback sans JS pour le header superposÃ©. */
  --ab-hub-header-offset: 0px;
  --ab-hub-nav-height: 66px;
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--hub-ink);
  background: var(--hub-base);
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", Arial, sans-serif);
  font-size: 16px;
  line-height: 1.75;
  text-align: left;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  color-scheme: light;
}
.ab-hub *, .ab-hub *::before, .ab-hub *::after { box-sizing: border-box; }
/* Isolation par rapport au layout constrained et aux rÃ¨gles du thÃ¨me. */
.ab-hub :where(.wp-block-group, .wp-block-buttons, .wp-block-image) {
  max-width: none; margin-block: 0;
}
.ab-hub .wp-block-group > * { margin-block-start: 0; }
.ab-hub :where(h1,h2,h3,p,figure) { padding: 0; margin: 0; }
.ab-hub :where(h1,h2,h3) {
  display: block; color: inherit; font-family: inherit; letter-spacing: -.045em;
  font-weight: 600; text-transform: none; line-height: 1.13;
  white-space: normal; overflow-wrap: normal; hyphens: none;
  border: 0; background: none;
}
/* Annule seulement les sÃ©parateurs hÃ©ritÃ©s de .ab-reading et assimilÃ©s. */
.ab-hub :is(h1,h2,h3)::before,
.ab-hub :is(h1,h2,h3)::after { content: none !important; display: none !important; }
.ab-hub h2 { font-size: clamp(32px,3.55vw,48px); }
.ab-hub h3 { font-size: 23px; letter-spacing: -.035em; line-height: 1.25; }
.ab-hub p { font-size: 16px; line-height: 1.75; font-weight: 400; color: inherit; }
.ab-hub p + p { margin-top: 16px; }
.ab-hub h2 + p, .ab-hub h3 + p { margin-top: 20px; }
.ab-hub :where(a) { color: inherit; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.ab-hub a:hover { color: inherit; }
.ab-hub :where(a,summary):focus-visible {
  outline: 3px solid currentColor; outline-offset: 5px; border-radius: 3px;
}
.ab-hub img { display: block; max-width: 100%; height: auto; border: 0; }
.ab-hub .wp-element-caption {
  margin: 12px 0 0; color: inherit; font-family: inherit; font-size: 13px; font-weight: 400; line-height: 1.55; opacity: 1;
  text-align: left;
}
.ab-hub .ab-hub-container {
  width: calc(100% - var(--hub-gutter) * 2);
  max-width: var(--hub-width) !important;
  margin-inline: auto !important;
  padding: 0;
}
.ab-hub .ab-hub-section {
  width: 100%; max-width: none; margin: 0; padding: clamp(64px,7vw,112px) 0;
  scroll-margin-top: calc(var(--ab-hub-header-offset) + var(--ab-hub-nav-height) + 20px);
  min-height: 0;
}
.ab-hub .ab-hub-eyebrow {
  margin: 0 0 18px; font-size: 11px; font-weight: 700; line-height: 1.65;
  letter-spacing: .14em; text-transform: uppercase;
}
.ab-hub .ab-hub-sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}
.ab-hub .ab-hub-text-link { margin-top: 22px; font-size: 14px; line-height: 1.5; font-weight: 600; }
.ab-hub .ab-hub-text-link a { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; }
.ab-hub .ab-hub-text-link a span { font-size: 23px; line-height: 1; transition: transform .2s ease; }
.ab-hub .ab-hub-text-link a:hover span { transform: translate(2px,-2px); }
/* Hero Ã©ditorial : l'information n'est plus sous une banniÃ¨re vide. */
.ab-hub .ab-hub-hero { padding-top: calc(var(--ab-hub-top-clearance) + 28px); padding-bottom: 56px; }
.ab-hub .ab-hub-breadcrumb {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 13px;
  font-size: 12px; line-height: 1.6; margin: 0 0 34px;
}
.ab-hub .ab-hub-breadcrumb a { display: inline-flex; align-items: center; min-height: 32px; }
.ab-hub .ab-hub-hero-grid {
  display: grid; grid-template-columns: minmax(0,1.08fr) minmax(0,1fr);
  gap: clamp(28px,4vw,62px); align-items: center;
}
.ab-hub .ab-hub-hero-copy { min-width: 0; padding: 8px 0; }
.ab-hub h1.ab-hub-title { font-size: clamp(39px,4.9vw,66px); font-weight: 650; line-height: 1.07; letter-spacing: -.055em; }
.ab-hub .ab-hub-title-sub { display: block; margin-top: 17px; font-size: .57em; line-height: 1.18; font-weight: 400; letter-spacing: -.025em; }
.ab-hub .ab-hub-standfirst { margin-top: 25px; max-width: 37ch; font-size: 20px; line-height: 1.5; font-weight: 500; }
.ab-hub .ab-hub-hero-description { margin-top: 16px; max-width: 56ch; font-size: 15px; line-height: 1.75; }
.ab-hub .ab-hub-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.ab-hub .ab-hub-button { margin: 0; }
.ab-hub .ab-hub-button .wp-block-button__link {
  display: inline-flex; justify-content: center; align-items: center;
  min-height: 52px; padding: 14px 21px; border: 1px solid var(--hub-ink);
  border-radius: 5px; background: var(--hub-ink); color: var(--hub-paper);
  font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1.5;
  letter-spacing: 0; text-transform: none; text-decoration: none; box-shadow: none;
  transition: background-color .2s ease, transform .2s ease;
}
.ab-hub .ab-hub-button--secondary .wp-block-button__link { color: var(--hub-ink); background: transparent; }
.ab-hub .ab-hub-button .wp-block-button__link:hover { background: #3b302b; color: var(--hub-paper); transform: translateY(-2px); }
.ab-hub .ab-hub-button--secondary .wp-block-button__link:hover { color: var(--hub-ink); background: rgba(247,241,235,.4); }
.ab-hub .ab-hub-hero-contact { display: flex; flex-wrap: wrap; gap: 7px 18px; margin-top: 20px; font-size: 12px; line-height: 1.7; }
.ab-hub .ab-hub-hero-contact a { font-weight: 700; }
.ab-hub .ab-hub-hero-visual { position: relative; min-width: 0; }
.ab-hub .ab-hub-hero-photo { border-radius: var(--hub-radius); overflow: hidden; background: #896b60; }
.ab-hub .ab-hub-hero-photo img { width: 100%; aspect-ratio: 1 / 1.11; object-fit: cover; object-position: 40% 50%; }
.ab-hub .ab-hub-photo-label {
  position: absolute; right: 20px; bottom: 20px; padding: 18px 23px;
  max-width: calc(100% - 40px); border-radius: 4px; background: var(--hub-paper); color: var(--hub-ink);
}
.ab-hub .ab-hub-photo-label .ab-hub-eyebrow { font-size: 9px; margin-bottom: 7px; }
.ab-hub .ab-hub-photo-label p:not(.ab-hub-eyebrow) { font-size: 16px; line-height: 1.35; font-weight: 500; }
/* Les trois preuves sont de vÃ©ritables cartes, indÃ©pendantes des mÃ©tiers. */
.ab-hub .ab-hub-proof { padding: 8px 0 55px; }
.ab-hub .ab-hub-proof-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.ab-hub .ab-hub-proof-card {
  display: flex; flex-direction: column; align-items: flex-start; min-width: 0;
  padding: clamp(23px,2.6vw,34px); background: var(--hub-sand-light);
  border: 1px solid rgba(39,36,33,.1); border-radius: var(--hub-radius);
  box-shadow: 0 6px 22px rgba(44,26,18,.045);
}
.ab-hub .ab-hub-proof-card h3 { font-size: clamp(24px,2.4vw,31px); line-height: 1.17; }
.ab-hub .ab-hub-proof-card > p:not(.ab-hub-eyebrow) { font-size: 14px; line-height: 1.7; margin-top: 18px; }
.ab-hub .ab-hub-proof-card > .ab-hub-text-link,
.ab-hub .ab-hub-proof-card > .ab-hub-proof-footer { padding-top: 16px; margin-top: auto !important; }
.ab-hub .ab-hub-proof-card .ab-hub-proof-footer { font-size: 11px !important; font-weight: 600; }
.ab-hub .ab-hub-proof-card .ab-hub-text-link { font-size: 12px !important; }
.ab-hub .ab-hub-certification { display: flex; align-items: center; gap: 15px; width: 100%; margin-top: auto; padding-top: 18px; }
.ab-hub .ab-hub-bda-logo { width: 86px; flex: 0 0 86px; padding: 4px; background: #fff; border-radius: 3px; }
.ab-hub .ab-hub-bda-logo img { width: 100%; height: auto; aspect-ratio: 5/4; object-fit: contain; }
.ab-hub .ab-hub-certification .ab-hub-text-link { margin: 0; }
.ab-hub .ab-hub-certification .ab-hub-text-link a { gap: 6px; }
/* Sommaire HTML accessible, aucun carousel ni navigation forcÃ©e. */
.ab-hub .ab-hub-jumpbar {
  position: sticky; top: 0/*var(--ab-hub-header-offset)*/; z-index: 20;
  background: var(--hub-sand-light); /*border-top: 1px solid var(--hub-line); border-bottom: 1px solid var(--hub-line);*/
  /*height: 220px;
  line-height: 415px;*/opacity:0.8;
}
.ab-hub .ab-hub-jump { display: flex; align-items: center; min-height: 66px; gap: 10px 36px; }
.ab-hub .ab-hub-jump-label { margin-right: auto; font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.ab-hub .ab-hub-jump a {
  display: inline-flex; justify-content: center; align-items: center; min-height: 48px;
  padding: 8px 0; font-size: 12px; font-weight: 600; line-height: 1.45;
  text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap;
}
.ab-hub .ab-hub-jump a:hover, .ab-hub .ab-hub-jump a[aria-current="location"] { border-bottom-color: var(--hub-ink); }
/* Maillage interne : 5 cartes illustrÃ©es + 1 orientation vers le devis. */
.ab-hub .ab-hub-section-intro { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: end; margin-bottom: 38px; }
.ab-hub .ab-hub-intro-text { max-width: 49ch; }
.ab-hub .ab-hub-services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: stretch; }
.ab-hub .ab-hub-service-card {
  position: relative; display: flex; flex-direction: column; min-width: 0;
  overflow: hidden; border: 1px solid rgba(39,36,33,.13); border-radius: var(--hub-radius);
  background: var(--hub-paper); box-shadow: 0 5px 20px rgba(44,26,18,.035);
  transition: transform .2s ease, box-shadow .2s ease;
}
.ab-hub .ab-hub-service-photo { overflow: hidden; flex: 0 0 auto; background: var(--hub-sand); }
.ab-hub .ab-hub-service-photo img { width: 100%; aspect-ratio: 1.72; object-fit: cover; transition: transform .4s ease; }
.ab-hub .ab-hub-service-photo--couverture img { object-position: 50% 61%; }
.ab-hub .ab-hub-service-photo--ossature img { object-position: 50% 45%; }
.ab-hub .ab-hub-service-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 27px; }
.ab-hub .ab-hub-service-body .ab-hub-eyebrow { font-size: 10px; margin-bottom: 13px; color: var(--hub-accent); }
.ab-hub .ab-hub-service-body h3 { font-size: 25px; }
.ab-hub .ab-hub-service-body > p:not(.ab-hub-eyebrow):not(.ab-hub-card-link) { margin-top: 17px; font-size: 14px; line-height: 1.75; }
.ab-hub .ab-hub-card-link { width: 100%; margin-top: auto; padding-top: 22px; font-size: 12px; line-height: 1.5; font-weight: 700; }
.ab-hub .ab-hub-card-link a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; text-decoration: none; }
.ab-hub .ab-hub-card-link a span { font-size: 24px; line-height: 1; flex: 0 0 auto; }
.ab-hub .ab-hub-card-link a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ab-hub .ab-hub-card-link a:focus-visible { outline: none; }
.ab-hub .ab-hub-service-card:focus-within { outline: 3px solid var(--hub-ink); outline-offset: 4px; }
.ab-hub .ab-hub-service-card--guide { background: var(--hub-ink); color: var(--hub-paper); }
.ab-hub .ab-hub-service-card--guide .ab-hub-service-body { padding: 36px 30px; }
.ab-hub .ab-hub-service-card--guide .ab-hub-eyebrow { color: #d6b4a4; }
.ab-hub .ab-hub-service-card--guide h3 { font-size: clamp(28px,3vw,39px); }
.ab-hub .ab-hub-service-card--guide::before {
  content: ""; display: block; height: 112px; margin: 26px 30px 0;
  background: url("https://atelierborealis.eu/wp-content/uploads/2025/05/MONTAGNE-PLEINE-BEIGE-1024x617.png") right center / auto 100% no-repeat;
}
.ab-hub .ab-hub-service-card--guide:focus-within { outline-color: var(--hub-paper); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .ab-hub .ab-hub-service-card:hover { transform: translateY(-4px); box-shadow: 0 18px 32px rgba(44,26,18,.1); }
  .ab-hub .ab-hub-service-card:hover .ab-hub-service-photo img { transform: scale(1.035); }
}
/* L'atelier puis 4 Ã©tapes illustrÃ©es. */
.ab-hub .ab-hub-approche { background: var(--hub-sand-light); }
.ab-hub .ab-hub-workshop-grid { display: grid; grid-template-columns: .88fr 1fr; gap: clamp(44px,7vw,108px); align-items: center; }
.ab-hub .ab-hub-workshop-visual { position: relative; min-width: 0; padding-right: 24px; }
.ab-hub .ab-hub-workshop-photo img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--hub-radius); }
.ab-hub .ab-hub-workshop-stamp {
  position: absolute; top: 34px; right: 0; padding: 19px 20px;
  background: var(--hub-base); border: 5px solid var(--hub-sand-light); transform: rotate(3deg);
}
.ab-hub .ab-hub-workshop-stamp p { font-size: 13px; line-height: 1.35; font-weight: 700; letter-spacing: .04em; }
.ab-hub .ab-hub-workshop-copy { min-width: 0; }
.ab-hub .ab-hub-workshop-copy > p:not(.ab-hub-eyebrow) { margin-top: 24px; }
.ab-hub .ab-hub-audience { margin-top: 28px; padding: 24px 0 0 24px; border-left: 2px solid var(--hub-base); }
.ab-hub .ab-hub-audience h3 { font-size: 18px; }
.ab-hub .ab-hub-audience p { margin-top: 10px; font-size: 14px; }
.ab-hub .ab-hub-process { margin-top: 72px; padding-top: 40px; border-top: 1px solid var(--hub-line); }
.ab-hub h2.ab-hub-process-title { font-size: clamp(25px,2.8vw,35px); }
.ab-hub .ab-hub-process-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; margin-top: 32px; }
.ab-hub .ab-hub-step { min-width: 0; }
.ab-hub .ab-hub-step-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--hub-line); }
.ab-hub .ab-hub-step-number { font-size: 34px; font-weight: 400; line-height: 1; letter-spacing: -.04em; color: var(--hub-accent); }
.ab-hub .ab-hub-step-icon { width: 52px; flex: 0 0 52px; }
.ab-hub .ab-hub-step-icon img { width: 52px; height: 52px; }
.ab-hub .ab-hub-step h3 { font-size: 19px; }
.ab-hub .ab-hub-step > p { margin-top: 12px; font-size: 14px; line-height: 1.75; }

/* Variante sombre du mÃªme composant, uniquement pour les 5 sous-pages mÃ©tier.
 * Le hub /charpentier-embrun/ conserve .ab-hub-approche sans modificateur :
 * son rendu clair ci-dessus reste donc strictement inchangÃ©.
 */
.ab-hub .ab-hub-approche--dark {
  background: #2d2f2e;
  color: var(--hub-on-dark);
}
.ab-hub .ab-hub-approche--dark .ab-hub-workshop-grid {
  grid-template-columns: minmax(0,1.05fr) minmax(360px,.95fr);
  gap: clamp(34px,6vw,86px);
}
/* MÃªme markup que le hub, mais inversion visuelle : texte gauche / image droite. */
.ab-hub .ab-hub-approche--dark .ab-hub-workshop-copy {
  grid-column: 1;
  grid-row: 1;
}
.ab-hub .ab-hub-approche--dark .ab-hub-workshop-visual {
  grid-column: 2;
  grid-row: 1;
  padding-right: 0;
}
.ab-hub .ab-hub-approche--dark .ab-hub-workshop-photo img {
  width: 100%;
  height: clamp(360px,43vw,650px);
  aspect-ratio: auto;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: var(--hub-radius);
}
.ab-hub .ab-hub-approche--dark .ab-hub-eyebrow {
  color: #d9b9ae;
}
.ab-hub .ab-hub-approche--dark .ab-hub-workshop-copy h2 {
  max-width: 12ch;
  color: #fff;
  font-size: clamp(2.2rem,4vw,4.4rem);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.045em;
}
.ab-hub .ab-hub-approche--dark .ab-hub-workshop-copy > p:not(.ab-hub-eyebrow),
.ab-hub .ab-hub-approche--dark .ab-hub-step > p {
  color: #d6d1cb;
}
.ab-hub .ab-hub-approche--dark .ab-hub-audience {
  border-left-color: #d9b9ae;
}
.ab-hub .ab-hub-approche--dark .ab-hub-process {
  border-top-color: rgba(247,241,235,.22);
}
.ab-hub .ab-hub-approche--dark .ab-hub-process-title,
.ab-hub .ab-hub-approche--dark .ab-hub-step h3 {
  color: #fff;
}
.ab-hub .ab-hub-approche--dark .ab-hub-step-top {
  border-bottom-color: rgba(247,241,235,.2);
}
.ab-hub .ab-hub-approche--dark .ab-hub-step-number {
  color: #d9b9ae;
}

/* Rupture assumÃ©e : une Ã©tude de cas sur fond anthracite. */
.ab-hub .ab-hub-realisation { background: var(--hub-dark); color: var(--hub-on-dark); }
.ab-hub .ab-hub-realisation .ab-hub-eyebrow { color: #d6b4a4; }
.ab-hub .ab-hub-project-heading { display: grid; grid-template-columns: 1.35fr 1fr; align-items: end; gap: 64px; margin: 25px 0 38px; }
.ab-hub .ab-hub-project-heading h2 { font-size: clamp(35px,4.2vw,56px); }
.ab-hub .ab-hub-project-meta p:last-child { font-size: 16px; max-width: 40ch; }
.ab-hub .ab-hub-project-panorama img { width: 100%; height: auto; aspect-ratio: 1024/401; border-radius: 6px; object-fit: cover; }
.ab-hub .ab-hub-realisation .wp-element-caption { color: #d5c4ba; }
.ab-hub .ab-hub-project-story { display: grid; grid-template-columns: 1.35fr 1fr; gap: 72px; margin-top: 45px; align-items: start; }
.ab-hub .ab-hub-project-copy h3 { font-size: 26px; }
.ab-hub .ab-hub-project-copy p { max-width: 62ch; }
.ab-hub .ab-hub-project-copy .ab-hub-text-link { color: #ecd4c8; }
.ab-hub .ab-hub-project-facts { display: grid; grid-template-columns: 1fr; gap: 23px; }
.ab-hub .ab-hub-project-fact { padding: 0 0 20px 24px; border-left: 1px solid #80685a; }
.ab-hub .ab-hub-project-fact p { margin-top: 8px; font-size: 13px; color: #d5c4ba; }
.ab-hub .ab-hub-project-fact .ab-hub-fact-value { font-size: clamp(27px,3vw,40px); line-height: 1.15; font-weight: 500; letter-spacing: -.04em; color: #ecd4c8; margin: 0; }
.ab-hub .ab-hub-project-gallery { display: grid; grid-template-columns: 1fr 2fr; gap: 24px; margin-top: 38px; align-items: start; }
.ab-hub .ab-hub-project-gallery img { width: 100%; object-fit: cover; border-radius: 6px; }
.ab-hub .ab-hub-project-portrait img { aspect-ratio: 2/3; object-position: 50% 50%; }
.ab-hub .ab-hub-project-landscape img { aspect-ratio: 4/3; }
/* Implantation, sans liste de communes ni rayon non vÃ©rifiÃ©s. */
.ab-hub .ab-hub-alpin-grid { display: grid; grid-template-columns: 1fr .9fr; gap: clamp(35px,7vw,110px); align-items: center; }
.ab-hub .ab-hub-alpin-copy > p:not(.ab-hub-eyebrow) { margin-top: 24px; }
.ab-hub .ab-hub-local-card { position: relative; overflow: hidden; padding: 36px; background: var(--hub-sand); border-radius: var(--hub-radius); border: 1px solid rgba(39,36,33,.12); }
.ab-hub .ab-hub-local-card > :not(.ab-hub-mountain) { position: relative; z-index: 1; }
.ab-hub .ab-hub-mountain { position: absolute; top: 10px; right: -32px; width: 235px; opacity: .9; }
.ab-hub .ab-hub-mountain img { width: 100%; height: auto; }
.ab-hub .ab-hub-local-card h3 { font-size: clamp(27px,3vw,38px); }
.ab-hub .ab-hub-address { font-size: 18px; font-weight: 500; line-height: 1.5; margin-top: 25px; }
.ab-hub .ab-hub-local-card > p:not(.ab-hub-eyebrow):not(.ab-hub-address) { font-size: 14px; }
/* AccordÃ©ons natifs : contenu prÃ©sent, accessible sans JavaScript. */
.ab-hub .ab-hub-questions { background: var(--hub-sand-light); }
.ab-hub .ab-hub-faq-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 65px; align-items: start; }
.ab-hub .ab-hub-faq-intro p:last-child { max-width: 31ch; margin-top: 22px; }
.ab-hub .ab-hub-faq-list { min-width: 0; }
.ab-hub .ab-hub-faq-item { margin: 0; padding: 0; border: 0; border-top: 1px solid var(--hub-line); background: transparent; }
.ab-hub .ab-hub-faq-item:last-child { border-bottom: 1px solid var(--hub-line); }
.ab-hub .ab-hub-faq-item summary {
  position: relative; display: block; cursor: pointer; padding: 25px 45px 25px 0;
  color: var(--hub-ink); font-family: inherit; font-size: 16px; font-weight: 600;
  line-height: 1.5; list-style: none; min-height: 64px;
}
.ab-hub .ab-hub-faq-item summary::-webkit-details-marker { display: none; }
.ab-hub .ab-hub-faq-item summary::after { content: "+"; position: absolute; right: 6px; top: 20px; font-size: 26px; line-height: 1.3; font-weight: 400; }
.ab-hub .ab-hub-faq-item[open] summary::after { content: "-"; }
.ab-hub .ab-hub-faq-item > p { margin: 0; padding: 0 40px 27px 0; font-size: 14px; line-height: 1.85; }
/* Liens complÃ©mentaires, puis prise de contact sans double shortcode. */
.ab-hub .ab-hub-contact { padding-top: 0; padding-bottom: 76px; }
.ab-hub .ab-hub-related { display: grid; grid-template-columns: 1.3fr 1fr 1fr; align-items: center; gap: 40px; padding: 55px 0; }
.ab-hub .ab-hub-related-intro .ab-hub-eyebrow { margin-bottom: 12px; }
.ab-hub .ab-hub-related-intro h3 { font-size: 24px; }
.ab-hub .ab-hub-related > .ab-hub-text-link { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--hub-line); }
.ab-hub .ab-hub-related .ab-hub-text-link a { display: flex; justify-content: space-between; }
.ab-hub .ab-hub-contact-panel { display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: center; padding: clamp(32px,5vw,64px); background: var(--hub-paper); border-radius: var(--hub-radius); }
.ab-hub .ab-hub-contact-copy p:last-child { font-size: 15px; max-width: 48ch; margin-top: 23px; }
.ab-hub .ab-hub-final-actions { display: flex; flex-direction: column; align-items: stretch; gap: 12px; margin: 0; }
.ab-hub .ab-hub-final-actions .wp-block-button__link { width: 100%; }
.ab-hub .ab-hub-email { margin-top: 24px; font-size: 13px; overflow-wrap: anywhere; text-align: center; }
.ab-hub .ab-hub-contact-address { margin-top: 16px; text-align: center; font-size: 12px; line-height: 1.7; }
.ab-hub .ab-hub-mobile-actions { display: none; }
.ab-hub [hidden] { display: none !important; }
/* Ajustement local du template FSE, avec et sans le petit pont PHP. */
body.ab-hub-page { background: #efe4dd; }
body.ab-hub-page .ab-reading:has(.ab-hub),
body.ab-hub-page .wp-block-post-content:has(> .ab-hub),
.wp-block-post-content:has(> .ab-hub) {
  max-width: none !important; width: 100%; padding: 0 !important; margin-block: 0 !important;
}
/* Pas de fuite des styles sur le header et le footer. */
@media (max-width: 1140px) and (min-width: 980px) {
  .ab-hub .ab-hub-jump { gap: 22px; }
  .ab-hub .ab-hub-service-body { padding: 23px; }
  .ab-hub .ab-hub-service-body h3 { font-size: 23px; }
  .ab-hub .ab-hub-hero-actions { flex-direction: column; align-items: stretch; }
  .ab-hub .ab-hub-hero-actions .wp-block-button__link { width: 100%; }
}
/* Breakpoint mobile du thÃ¨me existant : 979px. */
@media (max-width: 979px) {
  .ab-hub.ab-hub { --hub-gutter: 28px; --ab-hub-nav-height: 0px; }
  .ab-hub .ab-hub-hero-grid { grid-template-columns: 1fr; gap: 30px; }
  .ab-hub .ab-hub-hero-copy { max-width: 730px; }
  .ab-hub h1.ab-hub-title { font-size: clamp(40px,7vw,61px); }
  .ab-hub .ab-hub-hero-description { max-width: 65ch; }
  .ab-hub .ab-hub-hero-visual { max-width: none; }
  .ab-hub .ab-hub-hero-photo img { aspect-ratio: 16/9; object-position: 40% 47%; }
  .ab-hub .ab-hub-proof-grid { gap: 14px; }
  .ab-hub .ab-hub-proof-card { padding: 22px; }
  .ab-hub .ab-hub-proof-card h3 { font-size: 25px; }
  .ab-hub .ab-hub-certification { flex-wrap: wrap; gap: 4px; }
  .ab-hub .ab-hub-jumpbar { position: static; }
  .ab-hub .ab-hub-jump { flex-wrap: wrap; justify-content: space-between; gap: 3px 18px; padding: 9px 0; }
  .ab-hub .ab-hub-jump-label { display: none; }
  .ab-hub .ab-hub-section-intro { grid-template-columns: 1fr 1fr; gap: 32px; }
  .ab-hub .ab-hub-services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
  .ab-hub .ab-hub-workshop-grid { grid-template-columns: .8fr 1fr; gap: 34px; align-items: start; }
  .ab-hub .ab-hub-workshop-photo img { aspect-ratio: 2/3; }
  .ab-hub .ab-hub-workshop-copy h2 { font-size: 33px; }
  .ab-hub .ab-hub-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px; }
  .ab-hub .ab-hub-project-heading { gap: 35px; }
  .ab-hub .ab-hub-project-story { grid-template-columns: 1.25fr 1fr; gap: 36px; }
  .ab-hub .ab-hub-alpin-grid { gap: 32px; }
  .ab-hub .ab-hub-local-card { padding: 28px; }
  .ab-hub .ab-hub-faq-grid { grid-template-columns: 1fr; gap: 28px; }
  .ab-hub .ab-hub-faq-intro p:last-child { max-width: 55ch; }
  .ab-hub .ab-hub-related { gap: 28px; }
  .ab-hub .ab-hub-contact-panel { gap: 30px; grid-template-columns: 1.1fr 1fr; }
  .ab-hub .ab-hub-contact-panel h2 { font-size: 33px; }
  .ab-hub .ab-hub-mobile-actions:not([hidden]) {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    display: grid; grid-template-columns: .8fr 1.5fr; gap: 10px;
    padding: 10px 18px calc(10px + env(safe-area-inset-bottom,0px));
    background: var(--hub-paper); border-top: 1px solid var(--hub-line);
    box-shadow: 0 -6px 24px rgba(39,36,33,.1);
  }
  .ab-hub .ab-hub-mobile-actions a { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 12px; border: 1px solid var(--hub-ink); border-radius: 5px; font-size: 12px; line-height: 1.4; font-weight: 600; text-decoration: none; }
  .ab-hub .ab-hub-mobile-actions .ab-hub-mobile-project { background: var(--hub-ink); color: var(--hub-paper); }
  body.has-modal-open .ab-hub-mobile-actions,
  body.modal-open .ab-hub-mobile-actions,
  body:has(.wp-block-navigation__responsive-container.is-menu-open) .ab-hub-mobile-actions,
  body:has([role="dialog"][aria-modal="true"]:not([hidden])) .ab-hub-mobile-actions { display: none !important; }
}

@media (max-width: 979px) {
  .ab-hub .ab-hub-approche--dark .ab-hub-workshop-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .ab-hub .ab-hub-approche--dark .ab-hub-workshop-copy {
    grid-column: 1;
    grid-row: 1;
  }
  .ab-hub .ab-hub-approche--dark .ab-hub-workshop-visual {
    grid-column: 1;
    grid-row: 2;
    padding-right: 0;
  }
  .ab-hub .ab-hub-approche--dark .ab-hub-workshop-photo img {
    height: min(70vw,560px);
    aspect-ratio: auto;
  }
  .ab-hub .ab-hub-approche--dark .ab-hub-workshop-copy h2 {
    max-width: 15ch;
  }
}

@media (max-width: 639px) {
  .ab-hub.ab-hub { --hub-gutter: 20px; font-size: 16px; }
  .ab-hub .ab-hub-section { padding-block: 58px; }
  .ab-hub .ab-hub-hero { padding-top: calc(var(--ab-hub-top-clearance) + 14px); padding-bottom: 30px; }
  .ab-hub .ab-hub-breadcrumb { margin-bottom: 23px; font-size: 11px; gap: 8px; }
  .ab-hub .ab-hub-hero-copy { padding: 0; }
  .ab-hub h1.ab-hub-title { font-size: clamp(37px,9.5vw,54px); }
  .ab-hub .ab-hub-title-sub { margin-top: 14px; font-size: .62em; }
  .ab-hub .ab-hub-hero-copy .ab-hub-eyebrow { font-size: 10px; }
  .ab-hub .ab-hub-standfirst { font-size: 18px; line-height: 1.55; margin-top: 22px; }
  .ab-hub .ab-hub-hero-description { font-size: 14px; line-height: 1.8; }
  .ab-hub .ab-hub-actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
  .ab-hub .ab-hub-actions .wp-block-button__link { width: 100%; }
  .ab-hub .ab-hub-hero-contact { flex-direction: column; gap: 6px; margin-top: 15px; }
  .ab-hub .ab-hub-hero-contact a { min-height: 44px; display: inline-flex; align-items: center; align-self: flex-start; }
  .ab-hub .ab-hub-hero-photo img { aspect-ratio: 4/3; object-position: 40% 50%; }
  .ab-hub .ab-hub-photo-label { bottom: 12px; right: 12px; padding: 12px 15px; }
  .ab-hub .ab-hub-photo-label .ab-hub-eyebrow { font-size: 8px; }
  .ab-hub .ab-hub-photo-label p:not(.ab-hub-eyebrow) { font-size: 14px; }
  .ab-hub .ab-hub-proof { padding: 0 0 32px; }
  .ab-hub .ab-hub-proof-grid { grid-template-columns: 1fr; gap: 12px; }
  .ab-hub .ab-hub-proof-card { padding: 23px; }
  .ab-hub .ab-hub-proof-card .ab-hub-eyebrow { font-size: 10px; margin-bottom: 10px; }
  .ab-hub .ab-hub-proof-card h3 { font-size: 27px; }
  .ab-hub .ab-hub-proof-card h3 br { display: none; }
  .ab-hub .ab-hub-proof-card > p:not(.ab-hub-eyebrow) { margin-top: 12px; }
  .ab-hub .ab-hub-proof-card .ab-hub-proof-footer,
  .ab-hub .ab-hub-proof-card > .ab-hub-text-link { padding-top: 10px; }
  .ab-hub .ab-hub-certification { flex-wrap: nowrap; gap: 18px; padding-top: 12px; }
  .ab-hub .ab-hub-bda-logo { width: 76px; flex-basis: 76px; }
  .ab-hub .ab-hub-jump { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 16px; padding-block: 10px; }
  .ab-hub .ab-hub-jump a { justify-content: flex-start; min-height: 44px; font-size: 12px; white-space: normal; }
  .ab-hub .ab-hub-section-intro { grid-template-columns: 1fr; gap: 22px; margin-bottom: 27px; }
  .ab-hub h2 { font-size: 33px; }
  .ab-hub .ab-hub-intro-text { font-size: 15px; }
  .ab-hub .ab-hub-services-grid { grid-template-columns: 1fr; gap: 22px; }
  .ab-hub .ab-hub-service-photo img { aspect-ratio: 1.72; }
  .ab-hub .ab-hub-service-body { padding: 25px; }
  .ab-hub .ab-hub-service-body h3 { font-size: 26px; }
  .ab-hub .ab-hub-card-link { padding-top: 17px; }
  .ab-hub .ab-hub-service-card--guide::before { height: 84px; margin: 22px 25px 0; }
  .ab-hub .ab-hub-service-card--guide .ab-hub-service-body { padding: 22px 25px 28px; }
  .ab-hub .ab-hub-service-card--guide h3 { font-size: 34px; }
  .ab-hub .ab-hub-workshop-grid { grid-template-columns: 1fr; gap: 33px; }
  .ab-hub .ab-hub-workshop-visual { padding-right: 15px; }
  .ab-hub .ab-hub-workshop-photo img { aspect-ratio: 4/5; object-position: 50% 45%; }
  .ab-hub .ab-hub-workshop-stamp { top: 24px; }
  .ab-hub .ab-hub-workshop-copy p { font-size: 15px; }
  .ab-hub .ab-hub-audience { margin-top: 22px; padding-left: 18px; padding-top: 6px; }
  .ab-hub .ab-hub-process { margin-top: 43px; padding-top: 30px; }
  .ab-hub .ab-hub-process-grid { grid-template-columns: 1fr; gap: 27px; margin-top: 26px; }
  .ab-hub .ab-hub-step-top { margin-bottom: 13px; padding-bottom: 10px; }
  .ab-hub .ab-hub-step h3 { font-size: 22px; }
  .ab-hub .ab-hub-project-heading { grid-template-columns: 1fr; gap: 24px; margin-block: 23px 27px; }
  .ab-hub .ab-hub-project-heading h2 { font-size: 37px; }
  .ab-hub .ab-hub-project-meta .ab-hub-eyebrow { font-size: 10px; margin-bottom: 12px; }
  .ab-hub .ab-hub-project-panorama img { aspect-ratio: 1.65; object-position: 20% 50%; }
  .ab-hub .ab-hub-project-story { grid-template-columns: 1fr; gap: 25px; margin-top: 28px; }
  .ab-hub .ab-hub-project-copy p { font-size: 15px; }
  .ab-hub .ab-hub-project-facts { grid-template-columns: 1fr; gap: 17px; }
  .ab-hub .ab-hub-project-fact { padding-left: 20px; padding-bottom: 5px; }
  .ab-hub .ab-hub-project-fact .ab-hub-fact-value { font-size: 32px; }
  .ab-hub .ab-hub-project-gallery { grid-template-columns: 1fr; gap: 25px; margin-top: 30px; }
  .ab-hub .ab-hub-project-gallery img { aspect-ratio: auto; height: auto; }
  .ab-hub .ab-hub-alpin-grid { grid-template-columns: 1fr; gap: 30px; }
  .ab-hub .ab-hub-alpin-copy p { font-size: 15px; }
  .ab-hub .ab-hub-local-card { padding: 27px; }
  .ab-hub .ab-hub-local-card h3 { font-size: 31px; }
  .ab-hub .ab-hub-faq-intro p:last-child { font-size: 15px; }
  .ab-hub .ab-hub-faq-item summary { font-size: 15px; padding-block: 22px; }
  .ab-hub .ab-hub-faq-item > p { padding-right: 10px; font-size: 14px; }
  .ab-hub .ab-hub-contact { padding-top: 0; padding-bottom: 35px; }
  .ab-hub .ab-hub-related { grid-template-columns: 1fr; gap: 8px; padding: 36px 0; }
  .ab-hub .ab-hub-related-intro { margin-bottom: 13px; }
  .ab-hub .ab-hub-related > .ab-hub-text-link { padding-block: 4px; }
  .ab-hub .ab-hub-contact-panel { grid-template-columns: 1fr; gap: 28px; padding: 28px 23px; }
  .ab-hub .ab-hub-contact-panel h2 { font-size: 31px; }
  .ab-hub .ab-hub-contact-actions { min-width: 0; }
}
/* 320px et textes agrandis : aucune largeur minimale bloquante. */

@media (max-width: 639px) {
  .ab-hub .ab-hub-approche--dark .ab-hub-workshop-photo img {
    height: 58svh;
    min-height: 340px;
    max-height: 540px;
  }
  .ab-hub .ab-hub-approche--dark .ab-hub-workshop-copy h2 {
    max-width: 14ch;
    font-size: clamp(35px,10.5vw,52px);
  }
}

@media (max-width: 359px) {
  .ab-hub.ab-hub { --hub-gutter: 16px; }
  .ab-hub h1.ab-hub-title { font-size: 36px; }
  .ab-hub .ab-hub-service-body { padding: 22px; }
  .ab-hub .ab-hub-mobile-actions:not([hidden]) { padding-inline: 12px; gap: 8px; grid-template-columns: .7fr 1.6fr; }
  .ab-hub .ab-hub-mobile-actions a { font-size: 11px; padding-inline: 7px; }
}
/* Ã‰diteur Gutenberg : pas de barre fixe ni de dÃ©calage du header de l'admin. */
.editor-styles-wrapper .ab-hub.ab-hub { --ab-hub-top-clearance: 0px; width: 100% !important; margin-inline: 0 !important; }
.editor-styles-wrapper .ab-hub .ab-hub-jumpbar { position: static; }
.editor-styles-wrapper .ab-hub .ab-hub-mobile-actions { display: none !important; }
.editor-styles-wrapper .ab-hub .ab-hub-card-link a::after { content: none; }
.editor-styles-wrapper .ab-hub :is(.ab-hub-proof-grid,.ab-hub-services-grid,.ab-hub-hero-grid,.ab-hub-workshop-grid,.ab-hub-process-grid,.ab-hub-project-heading,.ab-hub-project-story,.ab-hub-project-gallery,.ab-hub-alpin-grid,.ab-hub-faq-grid,.ab-hub-contact-panel) > .block-editor-inner-blocks,
.editor-styles-wrapper .ab-hub :is(.ab-hub-proof-grid,.ab-hub-services-grid,.ab-hub-hero-grid,.ab-hub-workshop-grid,.ab-hub-process-grid,.ab-hub-project-heading,.ab-hub-project-story,.ab-hub-project-gallery,.ab-hub-alpin-grid,.ab-hub-faq-grid,.ab-hub-contact-panel) > .block-editor-inner-blocks > .block-editor-block-list__layout { display: contents; }
@media (prefers-reduced-motion:reduce) {
  .ab-hub *, .ab-hub *::before, .ab-hub *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  .ab-hub.ab-hub { --ab-hub-top-clearance: 0px; color: #000; background: #fff; }
  .ab-hub .ab-hub-jumpbar, .ab-hub .ab-hub-mobile-actions { display: none !important; }
  .ab-hub .ab-hub-section { padding-block: 25px; }
  .ab-hub .ab-hub-realisation,
  .ab-hub .ab-hub-approche--dark { background: #fff; color: #000; }
  .ab-hub .ab-hub-realisation p,
  .ab-hub .ab-hub-realisation .ab-hub-eyebrow,
  .ab-hub .ab-hub-approche--dark p,
  .ab-hub .ab-hub-approche--dark h2,
  .ab-hub .ab-hub-approche--dark h3,
  .ab-hub .ab-hub-approche--dark .ab-hub-eyebrow { color: #000 !important; }
  .ab-hub .ab-hub-service-card, .ab-hub .ab-hub-proof-card { break-inside: avoid; }
}

/* ---- assets/css/expertise-bois.css ---- */
/* Atelier Borealis — Expertise bois.
 * Charger APRÈS les styles du thème. Toutes les règles sont propres à cette page.
 * Le thème garde la main sur son header et ses polices.
 */
.ab-about.ab-expertise {
  --expertise-accent: #aa897e;
  --expertise-dark: var(--ab-dark, #292929);
  --expertise-paper: #f6f0e9;
  --expertise-ink: #272523;
  --expertise-wide: 1320px;
  --expertise-gutter: clamp(20px, 4vw, 64px);
  --expertise-radius: 12px;
  --expertise-image-position: 50% 50%;
  --expertise-fallback: url("https://atelierborealis.eu/wp-content/uploads/2025/04/40A69A5D-2589-4551-B43F-28608E28BDD1-768x512.jpg");
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: var(--expertise-dark);
  color: #f6f0e9;
}
.ab-expertise, .ab-expertise *, .ab-expertise *::before, .ab-expertise *::after {
  box-sizing: border-box;
}
/* Retirer seulement les contraintes de lecture qui entourent cette page. */
:where(.ab-reading, .ab-reading-inner, .wp-block-post-content):has(.ab-expertise) {
  max-width: none;
  padding-inline: 0;
}
.ab-expertise .ab-expertise-container {
  width: min(calc(100% - 2 * var(--expertise-gutter)), var(--expertise-wide));
  max-width: none;
  margin-inline: auto;
}
.ab-expertise :is(.ab-expertise-title, .ab-expertise-heading, .ab-expertise-card__title) {
  display: block;
  max-width: none;
  padding: 0;
  text-transform: none;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}
/* Neutralise localement les frises de titres appliquées par le thème. */
.ab-expertise :is(.ab-expertise-heading, .ab-expertise-card__title)::before,
.ab-expertise :is(.ab-expertise-heading, .ab-expertise-card__title)::after {
  content: none;
  display: none;
}
.ab-expertise a { color: inherit; }
.ab-expertise a:focus-visible, .ab-expertise button:focus-visible {
  outline: 3px solid var(--expertise-accent);
  outline-offset: 5px;
}
/* Visuels d'ouverture conservés : pas de recadrage supplémentaire. */
.ab-expertise .ab-expertise-hero {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
}
.ab-expertise .ab-expertise-hero figure { margin: 0; }
.ab-expertise .ab-expertise-hero img { display: block; width: 100%; height: auto; min-height: 650px; }
.ab-expertise .ab-about-hero-desktop { display: block; }
.ab-expertise .ab-about-hero-mobile { display: none; }

/* Introduction indépendante de la liste : plus de colonne latérale à 35 %. */
.ab-expertise .ab-expertise-intro { padding-block: clamp(28px, 5vw, 72px); }
.ab-expertise .ab-expertise-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 32px;
  font-size: .85rem;
  line-height: 1.6;
  color: #ded5cd;
}
.ab-expertise .ab-expertise-breadcrumb a { text-underline-offset: 4px; }
.ab-expertise .ab-expertise-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(28px, 5vw, 80px);
  margin: 0;
}
.ab-expertise .ab-expertise-intro-copy { min-width: 0; margin: 0; }
.ab-expertise .ab-expertise-eyebrow {
  margin: 0 0 12px;
  color: var(--expertise-accent);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.7;
  text-transform: uppercase;
}
.ab-expertise .ab-expertise-title {
  margin: 0 0 24px;
  color: inherit;
  font-size: clamp(2.75rem, 5.2vw, 5.5rem);
  line-height: 1.06;
  font-weight: 400;
}
.ab-expertise .ab-expertise-title strong { font-weight: 750; }
.ab-expertise .ab-expertise-lead {
  max-width: 56ch;
  margin: 0;
  color: #e1d8d1;
  font-size: clamp(1.05rem, 1.3vw, 1.2rem);
  line-height: 1.75;
}
.ab-expertise .ab-expertise-intro-photo {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: var(--expertise-radius);
  aspect-ratio: 4 / 3;
}
.ab-expertise .ab-expertise-intro-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ab-expertise :is(.ab-expertise-intro-actions, .ab-expertise-outro-actions) {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 28px;
}
.ab-expertise .ab-expertise-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 48px;
  padding: 14px 22px;
  border: 1px solid var(--expertise-accent);
  border-radius: 4px;
  background: var(--expertise-accent);
  color: #201d1b;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  text-align: center;
}
.ab-expertise .ab-expertise-button--outline .wp-block-button__link {
  background: transparent;
  color: inherit;
}

/* Boucle native WordPress. */
.ab-expertise .ab-expertise-articles { margin: 0; padding: 0; max-width: none; }
.ab-expertise .ab-expertise-list-heading { padding-block: 24px 28px; }
.ab-expertise .ab-expertise-heading {
  margin: 0;
  color: inherit;
  font-size: clamp(1.85rem, 3vw, 3rem);
  line-height: 1.18;
}
.ab-expertise .ab-expertise-swipe-hint { display: none; }
.ab-expertise .ab-expertise-query { margin: 0; max-width: none; }
.ab-expertise .ab-expertise-feed {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 28px;
  width: min(calc(100% - 2 * var(--expertise-gutter)), var(--expertise-wide));
  max-width: none;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.ab-expertise .ab-expertise-feed > li {
  display: flex;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ab-expertise .ab-expertise-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: var(--expertise-radius);
  background: var(--expertise-paper);
  color: var(--expertise-ink);
  isolation: isolate;
}
/* Le cadre existe même quand l'article n'a pas d'image mise en avant.
   Le fond de secours est une photo décorative commune, pas une photo du sujet. */
.ab-expertise .ab-expertise-card__media {
  position: relative;
  flex: none;
  width: 100%;
  max-width: none;
  aspect-ratio: 16 / 10;
  margin: 0;
  overflow: hidden;
  background-color: #67564c;
  background-image: var(--expertise-fallback);
  background-size: cover;
  background-position: var(--expertise-image-position);
}
.ab-expertise .ab-expertise-card__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
}
.ab-expertise .ab-expertise-card__image img {
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: var(--expertise-image-position);
  transition: transform .45s ease;
}
.ab-expertise .ab-expertise-card__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: clamp(22px, 2.1vw, 32px);
}
.ab-expertise .ab-expertise-card__body > * { margin-block: 0; }
.ab-expertise .ab-expertise-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin: 0;
  font-size: .75rem;
  line-height: 1.5;
}
.ab-expertise .ab-expertise-card__meta > * { margin: 0; }
.ab-expertise .ab-expertise-card__label { font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.ab-expertise .ab-expertise-card__date { color: #62594f; }
.ab-expertise .ab-expertise-card__title {
  margin: 0;
  color: inherit;
  font-size: clamp(1.25rem, 1.6vw, 1.65rem);
  font-weight: 700;
  line-height: 1.3;
}
.ab-expertise .ab-expertise-card__title a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: .17em;
  text-decoration-thickness: 1px;
}
.ab-expertise .ab-expertise-card__title a:hover { text-decoration: underline; }
.ab-expertise .ab-expertise-card__excerpt {
  color: #524a43;
  font-size: .96rem;
  line-height: 1.65;
}
.ab-expertise .ab-expertise-card__excerpt p { margin: 0; }
.ab-expertise .ab-expertise-card__excerpt .wp-block-post-excerpt__more-link { display: none; }
.ab-expertise .ab-expertise-card__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: auto 0 0;
  padding-top: 8px;
}
.ab-expertise .ab-expertise-card__link {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  min-height: 48px;
  padding: 11px 18px;
  border: 1px solid currentColor;
  border-radius: 4px;
  color: inherit;
  background: transparent;
  font-size: .92rem;
  font-weight: 750;
  line-height: 1.5;
  text-decoration: none;
}
.ab-expertise .ab-expertise-card__link::after { content: "↗"; font-size: 1.2em; }
.ab-expertise :is(.ab-expertise-card__count, .ab-expertise-card__next) { display: none; }
.ab-expertise .ab-expertise-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  width: min(calc(100% - 2 * var(--expertise-gutter)), var(--expertise-wide));
  margin: 36px auto 0;
  padding-block: 10px;
}
.ab-expertise .ab-expertise-pagination .wp-block-query-pagination-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
}
.ab-expertise .ab-expertise-pagination :is(a, .page-numbers) {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 10px 14px;
  border: 1px solid rgb(246 240 233 / 35%);
  border-radius: 4px;
  font-size: .92rem;
  text-decoration: none;
}
.ab-expertise .ab-expertise-pagination .current { background: var(--expertise-paper); color: var(--expertise-ink); }
.ab-expertise .ab-expertise-empty { padding: 32px var(--expertise-gutter); }
.ab-expertise .ab-expertise-outro {
  padding-block: clamp(48px, 7vw, 96px);
  border-top: 1px solid rgb(246 240 233 / 18%);
  margin-block: 64px 0;
  padding: 50px;
}
.ab-expertise .ab-expertise-outro > p:not(.ab-expertise-eyebrow) { max-width: 64ch; line-height: 1.7; }
html.ab-expertise-page { scroll-padding-block-start: var(--ab-expertise-top-offset, 0px); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .ab-expertise .ab-expertise-card:hover .ab-expertise-card__image img { transform: scale(1.035); }
}
@media (min-width: 980px) and (max-width: 1199px) {
  .ab-expertise .ab-expertise-feed { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mobile / tablette : une carte occupe au minimum la hauteur disponible.
 * Pas de scroll imbriqué. Le texte reste dans le flux, l'image passe derrière.
 * 100svh est stable quand les barres du navigateur apparaissent/disparaissent.
 */
@media (max-width: 979px) {
  .ab-expertise .ab-about-hero-desktop { display: none; }
  .ab-expertise .ab-about-hero-mobile { display: block; }
  .ab-expertise .ab-expertise-intro-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ab-expertise .ab-expertise-intro-photo { aspect-ratio: 16 / 7; }
  .ab-expertise .ab-expertise-list-heading { padding-block: 24px; }
  .ab-expertise .ab-expertise-swipe-hint {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 16px 0 0;
    color: #e1d8d1;
    font-size: .85rem;
    line-height: 1.6;
  }
  .ab-expertise .ab-expertise-feed {
    display: block;
    width: 100%;
    margin: 0;
  }
  .ab-expertise .ab-expertise-feed > li { display: block; scroll-snap-align: start; scroll-margin: 0; }
  .ab-expertise .ab-expertise-card {
    justify-content: flex-end;
    min-height: calc(100vh - var(--ab-expertise-top-offset, 0px));
    min-height: calc(100svh - var(--ab-expertise-top-offset, 0px));
    height: auto;
    border: 0;
    border-radius: 0;
    background: #292929;
    color: #fff;
  }
  .ab-expertise .ab-expertise-card__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
  }
  /* Un voile général + un panneau dégradé sous TOUT le texte, même très long. */
  .ab-expertise .ab-expertise-card::after {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgb(12 10 9 / 14%), rgb(12 10 9 / 12%) 30%, rgb(12 10 9 / 38%));
  }
  .ab-expertise .ab-expertise-card__body {
    flex: 0 0 auto;
    gap: 16px;
    margin-top: 96px;
    padding: 64px max(var(--expertise-gutter), env(safe-area-inset-right, 0px)) max(28px, env(safe-area-inset-bottom, 0px)) max(var(--expertise-gutter), env(safe-area-inset-left, 0px));
    background: linear-gradient(180deg, transparent 0, rgb(12 10 9 / 82%) 48px, rgb(12 10 9 / 95%) 100%);
  }
  .ab-expertise .ab-expertise-card__meta { max-width: 66ch; }
  .ab-expertise .ab-expertise-card__label { color: #fff; }
  .ab-expertise .ab-expertise-card__date { color: #eee4db; }
  .ab-expertise .ab-expertise-card__title {
    max-width: 32ch;
    color: #fff;
    font-size: clamp(1.5rem, 4.8vw, 2.6rem);
    line-height: 1.18;
    /* Pas de line-clamp sur les titres. */
  }
  .ab-expertise .ab-expertise-card__excerpt {
    max-width: 65ch;
    color: #f2eae3;
    font-size: 1rem;
    line-height: 1.55;
  }
  .ab-expertise .ab-expertise-card__excerpt .wp-block-post-excerpt__excerpt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
  .ab-expertise .ab-expertise-card__actions { margin-top: 0; max-width: 65ch; padding-top: 4px; }
  .ab-expertise .ab-expertise-card__link { background: #f6f0e9; border-color: #f6f0e9; color: #201d1b; }
  .ab-expertise .ab-expertise-card__count {
    position: absolute;
    z-index: 2;
    top: 22px;
    right: max(var(--expertise-gutter), env(safe-area-inset-right, 0px));
    display: block;
    padding: 7px 12px;
    border: 1px solid rgb(255 255 255 / 40%);
    border-radius: 999px;
    background: rgb(12 10 9 / 70%);
    color: #fff;
    font-size: .8rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: .04em;
    line-height: 1.5;
    pointer-events: none;
  }
  .ab-expertise .ab-expertise-card__next {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 48px;
    min-height: 48px;
    margin: 0;
    padding: 10px;
    border: 1px solid rgb(255 255 255 / 65%);
    border-radius: 50%;
    background: rgb(12 10 9 / 30%);
    color: #fff;
    font: inherit;
    font-size: 1.4rem;
    cursor: pointer;
  }
  .ab-expertise .ab-expertise-outro { margin-top: 40px; }
  .ab-expertise .ab-expertise-outro-actions .wp-block-button { width: 100%; }
  .ab-expertise .ab-expertise-outro-actions .wp-block-button__link { width: 100%; }
  html.ab-expertise-snap { scroll-snap-type: y proximity; }
  .ab-expertise :is(.ab-expertise-hero, .ab-expertise-intro, .ab-expertise-list-heading, .ab-expertise-outro, .ab-expertise-pagination) {
    scroll-snap-align: start;
    scroll-margin: 0;
  }
  /* L'éditeur doit rester éditable : pas de cartes plein écran dans son iframe. */
  .editor-styles-wrapper .ab-expertise .ab-expertise-card { min-height: 0; }
  .editor-styles-wrapper .ab-expertise .ab-expertise-card__media { position: relative; inset: auto; height: auto; aspect-ratio: 16 / 10; }
  .editor-styles-wrapper .ab-expertise .ab-expertise-card__body { margin-top: 0; padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  html.ab-expertise-snap { scroll-snap-type: none; }
  .ab-expertise *, .ab-expertise *::before, .ab-expertise *::after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

.ab-expertise .ab-expertise-card__image[hidden] { display: none; }

/* =========================================================
   ARTICLES « EXPERTISE BOIS » — EN-TÊTE MUTUALISÉ
   Réutilise volontairement les classes et variables de la page
   /expertise-bois/ : même grille, même palette, mêmes boutons.
   ========================================================= */
.ab-expertise.ab-expertise-article-head {
  width: 100%;
  max-width: none;
  margin: 0;
  border-bottom: 1px solid rgb(246 240 233 / 14%);
}
.ab-expertise-article-head .ab-expertise-intro {
  padding-block: clamp(30px, 4.5vw, 62px) clamp(46px, 6vw, 88px);
}
.ab-expertise-article-head .ab-expertise-breadcrumb {
  margin-bottom: clamp(26px, 3vw, 42px);
}
.ab-expertise-article-head .ab-expertise-article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin: 0 0 15px;
  color: #ded5cd;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.5;
  text-transform: uppercase;
}
.ab-expertise-article-head .ab-expertise-article-meta__label {
  color: var(--expertise-accent);
}
.ab-expertise-article-head .ab-expertise-article-meta__date {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #ded5cd;
  font-variant-numeric: tabular-nums;
}
.ab-expertise-article-head .ab-expertise-article-meta__date::before {
  content: "";
  width: 26px;
  height: 1px;
  background: rgb(246 240 233 / 42%);
}
.ab-expertise-article-head .ab-expertise-eyebrow {
  margin-bottom: 14px;
}
.ab-expertise-article-head .ab-expertise-article-title {
  max-width: 19ch;
  margin-bottom: 22px;
  font-size: clamp(2.45rem, 4.4vw, 4.9rem);
  line-height: 1.03;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.ab-expertise-article-head .ab-expertise-lead {
  max-width: 60ch;
}
.ab-expertise-article-head .ab-expertise-article-photo {
  align-self: center;
  background: #201e1d;
}
.ab-expertise-article-head .ab-expertise-article-photo img {
  object-position: 50% 50%;
}
.ab-expertise-article-head .ab-expertise-article-photo--contain {
  background: #fff;
}
.ab-expertise-article-head .ab-expertise-article-photo--contain img {
  object-fit: contain;
  padding: clamp(20px, 4vw, 52px);
}

@media (max-width: 979px) {
  .ab-expertise-article-head .ab-expertise-intro {
    padding-block: 24px 48px;
  }
  .ab-expertise-article-head .ab-expertise-article-title {
    max-width: 22ch;
    font-size: clamp(2.15rem, 8.2vw, 3.8rem);
    line-height: 1.06;
  }
  /* La page hub utilise un panorama mobile ; les articles gardent un vrai visuel éditorial. */
  .ab-expertise-article-head .ab-expertise-intro-photo {
    aspect-ratio: 16 / 10;
  }
  .ab-expertise-article-head .ab-expertise-article-photo--contain {
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 620px) {
  .ab-expertise-article-head .ab-expertise-article-meta {
    gap: 6px 10px;
  }
  .ab-expertise-article-head .ab-expertise-article-meta__date {
    gap: 10px;
  }
  .ab-expertise-article-head .ab-expertise-article-meta__date::before {
    width: 18px;
  }
  .ab-expertise-article-head .ab-expertise-intro-actions {
    display: grid;
  }
  .ab-expertise-article-head .ab-expertise-intro-actions .wp-block-button,
  .ab-expertise-article-head .ab-expertise-intro-actions .wp-block-button__link {
    width: 100%;
  }
}

/* ---- assets/css/expert-article.css ---- */
/* Atelier Borealis — Article Expertise Bois */
.ab-expert-article {
  --ea-accent: #aa897e;
  --ea-dark: var(--ab-dark, #292929);
  --ea-paper: #f3ede7;
  --ea-paper-2: #e8ddd5;
  --ea-ink: #282522;
  --ea-muted: #6e655f;
  --ea-radius: 14px;
  --ea-wide: 1320px;
  --ea-reading: 780px;
  --ea-gutter: clamp(20px, 4vw, 64px);
  max-width: none;
  margin: 0;
  color: var(--ea-ink);
  background: var(--ea-paper);
}
.ab-expert-article, .ab-expert-article *, .ab-expert-article *::before, .ab-expert-article *::after { box-sizing: border-box; }
:where(.wp-block-post-content):has(.ab-expert-article) { max-width: none; padding-inline: 0; }
.ab-expert-article a { color: inherit; text-underline-offset: 4px; }
.ab-expert-article img { display: block; max-width: 100%; }
.ab-expert-article :is(h2,h3) { text-wrap: balance; }
.ab-expert-article :is(h2,h3)::before, .ab-expert-article :is(h2,h3)::after { content: none; display: none; }
.ab-expert-article :is(p,li) { text-wrap: pretty; }

.ab-expert-article__intro {
  width: min(calc(100% - 2 * var(--ea-gutter)), var(--ea-wide));
  padding: clamp(42px, 7vw, 100px) 0 clamp(30px, 5vw, 70px);
}
.ab-expert-article__eyebrow,
.ab-expert-article__kicker {
  margin: 0 0 14px;
  color: var(--ea-accent);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.5;
  text-transform: uppercase;
}
.ab-expert-article__lead {
  max-width: 900px;
  margin: 0;
  font-size: clamp(1.35rem, 2.4vw, 2.25rem);
  line-height: 1.35;
}
.ab-expert-article__actions { gap: 14px; margin-top: 30px; }
.ab-expert-article__actions .wp-block-button__link,
.ab-expert-article__location .wp-block-button__link {
  min-height: 48px;
  padding: 13px 20px;
  border: 1px solid var(--ea-dark);
  border-radius: 4px;
  background: var(--ea-dark);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.ab-expert-article__actions .is-style-outline .wp-block-button__link,
.ab-expert-article__location .is-style-outline .wp-block-button__link { background: transparent; color: var(--ea-dark); }

.ab-expert-article__hero { position: relative; width: 100%; max-width: none; margin: 0; background: var(--ea-dark); }
.ab-expert-article__hero img { width: 100%; min-height: 380px; max-height: 680px; object-fit: cover; object-position: center; }
.ab-expert-article__hero figcaption { width: min(calc(100% - 2 * var(--ea-gutter)), var(--ea-wide)); margin: 0 auto; padding: 10px 0 18px; color: #ddd3cc; font-size: .78rem; }

.ab-expert-article__quickfacts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: min(calc(100% - 2 * var(--ea-gutter)), var(--ea-wide));
  margin: clamp(28px, 5vw, 70px) auto;
  border: 1px solid rgb(40 37 34 / 12%);
  border-radius: var(--ea-radius);
  overflow: hidden;
  background: #fff9f4;
}
.ab-expert-article__fact { min-width: 0; padding: clamp(22px, 3vw, 34px); }
.ab-expert-article__fact + .ab-expert-article__fact { border-left: 1px solid rgb(40 37 34 / 12%); }
.ab-expert-article__fact p { margin: 0; }
.ab-expert-article__fact-value { margin-bottom: 8px !important; color: var(--ea-dark); font-size: clamp(1.25rem, 2vw, 1.8rem); line-height: 1.15; }
.ab-expert-article__fact p:last-child { color: var(--ea-muted); font-size: .9rem; line-height: 1.5; }

.ab-expert-article__layout {
  display: grid;
  grid-template-columns: 250px minmax(0, var(--ea-reading));
  justify-content: center;
  align-items: start;
  gap: clamp(42px, 6vw, 96px);
  width: min(calc(100% - 2 * var(--ea-gutter)), var(--ea-wide));
  margin: 0 auto;
  padding-bottom: clamp(60px, 8vw, 120px);
}
.ab-expert-article__toc {
  position: sticky;
  top: calc(var(--ab-header-h, 96px) + 28px);
  padding: 22px;
  border-left: 3px solid var(--ea-accent);
  background: rgb(255 255 255 / 34%);
}
.ab-expert-article__toc-title { margin: 0 0 12px; }
.ab-expert-article__toc ul { display: grid; gap: 10px; margin: 0; padding-left: 18px; }
.ab-expert-article__toc li { color: var(--ea-muted); font-size: .88rem; line-height: 1.45; }
.ab-expert-article__toc a { text-decoration: none; }
.ab-expert-article__toc a:hover { text-decoration: underline; }

.ab-expert-article__content { width: 100%; max-width: var(--ea-reading); }
.ab-expert-article__content > h2 { margin: clamp(64px, 8vw, 100px) 0 22px; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.08; }
.ab-expert-article__content > h2:first-child { margin-top: 0; }
.ab-expert-article__content > h3 { margin: 42px 0 14px; font-size: clamp(1.35rem, 2.2vw, 1.9rem); }
.ab-expert-article__content > p,
.ab-expert-article__content > ul { margin: 0 0 22px; font-size: clamp(1.02rem, 1.15vw, 1.12rem); line-height: 1.8; }
.ab-expert-article__content ul { padding-left: 1.2em; }
.ab-expert-article__content li + li { margin-top: 9px; }

.ab-expert-article__callout,
.ab-expert-article__location,
.ab-expert-article__related {
  margin: clamp(36px, 5vw, 58px) 0;
  padding: clamp(26px, 4vw, 42px);
  border-radius: var(--ea-radius);
}
.ab-expert-article__callout { background: var(--ea-dark); color: #fff; }
.ab-expert-article__callout h3 { margin: 0 0 14px; color: #fff; font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: 1.15; }
.ab-expert-article__callout p:last-child { margin: 0; color: #e5ddd8; line-height: 1.7; }
.ab-expert-article__location { border: 1px solid rgb(40 37 34 / 14%); background: #fff9f4; }
.ab-expert-article__location h3 { margin: 0 0 10px; font-size: 1.45rem; }
.ab-expert-article__location p:not(.ab-expert-article__kicker) { margin: 0 0 20px; }

.ab-expert-article__cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; margin: 32px 0 0; }
.ab-expert-article__card { min-width: 0; padding: 26px; border: 1px solid rgb(40 37 34 / 12%); border-radius: var(--ea-radius); background: #fff9f4; }
.ab-expert-article__card-number { margin: 0 0 28px; color: var(--ea-accent); font-weight: 800; font-size: .82rem; letter-spacing: .1em; }
.ab-expert-article__card h3 { margin: 0 0 16px; font-size: 1.25rem; line-height: 1.25; }
.ab-expert-article__card :is(p,ul) { margin: 0; color: var(--ea-muted); font-size: .92rem; line-height: 1.65; }
.ab-expert-article__card ul { padding-left: 1.1em; }

.ab-expert-article__expertise { margin: 32px 0 40px; gap: 16px; }
.ab-expert-article__expertise .wp-block-column { padding: 22px 0 22px 20px; border-left: 3px solid var(--ea-accent); }
.ab-expert-article__expertise h3 { margin: 0 0 8px; font-size: 1.2rem; }
.ab-expert-article__expertise p { margin: 0; color: var(--ea-muted); line-height: 1.6; }

.ab-expert-article__gallery { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px !important; margin: 42px 0 !important; }
.ab-expert-article__gallery .wp-block-image { width: 100% !important; margin: 0 !important; overflow: hidden; border-radius: 8px; aspect-ratio: 4 / 3; }
.ab-expert-article__gallery .wp-block-image:nth-child(2),
.ab-expert-article__gallery .wp-block-image:nth-child(3) { aspect-ratio: 3 / 4; }
.ab-expert-article__gallery img { width: 100%; height: 100%; object-fit: cover; }

.ab-expert-article__quote { width: calc(100% + min(12vw, 180px)); max-width: none; margin: clamp(55px, 8vw, 90px) 0 clamp(55px, 8vw, 90px) min(-6vw, -90px); padding: clamp(36px, 6vw, 70px); border-radius: var(--ea-radius); background: var(--ea-accent); color: #1f1d1b; }
.ab-expert-article__quote .ab-expert-article__kicker { color: #4d3c35; }
.ab-expert-article__quote-text { max-width: 18ch; margin: 0; font-size: clamp(2rem, 4.7vw, 4.4rem); font-weight: 650; line-height: 1.04; }

.ab-expert-article__bda-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin: 32px 0; }
.ab-expert-article__bda-item { padding: 24px; border-radius: 10px; background: var(--ea-paper-2); }
.ab-expert-article__bda-item p { margin: 0; }
.ab-expert-article__bda-label { margin-bottom: 8px !important; font-size: 1.15rem; }
.ab-expert-article__labels { align-items: center; gap: 28px; margin: 32px 0 60px; }
.ab-expert-article__labels .wp-block-column { display: flex; align-items: center; justify-content: center; min-height: 180px; padding: 20px; border: 1px solid rgb(40 37 34 / 12%); border-radius: var(--ea-radius); background: #fff; }
.ab-expert-article__labels figure { margin: 0; }

.ab-expert-article__related { border-top: 1px solid rgb(40 37 34 / 16%); border-bottom: 1px solid rgb(40 37 34 / 16%); border-radius: 0; }
.ab-expert-article__related h2 { margin: 0 0 20px; font-size: clamp(1.8rem, 3vw, 2.5rem); }
.ab-expert-article__related ul { margin: 0; padding-left: 1.2em; }
.ab-expert-article__related li + li { margin-top: 14px; }

@media (max-width: 1100px) {
  .ab-expert-article__quickfacts { grid-template-columns: 1fr 1fr; }
  .ab-expert-article__fact:nth-child(3) { border-left: 0; border-top: 1px solid rgb(40 37 34 / 12%); }
  .ab-expert-article__fact:nth-child(4) { border-top: 1px solid rgb(40 37 34 / 12%); }
  .ab-expert-article__layout { grid-template-columns: minmax(0, var(--ea-reading)); }
  .ab-expert-article__toc { position: static; }
  .ab-expert-article__cards { grid-template-columns: 1fr; }
  .ab-expert-article__quote { width: 100%; margin-left: 0; }
}

@media (max-width: 979px) {
  .ab-expert-article__intro { padding-top: 32px; }
  .ab-expert-article__lead { font-size: clamp(1.3rem, 6vw, 2rem); }
  .ab-expert-article__hero img { min-height: 55svh; max-height: 72svh; }
  .ab-expert-article__quickfacts { margin-top: 20px; }
  .ab-expert-article__layout { gap: 30px; }
  .ab-expert-article__toc { padding: 20px; }
  .ab-expert-article__content > h2 { scroll-margin-top: calc(var(--ab-header-h, 80px) + 20px); }
  .ab-expert-article__gallery { grid-template-columns: 1fr; }
  .ab-expert-article__gallery .wp-block-image,
  .ab-expert-article__gallery .wp-block-image:nth-child(2),
  .ab-expert-article__gallery .wp-block-image:nth-child(3) { aspect-ratio: 4 / 3; }
  .ab-expert-article__bda-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .ab-expert-article__quickfacts { grid-template-columns: 1fr; }
  .ab-expert-article__fact + .ab-expert-article__fact { border-left: 0; border-top: 1px solid rgb(40 37 34 / 12%); }
  .ab-expert-article__actions { display: grid; }
  .ab-expert-article__actions .wp-block-button { width: 100%; }
  .ab-expert-article__actions .wp-block-button__link { width: 100%; }
  .ab-expert-article__expertise { display: grid; }
  .ab-expert-article__labels { display: grid; }
  .ab-expert-article__quote-text { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ab-expert-article { scroll-behavior: auto; }
}

/* ---- assets/css/bois-des-alpes-article.css ---- */
.ab-bda-article{
  --bda-bg:#2f3131;
  --bda-panel:#383a39;
  --bda-panel-2:#424442;
  --bda-text:#f3f0eb;
  --bda-muted:#c8c4be;
  --bda-accent:#aa897e;
  --bda-line:rgba(255,255,255,.13);
  background:var(--bda-bg);
  color:var(--bda-text);
  padding:clamp(42px,6vw,90px) max(22px,calc((100vw - 1380px)/2));
}

.ab-bda-article,
.ab-bda-article *{box-sizing:border-box}

.ab-bda-article a{color:inherit;text-underline-offset:.18em}
.ab-bda-article p,
.ab-bda-article li{font-size:clamp(1rem,.95rem + .18vw,1.08rem);line-height:1.75}
.ab-bda-article h2{
  color:var(--bda-text);
  font-size:clamp(2rem,3vw,3.45rem);
  line-height:1.06;
  letter-spacing:-.035em;
  margin:0 0 24px;
}
.ab-bda-article h3{color:var(--bda-text);line-height:1.16}
.ab-bda-article strong{color:#fff}

.ab-bda-lead{
  max-width:1160px!important;
  margin:0 auto clamp(48px,7vw,90px)!important;
}
.ab-bda-kicker,
.ab-bda-callout-label{
  color:#d7b9ae!important;
  font-size:.74rem!important;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.ab-bda-chapo{
  max-width:980px;
  color:#fff;
  font-size:clamp(1.35rem,2.15vw,2.2rem)!important;
  line-height:1.38!important;
  letter-spacing:-.02em;
}

.ab-bda-keyfacts{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px;
  margin-top:38px;
}
.ab-bda-keyfact{
  background:var(--bda-panel);
  border:1px solid var(--bda-line);
  padding:26px!important;
  min-height:150px;
}
.ab-bda-keyfact-value{
  color:var(--bda-accent)!important;
  font-size:clamp(2.15rem,4vw,4rem)!important;
  font-weight:780;
  line-height:1;
  margin:0 0 16px!important;
}

.ab-bda-layout{
  display:grid;
  grid-template-columns:230px minmax(0,820px);
  gap:clamp(38px,6vw,92px);
  justify-content:center;
}
.ab-bda-summary{
  align-self:start;
  position:sticky;
  top:120px;
  border-left:2px solid var(--bda-accent);
  padding:4px 0 4px 22px!important;
}
.ab-bda-summary-title{font-size:.78rem!important;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fff}
.ab-bda-summary ul{list-style:none;padding:0;margin:18px 0 0}
.ab-bda-summary li{font-size:.9rem;margin:.72rem 0;line-height:1.4}
.ab-bda-summary a{color:var(--bda-muted);text-decoration:none}
.ab-bda-summary a:hover{color:#fff}

.ab-bda-content{max-width:820px!important}
.ab-bda-section{padding:0 0 clamp(64px,8vw,108px);margin:0}
.ab-bda-section p{color:var(--bda-muted)}

.ab-bda-callout{
  margin-top:34px!important;
  padding:clamp(26px,4vw,44px)!important;
  background:var(--bda-accent);
  color:#201f1e;
}
.ab-bda-callout p{color:#201f1e!important}
.ab-bda-callout strong{color:#201f1e}

.ab-bda-timeline{position:relative;margin-top:40px}
.ab-bda-timeline:before{
  content:"";
  position:absolute;
  left:34px;top:12px;bottom:12px;
  width:1px;background:var(--bda-line)
}
.ab-bda-time{
  position:relative;
  padding:4px 0 42px 92px!important;
}
.ab-bda-time-year{
  position:absolute;left:0;top:0;
  width:70px;height:36px;
  display:grid;place-items:center;
  background:var(--bda-accent);
  color:#201f1e!important;
  font-weight:800;
  line-height:1!important;
}
.ab-bda-time h3{margin:.15rem 0 .6rem;font-size:1.45rem}
.ab-bda-time p:last-child{margin-bottom:0}

.ab-bda-chain{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px;
  margin-top:34px;
}
.ab-bda-chain-step{
  background:var(--bda-panel);
  border-top:3px solid var(--bda-accent);
  padding:22px!important;
}
.ab-bda-chain-number{font-size:.72rem!important;letter-spacing:.12em;color:#d7b9ae!important;font-weight:800}
.ab-bda-chain-step h3{font-size:1.06rem;margin:.4rem 0 .8rem}
.ab-bda-chain-step p:last-child{font-size:.92rem;line-height:1.55}

.ab-bda-benefits{gap:12px;margin-top:34px!important}
.ab-bda-benefits>.wp-block-column{
  background:var(--bda-panel);
  border:1px solid var(--bda-line);
  padding:26px;
}
.ab-bda-benefits h3{font-size:1.18rem;margin-top:0}

.ab-bda-pefc{
  background:#e8e2dc;
  color:#282827;
  padding:clamp(28px,5vw,56px)!important;
  margin-bottom:clamp(64px,8vw,108px)!important;
}
.ab-bda-pefc h2,.ab-bda-pefc h3,.ab-bda-pefc strong{color:#282827}
.ab-bda-pefc p{color:#4c4a47!important}
.ab-bda-pefc .ab-bda-kicker{color:#8a685f!important}
.ab-bda-logo-card{
  background:white;
  padding:22px!important;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  align-items:center;
}
.ab-bda-logo-card figure{margin:0!important}
.ab-bda-logo-card img{width:100%;height:auto;object-fit:contain}

.ab-bda-bigquote{
  background:var(--bda-accent);
  padding:clamp(32px,6vw,64px)!important;
  margin-bottom:clamp(64px,8vw,108px)!important;
}
.ab-bda-bigquote p{color:#211f1e!important}
.ab-bda-bigquote strong{color:#211f1e}

.ab-bda-feature-image{margin:30px 0!important}
.ab-bda-feature-image img{
  width:100%;
  aspect-ratio:16/7;
  object-fit:cover;
  display:block;
}
.ab-bda-button .wp-block-button__link{
  background:var(--bda-accent)!important;
  color:#211f1e!important;
  border-radius:0!important;
  font-weight:750;
  padding:14px 22px;
}

.ab-bda-sourcebox{
  border-top:1px solid var(--bda-line);
  padding:34px 0!important;
  margin-top:0!important;
}
.ab-bda-sourcebox h3{font-size:1.2rem}
.ab-bda-sourcebox li{font-size:.95rem;color:var(--bda-muted)}

@media (max-width:1050px){
  .ab-bda-layout{grid-template-columns:1fr;gap:34px}
  .ab-bda-summary{position:static;max-width:820px!important;width:100%;margin:0 auto!important}
  .ab-bda-summary ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
  .ab-bda-chain{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media (max-width:700px){
  .ab-bda-article{
    padding:34px 18px 58px;
    overflow:hidden;
  }
  .ab-bda-keyfacts{grid-template-columns:1fr!important}
  .ab-bda-keyfact{min-height:0}
  .ab-bda-summary ul{grid-template-columns:1fr}
  .ab-bda-chain{grid-template-columns:1fr!important}
  .ab-bda-time{padding-left:78px!important}
  .ab-bda-timeline:before{left:27px}
  .ab-bda-time-year{width:56px;font-size:.8rem!important}
  .ab-bda-pefc{margin-left:-18px!important;margin-right:-18px!important;padding-left:18px!important;padding-right:18px!important}
  .ab-bda-logo-card{grid-template-columns:1fr 1fr}
  .ab-bda-feature-image{margin-left:-18px!important;margin-right:-18px!important}
  .ab-bda-feature-image img{aspect-ratio:4/3}
}

@media (prefers-reduced-motion:reduce){
  .ab-bda-article *{scroll-behavior:auto!important}
}

/* ---- assets/css/toiture-hiver-article.css ---- */
.ab-roof-article{
  --roof-bg:#303231;
  --roof-panel:#3a3c3b;
  --roof-panel-2:#434543;
  --roof-text:#f4f1ec;
  --roof-muted:#cbc7c0;
  --roof-accent:#aa897e;
  --roof-safety:#d7b6aa;
  --roof-line:rgba(255,255,255,.13);
  background:var(--roof-bg);
  color:var(--roof-text);
  padding:30px max(20px,calc((100vw - 1400px)/2)) 80px;
}
.ab-roof-article,.ab-roof-article *{box-sizing:border-box}
.ab-roof-article a{color:inherit;text-underline-offset:.18em}
.ab-roof-article p,.ab-roof-article li{font-size:clamp(1rem,.95rem + .18vw,1.08rem);line-height:1.75}
.ab-roof-article h2{color:#fff;font-size:clamp(1.95rem,3vw,3.2rem);line-height:1.08;letter-spacing:-.035em}
.ab-roof-article h3{color:#fff}
.ab-roof-article strong{color:#fff}

.ab-roof-breadcrumb{
  max-width:1180px;margin:0 auto 38px;
  display:flex;gap:10px;flex-wrap:wrap;
  color:#bcb7b0;font-size:.84rem;
}
.ab-roof-breadcrumb a{text-decoration:none}
.ab-roof-breadcrumb a:hover{color:#fff}

.ab-roof-lead{max-width:1180px!important;margin:0 auto 38px!important}
.ab-roof-kicker,.ab-roof-card-label,.ab-roof-safety-label{
  color:#d9bbb0!important;font-size:.74rem!important;font-weight:800;letter-spacing:.16em;text-transform:uppercase
}
.ab-roof-chapo{
  max-width:1040px;color:#fff;
  font-size:clamp(1.35rem,2.2vw,2.25rem)!important;
  line-height:1.38!important;letter-spacing:-.02em
}
.ab-roof-actions{margin-top:30px}
.ab-roof-actions .wp-block-button__link{
  border-radius:0!important;background:var(--roof-accent)!important;color:#211f1e!important;
  font-weight:750;padding:14px 22px
}
.ab-roof-actions .is-style-outline .wp-block-button__link{
  background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.45)
}

.ab-roof-keyfacts{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px;margin-top:44px
}
.ab-roof-keyfact{background:var(--roof-panel);border:1px solid var(--roof-line);padding:24px!important}
.ab-roof-keyfact-value{font-size:clamp(2.4rem,4vw,4.2rem)!important;line-height:1!important;color:var(--roof-accent)!important;font-weight:800;margin:0 0 12px!important}

.ab-roof-gallery{
  max-width:1180px!important;margin:0 auto 55px!important;
  display:grid;grid-template-columns:1.7fr 1fr;gap:12px;height:min(580px,48vw)
}
.ab-roof-gallery figure{margin:0!important;height:100%}
.ab-roof-gallery img{width:100%;height:100%;object-fit:cover;display:block}
.ab-roof-gallery-side{display:grid;grid-template-rows:1fr 1fr;gap:12px;min-height:0}
.ab-roof-gallery-side figure{min-height:0}

.ab-roof-safety{
  max-width:1180px!important;margin:0 auto clamp(55px,7vw,90px)!important;
  background:var(--roof-safety);color:#211f1e;padding:clamp(28px,5vw,54px)!important
}
.ab-roof-safety h2,.ab-roof-safety p,.ab-roof-safety strong{color:#211f1e!important}
.ab-roof-safety-label{color:#6d4f46!important}

.ab-roof-layout{
  max-width:1120px!important;margin:0 auto!important;
  display:grid;grid-template-columns:220px minmax(0,820px);gap:clamp(35px,6vw,84px);justify-content:center
}
.ab-roof-summary{position:sticky;top:110px;align-self:start;border-left:2px solid var(--roof-accent);padding:4px 0 4px 22px!important}
.ab-roof-summary-title{font-size:.78rem!important;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fff}
.ab-roof-summary ol{padding-left:20px;margin-top:18px}
.ab-roof-summary li{font-size:.9rem;line-height:1.4;margin:.65rem 0;color:var(--roof-muted)}
.ab-roof-summary a{text-decoration:none}
.ab-roof-summary a:hover{color:#fff}

.ab-roof-content{max-width:820px!important}
.ab-roof-intro{padding-bottom:26px}
.ab-roof-intro p{color:var(--roof-muted)}

.ab-roof-check{
  position:relative;background:var(--roof-panel);border:1px solid var(--roof-line);
  padding:clamp(28px,4vw,46px)!important;margin:0 0 18px!important;
  scroll-margin-top:110px
}
.ab-roof-check h2{font-size:clamp(1.6rem,2.4vw,2.45rem);margin:0 0 20px;padding-right:50px}
.ab-roof-check p{color:var(--roof-muted)}
.ab-roof-number{
  position:absolute;right:24px;top:20px;
  color:var(--roof-accent)!important;font-size:.82rem!important;font-weight:850;letter-spacing:.14em
}
.ab-roof-tip{
  margin-top:24px;padding:18px 20px;border-left:3px solid var(--roof-accent);
  background:rgba(0,0,0,.12);color:var(--roof-muted);line-height:1.55
}
.ab-roof-related-inline{padding-top:14px;color:#fff;line-height:1.8}

.ab-roof-info{
  margin:clamp(70px,9vw,120px) calc(50% - 50vw) 0!important;
  padding:clamp(42px,7vw,82px) max(22px,calc((100vw - 1100px)/2))!important;
  background:#e7e1db;color:#2a2927
}
.ab-roof-info h2,.ab-roof-info p,.ab-roof-info strong{color:#2a2927!important}
.ab-roof-info .ab-roof-kicker{color:#82655c!important}
.ab-roof-info-grid{gap:12px;margin-top:30px!important}
.ab-roof-info-grid>.wp-block-column{background:#fff;padding:26px}

.ab-roof-related,.ab-roof-faq{max-width:1000px!important;margin:clamp(70px,9vw,110px) auto 0!important}
.ab-roof-related p{color:var(--roof-muted)}
.ab-roof-related-grid{gap:14px;margin-top:28px!important}
.ab-roof-related-card{background:var(--roof-panel);border:1px solid var(--roof-line);padding:28px}
.ab-roof-related-card h3{font-size:1.35rem}
.ab-roof-related-card h3 a{text-decoration:none}
.ab-roof-related-card .ab-roof-card-label{color:#d9bbb0!important}

.ab-roof-faq-item{border-top:1px solid var(--roof-line);padding:18px 0}
.ab-roof-faq-item:last-child{border-bottom:1px solid var(--roof-line)}
.ab-roof-faq-item summary{cursor:pointer;font-size:1.08rem;font-weight:750;color:#fff}
.ab-roof-faq-item p{color:var(--roof-muted);max-width:820px}

.ab-roof-cta{
  margin:clamp(75px,10vw,130px) calc(50% - 50vw) -80px!important;
  padding:clamp(48px,8vw,90px) max(22px,calc((100vw - 1000px)/2))!important;
  background:var(--roof-accent);color:#211f1e
}
.ab-roof-cta h2,.ab-roof-cta p,.ab-roof-cta strong{color:#211f1e!important}
.ab-roof-cta .ab-roof-kicker{color:#5f443c!important}
.ab-roof-cta .ab-roof-actions .wp-block-button__link{background:#252626!important;color:#fff!important}
.ab-roof-cta .ab-roof-actions .is-style-outline .wp-block-button__link{background:transparent!important;color:#211f1e!important;border-color:#211f1e}

@media(max-width:1000px){
  .ab-roof-layout{grid-template-columns:1fr;gap:28px}
  .ab-roof-summary{position:static;max-width:820px!important;width:100%;margin:0 auto!important}
  .ab-roof-summary ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
}

@media(max-width:700px){
  .ab-roof-article{padding:24px 18px 60px;overflow:hidden}
  .ab-roof-breadcrumb{margin-bottom:28px}
  .ab-roof-keyfacts{grid-template-columns:1fr!important}
  .ab-roof-gallery{
    margin-left:-18px!important;margin-right:-18px!important;width:auto!important;
    height:auto;grid-template-columns:1fr;gap:8px
  }
  .ab-roof-gallery-main{height:52svh!important}
  .ab-roof-gallery-side{grid-template-columns:1fr 1fr;grid-template-rows:none;height:170px}
  .ab-roof-summary ol{grid-template-columns:1fr}
  .ab-roof-check{margin-left:-2px!important;margin-right:-2px!important}
  .ab-roof-check h2{padding-right:0}
  .ab-roof-number{position:static;margin:0 0 12px!important}
  .ab-roof-info,.ab-roof-cta{margin-left:-18px!important;margin-right:-18px!important}
  .ab-roof-info-grid{display:block}
  .ab-roof-info-grid>.wp-block-column{margin-bottom:10px}
}

@media(prefers-reduced-motion:reduce){
  .ab-roof-article *{scroll-behavior:auto!important}
}

/* ---- assets/css/borealis-ouvrages.css ---- */
/* =========================================================
   CARNET D'OUVRAGES — 1.0.0
   Habillage commun des articles + choix clair / sombre.
   Complète le modèle single-projet et la galerie V2 existants.
   Ne remplace ni borealis-gallery.css, ni le CSS du thème.
   ========================================================= */

/* Palette par défaut : sombre. Les anciennes classes Refuge
   restent prises en charge, sans modifier cet article. */
main#contenu.ab-projet-single,
.wp-block-group:is(.ab-ouvrage-content, .ab-refuge-content) {
  --ab-ouvrage-bg: var(--ab-dark, #353535);
  --ab-ouvrage-text: #ffffffdf;
  --ab-ouvrage-title: #fff;
  --ab-ouvrage-hover: #808080;

  /* Compatibilité avec le modèle d'article déjà installé. */
  --ab-projet-soft: var(--ab-ouvrage-text);
}

/* Le style du groupe RACINE pilote aussi son modèle parent.
   :has() réagit au HTML rendu, sans ajouter de JavaScript.
   Un style appliqué à un groupe imbriqué ne change pas la page. */
main#contenu.ab-projet-single:has(.ab-projet-content > :is(.ab-ouvrage-content, .ab-refuge-content).is-style-ab-ouvrage-light),
.wp-block-group:is(.ab-ouvrage-content, .ab-refuge-content).is-style-ab-ouvrage-light,
main#contenu .is-style-ab-ouvrage-light {
  --ab-ouvrage-bg: #fff;
  --ab-ouvrage-text: #333;
  --ab-ouvrage-title: #333;
  --ab-ouvrage-hover: #666;
}

/* L'ancien CSS du modèle fixait ces fonds en gris.
   Ne PAS modifier --ab-dark globalement : le menu et le footer
   utilisent aussi cette variable et doivent rester inchangés. */
main#contenu.ab-projet-single {
  background-color: var(--ab-ouvrage-bg);
  color: var(--ab-ouvrage-text);
}

main#contenu.ab-projet-single .ab-projet-hero {
  background-color: var(--ab-ouvrage-bg);
}

main#contenu.ab-projet-single .ab-projet-content,
main#contenu.ab-projet-single .ab-projet-breadcrumb {
  color: var(--ab-ouvrage-text);
}

main#contenu.ab-projet-single h1.ab-projet-title {
  color: var(--ab-ouvrage-title);
}

main#contenu.ab-projet-single .ab-projet-breadcrumb a:hover {
  color: var(--ab-ouvrage-hover);
}

/* Fond autour du main et dans les transparences du décor.
   Aucune règle de couleur sur les enfants du header/footer. */
body:has(.ab-projet-single .ab-projet-content > :is(.ab-ouvrage-content, .ab-refuge-content).is-style-ab-ouvrage-light),
.wp-site-blocks:has(.ab-projet-single .ab-projet-content > :is(.ab-ouvrage-content, .ab-refuge-content).is-style-ab-ouvrage-light),
.is-style-ab-ouvrage-light {
  background-color: #fff !important;
}

/* Composants partagés : nom générique pour les nouveaux ouvrages,
   et alias des trois anciennes classes de la page Refuge. */
.wp-block-group:is(.ab-ouvrage-content, .ab-refuge-content) {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background-color: var(--ab-ouvrage-bg);
  color: var(--ab-ouvrage-text);
}

:is(.ab-ouvrage-content, .ab-refuge-content) h2:is(.ab-ouvrage-subtitle, .ab-refuge-subtitle) {
  display: block;
  margin: 0 0 30px;
  padding: 0;
  color: var(--ab-ouvrage-text);
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 35px;
  font-weight: 200;
  line-height: 1.2;
  text-transform: none;
}

:is(.ab-ouvrage-content, .ab-refuge-content) h2:is(.ab-ouvrage-subtitle, .ab-refuge-subtitle)::after {
  content: none;
  display: none;
}

:is(.ab-ouvrage-content, .ab-refuge-content) :is(.ab-ouvrage-quote, .ab-refuge-quote) {
  margin: 50px 0 0;
  padding: 0;
}

/* Sur fond blanc, rendre visibles le placeholder et le chargement.
   On conserve exactement le zoom, le fondu et les boutons V2. */
:is(.ab-ouvrage-content, .ab-refuge-content).is-style-ab-ouvrage-light
  .ab-progressive-gallery .ab-gallery-item > a {
  background-color: #f2f2f2;
}

:is(.ab-ouvrage-content, .ab-refuge-content).is-style-ab-ouvrage-light
  .ab-progressive-gallery .ab-gallery-item.is-loading > a::before {
  background-image: linear-gradient(110deg, #00000003 25%, #00000012 45%, #00000003 65%);
}

:is(.ab-ouvrage-content, .ab-refuge-content).is-style-ab-ouvrage-light
  .ab-progressive-gallery .ab-gallery-item.is-loading > a::after {
  border-color: #00000026;
  border-top-color: #555;
}

:is(.ab-ouvrage-content, .ab-refuge-content).is-style-ab-ouvrage-light
  .ab-progressive-gallery .ab-gallery-retry {
  background-color: #fff;
  color: #333;
  border-color: #00000040;
}

/* Les libellés sur les photos et la visionneuse gardent leurs
   couleurs propres dans borealis-gallery.css. Pas de règle
   "tous les span/a en noir" qui casserait ces surimpressions. */

@media (max-width: 767px) {
  :is(.ab-ouvrage-content, .ab-refuge-content) h2:is(.ab-ouvrage-subtitle, .ab-refuge-subtitle) {
    font-size: 24px;
  }
}

/* Aperçu dans Gutenberg, sans lancer le JS de galerie.
   Compatible avec les conteneurs internes de Groupe. */
.editor-styles-wrapper .ab-ouvrage-content .ab-progressive-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
  margin: 0;
  padding: 0;
}
.editor-styles-wrapper .ab-ouvrage-content .ab-progressive-gallery:has(> .block-editor-inner-blocks) {
  display: block;
}
.editor-styles-wrapper .ab-ouvrage-content .ab-progressive-gallery > .block-editor-inner-blocks > .block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: start;
}
.editor-styles-wrapper .ab-ouvrage-content .ab-gallery-item {
  min-width: 0;
  margin: 0;
}
.editor-styles-wrapper .ab-ouvrage-content .ab-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 979px) {
  .editor-styles-wrapper .ab-ouvrage-content .ab-progressive-gallery,
  .editor-styles-wrapper .ab-ouvrage-content .ab-progressive-gallery > .block-editor-inner-blocks > .block-editor-block-list__layout {
    grid-template-columns: minmax(0, 1fr);
  }
}
