/* ── Accueil : hero dynamique (noir & blanc) ── */
.hero { background:#0f0f0e; color:#fff; padding:48px 48px 56px; }
.hero-inner { max-width:1360px; margin:0 auto; display:grid; grid-template-columns:minmax(0,520px) minmax(0,1fr); gap:0; align-items:center; min-height:calc(100vh - var(--nav-h) - 160px); }

.hero-card { position:relative; z-index:2; background:#fff; color:#111; border-radius:28px; padding:44px 40px 32px; margin-right:-72px; box-shadow:0 30px 80px rgba(0,0,0,.35); animation:heroIn .7s cubic-bezier(.2,.7,.2,1) both; }
.hero-kicker { font-size:12px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; color:#777; margin-bottom:16px; }
.hero-title { font-size:clamp(38px,4.4vw,60px); font-weight:900; letter-spacing:-2px; line-height:1.02; margin-bottom:16px; }
.hero-rotate { display:inline-block; position:relative; color:#8a8a8a; white-space:nowrap; }
.hero-rotate-word { display:inline-block; transition:opacity .35s ease, transform .35s ease; }
.hero-rotate-word.is-out { opacity:0; transform:translateY(12px); }
.hero-sub { font-size:17px; line-height:1.55; color:#555; margin-bottom:26px; max-width:430px; }

.hero-tabs { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-bottom:14px; }
.hero-tab input { position:absolute; opacity:0; pointer-events:none; }
.hero-tab span { display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 4px; border:1.5px solid #e6e6e6; border-radius:14px; font-size:12px; font-weight:600; text-align:center; cursor:pointer; line-height:1.2; transition:border-color .15s, background .15s, color .15s; }
.hero-tab span:hover { border-color:#111; }
.hero-tab input:checked + span { background:#111; border-color:#111; color:#fff; }
.hero-tab input:focus-visible + span { outline:2px solid #111; outline-offset:2px; }

.hero-fields { display:grid; grid-template-columns:1.4fr 1fr; border:1.5px solid #e6e6e6; border-radius:16px; overflow:hidden; margin-bottom:12px; }
.hero-field { display:flex; flex-direction:column; gap:2px; padding:12px 16px; cursor:pointer; }
.hero-field + .hero-field { border-left:1.5px solid #e6e6e6; }
.hero-field:focus-within { background:#f6f6f4; }
.hero-field-label { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:1px; }
.hero-field select { appearance:none; border:0; background:transparent; font:inherit; font-size:15px; color:#444; outline:0; cursor:pointer; padding:2px 0; }
.hero-submit { width:100%; height:56px; display:inline-flex; align-items:center; justify-content:center; gap:10px; border:0; border-radius:16px; background:#111; color:#fff; font:inherit; font-size:16px; font-weight:700; cursor:pointer; transition:transform .15s, background .15s; }
.hero-submit:hover { background:#000; transform:translateY(-1px); }
.hero-submit:focus-visible { outline:3px solid #111; outline-offset:3px; }
.hero-trust { list-style:none; display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:20px; padding-top:18px; border-top:1px solid #eee; font-size:13px; color:#555; }
.hero-trust li { display:inline-flex; align-items:center; gap:6px; }

/* Diaporama */
.hero-media { position:relative; height:min(640px, calc(100vh - var(--nav-h) - 120px)); min-height:460px; border-radius:32px; overflow:hidden; background:#222; }
.hero-slide { position:absolute; inset:0; opacity:0; transition:opacity 1s ease; color:#fff; text-decoration:none; }
.hero-slide.is-active { opacity:1; z-index:1; }
.hero-slide img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); transform:scale(1.08); }
.hero-slide.is-active img { animation:heroZoom 7s ease-out forwards; }
.hero-slide::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.65)); }
.hero-caption { position:absolute; z-index:2; right:28px; bottom:56px; left:132px; display:flex; flex-direction:column; align-items:flex-end; text-align:right; gap:4px; }
.hero-caption-zone { font-size:12px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; opacity:.75; }
.hero-caption-title { font-size:clamp(20px,2vw,28px); font-weight:800; letter-spacing:-.6px; }
.hero-caption-price { display:inline-flex; align-items:center; gap:6px; margin-top:8px; background:#fff; color:#111; padding:8px 16px; border-radius:999px; font-size:14px; transition:transform .15s; }
.hero-slide:hover .hero-caption-price { transform:translateX(-4px); }
.hero-dots { position:absolute; z-index:3; right:28px; bottom:22px; display:flex; gap:6px; }
.hero-dots button { width:28px; height:4px; padding:0; border:0; border-radius:4px; background:rgba(255,255,255,.4); cursor:pointer; transition:background .2s, width .2s; }
.hero-dots button[aria-selected="true"] { background:#fff; width:44px; }
.hero-dots button:focus-visible { outline:2px solid #fff; outline-offset:3px; }

@keyframes heroIn { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@keyframes heroZoom { from { transform:scale(1.08); } to { transform:scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .hero-card, .hero-slide.is-active img { animation:none; }
  .hero-slide, .hero-rotate-word { transition:none; }
  .hero-slide img { transform:none; }
}

@media (max-width:1024px) {
  .hero { padding:20px 16px 32px; }
  .hero-inner { grid-template-columns:1fr; min-height:0; }
  .hero-card { margin-right:0; padding:30px 22px 24px; border-radius:24px; order:2; margin-top:-48px; }
  .hero-media { order:1; height:320px; min-height:0; border-radius:24px; }
  .hero-caption { left:20px; right:20px; bottom:66px; }
  .hero-tabs { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:420px) {
  .hero-fields { grid-template-columns:1fr; }
  .hero-field + .hero-field { border-left:0; border-top:1.5px solid #e6e6e6; }
}

/* ── Sections de l'accueil ── */
.home-sec { max-width:1280px; margin:0 auto; padding:104px 48px; }
.home-sec-tight { padding-top:24px; }
.home-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:40px; }
.home-head-center { justify-content:center; text-align:center; }
.home-kicker { font-size:13px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; color:#8a8a8a; margin:0 0 12px; }
.home-kicker-light { color:rgba(255,255,255,.6); }
.home-h2 { font-size:clamp(30px,3.4vw,46px); font-weight:800; letter-spacing:-1.4px; line-height:1.08; margin:0; max-width:720px; }
.home-head-center .home-h2 { margin:0 auto; }
.home-link { font-size:15px; font-weight:700; color:#111; text-decoration:underline; text-underline-offset:4px; white-space:nowrap; }
.home-link-light { color:#fff; }
.home-btn { display:inline-flex; align-items:center; justify-content:center; height:54px; padding:0 30px; border-radius:999px; background:#111; color:#fff; font-size:16px; font-weight:700; text-decoration:none; transition:transform .15s, background .15s; }
.home-btn:hover { transform:translateY(-2px); background:#000; }
.home-btn-light { background:#fff; color:#111; }
.home-btn-light:hover { background:#f0f0f0; }
.home-btn:focus-visible, .home-link:focus-visible, .type-tile:focus-visible { outline:3px solid #111; outline-offset:3px; }

/* Types d'espaces : tuiles photo */
.type-tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.type-tile { position:relative; display:block; aspect-ratio:3 / 4; border-radius:22px; overflow:hidden; background:#1a1a1a; color:#fff; text-decoration:none; isolation:isolate; }
.type-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1); transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .4s; z-index:-2; }
.type-tile::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(0,0,0,.05) 30%, rgba(0,0,0,.78)); }
.type-tile:hover img { transform:scale(1.07); filter:grayscale(.2); }
.type-tile.is-empty { background:repeating-linear-gradient(135deg,#1a1a1a 0 14px,#202020 14px 28px); }
.type-tile-body { position:absolute; left:22px; right:22px; bottom:22px; display:flex; flex-direction:column; gap:4px; }
.type-tile-count { align-self:flex-start; font-size:12px; font-weight:700; letter-spacing:.4px; background:rgba(255,255,255,.16); backdrop-filter:blur(6px); padding:5px 10px; border-radius:999px; margin-bottom:8px; }
.type-tile-name { font-size:24px; font-weight:800; letter-spacing:-.6px; }
.type-tile-desc { font-size:14px; line-height:1.45; color:rgba(255,255,255,.78); }
.type-tile-cta { margin-top:12px; font-size:15px; font-weight:700; display:inline-flex; gap:6px; transition:gap .2s; }
.type-tile:hover .type-tile-cta { gap:10px; }

/* Grille des espaces */
.home-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:36px 24px; }

/* Comment ça marche */
.home-band { background:#f5f5f3; }
.how-steps { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:0; padding:0; counter-reset:none; }
.how-steps li { position:relative; background:#fff; border-radius:24px; padding:36px 32px 34px; transition:transform .2s, box-shadow .2s; }
.how-steps li:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(0,0,0,.08); }
.how-ico { display:inline-flex; width:56px; height:56px; border-radius:16px; background:#111; color:#fff; align-items:center; justify-content:center; margin-bottom:22px; }
.how-n { position:absolute; top:30px; right:30px; font-size:44px; font-weight:900; letter-spacing:-2px; color:#ececec; }
.how-steps h3 { font-size:22px; font-weight:800; letter-spacing:-.4px; margin:0 0 8px; }
.how-steps p { font-size:16px; line-height:1.6; color:#5c5c5c; margin:0; }
.how-cta { text-align:center; margin-top:44px; }

/* Réassurance */
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid #e6e6e6; border-bottom:1px solid #e6e6e6; }
.trust-item { padding:36px 28px; color:#111; }
.trust-item + .trust-item { border-left:1px solid #e6e6e6; }
.trust-item svg { margin-bottom:16px; }
.trust-item h3 { font-size:18px; font-weight:800; letter-spacing:-.3px; margin:0 0 6px; }
.trust-item p { font-size:15px; line-height:1.55; color:#5c5c5c; margin:0; }

/* Bloc propriétaires */
.owner-cta { display:grid; grid-template-columns:1.1fr 1fr; background:#111; color:#fff; border-radius:32px; overflow:hidden; min-height:420px; }
.owner-cta-text { padding:64px 56px; display:flex; flex-direction:column; justify-content:center; }
.owner-cta-text h2 { font-size:clamp(28px,3vw,42px); font-weight:800; letter-spacing:-1.2px; line-height:1.1; margin:0 0 16px; }
.owner-cta-text p { font-size:17px; line-height:1.6; color:rgba(255,255,255,.72); margin:0 0 30px; max-width:460px; }
.owner-cta-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.owner-cta-media img { width:100%; height:100%; object-fit:cover; filter:grayscale(1); }

/* FAQ */
.faq-wrap { display:grid; grid-template-columns:1fr 1.4fr; gap:64px; align-items:start; }
.faq-aside { font-size:16px; color:#5c5c5c; margin-top:18px; }
.faq-aside a { color:#111; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.faq-list details { border-bottom:1px solid #e6e6e6; padding:22px 0; }
.faq-list details:first-child { border-top:1px solid #e6e6e6; }
.faq-list summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:24px; font-size:18px; font-weight:700; letter-spacing:-.2px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; font-size:26px; font-weight:400; line-height:.8; transition:transform .2s; }
.faq-list details[open] summary::after { transform:rotate(45deg); }
.faq-list summary:focus-visible { outline:2px solid #111; outline-offset:4px; border-radius:4px; }
.faq-list p { font-size:16px; line-height:1.65; color:#5c5c5c; margin:12px 0 0; max-width:640px; }

@media (max-width:1100px) {
  .type-tiles { grid-template-columns:repeat(2,1fr); }
  .trust-grid { grid-template-columns:1fr 1fr; }
  .trust-item:nth-child(3) { border-left:0; }
  .trust-item:nth-child(n+3) { border-top:1px solid #e6e6e6; }
}
@media (max-width:1024px) {
  .home-sec { padding:64px 16px; }
  .home-sec-tight { padding-top:8px; }
  .home-head { flex-direction:column; align-items:flex-start; }
  .home-head-center { align-items:center; }
  .how-steps { grid-template-columns:1fr; }
  .owner-cta { grid-template-columns:1fr; border-radius:24px; }
  .owner-cta-text { padding:40px 26px; }
  .owner-cta-media { height:240px; order:-1; }
  .faq-wrap { grid-template-columns:1fr; gap:24px; }
}
@media (max-width:600px) {
  .type-tiles { grid-template-columns:1fr 1fr; gap:10px; }
  .type-tile { aspect-ratio:3 / 4; border-radius:18px; }
  .type-tile-body { left:14px; right:14px; bottom:14px; }
  .type-tile-name { font-size:18px; }
  .type-tile-desc { display:none; }
  .trust-grid { grid-template-columns:1fr; }
  .trust-item + .trust-item { border-left:0; border-top:1px solid #e6e6e6; }
}
@media (prefers-reduced-motion: reduce) { .type-tile img, .how-steps li { transition:none; } }

/* Partenaires PRO */
.pro-venues { display:grid; grid-template-columns:repeat(auto-fill, minmax(420px, 1fr)); gap:20px; }
.pro-venue { position:relative; display:block; min-height:340px; border-radius:26px; overflow:hidden; background:#111; color:#fff; text-decoration:none; isolation:isolate; }
.pro-venue-cover { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.pro-venue::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.2) 75%); }
.pro-venue:hover .pro-venue-cover { transform:scale(1.05); }
.pro-venue-body { position:absolute; inset:0; padding:32px; display:flex; flex-direction:column; justify-content:flex-end; gap:6px; }
.pro-venue-logo { position:absolute; top:24px; left:24px; background:#fff; border-radius:14px; padding:10px 14px; }
.pro-venue-logo img { height:32px; width:auto; }
.pro-venue-tag { align-self:flex-start; font-size:11px; font-weight:800; letter-spacing:1.4px; background:#fff; color:#111; padding:5px 10px; border-radius:999px; margin-bottom:6px; }
.pro-venue-name { font-size:30px; font-weight:900; letter-spacing:-1px; }
.pro-venue-meta { font-size:15px; color:rgba(255,255,255,.8); }
.pro-venue-cta { margin-top:10px; font-size:15px; font-weight:700; display:inline-flex; gap:6px; transition:gap .2s; }
.pro-venue:hover .pro-venue-cta { gap:10px; }
.pro-venue:focus-visible { outline:3px solid #111; outline-offset:3px; }
@media (max-width:600px) { .pro-venues { grid-template-columns:1fr; } .pro-venue { min-height:300px; } .pro-venue-body { padding:22px; } .pro-venue-name { font-size:24px; } }
.pro-venues:has(> :only-child) { grid-template-columns:1fr; }
.pro-venues:has(> :only-child) .pro-venue { min-height:420px; }

/* Très petits écrans : le titre animé tient sur une ligne */
@media (max-width:420px) {
  .hero-title { font-size:clamp(28px, 8.6vw, 38px); letter-spacing:-1.2px; }
  .hero-card { padding:26px 18px 20px; }
  .hero-tabs { gap:5px; }
  .hero-tab span { font-size:11px; padding:10px 2px; }
}
