/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Thème enfant pour Hello Elementor
Author: [Ton nom ou Abigael Services]
Author URI: [Ton site ou rien]
Template: hello-elementor
Version: 1.0
Text Domain: hello-elementor-child
*/

/* ================================================================
   ABIGAEL SERVICES — feuille de styles maître
   Structure : tokens → base → composants globaux → page home
================================================================ */


/* ================================================================
   1. UTILITAIRES SYSTÈME
================================================================ */
.grecaptcha-badge { display: none !important; }

.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}


/* ================================================================
   2. DESIGN TOKENS
================================================================ */
:root {
    /* Fonds — palette crème */
    --c-bg:      #F5F1EA;
    --c-bg-alt:  #EDE9E0;
    --c-surface: #F0EDE5;

    /* Texte */
    --c-text:      #1C1C1C;
    --c-text-soft: #5C5750;

    /* Couleurs identité */
    --c-primary: #1F3A5F;
    --c-accent:  #3D5A80;

    /* Divers */
    --radius:    14px;
    --shadow-sm: 0 2px 6px rgba(0,0,0,.06);
    --shadow-md: 0 4px 22px rgba(0,0,0,.10);
    --fast:      .18s cubic-bezier(.215,.61,.355,1);

    /* Menu */
    --menu-bg:   #F5F1EA;
    --menu-text: #1C1C1C;

}

/* Palette nuit — inverse élégant du mode jour */
html.dark {
    /* Fonds : ardoise sombre légèrement bleue, moins saturée */
    --c-bg:      #1c2d3f;
    --c-bg-alt:  #172536;
    --c-surface: #243448;

    /* Texte : le crème du jour devient le texte */
    --c-text:      #F5F1EA;
    --c-text-soft: #c2bbb4;

    /* Accents : bleu clair lisible sur fond navy */
    --c-primary:   #c8d8f0;
    --c-accent:    #a8c4e0;

    --shadow-sm: 0 2px 8px rgba(0,0,0,.20);
    --shadow-md: 0 4px 24px rgba(0,0,0,.28);
    --menu-bg:   #1c2d3f;
    --menu-text: #F5F1EA;
}


/* Scrollbar crème en mode nuit */
html.dark ::-webkit-scrollbar { width: 8px; height: 8px; }
html.dark ::-webkit-scrollbar-track { background: var(--c-bg-alt); }
html.dark ::-webkit-scrollbar-thumb { background: rgba(245,241,234,.35); border-radius: 8px; }
html.dark ::-webkit-scrollbar-thumb:hover { background: rgba(245,241,234,.55); }
html.dark { scrollbar-color: rgba(245,241,234,.35) var(--c-bg-alt); scrollbar-width: thin; }


/* ================================================================
   3. BASE
================================================================ */
html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: "Inter", system-ui, sans-serif;
    font-weight: 300;
    background: var(--c-bg);
    color: var(--c-text);
}

h1, h2, h3, h4,
.ph-title, .ph-car-title, .ph-cfa-title,
.title-lg, .contact-title,
.ph-sb-title, .ph-aid-tile > h4 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 600;
}
h3 { font-size: clamp(1.35rem, 2.2vw, 1.75rem); line-height: 1.3; }

a { color: var(--c-accent); text-decoration: none; cursor: pointer; }
a:hover { color: var(--c-accent); }

.bold { font-weight: bold; }


/* ================================================================
   4. LAYOUT — sections & alternance
================================================================ */
.section {
    padding: 120px 0;
    background: var(--c-bg);
}

@media (max-width: 768px) { .section { padding: 72px 0; } }
@media (max-width: 480px) { .section { padding: 56px 0; } }

.wrapper {
    width: 100%; max-width: 1180px;
    margin: 0 auto; padding: 0 18px;
}

.text-center  { text-align: center; }

.title-lg {
    font-size: 2.2rem; font-weight: 700; margin: 0 0 22px;
}
@media (max-width: 600px) { .title-lg { font-size: 1.75rem; } }


/* ================================================================
   5. COMPOSANTS UTILITAIRES
================================================================ */
.card { padding: 28px 24px; }

.btn-main {
    display: inline-block; padding: 12px 32px;
    border-radius: 40px; background: var(--c-primary);
    color: #fff; font-weight: 600;
    transition: background var(--fast);
}
.btn-main:hover { background: var(--c-accent); }
html.dark .btn-main { background: #F5F1EA; color: #1c2d3f; }
html.dark .btn-main:hover { background: #fff; }

.grid-4 {
    display: grid; gap: 32px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.grid-2 {
    display: grid; gap: 24px;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.full-bleed { width: 100vw; margin-left: calc(50% - 50vw); }
.no-scroll  { overflow: hidden; height: 100%; }


/* ================================================================
   6. HERO
================================================================ */
.hero-header {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 100dvh;
    background: url('https://www.abigaelservices.fr/wp-content/uploads/2025/08/page-home-class.jpg') center/cover no-repeat;
    background-color: #0a1937;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.hero-header .overlay {
    position: absolute; inset: 0;
    background: rgba(10,25,55,.42); z-index: 1;
}
html.dark .hero-header .overlay { background: rgba(10,25,55,.62); }

.hero-header .overlay-img {
    position: absolute; inset: 0;
        background: rgb(54 54 54 / 0.45); z-index: 1;
}
html.dark .hero-header .overlay-img { background: rgb(54 54 54 / 0.45); }

.hero-header .hero-content {
    position: relative; z-index: 2;
    text-align: center; color: #fff;
    padding: 0 24px; max-width: 850px;
}

.hero-header h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 600; margin-bottom: 30px; }
.hero-header p  { font-size: 1.05rem; margin-bottom: 42px; }

.hero-header .cta-btn {
    background: var(--c-accent); color: #fff;
    padding: 14px 32px; border-radius: 32px;
    font-size: 1.05rem; font-weight: 600;
    transition: background .18s;
}
.hero-header .cta-btn:hover { background: #0091b0; }

.hero-video, .hero-img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; z-index: 0;
}

@keyframes hero-dezoom {
    from { transform: scale(1.15); }
    to   { transform: scale(1); }
}
.hero-img { animation: hero-dezoom 10s ease-out forwards; }

@media (orientation: landscape) and (max-height: 500px) {
    .hero-header h1 { font-size: clamp(1.6rem, 5vh, 2.4rem); margin-bottom: 16px; }
}
@media (max-width: 600px) {
    .hero-header { min-height: 80vh; }
    .hero-header h1 { font-size: 2.6rem; }
    .hero-header p  { font-size: .92rem; margin-bottom: 30px; }
    .hero-header .cta-btn { padding: 15px 20px; font-size: 1rem; }

    /* Badge mobile — texte plus court, centré, pas de débordement */
    .hero-badge {
        font-size: .68rem;
        padding: 6px 14px;
        letter-spacing: .02em;
        max-width: calc(100vw - 48px);
        flex-wrap: wrap;
        justify-content: center;
        text-align: center;
        margin-bottom: 20px;
    }
}


/* ================================================================
   7. BOUTONS CTA
================================================================ */
/* Bouton des pages internes */
.cta-inner-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 14px 22px; border-radius: 999px;
    font-weight: 600; background: #0b1220; color: #ffffff;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.cta-inner-btn:hover  { transform: translateY(-1px); box-shadow: 0 12px 30px rgba(10,20,40,.22); }
.cta-inner-btn:active { transform: translateY(0);    box-shadow: 0 6px 18px rgba(10,20,40,.18); }
.cta-inner-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0,181,214,.35), 0 0 0 6px rgba(0,0,0,.25);
}

/* Mode nuit = blanc avec texte sombre */
html.dark .cta-inner-btn { background: #ffffff; color: #0b1220; }
html.dark .cta-inner-btn:hover { box-shadow: 0 12px 30px rgba(0,0,0,.38); }
html.dark .cta-inner-btn:focus-visible {
    box-shadow: 0 0 0 3px rgba(0,181,214,.45), 0 0 0 6px rgba(255,255,255,.35);
}

/* Le CTA du hero garde le bleu de la charte */
.hero-header .cta-inner-btn {
    background: var(--color-accent, #00b5d6); color: #fff;
    box-shadow: 0 10px 28px rgba(0,181,214,.35);
}
.hero-header .cta-inner-btn:hover { box-shadow: 0 14px 34px rgba(0,181,214,.45); }


/* ================================================================
   8. GRILLE DE 4 SERVICES (bandeaux)
================================================================ */
.service-banners {
    display: grid; gap: 2px;
    grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 899px) { .service-banners { grid-template-columns: 1fr; } }

.service-banner {
    position: relative; aspect-ratio: 16/9;
    border-radius: 0; overflow: hidden;
    box-shadow: var(--shadow-sm); isolation: isolate;
    background-size: cover; background-position: center; background-repeat: no-repeat;
}
@media (max-width: 499px) { .service-banner { aspect-ratio: 4/3; } }

.service-banner-overlay { position: absolute; inset: 0; background: rgb(54 54 54 / 0.4); z-index: 1; }
html.dark .service-banner-overlay { background: rgb(54 54 54 / 0.5); }

.service-banner-content {
    position: absolute; inset: 0; z-index: 2;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 32px; color: #fff;
}

.service-banner-title { margin: 0 0 6px; font-size: 1.8rem; font-weight: 700; }
@media (max-width: 499px) { .service-banner-title { font-size: 1.5rem; } }

.service-banner-desc { margin: 0 0 20px; line-height: 1.45; }

.service-banner-btn {
    align-self: flex-start; font-weight: 600;
    text-decoration: none; color: #fff;
    position: relative; padding-right: 22px;
    transition: opacity .3s var(--fast);
}
.service-banner-btn::after {
    content: "→"; position: absolute; right: 0; top: 1px;
    font-size: 1.4rem; line-height: 1; transition: transform .3s var(--fast);
}
.service-banner-btn:hover { opacity: .8; }
.service-banner-btn:hover::after { transform: translateX(4px); }


/* ================================================================
   9. AVANTAGES (section générique)
================================================================ */
.why-choose { background: var(--c-bg); }

.benefit-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 32px; margin-top: 42px;
}

.benefit-card, .price-card {
    background: var(--c-surface);
    border-radius: 18px; padding: 28px 24px;
    text-align: center; box-shadow: var(--shadow-sm);
}
.benefit-card h3 { font-size: 1.25rem; margin: 14px 0 8px; color: var(--c-text); }
.benefit-card p  { font-size: 1.02rem; color: var(--c-text-soft); }

.intro-home { background: var(--c-bg); }
.intro-home .lead { font-size: 1.15rem; color: var(--c-text-soft); max-width: 780px; margin: 0 auto; }
.intro-home a { color: var(--c-text-soft); }


/* ================================================================
   10. TABLEAU TARIFS
================================================================ */

/* ── Desktop ── */
.pricing-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
    margin-top: 40px;
    background: var(--c-surface);
}
.pricing-table thead th {
    background: var(--c-primary);
    color: rgba(245,241,234,.72);
    padding: 16px 24px;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .72rem; font-weight: 700;
    letter-spacing: .10em; text-transform: uppercase;
    text-align: left; border: none;
}
.pricing-table thead th.highlight {
    background: color-mix(in oklab, var(--c-primary) 78%, #000);
    color: #F5F1EA;
}
html.dark .pricing-table thead th { background: var(--c-surface); color: rgba(245,241,234,.65); }
html.dark .pricing-table thead th.highlight { background: var(--c-bg-alt); color: #F5F1EA; }
.pricing-table tbody tr:not(:last-child) td {
    border-bottom: 1px solid rgba(0,0,0,.06);
}
html.dark .pricing-table tbody tr:not(:last-child) td {
    border-bottom-color: rgba(255,255,255,.07);
}
.pricing-table tbody tr:hover td { background: rgba(0,0,0,.018); }
html.dark .pricing-table tbody tr:hover td { background: rgba(255,255,255,.03); }
.pricing-table td {
    padding: 16px 24px;
    font-size: .98rem; color: var(--c-text);
    vertical-align: middle;
}
.pricing-table td:first-child { font-weight: 600; }
.pricing-table td.highlight {
    background: color-mix(in oklab, var(--c-accent) 8%, transparent);
    color: var(--c-accent); font-weight: 700;
}
html.dark .pricing-table td.highlight {
    background: color-mix(in oklab, var(--c-accent) 13%, transparent);
}
html.dark .pricing-table tbody tr:hover td.highlight {
    background: color-mix(in oklab, var(--c-accent) 16%, transparent);
}
.pricing-table .price-list { margin: 0; padding: 0; list-style: none; }
.pricing-table .price-list li { margin: 0 0 4px; }
.pricing-table .price-list.highlight li { color: var(--c-accent); font-weight: 700; }

/* ── Mobile — une carte par ligne ── */
@media (max-width: 640px) {
    .pricing-table {
        display: block; background: transparent;
        box-shadow: none; border-radius: 0;
        overflow: visible; margin-top: 28px;
    }
    .pricing-table thead { display: none; }
    .pricing-table tbody { display: flex; flex-direction: column; gap: 10px; }
    .pricing-table tr {
        display: block; background: var(--c-surface);
        border-radius: 14px; overflow: hidden;
        box-shadow: var(--shadow-sm);
        border: 1px solid rgba(0,0,0,.06);
    }
    html.dark .pricing-table tr { border-color: rgba(255,255,255,.08); }

    /* Titre de la carte */
    .pricing-table td:first-child {
        display: block;
        background: var(--c-primary);
        color: rgba(245,241,234,.92);
        padding: 13px 18px;
        font-weight: 700; font-size: 1rem;
    }

    /* Lignes de prix */
    .pricing-table td:not(:first-child) {
        display: flex; flex-direction: column; gap: 3px;
        padding: 11px 18px;
        border-top: 1px solid rgba(0,0,0,.05);
    }
    html.dark .pricing-table td:not(:first-child) {
        border-top-color: rgba(255,255,255,.06);
    }
    .pricing-table td:not(:first-child)::before {
        content: attr(data-label);
        font-size: .67rem; font-weight: 700;
        letter-spacing: .09em; text-transform: uppercase;
        color: var(--c-text-soft); opacity: .75;
    }

    /* Colonne crédit d'impôt — mise en avant */
    .pricing-table td.highlight {
        background: color-mix(in oklab, var(--c-accent) 9%, transparent);
    }
    html.dark .pricing-table td.highlight {
        background: color-mix(in oklab, var(--c-accent) 13%, transparent);
    }
    .pricing-table td.highlight::before { color: var(--c-accent); opacity: 1; }
}


/* ================================================================
   11. SWITCH JOUR / NUIT
================================================================ */
.theme-toggle {
    position: relative; z-index: 120; margin-left: 18px;
    width: 42px; height: 42px; border: none; border-radius: 50%;
    background-color: rgba(165,165,165,.35) !important;
    backdrop-filter: blur(8px) saturate(1.4);
    cursor: pointer; transition: background .25s;
    display: flex; align-items: center; justify-content: center;
}
html.dark .theme-toggle { background: rgba(255,255,255,.15); }
.theme-toggle:hover { background: rgba(255,255,255,.55); }

.theme-toggle svg {
    position: absolute; width: 22px; height: 22px;
    fill: var(--c-text) !important;
    transition: transform .5s, opacity .4s, fill .25s;
    color: var(--c-text);
}
.theme-toggle svg.moon { opacity: 0; transform: translateY(-12px); }
html.dark .theme-toggle svg.moon { opacity: 1; transform: translateY(0); }
html.dark .theme-toggle svg.sun  { opacity: 0; transform: translateY(12px); }


/* ================================================================
   12. STEPPER
================================================================ */
.stepper { counter-reset: s; margin: 56px auto 0; max-width: 680px; padding: 0; }

.stepper .step { position: relative; padding-left: 72px; margin-bottom: 40px; list-style-type: none; }

.stepper .step::before {
    counter-increment: s; content: counter(s);
    position: absolute; left: 0; top: 0;
    width: 48px; height: 48px; line-height: 48px;
    text-align: center; font-weight: 700; border-radius: 50%;
    color: #fff; background: var(--c-accent);
    box-shadow: 0 3px 10px rgba(0,0,0,.12);
}
.stepper h4 { margin: 0 0 6px; font-size: 1.35rem; font-weight: 700; }
.stepper p  { margin: 0; color: var(--c-text-soft); }


/* ================================================================
   13. FACT GRID
================================================================ */
.fact-grid {
    display: grid; gap: clamp(14px, 2vw, 22px);
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
@media (max-width: 1024px) { .fact-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .fact-grid { grid-template-columns: 1fr; } }

.fact {
    position: relative; padding: clamp(18px, 2.4vw, 26px);
    border-radius: 16px;
    background: rgba(255,255,255,.55); border: 1px solid rgba(255,255,255,.6);
    backdrop-filter: blur(8px); box-shadow: 0 10px 30px rgba(20,59,97,.06);
    transition: transform .18s var(--fast), box-shadow .18s var(--fast);
}
.fact:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(20,59,97,.10); }

html.dark .fact { background: var(--c-surface); border-color: rgba(245,241,234,.12); }
html.dark .fact-title { color: var(--c-text); }
html.dark .fact p { color: var(--c-text-soft); }

.icon {
    width: 44px; height: 44px; display: grid; place-items: center;
    border-radius: 12px; color: var(--color-accent, #00b5d6);
    background: color-mix(in oklab, var(--color-accent, #00b5d6) 12%, transparent);
    margin-bottom: 10px;
}
.fact-title { font-size: 1.05rem; line-height: 1.3; margin: 6px 0 8px; color: var(--color-primary, #1a2f4d); }
.fact p { margin: 0; color: var(--c-text, #27364a); }

.cta-row { margin-top: clamp(40px, 2.5vw, 40px); text-align: center; }




/* ================================================================
   16. ACCORDÉON — base globale
================================================================ */
.contact-cta-home { background: var(--c-primary) !important; color: #F5F1EA; text-align: center; }
html.dark .contact-cta-home { background: var(--c-bg-alt) !important; }

.accordion { max-width: 800px; margin: 48px auto 0; }

.accordion-item {
    background: var(--c-surface);
    border: 1px solid rgba(0,0,0,.07);
    border-radius: var(--radius);
    box-shadow: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.04);
    margin-bottom: 14px; overflow: hidden;
    max-height: 120px;
    transition: max-height .45s var(--fast), background .35s var(--fast), box-shadow .35s var(--fast);
}
html.dark .accordion-item {
    background: var(--c-surface);
    border-color: rgba(245,241,234,.10);
    box-shadow: none;
}

.accordion-item summary {
    list-style: none; cursor: pointer;
    padding: 22px 64px 22px 26px; position: relative;
    font-weight: 600; color: var(--c-text); transition: color .35s var(--fast);
}
.accordion-item summary::marker,
.accordion-item summary::-webkit-details-marker { display: none; }
.accordion-item summary::after {
    content: '+'; position: absolute; right: 28px; top: 50%;
    translate: 0 -50%; font-size: 26px; line-height: 1;
    color: var(--c-accent); transition: transform .35s var(--fast), rotate .35s var(--fast);
}
.accordion-item p {
    padding: 0 26px 26px; color: var(--c-text-soft); line-height: 1.6;
    opacity: 0; transform: translateY(-6px);
    transition: opacity .3s var(--fast), transform .3s var(--fast);
}
.accordion-item[open] { max-height: 700px; box-shadow: var(--shadow-md); }
.accordion-item[open] summary::after { content: '–'; }
.accordion-item[open] p { opacity: 1; transform: none; }
.accordion-item summary:hover,
.accordion-item summary:focus-visible { color: var(--c-accent); outline: none; }

details.accordion-item > * { position: relative; }

@supports selector(:has(details)) {
    .accordion-item { transition: max-height .45s var(--fast); }
    .accordion-item[open] { transition-timing-function: cubic-bezier(.33,.82,.46,1.02); }
}


/* ================================================================
   17. CONTACT
================================================================ */
.contact-form-section {
    background: var(--c-bg);
    padding: calc(var(--header-height, 80px) + 5px) 0 80px;
}
.contact-form-section .ph-title { text-align: center; margin-bottom: 40px; }
.contact-form-section .ph-zone  { margin-top: 32px; }

.contact-process { background: var(--c-bg-alt); padding: 72px 0; }
html.dark .contact-process { background: var(--c-bg-alt); }

.contact-steps {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 0; margin-top: 40px;
    border: 1px solid rgba(0,0,0,.07); border-radius: 18px;
    overflow: hidden; box-shadow: var(--shadow-sm);
}
html.dark .contact-steps { border-color: rgba(245,241,234,.10); box-shadow: none; }

.contact-step {
    background: var(--c-surface); padding: 32px 28px;
    display: flex; flex-direction: column; gap: 10px;
    border-right: 1px solid rgba(0,0,0,.07);
}
.contact-step:last-child { border-right: none; }
html.dark .contact-step { background: var(--c-surface); border-right-color: rgba(245,241,234,.10); }

.contact-step-num {
    width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
    border: 1.5px solid var(--c-primary); color: var(--c-primary);
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .8rem; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
}
.contact-step h4 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.1rem; font-weight: 600; color: var(--c-text); margin: 0;
}
.contact-step p { font-size: .85rem; font-weight: 300; color: var(--c-text-soft); line-height: 1.6; margin: 0; }

@media (max-width: 860px) {
    .contact-steps { grid-template-columns: 1fr 1fr; }
    .contact-step { border-bottom: 1px solid rgba(0,0,0,.07); }
    .contact-step:nth-child(2) { border-right: none; }
    .contact-step:nth-child(3) { border-right: 1px solid rgba(0,0,0,.07); }
    .contact-step:nth-child(3),
    .contact-step:nth-child(4) { border-bottom: none; }
    html.dark .contact-step { border-bottom-color: rgba(245,241,234,.10); }
    html.dark .contact-step:nth-child(3) { border-right-color: rgba(245,241,234,.10); }
}
@media (max-width: 520px) {
    .contact-steps { grid-template-columns: 1fr; }
    .contact-step,
    .contact-step:nth-child(3),
    .contact-step:nth-child(4) { border-right: none; border-bottom: 1px solid rgba(0,0,0,.07); }
    .contact-step:last-child { border-bottom: none; }
    html.dark .contact-step,
    html.dark .contact-step:nth-child(3),
    html.dark .contact-step:nth-child(4) { border-bottom-color: rgba(245,241,234,.10); }
}

.contact-faq { padding: 72px 0; }

/* Burger bleu nuit sur la page contact en mode jour */
html:not(.dark) body.page-template-page-contact:not(.scrolled) .nav-toggle-label i { background: #1F3A5F; }


/* ================================================================
   18. FOOTER
================================================================ */
.footer-as {
    background: var(--c-bg); color: var(--c-text);
    padding: clamp(48px, 6vw, 88px) 0 clamp(20px, 3vw, 40px);
    border-top: 1px solid color-mix(in oklab, var(--c-text) 18%, transparent);
}
.footer-grid {
    display: grid;
    grid-template-columns: minmax(280px, 1.2fr) minmax(220px, .8fr);
    gap: clamp(24px, 4vw, 64px); align-items: start;
}
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr; text-align: center; } }

.footer-logo img { height: 64px; width: auto; display: block; }
.footer-logo img.footer-logo-night { display: none; }
html.dark .footer-logo img.footer-logo-day   { display: none; }
html.dark .footer-logo img.footer-logo-night { display: block; }

.footer-tagline { margin: 14px 0 18px; max-width: 48ch; color: var(--c-text-soft); line-height: 1.6; }
.footer-contact { display: flex; flex-direction: column; gap: 8px; }
.footer-link { color: var(--c-text); text-decoration: none; opacity: .9; }
.footer-link:hover { color: var(--c-accent); opacity: 1; }

.footer-col h4 { margin: 0 0 10px; font-size: 1rem; font-weight: 600; color: var(--c-text); }
.footer-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-list a { color: var(--c-text); text-decoration: none; opacity: .82; }
.footer-list a:hover { color: var(--c-accent); opacity: 1; }

.faq-sap { display: flex; gap: 18px; align-items: center; justify-content: flex-end; margin: clamp(8px, 2vw, 10px) 0 0; }
.faq-sap img { height: 52px; width: auto; filter: saturate(.9) contrast(1.05); opacity: .9; }
html.dark .faq-sap img { filter: brightness(1.08) saturate(.9) contrast(1.1); opacity: .95; }

@media (max-width: 860px) {
    .faq-sap { justify-content: center; margin-top: 24px; }
    .footer-logo { display: inline-block; margin-inline: auto; }
    .footer-logo img { display: block; margin: 0 auto; }
    .footer-tagline { text-align: center; margin-left: auto; margin-right: auto; }
}

.footer-bottom {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
    gap: 24px; margin-top: clamp(28px, 5vw, 54px);
    padding-top: clamp(14px, 2.5vw, 24px);
    border-top: 1px solid color-mix(in oklab, var(--c-text) 18%, transparent);
    color: var(--c-text-soft); font-size: .95rem;
}
.footer-bottom .footer-copy { opacity: .88; }
.footer-as a:focus-visible { outline: none; box-shadow: 0 0 0 3px color-mix(in oklab, var(--c-accent) 45%, transparent); border-radius: 8px; }


/* ================================================================
   19. PAGE 404
================================================================ */
.page-404-illustrated .nf-hero {
    min-height: 100vh; display: flex; align-items: center;
    background: var(--c-bg); padding: clamp(40px, 8vh, 80px) 0;
}
.nf-wrapper { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 46px; }
@media (max-width: 900px) { .nf-wrapper { grid-template-columns: 1fr; text-align: center; } }

.nf-code  { font-size: clamp(3rem, 8vw, 5rem); font-weight: 800; margin: 0; color: var(--c-accent); }
.nf-title { font-size: clamp(1.4rem, 2.4vw, 2rem); font-weight: 700; margin: 10px 0; color: var(--c-text); }
.nf-desc  { color: var(--c-text-soft); margin: 0 0 26px; max-width: 560px; }
.nf-btn   { padding: 13px 28px; font-size: 1.05rem; background: var(--c-accent); }
.nf-btn:hover { color: #fff; background: var(--c-accent); }

.page-404-illustrated .nf-hero {
    background: radial-gradient(1100px 520px at 10% -10%, rgba(0,0,0,.04), transparent 55%),
                radial-gradient(1100px 520px at 110% 110%, rgba(0,0,0,.04), transparent 55%),
                var(--c-bg);
}
html.dark .page-404-illustrated .nf-hero {
    background: radial-gradient(1100px 520px at 10% -10%, rgba(255,255,255,.05), transparent 55%),
                radial-gradient(1100px 520px at 110% 110%, rgba(255,255,255,.05), transparent 55%),
                var(--c-bg);
}


/* ================================================================
   20. CF7
================================================================ */
.wpcf7-response-output {
    background: linear-gradient(135deg, rgba(0,181,214,.12), rgba(26,47,77,.08));
    border: none !important; color: #1a2f4d;
    padding: 14px 18px !important; border-radius: 10px;
    font-size: 15px; font-weight: 500;
    box-shadow: 0 2px 6px rgba(26,47,77,.08);
    animation: fadeInUp .5s ease-out;
}
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}


/* ================================================================
   PAGE HOME — composants spécifiques (préfixe ph-)
================================================================ */


/* ================================================================
   21. INTRO + EYEBROW
================================================================ */
.ph-eyebrow {
    font-size: .72rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--c-primary); margin: 0 0 20px;
    padding-bottom: 14px; position: relative;
}
.ph-eyebrow::after {
    content: '';
    position: absolute; bottom: 0; left: 0;
    width: 32px; height: 2px;
    background: var(--c-primary); border-radius: 2px;
}
.ph-eyebrow.text-center::after,
.text-center > .ph-eyebrow::after {
    left: 50%; transform: translateX(-50%);
}

.ph-intro { padding: 120px 0 100px; background: var(--c-bg); }
@media (max-width: 768px) { .ph-intro { padding: 72px 0 60px; } }
@media (max-width: 480px) { .ph-intro { padding: 56px 0 48px; } }
.ph-intro-wrap { max-width: 720px; text-align: center; }

.ph-title {
    font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 700;
    line-height: 1.1; letter-spacing: -.025em;
    color: var(--c-text); margin: 0 0 24px;
}
.ph-lead {
    font-size: 1.08rem; color: var(--c-text-soft);
    line-height: 1.78; max-width: 640px; margin: 0 auto 14px;
}
.ph-zone { font-size: .78rem; color: var(--c-text-soft); letter-spacing: .02em; margin: 0; opacity: .65; }

.ph-link-more {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: .9rem; font-weight: 600; color: var(--c-primary);
    text-decoration: none; transition: color .18s;
}
.ph-link-more:hover { color: var(--c-accent); }
.ph-link-more svg { transition: transform .2s; }
.ph-link-more:hover svg { transform: translateX(3px); }


/* ================================================================
   22. TRUST BAR
================================================================ */
.ph-trust-bar {
    background: var(--c-bg-alt);
    border-top: 1px solid rgba(0,0,0,.06);
    border-bottom: 1px solid rgba(0,0,0,.06);
}
html.dark .ph-trust-bar {
    background: var(--c-bg-alt);
    border-color: rgba(255,255,255,.07);
}

.ph-trust-wrap {
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 0; padding: 20px 0;
}
.ph-trust-item { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 0 28px; }
.ph-trust-val { font-size: 1.1rem; font-weight: 700; color: var(--c-primary); line-height: 1; display: flex; align-items: center; gap: 2px; }
.ph-trust-val svg { color: #f59e0b; }
.ph-trust-label { font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--c-text-soft); }
.ph-trust-sep { width: 1px; height: 32px; background: rgba(0,0,0,.08); flex-shrink: 0; }
html.dark .ph-trust-sep { background: rgba(255,255,255,.10); }

@media (max-width: 600px) {
    .ph-trust-item { padding: 0 14px; }
    .ph-trust-val  { font-size: .95rem; }
}
@media (max-width: 420px) {
    .ph-trust-wrap { gap: 8px 0; }
    .ph-trust-sep  { display: none; }
    .ph-trust-item { width: 50%; }
}


/* ================================================================
   23. SERVICE BANNERS PAGE HOME (ph-sb-*)
================================================================ */
.ph-sb-section { background: #05090f; line-height: 0; }

.ph-sb-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; }
@media (max-width: 768px) { .ph-sb-grid { grid-template-columns: 1fr; } }

.ph-sb-card {
    position: relative; overflow: hidden; isolation: isolate;
    min-height: 44vw; background: #0a1020; display: block;
}
@media (max-width: 768px) { .ph-sb-card { min-height: 62vw; } }
@media (max-width: 480px) { .ph-sb-card { min-height: 75vw; } }

.ph-sb-img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: center;
    transition: transform 1s cubic-bezier(.25,.46,.45,.94);
    will-change: transform;
}
.ph-sb-card:hover .ph-sb-img { transform: scale(1.055); }

.ph-sb-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(to top, rgba(4,10,25,.92) 0%, rgba(4,10,25,.50) 38%, rgba(4,10,25,.15) 65%, transparent 100%);
    transition: background .5s;
}
.ph-sb-card:hover .ph-sb-overlay {
    background: linear-gradient(to top, rgba(4,10,25,.96) 0%, rgba(4,10,25,.58) 42%, rgba(4,10,25,.18) 68%, transparent 100%);
}

.ph-sb-inner {
    position: absolute; inset: 0; z-index: 2;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: clamp(22px, 4vw, 44px); color: #fff; line-height: 1.5;
}

.ph-sb-num   { display: none; }
.ph-sb-title { font-size: clamp(1.4rem, 2.2vw, 1.9rem); font-weight: 700; line-height: 1.18; margin: 0 0 10px; letter-spacing: -.015em; color: #fff; text-shadow: 0 2px 16px rgba(0,0,0,.22); }
.ph-sb-desc  { font-size: .88rem; line-height: 1.65; color: rgba(255,255,255,.68); margin: 0 0 22px; max-width: 360px; }

.ph-sb-cta {
    display: inline-flex; align-items: center; gap: 8px;
    align-self: flex-start; padding: 10px 20px; border-radius: 50px;
    font-size: .875rem; font-weight: 600; color: #fff; text-decoration: none; line-height: 1;
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(16px) saturate(1.8); -webkit-backdrop-filter: blur(16px) saturate(1.8);
    border: 0.5px solid rgba(255,255,255,.30);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.32), 0 4px 16px rgba(0,0,0,.16);
    transition: background .2s, box-shadow .2s;
}
.ph-sb-cta:hover {
    background: rgba(255,255,255,.26);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.48), 0 6px 24px rgba(0,0,0,.20);
    color: #fff;
}
.ph-sb-cta svg { transition: transform .22s; flex-shrink: 0; }
.ph-sb-card:hover .ph-sb-cta svg { transform: translateX(4px); }

.ph-sb-ctas { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.ph-sb-cta-devis {
    display: inline-flex; align-items: center;
    padding: 10px 18px; border-radius: 50px;
    font-size: .875rem; font-weight: 600; color: #0a1628;
    text-decoration: none; background: #fff; border: none;
    box-shadow: 0 2px 12px rgba(0,0,0,.14);
    transition: box-shadow .2s, transform .2s; cursor: pointer;
}
.ph-sb-cta-devis:hover { box-shadow: 0 6px 22px rgba(0,0,0,.20); transform: translateY(-1px); color: var(--c-primary); }


/* ================================================================
   24. CTA INTERMÉDIAIRE
================================================================ */
.ph-mid-cta {
    background: var(--c-bg-alt);
    border-top: 1px solid rgba(0,0,0,.07);
    border-bottom: 1px solid rgba(0,0,0,.07);
    padding: 40px 0;
}
html.dark .ph-mid-cta { background: var(--c-bg-alt); border-color: rgba(255,255,255,.08); }

.ph-mid-wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.ph-mid-question { font-size: 1rem; font-weight: 600; color: var(--c-text); margin: 0; }
.ph-mid-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.ph-mid-or { font-size: .8rem; color: var(--c-text-soft); }

.ph-mid-tel {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 20px; border-radius: 50px;
    font-size: .92rem; font-weight: 700; color: var(--c-primary);
    text-decoration: none; background: rgba(0,95,164,.09);
    transition: background .2s, transform .2s; cursor: pointer;
}
.ph-mid-tel:hover { background: rgba(0,95,164,.15); transform: translateY(-1px); color: var(--c-primary); }
html.dark .ph-mid-tel { background: rgba(200,216,240,.10); border-color: rgba(200,216,240,.22); color: var(--c-primary); }

.ph-mid-devis {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 10px 20px; border-radius: 50px;
    font-size: .92rem; font-weight: 600; color: #fff;
    text-decoration: none; background: var(--c-primary);
    box-shadow: 0 4px 16px rgba(0,95,164,.25);
    transition: background .2s, box-shadow .2s, transform .2s; cursor: pointer;
}
.ph-mid-devis:hover { background: var(--c-accent); box-shadow: 0 6px 22px rgba(0,181,214,.28); transform: translateY(-1px); color: #fff; }
html.dark .ph-mid-devis { background: #F5F1EA; color: #1c2d3f; box-shadow: 0 4px 16px rgba(0,0,0,.20); }
html.dark .ph-mid-devis:hover { background: #fff; color: #1c2d3f; }
.ph-mid-devis svg { transition: transform .2s; }
.ph-mid-devis:hover svg { transform: translateX(3px); }

@media (max-width: 700px) {
    .ph-mid-wrap    { flex-direction: column; align-items: center; text-align: center; gap: 20px; }
    .ph-mid-actions { flex-direction: column; align-items: center; gap: 12px; }
    .ph-mid-tel,
    .ph-mid-devis   { width: 100%; max-width: 320px; justify-content: center; }
}


/* ================================================================
   25. CTA BAS DE FAQ
================================================================ */
.ph-faq-cta {
    margin-top: 40px; padding-top: 32px;
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; flex-wrap: wrap;
}
html.dark .ph-faq-cta { border-top-color: rgba(255,255,255,.08); }
.ph-faq-cta p { font-size: .95rem; color: var(--c-text-soft); margin: 0; }
@media (max-width: 600px) { .ph-faq-cta { flex-direction: column; align-items: flex-start; } }


/* ================================================================
   26. CAROUSEL SERVICES
================================================================ */
.ph-car-section {
    background: var(--c-bg);
    padding: 48px 0 0;
    overflow: visible;
}
html.dark .ph-car-section { background: var(--c-bg); }

.ph-car-viewport { overflow: hidden; width: 100%; }

.ph-car-track {
    display: flex; will-change: transform;
    gap: 16px; padding: 0 80px; box-sizing: content-box;
    transition: transform .7s cubic-bezier(.25,.46,.45,.94);
    cursor: grab; user-select: none;
}
.ph-car-track:active { cursor: grabbing; }

.ph-car-slide {
    flex-shrink: 0;
    position: relative;
    height: auto; aspect-ratio: 16/9;
    border-radius: 0; overflow: hidden;
    isolation: isolate;
    filter: brightness(.38) saturate(.7);
    transition: filter .6s cubic-bezier(.25,.46,.45,.94), transform .6s cubic-bezier(.25,.46,.45,.94);
}
.ph-car-slide.is-active { filter: brightness(1) saturate(1); }

.ph-car-img { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }

.ph-car-overlay {
    position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1;
    background: linear-gradient(to top, rgba(4,10,25,.92) 0%, rgba(4,10,25,.52) 35%, rgba(4,10,25,.14) 62%, transparent 100%);
}
.ph-car-content {
    position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 2;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: clamp(28px, 5vw, 72px); color: #fff;
    max-width: min(700px, 90vw);
}

.ph-car-tag   { font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.50); margin: 0 0 12px; }
.ph-car-title { font-size: clamp(1.9rem, 4.5vw, 3.4rem); font-weight: 700; line-height: 1.1; letter-spacing: -.022em; margin: 0 0 14px; color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.22); }
.ph-car-desc  { font-size: clamp(1rem, 1.4vw, 1.05rem); color: rgba(255,255,255,.70); line-height: 1.68; margin: 0 0 28px; max-width: 500px; }

.ph-car-ctas { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.ph-car-cta {
    display: inline-flex; align-items: center; gap: 8px;
    height: 44px; padding: 0 22px; border-radius: 50px;
    font-size: .9rem; font-weight: 600; color: #fff;
    text-decoration: none; box-sizing: border-box; cursor: pointer;
    background: rgba(255,255,255,.16);
    backdrop-filter: blur(16px) saturate(1.8); -webkit-backdrop-filter: blur(16px) saturate(1.8);
    border: 0.5px solid rgba(255,255,255,.28);
    box-shadow: none;
    transition: background .2s, box-shadow .2s;
}
.ph-car-cta:hover { background: rgba(255,255,255,.26); color: #fff; border-color: rgba(255,255,255,.44); }
.ph-car-cta svg { transition: transform .2s; flex-shrink: 0; }
.ph-car-cta:hover svg { transform: translateX(4px); }

.ph-car-cta-white {
    display: inline-flex; align-items: center;
    height: 44px; padding: 0 22px; border-radius: 50px;
    font-size: .9rem; font-weight: 600; color: #0a1628;
    text-decoration: none; background: #fff;
    box-shadow: 0 2px 14px rgba(0,0,0,.16);
    transition: box-shadow .2s, transform .2s; cursor: pointer;
}
.ph-car-cta-white:hover { color: var(--c-primary); box-shadow: 0 6px 24px rgba(0,0,0,.22); transform: translateY(-1px); }

/* Dots — Apple TV style */
.ph-car-dots {
    position: relative;
    display: flex; justify-content: center; align-items: center;
    gap: 6px; padding: 18px 0 8px;
}

.ph-car-dot,
.ph-car-dot.is-active,
.ph-car-dot:hover,
.ph-car-dot:focus,
.ph-car-dot:active {
    height: auto; width: auto;
    background: transparent !important; overflow: visible;
    padding: 10px 7px; border-radius: 0;
    border: none !important; box-shadow: none !important; transition: none;
    cursor: pointer;
    -webkit-appearance: none; appearance: none;
    outline: none !important;
    -webkit-tap-highlight-color: transparent;
    color: inherit;
}
.ph-car-dot:focus-visible { outline: 2px solid rgba(245,241,234,.5) !important; border-radius: 4px; }
.ph-car-dot:hover .ph-car-dot-bar { background: rgba(0,30,80,.35); }
html.dark .ph-car-dot:hover .ph-car-dot-bar { background: rgba(255,255,255,.50); }
.ph-car-dot-bar {
    display: block; position: relative;
    width: 26px; height: 4px; border-radius: 50px;
    background: rgba(0,30,80,.20); overflow: hidden;
    transition: background .3s;
}
html.dark .ph-car-dot-bar { background: rgba(255,255,255,.30); }
.ph-car-dot.is-active .ph-car-dot-bar { background: rgba(0,30,80,.28); }
html.dark .ph-car-dot.is-active .ph-car-dot-bar { background: rgba(255,255,255,.40); }

.ph-car-dot-bar::after {
    content: ''; position: absolute; inset: 0;
    border-radius: 50px; background: var(--c-primary, #005fa4);
    transform: scaleX(0); transform-origin: left; animation: none;
}
html.dark .ph-car-dot-bar::after { background: #fff; }
.ph-car-dot.is-active .ph-car-dot-bar::after {
    animation: phCarProgress var(--ph-car-delay, 5500ms) linear forwards;
}
@keyframes phCarProgress {
    from { transform: scaleX(0); }
    to   { transform: scaleX(1); }
}

.ph-car-slide .ph-car-ctas { transition: opacity .4s ease; }
.ph-car-slide:not(.is-active) .ph-car-ctas { opacity: 0; pointer-events: none; }

@media (max-width: 640px) {
    .ph-car-section  { padding: 18px 0 0; }
    .ph-car-slide    { border-radius: 0; }
    .ph-car-dot-bar  { width: 18px; height: 3px; }
    .ph-car-dot      { padding: 8px 5px; }

    /* Overlay plus dense pour meilleure lisibilité */
    .ph-car-overlay  {
        background: linear-gradient(to top,
            rgba(4,10,25,.97) 0%,
            rgba(4,10,25,.70) 40%,
            rgba(4,10,25,.25) 65%,
            transparent 100%);
    }

    .ph-car-title    { font-size: clamp(1.75rem, 6.5vw, 2.2rem); margin-bottom: 8px; color: #fff; }
    .ph-car-tag      { color: rgba(255,255,255,.75); }
    .ph-car-desc     { font-size: .92rem; line-height: 1.55; margin-bottom: 18px; color: rgba(255,255,255,.88);
                       display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

    .ph-car-ctas     { flex-direction: column; align-items: flex-start; gap: 8px; }
    .ph-car-cta,
    .ph-car-cta-white { height: 40px; font-size: .85rem; padding: 0 18px; }
}


/* ================================================================
   27. HERO — badge + bouton + hint
================================================================ */
.hero-badge {
    display: inline-flex; align-items: center; gap: 9px;
    padding: 8px 20px; border-radius: 50px;
    font-size: .78rem; font-weight: 600; letter-spacing: .04em;
    color: rgba(255,255,255,.92); margin-bottom: 28px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.28);
    backdrop-filter: blur(12px) saturate(1.4);
    -webkit-backdrop-filter: blur(12px) saturate(1.4);
}

.hero-badge-dot {
    width: 7px; height: 7px; flex-shrink: 0; border-radius: 50%;
    background: #00e5a0;
    animation: heroBadgePulse 2.2s ease infinite;
}
@keyframes heroBadgePulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(0,229,160,.45); }
    50%       { box-shadow: 0 0 0 5px rgba(0,229,160,0); }
}

.hero-cta-glass {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 15px 34px; border-radius: 50px;
    font-size: 1.02rem; font-weight: 600;
    color: #111111; text-decoration: none; cursor: pointer; margin-top: 8px;
    background: #ffffff; border: none;
    box-shadow: 0 8px 32px rgba(0,0,0,.28), 0 2px 8px rgba(0,0,0,.14);
    transition: background .22s, box-shadow .22s, transform .2s, color .22s;
}
.hero-cta-glass:hover {
    background: #f0f0f0; color: #111111;
    box-shadow: 0 12px 40px rgba(0,0,0,.34), 0 2px 8px rgba(0,0,0,.16);
    transform: translateY(-2px);
}
.hero-cta-glass:active { transform: translateY(0); }
.hero-cta-glass svg { transition: transform .2s; flex-shrink: 0; }
.hero-cta-glass:hover svg { transform: translateX(4px); }

.hero-cta-hint { font-size: .78rem; color: rgba(255,255,255,.58); margin: 12px 0 0; letter-spacing: .02em; }


/* ================================================================
   28. ENGAGEMENTS (ph-why + ph-eng-*)
================================================================ */
.ph-eng-num { display: none; }

.ph-why { background: var(--c-bg); padding: 120px 0 0; }
@media (max-width: 768px) { .ph-why { padding: 72px 0 0; } }
@media (max-width: 480px) { .ph-why { padding: 56px 0 0; } }
html.dark .ph-why { background: var(--c-bg); }
.ph-why > .wrapper { padding-bottom: 0; }

.ph-eng-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 0; margin-top: 0;
    border-top: 1px solid rgba(0,0,0,.07);
    background: transparent;
}
html.dark .ph-eng-grid { border-top-color: rgba(255,255,255,.07); }

.ph-eng-sep { display: none; }

.ph-eng-col {
    padding: 56px 44px 64px; gap: 16px;
    display: flex; flex-direction: column;
    align-items: flex-start; text-align: left;
    border-right: 1px solid rgba(0,0,0,.07);
    border-bottom: 1px solid rgba(0,0,0,.07);
    position: relative; background: transparent;
    transition: background .22s;
}
.ph-eng-grid > .ph-eng-col:last-of-type { border-right: none; }
html.dark .ph-eng-col { border-right-color: rgba(255,255,255,.07); border-bottom-color: rgba(255,255,255,.07); }
.ph-eng-col:hover { background: color-mix(in srgb, var(--c-primary) 4%, transparent); }
html.dark .ph-eng-col:hover { background: color-mix(in srgb, var(--c-primary) 6%, transparent); }

.ph-eng-icon {
    width: 52px; height: 52px; min-width: 52px; flex-shrink: 0;
    background: color-mix(in srgb, var(--c-primary) 10%, transparent);
    border-radius: 14px; display: flex; align-items: center; justify-content: center;
    padding: 12px; box-sizing: border-box;
    color: var(--c-primary); margin-bottom: 4px;
}
html.dark .ph-eng-icon { background: color-mix(in srgb, var(--c-primary) 14%, transparent); }
.ph-eng-icon svg { width: 100%; height: 100%; stroke: var(--c-primary); stroke-width: 1.6; }

.ph-eng-col h3 { font-weight: 700; letter-spacing: -.02em; line-height: 1.3; color: var(--c-text); margin: 0; }
.ph-eng-col p  { font-size: 1rem; line-height: 1.8; color: var(--c-text-soft); margin: 0; }

@media (max-width: 820px) {
    .ph-eng-grid { grid-template-columns: 1fr; border-top: none; }
    .ph-eng-col  { border-right: none; border-top: 1px solid rgba(0,0,0,.07); padding: 40px 32px; }
    html.dark .ph-eng-col { border-top-color: rgba(255,255,255,.07); }
    .ph-eng-col:first-of-type { border-top: none; }
}
@media (max-width: 480px) { .ph-eng-col { padding: 32px 24px; } }


/* ================================================================
   29. FINANCEMENT (ph-aides + ph-aid-*)
================================================================ */
.ph-aides { background: var(--c-bg); padding: 120px 0 0; }
@media (max-width: 768px) { .ph-aides { padding: 72px 0 0; } }
@media (max-width: 480px) { .ph-aides { padding: 56px 0 0; } }
html.dark .ph-aides { background: var(--c-bg); }

.ph-aid-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px; background: transparent;
    max-width: 1180px; margin: 0 auto;
    padding: 0 clamp(18px, 4vw, 56px);
}

.ph-aid-header-tile {
    grid-column: 1 / -1;
    background: transparent;
    padding: 0 clamp(28px, 6vw, 80px) 52px;
    text-align: center;
}
html.dark .ph-aid-header-tile { background: transparent; }
.ph-aid-header-tile .title-lg { margin: 8px 0 10px; }
.ph-aides-lead { color: var(--c-text-soft); font-size: .95rem; margin: 0; }

/* Disposition bento 2/5 + 3/5 (zigzag) */
.ph-aid-tile:nth-child(2) { grid-column: span 2; }
.ph-aid-tile:nth-child(3) { grid-column: span 3; }
.ph-aid-tile:nth-child(4) { grid-column: span 3; }
.ph-aid-tile:nth-child(5) { grid-column: span 2; }

.ph-aid-tile {
    position: relative; overflow: hidden;
    background: var(--c-surface);
    border-radius: 18px;
    border: 1px solid rgba(0,0,0,.08);
    border-top: 4px solid var(--aid-color);
    display: flex; flex-direction: column;
    justify-content: flex-end; align-items: flex-start;
    text-align: left; padding: 36px 36px 32px;
    min-height: 260px; gap: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,.04), 0 6px 24px rgba(0,0,0,.05);
    transition: box-shadow .22s, transform .22s;
}
html.dark .ph-aid-tile {
    background: var(--c-surface);
    border-color: rgba(245,241,234,.10);
    box-shadow: 0 2px 8px rgba(0,0,0,.12), 0 6px 24px rgba(0,0,0,.10);
}
.ph-aid-tile:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,.10), 0 2px 8px rgba(0,0,0,.06); }
html.dark .ph-aid-tile:hover { box-shadow: 0 12px 40px rgba(0,0,0,.20); }

.ph-aid-tag {
    display: inline-block; font-size: .68rem; font-weight: 700;
    letter-spacing: .10em; text-transform: uppercase;
    color: var(--aid-color); background: transparent;
    padding: 0; border-radius: 0; margin: 0 0 4px;
    position: relative; z-index: 1;
    align-self: flex-start; order: 1;
}

.ph-aid-tile > h4 {
    font-size: 1.55rem; font-weight: 800; letter-spacing: -.03em;
    line-height: 1.2; color: var(--c-text);
    margin: 0; padding: 0; position: relative; z-index: 1; order: 2;
}
.ph-aid-tile > p {
    font-size: .88rem; color: var(--c-text-soft);
    line-height: 1.72; margin: 0; padding: 0;
    position: relative; z-index: 1; order: 3;
}

.ph-aid-footer { text-align: center; padding: 36px 0 72px; background: var(--c-bg); }
html.dark .ph-aid-footer { background: var(--c-bg); }

@media (max-width: 640px) {
    .ph-aid-grid { grid-template-columns: 1fr; gap: 10px; padding: 0 18px; }
    .ph-aid-tile:nth-child(2),
    .ph-aid-tile:nth-child(3),
    .ph-aid-tile:nth-child(4),
    .ph-aid-tile:nth-child(5) { grid-column: span 1; }
    .ph-aid-header-tile { padding: 56px 18px 40px; }
    .ph-aid-tile { min-height: 200px; padding: 28px 24px; }
    .ph-aid-tile > h4 { font-size: 1.3rem; }
}


/* ================================================================
   30. FAQ
================================================================ */
.ph-faq { padding: 120px 0 100px; }
@media (max-width: 768px) { .ph-faq { padding: 72px 0 60px; } }
@media (max-width: 480px) { .ph-faq { padding: 56px 0 48px; } }

.ph-faq .accordion { display: block; max-width: 760px; margin: 48px auto 0; }

.ph-faq .accordion-item {
    border: none;
    border-bottom: 1px solid rgba(0,0,0,.08);
    border-radius: 0; background: transparent;
    box-shadow: none; padding: 0; margin: 0;
}
html.dark .ph-faq .accordion-item {
    background: transparent;
    border-bottom-color: rgba(245,241,234,.12);
}
.ph-faq .accordion-item:first-child { border-top: 1px solid rgba(0,0,0,.08); }
html.dark .ph-faq .accordion-item:first-child { border-top-color: rgba(245,241,234,.12); }

.ph-faq .accordion-item summary {
    list-style: none; display: flex; justify-content: space-between;
    align-items: center; gap: 24px; padding: 26px 0;
    font-size: 1.05rem; font-weight: 600;
    color: var(--c-text); cursor: pointer; user-select: none;
    background: transparent;
}
.ph-faq .accordion-item summary::-webkit-details-marker,
.ph-faq .accordion-item summary::marker { display: none; }

.ph-faq .accordion-item summary::after {
    content: '+'; font-size: 1.6rem; font-weight: 300; line-height: 1;
    color: var(--c-primary); flex-shrink: 0; transition: transform .3s ease;
    /* Sortir du mode position:absolute hérité → redevient enfant flex à droite */
    position: static;
    top: auto; right: auto; translate: none;
}
.ph-faq .accordion-item[open] summary::after { transform: rotate(45deg); }

.ph-faq .accordion-item > p,
.ph-faq .accordion-item p {
    padding: 0 32px 24px 0; margin: 0;
    font-size: .95rem; color: var(--c-text-soft); line-height: 1.8;
    animation: faqFadeIn .2s ease;
}
@keyframes faqFadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
@media (max-width: 600px) {
    .ph-faq .accordion-item summary { font-size: .97rem; padding: 22px 0; }
    .ph-faq .accordion-item p { padding-right: 16px; font-size: .9rem; }
}


/* ================================================================
   31. CTA FINALE
================================================================ */
.ph-cta-finale {
    background: linear-gradient(160deg, #09142a 0%, #0c1e3c 60%, #09121f 100%) !important;
    padding: 120px 0;
}
@media (max-width: 768px) { .ph-cta-finale { padding: 72px 0; } }
@media (max-width: 480px) { .ph-cta-finale { padding: 56px 0; } }

.ph-cta-wrap    { max-width: 600px; text-align: center; }
.ph-cfa-eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.70); margin: 0 0 16px; }
.ph-cfa-title   { font-size: clamp(2rem, 4.5vw, 3rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.15; color: #fff; margin: 0 0 14px; }
.ph-cfa-lead    { font-size: 1rem; color: rgba(255,255,255,.78); margin: 0 0 36px; line-height: 1.65; }

.ph-cfa-btn {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 15px 36px; border-radius: 50px;
    font-size: 1rem; font-weight: 600; color: #0f1117;
    text-decoration: none; cursor: pointer;
    background: #ffffff; border: none;
    box-shadow: 0 8px 32px rgba(0,0,0,.30), 0 2px 8px rgba(0,0,0,.16);
    transition: background .22s, box-shadow .22s, transform .2s, color .22s;
}
.ph-cfa-btn:hover {
    background: #f0f0f0; color: #0f1117;
    box-shadow: 0 12px 40px rgba(0,0,0,.36);
    transform: translateY(-2px);
}


/* ================================================================
   32. SERVICE MANDATAIRE — PROCESS
================================================================ */
.sm-process {
    background: var(--c-primary);
    padding: 80px 0 0;
}
html.dark .sm-process { background: var(--c-bg-alt); }
.sm-process-head {
    text-align: center;
    margin-bottom: 72px;
}
.sm-process-eyebrow {
    font-size: .72rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: rgba(245,241,234,.55);
    display: block; margin-bottom: 16px;
}
.sm-process-eyebrow::after {
    content: ''; display: block;
    width: 32px; height: 2px;
    background: rgba(245,241,234,.35);
    border-radius: 2px;
    margin: 10px auto 0;
}
.sm-process h2 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 600; color: #F5F1EA;
    margin: 0; letter-spacing: -.02em; line-height: 1.15;
}
.sm-process-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    width: 100%;
    position: relative;
    border-top: 1px solid rgba(245,241,234,.12);
}
.sm-process-grid--4 { grid-template-columns: repeat(4, 1fr); }
.sm-step {
    padding: 48px 40px;
    display: flex; flex-direction: column;
    align-items: flex-start;
    position: relative;
    border-right: 1px solid rgba(245,241,234,.12);
    border-bottom: 1px solid rgba(245,241,234,.12);
}
.sm-step:last-child { border-right: none; }
.sm-step-num {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.4rem; font-weight: 600;
    color: #F5F1EA;
    width: 48px; height: 48px;
    border: 1px solid rgba(245,241,234,.30);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    line-height: 1;
    margin-bottom: 28px;
    position: relative; z-index: 1;
    background: var(--c-primary);
    flex-shrink: 0;
    letter-spacing: 0;
}
html.dark .sm-step-num { background: rgba(245,241,234,.12); border-color: rgba(245,241,234,.25); }
.sm-step h3 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.45rem; font-weight: 600;
    color: #F5F1EA; margin: 0 0 12px;
    line-height: 1.25; letter-spacing: -.01em;
}
.sm-step p {
    font-size: 1rem; font-weight: 300;
    color: rgba(245,241,234,.68);
    line-height: 1.75; margin: 0;
}
@media (max-width: 860px) {
    .sm-process-grid {
        grid-template-columns: 1fr;
        border-top: 1px solid rgba(245,241,234,.12);
    }
    .sm-step {
        border-right: none;
        border-top: 1px solid rgba(245,241,234,.12);
        padding: 40px 32px;
    }
    .sm-step:first-child { border-top: none; }
}
@media (max-width: 520px) {
    .sm-process-grid { grid-template-columns: 1fr; border-top: 1px solid rgba(245,241,234,.12); }
    .sm-step {
        border-right: none !important;
        border-top: 1px solid rgba(245,241,234,.12) !important;
        padding: 36px 28px;
    }
    .sm-step:first-child { border-top: none !important; }
    .sm-process { padding: 72px 0 80px; }
}


/* ================================================================
   33. TARIF BENTO — composant page ménage (sans tableau)
================================================================ */

.tarif-bento {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 40px;
}
@media (max-width: 640px) { .tarif-bento { grid-template-columns: 1fr; gap: 10px; } }

/* Tile de base — reprend l'esthétique ph-aid-tile */
.tarif-tile {
    position: relative; overflow: hidden;
    background: var(--c-surface);
    border-radius: 18px;
    border: 1px solid rgba(0,0,0,.08);
    display: flex; flex-direction: column;
    justify-content: flex-start; align-items: flex-start;
    padding: 28px 28px 24px;
    min-height: 240px; gap: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,.04), 0 6px 24px rgba(0,0,0,.05);
    transition: box-shadow .22s, transform .22s;
}
.tarif-tile:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,.10), 0 2px 8px rgba(0,0,0,.06); }
html.dark .tarif-tile { background: var(--c-surface); border-color: rgba(245,241,234,.10); }
html.dark .tarif-tile:hover { box-shadow: 0 12px 40px rgba(0,0,0,.18); }

.tarif-tile-icon {
    position: absolute; top: 24px; right: 24px;
    width: 38px; height: 38px;
    background: color-mix(in oklab, var(--c-primary) 9%, transparent);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
}
.tarif-tile-icon svg {
    width: 18px; height: 18px;
    stroke: var(--c-primary); stroke-width: 1.5;
    fill: none; stroke-linecap: round; stroke-linejoin: round;
}

.tarif-tile-tag {
    display: inline-block;
    font-size: .68rem; font-weight: 700;
    letter-spacing: .10em; text-transform: uppercase;
    color: var(--c-primary); margin: 0 0 6px;
}
html.dark .tarif-tile-tag { color: var(--c-accent); }

.tarif-tile-price {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: clamp(1.7rem, 2.8vw, 2.1rem); font-weight: 700;
    line-height: 1; color: var(--c-text);
    margin: 0 0 6px; letter-spacing: -.03em;
}
.tarif-tile-price small {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 1em; font-weight: 700; letter-spacing: -.03em;
}

.tarif-tile-desc {
    font-size: .88rem; color: var(--c-text-soft);
    line-height: 1.62; margin: 0;
}
.tarif-tile-qualifier {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .9rem; font-weight: 500;
    color: var(--c-text-soft);
    margin: -4px 0 6px; line-height: 1.3;
}

.tarif-tile-sub {
    display: block; margin-top: 6px;
    font-size: .82rem; font-weight: 500;
    color: var(--c-text-soft);
    opacity: 1;
}

/* Tile pleine largeur — gardiennage */
.tarif-tile--wide {
    grid-column: 1 / -1;
    min-height: auto;
    justify-content: flex-start; gap: 18px;
}

.tarif-wide-header {
    display: flex; align-items: flex-start; gap: 14px;
}
.tarif-wide-header .tarif-tile-icon {
    position: static; flex-shrink: 0;
}
.tarif-wide-header .tarif-tile-tag { margin-bottom: 2px; }

.tarif-week-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px; width: 100%;
}
@media (max-width: 560px) { .tarif-week-grid { grid-template-columns: 1fr; gap: 8px; } }

.tarif-week-item {
    background: var(--c-bg-alt);
    border-radius: 12px; padding: 14px 16px;
    display: flex; flex-direction: column; gap: 4px;
}
html.dark .tarif-week-item { background: var(--c-bg-alt); }

.tarif-week-label {
    font-size: .68rem; font-weight: 700;
    letter-spacing: .09em; text-transform: uppercase;
    color: var(--c-text-soft); opacity: .65;
}
.tarif-week-prices {
    display: flex; align-items: baseline; gap: 8px; margin-top: 2px;
}
.tarif-week-full {
    font-size: .9rem; color: var(--c-text-soft);
    opacity: .4; text-decoration: line-through;
}
.tarif-week-arrow { font-size: .78rem; color: var(--c-text-soft); opacity: .28; }
.tarif-week-main {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 1.7rem; font-weight: 700;
    color: var(--c-primary); line-height: 1;
}
html.dark .tarif-week-main { color: var(--c-accent); }
.tarif-week-save {
    font-size: .65rem; font-weight: 700;
    letter-spacing: .04em;
    color: color-mix(in oklab, var(--c-primary) 75%, #2d8a56);
}
html.dark .tarif-week-save { color: color-mix(in oklab, var(--c-accent) 75%, #2d8a56); }

/* ================================================================
   33. SERVICE MANDATAIRE — CALLOUT EMPLOYEUR
================================================================ */
.sm-employer-callout {
    background: var(--c-bg-alt);
    border-top: 1px solid color-mix(in oklab, var(--c-text) 10%, transparent);
    border-bottom: 1px solid color-mix(in oklab, var(--c-text) 10%, transparent);
    padding: 72px 24px;
    text-align: center;
}
.sm-employer-callout blockquote {
    margin: 0 auto;
    max-width: 760px;
    padding: 0;
    border: none;
}
.sm-employer-callout .sm-eq-line {
    display: block;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.6rem, 3.5vw, 2.6rem);
    font-weight: 600;
    color: var(--c-text);
    line-height: 1.3;
    letter-spacing: -.02em;
    margin: 0;
}
.sm-employer-callout .sm-eq-line:last-child {
    color: var(--c-primary);
    font-style: italic;
}
.sm-employer-callout .sm-eq-sub {
    display: block;
    margin-top: 20px;
    font-size: .88rem;
    font-weight: 300;
    color: var(--c-text-soft);
    line-height: 1.7;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}


/* ================================================================
   32. RYTHME GLOBAL
================================================================ */
/* Pas d'alternance de fonds — les sections se distinguent par
   l'espacement (120px), les eyebrows colorés et les changements
   de layout. Seuls le trust bar, mid-cta et carousel ont leur
   propre traitement de fond. */

/* ── Lisibilité mobile ── */
@media (max-width: 600px) {
    body { font-size: 1.05rem; }
    .ph-lead          { font-size: 1.08rem; }
    .accordion-item summary { font-size: 1.05rem; }
    .accordion-item p { font-size: 1rem; }
    .ph-sb-desc       { font-size: .95rem; }
    .ph-car-desc      { font-size: 1rem; }
    .ph-eng-col p     { font-size: 1rem; }
    .sm-step p        { font-size: 1rem; }
    .ph-aid-tile p    { font-size: .95rem; }
}


/* ================================================================
   33. MAILLAGE INTER-SERVICES
================================================================ */
.ph-other-services {
    padding: 72px 0;
    border-top: 1px solid rgba(0,0,0,.1);
}
.ph-other-services .ph-os-eyebrow {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .7rem;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--c-accent);
    margin-bottom: 28px;
    text-align: center;
}
.ph-os-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}
.ph-os-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 24px 28px;
    border: 1px solid rgba(0,0,0,.1);
    border-radius: 16px;
    text-decoration: none;
    color: var(--c-text);
    background: var(--c-surface);
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.ph-os-card:hover {
    border-color: var(--c-accent);
    box-shadow: 0 4px 24px rgba(0,0,0,.06);
    transform: translateY(-2px);
}
.ph-os-card-label {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--c-text-soft);
}
.ph-os-card-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--c-text);
}
.ph-os-card-arrow {
    margin-top: 6px;
    color: var(--c-accent);
    font-size: .8rem;
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 400;
    display: flex;
    align-items: center;
    gap: 5px;
}


/* ================================================================
   34. TARIF MANDATAIRE
================================================================ */
.sm-tarif-section {
    padding: 96px 0 80px;
}
.sm-tarif-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.sm-tarif-price-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 24px 0 36px;
}
.sm-tarif-label {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .78rem;
    font-weight: 400;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--c-text-soft);
    margin-bottom: 12px;
}
.sm-tarif-number {
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 200;
    font-size: clamp(5rem, 14vw, 9rem);
    line-height: 1;
    letter-spacing: -.04em;
    color: var(--c-text);
    margin: 0;
}
.sm-tarif-number span {
    font-size: .45em;
    font-weight: 300;
    letter-spacing: -.02em;
    opacity: .7;
    vertical-align: 0.1em;
}

/* Chips */
.sm-tarif-chips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}
.sm-tarif-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    border: 1px solid rgba(0,0,0,.1);
    border-radius: 100px;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .8rem;
    font-weight: 400;
    color: var(--c-text-soft);
    background: var(--c-surface);
}
html.dark .sm-tarif-chip {
    border-color: rgba(245,241,234,.12);
    background: rgba(245,241,234,.05);
}
.sm-tarif-chip svg {
    width: 13px; height: 13px;
    stroke: var(--c-accent);
    fill: none;
    flex-shrink: 0;
}
.sm-tarif-chip sup {
    font-size: .65em;
    vertical-align: super;
}

/* Mention légale */
.sm-tarif-legal {
    margin-top: 28px;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: .68rem;
    font-weight: 300;
    color: var(--c-text-soft);
    opacity: .65;
    text-align: center;
    max-width: 560px;
    line-height: 1.7;
}
