:root {
  --hpm-navy:#0D1B2A;
  --hpm-navy-deep:#08131f;
  --hpm-gold:#C6A75E;
  --hpm-gold-light:#D9BF85;
  --hpm-cream:#F5F3EE;
  --hpm-white:#FFFFFF;
  --hpm-header-ease:cubic-bezier(.2,.7,.2,1);
}

/* =========================================================
   HPM GLOBAL HEADER / NAVIGATION
   Loaded after page CSS so this component stays consistent.
   ========================================================= */
.hpm-site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 5000;
  width: 100%;
  padding: 0 !important;
  margin: 0;
  color: var(--hpm-cream);
  background: transparent;
  border-bottom: 1px solid transparent;
  transition:
    background-color .32s var(--hpm-header-ease),
    box-shadow .32s var(--hpm-header-ease),
    border-color .32s var(--hpm-header-ease),
    backdrop-filter .32s var(--hpm-header-ease);
}

.hpm-site-header.is-scrolled,
.hpm-site-header.is-menu-open,
.hpm-site-header.hpm-site-header--solid {
  padding: 0 !important;
  background: rgba(13,27,42,.94);
  border-bottom-color: rgba(198,167,94,.14);
  box-shadow: 0 10px 34px rgba(4,11,18,.16);
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
}

.hpm-header-shell {
  width: min(1296px, calc(100% - 48px));
  min-height: 88px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(150px,1fr) auto minmax(220px,1fr);
  align-items: center;
  gap: 2rem;
  transition: min-height .32s var(--hpm-header-ease);
}

.hpm-site-header.is-scrolled .hpm-header-shell,
.hpm-site-header.hpm-site-header--solid .hpm-header-shell {
  min-height: 76px;
}

.hpm-header-brand {
  display: inline-flex;
  width: max-content;
  align-items: center;
  position: relative;
  z-index: 2;
}

.hpm-header-logo {
  display: block !important;
  width: auto;
  height: 54px;
  max-width: 142px;
  object-fit: contain;
  opacity: .98;
  transition: height .32s var(--hpm-header-ease), opacity .2s ease;
}

.hpm-site-header.is-scrolled .hpm-header-logo,
.hpm-site-header.hpm-site-header--solid .hpm-header-logo {
  height: 48px;
}

.hpm-header-nav {
  display:flex;
  align-items:center;
  justify-content:center;
}

.hpm-header-menu {
  display:flex;
  align-items:center;
  justify-content:center;
  gap: clamp(1.6rem, 3vw, 2.75rem);
  list-style:none;
  padding:0;
  margin:0;
}

.hpm-header-link {
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.25rem 0;
  color:rgba(245,243,238,.68);
  font-family:'Lato',Arial,sans-serif;
  font-size:.69rem;
  font-weight:700;
  letter-spacing:.16em;
  line-height:1;
  text-transform:uppercase;
  text-decoration:none;
  transition:color .22s ease;
}

.hpm-header-link::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:7px;
  height:1px;
  background:var(--hpm-gold);
  transition:right .24s var(--hpm-header-ease);
}

.hpm-header-link:hover,
.hpm-header-link:focus-visible,
.hpm-header-link[aria-current="page"] {
  color:var(--hpm-gold-light);
}

.hpm-header-link:hover::after,
.hpm-header-link:focus-visible::after,
.hpm-header-link[aria-current="page"]::after { right:0; }

.hpm-header-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.75rem;
  position:relative;
  z-index:2;
}

.hpm-header-cta,
.hpm-mobile-cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-height:46px;
  border:1px solid var(--hpm-gold);
  background:var(--hpm-gold);
  color:var(--hpm-navy) !important;
  font-family:'Lato',Arial,sans-serif;
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.15em;
  line-height:1.25;
  text-transform:uppercase;
  text-decoration:none;
  padding:.95rem 1.55rem;
  border-radius:1px;
  box-shadow:none;
  transition:background-color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
}

.hpm-header-cta:hover,
.hpm-header-cta:focus-visible,
.hpm-mobile-cta:hover,
.hpm-mobile-cta:focus-visible {
  background:var(--hpm-gold-light);
  border-color:var(--hpm-gold-light);
  color:var(--hpm-navy) !important;
  transform:translateY(-1px);
  box-shadow:0 10px 26px rgba(198,167,94,.2);
}

.hpm-header-cta--compact {
  display:none;
  width:44px;
  height:44px;
  min-height:44px;
  padding:0;
}

.hpm-menu-toggle {
  display:none;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid rgba(245,243,238,.22);
  background:rgba(13,27,42,.14);
  color:var(--hpm-cream);
  align-items:center;
  justify-content:center;
  border-radius:1px;
  cursor:pointer;
  transition:border-color .2s ease, background-color .2s ease;
}

.hpm-menu-toggle:hover,
.hpm-menu-toggle:focus-visible {
  border-color:rgba(198,167,94,.62);
  background:rgba(198,167,94,.08);
}

.hpm-burger {
  width:19px;
  height:14px;
  position:relative;
  display:block;
}
.hpm-burger span {
  position:absolute;
  left:0;
  width:100%;
  height:1.5px;
  background:currentColor;
  transform-origin:center;
  transition:transform .26s ease, opacity .2s ease, top .26s ease;
}
.hpm-burger span:nth-child(1){top:0}
.hpm-burger span:nth-child(2){top:6px}
.hpm-burger span:nth-child(3){top:12px}
.hpm-menu-toggle[aria-expanded="true"] .hpm-burger span:nth-child(1){top:6px;transform:rotate(45deg)}
.hpm-menu-toggle[aria-expanded="true"] .hpm-burger span:nth-child(2){opacity:0}
.hpm-menu-toggle[aria-expanded="true"] .hpm-burger span:nth-child(3){top:6px;transform:rotate(-45deg)}

.hpm-mobile-panel {
  display:none;
}

body.hpm-menu-locked { overflow:hidden !important; }

/* Contraste discret lorsque le header flotte directement sur une image hero. */
.hpm-site-header:not(.is-scrolled):not(.is-menu-open):not(.hpm-site-header--solid) .hpm-header-logo {
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.2));
}
.hpm-site-header:not(.is-scrolled):not(.is-menu-open):not(.hpm-site-header--solid) .hpm-header-link {
  text-shadow:0 1px 8px rgba(0,0,0,.22);
}

@media (max-width: 1080px) {
  .hpm-header-shell {
    width:min(100% - 32px, 1180px);
    grid-template-columns:minmax(132px,1fr) auto minmax(190px,1fr);
    gap:1.25rem;
  }
  .hpm-header-menu { gap:1.45rem; }
  .hpm-header-cta { padding:.9rem 1.15rem; font-size:.62rem; }
}

@media (max-width: 900px) {
  /* Le header reste transparent en haut du hero, y compris sur mobile.
     Il devient opaque seulement au scroll, à l'ouverture du menu, ou sur une page sans hero. */
  .hpm-site-header.is-scrolled,
  .hpm-site-header.is-menu-open,
  .hpm-site-header.hpm-site-header--solid {
    background:rgba(13,27,42,.94);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
  }

  .hpm-header-shell,
  .hpm-site-header.is-scrolled .hpm-header-shell,
  .hpm-site-header.hpm-site-header--solid .hpm-header-shell {
    width:calc(100% - 28px);
    min-height:72px;
    grid-template-columns:1fr auto;
    gap:1rem;
  }

  .hpm-header-logo,
  .hpm-site-header.is-scrolled .hpm-header-logo,
  .hpm-site-header.hpm-site-header--solid .hpm-header-logo {
    height:44px;
    max-width:118px;
  }

  .hpm-header-nav { display:none; }
  .hpm-header-cta--desktop { display:none; }
  .hpm-header-cta--compact,
  .hpm-menu-toggle { display:inline-flex; }

  .hpm-mobile-panel {
    display:block;
    position:fixed;
    inset:72px 0 auto 0;
    height:calc(100dvh - 72px);
    background:rgba(8,19,31,.985);
    border-top:1px solid rgba(198,167,94,.13);
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    pointer-events:none;
    transition:opacity .24s ease, transform .24s ease, visibility .24s ease;
    overflow:auto;
  }

  .hpm-site-header.is-menu-open .hpm-mobile-panel {
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }

  .hpm-mobile-panel-inner {
    width:min(100% - 36px, 560px);
    margin:0 auto;
    padding:2.1rem 0 2.5rem;
  }

  .hpm-mobile-menu {
    list-style:none;
    margin:0 0 1.7rem;
    padding:0;
    border-top:1px solid rgba(245,243,238,.08);
  }

  .hpm-mobile-menu li { border-bottom:1px solid rgba(245,243,238,.08); }

  .hpm-mobile-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:58px;
    padding:.25rem .15rem;
    color:rgba(245,243,238,.86) !important;
    font-family:'Lato',Arial,sans-serif;
    font-size:.8rem;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    text-decoration:none;
  }
  .hpm-mobile-link::after {
    content:'→';
    color:var(--hpm-gold);
    font-size:1rem;
    letter-spacing:0;
  }
  .hpm-mobile-cta { width:100%; min-height:52px; }
  .hpm-mobile-caption {
    margin:1.3rem 0 0;
    color:rgba(245,243,238,.36);
    font-size:.68rem;
    line-height:1.6;
    text-align:center;
  }
}

@media (max-width: 420px) {
  .hpm-header-shell,
  .hpm-site-header.is-scrolled .hpm-header-shell,
  .hpm-site-header.hpm-site-header--solid .hpm-header-shell {
    width:calc(100% - 20px);
    min-height:66px;
  }
  .hpm-header-logo,
  .hpm-site-header.is-scrolled .hpm-header-logo,
  .hpm-site-header.hpm-site-header--solid .hpm-header-logo {
    height:39px;
    max-width:105px;
  }
  .hpm-header-actions { gap:.5rem; }
  .hpm-header-cta--compact,
  .hpm-menu-toggle { width:42px; height:42px; min-height:42px; }
  .hpm-mobile-panel { inset:66px 0 auto 0; height:calc(100dvh - 66px); }
}

/* Keep hero content readable beneath the fixed navigation. */
#hero .hero-content { scroll-margin-top: 90px; }
section[id], div[id] { scroll-margin-top: 92px; }

@media (max-width:900px) {
  section[id], div[id] { scroll-margin-top:74px; }
}

/* Booking page has no visual hero: keep its solid header from covering the intro. */
.hpm-booking-page .booking-section { padding-top: 118px; }
@media (max-width:900px) { .hpm-booking-page .booking-section { padding-top: 98px; } }
@media (max-width:420px) { .hpm-booking-page .booking-section { padding-top: 90px; } }

/* =========================================================
   HPM RESPONSIVE SYSTEM — shared section rhythm & layouts
   ========================================================= */
:root {
  --hpm-section-y: clamp(4.5rem, 6.4vw, 7rem);
  --hpm-section-y-compact: clamp(3.5rem, 5vw, 5rem);
  --hpm-content-max: 1160px;
  --hpm-copy-max: 68ch;
}

/* Keep the many legacy page systems aligned to one rhythm. */
.s-techno,
.s-science,
.s-packs,
.s-processus,
.s-resa,
.s-nav-offres,
.s-cible,
.s-prog,
.s-result,
.s-tarifs,
.s-pour-qui,
.s-eval,
.s-resultats,
.s-suivi,
.s-prix,
.nav-offres,
.signature {
  padding-top: var(--hpm-section-y) !important;
  padding-bottom: var(--hpm-section-y) !important;
}

/* Consistent editorial widths. */
.wrap,
.container:not(.container-fluid) {
  max-width: var(--hpm-content-max);
}

.corps,
.section-corps,
.s-suivi-corps,
.resa-note,
.prix-note,
.booking-description {
  text-wrap: pretty;
}

/* Shared title scaling: keeps offer pages from becoming oversized on laptops/tablets. */
.offre-titre {
  font-size: clamp(2.65rem, 4.8vw, 4.8rem) !important;
  text-wrap: balance;
}

.h2,
.section-titre,
.resa-tit,
.prix-col-titre,
.nav-offres-tit,
.nav-offres-titre {
  text-wrap: balance;
}

/* Shared responsive grids. */
@media (max-width: 1100px) {
  .offre-head-grid,
  .offre-entete-int {
    grid-template-columns: minmax(0,1fr) minmax(300px, 360px) !important;
    gap: clamp(2.5rem, 5vw, 4rem) !important;
  }

  .s-techno-grid,
  .s-science-grid,
  .s-cible-grid,
  .s-result-grid,
  .s-resultats-grid,
  .s-suivi-intro,
  .s-prix-grid,
  .s-resa-grid,
  .s-pour-qui-grid {
    gap: clamp(2.5rem, 5vw, 4rem) !important;
  }
}

@media (max-width: 900px) {
  :root {
    --hpm-section-y: 4.75rem;
    --hpm-section-y-compact: 3.75rem;
  }

  .offre-head-grid,
  .offre-entete-int,
  .s-techno-grid,
  .s-science-grid,
  .s-cible-grid,
  .s-result-grid,
  .s-resultats-grid,
  .s-suivi-intro,
  .s-prix-grid,
  .s-resa-grid,
  .s-pour-qui-grid {
    grid-template-columns: 1fr !important;
  }

  .offre-head-grid,
  .offre-entete-int { padding-bottom: 4rem !important; }

  .photo-encart,
  .offre-photo-encart {
    width: min(100%, 680px);
    aspect-ratio: 16 / 9 !important;
    margin-inline: auto;
  }

  .proc-grille { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .outils-grille { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .prog-grille { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .nav-offres-grille,
  .offres-grille { grid-template-columns: 1fr !important; }

  .s-split,
  .s-nutrition {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
  }

  .split-img-col,
  .nutri-img-col { min-height: clamp(320px, 55vw, 480px) !important; }
  .split-txt,
  .nutri-texte { padding: 4rem max(5vw, 1.5rem) !important; }
}

@media (max-width: 767px) {
  :root {
    --hpm-section-y: 4rem;
    --hpm-section-y-compact: 3.25rem;
  }

  .wrap,
  .container:not(.container-fluid) {
    width: min(100% - 32px, var(--hpm-content-max)) !important;
    max-width: none !important;
    margin-inline: auto !important;
  }

  #hero {
    min-height: auto !important;
  }

  #hero .hero-content {
    padding-top: 7rem !important;
    padding-bottom: 4.5rem !important;
  }

  .hero-h1 { font-size: clamp(2.65rem, 12vw, 4.1rem) !important; }
  .hero-sub { font-size: .94rem !important; line-height: 1.72 !important; }

  .offre-titre { font-size: clamp(2.35rem, 10vw, 3.5rem) !important; }
  .offre-accroche { font-size: .98rem !important; line-height: 1.7 !important; }

  .packs-grille,
  .tarifs-grille,
  .tech-grille,
  .eval-image-encart {
    grid-template-columns: 1fr !important;
  }

  .proc-grille,
  .outils-grille,
  .prog-grille { grid-template-columns: 1fr !important; }

  .offre-btns,
  .offre-actions,
  .resa-btns,
  .prix-actions,
  .cal-options {
    width: 100%;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .offre-btns .btn,
  .offre-actions .btn,
  .resa-btns .btn,
  .prix-actions .btn,
  .cal-options .btn-hpm,
  .cal-options .cal-switch {
    width: 100% !important;
    justify-content: center !important;
    white-space: normal !important;
    text-align: center !important;
  }

  .tarif-prive {
    padding: 2rem 1.5rem !important;
    align-items: flex-start !important;
  }

  .pack-note,
  .eval-box,
  .venir-box,
  .toy-box { padding: 1.5rem !important; }
}

@media (max-width: 430px) {
  :root { --hpm-section-y: 3.5rem; }

  .wrap,
  .container:not(.container-fluid) { width: calc(100% - 24px) !important; }

  .hero-eyebrow,
  .rubrique,
  .sec-label { letter-spacing: .19em !important; }

  .hero-h1 { font-size: clamp(2.35rem, 13.5vw, 3.35rem) !important; }
  .h2,
  .section-titre { font-size: clamp(1.85rem, 9vw, 2.45rem) !important; }

  .offre-head,
  .offre-entete { padding-top: 2.75rem !important; }

  .offre-tags { margin-bottom: 1.8rem !important; }
  .offre-tag { font-size: .58rem !important; }

  .split-txt,
  .nutri-texte { padding: 3.25rem 1.25rem !important; }
  .split-img-col,
  .nutri-img-col { min-height: 290px !important; }
}



/* =========================================================
   BOOKING OPTION STATE — shared across every HPM page
   Gold = active selection / Blue = secondary selection.
   aria-pressed is the single visual + accessibility source of truth.
   ========================================================= */
:root {
  --hpm-booking-active: var(--hpm-gold);
  --hpm-booking-active-hover: var(--hpm-gold-light);
  --hpm-booking-secondary: #243E56;
  --hpm-booking-secondary-hover: #2D4A64;
  --hpm-booking-secondary-border: #36546D;
}

.cal-switch[aria-pressed] {
  border: 1px solid transparent;
  transition:
    background-color .24s var(--hpm-header-ease),
    border-color .24s var(--hpm-header-ease),
    color .24s var(--hpm-header-ease),
    box-shadow .24s var(--hpm-header-ease),
    transform .24s var(--hpm-header-ease);
}

.cal-switch[aria-pressed="true"] {
  background: var(--hpm-booking-active);
  border-color: var(--hpm-booking-active);
  color: var(--hpm-navy);
  box-shadow: 0 8px 22px rgba(198,167,94,.20);
}

.cal-switch[aria-pressed="true"]:hover,
.cal-switch[aria-pressed="true"]:focus-visible {
  background: var(--hpm-booking-active-hover);
  border-color: var(--hpm-booking-active-hover);
  color: var(--hpm-navy);
  box-shadow: 0 10px 26px rgba(198,167,94,.26);
  transform: translateY(-1px);
}

.cal-switch[aria-pressed="false"] {
  background: var(--hpm-booking-secondary);
  border-color: var(--hpm-booking-secondary-border);
  color: var(--hpm-cream);
  box-shadow: none;
}

.cal-switch[aria-pressed="false"]:hover,
.cal-switch[aria-pressed="false"]:focus-visible {
  background: var(--hpm-booking-secondary-hover);
  border-color: var(--hpm-gold);
  color: var(--hpm-white);
  transform: translateY(-1px);
}

/* Legacy pages used underline pseudo-elements for the selected state.
   Filled states above replace them consistently across the site. */
.cal-switch[aria-pressed]::before,
.cal-switch[aria-pressed]::after {
  content: none !important;
  display: none !important;
}

/* =========================================================
   BOOKING COMPONENT — no artificial fixed height / no clipping
   ========================================================= */
.hpm-calendar-shell {
  position: relative !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  isolation: isolate;
  transition: min-height .28s ease, opacity .28s ease;
}

.hpm-calendar-shell.is-loading {
  min-height: clamp(380px, 52vh, 520px) !important;
}

.hpm-calendar-shell::before {
  content: none !important;
}

.hpm-calendar-loader {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .9rem;
  background: var(--hpm-cream);
  color: var(--hpm-navy);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}

.hpm-calendar-shell.is-loading > .hpm-calendar-loader {
  opacity: 1;
  visibility: visible;
}

.hpm-calendar-spinner {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid rgba(13,27,42,.14);
  border-top-color: var(--hpm-gold);
  animation: hpmSpin .75s linear infinite;
}

.hpm-calendar-loader span {
  font-family: 'Lato', Arial, sans-serif;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(13,27,42,.58);
}

@keyframes hpmSpin { to { transform: rotate(360deg); } }

.hpm-calendar-shell iframe,
.cal-wrap iframe,
.cal-box iframe,
.calendrier-encart iframe,
.booking-frame {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  border: 0 !important;
  margin: 0 !important;
  opacity: 1;
  transition: opacity .25s ease;
}

.hpm-calendar-shell.is-loading iframe:not([hidden]) { opacity: 0; }

/* Preload inactive GHL calendar without letting it reserve visible space. */
.hpm-calendar-shell iframe.cal-frame[hidden] {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 1px !important;
  min-height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* GHL can write an inline height after each step; the wrapper must be allowed to follow it. */
.hpm-calendar-shell iframe.cal-frame:not([hidden]),
.booking-frame {
  position: relative !important;
  height: auto;
  min-height: 150px !important;
  visibility: visible !important;
}

@media (max-width: 767px) {
  .hpm-calendar-shell.is-loading { min-height: 340px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .hpm-calendar-spinner { animation: none; }
  .hpm-calendar-shell,
  .hpm-calendar-loader,
  .hpm-calendar-shell iframe { transition: none !important; }
}

/* =========================================================
   HPM GLOBAL FOOTER
   Shared structure with optional specialty chips.
   ========================================================= */
.hpm-site-footer {
  margin: 0 !important;
  padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(1.75rem, 3vw, 2.5rem) !important;
  background: #060d14 !important;
  color: var(--hpm-cream) !important;
  border-top: 1px solid rgba(198,167,94,.1) !important;
}

.hpm-footer-shell {
  width: min(var(--hpm-content-max, 1160px), calc(100% - 40px));
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  text-align: center;
}

.hpm-footer-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
}

.hpm-footer-logo {
  display: block !important;
  width: auto;
  height: 42px;
  max-width: 132px;
  object-fit: contain;
}

.hpm-footer-logo-fallback {
  display: none;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.65rem;
  font-weight: 400;
  letter-spacing: .08em;
  color: var(--hpm-cream);
}

.hpm-footer-logo-fallback span { color: var(--hpm-gold); }

.hpm-footer-rule {
  width: 38px;
  height: 1px;
  background: rgba(198,167,94,.2);
}

.hpm-footer-signature {
  margin: 0;
  max-width: 760px;
  font-family: 'Lato', Arial, sans-serif;
  font-size: .61rem;
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(245,243,238,.28);
}

.hpm-footer-social,
.hpm-footer-specialties,
.hpm-footer-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
}

.hpm-footer-social { gap: .55rem; }
.hpm-footer-specialties { gap: .5rem; max-width: 900px; }
.hpm-footer-links { gap: .6rem 2rem; }

.hpm-footer-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 36px;
  padding: .48rem .95rem;
  border: 1px solid rgba(198,167,94,.16);
  color: rgba(245,243,238,.48) !important;
  font-family: 'Lato', Arial, sans-serif;
  font-size: .63rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

.hpm-footer-social-link svg { color: var(--hpm-gold); flex-shrink: 0; }
.hpm-footer-social-link:hover,
.hpm-footer-social-link:focus-visible {
  color: var(--hpm-gold-light) !important;
  border-color: rgba(198,167,94,.42);
  background: rgba(198,167,94,.05);
}

.hpm-footer-specialty {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: .32rem .8rem;
  border: 1px solid rgba(198,167,94,.12);
  color: rgba(245,243,238,.34);
  font-family: 'Lato', Arial, sans-serif;
  font-size: .59rem;
  font-weight: 700;
  letter-spacing: .105em;
  line-height: 1.35;
  text-transform: uppercase;
}

.hpm-footer-link {
  color: rgba(245,243,238,.36) !important;
  font-family: 'Lato', Arial, sans-serif;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .13em;
  line-height: 1.5;
  text-transform: uppercase;
  text-decoration: none;
  transition: color .2s ease;
}

.hpm-footer-link:hover,
.hpm-footer-link:focus-visible { color: var(--hpm-gold-light) !important; }

.hpm-footer-copy {
  margin: 0;
  font-family: 'Lato', Arial, sans-serif;
  font-size: .65rem;
  line-height: 1.55;
  color: rgba(245,243,238,.22);
}

@media (max-width: 767px) {
  .hpm-site-footer { padding-top: 2.65rem !important; }
  .hpm-footer-shell { width: calc(100% - 28px); gap: 1.1rem; }
  .hpm-footer-logo { height: 38px; }
  .hpm-footer-signature { font-size: .57rem; letter-spacing: .16em; }
  .hpm-footer-specialties { gap: .4rem; }
  .hpm-footer-specialty { font-size: .55rem; padding: .3rem .65rem; }
  .hpm-footer-links { gap: .55rem 1.15rem; }
}

@media (max-width: 430px) {
  .hpm-footer-social { width: 100%; }
  .hpm-footer-social-link { flex: 1 1 140px; }
  .hpm-footer-specialty { flex: 1 1 145px; justify-content: center; }
  .hpm-footer-links { max-width: 300px; }
}

/* =========================================================
   COMPONENT ISOLATION
   Prevent legacy page-level selectors such as `nav { ... }`
   from repositioning global header/footer navigation blocks.
   ========================================================= */
.hpm-site-header nav,
.hpm-site-footer nav {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
