/* ==========================================================
   APPARENCE DU SITE
   Pour changer les couleurs de tout le site, modifiez seulement
   les valeurs de la section :root ci-dessous.
   ========================================================== */
:root {
      --navy: #102747;
      --navy-2: #18385f;
      --red: #d83a3a;
      --red-dark: #b92d2d;
      --cream: #f7f4ef;
      --white: #ffffff;
      --text: #26313d;
      --muted: #6c7785;
      --line: #dfe5eb;
      --shadow: 0 18px 50px rgba(16, 39, 71, .12);
      --radius: 22px;
    }

    * {
      box-sizing: border-box;
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      color: var(--text);
      background: var(--white);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      line-height: 1.6;
    }

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

    a {
      color: inherit;
      text-decoration: none;
    }

    button,
    input,
    textarea,
    select {
      font: inherit;
    }

    .container {
      width: min(1160px, calc(100% - 40px));
      margin-inline: auto;
    }

    .topbar {
      background: var(--navy);
      color: rgba(255,255,255,.9);
      font-size: .92rem;
    }

    .topbar .container {
      min-height: 40px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
    }

    .topbar-links {
      display: flex;
      gap: 18px;
      flex-wrap: wrap;
    }

    header {
      position: sticky;
      top: 0;
      z-index: 50;
      background: rgba(255,255,255,.94);
      backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(16,39,71,.08);
    }

    nav {
      min-height: 78px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 12px;
      min-width: max-content;
    }

    .brand-mark {
      width: 48px;
      height: 48px;
      border-radius: 14px;
      display: grid;
      place-items: center;
      color: var(--white);
      font-weight: 900;
      letter-spacing: -.04em;
      background:
        linear-gradient(135deg, var(--navy) 0 58%, var(--red) 58% 100%);
      box-shadow: 0 10px 24px rgba(16,39,71,.18);
    }

    .brand-text strong {
      display: block;
      color: var(--navy);
      font-size: 1.18rem;
      letter-spacing: .02em;
      line-height: 1.05;
    }

    .brand-text span {
      display: block;
      color: var(--red);
      font-weight: 800;
      font-size: .8rem;
      letter-spacing: .18em;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 26px;
      font-weight: 700;
      color: var(--navy);
    }

    .nav-links a:hover {
      color: var(--red);
    }

    .client-space-link {
      padding: 9px 13px;
      border: 1px solid rgba(16,39,71,.14);
      border-radius: 999px;
    }

    .menu-button {
      display: none;
      border: 0;
      background: var(--cream);
      color: var(--navy);
      width: 44px;
      height: 44px;
      border-radius: 12px;
      cursor: pointer;
      font-size: 1.35rem;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      border-radius: 999px;
      padding: 14px 22px;
      font-weight: 800;
      border: 1px solid transparent;
      transition: .2s ease;
      cursor: pointer;
    }

    .btn-primary {
      color: var(--white);
      background: var(--red);
      box-shadow: 0 12px 28px rgba(216,58,58,.25);
    }

    .btn-primary:hover {
      transform: translateY(-2px);
      background: var(--red-dark);
    }

    .btn-secondary {
      color: var(--navy);
      background: var(--white);
      border-color: rgba(16,39,71,.16);
    }

    .btn-secondary:hover {
      transform: translateY(-2px);
      border-color: var(--navy);
    }

    .hero {
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(circle at 80% 10%, rgba(216,58,58,.14), transparent 34%),
        linear-gradient(135deg, #f8fafc 0%, #eef3f8 55%, #f8f4ef 100%);
      padding: 84px 0 72px;
    }

    .hero::after {
      content: "";
      position: absolute;
      width: 420px;
      height: 420px;
      border-radius: 50%;
      border: 80px solid rgba(16,39,71,.04);
      right: -180px;
      bottom: -220px;
    }

    .hero-grid {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1.05fr .95fr;
      align-items: center;
      gap: 56px;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: var(--red);
      font-weight: 900;
      letter-spacing: .12em;
      text-transform: uppercase;
      font-size: .8rem;
    }

    .eyebrow::before {
      content: "";
      width: 34px;
      height: 3px;
      background: var(--red);
      border-radius: 999px;
    }

    h1, h2, h3 {
      margin-top: 0;
      line-height: 1.12;
      color: var(--navy);
    }

    h1 {
      margin-bottom: 22px;
      font-size: clamp(2.6rem, 6vw, 5.15rem);
      letter-spacing: -.055em;
    }

    h1 span {
      color: var(--red);
    }

    .hero p {
      max-width: 680px;
      font-size: 1.12rem;
      color: var(--muted);
      margin-bottom: 30px;
    }

    .hero-actions {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      margin-bottom: 30px;
    }

    .trust-row {
      display: flex;
      gap: 18px;
      flex-wrap: wrap;
      color: var(--navy);
      font-weight: 750;
      font-size: .93rem;
    }

    .trust-row span {
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    .trust-dot {
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--red);
    }

    .hero-card {
      position: relative;
      background: var(--white);
      border-radius: 30px;
      padding: 14px;
      box-shadow: var(--shadow);
      transform: rotate(1.5deg);
    }

    .hero-card img {
      border-radius: 22px;
      aspect-ratio: 3/2;
      object-fit: cover;
    }

    .floating-badge {
      position: absolute;
      left: -24px;
      bottom: 28px;
      background: var(--navy);
      color: var(--white);
      border-radius: 18px;
      padding: 16px 18px;
      box-shadow: 0 16px 34px rgba(16,39,71,.24);
      transform: rotate(-1.5deg);
    }

    .floating-badge strong {
      display: block;
      font-size: 1.1rem;
    }

    .floating-badge span {
      font-size: .86rem;
      color: rgba(255,255,255,.76);
    }

    section {
      padding: 92px 0;
    }

    .section-head {
      max-width: 720px;
      margin-bottom: 44px;
    }

    .section-head.center {
      text-align: center;
      margin-inline: auto;
      margin-bottom: 48px;
    }

    .section-head h2 {
      font-size: clamp(2rem, 4vw, 3.45rem);
      margin-bottom: 16px;
      letter-spacing: -.04em;
    }

    .section-head p {
      color: var(--muted);
      margin: 0;
      font-size: 1.05rem;
    }

    .services {
      background: var(--white);
    }

    .cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }

    .card {
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 28px;
      transition: .2s ease;
    }

    .card:hover {
      transform: translateY(-5px);
      box-shadow: var(--shadow);
      border-color: transparent;
    }

    .icon {
      width: 52px;
      height: 52px;
      border-radius: 15px;
      display: grid;
      place-items: center;
      background: rgba(216,58,58,.1);
      color: var(--red);
      font-size: 1.45rem;
      margin-bottom: 18px;
    }

    .card h3 {
      font-size: 1.28rem;
      margin-bottom: 10px;
    }

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

    .highlight {
      background: var(--navy);
      color: var(--white);
      overflow: hidden;
      position: relative;
    }

    .highlight::before {
      content: "";
      position: absolute;
      inset: auto -120px -180px auto;
      width: 420px;
      height: 420px;
      border-radius: 50%;
      background: rgba(255,255,255,.04);
    }

    .highlight .section-head h2,
    .highlight h3 {
      color: var(--white);
    }

    .highlight .section-head p {
      color: rgba(255,255,255,.72);
    }

    .process {
      position: relative;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 18px;
    }

    .step {
      position: relative;
      z-index: 1;
      border: 1px solid rgba(255,255,255,.13);
      border-radius: 20px;
      padding: 24px;
      background: rgba(255,255,255,.06);
    }

    .step-number {
      width: 42px;
      height: 42px;
      border-radius: 12px;
      display: grid;
      place-items: center;
      font-weight: 900;
      background: var(--red);
      color: var(--white);
      margin-bottom: 18px;
    }

    .step p {
      color: rgba(255,255,255,.68);
      margin-bottom: 0;
    }

    .realisation-grid {
      display: grid;
      grid-template-columns: .9fr 1.1fr;
      gap: 44px;
      align-items: center;
    }

    .realisation-image {
      border-radius: 28px;
      overflow: hidden;
      box-shadow: var(--shadow);
      background: var(--cream);
    }

    .realisation-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .check-list {
      display: grid;
      gap: 14px;
      margin: 28px 0 34px;
    }

    .check {
      display: flex;
      gap: 12px;
      align-items: flex-start;
      color: var(--text);
      font-weight: 700;
    }

    .check b {
      width: 24px;
      height: 24px;
      flex: 0 0 auto;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: rgba(216,58,58,.12);
      color: var(--red);
    }

    .about {
      background: var(--cream);
    }

    .about-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 54px;
      align-items: center;
    }

    .quote-card {
      background: var(--white);
      border-radius: 28px;
      padding: 34px;
      box-shadow: var(--shadow);
      border-left: 6px solid var(--red);
    }

    .quote-card p {
      font-size: 1.15rem;
      color: var(--navy);
      margin-top: 0;
    }

    .quote-card strong {
      color: var(--red);
    }

    .area-box {
      margin-top: 24px;
      padding: 22px;
      border-radius: 18px;
      background: rgba(16,39,71,.06);
      color: var(--navy);
      font-weight: 750;
    }

    .contact {
      background:
        linear-gradient(135deg, rgba(16,39,71,.98), rgba(24,56,95,.96));
      color: var(--white);
    }

    .contact-grid {
      display: grid;
      grid-template-columns: .9fr 1.1fr;
      gap: 46px;
      align-items: start;
    }

    .contact h2,
    .contact h3 {
      color: var(--white);
    }

    .contact p {
      color: rgba(255,255,255,.72);
    }

    .contact-details {
      display: grid;
      gap: 14px;
      margin-top: 28px;
    }

    .contact-details a,
    .contact-details div {
      display: flex;
      align-items: center;
      gap: 12px;
      font-weight: 750;
    }

    form {
      background: var(--white);
      border-radius: 26px;
      padding: 30px;
      box-shadow: 0 18px 50px rgba(0,0,0,.16);
    }

    .form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .field {
      display: grid;
      gap: 8px;
    }

    .field.full {
      grid-column: 1 / -1;
    }

    label {
      color: var(--navy);
      font-weight: 800;
      font-size: .93rem;
    }

    input,
    select,
    textarea {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 13px;
      padding: 13px 14px;
      color: var(--text);
      background: #fbfcfd;
      outline: none;
    }

    input:focus,
    select:focus,
    textarea:focus {
      border-color: var(--red);
      box-shadow: 0 0 0 4px rgba(216,58,58,.09);
    }

    textarea {
      min-height: 128px;
      resize: vertical;
    }

    footer {
      background: #09192d;
      color: rgba(255,255,255,.68);
      padding: 28px 0;
    }

    footer .container {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      flex-wrap: wrap;
    }

    .footer-links {
      display: flex;
      gap: 18px;
      flex-wrap: wrap;
    }

    .notice {
      padding: 12px 14px;
      border-radius: 12px;
      margin-top: 16px;
      display: none;
      font-weight: 700;
    }

    .notice.is-pending {
      background: #eef3f8;
      color: var(--navy);
    }

    .notice.is-success {
      background: #eef9f0;
      color: #1f6b31;
    }

    .notice.is-error {
      background: #fff0f0;
      color: #a42323;
    }

    button:disabled {
      cursor: wait;
      opacity: .7;
      transform: none !important;
    }

    @media (max-width: 980px) {
      .hero-grid,
      .realisation-grid,
      .about-grid,
      .contact-grid {
        grid-template-columns: 1fr;
      }

      .hero-card {
        max-width: 720px;
      }

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

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

      .nav-links {
        position: absolute;
        left: 20px;
        right: 20px;
        top: calc(100% + 10px);
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 12px;
        border-radius: 18px;
        background: var(--white);
        box-shadow: var(--shadow);
      }

      .nav-links.open {
        display: flex;
      }

      .nav-links a {
        padding: 13px 14px;
        border-radius: 10px;
      }

      .nav-links .btn {
        margin-top: 8px;
      }

      .menu-button {
        display: block;
      }
    }

    @media (max-width: 680px) {
      .container {
        width: min(100% - 26px, 1160px);
      }

      .topbar .container {
        justify-content: center;
        text-align: center;
      }

      .topbar-links {
        display: none;
      }

      .hero {
        padding-top: 58px;
      }

      section {
        padding: 70px 0;
      }

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

      .field.full {
        grid-column: auto;
      }

      .floating-badge {
        position: static;
        margin-top: 12px;
        transform: none;
      }

      h1 {
        font-size: clamp(2.5rem, 13vw, 4rem);
      }
    }
  

    .page-hero { padding: 76px 0 64px; background: radial-gradient(circle at 86% 18%, rgba(216,58,58,.13), transparent 31%), linear-gradient(135deg,#f8fafc,#eef3f8 58%,#f8f4ef); }
    .page-hero .container { max-width: 960px; }
    .page-hero h1 { font-size: clamp(2.6rem, 5vw, 4.8rem); margin: 12px 0 20px; }
    .page-hero p { color: var(--muted); font-size: 1.12rem; max-width: 760px; }
    .breadcrumb { color: var(--muted); font-size:.92rem; margin-bottom:18px; }
    .breadcrumb a { color:var(--red); font-weight:800; }
    .content-grid { display:grid; grid-template-columns: 1.1fr .9fr; gap:42px; align-items:start; }
    .content-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px; }
    .content-card h2 { font-size:2rem; }
    .content-card h3 { margin-top:28px; }
    .side-card { position:sticky; top:110px; background:var(--navy); color:#fff; border-radius:26px; padding:30px; box-shadow:var(--shadow); }
    .side-card h2,.side-card h3 { color:#fff; }
    .side-card p { color:rgba(255,255,255,.72); }
    .side-card .check { color:#fff; }
    .detail-list { display:grid; gap:18px; margin-top:26px; }
    .detail-item { display:grid; grid-template-columns:50px 1fr; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }
    .detail-item:last-child { border-bottom:0; }
    .detail-item .icon { margin:0; }
    .detail-item h3 { margin:0 0 5px; }
    .detail-item p { margin:0; color:var(--muted); }
    .gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
    .project-card { overflow:hidden; border-radius:24px; background:#fff; border:1px solid var(--line); }
    .project-card img { width:100%; aspect-ratio:16/10; object-fit:cover; }
    .project-copy { padding:24px; }
    .project-copy h2,.project-copy h3 { margin-bottom:10px; }
    .project-copy p { color:var(--muted); }
    .tag-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
    .tag { border-radius:999px; padding:7px 11px; background:rgba(16,39,71,.07); color:var(--navy); font-size:.82rem; font-weight:800; }
    .stats { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:30px; }
    .stat { border-radius:18px; padding:22px; background:var(--cream); }
    .stat strong { display:block; font-size:1.8rem; color:var(--red); }
    .faq { display:grid; gap:14px; }
    details { border:1px solid var(--line); border-radius:16px; padding:18px 20px; background:#fff; }
    summary { cursor:pointer; color:var(--navy); font-weight:850; }
    details p { color:var(--muted); margin-bottom:0; }
    .cta-band { background:var(--red); color:#fff; padding:42px 0; }
    .cta-band .container { display:flex; justify-content:space-between; align-items:center; gap:24px; }
    .cta-band h2 { color:#fff; margin-bottom:8px; }
    .cta-band p { margin:0; color:rgba(255,255,255,.82); }
    .active-link { color:var(--red)!important; }
    .mini-process { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
    .mini-step { border:1px solid var(--line); border-radius:20px; padding:24px; }
    .mini-step strong { display:block; color:var(--red); margin-bottom:8px; }
    .legal-note { font-size:.88rem; color:var(--muted); }
    @media(max-width:900px){.content-grid,.gallery{grid-template-columns:1fr}.side-card{position:static}.stats,.mini-process{grid-template-columns:1fr}.cta-band .container{display:block}.cta-band .btn{margin-top:20px}}


/* Blocs ajoutés : suivi client, conception et offres locatives */
.text-link{display:inline-flex;margin-top:14px;color:var(--red);font-weight:800}.center-actions{display:flex;justify-content:center;margin-top:30px}.dashboard-grid,.offer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.dashboard-card,.offer-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}.dashboard-card span{display:block;color:var(--red);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.dashboard-card strong{display:block;color:var(--navy);font-size:1.18rem;margin:8px 0}.offer-grid{grid-template-columns:repeat(3,1fr);align-items:stretch}.offer-card{position:relative}.offer-card.featured{border:2px solid var(--red);transform:translateY(-8px)}.offer-card ul{padding-left:20px;margin:22px 0 0}.offer-card li{margin:9px 0;color:var(--muted)}
@media (max-width:980px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.offer-grid{grid-template-columns:1fr}.offer-card.featured{transform:none}}
@media (max-width:640px){.dashboard-grid{grid-template-columns:1fr}.center-actions .btn{width:100%}}
