/* Les Hautes Belles — composition inspirée du pied de page de Ses Talaioles.
   Palette taupe, titre romain / italique, newsletter et signature discrète.
   Tous les styles restent limités à ce composant partagé. */
.hb-footer {
  --c-text: #171612;
  --c-input-text: #171612;
  --c-error-form: #39180f;
  color: var(--c-text);
  background: #8f897e;
  padding: 130px 0 60px;
  font: 400 16px/1.8 var(--font-main, "Kumbh Sans", sans-serif);
}
.hb-footer__inner { width: min(1340px, calc(100% - 100px)); margin-inline: auto; }
.hb-footer a { color: inherit; text-decoration: none; }
.hb-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.hb-footer a:focus-visible,
.hb-footer button:focus-visible,
.hb-footer input:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.hb-footer__top { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.hb-footer .hb-footer__title {
  margin: 0;
  font: 400 clamp(46px, 5.4vw, 76px)/1.1 Baskerville, Georgia, "Times New Roman", serif;
  letter-spacing: -.025em;
  text-transform: none;
  color: inherit;
}
.hb-footer__title em { font-weight: 400; }
.hb-footer__newsletter { max-width: 480px; padding-top: 18px; }
.hb-footer .hb-footer__intro { margin: 0 0 42px; font-size: 19px; line-height: 1.6; }
.hb-footer__fields { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px; align-items: start; }
.hb-footer__fields > .field__wrap { min-width: 0; }
.hb-footer input[type="email"] {
  display: block; width: 100%; height: 56px; padding: 14px 0;
  border: 0; border-bottom: 1px solid currentColor; border-radius: 0;
  font: inherit; font-size: 15px; color: inherit; background: transparent;
  box-shadow: none; appearance: none;
}
.hb-footer input[type="email"]::placeholder { color: #171612; opacity: .85; }
.hb-footer .hb-footer__submit {
  display: block; min-height: 56px; margin: 0; padding: 14px 28px;
  border: 1px solid currentColor; border-radius: 0; background: transparent;
  font: inherit; font-size: 15px; color: inherit; cursor: pointer;
  transition: background-color .2s, color .2s;
}
.hb-footer .hb-footer__submit:hover { background: #171612; color: #f3f1eb; border-color: #171612; }
.hb-footer__consent-wrap { margin-top: 20px; }
.hb-footer .hb-footer__consent {
  display: flex; align-items: start; gap: 10px; margin: 0;
  font: inherit; font-size: 11px; line-height: 1.65; cursor: pointer;
}
.hb-footer__consent input {
  position: static; flex: 0 0 15px; width: 15px; height: 15px;
  margin: 2px 0 0; opacity: 1; accent-color: #171612;
}
.hb-footer__consent a { text-decoration: underline; text-underline-offset: 2px; }
.hb-footer__bottom {
  display: grid; grid-template-columns: 230px minmax(0, 1fr) 120px;
  gap: 40px; align-items: start; margin-top: 100px;
}
.hb-footer ul { list-style: none; padding: 0; margin: 0; }
.hb-footer li { list-style: none; margin: 0; }
.hb-footer__contact h3 { margin: 0 0 4px; font: 500 15px/1.8 var(--font-main, sans-serif); text-transform: uppercase; letter-spacing: .015em; color: inherit; }
.hb-footer__contact p { margin: 0 0 12px; }
.hb-footer__note { display: block; font-size: 10px; line-height: 1.5; }
.hb-footer__visit { font-size: 13px; }
.hb-footer__logo { display: block; justify-self: end; width: 94px; }
.hb-footer__logo img { display: block; width: 100%; height: auto; }
.hb-footer__end { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; margin-top: 28px; }
.hb-footer .hb-footer__copyright { margin: 0; font-size: 11px; text-transform: uppercase; }
.hb-footer__top-link { display: grid; place-items: center; width: 56px; height: 56px; border: 1px solid currentColor; border-radius: 50%; }
.hb-footer__top-link span { position: relative; display: block; width: 1px; height: 19px; background: currentColor; }
.hb-footer__top-link span::before { content: ""; position: absolute; top: 0; left: -5px; width: 11px; height: 11px; border-top: 1px solid currentColor; border-left: 1px solid currentColor; transform: rotate(45deg); }
.hb-footer__top-link:hover { background: rgba(243, 241, 235, .15); }
.hb-footer .notvalid-msg { display: block; position: static; margin-top: 7px; font-size: 12px; line-height: 1.5; color: var(--c-error-form); }
.hb-footer .form-response { margin: 20px 0 0; padding: 14px 0 0; border: 0; border-top: 1px solid currentColor; font-size: 13px; line-height: 1.6; }
.hb-footer .form-response[hidden] { display: none; }
.hb-footer .form-response a { text-decoration: underline; }
.hb-footer__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 1000px) {
  .hb-footer { padding-top: 90px; }
  .hb-footer__inner { width: calc(100% - 64px); }
  .hb-footer__top { gap: 40px; }
  .hb-footer__newsletter { padding-top: 8px; }
  .hb-footer .hb-footer__intro { font-size: 17px; }
  .hb-footer__fields { gap: 16px; }
  .hb-footer .hb-footer__submit { padding-inline: 18px; }
  .hb-footer__bottom { grid-template-columns: 190px minmax(0, 1fr) 90px; gap: 28px; margin-top: 76px; }
}
@media (max-width: 700px) {
  .hb-footer { padding: 64px 0 36px; font-size: 14px; }
  .hb-footer__inner { width: calc(100% - 48px); }
  .hb-footer__top { grid-template-columns: 1fr; gap: 32px; }
  .hb-footer .hb-footer__title { font-size: clamp(37px, 9.5vw, 60px); }
  .hb-footer__newsletter { max-width: none; padding-top: 0; }
  .hb-footer .hb-footer__intro { margin-bottom: 26px; }
  .hb-footer input[type="email"] { font-size: 14px; }
  .hb-footer .hb-footer__submit { font-size: 14px; padding-inline: 18px; }
  .hb-footer__bottom { grid-template-columns: minmax(0, 1fr) 80px; gap: 30px 16px; margin-top: 60px; }
  .hb-footer__links { grid-column: 1 / -1; }
  .hb-footer__contact { grid-column: 1; }
  .hb-footer__contact a { overflow-wrap: anywhere; }
  .hb-footer__logo { grid-column: 2; width: 70px; }
  .hb-footer__end { margin-top: 40px; }
}
@media (prefers-reduced-motion: reduce) { .hb-footer .hb-footer__submit { transition: none; } }
