/*
Theme Name: SolResi Ollie
Theme URI: https://olliewp.com
Description: A child theme for Ollie.
Author: Mike McAlister
Author URI: https://olliewp.com
Template:     ollie
Version: 1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Tags:         blog, portfolio, entertainment, grid-layout, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, rtl-language-support, style-variations, template-editing, theme-options, translation-ready, wide-blocks
Text Domain: ollie-child
*/

/* ==========================================================================
   SolResi — CSS custom du site (version nettoyée, dédupliquée)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

.wp-site-blocks, .wp-site-blocks p, .wp-site-blocks li, .wp-site-blocks span, .wp-site-blocks a, .wp-site-blocks div, .wp-site-blocks nav, .wp-site-blocks input, .wp-site-blocks textarea, .wp-site-blocks button {
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.wp-site-blocks h1, .wp-site-blocks h2, .wp-site-blocks h3, .wp-site-blocks h4, .wp-site-blocks h5, .wp-site-blocks h6,
.solresi-eyebrow,
.wp-block-navigation .wp-block-navigation-item__label,
.wp-block-navigation-item > a,
.solresi-btn-primary > .wp-block-button__link,
.solresi-btn-secondary > .wp-block-button__link,
.solresi-btn-accent > .wp-block-button__link,
.solresi-btn-ghost-light > .wp-block-button__link,
.solresi-faq summary,
.solresi-stat-hero .value,
.solresi-breadcrumb,
.wp-site-title, .wp-block-site-title {
  font-family: 'Sora', sans-serif;
}
:root, body, .editor-styles-wrapper {
  --wp--preset--color--primary: #1E1A16 !important;
  --wp--preset--color--primary-accent: #FF6F21 !important;
  --wp--preset--color--primary-alt: #FF6F21 !important;
  --wp--preset--color--primary-alt-accent: #1E1A16 !important;
  --wp--preset--color--main: #1E1A16 !important;
  --wp--preset--color--main-accent: #1E1A16 !important;
  --wp--preset--color--base: #FAF7F1 !important;
  --wp--preset--color--secondary: #1E1A16 !important;
  --wp--preset--color--tertiary: #FAF7F1 !important;
  --wp--preset--color--border-light: #1E1A16 !important;
  --wp--preset--color--border-dark: #FF6F21 !important;
  --c-ink: #1E1A16;
  --c-paper: #FAF7F1;
  --c-orange: #FF6F21;
  --btn-radius: 6px;
  --btn-pad: 1rem 1.75rem;
  --btn-pad-sm: 0.65rem 1.25rem;
  --btn-border-w: 2px;
}
.has-primary-color { color: #1E1A16 !important; }
.has-primary-background-color { background-color: #1E1A16 !important; }
.has-primary-accent-color { color: #FF6F21 !important; }
.has-primary-accent-background-color { background-color: #FF6F21 !important; }
.has-primary-alt-color { color: #FF6F21 !important; }
.has-primary-alt-background-color { background-color: #FF6F21 !important; }
.has-base-color { color: #1E1A16 !important; }
.has-base-background-color { background-color: #FAF7F1 !important; }
.has-main-color { color: #1E1A16 !important; }
.has-main-background-color { background-color: #1E1A16 !important; }
.has-secondary-color { color: #1E1A16 !important; }
.has-tertiary-color { color: #1E1A16 !important; }
.has-tertiary-background-color { background-color: #FAF7F1 !important; }

.solresi-dark-bg {
  position: relative;
  background: #F1ECE4 !important;
  color: #1E1A16;
  overflow: hidden;
}
.solresi-dark-bg::before {
  content: '';
  position: absolute;
  top: -100px; right: -100px;
  width: 400px; height: 400px;
  background: #FF6F21;
  border-radius: 50%;
  opacity: 0.08;
  filter: blur(60px);
  z-index: 0;
  pointer-events: none;
}
.solresi-dark-bg > * { position: relative; z-index: 1; }

.solresi-dark-bg:has(.wp-block-navigation) {
  overflow: visible;
  z-index: 100;
}
.wp-block-navigation__submenu-container,
.wp-block-navigation-submenu__submenu {
  z-index: 9999 !important;
}

/* ===== Mega-menu dropdown ===== */
.wp-block-navigation__submenu-container {
  background: #FAF7F1 !important;
  border: 1px solid #1E1A16 !important;
  border-top: 2px solid #FF6F21 !important;
  border-radius: 4px !important;
  padding: 0.5rem !important;
  min-width: 260px !important;
  box-shadow: 0 18px 40px rgba(30, 26, 22, 0.18) !important;
  transform: translateY(-6px);
  transition: transform 0.22s ease !important;
}
.wp-block-navigation-item.wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
.wp-block-navigation-item.wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container {
  transform: translateY(0);
}
.wp-block-navigation__submenu-container .wp-block-navigation-item {
  margin: 0 !important;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item:not(:last-child) {
  border-bottom: 1px solid rgba(30, 26, 22, 0.08);
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  display: block !important;
  width: 100%;
  padding: 0.65rem 0.8rem !important;
  border-radius: 3px;
  color: #1E1A16 !important;
  font-family: 'Sora', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  transition: background 0.15s ease, color 0.15s ease !important;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content::before,
.wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
  display: none !important;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
  background: #1E1A16 !important;
  color: #FF6F21 !important;
}
.wp-block-navigation-item.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg {
  color: #FF6F21;
}

.solresi-dark-bg .wp-block-navigation .wp-block-navigation-item__label,
.solresi-dark-bg .wp-block-navigation-item > a {
  font-family: 'Sora', sans-serif !important;
  font-weight: 700 !important;
}

.solresi-dark-bg .wp-block-navigation-item > a {
  position: relative;
  text-decoration: none;
  display: inline-block;
}
.solresi-dark-bg .wp-block-navigation-item > a::before,
.solresi-dark-bg .wp-block-navigation-item > a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 2px;
}
.solresi-dark-bg .wp-block-navigation-item > a::after {
  background: #FF6F21;
  transform: scaleX(1);
  transform-origin: left;
  transition: transform 0.35s ease;
}
.solresi-dark-bg .wp-block-navigation-item > a::before {
  background: transparent;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease;
  z-index: 1;
}
.solresi-dark-bg .wp-block-navigation-item > a:hover::after {
  transform: scaleX(0);
  transform-origin: right;
}
.solresi-dark-bg .wp-block-navigation-item > a:hover::before {
  transform: scaleX(1);
  transform-origin: left;
}

/* ===== Cards ===== */
.solresi-card-grid .wp-block-column { display: flex; }
.solresi-card-light {
  background: #FAF7F1;
  border: 1px solid #1E1A16;
  padding: 2rem;
  border-radius: 2px;
  color: #1E1A16;
  position: relative;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.solresi-card-light h3.wp-block-heading {
  margin: 0;
  min-height: 2.6em;
  display: flex;
  align-items: flex-start;
}
.solresi-card-num {
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #1E1A16;
  opacity: 0.5;
  margin: 0;
  min-height: 1.3em;
  display: block;
}
.solresi-card-light ul.wp-block-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.solresi-card-light ul.wp-block-list li {
  position: relative;
  padding-left: 1.15rem;
  margin-bottom: 0.55rem;
  line-height: 1.4;
}
.solresi-card-light ul.wp-block-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 6px;
  height: 6px;
  background: #FF6F21;
}

.solresi-card-dark {
  background: transparent;
  border: 1px solid rgba(250, 247, 241, 0.2);
  padding: 2rem;
  border-radius: 2px;
  color: #FAF7F1;
}
.solresi-card-dark.has-background h3, .solresi-card-dark.has-background h4 { color: #FAF7F1 !important; }
.solresi-card-dark h3.solresi-eyebrow, .solresi-card-dark h4.solresi-eyebrow { color: #FF6F21 !important; }
.solresi-card-dark.has-background .has-base-color { color: #FAF7F1 !important; }
.solresi-card-dark ul.wp-block-list {
  list-style: none !important;
  margin: 1rem 0 0 0 !important;
  padding: 0 !important;
}
.solresi-card-dark ul.wp-block-list li {
  position: relative;
  padding-left: 1.15rem;
  margin: 0 0 0.6rem 0 !important;
  line-height: 1.4;
}
.solresi-card-dark ul.wp-block-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 6px;
  height: 6px;
  background: #FF6F21;
}
.solresi-card-dark ul.wp-block-list li:last-child { margin-bottom: 0 !important; }

/* ===== Stats ===== */
.solresi-stat {
  border-left: 3px solid #FF6F21;
  padding: 1rem 0 1rem 1rem;
}
.solresi-stat .value {
  font-size: 2.5rem;
  font-weight: 900;
  color: #FF6F21;
  line-height: 1;
  display: block;
  margin-bottom: 0.4rem;
  letter-spacing: -0.02em;
}
.solresi-stat .label {
  font-size: 0.9rem;
  color: #1E1A16;
  opacity: 0.85;
}

.solresi-stat-hero {
  border-left: 3px solid #FF6F21;
  padding: 1.5rem 0 1.5rem 1.5rem;
}
.solresi-stat-hero .value {
  font-size: clamp(4.5rem, 9vw, 7rem);
  font-weight: 900;
  color: #FF6F21;
  line-height: 0.95;
  display: block;
  margin-bottom: 0.5rem;
  letter-spacing: -0.04em;
}
.solresi-stat-hero .label {
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #1E1A16;
  display: block;
  margin-bottom: 0.5rem;
}
.solresi-stat-hero .sub {
  font-size: 0.9rem;
  color: #1E1A16;
  opacity: 0.75;
}

.solresi-stat-compact { padding: 0.85rem 0 0.85rem 0.85rem; }
.solresi-stat-compact .value { font-size: 1.7rem; letter-spacing: -0.01em; }
.solresi-stat-compact .label { font-size: 0.78rem; line-height: 1.35; }
.solresi-stat-cols { align-items: stretch; }
.solresi-stat-cols .wp-block-column { display: flex; }
.solresi-stat-cols .solresi-stat-compact { width: 100%; }

.solresi-stat-light .value { color: #FF6F21; }
.solresi-stat-light .label { color: #1E1A16; opacity: .85; }

/* ===== Button system =====
   Shared base (size, shape, motion) applied to every variant, then each variant
   only changes its resting colors. Every variant hovers into the same orange
   fill / ink text — one consistent interaction across the whole site. */
.solresi-btn-primary > .wp-block-button__link,
.solresi-btn-secondary > .wp-block-button__link,
.solresi-btn-accent > .wp-block-button__link,
.solresi-btn-ghost-light > .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700 !important;
  border-radius: var(--btn-radius) !important;
  border-width: var(--btn-border-w) !important;
  border-style: solid !important;
  padding: var(--btn-pad) !important;
  transition: transform 0.15s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.solresi-btn-primary > .wp-block-button__link { background: var(--c-ink) !important; color: var(--c-paper) !important; border-color: var(--c-ink) !important; }
.solresi-btn-secondary > .wp-block-button__link { background: var(--c-paper) !important; color: var(--c-ink) !important; border-color: var(--c-ink) !important; }
.solresi-btn-accent > .wp-block-button__link { background: var(--c-ink) !important; color: var(--c-paper) !important; border-color: var(--c-ink) !important; }
.solresi-btn-ghost-light > .wp-block-button__link { background: transparent !important; color: var(--c-ink) !important; border-color: var(--c-ink) !important; }

.solresi-btn-primary > .wp-block-button__link:hover,
.solresi-btn-secondary > .wp-block-button__link:hover,
.solresi-btn-accent > .wp-block-button__link:hover,
.solresi-btn-ghost-light > .wp-block-button__link:hover {
  background: var(--c-orange) !important;
  color: var(--c-ink) !important;
  border-color: var(--c-orange) !important;
  transform: translateY(-2px);
}

.solresi-btn-accent > .wp-block-button__link .solresi-phone-icon { color: var(--c-orange); }
.solresi-btn-accent > .wp-block-button__link:hover .solresi-phone-icon { color: var(--c-ink); }

/* Small link-style button (e.g. "Voir plus de réalisations", "Découvrir") */
.solresi-ba-realisations-link,
.solresi-ba-realisations-link-light {
  display: inline-flex;
  align-items: center;
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  background: transparent;
  color: var(--c-ink);
  border: var(--btn-border-w) solid var(--c-ink);
  border-radius: var(--btn-radius);
  padding: var(--btn-pad-sm);
  text-decoration: none !important;
  transition: transform 0.15s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.solresi-ba-realisations-link:hover,
.solresi-ba-realisations-link-light:hover {
  background: var(--c-orange);
  color: var(--c-ink);
  border-color: var(--c-orange);
  transform: translateY(-2px);
}

.solresi-eyebrow {
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}
.solresi-eyebrow-accent { color: #FF6F21 !important; }
.solresi-eyebrow-dark { color: #1E1A16 !important; }
.solresi-hero-highlight { color: #FF6F21; font-family: 'Sora', sans-serif !important; }

.solresi-panel-divider { border-top: 1px solid rgba(30, 26, 22, 0.1); }
.solresi-panel-divider-dark { border-top: 1px solid rgba(30, 26, 22, 0.15); }

/* ===== Sticky contact sidebar ===== */
.solresi-sticky-contact {
  position: fixed;
  right: 0; top: 50%;
  transform: translateY(-50%);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  background: #1E1A16;
  border: 2px solid #FF6F21;
  border-right: none;
  border-radius: 2px 0 0 2px;
}
.solresi-sticky-item {
  display: flex;
  align-items: center;
  gap: 0;
  overflow: hidden;
  border-radius: 2px;
  background: transparent;
  color: #FAF7F1;
  transition: background .25s ease, gap .3s ease, color .2s ease;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 12px;
  text-decoration: none;
}
.solresi-sticky-item .label {
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  white-space: nowrap;
  transition: max-width .35s ease, opacity .25s ease .05s, margin .3s ease;
  margin: 0;
}
.solresi-sticky-item:hover {
  background: #FF6F21;
  color: #1E1A16;
  text-decoration: none;
}
.solresi-sticky-contact:hover .solresi-sticky-item {
  gap: 10px;
}
.solresi-sticky-contact:hover .solresi-sticky-item .label {
  max-width: 200px;
  opacity: 1;
  margin-right: 4px;
}
.solresi-sticky-item.is-primary { background: #FF6F21; color: #1E1A16; }
.solresi-sticky-item.is-primary:hover { background: #FAF7F1; color: #1E1A16; }
.solresi-sticky-icon {
  width: 22px; height: 22px;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.solresi-sticky-icon svg { width: 100%; height: 100%; }

@media (max-width: 700px) {
  .solresi-sticky-contact {
    top: auto; bottom: 16px; right: 16px;
    transform: none;
    flex-direction: row;
    border-radius: 2px;
    border-right: 2px solid #FF6F21;
  }
}

.solresi-dark-bg ul.wp-block-list {
  list-style: none;
  margin: 32px 0 0 0;
  padding: 0;
}
.solresi-dark-bg ul.wp-block-list li {
  margin-bottom: 0.45rem;
}

.solresi-city-list {
  color: #1E1A16;
  font-size: 0.95rem;
  line-height: 1.9;
  opacity: 0.9;
}
.solresi-city-list .city {
  white-space: nowrap;
}
.solresi-city-list .is-center {
  color: #FF6F21;
  font-weight: 700;
  opacity: 1;
}
.solresi-city-list .sep {
  opacity: 0.4;
  margin: 0 0.35rem;
}

/* ===== Global typography / layout resets ===== */
.wp-site-blocks h1, .wp-site-blocks h2, .wp-site-blocks h3, .wp-site-blocks h4, .wp-site-blocks h5, .wp-site-blocks h6 {
  letter-spacing: -0.02em;
  line-height: 1.05;
  font-weight: 800;
}
.wp-site-blocks h1 { font-weight: 900 !important; }
.wp-site-blocks h4 { font-weight: 700; }

html, body { overflow-x: hidden; }
.solresi-footer-sep { border-color: rgba(30,26,22,.12) !important; opacity: 1; }
main { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.wp-block-post-content { margin-top: 0 !important; margin-bottom: 0 !important; }
.wp-block-post-content > * + * { margin-top: 0 !important; }
.solresi-phone-icon { display:inline-block; vertical-align:-3px; margin-right:6px; }
.solresi-phone-icon svg { display:block; }
main, .entry-content, .wp-block-post-content { --wp--style--block-gap: 0 !important; padding-top:0 !important; padding-bottom:0 !important; margin-top:0 !important; margin-bottom:0 !important; }
.entry-content > *, .wp-block-post-content > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }

/* ===== FAQ ===== */
.solresi-faq details {
  border-bottom: 1px solid rgba(30,26,22,0.15);
  padding: 1.1rem 0;
}
.solresi-faq summary {
  cursor: pointer;
  font-weight: 700;
  color: #1E1A16;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.solresi-faq summary::-webkit-details-marker { display: none; }
.solresi-faq summary::after {
  content: '+';
  font-size: 1.4rem;
  color: #FF6F21;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.solresi-faq details[open] summary::after { transform: rotate(45deg); }
.solresi-faq p {
  margin: 0.75rem 0 0;
  color: #1E1A16;
  opacity: 0.85;
  font-size: 0.95rem;
  line-height: 1.5;
}

/* ===== Breadcrumb ===== */
.solresi-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1E1A16;
  padding: 0;
  margin-bottom: 1.75rem;
}
.solresi-breadcrumb a { color: #1E1A16; }
.solresi-breadcrumb .sep {
  color: #1E1A16;
  opacity: 0.4;
  font-weight: 400;
}
.solresi-breadcrumb .current { color: #1E1A16; opacity: 1; }

/* ===== Generic underline-swipe link hover (excludes buttons/nav/special links) ===== */
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-block-navigation-item__content):not(.solresi-sticky-item):not(.solresi-ba-realisations-link):not(.solresi-ba-realisations-link-light):not(.solresi-logo-link) {
  position: relative;
  color: inherit;
  text-decoration: none;
  display: inline-block;
}
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-block-navigation-item__content):not(.solresi-sticky-item):not(.solresi-ba-realisations-link):not(.solresi-ba-realisations-link-light):not(.solresi-logo-link)::before,
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-block-navigation-item__content):not(.solresi-sticky-item):not(.solresi-ba-realisations-link):not(.solresi-ba-realisations-link-light):not(.solresi-logo-link)::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 2px;
}
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-block-navigation-item__content):not(.solresi-sticky-item):not(.solresi-ba-realisations-link):not(.solresi-ba-realisations-link-light):not(.solresi-logo-link)::after {
  background: #FF6F21;
  transform: scaleX(1);
  transform-origin: left;
  transition: transform 0.35s ease;
}
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-block-navigation-item__content):not(.solresi-sticky-item):not(.solresi-ba-realisations-link):not(.solresi-ba-realisations-link-light):not(.solresi-logo-link)::before {
  background: transparent;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease;
  z-index: 1;
}
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-block-navigation-item__content):not(.solresi-sticky-item):not(.solresi-ba-realisations-link):not(.solresi-ba-realisations-link-light):not(.solresi-logo-link):hover::after {
  transform: scaleX(0);
  transform-origin: right;
}
.wp-site-blocks a:not(.wp-block-button__link):not(.wp-block-navigation-item__content):not(.solresi-sticky-item):not(.solresi-ba-realisations-link):not(.solresi-ba-realisations-link-light):not(.solresi-logo-link):hover::before {
  transform: scaleX(1);
  transform-origin: left;
}

/* ===== Avant/Après slider (accueil + pages revêtements/secteurs + réalisations) ===== */
.solresi-ba-section { width:100% !important; max-width:none !important; margin:0 !important; padding: var(--wp--preset--spacing--medium) 0 var(--wp--preset--spacing--large); position:relative; background:transparent; overflow:visible; }
.solresi-ba-section::before { content:''; position:absolute; top:-100px; right:-100px; width:400px; height:400px; background:#FF6F21; border-radius:50%; opacity:.08; filter:blur(60px); z-index:0; pointer-events:none; }

.solresi-ba-slider {
  position: relative;
  z-index: 1;
  aspect-ratio: 16/9;
  border-radius: 2px;
  overflow: hidden;
  cursor: ew-resize;
  border: 1px solid #1E1A16;
}
.solresi-ba-slider > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Calques avant/après : fond clair systématique (visible tant qu'aucune photo
   n'est ajoutée, automatiquement masqué dès qu'une image le recouvre) */
.solresi-ba-layer,
.solresi-ba-before-inner {
  position: absolute;
  inset: 0;
  background: #F1ECE4;
}
.solresi-ba-before-inner {
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.solresi-ba-layer .wp-block-image,
.solresi-ba-before-inner .wp-block-image {
  margin: 0 !important;
  width: 100%;
  height: 100%;
}
.solresi-ba-layer .wp-block-image img,
.solresi-ba-before-inner .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.solresi-ba-before-wrap {
  position: absolute; inset: 0; width: 50%; overflow: hidden; z-index: 2;
  border-right: 2px solid #FF6F21;
}

.solresi-ba-tag {
  position: absolute; top: 1rem; z-index: 20;
  padding: 0.5rem 1rem; font-weight: 800; font-size: 0.8rem; letter-spacing: 0.15em;
  text-transform: uppercase; border-radius: 2px;
}
.solresi-ba-tag.is-before { left: 1rem; background: #1E1A16; color: #FAF7F1; }
.solresi-ba-tag.is-after { right: 1rem; background: #FF6F21; color: #1E1A16; }

.solresi-ba-handle {
  position: absolute; top: 0; bottom: 0; left: 50%; width: 4px; background: #FF6F21;
  transform: translateX(-50%); z-index: 10; cursor: ew-resize;
}
.solresi-ba-knob {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 56px; height: 56px; border-radius: 50%; background: #FF6F21; border: 2px solid #1E1A16;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  display: flex; align-items: center; justify-content: center; color: #1E1A16;
}

.solresi-ba-info { position:relative; z-index:1; text-align: center; margin-top: var(--wp--preset--spacing--medium); }
.solresi-ba-info h3 { font-size: 1.4rem; font-weight: 800; color: #1E1A16; margin-bottom: .35rem; }
.solresi-ba-info p { font-size: 0.95rem; opacity: 0.8; color: #1E1A16; }

/* Onglet de filtre générique — utilisé par la page Réalisations */
.solresi-ba-tab {
  padding: 0.75rem 1.5rem; border-radius: 2px; background: transparent;
  border: 2px solid rgba(30,26,22,.25); color: #1E1A16; font-weight: 700; font-size: .85rem;
  cursor: pointer; transition: all .2s ease;
  display: inline-block; text-decoration: none !important;
}
.solresi-ba-tab:hover { border-color: #FF6F21; color: #FF6F21; }
.solresi-ba-tab.is-active { background: #FF6F21; color: #1E1A16; border-color: #FF6F21; }

/* Variante inline (pages revêtements/secteurs) */
.solresi-ba-inline { width: 100%; }
.solresi-ba-inline .solresi-eyebrow { display: block; margin-bottom: 0.6rem; }
.solresi-ba-inline .solresi-ba-slider { aspect-ratio: 4/3; }
.solresi-ba-inline .solresi-ba-info { margin-top: 1rem; }
.solresi-ba-inline .solresi-ba-info h3 { font-size: 1.05rem; font-weight: 800; color: #1E1A16; margin-bottom: 0.25rem; }
.solresi-ba-inline .solresi-ba-info p { font-size: 0.85rem; color: #1E1A16; opacity: 0.75; margin: 0; }
.solresi-ba-inline .solresi-ba-cta { margin-top: 1.25rem; text-align: right; }

/* Besoin section layout: slider replaces "Concernés" on the right, Concernés stacks under text on the left */
.solresi-besoin-columns { align-items: stretch; }
@media (max-width: 781px) {
  .solresi-besoin-columns.wp-block-columns {
    flex-direction: column-reverse !important;
  }
}

/* Remove WordPress's automatic root padding on alignfull sections on mobile */
@media (max-width: 781px) {
  body {
    --wp--style--root--padding-left: 0px;
    --wp--style--root--padding-right: 0px;
  }
}

/* ===== Fiche technique: key/value spec table (dark bg) ===== */
.solresi-spec-table { width: 100%; }
.solresi-spec-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1.5rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid rgba(30,26,22,.14);
}
.solresi-spec-row:last-child { border-bottom: none; }
.solresi-spec-label {
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1E1A16;
  opacity: 0.6;
  flex-shrink: 0;
}
.solresi-spec-value {
  font-family: 'Sora', sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  color: #1E1A16;
  text-align: right;
}

/* ===== Étapes de pose: numbered process timeline (light bg) ===== */
.solresi-steps { position: relative; }
.solresi-step {
  display: flex;
  gap: 1.5rem;
  padding-bottom: 2.25rem;
  position: relative;
}
.solresi-step:last-child { padding-bottom: 0; }
.solresi-step::before {
  content: '';
  position: absolute;
  left: 23px;
  top: 52px;
  bottom: 0;
  width: 2px;
  background: rgba(30,26,22,.15);
}
.solresi-step:last-child::before { display: none; }
.solresi-step-num {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #1E1A16;
  color: #FF6F21;
  font-family: 'Sora', sans-serif;
  font-weight: 900;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}
.solresi-step-content h4 { font-size: 1.1rem; font-weight: 800; color: #1E1A16; margin: 0 0 0.35rem; }
.solresi-step-content p { font-size: 0.9rem; color: #1E1A16; opacity: 0.8; margin: 0; line-height: 1.5; }

/* ===== Réparation typology (distinct from revêtement/secteur pages) ===== */
.solresi-alt-row { display: flex; align-items: center; gap: 3rem; margin-bottom: 3.5rem; }
.solresi-alt-row:last-child { margin-bottom: 0; }
.solresi-alt-row.is-reverse { flex-direction: row-reverse; }
.solresi-alt-row .visual { flex: 0 0 40%; aspect-ratio: 4/3; border-radius: 2px; border: 1px solid #1E1A16; overflow: hidden; }
.solresi-alt-row .content { flex: 1; }
.solresi-alt-row .content .num { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: #FF6F21; display: block; margin-bottom: 0.6rem; }
.solresi-alt-row .content h3 { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 1.4rem; margin: 0 0 0.75rem; color: #1E1A16; }
.solresi-alt-row .content p { font-size: 0.95rem; color: #1E1A16; opacity: 0.8; line-height: 1.55; margin: 0; }
@media (max-width: 781px) {
  .solresi-alt-row, .solresi-alt-row.is-reverse { flex-direction: column; gap: 1.5rem; }
  .solresi-alt-row .visual { flex-basis: auto; width: 100%; }
}

.solresi-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.solresi-compare .col { border: 1px solid #1E1A16; border-radius: 2px; padding: 2rem; }
.solresi-compare .col.is-accent { background: #1E1A16; color: #FAF7F1; border-color: #1E1A16; }
.solresi-compare .col .eyebrow { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: #FF6F21; display: block; margin-bottom: 0.6rem; }
.solresi-compare .col h3 { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 1.2rem; margin: 0 0 1.25rem; color: #1E1A16; }
.solresi-compare .col.is-accent h3 { color: #FAF7F1; }
.solresi-compare .col ul { list-style: none; margin: 0; padding: 0; }
.solresi-compare .col li { position: relative; padding-left: 1.4rem; margin-bottom: 0.75rem; font-size: 0.9rem; line-height: 1.5; }
.solresi-compare .col li::before { content: '✓'; position: absolute; left: 0; top: 0; font-weight: 800; color: #FF6F21; }
@media (max-width: 781px) { .solresi-compare { grid-template-columns: 1fr; } }

.solresi-htimeline { display: flex; gap: 0; position: relative; }
.solresi-htimeline .hstep { flex: 1; text-align: center; position: relative; padding: 0 1rem; }
.solresi-htimeline .hstep::before { content: ''; position: absolute; top: 24px; left: -50%; width: 100%; height: 2px; background: rgba(30,26,22,.15); z-index: 0; }
.solresi-htimeline .hstep:first-child::before { display: none; }
.solresi-htimeline .hnum { width: 48px; height: 48px; border-radius: 50%; background: #1E1A16; color: #FF6F21; font-family: 'Sora', sans-serif; font-weight: 900; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; position: relative; z-index: 1; }
.solresi-htimeline h4 { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 1rem; margin: 0 0 0.5rem; color: #1E1A16; }
.solresi-htimeline p { font-size: 0.85rem; color: #1E1A16; opacity: 0.75; margin: 0; line-height: 1.5; }
@media (max-width: 781px) {
  .solresi-htimeline { flex-direction: column; gap: 2rem; }
  .solresi-htimeline .hstep::before { display: none; }
}

.solresi-cta-inline { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; border-top: 2px solid #1E1A16; border-bottom: 2px solid #1E1A16; padding: 2.5rem 0; }
.solresi-cta-inline h3 { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 1.5rem; margin: 0 0 0.35rem; color: #1E1A16; }
.solresi-cta-inline p { font-size: 0.9rem; color: #1E1A16; opacity: 0.75; margin: 0; }

/* ===== Page Réalisations : grille de cartes filtrables (boucle dynamique CPT) ===== */
.solresi-realisations-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 2rem;
}
.solresi-realisations-filters > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.solresi-realisations-grid,
ul.solresi-realisations-grid,
.wp-block-post-template.solresi-realisations-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
  grid-template-rows: none !important;
  grid-auto-rows: auto !important;
  grid-auto-flow: row !important;
  align-items: stretch !important;
  justify-items: stretch !important;
  justify-content: start !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 1.5rem !important;
}
.solresi-realisations-grid > li,
.solresi-realisations-grid > * {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  grid-column: auto !important;
  grid-row: auto !important;
}

.solresi-real-card {
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  border: 1px solid #1E1A16;
  border-radius: 2px;
  overflow: hidden;
  background: #FAF7F1;
  transition: opacity .4s ease, transform .4s ease;
}
.solresi-real-card.solresi-real-hidden {
  opacity: 0;
  transform: translateY(14px) scale(.96);
  pointer-events: none;
}
.solresi-real-card.solresi-real-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.solresi-real-card-photo {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #F1ECE4;
  flex-shrink: 0;
}
.solresi-real-card-photo .wp-block-image {
  margin: 0 !important;
  width: 100%;
  height: 100%;
}
.solresi-real-card-photo .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Vignette-slider dynamique (chaque fiche du CPT) */
.solresi-real-card-slider {
  position: absolute;
  inset: 0;
  cursor: ew-resize;
}
.solresi-real-card-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  background: #FF6F21;
  color: #1E1A16;
  font-family: 'Sora', sans-serif;
  font-weight: 800;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.4rem 0.8rem;
  border-radius: 2px;
  margin: 0;
  text-decoration: none !important;
}
.solresi-real-card-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
}
.solresi-real-card-title {
  font-family: 'Sora', sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  margin: 0 0 .35rem;
  color: #1E1A16;
}
.solresi-real-card-desc {
  opacity: .75;
  font-size: .9rem;
  margin: 0;
  color: #1E1A16;
}

/* ===== Section Garanties/Certifications (accueil) ===== */
.solresi-certs-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
  align-items: stretch !important;
  gap: 1rem;
}
.solresi-certs-grid > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.solresi-cert-card {
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 2rem 1.5rem;
  text-align: center;
  border-radius: 2px;
  background: #FAF7F1;
  border: 1px solid #1E1A16;
}
.solresi-cert-card.is-placeholder {
  border: 1px dashed #1E1A16;
  opacity: .55;
}
.solresi-cert-icon {
  margin-bottom: .75rem;
  display: flex;
  justify-content: center;
}
.solresi-cert-title {
  color: #1E1A16 !important;
  margin: 0 0 .5rem !important;
  font-size: 1.05rem !important;
}
.solresi-cert-desc {
  color: #1E1A16 !important;
  font-size: .9rem !important;
  opacity: .85;
  margin: 0 !important;
}
.solresi-cert-card.is-placeholder .solresi-cert-desc {
  opacity: 1;
}



.solresi-realisations-grid > li,
.solresi-realisations-grid > * {
  margin: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.solresi-real-card > *,
.solresi-real-card-photo > *,
.solresi-real-card-slider > *,
.solresi-real-card-body > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.solresi-realisations-filters > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.solresi-certs-grid > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.solresi-real-card-badge {
  top: auto !important;
  bottom: 1rem !important;
  right: 1rem !important;
}


/* ==========================================================================
   SolResi — Bloc "Lire plus" (version simplifiée, blocs Ollie natifs)
   .solresi-readmore (group)
     .solresi-readmore-inner (group : H2 + paragraphes, éditables)
     .solresi-readmore-toggle (buttons) > .solresi-readmore-btn (button)
   Bascule gérée par le script du footer (classe .is-open sur .solresi-readmore).
   ========================================================================== */

body:not(.editor-styles-wrapper) .solresi-readmore-inner {
  position: relative;
  max-height: 100px;
  overflow: hidden;
}

body:not(.editor-styles-wrapper) .solresi-readmore-inner::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 60px;
  background: linear-gradient(to bottom, transparent, var(--wp--preset--color--base));
  pointer-events: none;
}

.solresi-readmore.is-open .solresi-readmore-inner {
  max-height: none;
  overflow: visible;
}

.solresi-readmore.is-open .solresi-readmore-inner::after {
  display: none;
}

.solresi-readmore-toggle {
  display: flex;
  justify-content: center;
  margin-top: var(--wp--preset--spacing--medium) !important;
}

.solresi-readmore,
.solresi-readmore p,
p:has(+ .solresi-readmore) {
  font-size: 15px;
}

.solresi-page-list-plain .wp-block-navigation__submenu-container {
  background: transparent !important;
  border: none !important;
  border-top: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  margin-left: 24px
}

/* ==========================================================================
   SolResi — Page "Plan de site" : style de liste unifié
   Une seule classe, .solresi-plan-list, posée sur les 4 blocs (Pages,
   Réalisations, Articles, Catégories) pour garantir un rendu identique
   quel que soit le type de bloc WordPress sous-jacent.
   ========================================================================== */

/* Classe commune posée sur les 4 blocs (Pages, Réalisations, Articles,
   Catégories). */
.solresi-plan-list,
.solresi-plan-list li,
.solresi-plan-list a {
  font-size: 15px !important;
}