/*
 * Finition éditoriale générale
 * Chargée après les styles de chaque page afin d'harmoniser tout le site.
 */

:root {
  --agnes-night: #26344F;
  --agnes-blue: #2C406C;
  --agnes-gold: #DBAD63;
  --agnes-ivory: #FAF7F1;
  --agnes-sage: #CDD5CA;
  --agnes-copy: rgba(250, 247, 241, .68);
  --agnes-dark-copy: rgba(38, 52, 79, .72);
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

p {
  text-wrap: pretty;
}

h1,
h2,
h3,
blockquote {
  text-wrap: balance;
}

/* Logo : mêmes proportions maîtrisées partout */
.nav-logo,
.topbar .mark {
  width: clamp(96px, 9vw, 132px) !important;
  height: auto !important;
  flex: 0 0 auto;
}

.nav-logo img,
.topbar .mark img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-height: 88px !important;
  object-fit: contain !important;
}

footer .f-logo,
footer .mark {
  display: block;
  width: 112px !important;
  height: auto !important;
  margin: 0 0 26px !important;
}

footer .f-logo img,
footer .mark img {
  display: block;
  width: 112px !important;
  height: auto !important;
  max-height: 78px !important;
  object-fit: contain !important;
  object-position: left center !important;
}

footer .f-maitre,
footer img[alt="Maître Restaurateur"] {
  width: 70px !important;
  height: auto !important;
  max-height: 82px;
  object-fit: contain;
}

/* Accueil : échelle et respiration */
#hero h1 {
  max-width: 820px;
  font-size: clamp(68px, 8.4vw, 136px) !important;
  line-height: .87 !important;
  letter-spacing: -.045em !important;
}

.hero-eye {
  font-size: clamp(8px, .72vw, 10px) !important;
  letter-spacing: .36em !important;
}

.hero-p {
  max-width: 430px !important;
  font-size: clamp(16px, 1.25vw, 19px) !important;
  line-height: 1.65 !important;
}

.mline h2 {
  font-size: clamp(72px, 12vw, 184px) !important;
  line-height: .82 !important;
}

.hist-txt {
  padding: clamp(75px, 10vw, 150px) clamp(36px, 7vw, 110px) !important;
}

.hist-txt h2 {
  max-width: 680px;
  font-size: clamp(44px, 4.6vw, 72px) !important;
  line-height: .94 !important;
}

.hist-txt p,
.p-head > p,
.brig-r p,
.ct-l > p {
  font-size: clamp(16px, 1.2vw, 18px) !important;
  line-height: 1.75 !important;
}

#citation {
  padding: clamp(100px, 15vh, 180px) 8vw !important;
}

#citation blockquote {
  max-width: 1120px;
  margin: 0 auto;
  font-size: clamp(46px, 6vw, 90px) !important;
  line-height: .96 !important;
}

.carte-lnk span {
  font-size: clamp(56px, 7vw, 104px) !important;
}

.p-head h2 {
  font-size: clamp(48px, 5.3vw, 82px) !important;
}

.p-card {
  min-height: 330px !important;
  padding: 42px 28px 62px !important;
}

.p-card h3 {
  font-size: clamp(33px, 3vw, 46px) !important;
}

.brig-in h2 {
  font-size: clamp(54px, 6.7vw, 102px) !important;
}

.ct-l h2 {
  font-size: clamp(52px, 5.4vw, 84px) !important;
}

.ct-r h3 {
  font-size: clamp(36px, 3.4vw, 54px) !important;
}

/* Détails plus discrets */
.tag,
.hero-eye,
.hist-badge,
.ct-info small,
footer h4,
.sub-index p {
  font-weight: 400 !important;
  letter-spacing: .3em !important;
}

.btn-gold,
#menu-btn,
.tlink,
.p-cta a,
.brig-r a,
.f-bottom .f-book,
.sub-cta a {
  font-weight: 400 !important;
  letter-spacing: .2em !important;
}

/* Footer de l'accueil */
footer {
  position: relative;
  overflow: hidden;
  padding: clamp(70px, 8vh, 110px) 8vw 34px !important;
  background: linear-gradient(145deg, #1D2942, #26344F) !important;
}

footer::before {
  content: "";
  position: absolute;
  left: 8vw;
  right: 8vw;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--agnes-gold), transparent);
  opacity: .7;
}

footer .f-col {
  min-width: 0;
}

footer .f-col p,
footer ul a {
  font-size: 13px !important;
  line-height: 1.75 !important;
}

footer h4 {
  margin-bottom: 24px !important;
  color: var(--agnes-gold) !important;
}

.f-bottom {
  margin-top: clamp(42px, 6vw, 80px) !important;
}

/* Anciennes pages intérieures : remise à niveau globale */
.subhero {
  min-height: min(860px, 88svh) !important;
}

.subhero h1 {
  max-width: 1100px;
  font-size: clamp(64px, 8.2vw, 126px) !important;
  line-height: .88 !important;
}

.sub-lead {
  max-width: 680px !important;
  font-size: clamp(17px, 1.4vw, 21px) !important;
  line-height: 1.6 !important;
}

.subcontent {
  padding-top: clamp(90px, 10vw, 160px) !important;
  padding-bottom: clamp(90px, 10vw, 160px) !important;
}

.sub-blocks h2 {
  font-size: clamp(34px, 3.2vw, 50px) !important;
  line-height: 1 !important;
}

.sub-blocks p {
  max-width: 620px;
  font-size: clamp(16px, 1.15vw, 18px) !important;
  line-height: 1.75 !important;
}

.subpage blockquote {
  max-width: none;
  padding: clamp(90px, 10vw, 160px) 9vw !important;
  font-size: clamp(48px, 7vw, 102px) !important;
  line-height: .96 !important;
}

.application h2 {
  font-size: clamp(48px, 6vw, 88px) !important;
}

.application > div > p:last-child {
  font-size: clamp(16px, 1.2vw, 18px) !important;
}

/* Mobile */
@media (max-width: 900px) {
  #nav,
  #nav.scrolled {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .nav-logo,
  .topbar .mark {
    width: 94px !important;
  }

  .nav-tools {
    gap: 6px !important;
  }

  .lang-switch {
    padding: 2px !important;
  }

  .lang-switch button {
    width: 25px !important;
    height: 25px !important;
  }

  #menu-btn {
    min-width: 66px;
    padding: 10px 12px !important;
    font-size: 8px !important;
  }

  #hero h1 {
    font-size: clamp(62px, 20vw, 96px) !important;
    line-height: .85 !important;
  }

  .hero-p {
    max-width: 92% !important;
    font-size: 16px !important;
  }

  .hero-cta {
    margin-top: 34px !important;
  }

  .mline h2 {
    font-size: clamp(58px, 18vw, 96px) !important;
  }

  .hist-img {
    height: 70vw !important;
    min-height: 310px;
  }

  .hist-txt {
    padding: 78px 24px !important;
  }

  .hist-txt h2 {
    font-size: clamp(42px, 13vw, 62px) !important;
  }

  #citation blockquote {
    font-size: clamp(42px, 12.5vw, 62px) !important;
  }

  .carte-lnk span {
    font-size: clamp(52px, 16vw, 74px) !important;
  }

  .p-head h2,
  .ct-l h2 {
    font-size: clamp(44px, 13vw, 64px) !important;
  }

  .brig-in h2 {
    font-size: clamp(52px, 15vw, 76px) !important;
  }

  footer {
    gap: 42px !important;
  }

  footer .f-logo,
  footer .mark,
  footer .f-logo img,
  footer .mark img {
    width: 96px !important;
  }

  .subhero h1 {
    font-size: clamp(50px, 15vw, 76px) !important;
  }

  .sub-lead {
    margin-left: 0 !important;
    font-size: 17px !important;
  }

  .sub-blocks article {
    padding-bottom: 52px !important;
  }

  .subpage blockquote {
    font-size: clamp(43px, 13vw, 68px) !important;
  }
}

@media (max-width: 430px) {
  .nav-logo {
    width: 82px !important;
  }

  .lang-switch button {
    width: 23px !important;
    height: 23px !important;
  }

  #menu-btn {
    min-width: 60px;
    padding: 9px 10px !important;
    letter-spacing: .14em !important;
  }

  .hero-txt {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  #hero h1 {
    font-size: clamp(58px, 19vw, 82px) !important;
  }
}
