:root{
    --sable:#FFFDF9;
    --sable-deep:#F2EBDC;
    --turquoise:#00ADBA;
    --turquoise-deep:#00ADBA;
    --turquoise-pale:#CFE6E4;
    --dore:#D7AB59;
    --dore-pale:#E9D9B7;
    --noir:#080808;
    --blanc:#FFFDF8;
    --max:1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--sable);
    color:var(--noir);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.65;
    font-size:16px;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces', serif;
    font-weight:500;
    color:var(--noir);
    line-height:1.15;
    letter-spacing:-0.01em;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  .eyebrow{
      font-family:'Work Sans', sans-serif;
      font-size:22px; /* au lieu de 12.5px */
      letter-spacing:0.22em;
      text-transform:uppercase;
      color:var(--turquoise-deep);
      font-weight:600;
      display:inline-block;
      margin-bottom:14px;
    }
  section{padding:110px 0; position:relative;}
  @media (max-width:768px){ section{padding:72px 0;} .wrap{padding:0 22px;} }

  /* ---------- reveal ---------- */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity .9s ease, transform .9s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
    html{scroll-behavior:auto;}
  }

  /* ---------- header ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(247,241,230,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(33,29,23,0.08);
    transition:background .3s ease;
  }
  .nav-inner{
    max-width:var(--max); margin:0 auto; padding:0 32px;
    height:78px; display:flex; align-items:center; justify-content:space-between;
  }
  .logo{
    font-family:'Fraunces', serif; font-size:21px; font-weight:600;
    letter-spacing:0.01em; display:flex; align-items:center; gap:10px;
  }
.logo .mark{
  height:92px;
  width:auto;
  flex-shrink:0;
  object-fit:contain;
}
  nav.links{display:flex; gap:30px; align-items:center;}
  nav.links a{
    font-size:13.5px; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--noir); opacity:0.75; font-weight:500;
    position:relative; padding:6px 0;
  }
  nav.links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px;
    background:var(--turquoise); transition:width .3s ease;
  }
  nav.links a:hover{opacity:1;}
  nav.links a:hover::after{width:100%;}
  .nav-cta{
    background:var(--turquoise); color:var(--blanc)!important; opacity:1!important;
    padding:10px 20px!important; border-radius:2px; font-size:12.5px!important;
  }
  .nav-cta::after{display:none;}
  .burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; z-index:110;}
  .burger span{width:24px; height:1.5px; background:var(--noir);}
  @media (max-width:920px){
    nav.links{
      position:fixed; inset:0 0 0 auto; width:78%; max-width:340px; height:100vh;
      background:var(--blanc); flex-direction:column; justify-content:center; align-items:flex-start;
      padding:0 44px; gap:26px; transform:translateX(100%); transition:transform .4s ease;
      box-shadow:-10px 0 40px rgba(0,0,0,0.08);
    }
    nav.links.open{transform:translateX(0);}
    .burger{display:flex;}
  }

  /* ---------- wind motif (signature) ---------- */
  .wind-divider{width:100%; height:auto; display:block; margin:0 auto;}
  .wind-divider path{
    fill:none; stroke:var(--turquoise); stroke-width:1.4; opacity:0.55;
    stroke-dasharray:1400; stroke-dashoffset:1400;
    transition:stroke-dashoffset 1.8s ease;
  }
  .wind-divider.in path{stroke-dashoffset:0;}

  /* ---------- hero ---------- */
  .hero{
    min-height:100vh; display:flex; align-items:flex-end;
    background:
      radial-gradient(ellipse at 75% 15%, rgba(30,122,125,0.16), transparent 55%),
      linear-gradient(180deg, var(--sable) 0%, var(--sable-deep) 100%);
    padding-top:78px; position:relative; overflow:hidden;
  }
  .hero-photo{
    position:absolute; inset:0;
    background:
      linear-gradient(135deg, var(--turquoise) 0%, var(--turquoise-deep) 55%, #0f4547 100%);
    opacity:0.94;
  }
  .hero-photo::before{
    content:""; position:absolute; inset:0;
    background-image:
      repeating-linear-gradient(115deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 90px),
      repeating-linear-gradient(25deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 60px);
  }
  .hero-caption{
    position:absolute; bottom:26px; right:32px; color:rgba(255,255,255,0.55);
    font-size:11px; letter-spacing:0.08em; text-transform:uppercase; font-style:italic;
    z-index:3;
  }

  /* ---------- hero carousel ---------- */
  .hero-carousel{position:absolute; inset:0; overflow:hidden;}
  .hero-slide{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    opacity:0; transition:opacity 1.6s ease;
  }
  .hero-slide.active{opacity:1;}
  .hero-slide::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(
    180deg,
    rgba(15,32,33,0.10) 0%,
    rgba(15,32,33,0.05) 35%,
    rgba(15,32,33,0.55) 78%,
    rgba(15,32,33,0.80) 100%
  );
}
  .hero-dots{
    position:absolute; bottom:26px; left:32px; z-index:3;
    display:flex; gap:10px;
  }
  .hero-dots button{
    width:26px; height:2px; background:rgba(255,255,255,0.4); border:none; padding:0;
    cursor:pointer; transition:background .3s ease;
  }
  .hero-dots button.active{background:var(--dore-pale);}
  .hero-inner{
  position:relative; z-index:2; width:100%; max-width:var(--max); margin:0 auto;
  padding:0 32px 36px; /* au lieu de 90px */
  color:var(--blanc);
}
  .hero h1{
  font-size:clamp(38px, 6vw, 74px); color:var(--blanc); max-width:820px; margin-bottom:26px;
  font-weight:400;
  text-shadow:0 2px 24px rgba(0,0,0,0.35);
}
.hero .eyebrow{
  color:var(--dore-pale);
  text-shadow:0 1px 12px rgba(0,0,0,0.4);
}
  .hero h1 em{font-style:italic; color:var(--dore-pale); font-weight:400;}
  .hero p.lede{font-size:19px; max-width:520px; color:rgba(255,253,248,0.86); margin-bottom:38px;}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 30px; border:1px solid currentColor; border-radius:2px;
    font-size:13.5px; letter-spacing:0.06em; text-transform:uppercase; font-weight:500;
    transition:all .25s ease;
  }
  .btn-primary{background:var(--blanc); color:var(--turquoise-deep); border-color:var(--blanc);}
  .btn-primary:hover{background:transparent; color:var(--blanc);}
  .btn-outline{color:var(--blanc);}
  .btn-outline:hover{background:rgba(255,255,255,0.12);}
  .hero-btns{display:flex; gap:16px; flex-wrap:wrap;}

  /* ---------- generic section head ---------- */
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head h2{font-size:clamp(28px, 4vw, 42px); font-weight:400;}
  .section-head p{margin-top:16px; font-size:16.5px; color:#201D18; max-width:560px;}
  .section-head--wide{ max-width:100%;   max-width:none; }
  .section-head--wide p{ max-width:1000px; }
  /* ---------- placeholder photo blocks ---------- */
  .photo-ph{
    position:relative; border-radius:2px; overflow:hidden;
    background:
      linear-gradient(150deg, var(--dore-pale) 0%, var(--sable-deep) 55%, var(--turquoise-pale) 100%);
    display:flex; align-items:flex-end; min-height:220px;
  }
  .photo-ph::before{
    content:""; position:absolute; inset:0; opacity:0.35;
    background-image: radial-gradient(circle at 20% 30%, rgba(30,122,125,0.25) 0, transparent 40%),
                       radial-gradient(circle at 80% 70%, rgba(194,154,86,0.3) 0, transparent 45%);
  }
  .photo-ph span{
    position:relative; z-index:1; padding:14px 18px; font-size:12.5px;
    letter-spacing:0.04em; color:var(--turquoise-deep); font-style:italic; font-weight:500;
    background:rgba(255,253,248,0.55); width:100%;
  }

  /* ---------- actualités ---------- */
  .news-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:28px;}
  @media (max-width:860px){.news-grid{grid-template-columns:1fr;}}
  .news-card{
  transition:transform .3s ease, box-shadow .3s ease;
}
.news-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 30px rgba(33,29,23,0.08);
}
  .news-card .photo-ph{height:170px;}
  .news-body{padding:24px;}
  .news-date{font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--dore); font-weight:600; margin-bottom:10px;}
  .news-body h3{font-size:19px; font-weight:500; margin-bottom:8px;}
  .news-body p{font-size:14.5px; color:#5a5548;}

  /* ---------- centre / intro ---------- */
  .centre-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:70px; 
  align-items:stretch;}
  @media (max-width:900px){.centre-grid{grid-template-columns:1fr; gap:36px;}}
  .centre-grid p{font-size:16.5px; color:#080808; margin-bottom:16px; text-align:justify;}
  .quote-block{
    border-left:2px solid var(--turquoise); padding-left:24px; margin:34px 0;
    font-family:'Fraunces', serif; font-style:italic; font-size:21px; color:var(--turquoise-deep);
  }
  .centre-photos{
  height:100%;
  min-height:480px;
  border-radius:2px;
  overflow:hidden;
}
.centre-photos img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
  .centre-photos .photo-ph:first-child{grid-column:1/3; height:200px;}
  .centre-photos .photo-ph{height:140px;}
/* ---------- à propos ---------- */
.apropos .eyebrow{color:var(--turquoise-deep);}
.apropos-grid{
  display:grid;
  grid-template-columns:0.8fr 1.2fr;
  gap:64px;
  align-items:stretch; /* au lieu de center */
}

.portrait-ph{
  height:100%;
  min-height:480px; /* ajuste si besoin, comme pour .centre-photos */
  border-radius:2px;
  overflow:hidden;
  position:relative;
}
.portrait-ph img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}@media (max-width:860px){.apropos-grid{grid-template-columns:1fr;}}
.apropos-grid h2, .apropos-grid h3{color:var(--turquoise-deep);}
.apropos-grid p{color:#080808; font-size:16px; margin-bottom:16px; text-align:justify;}

.signature{font-family:'Fraunces', serif; font-style:italic; font-size:17px; margin-top:22px; color:var(--turquoise-deep);}
  /* ---------- hébergement ---------- */
  .feature-list{display:grid; grid-template-columns:repeat(2, 1fr); gap:12px 32px; margin:30px 0 46px; list-style:none;}
  @media (max-width:640px){.feature-list{grid-template-columns:1fr;}}
  .feature-list li{font-size:15px; color:#080808; padding-left:20px; position:relative; text-align:justify;}
  .feature-list li::before{content:"—"; position:absolute; left:0; color:#080808;}

  .formule-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:26px; margin-top:10px;}
  @media (max-width:960px){.formule-grid{grid-template-columns:1fr;}}
  .formule-card{
    background:var(--blanc); border:1px solid rgba(33,29,23,0.08); padding:34px 28px;
    display:flex; flex-direction:column; height:100%;
  }
  .formule-card.highlight{border-color:var(--dore); box-shadow:0 12px 34px rgba(194,154,86,0.18);}
  .formule-card h3{font-size:20px; margin-bottom:6px;}
  .formule-tag{font-size:20px; letter-spacing:0.08em; text-transform:uppercase; color:var(--dore); font-weight:600; margin-bottom:16px;}
  .formule-card ul{list-style:none; margin:18px 0; flex-grow:1;}
  .formule-card ul li{font-size:14px; color:#080808; padding:7px 0; border-top:1px solid rgba(33,29,23,0.07);}
  .formule-price{font-family:'Fraunces', serif; font-size:26px; color:var(--turquoise-deep); margin-top:6px;}
  .formule-price small{font-family:'Work Sans'; font-size:12px; color:#7a7568; font-weight:400;}

  .pavillon{
    margin-top:70px; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
    background:var(--sable-deep); padding:52px; border-radius:2px;
  }
  @media (max-width:860px){.pavillon{grid-template-columns:1fr; padding:32px;}}
  .pavillon p{color:#080808; margin-bottom:14px; font-size:15.5px; text-align:justify;}
  .pavillon-price{font-family:'Fraunces', serif; font-size:24px; color:var(--turquoise-deep); margin-top:14px;}

  /* ---------- contact inline blocks ---------- */
  .contact-inline{
    margin-top:52px; padding:36px 40px; background:var(--blanc);
    border:1px solid rgba(33,29,23,0.08); display:flex; justify-content:space-between;
    align-items:center; gap:24px; flex-wrap:wrap;
  }
  .contact-inline h4{font-size:18px; font-weight:500; margin-bottom:6px;}
  .contact-inline p{font-size:14px; color:#5a5548;}
  .contact-inline .btn{color:var(--turquoise-deep); border-color:var(--turquoise-deep); white-space:nowrap;}
  .contact-inline .btn:hover{background:var(--turquoise-deep); color:var(--blanc);}

  /* ---------- bien-être ---------- */
  .soin-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; margin-top:10px;}
  @media (max-width:860px){.soin-grid{grid-template-columns:repeat(2,1fr);}}
  .soin-card{background:var(--blanc); padding:30px 22px; text-align:center; border:1px solid rgba(33,29,23,0.08);}
  .soin-card .icon{width:34px; height:34px; margin:0 auto 16px; color:var(--turquoise);}
  .soin-card h3{font-size:16px; font-weight:500;}

  /* ---------- événements ---------- */
  .evt-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
  @media (max-width:860px){.evt-grid{grid-template-columns:1fr; gap:36px;}}
  .evt-list{list-style:none;}
  .evt-list li{
    padding:20px 0; border-top:1px solid rgba(33,29,23,0.12);
    display:flex; justify-content:space-between; align-items:center; gap:20px;
  }
  .evt-list li:last-child{border-bottom:1px solid rgba(33,29,23,0.12);}
  .evt-list h3{font-size:17px; font-weight:500;}
  .citation-box{
    background:var(--turquoise); color:var(--blanc); padding:44px 38px;
    font-family:'Fraunces', serif; font-style:italic; font-size:23px; line-height:1.5;
    position:relative;
  }
  .citation-box::before{content:"“"; font-size:70px; position:absolute; top:0; left:24px; opacity:0.3; font-family:'Fraunces';}

  /* ---------- contact ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:stretch;
}
@media (max-width:860px){
  .contact-grid{ grid-template-columns:1fr; gap:40px; }
}
/* ---------- contact ---------- */
.contact-section .eyebrow{color:var(--turquoise-deep);}
.contact-section h2{color:var(--turquoise-deep);}
.contact-info p{color:#080808; font-size:15.5px; margin-bottom:10px; text-align:justify;}
.contact-info a{color:var(--turquoise-deep); border-bottom:1px solid var(--dore); padding-bottom:1px;}

.contact-form input, .contact-form select, .contact-form textarea{
  background:var(--blanc);
  border:1px solid rgba(33,29,23,0.18);
  color:var(--noir);
  font-family:'Work Sans'; font-size:15px; padding:12px 14px;
  border-radius:2px;
  outline:none;
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{
  border-color:var(--turquoise);
}
.contact-form input::placeholder, .contact-form textarea::placeholder{color:#8a8578;}
.contact-form textarea{resize:vertical; min-height:90px;}
.contact-form label{font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--turquoise-deep);}
.contact-form .field{display:flex; flex-direction:column; gap:6px;}
.contact-form button{
  margin-top:8px; align-self:flex-start; background:var(--turquoise); color:var(--blanc);
  border:none; padding:15px 32px; font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
  cursor:pointer; border-radius:2px; transition:background .25s ease;
}
.contact-form button:hover{background:var(--dore);}

.contact-map{
  min-height:420px;
  border-radius:2px;
  overflow:hidden;
  border:1px solid rgba(33,29,23,0.12);
}
.contact-map iframe{
  display:block;
  filter:grayscale(0.15) contrast(1.05);
}
 
footer{
  background:var(--noir);
  padding:36px 0;
}
.footer-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
}
.footer-inner > span{
  font-size:13px;
  color:rgba(255,253,248,0.55);
}
.footer-legal-links{
  display:flex;
  gap:22px;
  flex-wrap:wrap;
}
.footer-legal-links a{
  font-size:12.5px;
  color:rgba(255,253,248,0.55);
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.footer-legal-links a:hover{
  color:var(--dore-pale);
  border-bottom-color:var(--dore-pale);
}

@media (max-width:640px){
  .footer-inner{
    flex-direction:column;
    align-items:flex-start;
  }
  .footer-legal-links{
    gap:14px;
    font-size:12px;
  }
}


  .room-gallery{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  grid-template-rows:260px 200px;
  gap:20px;
  margin:56px 0 70px;
}
.room-item{
  position:relative;
  overflow:hidden;
  border-radius:2px;
  background:var(--sable-deep);
}
.room-item--tall{ grid-row:1 / 3; }
.room-item--wide{ grid-column:2 / 4; }
.room-item--wide img{

}
.room-item img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  transition:transform 1.1s cubic-bezier(.16,1,.3,1), filter .6s ease;
  filter:saturate(0.92);
}
.room-item:hover img{
  transform:scale(1.06);
  filter:saturate(1.05);
}
.room-item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:18px 20px;
  color:var(--blanc);
  font-family:'Fraunces', serif;
  font-size:16px;
  font-style:italic;
  display:flex; align-items:center; gap:10px;
  background:linear-gradient(180deg, transparent, rgba(15,32,33,0.78) 70%);
  transform:translateY(8px);
  opacity:0.9;
  transition:transform .4s ease, opacity .4s ease;
}
.room-item figcaption span{
  font-family:'Work Sans', sans-serif;
  font-style:normal;
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--dore-pale);
  border:1px solid rgba(255,253,248,0.4);
  padding:3px 7px;
}
.room-item:hover figcaption{ transform:translateY(0); opacity:1; }

@media (max-width:860px){
  .room-gallery{
    grid-template-columns:1fr 1fr;
    grid-template-rows:180px 180px 220px;
  }
  .room-item--tall{ grid-row:auto; grid-column:1 / 3; height:220px; }
  .room-item--wide{ grid-column:1 / 3; }
}
@media (max-width:560px){
  .room-gallery{ grid-template-columns:1fr; grid-template-rows:auto; }
  .room-item--tall, .room-item--wide{ grid-column:auto; height:240px; }
  .room-item{ height:220px; }
}
.soin-card{
  background:var(--blanc);
  padding:0 0 24px;
  text-align:center;
  border:1px solid rgba(33,29,23,0.08);
  overflow:hidden;
}
.soin-photo{
  width:100%;
  aspect-ratio:4/5;
  overflow:hidden;
  position:relative;
  margin-bottom:20px;
}
.soin-photo::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(30,122,125,0.18));
  pointer-events:none;
}
.soin-photo img{
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(0.95);
  transition:transform 1s cubic-bezier(.16,1,.3,1);
}
.soin-card:hover .soin-photo img{
  transform:scale(1.07);
}
.soin-card h3{
  font-size:16px;
  font-weight:500;
  letter-spacing:0.02em;
}
.evt-photo{
  position:relative;
  aspect-ratio:4/5;
  border-radius:2px;
  overflow:hidden;
}
.evt-photo img{
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(0.95);
  transition:transform 1s cubic-bezier(.16,1,.3,1);
}
.evt-photo:hover img{
  transform:scale(1.05);
}
.evt-photo::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(15,32,33,0.75));
  pointer-events:none;
}
.evt-photo figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:30px 32px;
  color:var(--blanc);
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:21px;
  line-height:1.45;
}
.modal-overlay{
  position:fixed; inset:0; z-index:200;
  background:rgba(15,32,33,0.65);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
}
.modal-overlay.open{ opacity:1; visibility:visible; }

.modal-box{
  background:var(--blanc);
  max-width:520px; width:100%;
  max-height:88vh; overflow-y:auto;
  padding:44px 40px;
  border-radius:2px;
  position:relative;
  transform:translateY(16px);
  transition:transform .35s ease;
}
.modal-overlay.open .modal-box{ transform:translateY(0); }

.modal-close{
  position:absolute; top:18px; right:18px;
  background:none; border:none; font-size:26px; line-height:1;
  color:var(--noir); cursor:pointer; opacity:0.6;
}
.modal-close:hover{ opacity:1; }

.modal-box h3{
  font-size:26px; font-weight:400; margin:8px 0 10px;
}
.modal-sub{
  font-size:14.5px; color:#5a5548; margin-bottom:28px;
}

.modal-form{ display:flex; flex-direction:column; gap:16px; }
.modal-form .field{ display:flex; flex-direction:column; gap:6px; }
.modal-form label{
  font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--turquoise-deep); font-weight:600;
}
.modal-form input, .modal-form select, .modal-form textarea{
  border:1px solid rgba(33,29,23,0.18);
  background:var(--sable);
  padding:12px 14px;
  font-family:'Work Sans', sans-serif;
  font-size:14.5px;
  color:var(--noir);
  border-radius:2px;
  outline:none;
}
.modal-form input:focus, .modal-form select:focus, .modal-form textarea:focus{
  border-color:var(--turquoise);
}
.modal-form textarea{ min-height:80px; resize:vertical; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.btn-submit{
  margin-top:6px;
  background:var(--turquoise); color:var(--blanc);
  border:none; padding:15px 32px;
  font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
  cursor:pointer; border-radius:2px;
  transition:background .25s ease;
}
.btn-submit:hover{ background:var(--dore); }

@media (max-width:520px){
  .field-row{ grid-template-columns:1fr; }
  .modal-box{ padding:32px 24px; }
}
.founder-header{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:34px;
  margin-bottom:20px;
}
.founder-portrait{
  width:64px;
  height:64px;
  border-radius:50%;
  overflow:hidden;
  flex-shrink:0;
  border:2px solid var(--dore-pale);
}
.founder-portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.founder-name{
  font-size:22px;
  font-weight:500;
  margin-bottom:4px;
}
.founder-role{
  font-family:'Work Sans', sans-serif;
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--dore);
  font-weight:600;
}
.formule-price--split{ display:flex; flex-direction:column; gap:2px; }
.price-line{ display:flex; align-items:baseline; gap:8px; }
.price-num{ font-family:'Fraunces', serif; font-size:22px; color:var(--turquoise-deep); }
.price-note{ margin-top:6px; color:#7a7568; font-weight:400; }
.formule-note{
  max-width:780px;
  margin:36px auto 0;
  text-align:center;
  font-size:15px;
  font-style:italic;
  color:#5a5548;
  line-height:1.6;
}   
.apropos-row{
  display:grid;
  grid-template-columns:0.8fr 1.2fr;
  gap:64px;
  align-items:stretch;
}
.apropos-row + .apropos-row{
  margin-top:90px;
}
.apropos-row--reverse{
  grid-template-columns:1.2fr 0.8fr;
}
.apropos-row--reverse .apropos-photo{
  order:2;
}
.apropos-row--reverse .apropos-text{
  order:1;
}

.apropos-photo{
  border-radius:2px;
  overflow:hidden;
  background-size:cover;
  background-position:center;
}

.apropos-text p{
  color:#080808;
  font-size:16px;
  margin-bottom:16px;
  text-align:justify;
}
.founder-name{
  font-size:26px;
  font-weight:500;
  color:var(--turquoise-deep);
  margin-bottom:6px;
}
.founder-role{
  font-family:'Work Sans', sans-serif;
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--dore);
  font-weight:600;
}

@media (max-width:860px){
  .apropos-row, .apropos-row--reverse{
    grid-template-columns:1fr;
    gap:32px;
  }
  .apropos-row--reverse .apropos-photo,
  .apropos-row--reverse .apropos-text{
    order:initial;
  }
  .apropos-photo{ height:320px; }
}
.pavillon-carousel{
  position:relative;
  width:100%;
  border-radius:2px;
  overflow:hidden;
}
.pavillon-slide{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity 1.6s ease;
}
.pavillon-slide.active{ opacity:1; }
.pavillon-dots{
  position:absolute; bottom:14px; left:16px; z-index:3;
  display:flex; gap:8px;
}
.pavillon-dots button{
  width:20px; height:2px;
  background:rgba(255,255,255,0.5);
  border:none; padding:0; cursor:pointer;
  transition:background .3s ease;
}
.pavillon-dots button.active{ background:var(--dore-pale); }

/* ==================== PAGE ARTICLE ACTUALITÉ ==================== */

/* ---------- fil d'ariane ---------- */
.breadcrumb{
  padding:28px 0 0;
  font-size:13px;
  color:#7a7568;
}
.breadcrumb a{ color:var(--turquoise-deep); }
.breadcrumb a:hover{ text-decoration:underline; }

/* ---------- article header ---------- */
.article-head{ padding:36px 0 44px; max-width:820px; }
.article-date{
  font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--dore); font-weight:600; margin-bottom:16px;
}
.article-head h1{
  font-size:clamp(30px, 4.6vw, 50px);
  font-weight:400;
  margin-bottom:20px;
}
.article-lede{
  font-size:18px;
  color:#4a453c;
  max-width:680px;
}

/* ---------- photo de couverture ---------- */
.article-cover{
  width:100%;
  aspect-ratio:16/8;
  border-radius:2px;
  overflow:hidden;
  margin-bottom:60px;
  position:relative;
  background:var(--sable-deep);
}
.article-cover img{ width:100%; height:100%; object-fit:cover; }
.article-cover figcaption{
  position:absolute; bottom:0; left:0; right:0;
  padding:20px 26px;
  font-size:12.5px; font-style:italic; color:rgba(255,253,248,0.85);
  background:linear-gradient(180deg, transparent, rgba(15,32,33,0.6));
}

/* ---------- corps de texte ---------- */
.article-body{
  max-width:720px;
  margin:0 auto 70px;
}
.article-body p{
  font-size:17px;
  color:#3b362d;
  margin-bottom:22px;
}
.article-body p:first-of-type::first-letter{
  font-family:'Fraunces', serif;
  font-size:58px;
  font-weight:500;
  color:var(--turquoise-deep);
  float:left;
  line-height:0.85;
  margin:8px 10px 0 0;
}
.pull-quote{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:24px;
  color:var(--turquoise-deep);
  border-left:2px solid var(--turquoise);
  padding-left:26px;
  margin:44px 0;
  line-height:1.5;
}
.credit-line{
  font-size:13.5px;
  color:#7a7568;
  font-style:italic;
  margin-top:-6px;
}

/* ---------- galerie 3 photos (mosaïque) ---------- */
.article-gallery{
  max-width:var(--max);
  margin:0 auto 90px;
  padding:0 32px;
}
@media (max-width:768px){ .article-gallery{ padding:0 22px; } }
.gallery-head{ max-width:640px; margin:0 auto 40px; text-align:center; }
.gallery-head h2{ font-size:clamp(24px, 3.4vw, 32px); font-weight:400; }
.gallery-head p{ margin-top:12px; font-size:15px; color:#5a5548; }

.ikebana-gallery{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  grid-template-rows:auto auto;
  gap:16px;
}
.ikebana-gallery figure{
  position:relative;
  overflow:hidden;
  border-radius:2px;
  background:var(--sable-deep);
}
.ikebana-gallery .g1{
  grid-row:1 / 3;
  min-height:520px;
}
.ikebana-gallery .g2{ min-height:250px; }
.ikebana-gallery .g3{ min-height:250px; }
.ikebana-gallery img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(0.9);
  transition:transform 1.1s cubic-bezier(.16,1,.3,1), filter .5s ease;
}
.ikebana-gallery figure:hover img{
  transform:scale(1.05);
  filter:saturate(1.05);
}
.ikebana-gallery figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:16px 20px;
  color:var(--blanc);
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:14.5px;
  background:linear-gradient(180deg, transparent, rgba(15,32,33,0.78) 75%);
  opacity:0; transform:translateY(8px);
  transition:opacity .4s ease, transform .4s ease;
}
.ikebana-gallery figure:hover figcaption{ opacity:1; transform:translateY(0); }

@media (max-width:768px){
  .ikebana-gallery{ grid-template-columns:1fr; grid-template-rows:none; }
  .ikebana-gallery .g1{ min-height:320px; grid-row:auto; }
  .ikebana-gallery figcaption{ opacity:1; transform:translateY(0); }
}

/* ---------- bandeau signature ---------- */
.event-signature{
  background:var(--turquoise-deep);
  color:var(--blanc);
  padding:70px 0;
  text-align:center;
}
.event-signature .eyebrow{ color:var(--dore-pale); }
.event-signature p{
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:24px;
  max-width:640px;
  margin:0 auto;
  color:rgba(255,253,248,0.92);
}

/* ---------- retour aux actualités ---------- */
.article-footer{
  padding:70px 0 90px;
  text-align:center;
}

.gallery-marquee{
  padding:90px 0 100px;
  overflow:hidden;
}
.marquee-head{
  text-align:center;
  margin-bottom:48px;
}

.marquee-viewport{
  width:100%;
  overflow:hidden;
}
.marquee-track{
  display:flex;
  gap:18px;
  width:max-content;
  animation:marquee-scroll 40s linear infinite;
}
.marquee-track:hover{
  animation-play-state:paused;
}

.marquee-item{
  flex:0 0 auto;
  width:calc((100vw - 4 * 18px) / 5); /* ~5 photos visibles à l'écran */
  max-width:280px;
  aspect-ratio:3/4;
  border-radius:2px;
  overflow:hidden;
}
.marquee-item img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(0.92);
}

@keyframes marquee-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); } /* -50% car la série est dupliquée x2 */
}

@media (max-width:860px){
  .marquee-item{ width:calc((100vw - 3 * 14px) / 3); } /* ~3 photos visibles */
}
@media (max-width:560px){
  .marquee-item{ width:calc((100vw - 1 * 14px) / 2); } /* ~2 photos visibles */
  
  .success-icon{
  display:flex;
  justify-content:center;
  margin-bottom:6px;
}
.success-icon circle,
.success-icon path{
  stroke-dasharray:100;
  stroke-dashoffset:100;
  animation:draw-check 0.6s ease forwards;
}
.success-icon path{
  animation-delay:0.3s;
}
@keyframes draw-check{
  to{ stroke-dashoffset:0; }
}
}