
:root{
  --ink:#171714;
  --paper:#f3f0e9;
  --white:#fff;
  --line:rgba(23,23,20,.18);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-weight:300}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 34px;color:#fff;transition:.5s var(--ease)}
.site-header.scrolled{background:rgba(243,240,233,.94);backdrop-filter:blur(14px);color:var(--ink);padding-top:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.brand{display:flex;flex-direction:column;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem}
.brand small{font-size:.51rem;opacity:.75;margin-top:4px}
.main-nav{display:flex;align-items:center;gap:28px;text-transform:uppercase;letter-spacing:.12em;font-size:.69rem}
.nav-cta{border:1px solid currentColor;padding:11px 17px}
.menu-toggle{display:none;background:none;border:0;color:inherit;width:40px;height:40px}
.menu-toggle span:not(.sr-only){display:block;height:1px;background:currentColor;margin:8px}
.hero{min-height:100svh;position:relative;color:#fff;overflow:hidden;display:flex;align-items:flex-end}
.hero-media{position:absolute;inset:0;background:url("https://www.photosmariage.fr/images/new-style/photographe-mariage-paris-75-luxe-reportage-couple-prix.jpg") center 42%/cover no-repeat;transform:scale(1.04);animation:heroZoom 16s ease-out both}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.54),rgba(0,0,0,.08) 58%,rgba(0,0,0,.28))}
.hero-content{position:relative;z-index:2;padding:0 8vw 11vh;max-width:950px}
.eyebrow,.section-index{text-transform:uppercase;letter-spacing:.18em;font-size:.66rem}
.hero h1,.display,.contact h2{font-family:"Italiana",serif;font-weight:400;line-height:.89;letter-spacing:-.035em;margin:20px 0}
.hero h1{font-size:clamp(4.2rem,9.5vw,9rem)}
em{font-weight:400}
.hero-subtitle{font-size:clamp(1rem,1.4vw,1.25rem);max-width:520px;line-height:1.6;margin:28px 0}
.text-link{display:inline-block;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;border-bottom:1px solid;padding-bottom:7px}
.hero-note{position:absolute;right:34px;bottom:32px;z-index:2;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl}
.scroll-cue{position:absolute;left:34px;bottom:32px;z-index:2;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase}
.section-pad{padding:130px 7vw}
.manifesto-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:10vw;align-items:end;margin-top:65px}
.display{font-size:clamp(4rem,7.5vw,8rem)}
.manifesto-copy{max-width:530px}
.lead{font-family:"Italiana",serif;font-size:clamp(1.65rem,2.5vw,2.7rem);line-height:1.17}
.manifesto-copy p:not(.lead),.about-copy p:not(.lead),.experience-head p,.pillars p,.seo-section p{line-height:1.85;color:rgba(23,23,20,.72)}
.editorial-grid{display:grid;grid-template-columns:1.05fr .7fr 1.25fr;grid-template-rows:42vw 30vw;gap:18px;padding:0 18px}
.tile{margin:0;position:relative;overflow:hidden}
.tile img{transition:1.2s var(--ease)}
.tile:hover img{transform:scale(1.03)}
.tile figcaption{position:absolute;left:18px;bottom:16px;background:rgba(243,240,233,.9);padding:9px 12px;font-size:.62rem;text-transform:uppercase;letter-spacing:.13em}
.tile-a{grid-row:1/3}
.tile-b{grid-column:2}
.tile-c{grid-column:3;grid-row:1/3}
.tile-statement{display:flex;align-items:center;padding:34px;font-family:"Italiana",serif;font-size:clamp(1.7rem,2.8vw,3.1rem);line-height:1.1}
.dark{background:#181815;color:#f5f1e9}
.experience-head{display:grid;grid-template-columns:1.6fr .55fr;gap:8vw;align-items:end}
.dark .experience-head p,.dark .pillars p{color:rgba(245,241,233,.68)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.16);margin-top:90px}
.pillars article{background:#181815;padding:42px}
.pillars span{font-size:.65rem;opacity:.5}
.pillars h3{font-family:"Italiana",serif;font-size:2rem;font-weight:400}
.quote-section{display:grid;grid-template-columns:1.25fr .75fr;min-height:780px;background:#d8d0c5}
.quote-image{background:url("https://www.photosmariage.fr/wedding baulieu/wedding-couple-session-villa-baulieu-cote-azur.jpg") center/cover}
blockquote{margin:0;padding:8vw;display:flex;flex-direction:column;justify-content:center;font-family:"Italiana",serif;font-size:clamp(2.5rem,4.8vw,5.2rem);line-height:1.03}
blockquote cite{font-family:"DM Sans",sans-serif;font-style:normal;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;margin-top:35px}
.destination-list{margin-top:55px;border-top:1px solid var(--line)}
.destination-list a{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:26px 0;border-bottom:1px solid var(--line);transition:.35s}
.destination-list a:hover{padding-left:18px}
.destination-list span{font-family:"Italiana",serif;font-size:clamp(2.2rem,4vw,4.8rem)}
.destination-list small{text-transform:uppercase;letter-spacing:.12em;font-size:.64rem}
.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:10vw;align-items:center;background:#ece7de}
.about-image{height:760px}
.about-copy{max-width:670px}
.press-strip{padding:34px 7vw;display:flex;justify-content:center;align-items:center;gap:5vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;flex-wrap:wrap}
.press-strip strong{font-family:"Italiana",serif;font-size:1.35rem;font-weight:400;letter-spacing:0;text-transform:none}
.seo-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}
.seo-section h2{font-family:"Italiana",serif;font-size:clamp(2.3rem,4vw,4.8rem);font-weight:400;line-height:1.02}
.seo-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.seo-links{grid-column:2;display:flex;gap:18px;flex-wrap:wrap;margin-top:28px}
.seo-links a{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;border:1px solid var(--line);padding:12px 15px}
.contact{background:#181815;color:#f5f1e9;text-align:center;padding:145px 7vw}
.contact h2{font-size:clamp(4.2rem,9vw,9.5rem)}
.contact-button{display:inline-block;border:1px solid currentColor;padding:18px 26px;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;margin-top:25px}
.contact-meta{margin-top:55px;line-height:1.7;font-size:.75rem;letter-spacing:.08em}
footer{display:flex;justify-content:space-between;padding:26px 34px;background:#181815;color:#f5f1e9;border-top:1px solid rgba(255,255,255,.18);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em}
footer div{display:flex;gap:22px}
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.visible{opacity:1;transform:none}
@keyframes heroZoom{to{transform:scale(1)}}
@media(max-width:900px){
  .site-header{padding:18px 20px}
  .main-nav{position:fixed;inset:0;background:var(--paper);color:var(--ink);display:none;flex-direction:column;justify-content:center;font-family:"Italiana",serif;font-size:2rem}
  .main-nav.open{display:flex}
  .menu-toggle{display:block;z-index:60}
  .hero-content{padding:0 22px 14vh}
  .hero-note{right:18px}
  .scroll-cue{left:20px}
  .section-pad{padding:90px 22px}
  .manifesto-grid,.experience-head,.about,.seo-section{grid-template-columns:1fr;gap:35px}
  .editorial-grid{grid-template-columns:1fr 1fr;grid-template-rows:78vw 64vw 78vw;padding:0 10px;gap:10px}
  .tile-a{grid-column:1;grid-row:1/3}
  .tile-b{grid-column:2;grid-row:1}
  .tile-statement{grid-column:2;grid-row:2;padding:18px}
  .tile-c{grid-column:1/3;grid-row:3}
  .pillars{grid-template-columns:1fr}
  .quote-section{grid-template-columns:1fr;min-height:0}
  .quote-image{height:65vh}
  blockquote{min-height:520px}
  .about-image{height:65vh}
  .seo-links{grid-column:1}
}
@media(max-width:620px){
  .hero h1{font-size:17vw}
  .editorial-grid{display:block;padding:0 10px}
  .tile,.tile-statement{height:115vw;margin-bottom:10px}
  .tile-statement{height:auto;min-height:280px}
  .pillars article{padding:34px 22px}
  .destination-list a{grid-template-columns:1fr;gap:9px}
  .seo-columns{grid-template-columns:1fr}
  .press-strip{gap:26px}
  footer{flex-direction:column;gap:20px}
}
.h1-service{
  display:block;
  margin-bottom:18px;
  font-family:"DM Sans",sans-serif;
  font-size:.68rem;
  font-weight:400;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.h1-signature{
  display:block;
  font-family:"Italiana",serif;
  font-size:clamp(4.2rem,9.5vw,9rem);
  font-weight:400;
  line-height:.89;
}

/* =========================================================
   INDEX FR — ACCORDÉON SEO ÉDITORIAL FIN
   ========================================================= */

.seo-archive--minimal{
  background:var(--paper);
}

.seo-archive__minimal-intro{
  max-width:1100px;
  margin:0 auto 52px;
}

.seo-archive__minimal-grid{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:8vw;
  align-items:end;
  margin-top:34px;
}

.seo-archive__minimal-grid .display{
  margin:0;
  font-size:clamp(3.1rem,5.7vw,6.8rem);
}

.seo-archive__minimal-grid .lead{
  margin:0 0 14px;
  max-width:650px;
  font-size:clamp(1.35rem,2vw,2rem);
}

.seo-archive__note{
  max-width:620px;
  margin:0;
  font-size:.92rem;
  line-height:1.7;
  color:rgba(23,23,20,.58);
}

.seo-accordion{
  max-width:1120px;
  margin:0 auto;
  border-top:1px solid rgba(23,23,20,.14);
}

.seo-accordion__item{
  border-bottom:1px solid rgba(23,23,20,.14);
}

.seo-accordion__heading{
  margin:0;
}

.seo-accordion__trigger{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 22px;
  gap:18px;
  align-items:center;
  width:100%;
  padding:18px 0;
  border:0;
  background:none;
  color:inherit;
  text-align:left;
  cursor:pointer;
}

.seo-accordion__number{
  font-size:.54rem;
  letter-spacing:.18em;
  opacity:.35;
}

.seo-accordion__title{
  font-family:"DM Sans",sans-serif;
  font-size:clamp(.88rem,1vw,1.02rem);
  font-weight:400;
  line-height:1.35;
  letter-spacing:.025em;
  text-transform:uppercase;
}

.seo-accordion__icon{
  justify-self:end;
  font-family:"DM Sans",sans-serif;
  font-size:.95rem;
  font-weight:300;
  line-height:1;
  opacity:.45;
  transition:transform .3s var(--ease),opacity .3s var(--ease);
}

.seo-accordion__trigger:hover .seo-accordion__title{
  opacity:.68;
}

.seo-accordion__trigger:hover .seo-accordion__icon,
.seo-accordion__trigger:focus-visible .seo-accordion__icon{
  opacity:1;
}

.seo-accordion__trigger:focus-visible{
  outline:1px solid currentColor;
  outline-offset:7px;
}

.seo-accordion__panel{
  overflow:hidden;
}

.seo-accordion__content{
  padding:4px 0 42px 62px;
}

.seo-accordion__layout{
  display:grid;
  grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);
  gap:42px;
  align-items:start;
  max-width:980px;
}

.seo-accordion__media{
  margin:0;
  aspect-ratio:4/5;
  overflow:hidden;
}

.seo-accordion__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.seo-accordion__text{
  max-width:700px;
}

.seo-accordion__text p{
  margin:0 0 18px;
  font-size:clamp(.96rem,1vw,1.04rem);
  line-height:1.86;
  color:rgba(23,23,20,.7);
}

.seo-accordion__text h3{
  margin:28px 0 12px;
  font-family:"Italiana",serif;
  font-size:clamp(1.45rem,2vw,2.1rem);
  font-weight:400;
  line-height:1.14;
}

.seo-accordion__text a{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}

.seo-accordion__item.is-open .seo-accordion__icon{
  transform:rotate(45deg);
  opacity:1;
}

.no-js .seo-accordion__panel{
  display:block!important;
}

@media(max-width:900px){
  .seo-archive__minimal-grid{
    grid-template-columns:1fr;
    gap:26px;
  }

  .seo-accordion__trigger{
    grid-template-columns:38px minmax(0,1fr) 20px;
    gap:12px;
  }

  .seo-accordion__content{
    padding-left:50px;
  }

  .seo-accordion__layout{
    grid-template-columns:minmax(150px,.46fr) minmax(0,1fr);
    gap:28px;
  }
}

@media(max-width:700px){
  .seo-accordion__trigger{
    grid-template-columns:1fr 18px;
    padding:16px 0;
  }

  .seo-accordion__number{
    display:none;
  }

  .seo-accordion__title{
    font-size:.82rem;
    letter-spacing:.04em;
  }

  .seo-accordion__content{
    padding:2px 0 34px;
  }

  .seo-accordion__layout{
    grid-template-columns:1fr;
    gap:22px;
  }

  .seo-accordion__media{
    aspect-ratio:16/10;
  }
}
/*==================================================
SIGNATURE
==================================================*/

.signature-end{

    padding:180px 8vw 70px;

    display:flex;
    align-items:center;
    justify-content:center;
    gap:60px;

}

.signature-line{

    flex:1;

    height:1px;

    background:rgba(20,20,20,.10);

}

.signature-monogram{

    width:145px;

   

    transition:
        opacity .6s ease,
        transform .6s ease;

}

.signature-end:hover .signature-monogram{

    opacity:.35;

    transform:scale(1.03);

}

.signature-message{

    text-align:center;

    padding-bottom:120px;

}

.signature-message p{

    font-family:"Italiana",serif;

    font-size:clamp(2rem,3vw,3.6rem);

    line-height:1.05;

    letter-spacing:-0.03em;

    margin:0;

}

.signature-message em{

    font-style:italic;

    font-weight:400;

}

@media(max-width:768px){

.signature-end{

    padding:110px 30px 45px;

    gap:25px;

}

.signature-monogram{

    width:90px;

}

.signature-message{

    padding-bottom:80px;

}

.signature-message p{

    font-size:2rem;

}

}

/* =========================================================
   WEDDING FRANCE — JOURNAL ÉDITORIAL
   ========================================================= */

.journal-hero{
  min-height:100svh;
  position:relative;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
}

.journal-hero__media{
  position:absolute;
  inset:0;
  background:url("../../wedding baulieu/wedding-couple-session-villa-baulieu-cote-azur.jpg") center 42%/cover no-repeat;
  transform:scale(1.035);
  animation:heroZoom 16s ease-out both;
}

.journal-hero__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.10) 62%,rgba(0,0,0,.30));
}

.journal-hero__content{
  position:relative;
  z-index:2;
  max-width:980px;
  padding:0 8vw 11vh;
}

.journal-hero h1{
  margin:18px 0 30px;
  font-family:"Italiana",serif;
  font-size:clamp(4.4rem,9.5vw,9.5rem);
  font-weight:400;
  line-height:.88;
  letter-spacing:-.04em;
}

.journal-hero__content > p:not(.section-index){
  max-width:600px;
  font-size:clamp(1rem,1.35vw,1.22rem);
  line-height:1.65;
}

.journal-intro__grid{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:10vw;
  align-items:end;
  margin-top:58px;
}

.journal-intro__copy{
  max-width:600px;
}

.journal-intro__copy p:not(.lead){
  line-height:1.85;
  color:rgba(23,23,20,.7);
}

.journal-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px;
  padding:0 18px 100px;
}

.journal-card{grid-column:span 4}
.journal-card--tall{grid-row:span 2}
.journal-card--wide{grid-column:span 8}
.journal-card__link{display:block}

.journal-card__figure{
  position:relative;
  margin:0;
  aspect-ratio:4/5;
  overflow:hidden;
  background:#ddd7cd;
}

.journal-card--tall .journal-card__figure{aspect-ratio:3/5}
.journal-card--wide .journal-card__figure{aspect-ratio:16/9}

.journal-card__figure img{
  transition:transform 1.1s var(--ease),filter .6s ease;
}

.journal-card:hover .journal-card__figure img{
  transform:scale(1.025);
}

.journal-card__meta{
  padding:18px 3px 30px;
}

.journal-card__meta p,
.journal-card__meta span{
  margin:0;
  font-size:.61rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(23,23,20,.58);
}

.journal-card__meta h2{
  margin:8px 0 13px;
  font-family:"Italiana",serif;
  font-size:clamp(1.7rem,2.4vw,2.8rem);
  font-weight:400;
  line-height:1.02;
}

.journal-card__meta span{
  display:inline-block;
  padding-bottom:5px;
  border-bottom:1px solid rgba(23,23,20,.36);
}

.journal-statement{
  padding:125px 7vw;
  background:#181815;
  color:#f5f1e9;
}

.journal-statement blockquote{
  min-height:0;
  max-width:1150px;
  padding:55px 0 0;
  font-size:clamp(3.4rem,7vw,8.2rem);
}

.journal-locations{background:#ece7de}
.journal-contact{padding-top:105px}

@media(max-width:900px){
  .journal-hero__content{padding:0 22px 14vh}
  .journal-intro__grid{grid-template-columns:1fr;gap:36px}
  .journal-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding:0 10px 70px;
  }
  .journal-card,.journal-card--wide{grid-column:span 1}
  .journal-card--tall{grid-row:auto}
  .journal-card--tall .journal-card__figure,
  .journal-card__figure,
  .journal-card--wide .journal-card__figure{aspect-ratio:4/5}
}

@media(max-width:620px){
  .journal-hero h1{font-size:16vw}
  .journal-grid{grid-template-columns:1fr}
  .journal-card__meta{padding:14px 2px 26px}
  .journal-card__meta h2{font-size:2rem}
  .journal-statement{padding:90px 22px}
}

/* =========================================================
   PARIS COUPLE SESSION — DESIGN ÉDITORIAL
   ========================================================= */

html.no-js .reveal{
  opacity:1!important;
  transform:none!important;
}

.couple-hero{
  min-height:100svh;
  position:relative;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
}

.couple-hero__media{
  position:absolute;
  inset:0;
}

.couple-hero__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 44%;
  transform:scale(1.035);
  animation:heroZoom 16s ease-out both;
}

.couple-hero__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.08) 62%,rgba(0,0,0,.32));
}

.couple-hero__content{
  position:relative;
  z-index:2;
  max-width:1020px;
  padding:0 8vw 11vh;
}

.couple-hero h1{
  margin:18px 0 28px;
}

.couple-intro__grid{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:10vw;
  align-items:end;
  margin-top:58px;
}

.couple-intro__copy{
  max-width:620px;
}

.couple-intro__copy p:not(.lead){
  line-height:1.85;
  color:rgba(23,23,20,.7);
}

.couple-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px;
  padding:0 18px 110px;
}

.couple-card{
  grid-column:span 4;
  margin:0;
}

.couple-card--tall{
  grid-row:span 2;
}

.couple-card--wide{
  grid-column:span 8;
}

.couple-card__media{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:#ddd7cd;
}

.couple-card--tall .couple-card__media{
  aspect-ratio:3/5;
}

.couple-card--wide .couple-card__media{
  aspect-ratio:16/9;
}

.couple-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.1s var(--ease);
}

.couple-card:hover .couple-card__media img{
  transform:scale(1.025);
}

.couple-card figcaption{
  padding:18px 3px 30px;
}

.couple-card figcaption p{
  margin:0;
  font-size:.61rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(23,23,20,.58);
}

.couple-card figcaption h2{
  margin:8px 0 0;
  font-family:"Italiana",serif;
  font-size:clamp(1.5rem,2.1vw,2.45rem);
  font-weight:400;
  line-height:1.05;
}

.couple-statement{
  padding:125px 7vw;
  background:#181815;
  color:#f5f1e9;
}

.couple-statement blockquote{
  min-height:0;
  max-width:1180px;
  padding:55px 0 0;
  font-size:clamp(3.4rem,7vw,8rem);
}

.couple-details{
  background:#ece7de;
}

.couple-details__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-top:65px;
  background:rgba(23,23,20,.16);
}

.couple-details article{
  padding:42px;
  background:#ece7de;
}

.couple-details article span{
  font-size:.62rem;
  letter-spacing:.15em;
  opacity:.48;
}

.couple-details article h2{
  margin:18px 0;
  font-family:"Italiana",serif;
  font-size:clamp(1.8rem,2.6vw,3rem);
  font-weight:400;
}

.couple-details article p{
  margin:0;
  line-height:1.82;
  color:rgba(23,23,20,.68);
}

.related-stories{
  background:var(--paper);
}

.couple-contact{
  padding-top:105px;
}

@media(max-width:900px){
  .couple-hero__content{
    padding:0 22px 14vh;
  }

  .couple-intro__grid{
    grid-template-columns:1fr;
    gap:36px;
  }

  .couple-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding:0 10px 75px;
  }

  .couple-card,
  .couple-card--wide{
    grid-column:span 1;
  }

  .couple-card--tall{
    grid-row:auto;
  }

  .couple-card__media,
  .couple-card--wide .couple-card__media,
  .couple-card--tall .couple-card__media{
    aspect-ratio:4/5;
  }

  .couple-details__grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:620px){
  .couple-grid{
    grid-template-columns:1fr;
  }

  .couple-card figcaption{
    padding:14px 2px 26px;
  }

  .couple-card figcaption h2{
    font-size:1.85rem;
  }

  .couple-statement{
    padding:90px 22px;
  }

  .couple-details article{
    padding:34px 22px;
  }
}

/* VILLA BAULIEU — AJUSTEMENT HERO */
.couple-hero__media img{
  object-position:center 48%;
}

/* =========================================================
   CONTACT PAGE — DESIGN ÉDITORIAL
   AJOUT UNIQUEMENT : aucun style existant n'est modifié
   ========================================================= */

.contact-page{
  min-height:100svh;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  background:var(--paper);
}

.contact-page__visual{
  position:sticky;
  top:0;
  min-height:100svh;
  overflow:hidden;
  color:#fff;
}

.contact-page__visual > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.contact-page__visual-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.14),rgba(0,0,0,.58));
}

.contact-page__visual-copy{
  position:absolute;
  z-index:2;
  left:7vw;
  right:5vw;
  bottom:9vh;
  max-width:760px;
}

.contact-page__visual-copy h1{
  margin:18px 0 26px;
  font-family:"Italiana",serif;
  font-size:clamp(4rem,7.2vw,8.4rem);
  font-weight:400;
  line-height:.88;
  letter-spacing:-.04em;
}

.contact-page__visual-copy > p:not(.section-index){
  max-width:560px;
  margin:0;
  font-size:clamp(1rem,1.25vw,1.18rem);
  line-height:1.72;
}

.contact-page__form{
  min-height:100svh;
  padding:150px 6vw 90px;
  display:flex;
  align-items:flex-start;
}

.contact-page__form-inner{
  width:100%;
  max-width:760px;
  margin:0 auto;
}

.contact-page__form h2{
  margin:20px 0 28px;
  font-family:"Italiana",serif;
  font-size:clamp(3.7rem,6.5vw,7.5rem);
  font-weight:400;
  line-height:.9;
  letter-spacing:-.035em;
}

.contact-page__intro{
  max-width:610px;
  margin:0 0 44px;
  font-size:1rem;
  line-height:1.8;
  color:rgba(23,23,20,.7);
}

.contact-page__jotform{
  width:100%;
  min-height:520px;
  position:relative;
  z-index:1;
}

.contact-page__jotform iframe{
  width:100%!important;
  max-width:100%!important;
  border:0!important;
}

.contact-page__direct{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-top:34px;
  margin-top:34px;
  border-top:1px solid var(--line);
}

.contact-page__direct p{
  margin:0 0 8px;
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(23,23,20,.55);
}

.contact-page__direct a{
  width:max-content;
  max-width:100%;
  font-family:"Italiana",serif;
  font-size:clamp(1.3rem,1.8vw,1.8rem);
  border-bottom:1px solid rgba(23,23,20,.24);
}

.contact-reassurance{
  padding:24px 7vw;
  text-align:center;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.contact-reassurance p{
  margin:0;
  font-size:.62rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}

@media(max-width:1000px){
  .contact-page{
    grid-template-columns:1fr;
  }

  .contact-page__visual{
    position:relative;
    min-height:82svh;
  }

  .contact-page__visual-copy{
    left:22px;
    right:22px;
    bottom:11vh;
  }

  .contact-page__form{
    min-height:0;
    padding:90px 22px 70px;
  }
}

@media(max-width:620px){
  .contact-page__visual{
    min-height:74svh;
  }

  .contact-page__visual-copy h1{
    font-size:15vw;
  }

  .contact-page__form h2{
    font-size:14vw;
  }

  .contact-page__jotform{
    min-height:650px;
  }
}
