/* ==========================================================================
   The Humphrey - Elementor Kit
   Design tokens + every custom hh-* section used by the imported templates.
   ========================================================================== */

:root {
  --hh-navy: #1f394f;
  --hh-ink: #14293a;
  --hh-slate: #545773;
  --hh-accent: #c9b7a3;
  --hh-accent-strong: #b09978;
  --hh-accent-soft: #f0e9e1;
  --hh-sand: #faf7f3;
  --hh-white: #fff;
  --hh-surface: #f4f5f6;
  --hh-hairline: #e2e5e8;
  --hh-body: #424242;
  --hh-muted: #696766;
  --hh-display: 'Playfair Display', Georgia, serif;
  --hh-sans: 'Inter Tight', Inter, system-ui, -apple-system, sans-serif;
  --hh-radius: 20px;
  --hh-shadow: 0 8px 30px rgba(20, 41, 58, 0.08);
  --hh-shadow-lg: 0 18px 50px rgba(20, 41, 58, 0.14);
  --hh-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ---------- base -------------------------------------------------------- */
body {
  font-family: var(--hh-sans);
  color: var(--hh-body);
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--hh-display);
  font-weight: 400;
  color: var(--hh-navy);
}
.hh-lead {
  max-width: 62ch;
}
.hh-lead--center {
  margin-inline: auto;
}
.hh-kicker {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--hh-accent-strong);
  margin: 18px 0 0;
}

/* ---------- eyebrow pill ------------------------------------------------ */
.hh-eyebrow {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  background: var(--hh-accent-soft);
  color: var(--hh-navy);
  font-family: var(--hh-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
}
.hh-eyebrow--center {
  display: table;
  margin-inline: auto;
}

/* ---------- buttons ----------------------------------------------------- */
.hh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 999px;
  font-family: var(--hh-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  border: 1px solid transparent;
  transition: all 0.3s var(--hh-ease);
  cursor: pointer;
}
.hh-btn--lg { padding: 17px 34px; font-size: 16px; }
.hh-btn--block { display: flex; width: 100%; }
.hh-btn--primary { background: var(--hh-navy); color: #fff; }
.hh-btn--primary:hover { background: var(--hh-ink); color: #fff; transform: translateY(-1px); }
.hh-btn--accent { background: var(--hh-accent); color: var(--hh-ink); }
.hh-btn--accent:hover { background: #fff; color: var(--hh-navy); transform: translateY(-1px); }
.hh-btn--ghost { background: transparent; color: var(--hh-navy); border-color: var(--hh-navy); }
.hh-btn--ghost:hover { background: var(--hh-navy); color: #fff; }
.hh-btn--onDark { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.45); }
.hh-btn--onDark:hover { background: var(--hh-accent); color: var(--hh-ink); border-color: var(--hh-accent); }

/* ---------- header ------------------------------------------------------ */
.hh-utilbar { --util-h: 42px; }
.hh-util {
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  font-size: 13px;
}
.hh-util__link {
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  padding: 11px 16px;
  border-right: 1px solid rgba(255, 255, 255, 0.16);
  transition: color 0.25s var(--hh-ease);
  white-space: nowrap;
}
.hh-util__link:first-child { border-left: 1px solid rgba(255, 255, 255, 0.16); }
.hh-util__link:last-child { border-right: 0; }
.hh-util__link:hover { color: var(--hh-accent); }
.hh-util__link--cta { color: var(--hh-accent); font-weight: 600; letter-spacing: 0.04em; }

.hh-header { box-shadow: 0 1px 0 rgba(20, 41, 58, 0.06); }
.hh-header.elementor-sticky--effects { box-shadow: 0 6px 24px rgba(20, 41, 58, 0.10); }
.hh-logo img { max-width: 210px; height: auto; }

@media (max-width: 767px) {
  .hh-util { justify-content: center; font-size: 12px; }
  .hh-util__link { padding: 9px 10px; }
  .hh-util__link:nth-child(2) { display: none; }
}

/* ---------- hero -------------------------------------------------------- */
.hh-hero-sec { position: relative; }
.hh-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 200px 20px 150px;
  overflow: hidden;
}
.hh-hero__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 41, 58, 0.86) 0%, rgba(20, 41, 58, 0.45) 45%, rgba(20, 41, 58, 0.75) 100%);
}
.hh-hero__body {
  position: relative;
  z-index: 2;
  max-width: 860px;
  text-align: center;
}
.hh-hero__badge {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(14px);
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-bottom: 22px;
}
.hh-hero__title {
  font-family: var(--hh-display);
  font-size: clamp(38px, 6vw, 72px);
  line-height: 1.08;
  color: #fff;
  margin: 0 0 20px;
}
.hh-hero__lead {
  color: rgba(255, 255, 255, 0.86);
  font-size: 18px;
  line-height: 1.7;
  max-width: 700px;
  margin: 0 auto 34px;
}
.hh-hero__actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.hh-hero__chips {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 34px;
  z-index: 2;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.hh-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 20px;
  margin-right: 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.10);
  border: 1px solid rgba(255, 255, 255, 0.26);
  backdrop-filter: blur(14px);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}
.hh-chip img { width: 22px; height: 22px; filter: brightness(0) invert(1); }

@media (max-width: 767px) {
  .hh-hero { min-height: 88vh; padding: 150px 16px 130px; }
  .hh-hero__actions .hh-btn { width: 100%; }
}

/* ---------- at a glance ------------------------------------------------- */
.hh-glance {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: var(--hh-navy);
  border-radius: var(--hh-radius);
  overflow: hidden;
}
.hh-glance__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 34px 18px;
  text-align: center;
  border-right: 1px solid rgba(255, 255, 255, 0.14);
}
.hh-glance__item:last-child { border-right: 0; }
.hh-glance__icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: rgba(201, 183, 163, 0.22);
  margin-bottom: 6px;
}
.hh-glance__icon img { width: 26px; height: 26px; filter: brightness(0) invert(1); }
.hh-glance__value { font-family: var(--hh-display); font-size: 30px; color: #fff; line-height: 1.1; }
.hh-glance__label { color: #fff; font-weight: 600; font-size: 15px; }
.hh-glance__sub { color: rgba(255, 255, 255, 0.6); font-size: 13px; }

@media (max-width: 880px) { .hh-glance { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .hh-glance { grid-template-columns: 1fr; } }

/* ---------- feature list ------------------------------------------------ */
.hh-featlist { list-style: none; margin: 0 0 32px; padding: 0; }
.hh-featlist li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 9px 0;
  font-size: 17px;
  font-weight: 500;
  color: var(--hh-navy);
}
.hh-featlist__icon,
.hh-amenlist__icon,
.hh-amenstrip__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 12px;
  background: var(--hh-accent-soft);
}
.hh-featlist__icon img,
.hh-amenlist__icon img { width: 22px; height: 22px; }

/* ---------- photo stack --------------------------------------------------- */
.hh-ps > .elementor-widget-wrap { position: relative; }
.hh-ps .hh-ps__img { margin: 0 !important; }
.hh-ps .hh-ps__img img { width: 100%; display: block; }
.elementor-widget.hh-ps__chip {
  position: absolute;
  top: 14px; right: 26px;
  z-index: 3;
  width: auto !important;
  max-width: max-content;
  transform: rotate(-8deg);
}
.elementor-widget.hh-ps__chip .elementor-widget-container {
  background: var(--hh-accent);
  padding: 7px 14px;
  border-radius: 10px;
  box-shadow: var(--hh-shadow);
}
.hh-ps__cards {
  width: calc(100% - 36px) !important;
  margin: -46px auto 0 !important;
  position: relative;
  z-index: 2;
}
.hh-ps__card > .elementor-widget-wrap {
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: 16px;
  box-shadow: var(--hh-shadow-lg);
  padding: 18px 20px !important;
  align-content: flex-start;
}
.hh-ps__card .hh-ps__aicon { margin: 0 !important; }
.hh-ps__card .hh-ps__aicon img {
  width: 26px !important; height: 26px;
  padding: 11px; box-sizing: content-box;
  background: var(--hh-accent-soft);
  border-radius: 12px;
}
@media (max-width: 767px) {
  .hh-ps__cards { width: 100% !important; margin-top: 16px !important; }
  .hh-ps__cards .elementor-column { width: 100% !important; }
  .hh-ps__card > .elementor-widget-wrap { margin-bottom: 12px; }
}

/* ==========================================================================
   Restored blocks (marquee engine, floor-plan cards, location panel, explore
   cards, amenities/contact/availability/apply styles).
   ========================================================================== */
/* ---------- floor plan cards -------------------------------------------- */
.hh-fpgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-bottom: 46px;
}
.hh-fp {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: var(--hh-radius);
  overflow: hidden;
  transition: box-shadow 0.4s var(--hh-ease), transform 0.4s var(--hh-ease);
}
.hh-fp:hover { box-shadow: var(--hh-shadow-lg); transform: translateY(-4px); }
.hh-fp__plan { display: block; background: var(--hh-sand); overflow: hidden; }
.hh-fp__plan img { width: 100%; height: auto; display: block; transition: transform 0.5s var(--hh-ease); }
.hh-fp:hover .hh-fp__plan img { transform: scale(1.04); }
.hh-fp__body { display: flex; flex-direction: column; flex: 1; padding: 26px; }
.hh-fp__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.hh-fp__name { font-family: var(--hh-display); font-size: 26px; margin: 0; color: var(--hh-navy); }
.hh-fp__sub { font-size: 13px; color: var(--hh-slate); margin: 2px 0 0; }
.hh-fp__price {
  background: var(--hh-accent-soft);
  color: var(--hh-navy);
  font-weight: 700;
  font-size: 14px;
  padding: 7px 14px;
  border-radius: 999px;
  white-space: nowrap;
}
.hh-fp__specs {
  display: flex;
  list-style: none;
  margin: 20px 0;
  padding: 16px 0;
  border-top: 1px solid var(--hh-hairline);
  border-bottom: 1px solid var(--hh-hairline);
}
.hh-fp__specs li { flex: 1; text-align: center; }
.hh-fp__specs span { display: block; font-weight: 700; color: var(--hh-navy); font-size: 16px; }
.hh-fp__specs em { display: block; font-style: normal; font-size: 12px; color: var(--hh-slate); margin-top: 2px; }
.hh-fp__specs--row { justify-content: flex-start; gap: 40px; }
.hh-fp__specs--row li { flex: 0 0 auto; text-align: left; }
.hh-fp__blurb { flex: 1; font-size: 15px; color: var(--hh-slate); line-height: 1.7; margin: 0 0 22px; }

.hh-fprow__top { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.hh-fprow__top h2 { font-size: 34px; margin: 0; }
.hh-fprow__actions { display: flex; gap: 12px; flex-wrap: wrap; }

@media (max-width: 1024px) { .hh-fpgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .hh-fpgrid { grid-template-columns: 1fr; } }

/* ---------- location details -------------------------------------------- */
.hh-deets {
  background: var(--hh-navy);
  border-radius: var(--hh-radius);
  padding: 32px;
  color: #fff;
}
.hh-deets__head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 22px; }
.hh-deets__k { display: block; font-size: 13px; color: rgba(255, 255, 255, 0.6); }
.hh-deets__h { display: block; font-family: var(--hh-display); font-size: 24px; color: #fff; }
.hh-deets__icon {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 999px;
  background: rgba(201, 183, 163, 0.22);
}
.hh-deets__icon img { width: 24px; height: 24px; filter: brightness(0) invert(1); }
.hh-deets__list { margin: 0; }
.hh-deets__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.hh-deets__row dt { font-size: 13px; color: rgba(255, 255, 255, 0.6); margin: 0; }
.hh-deets__row dd { font-size: 15px; color: #fff; font-weight: 500; text-align: right; margin: 0; }
.hh-deets__row a { color: #fff; text-decoration: none; }
.hh-deets__row a:hover { color: var(--hh-accent); }
.hh-deets__actions { display: flex; gap: 12px; margin-top: 24px; }
.hh-deets__actions .hh-btn { flex: 1; }

.hh-nearby {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: var(--hh-radius);
  padding: 24px;
  margin-top: 22px;
}
.hh-nearby__item { display: flex; align-items: center; gap: 12px; min-width: 0; }
.hh-nearby__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 12px;
  background: var(--hh-accent-soft);
}
.hh-nearby__icon img { width: 22px; height: 22px; }
.hh-nearby__item strong { display: block; font-size: 15px; color: var(--hh-navy); }
.hh-nearby__item em {
  display: block;
  font-style: normal;
  font-size: 13px;
  color: var(--hh-slate);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hh-map .elementor-custom-embed,
.hh-map iframe { border-radius: var(--hh-radius); }

/* ---------- marquee engine ---------------------------------------------- */
.hh-marquee { overflow: hidden; width: 100%; }
.hh-marquee__track {
  display: flex;
  align-items: stretch;
  width: max-content;
  will-change: transform;
  animation: hh-scroll var(--hh-dur, 40s) linear infinite;
}
.hh-marquee[data-hh-marquee='right'] .hh-marquee__track { animation-direction: reverse; }
.hh-marquee:hover .hh-marquee__track { animation-play-state: paused; }
@keyframes hh-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .hh-marquee__track { animation: none; flex-wrap: wrap; width: 100%; }
}

.hh-marquees { display: flex; flex-direction: column; gap: 22px; margin-bottom: 44px; }
.hh-marquees .hh-marquee {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
}
.hh-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 132px;
  flex: 0 0 132px;
  margin: 0 17px;
  padding: 16px 10px;
  background: #fff;
  border-radius: 16px;
  border: 1px solid var(--hh-hairline);
  text-align: center;
}
.hh-tile__icon {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  border-radius: 14px;
  background: var(--hh-accent-soft);
}
.hh-tile__icon img { width: 30px; height: 30px; }
.hh-tile figcaption { font-size: 11.5px; font-weight: 500; color: var(--hh-navy); line-height: 1.3; }

/* ---------- neighbourhood "mercury" cards ------------------------------- */
.hh-marquee--bleed .hh-marquee__track { gap: 0; }
.hh-hood {
  position: relative;
  width: 560px;
  flex: 0 0 560px;
  margin-right: 40px;
  padding: 44px;
  border-radius: var(--hh-radius);
  background: var(--hh-surface);
  overflow: hidden;
  transition: background-color 0.5s ease-in-out;
}
.hh-hood__bloom {
  position: absolute;
  top: -147%;
  right: -56%;
  width: 723px;
  height: 723px;
  transform: rotate(295deg);
  filter: blur(10px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease-in-out;
  background:
    radial-gradient(circle at 35% 30%, rgba(230, 216, 198, 1) 0%, rgba(201, 183, 163, 0.92) 34%, rgba(125, 143, 160, 0.55) 62%, rgba(31, 57, 79, 0) 100%),
    radial-gradient(circle at 68% 72%, rgba(176, 153, 120, 0.75) 0%, rgba(20, 41, 58, 0) 100%);
}
.hh-hood:hover { background: var(--hh-ink); }
.hh-hood:hover .hh-hood__bloom { opacity: 1; }
.hh-hood__head { position: relative; z-index: 2; display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.hh-hood__icon {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  border-radius: 999px;
  background: var(--hh-accent-soft);
  transition: background-color 0.5s ease-in-out, transform 0.5s ease-in-out;
}
.hh-hood:hover .hh-hood__icon { background: rgba(201, 183, 163, 0.25); transform: scale(1.02); }
.hh-hood__icon img { width: 32px; height: 32px; transition: filter 0.5s ease-in-out; }
.hh-hood:hover .hh-hood__icon img { filter: brightness(0) invert(1); }
.hh-hood h3 {
  font-family: var(--hh-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--hh-navy);
  margin: 0;
  transition: color 0.5s ease-in-out, transform 0.5s ease-in-out;
}
.hh-hood em {
  font-style: normal;
  font-size: 13px;
  color: var(--hh-slate);
  transition: color 0.5s ease-in-out, transform 0.5s ease-in-out;
}
.hh-hood p {
  position: relative;
  z-index: 2;
  margin: 0;
  max-width: 440px;
  color: var(--hh-body);
  line-height: 1.75;
  transition: color 0.5s ease-in-out, transform 0.5s ease-in-out;
}
.hh-hood:hover h3 { color: #fff; transform: translateY(-2px); }
.hh-hood:hover em { color: rgba(255, 255, 255, 0.62); transform: translateY(-2px); }
.hh-hood:hover p { color: rgba(255, 255, 255, 0.7); transform: translateX(4px); }

@media (max-width: 640px) {
  .hh-hood { width: 340px; flex-basis: 340px; padding: 26px; margin-right: 20px; }
  .hh-hood__icon { width: 56px; height: 56px; flex-basis: 56px; }
}

/* ---------- explore cards ----------------------------------------------- */
.hh-explores { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.hh-explore { position: relative; display: block; border-radius: 14px; overflow: hidden; text-decoration: none; }
.hh-explore__img {
  display: block;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  transition: transform 0.5s var(--hh-ease);
}
.hh-explore:hover .hh-explore__img { transform: scale(1.08) rotate(3deg); }
.hh-explore__body {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  padding: 22px;
  border-radius: 10px;
  background: rgba(20, 41, 58, 0.55);
  backdrop-filter: blur(12px);
  text-align: center;
}
.hh-explore__body strong { display: block; font-family: var(--hh-display); font-size: 24px; font-weight: 400; color: #fff; }
.hh-explore__body em { display: block; font-style: normal; font-size: 14px; color: rgba(255, 255, 255, 0.82); margin-top: 4px; }
@media (max-width: 1024px) { .hh-explores { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .hh-explores { grid-template-columns: 1fr; } }

/* ---------- amenities page ---------------------------------------------- */
.hh-amenstrip { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.hh-amenstrip__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 22px 14px;
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: 16px;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  color: var(--hh-navy);
}
.hh-amenstrip__icon { width: 56px; height: 56px; flex: 0 0 56px; }
.hh-amenstrip__icon img { width: 28px; height: 28px; }
@media (max-width: 1024px) { .hh-amenstrip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .hh-amenstrip { grid-template-columns: repeat(2, 1fr); } }

.hh-amenlist { list-style: none; margin: 0; padding: 0; }
.hh-amenlist li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--hh-hairline);
  font-size: 17px;
  font-weight: 500;
  color: var(--hh-navy);
}
.hh-amenlist li:last-child { border-bottom: 0; }

/* ---------- contact ----------------------------------------------------- */
.hh-contactcards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.hh-contactcard {
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: 16px;
  padding: 26px;
}
.hh-contactcard__icon {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: var(--hh-accent-soft);
  margin-bottom: 16px;
}
.hh-contactcard__icon img { width: 24px; height: 24px; }
.hh-contactcard h2 { font-family: var(--hh-sans); font-size: 16px; font-weight: 600; margin: 0 0 8px; color: var(--hh-navy); }
.hh-contactcard p { margin: 0; font-size: 14px; color: var(--hh-slate); line-height: 1.6; word-break: break-word; }
.hh-contactcard a { color: var(--hh-slate); text-decoration: none; }
.hh-contactcard a:hover { color: var(--hh-navy); }
@media (max-width: 900px) { .hh-contactcards { grid-template-columns: repeat(2, 1fr); } }

/* Contact Form 7 inside the Elementor card */
.wpcf7-form p { margin-bottom: 16px; }
.wpcf7-form label { display: block; font-size: 14px; font-weight: 500; color: var(--hh-navy); margin-bottom: 6px; }
.wpcf7-form input[type='text'],
.wpcf7-form input[type='email'],
.wpcf7-form input[type='tel'],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  border: 1px solid var(--hh-hairline);
  border-radius: 10px;
  padding: 13px 16px;
  font-family: var(--hh-sans);
  font-size: 15px;
  color: var(--hh-navy);
  background: #fff;
  transition: border-color 0.25s var(--hh-ease);
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus { outline: none; border-color: var(--hh-navy); }
.wpcf7-form input[type='submit'] {
  background: var(--hh-navy);
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: 15px 34px;
  font-family: var(--hh-sans);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s var(--hh-ease);
  width: 100%;
}
.wpcf7-form input[type='submit']:hover { background: var(--hh-ink); }

/* ---------- availability iframe ----------------------------------------- */
.hh-avail {
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: var(--hh-radius);
  padding: 18px;
}
.hh-avail iframe { width: 100%; height: 1000px; border: 0; border-radius: 12px; display: block; }
.hh-avail__note { margin: 12px 0 0; font-size: 12px; color: var(--hh-muted); }
.hh-avail__note a { color: var(--hh-navy); }
@media (max-width: 767px) { .hh-avail iframe { height: 860px; } }

/* ---------- apply steps ------------------------------------------------- */
.hh-special {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  background: var(--hh-accent-soft);
  border: 1px solid rgba(201, 183, 163, 0.55);
  border-radius: 16px;
  padding: 24px 28px;
}
.hh-special__eyebrow { display: block; font-size: 12px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--hh-accent-strong); }
.hh-special__title { display: block; font-family: var(--hh-display); font-size: 26px; color: var(--hh-navy); }
.hh-special__fine { margin: 0; max-width: 420px; font-size: 12px; color: var(--hh-slate); }

.hh-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-bottom: 40px; }
.hh-step { background: #fff; border: 1px solid var(--hh-hairline); border-radius: 16px; padding: 28px; }
.hh-step__n { font-family: var(--hh-display); font-size: 32px; color: var(--hh-accent-strong); }
.hh-step h3 { font-family: var(--hh-sans); font-size: 17px; font-weight: 600; margin: 10px 0 8px; }
.hh-step p { margin: 0; font-size: 14px; color: var(--hh-slate); line-height: 1.7; }
@media (max-width: 1024px) { .hh-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .hh-steps { grid-template-columns: 1fr; } }

/* ---------- CTA band ---------------------------------------------------- */
.hh-cta {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  background: var(--hh-navy);
  padding: 72px 32px;
  text-align: center;
}
.hh-cta__bloom {
  position: absolute;
  top: -110px;
  right: -110px;
  width: 420px;
  height: 420px;
  border-radius: 999px;
  background: rgba(201, 183, 163, 0.28);
  filter: blur(90px);
  pointer-events: none;
}
.hh-cta__body { position: relative; z-index: 2; max-width: 720px; margin: 0 auto; }
.hh-cta__eyebrow {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  background: rgba(201, 183, 163, 0.2);
  color: var(--hh-accent);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 18px;
}
.hh-cta__title { font-family: var(--hh-display); font-size: clamp(30px, 4.4vw, 48px); color: #fff; margin: 0 0 16px; }
.hh-cta__lead { color: rgba(255, 255, 255, 0.76); font-size: 17px; line-height: 1.75; max-width: 540px; margin: 0 auto 30px; }
.hh-cta__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.hh-cta__fine { margin: 22px auto 0; max-width: 560px; font-size: 12px; color: rgba(255, 255, 255, 0.5); }

/* ---------- footer ------------------------------------------------------ */
.hh-pagecard {
  position: relative;
  display: block;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  text-decoration: none;
}
.hh-pagecard__img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform 0.5s var(--hh-ease);
}
.hh-pagecard:hover .hh-pagecard__img { transform: scale(1.05); }
.hh-pagecard__scrim { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20, 41, 58, 0.9), transparent 60%); }
.hh-pagecard__label {
  position: absolute;
  left: 24px;
  bottom: 20px;
  font-family: var(--hh-display);
  font-size: 26px;
  color: #fff;
}
.hh-pagecard__arrow {
  position: absolute;
  right: 20px;
  bottom: 24px;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: #fff;
  transition: transform 0.3s var(--hh-ease);
}
.hh-pagecard:hover .hh-pagecard__arrow { transform: translateX(4px); }

.hh-foot__addr { font-style: normal; color: rgba(255, 255, 255, 0.7); font-size: 14px; line-height: 1.7; margin: 0; }
.hh-foot__hours { margin: 0; }
.hh-foot__line { color: rgba(255, 255, 255, 0.7); font-size: 14px; margin: 0 0 4px; }
.hh-foot__links { list-style: none; margin: 0; padding: 0; }
.hh-foot__links li { margin-bottom: 8px; }
.hh-foot__links a { color: rgba(255, 255, 255, 0.7); font-size: 14px; text-decoration: none; transition: color 0.25s var(--hh-ease); word-break: break-word; }
.hh-foot__links a:hover { color: var(--hh-accent); }

.hh-copy { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.hh-copy p { margin: 0; font-size: 14px; color: rgba(255, 255, 255, 0.5); }
.hh-copy a { color: rgba(255, 255, 255, 0.5); text-decoration: none; }
.hh-copy p a { text-decoration: underline; }
.hh-copy a:hover { color: var(--hh-accent); }
.hh-copy__right { display: flex; align-items: center; gap: 24px; font-size: 14px; }
.hh-eho { width: 30px; height: 30px; opacity: 0.7; }
@media (max-width: 767px) { .hh-copy { justify-content: center; text-align: center; } }

/* ---------- popup ------------------------------------------------------- */
.hh-popup .hh-popup__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 767px) { .hh-popup .hh-popup__img img { max-height: 190px; } }

/* ---------- accordion --------------------------------------------------- */
.hh-accordion .elementor-accordion-item { border-radius: 16px; overflow: hidden; margin-bottom: 14px; border: 1px solid var(--hh-hairline) !important; }
.hh-accordion .elementor-tab-title { padding: 22px 26px !important; }
.hh-accordion .elementor-tab-content { padding: 0 26px 24px !important; border-top: 0 !important; }

/* ---------- carousel + gallery ------------------------------------------ */
.hh-carousel .elementor-image-carousel-wrapper .swiper-slide img { border-radius: 14px; }
.hh-gallery .gallery-item img { border-radius: 14px; }

/* ---------- scroll reveal ----------------------------------------------- */
/* Elements start visible; the JS hides them only once it has confirmed it is
   running, so a JS failure or a no-JS crawler never sees a blank page. */
[data-hh-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  filter: blur(10px);
  transition: opacity 0.7s var(--hh-ease), transform 0.7s var(--hh-ease), filter 0.7s var(--hh-ease);
  will-change: opacity, transform;
}
[data-hh-reveal].hh-in { opacity: 1; transform: none; filter: none; }
@media (prefers-reduced-motion: reduce) {
  [data-hh-reveal] { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* ==========================================================================
   Native-widget card styles
   These replace the earlier hand-written HTML grids. Elementor renders the
   markup; everything below is presentation only.
   ========================================================================== */

/* ---------- eyebrow on a heading widget --------------------------------- */
.elementor-widget.hh-eyebrow { width: auto; }
.elementor-widget.hh-eyebrow .elementor-widget-container {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  background: var(--hh-accent-soft);
}
.elementor-widget.hh-eyebrow--center { display: table; margin-inline: auto; }
.elementor-widget.hh-eyebrow--left { display: inline-block; }
.elementor-widget.hh-eyebrow .elementor-heading-title { line-height: 1.2; }

/* ---------- svg icon-list ----------------------------------------------- */
.hh-svglist .elementor-icon-list-icon svg { width: 22px; height: 22px; }
.hh-svglist .elementor-icon-list-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 12px;
  background: var(--hh-accent-soft);
}
.hh-svglist .elementor-icon-list-item { align-items: center; }
.hh-svglist .elementor-icon-list-text { font-weight: 500; color: var(--hh-navy); }
.hh-svglist--feature .elementor-icon-list-item:not(:last-child)::after { display: none; }

/* ---------- stat boxes (at a glance) ------------------------------------ */
.hh-glance-sec .elementor-container { background: var(--hh-navy); border-radius: var(--hh-radius); overflow: hidden; }
.hh-glance__col { padding: 32px 18px !important; border-right: 1px solid rgba(255, 255, 255, 0.14); }
.hh-glance__col:last-child { border-right: 0; }
.hh-stat--dark .elementor-image-box-img { margin-bottom: 14px !important; }
.hh-stat--dark .elementor-image-box-img img {
  width: 26px;
  height: 26px;
  filter: brightness(0) invert(1);
  padding: 15px;
  box-sizing: content-box;
  border-radius: 999px;
  background: rgba(201, 183, 163, 0.22);
}
.hh-stat .elementor-image-box-title { margin-bottom: 4px; }
.hh-stat__label { display: block; font-weight: 600; font-size: 15px; color: #fff; }
.hh-stat--dark .hh-stat__sub { color: rgba(255, 255, 255, 0.6); }
.hh-stat__sub { display: block; font-size: 13px; margin-top: 2px; }
@media (max-width: 880px) {
  .hh-glance-sec .elementor-container { border-radius: var(--hh-radius); }
  .hh-glance__col { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
  .hh-glance__col:last-child { border-bottom: 0; }
}

/* ---------- generic icon card ------------------------------------------- */
.hh-card .elementor-widget-container {
  height: 100%;
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: 16px;
  padding: 26px;
}
.hh-card .elementor-image-box-img { margin-bottom: 16px !important; }
.hh-card .elementor-image-box-img img {
  width: 24px;
  height: 24px;
  padding: 13px;
  box-sizing: content-box;
  border-radius: 12px;
  background: var(--hh-accent-soft);
}
.hh-card--center .elementor-image-box-wrapper { text-align: center; }
.hh-card--center .elementor-image-box-img { margin-inline: auto; }
.hh-card--contact .elementor-image-box-description a { color: var(--hh-slate); text-decoration: none; word-break: break-word; }
.hh-card--contact .elementor-image-box-description a:hover { color: var(--hh-navy); }
.hh-contact__col, .hh-amenstrip__col, .hh-step__col { display: flex; }
.hh-contact__col > .elementor-widget-wrap, .hh-amenstrip__col > .elementor-widget-wrap,
.hh-step__col > .elementor-widget-wrap { align-content: stretch; }

/* ---------- photo card (explore) ---------------------------------------- */
.hh-photocard .elementor-image-box-wrapper { position: relative; border-radius: 14px; overflow: hidden; }
.hh-photocard .elementor-image-box-img { margin: 0 !important; width: 100% !important; }
.hh-photocard .elementor-image-box-img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform 0.5s var(--hh-ease);
}
.hh-photocard:hover .elementor-image-box-img img { transform: scale(1.08) rotate(3deg); }
.hh-photocard .elementor-image-box-content {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  padding: 20px;
  border-radius: 10px;
  background: rgba(20, 41, 58, 0.55);
  backdrop-filter: blur(12px);
}
.hh-photocard .elementor-image-box-title { margin-bottom: 4px; }

/* ---------- step card ---------------------------------------------------- */
.hh-step .elementor-widget-container {
  height: 100%;
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: 16px;
  padding: 28px;
}
.hh-step .elementor-image-box-img { display: none; }
.hh-step .elementor-image-box-title { display: flex; flex-direction: column; gap: 8px; }

/* ---------- defensive resets -------------------------------------------- */
/* These normally come from Elementor's own stylesheet, but are restated here so
   the blocks look right even if Elementor's CSS is deferred or a theme resets it. */
.hh-svglist .elementor-icon-list-items,
.hh-foot__links,
.hh-featlist,
.hh-amenlist {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hh-svglist .elementor-icon-list-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--hh-hairline);
}
.hh-svglist .elementor-icon-list-item:last-child { border-bottom: 0; }
.hh-svglist .elementor-icon-list-item::before,
.hh-svglist .elementor-icon-list-item::marker { content: none; }
.hh-svglist .elementor-icon-list-icon img { width: 22px; height: 22px; }
.hh-svglist--feature .elementor-icon-list-item { border-bottom: 0; padding: 8px 0; }

/* image-box defaults, in case the theme sets its own figure margins */
.hh-card .elementor-image-box-wrapper,
.hh-photocard .elementor-image-box-wrapper,
.hh-stat .elementor-image-box-wrapper { margin: 0; }
.hh-card .elementor-image-box-title,
.hh-stat .elementor-image-box-title { margin-top: 0; }
.elementor-image-box-description { margin: 0; }

/* ---------- gallery grid (image widgets + lightbox) --------------------- */
.hh-grow .elementor-container { gap: 20px; }
.hh-gcol { padding: 0 10px 20px !important; }
.hh-gtile .elementor-widget-container { overflow: hidden; border-radius: 14px; }
.hh-gtile a, .hh-gtile figure { display: block; margin: 0; }
.hh-gtile img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform 0.5s var(--hh-ease);
}
.hh-gtile:hover img { transform: scale(1.05); }

/* ==========================================================================
   Native rebuilds
   These sections used to be single HTML widgets. They are now real Elementor
   widgets so the client can edit rents, headlines and contact details visually;
   the CSS below does the layout work the markup used to do.
   ========================================================================== */

/* ---------- hero ---------------------------------------------------------- */
.hh-hero-sec { position: relative; overflow: hidden; }
.hh-hero-sec > .elementor-container { position: relative; z-index: 2; }
.hh-hero__body { text-align: center; }
.elementor-widget.hh-hero__badge .elementor-widget-container {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(14px);
}
.elementor-widget.hh-hero__badge { display: table; margin: 0 auto 4px; }
.hh-hero__title .elementor-heading-title { font-family: var(--hh-display); }
.hh-hero__lead { max-width: 700px; margin-inline: auto; }
.hh-hero__actions { max-width: 520px; margin: 0 auto !important; }
.hh-hero__actions .elementor-widget-button { text-align: center; }
.hh-hero-sec .hh-hero__chips {
  position: absolute;
  left: 0; right: 0; bottom: 26px;
  z-index: 3;
}
@media (max-width: 767px) {
  .hh-hero__actions .elementor-column { width: 100% !important; }
  .hh-hero__actions .elementor-widget-button a { width: 100%; }
}

/* ---------- floor plan cards (home) --------------------------------------- */
.hh-fp2 > .elementor-widget-wrap {
  background: #fff;
  border: 1px solid var(--hh-hairline);
  border-radius: var(--hh-radius);
  overflow: hidden;
  padding: 0 0 26px !important;
  align-content: flex-start;
  transition: box-shadow 0.4s var(--hh-ease), transform 0.4s var(--hh-ease);
}
.hh-fp2:hover > .elementor-widget-wrap { box-shadow: var(--hh-shadow-lg); transform: translateY(-4px); }
.hh-fp2 .hh-fp__planimg { background: var(--hh-sand); margin-bottom: 0 !important; }
.hh-fp2 .hh-fp__planimg img { width: 100%; display: block; border-radius: 0 !important; }
.hh-fp2 > .elementor-widget-wrap > .elementor-element:not(.hh-fp__planimg) {
  padding-inline: 26px;
}
.hh-fp2 .hh-fp__price2 .elementor-heading-title {
  display: inline-block;
  background: var(--hh-accent-soft);
  padding: 6px 14px;
  border-radius: 999px;
}
.hh-fp__specs2 .elementor-icon-list-items { display: flex; gap: 18px; flex-wrap: wrap; }
.hh-fp__specs2 .elementor-icon-list-item { border: 0 !important; padding: 0 !important; }
.hh-fp__specs2 .elementor-icon-list-icon img { width: 18px; height: 18px; opacity: .65; }

/* ---------- floor plan rows (Floor Plans page) ---------------------------- */
.hh-fp2__drawing > .elementor-widget-wrap {
  background: var(--hh-sand);
  border-radius: 16px;
  padding: 18px !important;
}

/* ---------- leasing details panel ----------------------------------------- */
.hh-deets2 .hh-deets__row2 {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.hh-deets2 .hh-deets__row2 p { margin: 0; display: contents; }
.hh-deets__k { font-size: 13px; color: rgba(255, 255, 255, 0.6); }
.hh-deets__v { font-size: 15px; color: #fff; font-weight: 500; text-align: right; }
.hh-deets__v a { color: #fff; text-decoration: none; }
.hh-deets__v a:hover { color: var(--hh-accent); }
.hh-deets__actions2 { margin-top: 22px !important; }

/* ---------- photo stack ---------------------------------------------------- */
.hh-ps > .elementor-widget-wrap { position: relative; }
.hh-ps .hh-ps__img { margin: 0 !important; }
.hh-ps .hh-ps__chip,
.hh-ps .hh-ps__pk, .hh-ps .hh-ps__pv, .hh-ps .hh-ps__ps,
.hh-ps .hh-ps__aicon, .hh-ps .hh-ps__at, .hh-ps .hh-ps__as { position: absolute; z-index: 3; }
.hh-ps .hh-ps__chip {
  top: 10px; right: 40%;
  transform: rotate(-10deg);
  background: var(--hh-accent);
  padding: 7px 14px;
  border-radius: 10px;
  box-shadow: var(--hh-shadow);
}
/* price card */
.hh-ps .hh-ps__pk { top: 9%;  right: -14px; width: 196px; padding: 16px 18px 0;
  background: #fff; border: 1px solid var(--hh-hairline); border-bottom: 0;
  border-radius: 16px 16px 0 0; box-shadow: var(--hh-shadow-lg); }
.hh-ps .hh-ps__pv { top: calc(9% + 26px); right: -14px; width: 196px; padding: 0 18px;
  background: #fff; border-inline: 1px solid var(--hh-hairline); }
.hh-ps .hh-ps__pv .elementor-heading-title { font-family: var(--hh-display); line-height: 1.2; }
.hh-ps .hh-ps__ps { top: calc(9% + 68px); right: -14px; width: 196px; padding: 0 18px 16px;
  background: #fff; border: 1px solid var(--hh-hairline); border-top: 0;
  border-radius: 0 0 16px 16px; box-shadow: var(--hh-shadow-lg); }
/* amenity card */
.hh-ps .hh-ps__aicon { bottom: -22px; left: -14px; width: 48px; height: 48px;
  padding: 12px; background: var(--hh-accent-soft); border-radius: 12px;
  margin: 0 0 0 18px !important; }
.hh-ps .hh-ps__aicon img { width: 24px !important; height: 24px; border-radius: 0 !important; }
.hh-ps .hh-ps__at { bottom: 6px; left: -14px; width: 300px; padding: 0 18px 0 82px;
  background: #fff; border: 1px solid var(--hh-hairline); border-bottom: 0;
  border-radius: 16px 16px 0 0; box-shadow: var(--hh-shadow-lg); padding-top: 14px; }
.hh-ps .hh-ps__as { bottom: -22px; left: -14px; width: 300px; padding: 0 18px 14px 82px;
  background: #fff; border: 1px solid var(--hh-hairline); border-top: 0;
  border-radius: 0 0 16px 16px; box-shadow: var(--hh-shadow-lg); }
.hh-ps .hh-ps__aicon { z-index: 4; }
@media (max-width: 1024px) {
  .hh-ps .hh-ps__pk, .hh-ps .hh-ps__pv, .hh-ps .hh-ps__ps { right: 0; }
  .hh-ps .hh-ps__at, .hh-ps .hh-ps__as, .hh-ps .hh-ps__aicon { left: 0; }
}
@media (max-width: 640px) {
  .hh-ps .hh-ps__chip, .hh-ps .hh-ps__pk, .hh-ps .hh-ps__pv, .hh-ps .hh-ps__ps,
  .hh-ps .hh-ps__aicon, .hh-ps .hh-ps__at, .hh-ps .hh-ps__as {
    position: static; width: auto; box-shadow: none; border-radius: 0;
    border: 0; padding-inline: 0; transform: none; background: transparent;
  }
  .hh-ps .hh-ps__chip { display: inline-block; background: var(--hh-accent);
    padding: 6px 12px; border-radius: 10px; margin-top: 14px !important; }
  .hh-ps .hh-ps__aicon { width: 44px; height: 44px; padding: 10px;
    background: var(--hh-accent-soft); border-radius: 12px; margin: 14px 0 0 !important; }
}

/* ---------- CTA band ------------------------------------------------------- */
.hh-cta2 { border-radius: 24px; overflow: hidden; position: relative; }
.hh-cta2::before {
  content: '';
  position: absolute;
  top: -110px; right: -110px;
  width: 420px; height: 420px;
  border-radius: 999px;
  background: rgba(201, 183, 163, 0.28);
  filter: blur(90px);
  pointer-events: none;
}
.hh-cta2 > .elementor-container { position: relative; z-index: 2; }
.elementor-widget.hh-cta__eyebrow2 { display: table; margin: 0 auto; }
.elementor-widget.hh-cta__eyebrow2 .elementor-widget-container {
  display: inline-block;
  padding: 7px 16px;
  border-radius: 999px;
  background: rgba(201, 183, 163, 0.2);
}
.hh-cta__actions2 { max-width: 560px; margin: 0 auto !important; }
@media (max-width: 767px) {
  .hh-cta__actions2 .elementor-column { width: 100% !important; }
  .hh-cta__actions2 .elementor-widget-button a { width: 100%; }
}

/* nearby cards on the home location section */
.hh-card--nearby .elementor-widget-container { padding: 20px; }

/* ---------- hero layout corrections --------------------------------------- */
/* Elementor widgets are block-level inside the column flex, so the badge needs
   an explicit auto width or it stretches the full container. */
.elementor-widget.hh-hero__badge {
  width: auto !important;
  max-width: max-content;
  margin-inline: auto !important;
}
/* keep the chip marquee clear of the buttons */
.hh-hero-sec { padding-bottom: 190px !important; }
@media (max-width: 767px) { .hh-hero-sec { padding-bottom: 170px !important; } }
.hh-hero__actions { margin-bottom: 0 !important; }
.hh-hero-sec .hh-hero__chips { bottom: 30px; }

/* Chips sit in normal flow under the buttons. Absolute positioning collided with
   the CTAs once the hero content was vertically centred. */
.hh-hero-sec { padding-bottom: 110px !important; padding-top: 150px !important; }
@media (max-width: 767px) {
  .hh-hero-sec { padding-bottom: 80px !important; padding-top: 120px !important; }
}
.hh-hero-sec .hh-hero__chips {
  position: static !important;
  margin-top: 54px;
  width: 100%;
}
.hh-hero-sec .hh-hero__chips .hh-marquee__track { justify-content: flex-start; }

/* Elementor writes an explicit `margin: 0 0 Npx 0` from the widget margin control,
   which cancels margin-inline:auto. Force the centring back for hero copy. */
.hh-hero__body { text-align: center; }
.hh-hero__body > .elementor-widget-wrap { justify-content: center; }
.hh-hero__lead .elementor-widget-container {
  max-width: 700px;
  margin-inline: auto !important;
}
.hh-hero__title .elementor-heading-title,
.hh-hero__lead p { text-align: center; }
.hh-hero__title .elementor-widget-container {
  max-width: 900px;
  margin-inline: auto !important;
}

/* SVG attachments carry no real intrinsic size, so Elementor renders them at the
   placeholder dimensions. Force the drawings and brand marks to fill their box. */
.hh-fp__planimg img,
.hh-fp2__drawing img { width: 100% !important; height: auto !important; }
.hh-fp2 .hh-fp__planimg { margin: 0 !important; padding: 0 !important; }
.hh-fp2 .hh-fp__planimg .elementor-image,
.hh-fp2 .hh-fp__planimg figure { margin: 0; line-height: 0; }

/* ---------- legal pages ---------------------------------------------------- */
.hh-legal h2 { font-family: var(--hh-display); font-size: 24px; font-weight: 400;
  color: var(--hh-navy); margin: 34px 0 12px; }
.hh-legal h2:first-child { margin-top: 0; }
.hh-legal h3 { font-family: var(--hh-sans); font-size: 17px; font-weight: 600;
  color: var(--hh-navy); margin: 22px 0 8px; }
.hh-legal p { color: var(--hh-slate); line-height: 1.8; margin: 0 0 14px; }
.hh-legal ul { margin: 0 0 16px; padding-left: 22px; }
.hh-legal li { color: var(--hh-slate); line-height: 1.8; margin-bottom: 8px; list-style: disc; }
.hh-legal a { color: var(--hh-navy); text-decoration: underline; }
