:root{
  --paper:#f7f3eb;
  --white:#fffdf8;
  --ink:#26261f;
  --forest:#26362f;
  --sage:#66766a;
  --sand:#d8c8ad;
  --line:rgba(38,38,31,.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit}
.site-header{position:fixed;z-index:50;top:0;left:0;right:0;height:78px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;color:white;background:linear-gradient(180deg,rgba(0,0,0,.48),transparent);transition:.3s ease}
.site-header.scrolled{color:var(--ink);background:rgba(255,253,248,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.brand{text-decoration:none;line-height:.9;display:inline-flex;flex-direction:column}
.brand span{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:1rem}
.brand strong{font-family:Georgia,'Times New Roman',serif;text-transform:uppercase;letter-spacing:.18em;font-size:.94rem;margin-top:.35rem}
.site-header nav{display:flex;align-items:center;gap:1.6rem}
.site-header nav a{text-decoration:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.11em}
.nav-cta{border:1px solid currentColor;padding:.65rem .95rem}
.menu-toggle{display:none;border:0;background:transparent;color:inherit;font:inherit;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}
.hero{height:100vh;min-height:650px;position:relative;color:white}
.hero img{object-position:center 48%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.57) 0%,rgba(0,0,0,.24) 48%,rgba(0,0,0,.08) 100%)}
.hero-copy{position:absolute;left:7vw;bottom:8vh;max-width:880px}
.eyebrow{margin:0 0 1.1rem;text-transform:uppercase;letter-spacing:.24em;font-weight:bold;font-size:.68rem}
.eyebrow.ink{color:var(--sage)}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:normal;line-height:1.05;margin:0}
h1{font-size:clamp(4rem,10vw,9rem);letter-spacing:-.045em}
h1 span{display:block;font-style:italic;font-size:.46em;letter-spacing:0;margin-bottom:.15em}
h2{font-size:clamp(2.7rem,5.5vw,5.6rem);letter-spacing:-.035em}
h3{font-size:clamp(1.65rem,3vw,3rem)}
.hero-tagline{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.15rem,2vw,1.65rem);margin:1.3rem 0 0}
.hero-location{margin:1.15rem 0 0;text-transform:uppercase;letter-spacing:.18em;font-weight:bold;font-size:.62rem;line-height:1.5;max-width:680px}
.scroll-cue{position:absolute;right:4vw;bottom:4vh;text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:.66rem;display:flex;gap:.8rem;align-items:center}
.scroll-cue span{font-size:1.25rem}
.opening{padding:10rem 8vw 11rem;max-width:1320px;margin:0 auto}
.opening h2{max-width:980px}
.opening-text{font-size:1.2rem;max-width:700px;margin:2.6rem 0 0 28%}
.signature{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(1.6rem,3vw,2.5rem);margin:6rem 0 0 52%;white-space:nowrap}
.chapter{padding:9rem 6vw}
.chapter-heading{max-width:1050px;margin:0 auto 6rem}
.chapter-heading>p:last-child{font-size:1.1rem;max-width:650px;margin:1.8rem 0 0 30%}
.chapter-heading.light{color:white}
.chapter-heading.compact{margin-bottom:4rem}
.feature-image{margin:0 auto 9rem;max-width:1380px}
.feature-image img{height:min(74vh,820px);min-height:540px}
.feature-image.offset{max-width:1120px;margin-left:13vw}
.feature-image.offset img{height:min(68vh,720px)}
.feature-image figcaption{display:grid;grid-template-columns:80px minmax(0,650px);gap:1.5rem;padding:1.8rem 0 0}
.feature-image figcaption>span,.interior-card figcaption>span{font-size:.72rem;letter-spacing:.2em;color:var(--sage);padding-top:.45rem}
.feature-image figcaption p,.interior-card figcaption p,.room-row figcaption p,.bath-grid figcaption p{margin:.8rem 0 0;max-width:550px}
.facade-feature img{object-position:center 48%}
.chapter-dark{background:var(--forest);color:white}
.interior-sequence{max-width:1380px;margin:0 auto}
.interior-card{margin:0 0 8rem}
.interior-card img{height:min(72vh,780px);min-height:520px}
.interior-card figcaption{display:grid;grid-template-columns:80px minmax(0,650px);gap:1.5rem;padding:1.8rem 0 0}
.interior-card.reverse figcaption{margin-left:42%}
.entrance-card{max-width:820px;margin-left:auto;margin-right:auto}
.entrance-card img{height:620px;object-position:center center}
.soft-section{background:var(--paper)}
.room-list{max-width:1320px;margin:0 auto}
.room-row{display:grid;grid-template-columns:1.5fr 1fr;align-items:center;gap:7vw;margin:0 0 9rem}
.room-row.reverse{grid-template-columns:1fr 1.5fr}
.room-row.reverse img{order:2}
.room-row img{height:620px}
.room-row figcaption span{text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;color:var(--sage)}
.room-row figcaption h3{margin-top:1rem}
.baths-section{background:var(--white)}
.bath-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.bath-grid figure{margin:0}
.bath-grid img{aspect-ratio:3/4}
.bath-grid figcaption{padding:1.25rem 0 0}
.bath-grid h3{font-size:1.6rem}
.story-section{background:var(--forest);color:white;padding:10rem 8vw}
.story-inner{max-width:1200px;margin:0 auto}
.story-copy{display:grid;grid-template-columns:repeat(3,1fr);gap:4rem;margin-top:5rem}
.story-copy p{margin:0;font-size:1.04rem}
.booking-section{height:82vh;min-height:650px;position:relative;color:white}
.booking-section img{object-position:center 55%}
.booking-overlay{position:absolute;inset:0;background:rgba(0,0,0,.48)}
.booking-copy{position:absolute;left:8vw;top:50%;transform:translateY(-50%);max-width:850px}
.booking-copy p:not(.eyebrow){max-width:620px;font-size:1.08rem}
.button{display:inline-block;margin-top:1.5rem;padding:.9rem 1.15rem;border:1px solid currentColor;text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem}
footer{padding:3.5rem 6vw;display:flex;justify-content:space-between;align-items:flex-end;background:var(--white);border-top:1px solid var(--line)}
footer p{margin:0;font-family:Georgia,'Times New Roman',serif;font-style:italic}
footer>a{text-decoration:none;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}
.footer-brand{color:var(--ink)}
@media(max-width:900px){
  .site-header{height:70px}
  .menu-toggle{display:block}
  .site-header nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--white);color:var(--ink);padding:2rem 5vw;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}
  .site-header nav.open{display:flex}
  .hero{min-height:600px}
  .hero-copy{left:6vw;right:6vw;bottom:9vh}
  .opening{padding:7rem 6vw}
  .opening-text,.signature,.chapter-heading>p:last-child{margin-left:0}
  .signature{white-space:normal;margin-top:4rem}
  .chapter{padding:6.5rem 5vw}
  .chapter-heading{margin-bottom:4rem}
  .feature-image,.feature-image.offset{margin:0 0 6rem;max-width:none}
  .feature-image img,.feature-image.offset img{height:auto;min-height:0;aspect-ratio:4/3}
  .feature-image figcaption,.interior-card figcaption{grid-template-columns:48px 1fr}
  .interior-card,.entrance-card{margin:0 0 6rem;max-width:none}
  .interior-card img,.entrance-card img{height:auto;min-height:0;aspect-ratio:4/3}
  .interior-card.reverse figcaption{margin-left:0}
  .room-row,.room-row.reverse{grid-template-columns:1fr;gap:1.5rem;margin-bottom:6rem}
  .room-row.reverse img{order:0}
  .room-row img{height:auto;aspect-ratio:4/3}
  .bath-grid,.story-copy{grid-template-columns:1fr}
  .bath-grid{gap:4rem}
  .bath-grid img{aspect-ratio:4/3}
  .story-section{padding:7rem 6vw}
  .story-copy{gap:2rem;margin-top:3rem}
  .booking-copy{left:6vw;right:6vw}
  footer{gap:2rem;flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  h1{font-size:3.5rem}
  h2{font-size:2.65rem}
  .hero{height:86vh}
  .hero-copy{bottom:11vh}
  .hero-location{font-size:.56rem;letter-spacing:.14em;max-width:92%}
  .scroll-cue{left:6vw;right:auto}
  .feature-image figcaption,.interior-card figcaption{grid-template-columns:1fr;gap:.6rem}
  .feature-image figcaption>span,.interior-card figcaption>span{padding:0}
}

.terrace-main-feature img{object-position:center center}
.booking-plain{background:var(--forest)}
.booking-plain .booking-overlay{background:linear-gradient(135deg,rgba(38,54,47,.96),rgba(38,54,47,.78))}

/* V11 : chambres sobres et trois photos de salles d'eau clairement visibles */
.room-row figcaption h3 {
  margin: 0;
  font-size: 1.7rem;
}
.room-row figcaption > span,
.room-row figcaption h3 + h3 {
  display: none;
}
.fifth-room-note {
  margin-top: .65rem !important;
  font-size: .9rem;
  color: var(--sage);
}
.bath-grid {
  grid-template-columns: 1fr;
  gap: 6rem;
  max-width: 1120px;
}
.bath-grid figure {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(240px, .7fr);
  gap: 3rem;
  align-items: center;
}
.bath-grid figure:nth-child(even) img {
  order: 2;
}
.bath-grid img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.bath-grid figcaption {
  padding: 0;
}
@media (max-width: 900px) {
  .bath-grid figure {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .bath-grid figure:nth-child(even) img {
    order: 0;
  }
}

/* V12 : grandes photos de chambres, sans numérotation */
.room-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 5rem;
}
.room-row {
  display: block !important;
}
.room-row img {
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.room-row figcaption {
  padding-top: 1rem;
}
.room-row figcaption h3 {
  margin: 0;
  font-size: 1.65rem;
}
.fifth-room-note {
  margin-top: .5rem !important;
  font-size: .9rem;
  color: var(--sage);
}

/* Trois visuels de salles d'eau de même format */
.bath-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 2rem !important;
  max-width: 1200px;
}
.bath-grid figure {
  display: block !important;
}
.bath-grid figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  order: initial !important;
}
.bath-grid figcaption {
  padding-top: 1rem !important;
}
@media (max-width: 900px) {
  .bath-grid {
    grid-template-columns: 1fr !important;
  }
  .bath-grid figure img {
    aspect-ratio: 4 / 3;
  }
}

/* V13 - les photos parlent */
.room-row figcaption,
.room-list figcaption{
min-height:0;
padding-top:.4rem;
}
.room-row figcaption h3,
.room-list figcaption h3{
display:none!important;
}
.room-row figcaption p:not(.fifth-room-note),
.room-list figcaption p:not(.fifth-room-note){
display:none!important;
}
.fifth-room-note{
font-style:italic;
text-align:center;
margin:.5rem 0 0;
}


/* V13.5 : seules les salles d'eau sont harmonisées */
.bath-grid,
.bathroom-gallery{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:2rem !important;
    max-width:1200px;
    margin:0 auto;
    align-items:start;
}
.bath-grid figure,
.bathroom-gallery figure,
.bathroom-card{
    display:block !important;
    margin:0;
}
.bath-grid img,
.bathroom-gallery img,
.bathroom-card img{
    width:100%;
    aspect-ratio:3/4;
    object-fit:cover;
    display:block;
}
.bath-grid figcaption,
.bathroom-gallery figcaption,
.bathroom-card figcaption{
    text-align:center;
    padding-top:.8rem;
}
@media(max-width:900px){
 .bath-grid,.bathroom-gallery{
   grid-template-columns:1fr !important;
 }
 .bath-grid img,.bathroom-gallery img,.bathroom-card img{
   aspect-ratio:4/3;
 }
}

/* V14 : rubrique dédiée « Découvrir la maison » */
.discovery-section{
  padding:10rem 8vw;
  background:var(--white);
}
.discovery-inner{
  max-width:1180px;
  margin:0 auto;
}
.discovery-heading{
  max-width:980px;
  margin-bottom:4.5rem;
}
.discovery-heading h2{
  max-width:900px;
}
.discovery-intro{
  max-width:820px;
  margin-left:22%;
  font-size:1.16rem;
}
.discovery-intro p,
.discovery-block p{
  margin:0 0 1.15rem;
}
.discovery-block{
  display:grid;
  grid-template-columns:minmax(260px,.8fr) minmax(0,1.35fr);
  gap:5vw;
  padding:4.5rem 0;
  border-top:1px solid var(--line);
}
.discovery-block h3{
  font-size:clamp(1.85rem,3vw,3rem);
}
.discovery-block ul{
  margin:0;
  padding-left:1.2rem;
}
.discovery-block li{
  margin-bottom:.65rem;
}
.discovery-last{
  padding-bottom:0;
}
@media(max-width:900px){
  .discovery-section{padding:7rem 6vw}
  .discovery-heading{margin-bottom:3rem}
  .discovery-intro{margin-left:0;font-size:1.08rem}
  .discovery-block{grid-template-columns:1fr;gap:1.5rem;padding:3.5rem 0}
}


/* V14.1 : équipements présentés par pictogrammes */
.equipment-block{
  align-items:start;
}
.equipment-heading p{
  max-width:34rem;
}
.equipment-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem 1.25rem;
  margin:0;
  padding:0;
  list-style:none;
}
.equipment-grid li{
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  margin:0;
  padding:1rem 1.05rem;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.58);
  font-weight:400;
  line-height:1.45;
}
.equipment-grid li > span:first-child{
  flex:0 0 1.7rem;
  font-size:1.3rem;
  line-height:1.35;
  text-align:center;
}
.equipment-grid li > span:last-child{
  font-weight:400;
}
@media(max-width:900px){
  .equipment-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .equipment-grid{grid-template-columns:1fr}
  .equipment-grid li{padding:.9rem}
}

.room-list{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:2rem;
max-width:1320px;
}
.room-row,.room-row.reverse{
display:block;
margin:0;
}
.room-row img{
height:360px;
width:100%;
object-fit:cover;
}
.room-row.reverse img{order:initial}
@media (max-width:900px){
.room-list{grid-template-columns:1fr}
.room-row img{height:300px}
}
html{scroll-behavior:smooth;}
nav a.active{color:var(--forest);font-weight:600;border-bottom:2px solid var(--forest);}


/* V16 — rubrique Tarifs */
.tariffs-section{padding:9rem 6vw;background:var(--paper);}
.tariffs-inner{max-width:1240px;margin:0 auto;}
.tariffs-heading{max-width:960px;margin-bottom:3.5rem;}
.tariffs-heading>p:last-child{max-width:720px;margin:1.5rem 0 0;font-size:1.08rem;}
.tariffs-table-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--white);}
.tariffs-table{width:100%;min-width:920px;border-collapse:collapse;text-align:left;}
.tariffs-table th,.tariffs-table td{padding:1.35rem 1.2rem;border-bottom:1px solid var(--line);vertical-align:middle;}
.tariffs-table thead th{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;background:var(--forest);color:white;font-weight:600;}
.tariffs-table tbody th{width:30%;font-weight:400;}
.tariffs-table tbody th strong{display:block;font-family:Georgia,'Times New Roman',serif;font-size:1.22rem;font-weight:normal;line-height:1.2;}
.tariffs-table tbody th span{display:block;margin-top:.45rem;color:var(--sage);font-size:.9rem;line-height:1.4;}
.tariffs-table tbody td{white-space:nowrap;}
.tariffs-table tbody tr:last-child th,.tariffs-table tbody tr:last-child td{border-bottom:0;}
.tariff-total{font-weight:700;}
.tariffs-consult{background:rgba(111,126,113,.09);}
.tariffs-consult td{font-family:Georgia,'Times New Roman',serif;font-size:1.25rem;font-style:italic;text-align:center;}
.tariffs-note{margin:1.2rem 0 0;font-size:.9rem;color:var(--sage);}
.tariffs-extra{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:5vw;margin-top:3.5rem;padding-top:3rem;border-top:1px solid var(--line);}
.tariffs-extra h3{font-size:clamp(1.7rem,2.7vw,2.6rem);}
.tariffs-extra p{margin:.3rem 0 0;font-size:1.05rem;}
@media(max-width:900px){.tariffs-section{padding:6.5rem 5vw;}.tariffs-heading{margin-bottom:2.5rem;}.tariffs-extra{grid-template-columns:1fr;gap:1rem;margin-top:2.5rem;padding-top:2.5rem;}}

/* V16.3 — revue visuelle après lecture du livrable */
.hero-copy,
.scroll-cue{
  text-shadow:0 2px 14px rgba(0,0,0,.78),0 1px 3px rgba(0,0,0,.9);
}
.hero-location{
  display:table;
  width:auto;
  max-width:min(760px,88vw);
  padding:.58rem .82rem;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;
  background:rgba(16,25,21,.48);
  box-shadow:0 5px 24px rgba(0,0,0,.18);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.scroll-cue{
  padding:.62rem .82rem;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(16,25,21,.46);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.discovery-heading,
.discovery-intro{
  max-width:900px;
  margin-left:0;
}
.discovery-intro{
  font-size:1.16rem;
}
.discovery-copy{
  min-width:0;
}
.discovery-copy p:last-child{
  margin-bottom:0;
}
.terraces-summary{
  align-items:start;
}
@media(max-width:900px){
  .hero-location{
    display:block;
    width:fit-content;
    border-radius:18px;
  }
  .scroll-cue{
    bottom:3vh;
  }
}
@media(max-width:560px){
  .hero-copy{
    bottom:13vh;
  }
  .hero-location{
    font-size:.54rem;
    line-height:1.55;
    padding:.52rem .68rem;
  }
  .scroll-cue{
    bottom:2.5vh;
  }
}


/* V16.4 - lisibilité de la note de la cinquième chambre */
.fifth-room-note{
  display:block!important;
  color:var(--forest)!important;
  font-size:1.05rem!important;
  font-style:normal!important;
  font-weight:500;
  line-height:1.55;
  text-align:left!important;
  margin:1rem 0 0!important;
}


/* V17 — calendrier des saisons et disponibilités */
.availability-section{padding:9rem 6vw;background:#f4f1e8;}
.availability-inner{max-width:1320px;margin:0 auto;}
.availability-heading{max-width:880px;margin-bottom:2.4rem;}
.availability-heading>p:last-child{max-width:760px;margin:1.4rem 0 0;font-size:1.08rem;}
.calendar-legend{display:flex;flex-wrap:wrap;gap:.8rem 1.25rem;margin:0 0 1.2rem;padding:1.15rem 1.25rem;background:rgba(255,255,255,.72);border:1px solid var(--line);}
.legend-item{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;}
.legend-swatch{width:18px;height:18px;border-radius:4px;border:1px solid rgba(38,55,45,.14);}
.legend-swatch.season-winter{background:#dce8ee;}
.legend-swatch.season-summer{background:#eee1bd;}
.legend-swatch.season-rest{background:#dfe7dc;}
.reserved-legend i{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--forest);color:#fff;font-style:normal;font-weight:700;}
.calendar-note{max-width:900px;margin:0 0 2.2rem;color:var(--sage);font-size:.92rem;line-height:1.55;}
.calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.35rem;align-items:start;}
.calendar-month{background:rgba(255,255,255,.88);border:1px solid var(--line);box-shadow:0 12px 34px rgba(38,55,45,.06);}
.calendar-month h3{margin:0;padding:1.05rem 1.15rem;background:var(--forest);color:#fff;font-size:1.45rem;}
.calendar-month ul{list-style:none;margin:0;padding:0;}
.calendar-week{position:relative;padding:1rem 1.05rem;border-bottom:1px solid var(--line);border-left:6px solid transparent;}
.calendar-week:last-child{border-bottom:0;}
.calendar-week.season-winter{background:#edf4f7;border-left-color:#8aa9ba;}
.calendar-week.season-summer{background:#faf3df;border-left-color:#c5a352;}
.calendar-week.season-rest{background:#eff4ed;border-left-color:#8ca086;}
.week-main{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;}
.week-date{font-weight:650;font-size:.96rem;line-height:1.35;}
.week-price{white-space:nowrap;font-family:Georgia,'Times New Roman',serif;font-size:1.05rem;}
.week-meta{display:flex;flex-wrap:wrap;gap:.42rem .55rem;align-items:center;margin-top:.55rem;}
.availability{display:inline-flex;align-items:center;border-radius:999px;padding:.24rem .55rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.availability.available{background:rgba(255,255,255,.78);color:var(--forest);border:1px solid rgba(38,55,45,.18);}
.school-note{font-size:.72rem;color:#5f6e64;}
.calendar-week[data-status="reserved"]{background:#fff!important;border-left-color:#6d726f!important;color:inherit;}
.calendar-week[data-status="reserved"] .availability{font-size:0;background:var(--forest);color:white;border:0;width:25px;height:25px;padding:0;display:inline-grid;place-items:center;}
.calendar-week[data-status="reserved"] .availability:after{content:'✓';font-size:1rem;}
.calendar-week[data-status="reserved"] .week-price{text-decoration:line-through;opacity:.55;}
@media(max-width:1050px){.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:680px){.availability-section{padding:6.5rem 5vw;}.calendar-grid{grid-template-columns:1fr;}.calendar-legend{display:grid;}.calendar-month h3{font-size:1.3rem;}.week-date{font-size:.93rem;}}


/* V17.1 — palette définitive du calendrier */
.legend-swatch.season-winter{background:#e6a6b8!important;border-color:#c97d92!important;}
.legend-swatch.season-summer{background:#f3d76a!important;border-color:#d6b943!important;}
.legend-swatch.season-rest{background:#b9d8eb!important;border-color:#83b5d1!important;}
.reserved-legend i{display:inline-grid!important;place-items:center!important;width:26px!important;height:26px!important;border-radius:6px!important;background:#34383d!important;color:#fff!important;font-size:15px!important;}

.calendar-week.season-winter{background:#f3cbd6!important;border-left-color:#c97d92!important;color:#44232d!important;}
.calendar-week.season-summer{background:#f8e89b!important;border-left-color:#d6b943!important;color:#40350a!important;}
.calendar-week.season-rest{background:#d8ebf6!important;border-left-color:#83b5d1!important;color:#173847!important;}

/* Le prix figure dans la légende : les cases restent épurées. */
.calendar-week .week-price{display:none!important;}
.calendar-week[data-status="available"] .availability{display:none!important;}

/* Semaine réservée : contraste maximal */
.calendar-week[data-status="reserved"]{
  background:#34383d!important;
  border-left-color:#15181b!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.12);
}
.calendar-week[data-status="reserved"] .week-main{justify-content:flex-start;}
.calendar-week[data-status="reserved"] .week-date{color:#fff!important;font-weight:700;}
.calendar-week[data-status="reserved"] .week-meta{margin-top:.7rem;}
.calendar-week[data-status="reserved"] .availability{
  display:inline-flex!important;
  align-items:center!important;
  gap:.42rem!important;
  width:auto!important;
  height:auto!important;
  padding:.4rem .68rem!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#24282c!important;
  border:0!important;
  font-size:.86rem!important;
  font-weight:800!important;
  letter-spacing:.01em!important;
}
.calendar-week[data-status="reserved"] .availability:after{content:none!important;}
.calendar-week[data-status="reserved"] .school-note{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.2)!important;
}


/* V17.4 — Tarifs 2027 et calendrier mensuel compact */
.tariff-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:0 0 4rem;}
.tariff-card{position:relative;display:grid;grid-template-columns:12px 1fr;gap:1.2rem;padding:2rem 1.8rem;background:var(--white);border:1px solid var(--line);box-shadow:0 12px 30px rgba(38,55,45,.05);}
.tariff-color{display:block;width:12px;height:100%;min-height:138px;border-radius:999px;}
.tariff-high .tariff-color{background:#c49a5a;}
.tariff-school .tariff-color{background:#dcc47a;}
.tariff-off .tariff-color{background:#d4c9b6;}
.tariff-card h3{font-size:1.65rem;margin:0 0 .65rem;}
.tariff-card>div>p:last-child{margin:.7rem 0 0;color:var(--sage);line-height:1.5;}
.tariff-amount{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:2rem;line-height:1.1;}
.tariff-amount span{font-family:Arial,Helvetica,sans-serif;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage);}
.tariffs-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;}
.tariff-detail{padding:2rem;background:rgba(255,255,255,.7);border:1px solid var(--line);}
.tariff-detail h3{font-size:1.8rem;margin-bottom:1.2rem;}
.tariff-detail p{margin:.4rem 0;}
.service-list{margin:0;}
.service-list>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.75fr);gap:1rem;padding:1rem 0;border-top:1px solid var(--line);}
.service-list>div:first-child{border-top:0;padding-top:0;}
.service-list dt{font-weight:700;}
.service-list dt em,.included-list em{font-weight:400;color:var(--sage);}
.service-list dd{margin:0;text-align:right;}
.service-list .service-description dd{font-size:.92rem;color:var(--sage);}
.included-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1.5rem;list-style:none;padding:0;margin:0;}
.included-list li:before{content:'✓';margin-right:.55rem;font-weight:700;color:var(--forest);}
.practical-block ul{margin:0;padding-left:1.2rem;}
.practical-block li+li{margin-top:.7rem;}

.availability-section{padding:9rem 6vw;background:#f4f1e8;}
.availability-inner{max-width:980px;margin:0 auto;}
.availability-heading{max-width:850px;margin-bottom:2.4rem;}
.calendar-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1.2rem;margin:0 0 1.1rem;padding:1.15rem 1.25rem;background:rgba(255,255,255,.72);border:1px solid var(--line);}
.legend-swatch{width:22px;height:14px;border-radius:3px;border:1px solid rgba(38,55,45,.16);}
.legend-swatch.season-high{background:#c49a5a!important;border-color:#ab8146!important;}
.legend-swatch.season-school{background:#dcc47a!important;border-color:#c3a956!important;}
.legend-swatch.season-off{background:#d4c9b6!important;border-color:#b9ad99!important;}
.legend-swatch.season-reserved{background:#646b6d!important;border-color:#4e5557!important;}
.calendar-note{max-width:900px;margin:0 0 1.8rem;color:var(--sage);font-size:.92rem;line-height:1.55;}
.calendar-scroll{display:flex;flex-direction:column;gap:1rem;max-height:72vh;overflow-y:auto;padding:0 .55rem .25rem 0;scrollbar-color:#a69b88 transparent;scrollbar-width:thin;}
.calendar-month{background:rgba(255,255,255,.92);border:1px solid var(--line);box-shadow:none;}
.calendar-month h3{position:sticky;top:0;z-index:2;margin:0;padding:.8rem 1.15rem;background:var(--forest);color:#fff;font-size:1.35rem;}
.calendar-month ul{list-style:none;margin:0;padding:.75rem;display:grid;gap:.42rem;}
.calendar-week{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:42px;padding:.65rem .85rem;border:0!important;border-radius:6px;color:var(--ink)!important;}
.calendar-week.season-high{background:#c49a5a!important;}
.calendar-week.season-school{background:#dcc47a!important;}
.calendar-week.season-off{background:#d4c9b6!important;}
.calendar-week[data-status="reserved"]{background:#646b6d!important;color:#fff!important;box-shadow:none!important;}
.calendar-week[data-status="reserved"] .week-date{color:#fff!important;}
.week-date{font-weight:700;font-size:.94rem;line-height:1.3;}
.week-season,.week-status{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;white-space:nowrap;}
.week-season{color:rgba(38,38,31,.72);}
.week-status{color:#fff;}

@media(max-width:980px){
  .tariff-cards{grid-template-columns:1fr;}
  .tariff-color{min-height:100px;}
  .tariffs-details{grid-template-columns:1fr;}
}
@media(max-width:680px){
  .calendar-legend{grid-template-columns:1fr;}
  .calendar-scroll{max-height:68vh;padding-right:.25rem;}
  .calendar-week{align-items:flex-start;flex-direction:column;gap:.15rem;padding:.65rem .75rem;}
  .week-season,.week-status{font-size:.66rem;}
  .service-list>div{grid-template-columns:1fr;gap:.25rem;}
  .service-list dd{text-align:left;}
  .included-list{grid-template-columns:1fr;}
}


/* V17.5 — clarification des conditions, palette contrastée et contact */
.tariff-high .tariff-color{background:#d58a3a!important;}
.tariff-school .tariff-color{background:#f2d15c!important;}
.tariff-off .tariff-color{background:#d8c3a5!important;}
.option-block{background:#fffdf8;}
.legend-swatch.season-high{background:#d58a3a!important;border-color:#a96022!important;}
.legend-swatch.season-school{background:#f2d15c!important;border-color:#c6a62e!important;}
.legend-swatch.season-off{background:#d8c3a5!important;border-color:#ad9472!important;}
.legend-swatch.season-reserved{background:#566066!important;border-color:#394247!important;}
.calendar-week.season-high{background:#d58a3a!important;color:#2f1907!important;}
.calendar-week.season-school{background:#f2d15c!important;color:#3d3105!important;}
.calendar-week.season-off{background:#d8c3a5!important;color:#30261c!important;}
.calendar-week[data-status="reserved"]{background:#566066!important;color:#fff!important;}
.calendar-week[data-status="reserved"] .week-date,
.calendar-week[data-status="reserved"] .week-status{color:#fff!important;}
.booking-email{margin:1.25rem 0!important;font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.25rem,2.3vw,1.9rem)!important;}
.booking-email a{color:inherit;text-decoration:underline;text-underline-offset:.2em;}
.booking-help{font-size:.92rem!important;opacity:.88;max-width:650px;}

/* V17.6 — visibilité des photos, calendrier plus vivant et accès à la réservation */
.fifth-room-note{
  display:block!important;
  color:#24352c!important;
  background:#fffaf0;
  border-left:5px solid #b56a42;
  padding:1rem 1.15rem;
  font-size:1.12rem!important;
  font-weight:700!important;
  line-height:1.5;
  text-align:left!important;
  margin:1rem 0 0!important;
  box-shadow:0 8px 24px rgba(38,55,45,.08);
}
.fifth-room-placeholder{
  min-height:360px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#eee5d7,#d9c8af);
  border:1px solid #c9b89e;
  color:#5c4935;
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.25rem;
  letter-spacing:.04em;
}
.fifth-room-placeholder span{padding:1rem 1.25rem;background:rgba(255,255,255,.7);}

/* Palette plus lumineuse et immédiatement différenciable */
.tariff-high .tariff-color,
.legend-swatch.season-high,
.calendar-week.season-high{background:#e98563!important;border-color:#bb5a3c!important;color:#35160d!important;}
.tariff-school .tariff-color,
.legend-swatch.season-school,
.calendar-week.season-school{background:#f6ce4f!important;border-color:#c99e18!important;color:#332800!important;}
.tariff-off .tariff-color,
.legend-swatch.season-off,
.calendar-week.season-off{background:#a8d9df!important;border-color:#6aadb6!important;color:#143238!important;}
.legend-swatch.season-reserved,
.calendar-week[data-status="reserved"]{background:#46545c!important;border-color:#26343b!important;color:#fff!important;}
.calendar-week{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);}

/* Défilement interne rendu évident */
.calendar-scroll-hint{
  margin:1.1rem 0 0!important;
  font-weight:800;
  color:#314d40;
  font-size:.96rem!important;
}
.calendar-scroll{
  max-height:70vh;
  overflow-y:scroll!important;
  padding-right:1rem!important;
  scrollbar-width:auto!important;
  scrollbar-color:#7d4c34 #e7ded0!important;
  border:2px solid #cdbda7;
  border-radius:8px;
  background:#fffdf9;
  padding-top:.8rem!important;
  padding-left:.8rem!important;
  padding-bottom:.8rem!important;
}
.calendar-scroll::-webkit-scrollbar{width:16px;}
.calendar-scroll::-webkit-scrollbar-track{background:#e7ded0;border-left:1px solid #cdbda7;}
.calendar-scroll::-webkit-scrollbar-thumb{background:#7d4c34;border-radius:10px;border:3px solid #e7ded0;}
.calendar-scroll::-webkit-scrollbar-thumb:hover{background:#603721;}
.calendar-to-booking{text-align:center;margin:2rem 0 0;}
.button-dark{color:#fff!important;background:#2d4a3b;border-color:#2d4a3b!important;}
.button-dark:hover{background:#1f352a;}
#reserver{scroll-margin-top:80px;}

@media(max-width:680px){
  .calendar-scroll{max-height:64vh;padding-right:.7rem!important;}
  .calendar-scroll::-webkit-scrollbar{width:12px;}
  .fifth-room-placeholder{min-height:240px;}
}


/* V18 — calendrier final : palette chaleureuse et très différenciée */
.legend-swatch.season-high,
.calendar-week.season-high{
  background:#d98265!important;
  border-color:#a94f34!important;
  color:#32150c!important;
}
.legend-swatch.season-school,
.calendar-week.season-school{
  background:#f0cf58!important;
  border-color:#b99017!important;
  color:#332800!important;
}
.legend-swatch.season-off,
.calendar-week.season-off{
  background:#a9d8d4!important;
  border-color:#5da6a1!important;
  color:#123331!important;
}
.legend-swatch.season-reserved,
.calendar-week[data-status="reserved"]{
  background:#d9dee0!important;
  border-color:#69757a!important;
  color:#263136!important;
  box-shadow:inset 0 0 0 2px #69757a!important;
}
.calendar-week[data-status="reserved"] .week-date,
.calendar-week[data-status="reserved"] .week-status{
  color:#263136!important;
  font-weight:800!important;
}
.calendar-week{
  border-radius:8px!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.48)!important;
}
.calendar-scroll-hint{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:1rem!important;
  margin:0 0 .75rem!important;
  padding:.75rem 1rem!important;
  background:#fffaf1!important;
  border:1px solid #c8aa7a!important;
  color:#563d24!important;
  font-weight:700!important;
}
.calendar-scroll-hint::after{
  content:'↓';
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#7d4c34;
  color:#fff;
  font-size:1.1rem;
  flex:0 0 auto;
}
.calendar-scroll{
  border:2px solid #b99b72!important;
  border-radius:10px!important;
  background:#f8f3ea!important;
  box-shadow:0 14px 30px rgba(72,51,31,.10)!important;
}
.calendar-scroll::-webkit-scrollbar{width:18px!important;}
.calendar-scroll::-webkit-scrollbar-track{background:#efe4d3!important;border-left:1px solid #ccb995!important;}
.calendar-scroll::-webkit-scrollbar-thumb{background:#7d4c34!important;border-radius:10px!important;border:4px solid #efe4d3!important;}
.calendar-scroll::-webkit-scrollbar-thumb:hover{background:#59341f!important;}

/* V18 — lisibilité de la cinquième chambre */
.fifth-room-note{
  color:#26372d!important;
  opacity:1!important;
  font-size:1.08rem!important;
  font-weight:700!important;
  line-height:1.5!important;
}

/* V18 — accès Réserver cohérent avec les autres rubriques */
#reserver{scroll-margin-top:92px!important;}
.nav-cta{display:inline-flex!important;align-items:center!important;justify-content:center!important;}

/* V18.1 — calendrier allégé : semaines blanches, tarif en cartouche */
.calendar-week[data-status="available"]{
  background:#fff!important;
  background-image:none!important;
  color:var(--ink)!important;
  border:1px solid #ddd5c8!important;
  box-shadow:0 3px 10px rgba(54,45,34,.035)!important;
}
.calendar-week[data-status="available"]:hover{
  border-color:#bcae98!important;
  box-shadow:0 6px 16px rgba(54,45,34,.075)!important;
}
.calendar-week[data-status="available"] .week-date{
  color:#26352d!important;
}
.calendar-week[data-status="available"] .week-season{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:138px;
  padding:.42rem .72rem;
  border-radius:999px;
  border:1px solid transparent;
  font-size:.72rem!important;
  letter-spacing:.025em!important;
  line-height:1.1;
  text-transform:none!important;
  color:#2d2a24!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
}
.calendar-week.season-high[data-status="available"] .week-season{
  background:#d98265!important;
  border-color:#a94f34!important;
  color:#32150c!important;
}
.calendar-week.season-school[data-status="available"] .week-season{
  background:#f0cf58!important;
  border-color:#b99017!important;
  color:#332800!important;
}
.calendar-week.season-off[data-status="available"] .week-season{
  background:#a9d8d4!important;
  border-color:#5da6a1!important;
  color:#123331!important;
}
.legend-swatch.season-reserved{
  background:#46545c!important;
  border-color:#26343b!important;
}
@media(max-width:680px){
  .calendar-week[data-status="available"]{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:.7rem!important;
  }
  .calendar-week[data-status="available"] .week-season{
    min-width:116px;
    padding:.38rem .58rem;
    font-size:.66rem!important;
  }
}
@media(max-width:460px){
  .calendar-week[data-status="available"]{
    flex-direction:column!important;
    align-items:flex-start!important;
  }
  .calendar-week[data-status="available"] .week-season{
    min-width:0;
  }
}

/* V18.2 — logo intégré uniquement dans la rubrique Réserver */
.booking-with-logo{
  height:auto;
  min-height:650px;
  padding:7rem 7vw;
  display:flex;
  align-items:center;
}
.booking-with-logo .booking-layout{
  position:relative;
  z-index:1;
  width:min(1440px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.86fr);
  gap:clamp(3rem,7vw,8rem);
  align-items:center;
}
.booking-with-logo .booking-copy{
  position:static;
  transform:none;
  max-width:720px;
}
.booking-logo{
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.booking-logo img{
  width:100%;
  max-width:620px;
  height:auto;
  object-fit:contain;
  display:block;
  border-radius:2px;
  box-shadow:0 18px 50px rgba(15,22,18,.18);
}
@media(max-width:900px){
  .booking-with-logo{
    padding:6rem 6vw;
  }
  .booking-with-logo .booking-layout{
    grid-template-columns:1fr;
    gap:3.5rem;
  }
  .booking-logo img{
    max-width:560px;
  }
}
@media(max-width:560px){
  .booking-with-logo{
    padding:5rem 6vw;
  }
  .booking-with-logo .booking-layout{
    gap:2.5rem;
  }
}


/* V19 — ajustements validés */
.payment-guarantee{margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid rgba(65,57,48,.16)}
.payment-guarantee h4{margin:.85rem 0 .35rem;font-family:var(--serif);font-size:1.05rem;color:var(--ink)}
.payment-guarantee ul{margin:.25rem 0 .8rem;padding-left:1.2rem}
.payment-guarantee p{margin:.25rem 0 0}
.admin-link{display:block;margin-top:1rem;font-size:.72rem;opacity:.45;text-decoration:none;color:inherit}
.admin-link:hover{opacity:.8}

.calendar-week[data-status="reserved"] .week-status{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-width:92px;padding:.42rem .72rem;border-radius:5px;
  background:#46545c!important;color:#fff!important;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;white-space:nowrap;
}
@media (max-width:680px){
 .calendar-week[data-status="reserved"] .week-status{min-width:0;align-self:stretch}
}


/* V22 — réservations : ligne neutre, seule la cartouche de statut est anthracite. */
.calendar-week[data-status="reserved"]{
  background:#fff!important;
  color:var(--ink)!important;
  border:1px solid #ddd5c8!important;
  box-shadow:0 3px 10px rgba(54,45,34,.035)!important;
}
.calendar-week[data-status="reserved"] .week-date{
  color:#26352d!important;
  font-weight:650!important;
}
.calendar-week[data-status="reserved"] .week-status{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:138px!important;
  padding:.42rem .72rem!important;
  border:1px solid #26343b!important;
  border-radius:999px!important;
  background:#46545c!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important;
  text-transform:none!important;
  letter-spacing:.025em!important;
  line-height:1.1!important;
}
@media(max-width:680px){
  .calendar-week[data-status="reserved"]{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:.7rem!important;
  }
  .calendar-week[data-status="reserved"] .week-status{min-width:116px!important;padding:.38rem .58rem!important;}
}
@media(max-width:460px){
  .calendar-week[data-status="reserved"]{flex-direction:column!important;align-items:flex-start!important;}
  .calendar-week[data-status="reserved"] .week-status{min-width:0!important;}
}


/* V28 — corrections ciblées : desktop conservé, optimisation smartphone uniquement. */
.mobile-first-look{display:none}

/* Les montants du calendrier restent toujours solidaires du signe euro. */
.week-season,
.tariff-amount{white-space:nowrap!important}
.calendar-week .week-season{flex-shrink:0}

/* Le lien de pied de page reste explicitement cliquable au-dessus des décors. */
footer>a[href="#haut"]{position:relative;z-index:2;cursor:pointer}

@media(max-width:680px){
  /* Accueil mobile : photographie panoramique préservée sans recadrage brutal. */
  .hero{
    height:74svh;
    min-height:520px;
    max-height:680px;
    overflow:hidden;
    background:#17241f;
    isolation:isolate;
  }
  .hero::before{
    content:"";
    position:absolute;
    inset:-8%;
    z-index:-2;
    background:url("assets/facade.jpg") center center/cover no-repeat;
    filter:blur(18px) brightness(.58);
    transform:scale(1.08);
  }
  .hero img{
    object-fit:contain;
    object-position:center center;
    position:relative;
    z-index:-1;
  }
  .hero-overlay{
    background:linear-gradient(180deg,rgba(10,18,15,.18) 0%,rgba(10,18,15,.08) 40%,rgba(10,18,15,.78) 100%);
  }
  .hero-copy{
    left:6vw;
    right:6vw;
    bottom:5.5rem;
    max-width:none;
  }
  .hero-copy h1{font-size:clamp(3.15rem,15vw,4.8rem)}
  .hero-tagline{margin-top:.75rem;font-size:1.08rem}
  .hero-location{margin-top:.7rem;letter-spacing:.11em;font-size:.56rem}
  .scroll-cue{right:6vw;bottom:1.6rem}

  /* Les premières images apparaissent immédiatement après l'introduction courte. */
  .discovery-section{padding-top:5rem}
  .discovery-heading{margin-bottom:2rem}
  .discovery-intro p:nth-child(n+2){display:none}
  .mobile-first-look{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.7rem;
    margin:1.8rem 0 2.6rem;
  }
  .mobile-first-look figure{
    margin:0;
    overflow:hidden;
    border-radius:2px;
    background:#eee8dc;
  }
  .mobile-first-look figure:first-child{
    grid-column:1/-1;
  }
  .mobile-first-look img{
    height:auto;
    aspect-ratio:4/3;
    object-fit:cover;
  }
  .mobile-first-look figure:first-child img{
    aspect-ratio:16/10;
  }

  /* Cartouches de prix compacts et insécables, même sur écran étroit. */
  .calendar-week[data-status="available"] .week-season,
  .calendar-week[data-status="reserved"] .week-status{
    white-space:nowrap!important;
    flex-shrink:0!important;
  }
}

@media(max-width:390px){
  .hero{height:70svh;min-height:500px}
  .hero-copy h1{font-size:3.15rem}
  .mobile-first-look{grid-template-columns:1fr}
  .mobile-first-look figure:first-child{grid-column:auto}
  .mobile-first-look figure img,
  .mobile-first-look figure:first-child img{aspect-ratio:4/3}
}


/* ===== V29 : abstract visuel mobile uniquement ===== */
.mobile-visual-abstract {
  display: none;
}

@media (max-width: 767px) {
  .mobile-visual-abstract {
    display: block;
    margin: 0;
    padding: 0 0 2rem;
    background: var(--color-background, #fff);
  }

  .mobile-abstract-card {
    margin: 0 0 0.65rem;
    overflow: hidden;
    background: #f2f0eb;
  }

  .mobile-abstract-card img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 68vh;
    object-fit: cover;
  }

  .mobile-abstract-card:nth-child(1) img {
    aspect-ratio: 4 / 5;
    object-position: 50% 50%;
  }

  .mobile-abstract-card:nth-child(2) img {
    aspect-ratio: 4 / 3;
    object-position: 50% 48%;
  }

  .mobile-abstract-card:nth-child(3) img {
    aspect-ratio: 4 / 5;
    object-position: 50% 46%;
  }

  .mobile-abstract-manifesto {
    padding: 1.7rem 1.35rem 0.45rem;
    text-align: center;
  }

  .mobile-abstract-manifesto p {
    margin: 0.18rem 0;
    font-family: inherit;
    font-size: clamp(1.35rem, 6vw, 1.8rem);
    line-height: 1.18;
    font-weight: 500;
    letter-spacing: 0.01em;
  }

  /* On évite la répétition immédiate du bandeau photo initial sur téléphone. */
  .hero,
  .hero-section,
  .hero-banner,
  .homepage-hero {
    min-height: auto;
  }

  /* Le tarif et son symbole restent sur une seule ligne. */
  .price,
  .tarif,
  .calendar-price,
  .availability-price,
  [class*="price"],
  [class*="tarif"] {
    white-space: nowrap;
  }

  /* Les contenus introductifs trop longs arrivent après l'abstract. */
  .mobile-secondary-intro {
    display: none !important;
  }
}


/* ===== Casa Les Ferraches 2.0 — hauteur plein écran mobile uniquement ===== */
@media (max-width: 767px) {
  /* Chaque étape introductive suit exactement la hauteur visible du navigateur. */
  .hero,
  .mobile-abstract-card,
  .mobile-abstract-manifesto {
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    min-height: 0;
    max-height: none;
    margin: 0;
  }

  .hero {
    overflow: hidden;
  }

  .mobile-visual-abstract {
    padding: 0;
  }

  .mobile-abstract-card {
    overflow: hidden;
  }

  .mobile-abstract-card img,
  .mobile-abstract-card:nth-child(1) img,
  .mobile-abstract-card:nth-child(2) img,
  .mobile-abstract-card:nth-child(3) img {
    width: 100%;
    height: 100%;
    max-height: none;
    aspect-ratio: auto;
    object-fit: cover;
  }

  .mobile-abstract-manifesto {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
  }
}

@media (max-width: 390px) {
  .hero {
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    min-height: 0;
    max-height: none;
  }
}

/* ===== Casa Les Ferraches 2.1 — correction réelle du débordement mobile =====
   La règle V29 [class*="tarif"] imposait white-space: nowrap à tous les blocs
   dont le nom de classe contient « tarif », empêchant les textes de revenir à la ligne. */
@media (max-width: 767px) {
  .tariffs-section,
  .tariffs-inner,
  .tariffs-heading,
  .tariff-cards,
  .tariff-card,
  .tariff-card > div,
  .tariffs-details,
  .tariff-detail,
  .service-list,
  .service-list > div,
  .service-list dt,
  .service-list dd,
  .practical-block,
  .included-block,
  .option-block {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  /* Seul le montant reste volontairement sur une ligne. */
  .tariff-amount {
    white-space: nowrap;
  }

  .service-list dd {
    margin-left: 0;
  }
}
