/* ==========================================================================
   Altitude Elagage — General.css
   Palette extraite du logo fourni :
   Bleu ciel : #4DA3D2
   Vert olive : #617436
   Terracotta : #CA663B
   Encre : #25313A
   ========================================================================== */

:root {
    --sky: #4da3d2;
    --sky-strong: #318fbe;
    --sky-soft: #e9f5fb;
    --olive: #617436;
    --olive-strong: #445524;
    --olive-soft: #eff3e8;
    --terra: #ca663b;
    --terra-strong: #a64e2b;
    --terra-soft: #fff0e9;
    --ink: #25313a;
    --muted: #61717b;
    --paper: #fbfcfb;
    --surface: #ffffff;
    --line: rgba(37, 49, 58, 0.10);
    --shadow-sm: 0 12px 34px rgba(37, 49, 58, 0.08);
    --shadow-md: 0 24px 70px rgba(37, 49, 58, 0.12);
    --radius-sm: 16px;
    --radius-md: 24px;
    --radius-lg: 34px;
    --max-width: 1180px;
}

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

html {
    color-scheme: light;
    scroll-padding-top: 90px;
}

body {
    overflow-x: hidden;
    background:
        radial-gradient(circle at 10% 6%, rgba(77, 163, 210, .11), transparent 28rem),
        radial-gradient(circle at 92% 22%, rgba(97, 116, 54, .10), transparent 30rem),
        var(--paper);
    color: var(--ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 1rem;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
}

a,
button,
summary {
    -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
    outline: 3px solid var(--terra);
    outline-offset: 4px;
    border-radius: 8px;
}

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

.container {
    width: min(var(--max-width), calc(100% - 2rem));
    margin-inline: auto;
}

.svg-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

/* ==========================================================================
   Typographie
   ========================================================================== */

h1,
h2,
h3 {
    color: var(--ink);
    font-weight: 800;
    letter-spacing: -0.035em;
}

h2 {
    margin: 0 0 1rem;
    font-size: clamp(2rem, 4.4vw, 3.65rem);
    line-height: 1.03;
}

h3 {
    margin: 0 0 .65rem;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    line-height: 1.18;
}

p {
    margin: 0 0 1rem;
    color: var(--muted);
}

strong {
    color: var(--ink);
}

.kicker,
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: var(--olive-strong);
    font-size: .79rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.kicker::before,
.eyebrow::before {
    content: "";
    width: 1.9rem;
    height: 3px;
    border-radius: 999px;
    background: var(--terra);
}

.kicker-light {
    color: rgba(255,255,255,.86);
}

.kicker-light::before {
    background: #fff;
}

.section {
    position: relative;
    padding: clamp(4.5rem, 8vw, 8rem) 0;
}

.section-heading {
    max-width: 820px;
    margin-bottom: 2.25rem;
}

.section-heading > p {
    max-width: 760px;
    font-size: 1.08rem;
}

.section-heading-centered {
    margin-inline: auto;
    text-align: center;
}

.section-heading-centered .kicker {
    justify-content: center;
}

/* ==========================================================================
   Hero
   ========================================================================== */

.hero {
    isolation: isolate;
}

.hero::after {
    content: "";
    position: absolute;
    z-index: -2;
    right: -12vw;
    bottom: -10rem;
    width: 58vw;
    height: 18rem;
    border-radius: 50%;
    border: 1px solid rgba(77, 163, 210, .16);
    transform: rotate(-7deg);
}

.hero-orbit {
    position: absolute;
    z-index: -3;
    border-radius: 999px;
    filter: blur(2px);
    opacity: .7;
    pointer-events: none;
}

.hero-orbit-one {
    top: 8%;
    right: 4%;
    width: 14rem;
    height: 14rem;
    background: rgba(202, 102, 59, .10);
}

.hero-orbit-two {
    bottom: 2%;
    left: -4rem;
    width: 12rem;
    height: 12rem;
    background: rgba(97, 116, 54, .10);
}

.hero-copy {
    position: relative;
    z-index: 1;
}

.hero-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.hero-logo {
    width: 86px;
    height: auto;
    flex: 0 0 auto;
    filter: drop-shadow(0 10px 18px rgba(37, 49, 58, .06));
}

.hero h1 {
    max-width: 780px;
    color: var(--ink);
}

.hero h1::first-line {
    color: var(--ink);
}

.hero-lead {
    max-width: 720px;
    font-size: clamp(1.08rem, 2vw, 1.24rem);
    color: #485862;
}

.hero-copy > p:not(.hero-lead) {
    max-width: 700px;
}

.hero-actions,
.inline-actions,
.final-cta-actions,
.cta-panel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
}

.hero-actions {
    margin-top: 1.5rem;
}

.btn {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    padding: .86rem 1.15rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-primary {
    background: var(--olive);
    color: #fff;
    box-shadow: 0 12px 26px rgba(97, 116, 54, .22);
}

.btn-primary:hover {
    background: var(--olive-strong);
    box-shadow: 0 16px 34px rgba(97, 116, 54, .28);
}

.btn-secondary {
    border-color: rgba(77, 163, 210, .35);
    background: var(--surface);
    color: var(--sky-strong);
    box-shadow: var(--shadow-sm);
}

.btn-secondary:hover {
    border-color: var(--sky);
}

.btn-light {
    background: #fff;
    color: var(--ink);
}

.btn-outline-light {
    border-color: rgba(255,255,255,.45);
    color: #fff;
}

.btn-ghost {
    background: transparent;
    border-color: var(--line);
    color: var(--ink);
}

.btn-icon {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin: 1.35rem 0 0;
    padding: 0;
    list-style: none;
}

.hero-points li {
    position: relative;
    padding: .62rem .8rem .62rem 2rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: rgba(255,255,255,.7);
    color: #4a5a64;
    font-size: .9rem;
    font-weight: 700;
}

.hero-points li::before {
    content: "";
    position: absolute;
    left: .8rem;
    top: 50%;
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    background: var(--terra);
    transform: translateY(-50%);
}

.hero-media {
    position: relative;
    margin: 0;
    padding: .7rem;
    border: 1px solid rgba(77, 163, 210, .16);
    border-radius: 36px;
    background: rgba(255,255,255,.72);
    box-shadow: var(--shadow-md);
    backdrop-filter: blur(12px);
}

.hero-media::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 12% -8% -9% 12%;
    border-radius: 38px;
    background: var(--olive-soft);
    transform: rotate(4deg);
}

.hero-media img {
    border-radius: 28px;
}

.hero-media figcaption,
.feature-image figcaption {
    padding: .8rem .65rem .2rem;
    color: var(--muted);
    font-size: .84rem;
}

/* ==========================================================================
   Breadcrumb
   ========================================================================== */

.breadcrumb {
    padding: .9rem 0;
}

.breadcrumb ol {
    display: flex;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.breadcrumb li {
    color: var(--muted);
    font-size: .86rem;
}

/* ==========================================================================
   Services
   ========================================================================== */

.section-intro {
    padding-top: 2.2rem;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.service-card {
    position: relative;
    min-height: 100%;
    padding: 1.35rem;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: rgba(255,255,255,.88);
    box-shadow: 0 14px 35px rgba(37, 49, 58, .06);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.service-card::after {
    content: "";
    position: absolute;
    right: -1.8rem;
    bottom: -2rem;
    width: 6rem;
    height: 6rem;
    border-radius: 50%;
    background: var(--sky-soft);
    opacity: .7;
}

.service-card:nth-child(3n)::after {
    background: var(--terra-soft);
}

.service-card:nth-child(2n)::after {
    background: var(--olive-soft);
}

.service-card:hover {
    transform: translateY(-5px);
    border-color: rgba(77, 163, 210, .28);
    box-shadow: var(--shadow-sm);
}

.icon-badge {
    display: grid;
    width: 48px;
    height: 48px;
    margin-bottom: 1rem;
    place-items: center;
    border-radius: 15px;
    background: var(--sky-soft);
    color: var(--sky-strong);
}

.service-card:nth-child(2n) .icon-badge {
    background: var(--olive-soft);
    color: var(--olive);
}

.service-card:nth-child(3n) .icon-badge {
    background: var(--terra-soft);
    color: var(--terra);
}

.icon-badge svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.service-card p {
    position: relative;
    z-index: 1;
    font-size: .95rem;
}

.text-link {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--olive-strong);
    font-weight: 800;
    text-decoration: none;
}

.text-link span {
    transition: transform .2s ease;
}

.text-link:hover span {
    transform: translateX(4px);
}

.cta-panel {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2rem;
    align-items: center;
    margin-top: 2rem;
    padding: clamp(1.5rem, 4vw, 2.6rem);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 88% 15%, rgba(77,163,210,.35), transparent 16rem),
        linear-gradient(135deg, var(--ink), #324852);
    box-shadow: var(--shadow-md);
}

.cta-panel h3,
.cta-panel p {
    color: #fff;
}

.cta-panel h3 {
    margin-top: .4rem;
    font-size: clamp(1.5rem, 3vw, 2.3rem);
}

.cta-panel p {
    max-width: 720px;
    margin-bottom: 0;
    color: rgba(255,255,255,.74);
}

/* ==========================================================================
   Feature / Expertise / Réalisations
   ========================================================================== */

.expertise-section {
    background:
        linear-gradient(180deg, transparent 0, rgba(77,163,210,.04) 50%, transparent 100%);
}

.split-layout {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: clamp(2.2rem, 6vw, 5.5rem);
    align-items: center;
}

.split-layout-reverse {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
}

.feature-image {
    position: relative;
    margin: 0;
    padding: .65rem;
    border: 1px solid var(--line);
    border-radius: 32px;
    background: #fff;
    box-shadow: var(--shadow-md);
}

.feature-image img {
    width: 100%;
    aspect-ratio: 3/2;
    object-fit: cover;
    border-radius: 25px;
}

.feature-image-left::after,
.feature-image-right::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 58%;
    height: 58%;
    border-radius: 50%;
    filter: blur(1px);
}

.feature-image-left::after {
    left: -8%;
    bottom: -9%;
    background: rgba(202, 102, 59, .09);
}

.feature-image-right::after {
    right: -8%;
    top: -9%;
    background: rgba(77, 163, 210, .10);
}

.feature-copy > p {
    font-size: 1.03rem;
}

.mini-card-grid {
    display: grid;
    gap: .8rem;
    margin: 1.5rem 0;
}

.mini-card {
    padding: 1rem 1.1rem;
    border-left: 4px solid var(--sky);
    border-radius: 0 16px 16px 0;
    background: rgba(255,255,255,.86);
    box-shadow: 0 8px 28px rgba(37,49,58,.05);
}

.mini-card:nth-child(2) {
    border-color: var(--olive);
}

.mini-card:nth-child(3) {
    border-color: var(--terra);
}

.mini-card h3 {
    font-size: 1.02rem;
}

.mini-card p {
    margin-bottom: 0;
    font-size: .93rem;
}

.inline-actions {
    margin-top: 1.4rem;
}

.expert-points {
    display: grid;
    gap: 1rem;
    margin: 1.6rem 0;
}

.expert-points article {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: .8rem;
    align-items: start;
}

.expert-points article > span {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 14px;
    background: var(--ink);
    color: #fff;
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.expert-points h3 {
    margin-bottom: .25rem;
    font-size: 1.05rem;
}

.expert-points p {
    margin: 0;
    font-size: .94rem;
}

/* ==========================================================================
   Aide au choix d’intervention
   ========================================================================== */

.decision-section {
    padding-top: 1rem;
}

.decision-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.decision-card {
    position: relative;
    overflow: hidden;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--line);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(37,49,58,.06);
}

.decision-card::after {
    content: "";
    position: absolute;
    right: -3rem;
    top: -3rem;
    width: 9rem;
    height: 9rem;
    border-radius: 50%;
    background: rgba(77,163,210,.08);
}

.decision-card:nth-child(2)::after { background: rgba(202,102,59,.08); }
.decision-card:nth-child(3)::after { background: rgba(77,163,210,.08); }
.decision-card:nth-child(4)::after { background: rgba(97,116,54,.10); }

.decision-tag {
    display: inline-flex;
    margin-bottom: .9rem;
    padding: .4rem .65rem;
    border-radius: 999px;
    background: var(--sky-soft);
    color: var(--sky-strong);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.decision-tag-terra { background: var(--terra-soft); color: var(--terra-strong); }
.decision-tag-sky { background: var(--sky-soft); color: var(--sky-strong); }
.decision-tag-olive { background: var(--olive-soft); color: var(--olive-strong); }

.decision-card h3 {
    max-width: 28rem;
}

.decision-card p {
    position: relative;
    z-index: 1;
}

/* ==========================================================================
   Zone / Map
   ========================================================================== */

.zone-section {
    padding-top: 1rem;
}

.zone-shell {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 1.2rem;
    padding: clamp(1rem, 3vw, 1.4rem);
    border: 1px solid rgba(97,116,54,.16);
    border-radius: 36px;
    background:
        radial-gradient(circle at 8% 80%, rgba(97,116,54,.12), transparent 18rem),
        #f7faf5;
}

.zone-copy {
    padding: clamp(1rem, 3vw, 2rem);
}

.city-list {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin: 1.25rem 0 0;
    padding: 0;
    list-style: none;
}

.city-list li {
    padding: .58rem .75rem;
    border: 1px solid rgba(97,116,54,.18);
    border-radius: 999px;
    background: rgba(255,255,255,.9);
    color: var(--olive-strong);
    font-size: .87rem;
    font-weight: 800;
}

.map-card {
    overflow: hidden;
    align-self: stretch;
    border: 1px solid var(--line);
    border-radius: 28px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.map-card-head {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    padding: 1rem 1.1rem;
}

.map-card-head span {
    color: var(--muted);
    font-size: .88rem;
}

.map-card iframe {
    display: block;
    width: 100%;
    min-height: 350px;
    border: 0;
}

.map-card .text-link {
    padding: 1rem 1.1rem;
}

/* ==========================================================================
   Process
   ========================================================================== */

.process-section {
    background: var(--ink);
}

.process-section h2,
.process-section h3 {
    color: #fff;
}

.process-section .section-heading p {
    color: rgba(255,255,255,.66);
}

.process-section .kicker {
    color: #b9dff1;
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.process-card {
    min-height: 250px;
    padding: 1.35rem;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 24px;
    background: rgba(255,255,255,.05);
}

.process-card:nth-child(2) {
    transform: translateY(18px);
}

.process-card:nth-child(3) {
    transform: translateY(36px);
}

.process-card:nth-child(4) {
    transform: translateY(18px);
}

.step-number {
    display: inline-flex;
    margin-bottom: 2.2rem;
    color: var(--terra);
    font-size: .85rem;
    font-weight: 900;
    letter-spacing: .16em;
}

.process-card p {
    color: rgba(255,255,255,.66);
}

/* ==========================================================================
   Reviews
   ========================================================================== */

.reviews-section {
    padding-top: clamp(6rem, 10vw, 10rem);
}

.reviews-shell {
    display: grid;
    grid-template-columns: 1fr 290px;
    gap: 1.2rem;
    align-items: stretch;
    padding: clamp(1.4rem, 4vw, 3rem);
    border-radius: 36px;
    background:
        radial-gradient(circle at 85% 15%, rgba(202,102,59,.30), transparent 20rem),
        var(--olive);
    box-shadow: var(--shadow-md);
}

.reviews-shell h2,
.reviews-shell p,
.reviews-shell strong {
    color: #fff;
}

.reviews-shell p {
    color: rgba(255,255,255,.78);
}

.rating-row {
    display: flex;
    align-items: baseline;
    gap: .75rem;
    margin: 1rem 0;
}

.rating-row strong {
    font-size: 2.5rem;
}

.reviews-note {
    max-width: 760px;
    padding: .9rem 1rem;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 15px;
    background: rgba(255,255,255,.07);
}

.trust-card {
    display: flex;
    min-height: 260px;
    flex-direction: column;
    justify-content: center;
    padding: 1.5rem;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 20px 50px rgba(37,49,58,.14);
}

.trust-card .trust-number {
    color: var(--sky);
    font-size: 5.4rem;
    font-weight: 900;
    line-height: .8;
    letter-spacing: -.08em;
}

.trust-card .trust-unit {
    margin-top: .35rem;
    color: var(--terra);
    font-size: 1.2rem;
    font-weight: 900;
    text-transform: uppercase;
}

.trust-card strong,
.trust-card p {
    color: var(--ink);
}

.trust-card strong {
    margin-top: .2rem;
    font-size: 1.45rem;
}

.trust-card p {
    margin: .6rem 0 0;
    color: var(--muted);
}

/* ==========================================================================
   FAQ
   ========================================================================== */

.faq-layout {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: clamp(2rem, 6vw, 5rem);
    align-items: start;
}

.faq-intro {
    position: sticky;
    top: 100px;
}

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

.faq-item {
    border: 1px solid var(--line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(37,49,58,.04);
}

.faq-item summary {
    position: relative;
    padding: 1.1rem 3rem 1.1rem 1.15rem;
    cursor: pointer;
    color: var(--ink);
    font-weight: 800;
    list-style: none;
}

.faq-item summary::-webkit-details-marker {
    display: none;
}

.faq-item summary::after {
    content: "+";
    position: absolute;
    right: 1rem;
    top: 50%;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--sky-soft);
    color: var(--sky-strong);
    display: grid;
    place-items: center;
    transform: translateY(-50%);
    transition: transform .2s ease;
}

.faq-item[open] summary::after {
    transform: translateY(-50%) rotate(45deg);
}

.faq-answer {
    padding: 0 1.15rem 1.15rem;
}

.faq-answer p {
    margin: 0;
}

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

.final-cta {
    padding-top: 0;
}

.final-cta-shell {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2rem;
    align-items: center;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid rgba(77,163,210,.18);
    border-radius: 36px;
    background:
        radial-gradient(circle at 0 100%, rgba(77,163,210,.18), transparent 22rem),
        radial-gradient(circle at 100% 0, rgba(202,102,59,.12), transparent 16rem),
        #fff;
    box-shadow: var(--shadow-sm);
}

.final-cta-shell h2 {
    max-width: 760px;
    font-size: clamp(2rem, 4vw, 3.3rem);
}

.final-cta-shell p {
    max-width: 760px;
    margin-bottom: 0;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
    padding: 3.5rem 0 1.5rem;
    background: #1d292f;
    color: #fff;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.2fr repeat(3, 1fr);
    gap: 1rem;
}

.footer-brand,
.footer-card {
    padding: 1.1rem;
}

.footer-logo {
    width: 115px;
    height: auto;
    margin-bottom: 1rem;
    padding: .4rem;
    border-radius: 18px;
    background: #fff;
}

.footer-brand p,
.footer-card p,
.footer-card span {
    color: rgba(255,255,255,.65);
}

.footer-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .45rem;
}

.footer-card h2 {
    margin: 0 0 .6rem;
    color: #fff;
    font-size: 1rem;
    letter-spacing: .01em;
}

.footer-card a {
    color: #fff;
    text-decoration: none;
}

.footer-card a:hover {
    color: #b9dff1;
}

.footer-card strong {
    color: #fff;
}

.footer-card address,
address.footer-card {
    font-style: normal;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(255,255,255,.1);
    color: rgba(255,255,255,.5);
    font-size: .82rem;
}

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

.mobile-cta {
    display: none;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1050px) {
    .service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .process-card:nth-child(n) {
        transform: none;
    }

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

@media (max-width: 900px) {
    .split-layout,
    .split-layout-reverse,
    .decision-grid,
    .zone-shell,
    .faq-layout,
    .reviews-shell,
    .final-cta-shell,
    .cta-panel {
        grid-template-columns: 1fr;
    }

    .feature-image-right {
        order: -1;
    }

    .faq-intro {
        position: static;
    }

    .trust-card {
        min-height: auto;
    }

    .final-cta-actions,
    .cta-panel-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 820px) {
    .hero-brand {
        align-items: flex-start;
    }

    .hero-logo {
        width: 72px;
    }

    .hero-media {
        margin-top: .7rem;
    }

    .hero-points {
        gap: .45rem;
    }
}

@media (max-width: 650px) {
    body {
        padding-bottom: 72px;
    }

    .container {
        width: min(var(--max-width), calc(100% - 1.25rem));
    }

    .section {
        padding: 4.2rem 0;
    }

    .service-grid,
    .process-grid,
    .footer-grid {
        grid-template-columns: 1fr;
    }

    .service-card {
        padding: 1.15rem;
    }

    .hero-actions .btn,
    .inline-actions .btn,
    .final-cta-actions .btn,
    .cta-panel-actions .btn {
        width: 100%;
    }

    .hero-brand {
        flex-direction: column;
    }

    .hero-points li {
        width: 100%;
    }

    .city-list li {
        flex: 1 1 calc(50% - .55rem);
        text-align: center;
    }

    .footer-bottom {
        flex-direction: column;
    }

    .mobile-cta {
        position: fixed;
        z-index: 1000;
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .55rem;
        padding: .55rem;
        border: 1px solid rgba(37,49,58,.10);
        border-radius: 20px;
        background: rgba(255,255,255,.94);
        box-shadow: 0 18px 45px rgba(37,49,58,.18);
        backdrop-filter: blur(14px);
    }

    .mobile-cta a {
        display: grid;
        min-height: 46px;
        place-items: center;
        border-radius: 14px;
        font-weight: 900;
        text-decoration: none;
    }

    .mobile-cta a:first-child {
        background: var(--terra);
        color: #fff;
    }

    .mobile-cta a:last-child {
        background: var(--olive);
        color: #fff;
    }
}

/* ==========================================================================
   Accessibilité & économie d’animation
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media (prefers-contrast: more) {
    :root {
        --muted: #39464d;
        --line: rgba(37, 49, 58, .22);
    }
}

/* ==========================================================================
   DIRECTION ARTISTIQUE PREMIUM — "British Landscape Atelier"
   Typographies : Cormorant Garamond / Manrope
   Intention : héritage, précision, élégance éditoriale, grille architecturale.
   ========================================================================== */

:root {
    --paper: #f4f0e8;
    --paper-deep: #ebe4d7;
    --surface: #fffdf9;
    --ink: #1f2a2c;
    --ink-soft: #394548;
    --muted: #687173;
    --sky: #4da3d2;
    --sky-strong: #2d89b7;
    --sky-soft: #e8f3f8;
    --olive: #617436;
    --olive-strong: #465425;
    --olive-soft: #eef1e7;
    --terra: #ca663b;
    --terra-strong: #a94d2a;
    --terra-soft: #f8e8df;
    --line: rgba(31, 42, 44, .14);
    --line-strong: rgba(31, 42, 44, .24);
    --shadow-sm: 0 18px 48px rgba(31, 42, 44, .09);
    --shadow-md: 0 34px 90px rgba(31, 42, 44, .16);
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
}

html {
    background: var(--paper);
}

body {
    position: relative;
    background:
        radial-gradient(circle at 7% 4%, rgba(77,163,210,.08), transparent 30rem),
        radial-gradient(circle at 94% 19%, rgba(97,116,54,.08), transparent 32rem),
        linear-gradient(180deg, rgba(255,255,255,.36), transparent 30rem),
        var(--paper);
    font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Quadrillage architectural très discret sur l'ensemble du site. */
body::before {
    content: "";
    position: fixed;
    z-index: -10;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(31,42,44,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(31,42,44,.045) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.78), rgba(0,0,0,.34) 65%, transparent 100%);
}

/* Ombre lumineuse mobile, très lente, pour donner de la profondeur sans faire "tech". */
body::after {
    content: "";
    position: fixed;
    z-index: -9;
    top: -20vh;
    left: -45vw;
    width: 48vw;
    height: 150vh;
    pointer-events: none;
    background: linear-gradient(
        105deg,
        transparent 0%,
        rgba(31,42,44,.015) 34%,
        rgba(31,42,44,.065) 48%,
        rgba(255,255,255,.16) 54%,
        transparent 70%
    );
    filter: blur(20px);
    transform: rotate(8deg);
    animation: britishShadowPass 18s cubic-bezier(.45,.05,.25,1) infinite;
}

@keyframes britishShadowPass {
    0%, 14% { transform: translateX(-18vw) rotate(8deg); opacity: 0; }
    24% { opacity: .85; }
    58% { opacity: .5; }
    82%, 100% { transform: translateX(185vw) rotate(8deg); opacity: 0; }
}

h1,
h2,
h3,
.footer-card h2 {
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    font-weight: 600;
    letter-spacing: -.025em;
}

h2 {
    max-width: 950px;
    margin-bottom: 1.15rem;
    font-size: clamp(2.55rem, 5vw, 4.8rem);
    line-height: .98;
}

h3 {
    font-size: clamp(1.45rem, 2.45vw, 2rem);
    line-height: 1.02;
}

p {
    letter-spacing: -.008em;
}

.container {
    width: min(1240px, calc(100% - 3rem));
}

.section {
    padding: clamp(6rem, 10vw, 10rem) 0;
}

.section-heading {
    position: relative;
    max-width: 920px;
    padding-left: clamp(1rem, 3vw, 2.3rem);
    margin-bottom: 3rem;
    border-left: 1px solid var(--line-strong);
}

.section-heading::after {
    content: "";
    position: absolute;
    left: -1px;
    top: 0;
    width: 1px;
    height: 3.5rem;
    background: var(--terra);
    box-shadow: 0 5.8rem 0 var(--sky);
}

.section-heading > p {
    max-width: 800px;
}

.section-heading-centered {
    padding-left: 0;
    border-left: 0;
}

.section-heading-centered::after {
    display: none;
}

.kicker,
.eyebrow {
    color: var(--olive-strong);
    font-family: "Manrope", sans-serif;
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .23em;
}

.kicker::before,
.eyebrow::before {
    width: 2.4rem;
    height: 1px;
    border-radius: 0;
    background: var(--terra);
}

/* ==========================================================================
   HERO — composition "magazine / maison de campagne anglaise"
   ========================================================================== */

.hero {
    min-height: min(900px, 94vh);
    display: flex;
    align-items: center;
    padding: clamp(3.5rem, 8vw, 7.8rem) 0 clamp(5rem, 9vw, 8rem);
    background:
        linear-gradient(90deg, rgba(255,255,255,.38), transparent 38%),
        transparent;
}

.hero::before {
    content: "";
    position: absolute;
    z-index: -4;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(rgba(31,42,44,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(31,42,44,.06) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(to right, rgba(0,0,0,.78), rgba(0,0,0,.15) 72%, transparent);
}

.hero::after {
    right: -6vw;
    bottom: -8rem;
    width: 55vw;
    height: 16rem;
    border: 0;
    border-top: 1px solid rgba(31,42,44,.18);
    border-radius: 50%;
    opacity: .8;
}

.hero-grid {
    grid-template-columns: 1fr .92fr;
    gap: clamp(3rem, 7vw, 7rem);
}

.hero-copy {
    padding-top: 1rem;
}

.hero-copy::before {
    content: "ALTITUDE ELAGAGE";
    display: block;
    margin-bottom: 2.1rem;
    color: rgba(31,42,44,.42);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .32em;
}

.hero-brand {
    align-items: center;
    margin-bottom: 2rem;
}

.hero-logo {
    width: 74px;
    padding: .32rem;
    border: 1px solid rgba(31,42,44,.12);
    border-radius: 50%;
    background: rgba(255,253,249,.72);
    filter: none;
}

.hero h1 {
    max-width: 850px;
    margin: .25rem 0 1.4rem;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(3.9rem, 7.8vw, 7.5rem);
    font-weight: 600;
    line-height: .79;
    letter-spacing: -.055em;
}

.hero h1 > span {
    display: block;
}

.hero-title-place {
    margin-top: .12em;
    color: var(--olive-strong);
    font-style: italic;
    font-weight: 500;
}

.hero-lead {
    max-width: 700px;
    margin-top: 1.7rem;
    padding-left: 1.15rem;
    border-left: 1px solid var(--line-strong);
    font-size: clamp(1.03rem, 1.7vw, 1.2rem);
    line-height: 1.85;
}

.hero-actions {
    margin-top: 2rem;
}

.hero-points {
    margin-top: 1.8rem;
    gap: .4rem 1.4rem;
}

.hero-points li {
    padding: .35rem 0 .35rem 1.25rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: .76rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.hero-points li::before {
    left: 0;
    width: .4rem;
    height: .4rem;
}

.hero-media {
    position: relative;
    padding: 1rem;
    border: 1px solid var(--line-strong);
    border-radius: 2px;
    background: rgba(255,253,249,.88);
    box-shadow: 18px 22px 0 rgba(31,42,44,.035), var(--shadow-md);
    animation: portraitShadow 9s ease-in-out infinite;
}

@keyframes portraitShadow {
    0%, 100% { box-shadow: 18px 22px 0 rgba(31,42,44,.035), 0 34px 90px rgba(31,42,44,.14); }
    50% { box-shadow: 28px 32px 0 rgba(31,42,44,.055), 0 44px 105px rgba(31,42,44,.20); }
}

.hero-media::before {
    inset: 1rem;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 0;
    background: transparent;
    transform: none;
    z-index: 2;
    pointer-events: none;
}

.hero-media::after {
    content: "";
    position: absolute;
    z-index: 3;
    inset: 1rem;
    pointer-events: none;
    background: linear-gradient(
        112deg,
        transparent 18%,
        rgba(17,24,25,.20) 43%,
        rgba(255,255,255,.09) 51%,
        transparent 67%
    );
    background-size: 240% 100%;
    mix-blend-mode: multiply;
    opacity: .38;
    animation: photoShadowSweep 10s ease-in-out infinite;
}

@keyframes photoShadowSweep {
    0%, 18% { background-position: 190% 0; opacity: 0; }
    34% { opacity: .36; }
    70% { opacity: .18; }
    88%, 100% { background-position: -70% 0; opacity: 0; }
}

.hero-media img {
    border-radius: 0;
    filter: saturate(.92) contrast(1.02);
}

.figure-stamp {
    position: absolute;
    z-index: 5;
    top: 1.8rem;
    right: 1.8rem;
    padding: .45rem .65rem;
    border: 1px solid rgba(255,255,255,.65);
    background: rgba(31,42,44,.58);
    color: #fff;
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: .17em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.hero-media figcaption,
.feature-image figcaption {
    display: flex;
    align-items: baseline;
    gap: .55rem;
    padding: .85rem .25rem .1rem;
    font-size: .74rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.caption-mark {
    color: var(--terra);
    font-family: "Cormorant Garamond", serif;
    font-size: 1.15rem;
    font-style: italic;
}

/* ==========================================================================
   Boutons — plus couture, moins "app"
   ========================================================================== */

.btn {
    min-height: 50px;
    padding: .92rem 1.35rem;
    border-radius: 2px;
    font-size: .72rem;
    letter-spacing: .11em;
    text-transform: uppercase;
    box-shadow: none;
}

.btn-primary {
    background: var(--ink);
    color: #fff;
    box-shadow: 8px 8px 0 rgba(97,116,54,.20);
}

.btn-primary:hover {
    background: #11191b;
    box-shadow: 4px 4px 0 rgba(97,116,54,.28);
}

.btn-secondary {
    border-color: var(--line-strong);
    background: rgba(255,253,249,.78);
    color: var(--ink);
    box-shadow: none;
}

.btn-secondary:hover {
    border-color: var(--ink);
}

.btn-light {
    border: 1px solid rgba(255,255,255,.65);
    background: #fff;
    color: var(--ink);
}

.btn-outline-light {
    border-color: rgba(255,255,255,.56);
    border-radius: 2px;
}

/* ==========================================================================
   Services — catalogue d'atelier numéroté
   ========================================================================== */

.section-intro {
    padding-top: clamp(4rem, 7vw, 7rem);
}

.service-grid {
    counter-reset: atelier-card;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--line-strong);
    background: var(--line-strong);
    box-shadow: 0 28px 90px rgba(31,42,44,.07);
}

.service-card {
    min-height: 330px;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border: 0;
    border-radius: 0;
    background: rgba(255,253,249,.93);
    box-shadow: none;
    transition: background-color .3s ease, transform .3s ease;
}

.service-card::after {
    right: 1.3rem;
    bottom: 1.1rem;
    width: 5.5rem;
    height: 5.5rem;
    border: 1px solid rgba(31,42,44,.10);
    border-radius: 50%;
    background: transparent !important;
}

.service-card:hover {
    transform: none;
    border-color: transparent;
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--ink);
}

.service-index {
    position: absolute;
    top: 1.35rem;
    right: 1.55rem;
    color: rgba(31,42,44,.20);
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(3.3rem, 6vw, 5rem);
    font-style: italic;
    line-height: .8;
}

.icon-badge {
    width: 44px;
    height: 44px;
    margin-bottom: 2rem;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: transparent !important;
    color: var(--olive-strong) !important;
}

.service-card h3 {
    max-width: 75%;
    font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.service-card p {
    max-width: 86%;
    font-size: .94rem;
    line-height: 1.75;
}

.text-link {
    color: var(--ink);
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cta-panel {
    position: relative;
    overflow: hidden;
    margin-top: 1.5rem;
    padding: clamp(2rem, 4vw, 3.4rem);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 2px;
    background:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
        var(--ink);
    background-size: 44px 44px;
}

.cta-panel::after {
    content: "";
    position: absolute;
    right: -12%;
    bottom: -65%;
    width: 42%;
    aspect-ratio: 1;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
}

.cta-panel h3 {
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 600;
}

/* ==========================================================================
   Images & blocs éditoriaux
   ========================================================================== */

.feature-image {
    padding: .85rem;
    border: 1px solid var(--line-strong);
    border-radius: 2px;
    background: var(--surface);
    box-shadow: 14px 18px 0 rgba(31,42,44,.045), var(--shadow-md);
}

.feature-image img {
    border-radius: 0;
    filter: saturate(.9) contrast(1.015);
}

.feature-image::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: .85rem;
    pointer-events: none;
    background: linear-gradient(
        112deg,
        transparent 18%,
        rgba(17,24,25,.12) 45%,
        transparent 65%
    );
    background-size: 250% 100%;
    mix-blend-mode: multiply;
    opacity: 0;
    animation: pictureShade 13s ease-in-out infinite;
}

@keyframes pictureShade {
    0%, 30% { background-position: 190% 0; opacity: 0; }
    42% { opacity: .28; }
    70% { opacity: .11; }
    92%, 100% { background-position: -80% 0; opacity: 0; }
}

.feature-image-left::after,
.feature-image-right::after {
    width: 38%;
    height: 38%;
    border: 1px solid var(--line-strong);
    border-radius: 0;
    background: transparent !important;
}

.mini-card-grid {
    gap: 1px;
    border: 1px solid var(--line);
    background: var(--line);
}

.mini-card {
    padding: 1.15rem 1.35rem;
    border: 0;
    border-radius: 0;
    background: rgba(255,253,249,.94);
    box-shadow: none;
}

.mini-card h3 {
    font-size: 1.45rem;
}

.expert-points article {
    grid-template-columns: 68px 1fr;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--line);
}

.expert-points article > span {
    width: 54px;
    height: 54px;
    border: 1px solid var(--line-strong);
    border-radius: 50%;
    background: transparent;
    color: var(--terra);
    font-family: "Cormorant Garamond", serif;
    font-size: 1.25rem;
    font-style: italic;
}

/* ==========================================================================
   Decision cards — quadrillage & ombres glissantes
   ========================================================================== */

.decision-grid {
    gap: 1px;
    border: 1px solid var(--line-strong);
    background: var(--line-strong);
}

.decision-card {
    min-height: 390px;
    padding: clamp(1.5rem, 3vw, 2.6rem);
    border: 0;
    border-radius: 0;
    background:
        linear-gradient(rgba(31,42,44,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(31,42,44,.025) 1px, transparent 1px),
        var(--surface);
    background-size: 36px 36px;
    box-shadow: none;
}

.decision-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(115deg, transparent 28%, rgba(31,42,44,.07) 47%, transparent 65%);
    transform: translateX(-120%);
    transition: transform .85s ease;
}

.decision-card:hover::before {
    transform: translateX(120%);
}

.decision-card::after {
    width: 6rem;
    height: 6rem;
    border: 1px solid rgba(31,42,44,.10);
    background: transparent !important;
}

.decision-tag {
    border: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    letter-spacing: .14em;
}

.decision-card h3 {
    font-size: clamp(1.8rem, 3vw, 2.65rem);
}

/* ==========================================================================
   Zone & carte — carnet topographique
   ========================================================================== */

.zone-shell {
    gap: 1px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line-strong);
    border-radius: 2px;
    background: var(--line-strong);
}

.zone-copy {
    padding: clamp(2rem, 5vw, 4rem);
    background:
        linear-gradient(rgba(31,42,44,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(31,42,44,.035) 1px, transparent 1px),
        #f7f4ed;
    background-size: 44px 44px;
}

.city-list li {
    border-radius: 0;
    border-color: var(--line);
    background: rgba(255,253,249,.78);
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.map-card {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.map-card-head {
    padding: 1.4rem 1.5rem;
    border-bottom: 1px solid var(--line);
}

.map-card-head strong {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.65rem;
    font-weight: 600;
}

/* ==========================================================================
   Process — club privé / atelier
   ========================================================================== */

.process-section {
    overflow: hidden;
    background:
        linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
        #1c292c;
    background-size: 58px 58px;
}

.process-section::before {
    content: "";
    position: absolute;
    inset: -20% -10%;
    pointer-events: none;
    background: radial-gradient(ellipse at 72% 20%, rgba(77,163,210,.12), transparent 32%);
    animation: darkAura 12s ease-in-out infinite alternate;
}

@keyframes darkAura {
    from { transform: translate3d(-2%, 0, 0) scale(1); }
    to { transform: translate3d(5%, 4%, 0) scale(1.06); }
}

.process-grid {
    gap: 1px;
    border: 1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.12);
}

.process-card {
    min-height: 320px;
    padding: 1.7rem;
    border: 0;
    border-radius: 0;
    background: rgba(20,30,32,.88);
    backdrop-filter: blur(6px);
}

.process-card:nth-child(n) {
    transform: none;
}

.step-number {
    margin-bottom: 4rem;
    font-family: "Cormorant Garamond", serif;
    font-size: 1.45rem;
    font-style: italic;
    letter-spacing: .02em;
}

/* ==========================================================================
   Avis — blason contemporain
   ========================================================================== */

.reviews-shell {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 4.2rem);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 2px;
    background:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
        var(--olive);
    background-size: 46px 46px;
    box-shadow: 18px 22px 0 rgba(31,42,44,.07), var(--shadow-md);
}

.reviews-shell::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(110deg, transparent 24%, rgba(255,255,255,.12) 48%, transparent 68%);
    background-size: 240% 100%;
    animation: reviewSheen 14s ease-in-out infinite;
}

@keyframes reviewSheen {
    0%, 24% { background-position: 180% 0; opacity: 0; }
    38% { opacity: .55; }
    70% { opacity: .15; }
    88%, 100% { background-position: -80% 0; opacity: 0; }
}

.trust-card {
    position: relative;
    z-index: 2;
    border: 1px solid rgba(31,42,44,.14);
    border-radius: 2px;
    box-shadow: 10px 12px 0 rgba(31,42,44,.10);
}

.trust-card .trust-number {
    font-family: "Cormorant Garamond", serif;
    font-size: 6.5rem;
    font-style: italic;
    font-weight: 600;
    letter-spacing: -.05em;
}

/* ==========================================================================
   FAQ — carnet éditorial
   ========================================================================== */

.faq-item {
    border: 0;
    border-top: 1px solid var(--line-strong);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.faq-item:last-child {
    border-bottom: 1px solid var(--line-strong);
}

.faq-item summary {
    padding: 1.35rem 3.8rem 1.35rem 0;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.45rem, 2.4vw, 2rem);
    font-weight: 600;
    line-height: 1.05;
}

.faq-item summary::after {
    right: 0;
    width: 34px;
    height: 34px;
    border: 1px solid var(--line-strong);
    border-radius: 50%;
    background: transparent;
    color: var(--ink);
    font-family: "Manrope", sans-serif;
    font-size: .95rem;
}

.faq-answer {
    padding: 0 3.8rem 1.4rem 0;
}

/* ==========================================================================
   Final CTA — plaque de maison
   ========================================================================== */

.final-cta-shell {
    position: relative;
    overflow: hidden;
    padding: clamp(2.2rem, 5vw, 4rem);
    border: 1px solid var(--line-strong);
    border-radius: 2px;
    background:
        linear-gradient(rgba(31,42,44,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(31,42,44,.03) 1px, transparent 1px),
        var(--surface);
    background-size: 42px 42px;
    box-shadow: 14px 16px 0 rgba(31,42,44,.045);
}

.final-cta-shell::after {
    content: "A";
    position: absolute;
    right: 4%;
    bottom: -22%;
    color: rgba(97,116,54,.055);
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(12rem, 28vw, 24rem);
    font-style: italic;
    line-height: 1;
    pointer-events: none;
}

.final-cta-shell > * {
    position: relative;
    z-index: 1;
}

/* ==========================================================================
   Footer — sobre, institutionnel
   ========================================================================== */

.site-footer {
    border-top: 1px solid rgba(255,255,255,.08);
    background:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
        #172124;
    background-size: 52px 52px;
}

.footer-logo {
    border-radius: 0;
}

.footer-card h2 {
    font-size: 1.35rem;
}

.footer-card a,
.footer-card span,
.footer-card p {
    font-size: .86rem;
}

/* ==========================================================================
   Responsive premium
   ========================================================================== */

@media (max-width: 1050px) {
    .service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .hero {
        min-height: auto;
    }

    .hero-grid {
        gap: 3.4rem;
    }

    .section-heading {
        padding-left: 1.25rem;
    }

    .service-card {
        min-height: 300px;
    }
}

@media (max-width: 650px) {
    .container {
        width: min(1240px, calc(100% - 1.25rem));
    }

    .hero {
        padding-top: 2.7rem;
    }

    .hero h1 {
        font-size: clamp(3.45rem, 17vw, 5.3rem);
    }

    .hero-logo {
        width: 64px;
    }

    .service-grid {
        grid-template-columns: 1fr;
    }

    .service-card {
        min-height: auto;
    }

    .section-heading {
        border-left: 0;
        padding-left: 0;
    }

    .section-heading::after {
        display: none;
    }

    .process-grid {
        grid-template-columns: 1fr;
    }

    .figure-stamp {
        top: 1.45rem;
        right: 1.45rem;
    }
}

/* Accessibilité : les effets décoratifs s'arrêtent si l'utilisateur le demande. */
@media (prefers-reduced-motion: reduce) {
    body::after,
    .hero-media,
    .hero-media::after,
    .feature-image::before,
    .process-section::before,
    .reviews-shell::after {
        animation: none !important;
    }
}



/* ==========================================================================
   Ajustement demandé — logo hero plus grand en portrait + ombres et lumières
   ========================================================================== */

.hero-brand {
    position: relative;
    gap: 1.25rem;
}

.hero-logo-shell {
    position: relative;
    display: grid;
    place-items: center;
    width: 108px;
    aspect-ratio: 1;
    flex: 0 0 auto;
    isolation: isolate;
}

.hero-logo-shell::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 8%;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 32%, rgba(255,255,255,.95), rgba(255,255,255,.38) 42%, rgba(77,163,210,.18) 60%, rgba(77,163,210,0) 78%),
        radial-gradient(circle at 68% 78%, rgba(202,102,59,.18), rgba(202,102,59,0) 52%),
        radial-gradient(circle at 50% 50%, rgba(97,116,54,.18), rgba(97,116,54,0) 70%);
    filter: blur(10px);
    opacity: .95;
    animation: logoHaloBreath 7s ease-in-out infinite;
}

.hero-logo-shell::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -6%;
    border-radius: 50%;
    border: 1px solid rgba(31,42,44,.10);
    background:
        linear-gradient(135deg, rgba(255,255,255,.75), rgba(255,255,255,.12) 38%, rgba(255,255,255,0) 62%),
        rgba(255,253,249,.52);
    box-shadow:
        0 22px 46px rgba(31,42,44,.14),
        0 10px 20px rgba(77,163,210,.12),
        inset 0 1px 0 rgba(255,255,255,.9);
    backdrop-filter: blur(6px);
}

.hero-logo {
    position: relative;
    z-index: 1;
    width: 86px;
    padding: .45rem;
    border: 1px solid rgba(31,42,44,.08);
    border-radius: 50%;
    background: rgba(255,253,249,.88);
    box-shadow:
        0 18px 36px rgba(31,42,44,.12),
        inset 0 1px 0 rgba(255,255,255,.95),
        0 0 0 10px rgba(255,255,255,.32);
    filter:
        drop-shadow(0 8px 18px rgba(31,42,44,.18))
        drop-shadow(0 0 16px rgba(255,255,255,.65));
}

@keyframes logoHaloBreath {
    0%, 100% { transform: scale(1); opacity: .82; }
    50% { transform: scale(1.08); opacity: 1; }
}

@media (max-width: 900px) and (orientation: portrait) {
    .hero-brand {
        gap: 1rem;
        margin-bottom: 2.35rem;
    }

    .hero-logo-shell {
        width: 160px;
    }

    .hero-logo {
        width: 128px;
        padding: .6rem;
        box-shadow:
            0 24px 54px rgba(31,42,44,.18),
            inset 0 1px 0 rgba(255,255,255,.96),
            0 0 0 14px rgba(255,255,255,.38);
        filter:
            drop-shadow(0 14px 24px rgba(31,42,44,.20))
            drop-shadow(0 0 22px rgba(255,255,255,.82));
    }
}

@media (max-width: 650px) and (orientation: portrait) {
    .hero-brand {
        align-items: center;
    }

    .hero-logo-shell {
        width: 172px;
    }

    .hero-logo {
        width: 138px;
    }
}


/* ==========================================================================
   ÉQUIPE — Ludovic & Emmanuel
   ========================================================================== */
.team-section{padding-top:clamp(4.5rem,8vw,8rem)}
.team-shell{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,5rem);align-items:start;position:relative}
.team-intro{position:relative;top:auto;padding-left:clamp(1rem,3vw,2.2rem);padding-bottom:1rem;border-left:1px solid var(--line-strong)}
.team-intro::before{content:"";position:absolute;left:-1px;top:0;width:1px;height:5rem;background:linear-gradient(var(--terra) 0 45%,transparent 45% 65%,var(--sky) 65%)}
.team-intro h2{font-size:clamp(2.8rem,5.7vw,5.3rem);max-width:720px}
.team-intro p{max-width:680px;font-size:1.02rem}
.team-contacts{display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid var(--line-strong);background:var(--line-strong)}
.associate-card{position:relative;min-height:410px;padding:clamp(1.6rem,3.2vw,2.8rem);overflow:hidden;background:rgba(255,253,249,.94)}
.associate-card::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(31,42,44,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(31,42,44,.025) 1px,transparent 1px);background-size:34px 34px;pointer-events:none}
.associate-card::after{content:"";position:absolute;left:-35%;top:-35%;width:85%;height:180%;background:linear-gradient(105deg,transparent,rgba(31,42,44,.055),transparent);transform:translateX(-100%) rotate(9deg);animation:associateShade 12s ease-in-out infinite;pointer-events:none}
.associate-card--alt::after{animation-delay:5.5s}
@keyframes associateShade{0%,25%{transform:translateX(-120%) rotate(9deg);opacity:0}40%{opacity:.8}75%,100%{transform:translateX(260%) rotate(9deg);opacity:0}}
.associate-card__index{position:absolute;right:1.4rem;top:1rem;color:rgba(31,42,44,.13);font-family:"Cormorant Garamond",Georgia,serif;font-size:5rem;font-style:italic;line-height:1}
.associate-card__role{position:relative;z-index:1;display:inline-block;margin-bottom:3.5rem;color:var(--olive-strong);font-size:.65rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.associate-card h3{position:relative;z-index:1;margin-bottom:1rem;font-size:clamp(2.4rem,4vw,3.7rem)}
.associate-card p{position:relative;z-index:1;max-width:28rem}
.associate-phone{position:absolute;z-index:2;left:clamp(1.6rem,3.2vw,2.8rem);right:clamp(1.6rem,3.2vw,2.8rem);bottom:clamp(1.6rem,3.2vw,2.8rem);display:flex;justify-content:space-between;align-items:end;gap:1rem;padding-top:1rem;border-top:1px solid var(--line-strong);color:var(--ink);text-decoration:none}
.associate-phone span{font-size:.67rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.associate-phone strong{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.45rem;font-weight:600;white-space:nowrap}
.associate-phone:hover strong{color:var(--terra)}
.team-note{grid-column:1/-1;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem 1.5rem;align-items:center;padding:1.35rem 1.5rem 1.35rem 6rem;overflow:hidden;border:1px solid var(--line-strong);background:var(--ink);color:#fff;z-index:2}
.team-note__mark{position:absolute;left:1.35rem;top:50%;z-index:0;font-family:"Cormorant Garamond",Georgia,serif;font-size:2.45rem;font-style:italic;line-height:1;color:var(--sky);transform:translateY(-50%);opacity:.92}
.team-note p{position:relative;z-index:1;max-width:100%;margin:0;color:rgba(255,255,255,.78);line-height:1.45}
.team-note p strong{color:#fff}
.team-note .text-link{position:relative;z-index:1;color:#fff;white-space:nowrap;align-self:center}
.hero-actions-team .team-call{min-width:205px;justify-content:flex-start}
.hero-actions-team .team-call>span{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.hero-actions-team .team-call small{font-size:.53rem;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.hero-actions-team .team-call-alt{background:var(--olive);box-shadow:8px 8px 0 rgba(77,163,210,.18)}
.final-cta-actions-team{max-width:470px;justify-content:flex-end}
@media(max-width:1050px){.team-shell{grid-template-columns:1fr}.team-intro{position:static;padding-bottom:0}.team-note{grid-template-columns:1fr;padding:1.15rem 1.2rem 1.15rem 4.6rem}.team-note .text-link{grid-column:auto}}
@media(max-width:720px){.team-contacts{grid-template-columns:1fr}.associate-card{min-height:360px}.team-note{grid-template-columns:1fr;padding:1rem 1rem 1rem 1rem}.team-note__mark{position:static;transform:none;display:block;margin-bottom:.25rem;font-size:1.9rem}.team-note .text-link{grid-column:auto;white-space:normal}.hero-actions-team .team-call{width:100%;min-width:0}.final-cta-actions-team{max-width:none}}
@media(prefers-reduced-motion:reduce){.associate-card::after{animation:none!important}}

/* ==========================================================================
   CORRECTIF ÉQUIPE — TABLETTE / PAYSAGE
   Les deux associés restent côte à côte, sans aucun débordement de nom ou téléphone.
   ========================================================================== */

.team-contacts,
.associate-card,
.associate-card > * {
    min-width: 0;
}

.associate-card h3 {
    max-width: 100%;
    overflow: visible;
    text-wrap: balance;
}

@media (min-width: 721px) and (max-width: 1100px) {
    .team-contacts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .associate-card {
        min-height: 360px;
        padding: clamp(1.25rem, 2.4vw, 1.75rem);
    }

    .associate-card__index {
        right: 1rem;
        top: .75rem;
        font-size: clamp(3.6rem, 7vw, 4.5rem);
    }

    .associate-card__role {
        max-width: calc(100% - 4.6rem);
        margin-bottom: 2.6rem;
        font-size: clamp(.54rem, 1.15vw, .64rem);
        line-height: 1.4;
        letter-spacing: .13em;
    }

    .associate-card h3 {
        margin-bottom: .8rem;
        font-size: clamp(2.15rem, 5vw, 3rem);
        line-height: .9;
        letter-spacing: -.035em;
        white-space: nowrap;
    }

    .associate-card p {
        max-width: 100%;
        font-size: clamp(.88rem, 1.55vw, .98rem);
        line-height: 1.65;
    }

    .associate-phone {
        left: clamp(1.25rem, 2.4vw, 1.75rem);
        right: clamp(1.25rem, 2.4vw, 1.75rem);
        bottom: clamp(1.25rem, 2.4vw, 1.75rem);
        gap: .65rem;
    }

    .associate-phone span {
        font-size: .56rem;
        letter-spacing: .09em;
    }

    .associate-phone strong {
        font-size: clamp(1.05rem, 2.25vw, 1.32rem);
    }
}

/* Écrans paysage particulièrement bas : compacter verticalement sans toucher à la lisibilité. */
@media (min-width: 721px) and (max-width: 1100px) and (orientation: landscape) and (max-height: 700px) {
    .team-section {
        padding-block: 3.7rem;
    }

    .associate-card {
        min-height: 325px;
    }

    .associate-card__role {
        margin-bottom: 1.9rem;
    }

    .associate-card h3 {
        font-size: clamp(2rem, 4.6vw, 2.65rem);
    }

    .associate-card p {
        font-size: .86rem;
        line-height: 1.55;
    }
}

/* En dessous de cette largeur, une seule colonne est plus élégante que deux cartes comprimées. */
@media (max-width: 760px) {
    .team-contacts {
        grid-template-columns: 1fr;
    }

    .associate-card h3 {
        white-space: normal;
    }
}


/* ==========================================================================
   CORRECTIF DÉFINITIF — PRÉNOMS DES ASSOCIÉS
   La taille dépend de la largeur réelle de chaque carte, pas du viewport.
   Ainsi "Emmanuel" ne peut plus sortir de sa colonne en paysage.
   ========================================================================== */

.associate-card {
    container-type: inline-size;
    container-name: associate-card;
}

.associate-card .associate-card__name {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 0 1rem;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: clip;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 600;
    line-height: .88;
    letter-spacing: -.045em;
    font-size: clamp(2.25rem, 10.4cqw, 3.7rem);
}

.associate-card .associate-card__name--emmanuel {
    /* Emmanuel est légèrement plus long : compensation optique discrète. */
    font-size: clamp(2.15rem, 9.7cqw, 3.55rem);
    letter-spacing: -.052em;
}

/* Fallback pour navigateurs sans unités de conteneur. */
@supports not (font-size: 10cqw) {
    .associate-card .associate-card__name {
        font-size: clamp(2.2rem, 3.4vw, 3.55rem);
    }

    .associate-card .associate-card__name--emmanuel {
        font-size: clamp(2.1rem, 3.05vw, 3.35rem);
    }
}

/* Quand les cartes deviennent vraiment étroites, on réduit aussi les marges internes. */
@container associate-card (max-width: 420px) {
    .associate-card__role {
        margin-bottom: 2.15rem;
        max-width: calc(100% - 4rem);
    }

    .associate-card .associate-card__name {
        font-size: clamp(2rem, 9.8cqw, 2.65rem);
    }

    .associate-card .associate-card__name--emmanuel {
        font-size: clamp(1.95rem, 9.1cqw, 2.5rem);
    }

    .associate-phone {
        gap: .5rem;
    }

    .associate-phone strong {
        font-size: clamp(1rem, 4.8cqw, 1.25rem);
    }
}

/* Sécurité supplémentaire : aucune coupe visuelle du contenu de la carte. */
.associate-card__name,
.associate-card__role,
.associate-card p,
.associate-phone {
    min-width: 0;
}


/* ==========================================================================
   CORRECTIF CHEVAUCHEMENT — TEAM NOTE
   On neutralise le sticky et on transforme le monogramme en élément décoratif
   pour éviter tout chevauchement visuel avec le contenu voisin.
   ========================================================================== */
.team-note::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.06) 52%,transparent 100%);opacity:.35}
.team-note > *{min-width:0}
@media (min-width: 1051px){.team-note p{padding-right:1rem}}


/* ========================================================================== 
   PAGES INTÉRIEURES V2 — DEUX DIRECTIONS RÉELLEMENT DISTINCTES
   A = maison éditoriale, claire, asymétrique / B = dossier terrain sombre et modulaire
   ========================================================================== */
.aei-page{--aei-paper:#f4f0e8;--aei-surface:#fffdf9;--aei-ink:#1f2a2c;--aei-muted:#687173;--aei-sky:#4da3d2;--aei-olive:#617436;--aei-terra:#ca663b;--aei-line:rgba(31,42,44,.16);font-family:"Manrope",Arial,sans-serif;background:var(--aei-paper);color:var(--aei-ink)}
.aei-page main{overflow:hidden}.aei-wrap{width:min(1240px,calc(100% - 3rem));margin-inline:auto}.aei-kicker,.aei-b-sectiontag,.aei-b-code{font-size:.65rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.aei-kicker{color:#465425}.aei-page h1,.aei-page h2,.aei-page h3{font-family:"Cormorant Garamond",Georgia,serif}.aei-page p{color:var(--aei-muted);line-height:1.75}.aei-breadcrumb{padding:1rem 0}.aei-breadcrumb ol{display:flex;gap:.55rem;align-items:center;margin:0;padding:0;list-style:none;color:#778083;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.aei-breadcrumb li+li::before{content:"/";margin-right:.55rem;color:var(--aei-terra)}.aei-breadcrumb a{text-decoration:none;color:inherit}.aei-checklist{display:grid;gap:.55rem;margin:1.2rem 0 0;padding:0;list-style:none}.aei-checklist li{position:relative;padding-left:1.35rem;color:#485457}.aei-checklist li::before{content:"";position:absolute;left:0;top:.72em;width:.42rem;height:.42rem;border-radius:50%;background:var(--aei-terra)}
.aei-duo-cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}.aei-btn{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:1px solid var(--aei-line);text-decoration:none;font-size:.67rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.aei-btn strong{font-size:.82rem;white-space:nowrap}.aei-btn-dark{background:var(--aei-ink);color:#fff}.aei-btn-olive{background:var(--aei-olive);color:#fff}.aei-btn-line{background:rgba(255,255,255,.55);color:var(--aei-ink)}.aei-duo-cta--compact .aei-btn{min-height:46px}.aei-map{display:block;width:100%;min-height:320px;border:0}.aei-zone-list{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0 1.5rem}.aei-zone-list span{padding:.45rem .6rem;border:1px solid var(--aei-line);font-size:.65rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.aei-faq-list{display:grid}.aei-faq-item{border:0;border-top:1px solid var(--aei-line);background:transparent}.aei-faq-item:last-child{border-bottom:1px solid var(--aei-line)}.aei-faq-item summary{position:relative;padding:1.25rem 3rem 1.25rem 0;cursor:pointer;list-style:none;font-family:"Cormorant Garamond",Georgia,serif;font-size:1.45rem;font-weight:600}.aei-faq-item summary::-webkit-details-marker{display:none}.aei-faq-item summary::after{content:"+";position:absolute;right:.3rem;top:50%;transform:translateY(-50%);font-family:Manrope;font-size:1rem}.aei-faq-item[open] summary::after{content:"−"}.aei-faq-item>div{padding:0 2.5rem 1.1rem 0}.aei-related{padding:5rem 0}.aei-related h2{max-width:720px;font-size:clamp(2.3rem,4.7vw,4rem);line-height:.95}.aei-related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:2rem;border:1px solid var(--aei-line);background:var(--aei-line)}.aei-related-card{min-height:130px;display:flex;justify-content:space-between;gap:1rem;padding:1.3rem;background:var(--aei-surface);color:var(--aei-ink);text-decoration:none;font-family:"Cormorant Garamond",Georgia,serif;font-size:1.35rem;font-weight:600}.aei-related-card b{color:var(--aei-terra)}

/* LAYOUT A — éditorial, clair, asymétrique */
.aei-layout-a{background:linear-gradient(rgba(31,42,44,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(31,42,44,.028) 1px,transparent 1px),var(--aei-paper);background-size:56px 56px}.aei-a-hero{padding:3rem 0 7rem}.aei-a-hero__grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(460px,1.12fr);gap:clamp(3rem,7vw,7rem);align-items:center}.aei-a-hero__copy{position:relative}.aei-a-hero__copy::before{content:"A / E";position:absolute;top:-3.5rem;right:0;color:rgba(31,42,44,.08);font-family:"Cormorant Garamond",Georgia,serif;font-size:7rem;font-style:italic}.aei-a-hero h1{margin:.7rem 0 1.4rem;font-size:clamp(4rem,7.2vw,7.6rem);font-weight:600;line-height:.78;letter-spacing:-.055em}.aei-a-hero__copy>p{max-width:680px;font-size:1.02rem}.aei-a-hero__media{position:relative;margin:0;padding:.8rem;border:1px solid var(--aei-line);background:#fff;box-shadow:18px 22px 0 rgba(31,42,44,.05),0 32px 80px rgba(31,42,44,.13)}.aei-a-hero__media img{width:100%;aspect-ratio:3/2;object-fit:cover}.aei-a-hero__media figcaption{display:flex;justify-content:space-between;gap:1rem;padding:.8rem .1rem .1rem;color:#6b7475;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}.aei-a-block{position:relative;display:grid;grid-template-columns:100px minmax(240px,.72fr) minmax(0,1.28fr);gap:clamp(1.5rem,4vw,4rem);padding:5rem 0;border-top:1px solid var(--aei-line)}.aei-a-block--reverse{grid-template-columns:100px minmax(0,1.28fr) minmax(240px,.72fr)}.aei-a-block--reverse .aei-a-block__heading{grid-column:3}.aei-a-block--reverse .aei-a-block__content{grid-column:2;grid-row:1}.aei-a-block__number{font-family:"Cormorant Garamond",Georgia,serif;font-size:4.5rem;font-style:italic;color:rgba(31,42,44,.16);line-height:1}.aei-a-block h2{margin:.5rem 0;font-size:clamp(2.5rem,4.5vw,4.3rem);font-weight:600;line-height:.92}.aei-a-block__content p:first-child{font-size:1.06rem;color:#4a5658}.aei-a-case{position:relative;margin:2rem 0 6rem;padding:clamp(2rem,5vw,4.5rem);overflow:hidden;background:#1f2a2c;color:#fff}.aei-a-case::after{content:"FIELD NOTE";position:absolute;right:-1rem;bottom:-2rem;color:rgba(255,255,255,.035);font-family:"Cormorant Garamond",serif;font-size:9rem;font-style:italic}.aei-a-case h2{max-width:800px;margin:.7rem 0 1rem;color:#fff;font-size:clamp(2.7rem,5vw,4.8rem);line-height:.92}.aei-a-case p{max-width:820px;color:rgba(255,255,255,.72)}.aei-a-case .aei-kicker{color:#b8ddec}.aei-a-zone{padding:5rem 0}.aei-a-zone h2{max-width:800px;font-size:clamp(2.7rem,5vw,4.7rem);line-height:.92}.aei-a-zone .aei-map{margin-top:1rem;box-shadow:14px 16px 0 rgba(31,42,44,.05)}.aei-a-faq{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(2rem,7vw,6rem);padding:6rem 0}.aei-a-faq__intro{position:sticky;top:120px;align-self:start}.aei-a-faq h2{font-size:clamp(2.6rem,5vw,4.5rem);line-height:.92}.aei-a-conclusion{margin:0 0 7rem;padding:clamp(2rem,5vw,4.5rem);border:1px solid var(--aei-line);background:rgba(255,253,249,.75)}.aei-a-conclusion h2{max-width:820px;font-size:clamp(2.7rem,5vw,4.7rem);line-height:.92}.aei-a-conclusion p{max-width:780px}

/* LAYOUT B — dossier terrain, sombre, graphique, modulaire */
.aei-layout-b{background:#ece8df}.aei-b-hero{padding:0 0 5rem;background:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),#192326;background-size:48px 48px;color:#fff}.aei-b-hero .aei-breadcrumb{color:rgba(255,255,255,.54)}.aei-b-hero__top{display:grid;grid-template-columns:1fr 280px;gap:3rem;padding:4rem 0 2rem;border-bottom:1px solid rgba(255,255,255,.13)}.aei-b-code,.aei-b-sectiontag{color:#91c6dc}.aei-b-hero h1{max-width:880px;margin:.7rem 0 0;color:#fff;font-size:clamp(4rem,7.5vw,7.8rem);font-weight:600;line-height:.78;letter-spacing:-.055em}.aei-b-hero__facts{display:grid;grid-template-columns:1fr;align-content:start;border-left:1px solid rgba(255,255,255,.14);padding-left:1.5rem}.aei-b-hero__facts span{margin-top:.9rem;color:rgba(255,255,255,.42);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}.aei-b-hero__facts strong{color:#fff;font-family:"Cormorant Garamond",serif;font-size:1.35rem;font-weight:600}.aei-b-hero__intro{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding-top:2rem}.aei-b-hero__intro p{color:rgba(255,255,255,.72)}.aei-b-hero__intro .aei-duo-cta{grid-column:1/-1}.aei-b-hero .aei-btn-line{color:#fff;background:transparent;border-color:rgba(255,255,255,.22)}.aei-b-imageband{background:#192326;padding-bottom:5rem}.aei-b-imageband figure{position:relative;margin:0}.aei-b-imageband img{display:block;width:100%;max-height:570px;object-fit:cover;filter:saturate(.88) contrast(1.04)}.aei-b-imageband figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;padding:1rem 1.2rem;background:linear-gradient(transparent,rgba(0,0,0,.62));color:#fff;font-size:.64rem;letter-spacing:.09em;text-transform:uppercase}.aei-b-content{padding-top:5rem}.aei-b-diagnostic{padding:0 0 6rem}.aei-b-diagnostic h2,.aei-b-ledger h2,.aei-b-panel h2{font-size:clamp(2.7rem,5vw,4.6rem);font-weight:600;line-height:.92}.aei-b-diagnostic__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1px;margin-top:2rem;border:1px solid var(--aei-line);background:var(--aei-line)}.aei-b-diagnostic__grid>div,.aei-b-diagnostic__grid>aside{padding:2rem;background:#f8f5ef}.aei-b-ledger{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:1px;margin:0 0 1px;background:var(--aei-line)}.aei-b-ledger__head,.aei-b-ledger__body{padding:clamp(1.8rem,4vw,3.2rem);background:#fffdf9}.aei-b-ledger__head span{display:block;margin-bottom:2rem;color:var(--aei-terra);font-family:"Cormorant Garamond",serif;font-size:2rem;font-style:italic}.aei-b-ledger__body{background:#f7f4ed}.aei-b-panel{margin:4rem 0;padding:clamp(2rem,5vw,4rem);border:1px solid var(--aei-line);background:linear-gradient(rgba(31,42,44,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(31,42,44,.025) 1px,transparent 1px),#fffdf9;background-size:38px 38px}.aei-b-panel p{max-width:920px}.aei-b-case{display:grid;grid-template-columns:180px 1fr;gap:2rem;margin:6rem 0;padding:2rem 0;border-top:1px solid var(--aei-line);border-bottom:1px solid var(--aei-line)}.aei-b-case__label{color:var(--aei-terra);font-size:.62rem;font-weight:800;letter-spacing:.16em}.aei-b-case h2{margin:0 0 .7rem;font-size:clamp(2.5rem,4.8vw,4.4rem);line-height:.92}.aei-b-contactstrip{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;padding:2rem;background:#617436;color:#fff}.aei-b-contactstrip>div{display:grid}.aei-b-contactstrip strong{font-family:"Cormorant Garamond",serif;font-size:2rem}.aei-b-contactstrip span{color:rgba(255,255,255,.72)}.aei-b-contactstrip .aei-duo-cta{margin-top:0}.aei-b-contactstrip .aei-btn{border-color:rgba(255,255,255,.18)}.aei-b-zone{display:grid;grid-template-columns:1fr 1fr;margin:6rem 0;border:1px solid var(--aei-line)}.aei-b-zone__copy{padding:clamp(2rem,5vw,4rem);background:#fffdf9}.aei-b-zone h2{font-size:clamp(2.6rem,5vw,4.4rem);line-height:.92}.aei-b-faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:4rem;padding:6rem 0}.aei-b-faq h2{font-size:clamp(2.5rem,4.8vw,4.2rem);line-height:.92}.aei-related--dark{padding:4rem;background:#1f2a2c;color:#fff}.aei-related--dark h2{color:#fff}.aei-related--dark .aei-related-card{background:#263235;color:#fff;border-color:rgba(255,255,255,.1)}.aei-b-conclusion{display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:center;margin:6rem 0;padding:clamp(2rem,5vw,4rem);background:#fffdf9;border-left:6px solid var(--aei-terra)}.aei-b-conclusion h2{max-width:850px;margin:.7rem 0;font-size:clamp(2.7rem,5vw,4.7rem);line-height:.92}.aei-b-conclusion p{max-width:760px}

@media(max-width:980px){.aei-a-hero__grid,.aei-a-faq,.aei-b-hero__top,.aei-b-hero__intro,.aei-b-diagnostic__grid,.aei-b-ledger,.aei-b-zone,.aei-b-faq,.aei-b-conclusion{grid-template-columns:1fr}.aei-a-block,.aei-a-block--reverse{grid-template-columns:70px 1fr}.aei-a-block__content,.aei-a-block--reverse .aei-a-block__content{grid-column:2;grid-row:auto}.aei-a-block--reverse .aei-a-block__heading{grid-column:2}.aei-a-faq__intro{position:static}.aei-b-contactstrip{grid-template-columns:1fr}.aei-related-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.aei-wrap{width:calc(100% - 1.2rem)}.aei-a-hero{padding-top:2rem}.aei-a-hero h1,.aei-b-hero h1{max-width:100%;font-size:clamp(2.65rem,11.8vw,3.75rem);line-height:.86;letter-spacing:-.042em;overflow-wrap:normal;word-break:normal}.aei-a-block,.aei-a-block--reverse{grid-template-columns:1fr;gap:1rem;padding:3.5rem 0}.aei-a-block__number{font-size:3rem}.aei-a-block__heading,.aei-a-block__content,.aei-a-block--reverse .aei-a-block__heading,.aei-a-block--reverse .aei-a-block__content{grid-column:auto;grid-row:auto}.aei-duo-cta{display:grid;grid-template-columns:1fr}.aei-btn{width:100%}.aei-related-grid{grid-template-columns:1fr}.aei-b-hero__facts{border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:1rem 0 0}.aei-b-case{grid-template-columns:1fr}.aei-related--dark{padding:2rem 1rem}}


/* ==========================================================================
   MOBILE — TITRES LONGS DES PAGES INTÉRIEURES
   Évite toute coupe horizontale sur les smartphones étroits.
   ========================================================================== */
.aei-page h1,.aei-page h2,.aei-page h3{max-width:100%}

@media(max-width:480px){
    .aei-a-hero h1,.aei-b-hero h1{
        font-size:clamp(2.45rem,11.2vw,3.25rem);
        line-height:.88;
        letter-spacing:-.038em;
    }
    .aei-a-hero__copy::before{font-size:5rem;top:-2.5rem}
}

@media(max-width:360px){
    .aei-a-hero h1,.aei-b-hero h1{
        font-size:clamp(2.25rem,10.9vw,2.8rem);
        line-height:.9;
        letter-spacing:-.032em;
    }
    .aei-b-code,.aei-kicker{letter-spacing:.13em}
}
