:root{
  --noir:    #14100d;
  --moka:    #201812;
  --cacao:   #3a2a20;
  --or:      #c9a24a;
  --or-clair:#e2c481;
  --caramel: #a4744a;
  --sable:   #f1e7da;
  --lin:     #fdf9f3;
  --encre:   #2a1f18;
  --display: "Prata", "Times New Roman", serif;
  --body: "Manrope", "Segoe UI", system-ui, sans-serif;
  --gap: clamp(16px, 1.8vw, 26px);
  --pad: clamp(18px, 4.5vw, 76px);
  --ease: cubic-bezier(.22,.61,.36,1);
}

*, *::before, *::after{ box-sizing: border-box; }

html{ scroll-behavior: smooth; scroll-padding-top: 96px; }

body{
  margin: 0;
  background: var(--noir);
  color: var(--encre);
  font-family: var(--body);
  font-size: clamp(15px, 1vw, 16.5px);
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3{ font-family: var(--display); font-weight: 400; margin: 0; }
p{ margin: 0; }
ul{ margin: 0; padding: 0; list-style: none; }
img{ display: block; max-width: 100%; height: auto; }
a{ color: inherit; }
button{ font: inherit; }

:focus-visible{
  outline: 2px solid var(--or);
  outline-offset: 3px;
  border-radius: 2px;
}

.sprite{ position: absolute; width: 0; height: 0; overflow: hidden; }

.wrap{
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding-inline: var(--pad);
}

.h2{
  font-size: clamp(2rem, 4.4vw, 3.6rem);
  line-height: 1.06;
  letter-spacing: -.015em;
  color: var(--noir);
  margin-top: 14px;
}
.h2--light{ color: var(--lin); }

.eyebrow{
  font-size: .7rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--or);
}
.eyebrow--dark{ color: var(--caramel); }

.link{
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--or);
  padding-bottom: 1px;
  transition: color .3s var(--ease);
}
.link:hover{ color: var(--caramel); }

.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 26px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: transform .35s var(--ease), background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.btn--gold{ background: var(--or); color: #1b1409; }
.btn--gold:hover{ background: var(--or-clair); }
.btn--line{ border-color: rgba(226,196,129,.5); color: var(--lin); }
.btn--line:hover{ border-color: var(--or); background: rgba(201,162,74,.12); }
.btn--dark{ border-color: rgba(42,31,24,.35); color: var(--encre); }
.btn--dark:hover{ border-color: var(--cacao); background: rgba(58,42,32,.06); }
.btn:hover{ transform: translateY(-2px); }

.leaf-layer{
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  color: var(--or);
}
.leaf{
  position: absolute;
  top: 0;
  will-change: transform;
}
.leaf svg{
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}

.topbar{
  background: var(--noir);
  border-bottom: 1px solid rgba(226,196,129,.14);
  font-size: .74rem;
  letter-spacing: .04em;
  color: rgba(241,231,218,.72);
}
.topbar__in{
  max-width: 1280px;
  margin: 0 auto;
  padding: 9px var(--pad);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 20px;
}
.topbar__links{
  display: flex;
  align-items: center;
  gap: 18px;
}
.topbar__links a{
  text-decoration: none;
  transition: color .3s var(--ease);
}
.topbar__links a:hover{ color: var(--or-clair); }
.topbar__links svg{ width: 15px; height: 15px; fill: currentColor; display: block; }

.head{
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(20,16,13,.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(226,196,129,.14);
  transition: padding .4s var(--ease), background-color .4s var(--ease);
}
.head__in{
  max-width: 1280px;
  margin: 0 auto;
  padding: 14px var(--pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  transition: padding .4s var(--ease);
}
.head.is-stuck .head__in{ padding-block: 8px; }

.mark{
  text-decoration: none;
  color: var(--lin);
  display: grid;
  gap: 3px;
}
.mark__name{
  font-family: var(--display);
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  letter-spacing: .04em;
}
.mark__name em{
  font-style: normal;
  color: var(--or);
}
.mark__sub{
  font-size: .62rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--or);
}

.nav{
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.8vw, 30px);
}
.nav a{
  font-size: .8rem;
  letter-spacing: .06em;
  text-decoration: none;
  color: rgba(241,231,218,.86);
  transition: color .3s var(--ease);
}
.nav a:hover{ color: var(--or-clair); }
.nav__cta{
  min-height: 42px;
  padding: 0 20px;
  color: #1b1409;
}
.nav__cta:hover{ color: #1b1409; }

.burger{
  display: none;
  width: 44px;
  height: 44px;
  background: none;
  border: 1px solid rgba(226,196,129,.3);
  border-radius: 999px;
  cursor: pointer;
  padding: 0;
}
.burger span{
  display: block;
  width: 18px;
  height: 1px;
  margin: 4px auto;
  background: var(--or-clair);
  transition: transform .35s var(--ease), opacity .35s var(--ease);
}
.burger[aria-expanded="true"] span:nth-child(1){ transform: translateY(5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform: translateY(-5px) rotate(-45deg); }

.hero{
  position: relative;
  background: var(--noir);
  padding-block: clamp(44px, 8vh, 96px) clamp(52px, 9vh, 110px);
  overflow: hidden;
}
.hero__glow{
  position: absolute;
  inset: -30% -20% auto -25%;
  z-index: 0;
  height: 140%;
  background:
    radial-gradient(46% 44% at 24% 26%, rgba(164,116,74,.42) 0%, transparent 70%),
    radial-gradient(44% 44% at 76% 74%, rgba(201,162,74,.16) 0%, transparent 72%);
}
.hero__in{
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  padding-inline: var(--pad);
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .72fr);
  gap: clamp(28px, 5vw, 70px);
  align-items: center;
}
.hero__text{ color: var(--sable); }
.hero__title{
  margin: 18px 0 0;
  font-size: min(10.5vw, 7.4rem);
  line-height: .92;
  letter-spacing: -.02em;
  color: var(--lin);
}
.hero__title span{ display: block; white-space: nowrap; }
.hero__title em{
  font-style: normal;
  color: var(--or);
}
.hero__lead{
  max-width: 48ch;
  margin-top: clamp(18px, 2.6vh, 30px);
  font-weight: 300;
  font-size: clamp(1rem, 1.1vw, 1.14rem);
  color: rgba(241,231,218,.8);
}
.hero__cta{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: clamp(24px, 3.4vh, 38px);
}
.hero__facts{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 32px;
  margin-top: clamp(26px, 4vh, 44px);
  padding-top: 22px;
  border-top: 1px solid rgba(226,196,129,.2);
  font-size: .82rem;
  color: rgba(241,231,218,.72);
}
.hero__facts strong{
  font-family: var(--display);
  font-weight: 400;
  font-size: 1.05rem;
  color: var(--or-clair);
  margin-right: 6px;
}
.hero__shot{
  margin: 0;
  position: relative;
  border-radius: 240px 240px 10px 10px;
  overflow: hidden;
  box-shadow: 0 46px 90px -46px rgba(0,0,0,.8);
}
.hero__shot::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(195deg, rgba(20,16,13,0) 35%, rgba(20,16,13,.66) 100%);
}
.hero__shot img{
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  filter: sepia(.14) saturate(.98) contrast(1.04) brightness(.98);
}

.ticker{
  position: relative;
  background: var(--cacao);
  border-block: 1px solid rgba(226,196,129,.18);
  overflow: hidden;
  padding-block: 13px;
}
.ticker__track{
  display: flex;
  align-items: center;
  gap: 32px;
  width: max-content;
  animation: slide 44s linear infinite;
}
.ticker__track span{
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(241,231,218,.9);
  white-space: nowrap;
}
.ticker__track svg{
  width: 14px;
  height: 14px;
  flex: none;
  fill: var(--or);
}
@keyframes slide{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

.institut{
  background: var(--sable);
  padding-block: clamp(56px, 9vh, 130px);
}
.institut__grid{
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1fr);
  gap: clamp(28px, 4.5vw, 70px);
  align-items: center;
}
.institut__media{
  display: grid;
  gap: var(--gap);
}
.institut__media figure{
  margin: 0;
  overflow: hidden;
  border-radius: 4px;
}
.institut__media figure:first-child{ border-radius: 180px 180px 4px 4px; }
.institut__media img{
  width: 100%;
  object-fit: cover;
  filter: sepia(.16) saturate(.95) contrast(1.04);
}
.institut__media figure:first-child img{ aspect-ratio: 4 / 5; }
.institut__media figure:last-child img{ aspect-ratio: 16 / 10; }
.institut__text{ display: grid; gap: 18px; }
.institut__text .h2{ margin-bottom: 4px; }
.institut__text p{ color: rgba(42,31,24,.82); }

.pills{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.pills li{
  padding: 8px 16px;
  border: 1px solid rgba(164,116,74,.4);
  border-radius: 999px;
  font-size: .76rem;
  letter-spacing: .04em;
  color: var(--cacao);
}

.cats{
  background: var(--lin);
  padding-block: clamp(48px, 7vh, 104px);
  text-align: center;
}
.cats__row{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--gap);
  margin-top: clamp(32px, 5vh, 56px);
}
.cat{
  text-decoration: none;
  display: grid;
  justify-items: center;
  gap: 14px;
  color: var(--encre);
}
.cat img{
  width: 100%;
  max-width: 210px;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid rgba(164,116,74,.45);
  padding: 6px;
  filter: sepia(.32) saturate(.9) contrast(1.04);
  transition: transform .5s var(--ease), border-color .4s var(--ease);
}
.cat span{
  font-family: var(--display);
  font-size: clamp(.98rem, 1.2vw, 1.16rem);
}
.cat:hover img{
  transform: translateY(-6px);
  border-color: var(--or);
}

.pres{
  position: relative;
  background: var(--sable);
  padding-block: clamp(56px, 9vh, 130px);
  overflow: hidden;
}
.pres .leaf-layer{ color: var(--caramel); }
.pres__head{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .8fr);
  gap: clamp(20px, 3vw, 60px);
  align-items: end;
}
.pres__note{
  color: rgba(42,31,24,.72);
  font-weight: 300;
}

.tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: clamp(28px, 4vh, 44px);
  padding-bottom: 4px;
}
.tab{
  background: none;
  border: 1px solid rgba(164,116,74,.35);
  border-radius: 999px;
  padding: 10px 20px;
  font-size: .76rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cacao);
  cursor: pointer;
  transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.tab:hover{ border-color: var(--caramel); }
.tab.is-on{
  background: var(--cacao);
  border-color: var(--cacao);
  color: var(--lin);
}

.grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap);
  margin-top: clamp(24px, 3.4vh, 36px);
}
.blocks{ margin-top: clamp(24px, 3.4vh, 36px); }
.block.is-off{ display: none; }

.band{
  margin: 0 0 var(--gap);
  overflow: hidden;
  border-radius: 4px;
}
.band img{
  width: 100%;
  max-height: 340px;
  object-fit: cover;
  filter: sepia(.16) saturate(.95) contrast(1.04);
}

.strip{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--gap);
  margin-bottom: var(--gap);
}
.strip img{
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 4px;
  filter: sepia(.16) saturate(.95) contrast(1.04);
}

.lead-note{
  max-width: 72ch;
  margin-bottom: var(--gap);
  font-weight: 300;
  color: rgba(42,31,24,.78);
}

.claims{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap);
  margin-bottom: var(--gap);
}
.claims p{
  padding: clamp(16px, 1.6vw, 22px);
  background: var(--lin);
  border-radius: 4px;
  border-top: 2px solid var(--or);
  font-size: .88rem;
  font-weight: 300;
  color: rgba(42,31,24,.78);
}
.claims span{
  display: block;
  margin-bottom: 8px;
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--caramel);
}

.tarifs{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 54px);
  padding: clamp(22px, 2.4vw, 38px);
  background: var(--lin);
  border-radius: 4px;
}
.tarifs__col h4{
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(1.05rem, 1.3vw, 1.28rem);
  color: var(--noir);
  margin: 0 0 10px;
}
.tarifs__col h4 + ul + h4{ margin-top: 26px; }
.tarifs ul{ display: grid; gap: 2px; }
.tarifs li{
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 7px 0;
  font-size: .92rem;
  color: rgba(42,31,24,.86);
  border-bottom: 1px solid rgba(58,42,32,.08);
}
.tarifs li > span:first-child{ font-weight: 300; }
.tarifs .p{
  font-family: var(--display);
  font-size: 1rem;
  color: var(--caramel);
  white-space: nowrap;
}
.tnote{
  grid-column: 1 / -1;
  padding-top: 6px;
  font-size: .85rem;
  font-weight: 300;
  color: rgba(42,31,24,.66);
}
.tnote--tight{
  grid-column: auto;
  margin-top: 14px;
}

.rating{
  display: grid;
  grid-template-columns: minmax(0, .5fr) minmax(0, 1fr);
  gap: clamp(20px, 3vw, 50px);
  align-items: center;
  margin-top: clamp(28px, 4vh, 48px);
  padding: clamp(24px, 2.6vw, 40px);
  background: var(--lin);
  border-radius: 4px;
  border-left: 2px solid var(--or);
}
.rating__num{
  font-family: var(--display);
  font-size: clamp(3rem, 5vw, 4.6rem);
  line-height: 1;
  color: var(--noir);
}
.rating__stars{
  margin-top: 6px;
  font-size: 1.1rem;
  letter-spacing: .14em;
  color: var(--or);
}
.rating__meta{
  margin-top: 6px;
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--caramel);
}
.rating__text p{
  font-weight: 300;
  color: rgba(42,31,24,.8);
}
.rating__cta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.card{
  display: flex;
  flex-direction: column;
  background: var(--lin);
  border-radius: 4px;
  overflow: hidden;
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.card:hover{
  transform: translateY(-6px);
  box-shadow: 0 30px 50px -34px rgba(32,24,18,.5);
}
.card__media{
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, var(--caramel), var(--cacao));
}
.card__media::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(200deg, rgba(58,42,32,.3), rgba(20,16,13,.12));
  mix-blend-mode: multiply;
  pointer-events: none;
  transition: opacity .7s var(--ease);
}
.card:hover .card__media::after{ opacity: .35; }
.card__media img{
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  filter: sepia(.16) saturate(.95) contrast(1.04);
  transition: transform 1.1s var(--ease);
}
.card:hover .card__media img{ transform: scale(1.05); }

.card__body{
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: clamp(18px, 1.8vw, 26px) clamp(18px, 1.8vw, 28px) clamp(18px, 1.8vw, 24px);
}
.card__name{
  font-size: clamp(1.14rem, 1.4vw, 1.42rem);
  line-height: 1.18;
  color: var(--noir);
}
.card__desc{
  margin-top: 9px;
  font-size: .89rem;
  font-weight: 300;
  color: rgba(42,31,24,.72);
}

.price{
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: auto;
  padding-top: 20px;
}
.dur{
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(58,42,32,.75);
  white-space: nowrap;
}
.leader{
  flex: 1;
  height: 1px;
  border-bottom: 1px dotted rgba(58,42,32,.4);
  transform: translateY(-4px);
}
.sum{
  font-family: var(--display);
  font-size: clamp(1.12rem, 1.4vw, 1.42rem);
  color: var(--caramel);
  white-space: nowrap;
}

.grid__note{
  margin-top: clamp(24px, 3.4vh, 40px);
  font-weight: 300;
  color: rgba(42,31,24,.72);
}

.forfaits{
  position: relative;
  background: var(--noir);
  padding-block: clamp(56px, 9vh, 130px);
  overflow: hidden;
}
.offers{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap);
  margin-top: clamp(32px, 5vh, 56px);
}
.offers--two{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
.offer{
  padding: clamp(24px, 2.4vw, 38px);
  border: 1px solid rgba(226,196,129,.28);
  border-radius: 4px;
  color: var(--sable);
  background: rgba(58,42,32,.28);
  transition: border-color .4s var(--ease), transform .5s var(--ease);
}
.offer:hover{
  border-color: var(--or);
  transform: translateY(-5px);
}
.offer h3{
  font-size: clamp(1.3rem, 1.8vw, 1.8rem);
  color: var(--lin);
  margin-top: 6px;
}
.offer__tag{
  font-size: .66rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--or);
}
.offer__desc{
  margin-top: 12px;
  font-weight: 300;
  color: rgba(241,231,218,.78);
}
.offer__meta{
  margin-top: 16px;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(241,231,218,.6);
}
.offer__price{
  margin-top: 10px;
  font-family: var(--display);
  font-size: clamp(1.5rem, 2vw, 2rem);
  color: var(--or-clair);
}
.offer__price s{
  font-size: .55em;
  color: rgba(241,231,218,.45);
  margin-left: 8px;
}
.offer--star{
  background: linear-gradient(170deg, rgba(164,116,74,.34), rgba(58,42,32,.3));
  border-color: rgba(226,196,129,.5);
}

.gift{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 40px;
  margin-top: var(--gap);
  padding: clamp(24px, 2.6vw, 40px);
  border-radius: 4px;
  background: rgba(241,231,218,.06);
  border: 1px solid rgba(226,196,129,.2);
  color: var(--sable);
}
.gift h3{
  font-size: clamp(1.2rem, 1.6vw, 1.6rem);
  color: var(--lin);
}
.gift p{
  max-width: 62ch;
  margin-top: 8px;
  font-weight: 300;
  color: rgba(241,231,218,.78);
}

.pres__head{ align-items: end; }

.avis{
  background: var(--sable);
  padding-block: clamp(52px, 8vh, 116px);
}

.brands{
  margin-top: clamp(34px, 5vh, 60px);
  padding-top: 26px;
  border-top: 1px solid rgba(164,116,74,.3);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 34px;
}
.brands__label{
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--caramel);
}
.brands ul{
  display: flex;
  flex-wrap: wrap;
  gap: 12px 30px;
}
.brands li{
  font-family: var(--display);
  font-size: clamp(1.1rem, 1.6vw, 1.5rem);
  color: rgba(42,31,24,.45);
}

.infos{
  position: relative;
  background: var(--moka);
  padding-block: clamp(56px, 9vh, 130px);
  overflow: hidden;
}
.infos__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap);
  margin-top: clamp(32px, 5vh, 56px);
}
.panel{
  padding: clamp(24px, 2.4vw, 36px);
  border: 1px solid rgba(226,196,129,.22);
  border-radius: 4px;
  background: rgba(20,16,13,.5);
  color: rgba(241,231,218,.82);
  display: grid;
  gap: 14px;
  align-content: start;
}
.panel h3{
  font-size: clamp(1.2rem, 1.5vw, 1.5rem);
  color: var(--or-clair);
}
.panel__note{
  font-size: .82rem;
  color: rgba(241,231,218,.55);
}
.hours li, .coords li{
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(226,196,129,.1);
  font-size: .9rem;
}
.hours .leader{ border-bottom-color: rgba(226,196,129,.3); }
.hours .off{ color: var(--caramel); }
.coords li{ justify-content: space-between; }
.coords span{
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(241,231,218,.55);
}
.coords a{
  text-decoration: none;
  color: var(--lin);
  transition: color .3s var(--ease);
}
.coords a:hover{ color: var(--or-clair); }

.faq{ margin-top: clamp(40px, 6vh, 72px); }
.faq__title{
  font-size: clamp(1.5rem, 2.2vw, 2.2rem);
  color: var(--lin);
  margin-bottom: 18px;
}
.qa{
  border-top: 1px solid rgba(226,196,129,.18);
  padding: 18px 0;
  color: rgba(241,231,218,.78);
}
.qa:last-child{ border-bottom: 1px solid rgba(226,196,129,.18); }
.qa summary{
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--display);
  font-size: clamp(1.02rem, 1.3vw, 1.24rem);
  color: var(--lin);
}
.qa summary::-webkit-details-marker{ display: none; }
.qa summary::after{
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  border-right: 1px solid var(--or);
  border-bottom: 1px solid var(--or);
  transform: rotate(45deg);
  transition: transform .35s var(--ease);
}
.qa[open] summary::after{ transform: rotate(-135deg); }
.qa p{
  margin-top: 12px;
  max-width: 76ch;
  font-weight: 300;
}

.contact{
  background: var(--lin);
  padding-block: clamp(56px, 9vh, 124px);
}
.contact__grid{
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(30px, 4.5vw, 70px);
  align-items: start;
}
.contact__text{ display: grid; gap: 18px; }
.contact__text p{ color: rgba(42,31,24,.8); }
.contact__fast{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.contact__legal{
  font-size: .82rem;
  color: rgba(42,31,24,.6);
}

.form{
  display: grid;
  gap: 16px;
  padding: clamp(22px, 2.4vw, 36px);
  background: var(--sable);
  border-radius: 4px;
  border: 1px solid rgba(164,116,74,.25);
}
.form__row{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.form label{ display: grid; gap: 7px; }
.form label > span{
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cacao);
}
.form input, .form select, .form textarea{
  font: inherit;
  font-size: .94rem;
  color: var(--encre);
  background: var(--lin);
  border: 1px solid rgba(58,42,32,.22);
  border-radius: 3px;
  padding: 12px 14px;
  width: 100%;
  transition: border-color .3s var(--ease);
}
.form input:focus, .form select:focus, .form textarea:focus{
  border-color: var(--caramel);
  outline: none;
}
.form input.is-bad, .form textarea.is-bad{ border-color: #a4463a; }
.form textarea{ resize: vertical; }
.form__send{ justify-self: start; margin-top: 4px; }
.form__hint{
  font-size: .8rem;
  color: rgba(42,31,24,.62);
}
.form__hint.is-bad{ color: #8f3a2f; }

.foot{
  background: var(--noir);
  color: rgba(241,231,218,.72);
  padding-block: clamp(44px, 6vh, 80px) 26px;
  font-size: .9rem;
}
.foot__grid{
  display: grid;
  grid-template-columns: 1.2fr repeat(3, minmax(0, .8fr));
  gap: clamp(24px, 3vw, 50px);
  padding-bottom: clamp(28px, 4vh, 48px);
  border-bottom: 1px solid rgba(226,196,129,.16);
}
.foot__grid > div{ display: grid; gap: 8px; align-content: start; }
.foot__name{
  font-family: var(--display);
  font-size: 1.3rem;
  color: var(--lin);
}
.foot__label{
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--or);
  margin-bottom: 4px;
}
.foot a{
  text-decoration: none;
  transition: color .3s var(--ease);
}
.foot a:hover{ color: var(--or-clair); }
.legal{
  margin-top: 22px;
  color: rgba(241,231,218,.6);
}
.legal summary{
  cursor: pointer;
  list-style: none;
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--or);
}
.legal summary::-webkit-details-marker{ display: none; }
.legal p{
  margin-top: 12px;
  max-width: 84ch;
  font-size: .84rem;
  font-weight: 300;
}
.foot__copy{
  margin-top: 20px;
  font-size: .78rem;
  color: rgba(241,231,218,.42);
}

.float-cta{
  position: fixed;
  right: clamp(14px, 2.2vw, 30px);
  bottom: clamp(14px, 2.2vw, 30px);
  z-index: 40;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 52px;
  padding: 0 22px;
  border-radius: 999px;
  background: var(--or);
  color: #1b1409;
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 18px 34px -18px rgba(0,0,0,.7);
  opacity: 0;
  transform: translateY(18px);
  pointer-events: none;
  transition: opacity .45s var(--ease), transform .45s var(--ease), background-color .3s var(--ease);
}
.float-cta.is-visible{
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
.float-cta:hover{ background: var(--or-clair); }
.float-cta svg{ width: 19px; height: 19px; fill: currentColor; }

.reveal{
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .85s var(--ease), transform .85s var(--ease);
}
.reveal.is-in{
  opacity: 1;
  transform: none;
}

@media (max-width: 1100px){
  .cats__row{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid, .offers, .infos__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .strip, .claims{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rating{ grid-template-columns: 1fr; }
  .foot__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pres__head{ grid-template-columns: 1fr; }
}

@media (max-width: 900px){
  .hero__in, .institut__grid, .contact__grid{ grid-template-columns: 1fr; }
  .institut__media{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__shot{
    max-width: 420px;
    border-radius: 200px 200px 10px 10px;
  }
  .nav{
    position: fixed;
    inset: 0 0 auto;
    top: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 96px 22px 26px;
    background: var(--noir);
    border-bottom: 1px solid rgba(226,196,129,.18);
    transform: translateY(-101%);
    transition: transform .45s var(--ease);
    min-height: 100svh;
  }
  .nav.is-open{ transform: none; }
  .nav a{
    padding: 16px 0;
    border-bottom: 1px solid rgba(226,196,129,.14);
    font-size: 1rem;
  }
  .nav a.nav__cta{
    margin-top: 22px;
    padding: 0 28px;
    min-height: 50px;
    border-bottom: 0;
    align-self: start;
  }
  .burger{
    display: block;
    position: relative;
    z-index: 2;
  }
  .mark{
    position: relative;
    z-index: 2;
  }
  .head__in{ position: relative; }
}

@media (max-width: 640px){
  html{ scroll-padding-top: 76px; }
  .topbar__zone{ display: none; }
  .mark__sub{ display: none; }
  .topbar__in{ justify-content: center; }
  .cats__row{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid, .offers, .offers--two, .infos__grid, .form__row, .institut__media, .tarifs{
    grid-template-columns: minmax(0, 1fr);
  }
  .strip{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .claims{ grid-template-columns: minmax(0, 1fr); }
  .foot__grid{ grid-template-columns: minmax(0, 1fr); }
  .h2 br, .hero__title br{ display: none; }
  .float-cta{
    width: 54px;
    height: 54px;
    padding: 0;
    justify-content: center;
  }
  .float-cta span{ display: none; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  .ticker__track{ animation: none; }
  .reveal{ opacity: 1; transform: none; transition: none; }
  .card:hover, .offer:hover, .cat:hover img{ transform: none; }
  .card:hover .card__media img{ transform: none; }
}
