/*
 * Habillage « sobre » — charte institutionnelle BGFI Services (2026).
 *
 * Charge APRES frontend.css et les variables de la charte (ThemeHelper),
 * uniquement quand config('cms.theme') vaut « sobre ». Toutes les regles
 * sont prefixees par body.theme-sobre : elles l'emportent sur frontend.css
 * et sur les <style> des gabarits sans toucher a ceux-ci. Retour a l'ancien
 * rendu : SITE_THEME=classique.
 *
 * Principes : fond papier, bleu BGFI comme unique couleur d'action, sauge du
 * logo en accent discret, titres a empattements, pas de motif decoratif.
 */

/* Polices : public/vendor/fonts/sobre/sobre.css (charge avant cette feuille). */

/* ------------------------------------------------------------- Variables */
body.theme-sobre {
    /* Couleurs reliees a la console (Charte graphique > Couleurs, via
       ThemeHelper) ; entre parentheses, la valeur de la charte BGFI. */
    --sobre-navy: var(--bgfi-blue-dark, #001A3A);          /* Bleu fonce (bandeaux) */
    --sobre-navy-rgb: var(--bgfi-blue-dark-rgb, 0, 26, 58);
    --sobre-blue: var(--bgfi-blue, #003A74);               /* Bleu principal */
    --sobre-sage: var(--bgfi-green, #A8B088);              /* Vert sauge */
    --sobre-olive: color-mix(in srgb, var(--bgfi-green, #A8B088) 45%, #1A1D21);
    --sobre-title: var(--bgfi-text-heading, #001A3A);      /* Texte des titres */
    --sobre-ink: var(--bgfi-text-body, #3E4757);           /* Texte courant */
    --sobre-muted: var(--bgfi-text-muted, #5B6370);        /* Texte secondaire */
    --sobre-paper: #F6F5F0;
    --sobre-line: #DCD9CF;
    --sobre-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

    --font-primary: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-secondary: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-heading: 'Source Serif 4', Georgia, 'Times New Roman', serif;

    --bgfi-gray-50: #FBFAF7;
    --bgfi-gray-100: var(--sobre-paper);
    --bgfi-gray-light: var(--sobre-paper);

    --radius-sm: 4px;
    --radius-md: 4px;
    --radius-lg: 6px;
    --radius-xl: 6px;
    --radius-2xl: 8px;

    --shadow-sm: none;
    --shadow-md: 0 1px 2px rgba(var(--sobre-navy-rgb), 0.06);
    --shadow-card: none;
    --shadow-lg: 0 10px 30px rgba(var(--sobre-navy-rgb), 0.08);
    --shadow-xl: 0 16px 40px rgba(var(--sobre-navy-rgb), 0.10);
    --shadow-hover: 0 10px 30px rgba(var(--sobre-navy-rgb), 0.10);

    font-family: var(--font-primary);
    color: var(--sobre-ink);
    background: #FFFFFF;
    -webkit-font-smoothing: antialiased;
}

/* ----------------------------------------------------------- Typographie */
body.theme-sobre h1, body.theme-sobre h2, body.theme-sobre h3,
body.theme-sobre .h1, body.theme-sobre .h2, body.theme-sobre .h3,
body.theme-sobre .section-title, body.theme-sobre .hero-title,
body.theme-sobre .page-header h1 {
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: -0.01em;
}
body.theme-sobre h4, body.theme-sobre h5, body.theme-sobre h6,
body.theme-sobre .card-title {
    font-family: var(--font-primary);
    font-weight: 600;
    letter-spacing: 0;
}
body.theme-sobre p,
body.theme-sobre .formatted-text,
body.theme-sobre .about-home-paragraph { text-align: left !important; hyphens: manual; }

/* Surtitre : etiquette discrete au lieu de la pastille */
body.theme-sobre .section-subtitle,
body.theme-sobre .partners-section-v4 .section-subtitle,
body.theme-sobre .newsletter-badge {
    display: block;
    width: auto;
    padding: 0;
    margin-bottom: 14px;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    font-family: var(--sobre-mono);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sobre-olive);
}
body.theme-sobre .section-subtitle::before,
body.theme-sobre .section-subtitle::after { content: none; }
body.theme-sobre .text-center .section-subtitle,
body.theme-sobre .section-header.text-center .section-subtitle { margin-left: auto; margin-right: auto; }
body.theme-sobre .section-subtitle--light,
body.theme-sobre .bg-dark .section-subtitle { color: var(--sobre-sage); }

body.theme-sobre .section-title {
    font-size: clamp(2rem, 1.4rem + 1.6vw, 2.75rem);
    line-height: 1.12;
    color: var(--sobre-title);
    padding-bottom: 0;
    margin-bottom: 20px;
}
body.theme-sobre .section-title::after { content: none; display: none; }
body.theme-sobre .section-description,
body.theme-sobre .section-header p { color: var(--sobre-ink); font-size: 1.0625rem; line-height: 1.65; }
body.theme-sobre .section { padding: clamp(64px, 8vw, 112px) 0; }

/* Motifs decoratifs (formes, lueurs) : retires. L'etoile BGFI en filigrane
   (bgfi-auto-star, hero-star, footer-star, fonds ok.png) est conservee. */
body.theme-sobre .card-glow,
body.theme-sobre .newsletter-bg-shapes,
body.theme-sobre .about-home-decoration-1,
body.theme-sobre .about-home-decoration-2,
body.theme-sobre .footer-accent-line,
body.theme-sobre .shape { display: none !important; }

/* --------------------------------------------------------------- Boutons */
body.theme-sobre .btn {
    font-family: var(--font-primary);
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    border-radius: 6px;
    box-shadow: none;
    transform: none;
}
body.theme-sobre .btn:hover, body.theme-sobre .btn:focus { transform: none; }
body.theme-sobre .btn::before, body.theme-sobre .btn::after { content: none; }
body.theme-sobre .btn-lg { padding: 14px 28px; font-size: 1rem; }
body.theme-sobre .btn-primary,
body.theme-sobre .btn-hero {
    background: var(--sobre-blue);
    border: 1.5px solid var(--sobre-blue);
    color: #FFFFFF;
}
body.theme-sobre .btn-primary:hover,
body.theme-sobre .btn-hero:hover {
    background: var(--sobre-navy);
    border-color: var(--sobre-navy);
    color: #FFFFFF;
    box-shadow: none;
}
body.theme-sobre .btn-outline-primary {
    background: transparent;
    border: 1.5px solid var(--sobre-blue);
    color: var(--sobre-blue);
}
body.theme-sobre .btn-outline-primary:hover { background: var(--sobre-blue); color: #FFFFFF; }
body.theme-sobre .btn-white { background: #FFFFFF; color: var(--sobre-title); border: 1.5px solid #FFFFFF; }
body.theme-sobre .btn-white:hover { background: transparent; color: #FFFFFF; }
body.theme-sobre .btn-outline-light { border-width: 1.5px; }
body.theme-sobre :focus-visible { outline: 2px solid var(--sobre-blue); outline-offset: 2px; }

/* --------------------------------------------------------- En-tete / nav */
body.theme-sobre .top-bar { border-bottom: 0; background: var(--sobre-navy); }
body.theme-sobre .top-bar-slogan,
body.theme-sobre .slogan-text { font-style: normal; font-weight: 400; letter-spacing: 0; color: #C9D2DD; }
body.theme-sobre .navbar-bgfi {
    background: #FFFFFF;
    border-bottom: 1px solid var(--sobre-line);
    box-shadow: none;
}
body.theme-sobre .navbar-bgfi .nav-link {
    font-family: var(--font-primary);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: #2B3442;
}
body.theme-sobre .navbar-bgfi .nav-link:hover,
body.theme-sobre .navbar-bgfi .nav-link.active { color: var(--sobre-blue); }
body.theme-sobre .navbar-bgfi .nav-link::after { background: var(--sobre-blue); height: 2px; border-radius: 0; }
body.theme-sobre .btn-navbar-cta {
    background: var(--sobre-blue);
    border: 1.5px solid var(--sobre-blue);
    border-radius: 6px;
    text-transform: none;
    letter-spacing: 0;
    box-shadow: none;
}
body.theme-sobre .btn-navbar-cta:hover { background: var(--sobre-navy); border-color: var(--sobre-navy); }
body.theme-sobre .nav-lang-toggle {
    background: transparent;
    color: var(--sobre-title);
    border: 1px solid var(--sobre-line);
    border-radius: 6px;
    box-shadow: none;
}
body.theme-sobre .dropdown-menu { border-radius: 6px; border: 1px solid var(--sobre-line); box-shadow: var(--shadow-lg); }

/* ------------------------------------------------------------------ Hero */
body.theme-sobre .hero-slider .carousel-item { min-height: clamp(480px, 72vh, 660px); }
body.theme-sobre .hero-slider .carousel-overlay {
    background: linear-gradient(90deg, rgba(var(--sobre-navy-rgb), 0.92) 0%, rgba(var(--sobre-navy-rgb), 0.78) 42%, rgba(var(--sobre-navy-rgb), 0.25) 100%) !important;
}
body.theme-sobre .hero-badge {
    display: inline-block;
    padding: 0;
    margin-bottom: 20px;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
    font-family: var(--sobre-mono);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sobre-sage);
}
body.theme-sobre .hero-title {
    font-size: clamp(2.4rem, 1.4rem + 3vw, 4rem);
    line-height: 1.06;
    color: #FFFFFF;
    text-shadow: none;
    max-width: 780px;
}
body.theme-sobre .hero-description {
    font-size: 1.125rem;
    line-height: 1.65;
    color: #D5DCE5;
    max-width: 600px;
    text-shadow: none;
}
body.theme-sobre .hero-slider .carousel-indicators [data-bs-target] {
    width: 28px;
    height: 3px;
    border-radius: 0;
    border: 0;
    background: rgba(255, 255, 255, 0.45);
}
body.theme-sobre .hero-slider .carousel-indicators .active { background: #FFFFFF; }
body.theme-sobre .hero-slider .carousel-control-prev,
body.theme-sobre .hero-slider .carousel-control-next { opacity: 0.6; }

/* ------------------------------------------------------- Chiffres cles */
body.theme-sobre .stats-section,
body.theme-sobre .stats-section.colored {
    background: var(--sobre-navy) !important;
    background-image: none !important;
    padding: 48px 0;
}
body.theme-sobre .stats-section.colored::before,
body.theme-sobre .stats-section.colored::after { content: none; display: none; }
body.theme-sobre .stats-section .row > [class*="col-"] + [class*="col-"] .stat-item { border-left: 1px solid rgba(255, 255, 255, 0.14); }
body.theme-sobre .stat-item { padding: 8px 12px; background: none; box-shadow: none; }
body.theme-sobre .stats-section .stat-number,
body.theme-sobre .stats-section .stat-suffix {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: clamp(2.5rem, 2rem + 1.5vw, 3.25rem);
    line-height: 1;
    color: #FFFFFF;
}
body.theme-sobre .stats-section .stat-label {
    display: block;
    margin-top: 10px;
    font-family: var(--font-primary);
    font-size: 0.9375rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: #C9D2DD;
}
@media (max-width: 767.98px) {
    body.theme-sobre .stats-section .row > [class*="col-"] + [class*="col-"] .stat-item { border-left: 0; }
    body.theme-sobre .stats-section .row > [class*="col-"]:nth-child(even) .stat-item { border-left: 1px solid rgba(255, 255, 255, 0.14); }
}

/* ------------------------------------------------------ Qui sommes-nous */
body.theme-sobre .about-home-section { background: #FFFFFF; }
body.theme-sobre .about-home-image-container,
body.theme-sobre .about-home-main-image { border-radius: 4px; box-shadow: none; }
body.theme-sobre .about-home-image-wrapper::before,
body.theme-sobre .about-home-image-wrapper::after,
body.theme-sobre .about-home-image-container::before,
body.theme-sobre .about-home-image-container::after,
body.theme-sobre .about-home-overlay { display: none; }
body.theme-sobre .about-home-experience-badge {
    background: var(--sobre-navy);
    border-radius: 4px;
    box-shadow: none;
}
body.theme-sobre .about-home-experience-badge .years { font-family: var(--font-heading); }
body.theme-sobre .about-home-experience-badge .text { font-family: var(--sobre-mono); letter-spacing: 0.06em; }
body.theme-sobre .about-home-paragraph { font-size: 1.0625rem; line-height: 1.7; color: var(--sobre-ink); }

/* ------------------------------------------------------------ Expertises */
body.theme-sobre .expertises-home-section { background: var(--sobre-paper); }
body.theme-sobre .expertise-home-card {
    background: #FFFFFF;
    border: 1px solid var(--sobre-line);
    border-left: 1px solid var(--sobre-line);
    border-radius: 4px;
    box-shadow: none;
    padding: 32px 28px;
    transform: none;
}
body.theme-sobre .expertise-home-card:hover {
    border-color: var(--sobre-blue);
    box-shadow: none;
    transform: none;
}
body.theme-sobre .expertise-home-icon {
    width: auto;
    height: auto;
    margin-bottom: 20px;
    justify-content: flex-start;
    background: none !important;
    box-shadow: none;
    border-radius: 0;
}
body.theme-sobre .expertise-home-icon i,
body.theme-sobre .expertise-home-icon svg { color: var(--sobre-blue) !important; font-size: 26px; }
body.theme-sobre .expertise-home-title {
    font-family: var(--font-primary);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--sobre-title);
}
body.theme-sobre .expertise-home-desc { color: var(--sobre-ink); font-size: 0.9375rem; line-height: 1.6; }
body.theme-sobre .expertise-home-link {
    font-family: var(--font-primary);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--sobre-blue);
}

/* ------------------------------------------------------------ Actualites */
body.theme-sobre .actualite-card,
body.theme-sobre .actualites-home-section .card {
    border: 1px solid var(--sobre-line);
    border-radius: 4px;
    box-shadow: none;
    overflow: hidden;
    transform: none;
}
body.theme-sobre .actualite-card:hover { border-color: var(--sobre-blue); box-shadow: none; transform: none; }
body.theme-sobre .actualite-card .card-title { font-size: 1.1875rem; line-height: 1.35; color: var(--sobre-title); }
body.theme-sobre .actualite-card .badge {
    border-radius: 2px;
    font-family: var(--sobre-mono);
    font-weight: 500;
    letter-spacing: 0.06em;
    background: var(--sobre-navy) !important;
}
body.theme-sobre .no-image-placeholder { background: var(--sobre-paper); color: #9AA0A8; }

/* ----------------------------------------------------------- Temoignages */
body.theme-sobre .testimonials-section-premium {
    background: var(--sobre-paper) !important;
    background-image: none !important;
}
body.theme-sobre .testimonials-section-premium::before,
body.theme-sobre .testimonials-section-premium::after { content: none; display: none; }
body.theme-sobre .testimonials-section-premium .section-title,
body.theme-sobre .testimonials-section-premium h2 { color: var(--sobre-title); }
body.theme-sobre .testimonials-section-premium .section-subtitle { color: var(--sobre-olive); }
body.theme-sobre .testimonial-card-premium {
    background: #FFFFFF;
    border: 1px solid var(--sobre-line);
    border-radius: 4px;
    box-shadow: none;
}
body.theme-sobre .testimonial-text {
    font-family: var(--font-heading);
    font-style: normal;
    font-size: 1.125rem;
    line-height: 1.55;
    color: var(--sobre-title);
}
body.theme-sobre .testimonial-quote-icon { background: none; color: var(--sobre-sage); box-shadow: none; }
body.theme-sobre .testimonial-rating-stars { display: none; }
body.theme-sobre .author-name { font-family: var(--font-primary); font-weight: 600; color: var(--sobre-title); }
body.theme-sobre .author-role { color: var(--sobre-blue); }
body.theme-sobre .author-company { color: var(--sobre-muted); }
body.theme-sobre .marquee-fade-left { background: linear-gradient(90deg, var(--sobre-paper), rgba(246, 245, 240, 0)) !important; }
body.theme-sobre .marquee-fade-right { background: linear-gradient(270deg, var(--sobre-paper), rgba(246, 245, 240, 0)) !important; }

/* ----------------------------------------------------------- Partenaires */
body.theme-sobre .partners-section-v4 { background: #FFFFFF; }
body.theme-sobre .partner-item-v4,
body.theme-sobre .partner-link-v4 {
    border: 1px solid var(--sobre-line);
    border-radius: 4px;
    box-shadow: none;
    background: #FFFFFF;
    transform: none;
}
body.theme-sobre .partner-logo-img {
    filter: grayscale(1);
    opacity: 0.8;
    padding: 22px 26px !important;
    transition: filter 0.2s ease, opacity 0.2s ease;
}
body.theme-sobre .partner-item-v4:hover .partner-logo-img,
body.theme-sobre .partner-link-v4:hover .partner-logo-img { filter: none; opacity: 1; }

/* ------------------------------------------------ Appel a l'action / NL */
body.theme-sobre .cta-section {
    background: var(--sobre-navy) !important;
    background-image: none !important;
}
body.theme-sobre .cta-section::before,
body.theme-sobre .cta-section::after { content: none; display: none; }
body.theme-sobre .cta-section h2 { color: #FFFFFF; font-size: clamp(1.9rem, 1.4rem + 1.4vw, 2.5rem); }
body.theme-sobre .cta-section p { color: #C9D2DD; }
/* Boutons secondaires poses sur un fond sombre (bandeaux d'appel a l'action) */
body.theme-sobre .cta-section .btn-outline-primary,
body.theme-sobre .cta-box-clean .btn-outline-primary { color: #FFFFFF; border-color: rgba(255,255,255,0.6); }
body.theme-sobre .cta-section .btn-outline-primary:hover,
body.theme-sobre .cta-box-clean .btn-outline-primary:hover { background: #FFFFFF; border-color: #FFFFFF; color: var(--sobre-title); }
body.theme-sobre .newsletter-section-v3 {
    background: var(--sobre-paper) !important;
    background-image: none !important;
}
body.theme-sobre .newsletter-section-v3::before,
body.theme-sobre .newsletter-section-v3::after { content: none; display: none; }
body.theme-sobre .newsletter-card-v3 {
    background: #FFFFFF !important;
    border: 1px solid var(--sobre-line);
    border-radius: 6px;
    box-shadow: none;
    color: var(--sobre-ink);
}
body.theme-sobre .newsletter-card-v3 h2,
body.theme-sobre .newsletter-card-v3 h3 { color: var(--sobre-title); }
body.theme-sobre .newsletter-card-v3 p { color: var(--sobre-ink); }
body.theme-sobre .newsletter-form-v3 .form-control,
body.theme-sobre .input-wrapper-v3 {
    border-radius: 6px;
    border: 1px solid #B9B6AA;
    background: #FFFFFF;
    color: var(--sobre-title);
    box-shadow: none;
}
body.theme-sobre .btn-subscribe-v3 {
    background: var(--sobre-blue);
    border: 1.5px solid var(--sobre-blue);
    border-radius: 6px;
    color: #FFFFFF;
    text-transform: none;
    letter-spacing: 0;
    box-shadow: none;
}
body.theme-sobre .btn-subscribe-v3:hover { background: var(--sobre-navy); border-color: var(--sobre-navy); }

/* --------------------------------------------------------- Pied de page */
body.theme-sobre .footer-v3 {
    background: var(--sobre-navy) !important;
    background-image: none !important;
}
body.theme-sobre .footer-v3::before,
body.theme-sobre .footer-v3::after { content: none; display: none; }
body.theme-sobre .widget-title-v3 {
    font-family: var(--font-primary);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: #FFFFFF;
}
body.theme-sobre .widget-title-v3::after,
body.theme-sobre .widget-title-v3::before { content: none; display: none; }
body.theme-sobre .footer-nav-v3 a,
body.theme-sobre .footer-tagline-v3,
body.theme-sobre .contact-item-v3 { color: #C9D2DD; }
body.theme-sobre .footer-nav-v3 a:hover { color: #FFFFFF; }
body.theme-sobre .contact-item-v3 { background: none; border: 0; box-shadow: none; padding-left: 0; padding-right: 0; }
body.theme-sobre .contact-icon-v3 { background: none; color: var(--sobre-sage); }
body.theme-sobre .footer-bottom-v3 { background: transparent; border-top: 1px solid rgba(255, 255, 255, 0.12); }
body.theme-sobre .cert-badge { border-radius: 4px; background: transparent; border: 1px solid rgba(255, 255, 255, 0.2); font-family: var(--sobre-mono); }
body.theme-sobre .footer-social-v3 a,
body.theme-sobre .social-circle { border-radius: 4px; }

/* ------------------------------------------- En-tete des pages internes */
body.theme-sobre .page-header { position: relative; }
body.theme-sobre .page-header::before {
    background: linear-gradient(90deg, rgba(var(--sobre-navy-rgb), 0.94) 0%, rgba(var(--sobre-navy-rgb), 0.80) 55%, rgba(var(--sobre-navy-rgb), 0.55) 100%) !important;
}
body.theme-sobre .page-header h1 { font-size: clamp(2.2rem, 1.6rem + 2vw, 3.25rem); color: #FFFFFF; }
body.theme-sobre .breadcrumb-item,
body.theme-sobre .breadcrumb-item a { font-family: var(--font-primary); color: #C9D2DD; }

/* -------------------------------------------------------------- Divers */
body.theme-sobre .card { border-radius: 4px; }
body.theme-sobre .form-control,
body.theme-sobre .form-select { border-radius: 6px; }
body.theme-sobre .back-to-top-v3 { border-radius: 6px; background: var(--sobre-blue); box-shadow: none; }

/* ------------------------------------------------ Trames SVG des sections
 * Retirees ; l'etoile BGFI (images/ok.png) reste en filigrane. */
body.theme-sobre .about-home-image-wrapper::after,
body.theme-sobre .badge-inner::before,
body.theme-sobre .cta-section::before,
body.theme-sobre .testimonials-section-premium::before,
body.theme-sobre .testimonials-section-premium::after,
body.theme-sobre .stats-section.colored::before {
    background-image: none !important;
}

/* ----------------------------------------- Contrastes sur fonds clairs */
body.theme-sobre .testimonials-section-premium .section-title,
body.theme-sobre .testimonials-section-premium .section-header h2 { color: var(--sobre-title) !important; }
body.theme-sobre .testimonials-section-premium .section-description,
body.theme-sobre .testimonials-section-premium .section-header p { color: var(--sobre-ink) !important; }
body.theme-sobre .newsletter-content-v3,
body.theme-sobre .newsletter-content-v3 h2,
body.theme-sobre .newsletter-content-v3 h3,
body.theme-sobre .newsletter-content-v3 p,
body.theme-sobre .newsletter-card-v3 label,
body.theme-sobre .newsletter-card-v3 .form-check-label,
body.theme-sobre .newsletter-card-v3 .form-hint-v3,
body.theme-sobre .newsletter-card-v3 small { color: var(--sobre-ink) !important; }
body.theme-sobre .newsletter-content-v3 h2,
body.theme-sobre .newsletter-content-v3 h3 { color: var(--sobre-title) !important; }
body.theme-sobre .newsletter-card-v3 a { color: var(--sobre-blue) !important; }
body.theme-sobre .newsletter-form-v3 .input-wrapper-v3 .form-control { border: 0; }
body.theme-sobre .testimonial-quote-icon { flex-shrink: 0; }
body.theme-sobre .partner-logo-container { border: 0; box-shadow: none; background: transparent; }

/* Titres dans les cartes sur fond sombre (ex. « Informations de contact ») */
body.theme-sobre .text-white h1, body.theme-sobre .text-white h2, body.theme-sobre .text-white h3,
body.theme-sobre .text-white h4, body.theme-sobre .text-white h5, body.theme-sobre .text-white h6 { color: #FFFFFF; }

/* ---------------------------------------------------------------- Mobile */
@media (max-width: 767.98px) {
    body.theme-sobre .hero-slider .carousel-item { min-height: 560px; }
    body.theme-sobre .hero-slider .carousel-overlay {
        background: linear-gradient(180deg, rgba(var(--sobre-navy-rgb), 0.55) 0%, rgba(var(--sobre-navy-rgb), 0.92) 55%) !important;
    }
    body.theme-sobre .hero-slider .carousel-overlay > .container { align-items: flex-end !important; padding-bottom: 72px; }
    body.theme-sobre .hero-badge { font-size: 11px; margin-bottom: 12px; }
    body.theme-sobre .hero-title { font-size: 2rem; line-height: 1.1; }
    body.theme-sobre .hero-description {
        font-size: 1rem;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    body.theme-sobre .section-title { font-size: 1.75rem; }
    body.theme-sobre .stats-section { padding: 32px 0; }
}

/* =========================================================================
 * ACCUEIL RECOMPOSE (frontend/home-sobre.blade.php) — composants hs-*
 * ========================================================================= */
body.theme-sobre .hs-section { padding: clamp(72px, 9vw, 128px) 0; }
body.theme-sobre .hs-eyebrow {
    margin: 0 0 16px;
    font-family: var(--sobre-mono);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--sobre-olive);
}
body.theme-sobre .hs-eyebrow--light { color: var(--sobre-sage); }
body.theme-sobre .hs-title {
    margin: 0 0 24px;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: clamp(2rem, 1.3rem + 1.9vw, 3rem);
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--sobre-title);
    max-width: 22ch;
}
body.theme-sobre .hs-title--light { color: #FFFFFF; }
body.theme-sobre .hs-lead { font-family: var(--font-heading); font-weight: 500; font-size: clamp(1.2rem, 1.05rem + 0.4vw, 1.4rem); line-height: 1.5; color: var(--sobre-title); margin-bottom: 20px; }
body.theme-sobre .hs-lead p, body.theme-sobre .hs-body p { margin: 0 0 12px; }
body.theme-sobre .hs-body { font-size: 1.0625rem; line-height: 1.7; color: var(--sobre-ink); margin-bottom: 28px; }
body.theme-sobre .hs-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    font-size: 1rem;
    color: var(--sobre-blue);
    text-decoration: none;
    border-bottom: 1.5px solid currentColor;
    padding-bottom: 4px;
}
body.theme-sobre .hs-link i { font-size: 0.85em; transition: transform 0.2s ease; }
body.theme-sobre .hs-link:hover { color: var(--sobre-title); }
body.theme-sobre .hs-link:hover i { transform: translateX(4px); }
body.theme-sobre .hs-link--light { color: #FFFFFF; }
body.theme-sobre .hs-link--light:hover { color: var(--sobre-sage); }
body.theme-sobre .hs-meta {
    margin: 0 0 10px;
    font-family: var(--sobre-mono);
    font-size: 12.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sobre-olive);
}
body.theme-sobre .hs-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 56px; }
body.theme-sobre .hs-head .hs-title { margin-bottom: 0; }
body.theme-sobre .hs-head__aside { max-width: 420px; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
body.theme-sobre .hs-head__aside p { margin: 0; color: var(--sobre-ink); font-size: 1.0625rem; line-height: 1.6; }

/* Ouverture : fondu marine a gauche, titre editorial */
body.theme-sobre .hs-hero .hero-slider .carousel-item { min-height: clamp(560px, 82vh, 760px); }
body.theme-sobre .hs-hero .carousel-overlay > .container { padding-bottom: 72px; }
body.theme-sobre .hs-hero .hero-title { max-width: 16ch; }

/* Chiffres cles en appui du hero */
body.theme-sobre .hs-proof { position: relative; z-index: 5; margin-top: -72px; }
body.theme-sobre .hs-proof__grid {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: #FFFFFF;
    border: 1px solid var(--sobre-line);
    box-shadow: 0 24px 48px rgba(var(--sobre-navy-rgb), 0.10);
}
body.theme-sobre .hs-proof__item { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 10px; padding: 32px 36px; }
body.theme-sobre .hs-proof__item + .hs-proof__item { border-left: 1px solid var(--sobre-line); }
body.theme-sobre .hs-proof__value { margin: 0; font-family: var(--font-heading); font-weight: 600; font-size: clamp(2.4rem, 1.9rem + 1.4vw, 3.4rem); line-height: 1; color: var(--sobre-blue); }
body.theme-sobre .hs-proof__label { font-weight: 400; font-size: 0.9375rem; color: var(--sobre-ink); }

/* Qui sommes-nous */
body.theme-sobre .hs-about__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(48px, 7vw, 112px); align-items: center; }
body.theme-sobre .hs-about__media { position: relative; }
body.theme-sobre .hs-about__media figure { margin: 0; overflow: hidden; }
body.theme-sobre .hs-about__main img, body.theme-sobre .hs-about__main picture { display: block; width: 100%; height: 540px; object-fit: cover; }
body.theme-sobre .hs-about__second {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 42%;
    border: 8px solid #FFFFFF;
    background: #FFFFFF;
}
body.theme-sobre .hs-about__second img { display: block; width: 100%; height: 280px; object-fit: cover; }
body.theme-sobre .hs-about__badge {
    position: absolute;
    right: -1px;
    top: 32px;
    background: var(--sobre-navy);
    color: #FFFFFF;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
body.theme-sobre .hs-about__badge-num { font-family: var(--font-heading); font-weight: 600; font-size: 2.4rem; line-height: 1; }
body.theme-sobre .hs-about__badge-txt { font-family: var(--sobre-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sobre-sage); }

/* Expertises : grille numerotee */
body.theme-sobre .hs-expertises { background: var(--sobre-paper); }
body.theme-sobre .hs-exp-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: var(--sobre-line);
    border: 1px solid var(--sobre-line);
}
body.theme-sobre .hs-exp {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 36px 32px 32px;
    background: #FFFFFF;
    color: var(--sobre-ink);
    text-decoration: none;
    transition: background-color 0.25s ease, color 0.25s ease;
}
body.theme-sobre .hs-exp__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
body.theme-sobre .hs-exp__icon { font-size: 26px; color: var(--sobre-blue); transition: color 0.25s ease; }
body.theme-sobre .hs-exp__num { font-family: var(--sobre-mono); font-size: 13px; color: #6B717C; transition: color 0.25s ease; }
body.theme-sobre .hs-exp__title { font-family: var(--font-heading); font-weight: 600; font-size: 1.5rem; line-height: 1.2; color: var(--sobre-title); transition: color 0.25s ease; }
body.theme-sobre .hs-exp__desc { font-size: 0.9375rem; line-height: 1.6; flex-grow: 1; }
body.theme-sobre .hs-exp__more { font-weight: 600; font-size: 0.9375rem; color: var(--sobre-blue); display: inline-flex; gap: 8px; align-items: center; transition: color 0.25s ease; }
body.theme-sobre .hs-exp:hover, body.theme-sobre .hs-exp:focus-visible { background: var(--sobre-navy); color: #C9D2DD; }
body.theme-sobre .hs-exp:hover .hs-exp__title, body.theme-sobre .hs-exp:focus-visible .hs-exp__title { color: #FFFFFF; }
body.theme-sobre .hs-exp:hover .hs-exp__icon, body.theme-sobre .hs-exp:hover .hs-exp__more,
body.theme-sobre .hs-exp:focus-visible .hs-exp__icon, body.theme-sobre .hs-exp:focus-visible .hs-exp__more { color: var(--sobre-sage); }
body.theme-sobre .hs-exp:hover .hs-exp__num { color: #C9D2DD; }

/* Confiance */
body.theme-sobre .hs-trust { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: var(--sobre-navy); color: #C9D2DD; }
body.theme-sobre .hs-trust__media img { display: block; width: 100%; height: 100%; min-height: 560px; object-fit: cover; }
body.theme-sobre .hs-trust__body { padding: clamp(64px, 7vw, 112px) clamp(24px, 8vw, 128px) clamp(64px, 7vw, 112px) clamp(24px, 6vw, 96px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
body.theme-sobre .hs-trust__text { font-size: 1.0625rem; line-height: 1.7; margin: 0 0 32px; max-width: 520px; }
body.theme-sobre .hs-trust__list { list-style: none; margin: 0 0 36px; padding: 0; width: 100%; max-width: 520px; }
body.theme-sobre .hs-trust__list li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, 0.14); }
body.theme-sobre .hs-trust__list li:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
body.theme-sobre .hs-trust__name { font-family: var(--font-heading); font-weight: 600; font-size: 1.25rem; color: #FFFFFF; }
body.theme-sobre .hs-trust__org { font-family: var(--sobre-mono); font-size: 12.5px; letter-spacing: 0.04em; color: #A9B4C2; text-align: right; }

/* Actualites : une a la une + liste */
body.theme-sobre .hs-news__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); }
body.theme-sobre .hs-news__img { display: block; margin-bottom: 24px; overflow: hidden; background: var(--sobre-paper); }
body.theme-sobre .hs-news__img img, body.theme-sobre .hs-news__img picture { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 0.5s ease; }
body.theme-sobre .hs-news__featured:hover .hs-news__img img { transform: scale(1.03); }
body.theme-sobre .hs-news__title { margin: 0 0 12px; font-family: var(--font-heading); font-weight: 600; font-size: clamp(1.5rem, 1.2rem + 0.8vw, 2rem); line-height: 1.2; }
body.theme-sobre .hs-news__title a { color: var(--sobre-title); text-decoration: none; }
body.theme-sobre .hs-news__title a:hover { color: var(--sobre-blue); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
body.theme-sobre .hs-news__title--sm { font-size: 1.1875rem; line-height: 1.35; margin: 0; }
body.theme-sobre .hs-news__excerpt { margin: 0; font-size: 1.0625rem; line-height: 1.65; color: var(--sobre-ink); max-width: 60ch; }
body.theme-sobre .hs-news__list { display: flex; flex-direction: column; border-top: 1px solid var(--sobre-line); }
body.theme-sobre .hs-news__item { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 22px; padding: 24px 0; border-bottom: 1px solid var(--sobre-line); align-items: start; }
body.theme-sobre .hs-news__thumb { display: block; overflow: hidden; background: var(--sobre-paper); }
body.theme-sobre .hs-news__thumb img, body.theme-sobre .hs-news__thumb picture { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
body.theme-sobre .hs-news__noimg { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 4 / 3; color: #9AA0A8; font-size: 28px; }

/* Temoignages */
body.theme-sobre .hs-quote { background: var(--sobre-paper); }
body.theme-sobre .hs-quote__main { margin: 0; max-width: 1000px; }
body.theme-sobre .hs-quote__text {
    margin: 0 0 36px;
    font-family: var(--font-heading);
    font-weight: 500;
    font-size: clamp(1.6rem, 1.1rem + 1.5vw, 2.5rem);
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--sobre-title);
}
body.theme-sobre .hs-quote__author { display: flex; align-items: center; gap: 16px; }
body.theme-sobre .hs-quote__author strong { display: block; color: var(--sobre-title); font-size: 1.0625rem; }
body.theme-sobre .hs-quote__author span span { color: var(--sobre-muted); font-size: 0.9375rem; }
body.theme-sobre .hs-quote__avatar, body.theme-sobre .hs-quote__author img { width: 60px; height: 60px; border-radius: 50%; object-fit: cover; }
body.theme-sobre .hs-quote__others { margin-top: 64px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; border-top: 1px solid var(--sobre-line); padding-top: 40px; }
body.theme-sobre .hs-quote__small { margin: 0; }
body.theme-sobre .hs-quote__small blockquote { margin: 0 0 14px; font-family: var(--font-heading); font-size: 1.1875rem; line-height: 1.5; color: var(--sobre-title); }
body.theme-sobre .hs-quote__small figcaption { font-size: 0.9375rem; color: var(--sobre-muted); }
body.theme-sobre .hs-quote__small figcaption strong { color: var(--sobre-title); }

/* Partenaires : bandeau de logos */
body.theme-sobre .hs-partners { padding: 56px 0; border-top: 1px solid var(--sobre-line); border-bottom: 1px solid var(--sobre-line); background: #FFFFFF; }
body.theme-sobre .hs-partners__head { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 28px; }
body.theme-sobre .hs-partners__head .hs-eyebrow { margin: 0; }
body.theme-sobre .hs-partners__row { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 24px 40px; align-items: center; }
body.theme-sobre .hs-partners__row img { display: block; width: 100%; height: 56px; object-fit: contain; filter: grayscale(1); opacity: 0.7; transition: filter 0.2s ease, opacity 0.2s ease; }
body.theme-sobre .hs-partners__row a:hover img, body.theme-sobre .hs-partners__row a:focus-visible img { filter: none; opacity: 1; }
body.theme-sobre .hs-partners__name { font-weight: 600; color: var(--sobre-muted); }

/* Appel a l'action */
body.theme-sobre .hs-cta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: var(--sobre-navy); color: #C9D2DD; }
body.theme-sobre .hs-cta__body { padding: clamp(64px, 7vw, 112px) clamp(24px, 6vw, 96px) clamp(64px, 7vw, 112px) max(24px, calc((100vw - 1320px) / 2 + 12px)); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
body.theme-sobre .hs-cta__body p { font-size: 1.125rem; line-height: 1.65; margin: 0 0 32px; max-width: 520px; }
body.theme-sobre .hs-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; }
body.theme-sobre .hs-cta__media img { display: block; width: 100%; height: 100%; min-height: 480px; object-fit: cover; }

/* Responsive */
@media (max-width: 991.98px) {
    body.theme-sobre .hs-head { flex-direction: column; align-items: flex-start; gap: 20px; margin-bottom: 40px; }
    body.theme-sobre .hs-proof { margin-top: 0; }
    body.theme-sobre .hs-proof .container { padding: 0; max-width: none; }
    body.theme-sobre .hs-proof__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); box-shadow: none; border-left: 0; border-right: 0; }
    body.theme-sobre .hs-proof__item { padding: 24px 20px; }
    body.theme-sobre .hs-proof__item:nth-child(3) { border-left: 0; }
    body.theme-sobre .hs-proof__item:nth-child(n+3) { border-top: 1px solid var(--sobre-line); }
    body.theme-sobre .hs-about__grid,
    body.theme-sobre .hs-news__grid,
    body.theme-sobre .hs-trust,
    body.theme-sobre .hs-cta { grid-template-columns: minmax(0, 1fr); }
    body.theme-sobre .hs-about__media { order: -1; }
    body.theme-sobre .hs-about__main img, body.theme-sobre .hs-about__main picture { height: 380px; }
    body.theme-sobre .hs-about__second img { height: 180px; }
    body.theme-sobre .hs-exp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.theme-sobre .hs-trust__media img, body.theme-sobre .hs-cta__media img { min-height: 280px; max-height: 360px; }
    body.theme-sobre .hs-cta__media { order: -1; }
    body.theme-sobre .hs-cta__body { padding: 56px 24px; }
    body.theme-sobre .hs-quote__others { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 575.98px) {
    body.theme-sobre .hs-exp-grid { grid-template-columns: minmax(0, 1fr); }
    body.theme-sobre .hs-exp { padding: 28px 24px; }
    body.theme-sobre .hs-news__item { grid-template-columns: 104px minmax(0, 1fr); gap: 16px; }
    body.theme-sobre .hs-partners__head { flex-direction: column; }
    body.theme-sobre .hs-partners__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.theme-sobre .hs-trust__list li { flex-direction: column; gap: 4px; }
    body.theme-sobre .hs-trust__org { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
    body.theme-sobre .hs-exp, body.theme-sobre .hs-news__img img, body.theme-sobre .hs-link i { transition: none; }
}

/* Ajustements accueil */
body.theme-sobre .hero-slider .video-background { position: absolute; inset: 0; overflow: hidden; }
/* Plein cadre ; annule le translate(-50%,-50%) de l'ancien centrage et
   recadre les bandes noires incrustees dans la video institutionnelle. */
body.theme-sobre .hero-slider .video-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    object-fit: cover;
    transform: scale(1.25);
    transform-origin: center;
}
body.theme-sobre .hs-lead { font-family: var(--font-primary); font-weight: 400; font-size: 1.1875rem; line-height: 1.65; color: #1F2937; }
body.theme-sobre .hs-partners__row { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 24px 28px; }
body.theme-sobre .hs-partners__row img { height: 52px; }
body.theme-sobre .cert-label-v3 { font-family: var(--sobre-mono); letter-spacing: 0.08em; }

/* ------------------------------------------------ Pages internes (suite) */
/* En-tete : l'image de la charte reste, sous un voile marine dense */
body.theme-sobre .page-header {
    background-image: linear-gradient(90deg, rgba(var(--sobre-navy-rgb), 0.97) 0%, rgba(var(--sobre-navy-rgb), 0.90) 60%, rgba(var(--sobre-navy-rgb), 0.80) 100%), var(--page-header-bg, none) !important;
    background-size: cover;
    background-position: center;
}
body.theme-sobre .page-header h1::after,
body.theme-sobre .page-header .title-underline { background: var(--sobre-sage) !important; height: 2px; }
/* Fiche actualite */
body.theme-sobre .article-header { background: var(--sobre-navy) !important; border-radius: 4px 4px 0 0; }
body.theme-sobre .article-header::before, body.theme-sobre .article-header::after { content: none !important; }
body.theme-sobre .article-category-badge {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 2px;
    font-family: var(--sobre-mono);
    font-weight: 500;
    letter-spacing: 0.06em;
    color: #FFFFFF !important;
}
body.theme-sobre .article-content, body.theme-sobre .sidebar-widget { border-radius: 4px; box-shadow: none; border: 1px solid var(--sobre-line); }
body.theme-sobre .article-body { font-size: 1.0625rem; line-height: 1.75; color: var(--sobre-ink); }
body.theme-sobre .article-body h2, body.theme-sobre .article-body h3 { color: var(--sobre-title); margin-top: 1.6em; }
/* Encadres newsletter des barres laterales : marine uni, bouton blanc */
body.theme-sobre .newsletter-widget { background: var(--sobre-navy) !important; border-radius: 4px; }
body.theme-sobre .newsletter-widget::before, body.theme-sobre .newsletter-widget::after { content: none !important; }
body.theme-sobre .newsletter-widget .btn,
body.theme-sobre .newsletter-widget button[type="submit"] {
    background: #FFFFFF !important;
    color: var(--sobre-title) !important;
    border: 1.5px solid #FFFFFF !important;
    border-radius: 6px;
}
/* Pastilles de categories en degrade : unifiees */
body.theme-sobre [class*="cat-"].badge,
body.theme-sobre .article-card .badge,
body.theme-sobre .actu-card .badge { background: var(--sobre-navy) !important; border-radius: 2px; font-family: var(--sobre-mono); font-weight: 500; letter-spacing: 0.06em; }
body.theme-sobre .hs-proof__value .stat-number { color: inherit; font: inherit; }
body.theme-sobre .hs-hero .hero-pause-toggle { bottom: 96px; left: max(16px, calc((100vw - 1320px) / 2 + 12px)); }
body.theme-sobre .hs-hero .video-sound-toggle { bottom: 96px; }
@media (max-width: 991.98px) {
    body.theme-sobre .hs-hero .hero-pause-toggle { bottom: 20px; }
    body.theme-sobre .hs-hero .video-sound-toggle { bottom: 72px; }
}

/* Etoile en filigrane dans les sections de l'accueil sobre : le contenu
   passe au-dessus des etoiles injectees par frontend.js (z-index 0). */
body.theme-sobre .hs-section > .container,
body.theme-sobre .hs-partners > .container,
body.theme-sobre .hs-trust > :not(.bgfi-auto-star),
body.theme-sobre .hs-cta > :not(.bgfi-auto-star) { position: relative; z-index: 1; }

/* =========================================================================
 * FORMULAIRES (contact, candidature, newsletter, recherche)
 * ========================================================================= */
body.theme-sobre main .form-label,
body.theme-sobre .contact-form-wrapper .form-label { font-weight: 600; font-size: 0.9375rem; color: var(--sobre-title); margin-bottom: 8px; }
body.theme-sobre main .form-control,
body.theme-sobre main .form-select {
    min-height: 52px;
    padding: 12px 16px;
    font-family: var(--font-primary);
    font-size: 1rem;
    color: var(--sobre-title);
    background-color: #FFFFFF;
    border: 1px solid #B9B6AA;
    border-radius: 6px;
    box-shadow: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.theme-sobre main textarea.form-control { min-height: 140px; line-height: 1.6; }
body.theme-sobre main .form-control::placeholder { color: #767B84; opacity: 1; }
body.theme-sobre main .form-select {
    padding-right: 44px;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%233E4757' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    background-size: 14px 10px !important;
}
body.theme-sobre main .form-control:hover,
body.theme-sobre main .form-select:hover { border-color: #8A8F99; }
body.theme-sobre main .form-control:focus,
body.theme-sobre main .form-select:focus {
    border-color: var(--sobre-blue);
    box-shadow: 0 0 0 3px rgba(var(--bgfi-blue-rgb, 0, 58, 116), 0.18);
    outline: none;
}
body.theme-sobre main .form-control.is-invalid { border-color: #B42318; }
body.theme-sobre main .invalid-feedback { color: #B42318; font-size: 0.875rem; }
body.theme-sobre .form-check-input {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    border: 1.5px solid #6B717C;
    border-radius: 4px;
    background-color: #FFFFFF;
    box-shadow: none;
}
body.theme-sobre .form-check-input:checked { background-color: var(--sobre-blue); border-color: var(--sobre-blue); }
body.theme-sobre .form-check-input:focus { box-shadow: 0 0 0 3px rgba(var(--bgfi-blue-rgb, 0, 58, 116), 0.18); border-color: var(--sobre-blue); }
body.theme-sobre .form-check-label { color: var(--sobre-ink); font-size: 0.9375rem; line-height: 1.5; }
body.theme-sobre .form-check-label a { color: var(--sobre-blue); }
body.theme-sobre main button[type="submit"].btn { min-height: 52px; padding: 12px 28px; }

/* Newsletter (bas de page) : champ et bouton d'un seul bloc */
body.theme-sobre .newsletter-card-v3 { padding: clamp(28px, 4vw, 48px) clamp(24px, 4vw, 56px); }
body.theme-sobre .newsletter-content-v3 h3 { font-family: var(--font-heading); font-weight: 600; font-size: clamp(1.6rem, 1.3rem + 0.8vw, 2rem); margin: 0 0 10px; }
body.theme-sobre .newsletter-content-v3 p { margin: 0; font-size: 1rem; line-height: 1.6; }
body.theme-sobre .newsletter-badge i { display: none; }
body.theme-sobre .newsletter-form-v3 .form-wrapper-v3 {
    display: flex;
    align-items: stretch;
    gap: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
body.theme-sobre .newsletter-form-v3 .input-wrapper-v3 {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    height: 56px;
    background: #FFFFFF;
    border: 1px solid #B9B6AA;
    border-right: 0;
    border-radius: 6px 0 0 6px;
    box-shadow: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.theme-sobre .newsletter-form-v3 .input-wrapper-v3:focus-within {
    border-color: var(--sobre-blue);
    box-shadow: 0 0 0 3px rgba(var(--bgfi-blue-rgb, 0, 58, 116), 0.18);
}
body.theme-sobre .newsletter-form-v3 .input-icon-v3 { position: absolute; left: 18px; color: #767B84; font-size: 15px; pointer-events: none; }
body.theme-sobre .newsletter-form-v3 .form-control {
    height: 100%;
    min-height: 0;
    padding: 0 16px 0 46px;
    border: 0 !important;
    border-radius: 6px 0 0 6px;
    background: transparent !important;
    box-shadow: none !important;
    font-family: var(--font-primary);
    font-size: 1rem;
    color: var(--sobre-title);
}
body.theme-sobre .newsletter-form-v3 .form-control::placeholder { color: #767B84; }
body.theme-sobre .newsletter-form-v3 .btn-subscribe-v3 {
    flex: 0 0 auto;
    height: 56px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0 28px;
    font-family: var(--font-primary);
    font-weight: 600;
    font-size: 1rem;
    border-radius: 0 6px 6px 0;
    transform: none;
}
body.theme-sobre .newsletter-form-v3 .btn-subscribe-v3:focus-visible { outline: 2px solid var(--sobre-blue); outline-offset: 2px; }
body.theme-sobre .newsletter-form-v3 .form-check { margin-top: 16px; }
body.theme-sobre .newsletter-form-v3 .form-check-label,
body.theme-sobre .newsletter-form-v3 .form-check-label * { color: var(--sobre-ink) !important; }
body.theme-sobre .newsletter-form-v3 .form-check-label a { color: var(--sobre-blue) !important; }
body.theme-sobre .form-hint-v3 { margin: 10px 0 0; font-size: 0.8125rem; color: var(--sobre-muted) !important; }
@media (max-width: 575.98px) {
    body.theme-sobre .newsletter-form-v3 .form-wrapper-v3 { flex-direction: column; gap: 10px; }
    body.theme-sobre .newsletter-form-v3 .input-wrapper-v3 { border-right: 1px solid #B9B6AA; border-radius: 6px; }
    body.theme-sobre .newsletter-form-v3 .btn-subscribe-v3 { border-radius: 6px; justify-content: center; }
}

/* =========================================================================
 * PAGE A PROPOS ET PAGES CONSTRUITES (Page Builder : pages/dynamic + blocs)
 * Meme grammaire que l'accueil : bandeaux marine, papier, filets fins,
 * titres a empattements, chiffres en bleu, pas de degrade ni de pastille.
 * ========================================================================= */

/* En-tete : identique a .page-header (voile marine dense, etoile en filigrane) */
body.theme-sobre .dynamic-page-hero {
    background: var(--sobre-navy);
    background-image: linear-gradient(90deg, rgba(var(--sobre-navy-rgb), 0.97) 0%, rgba(var(--sobre-navy-rgb), 0.90) 60%, rgba(var(--sobre-navy-rgb), 0.80) 100%), var(--page-header-bg, none);
    background-size: cover;
    background-position: center;
    padding: clamp(88px, 9vw, 128px) 0 clamp(56px, 6vw, 80px);
}
body.theme-sobre .dynamic-page-hero::before { content: none; }
body.theme-sobre .dynamic-page-hero .container { z-index: 2; }
body.theme-sobre .dynamic-page-hero h1 {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: clamp(2.2rem, 1.6rem + 2vw, 3.25rem);
    letter-spacing: -0.015em;
    line-height: 1.1;
    margin: 12px 0 18px;
}
body.theme-sobre .dynamic-page-hero h1::after {
    content: '';
    display: block;
    width: 56px;
    height: 2px;
    margin-top: 20px;
    background: var(--sobre-sage);
}
body.theme-sobre .dynamic-page-hero .hero-subtitle { color: #C9D2DD; font-size: 1.125rem; line-height: 1.6; }
body.theme-sobre .dynamic-page-hero .breadcrumb-item.active { color: #FFFFFF; }

/* Rythme des sections des blocs */
body.theme-sobre .page-block .section { padding: clamp(72px, 8vw, 112px) 0; }
body.theme-sobre .page-block .section-header { margin-bottom: 56px; }
body.theme-sobre .page-block .section-description { color: var(--sobre-ink); font-size: 1.0625rem; line-height: 1.65; max-width: 60ch; margin-left: auto; margin-right: auto; }

/* Image + texte (introduction) */
body.theme-sobre .about-img-frame { border-radius: 0; box-shadow: none; }
body.theme-sobre .about-img { height: 480px; }
body.theme-sobre .about-img-frame:hover .about-img { transform: none; }
body.theme-sobre .about-badge {
    right: -1px;
    bottom: auto;
    top: 32px;
    border-radius: 0;
    box-shadow: none;
    background: var(--sobre-navy);
    padding: 20px 24px;
    text-align: left;
}
body.theme-sobre .about-badge-number { font-weight: 600; font-size: 2.4rem; }
body.theme-sobre .about-badge-text { margin-top: 6px; font-family: var(--sobre-mono); font-size: 12px; letter-spacing: 0.08em; color: var(--sobre-sage); opacity: 1; }
body.theme-sobre .about-text-title {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: clamp(2rem, 1.3rem + 1.9vw, 2.75rem);
    line-height: 1.12;
    letter-spacing: -0.015em;
    color: var(--sobre-title);
    margin: 0 0 24px;
}
body.theme-sobre .about-desc { font-size: 1.0625rem; line-height: 1.7; color: var(--sobre-ink); text-align: left; }
body.theme-sobre .about-actions .btn { border-radius: 4px; }

/* Mission & vision : deux colonnes sur marine, separees par un filet */
body.theme-sobre .about-mvv-band--duo {
    position: relative;
    overflow: hidden;
    background-color: var(--sobre-navy);
    background-image: linear-gradient(90deg, rgba(var(--sobre-navy-rgb), 0.97) 0%, rgba(var(--sobre-navy-rgb), 0.92) 100%), var(--page-header-bg, none);
    padding: clamp(72px, 8vw, 112px) 0;
}
body.theme-sobre .about-mvv-band > .container { position: relative; z-index: 1; }
body.theme-sobre .about-mvv-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
body.theme-sobre .about-mvv-card,
body.theme-sobre .about-mvv-card--mission,
body.theme-sobre .about-mvv-card--vision {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
    padding: 8px clamp(24px, 4vw, 64px);
    transform: none;
}
body.theme-sobre .about-mvv-card:first-child { padding-left: 0; }
body.theme-sobre .about-mvv-card + .about-mvv-card { border-left: 1px solid rgba(255, 255, 255, 0.16); padding-right: 0; }
body.theme-sobre .about-mvv-card:hover { transform: none; box-shadow: none; }
body.theme-sobre .about-mvv-card-icon,
body.theme-sobre .about-mvv-card--mission .about-mvv-card-icon,
body.theme-sobre .about-mvv-card--vision .about-mvv-card-icon {
    width: auto;
    height: auto;
    background: none;
    box-shadow: none;
    border-radius: 0;
    justify-content: flex-start;
    margin-bottom: 20px;
    font-size: 26px;
    color: var(--sobre-sage);
}
body.theme-sobre .about-mvv-card-icon i { color: var(--sobre-sage); font-size: 26px; }
body.theme-sobre .about-mvv-card h3,
body.theme-sobre .about-mvv-card--vision h3 {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: clamp(1.6rem, 1.3rem + 0.8vw, 2rem);
    color: #FFFFFF;
    margin-bottom: 16px;
}
body.theme-sobre .about-mvv-card .formatted-text,
body.theme-sobre .about-mvv-card--vision .formatted-text { color: #C9D2DD; font-size: 1rem; line-height: 1.7; }
body.theme-sobre .about-mvv-card .formatted-text li::before { background: var(--sobre-sage); }

/* Valeurs : papier, grille a filets comme les expertises de l'accueil */
body.theme-sobre .about-mvv-band--values { position: relative; overflow: hidden; background: var(--sobre-paper); padding: clamp(72px, 8vw, 112px) 0; }
body.theme-sobre .about-values-box { background: none; border-radius: 0; padding: 0; overflow: visible; }
body.theme-sobre .about-values-box::before { content: none; }
body.theme-sobre .about-values-header { margin-bottom: 40px; gap: 14px; }
body.theme-sobre .about-values-icon { width: auto; height: auto; background: none; border: 0; box-shadow: none; border-radius: 0; }
body.theme-sobre .about-values-icon i { color: var(--sobre-blue); font-size: 22px; }
body.theme-sobre .about-values-header h3 {
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: clamp(1.8rem, 1.3rem + 1.4vw, 2.5rem);
    letter-spacing: -0.01em;
    text-transform: none;
    color: var(--sobre-title);
    margin: 0;
}
body.theme-sobre .about-values-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1px;
    background: var(--sobre-line);
    border: 1px solid var(--sobre-line);
}
body.theme-sobre .about-value-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 32px 28px;
    background: #FFFFFF;
    border: 0;
    border-radius: 0;
    backdrop-filter: none;
    box-shadow: none;
    transform: none;
}
body.theme-sobre .about-value-card:hover { background: #FFFFFF; transform: none; box-shadow: none; }
body.theme-sobre .about-value-icon { width: auto; height: auto; background: none; border-radius: 0; box-shadow: none; }
body.theme-sobre .about-value-icon i { color: var(--sobre-blue); font-size: 22px; }
body.theme-sobre .about-value-text h4 { font-family: var(--font-heading); font-weight: 600; font-size: 1.3rem; color: var(--sobre-title); margin-bottom: 8px; }
body.theme-sobre .about-value-text p { color: var(--sobre-ink); font-size: 0.9375rem; line-height: 1.6; margin: 0; }

/* Chiffres cles : bande blanche a filets, chiffres en bleu (cf. hs-proof) */
body.theme-sobre .about-stats { padding: 0; background: #FFFFFF; border-bottom: 1px solid var(--sobre-line); }
body.theme-sobre .about-stats-bg { display: none; }
body.theme-sobre .about-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0; }
body.theme-sobre .about-stats-divider { display: none; }
body.theme-sobre .about-stat-item { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 40px 36px; transform: none; }
body.theme-sobre .about-stat-item + .about-stats-divider + .about-stat-item { border-left: 1px solid var(--sobre-line); }
body.theme-sobre .about-stat-item:hover { transform: none; }
body.theme-sobre .about-stat-icon,
body.theme-sobre .about-stat-item:hover .about-stat-icon { width: auto; height: auto; background: none; border: 0; box-shadow: none; }
body.theme-sobre .about-stat-icon i,
body.theme-sobre .about-stat-item:hover .about-stat-icon i { color: var(--sobre-olive); font-size: 20px; }
body.theme-sobre .about-stat-number { font-family: var(--font-heading); font-weight: 600; font-size: clamp(2.4rem, 1.9rem + 1.4vw, 3.4rem); line-height: 1; color: var(--sobre-blue); }
body.theme-sobre .about-stat-count,
body.theme-sobre .about-stat-plus { color: var(--sobre-blue); font-family: inherit; font-weight: inherit; font-size: inherit; }
body.theme-sobre .about-stat-label { font-family: var(--font-primary); font-size: 0.9375rem; letter-spacing: 0; text-transform: none; color: var(--sobre-ink); }

/* Avantages : grille a filets, texte aligne a gauche */
body.theme-sobre .about-advantages { background: #FFFFFF; }
body.theme-sobre .about-trust-badges { gap: 10px; }
body.theme-sobre .about-trust-badge {
    background: transparent;
    border: 1px solid var(--sobre-line);
    border-radius: 2px;
    color: var(--sobre-olive);
    font-family: var(--sobre-mono);
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    box-shadow: none;
}
body.theme-sobre .about-advantages-grid {
    gap: 1px;
    background: var(--sobre-line);
    border: 1px solid var(--sobre-line);
}
body.theme-sobre .about-advantage-inner {
    height: 100%;
    background: #FFFFFF;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 36px 30px;
    text-align: left;
    align-items: flex-start;
    transform: none;
}
body.theme-sobre .about-advantage-inner::before { content: none; }
body.theme-sobre .about-advantage-card:hover .about-advantage-inner { transform: none; box-shadow: none; }
body.theme-sobre .about-advantage-icon,
body.theme-sobre .about-advantage-card:hover .about-advantage-icon {
    width: auto;
    height: auto;
    margin: 0 0 20px;
    background: none;
    box-shadow: none;
    border-radius: 0;
    transform: none;
    justify-content: flex-start;
}
body.theme-sobre .about-advantage-icon i { color: var(--sobre-blue); font-size: 26px; }
body.theme-sobre .about-advantage-title { font-family: var(--font-heading); font-weight: 600; font-size: 1.3rem; line-height: 1.25; color: var(--sobre-title); text-align: left; margin-bottom: 14px; }
body.theme-sobre .about-advantage-desc { font-size: 0.9375rem; line-height: 1.65; color: var(--sobre-ink); text-align: left; }
body.theme-sobre .about-advantage-desc ul li::before { color: var(--sobre-sage); }

/* Clients / filiales */
body.theme-sobre .block-filiales-grid { background: var(--sobre-paper) !important; }
body.theme-sobre .about-client-stat {
    background: #FFFFFF;
    border: 1px solid var(--sobre-line);
    border-radius: 0;
    box-shadow: none;
    padding: 28px 24px;
    text-align: left;
    height: 100%;
}
body.theme-sobre .about-client-stat:hover { transform: none; box-shadow: none; }
body.theme-sobre .about-client-stat-icon { width: auto; height: auto; margin: 0 0 14px; background: none !important; justify-content: flex-start; border-radius: 0; }
body.theme-sobre .about-client-stat-icon i { color: var(--sobre-olive) !important; font-size: 20px; }
body.theme-sobre .about-client-stat-number { font-family: var(--font-heading); font-weight: 600; font-size: clamp(2.2rem, 1.8rem + 1.2vw, 3rem); color: var(--sobre-blue); margin-bottom: 8px; }
body.theme-sobre .about-client-stat-label { font-size: 0.9375rem; font-weight: 400; color: var(--sobre-ink); }
body.theme-sobre .about-category-card {
    background: #FFFFFF;
    border: 1px solid var(--sobre-line);
    border-top: 2px solid var(--sobre-navy);
    border-radius: 0;
    box-shadow: none;
    padding: 32px;
}
body.theme-sobre .about-category-card::before { content: none; }
body.theme-sobre .about-category-card:hover { transform: none; box-shadow: none; }
body.theme-sobre .about-category-header { gap: 16px; border-bottom-color: var(--sobre-line); }
body.theme-sobre .about-category-icon,
body.theme-sobre .about-category-card:hover .about-category-icon {
    width: 48px;
    height: 48px;
    background: var(--sobre-navy);
    border-radius: 0;
    box-shadow: none;
    transform: none;
}
body.theme-sobre .about-category-icon i { font-size: 1.15rem; color: var(--sobre-sage); }
body.theme-sobre .about-category-header h4 { font-family: var(--font-heading); font-weight: 600; font-size: 1.35rem; color: var(--sobre-title); }
body.theme-sobre .about-category-count {
    background: none;
    padding: 0;
    border-radius: 0;
    font-family: var(--sobre-mono);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sobre-olive);
}
body.theme-sobre .about-filiale-chip {
    background: #FFFFFF;
    border: 1px solid var(--sobre-line);
    border-radius: 2px;
    padding: 8px 12px;
}
body.theme-sobre .about-filiale-chip:hover { background: var(--sobre-paper); border-color: var(--sobre-line); transform: none; box-shadow: none; }
body.theme-sobre .about-filiale-chip span { color: var(--sobre-title); font-weight: 500; }
body.theme-sobre .about-hq-badge { color: var(--sobre-olive); }
body.theme-sobre .about-category-more a { color: var(--sobre-blue); font-weight: 600; }

@media (max-width: 991.98px) {
    body.theme-sobre .about-img { height: 360px; }
    body.theme-sobre .about-mvv-cards { grid-template-columns: minmax(0, 1fr); }
    body.theme-sobre .about-mvv-card,
    body.theme-sobre .about-mvv-card:first-child { padding: 0; }
    body.theme-sobre .about-mvv-card + .about-mvv-card { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.16); padding-top: 40px; margin-top: 40px; }
    body.theme-sobre .about-stat-item { padding: 28px 20px; }
}
@media (max-width: 575.98px) {
    body.theme-sobre .about-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* Les separateurs masques restent dans le DOM : items = enfants 1, 3, 5, 7 */
    body.theme-sobre .about-stat-item + .about-stats-divider + .about-stat-item { border-left: 0; }
    body.theme-sobre .about-stat-item:nth-child(4n+3) { border-left: 1px solid var(--sobre-line); }
    body.theme-sobre .about-stat-item ~ .about-stat-item ~ .about-stat-item { border-top: 1px solid var(--sobre-line); }
    body.theme-sobre .about-category-card { padding: 24px 20px; }
}

/* Partenaires (grille des pages internes) : filets partages plutot qu'un cadre par logo */
body.theme-sobre .partners-grid-v4 { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1px; }
body.theme-sobre .partners-grid-v4 .partner-item-v4,
body.theme-sobre .partners-grid-v4 .partner-link-v4 { border: 0; border-radius: 0; background: #FFFFFF; }
body.theme-sobre .partners-grid-v4 .partner-item-v4 { box-shadow: 0 0 0 1px var(--sobre-line); }
body.theme-sobre .partners-grid-v4 .partner-logo-container { height: 112px; border-radius: 0; }
body.theme-sobre .partners-grid-v4 .partner-logo-container:hover { transform: none; }
@media (max-width: 479.98px) {
    body.theme-sobre .partners-grid-v4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Barre de chiffres (Expertises, Realisations) : posee sous l'en-tete au lieu
   de le chevaucher, ce qui masquait la derniere ligne du sous-titre. */
body.theme-sobre .stats-bar { margin-top: 40px; }

/* ------------------------------------------------ Lisibilite (contrastes) */
/* Surtitre « Newsletter » : l'ancienne regle .newsletter-section … le forcait en blanc sur la carte claire */
body.theme-sobre .newsletter-section .newsletter-badge,
body.theme-sobre .newsletter-section-v3 .newsletter-badge { color: var(--sobre-olive) !important; }
/* Consentement pose sur un fond sombre (encart newsletter des actualites) */
body.theme-sobre .form-consent--dark .form-check-label,
body.theme-sobre .form-consent--dark .form-consent-notice { color: rgba(255, 255, 255, 0.85); }
body.theme-sobre .form-consent--dark .form-check-label a { color: #FFFFFF; }
/* Pastille « Certifie » : texte fonce sur le vert sauge */
body.theme-sobre .certification-badge { background: var(--sobre-sage); color: var(--sobre-navy); }
/* Encadre « Besoin d'aide ? » (fond marine) : bouton clair */
body.theme-sobre .sidebar-widget.contact-widget .btn-primary { background: #FFFFFF; border-color: #FFFFFF; color: var(--sobre-title); }
body.theme-sobre .sidebar-widget.contact-widget .btn-primary:hover { background: transparent; color: #FFFFFF; }
/* Fonction du dirigeant sur carte blanche */
body.theme-sobre .leader-card .leader-role { color: var(--sobre-olive); }
/* Pastille de categorie « A la une » (Actualites) : texte fonce sur l'or */
body.theme-sobre .featured-mini-card .featured-overlay .mini-badge { color: var(--sobre-navy) !important; }
