
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Italiana&display=swap');

:root{
  --ivory:#fbf7f2;
  --rose:#c98e8b;
  --rose-dark:#ad716f;
  --rose-soft:#f3dfdc;
  --beige:#e8d7c5;
  --chocolate:#3d2a26;
  --sage:#9eaa91;
  --ink:#332b29;
  --muted:#756b68;
  --line:#dfd4ce;
  --white:#fff;
  --shadow:0 24px 60px rgba(61,42,38,.12);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"DM Sans",sans-serif;
  color:var(--ink);
  background:var(--ivory);
}
h1,h2,h3,h4,h5,h6{
  font-family:"Italiana",serif;
  font-weight:400;
  letter-spacing:-.02em;
}
a{text-decoration:none}
img{max-width:100%;display:block}
.skip-link{
  position:fixed;left:1rem;top:-5rem;z-index:3000;
  background:#fff;color:#111;padding:.8rem 1rem;
}
.skip-link:focus{top:1rem}

.announcement-bar{
  background:var(--chocolate);
  color:#fff;
  font-size:.76rem;
}
.announcement-bar .container-fluid{
  min-height:38px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:1.5rem;
}
.announcement-bar i{color:#eac4be}
.announcement-bar a{color:#fff;border-bottom:1px solid rgba(255,255,255,.6)}

.site-header{
  position:sticky;
  top:0;
  z-index:1100;
  background:rgba(251,247,242,.96);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.navbar{min-height:86px}
.navbar-brand{
  display:flex;
  align-items:center;
  gap:.8rem;
}
.brand-monogram{
  width:48px;height:48px;
  display:grid;place-items:center;
  border:1px solid var(--chocolate);
  border-radius:50%;
  font-family:"Italiana";
  font-size:1.15rem;
  color:var(--chocolate);
}
.brand-copy{display:flex;flex-direction:column}
.brand-copy strong{font-size:.88rem;letter-spacing:.14em;color:var(--chocolate)}
.brand-copy small{font-size:.68rem;color:var(--muted)}
.nav-link{
  color:var(--ink);
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:.8rem .78rem!important;
}
.nav-link:hover,.nav-link.active{color:var(--rose-dark)}
.nav-actions{display:flex;gap:.6rem}
.navbar-toggler{font-size:1.8rem;color:var(--chocolate)}
.offcanvas{z-index:1200!important;background:var(--ivory)}
.offcanvas-backdrop{z-index:1150!important}

.btn{
  border-radius:999px;
  padding:.85rem 1.25rem;
  font-weight:600;
  transition:.25s ease;
}
.btn-chocolate{
  background:var(--chocolate);
  border:1px solid var(--chocolate);
  color:#fff;
}
.btn-chocolate:hover{background:#563a34;color:#fff;transform:translateY(-2px)}
.btn-rose{
  background:var(--rose);
  border:1px solid var(--rose);
  color:#fff;
}
.btn-rose:hover{background:var(--rose-dark);color:#fff;transform:translateY(-2px)}
.btn-outline-chocolate{
  background:transparent;
  border:1px solid var(--chocolate);
  color:var(--chocolate);
}
.btn-outline-chocolate:hover{background:var(--chocolate);color:#fff}

.section-space{padding:6.5rem 0}
.eyebrow{
  display:inline-block;
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.16em;
  color:var(--rose-dark);
  margin-bottom:1.2rem;
}
.eyebrow-light{color:#f3d6d1}
.section-heading{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:4rem;
  align-items:end;
}
.section-heading h2{
  font-size:clamp(3rem,5vw,5.4rem);
  line-height:1;
}
.section-heading>p,.section-heading>a{
  color:var(--muted);
  font-size:1.08rem;
  line-height:1.75;
}
.section-link{justify-self:end;color:var(--chocolate)!important;font-weight:600}

.hero{
  overflow:hidden;
  background:
    radial-gradient(circle at 15% 20%,rgba(201,142,139,.14),transparent 30%),
    linear-gradient(90deg,#f9f0eb,#fbf7f2);
}
.hero-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  min-height:78vh;
  align-items:center;
  padding:4rem 0;
}
.hero-copy h1{
  font-size:clamp(4rem,7vw,7rem);
  line-height:.98;
  color:var(--chocolate);
}
.hero-copy>p{
  max-width:640px;
  font-size:1.18rem;
  line-height:1.8;
  color:var(--muted);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.hero-points{
  display:flex;
  flex-wrap:wrap;
  gap:1.2rem;
  margin-top:2.4rem;
  font-size:.84rem;
  color:var(--muted);
}
.hero-points i{color:var(--rose-dark)}
.hero-visual{position:relative}
.hero-image-frame{
  padding:1rem;
  border:1px solid var(--chocolate);
  background:#fff;
  box-shadow:var(--shadow);
}
.hero-badge{
  position:absolute;
  right:-1rem;
  top:2rem;
  width:130px;height:130px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--rose);
  color:#fff;
}
.hero-badge strong{font-family:"Italiana";font-size:2rem}
.hero-badge span{font-size:.7rem;text-align:center}
.hero-signature{
  position:absolute;
  left:-2rem;
  bottom:1.5rem;
  max-width:280px;
  padding:1.2rem;
  background:var(--chocolate);
  color:#fff;
  font-family:"Italiana";
  font-size:1.35rem;
}

.trust-strip{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
}
.trust-strip .container-fluid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.trust-strip .container-fluid>div{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  min-height:90px;
  border-right:1px solid var(--line);
}
.trust-strip .container-fluid>div:last-child{border-right:0}
.trust-strip i{color:var(--rose-dark);font-size:1.25rem}

.ritual-grid{
  display:grid;
  grid-template-columns:1.35fr .8fr .8fr;
  gap:1rem;
}
.ritual-card{
  border:1px solid var(--line);
  background:#fff;
  overflow:hidden;
  transition:.28s ease;
}
.ritual-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}
.ritual-visual{
  min-height:240px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.ritual-large .ritual-visual{min-height:380px}
.ritual-visual img{max-height:95%;transition:.35s ease}
.ritual-card:hover img{transform:scale(1.04)}
.rose-visual{background:#edd3d0}
.beige-visual{background:#eadfce}
.chocolate-visual{background:#4e3732}
.ritual-content{padding:1.5rem}
.ritual-content>span{font-size:.7rem;letter-spacing:.14em;color:var(--rose-dark)}
.ritual-content h3{font-size:2rem;margin:.5rem 0}
.ritual-content p{color:var(--muted)}
.ritual-meta{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:1rem}
.ritual-content a{display:inline-block;margin-top:1rem;color:var(--chocolate);font-weight:600}

.before-after-section{
  padding:6rem 0;
  background:#eee4db;
}
.before-after-section h2{font-size:clamp(3rem,5vw,5rem)}
.before-after-section p{color:var(--muted);line-height:1.75}
.result-list{list-style:none;padding:0}
.result-list li{margin:.8rem 0}
.result-list i{color:var(--sage);margin-right:.6rem}
.comparison{
  position:relative;
  height:520px;
  overflow:hidden;
  border:12px solid #fff;
  box-shadow:var(--shadow);
}
.comparison-image{
  width:100%;
  height:100%;
  object-fit:cover;
}
.comparison-after{position:absolute;inset:0}
.comparison-before{
  position:absolute;
  inset:0 auto 0 0;
  width:50%;
  overflow:hidden;
}
.comparison-before img{
  width:calc(100vw);
  max-width:none;
}
.comparison-line{
  position:absolute;
  top:0;bottom:0;left:50%;
  width:2px;
  background:#fff;
  transform:translateX(-50%);
  pointer-events:none;
}
.comparison-line span{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  width:52px;height:52px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--chocolate);
  color:#fff;
}
.comparison input{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:ew-resize;
}
.comparison-label{
  position:absolute;
  top:1rem;
  padding:.45rem .7rem;
  background:rgba(61,42,38,.8);
  color:#fff;
  font-size:.75rem;
}
.label-before{left:1rem}
.label-after{right:1rem}

.experience-steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.experience-steps article{
  padding:1.5rem;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.experience-steps article>span{color:var(--rose-dark);font-size:.75rem}
.experience-steps i{display:block;font-size:2rem;color:var(--chocolate);margin:2rem 0}
.experience-steps p{color:var(--muted)}

.membership-section{
  padding:6rem 0;
  background:var(--chocolate);
  color:#fff;
}
.membership-grid{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:5rem;
  align-items:center;
}
.membership-copy h2{font-size:clamp(3rem,5vw,5rem)}
.membership-copy>p{color:#d8c9c3;line-height:1.75}
.membership-benefits{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  margin:2rem 0;
}
.membership-benefits span{
  padding:1rem;
  border:1px solid rgba(255,255,255,.18);
}
.membership-benefits i{color:#e9b7b1;margin-right:.5rem}

.team-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.team-card{
  padding:1.5rem;
  border:1px solid var(--line);
  background:#fff;
  transition:.25s ease;
}
.team-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}
.team-photo{
  height:320px;
  display:grid;place-items:center;
  font-family:"Italiana";
  font-size:3rem;
  margin-bottom:1.5rem;
}
.photo-one{background:#ead1cf;color:#704b49}
.photo-two{background:#e8d8c7;color:#6f5644}
.photo-three{background:#dfe4da;color:#53604c}
.team-card span{font-size:.72rem;color:var(--rose-dark);letter-spacing:.08em}
.team-card p{color:var(--muted)}

.review-section{padding:6rem 0;background:#fff}
.review-shell{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:4rem;
  align-items:center;
  padding:3rem;
  border:1px solid var(--line);
}
.review-score{text-align:center}
.review-score strong{display:block;font-family:"Italiana";font-size:5rem;color:var(--chocolate)}
.review-score span{display:block;color:#c18f42;letter-spacing:.2em}
.review-score small{color:var(--muted)}
blockquote{
  font-family:"Italiana";
  font-size:clamp(2rem,4vw,4rem);
  line-height:1.25;
  margin:0;
}
blockquote footer{font-family:"DM Sans";font-size:.85rem;color:var(--muted);margin-top:1.5rem}
.review-controls{display:flex;gap:.5rem;margin-top:2rem}
.review-controls button{
  width:48px;height:48px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--chocolate);
}

.gift-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5rem;
  align-items:center;
}
.gift-grid h2{font-size:clamp(3rem,5vw,5rem)}
.gift-grid p{color:var(--muted);line-height:1.75}
.gift-card-visual{
  min-height:280px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:3rem;
  border-radius:12px;
  background:
    radial-gradient(circle at 80% 20%,rgba(255,255,255,.2),transparent 30%),
    linear-gradient(135deg,#c98e8b,#8c5f5d);
  color:#fff;
  box-shadow:var(--shadow);
}
.gift-card-visual span{letter-spacing:.18em;font-size:.72rem}
.gift-card-visual strong{font-family:"Italiana";font-size:3rem;margin:1rem 0}
.gift-card-visual small{font-size:.9rem}

.faq-section{background:#f1e9e2}
.faq-section h2{font-size:3.5rem}
.accordion-item{border:0;border-bottom:1px solid var(--line);background:transparent}
.accordion-button{
  background:transparent!important;
  box-shadow:none!important;
  padding:1.4rem 0;
  font-family:"Italiana";
  font-size:1.6rem;
  color:var(--ink)!important;
}
.accordion-body{padding-left:0;color:var(--muted)}

.final-cta{
  padding:5rem 0;
  border-top:1px solid var(--line);
}
.final-cta-inner{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:2rem;
}
.final-cta h2{font-size:clamp(3rem,5vw,5rem);max-width:900px}

.page-hero{
  padding:6rem 0 4rem;
  background:#f2e8e1;
}
.page-hero-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:4rem;
  align-items:end;
}
.page-hero h1{font-size:clamp(3.8rem,6vw,6.5rem);line-height:1}
.page-hero p{font-size:1.15rem;color:var(--muted);line-height:1.75}

.service-filters{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}
.service-filters button{
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  padding:.7rem 1rem;
  border-radius:999px;
}
.service-filters button.active,.service-filters button:hover{
  background:var(--chocolate);
  color:#fff;
  border-color:var(--chocolate);
}
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.service-card{
  border:1px solid var(--line);
  background:#fff;
  transition:.25s ease;
}
.service-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}
.service-image{
  height:260px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.service-image img{max-height:94%;transition:.35s ease}
.service-card:hover img{transform:scale(1.05)}
.image-rose{background:#ebd4d2}
.image-beige{background:#eadfce}
.image-green{background:#dce4d6}
.image-chocolate{background:#513833}
.image-gold{background:#ead8b6}
.image-black{background:#2e2928}
.image-lilac{background:#e5dce8}
.service-content{padding:1.4rem}
.service-content>span{font-size:.68rem;letter-spacing:.14em;color:var(--rose-dark)}
.service-content h2{font-size:2rem;margin:.5rem 0}
.service-content p{color:var(--muted)}
.service-details{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:1rem}
.service-content a{display:inline-block;margin-top:1rem;color:var(--chocolate);font-weight:600}
.empty-state{text-align:center;padding:5rem}
.empty-state i{font-size:3rem;color:var(--rose)}

.detail-hero{
  padding:6rem 0;
  background:#f1e7df;
}
.detail-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:5rem;
  align-items:end;
}
.detail-grid h1{font-size:clamp(4rem,7vw,7rem);line-height:.95}
.detail-grid>div>p{font-size:1.2rem;color:var(--muted);line-height:1.75}
.detail-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.detail-tags span{padding:.5rem .75rem;background:#fff;border:1px solid var(--line);border-radius:999px}
.detail-price-card{
  padding:2rem;
  border:1px solid var(--chocolate);
  background:#fff;
}
.detail-price-card span,.detail-price-card strong,.detail-price-card small{display:block}
.detail-price-card strong{font-family:"Italiana";font-size:4rem;margin:.5rem 0}
.detail-price-card small{color:var(--muted);margin-bottom:1.5rem}

.detail-section{margin-bottom:5rem}
.detail-section h2{font-size:clamp(2.8rem,5vw,5rem)}
.benefit-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  margin-top:2rem;
}
.benefit-grid>div{
  padding:1.5rem;
  border:1px solid var(--line);
  background:#fff;
}
.benefit-grid i{font-size:2rem;color:var(--rose-dark)}
.benefit-grid p{color:var(--muted)}
.protocol-list{border-top:1px solid var(--line);margin-top:2rem}
.protocol-list article{
  display:grid;
  grid-template-columns:70px 1fr;
  gap:1rem;
  padding:1.4rem 0;
  border-bottom:1px solid var(--line);
}
.protocol-list span{color:var(--rose-dark)}
.protocol-list p{color:var(--muted)}
.aftercare-card{
  display:flex;
  gap:1rem;
  padding:1.5rem;
  background:#f1e7df;
  border:1px solid var(--line);
}
.aftercare-card i{font-size:2rem;color:var(--rose-dark)}
.aftercare-card p{color:var(--muted)}
.detail-sidebar{
  position:sticky;
  top:120px;
  padding:2rem;
  border:1px solid var(--line);
  background:#fff;
}
.detail-sidebar dl>div{
  padding:1rem 0;
  border-bottom:1px solid var(--line);
}
.detail-sidebar dt{font-size:.72rem;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.detail-sidebar dd{margin:.25rem 0 0}

.booking-section{
  padding:6rem 0;
  background:var(--chocolate);
  color:#fff;
}
.booking-grid{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:5rem;
}
.booking-grid h2{font-size:clamp(3rem,5vw,5rem)}
.booking-grid>div>p{color:#d8c9c3}
.booking-widget{
  padding:2rem;
  background:var(--ivory);
  color:var(--ink);
}
.booking-progress{
  display:flex;
  align-items:center;
  margin-bottom:2rem;
}
.booking-progress span{
  width:34px;height:34px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#e5d8d1;
  color:var(--muted);
}
.booking-progress span.active{background:var(--rose);color:#fff}
.booking-progress i{flex:1;height:1px;background:var(--line)}
.booking-step{display:none}
.booking-step.active{display:block}
.date-grid,.time-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.7rem;
}
.date-grid button,.time-grid button{
  border:1px solid var(--line);
  background:#fff;
  padding:1rem;
  color:var(--ink);
}
.date-grid button strong{display:block;font-size:1.4rem}
.date-grid button.selected,.time-grid button.selected{
  background:var(--chocolate);
  color:#fff;
  border-color:var(--chocolate);
}

.price-category{margin-bottom:5rem}
.price-category-heading{
  display:flex;
  gap:1rem;
  align-items:center;
  margin-bottom:1.5rem;
}
.price-category-heading span{color:var(--rose-dark)}
.price-category-heading h2{font-size:3rem}
.price-list{border-top:1px solid var(--line)}
.price-list>div{
  display:grid;
  grid-template-columns:1fr 100px 100px;
  gap:1rem;
  align-items:center;
  padding:1.2rem 0;
  border-bottom:1px solid var(--line);
}
.price-list div>div strong,.price-list div>div span{display:block}
.price-list div>div span{font-size:.85rem;color:var(--muted)}
.price-list>div>span{color:var(--muted)}
.price-list>div>strong{text-align:right}
.price-note{
  display:flex;
  gap:1rem;
  padding:1.3rem;
  background:#f1e7df;
  border:1px solid var(--line);
}
.price-note p{margin:0;color:var(--muted)}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:280px;
  gap:1rem;
}
.gallery-item{
  border:0;
  padding:0;
  overflow:hidden;
  background:#eee;
}
.gallery-item img{
  width:100%;height:100%;object-fit:cover;
  transition:.35s ease;
}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-tall{grid-row:span 2}
.gallery-wide{grid-column:span 2}
.gallery-modal{
  position:fixed;
  inset:0;
  z-index:2000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:2rem;
  background:rgba(30,20,18,.92);
}
.gallery-modal.active{display:flex}
.gallery-modal img{max-width:90vw;max-height:85vh}
.gallery-close{
  position:absolute;
  right:2rem;top:2rem;
  width:48px;height:48px;
  border:1px solid rgba(255,255,255,.4);
  border-radius:50%;
  background:transparent;
  color:#fff;
}

.about-story{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5rem;
  align-items:center;
}
.about-story h2{font-size:clamp(3rem,5vw,5rem)}
.about-story p{color:var(--muted);font-size:1.08rem;line-height:1.8}
.value-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.value-grid article{
  padding:1.5rem;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.value-grid span{color:var(--rose-dark)}
.value-grid p{color:var(--muted)}

.opening-section{
  padding:6rem 0;
  background:var(--chocolate);
  color:#fff;
}
.opening-grid{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:5rem;
}
.opening-grid h2{font-size:clamp(3rem,5vw,5rem)}
.opening-hours{border-top:1px solid rgba(255,255,255,.18)}
.opening-hours>div{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 0;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.opening-hours span{color:#d8c9c3}

.featured-article{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
  padding:2rem;
  border:1px solid var(--line);
  background:#fff;
}
.featured-article h2{font-size:clamp(2.8rem,4vw,4.5rem)}
.featured-article p{color:var(--muted);line-height:1.75}
.article-link{color:var(--chocolate);font-weight:600}
.article-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
}
.article-grid article{
  padding:1.3rem;
  border:1px solid var(--line);
  background:#fff;
  transition:.25s ease;
}
.article-grid article:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.article-image{
  height:220px;
  display:grid;place-items:center;
  font-size:3rem;
  margin-bottom:1.2rem;
}
.rose-article{background:#ead1cf;color:#8c5f5d}
.beige-article{background:#eadfce;color:#6f5644}
.green-article{background:#dfe4da;color:#596451}
.article-grid article>span{font-size:.68rem;color:var(--rose-dark);letter-spacing:.1em}
.article-grid h2{font-size:2rem}
.article-grid a{color:var(--chocolate);font-weight:600}

.contact-page{padding:6rem 0}
.contact-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:5rem;
}
.contact-grid h1{font-size:clamp(3.8rem,6vw,6.5rem);line-height:1}
.contact-grid>div>p{font-size:1.12rem;color:var(--muted);line-height:1.75}
.contact-info{
  margin-top:3rem;
  border-top:1px solid var(--line);
}
.contact-info>div{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 0;
  border-bottom:1px solid var(--line);
}
.contact-info span{color:var(--muted)}
.contact-card{
  padding:2rem;
  border:1px solid var(--line);
  background:#fff;
}
.form-label{font-size:.75rem;color:var(--chocolate);font-weight:600}
.form-control,.form-select{
  min-height:52px;
  border-radius:8px;
  border-color:var(--line);
  box-shadow:none!important;
}
.form-control:focus,.form-select:focus{border-color:var(--rose)}
.template-preview{
  margin-top:2rem;
  padding:1rem;
  border:1px solid var(--line);
  background:#fff;
}

.footer{
  padding:5rem 0 1.5rem;
  background:#2d211e;
  color:#d9cbc5;
}
.footer-newsletter{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:end;
  padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.footer-kicker{font-size:.7rem;letter-spacing:.14em;color:#e4b6b0}
.footer-newsletter h2{font-size:3rem;color:#fff}
.newsletter-form{display:flex}
.newsletter-form .form-control{border-radius:999px 0 0 999px;border:0}
.newsletter-form .btn{border-radius:0 999px 999px 0}
.footer-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:3rem;
  padding:3rem 0;
}
.footer-brand{display:flex;gap:1rem}
.footer-brand .brand-monogram{border-color:#fff;color:#fff;flex:0 0 48px}
.footer-brand strong{color:#fff}
.footer-brand p{max-width:360px;color:#bdaea8}
.footer h3{font-family:"DM Sans";font-size:.7rem;letter-spacing:.12em;color:#e4b6b0;text-transform:uppercase}
.footer li{margin:.55rem 0}
.footer a{color:#d9cbc5}
.footer a:hover{color:#fff}
.footer p{color:#bdaea8}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:2rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.15);
  font-size:.8rem;
  color:#93847e;
}

.demo-toast{
  position:fixed;
  right:1rem;bottom:1rem;
  z-index:2100;
  max-width:380px;
  padding:1rem 1.2rem;
  background:var(--chocolate);
  color:#fff;
  box-shadow:var(--shadow);
}

@media(max-width:1199.98px){
  .ritual-grid{grid-template-columns:1fr 1fr}
  .ritual-large{grid-column:span 2}
  .service-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:991.98px){
  .announcement-bar{display:none}
  .site-header{backdrop-filter:none}
  .offcanvas{
    position:fixed!important;
    inset:0 0 0 auto;
    height:100dvh;
  }
  .offcanvas-body{display:flex;flex-direction:column}
  .nav-actions{flex-direction:column;margin-top:1.2rem}
  .nav-actions .btn{width:100%}
  .hero-grid,.section-heading,.membership-grid,.gift-grid,.page-hero-grid,.detail-grid,.booking-grid,.about-story,.opening-grid,.featured-article,.contact-grid{
    grid-template-columns:1fr;
  }
  .section-link{justify-self:start}
  .hero-signature{left:1rem}
  .trust-strip .container-fluid{grid-template-columns:repeat(2,1fr)}
  .experience-steps,.value-grid{grid-template-columns:repeat(2,1fr)}
  .review-shell{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .benefit-grid{grid-template-columns:1fr}
  .detail-sidebar{position:static}
  .footer-newsletter,.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:767.98px){
  .section-space{padding:4.8rem 0}
  .hero-copy h1{font-size:3.8rem}
  .ritual-grid,.service-grid,.team-grid,.article-grid{grid-template-columns:1fr}
  .ritual-large{grid-column:auto}
  .ritual-large .ritual-visual{min-height:280px}
  .trust-strip .container-fluid{grid-template-columns:1fr}
  .trust-strip .container-fluid>div{border-right:0;border-bottom:1px solid var(--line)}
  .experience-steps,.value-grid,.membership-benefits{grid-template-columns:1fr}
  .comparison{height:380px}
  .comparison-before img{width:100vw}
  .review-shell{padding:2rem}
  .gift-card-visual{padding:2rem}
  .date-grid,.time-grid{grid-template-columns:1fr 1fr}
  .price-list>div{grid-template-columns:1fr 70px}
  .price-list>div>strong{grid-column:2/3}
  .price-list>div>span{grid-column:2/3;grid-row:1/2;text-align:right}
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:260px}
  .gallery-tall,.gallery-wide{grid-row:auto;grid-column:auto}
  .footer-newsletter,.footer-grid{grid-template-columns:1fr}
  .newsletter-form{flex-direction:column;gap:.6rem}
  .newsletter-form .form-control,.newsletter-form .btn{border-radius:999px}
  .footer-bottom{flex-direction:column}
}


/* Version photographique */
.hero-image-frame{
  height:min(70vh,720px);
  min-height:560px;
  overflow:hidden;
}
.hero-image-frame img,
.ritual-visual img,
.service-image img,
.about-visual img,
.featured-article-image img,
.membership-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero-image-frame img{object-position:center 38%}
.ritual-visual,.service-image{position:relative}
.ritual-visual::after,.service-image::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(to top,rgba(61,42,38,.12),transparent 42%);
}
.membership-visual{
  height:430px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
}
.membership-visual img{object-position:center}
.team-photo{
  height:320px;
  overflow:hidden;
  margin-bottom:1.5rem;
  background:#e9ddd6;
}
.team-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.team-card:nth-child(1) .team-photo img{object-position:center 30%}
.team-card:nth-child(2) .team-photo img{object-position:68% center}
.team-card:nth-child(3) .team-photo img{object-position:center 25%}
.comparison-before img{
  width:100%;
  height:100%;
  object-fit:cover;
  max-width:none;
}
.comparison-after{object-position:center}
.about-visual{
  height:620px;
  overflow:hidden;
}
.about-visual img{object-position:center 58%}
.featured-article-image{
  min-height:470px;
  overflow:hidden;
}
.gallery-item{position:relative}
.gallery-item::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(43,28,25,.25),transparent 45%);
  opacity:.55;
  pointer-events:none;
}
.photo-source-note{
  font-size:.76rem;
  color:var(--muted);
}
@media(max-width:767.98px){
  .hero-image-frame{height:520px;min-height:0}
  .about-visual{height:430px}
  .membership-visual{height:330px}
}
