/* Accueil v2 – Pages « Spa privatif près de [ville] » (v0.1.90). Variables : contact.css (main.cc). Tout est circonscrit à main.lp. */
.lp{--lp-max:1180px;--lp-gut:clamp(16px,4vw,40px);background:var(--navy)}
.lp h1,.lp h2,.lp h3,.lp p,.lp figure,.lp blockquote,.lp ol,.lp table{margin:0}
.lp img{display:block;max-width:none}

/* Boutons */
.lp .lp-ctas{display:flex;flex-wrap:wrap;gap:.75rem}
.lp .lp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:3.1rem;padding:0 1.6rem;border:1px solid var(--hair);border-radius:999px;font:500 .7rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-hi);text-decoration:none;transition:border-color .35s,background .35s,color .35s}
.lp .lp-btn:hover{border-color:var(--gold-hi);background:rgba(240,217,138,.08)}
.lp .lp-btn--gold{background:linear-gradient(135deg,var(--gold-hi),var(--gold-deep));border-color:transparent;color:var(--navy);font-weight:600;box-shadow:0 12px 30px rgba(212,184,92,.25)}
.lp .lp-btn--gold:hover{background:linear-gradient(135deg,#f6e3a4,var(--gold));color:var(--navy)}
.lp .lp-btn:focus-visible,.lp a:focus-visible,.lp summary:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}
.lp .lp-stars{color:var(--gold-hi);letter-spacing:.12em}

/* En-tête : titre à gauche, carte du trajet à droite */
.lp .lp-hero{position:relative;isolation:isolate;min-height:clamp(620px,92vh,880px);display:flex;align-items:center;padding:calc(var(--cc-nav,96px) + 2.5rem) var(--lp-gut) 4.5rem;overflow:hidden}
.lp .lp-hero__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 55%;transform:scale(1.04)}
.lp .lp-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,17,31,.92) 0%,rgba(7,17,31,.72) 42%,rgba(7,17,31,.35) 100%),linear-gradient(180deg,rgba(10,22,40,.2) 60%,var(--navy) 100%)}
.lp .lp-hero__in{width:100%;max-width:var(--lp-max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.lp .lp-hero__title{font-family:var(--serif);font-weight:400;color:var(--text);line-height:.98}
.lp .lp-hero__l1{display:block;font-size:clamp(2.9rem,6.4vw,5.4rem);letter-spacing:-.01em}
.lp .lp-hero__l2{display:block;margin-top:.35rem;font-size:clamp(1.9rem,3.9vw,3.2rem);font-style:italic;color:var(--gold-hi)}
.lp .lp-hero__desc{max-width:32rem;margin-top:1.6rem;font-size:1.02rem;line-height:1.75;color:var(--muted);font-weight:300}
.lp .lp-hero .lp-ctas{margin-top:2rem}
.lp .lp-hero__proof{margin-top:1.6rem;font-size:.86rem;color:var(--muted)}

/* La carte : le seul moment animé de la page */
.lp .lp-map{position:relative;padding:1.4rem 1.4rem 1.2rem;border:1px solid var(--hair);border-radius:1.6rem;background:linear-gradient(160deg,rgba(16,34,66,.72),rgba(7,17,31,.82));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 30px 60px rgba(0,0,0,.4)}
.lp .lp-map svg{display:block;width:100%;height:auto;overflow:hidden;border-radius:.9rem}
.lp .lp-map__coast{fill:none;stroke:rgba(240,217,138,.45);stroke-width:1.2}
.lp .lp-map__sea-label{font:italic 13px var(--serif);fill:rgba(244,239,226,.42);letter-spacing:.04em}
.lp .lp-map__road{fill:none;stroke:rgba(244,239,226,.16);stroke-width:2;stroke-dasharray:2 5;stroke-linecap:round}
.lp .lp-map__route{fill:none;stroke:url(#lpGold);stroke-width:3.2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;filter:drop-shadow(0 0 6px rgba(240,217,138,.55))}
.lp .lp-map__town circle{fill:rgba(244,239,226,.55)}
.lp .lp-map__town text{font:500 11px var(--sans);fill:rgba(244,239,226,.7);letter-spacing:.06em}
.lp .lp-map__town.is-from circle{fill:var(--gold-hi)}
.lp .lp-map__town.is-from text{font-size:13px;fill:var(--text)}
.lp .lp-map__spa circle{fill:var(--gold-hi)}
.lp .lp-map__spa .lp-map__halo{fill:rgba(240,217,138,.18);transform-box:fill-box;transform-origin:center}
.lp .lp-map__spa text{font:italic 600 16px var(--serif);fill:var(--gold-hi)}
.lp .lp-map__cap{margin-top:.6rem;text-align:center;font-family:var(--serif);font-size:1.15rem;color:var(--muted)}
.lp .lp-map__cap strong{font-weight:500;font-size:1.6rem;color:var(--gold-hi);margin-right:.3rem;font-variant-numeric:lining-nums}
@media (prefers-reduced-motion:no-preference){
	.lp .lp-map__route{stroke-dashoffset:1;animation:lpDraw 2.4s cubic-bezier(.65,0,.35,1) .5s forwards}
	.lp .lp-map__spa .lp-map__halo{opacity:0;animation:lpHalo 2.6s ease-out 2.7s infinite}
	.lp .lp-map__spa > circle:not(.lp-map__halo),.lp .lp-map__spa text{opacity:0;animation:lpIn .6s ease-out 2.6s forwards}
}
@keyframes lpDraw{to{stroke-dashoffset:0}}
@keyframes lpHalo{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(1.6)}}
@keyframes lpIn{to{opacity:1}}

/* Bande panoramique plein écran */
.lp .lp-pano{position:relative;isolation:isolate;min-height:clamp(380px,62vh,620px);display:flex;align-items:flex-end;padding:0 var(--lp-gut) clamp(2.5rem,6vw,4.5rem);overflow:hidden}
.lp .lp-pano__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.lp .lp-pano::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--navy) 0%,rgba(10,22,40,0) 30%,rgba(10,22,40,.15) 55%,rgba(7,17,31,.88) 100%)}
.lp .lp-pano__txt{width:100%;max-width:var(--lp-max);margin:0 auto}
.lp .lp-pano__txt p{max-width:38rem;font-family:var(--serif);font-size:clamp(1.6rem,3.2vw,2.5rem);line-height:1.25;color:var(--text)}

/* Sections */
.lp .lp-sec{max-width:var(--lp-max);margin:0 auto;padding:clamp(4.5rem,9vw,7.5rem) var(--lp-gut) 0}
.lp .lp-h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,4.6vw,3.4rem);line-height:1.08;color:var(--text);text-align:center}
.lp .lp-sub{margin:.9rem auto 0;max-width:36rem;text-align:center;font-size:.98rem;line-height:1.6;color:var(--muted);font-weight:300}
.lp .lp-sec > .lp-h2 + .lp-sub + *,.lp .lp-sec > .lp-h2 + :not(.lp-sub){margin-top:clamp(2.2rem,5vw,3.4rem)}

/* Mosaïque éditoriale : une grande image, trois plus petites */
.lp .lp-mosaic{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:12px;height:clamp(520px,56vw,700px)}
.lp .lp-tile{position:relative;overflow:hidden;border-radius:6px;background:#0c1a36}
.lp .lp-tile--xl{grid-row:span 2}
.lp .lp-tile:nth-child(2){grid-column:span 2}
.lp .lp-tile__img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.lp .lp-tile:hover .lp-tile__img{transform:scale(1.035)}
.lp .lp-tile figcaption{position:absolute;inset:auto 0 0 0;padding:3.5rem 1.4rem 1.3rem;background:linear-gradient(180deg,rgba(7,17,31,0),rgba(7,17,31,.9))}
.lp .lp-tile h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.35rem,2vw,1.75rem);color:var(--text)}
.lp .lp-tile--xl h3{font-size:clamp(1.7rem,2.8vw,2.3rem)}
.lp .lp-tile p{margin-top:.35rem;max-width:30rem;font-size:.9rem;line-height:1.55;color:var(--muted);font-weight:300}
/* Tuile hammam + sauna : une photo, deux légendes (hammam à gauche, sauna à droite, comme sur la photo). */
.lp .lp-tile.lp-tile--duo{grid-column:span 2}
.lp .lp-tile--duo .lp-tile__img{object-position:center 55%}
.lp .lp-tile:nth-child(2) .lp-tile__img{object-position:center 35%}
/* EVJF : cadrage à gauche, sur le hammam et le sauna plutôt que sur les transats. */
.lp .lp-occ__item:nth-child(2) .lp-occ__img{object-position:0 50%}
.lp .lp-tile--duo figcaption{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:end}
.lp .lp-tile--duo figcaption>div:last-child{text-align:right}
.lp .lp-tile--duo figcaption>div:last-child p{margin-left:auto}

/* Occasions */
.lp .lp-occ{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.2rem,3vw,2.4rem)}
.lp .lp-occ__img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.lp .lp-occ__item h3{margin-top:1.3rem;font-family:var(--serif);font-weight:500;font-size:1.6rem;color:var(--gold-hi)}
.lp .lp-occ__item p{margin-top:.5rem;font-size:.95rem;line-height:1.7;color:var(--muted);font-weight:300}

/* Avis */
.lp .lp-voices__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,4vw,3.5rem)}
.lp .lp-voice{padding-top:1.4rem;border-top:1px solid var(--hair)}
.lp .lp-voice p{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.45;color:var(--text)}
.lp .lp-voice cite{display:block;margin-top:1rem;font-style:normal;font-size:.82rem;color:var(--faint)}

/* Tarifs : deux cartes « menu » */
.lp .lp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lp .lp-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.2rem,3vw,2rem)}
.lp .lp-carte{position:relative;display:flex;flex-direction:column;border:1px solid var(--hair);border-radius:10px;background:linear-gradient(180deg,rgba(18,38,74,.55),rgba(7,17,31,.6));overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.28)}
.lp .lp-carte::after{content:'';position:absolute;inset:7px;border:1px solid rgba(240,217,138,.14);border-radius:6px;pointer-events:none}
.lp .lp-carte__media{aspect-ratio:16/8;overflow:hidden}
.lp .lp-carte__img{width:100%;height:100%;object-fit:cover}
.lp .lp-carte__body{padding:clamp(1.5rem,3vw,2.3rem) clamp(1.3rem,3vw,2.3rem) clamp(1.6rem,3vw,2.3rem)}
.lp .lp-carte__title{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,3vw,2.4rem);color:var(--text);text-align:center}
.lp .lp-carte__sub{margin:.5rem auto 0;max-width:26rem;text-align:center;font-size:.9rem;line-height:1.6;color:var(--muted);font-weight:300}
.lp .lp-carte__legend,.lp .lp-carte__row{display:grid;grid-template-columns:minmax(0,1fr) 6.2rem 7.6rem;gap:.8rem;align-items:baseline}
.lp .lp-carte__legend{margin-top:1.8rem;padding-bottom:.7rem;border-bottom:1px solid var(--hair);font-size:.74rem;line-height:1.35;color:var(--gold);text-align:right}
.lp .lp-carte__rows{margin:0}
.lp .lp-carte__row{padding:1.05rem 0;border-bottom:1px solid var(--hair-soft)}
.lp .lp-carte__row:last-child{border-bottom:0}
.lp .lp-carte__row dt{font-family:var(--serif);font-size:1.4rem;color:var(--text)}
.lp .lp-carte__row dt small{display:block;margin-top:.2rem;font-family:var(--sans);font-size:.76rem;line-height:1.45;color:var(--faint);font-weight:300}
.lp .lp-carte__row dd{margin:0;text-align:right;font-family:var(--serif);font-size:1.55rem;color:var(--gold-hi);font-variant-numeric:lining-nums;white-space:nowrap}
.lp .lp-carte__row.is-star{margin:0 -1rem;padding:1.05rem 1rem;border-radius:6px;background:linear-gradient(90deg,rgba(240,217,138,.1),rgba(240,217,138,.02));border-bottom:0}
.lp .lp-carte__badge{display:inline-block;margin-left:.4rem;padding:.2rem .6rem;border-radius:999px;background:linear-gradient(135deg,var(--gold-hi),var(--gold-deep));font:600 .62rem var(--sans);letter-spacing:.06em;color:var(--navy);vertical-align:middle}
.lp .lp-inclus{margin:clamp(2rem,4vw,3rem) auto 0;max-width:860px;text-align:center}
.lp .lp-inclus__t{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--gold-hi)}
.lp .lp-inclus ul{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.6rem}
.lp .lp-inclus li{position:relative;font-size:.92rem;color:var(--muted);font-weight:300}
.lp .lp-inclus li+li::before{content:'';position:absolute;left:-.95rem;top:.55em;width:5px;height:5px;transform:rotate(45deg);background:var(--gold)}
.lp .lp-groupe{margin:1.4rem auto 0;max-width:40rem;text-align:center;font-family:var(--serif);font-size:1.2rem;line-height:1.5;color:var(--text)}
.lp .lp-prices__cta{justify-content:center;margin-top:2rem}

/* Votre arrivée : fil doré qui s'illumine, photo de nuit qui reste à l'écran */
.lp .lp-arrive{max-width:var(--lp-max);margin:0 auto;padding:clamp(4.5rem,9vw,7.5rem) var(--lp-gut) 0}
.lp .lp-arrive__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.lp .lp-h2--left,.lp .lp-sub--left{text-align:left;margin-left:0}
.lp .lp-journey{list-style:none;position:relative;margin:clamp(2.2rem,4vw,3rem) 0 0;padding:0 0 0 2.6rem;--lp-fill:0}
.lp .lp-journey::before,.lp .lp-journey::after{content:'';position:absolute;left:.55rem;top:.6rem;width:1px;bottom:3.2rem;background:rgba(240,217,138,.16)}
.lp .lp-journey::after{bottom:auto;height:calc((100% - 3.8rem) * var(--lp-fill));background:linear-gradient(180deg,var(--gold-deep),var(--gold-hi));box-shadow:0 0 10px rgba(240,217,138,.6);transition:height 1.2s cubic-bezier(.16,1,.3,1)}
.lp .lp-journey__step{position:relative;padding:0 0 clamp(1.8rem,3.5vw,2.6rem)}
.lp .lp-journey__step::before{content:'';position:absolute;left:-2.6rem;top:.25rem;width:1.15rem;height:1.15rem;border-radius:50%;border:1px solid var(--hair);background:var(--navy);transition:background .6s,box-shadow .6s,border-color .6s}
.lp .lp-journey__time{display:block;font-size:.78rem;color:var(--gold);font-variant-numeric:lining-nums}
.lp .lp-journey__step h3{margin-top:.2rem;font-family:var(--serif);font-weight:500;font-size:1.55rem;color:var(--text)}
.lp .lp-journey__step p{margin-top:.35rem;max-width:30rem;font-size:.95rem;line-height:1.65;color:var(--muted);font-weight:300}
.lp .lp-journey__step.is-last h3{font-style:italic;font-size:1.9rem;color:var(--gold-hi)}
.lp .lp-journey.is-live .lp-journey__step{opacity:.38;transition:opacity .8s}
.lp .lp-journey .lp-journey__step.is-lit{opacity:1}
.lp .lp-journey__step.is-lit::before{background:var(--gold-hi);border-color:var(--gold-hi);box-shadow:0 0 0 5px rgba(240,217,138,.14),0 0 18px rgba(240,217,138,.6)}
.lp .lp-arrive__addr{margin-top:.4rem;font-family:var(--serif);font-size:1.2rem;color:var(--text)}
.lp .lp-arrive .lp-ctas{margin-top:1.2rem}
.lp .lp-arrive__media{position:sticky;top:calc(var(--cc-nav,96px) + 1.5rem);border-radius:10px;overflow:hidden;border:1px solid var(--hair);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.lp .lp-arrive__media::after{content:'';position:absolute;inset:7px;border:1px solid rgba(240,217,138,.16);border-radius:6px;pointer-events:none}
.lp .lp-arrive__img{width:100%;height:clamp(420px,70vh,640px);object-fit:cover}
.lp .lp-arrive__media figcaption{position:absolute;left:0;right:0;bottom:0;padding:3rem 1.4rem 1.2rem;background:linear-gradient(180deg,rgba(7,17,31,0),rgba(7,17,31,.85));font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--text)}

/* Questions fréquentes */
.lp .lp-faq{max-width:860px}
.lp .lp-q{border-bottom:1px solid var(--hair-soft)}
.lp .lp-faq .lp-h2 + .lp-q{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--hair-soft)}
.lp .lp-q summary{list-style:none;cursor:pointer;position:relative;padding:1.3rem 2.5rem 1.3rem 0;font-family:var(--serif);font-size:1.3rem;color:var(--text)}
.lp .lp-q summary::-webkit-details-marker{display:none}
.lp .lp-q summary::after{content:'+';position:absolute;right:.4rem;top:50%;transform:translateY(-50%);font:300 1.4rem var(--sans);color:var(--gold)}
.lp .lp-q[open] summary::after{content:'–'}
.lp .lp-q p{padding:0 0 1.4rem;max-width:44rem;font-size:.98rem;line-height:1.75;color:var(--muted);font-weight:300}

/* Fin de page plein écran */
.lp .lp-final{position:relative;isolation:isolate;margin-top:clamp(4.5rem,9vw,7.5rem);min-height:clamp(440px,70vh,640px);display:grid;place-items:center;padding:4rem var(--lp-gut);text-align:center;overflow:hidden}
.lp .lp-final__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.lp .lp-final::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--navy) 0%,rgba(10,22,40,.55) 30%,rgba(7,17,31,.7) 100%)}
.lp .lp-final__in{max-width:44rem}
.lp .lp-final__title{font-family:var(--serif);font-weight:400;font-size:clamp(2.3rem,5vw,3.8rem);line-height:1.08;color:var(--text)}
.lp .lp-final__in > p{margin-top:1rem;color:var(--muted);font-weight:300}
.lp .lp-final .lp-ctas{justify-content:center;margin-top:2rem}

@media (max-width:980px){
	.lp .lp-hero__in{grid-template-columns:1fr}
	.lp .lp-hero{min-height:0;padding-bottom:3.5rem}
	.lp .lp-map{max-width:560px}
	.lp .lp-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto;height:auto}
	.lp .lp-tile--xl{grid-column:span 2;grid-row:auto;aspect-ratio:16/10}
	.lp .lp-tile:nth-child(2){grid-column:span 2;aspect-ratio:16/9}
	.lp .lp-tile:nth-child(n+3){aspect-ratio:4/5}
	.lp .lp-tile.lp-tile--duo{grid-column:span 2;aspect-ratio:4/3}
	.lp .lp-occ,.lp .lp-voices__list,.lp .lp-menu,.lp .lp-arrive__in{grid-template-columns:1fr}
	.lp .lp-arrive__media{position:relative;top:auto;order:-1}
	.lp .lp-arrive__img{height:auto;aspect-ratio:4/3}
	.lp .lp-occ__img{aspect-ratio:16/10}
}
@media (max-width:560px){
	.lp .lp-hero .lp-ctas .lp-btn,.lp .lp-final .lp-ctas .lp-btn{flex:1 1 100%}
	.lp .lp-mosaic{grid-template-columns:1fr}
	.lp .lp-tile--xl,.lp .lp-tile:nth-child(2){grid-column:auto}
	.lp .lp-tile:nth-child(n+3){aspect-ratio:16/11}
	.lp .lp-tile.lp-tile--duo{grid-column:auto;aspect-ratio:4/3}
	.lp .lp-tile--duo figcaption{gap:.8rem;padding-left:1rem;padding-right:1rem}
	.lp .lp-carte__legend,.lp .lp-carte__row{grid-template-columns:minmax(0,1fr) 4.6rem 5.6rem;gap:.5rem}
	.lp .lp-carte__legend{font-size:.66rem}
	.lp .lp-carte__row dt{font-size:1.2rem}
	.lp .lp-carte__row dd{font-size:1.3rem}
	.lp .lp-carte__badge{display:table;margin:.35rem 0 0}
	.lp .lp-map{padding:1rem .8rem .9rem}
}
.lp .lp-carte:nth-child(2) .lp-carte__img{object-position:center 88%}
