/* Design system front public — A Juste Mesure
   Charte graphique réelle (palette navy/copper/ivoire, Fraunces + Inter + Sora),
   remplace les placeholders. Polices et icônes auto-hébergées dans /fonts/
   (sous-ensembles latin + latin-ext uniquement). */

@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url("/fonts/fraunces-italic-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: 'Fraunces';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url("/fonts/fraunces-italic-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: 400 600;
  font-display: swap;
  src: url("/fonts/fraunces-normal-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: 'Fraunces';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/fonts/fraunces-normal-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 700;
  font-display: swap;
  src: url("/fonts/inter-normal-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 700;
  font-display: swap;
  src: url("/fonts/inter-normal-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: 'Sora';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("/fonts/sora-normal-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: 'Sora';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("/fonts/sora-normal-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;
}

/* Icônes Phosphor (graisse "thin") — seuls les glyphes utilisés par le site
   sont déclarés ci-dessous (voir liste .ph-light.ph-* plus bas). */
@font-face {
  font-family: 'Phosphor-Light';
  src: url("/fonts/phosphor-light.woff2") format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
.ph-light {
  font-family: 'Phosphor-Light' !important;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.ph-light.ph-arrow-right:before { content: "\e06c"; }
.ph-light.ph-briefcase:before { content: "\e0ee"; }
.ph-light.ph-check:before { content: "\e182"; }
.ph-light.ph-check-circle:before { content: "\e184"; }
.ph-light.ph-compass:before { content: "\e1c8"; }
.ph-light.ph-copy:before { content: "\e1ca"; }
.ph-light.ph-crosshair:before { content: "\e1d6"; }
.ph-light.ph-crown:before { content: "\e614"; }
.ph-light.ph-cube:before { content: "\e1da"; }
.ph-light.ph-envelope-simple:before { content: "\e218"; }
.ph-light.ph-frame-corners:before { content: "\e626"; }
.ph-light.ph-gear:before { content: "\e270"; }
.ph-light.ph-gift:before { content: "\e276"; }
.ph-light.ph-handshake:before { content: "\e582"; }
.ph-light.ph-headset:before { content: "\e584"; }
.ph-light.ph-image:before { content: "\e2ca"; }
.ph-light.ph-instagram-logo:before { content: "\e2d0"; }
.ph-light.ph-lightbulb:before { content: "\e2dc"; }
.ph-light.ph-linkedin-logo:before { content: "\e2ee"; }
.ph-light.ph-list:before { content: "\e2f0"; }
.ph-light.ph-map-pin:before { content: "\e316"; }
.ph-light.ph-minus:before { content: "\e32a"; }
.ph-light.ph-mountains:before { content: "\e7ae"; }
.ph-light.ph-phone:before { content: "\e3b8"; }
.ph-light.ph-plugs:before { content: "\eb56"; }
.ph-light.ph-plus:before { content: "\e3d4"; }
.ph-light.ph-puzzle-piece:before { content: "\e596"; }
.ph-light.ph-repeat:before { content: "\e3f6"; }
.ph-light.ph-table:before { content: "\e476"; }
.ph-light.ph-target:before { content: "\e47c"; }
.ph-light.ph-trend-up:before { content: "\e4ae"; }
.ph-light.ph-user:before { content: "\e4c2"; }
.ph-light.ph-users-three:before { content: "\e68e"; }
.ph-light.ph-wrench:before { content: "\e5d4"; }

:root {
    /* Palette */
    --ajm-navy-900: #16273D;
    --ajm-navy-700: #213851;
    --ajm-navy-500: #3A5470;
    --ajm-copper-600: #8B4A2E;
    --ajm-copper-500: #C17F4E;
    --ajm-copper-300: #D99A6C;
    --ajm-copper-100: #F0D3B8;
    --ajm-ivory-100: #F4EFE6;
    --ajm-ivory-50: #FBF8F2;
    --ajm-white: #FFFFFF;
    --ajm-border-ivory: #E4DCC9;

    /* Tokens sémantiques */
    --ajm-couleur-primaire: var(--ajm-navy-900);
    --ajm-couleur-primaire-clair: var(--ajm-navy-500);
    --ajm-couleur-accent: var(--ajm-copper-500);
    --ajm-couleur-accent-hover: var(--ajm-copper-600);
    --ajm-couleur-texte: var(--ajm-navy-900);
    --ajm-couleur-texte-clair: #4A5A6C;
    --ajm-couleur-texte-inverse: var(--ajm-ivory-50);
    --ajm-couleur-texte-inverse-clair: #C9D2DB;

    --ajm-couleur-fond: var(--ajm-surface-page);
    --ajm-surface-page: var(--ajm-ivory-100);
    --ajm-surface-page-alt: var(--ajm-navy-900);
    --ajm-surface-card: var(--ajm-white);
    --ajm-surface-card-alt: var(--ajm-ivory-50);

    --ajm-couleur-bordure: var(--ajm-border-ivory);
    --ajm-couleur-bordure-inverse: rgba(255, 255, 255, .16);

    --ajm-police-display: 'Fraunces', Georgia, 'Times New Roman', serif;
    --ajm-police-body: 'Inter', Helvetica, Arial, sans-serif;
    --ajm-police-nav: 'Sora', 'Inter', Helvetica, Arial, sans-serif;

    --ajm-espace-1: 8px;
    --ajm-espace-2: 16px;
    --ajm-espace-3: 24px;
    --ajm-espace-4: 32px;
    --ajm-espace-5: 48px;
    --ajm-espace-6: 64px;
    --ajm-espace-7: 96px;

    --ajm-rayon: 8px;
    --ajm-rayon-lg: 20px;
    --ajm-ombre: 0 4px 16px rgba(22, 39, 61, .08);
    --ajm-ombre-hover: 0 16px 32px rgba(22, 39, 61, .14);

    --ajm-largeur-max: 1200px;
    --ajm-header-hauteur: 80px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--ajm-police-body);
    color: var(--ajm-couleur-texte);
    background: var(--ajm-surface-page);
    line-height: 1.5;
    overflow-x: hidden;
}

a {
    color: var(--ajm-couleur-accent);
    text-decoration: none;
}

a:hover {
    color: var(--ajm-couleur-accent-hover);
}

::placeholder {
    color: var(--ajm-couleur-texte-clair);
    opacity: .7;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline: 2px solid var(--ajm-couleur-accent);
    outline-offset: 2px;
}

/* ---------- Accessibilité (audit du 19/09/2026, lots L006/L014) ---------- */
.ajm-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ajm-skip-link {
    position: absolute;
    top: -100%;
    left: 12px;
    z-index: 1000;
    padding: 10px 18px;
    background: var(--ajm-couleur-primaire);
    color: #fff;
    border-radius: 0 0 8px 8px;
    font-weight: 600;
    text-decoration: none;
    transition: top .15s ease;
}

.ajm-skip-link:focus {
    top: env(safe-area-inset-top, 0px);
}

@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
        animation: none !important;
        scroll-behavior: auto !important;
    }
}

.ajm-container {
    width: 100%;
    max-width: var(--ajm-largeur-max);
    margin: 0 auto;
    padding: 0 var(--ajm-espace-4);
}

.ajm-display {
    font-family: var(--ajm-police-display);
    font-weight: 600;
    font-size: clamp(28px, 3.5vw, 40px);
    line-height: 1.2;
    margin: 0 0 var(--ajm-espace-2);
}

.ajm-heading {
    font-family: var(--ajm-police-display);
    font-weight: 600;
    font-size: 20px;
    margin: 0 0 var(--ajm-espace-1);
}

.ajm-body {
    font-size: 16px;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-overline {
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: 12px;
    font-weight: 600;
    color: var(--ajm-copper-300);
    margin: 0 0 var(--ajm-espace-1);
}

.ajm-section-intro {
    max-width: 640px;
    margin: 0 auto var(--ajm-espace-5);
    text-align: center;
}

.ajm-section-intro .ajm-display {
    color: inherit;
}

/* ---------- Header ---------- */
.ajm-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 40;
    height: var(--ajm-header-hauteur);
    background: var(--ajm-surface-card);
    border-bottom: 1px solid var(--ajm-couleur-bordure);
}

.ajm-header__inner {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ajm-espace-2);
    padding-top: 0;
    padding-bottom: 0;
}

.ajm-header__logo img {
    height: 40px;
    object-fit: contain;
    display: block;
}

.ajm-header__burger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    font-size: 26px;
    color: var(--ajm-couleur-texte);
    cursor: pointer;
    line-height: 0;
    padding: 4px;
}

.ajm-nav {
    display: none;
    position: fixed;
    top: var(--ajm-header-hauteur);
    left: 0;
    right: 0;
    width: 100%;
    max-height: calc(100vh - var(--ajm-header-hauteur));
    overflow-y: auto;
    z-index: 39;
    background: var(--ajm-surface-card);
    border-bottom: 1px solid var(--ajm-couleur-bordure);
    box-shadow: var(--ajm-ombre-hover);
    flex-direction: column;
    gap: var(--ajm-espace-3);
    padding: var(--ajm-espace-3) var(--ajm-espace-4);
}

.ajm-nav.is-open {
    display: flex;
}

.ajm-nav a {
    font-family: var(--ajm-police-nav);
    font-size: 16px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
    text-decoration: none;
}

.ajm-nav__cta {
    margin-top: var(--ajm-espace-1);
    width: 100%;
}

/* ---------- Boutons ---------- */
.ajm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    border-radius: 999px;
    text-decoration: none;
    font-family: var(--ajm-police-body);
    font-weight: 600;
    font-size: 15px;
    border: none;
    cursor: pointer;
    text-align: center;
}

.ajm-btn--principal {
    background: var(--ajm-couleur-accent);
    color: #fff;
}

.ajm-btn--principal:hover {
    background: var(--ajm-couleur-accent-hover);
    color: #fff;
}

.ajm-btn--discret {
    background: transparent;
    color: var(--ajm-couleur-texte);
    border: 1px solid var(--ajm-couleur-bordure);
}

/* Variante pour un bouton discret posé sur un fond sombre (carte prix du
   devis, refonte du 26/09/2026) — .ajm-btn--discret seul y serait illisible
   (texte navy sur fond navy), même piège déjà vécu sur .ajm-alert--succes
   le 18/09/2026 : une couleur pensée pour un fond ne se réutilise jamais
   telle quelle sur un autre. */
.ajm-btn--discret-inverse {
    background: transparent;
    color: var(--ajm-couleur-texte-inverse);
    border: 1px solid rgba(244, 239, 230, .3);
}

.ajm-btn--sm {
    padding: 10px 20px;
    font-size: 13.5px;
}

.ajm-btn--lg {
    padding: 17px 32px;
    font-size: 16px;
}

.ajm-btn--block {
    display: flex;
    width: 100%;
}

/* ---------- Hero ---------- */
.ajm-hero {
    position: relative;
    width: 100%;
}

.ajm-hero-bg {
    position: relative;
    width: 100%;
    min-height: min(84vh, 820px);
    display: flex;
    align-items: center;
    background-image: linear-gradient(90deg, rgba(22, 39, 61, .92) 0%, rgba(22, 39, 61, .68) 42%, rgba(22, 39, 61, .18) 76%), url("/images/hero-bg.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    padding-top: var(--ajm-header-hauteur);
}

@media (max-width: 1023px) {
    .ajm-hero-bg { background-position: 58% center; }
}

@media (max-width: 767px) {
    .ajm-hero-bg { background-position: 64% center; }
}

.ajm-hero__inner {
    width: 100%;
    padding-block: var(--ajm-espace-5);
    position: relative;
    z-index: 1;
}

.ajm-hero__titre {
    font-family: var(--ajm-police-display);
    font-weight: 600;
    font-size: clamp(38px, 5.2vw, 62px);
    line-height: 1.1;
    color: var(--ajm-couleur-texte-inverse);
    margin: var(--ajm-espace-2) 0 22px;
    max-width: 620px;
}

.ajm-hero__titre span {
    color: var(--ajm-copper-100);
}

.ajm-hero__lead {
    font-size: 17px;
    line-height: 1.6;
    color: var(--ajm-couleur-texte-inverse-clair);
    margin: 0 0 var(--ajm-espace-4);
    max-width: 480px;
}

.ajm-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ajm-espace-2);
    margin-bottom: 36px;
}

.ajm-hero__lien-secondaire {
    font-weight: 600;
    font-size: 15px;
    color: var(--ajm-couleur-texte-inverse);
}

.ajm-hero__reassurance {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ajm-espace-3);
    list-style: none;
    margin: 0;
    padding: 0;
}

.ajm-hero__reassurance li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--ajm-couleur-texte-inverse-clair);
}

.ajm-hero__reassurance .ph-light {
    font-size: 18px;
    color: var(--ajm-copper-300);
}

/* ---------- Bandeau KPI ---------- */
.ajm-kpis {
    width: 100%;
    background: var(--ajm-navy-900);
}

.ajm-kpis__grille {
    padding: 44px 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--ajm-espace-3);
    text-align: center;
}

.ajm-kpis__item {
    border-left: 1px solid rgba(244, 239, 230, .18);
    padding-left: var(--ajm-espace-3);
}

.ajm-kpis__icone {
    font-size: 32px;
    line-height: 1;
    color: var(--ajm-couleur-texte-inverse);
    margin-bottom: 12px;
}

.ajm-kpis__valeur {
    font-family: var(--ajm-police-display);
    font-size: clamp(28px, 3.5vw, 40px);
    font-weight: 600;
    color: var(--ajm-couleur-texte-inverse);
}

.ajm-kpis__label {
    font-size: 13px;
    color: var(--ajm-couleur-texte-inverse-clair);
    margin-top: 6px;
}

/* ---------- Sections génériques ---------- */
.ajm-section {
    padding: var(--ajm-espace-7) 0;
}

.ajm-section--alt {
    background: var(--ajm-surface-page-alt);
}

.ajm-section--card-alt {
    background: var(--ajm-surface-card-alt);
    border-top: 1px solid var(--ajm-couleur-bordure);
}

.ajm-section--inverse .ajm-display,
.ajm-section--inverse h2,
.ajm-section--inverse h3 {
    color: var(--ajm-couleur-texte-inverse);
}

.ajm-section--inverse p {
    color: var(--ajm-couleur-texte-inverse-clair);
}

/* ---------- Besoins ---------- */
.ajm-besoins__grille {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--ajm-espace-3);
}

.ajm-carte-symptome {
    background: var(--ajm-surface-card);
    border-radius: 16px;
    padding: 28px;
    box-shadow: var(--ajm-ombre);
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: transform .2s ease, box-shadow .2s ease;
}

.ajm-carte-symptome:hover {
    transform: translateY(-6px);
    box-shadow: var(--ajm-ombre-hover);
}

.ajm-carte-symptome .ph-light {
    font-size: 26px;
    color: var(--ajm-couleur-accent);
}

.ajm-carte-symptome h3 {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
}

.ajm-carte-symptome p {
    margin: 0;
    font-size: 14px;
    color: var(--ajm-couleur-texte-clair);
    line-height: 1.5;
}

.ajm-lien-centre {
    text-align: center;
    margin-top: 36px;
}

.ajm-lien-centre a {
    font-weight: 600;
    font-size: 15px;
}

/* ---------- Piliers (proposition de valeur) ---------- */
.ajm-piliers {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--ajm-espace-3);
}

.ajm-pilier {
    background: rgba(244, 239, 230, .06);
    border: 1px solid rgba(244, 239, 230, .14);
    border-radius: var(--ajm-rayon-lg);
    padding: 40px 32px;
    position: relative;
    overflow: hidden;
    transition: transform .2s ease;
}

.ajm-pilier:hover {
    transform: translateY(-6px);
}

.ajm-pilier__numero {
    position: absolute;
    top: 8px;
    right: 20px;
    font-family: var(--ajm-police-display);
    font-size: 72px;
    font-weight: 600;
    color: rgba(244, 239, 230, .1);
}

.ajm-pilier__label {
    position: relative;
    display: block;
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ajm-copper-300);
    font-weight: 700;
}

.ajm-pilier__texte {
    position: relative;
    margin: var(--ajm-espace-2) 0 0;
    font-size: 18px;
    font-family: var(--ajm-police-display);
    color: var(--ajm-couleur-texte-inverse);
    line-height: 1.4;
}

/* ---------- Méthode ---------- */
.ajm-methode__grille {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ajm-espace-2);
}

.ajm-carte-etape {
    flex: 1 1 260px;
    min-width: 200px;
    background: var(--ajm-surface-card);
    border-top: 3px solid var(--ajm-couleur-accent);
    border-radius: 0 0 14px 14px;
    box-shadow: var(--ajm-ombre);
    padding: var(--ajm-espace-3) var(--ajm-espace-2);
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: transform .2s ease, box-shadow .2s ease;
}

.ajm-carte-etape:hover {
    transform: translateY(-6px);
    box-shadow: var(--ajm-ombre-hover);
}

.ajm-carte-etape__entete {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ajm-carte-etape__numero {
    font-family: var(--ajm-police-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--ajm-couleur-accent);
}

.ajm-carte-etape__entete .ph-light {
    font-size: 22px;
    color: var(--ajm-couleur-texte);
}

.ajm-carte-etape h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
}

.ajm-carte-etape p {
    margin: 0;
    font-size: 13.5px;
    color: var(--ajm-couleur-texte-clair);
    line-height: 1.5;
}

/* ---------- Cadrage ---------- */
.ajm-cadrage__intro {
    max-width: 680px;
    margin: 0 auto var(--ajm-espace-5);
    text-align: center;
}

.ajm-badge-pastille {
    display: inline-block;
    background: rgba(193, 127, 78, .15);
    color: var(--ajm-couleur-accent);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 6px 16px;
    border-radius: 999px;
    margin-bottom: var(--ajm-espace-2);
}

/* Empile le badge et l'étiquette (au lieu de les laisser en flux inline,
   qui les plaçait côte à côte) — mêmes éléments que le conteneur ".scene"
   de la maquette. */
.ajm-cadrage__prix-zone {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--ajm-espace-2);
    margin-bottom: var(--ajm-espace-2);
}

.ajm-badge-promo {
    display: inline-block;
    background: rgba(255, 255, 255, .08);
    color: var(--ajm-copper-300);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: 999px;
}

/* Étiquette prix de l'étude de cadrage — maquette validée :
   https://claude.ai/artifact/BgqQDGHFUgLT1iuFPPF6Xc (piste 4) */
.ajm-cadrage__etiquette {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    padding: 18px 26px 18px 20px;
    margin-bottom: var(--ajm-espace-1);
}

.ajm-cadrage__etiquette-ruban {
    position: absolute;
    top: -10px;
    right: -10px;
    background: var(--ajm-couleur-accent);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 5px 11px;
    border-radius: 999px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .25);
}

.ajm-cadrage__etiquette-ancien {
    display: flex;
    flex-direction: column;
    font-size: 13px;
    color: var(--ajm-couleur-texte-inverse-clair);
    text-align: left;
}

.ajm-cadrage__etiquette-ancien-valeur {
    font-family: var(--ajm-police-display);
    font-size: 18px;
    text-decoration: line-through;
    text-decoration-color: rgba(244, 239, 230, .5);
    margin-top: 2px;
}

.ajm-cadrage__etiquette-nouveau {
    font-family: var(--ajm-police-display);
    font-weight: 600;
    font-size: 40px;
    color: var(--ajm-copper-300);
    line-height: 1;
}

.ajm-cadrage__prix-detail {
    font-size: 14px;
    color: var(--ajm-couleur-texte-inverse-clair);
}

@media (max-width: 480px) {
    .ajm-cadrage__etiquette {
        flex-direction: column;
        gap: 6px;
        padding: 22px 20px;
    }
    .ajm-cadrage__etiquette-ancien {
        text-align: center;
    }
    .ajm-cadrage__etiquette-nouveau {
        font-size: 34px;
    }
}

.ajm-cadrage__grille {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: var(--ajm-espace-4);
    align-items: start;
    max-width: 1080px;
    margin: 0 auto;
}

.ajm-cadrage__etapes {
    display: flex;
    flex-direction: column;
    gap: var(--ajm-espace-2);
}

.ajm-cadrage__etape {
    display: flex;
    gap: var(--ajm-espace-2);
}

.ajm-cadrage__etape-numero {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    background: var(--ajm-couleur-accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
}

.ajm-cadrage__etape-corps {
    flex: 1;
    background: var(--ajm-surface-card);
    border-radius: 14px;
    padding: 18px 22px;
}

.ajm-cadrage__etape-corps h3 {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
}

.ajm-cadrage__etape-corps p {
    margin: 0;
    font-size: 14px;
    color: var(--ajm-couleur-texte-clair);
    line-height: 1.55;
}

.ajm-cadrage__dossier {
    background: var(--ajm-surface-card);
    border-radius: var(--ajm-rayon-lg);
    padding: var(--ajm-espace-4) var(--ajm-espace-3);
    box-shadow: var(--ajm-ombre);
    position: sticky;
    top: calc(var(--ajm-header-hauteur) + var(--ajm-espace-2));
}

.ajm-cadrage__dossier h3 {
    font-family: var(--ajm-police-display);
    font-size: 22px;
    color: var(--ajm-couleur-texte);
    margin: 0 0 var(--ajm-espace-2);
}

.ajm-liste-livrables {
    margin: 0 0 28px;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ajm-liste-livrables li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-liste-livrables .ph-light {
    font-size: 16px;
    color: var(--ajm-couleur-accent);
}

.ajm-cadrage__note {
    text-align: center;
    font-size: 12px;
    color: var(--ajm-couleur-texte-clair);
    margin: 12px 0 0;
}

@media (max-width: 900px) {
    .ajm-cadrage__grille {
        grid-template-columns: 1fr;
    }
    .ajm-cadrage__dossier {
        position: static;
    }
}

/* ---------- Formules ---------- */
.ajm-formules__grille {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--ajm-espace-3);
    align-items: stretch;
}

.ajm-carte-formule {
    background: var(--ajm-surface-card);
    border: 1px solid var(--ajm-couleur-bordure);
    border-radius: var(--ajm-rayon-lg);
    padding: 36px 32px;
    box-shadow: var(--ajm-ombre);
    display: flex;
    flex-direction: column;
    gap: 18px;
    position: relative;
    transition: transform .2s ease, box-shadow .2s ease;
}

.ajm-carte-formule--mise-en-avant {
    border: 2px solid var(--ajm-couleur-accent);
}

.ajm-carte-formule:hover {
    transform: translateY(-6px);
    box-shadow: var(--ajm-ombre-hover);
}

.ajm-carte-formule__badge {
    position: absolute;
    top: -13px;
    left: 32px;
    background: var(--ajm-couleur-accent);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 999px;
}

.ajm-carte-formule h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
}

.ajm-carte-formule__prix-label {
    font-size: 12px;
    color: var(--ajm-couleur-texte-clair);
    display: block;
}

.ajm-carte-formule__prix {
    font-family: var(--ajm-police-display);
    font-size: 26px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
}

.ajm-carte-formule__pitch {
    margin: 0;
    font-size: 14px;
    color: var(--ajm-couleur-texte-clair);
    line-height: 1.5;
}

.ajm-carte-formule__separateur {
    height: 1px;
    background: var(--ajm-couleur-bordure);
}

.ajm-carte-formule__modules {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.ajm-carte-formule__modules li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-carte-formule__modules .ph-light {
    font-size: 16px;
    color: var(--ajm-couleur-accent);
    margin-top: 1px;
    flex-shrink: 0;
}

.ajm-carte-formule__lien {
    font-weight: 600;
    font-size: 14px;
}

.ajm-comparator-toggle-wrap {
    text-align: center;
    margin-top: 40px;
}

.ajm-comparator-toggle__label-ouvert {
    display: none;
}

.ajm-comparator-toggle.is-open .ajm-comparator-toggle__label-ferme {
    display: none;
}

.ajm-comparator-toggle.is-open .ajm-comparator-toggle__label-ouvert {
    display: inline;
}

.ajm-comparator {
    display: none;
    margin-top: var(--ajm-espace-4);
}

.ajm-comparator.is-open {
    display: block;
}

.ajm-comparator-table {
    overflow-x: auto;
}

.ajm-comparator-table__grille {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    min-width: 560px;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--ajm-ombre);
}

.ajm-comparator-table__entete {
    background: var(--ajm-surface-page-alt);
    color: var(--ajm-couleur-texte-inverse);
    padding: 14px 16px;
    font-weight: 600;
    font-size: 13px;
}

.ajm-comparator-table__entete--centre {
    text-align: center;
}

.ajm-comparator-table__cellule {
    background: var(--ajm-surface-card);
    padding: 12px 16px;
    font-size: 13.5px;
    color: var(--ajm-couleur-texte);
    border-top: 1px solid var(--ajm-couleur-bordure);
}

.ajm-comparator-table__cellule--centre {
    text-align: center;
}

.ajm-comparator-table__pastille {
    display: inline-flex;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    align-items: center;
    justify-content: center;
}

.ajm-comparator-accordion {
    display: none;
}

.ajm-comparator-accordion__ligne {
    background: var(--ajm-surface-card);
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 8px;
}

.ajm-comparator-accordion__titre {
    font-size: 14px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
    margin-bottom: 10px;
}

.ajm-comparator-accordion__valeurs {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: var(--ajm-couleur-texte-clair);
}

@media (max-width: 760px) {
    .ajm-comparator-table { display: none; }
    .ajm-comparator-accordion { display: block; }
}

.ajm-formules__cta {
    background: linear-gradient(135deg, var(--ajm-copper-500), var(--ajm-copper-600));
    border-radius: 18px;
    padding: var(--ajm-espace-3) var(--ajm-espace-4);
    margin-top: var(--ajm-espace-4);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.ajm-formules__cta-titre {
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    margin-bottom: 4px;
}

.ajm-formules__cta-texte {
    margin: 0;
    font-size: 13.5px;
    color: rgba(255, 255, 255, .9);
}

.ajm-formules__cta-lien {
    flex-shrink: 0;
    background: #fff;
    color: var(--ajm-copper-600);
    font-weight: 600;
    font-size: 14px;
    padding: 12px 24px;
    border-radius: 999px;
}

/* ---------- Sérénité ---------- */
.ajm-serenite__grille {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--ajm-espace-3);
    margin-bottom: var(--ajm-espace-4);
}

.ajm-carte-serenite {
    background: rgba(244, 239, 230, .06);
    border: 1px solid rgba(244, 239, 230, .18);
    border-radius: 18px;
    padding: 28px;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: transform .2s ease;
}

.ajm-carte-serenite--mise-en-avant {
    background: var(--ajm-couleur-accent);
    border-color: transparent;
}

.ajm-carte-serenite:hover {
    transform: translateY(-6px);
}

.ajm-carte-serenite__badge {
    position: absolute;
    top: -12px;
    left: 24px;
    background: var(--ajm-couleur-texte-inverse);
    color: var(--ajm-navy-900);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 999px;
}

.ajm-carte-serenite h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--ajm-couleur-texte-inverse);
}

.ajm-carte-serenite__prix {
    font-family: var(--ajm-police-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--ajm-couleur-texte-inverse);
}

.ajm-carte-serenite__cible {
    font-size: 12px;
    color: rgba(244, 239, 230, .75);
}

.ajm-carte-serenite__inclus {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ajm-carte-serenite__inclus li {
    font-size: 13px;
    color: rgba(244, 239, 230, .85);
    display: flex;
    gap: 6px;
}

.ajm-carte-serenite__inclus .ph-light {
    flex-shrink: 0;
}

.ajm-serenite__encart {
    background: rgba(244, 239, 230, .08);
    border-radius: 16px;
    padding: var(--ajm-espace-3);
    max-width: 560px;
    margin: 0 auto;
    text-align: center;
}

.ajm-serenite__encart-titre {
    font-size: 15px;
    font-weight: 700;
    color: var(--ajm-couleur-texte-inverse);
    margin-bottom: 6px;
}

.ajm-serenite__encart-texte {
    margin: 0;
    font-size: 13.5px;
    color: rgba(244, 239, 230, .8);
    line-height: 1.5;
}

/* ---------- Pourquoi ---------- */
.ajm-raisons__grille {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--ajm-espace-3);
}

.ajm-raison {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.ajm-raison .ph-light {
    font-size: 32px;
    color: var(--ajm-couleur-accent);
}

.ajm-raison h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
}

.ajm-raison span {
    font-size: 13px;
    color: var(--ajm-couleur-texte-clair);
}

/* ---------- Réalisations ---------- */
.ajm-realisations__liste {
    display: flex;
    flex-direction: column;
    gap: var(--ajm-espace-3);
}

.ajm-carte-realisation {
    background: var(--ajm-surface-card);
    border-radius: var(--ajm-rayon-lg);
    box-shadow: var(--ajm-ombre);
    display: grid;
    grid-template-columns: minmax(0, 260px) 1fr;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}

.ajm-carte-realisation:hover {
    transform: translateY(-6px);
    box-shadow: var(--ajm-ombre-hover);
}

.ajm-carte-realisation__visuel {
    background: var(--ajm-surface-card-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    overflow: hidden;
}

.ajm-carte-realisation__visuel .ph-light {
    font-size: 32px;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-carte-realisation__visuel a {
    display: block;
    width: 100%;
    height: 100%;
}

.ajm-carte-realisation__visuel img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 180px;
    object-fit: cover;
    transition: transform .3s ease;
}

.ajm-carte-realisation__visuel a:hover img {
    transform: scale(1.04);
}

.ajm-carte-realisation__corps {
    padding: 28px;
}

.ajm-carte-realisation__entete {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.ajm-carte-realisation__client {
    font-weight: 600;
    font-size: 16px;
    color: var(--ajm-couleur-texte);
}

.ajm-carte-realisation__secteur {
    font-size: 12px;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-carte-realisation__corps p {
    margin: 0 0 8px;
    font-size: 13.5px;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-carte-realisation__corps p strong {
    color: var(--ajm-couleur-texte);
}

.ajm-carte-realisation__modules {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ajm-carte-realisation__modules span {
    font-size: 11px;
    font-weight: 600;
    color: var(--ajm-couleur-accent);
    background: rgba(193, 127, 78, .12);
    padding: 4px 10px;
    border-radius: 999px;
}

@media (max-width: 640px) {
    .ajm-carte-realisation {
        grid-template-columns: 1fr;
    }
}

/* ---------- ROI ---------- */
.ajm-roi {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

.ajm-roi__sous-titre {
    font-family: var(--ajm-police-display);
    font-style: italic;
    font-size: 18px;
    color: var(--ajm-couleur-accent);
    margin: 0 0 40px;
}

.ajm-roi__chaine {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.ajm-roi__etape {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ajm-roi__carte {
    background: var(--ajm-surface-page-alt);
    border-radius: 16px;
    padding: 20px 24px;
    min-width: 130px;
}

.ajm-roi__valeur {
    font-family: var(--ajm-police-display);
    font-size: 24px;
    font-weight: 600;
}

.ajm-roi__label {
    font-size: 12px;
    color: rgba(244, 239, 230, .75);
}

.ajm-roi__fleche {
    font-size: 20px;
    color: var(--ajm-couleur-accent);
}

/* ---------- Pour qui ---------- */
.ajm-pourqui__pastilles {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-bottom: var(--ajm-espace-5);
}

.ajm-pourqui__pastilles span {
    border: 1px solid rgba(244, 239, 230, .25);
    background: rgba(244, 239, 230, .06);
    border-radius: 999px;
    padding: 10px 20px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--ajm-couleur-texte-inverse);
}

.ajm-pourqui__carte {
    max-width: 560px;
    margin: 0 auto;
    background: var(--ajm-surface-card);
    border-radius: 18px;
    padding: var(--ajm-espace-4);
}

.ajm-pourqui__carte h3 {
    margin: 0 0 var(--ajm-espace-2);
    font-size: 17px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
}

.ajm-pourqui__checklist {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ajm-pourqui__checklist li {
    display: flex;
    gap: 10px;
    font-size: 14px;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-pourqui__checklist .ph-light {
    color: var(--ajm-couleur-accent);
    flex-shrink: 0;
}

/* ---------- Avis Google (Lot 11) — maquette validée :
   https://claude.ai/artifact/X5RpTRSZYpodfFKEL37Y45 ---------- */
.ajm-etoiles {
    display: inline-flex;
    letter-spacing: 1px;
}

.ajm-etoiles__pleines {
    color: #F2B84B;
}

.ajm-etoiles__vides {
    color: var(--ajm-couleur-bordure);
}

/* Lot 15 (18/09/2026) — bandeau de confiance à côté du titre, remplace
   l'ancien bloc .ajm-avis__note-globale centré au-dessus de la grille. */
.ajm-avis__entete-section {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-bottom: var(--ajm-espace-5);
}

.ajm-avis__intro {
    max-width: 480px;
}

.ajm-avis__badge-confiance {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--ajm-surface-card);
    border: 1px solid var(--ajm-couleur-bordure);
    border-radius: 999px;
    padding: 10px 22px 10px 14px;
    box-shadow: var(--ajm-ombre);
    flex-shrink: 0;
}

.ajm-avis__badge-rond {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--ajm-copper-500);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--ajm-police-display);
    font-weight: 600;
    font-size: 15px;
    flex-shrink: 0;
}

.ajm-avis__badge-confiance .ajm-etoiles {
    font-size: 14px;
}

.ajm-avis__badge-detail {
    font-size: 12.5px;
    color: var(--ajm-couleur-texte-clair);
    margin-top: 2px;
}

.ajm-avis__badge-detail a {
    color: inherit;
    text-decoration: underline;
}

@media (max-width: 640px) {
    .ajm-avis__entete-section {
        flex-direction: column;
        align-items: flex-start;
    }

    .ajm-avis__badge-confiance {
        align-self: stretch;
        justify-content: center;
    }
}

.ajm-avis__note-globale {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin-bottom: var(--ajm-espace-6);
}

.ajm-avis__note-valeur {
    font-family: var(--ajm-police-display);
    font-weight: 600;
    font-size: 44px;
    color: var(--ajm-couleur-texte);
    line-height: 1;
}

.ajm-avis__note-globale .ajm-etoiles {
    font-size: 20px;
}

.ajm-avis__note-detail {
    font-size: 14px;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-avis__lien-google,
.ajm-avis__lien-avis {
    font-size: 13px;
    color: var(--ajm-couleur-accent-hover);
    font-weight: 600;
}

.ajm-avis__grille {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ajm-espace-3);
}

.ajm-avis__carte--supplementaire {
    display: none;
}

.ajm-avis__grille.is-open .ajm-avis__carte--supplementaire {
    display: flex;
}

.ajm-avis__carte {
    background: var(--ajm-surface-card);
    border: 1px solid var(--ajm-couleur-bordure);
    border-radius: 14px;
    padding: var(--ajm-espace-3);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ajm-avis__entete {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ajm-avis__avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: var(--ajm-police-display);
    font-weight: 600;
    font-size: 16px;
    flex-shrink: 0;
}

.ajm-avis__identite-nom {
    font-weight: 600;
    font-size: 14.5px;
    color: var(--ajm-couleur-texte);
}

.ajm-avis__identite-date {
    font-size: 12px;
    color: var(--ajm-couleur-texte-clair);
    text-transform: capitalize;
}

.ajm-avis__texte {
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--ajm-couleur-texte);
    margin: 0;
}

.ajm-avis__lien-avis {
    margin-top: auto;
    padding-top: 4px;
}

.ajm-avis__voir-plus-zone {
    text-align: center;
    margin-top: var(--ajm-espace-4);
}

.ajm-avis__voir-plus-ouvert {
    display: none;
}

.ajm-avis__voir-plus.is-open .ajm-avis__voir-plus-ferme {
    display: none;
}

.ajm-avis__voir-plus.is-open .ajm-avis__voir-plus-ouvert {
    display: inline;
}

.ajm-avis__cta {
    text-align: center;
    margin-top: var(--ajm-espace-6);
}

.ajm-avis__cta p {
    font-size: 14px;
    color: var(--ajm-couleur-texte-clair);
    margin: 0 0 14px;
}

@media (max-width: 900px) {
    .ajm-avis__grille {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .ajm-avis__grille {
        grid-template-columns: 1fr;
    }
}

/* ---------- FAQ ---------- */
.ajm-faq {
    max-width: 820px;
    margin: 0 auto;
}

.ajm-faq__liste {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ajm-faq__item {
    background: var(--ajm-surface-card);
    border-radius: 14px;
    box-shadow: var(--ajm-ombre);
    overflow: hidden;
}

.ajm-faq__question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    cursor: pointer;
    padding: 20px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    font-size: 15.5px;
    font-weight: 600;
    color: var(--ajm-couleur-texte);
    font-family: inherit;
    list-style: none;
}

.ajm-faq__question::-webkit-details-marker {
    display: none;
}

.ajm-faq__question .ph-light {
    font-size: 18px;
    color: var(--ajm-couleur-accent);
    flex-shrink: 0;
}

.ajm-faq__icone-moins {
    display: none;
}

.ajm-faq__item[open] .ajm-faq__icone-plus {
    display: none;
}

.ajm-faq__item[open] .ajm-faq__icone-moins {
    display: inline-block;
}

.ajm-faq__reponse {
    margin: 0;
    padding: 0 24px 20px;
    font-size: 14.5px;
    color: var(--ajm-couleur-texte-clair);
    line-height: 1.6;
}

/* ---------- Contact ---------- */
.ajm-contact__cadre {
    background: rgba(244, 239, 230, .06);
    border: 1px solid rgba(244, 239, 230, .14);
    border-radius: var(--ajm-rayon-lg);
    padding: var(--ajm-espace-5);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
    gap: var(--ajm-espace-5);
}

@media (max-width: 600px) {
    .ajm-contact__cadre {
        padding: var(--ajm-espace-3) var(--ajm-espace-2);
        gap: var(--ajm-espace-4);
    }
}

.ajm-contact__accroche {
    font-family: var(--ajm-police-display);
    font-size: 28px;
    font-weight: 600;
    color: var(--ajm-couleur-texte-inverse);
    margin: 0 0 12px;
    line-height: 1.3;
}

.ajm-contact__texte {
    color: var(--ajm-couleur-texte-inverse-clair);
    font-size: 15px;
    margin: 0 0 var(--ajm-espace-4);
    line-height: 1.55;
}

.ajm-contact__coordonnees {
    display: flex;
    flex-direction: column;
    gap: 14px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.ajm-contact__coordonnees li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--ajm-couleur-texte-inverse-clair);
    font-size: 15px;
}

.ajm-contact__coordonnees .ph-light {
    font-size: 20px;
    color: var(--ajm-copper-300);
}

.ajm-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ajm-form__ligne {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
}

@media (max-width: 480px) {
    .ajm-form__ligne {
        grid-template-columns: 1fr;
    }
}

.ajm-input,
.ajm-form select,
.ajm-form textarea {
    width: 100%;
    min-width: 0;
    padding: 14px 16px;
    border-radius: var(--ajm-rayon);
    border: 1px solid var(--ajm-couleur-bordure);
    font-size: 15px;
    font-family: inherit;
    background: var(--ajm-surface-card-alt);
    color: var(--ajm-couleur-texte);
}

.ajm-form textarea {
    resize: vertical;
}

.ajm-form__submit {
    padding: 14px 28px;
    border-radius: 999px;
    border: none;
    background: var(--ajm-couleur-accent);
    color: #fff;
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
}

.ajm-form__submit:hover {
    background: var(--ajm-couleur-accent-hover);
}

.ajm-form__note {
    text-align: center;
    font-size: 12px;
    color: var(--ajm-couleur-texte-inverse-clair);
}

.ajm-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ---------- Devis client — refonte "proposition commerciale" du 26/09/2026
   (maquette n°3 : https://claude.ai/artifact/MAFB8aDrhqYvCc36t1zQ4N).
   Remplace .ajm-devis-doc__table/__recap/__total-pill et
   .ajm-devis-consentement (retirées, plus utilisées par devis.php) par une
   mise en page à deux colonnes : le récit à gauche, la décision (prix +
   CGV + boutons) dans une carte sombre toujours visible à droite. ---------- */
.ajm-devis-offre {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: var(--ajm-espace-3);
    align-items: start;
}

.ajm-devis-offre__gauche {
    background: var(--ajm-surface-card);
    border-radius: var(--ajm-rayon-lg);
    box-shadow: var(--ajm-ombre);
    padding: var(--ajm-espace-4);
}

.ajm-devis-offre__eyebrow {
    font-family: var(--ajm-police-nav);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ajm-couleur-accent-hover);
}

.ajm-devis-offre__titre {
    font-family: var(--ajm-police-display);
    font-size: 22px;
    margin: 8px 0 var(--ajm-espace-3);
}

.ajm-devis-offre__item {
    display: flex;
    gap: 12px;
    margin-bottom: var(--ajm-espace-3);
}

.ajm-devis-offre__item:last-child {
    margin-bottom: 0;
}

.ajm-devis-offre__item-puce {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ajm-couleur-accent);
    margin-top: 7px;
    flex-shrink: 0;
}

.ajm-devis-offre__item-titre {
    font-weight: 600;
    font-size: 15px;
}

.ajm-devis-offre__item-texte {
    font-size: 13.5px;
    color: var(--ajm-couleur-texte-clair);
    margin-top: 3px;
}

.ajm-devis-offre__droite {
    background: var(--ajm-navy-900);
    color: var(--ajm-couleur-texte-inverse);
    border-radius: var(--ajm-rayon-lg);
    box-shadow: var(--ajm-ombre);
    padding: var(--ajm-espace-4);
    position: sticky;
    top: var(--ajm-espace-3);
}

.ajm-devis-offre__label {
    font-family: var(--ajm-police-nav);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ajm-couleur-texte-inverse-clair);
    margin-bottom: 6px;
}

.ajm-devis-offre__prix {
    font-family: var(--ajm-police-display);
    font-size: 32px;
    margin-bottom: var(--ajm-espace-3);
}

.ajm-devis-offre__ligne {
    display: flex;
    justify-content: space-between;
    font-size: 12.5px;
    color: var(--ajm-couleur-texte-inverse-clair);
    padding: 7px 0;
    border-top: 1px solid rgba(244, 239, 230, .15);
}

.ajm-devis-offre__ligne:first-child {
    border-top: none;
}

.ajm-devis-offre__ligne--remise {
    color: var(--ajm-copper-300);
}

.ajm-devis-offre__mention {
    font-size: 11.5px;
    color: var(--ajm-couleur-texte-inverse-clair);
    margin-top: var(--ajm-espace-2);
}

.ajm-devis-offre__mention a {
    color: var(--ajm-couleur-texte-inverse);
}

.ajm-devis-offre__cgv {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    color: var(--ajm-couleur-texte-inverse-clair);
    margin-top: var(--ajm-espace-3);
}

.ajm-devis-offre__cgv input {
    margin-top: 3px;
}

.ajm-devis-offre__cgv a {
    color: var(--ajm-couleur-texte-inverse);
}

.ajm-devis-offre__actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: var(--ajm-espace-3);
}

.ajm-devis-offre__actions .ajm-btn {
    width: 100%;
}

@media (max-width: 760px) {
    .ajm-devis-offre {
        grid-template-columns: 1fr;
    }

    .ajm-devis-offre__droite {
        position: static;
    }
}

/* ---------- Rendez-vous client (rdv.php, refonte du 26/09/2026 — gabarit
   "bandeau + billet", maquette n°1 : https://claude.ai/artifact/3T4MmpsUCUCwaQU9zyjNPj).
   Reprend les mêmes classes de structure que .ajm-devis-doc (mêmes tokens),
   dupliquées plutôt que partagées : les deux documents divergent déjà sur
   le bloc date, et coupler les deux empêcherait l'un d'évoluer sans risquer
   de casser l'autre. ---------- */
.ajm-rdv-doc {
    border-radius: var(--ajm-rayon-lg);
    overflow: hidden;
    box-shadow: var(--ajm-ombre);
    margin-bottom: var(--ajm-espace-3);
}

.ajm-rdv-doc__bandeau {
    background: var(--ajm-navy-900);
    padding: var(--ajm-espace-4);
}

.ajm-rdv-doc__eyebrow {
    font-family: var(--ajm-police-nav);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ajm-couleur-texte-inverse-clair);
}

.ajm-rdv-doc__salut {
    font-size: 14px;
    color: var(--ajm-couleur-texte-inverse-clair);
    margin-top: 10px;
}

.ajm-rdv-doc__titre {
    font-family: var(--ajm-police-display);
    color: var(--ajm-white);
    font-size: 24px;
    margin-top: 4px;
}

.ajm-rdv-doc__corps {
    background: var(--ajm-surface-card);
    padding: var(--ajm-espace-4);
}

.ajm-rdv-doc__date-bloc {
    display: flex;
    gap: var(--ajm-espace-3);
    align-items: center;
    padding-bottom: var(--ajm-espace-3);
    margin-bottom: var(--ajm-espace-3);
    border-bottom: 1px dashed var(--ajm-couleur-bordure);
}

.ajm-rdv-doc__date-chiffre {
    font-family: var(--ajm-police-display);
    font-size: 40px;
    font-weight: 600;
    color: var(--ajm-couleur-accent-hover);
    line-height: 1;
}

.ajm-rdv-doc__date-mois {
    font-family: var(--ajm-police-nav);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ajm-couleur-texte-clair);
    margin-top: 2px;
}

.ajm-rdv-doc__date-detail {
    font-size: 16px;
    font-weight: 600;
}

.ajm-rdv-doc__date-sous {
    font-size: 13px;
    color: var(--ajm-couleur-texte-clair);
    margin-top: 2px;
}

.ajm-rdv-doc__ligne {
    font-size: 14px;
    color: var(--ajm-couleur-texte-clair);
}

.ajm-rdv-doc__ligne strong {
    color: var(--ajm-couleur-texte);
}

.ajm-alert {
    padding: var(--ajm-espace-3);
    border-radius: var(--ajm-rayon);
    font-size: 15px;
}

.ajm-alert--succes {
    /* Piège vécu et corrigé le 18/09/2026 : ce bloc utilise des couleurs de
       texte "inverse" (claires), pensées pour un fond sombre — correct sur
       index.php où il s'affiche dans la section Contact (déjà sombre), mais
       illisible sur devis.php/rdv.php où la section environnante est claire.
       Fond navy uni ajouté ici pour rendre le bloc autonome et lisible
       partout, plutôt que de dépendre de la section qui l'entoure. */
    background: var(--ajm-navy-900);
    border: 1px solid var(--ajm-navy-700);
    border-radius: var(--ajm-rayon-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 14px;
    padding: var(--ajm-espace-5) var(--ajm-espace-4);
    min-height: 280px;
    height: 100%;
}

.ajm-alert--succes .ph-light {
    font-size: 44px;
    color: var(--ajm-copper-300);
}

.ajm-alert__titre {
    font-family: var(--ajm-police-display);
    font-size: 22px;
    font-weight: 600;
    color: var(--ajm-couleur-texte-inverse);
    margin: 0;
}

.ajm-alert__texte {
    font-size: 15px;
    color: var(--ajm-couleur-texte-inverse-clair);
    margin: 0;
    max-width: 320px;
    line-height: 1.5;
}

.ajm-alert--erreur {
    background: #fef2f2;
    border: 1px solid #fecaca;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
}

.ajm-alert--erreur .ajm-alert__texte {
    color: #991b1b;
    max-width: none;
}

/* ---------- Footer ---------- */
.ajm-footer {
    background: #fff;
    color: var(--ajm-couleur-accent);
    padding: 56px var(--ajm-espace-4) var(--ajm-espace-4);
    border-top: 1px solid var(--ajm-couleur-bordure);
}

.ajm-footer__inner {
    width: 100%;
    max-width: var(--ajm-largeur-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.1fr 1fr 1fr;
    grid-template-areas: "marque nav legal";
    gap: var(--ajm-espace-5);
    text-align: left;
}

.ajm-footer__col {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.ajm-footer__col--marque {
    grid-area: marque;
}

.ajm-footer__col--nav {
    grid-area: nav;
}

.ajm-footer__col--legal {
    grid-area: legal;
}

.ajm-footer__col-titre {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ajm-couleur-accent);
    margin-bottom: 4px;
}

.ajm-footer__logo {
    height: 90px;
    object-fit: contain;
    margin-bottom: 4px;
}

.ajm-footer__baseline {
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ajm-couleur-accent);
    display: block;
    font-weight: 600;
}

.ajm-footer__sous-baseline {
    font-size: 13px;
    color: var(--ajm-couleur-accent);
    opacity: .8;
}

.ajm-footer__nav {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.ajm-footer__nav a {
    color: var(--ajm-couleur-accent);
    font-size: 13.5px;
}

/* Navigation du footer (9 ancres) répartie en 2 colonnes pour réduire la
   hauteur de cette colonne — ordre de lecture naturel conservé dans le DOM
   (accessibilité) : grid-auto-flow:column avec 5 lignes explicites place
   les 5 premiers liens dans la 1re colonne, les 4 suivants dans la 2e,
   sans avoir à réordonner le HTML. */
.ajm-footer__nav--split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(5, auto);
    grid-auto-flow: column;
    column-gap: var(--ajm-espace-3);
    row-gap: 8px;
}

.ajm-footer__reseaux {
    display: flex;
    gap: 20px;
    font-size: 19px;
    color: var(--ajm-couleur-accent);
    margin-top: 6px;
}

.ajm-footer__copyright {
    font-size: 12px;
    color: var(--ajm-couleur-accent);
    opacity: .7;
    margin-top: 6px;
}

/* Tablette : la marque passe en pleine largeur au-dessus, navigation et
   informations légales se partagent la largeur en dessous — à 3 colonnes
   pleines, chaque sous-colonne de navigation serait trop étroite pour des
   mots comme "Réalisations". */
@media (max-width: 1023px) {
    .ajm-footer__inner {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "marque marque"
            "nav legal";
    }

    .ajm-footer__col--marque {
        text-align: center;
        align-items: center;
    }

    .ajm-footer__col--marque .ajm-footer__logo {
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 700px) {
    .ajm-footer__inner {
        grid-template-columns: 1fr;
        grid-template-areas:
            "marque"
            "nav"
            "legal";
        text-align: center;
        gap: var(--ajm-espace-4);
    }

    .ajm-footer__col {
        align-items: center;
    }

    .ajm-footer__nav--split {
        justify-content: center;
    }

    .ajm-footer__reseaux {
        justify-content: center;
    }
}

/* ---------- Pages simples (mentions légales, confidentialité) ---------- */
.ajm-page-intro {
    padding-block: var(--ajm-espace-6) var(--ajm-espace-2);
}

/* Pages sans nav légale avant .ajm-page-intro (rdv.php, devis.php) : rien
   ne compense le header fixe (--ajm-header-hauteur) comme le fait
   .ajm-legal-nav sur les pages légales — sans ce padding-top additionnel,
   le titre se retrouve masqué sous le header. */
.ajm-page-intro--isolee {
    padding-top: calc(var(--ajm-header-hauteur) + var(--ajm-espace-6));
}

.ajm-legal-nav {
    margin-top: var(--ajm-header-hauteur);
    background: var(--ajm-surface-card-alt);
    border-bottom: 1px solid var(--ajm-couleur-bordure);
    display: flex;
    justify-content: center;
    gap: var(--ajm-espace-4);
    padding: 14px var(--ajm-espace-2);
    flex-wrap: wrap;
}

.ajm-legal-nav a {
    font-size: 13px;
    font-weight: 600;
    color: var(--ajm-couleur-texte-clair);
    padding-bottom: 4px;
    border-bottom: 2px solid transparent;
}

.ajm-legal-nav a.is-active {
    color: var(--ajm-couleur-accent);
    border-bottom-color: var(--ajm-couleur-accent);
}

.ajm-page-section {
    padding-block: var(--ajm-espace-2);
}

.ajm-page-section h2 {
    font-family: var(--ajm-police-display);
    font-size: 20px;
    color: var(--ajm-couleur-texte);
}

.ajm-a-completer {
    color: var(--ajm-couleur-texte-clair);
    font-style: italic;
}

/* --- Desktop nav (>= 1040px) --- */
@media (min-width: 1040px) {
    .ajm-header__inner {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
    }

    .ajm-header__logo {
        justify-self: start;
    }

    .ajm-header__burger {
        display: none;
    }

    .ajm-nav {
        justify-self: center;
        display: flex;
        position: static;
        max-height: none;
        overflow: visible;
        background: none;
        border: none;
        box-shadow: none;
        flex-direction: row;
        align-items: center;
        gap: 20px;
        padding: 0;
        width: auto;
    }

    .ajm-nav a {
        font-size: 13.5px;
        letter-spacing: .01em;
        padding-bottom: 6px;
        border-bottom: 2px solid transparent;
        white-space: nowrap;
    }

    .ajm-nav a.is-active:not(.ajm-nav__cta) {
        color: var(--ajm-couleur-accent);
        border-bottom-color: var(--ajm-couleur-accent);
    }

    .ajm-nav__cta {
        margin-top: 0;
        width: auto;
    }
}
