
:root{
  --encre:#1f4536; --papier:#f7f3ea; --gris:#546e61; --filet:#bfccc3;
  --blanc:#ffffff; --surface:#fbf9f4;
  --serif:"Cormorant Garamond",Garamond,Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--papier);color:var(--encre);
  font-family:var(--serif);font-size:19px;line-height:1.62;font-weight:500;
  -webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
.conteneur{max-width:1080px;margin:0 auto;padding-inline:24px;}

/* en-tete */
.entete{border-bottom:1px solid var(--filet);background:var(--papier);
  position:sticky;top:0;z-index:20;}
.entete .conteneur{display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding-block:16px;flex-wrap:wrap;}
.marque{display:flex;align-items:center;gap:14px;text-decoration:none;}
.marque img{width:44px;height:auto;flex:none;}
.marque .mots{display:flex;flex-direction:column;line-height:1;}
.marque .m1{font-size:19px;letter-spacing:.20em;}
.marque .m2{font-size:10px;letter-spacing:.34em;color:var(--gris);margin-top:4px;}
nav.principale ul{list-style:none;display:flex;gap:26px;margin:0;padding:0;flex-wrap:wrap;}
nav.principale a{text-decoration:none;font-size:17px;padding-bottom:3px;
  border-bottom:1px solid transparent;}
nav.principale a:hover,nav.principale a[aria-current="page"]{border-bottom-color:var(--encre);}
.langues{font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);}
.langues a{text-decoration:none;}
.langues a[aria-current]{color:var(--encre);}

/* hero */
.hero{padding-block:86px 64px;border-bottom:1px solid var(--filet);}
.hero h1{font-size:clamp(40px,6.4vw,68px);line-height:1.04;margin:0 0 22px;
  font-weight:600;text-wrap:balance;max-width:17ch;}
.hero p.chapeau{font-size:22px;color:var(--gris);max-width:56ch;margin:0;}
.actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px;}
.bouton{display:inline-block;text-decoration:none;font-size:16px;letter-spacing:.10em;
  text-transform:uppercase;padding:13px 26px;border:1px solid var(--encre);}
.bouton:hover{background:var(--encre);color:var(--papier);}
.bouton.discret{border-color:var(--filet);color:var(--gris);}
.bouton.discret:hover{background:transparent;border-color:var(--encre);color:var(--encre);}

/* sections */
section{padding-block:62px;border-bottom:1px solid var(--filet);}
section:last-of-type{border-bottom:0;}
h2{font-size:clamp(27px,3.6vw,36px);line-height:1.16;margin:0 0 14px;font-weight:600;
  text-wrap:balance;}
h3{font-size:23px;margin:0 0 8px;font-weight:600;}
.sur{font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--gris);
  margin:0 0 10px;max-width:none;}
p{margin:0 0 16px;max-width:66ch;}
.reponse{font-size:21px;max-width:62ch;}

/* grilles */
.grille{display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));
  margin-top:34px;}
.carte{background:var(--surface);border:1px solid var(--filet);padding:26px;}
.carte p{margin-bottom:0;font-size:17.5px;color:var(--gris);}
.hotels{display:grid;gap:34px;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));
  margin-top:34px;}
.hotel{border:1px solid var(--filet);background:var(--blanc);}
.hotel .visuel{aspect-ratio:3/2;background:var(--surface);display:flex;
  align-items:center;justify-content:center;border-bottom:1px solid var(--filet);}
.hotel .visuel img{width:40%;max-width:150px;height:auto;}
.hotel .corps{padding:24px;}
.hotel .corps p{font-size:17px;color:var(--gris);}
.hotel .lieu{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);}

/* faits */
dl.faits{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);
  gap:0;margin:26px 0 0;border-top:1px solid var(--filet);}
dl.faits dt{padding:11px 0;border-bottom:1px solid var(--filet);font-size:16px;
  letter-spacing:.04em;color:var(--gris);}
dl.faits dd{padding:11px 0;border-bottom:1px solid var(--filet);margin:0;font-size:17.5px;}
@media(max-width:620px){dl.faits{grid-template-columns:1fr;}
  dl.faits dt{border-bottom:0;padding-bottom:0;} }

/* faq */
.faq{margin-top:30px;}
.faq details{border-bottom:1px solid var(--filet);padding:16px 0;}
.faq summary{cursor:pointer;font-size:20px;font-weight:600;list-style:none;
  display:flex;align-items:baseline;justify-content:space-between;gap:18px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--gris);font-weight:500;flex:0 0 auto;}
.faq details[open] summary::after{content:"–";}
.faq p{margin:12px 0 0;}

/* formulaire */
form.demande{display:grid;gap:16px;max-width:620px;margin-top:26px;}
form.demande label{display:flex;flex-direction:column;gap:6px;font-size:16px;color:var(--gris);}
form.demande input,form.demande select,form.demande textarea{
  font-family:var(--serif);font-size:18px;color:var(--encre);background:var(--blanc);
  border:1px solid var(--filet);padding:11px 13px;width:100%;}
form.demande input:focus,form.demande textarea:focus,form.demande select:focus{
  outline:2px solid var(--encre);outline-offset:1px;}
form.demande .duo{display:grid;gap:16px;grid-template-columns:1fr 1fr;}
@media(max-width:560px){form.demande .duo{grid-template-columns:1fr;}}
form.demande button{font-family:var(--serif);font-size:16px;letter-spacing:.10em;
  text-transform:uppercase;padding:13px 26px;border:1px solid var(--encre);
  background:transparent;color:var(--encre);cursor:pointer;justify-self:start;}
form.demande button:hover{background:var(--encre);color:var(--papier);}

/* pied */
.pied{background:var(--encre);color:var(--papier);padding-block:54px 34px;}
.pied a{color:var(--papier);text-decoration:none;}
.pied .colonnes{display:grid;gap:36px;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));}
.pied h4{font-size:13px;letter-spacing:.24em;text-transform:uppercase;
  color:#9fb3ba;margin:0 0 14px;font-weight:500;}
.pied ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.pied .bas{margin-top:40px;padding-top:20px;border-top:1px solid #3a4c56;
  font-size:14px;color:#9fb3ba;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.fil{font-size:14px;color:var(--gris);padding-block:18px 0;}
.fil a{text-decoration:none;}
.maj{font-size:14px;color:var(--gris);margin-top:30px;}
