/* ══════════════════════════════════════════════
       HERO
    ══════════════════════════════════════════════ */
    .est1-hero {
      position: relative;
      min-height: calc(92vh + var(--nav-h));
      display: flex; align-items: flex-end;
      padding-bottom: 80px;
      overflow: hidden;
    }
    .est1-hero-bg { position: absolute; inset: 0; background: var(--navy); }
    .est1-hero-bg img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: center 40%;
      filter: brightness(.56) saturate(1.08);
    }
    .est1-hero-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(175deg, rgba(35,44,63,.55) 0%, rgba(35,44,63,.06) 35%, rgba(35,44,63,.93) 100%);
    }
    .est1-hero-inner { position: relative; z-index: 2; width: 100%; padding-top: 90px; }
    .est1-hero-eyebrow {
      font-size: .75rem; letter-spacing: .22em;
      text-transform: uppercase; color: var(--bronze-lt);
      font-weight: 600; margin-bottom: 22px;
      display: flex; align-items: center; gap: 16px;
    }
    .est1-hero-eyebrow::before { content: ''; width: 32px; height: 1px; background: var(--bronze-lt); }
    .est1-hero h1 {
      color: var(--white);
      font-size: clamp(2.5rem, 5.5vw, 5rem);
      line-height: .98; letter-spacing: -.03em;
      max-width: 900px;
    }
    .est1-hero h1 em { color: var(--white); font-style: italic; }
    .est1-hero-lead {
      margin-top: 28px;
      font-size: 1.125rem; line-height: 1.65;
      color: rgba(255,255,255,.82);
      max-width: 620px;
    }
    .est1-hero-actions { margin-top: 36px; display: flex; gap: 14px; flex-wrap: wrap; }
    .est1-hero-bar {
      margin-top: 52px;
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 28px;
      border-top: 1px solid rgba(255,255,255,.14);
      padding-top: 32px;
    }
    .est1-hero-stat-num {
      font-family: var(--font-serif);
      font-size: clamp(1.8rem, 3vw, 2.6rem);
      color: var(--white); line-height: 1;
    }
    .est1-hero-stat-label {
      margin-top: 8px;
      font-size: .75rem; letter-spacing: .04em;
      color: rgba(255,255,255,.6); line-height: 1.4;
    }

    /* ══════════════════════════════════════════════
       TOC STICKY
    ══════════════════════════════════════════════ */
    .est1-toc {
      position: sticky; top: var(--nav-actual-h, var(--nav-h)); z-index: 40;
      background: var(--white);
      border-bottom: 1px solid var(--border);
      box-shadow: 0 1px 0 rgba(35,44,63,.04);
    }
    .est1-toc-inner {
      display: flex; gap: 4px;
      overflow-x: auto; scrollbar-width: none;
      padding: 4px 0;
    }
    .est1-toc-inner::-webkit-scrollbar { display: none; }
    .est1-toc-inner a {
      flex: 0 0 auto;
      padding: 12px 18px;
      font-size: .8125rem; font-weight: 500;
      color: var(--navy-mid); text-decoration: none;
      white-space: nowrap;
      border-bottom: 2px solid transparent;
      transition: color .2s, border-color .2s;
    }
    .est1-toc-inner a:hover { color: var(--bronze); }
    .est1-toc-inner a.is-active { color: var(--bronze); border-bottom-color: var(--bronze); }

    /* ══════════════════════════════════════════════
       SECTIONS
    ══════════════════════════════════════════════ */
    .est1-section { padding: 92px 0; }
    .est1-section.alt { background: var(--off-white); }
    .est1-section.dark { background: var(--navy); }
    .est1-section-head { max-width: 720px; margin-bottom: 52px; }
    .est1-section-head .eyebrow {
      font-size: .6875rem; letter-spacing: .2em;
      text-transform: uppercase; color: var(--bronze);
      font-weight: 600;
    }
    .est1-section-head hr.divider {
      width: 48px; height: 2px; background: var(--bronze);
      border: 0; margin: 18px 0 22px;
    }
    .est1-section-head h2 {
      font-family: var(--font-serif);
      font-size: clamp(2rem, 3.6vw, 3rem);
      color: var(--navy); line-height: 1.12;
    }
    .est1-section-head h2 em { font-style: italic; color: var(--bronze-dk); }
    .est1-section-head p {
      margin-top: 18px;
      font-size: 1.0625rem; line-height: 1.75;
      color: var(--navy-mid);
    }
    .est1-section.dark .est1-section-head .eyebrow { color: var(--bronze-lt); }
    .est1-section.dark .est1-section-head h2 { color: var(--white); }
    .est1-section.dark .est1-section-head h2 em { color: var(--bronze-lt); }
    .est1-section.dark .est1-section-head p { color: rgba(255,255,255,.72); }

    /* ── Intro 2 colonnes ── */
    .est1-intro-grid {
      display: grid; grid-template-columns: 1fr .82fr;
      gap: 56px; align-items: center;
    }
    .est1-prose p {
      font-size: 1.0625rem; line-height: 1.8;
      color: var(--navy-mid); margin-bottom: 22px;
    }
    .est1-prose p:last-child { margin-bottom: 0; }
    .est1-prose p strong { color: var(--navy); font-weight: 600; }
    .est1-intro-figure {
      position: relative; margin: 0;
      border-radius: var(--radius-lg); overflow: hidden;
      aspect-ratio: 4 / 5;
      box-shadow: 0 30px 60px -22px rgba(35,44,63,.4);
    }
    .est1-intro-figure img {
      width: 100%; height: 100%; object-fit: cover;
      transition: transform .7s cubic-bezier(.4,0,.2,1);
    }
    .est1-intro-figure:hover img { transform: scale(1.05); }
    .est1-intro-figure figcaption {
      position: absolute; left: 0; right: 0; bottom: 0;
      padding: 30px 24px 20px;
      background: linear-gradient(to top, rgba(35,44,63,.95), rgba(35,44,63,0));
      color: var(--white); font-size: .82rem; line-height: 1.5;
    }
    .est1-intro-figure figcaption strong { color: var(--bronze-lt); font-weight: 600; }

    /* ── Critères de valeur (cards) ── */
    .est1-grid3 {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 22px;
    }
    .est1-card {
      background: rgba(255,255,255,.045);
      border: 1px solid rgba(255,255,255,.13);
      border-radius: var(--radius-lg);
      padding: 32px 28px;
      transition: box-shadow .25s, border-color .25s, transform .25s;
    }
    .est1-card:hover {
      box-shadow: 0 18px 40px rgba(0,0,0,.35);
      border-color: rgba(176,164,138,.5);
      transform: translateY(-3px);
    }
    .est1-card-ic {
      width: 46px; height: 46px;
      display: flex; align-items: center; justify-content: center;
      background: rgba(176,164,138,.14);
      border-radius: var(--radius);
      margin-bottom: 18px;
    }
    .est1-card h3 {
      font-family: var(--font-serif);
      font-size: 1.25rem; color: var(--white);
      margin-bottom: 10px; line-height: 1.25;
    }
    .est1-card p {
      font-size: .9375rem; line-height: 1.7;
      color: rgba(255,255,255,.74);
    }

    /* ── Étapes ── */
    .est1-steps {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 0;
    }
    .est1-step {
      padding: 0 26px;
      border-left: 1px solid var(--border-dk);
    }
    .est1-step:first-child { padding-left: 0; border-left: 0; }
    .est1-step-num {
      width: 44px; height: 44px;
      display: flex; align-items: center; justify-content: center;
      background: var(--navy); color: var(--white);
      font-family: var(--font-serif); font-size: 1.25rem;
      border-radius: 50%; margin-bottom: 20px;
    }
    .est1-step h3 {
      font-size: 1.0625rem; font-weight: 600;
      color: var(--navy); margin-bottom: 9px;
      letter-spacing: -.01em;
    }
    .est1-step p {
      font-size: .9rem; line-height: 1.65;
      color: var(--navy-mid);
    }
    .est1-step .est1-step-meta {
      margin-top: 12px;
      display: inline-block;
      font-size: .7rem; font-weight: 600; letter-spacing: .04em;
      text-transform: uppercase;
      color: var(--bronze-dk);
      background: var(--light-bg);
      border: 1px solid var(--border-dk);
      padding: 5px 11px; border-radius: 100px;
    }

    /* ── Comparatif ── */
    .est1-compare {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 22px; align-items: stretch;
    }
    .est1-compare-col {
      border-radius: var(--radius-lg);
      padding: 38px 34px;
    }
    .est1-compare-col.muted {
      background: var(--white);
      border: 1px solid var(--border);
    }
    .est1-compare-col.feature {
      background: var(--navy);
      position: relative; overflow: hidden;
    }
    .est1-compare-col.feature::after {
      content: ''; position: absolute;
      right: -100px; bottom: -130px;
      width: 360px; height: 360px; border-radius: 50%;
      background: radial-gradient(circle, rgba(127,112,89,.2), transparent 66%);
    }
    .est1-compare-tag {
      font-size: .6875rem; font-weight: 700;
      letter-spacing: .14em; text-transform: uppercase;
      margin-bottom: 8px;
    }
    .est1-compare-col.muted .est1-compare-tag { color: var(--slate); }
    .est1-compare-col.feature .est1-compare-tag { color: var(--bronze-lt); position: relative; z-index: 1; }
    .est1-compare-col h3 {
      font-family: var(--font-serif);
      font-size: 1.5rem; margin-bottom: 22px;
      position: relative; z-index: 1;
    }
    .est1-compare-col.muted h3 { color: var(--navy); }
    .est1-compare-col.feature h3 { color: var(--white); }
    .est1-compare-list { list-style: none; margin: 0; padding: 0; position: relative; z-index: 1; }
    .est1-compare-list li {
      display: flex; gap: 12px; align-items: flex-start;
      padding: 11px 0;
      font-size: .9375rem; line-height: 1.55;
    }
    .est1-compare-list li + li { border-top: 1px solid; }
    .est1-compare-col.muted .est1-compare-list li { color: var(--navy-mid); }
    .est1-compare-col.muted .est1-compare-list li + li { border-top-color: var(--border); }
    .est1-compare-col.feature .est1-compare-list li { color: rgba(255,255,255,.84); }
    .est1-compare-col.feature .est1-compare-list li + li { border-top-color: rgba(255,255,255,.1); }
    .est1-compare-ic { flex: 0 0 18px; margin-top: 2px; }

    /* ── Cartes quartiers ── */
    .est1-quartiers {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }
    .est1-q-card {
      position: relative; display: block;
      border-radius: var(--radius-lg); overflow: hidden;
      min-height: 280px; text-decoration: none;
      box-shadow: 0 14px 32px -16px rgba(35,44,63,.5);
    }
    .est1-q-card img {
      position: absolute; inset: 0;
      width: 100%; height: 100%; object-fit: cover;
      transition: transform .7s cubic-bezier(.4,0,.2,1);
    }
    .est1-q-card:hover img { transform: scale(1.07); }
    .est1-q-card::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(35,44,63,.96) 0%, rgba(35,44,63,.62) 42%, rgba(35,44,63,.12) 100%);
    }
    .est1-q-body { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 24px 22px; }
    .est1-q-name {
      font-size: .6875rem; letter-spacing: .16em;
      text-transform: uppercase; font-weight: 600; color: var(--bronze-lt);
    }
    .est1-q-price {
      font-family: var(--font-serif);
      font-size: 1.85rem; line-height: 1; color: var(--white);
      margin: 9px 0;
    }
    .est1-q-price small {
      font-family: var(--font-sans); font-size: .78rem;
      color: rgba(255,255,255,.65); font-weight: 400;
    }
    .est1-q-desc { font-size: .82rem; line-height: 1.5; color: rgba(255,255,255,.78); }

    /* ══════════════════════════════════════════════
       FORMULAIRE
    ══════════════════════════════════════════════ */
    .est1-form-wrap {
      display: grid; grid-template-columns: .9fr 1.1fr;
      gap: 0;
      border-radius: var(--radius-xl);
      overflow: hidden;
      box-shadow: 0 40px 80px -30px rgba(35,44,63,.5);
    }
    .est1-form-aside {
      background: var(--navy);
      padding: 52px 46px;
      position: relative; overflow: hidden;
    }
    .est1-form-aside::after {
      content: ''; position: absolute;
      left: -120px; top: -120px;
      width: 360px; height: 360px; border-radius: 50%;
      background: radial-gradient(circle, rgba(127,112,89,.18), transparent 66%);
    }
    .est1-form-aside-inner { position: relative; z-index: 1; }
    .est1-form-aside .eyebrow {
      font-size: .6875rem; letter-spacing: .2em;
      text-transform: uppercase; color: var(--bronze-lt); font-weight: 600;
    }
    .est1-form-aside h2 {
      font-family: var(--font-serif);
      font-size: clamp(1.7rem, 2.6vw, 2.3rem);
      color: var(--white); margin: 14px 0 18px; line-height: 1.15;
    }
    .est1-form-aside h2 em { font-style: italic; color: var(--bronze-lt); }
    .est1-form-aside > .est1-form-aside-inner > p {
      color: rgba(255,255,255,.74);
      font-size: .95rem; line-height: 1.7;
    }
    .est1-form-points { margin: 28px 0 0; list-style: none; padding: 0; }
    .est1-form-points li {
      display: flex; gap: 12px; align-items: flex-start;
      padding: 11px 0;
      color: rgba(255,255,255,.85); font-size: .9rem; line-height: 1.5;
      border-top: 1px solid rgba(255,255,255,.1);
    }
    .est1-form-points li:first-child { border-top: 0; }
    .est1-form-points svg { flex: 0 0 18px; margin-top: 1px; }
    .est1-form-aside-contact {
      margin-top: 30px; padding-top: 24px;
      border-top: 1px solid rgba(255,255,255,.12);
      color: rgba(255,255,255,.6); font-size: .82rem; line-height: 1.7;
    }
    .est1-form-aside-contact a { color: var(--bronze-lt); text-decoration: none; }

    .est1-form {
      background: var(--white);
      padding: 52px 46px;
    }
    .est1-form-row {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    .est1-field { margin-bottom: 16px; position: relative; }
    .est1-field.full { grid-column: 1 / -1; }
    .est1-field label {
      display: block; margin-bottom: 7px;
      font-size: .78rem; font-weight: 600;
      color: var(--navy); letter-spacing: .02em;
    }
    .est1-field label .req { color: var(--bronze); }
    .est1-field input,
    .est1-field select {
      width: 100%;
      padding: 12px 14px;
      font-family: var(--font-sans); font-size: .9rem;
      color: var(--navy);
      background: var(--off-white);
      border: 1px solid var(--border-dk);
      border-radius: var(--radius);
      transition: border-color .2s, background .2s;
    }
    .est1-field input:focus,
    .est1-field select:focus {
      outline: none;
      border-color: var(--bronze);
      background: var(--white);
    }
    .est1-field input::placeholder { color: var(--slate); }
    .est1-autocomplete {
      position: absolute; z-index: 20;
      left: 0; right: 0; top: 100%;
      margin-top: 4px;
      background: var(--white);
      border: 1px solid var(--border-dk);
      border-radius: var(--radius);
      box-shadow: 0 16px 36px rgba(35,44,63,.16);
      list-style: none; padding: 4px; margin-bottom: 0;
      display: none; max-height: 240px; overflow-y: auto;
    }
    .est1-autocomplete li {
      padding: 9px 12px;
      font-size: .85rem; color: var(--navy-mid);
      border-radius: var(--radius-sm, 4px); cursor: pointer;
    }
    .est1-autocomplete li:hover { background: var(--light-bg); color: var(--navy); }
    .est1-hp {
      position: absolute !important;
      left: -9999px !important;
      width: 1px; height: 1px; overflow: hidden;
    }
    .est1-rgpd {
      display: flex; gap: 10px; align-items: flex-start;
      margin: 6px 0 18px;
    }
    .est1-rgpd input { width: auto; margin-top: 3px; flex: 0 0 auto; }
    .est1-rgpd label {
      font-size: .78rem; line-height: 1.55; color: var(--navy-mid);
      font-weight: 400; margin: 0;
    }
    .est1-rgpd a { color: var(--bronze); }
    .est1-form-submit {
      width: 100%;
      padding: 15px 22px;
      font-family: var(--font-sans); font-size: .95rem; font-weight: 600;
      color: var(--white); background: var(--navy);
      border: 0; border-radius: var(--radius);
      cursor: pointer;
      transition: background .2s, transform .2s;
    }
    .est1-form-submit:hover { background: #2d3850; transform: translateY(-2px); }
    .est1-form-submit:disabled { opacity: .6; cursor: default; transform: none; }
    .est1-form-msg {
      margin-top: 14px; font-size: .85rem;
      line-height: 1.5; display: none;
    }
    .est1-form-msg.ok { display: block; color: #2f6b3f; }
    .est1-form-msg.err { display: block; color: #b3402f; }

    /* ── Bande image ── */
    .est1-imgband {
      position: relative; min-height: 420px;
      display: flex; align-items: center; overflow: hidden;
    }
    .est1-imgband img {
      position: absolute; inset: 0;
      width: 100%; height: 100%; object-fit: cover;
      object-position: center 40%;
      filter: brightness(.5) saturate(1.05);
    }
    .est1-imgband::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(105deg, rgba(35,44,63,.85) 0%, rgba(35,44,63,.42) 55%, rgba(35,44,63,.15) 100%);
    }
    .est1-imgband-inner { position: relative; z-index: 1; max-width: 680px; }
    .est1-imgband .eyebrow {
      font-size: .6875rem; letter-spacing: .2em;
      text-transform: uppercase; color: var(--bronze-lt); font-weight: 600;
    }
    .est1-imgband blockquote {
      margin: 18px 0 0;
      font-family: var(--font-serif);
      font-size: clamp(1.6rem, 3vw, 2.5rem);
      line-height: 1.22; color: var(--white);
    }
    .est1-imgband blockquote em { font-style: italic; color: var(--bronze-lt); }
    .est1-imgband cite {
      display: block; margin-top: 22px;
      font-style: normal; font-size: .85rem;
      color: rgba(255,255,255,.62); letter-spacing: .04em;
    }

    /* ── CTA band ── */
    .est1-cta-band {
      background: var(--navy);
      padding: 84px 0; text-align: center;
      position: relative; overflow: hidden;
    }
    .est1-cta-band::before {
      content: ''; position: absolute;
      left: 50%; top: -200px; transform: translateX(-50%);
      width: 600px; height: 600px; border-radius: 50%;
      background: radial-gradient(circle, rgba(127,112,89,.14), transparent 65%);
    }
    .est1-cta-band-inner { position: relative; z-index: 1; max-width: 680px; margin: 0 auto; }
    .est1-cta-band-inner h2 {
      font-family: var(--font-serif);
      font-size: clamp(2rem, 4vw, 3rem);
      color: var(--white); margin-bottom: 20px; line-height: 1.1;
    }
    .est1-cta-band-inner h2 em { font-style: italic; }
    .est1-cta-band-inner p {
      color: rgba(255,255,255,.72);
      font-size: 1.0625rem; line-height: 1.7; margin-bottom: 40px;
    }
    .est1-cta-band-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
    .est1-cta-band-address {
      margin-top: 40px; padding-top: 32px;
      border-top: 1px solid rgba(255,255,255,.12);
      color: rgba(255,255,255,.55); font-size: .875rem; line-height: 1.8;
    }
    .est1-cta-band-address strong { color: var(--bronze-lt); font-weight: 500; }

    /* ── FAQ ── */
    .est1-faq { max-width: 820px; margin: 0 auto; }

    /* ══════════════════════════════════════════════
       RESPONSIVE
    ══════════════════════════════════════════════ */
    @media (max-width: 960px) {
      .est1-hero-bar { grid-template-columns: repeat(2, 1fr); gap: 24px; }
      .est1-grid3 { grid-template-columns: 1fr; }
      .est1-intro-grid { grid-template-columns: 1fr; gap: 40px; }
      .est1-intro-figure { aspect-ratio: 16 / 10; max-height: 420px; }
      .est1-steps { grid-template-columns: 1fr 1fr; gap: 32px 0; }
      .est1-step { padding: 0 22px; }
      .est1-step:nth-child(odd) { padding-left: 0; border-left: 0; }
      .est1-compare { grid-template-columns: 1fr; }
      .est1-quartiers { grid-template-columns: repeat(2, 1fr); }
      .est1-form-wrap { grid-template-columns: 1fr; }
    }
    @media (max-width: 600px) {
      .est1-section { padding: 64px 0; }
      .est1-hero-bar { grid-template-columns: 1fr 1fr; gap: 18px; }
      .est1-steps { grid-template-columns: 1fr; }
      .est1-step, .est1-step:nth-child(odd) { padding: 0; border-left: 0; }
      .est1-quartiers { grid-template-columns: 1fr; }
      .est1-form-row { grid-template-columns: 1fr; }
      .est1-form, .est1-form-aside { padding: 38px 26px; }
      .est1-imgband { min-height: 360px; }
    }