/* AUBIN GROUP — styles complémentaires (accueil + composants PHP) */

    .hero-home {
      padding: 86px 0 76px;
      background: radial-gradient(circle at 85% 15%, rgba(184, 34, 40, 0.08), transparent 32%),
                  linear-gradient(135deg, #ffffff 0%, #eef4f8 58%, #ffffff 100%);
    }
    .hero-home .hero-grid {
      grid-template-columns: 1.15fr 0.85fr;
    }
    .hero-kicker {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 24px;
    }
    .hero-kicker span {
      background: #ffffff;
      border: 1px solid var(--line);
      padding: 8px 14px;
      border-radius: var(--radius-full);
      font-size: 13px;
      font-weight: 700;
      color: var(--navy);
      box-shadow: var(--shadow-sm);
    }
    .domain-grid {
      grid-template-columns: repeat(4, 1fr);
    }
    .domain-card {
      padding: 30px;
      min-height: 330px;
      display: flex;
      flex-direction: column;
      position: relative;
      overflow: hidden;
    }
    .domain-icon {
      width: 56px;
      height: 56px;
      border-radius: var(--radius-sm);
      background: var(--soft);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 28px;
      margin-bottom: 20px;
      border: 1px solid var(--line);
    }
    .domain-card h3 {
      font-size: 22px;
      color: var(--navy);
      margin: 0 0 10px;
      line-height: 1.2;
    }
    .domain-card p {
      color: var(--muted);
      font-size: 14px;
      margin: 0;
      line-height: 1.6;
    }
    .domain-card ul {
      padding-left: 18px;
      color: var(--muted);
      font-size: 13.5px;
      display: grid;
      gap: 6px;
      margin: 16px 0;
    }
    .domain-card .more {
      margin-top: auto;
      color: var(--red);
      font-weight: 800;
      text-decoration: none;
    }
    .trust {
      background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy) 100%);
      color: #fff;
    }
    .trust .section-head h2, .trust .eyebrow {
      color: #fff;
    }
    .trust .section-head p {
      color: rgba(255, 255, 255, 0.75);
    }
    .trust-grid {
      grid-template-columns: repeat(4, 1fr);
    }
    .trust-item {
      padding: 26px;
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-radius: var(--radius);
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(8px);
    }
    .trust-item b {
      display: block;
      font-size: 18px;
      margin: 8px 0;
      color: #fff;
    }
    .trust-item p {
      margin: 0;
      color: rgba(255, 255, 255, 0.7);
      font-size: 13.5px;
      line-height: 1.6;
    }
    .process {
      grid-template-columns: repeat(4, 1fr);
    }
    .cta-home {
      background: linear-gradient(135deg, var(--navy-dark) 0%, var(--navy-light) 100%);
      color: #fff;
      border-radius: var(--radius-lg);
      padding: 48px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 28px;
      box-shadow: var(--shadow-lg);
      border: 1px solid rgba(255, 255, 255, 0.08);
    }
    .cta-home h2 {
      margin: 0 0 10px;
      font-size: 36px;
      color: #fff;
    }
    .cta-home p {
      margin: 0;
      color: rgba(255, 255, 255, 0.8);
      max-width: 650px;
      font-size: 16px;
    }
    .quick-services {
      grid-template-columns: repeat(4, 1fr);
    }
    .quick-service {
      padding: 24px;
      display: flex;
      flex-direction: column;
      min-height: 240px;
    }
    .quick-service > span {
      font-size: 32px;
      margin-bottom: 14px;
    }
    .quick-service h3 {
      margin: 0 0 8px;
      color: var(--navy);
      font-size: 19px;
    }
    .quick-service p {
      margin: 0;
      color: var(--muted);
      font-size: 13.5px;
      line-height: 1.6;
    }
    .quick-service a {
      margin-top: auto;
      color: var(--red);
      font-weight: 800;
      text-decoration: none;
      padding-top: 16px;
    }
    @media (max-width: 1050px) {
      .domain-grid, .trust-grid, .process, .quick-services {
        grid-template-columns: repeat(2, 1fr);
      }
      .hero-home .hero-grid {
        grid-template-columns: 1fr;
      }
    }
    @media (max-width: 768px) {
      .domain-grid, .trust-grid, .process, .quick-services {
        grid-template-columns: 1fr;
      }
      .cta-home {
        display: block;
        padding: 30px;
      }
      .cta-home .primary {
        margin-top: 20px;
      }
    }
  
/* ---- Messages flash ---- */
.flash-wrap { padding-top: 0; padding-bottom: 0; }
.flash { margin: 14px 0 0; padding: 13px 16px; border-radius: 10px; font-weight: 600; font-size: 14px; border: 1px solid; }
.flash-ok { background: var(--ok-bg); color: #14532d; border-color: #86efac; }
.flash-error { background: var(--danger-bg); color: #7f1d1d; border-color: #fca5a5; }
.flash-warn { background: var(--warn-bg); color: #78350f; border-color: #fcd34d; }

/* ---- Boutique / panier ---- */
.qty-form { display: inline-flex; align-items: center; gap: 6px; }
.qty-form button { width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--line); background: #fff; font-weight: 800; cursor: pointer; }
.qty-form span { min-width: 22px; text-align: center; font-weight: 800; }
.cart-item { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; padding: 16px 0; border-bottom: 1px solid var(--line); }
.cart-item:last-child { border-bottom: 0; }
.link-btn { background: none; border: 0; color: var(--red); cursor: pointer; font-weight: 700; padding: 4px 8px; }
.pagination { display: flex; gap: 8px; justify-content: center; margin-top: 26px; flex-wrap: wrap; }
.pagination a, .pagination span { padding: 8px 14px; border: 1px solid var(--line); border-radius: 8px; text-decoration: none; color: var(--navy); font-weight: 700; background: #fff; }
.pagination span.cur { background: var(--navy); color: #fff; border-color: var(--navy); }

/* ---- Formulaires publics ---- */
.field-error { color: var(--danger); font-size: 12px; margin-top: 4px; }
.form-note { font-size: 12px; color: var(--muted); margin-top: 10px; }
.auth-card { max-width: 460px; margin: 0 auto; padding: 34px; }
.auth-card h1 { font-size: 26px; color: var(--navy); margin: 0 0 6px; }
.auth-card .sub { color: var(--muted); margin: 0 0 22px; font-size: 14px; }
.auth-links { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 18px; font-size: 13px; }
.auth-links a { color: var(--red); font-weight: 700; }

/* ---- Ticket WiFi ---- */
.ticket-box { max-width: 340px; margin: 0 auto 16px; }
.qr-holder { display: inline-block; padding: 6px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; }
.qr-holder svg, .qr-holder img { display: block; }
.hidden { display: none !important; }

/* ---- Brief de devis / service ---- */
.price-tag { display: inline-block; background: var(--soft-blue); color: var(--navy); font-weight: 800; padding: 8px 14px; border-radius: 999px; margin: 6px 0 16px; }
.video-embed { position: relative; padding-top: 56.25%; border-radius: 12px; overflow: hidden; margin: 14px 0; background: #000; }
.video-embed iframe, .video-embed video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

@media print {
  .top, .header, .footer, .mobile-drawer, .no-print, .toast, .flash-wrap { display: none !important; }
  body { background: #fff; }
}

/* v2.6 — estimation guidée, FAQ, comparateur, calendrier */
.est-steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 18px;flex-wrap:wrap}
.est-steps li{flex:1;min-width:90px;text-align:center;font-size:13px;font-weight:700;color:#94a3b8;border-bottom:4px solid #e2e8f0;padding:6px 0}
.est-steps li.on{color:var(--navy);border-color:var(--red)}
.est-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.est-card{text-align:left;background:#fff;border:2px solid #e2e8f0;border-radius:14px;padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px;font:inherit;transition:.2s}
.est-card:hover,.est-card:focus-visible{border-color:var(--red);transform:translateY(-2px)}
.est-card span{font-size:24px}.est-card b{color:var(--navy)}.est-card small{color:#64748b}
.est-result{background:#f1f5f9;border-radius:14px;padding:18px;margin-bottom:12px}.est-result b{display:block;font-size:26px;color:var(--navy)}.est-result small{color:#64748b}
.faq-pub{padding:0;margin-bottom:10px}.faq-pub summary{cursor:pointer;font-weight:700;color:var(--navy);padding:16px 20px}.faq-pub div{padding:0 20px 16px;color:#475569}
.cmp-wrap{overflow-x:auto}.cmp-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}
.cmp-table th,.cmp-table td{padding:12px 14px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top}.cmp-table thead th{background:#f1f5f9;color:var(--navy);min-width:180px}.cmp-table tbody th{color:#64748b;font-size:13px;width:140px}
.cal-it{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:16px 20px;margin-bottom:10px}
.cal-date{width:78px;text-align:center;background:var(--navy);color:#fff;border-radius:12px;padding:8px 6px;flex:none}.cal-date b{display:block;font-size:26px;line-height:1.1}.cal-date span{font-size:12px}

/* v2.6 — créneaux de rendez-vous (site public) */
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin-top:8px}
.slot{display:block;cursor:pointer;position:relative}.slot input{position:absolute;opacity:0;pointer-events:none}
.slot span{display:block;text-align:center;padding:10px 6px;border:1.5px solid #cfd8e3;border-radius:10px;font-weight:700;color:var(--navy);background:#fff;transition:.2s}
.slot:hover span{border-color:var(--navy)}.slot input:checked+span{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 4px 12px rgba(7,44,74,.25)}
.slot input:focus-visible+span{outline:3px solid rgba(184,34,40,.4)}
