/* ===========================================================
   IMMOBILIER AUXOIS-MORVAN — site.css (premium refonte)
   Palette ink + forêt + sable, sans bordure ni ombre.
   =========================================================== */

@font-face {
    font-family: 'Fraunces';
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url('/assets/fonts/fraunces-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Fraunces';
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url('/assets/fonts/fraunces-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('/assets/fonts/inter-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('/assets/fonts/inter-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    --font-sans: 'Inter', 'Segoe UI', sans-serif;
    --font-display: 'Fraunces', 'Cormorant Garamond', serif;

    --color-bg: #fbfaf7;
    --color-bg-soft: #f3f0e9;
    --color-bg-warm: #ece5d8;
    --color-panel: #ffffff;
    --color-ink: #2a2f33;
    --color-ink-strong: #0d1418;
    --color-muted: #6b7079;
    --color-muted-soft: #9aa0a8;
    --color-primary: #173f31;
    --color-primary-hover: #0f3024;
    --color-accent: #173f31;
    --color-accent-strong: #173f31;
    --color-accent-soft: #e3ece6;
    --color-warm: #c97d4a;
    --color-warm-soft: #f1e2d2;
    --color-dark: var(--color-primary);
}

*,
*::before,
*::after {
    box-sizing: border-box;
    border-color: transparent;
}

html {
    scroll-behavior: smooth;
    background: var(--color-bg);
}

body {
    margin: 0;
    font-family: var(--font-sans);
    color: var(--color-ink);
    background: var(--color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.6;
}

::selection {
    background: var(--color-accent);
    color: white;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

picture { display: contents; }

a {
    color: inherit;
    text-decoration: none;
    transition: color 220ms ease, opacity 220ms ease;
}

button {
    font: inherit;
    cursor: pointer;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 600;
    color: var(--color-ink-strong);
    letter-spacing: -0.025em;
    line-height: 1.05;
    margin: 0;
}

p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }

.shell {
    width: min(100% - 1.5rem, 78rem);
    margin-inline: auto;
}

@media (min-width: 768px) {
    .shell { width: min(100% - 3rem, 78rem); }
}

.section {
    padding-block: 3rem;
}

@media (min-width: 768px) {
    .section { padding-block: 5.25rem; }
}

.section-tight {
    padding-top: 0;
    padding-bottom: 1.85rem;
}
main > section.section-tight:last-of-type {
    padding-bottom: 0;
}
@media (min-width: 768px) { .section-tight { padding-block: 4.25rem; } }

.section-hero {
    padding-block: 2.25rem 3.4rem;
}
@media (min-width: 768px) {
    .section-hero { padding-block: 3.5rem 5.1rem; }
}

section[id] { scroll-margin-top: 6rem; }

@supports (content-visibility: auto) {
    @media (max-width: 767.98px) {
        main > section:not(:first-child),
        .site-footer {
            content-visibility: auto;
            contain-intrinsic-size: auto 720px;
        }
    }
}

/* === EYEBROW + TYPO HELPERS === */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin: 0;
}

.eyebrow::before {
    content: '';
    width: 1.75rem;
    height: 1px;
    background: currentColor;
    opacity: 0.85;
}

.section-title {
    margin-top: 1.25rem;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.02;
    letter-spacing: -0.025em;
}

.section-subtitle {
    margin-top: 1.25rem;
    max-width: 50rem;
    color: var(--color-muted);
    font-size: 1rem;
    line-height: 1.75;
}

@media (min-width: 768px) {
    .section-subtitle { font-size: 1.05rem; }
}

.section-actions {
    margin-top: 2.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
}

.section-actions span {
    font-size: 0.9rem;
    color: var(--color-muted);
}

/* === BUTTONS === */
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.5rem;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    transition: background-color 220ms ease, color 220ms ease, transform 220ms ease;
    cursor: pointer;
}

.button.primary {
    background: var(--color-primary);
    color: white;
}
.button.primary:hover { background: var(--color-primary-hover); }

.button.secondary {
    background: transparent;
    color: var(--color-ink-strong);
    box-shadow: inset 0 0 0 1px rgba(13, 20, 24, 0.15);
}
.button.secondary:hover {
    background: var(--color-ink-strong);
    color: white;
    box-shadow: inset 0 0 0 1px var(--color-ink-strong);
}

.ghost-button {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--color-ink-strong);
    font-size: 0.9rem;
    font-weight: 500;
}
.ghost-button:hover { color: var(--color-accent-strong); }

/* === RICHTEXT === */
.richtext {
    display: grid;
    gap: 1rem;
    color: var(--color-ink);
}
.richtext p, .richtext li {
    font-size: 1rem;
    line-height: 1.8;
}
.richtext h2, .richtext h3 {
    margin-top: 1.25rem;
    font-family: var(--font-display);
}
.richtext h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); }
.richtext h3 { font-size: 1.4rem; }
.richtext a {
    color: var(--color-accent-strong);
    text-decoration: underline;
    text-decoration-color: rgba(31, 95, 74, 0.4);
    text-underline-offset: 0.2rem;
    font-weight: 500;
}
.richtext ul, .richtext ol {
    padding-left: 1.25rem;
    list-style: disc;
    display: grid;
    gap: 0.5rem;
}

/* === HEADER === */
.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(251, 250, 247, 0.85);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.site-header-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-block: 1rem;
}

.site-header .shell {
    position: relative;
}

@media (min-width: 768px) {
    .site-header-bar { padding-block: 1.25rem; }
}

.site-logo-link { display: inline-flex; align-items: center; }
.site-logo {
    height: auto;
    width: 148px;
}
@media (min-width: 768px) {
    .site-logo { width: 180px; }
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.site-nav-link {
    padding: 0.55rem 0.95rem;
    border-radius: 999px;
    font-size: 0.92rem;
    font-weight: 500;
    color: var(--color-ink);
    transition: background-color 220ms ease, color 220ms ease;
}
.site-nav-link:hover { color: var(--color-accent-strong); }
.site-nav-link.is-active {
    background: var(--color-primary);
    color: white;
}

.site-cta {
    display: inline-flex;
    align-items: center;
    padding: 0.7rem 1.4rem;
    border-radius: 999px;
    background: var(--color-primary);
    color: white;
    font-size: 0.9rem;
    font-weight: 600;
    transition: background 220ms ease;
}
.site-cta:hover { background: var(--color-primary-hover); }

.mobile-menu-toggle {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.28rem;
    width: 2.9rem;
    height: 2.9rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--color-primary);
    color: white;
    flex-shrink: 0;
}

.mobile-menu-toggle span {
    width: 1.05rem;
    height: 2px;
    margin-inline: auto;
    border-radius: 999px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
}

.mobile-menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.mobile-menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

.site-mobile-menu {
    padding-bottom: 0.85rem;
}

.site-mobile-menu-inner {
    display: grid;
    gap: 0.75rem;
    padding: 0.9rem;
    border-radius: 1.4rem;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(20, 37, 35, 0.08);
    box-shadow: 0 0.85rem 2rem rgba(20, 37, 35, 0.08);
}

.site-mobile-nav {
    display: grid;
    gap: 0.35rem;
}

.site-mobile-nav-link,
.site-mobile-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    border-radius: 999px;
    padding: 0.8rem 1rem;
    text-align: center;
}

.site-mobile-nav-link {
    background: rgba(23, 63, 49, 0.06);
    color: var(--color-ink-strong);
    font-size: 0.94rem;
    font-weight: 600;
}

.site-mobile-nav-link.is-active {
    background: var(--color-accent-soft);
    color: var(--color-accent-strong);
}

.site-mobile-cta {
    background: var(--color-primary);
    color: white;
    font-size: 0.92rem;
    font-weight: 700;
}

@media (min-width: 1024px) {
    .mobile-menu-toggle,
    .site-mobile-menu { display: none; }
}

.desktop-only { display: none; }
@media (min-width: 1024px) {
    .desktop-only { display: inline-flex; }
    .site-nav.desktop-only { display: flex; }
}

/* === HOME HERO === */
.home-hero-grid {
    display: grid;
    gap: 2.5rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .home-hero-grid {
        grid-template-columns: 1.05fr 0.95fr;
        gap: 4rem;
    }
}

.home-hero-copy h1 {
    margin-top: 1.5rem;
    font-size: clamp(2.5rem, 7vw, 5.25rem);
    line-height: 0.98;
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.hero-text {
    margin-top: 1.5rem;
    max-width: 36rem;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--color-muted);
}
@media (min-width: 768px) {
    .hero-text { font-size: 1.08rem; }
}

.hero-actions {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
@media (min-width: 540px) {
    .hero-actions { flex-direction: row; flex-wrap: wrap; }
}

.home-hero-side {
    position: relative;
    display: grid;
    gap: 1.25rem;
}

.hero-media {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: 2rem;
    background: var(--color-bg-warm);
}
.hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 800ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.hero-media:hover img { transform: scale(1.04); }
.hero-media.no-image::after {
    content: 'Auxois · Morvan';
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--color-muted);
    font-family: var(--font-display);
    font-size: 1.5rem;
}

/* People card overlapping the hero on desktop */
.hero-people-card {
    background: var(--color-panel);
    border-radius: 1.5rem;
    padding: 1.5rem;
}
@media (min-width: 1024px) {
    .hero-people-card {
        position: absolute;
        bottom: -1.5rem;
        left: -1.5rem;
        right: 25%;
        margin: 0;
        padding: 1.5rem;
    }
}

.hero-people-kicker {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-muted);
}

.hero-people-grid {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.85rem;
}
@media (min-width: 540px) {
    .hero-people-grid { grid-template-columns: 1fr 1fr; }
}

.hero-person {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.hero-person img,
.hero-person span {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    object-fit: cover;
    background: var(--color-accent-soft);
    color: var(--color-accent-strong);
    display: grid;
    place-items: center;
    font-family: var(--font-display);
    font-weight: 600;
    flex-shrink: 0;
}
.hero-person div { display: grid; line-height: 1.2; }
.hero-person strong {
    font-size: 0.92rem;
    color: var(--color-ink-strong);
    font-weight: 600;
}
.hero-person small {
    font-size: 0.78rem;
    color: var(--color-muted);
    margin-top: 0.15rem;
}

.home-stats-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: 1fr 1fr;
}
@media (min-width: 1024px) { .home-stats-grid { display: none; } }

.home-stat-card {
    background: var(--color-bg-soft);
    border-radius: 1.25rem;
    padding: 1.1rem 1.25rem;
}
.home-stat-card p {
    font-family: var(--font-display);
    font-size: 1.4rem;
    color: var(--color-ink-strong);
    line-height: 1.1;
}
.home-stat-card span {
    display: block;
    margin-top: 0.4rem;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--color-muted);
}
.home-stat-card.mobile-hide { display: none; }
@media (min-width: 540px) { .home-stat-card.mobile-hide { display: block; } }

/* === SECTION HERO INNER (pages standards) === */
.section-hero-inner h1 {
    font-size: clamp(2.2rem, 5vw, 3.75rem);
}
.section-hero-inner .hero-media {
    aspect-ratio: 16 / 10;
    border-radius: 1.5rem;
    max-height: 320px;
}
@media (min-width: 1024px) {
    .section-hero-inner .hero-media {
        aspect-ratio: 5 / 4;
        max-height: 380px;
    }
}

/* === GRID LAYOUTS === */
.duo-grid {
    display: grid;
    gap: 1.5rem;
}
@media (min-width: 1024px) {
    .duo-grid { grid-template-columns: 0.92fr 1.08fr; align-items: start; }
}

.duo-grid-small {
    display: grid;
    gap: 1.25rem;
}
@media (min-width: 768px) {
    .duo-grid-small { grid-template-columns: 1fr 1fr; }
}

.stack-lg { display: grid; gap: 4rem; }

/* === PANEL CARDS === */
.panel-card {
    background: var(--color-panel);
    border-radius: 1.75rem;
    padding: 1.75rem;
}
@media (min-width: 768px) {
    .panel-card { padding: 2.25rem; }
}
@media (min-width: 1024px) {
    .panel-card { padding: 2.75rem; }
}

.panel-muted { background: var(--color-bg-soft); }
.panel-card.panel-muted { background: var(--color-bg-soft); }

.panel-card h2 {
    margin-top: 1.25rem;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    line-height: 1.05;
}

.panel-copy {
    margin-top: 1.25rem;
    color: var(--color-muted);
    font-size: 0.98rem;
    line-height: 1.8;
}
@media (min-width: 768px) {
    .panel-copy { font-size: 1.02rem; }
}
.panel-copy-tight { margin-top: 1rem; }

.intro-card { background: var(--color-bg-soft); }
.intro-card.richtext { gap: 1.25rem; }

/* === HOME INTRO PORTRAITS === */
.home-portraits-panel { background: var(--color-panel); }

.home-portraits-grid {
    margin-top: 1.25rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    align-items: stretch;
}
@media (min-width: 540px) {
    .home-portraits-grid { grid-template-columns: 1fr 1fr; }
}

.advisor-card {
    background: var(--color-bg-soft);
    border-radius: 1.25rem;
    padding: 1rem;
    text-align: left;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.advisor-card img,
.advisor-card span {
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: 1rem;
    object-fit: cover;
    background: var(--color-bg-warm);
    color: var(--color-ink-strong);
    display: grid;
    place-items: center;
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;
}
.advisor-card h3 {
    margin-top: 0.85rem;
    font-size: 1.2rem;
    line-height: 1.2;
}
.advisor-card p {
    margin-top: 0.4rem;
    font-size: 0.88rem;
    color: var(--color-muted);
}

/* === CHIPS / TAGS === */
.tags-wrap {
    margin-top: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.tags-wrap span {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    background: var(--color-panel);
    color: var(--color-ink-strong);
    font-size: 0.82rem;
    font-weight: 500;
}
.panel-muted .tags-wrap span,
.intro-card .tags-wrap span { background: var(--color-panel); }

/* === ACCENT LIST === */
.accent-list {
    margin-top: 1.5rem;
    display: grid;
    gap: 0.75rem;
}
.accent-list li {
    position: relative;
    padding-left: 2.25rem;
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--color-ink);
}
.accent-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.7rem;
    width: 1.5rem;
    height: 2px;
    background: var(--color-accent);
    border-radius: 2px;
}
.accent-list.compact-list li { font-size: 0.9rem; }

/* === CARDS GRID === */
.cards-grid {
    margin-top: 2.25rem;
    display: grid;
    gap: 1.25rem;
}
.cards-grid.three-cols { grid-template-columns: 1fr; }
@media (min-width: 768px) {
    .cards-grid.three-cols { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1100px) {
    .cards-grid.three-cols { grid-template-columns: repeat(3, 1fr); }
}

.cards-grid.two-cols { grid-template-columns: 1fr; }
@media (min-width: 768px) { .cards-grid.two-cols { grid-template-columns: 1fr 1fr; } }

/* === SOFT CARD (area, local) === */
.soft-card {
    overflow: hidden;
    border-radius: 1.5rem;
    background: var(--color-bg-soft);
    transition: transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.soft-card:hover { transform: translateY(-3px); }
.soft-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: var(--color-bg-warm);
    transition: transform 800ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.soft-card:hover img { transform: scale(1.04); }
.soft-card > div {
    padding: 1.5rem;
}
@media (min-width: 768px) {
    .soft-card > div { padding: 1.75rem; }
}
.soft-card h3 {
    margin-top: 0.75rem;
    font-size: 1.4rem;
    line-height: 1.15;
}
@media (min-width: 768px) {
    .soft-card h3 { font-size: 1.6rem; }
}
.soft-card p {
    margin-top: 0.85rem;
    font-size: 0.92rem;
    line-height: 1.7;
    color: var(--color-muted);
}

.area-card .card-kicker,
.local-card .card-kicker,
.soft-card .card-kicker {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--color-accent);
}

.card-city {
    margin-top: 0.4rem !important;
    font-size: 0.8rem !important;
    color: var(--color-muted-soft) !important;
}

.card-link-inline {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 1.25rem;
    font-size: 0.88rem;
    font-weight: 600;
.local-internal-links a {
    display: inline-flex;
    align-items: center;
    padding: 0.65rem 0.9rem;
    border-radius: 999px;
    border: 1px solid rgba(31, 41, 55, 0.12);
    background: var(--color-panel);
    color: var(--color-text);
    font-weight: 700;
    text-decoration: none;
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.local-internal-links a:hover {
    transform: translateY(-1px);
    border-color: rgba(179, 126, 51, 0.45);
    box-shadow: var(--shadow-soft);
}
    color: var(--color-ink-strong);
}
.card-link-inline:hover { color: var(--color-accent-strong); }

.card-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 1.5rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--color-ink-strong);
}

/* === SERVICES === */
.services-grid {
    margin-top: 2.25rem;
    display: grid;
    gap: 1.25rem;
}
@media (min-width: 768px) { .services-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1280px) { .services-grid { grid-template-columns: repeat(4, 1fr); } }

.service-card {
    background: var(--color-bg-soft);
    border-radius: 1.5rem;
    transition: background-color 320ms ease, transform 320ms ease;
    overflow: hidden;
}
@media (min-width: 768px) {
    .service-card {
        padding: 2.25rem;
        display: flex;
        flex-direction: column;
    }
}
.service-card:hover {
    background: var(--color-accent-soft);
    transform: translateY(-3px);
}
.service-card-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.35rem;
    cursor: pointer;
    list-style: none;
}
.service-card-summary::-webkit-details-marker { display: none; }
.service-card-summary::after {
    content: '+';
    flex-shrink: 0;
    color: var(--color-muted);
    font-size: 1.35rem;
    line-height: 1;
}
.service-card[open] .service-card-summary::after {
    content: '−';
}
.service-card-content {
    display: grid;
    gap: 0;
    padding: 0 1.35rem 1.35rem;
}
.service-card .card-kicker {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--color-muted);
}
.service-card h3 {
    margin-top: 0.6rem;
    font-size: 1.45rem;
    line-height: 1.08;
}
@media (min-width: 768px) { .service-card h3 { font-size: 2.1rem; } }
.service-card-content > p {
    margin-top: 1rem;
    font-size: 0.95rem;
    line-height: 1.75;
    color: var(--color-muted);
}
@media (min-width: 768px) {
    .service-card-summary {
        padding: 0;
        cursor: default;
    }

    .service-card-summary::after {
        display: none;
    }

    .service-card-content {
        display: grid;
        padding: 0;
    }

    .services-grid > details.service-card:not([open]) > .service-card-content {
        display: grid !important;
    }
}

/* === PAGE PRESTATIONS PREMIUM === */
.prestations-premium-page {
    background: var(--color-bg);
}
.prestations-premium-page .section-tight {
    padding-block: clamp(1.8rem, 4vw, 3.5rem);
}
.prestations-hero {
    padding-block: clamp(2.2rem, 5vw, 5rem) clamp(1.4rem, 3vw, 2.5rem);
}
.prestations-hero-grid {
    display: grid;
    gap: clamp(1.6rem, 5vw, 4.5rem);
    align-items: center;
}
@media (min-width: 900px) {
    .prestations-hero-grid { grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.92fr); }
}
.prestations-hero-copy h1 {
    max-width: 11em;
    margin: 0.8rem 0 1rem;
    font-size: clamp(2.35rem, 5.2vw, 4.5rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
}
.prestations-hero-media {
    position: relative;
    padding: 0.75rem;
    border-radius: 1.55rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.prestations-hero-media img {
    width: 100%;
    aspect-ratio: 1.18;
    object-fit: cover;
    border-radius: 1.1rem;
}
.prestations-hero-card {
    position: absolute;
    right: 1.25rem;
    bottom: 1.25rem;
    max-width: 9.5rem;
    padding: 0.85rem 1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(20, 37, 35, 0.08);
}
.prestations-hero-card strong {
    display: block;
    color: var(--color-accent-strong);
    font-family: var(--font-display);
    font-size: 2rem;
    line-height: 1;
}
.prestations-hero-card span {
    display: block;
    margin-top: 0.25rem;
    color: var(--color-muted);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.prestations-intro-grid {
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 760px) {
    .prestations-intro-grid { grid-template-columns: repeat(3, 1fr); }
}
.prestations-intro-grid article {
    padding: 1.25rem;
    border-radius: 1.15rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.prestations-intro-grid span {
    display: inline-flex;
    margin-bottom: 0.85rem;
    color: var(--color-accent-strong);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.14em;
}
.prestations-intro-grid strong {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--color-ink-strong);
    font-family: var(--font-display);
    font-size: 1.35rem;
    line-height: 1.1;
}
.prestations-intro-grid p {
    color: var(--color-muted);
    line-height: 1.65;
}

.prestations-section-head {
    max-width: 50rem;
    margin-bottom: 1.25rem;
}
.prestations-section-head h2 {
    margin: 0.35rem 0 0.6rem;
    font-size: clamp(1.85rem, 3.8vw, 3.25rem);
    line-height: 1.03;
}
.prestations-section-head p:not(.eyebrow) {
    color: var(--color-muted);
    line-height: 1.7;
}
.prestations-service-list {
    display: grid;
    gap: 1rem;
}
.prestations-service-row {
    display: grid;
    gap: 1rem;
    padding: 0.85rem;
    border-radius: 1.45rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
@media (min-width: 900px) {
    .prestations-service-row {
        grid-template-columns: minmax(16rem, 0.78fr) minmax(0, 1fr);
        align-items: stretch;
        padding: 1rem;
    }
    .prestations-service-row.is-reverse { grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.78fr); }
    .prestations-service-row.is-reverse .prestations-service-image { order: 2; }
}
.prestations-service-image {
    display: block;
    overflow: hidden;
    min-height: 13rem;
    border-radius: 1.05rem;
    background: var(--color-panel);
}
.prestations-service-image img {
    width: 100%;
    height: 100%;
    min-height: 13rem;
    object-fit: cover;
    transition: transform 420ms ease;
}
.prestations-service-image:hover img { transform: scale(1.02); }
.prestations-service-content {
    position: relative;
    padding: clamp(1rem, 3vw, 1.8rem);
}
.prestations-number {
    display: inline-flex;
    margin-bottom: 0.75rem;
    color: var(--color-accent-strong);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}
.prestations-service-content h3 {
    margin: 0.3rem 0 0.75rem;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    line-height: 1.05;
}
.prestations-service-content p:not(.eyebrow) {
    color: var(--color-muted);
    line-height: 1.72;
}
.prestations-service-content ul {
    display: grid;
    gap: 0.55rem;
    margin-top: 1rem;
}
@media (min-width: 660px) {
    .prestations-service-content ul { grid-template-columns: 1fr 1fr; }
}
.prestations-service-content li {
    padding-left: 0.85rem;
    border-left: 2px solid var(--color-accent);
    color: var(--color-ink);
    line-height: 1.45;
}

.prestations-method-panel {
    display: grid;
    gap: 1.25rem;
    padding: clamp(1.35rem, 4vw, 2.5rem);
    border-radius: 1.6rem;
    background: var(--color-accent-strong);
    color: white;
}
@media (min-width: 980px) {
    .prestations-method-panel { grid-template-columns: 0.78fr 1.22fr; align-items: start; }
}
.prestations-method-copy h2 {
    margin: 0.35rem 0 0.8rem;
    color: white;
    font-size: clamp(1.8rem, 3.5vw, 3rem);
    line-height: 1.05;
}
.prestations-method-copy .eyebrow,
.prestations-method-copy p:not(.eyebrow) { color: rgba(255, 255, 255, 0.76); }
.prestations-method-copy p:not(.eyebrow) { line-height: 1.7; }
.prestations-method-grid {
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 680px) {
    .prestations-method-grid { grid-template-columns: 1fr 1fr; }
}
.prestations-method-grid article {
    padding: 1.1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}
.prestations-method-grid span {
    display: inline-flex;
    margin-bottom: 0.6rem;
    color: var(--color-warm);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
}
.prestations-method-grid strong {
    display: block;
    margin-bottom: 0.4rem;
    color: white;
    font-family: var(--font-display);
    font-size: 1.25rem;
}
.prestations-method-grid p {
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.62;
}

.prestations-iad-layout {
    display: grid;
    gap: 1rem;
}
@media (min-width: 920px) {
    .prestations-iad-layout { grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.78fr); align-items: stretch; }
}
.prestations-iad-card,
.prestations-iad-points {
    border-radius: 1.45rem;
    border: 1px solid rgba(20, 37, 35, 0.07);
    background: var(--color-bg-soft);
}
.prestations-iad-card {
    padding: clamp(1.35rem, 4vw, 2.4rem);
}
.prestations-iad-card h2 {
    max-width: 14em;
    margin: 0.35rem 0 0.85rem;
    font-size: clamp(1.75rem, 3.2vw, 2.8rem);
    line-height: 1.05;
}
.prestations-iad-card p:not(.eyebrow) {
    color: var(--color-muted);
    line-height: 1.7;
}
.prestations-iad-points {
    display: grid;
    gap: 0;
    overflow: hidden;
}
.prestations-iad-points article {
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid rgba(20, 37, 35, 0.07);
}
.prestations-iad-points article:last-child { border-bottom: 0; }
.prestations-iad-points strong {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--color-accent-strong);
    font-family: var(--font-display);
    font-size: 1.35rem;
}
.prestations-iad-points span {
    color: var(--color-muted);
    line-height: 1.62;
}

@media (max-width: 640px) {
    .prestations-hero-card { right: 1rem; bottom: 1rem; }
    .prestations-service-row { padding: 0.7rem; }
    .prestations-service-content { padding-inline: 0.35rem; }
}

/* === TRUST GRID === */
.trust-grid {
    margin-top: 2.25rem;
    display: grid;
    gap: 1rem;
}
@media (min-width: 768px) { .trust-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1280px) { .trust-grid { grid-template-columns: repeat(4, 1fr); } }

.trust-card {
    background: var(--color-bg-soft);
    border-radius: 1.25rem;
    padding: 1.5rem 1.6rem;
    transition: transform 320ms ease;
}
.trust-card:hover { transform: translateY(-3px); }
.trust-card h3 {
    font-size: 1.35rem;
    line-height: 1.15;
}
@media (min-width: 768px) {
    .trust-card h3 { font-size: 1.5rem; }
}
.trust-card p {
    margin-top: 1rem;
    font-size: 0.9rem;
    line-height: 1.7;
    color: var(--color-muted);
}

/* === STEP PANEL === */
.step-panel { background: var(--color-bg-soft); }
.step-grid {
    margin-top: 2.25rem;
    display: grid;
    gap: 0.75rem;
}
@media (min-width: 768px) { .step-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1280px) { .step-grid { grid-template-columns: repeat(5, 1fr); } }

.step-card {
    background: var(--color-panel);
    border-radius: 1.25rem;
    padding: 1rem 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

@media (min-width: 768px) {
    .step-card {
        display: block;
        padding: 1.25rem;
    }
}

.step-number {
    display: inline-grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    background: var(--color-ink-strong);
    color: white;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 1rem;
}
.step-card h3 {
    margin-top: 0;
    font-size: 1rem;
    line-height: 1.4;
    font-weight: 600;
    color: var(--color-ink-strong);
}

@media (min-width: 768px) {
    .step-card h3 { margin-top: 1rem; }
}

/* === IAD PANEL === */
.iad-panel {
    display: grid;
    gap: 2.5rem;
    background: var(--color-dark);
    color: white;
    border-radius: 2rem;
    padding: 2rem;
}
@media (min-width: 768px) { .iad-panel { padding: 3.5rem; } }
@media (min-width: 1024px) { .iad-panel { grid-template-columns: 1.05fr 0.95fr; align-items: center; } }

.iad-panel h2 {
    color: white;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    margin-top: 1.25rem;
}
.iad-panel .eyebrow { color: rgba(255, 255, 255, 0.6); }
.iad-panel .eyebrow::before { background: rgba(255, 255, 255, 0.5); }
.iad-panel .panel-copy { color: rgba(255, 255, 255, 0.78); }
.iad-panel .panel-copy a {
    color: white;
    text-decoration-color: rgba(255, 255, 255, 0.45);
}

.iad-points-grid {
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 540px) {
    .iad-points-grid { grid-template-columns: 1fr 1fr 1fr; }
}
@media (min-width: 1024px) {
    .iad-points-grid { grid-template-columns: 1fr; }
}
@media (min-width: 1280px) {
    .iad-points-grid { grid-template-columns: 1fr 1fr 1fr; }
}

.tile-card {
    background: rgba(255, 255, 255, 0.07);
    border-radius: 1.25rem;
    padding: 1rem 1.15rem;
    color: white;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
@media (min-width: 768px) {
    .tile-card {
        padding: 1.25rem 1.4rem;
        display: grid;
        gap: 0.5rem;
    }
}
.tile-card strong {
    font-family: var(--font-display);
    font-size: 1.5rem;
    color: var(--color-warm);
    font-weight: 600;
}
.tile-card span {
    font-size: 0.9rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.85);
}

/* === TESTIMONIAL === */
.testimonial-card {
    background: var(--color-bg-soft);
    border-radius: 1.5rem;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
@media (min-width: 768px) { .testimonial-card { padding: 2.25rem; } }

.dots-row {
    display: flex;
    gap: 0.25rem;
}
.dots-row span {
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: var(--color-warm);
}

.testimonial-quote {
    font-family: var(--font-display);
    font-size: 1.2rem;
    line-height: 1.5;
    color: var(--color-ink-strong);
    font-weight: 500;
}
@media (min-width: 768px) {
    .testimonial-quote { font-size: 1.35rem; line-height: 1.45; }
}

.testimonial-meta {
    margin-top: auto;
    display: grid;
    gap: 0.25rem;
}
.testimonial-meta strong {
    color: var(--color-ink-strong);
    font-weight: 600;
}
.testimonial-meta span {
    font-size: 0.85rem;
    color: var(--color-muted);
}

/* === PAGE AVIS PREMIUM === */
.avis-premium-page {
    background: var(--color-bg);
}
.avis-premium-page .section-tight {
    padding-block: clamp(1.8rem, 4vw, 3.5rem);
}
.avis-hero {
    padding-block: clamp(2.2rem, 5vw, 5rem) clamp(1.4rem, 3vw, 2.5rem);
}
.avis-hero-grid {
    display: grid;
    gap: clamp(1.6rem, 5vw, 4.5rem);
    align-items: center;
}
@media (min-width: 900px) {
    .avis-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(18rem, 0.95fr); }
}
.avis-hero-copy h1 {
    max-width: 11.5em;
    margin: 0.8rem 0 1rem;
    font-size: clamp(2.25rem, 5.2vw, 4.45rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
}
.avis-hero-panel {
    position: relative;
    padding: 0.75rem;
    border-radius: 1.55rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.avis-hero-panel img {
    width: 100%;
    aspect-ratio: 1.12;
    object-fit: cover;
    border-radius: 1.1rem;
}
.avis-rating-badge {
    position: absolute;
    left: 1.25rem;
    bottom: 1.25rem;
    display: grid;
    gap: 0.35rem;
    max-width: 13rem;
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(20, 37, 35, 0.08);
}
.avis-rating-badge > span {
    color: var(--color-primary);
    font-family: var(--font-display);
    font-size: 2rem;
    line-height: 1;
}
.avis-rating-badge p {
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    line-height: 1.35;
}
.avis-rating-badge .dots-row span,
.avis-testimonial-card .dots-row span,
.avis-featured-card .dots-row span {
    width: 10px;
    height: 10px;
}

.avis-kpi-grid {
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 760px) {
    .avis-kpi-grid { grid-template-columns: repeat(3, 1fr); }
}
.avis-kpi-grid article {
    padding: 1.25rem;
    border-radius: 1.15rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.avis-kpi-grid strong {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--color-primary);
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 0.95;
}
.avis-kpi-grid span {
    color: var(--color-muted);
    line-height: 1.55;
}

.avis-featured-layout {
    display: grid;
    gap: 1rem;
    align-items: stretch;
}
@media (min-width: 920px) {
    .avis-featured-layout { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); }
}
.avis-featured-card,
.avis-proof-card {
    border-radius: 1.5rem;
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.avis-featured-card {
    display: grid;
    gap: 1.15rem;
    padding: clamp(1.4rem, 4vw, 2.5rem);
    background: var(--color-primary);
    color: white;
}
.avis-featured-card .eyebrow,
.avis-featured-card footer span { color: rgba(255, 255, 255, 0.72); }
.avis-featured-card blockquote {
    margin: 0;
    color: white;
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 3vw, 2.55rem);
    line-height: 1.18;
    letter-spacing: -0.02em;
}
.avis-featured-card footer {
    display: grid;
    gap: 0.25rem;
}
.avis-featured-card footer strong { color: white; }
.avis-proof-card {
    padding: clamp(1.4rem, 4vw, 2.35rem);
    background: var(--color-bg-soft);
}
.avis-proof-card h2 {
    margin: 0.35rem 0 1rem;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    line-height: 1.05;
}
.avis-proof-card ul {
    display: grid;
    gap: 0.75rem;
}
.avis-proof-card li {
    padding-left: 1rem;
    border-left: 2px solid var(--color-accent);
    color: var(--color-muted);
    line-height: 1.65;
}

.avis-section-head {
    max-width: 52rem;
    margin-bottom: 1.25rem;
}
.avis-section-head h2 {
    margin: 0.35rem 0 0.6rem;
    font-size: clamp(1.85rem, 3.8vw, 3.25rem);
    line-height: 1.03;
}
.avis-section-head p:not(.eyebrow) {
    color: var(--color-muted);
    line-height: 1.7;
}
.avis-testimonial-grid {
    display: grid;
    gap: 0.9rem;
}
@media (min-width: 760px) {
    .avis-testimonial-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1160px) {
    .avis-testimonial-grid { grid-template-columns: repeat(3, 1fr); }
}
.avis-testimonial-card {
    display: grid;
    gap: 1rem;
    padding: 1.25rem;
    border-radius: 1.2rem;
    background: white;
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.avis-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.avis-card-head > span {
    color: var(--color-primary);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-align: right;
}
.avis-testimonial-card p {
    color: var(--color-ink);
    font-family: var(--font-display);
    font-size: 1.22rem;
    line-height: 1.45;
}
.avis-testimonial-card footer {
    display: grid;
    gap: 0.2rem;
    margin-top: auto;
}
.avis-testimonial-card footer strong { color: var(--color-ink-strong); }
.avis-testimonial-card footer span {
    color: var(--color-muted);
    font-size: 0.86rem;
}

.avis-method-band {
    display: grid;
    gap: 1.25rem;
    padding: clamp(1.35rem, 4vw, 2.4rem);
    border-radius: 1.5rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
@media (min-width: 940px) {
    .avis-method-band { grid-template-columns: 0.9fr 1.1fr; align-items: center; }
}
.avis-method-band h2 {
    margin-top: 0.35rem;
    font-size: clamp(1.7rem, 3.2vw, 2.8rem);
    line-height: 1.05;
}
.avis-method-list {
    display: grid;
    gap: 0.75rem;
}
@media (min-width: 680px) {
    .avis-method-list { grid-template-columns: repeat(3, 1fr); }
}
.avis-method-list article {
    padding: 1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.avis-method-list strong {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--color-primary);
    font-family: var(--font-display);
    font-size: 1.25rem;
}
.avis-method-list span {
    color: var(--color-muted);
    line-height: 1.58;
}

@media (max-width: 640px) {
    .avis-rating-badge { left: 1rem; right: 1rem; bottom: 1rem; max-width: none; }
    .avis-card-head { align-items: flex-start; flex-direction: column; }
    .avis-card-head > span { text-align: left; }
}

/* === BLOG CARD === */
.blog-card {
    overflow: hidden;
    border-radius: 1.5rem;
    background: var(--color-bg-soft);
    transition: transform 320ms ease;
}
.blog-card:hover { transform: translateY(-3px); }
.blog-card a { display: block; }
.blog-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: var(--color-bg-warm);
    transition: transform 800ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.blog-card:hover img { transform: scale(1.04); }
.blog-card-body {
    padding: 1.5rem;
}
@media (min-width: 768px) { .blog-card-body { padding: 1.75rem; } }

.blog-meta {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--color-muted);
    font-weight: 600;
}
.meta-dot {
    width: 4px;
    height: 4px;
    border-radius: 999px;
    background: var(--color-muted-soft);
}

.blog-card-body h3 {
    margin-top: 1rem;
    font-size: 1.35rem;
    line-height: 1.15;
}
@media (min-width: 768px) {
    .blog-card-body h3 { font-size: 1.6rem; }
}
.blog-card-body p {
    margin-top: 1rem;
    font-size: 0.92rem;
    line-height: 1.7;
    color: var(--color-muted);
}
.clamp-2-mobile {
    display: -webkit-box;
    line-clamp: 3;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* === STANDARD SECTIONS (pages internes) === */
.standard-sections {
    display: grid;
    gap: 2rem;
}
.standard-section-card {
    display: grid;
    gap: 2rem;
    background: var(--color-bg-soft);
}
@media (min-width: 1024px) {
    .standard-section-card { grid-template-columns: 1.05fr 0.95fr; align-items: center; }
}
.standard-section-card .section-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 1.5rem;
    background: var(--color-bg-warm);
}
.stats-tiles {
    margin-top: 1.5rem;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: 1fr 1fr;
}
.stats-tiles .tile-card {
    background: var(--color-panel);
    color: var(--color-ink);
}
.stats-tiles .tile-card strong { color: var(--color-ink-strong); }
.stats-tiles .tile-card span { color: var(--color-muted); }

/* === LOCAL PREMIUM PAGES === */
.local-premium-page {
    background:
        radial-gradient(circle at 8% 8%, rgba(227, 236, 230, 0.95), transparent 24rem),
        linear-gradient(180deg, #fbfaf7 0%, #f4f1ea 48%, #fbfaf7 100%);
}

.local-hero {
    padding-block: clamp(2.25rem, 6vw, 6rem) clamp(1.4rem, 4vw, 3rem);
}

.local-hero-grid {
    display: grid;
    gap: clamp(1.75rem, 5vw, 5rem);
    align-items: center;
}

@media (min-width: 920px) {
    .local-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.9fr); }
}

.local-hero-copy h1 {
    margin-top: 1rem;
    max-width: 10.5em;
    font-size: clamp(2.4rem, 7vw, 5rem);
    line-height: 0.96;
    letter-spacing: -0.055em;
}

.local-keyword-row {
    margin-top: 1.4rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.local-keyword-row span,
.local-seo-tags span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: rgba(23, 63, 49, 0.08);
    color: var(--color-accent-strong);
    padding: 0.45rem 0.8rem;
    font-size: 0.76rem;
    font-weight: 700;
}

.local-hero-visual {
    position: relative;
}

.local-hero-image {
    overflow: hidden;
    border-radius: 2rem;
    background: var(--color-bg-warm);
    min-height: 16rem;
}

.local-hero-image img {
    width: 100%;
    aspect-ratio: 1.2;
    height: 100%;
    object-fit: cover;
}

.local-hero-card {
    margin-top: 0.85rem;
    display: grid;
    gap: 0.35rem;
    padding: 1.15rem;
    border-radius: 1.35rem;
    background: var(--color-primary);
    color: white;
}

@media (min-width: 920px) {
    .local-hero-card {
        position: absolute;
        right: 1rem;
        bottom: 1rem;
        max-width: 18rem;
        margin: 0;
        background: rgba(23, 63, 49, 0.94);
        backdrop-filter: blur(12px);
    }
}

.local-hero-card span {
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: rgba(255, 255, 255, 0.72);
}

.local-hero-card strong {
    font-family: var(--font-display);
    font-size: 1.25rem;
    line-height: 1.08;
}

.local-hero-card p {
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.88rem;
    line-height: 1.55;
}

.local-section {
    padding-block: clamp(1.4rem, 4vw, 3.75rem);
}

.local-intent-grid,
.local-proof-grid,
.local-faq-grid {
    display: grid;
    gap: 1.2rem;
}

@media (min-width: 900px) {
    .local-intent-grid { grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr); }
    .local-proof-grid { grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.75fr); }
    .local-faq-grid { grid-template-columns: minmax(16rem, 0.55fr) minmax(0, 1fr); }
}

.local-intro-card,
.local-side-card,
.local-premium-card,
.local-proof-card,
.local-faq-list details {
    border-radius: 1.7rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(20, 37, 35, 0.06);
    padding: clamp(1.4rem, 3vw, 2.4rem);
}

.local-intro-card h2,
.local-section-head h2,
.local-proof-card h2,
.local-faq-grid h2 {
    margin-top: 0.8rem;
    font-size: clamp(1.9rem, 4vw, 3rem);
}

.local-intro-card > p,
.local-section-head p,
.local-proof-card p {
    margin-top: 1rem;
    color: var(--color-muted);
    line-height: 1.75;
}

.local-original-intro {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(20, 37, 35, 0.08);
}

.local-side-card {
    align-self: start;
    background: var(--color-bg-soft);
}

.local-seo-tags {
    margin-top: 1.1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.local-section-head {
    max-width: 52rem;
    margin-bottom: 1.25rem;
}

.local-data-grid {
    display: grid;
    gap: 1rem;
}

@media (min-width: 860px) {
    .local-data-grid { grid-template-columns: repeat(3, 1fr); }
}

.local-data-grid article {
    padding: 1.45rem;
    border-radius: 1.5rem;
    background: var(--color-primary);
    color: white;
}

.local-data-grid span {
    display: inline-flex;
    color: var(--color-warm);
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 700;
}

.local-data-grid h3 {
    margin-top: 0.65rem;
    color: white;
    font-size: 1.25rem;
}

.local-data-grid ul,
.local-proof-card ul {
    margin-top: 1rem;
    display: grid;
    gap: 0.55rem;
}

.local-data-grid li,
.local-proof-card.dark li {
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.55;
}

.local-data-grid p {
    margin-top: 0.75rem;
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.6;
}

.service-premium-page .local-hero-card p {
    font-size: 0.82rem;
}

.service-process-list {
    margin-top: 1.2rem;
    display: grid;
    gap: 0.7rem;
    list-style: none;
    padding: 0;
}

.service-process-list li {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.13);
    color: rgba(255, 255, 255, 0.84);
    line-height: 1.4;
}

.service-process-list li:last-child {
    border-bottom: 0;
}

.service-process-list span {
    color: var(--color-warm);
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    flex-shrink: 0;
}

.local-standard-grid {
    display: grid;
    gap: 1rem;
}

@media (min-width: 920px) {
    .local-standard-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .service-premium-page .service-two-column-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.local-premium-card {
    background: var(--color-bg-soft);
}

.local-premium-card.is-featured {
    background: white;
}

.local-premium-card h2 {
    margin-top: 0.8rem;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
}

.local-proof-card.dark {
    background: var(--color-primary);
    color: white;
}

.local-proof-card.dark h2,
.local-proof-card.dark .eyebrow { color: white; }
.local-proof-card.dark .eyebrow::before { background: rgba(255, 255, 255, 0.6); }

.local-proof-card:not(.dark) {
    background: white;
}

.local-proof-card:not(.dark) p {
    color: var(--color-muted);
}

.local-faq-list {
    display: grid;
    gap: 0.8rem;
}

.local-faq-list details {
    padding: 0;
    overflow: hidden;
}

.local-faq-list summary {
    cursor: pointer;
    list-style: none;
    padding: 1rem 1.2rem;
    color: var(--color-ink-strong);
    font-weight: 700;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.local-faq-list summary::-webkit-details-marker { display: none; }
.local-faq-list summary::after { content: '+'; color: var(--color-muted); }
.local-faq-list details[open] summary::after { content: '−'; }

.local-faq-list p {
    padding: 0 1.2rem 1.2rem;
    color: var(--color-muted);
    line-height: 1.7;
}

.local-final-cta {
    padding-bottom: 0;
}

@media (max-width: 767px) {
    .local-hero { padding-top: 1.35rem; }
    .local-hero-copy h1 { font-size: clamp(2.05rem, 11vw, 3.2rem); }
    .local-keyword-row span:nth-child(n+4) { display: none; }
    .local-hero-image { min-height: 12rem; border-radius: 1.35rem; }
    .local-section { padding-block: 1.1rem; }
    .local-intro-card,
    .local-side-card,
    .local-premium-card,
    .local-proof-card { border-radius: 1.3rem; }
    .local-data-grid article { padding: 1.1rem; }
}

/* === PAGE SEO VIAGER === */
.viager-seo-page {
    background:
        radial-gradient(circle at top left, rgba(218, 183, 132, 0.18), transparent 28rem),
        var(--color-panel);
    color: var(--color-ink);
    font-size: 1.02rem;
}

.viager-seo-hero {
    padding-block: clamp(1.4rem, 4vw, 4.2rem) clamp(1.1rem, 3vw, 3rem);
}

.viager-seo-hero-grid {
    display: grid;
    gap: 1rem;
    align-items: stretch;
}

@media (min-width: 920px) {
    .viager-seo-hero-grid { grid-template-columns: minmax(0, 1.25fr) minmax(17rem, 0.55fr); }
}

.viager-seo-hero-copy {
    padding: clamp(1.25rem, 4vw, 3.2rem);
    border-radius: clamp(1.4rem, 3vw, 2.4rem);
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(20, 37, 35, 0.06);
}

.viager-seo-hero-copy h1 {
    margin-top: 0.8rem;
    max-width: 16ch;
    font-size: clamp(2.05rem, 6.2vw, 4.35rem);
    line-height: 1;
    letter-spacing: -0.05em;
}

.viager-seo-hero-copy h2 {
    margin-top: 0.8rem;
    max-width: 36rem;
    color: var(--color-primary);
    font-size: clamp(1.05rem, 2.2vw, 1.45rem);
    line-height: 1.2;
}

.viager-local-line {
    margin-top: 0.85rem;
    color: var(--color-primary);
    font-size: 0.88rem;
    font-weight: 850;
    letter-spacing: 0.02em;
}

.viager-seo-hero-copy .hero-text {
    margin-top: 1rem;
    max-width: 42rem;
    color: #51615d;
    font-size: clamp(1.04rem, 1.9vw, 1.18rem);
    line-height: 1.78;
}

.viager-seo-actions,
.viager-final-actions {
    margin-top: 1.35rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.viager-seo-actions .button.primary,
.viager-section-cta .button.primary,
.viager-example-card .button.primary,
.viager-final-actions .button.primary {
    min-width: min(100%, 16.5rem);
    min-height: 3.1rem;
    justify-content: center;
    font-size: 0.94rem;
}

.viager-hero-card {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    align-self: start;
    padding: clamp(1.15rem, 3vw, 2rem);
    border-radius: clamp(1.4rem, 3vw, 2.2rem);
    background:
        radial-gradient(circle at top right, rgba(218, 183, 132, 0.18), transparent 12rem),
        var(--color-primary);
    color: white;
    min-height: 0;
}

.viager-hero-card-head p {
    color: var(--color-warm);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.viager-hero-card-head strong {
    display: block;
    margin-top: 0.55rem;
    max-width: 13rem;
    font-family: var(--font-display);
    font-size: clamp(1.45rem, 3vw, 2.05rem);
    line-height: 1.04;
}

.viager-hero-card-list {
    display: grid;
    gap: 0.55rem;
}

.viager-hero-card-list span {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.72rem 0.78rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.08);
    font-weight: 800;
}

.viager-hero-card-list span::before {
    content: '✓';
    display: grid;
    place-items: center;
    width: 1.45rem;
    height: 1.45rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: var(--color-warm);
}

.viager-hero-card-note {
    margin-top: auto;
    padding-top: 0.95rem;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.9rem;
    line-height: 1.5;
}

.viager-seo-section {
    padding-block: clamp(1.35rem, 4vw, 3.6rem);
}

.viager-intro-grid,
.viager-study-grid,
.viager-faq-grid {
    display: grid;
    gap: 1rem;
}

@media (min-width: 900px) {
    .viager-intro-grid { grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.65fr); }
    .viager-study-grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
    .viager-faq-grid { grid-template-columns: minmax(16rem, 0.55fr) minmax(0, 1fr); }
}

.viager-panel,
.viager-note-card,
.viager-info-card,
.viager-factor-item,
.viager-faq-item,
.viager-local-panel,
.viager-final-cta {
    border: 1px solid rgba(20, 37, 35, 0.06);
    border-radius: 1.55rem;
    background: rgba(255, 255, 255, 0.78);
}

.viager-panel,
.viager-note-card,
.viager-family-card,
.viager-example-card,
.viager-local-panel,
.viager-final-cta {
    padding: clamp(1.25rem, 3vw, 2.4rem);
}

.viager-panel h2,
.viager-section-head h2,
.viager-family-card h2,
.viager-example-card h2,
.viager-faq-grid h2,
.viager-local-panel h2,
.viager-final-cta h2 {
    margin-top: 0.55rem;
    font-size: clamp(1.75rem, 4vw, 3rem);
    line-height: 1.02;
}

.viager-panel p,
.viager-family-card p,
.viager-example-card p,
.viager-local-panel p,
.viager-final-cta p,
.viager-faq-grid > div > p {
    margin-top: 0.95rem;
    color: #51615d;
    font-size: 1.03rem;
    line-height: 1.82;
}

.viager-note-card {
    align-self: stretch;
    display: grid;
    align-content: center;
    background: var(--color-primary);
    color: white;
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2.5vw, 1.65rem);
    line-height: 1.18;
}

.viager-more-details {
    margin-top: 0.9rem;
}

.viager-more-details summary,
.viager-info-card summary,
.viager-factor-item summary,
.viager-faq-item summary {
    cursor: pointer;
    list-style: none;
}

.viager-more-details summary::-webkit-details-marker,
.viager-info-card summary::-webkit-details-marker,
.viager-factor-item summary::-webkit-details-marker,
.viager-faq-item summary::-webkit-details-marker { display: none; }

.viager-more-details summary {
    color: var(--color-primary);
    font-weight: 800;
}

.viager-section-head {
    max-width: 54rem;
    margin-bottom: 1.05rem;
}

.viager-card-grid {
    display: grid;
    gap: 0.85rem;
}

@media (min-width: 760px) {
    .viager-card-grid.three-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .viager-card-grid.four-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1120px) {
    .viager-card-grid.four-cols { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.viager-info-card {
    padding: 1.25rem;
}

.viager-info-card h3,
.viager-info-card summary {
    color: var(--color-ink-strong);
    font-size: 1.05rem;
    font-weight: 850;
    line-height: 1.22;
}

.viager-info-card p {
    margin-top: 0.75rem;
    color: #51615d;
    font-size: 0.98rem;
    line-height: 1.72;
}

.viager-family-card {
    border: 1px solid rgba(23, 63, 49, 0.08);
    border-radius: 1.65rem;
    background:
        linear-gradient(135deg, rgba(23, 63, 49, 0.07), rgba(218, 183, 132, 0.16)),
        rgba(255, 255, 255, 0.82);
}

.viager-family-card h2,
.viager-family-card p {
    max-width: 56rem;
}

.viager-example-card {
    display: grid;
    gap: 1.2rem;
    border: 1px solid rgba(23, 63, 49, 0.08);
    border-radius: 1.8rem;
    background: rgba(255, 255, 255, 0.86);
}

@media (min-width: 920px) {
    .viager-example-card { grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr); align-items: center; }
}

.viager-example-copy .button {
    margin-top: 1rem;
}

.viager-example-warning {
    margin-top: 1rem;
    padding: 0.95rem 1rem;
    border-radius: 1rem;
    background: rgba(218, 183, 132, 0.18);
    color: var(--color-primary);
    font-weight: 800;
    line-height: 1.55;
}

.viager-example-numbers {
    display: grid;
    gap: 0.75rem;
}

.viager-example-numbers div {
    padding: 1rem;
    border-radius: 1.2rem;
    background: var(--color-primary);
    color: white;
}

.viager-example-numbers span {
    display: block;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.viager-example-numbers strong {
    display: block;
    margin-top: 0.35rem;
    color: white;
    font-family: var(--font-display);
    font-size: clamp(1.45rem, 3vw, 2rem);
    line-height: 1.05;
}

.viager-section-cta {
    margin-top: 1.1rem;
    display: flex;
    justify-content: center;
}

.viager-note-inline {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 1rem;
    background: rgba(218, 183, 132, 0.18);
    color: var(--color-primary);
    font-weight: 750;
    line-height: 1.55;
}

.viager-factor-list,
.viager-faq-list {
    display: grid;
    gap: 0.7rem;
}

.viager-factor-item,
.viager-faq-item {
    overflow: hidden;
}

.viager-factor-item summary,
.viager-faq-item summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    color: var(--color-ink-strong);
    font-weight: 800;
}

.viager-factor-item summary::after,
.viager-faq-item summary::after,
.viager-info-card summary::after {
    content: '+';
    color: var(--color-muted);
}

.viager-factor-item[open] summary::after,
.viager-faq-item[open] summary::after,
.viager-info-card[open] summary::after { content: '−'; }

.viager-factor-item summary span {
    color: var(--color-primary);
    font-family: var(--font-display);
    font-size: 1.1rem;
}

.viager-factor-item p,
.viager-faq-item p {
    padding: 0 1.15rem 1.1rem;
    color: #51615d;
    font-size: 0.98rem;
    line-height: 1.72;
}

.viager-local-panel {
    display: grid;
    gap: 1.2rem;
    background: white;
}

@media (min-width: 900px) {
    .viager-local-panel { grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.8fr); align-items: center; }
}

.viager-area-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.viager-area-tags span {
    padding: 0.58rem 0.78rem;
    border-radius: 999px;
    background: var(--color-bg-soft);
    color: var(--color-primary);
    font-size: 0.82rem;
    font-weight: 800;
}

.viager-final-section {
    padding-bottom: clamp(2rem, 5vw, 4rem);
}

.viager-final-cta {
    display: grid;
    gap: 1.25rem;
    background: var(--color-primary);
    color: white;
}

@media (min-width: 900px) {
    .viager-final-cta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
}

.viager-final-cta h2,
.viager-final-cta .eyebrow { color: white; }
.viager-final-cta p { color: rgba(255, 255, 255, 0.78); }
.viager-final-cta span { display: inline-flex; margin-top: 0.9rem; color: var(--color-warm); font-weight: 800; }

.viager-final-cta .button.primary {
    background: white;
    color: var(--color-primary);
}

.viager-final-cta .button.primary:hover {
    background: var(--color-warm);
    color: var(--color-primary);
}

.viager-sticky-cta {
    display: none;
}

@media (max-width: 767px) {
    .viager-seo-page { padding-bottom: 5rem; }
    .viager-seo-hero { padding-block: 0.85rem 0.55rem; }
    .viager-seo-hero-copy { padding: 1.05rem; border-radius: 1.25rem; }
    .viager-seo-hero-copy .eyebrow { font-size: 0.64rem; }
    .viager-seo-hero-copy h1 { margin-top: 0.55rem; max-width: 12ch; font-size: clamp(1.95rem, 10vw, 2.85rem); }
    .viager-seo-hero-copy h2 { display: none; }
    .viager-local-line { margin-top: 0.65rem; font-size: 0.76rem; line-height: 1.45; }
    .viager-seo-hero-copy .hero-text { margin-top: 0.7rem; font-size: 0.99rem; line-height: 1.58; }
    .viager-seo-actions { margin-top: 0.95rem; display: grid; }
    .viager-seo-actions .button,
    .viager-final-actions .button,
    .viager-section-cta .button { width: 100%; justify-content: center; }
    .viager-hero-card { padding: 0.95rem; border-radius: 1.15rem; gap: 0.85rem; }
    .viager-hero-card-head strong { max-width: none; font-size: 1.35rem; }
    .viager-hero-card-list { grid-template-columns: 1fr 1fr; gap: 0.45rem; }
    .viager-hero-card-list span { padding: 0.55rem; font-size: 0.76rem; }
    .viager-hero-card-list span::before { width: 1.1rem; height: 1.1rem; font-size: 0.7rem; }
    .viager-hero-card-note { padding-top: 0.75rem; font-size: 0.82rem; }
    .viager-seo-section { padding-block: 0.95rem; }
    .viager-panel,
    .viager-note-card,
    .viager-family-card,
    .viager-example-card,
    .viager-local-panel,
    .viager-final-cta { padding: 1rem; border-radius: 1.2rem; }
    .viager-panel h2,
    .viager-section-head h2,
    .viager-family-card h2,
    .viager-example-card h2,
    .viager-faq-grid h2,
    .viager-local-panel h2,
    .viager-final-cta h2 { font-size: clamp(1.45rem, 8vw, 2.05rem); }
    .viager-panel p,
    .viager-family-card p,
    .viager-example-card p,
    .viager-local-panel p,
    .viager-final-cta p,
    .viager-faq-grid > div > p { font-size: 0.98rem; line-height: 1.62; }
    .viager-note-card { font-size: 1.05rem; }
    .viager-info-card { padding: 0; overflow: hidden; }
    .viager-info-card:not(details) { padding: 1rem; }
    .viager-info-card summary { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; }
    .viager-info-card p { padding: 0 1rem 1rem; margin-top: 0; line-height: 1.55; }
    .viager-example-numbers { gap: 0.55rem; }
    .viager-example-numbers div { padding: 0.85rem; }
    .viager-example-numbers strong { font-size: 1.45rem; }
    .viager-card-grid { gap: 0.65rem; }
    .viager-section-head { margin-bottom: 0.8rem; }
    .viager-factor-item summary,
    .viager-faq-item summary { padding: 0.9rem 1rem; }
    .viager-factor-item p,
    .viager-faq-item p { padding: 0 1rem 1rem; line-height: 1.55; }
    .viager-area-tags { gap: 0.45rem; }
    .viager-area-tags span { padding: 0.5rem 0.65rem; font-size: 0.76rem; }
    .viager-sticky-cta {
        position: fixed;
        left: 1rem;
        right: 1rem;
        bottom: 0.85rem;
        z-index: 80;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 3.1rem;
        border-radius: 999px;
        background: var(--color-primary);
        color: white;
        font-weight: 900;
        box-shadow: 0 18px 42px rgba(20, 37, 35, 0.22);
    }
}

/* === HOME LOCAL COPY === */
.recruitment-page {
    background: var(--color-bg);
}

.recruitment-hero {
    padding-block: clamp(1.2rem, 4vw, 4rem) clamp(1rem, 3vw, 2.6rem);
}

.recruitment-hero-grid,
.recruitment-support-panel,
.recruitment-faq-grid,
.recruitment-final-cta {
    display: grid;
    gap: 1rem;
}

@media (min-width: 920px) {
    .recruitment-hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(19rem, 0.68fr); align-items: stretch; }
    .recruitment-support-panel { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; }
    .recruitment-faq-grid { grid-template-columns: minmax(16rem, 0.55fr) minmax(0, 1fr); }
    .recruitment-final-cta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
}

.recruitment-hero-copy,
.recruitment-hero-card,
.recruitment-card,
.recruitment-support-panel,
.recruitment-form-panel,
.recruitment-faq-list details,
.recruitment-final-cta {
    border: 1px solid rgba(20, 37, 35, 0.06);
    border-radius: 1.6rem;
    background: rgba(255, 255, 255, 0.82);
}

.recruitment-hero-copy {
    padding: clamp(1.2rem, 4vw, 3.2rem);
}

.recruitment-hero-copy h1 {
    margin-top: 0.85rem;
    max-width: 13ch;
    font-size: clamp(2.1rem, 6.5vw, 4.55rem);
    line-height: 0.98;
}

.recruitment-hero-copy p:not(.eyebrow) {
    margin-top: 1rem;
    max-width: 43rem;
    color: #51615d;
    font-size: clamp(1.02rem, 1.9vw, 1.16rem);
    line-height: 1.75;
}

.recruitment-actions {
    margin-top: 1.35rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.recruitment-actions .button,
.recruitment-final-cta .button,
.recruitment-support-panel .button {
    min-height: 3.1rem;
    justify-content: center;
}

.recruitment-reassurance {
    display: block;
    margin-top: 0.9rem;
    color: var(--color-muted);
    font-size: 0.92rem;
}

.recruitment-hero-card {
    overflow: hidden;
    align-self: start;
    background: var(--color-primary);
    color: white;
}

.recruitment-portraits {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    padding: 0.85rem 0.85rem 0;
}

.recruitment-portraits img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 1.1rem;
}

.recruitment-hero-card-body {
    padding: clamp(1.1rem, 3vw, 1.7rem);
}

.recruitment-hero-card-body span {
    color: var(--color-warm);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.recruitment-hero-card-body strong {
    display: block;
    margin-top: 0.55rem;
    max-width: 16rem;
    color: white;
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    line-height: 1.04;
}

.recruitment-hero-card-body ul {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.recruitment-hero-card-body li,
.recruitment-support-list span {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.72rem 0.78rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.09);
    font-weight: 800;
}

.recruitment-hero-card-body li::before,
.recruitment-support-list span::before {
    content: '✓';
    color: var(--color-warm);
}

.recruitment-trust {
    display: grid;
    gap: 0.75rem;
    padding-block: 0.5rem 1.1rem;
}

@media (min-width: 760px) {
    .recruitment-trust { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.recruitment-trust div {
    padding: 1rem;
    border-radius: 1.1rem;
    background: var(--color-panel);
    color: var(--color-primary);
    font-weight: 850;
    line-height: 1.35;
}

.recruitment-section {
    padding-block: clamp(1.3rem, 4vw, 3.4rem);
}

.recruitment-section-head {
    max-width: 54rem;
    margin-bottom: 1.05rem;
}

.recruitment-section-head.compact { max-width: 42rem; }

.recruitment-section-head h2,
.recruitment-support-panel h2,
.recruitment-form-intro h2,
.recruitment-faq-grid h2,
.recruitment-final-cta h2 {
    margin-top: 0.6rem;
    font-size: clamp(1.8rem, 4.5vw, 3.15rem);
    line-height: 1.02;
}

.recruitment-section-head p:not(.eyebrow),
.recruitment-support-panel p,
.recruitment-form-intro p,
.recruitment-faq-grid > div > p,
.recruitment-final-cta p,
.recruitment-note {
    margin-top: 0.95rem;
    color: #51615d;
    font-size: 1.01rem;
    line-height: 1.75;
}

.recruitment-card-grid {
    display: grid;
    gap: 0.85rem;
}

@media (min-width: 760px) {
    .recruitment-card-grid.three-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .recruitment-card-grid.four-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1120px) {
    .recruitment-card-grid.four-cols { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.recruitment-card {
    padding: 1.15rem;
}

.recruitment-card.strong { background: white; }

.recruitment-card h3 {
    font-family: var(--font-sans);
    font-size: 1rem;
    font-weight: 850;
    line-height: 1.24;
}

.recruitment-card p {
    margin-top: 0.7rem;
    color: #51615d;
    font-size: 0.95rem;
    line-height: 1.62;
}

.recruitment-support-panel {
    padding: clamp(1.25rem, 3vw, 2.4rem);
    background: var(--color-primary);
    color: white;
}

.recruitment-support-panel h2,
.recruitment-support-panel .eyebrow { color: white; }
.recruitment-support-panel p { color: rgba(255, 255, 255, 0.78); }
.recruitment-support-panel .button.primary { margin-top: 1.1rem; background: white; color: var(--color-primary); }

.recruitment-support-list {
    display: grid;
    gap: 0.65rem;
}

.recruitment-timeline {
    display: grid;
    gap: 0.75rem;
}

@media (min-width: 860px) {
    .recruitment-timeline { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.recruitment-timeline article {
    padding: 1rem;
    border-radius: 1.1rem;
    background: white;
}

.recruitment-timeline span {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: var(--color-accent-soft);
    color: var(--color-primary);
    font-weight: 900;
}

.recruitment-timeline p {
    margin-top: 0.75rem;
    color: var(--color-ink-strong);
    font-weight: 800;
    line-height: 1.35;
}

.recruitment-note {
    max-width: 62rem;
    padding: 1rem;
    border-radius: 1rem;
    background: rgba(218, 183, 132, 0.16);
    color: var(--color-primary);
    font-weight: 750;
}

.recruitment-form-panel {
    padding: clamp(1.15rem, 3vw, 2.35rem);
    background: white;
}

.recruitment-form {
    margin-top: 1.2rem;
    display: grid;
    gap: 1rem;
}

.recruitment-form-grid {
    display: grid;
    gap: 0.85rem;
}

@media (min-width: 720px) {
    .recruitment-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .recruitment-form-grid .full { grid-column: 1 / -1; }
}

.recruitment-form label,
.recruitment-message-label,
.recruitment-choice-field legend {
    color: var(--color-ink-strong);
    font-size: 0.86rem;
    font-weight: 850;
}

.recruitment-form input,
.recruitment-form textarea {
    width: 100%;
    margin-top: 0.4rem;
    border: 1px solid rgba(20, 37, 35, 0.1);
    border-radius: 1rem;
    background: var(--color-bg);
    color: var(--color-ink-strong);
    font: inherit;
    min-height: 3.25rem;
    padding: 0.85rem 1rem;
    outline: none;
}

.recruitment-form textarea {
    min-height: 8rem;
    resize: vertical;
}

.recruitment-form input:focus,
.recruitment-form textarea:focus {
    border-color: rgba(23, 63, 49, 0.36);
    background: white;
}

.recruitment-choice-field {
    border: 0;
    padding: 0;
    margin: 0;
}

.recruitment-choice-grid {
    margin-top: 0.55rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.recruitment-choice {
    min-height: 2.85rem;
    padding: 0.65rem 0.9rem;
    border: 1px solid rgba(20, 37, 35, 0.09);
    border-radius: 999px;
    background: var(--color-bg);
    color: var(--color-ink-strong);
    font-weight: 800;
}

.recruitment-choice.is-selected {
    background: var(--color-primary);
    color: white;
}

.recruitment-submit {
    justify-self: start;
    min-height: 3.15rem;
}

.recruitment-form-note {
    color: var(--color-muted);
    font-size: 0.9rem;
}

.recruitment-faq-list {
    display: grid;
    gap: 0.7rem;
}

.recruitment-faq-list details {
    overflow: hidden;
}

.recruitment-faq-list summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    cursor: pointer;
    list-style: none;
    color: var(--color-ink-strong);
    font-weight: 850;
}

.recruitment-faq-list summary::-webkit-details-marker { display: none; }
.recruitment-faq-list summary::after { content: '+'; color: var(--color-muted); }
.recruitment-faq-list details[open] summary::after { content: '−'; }

.recruitment-faq-list p {
    padding: 0 1.15rem 1.1rem;
    color: #51615d;
    font-size: 0.98rem;
    line-height: 1.72;
}

.recruitment-final-section {
    padding-bottom: clamp(2rem, 5vw, 4rem);
}

.recruitment-final-cta {
    padding: clamp(1.25rem, 3vw, 2.4rem);
    background: var(--color-primary);
    color: white;
}

.recruitment-final-cta h2,
.recruitment-final-cta .eyebrow { color: white; }
.recruitment-final-cta p { color: rgba(255, 255, 255, 0.78); }
.recruitment-final-cta .button.primary { background: white; color: var(--color-primary); }

@media (max-width: 767px) {
    .recruitment-hero { padding-block: 0.85rem 0.45rem; }
    .recruitment-hero-copy,
    .recruitment-hero-card,
    .recruitment-card,
    .recruitment-support-panel,
    .recruitment-form-panel,
    .recruitment-final-cta { border-radius: 1.15rem; }
    .recruitment-hero-copy { padding: 1.05rem; }
    .recruitment-hero-copy .eyebrow { font-size: 0.64rem; }
    .recruitment-hero-copy h1 { max-width: 12ch; font-size: clamp(1.95rem, 10vw, 2.8rem); }
    .recruitment-hero-copy p:not(.eyebrow) { font-size: 0.98rem; line-height: 1.58; }
    .recruitment-actions { display: grid; }
    .recruitment-actions .button,
    .recruitment-final-cta .button,
    .recruitment-support-panel .button,
    .recruitment-submit { width: 100%; }
    .recruitment-trust { padding-block: 0.5rem; }
    .recruitment-trust div,
    .recruitment-card,
    .recruitment-timeline article { padding: 0.9rem; }
    .recruitment-section { padding-block: 0.95rem; }
    .recruitment-section-head h2,
    .recruitment-support-panel h2,
    .recruitment-form-intro h2,
    .recruitment-faq-grid h2,
    .recruitment-final-cta h2 { font-size: clamp(1.45rem, 8vw, 2.05rem); }
    .recruitment-section-head p:not(.eyebrow),
    .recruitment-support-panel p,
    .recruitment-form-intro p,
    .recruitment-final-cta p,
    .recruitment-note { font-size: 0.97rem; line-height: 1.58; }
    .recruitment-choice-grid { display: grid; }
    .recruitment-choice { width: 100%; border-radius: 1rem; text-align: left; }
    .recruitment-faq-list summary { padding: 0.9rem 1rem; }
    .recruitment-faq-list p { padding: 0 1rem 1rem; line-height: 1.55; }
}

.home-local-copy {
    margin-top: 1.5rem;
    max-width: 60rem;
    color: var(--color-muted);
    font-size: 1rem;
    line-height: 1.8;
}
.home-link-row {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}
.home-link-row a {
    padding: 0.55rem 1.1rem;
    border-radius: 999px;
    background: var(--color-panel);
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--color-ink-strong);
    transition: background 220ms ease, color 220ms ease;
}
.home-link-row a:hover {
    background: var(--color-ink-strong);
    color: white;
}

/* === CTA BAND === */
.cta-band {
    position: relative;
    overflow: hidden;
    background: var(--color-dark);
    color: white;
    border-radius: 2rem;
    padding: 2rem;
    display: grid;
    gap: 2rem;
}
@media (min-width: 768px) { .cta-band { padding: 3rem; } }
@media (min-width: 1024px) {
    .cta-band { grid-template-columns: 1.4fr auto; align-items: end; }
}

.cta-band h2 {
    color: white;
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1.05;
    margin-top: 1.25rem;
}
.cta-band .eyebrow { color: rgba(255, 255, 255, 0.6); }
.cta-band .eyebrow::before { background: rgba(255, 255, 255, 0.5); }
.cta-band .richtext p { color: rgba(255, 255, 255, 0.78); margin-top: 1.25rem; }

.cta-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
@media (min-width: 540px) { .cta-actions { flex-direction: row; flex-wrap: wrap; } }
@media (min-width: 1024px) { .cta-actions { flex-direction: column; } }

.cta-band .button.primary { background: white; color: var(--color-ink-strong); }
.cta-band .button.primary:hover { background: var(--color-bg-soft); }
.cta-band .button.secondary { color: white; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3); }
.cta-band .button.secondary:hover { background: white; color: var(--color-ink-strong); box-shadow: inset 0 0 0 1px white; }

/* === MARQUEE (villes) === */
.marquee-band {
    overflow: hidden;
    background: var(--color-bg-soft);
    padding-block: 2rem;
}
.marquee-track {
    display: flex;
    gap: 4rem;
    white-space: nowrap;
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1;
    color: var(--color-ink-strong);
    animation: marquee-scroll 40s linear infinite;
}
.marquee-track .star { color: var(--color-warm); }

@keyframes marquee-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* === FOOTER === */
.site-footer {
    margin-top: 3rem;
    background: #eef1e8;
    color: var(--color-ink);
    border-radius: 0;
    padding-block: 3rem;
    border-top: 1px solid rgba(20, 37, 35, 0.08);
}
@media (min-width: 768px) { .site-footer { padding-block: 5rem; } }

.footer-mobile-stack {
    display: grid;
    gap: 1.5rem;
}
@media (min-width: 1024px) { .footer-mobile-stack { display: none; } }

.footer-desktop-grid { display: none; }
@media (min-width: 1024px) {
    .footer-desktop-grid {
        display: grid;
        gap: clamp(3rem, 6vw, 5rem);
        grid-template-columns: minmax(16rem, 1fr) minmax(28rem, 2.1fr);
        align-items: start;
    }
}

.footer-brand-column {
    display: grid;
    gap: 1.25rem;
}
.footer-logo {
    width: 160px;
    background: transparent;
    padding: 0;
    border-radius: 0;
    align-self: start;
    box-shadow: none;
}
.footer-copy {
    max-width: 28rem;
    color: var(--color-muted);
    font-size: 0.95rem;
    line-height: 1.7;
}

.footer-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}
.footer-socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.15rem;
    padding: 0.45rem 0.95rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.68);
    color: var(--color-ink-strong);
    border: 1px solid rgba(20, 37, 35, 0.1);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    box-shadow: 0 0.45rem 1rem rgba(20, 37, 35, 0.04);
    transition: background 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.footer-socials a:hover {
    background: white;
    color: var(--color-accent-strong);
    border-color: rgba(36, 98, 78, 0.22);
    box-shadow: 0 0.55rem 1.1rem rgba(20, 37, 35, 0.06);
}

.footer-contact-card {
    background: rgba(255, 255, 255, 0.68);
    border-radius: 1.25rem;
    padding: 1.25rem;
    display: grid;
    gap: 0.6rem;
}
.footer-contact-card .eyebrow { color: var(--color-muted); }
.footer-contact-card a {
    color: var(--color-ink-strong);
    font-family: var(--font-display);
    font-size: 1.25rem;
    word-break: break-word;
}
.footer-contact-card a.footer-contact-email {
    white-space: nowrap;
    word-break: normal;
    overflow-wrap: normal;
    font-size: clamp(1rem, 4vw, 1.15rem);
}
.footer-contact-card a.footer-button {
    margin-top: 0.5rem;
    align-self: start;
    padding: 0.55rem 1.1rem;
    border-radius: 0.9rem;
    background: var(--color-warm);
    color: var(--color-ink-strong);
    font-family: var(--font-sans);
    font-size: 0.85rem;
    font-weight: 600;
}
.footer-contact-card a.footer-button:hover { background: white; color: var(--color-accent-strong); }

.footer-button {
    display: inline-flex;
    align-items: center;
    padding: 0.55rem 1.1rem;
    border-radius: 0.9rem;
    background: var(--color-warm);
    color: var(--color-ink-strong);
    font-size: 0.85rem;
    font-weight: 600;
}
.footer-button:hover { background: white; }

.footer-accordion {
    background: rgba(255, 255, 255, 0.68);
    border-radius: 1rem;
    overflow: hidden;
}
.footer-accordion summary {
    padding: 0.95rem 1.1rem;
    cursor: pointer;
    list-style: none;
    color: var(--color-ink-strong);
    font-weight: 600;
    font-size: 0.95rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.footer-accordion summary::-webkit-details-marker { display: none; }
.footer-accordion summary::after {
    content: '+';
    font-size: 1.2rem;
    color: var(--color-muted);
}
.footer-accordion[open] summary::after { content: '−'; }

.footer-accordion-content {
    padding: 0 1.1rem 1.1rem;
    display: grid;
    gap: 0.6rem;
}
.footer-accordion-content a {
    color: var(--color-muted);
    font-size: 0.92rem;
}
.footer-accordion-content a:hover { color: var(--color-accent-strong); }
.footer-mobile-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.footer-mobile-tags span {
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--color-ink-strong);
    font-size: 0.8rem;
}

.footer-columns {
    display: grid;
    gap: clamp(2rem, 4vw, 3.5rem);
}
@media (min-width: 768px) {
    .footer-columns { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1280px) {
    .footer-columns { grid-template-columns: repeat(3, 1fr); }
}

.footer-columns h3 {
    color: var(--color-muted);
    font-family: var(--font-sans);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-weight: 600;
    margin-bottom: 0.95rem;
}
.footer-columns div { display: grid; align-content: start; gap: 0.55rem; }
.footer-columns a, .footer-columns span {
    color: var(--color-ink);
    font-size: 0.92rem;
    line-height: 1.4;
}
.footer-columns a.footer-contact-email {
    white-space: nowrap;
    word-break: normal;
    overflow-wrap: normal;
}
.footer-columns a:hover { color: var(--color-accent-strong); }

.footer-bottom {
    margin-top: 2.2rem;
    padding-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    color: var(--color-muted);
    font-size: 0.82rem;
    border-top: 1px solid rgba(20, 37, 35, 0.1) !important;
}
.footer-bottom * { border-color: transparent; }
.footer-bottom { border-color: rgba(20, 37, 35, 0.1); }
.footer-bottom div { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.footer-bottom a:hover { color: var(--color-accent-strong); }
@media (min-width: 768px) {
    .footer-bottom { flex-direction: row; justify-content: space-between; align-items: center; }
}

/* === PAGE SECTEUR PREMIUM === */
.sector-premium-page {
    background: var(--color-bg);
}
.sector-premium-page .section-tight {
    padding-block: clamp(1.75rem, 4vw, 3.25rem);
}

.sector-hero {
    padding-block: clamp(2rem, 5vw, 4.25rem) clamp(1.35rem, 3vw, 2.25rem);
}

.sector-hero-grid {
    display: grid;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
}
@media (min-width: 900px) {
    .sector-hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr); }
}

.sector-hero-copy h1 {
    max-width: 9.5em;
    margin: 0.8rem 0 1rem;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 5.2vw, 4.7rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
    text-transform: none;
}

.sector-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.65rem;
}

.sector-hero-media {
    position: relative;
    isolation: isolate;
}
.sector-hero-media::before {
    content: '';
    position: absolute;
    inset: 1.25rem -1.25rem -1.25rem 1.25rem;
    border-radius: 2rem;
    background: var(--color-accent-soft);
    z-index: -1;
}
.sector-hero-media img {
    width: 100%;
    aspect-ratio: 1.08;
    object-fit: cover;
    border-radius: 1.6rem;
}
.sector-hero-badge {
    position: absolute;
    right: -0.85rem;
    bottom: 1.1rem;
    display: grid;
    gap: 0.1rem;
    padding: 0.95rem 1.15rem;
    border-radius: 1.1rem;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(20, 37, 35, 0.08);
    box-shadow: none;
}
.sector-hero-badge strong {
    font-family: var(--font-display);
    color: var(--color-accent-strong);
    font-size: 2rem;
    line-height: 1;
}
.sector-hero-badge span {
    color: var(--color-muted);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.sector-intro-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: stretch;
}
@media (min-width: 860px) {
    .sector-intro-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1180px) {
    .sector-intro-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.sector-intro-card {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    min-height: 21rem;
    padding: clamp(1.1rem, 3vw, 1.35rem);
    border-radius: 1.25rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.sector-intro-card.is-main {
    background: var(--color-bg-soft);
}
.sector-intro-card h2 {
    margin: 0;
    font-size: clamp(1.45rem, 2.2vw, 1.9rem);
}
.sector-intro-card h3 {
    margin: 0;
    color: var(--color-accent-strong);
    font-family: var(--font-display);
    font-size: clamp(1.28rem, 1.7vw, 1.55rem);
    line-height: 1.05;
}
.sector-intro-card p,
.sector-intro-card span { color: var(--color-muted); line-height: 1.7; }

.sector-card-kicker {
    color: var(--color-accent-strong) !important;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.14em;
}

.sector-card-list {
    display: grid;
    gap: 0.55rem;
    margin-top: auto;
    color: var(--color-muted);
    font-size: 0.92rem;
    line-height: 1.55;
}

.sector-card-list li {
    padding-left: 0.85rem;
    border-left: 2px solid var(--color-accent-soft);
}

.sector-card-note {
    margin-top: auto;
    padding: 0.85rem;
    border-radius: 0.9rem;
    background: rgba(20, 73, 60, 0.07);
    color: var(--color-ink-strong);
    font-size: 0.88rem;
    line-height: 1.55;
}

.sector-section-head {
    max-width: 48rem;
    margin-bottom: 1.5rem;
}
.sector-section-head h2 {
    margin: 0.35rem 0 0.5rem;
    font-size: clamp(1.8rem, 3.6vw, 3rem);
}
.sector-section-head p { color: var(--color-muted); }
.sector-section-head.is-compact { margin-bottom: 1rem; }

.sector-map-layout {
    display: grid;
    gap: 1rem;
    align-items: stretch;
}
@media (min-width: 980px) {
    .sector-map-layout { grid-template-columns: minmax(0, 1.7fr) minmax(17rem, 0.65fr); }
}
.sector-map {
    min-height: clamp(24rem, 55vw, 36rem);
    overflow: hidden;
    border-radius: 1.5rem;
    border: 1px solid rgba(20, 37, 35, 0.1);
    background: var(--color-bg-soft);
}
.sector-map .leaflet-popup-content-wrapper {
    border-radius: 0.9rem;
    box-shadow: none;
}
.sector-map .leaflet-popup-content { line-height: 1.55; }
.sector-map-panel {
    padding: 1.4rem;
    border-radius: 1.5rem;
    background: var(--color-dark);
    color: rgba(255, 255, 255, 0.78);
}
.sector-map-panel h3 {
    color: white;
    font-size: 1.35rem;
    margin-bottom: 0.7rem;
}
.sector-map-panel p { color: rgba(255, 255, 255, 0.72); line-height: 1.7; }
.sector-map-panel ul { display: grid; gap: 0.75rem; margin-top: 1rem; }
.sector-map-panel li { padding-left: 1rem; border-left: 2px solid var(--color-warm); }
.sector-map-panel strong { color: white; }

.sector-city-section {
    padding: 1.35rem;
    border-radius: 1.6rem;
    background: var(--color-bg-soft);
}
.sector-city-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
}
@media (min-width: 720px) {
    .sector-city-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1120px) {
    .sector-city-grid { grid-template-columns: repeat(4, 1fr); }
}
.sector-city-card {
    padding: 1.1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.sector-city-card span {
    display: inline-flex;
    margin-bottom: 0.7rem;
    color: var(--color-accent-strong);
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}
.sector-city-card h3 { margin-bottom: 0.45rem; font-size: 1.25rem; }
.sector-city-card p { color: var(--color-muted); font-size: 0.92rem; line-height: 1.65; }

.sector-insights-grid {
    display: grid;
    gap: 1rem;
}
@media (min-width: 900px) {
    .sector-insights-grid { grid-template-columns: 1.1fr 0.9fr; }
}
.sector-panel-card {
    padding: clamp(1.5rem, 4vw, 2.4rem);
    border-radius: 1.5rem;
    background: white;
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.sector-panel-card.is-dark {
    background: var(--color-accent-strong);
    color: white;
}
.sector-panel-card h2 {
    margin: 0.35rem 0 1rem;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
}
.sector-panel-card.is-dark h2 {
    color: white;
}
.sector-panel-card.is-dark .eyebrow,
.sector-panel-card.is-dark li { color: rgba(255, 255, 255, 0.78); }
.sector-check-list,
.sector-number-list {
    display: grid;
    gap: 0.85rem;
    color: var(--color-muted);
    line-height: 1.65;
}
.sector-check-list li,
.sector-number-list li { padding-left: 0.2rem; }
.sector-check-list strong { color: var(--color-ink-strong); }
.sector-number-list { padding-left: 1.1rem; list-style: decimal; }

@media (max-width: 640px) {
    .sector-hero-media::before { display: none; }
    .sector-hero-badge { right: 0.75rem; bottom: 0.75rem; }
    .sector-city-section { padding: 1rem; }
}

/* === PAGE HISTOIRE PREMIUM === */
.history-premium-page {
    background: var(--color-bg);
}
.history-premium-page .section-tight {
    padding-block: clamp(1.8rem, 4vw, 3.5rem);
}
.history-hero {
    padding-block: clamp(2.2rem, 5vw, 5rem) clamp(1.4rem, 3vw, 2.5rem);
}
.history-hero-grid {
    display: grid;
    gap: clamp(1.8rem, 5vw, 5rem);
    align-items: center;
}
@media (min-width: 900px) {
    .history-hero-grid { grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.92fr); }
}
.history-hero-copy h1 {
    max-width: 10.5em;
    margin: 0.8rem 0 1rem;
    font-size: clamp(2.35rem, 5.2vw, 4.6rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
}
.history-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}
.history-hero-media {
    position: relative;
    background: var(--color-bg-soft);
    border-radius: 1.6rem;
    padding: 0.75rem;
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.history-hero-media img {
    width: 100%;
    aspect-ratio: 1.14;
    object-fit: cover;
    border-radius: 1.15rem;
}
.history-hero-note {
    position: absolute;
    left: 1.35rem;
    bottom: 1.35rem;
    display: grid;
    gap: 0.1rem;
    padding: 0.8rem 1rem;
    border-radius: 0.95rem;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.history-hero-note strong {
    color: var(--color-accent-strong);
    font-family: var(--font-display);
    font-size: 1.45rem;
    line-height: 1;
}
.history-hero-note span {
    color: var(--color-muted);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.11em;
}

.history-intro-band {
    padding: clamp(1.2rem, 3vw, 1.8rem);
    border-radius: 1.35rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.history-intro-band p {
    max-width: 72rem;
    color: var(--color-ink);
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    line-height: 1.7;
}

.history-team-layout {
    display: grid;
    gap: 1.25rem;
    align-items: start;
}
@media (min-width: 980px) {
    .history-team-layout { grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); gap: clamp(2rem, 4vw, 3.5rem); }
}
.history-team-narrative {
    padding: clamp(1.35rem, 4vw, 2.35rem);
    border-radius: 1.45rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.history-team-narrative h2 {
    max-width: 13em;
    margin: 0.35rem 0 0.9rem;
    font-size: clamp(1.75rem, 3.2vw, 2.9rem);
    line-height: 1.05;
}
.history-team-narrative p:not(.eyebrow) {
    color: var(--color-muted);
    line-height: 1.75;
}
.history-team-narrative ul {
    display: grid;
    gap: 0.6rem;
    margin-top: 1.1rem;
}
.history-team-narrative li {
    padding-left: 1rem;
    border-left: 2px solid var(--color-accent);
    color: var(--color-ink);
    line-height: 1.55;
}
.history-team-grid {
    display: grid;
    gap: 1rem;
}
.history-profile-card {
    display: grid;
    gap: 1rem;
    overflow: hidden;
    border-radius: 1.45rem;
    background: white;
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.history-profile-card img {
    width: 100%;
    aspect-ratio: 1.45;
    object-fit: cover;
    object-position: center top;
}
.history-profile-card > div {
    padding: 0 1.15rem 1.25rem;
}
.history-profile-card h3 {
    margin: 0.3rem 0 0.6rem;
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}
.history-profile-card p:not(.card-kicker) {
    color: var(--color-muted);
    line-height: 1.6;
    font-size: 0.95rem;
}
@media (min-width: 680px) {
    .history-profile-card {
        grid-template-columns: minmax(8.5rem, 10.5rem) minmax(0, 1fr);
        gap: 0;
        align-items: stretch;
    }
    .history-profile-card img {
        height: 100%;
        aspect-ratio: auto;
        min-height: 11.5rem;
    }
    .history-profile-card > div {
        padding: 1.1rem 1.2rem;
        align-self: center;
    }
}

.history-method-panel {
    display: grid;
    gap: 1.35rem;
    padding: clamp(1.35rem, 4vw, 2.4rem);
    border-radius: 1.6rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
@media (min-width: 980px) {
    .history-method-panel { grid-template-columns: 0.75fr 1.25fr; align-items: start; }
}
.history-method-copy h2 {
    margin: 0.35rem 0 0.8rem;
    font-size: clamp(1.8rem, 3.5vw, 3rem);
}
.history-method-copy p:not(.eyebrow) {
    color: var(--color-muted);
    line-height: 1.7;
}
.history-method-grid {
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 680px) {
    .history-method-grid { grid-template-columns: 1fr 1fr; }
}
.history-step-card {
    padding: 1.1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.history-step-card span {
    display: inline-flex;
    margin-bottom: 0.55rem;
    color: var(--color-accent-strong);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.14em;
}
.history-step-card h3 { margin-bottom: 0.45rem; }
.history-step-card p { color: var(--color-muted); line-height: 1.65; }

.history-proof-grid {
    display: grid;
    gap: 1rem;
    align-items: stretch;
}
@media (min-width: 900px) {
    .history-proof-grid { grid-template-columns: 1.1fr 0.9fr; }
}
.history-local-card {
    padding: clamp(1.45rem, 4vw, 2.5rem);
    border-radius: 1.5rem;
    background: var(--color-accent-strong);
    color: white;
}
.history-local-card h2 {
    max-width: 15em;
    margin: 0.35rem 0 0.85rem;
    color: white;
    font-size: clamp(1.8rem, 3.5vw, 3rem);
}
.history-local-card p,
.history-local-card li { color: rgba(255, 255, 255, 0.78); line-height: 1.7; }
.history-local-card ul { display: grid; gap: 0.55rem; margin-top: 1.1rem; }
.history-local-card li { padding-left: 1rem; border-left: 2px solid var(--color-warm); }
.history-image-card {
    overflow: hidden;
    border-radius: 1.5rem;
    background: var(--color-bg-soft);
}
.history-image-card img {
    width: 100%;
    height: 100%;
    min-height: 18rem;
    object-fit: cover;
}

.history-values-grid {
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 760px) {
    .history-values-grid { grid-template-columns: repeat(3, 1fr); }
}
.history-values-grid article {
    padding: 1.25rem;
    border-radius: 1.15rem;
    background: white;
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.history-values-grid strong {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--color-accent-strong);
    font-family: var(--font-display);
    font-size: 1.35rem;
}
.history-values-grid span { color: var(--color-muted); line-height: 1.65; }

/* === CONTACT PAGE PREMIUM === */
.contact-premium-page {
    background: var(--color-bg);
}
.contact-premium-page .section-tight {
    padding-block: clamp(1.8rem, 4vw, 3.5rem);
}
.contact-hero {
    padding-block: clamp(2.2rem, 5vw, 5rem) clamp(1.4rem, 3vw, 2.5rem);
}
.contact-hero-grid {
    display: grid;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    align-items: start;
}
@media (min-width: 980px) {
    .contact-hero-grid { grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr); }
}
.contact-hero-copy {
    display: grid;
    gap: 1.1rem;
}
@media (min-width: 980px) {
    .contact-hero-copy { position: sticky; top: 7rem; }
}
.contact-hero-copy h1 {
    max-width: 10.5em;
    margin-top: 0.45rem;
    font-size: clamp(2.35rem, 5.2vw, 4.55rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
}
.contact-direct-card {
    display: grid;
    gap: 0.4rem;
    padding: 1.25rem;
    border-radius: 1.25rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.contact-direct-card span {
    color: var(--color-accent-strong);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}
.contact-direct-card a {
    width: fit-content;
    color: var(--color-ink-strong);
    font-weight: 700;
}
.contact-direct-card a:hover { color: var(--color-accent-strong); }
.contact-advisor-compact-grid {
    display: grid;
    gap: 0.75rem;
}
.contact-advisor-compact-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.85rem;
    align-items: center;
    padding: 0.8rem;
    border-radius: 1.15rem;
    background: white;
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.contact-advisor-compact-card img,
.contact-advisor-compact-card > span {
    width: 4.8rem;
    height: 4.8rem;
    border-radius: 0.9rem;
    object-fit: cover;
    object-position: center top;
    background: var(--color-bg-soft);
}
.contact-advisor-compact-card > span {
    display: inline-grid;
    place-items: center;
    color: var(--color-accent-strong);
    font-family: var(--font-display);
    font-size: 1.4rem;
}
.contact-advisor-compact-card div {
    display: grid;
    gap: 0.15rem;
}
.contact-advisor-compact-card strong {
    color: var(--color-ink-strong);
    font-family: var(--font-display);
    font-size: 1.18rem;
    line-height: 1.1;
}
.contact-advisor-compact-card small {
    color: var(--color-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

.contact-premium-form {
    display: grid;
    gap: 1.05rem;
    padding: clamp(1.25rem, 4vw, 2rem);
    border-radius: 1.55rem;
    background: var(--color-panel);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.contact-premium-form h2 {
    margin-top: 0.25rem;
    font-size: clamp(1.75rem, 3vw, 2.45rem);
}
.contact-form-lead {
    color: var(--color-muted);
    font-size: 0.98rem;
    line-height: 1.7;
}
.contact-fields {
    display: grid;
    gap: 0.8rem;
}
@media (min-width: 680px) {
    .contact-fields.two { grid-template-columns: 1fr 1fr; }
}
.contact-fields label,
.contact-premium-form > label:not(.privacy-line) {
    display: grid;
    gap: 0.4rem;
    color: var(--color-ink-strong);
    font-size: 0.84rem;
    font-weight: 650;
}
.contact-fields input,
.contact-fields textarea,
.contact-fields select,
.contact-premium-form > label:not(.privacy-line) textarea {
    width: 100%;
    min-width: 0;
    padding: 0.9rem 1rem;
    border-radius: 0.9rem;
    background: var(--color-bg-soft);
    color: var(--color-ink);
    font: inherit;
    border: 1px solid transparent;
    box-shadow: none;
    transition: background 220ms ease, border-color 220ms ease;
}
.contact-fields input:focus,
.contact-fields textarea:focus,
.contact-fields select:focus,
.contact-premium-form > label:not(.privacy-line) textarea:focus {
    outline: none;
    background: white;
    border-color: var(--color-accent);
}
.contact-premium-form textarea {
    min-height: 8.5rem;
    resize: vertical;
}
.contact-alert {
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    font-size: 0.9rem;
}
.contact-alert.success { background: var(--color-accent-soft); color: var(--color-accent-strong); }
.contact-alert.error { background: var(--color-warm-soft); color: #8b3e1f; }
.contact-submit {
    width: 100%;
    padding: 0.95rem 1.5rem;
    border-radius: 999px;
    background: var(--color-primary);
    color: white;
    font-weight: 700;
    transition: background 220ms ease;
}
.contact-submit:hover { background: var(--color-primary-hover); }

.contact-proof-grid {
    display: grid;
    gap: 1rem;
}
@media (min-width: 900px) {
    .contact-proof-grid { grid-template-columns: 1.18fr 0.82fr 0.82fr; align-items: stretch; }
}
.contact-proof-card {
    padding: clamp(1.25rem, 3vw, 1.8rem);
    border-radius: 1.35rem;
    background: var(--color-bg-soft);
    border: 1px solid rgba(20, 37, 35, 0.07);
}
.contact-proof-card.is-dark {
    background: var(--color-primary);
    color: white;
}
.contact-proof-card.is-dark h2 {
    color: white;
    margin: 0.35rem 0 0.75rem;
    font-size: clamp(1.65rem, 3vw, 2.55rem);
}
.contact-proof-card.is-dark .eyebrow,
.contact-proof-card.is-dark p { color: rgba(255, 255, 255, 0.75); }
.contact-proof-card h3 {
    margin-bottom: 0.85rem;
    font-size: 1.35rem;
}
.contact-proof-card p,
.contact-proof-card li {
    color: var(--color-muted);
    line-height: 1.65;
}
.contact-proof-card ul {
    display: grid;
    gap: 0.55rem;
}
.contact-proof-card li {
    padding-left: 0.85rem;
    border-left: 2px solid var(--color-accent);
}
.contact-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.contact-tags span {
    display: inline-flex;
    padding: 0.45rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--color-ink);
    font-size: 0.78rem;
    font-weight: 650;
}

/* === FLASH === */
.flash {
    margin-block: 1rem;
    padding: 1rem 1.25rem;
    border-radius: 1rem;
    background: var(--color-accent-soft);
    color: var(--color-accent-strong);
    font-size: 0.9rem;
}

/* === 404 === */
.not-found {
    min-height: 60vh;
    display: grid;
    place-items: center;
    text-align: center;
    gap: 1rem;
    padding: 4rem 1rem;
}
.not-found h1 { font-size: clamp(2.5rem, 6vw, 4rem); }
.not-found p { color: var(--color-muted); }

/* ==========================================================
   TUNNEL D'ESTIMATION (10 étapes)
   ========================================================== */

.estimate-page {
    background: #f0f3ff;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.estimate-header {
    background: #f0f3ff;
    padding-block: 1.1rem;
}
.estimate-header-shell {
    width: min(100% - 1.5rem, 42rem);
    margin-inline: auto;
    max-width: none;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
@media (min-width: 768px) {
    .estimate-header-shell { width: min(100% - 3rem, 42rem); }
}
.estimate-header-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
}
.estimate-header-logo {
    width: 140px;
    height: auto;
}
.estimate-header-divider {
    width: 1px;
    height: 1.5rem;
    background: rgba(13, 20, 24, 0.15);
    display: none;
}
@media (min-width: 768px) { .estimate-header-divider { display: block; } }
.estimate-header-agency {
    font-weight: 600;
    color: var(--color-ink-strong);
    font-size: 0.95rem;
}
.estimate-header-cta {
    margin-left: auto;
    color: var(--color-ink-strong);
    font-size: 0.88rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.estimate-app-shell {
    width: min(100% - 1.5rem, 42rem);
    margin-inline: auto;
    padding-block: 1.5rem 4rem;
}
@media (min-width: 768px) {
    .estimate-app-shell { padding-block: 2.5rem 5rem; }
}

.estimate-landing-intro {
    margin-bottom: 1.35rem;
    display: grid;
    gap: 0.65rem;
}
.estimate-landing-intro h1 {
    font-size: clamp(1.65rem, 4vw, 2.4rem);
    line-height: 1.08;
}
.estimate-landing-intro p:not(.eyebrow) {
    color: var(--color-muted);
    font-size: 0.98rem;
    line-height: 1.65;
}

.viager-page .estimate-app-shell {
    padding-block-start: 0.85rem;
}

.viager-landing-intro {
    margin-bottom: 0.95rem;
    gap: 0;
}

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

.viager-landing-intro p:not(.eyebrow) {
    max-width: 100%;
    color: var(--color-ink);
    font-size: clamp(0.86rem, 1.8vw, 0.95rem);
    line-height: 1.45;
}
@media (max-width: 539px) {
    .estimate-landing-intro {
        margin-bottom: 1rem;
    }
    .estimate-landing-intro p:not(.eyebrow) {
        font-size: 0.92rem;
        line-height: 1.55;
    }
    .viager-page .estimate-app-shell {
        padding-block-start: 0.45rem;
    }
    .viager-landing-intro {
        margin-bottom: 0.75rem;
    }
    .viager-landing-intro p:not(.eyebrow) {
        font-size: clamp(0.72rem, 3.25vw, 0.82rem);
        line-height: 1.35;
    }
}

.estimate-progress-block {
    margin-bottom: 1.25rem;
}
.estimate-progress-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--color-muted);
    margin-bottom: 0.6rem;
}
.estimate-progress-head strong {
    color: var(--color-ink-strong);
}
.estimate-progress-track {
    position: relative;
    height: 6px;
    border-radius: 999px;
    background: var(--color-bg-warm);
    overflow: hidden;
}
.estimate-progress-track > span,
#estimate-progress-bar {
    position: absolute;
    inset: 0 auto 0 0;
    display: block;
    width: 10%;
    background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-accent-strong) 100%);
    border-radius: 999px;
    transition: width 520ms cubic-bezier(0.22, 0.61, 0.36, 1);
    box-shadow: 0 0 12px rgba(31, 95, 74, 0.25);
}
.estimate-progress-track > span::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
    transform: translateX(-100%);
    animation: estimate-progress-shimmer 2.4s ease-in-out infinite;
}
@keyframes estimate-progress-shimmer {
    0% { transform: translateX(-100%); }
    60%, 100% { transform: translateX(220%); }
}

.estimate-card {
    --estimate-title-spacing: 1.75rem;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 1.75rem;
    padding: 8px 0 var(--estimate-title-spacing);
}
@media (min-width: 768px) {
    .estimate-card {
        --estimate-title-spacing: 2.5rem;
        padding: 8px 0 var(--estimate-title-spacing);
    }
}

/* Anti-honeypot field (must stay invisible) */
.hidden-field,
form input[name="website"] {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.estimate-pane {
    display: block;
    animation: estimate-pane-in 420ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.estimate-pane[hidden] { display: none; }
@keyframes estimate-pane-in {
    0% { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .estimate-pane { animation: none; }
}
.estimate-pane > h2 {
    font-size: clamp(1.4rem, 3vw, 1.85rem);
    line-height: 1.15;
    color: var(--color-ink-strong);
}
.estimate-pane > p {
    margin-top: 0.5rem;
    color: var(--color-muted);
    font-size: 0.95rem;
}
.estimate-commune-suffix {
    color: var(--color-accent-strong);
    white-space: nowrap;
}
.estimate-commune-suffix[hidden] { display: none; }

.estimate-section { display: grid; gap: 1rem; }

/* === Choice cards (Appartement / Maison / etc.) === */
.estimate-choice-grid {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 1fr 1fr;
    margin-top: var(--estimate-title-spacing, 1.75rem);
}
.estimate-choice-grid.one-col { grid-template-columns: 1fr; }
.estimate-choice-grid.two-col { grid-template-columns: 1fr 1fr; }
@media (min-width: 540px) {
    .estimate-choice-grid.two-col { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 768px) {
    .estimate-choice-grid.two-col { grid-template-columns: 1fr 1fr; }
}

.estimate-choice-card {
    appearance: none;
    background: var(--color-panel);
    border: 1px solid transparent;
    border-radius: 1.25rem;
    padding: 1.1rem 1rem;
    cursor: pointer;
    text-align: center;
    color: var(--color-ink-strong);
    transition: background 220ms ease, transform 220ms ease, color 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    min-height: 110px;
    box-shadow: none;
    position: relative;
    overflow: hidden;
}
.estimate-choice-card.is-stacked { min-height: 150px; }
.estimate-choice-card.align-left {
    flex-direction: row;
    text-align: left;
    justify-content: flex-start;
    gap: 0.85rem;
    min-height: auto;
    padding: 1rem 1.15rem;
}
.estimate-choice-card:hover {
    background: var(--color-panel);
}
.estimate-choice-card:active {
    transform: none;
}
.estimate-choice-card.is-active,
.estimate-choice-card[aria-pressed="true"],
.estimate-choice-card.is-selected {
    background: var(--color-accent);
    color: white;
    border-color: var(--color-accent);
    box-shadow: 0 0.9rem 1.8rem rgba(36, 98, 78, 0.22);
    animation: estimate-choice-pop 320ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
@keyframes estimate-choice-pop {
    0% { transform: scale(0.96); }
    60% { transform: scale(1.03); }
    100% { transform: scale(1); }
}

.estimate-choice-icon {
    --icon-accent: #f4a72b;
    --icon-accent-2: #e85a4f;
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    padding: 0.55rem;
    border-radius: 999px;
    color: var(--color-accent-strong);
    background: rgba(36, 98, 78, 0.1);
    transition: background 220ms ease, color 220ms ease, transform 220ms ease;
    flex-shrink: 0;
}
.estimate-choice-card:hover .estimate-choice-icon {
    background: rgba(36, 98, 78, 0.1);
    transform: none;
}
.estimate-choice-icon svg {
    width: 100%;
    height: 100%;
    stroke-width: 1.6;
}
.viager-choice-icon {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
}
.estimate-choice-card.is-active .estimate-choice-icon,
.estimate-choice-card[aria-pressed="true"] .estimate-choice-icon,
.estimate-choice-card.is-selected .estimate-choice-icon {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.22);
    --icon-accent: #ffd166;
    --icon-accent-2: #ffb4a8;
}

.estimate-choice-label {
    position: relative;
    z-index: 1;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.3;
}
.estimate-choice-card.align-left .estimate-choice-icon {
    width: 2.4rem;
    height: 2.4rem;
    padding: 0.5rem;
}

/* === Inputs === */
.estimate-input-stack {
    margin-top: 1.5rem;
    display: grid;
    gap: 0.75rem;
}

.estimate-search-field,
.estimate-input-with-icon {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--color-panel);
    border: 0;
    border-radius: 0.95rem;
    box-shadow: none;
    transition: background 220ms ease;
}
.estimate-search-field:focus-within,
.estimate-input-with-icon:focus-within {
    background: #fff;
}
.estimate-search-field input,
.estimate-input-with-icon input {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 0.95rem 1rem 0.95rem 0;
    font: inherit;
    color: var(--color-ink-strong);
    outline: none;
}
.estimate-search-icon,
.estimate-input-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 100%;
    padding-left: 0.85rem;
    color: var(--color-muted);
    flex-shrink: 0;
}
.estimate-search-icon svg,
.estimate-input-icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.estimate-suggestions {
    background: var(--color-panel);
    border-radius: 0.95rem;
    overflow: hidden;
    display: grid;
}
.estimate-suggestions button,
.estimate-suggestions a {
    text-align: left;
    background: transparent;
    border: 0;
    padding: 0.75rem 1rem;
    font: inherit;
    color: var(--color-ink);
    cursor: pointer;
}
.estimate-suggestions button:hover,
.estimate-suggestions a:hover {
    background: var(--color-accent-soft);
    color: var(--color-accent-strong);
}

.estimate-soft-warning {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.85rem;
    background: var(--color-warm-soft);
    color: #8b3e1f;
    font-size: 0.88rem;
    line-height: 1.5;
}

/* === Contact step === */
.estimate-final-intro {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}
.estimate-final-intro h2 { margin-top: 0.5rem; }
.estimate-final-badge {
    display: inline-flex;
    align-self: start;
    padding: 0.45rem 1rem;
    border-radius: 999px;
    background: var(--color-accent-soft);
    color: var(--color-accent-strong);
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
}

.estimate-contact-card {
    background: var(--color-panel);
    border: 0;
    box-shadow: none;
    border-radius: 1.25rem;
    padding: 1.5rem;
}
@media (min-width: 768px) {
    .estimate-contact-card { padding: 1.75rem; }
}
.estimate-contact-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}
@media (min-width: 540px) {
    .estimate-contact-grid { grid-template-columns: 1fr 1fr; }
}
.estimate-contact-grid label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--color-muted);
}
.estimate-contact-grid label.full { grid-column: 1 / -1; }
.estimate-contact-grid label > input,
.estimate-contact-grid label > .estimate-input-with-icon {
    display: flex;
    margin-top: 0.55rem;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 400;
}
.required-mark {
    color: var(--color-warm);
    font-weight: 700;
    margin-left: 0.15rem;
}
.estimate-contact-grid input,
.estimate-contact-grid select,
.estimate-contact-grid textarea,
.estimate-contact-card input,
.estimate-contact-card select,
.estimate-contact-card textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 0;
    border-radius: 0.85rem;
    background: var(--color-bg-soft);
    color: var(--color-ink-strong);
    font: inherit;
    box-shadow: none;
    transition: background 220ms ease;
}
.estimate-contact-grid .estimate-input-with-icon input {
    background: transparent;
    box-shadow: none;
}
.estimate-contact-grid .estimate-input-with-icon {
    background: var(--color-bg-soft);
}
.estimate-contact-grid input:focus,
.estimate-contact-grid select:focus,
.estimate-contact-grid textarea:focus,
.estimate-contact-card input:focus,
.estimate-contact-card select:focus,
.estimate-contact-card textarea:focus {
    outline: none;
    background: #fff;
    box-shadow: none;
}

.estimate-rgpd,
.privacy-line {
    margin-top: 1rem;
    font-size: 0.78rem;
    line-height: 1.55;
    color: var(--color-muted);
}
.estimate-rgpd a,
.privacy-line a,
.estimate-consent-line a {
    color: var(--color-accent-strong);
    text-decoration: underline;
}

/* === Premium checkbox (consent) === */
.estimate-consent-line {
    margin-top: 1.25rem;
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.95rem 1.1rem;
    background: var(--color-bg-soft);
    border-radius: 0.95rem;
    cursor: pointer;
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--color-ink);
    transition: background 220ms ease;
}
.estimate-consent-line:hover { background: var(--color-accent-soft); }
.estimate-consent-line input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    flex-shrink: 0;
    width: 1.4rem;
    height: 1.4rem;
    margin: 0;
    border-radius: 0.45rem;
    background: #fff;
    cursor: pointer;
    position: relative;
    transition: background 200ms ease, transform 200ms ease;
}
.estimate-consent-line input[type="checkbox"]::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 70%;
    opacity: 0;
    transform: scale(0.6);
    transition: opacity 200ms ease, transform 220ms cubic-bezier(0.22, 1.4, 0.36, 1);
}
.estimate-consent-line input[type="checkbox"]:checked {
    background: var(--color-accent-strong);
}
.estimate-consent-line input[type="checkbox"]:checked::after {
    opacity: 1;
    transform: scale(1);
}
.estimate-consent-line input[type="checkbox"]:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}
.estimate-consent-line > span {
    flex: 1;
    color: var(--color-ink);
}

/* === Boutons / actions === */
.estimate-actions {
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}
.estimate-actions.single-action {
    justify-content: center;
}
.estimate-actions.is-first-step {
    justify-content: center;
}
.estimate-actions [hidden],
.estimate-pane[hidden],
[hidden] {
    display: none !important;
}
.estimate-back-button {
    order: 1;
}
.estimate-actions > .primary-button,
.estimate-actions > .estimate-next-button,
.estimate-actions > .estimate-submit-button {
    width: min(100%, 18rem);
    max-width: 22rem;
}

.estimate-back-button {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-muted);
    font-size: 0.84rem;
    font-weight: 500;
    border: 0;
    cursor: pointer;
}
.estimate-back-button:hover { background: transparent; color: var(--color-accent-strong); }

.primary-button,
.estimate-next-button,
.estimate-submit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1.1rem 2.2rem;
    border-radius: 999px;
    background: var(--color-accent);
    color: white;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    border: 0;
    cursor: pointer;
    transition: background 220ms ease;
}
.primary-button:hover,
.estimate-next-button:hover,
.estimate-submit-button:hover {
    background: var(--color-accent-strong);
}
.primary-button:disabled,
.estimate-next-button:disabled,
.estimate-submit-button:disabled {
    background: #c7ccd8;
    color: #fff;
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none;
}

@media (max-width: 539px) {
    .estimate-actions {
        align-items: stretch;
    }

    .estimate-actions > .primary-button,
    .estimate-actions > .estimate-next-button,
    .estimate-actions > .estimate-submit-button {
        width: 100%;
        max-width: none;
    }

    .estimate-back-button {
        align-self: center;
    }
}

/* === Trust block (premium) === */
.estimate-trust {
    width: min(100% - 1.5rem, 42rem);
    margin: 0 auto;
    padding: 0.5rem 0 0;
    position: relative;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.1rem;
    text-align: center;
}

.estimate-trust::before { content: none; }

.estimate-trust-rating {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    padding: 0.55rem 0.9rem;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(20, 37, 35, 0.06);
    border-radius: 999px;
    color: var(--color-ink-strong);
    text-decoration: none;
    box-shadow: 0 0.7rem 1.8rem rgba(20, 37, 35, 0.06);
}
.estimate-trust-rating:hover { color: var(--color-accent-strong); }
.estimate-trust-stars {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    color: var(--color-warm);
}
.estimate-trust-star { width: 1.05rem; height: 1.05rem; display: inline-block; }
.estimate-trust-score { font-weight: 500; color: var(--color-ink); font-size: 0.95rem; }
.estimate-trust-score strong { color: var(--color-ink-strong); font-weight: 700; }
.estimate-trust-divider { color: var(--color-muted); margin-inline: 0.25rem; }

/* KPI cards (Nestenn-like row) */
.estimate-kpi-grid {
    position: relative;
    z-index: 1;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.6rem;
}
.estimate-kpi-card {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(20, 37, 35, 0.07);
    box-shadow: none;
    border-radius: 1.1rem;
    padding: 1.35rem 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    text-align: center;
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.estimate-kpi-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 0.2rem;
    background: var(--color-warm);
    opacity: 0.5;
}
.estimate-kpi-card:hover {
    transform: translateY(-2px);
    border-color: rgba(36, 98, 78, 0.16);
    box-shadow: none;
}
.estimate-kpi-icon {
    width: 2.25rem;
    height: 2.25rem;
    display: grid;
    place-items: center;
    color: var(--color-accent-strong);
    background: rgba(36, 98, 78, 0.1);
    border-radius: 999px;
}
.estimate-kpi-icon svg { width: 1.15rem; height: 1.15rem; }
.estimate-kpi-value {
    font-family: var(--font-display);
    font-size: 1.75rem;
    line-height: 1;
    color: var(--color-accent-strong);
    font-weight: 600;
    letter-spacing: -0.01em;
}
.estimate-kpi-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    color: var(--color-muted);
    font-weight: 600;
}

/* Trust pills row */
.estimate-trust-icon {
    width: 1.55rem;
    height: 1.55rem;
    display: inline-grid;
    place-items: center;
    color: var(--color-accent-strong);
    background: rgba(36, 98, 78, 0.09);
    border-radius: 999px;
    flex-shrink: 0;
}
.estimate-trust-icon svg { width: 0.95rem; height: 0.95rem; }
.estimate-trust-features {
    position: relative;
    z-index: 1;
    width: 100%;
    list-style: none;
    margin: 0.05rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    color: var(--color-muted);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-weight: 600;
}
.estimate-trust-features li {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 4.2rem;
    padding: 0.15rem 0.35rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    line-height: 1.2;
    font-size: 0.62rem;
    text-align: center;
}
.estimate-trust-features li span:not(.estimate-trust-icon) {
    color: var(--color-muted);
    display: block;
}

@media (max-width: 539px) {
    .estimate-trust {
        padding: 0.85rem;
        border-radius: 1.35rem;
    }

    .estimate-trust-rating {
        width: 100%;
        flex-wrap: wrap;
        border-radius: 1rem;
    }

    .estimate-trust-features {
        align-items: stretch;
        flex-direction: column;
    }

    .estimate-trust-features li {
        width: 100%;
    }
}

.estimate-reassurance-row {
    margin-top: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.85rem;
    color: var(--color-muted);
    justify-content: center;
}

/* === Confirmation === */
.estimate-confirmation-shell {
    padding-block: 4rem;
}
.estimate-confirmation-card {
    text-align: center;
    max-width: 38rem;
    margin-inline: auto;
    padding: 2.5rem 1.75rem;
}
@media (min-width: 768px) {
    .estimate-confirmation-card { padding: 3.5rem; }
}
.estimate-confirmation-card h1 {
    margin-top: 1rem;
    font-size: clamp(1.8rem, 4vw, 2.5rem);
}

.estimate-alert,
.contact-alert.error.estimate-alert {
    margin-top: 1rem;
    padding: 0.9rem 1.1rem;
    border-radius: 0.85rem;
    background: var(--color-warm-soft);
    color: #8b3e1f;
    font-size: 0.88rem;
}

/* === REVEAL ANIMATION (pour la home) === */
@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(16px);
        animation: reveal 720ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
        animation-delay: 80ms;
    }
}
@keyframes reveal {
    to { opacity: 1; transform: translateY(0); }
}

/* === UTILITAIRES MOBILE === */
.mobile-hide { display: none; }
@media (min-width: 768px) { .mobile-hide { display: block; } }

/* === DIVERS (compat anciens markup) === */
.is-active { color: var(--color-accent-strong); }
.preview { background: var(--color-bg-soft); border-radius: 1rem; padding: 1rem; }
.featured { background: var(--color-warm-soft); }
.draft { opacity: 0.6; }

/* Étoiles d'avis (rempli / demi) */
.estimate-trust-star {
    background: linear-gradient(currentColor 0 0) left / 50% 100% no-repeat,
                rgba(13, 20, 24, 0.15);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.9 6 6.6 1-4.7 4.7L18 21l-6-3.3L6 21l1.2-7.3L2.5 9 9.1 8z'/></svg>") center/contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.9 6 6.6 1-4.7 4.7L18 21l-6-3.3L6 21l1.2-7.3L2.5 9 9.1 8z'/></svg>") center/contain no-repeat;
}
.estimate-trust-star.is-full {
    background: currentColor;
}
.estimate-trust-star.is-half {
    background: linear-gradient(to right, currentColor 50%, rgba(13, 20, 24, 0.15) 50%);
}

/* === ZOOM IMG WRAPPER === */
.zoom-img { overflow: hidden; }
.zoom-img img { transition: transform 800ms cubic-bezier(0.2, 0.8, 0.2, 1); }
.zoom-img:hover img { transform: scale(1.04); }
