/* Le Séjour Parfait — MAJ 62 (25/10/2026) : présentation commune des pages de services,
   sur le modèle de la page Résidences :
   1) visuel d'accueil plein écran (vidéo ou photo) ;
   2) catalogue de cartes, chacune sélectionnable directement ;
   3) la carte choisie déroule la commande (formulaire, prix, paiement) ;
   4) explications et conditions en bas de page (« Bon à savoir »), repliées. */

/* ---------- 1. Visuel d'accueil : mouvement lent, voile, textes ---------- */
.lx-media{overflow:hidden}
.lx-media video,.lx-media img{transform-origin:55% 60%;animation:sv-derive 24s ease-in-out infinite alternate;will-change:transform;backface-visibility:hidden}
@keyframes sv-derive{0%{transform:scale(1.02) translate3d(0,0,0)}50%{transform:scale(1.08) translate3d(-1.2%,-.6%,0)}100%{transform:scale(1.14) translate3d(-2%,-1.2%,0)}}
@media (max-width:900px){.lx-media video,.lx-media img{transform-origin:50% 55%;animation-duration:20s}}
@media (prefers-reduced-motion:reduce){.lx-media video,.lx-media img{animation:none;transform:none}}
body.sv-page .lx::after{background:linear-gradient(180deg,rgba(8,12,14,.55) 0%,rgba(8,12,14,.28) 28%,rgba(8,12,14,.26) 62%,rgba(8,12,14,.6) 100%)}
body.sv-page .lx{height:86vh;height:86svh;min-height:520px}
body.sv-page .lx h1{font-size:clamp(34px,5.6vw,84px);letter-spacing:.1em;line-height:1.02;text-shadow:0 4px 30px rgba(0,0,0,.35)}
body.sv-page .lx p{max-width:620px;font-size:clamp(15px,1.35vw,20px);line-height:1.45;text-shadow:0 1px 14px rgba(0,0,0,.55)}
.sv-hero-cta{margin-top:clamp(18px,3vh,30px);display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border:1px solid rgba(255,255,255,.85);color:#fff;text-decoration:none;font:400 13px/1 "Quattrocento Sans","DM Sans",system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;transition:background .2s,color .2s}
.sv-hero-cta:hover{background:#fff;color:#111}
@media (max-width:900px){
  body.sv-page .lx{height:78svh;min-height:480px}
  body.sv-page .lx h1{font-size:clamp(30px,10vw,52px);letter-spacing:.08em}
  body.sv-page .lx p{font-size:15px;max-width:320px}
}

/* ---------- 2. Catalogue ---------- */
.sv-catalogue{padding:clamp(28px,4vw,52px) 0 clamp(24px,3vw,40px);scroll-margin-top:70px}
.sv-catalogue .ui-tete{margin-bottom:16px}
.sv-filtres{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.sv-filtres button{appearance:none;border:1px solid #d9e1ec;background:#fff;color:var(--anthracite,#0b2447);border-radius:999px;padding:8px 14px;font:600 13.5px var(--titre,system-ui);cursor:pointer}
.sv-filtres button.on{background:var(--anthracite,#0b2447);border-color:var(--anthracite,#0b2447);color:#fff}
.sv-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:18px}
.sv-grille .ev{cursor:pointer}
.sv-grille .ev:focus-visible{outline:3px solid var(--safran,#0174d0);outline-offset:3px}
.sv-grille .ev.on{box-shadow:0 0 0 3px var(--safran,#0174d0),0 14px 34px -22px rgba(11,36,71,.5)}
.sv-grille .ev-corps p{margin:0;font-size:14px;line-height:1.45;color:#4a5568;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev-img video{width:100%;height:100%;object-fit:cover;display:block}
.sv-ico{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,#0b2447,#0f5e6a);color:#fff}
.sv-ico svg{width:46px;height:46px;opacity:.92}
.sv-sous{margin:26px 0 12px;font:600 19px/1.2 var(--luxe,"Playfair Display",serif);color:var(--anthracite,#0b2447)}
.sv-sous small{display:block;margin-top:4px;font:400 14px/1.4 var(--texte,system-ui);color:#5b6a82}
.sv-lien-budget{display:inline-block;margin-top:16px;font-weight:600;color:var(--safran,#0174d0)}
/* téléphone : cartes horizontales, plus de choix visibles d'un coup */
@media (max-width:560px){
  .sv-grille{grid-template-columns:1fr;gap:12px}
  .sv-grille .ev{flex-direction:row;border-radius:16px;min-height:118px}
  .sv-grille .ev-img{flex:0 0 38%;aspect-ratio:auto}
  .sv-grille .ev-cat{top:8px;left:8px;font-size:10.5px;padding:4px 8px}
  .sv-grille .ev-date{bottom:8px;left:8px;padding:4px 7px;font-size:10px}
  .sv-grille .ev-date b{font-size:15px}
  .sv-grille .ev-corps{padding:10px 12px 12px;gap:4px}
  .sv-grille .ev-corps h3{font-size:15.5px}
  .sv-grille .ev-corps p{font-size:13px;-webkit-line-clamp:2}
  .sv-grille .ev-pied{padding-top:6px}
  .sv-grille .ev-pied b{font-size:14.5px}
  .sv-grille .ev-pied em{padding:7px 11px;font-size:12.5px}
}

/* ---------- 3. Commande ---------- */
.sv-commande{scroll-margin-top:66px;padding:clamp(16px,2.6vw,28px) 0 clamp(28px,4vw,48px);background:#f5f8fc;border-top:1px solid #e3e9f1;border-bottom:1px solid #e3e9f1}
.sv-commande[hidden]{display:none!important}
body.sv-page:not(.sv-cmd-ouverte) .sx-barre{display:none!important}
.sv-choix{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.sv-choix span{font-size:14px;color:#5b6a82}
.sv-choix b{display:block;font:600 clamp(19px,2.2vw,26px)/1.2 var(--luxe,"Playfair Display",serif);color:var(--anthracite,#0b2447)}
.sv-changer{appearance:none;border:1px solid #cfd8e5;background:#fff;color:var(--anthracite,#0b2447);border-radius:999px;padding:9px 16px;font:600 13.5px var(--titre,system-ui);cursor:pointer}
.sv-changer:hover{border-color:var(--anthracite,#0b2447)}

/* ---------- 4. Bon à savoir (bas de page) ---------- */
.sv-infos{background:var(--sable,#f4efe7);padding:clamp(30px,5vw,56px) 0;scroll-margin-top:70px}
.sv-infos>.cadre>h2{margin:0 0 6px;font:600 clamp(24px,2.6vw,32px)/1.15 var(--luxe,"Playfair Display",serif);color:var(--anthracite,#0b2447)}
.sv-infos>.cadre>p.sv-intro{margin:0 0 18px;color:#4a5872;max-width:760px}
.sv-pli{background:#fff;border:1px solid #e8e2d6;border-radius:16px;margin:0 0 10px;overflow:hidden}
.sv-pli>summary{list-style:none;cursor:pointer;padding:16px 18px;font:600 16px/1.3 var(--titre,system-ui);color:var(--anthracite,#0b2447);display:flex;justify-content:space-between;gap:12px;align-items:center}
.sv-pli>summary::-webkit-details-marker{display:none}
.sv-pli>summary::after{content:"+";font:400 24px/1 system-ui;color:#7a879b;transition:transform .2s}
.sv-pli[open]>summary::after{transform:rotate(45deg)}
.sv-pli>.sv-pli-corps{padding:0 18px 18px}
.sv-pli .cadre{padding:0!important;max-width:none!important;width:auto!important}
.sv-pli section,.sv-pli .ui-section{padding:0!important;margin:0!important;background:none!important}

/* ---------- Conciergerie ---------- */
.sv-grille .ev-img.sv-ico-img{aspect-ratio:16/7}
.sv-cq{display:block!important;max-width:860px}
.sv-cq[hidden],#simulateur[hidden]{display:none!important}
.sv-infos .cr-garanties,.sv-infos .cr-frise{margin:0}
.sv-infos .cq-carte-enfant{margin:0;box-shadow:none;border:0;padding:0;background:none}
@media (max-width:560px){.sv-grille .ev-img.sv-ico-img{aspect-ratio:auto}}
.sv-grille .ev-cat{max-width:calc(100% - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:560px){.sv-grille .ev-cat{max-width:calc(100% - 16px)}}
