/* ALSI Nettoyage – v7 : le nettoyage de vitres mis en avant (section dédiée, onglet, page Vitres)
   et les pages légales. Une raclette passe sur la vitre : à gauche le verre voilé, à droite le verre net.
   Se charge après v6.css. */

/* ---------- Section « Des vitres impeccables » ---------- */
.vit { position: relative; overflow: hidden; background: linear-gradient(180deg, #fff 0%, var(--blue-bg) 100%); }
.vit-fx { position: absolute; inset: 0; pointer-events: none; }
.vit-glow { position: absolute; right: -12rem; top: -10rem; width: 46rem; height: 46rem; border-radius: 50%; background: radial-gradient(closest-side, rgba(41, 168, 224, .22), transparent); }
.vit > .wrap { position: relative; }
.vit-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center; }
.vit .accent { background: var(--grad); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: reflet-texte 6s ease-in-out infinite; }

.vit-cartes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin: 2.5rem 0 2.25rem; }
.vit-carte { padding: 1.5rem 1.5rem .25rem; border: 1px solid transparent; border-radius: var(--r-l); background: linear-gradient(#fff, #fff) padding-box, linear-gradient(150deg, rgba(41, 168, 224, .55), var(--line) 40%, var(--line) 70%, rgba(41, 168, 224, .3)) border-box; box-shadow: 0 20px 50px rgba(38, 62, 84, .08); transition: transform .35s var(--ease), box-shadow .35s; }
.vit-carte:hover { transform: translateY(-4px); box-shadow: 0 26px 60px rgba(38, 62, 84, .13); }
.vit-pour { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; font-size: .8125rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-d); }
.vit-pour svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.vit-carte h3 { margin-bottom: 1.1rem; font-size: 1.2rem; color: var(--navy); }
.vit-carte .checks { gap: .55rem; margin-bottom: 1.5rem; font-size: .9375rem; }
.vit .links { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; }

/* La vitre : photo nette dessous, la même photo voilée dessus, effacée par la raclette */
.vit-fig { position: relative; margin: 0; }
.vit-verre { position: relative; aspect-ratio: 3 / 4; border-radius: var(--r-l); overflow: hidden; background: var(--night); box-shadow: 0 40px 90px rgba(38, 62, 84, .25), 0 0 0 1px rgba(41, 168, 224, .25); transform: perspective(1000px) rotateY(-4deg); transition: transform .8s var(--ease); }
.vit-fig:hover .vit-verre { transform: perspective(1000px) rotateY(0); }
.vit-verre img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vit-sale { position: absolute; inset: 0; clip-path: inset(0 0 0 0); }
.vit-sale img { filter: blur(5px) grayscale(.55) brightness(1.08) contrast(.75); transform: scale(1.04); }
.vit-sale::after { content: ""; position: absolute; inset: 0; background:
  radial-gradient(18% 12% at 22% 30%, rgba(214, 205, 186, .55), transparent 70%),
  radial-gradient(14% 10% at 70% 18%, rgba(214, 205, 186, .45), transparent 70%),
  radial-gradient(22% 14% at 60% 64%, rgba(200, 192, 176, .5), transparent 70%),
  radial-gradient(16% 12% at 28% 80%, rgba(214, 205, 186, .45), transparent 70%),
  linear-gradient(180deg, rgba(230, 226, 214, .35), rgba(190, 184, 170, .4)); }
.vit-lame { position: absolute; top: -4%; bottom: -4%; left: 0; width: 14px; margin-left: -7px; border-radius: 7px; background: linear-gradient(180deg, #1b2c3c, #263e54 50%, #1b2c3c); box-shadow: 0 0 0 1px rgba(127, 211, 247, .5), 0 0 28px 6px rgba(127, 211, 247, .55); }
.vit-lame::after { content: ""; position: absolute; top: 0; bottom: 0; left: 100%; width: 70px; background: linear-gradient(90deg, rgba(255, 255, 255, .35), transparent); }
.vit-reflet { position: absolute; inset: -20% auto -20% -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .28), transparent); transform: skewX(-12deg); opacity: 0; }
.vit-fig figcaption { margin-top: .75rem; font-size: .75rem; color: var(--dim); text-align: right; }

/* le passage : déclenché par js/v7.js quand la vitre arrive à l'écran */
.vit-fig.lave .vit-sale { clip-path: inset(0 0 0 100%); transition: clip-path 2.4s cubic-bezier(.65, 0, .25, 1) .3s; }
.vit-fig.lave .vit-lame { left: 100%; opacity: 0; transition: left 2.4s cubic-bezier(.65, 0, .25, 1) .3s, opacity .4s 2.6s; }
.vit-fig.lave .vit-reflet { animation: vit-brille 1.6s var(--ease) 2.8s both; }
@keyframes vit-brille { 0% { opacity: 0; left: -60%; } 30% { opacity: 1; } 100% { opacity: 0; left: 130%; } }

/* sans JavaScript ou si l'appareil demande moins d'animations : la vitre est déjà propre */
.no-js .vit-sale, .no-js .vit-lame { display: none; }
@media (prefers-reduced-motion: reduce) {
  .vit-sale, .vit-lame, .vit-reflet { display: none; }
  .vit .accent { animation: none; }
}

/* ---------- Onglets et devis : un service de plus ---------- */
.choix-cartes .carte-large { grid-column: 1 / -1; }
.svc-img img.ph { left: 0; width: 100%; height: 100%; object-fit: cover; transform: none; }

/* ---------- Pied de page : liens légaux ---------- */
.foot-legal { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.foot-legal a { color: #b9c6d3; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(185, 198, 211, .4); }
.foot-legal a:hover { color: #fff; }

/* ---------- Pages légales ---------- */
.legal-hero { padding: calc(var(--nav-h) + clamp(3rem, 8vw, 5.5rem)) 0 clamp(2.5rem, 6vw, 4rem); background: linear-gradient(180deg, var(--night) 0%, var(--night-2) 100%); color: #fff; }
.legal-hero h1 { font-size: clamp(2.2rem, 5vw, 3.5rem); color: #fff; }
.legal-hero .crumbs a, .legal-hero .crumbs span { color: #b9c6d3; }
.legal-hero p.maj { margin-top: 1rem; color: #b9c6d3; font-size: .9375rem; }
.legal { max-width: 46rem; }
.legal h2 { margin: 2.75rem 0 1rem; font-size: 1.35rem; color: var(--navy); }
.legal h2:first-child { margin-top: 0; }
.legal p, .legal li { margin-bottom: .75rem; }
.legal ul { display: grid; gap: .25rem; margin: 0 0 1rem 1.2rem; list-style: disc; }
.legal a { color: var(--blue-d); text-decoration: underline; text-underline-offset: 3px; }
.legal dl { display: grid; grid-template-columns: 13rem 1fr; gap: .6rem 1.5rem; margin-bottom: 1rem; }
.legal dt { font-weight: 600; color: var(--navy); }
.legal dd { margin: 0; }

@media (max-width: 900px) {
  .vit-grid { grid-template-columns: 1fr; }
  .vit-fig { order: -1; max-width: 26rem; width: 100%; margin-inline: auto; }
  .vit-verre { aspect-ratio: 4 / 3.4; transform: none; }
}
@media (max-width: 640px) {
  .vit-cartes { grid-template-columns: 1fr; gap: .875rem; margin: 1.75rem 0; }
  .vit-carte { padding: 1.25rem 1.25rem 0; }
  .vit .links .btn { width: 100%; }
  .onglets button:first-child { grid-column: 1 / -1; }
  .legal dl { grid-template-columns: 1fr; gap: .15rem; }
  .legal dd { margin-bottom: .75rem; }
}

/* ---------- Avis : six avis, deux colonnes sur tablette ---------- */
@media (min-width: 641px) and (max-width: 900px) {
  .quotes { grid-template-columns: 1fr 1fr; max-width: none; }
}
@media (max-width: 640px) { .foot-legal { justify-content: center; } }
