/* Modernisation de la page Mariages Utopia */
.mariage-page{color:var(--utopia-ink,#26364a)}
.mariage-hero{min-height:640px;background-position:center 48%}
.mariage-hero:before{background:linear-gradient(90deg,rgba(4,14,26,.84),rgba(4,14,26,.43) 58%,rgba(4,14,26,.12))}
.mariage-hero .utopia-hero-copy{max-width:760px}
.mariage-intro{padding:78px 0}
.mariage-intro .container{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}
.mariage-intro-copy{max-width:590px}
.mariage-intro-copy p{font-size:17px;line-height:1.8;color:var(--utopia-muted)}
.mariage-intro-photo{overflow:hidden;border-radius:24px;box-shadow:var(--utopia-shadow)}
.mariage-intro-photo img{display:block;width:100%;height:430px;object-fit:cover}
.mariage-capacites{background:var(--utopia-navy);padding:30px 0;color:#fff}
.mariage-capacites .container{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.mariage-capacite{text-align:center;padding:12px 10px;border-right:1px solid rgba(255,255,255,.15)}
.mariage-capacite:last-child{border:0}
.mariage-capacite strong{display:block;color:var(--utopia-gold-2);font: bold clamp(27px,3vw,38px) Georgia,serif}
.mariage-capacite span{display:block;color:#d9e1e9;font-size:13px;margin-top:5px}
.mariage-heading{max-width:760px;margin:0 auto 38px;text-align:center}
.mariage-heading .utopia-section-title{margin-bottom:12px}
.mariage-heading p{font-size:16px;line-height:1.7}
.mariage-feature-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:20px;align-items:stretch}
.mariage-feature{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 12px 34px rgba(8,26,45,.09)}
.mariage-feature>img{display:block;width:100%;height:230px;object-fit:cover}
.mariage-feature-large>img{height:280px}
.mariage-feature-body{padding:24px}
.mariage-number{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:#9a7828}
.mariage-feature h3,.mariage-service h3,.mariage-activity-grid h3{font: bold 25px Georgia,serif;color:var(--utopia-navy);margin:9px 0}
.mariage-feature p,.mariage-service p,.mariage-activity-grid p{color:var(--utopia-muted);line-height:1.7;margin:0}
.mariage-services{padding:78px 0}
.mariage-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mariage-service{display:flex;flex-direction:column;background:#fff;border:1px solid #edf0f3;border-radius:18px;overflow:hidden;box-shadow:0 8px 25px rgba(8,26,45,.06)}
.mariage-service img{width:100%;height:185px;object-fit:cover}
.mariage-service>div{padding:20px 22px 24px}
.mariage-service h3{font-size:21px}
.mariage-service a{display:inline-block;margin-top:10px;color:#8a6b22;font-weight:800}
.mariage-activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mariage-activity-grid article{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 10px 28px rgba(8,26,45,.07)}
.mariage-activity-grid img{display:block;width:100%;height:220px;object-fit:cover}
.mariage-activity-grid article>div{padding:22px}
.mariage-activity-grid h3{font-size:23px}
.mariage-gallery{padding:78px 0}
.mariage-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:12px}
.mariage-gallery-grid img{width:100%;height:100%;object-fit:cover;border-radius:12px;transition:transform .25s ease}
.mariage-gallery-grid img:hover{transform:scale(1.025)}
.mariage-gallery-grid img:nth-child(1),.mariage-gallery-grid img:nth-child(6){grid-row:span 2}
.mariage-cle-en-main{padding:25px 0 80px}
.mariage-cle-card{display:grid;grid-template-columns:1.1fr .9fr;gap:35px;align-items:center;background:var(--utopia-navy);padding:48px;border-radius:26px;color:#fff;overflow:hidden}
.mariage-cle-card h2{font: bold clamp(34px,4vw,48px)/1.08 Georgia,serif;color:#fff;margin:16px 0}
.mariage-cle-card p{color:#d5dfe8;line-height:1.75}
.mariage-cle-card>img{width:100%;height:360px;object-fit:cover;border-radius:18px}
.mariage-visit{background:var(--utopia-cream);text-align:center;padding:70px 0}
.mariage-visit .utopia-section-title{margin-bottom:12px}
.mariage-visit p{max-width:700px;margin:0 auto;color:var(--utopia-muted);font-size:17px;line-height:1.7}
.mariage-visit .utopia-actions{justify-content:center}
.mariage-visit .utopia-btn-light{border-color:var(--utopia-navy);color:var(--utopia-navy);background:transparent}
@media(max-width:991px){
 .mariage-feature-grid{grid-template-columns:repeat(2,1fr)}
 .mariage-feature-large{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}
 .mariage-feature-large>img{height:100%;min-height:270px}
 .mariage-service-grid{grid-template-columns:repeat(2,1fr)}
 .mariage-gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:767px){
 .mariage-hero{min-height:570px}
 .mariage-intro{padding:52px 0}
 .mariage-intro .container{grid-template-columns:1fr;gap:25px}
 .mariage-intro-photo img{height:280px}
 .mariage-capacites .container{grid-template-columns:repeat(2,1fr);gap:8px}
 .mariage-capacite:nth-child(2){border-right:0}
 .mariage-feature-grid,.mariage-service-grid,.mariage-activity-grid{grid-template-columns:1fr}
 .mariage-feature-large{grid-column:auto;display:block}
 .mariage-feature-large>img,.mariage-feature>img{height:220px;min-height:0}
 .mariage-gallery{padding:52px 0}
 .mariage-gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:135px;gap:8px}
 .mariage-cle-en-main{padding:10px 0 52px}
 .mariage-cle-card{grid-template-columns:1fr;padding:28px 22px;gap:22px}
 .mariage-cle-card>img{height:240px}
 .mariage-visit{padding:52px 0}
}



/* Direction artistique : mariage luxe & romantique */
.mariage-page{
  --mariage-ivory:#fbf8f3;
  --mariage-paper:#fffdf9;
  --mariage-champagne:#c6a875;
  --mariage-champagne-dark:#9d8055;
  --mariage-blush:#eadbd5;
  --mariage-ink:#3d3432;
  --mariage-muted:#786d67;
  color:var(--mariage-ink);
  background:var(--mariage-paper);
  font-family:"Helvetica Neue",Arial,sans-serif;
}
.mariage-page .mariage-hero{
  min-height:720px;
  background-position:center 48%;
  position:relative;
}
.mariage-page .mariage-hero:before{
  background:linear-gradient(90deg,rgba(30,23,22,.76) 0%,rgba(38,29,27,.48) 48%,rgba(38,29,27,.08) 100%);
}
.mariage-page .mariage-hero:after{
  content:"";
  position:absolute;inset:22px;
  border:1px solid rgba(237,218,185,.55);
  pointer-events:none;
}
.mariage-page .utopia-hero-copy{position:relative;z-index:1;max-width:790px;padding-top:30px}
.mariage-page .utopia-kicker,
.mariage-page .utopia-section-kicker{
  color:var(--mariage-champagne);
  letter-spacing:.22em;
  text-transform:uppercase;
  font-size:11px;
  font-weight:700;
}
.mariage-page .utopia-hero h1{
  font-family:"Bodoni  MT",Didot,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(58px,7vw,94px);
  line-height:.98;
  letter-spacing:-.035em;
  color:#fffaf3;
  margin:22px 0;
}
.mariage-page .utopia-hero-copy p{
  max-width:610px;color:rgba(255,250,243,.9);
  font-family:Georgia,serif;font-size:19px;line-height:1.75;
}
.mariage-page .utopia-btn{
  border-radius:2px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:10px;
  padding:17px 23px;
  transition:all .25s ease;
}
.mariage-page .utopia-btn-primary{
  background:var(--mariage-champagne);border-color:var(--mariage-champagne);color:#251f1c;
}
.mariage-page .utopia-btn-primary:hover{background:#d8c19a;border-color:#d8c19a;color:#251f1c}
.mariage-page .utopia-btn-light{
  border:1px solid rgba(255,250,243,.75);background:rgba(255,255,255,.06);color:#fffaf3;
}
.mariage-page .mariage-intro,
.mariage-page .mariage-services,
.mariage-page .mariage-gallery{background:var(--mariage-ivory)}
.mariage-page .mariage-intro{padding:105px 0}
.mariage-page .mariage-intro .container{gap:78px}
.mariage-page .utopia-section-title{
  font-family:"Bodoni MT",Didot,"Times New Roman",serif;
  color:var(--mariage-ink);
  font-weight:400;
  font-size:clamp(38px,4.2vw,57px);
  line-height:1.08;
  letter-spacing:-.025em;
}
.mariage-page .mariage-intro-copy p{
  color:var(--mariage-muted);font-family:Georgia,serif;font-size:17px;line-height:1.95;
}
.mariage-page .mariage-intro-photo{
  border-radius:2px;padding:10px;background:#fff;
  box-shadow:0 22px 60px rgba(63,47,39,.12);
}
.mariage-page .mariage-intro-photo img{height:490px;border-radius:1px}
.mariage-page .mariage-capacites{
  background:#4a3d38;
  padding:37px 0;
  border-top:1px solid rgba(198,168,117,.35);
  border-bottom:1px solid rgba(198,168,117,.35);
}
.mariage-page .mariage-capacite{border-color:rgba(237,218,185,.22)}
.mariage-page .mariage-capacite strong{
  color:#e4cfaa;font-family:"Bodoni MT",Didot,Georgia,serif;font-weight:400;font-size:clamp(31px,3.2vw,43px)
}
.mariage-page .mariage-capacite span{color:#eee4da;font-family:Georgia,serif;font-size:13px;letter-spacing:.03em}
.mariage-page .utopia-band.mariage-spaces{background:#fffdf9;padding:105px 0}
.mariage-page .mariage-heading{max-width:800px;margin-bottom:52px}
.mariage-page .mariage-heading p{color:var(--mariage-muted);font-family:Georgia,serif;line-height:1.85}
.mariage-page .mariage-feature-grid{gap:25px}
.mariage-page .mariage-feature{
  border-radius:2px;background:#fff;
  border:1px solid #eee5db;
  box-shadow:0 15px 42px rgba(67,49,39,.07);
  transition:transform .3s ease,box-shadow .3s ease;
}
.mariage-page .mariage-feature:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(67,49,39,.12)}
.mariage-page .mariage-feature>img{height:245px}
.mariage-page .mariage-feature-large>img{height:295px}
.mariage-page .mariage-feature-body{padding:28px 27px 32px}
.mariage-page .mariage-number{color:var(--mariage-champagne-dark);letter-spacing:.2em;font-size:10px}
.mariage-page .mariage-feature h3,
.mariage-page .mariage-service h3,
.mariage-page .mariage-activity-grid h3{
  font-family:"Bodoni MT",Didot,"Times New Roman",serif;
  color:var(--mariage-ink);font-weight:400;font-size:29px;
}
.mariage-page .mariage-feature p,
.mariage-page .mariage-service p,
.mariage-page .mariage-activity-grid p{color:var(--mariage-muted);font-family:Georgia,serif;line-height:1.85;font-size:14px}
.mariage-page .mariage-services{padding:100px 0}
.mariage-page .mariage-service-grid{gap:22px}
.mariage-page .mariage-service{
  border-radius:2px;border:1px solid #eee5db;
  box-shadow:0 12px 35px rgba(67,49,39,.055);background:#fff;
}
.mariage-page .mariage-service img{height:205px}
.mariage-page .mariage-service>div{padding:24px 25px 28px}
.mariage-page .mariage-service h3{font-size:25px}
.mariage-page .mariage-activity-grid{gap:24px}
.mariage-page .mariage-activity-grid article{
  border-radius:2px;background:#fff;border:1px solid #eee5db;
  box-shadow:0 12px 35px rgba(67,49,39,.06)
}
.mariage-page .mariage-activity-grid img{height:235px}
.mariage-page .mariage-gallery{padding:100px 0}
.mariage-page .mariage-gallery-grid{gap:14px;grid-auto-rows:195px}
.mariage-page .mariage-gallery-grid img{border-radius:1px}
.mariage-page .mariage-cle-en-main{padding:30px 0 100px;background:var(--mariage-ivory)}
.mariage-page .mariage-cle-card{
  background:#4a3d38;border:1px solid #c6a875;border-radius:2px;
  padding:58px;gap:48px;box-shadow:0 22px 55px rgba(67,49,39,.12)
}
.mariage-page .mariage-cle-card h2{
  font-family:"Bodoni MT",Didot,"Times New Roman",serif;
  font-weight:400;font-size:clamp(38px,4vw,54px);line-height:1.08;color:#fffaf3
}
.mariage-page .mariage-cle-card p{font-family:Georgia,serif;color:#eee2d6;line-height:1.9}
.mariage-page .mariage-cle-card>img{border-radius:1px;height:390px;border:7px solid rgba(255,255,255,.12)}
.mariage-page .mariage-visit{
  background:#eee4dc;padding:90px 0;
  border-top:1px solid #e1d1c3;
}
.mariage-page .mariage-visit p{color:#74665e;font-family:Georgia,serif;line-height:1.9}
.mariage-page .mariage-visit .utopia-btn-light{
  border:1px solid #9d8055;color:#51433b;background:transparent
}
.mariage-page a:focus-visible{outline:2px solid var(--mariage-champagne);outline-offset:4px}
@media(max-width:991px){
 .mariage-page .mariage-hero{min-height:650px}
 .mariage-page .mariage-intro{padding:75px 0}
 .mariage-page .mariage-intro .container{gap:42px}
 .mariage-page .mariage-intro-photo img{height:390px}
 .mariage-page .mariage-cle-card{padding:38px;gap:28px}
}
@media(max-width:767px){
 .mariage-page .mariage-hero{min-height:590px}
 .mariage-page .mariage-hero:after{inset:10px}
 .mariage-page .utopia-hero h1{font-size:clamp(49px,13vw,68px)}
 .mariage-page .utopia-hero-copy p{font-size:16px}
 .mariage-page .mariage-intro{padding:60px 0}
 .mariage-page .mariage-intro-photo img{height:290px}
 .mariage-page .mariage-capacites{padding:22px 0}
 .mariage-page .mariage-feature-grid,.mariage-page .mariage-service-grid,.mariage-page .mariage-activity-grid{gap:17px}
 .mariage-page .utopia-band.mariage-spaces,.mariage-page .mariage-services,.mariage-page .mariage-gallery{padding:65px 0}
 .mariage-page .mariage-gallery-grid{grid-auto-rows:135px;gap:8px}
 .mariage-page .mariage-cle-en-main{padding:15px 0 60px}
 .mariage-page .mariage-cle-card{padding:28px 22px;gap:22px}
 .mariage-page .mariage-cle-card>img{height:245px}
 .mariage-page .mariage-visit{padding:62px 0}
}


/* Corrections d'alignement - page location-salle-mariage */
@media (min-width: 992px) {
  .mariage-page .mariage-intro .container {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "photo copy";
    align-items: center;
    gap: 58px;
  }
  .mariage-page .mariage-intro-copy {
    grid-area: copy;
    align-self: center;
    margin: 0;
  }
  .mariage-page .mariage-intro-photo {
    grid-area: photo;
    align-self: center;
    margin: 0;
  }
  .mariage-page .mariage-capacites .container {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: center;
    gap: 0;
  }
  .mariage-page .mariage-capacite {
    min-width: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 8px 14px;
    border-right: 1px solid rgba(237,218,185,.22);
    border-bottom: 0;
  }
  .mariage-page .mariage-capacite:last-child {
    border-right: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .mariage-page .mariage-capacites .container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mariage-page .mariage-capacite:nth-child(2) {
    border-right: 0;
  }
}
@media (max-width: 767px) {
  .mariage-page .mariage-intro .container {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "copy" "photo";
  }
  .mariage-page .mariage-intro-copy,
  .mariage-page .mariage-intro-photo {
    grid-area: auto;
  }
}


/* Ajustements responsive complémentaires :
   - sur fenêtre réduite, le texte reste au-dessus et la photo passe dessous
   - neutralise les pseudo-éléments Bootstrap qui créaient une cellule vide dans les grilles
   - aligne les quatre capacités sur une grille régulière
*/
@media (max-width: 1100px) {
  .mariage-page .mariage-intro .container {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "copy" "photo" !important;
    gap: 30px;
  }
  .mariage-page .mariage-intro-copy,
  .mariage-page .mariage-intro-photo {
    grid-area: auto;
    width: 100%;
    max-width: 100%;
  }
  .mariage-page .mariage-intro-photo img {
    height: clamp(280px, 48vw, 430px);
  }
}

.mariage-page .mariage-intro .container::before,
.mariage-page .mariage-intro .container::after,
.mariage-page .mariage-capacites .container::before,
.mariage-page .mariage-capacites .container::after {
  content: none !important;
  display: none !important;
}

.mariage-page .mariage-capacites .container {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 0;
}
.mariage-page .mariage-capacite {
  min-width: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 10px 14px;
  border-right: 1px solid rgba(237,218,185,.22);
  border-bottom: 0;
}
.mariage-page .mariage-capacite:last-child { border-right: 0; }

@media (min-width: 768px) and (max-width: 991px) {
  .mariage-page .mariage-capacites .container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mariage-page .mariage-capacite:nth-child(2) { border-right: 0; }
}
@media (max-width: 767px) {
  .mariage-page .mariage-capacites .container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .mariage-page .mariage-capacite:nth-child(2) { border-right: 0; }
  .mariage-page .mariage-capacite:nth-child(3) { border-right: 1px solid rgba(237,218,185,.22); }
}


/* Trois photos supplémentaires sous la photo principale de la rubrique d'introduction */
.mariage-page .mariage-intro-gallery {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
  margin-top: 4px;
}
.mariage-page .mariage-intro-gallery img {
  display: block;
  width: 100%;
  height: 230px;
  object-fit: cover;
  border-radius: 18px;
  box-shadow: var(--utopia-shadow);
}
@media (max-width: 767px) {
  .mariage-page .mariage-intro-gallery {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }
  .mariage-page .mariage-intro-gallery img {
    height: clamp(210px, 62vw, 300px);
  }
}
