/* ESD HOMEPAGE  –  Production CSS */

/* DESIGN TOKENS */
:root {
  --hp-cream:       #f7f4ef;
  --hp-cream2:      #edead3;
  --hp-cream3:      #e2dcd2;
  --hp-cream4:      #fdfaf0;
  --hp-dark:        #1b2014;
  --hp-dark2:       #2d2d29;
  --hp-dark3:       #4a4a44;
  --hp-orange:      #ec6921;
  --hp-orange-h:    #d45b18;
  --hp-warm:        #8c7e6d;
  --esd-lgray:      #d5d5d5;
  --hs-btitle:      #EAEAEA;
  --hs-ctabcol:     #FFFFFF;
  --hs-subcol:      #DFDFDF;
  --hs-subtcol:     #151515;
  --esd-dgray:      #4D4D4D;
  --hp-serif:       'Cormorant Garamond';
  --hp-news:        "Newsreader";
  --hp-geist:       'Geist';
  --hp-nav-h:       90px;
  --hp-max-w:       1400px;
  --hp-pad-x:       60px;
  --hp-radius:      4px;
}

/* RESET (scoped) */
.hp-main *,
.hp-main *::before,
.hp-main *::after { box-sizing: border-box; }
.hp-main img      { display: block; max-width: 100%; /* height: auto; */ }
.hp-main a        { text-decoration: none; }
.hp-main ul       { list-style: none; padding: 0; margin: 0; min-height: 215px;}
.hp-main blockquote { margin: 0; padding: 0; }

/* FULL-BLEED LAYOUT OVERRIDE */
html, body { margin: 0; padding: 0; overflow-x: hidden; }
body.page-template-homepage,
body.page-template-homepage #page,
body.page-template-homepage #content,
body.page-template-page-templates-new-homepage,
body.page-template-page-templates-new-homepage #page,
body.page-template-page-templates-new-homepage #content,
body.page-template-page-templates-new-homepage-php,
body.page-template-page-templates-new-homepage-php #page,
body.page-template-page-templates-new-homepage-php #content {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
}
.hp-main,
#primary.hp-main {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.content-area:has(.hp-main),
#content:has(.hp-main),
#primary:has(.hp-main) {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.content-area:has(.esd-footer),
#content:has(.esd-footer),
#primary:has(.esd-footer) {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* SHARED CONTAINER
   .hp-container is used by exactly two templates — homepage.php and
   location-new.php (confirmed: no other template references this class)
   — so a fix here correctly covers both without needing any page-specific
   scoping; a previous pass scoped this to the homepage template alone via
   a body class, which is no longer necessary now that Location pages need
   the identical treatment too. */
.hp-container {
  width: 100%;
  max-width: var(--hp-max-w);
  margin-inline: auto;
  padding: 0 30px;
}

/* Desktop side margins (per Figma: a flat 40px, not the growing gutter
   this replaces). --hp-max-w grows at each large-desktop breakpoint
   (1400px → 3360px) to keep content at a roughly constant % of very wide
   viewports, which left a widening centered gutter beyond that max-width
   on top of this container's own 30px padding — at 1920px+ that's already
   30px + up to ~110px of centering gap. Removing the cap and fixing the
   padding at 40px keeps the margin constant across every desktop size
   instead. ≤1199px (tablet/mobile) keep their existing, unquestioned
   values — untouched here. */
@media (min-width: 1200px) {
  .hp-container {
    max-width: none;
    padding-inline: 40px;
  }

  /* .hp-commit and .hp-cities (also homepage/location-only — same check
     as .hp-container above) don't use .hp-container at all; they take
     their own side spacing straight from --hp-pad-x, which is shared
     with other templates' "find your match" sections (.hiw-find,
     .au-find, .faq-find, .ss-find) and grows at the same large-desktop
     breakpoints as --hp-max-w did. Changing --hp-pad-x itself would leak
     into those other pages, so these two get an explicit flat 40px
     instead, leaving the variable and everything else that reads it
     untouched. */
  .hp-commit {
    padding-left: 40px;
    padding-right: 40px;
  }
  .hp-cities {
    margin-left: 40px;
    margin-right: 40px;
  }

  /* Homepage "Our Commitment" section only — Figma Dev Mode gives an
     exact 44px here (Frame 21: Left 44px, Width 1835px), a more precise,
     measured value than the 40px estimate above used for every other
     section (and for this same .hp-commit on Location pages, which this
     task explicitly excludes). Higher specificity than the shared rule
     above, so it wins for the homepage only; Location pages keep the
     40px they already had, untouched by this task. */
  body.page-template-page-templates-homepage-php .hp-commit {
    padding-left: 44px;
    padding-right: 44px;
  }
}

/* SHARED SECTION HEADER */
.hp-section-header {
  text-align: center;
  margin-bottom: 64px;
}
.hp-section-header__title {
  font-family: var(--hp-news);
  font-size: 52px;
  font-weight: 400;
  line-height: 76px;
  color: var(--esd-lgray);
  margin-bottom: 10px;
}
.hp-section-header__title em { font-style: italic; }
.hp-section-header__desc {
  font-family: var(--hp-geist);
  font-size: 20px;
  line-height: 30px;
  color: var(--hs-subcol);
  max-width: 100%;
  margin-inline: auto;
  margin: 0px;
}

/* BUTTONS */
.hp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--hp-geist);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  padding: 14px 32px;
  border-radius: 40px;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.22s ease, color 0.22s ease,
              transform 0.22s ease, box-shadow 0.22s ease;
  text-decoration: none;
}
.hp-btn--pri {
  background: var(--hp-orange);
  color: var(--hs-ctabcol);
}
.hp-btn--pri:hover,
.hp-btn--pri:focus-visible {
  background: var(--hp-orange-h);
  transform: translateY(-2px);
}
.hp-btn--outline {
  background: transparent;
  color: var(--hp-dark);
  border: 1.5px solid var(--hp-dark);
  margin-bottom: 50px;
  width: 100%;
  max-width: 90%;
  height: 45px;
}
.hp-btn--outline:hover,
.hp-btn--outline:focus-visible {
  background: var(--hp-dark);
  color: #fff;
}
.hp-btn--outline-light {
  background: var(--hp-orange);
  color: #fff;
}
.hp-btn--outline-light:hover,
.hp-btn--outline-light:focus-visible {
  background: var(--hp-orange-h);
  color: #fff;
}

/* HERO */
.hp-hero {
  position: relative;

  min-height: 115vh;
  display: flex;
  align-items: flex-end;

  padding-bottom: 90px;
  overflow: hidden;
}

/* Background image layer */
.hp-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}

/* Was a full-width "to top" gradient — same darkness at any given height
   regardless of x-position, so it dimmed the couple on the right exactly
   as much as it darkened the text on the left. No blur was ever involved
   (there's no filter/backdrop-filter here), but it still dulled the photo
   uniformly rather than only where the text actually needs contrast.
   Replaced the bottom layer with a radial glow anchored at the bottom-left
   corner — strong directly behind the text block, fading smoothly to
   fully transparent well before it reaches the subjects on the right, who
   are now untouched by any overlay at all. Top layer (nav-bar legibility
   vignette) is unchanged. */
.hp-hero__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 24%),
    radial-gradient(
      ellipse 900px 640px at 0% 100%,
      rgba(10, 8, 4, 0.9) 0%,
      rgba(10, 8, 4, 0.6) 40%,
      rgba(10, 8, 4, 0) 78%
    );
}

/* Content */

.hp-hero__inner {
  position: relative;
  z-index: 1;

  padding-inline: 40px;
  max-width: 680px;
}
/* Sizing/weight bumped per the latest Figma revision — the referenced
   screenshot didn't come through as an actual image in this pass, so
   these are a reasonable estimate (was 16px/400) rather than a pixel
   measurement; flag exact values if this doesn't match. */
.hp-hero__eyebrow {
  display: block;
  font-family: var(--hp-geist);
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  color: #FFFFFF;
  text-transform: uppercase;
}
.hp-hero__heading {
  font-family: var(--hp-news);
  font-size: 64px;
  font-weight: 400;
  line-height: 76px;
  color: var(--hs-btitle);
  margin-top: 20px;
  margin-bottom: 20px;
}
.hp-hero__heading em {
  font-style: italic;
  color: var(--hs-btitle);
}
.hp-hero__desc {
  font-family: var(--hp-geist);
  font-size: 20px;
  font-weight: 400;
  line-height: 100%;
  letter-spacing: 0%;
  color: var(--hs-subcol);
  margin-bottom: 32px;
  max-width: 100%;
}

/* LOGO TICKER */
.hp-ticker {
  overflow: hidden;
  background: var(--hp-dark);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.hp-ticker__track {
  display: flex;
  width: max-content;
  animation: hp-ticker 28s linear infinite;
}
.hp-ticker:hover .hp-ticker__track {
  animation-play-state: paused;
}
.hp-ticker__item {
  display: flex;
  align-items: center;
  padding: 0 36px;
  height: 100px;
  flex-shrink: 0;
}
.hp-ticker__item img {
  height: 36px;
  width: auto;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.55;
  transition: opacity 0.2s;
}
.hp-ticker__item a:hover img { opacity: 0.9; }

@keyframes hp-ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* HOW IT WORKS / PROCESS */
.hp-process {
  background: var(--hp-dark);
  color: #fff;
  padding: 80px 0;
}

.hp-process__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.hp-process__card {
  padding: 0 15px 36px;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}
.hp-process__card:last-child { border-right: none; }
.hp-process__card:first-child { padding-left: 0; }

.hp-process__num {
  display: block;
  font-family: var(--hp-news);
  font-size: 52px;
  font-weight: 400;
  font-style: italic;
  color: var(--hp-orange);
  line-height: 76px;
  margin-bottom: 10px;
}

.hp-process__step-title {
  font-family: var(--hp-news);
  font-weight: 400;
  font-size: 32px;
  line-height: 32px;
  color: var(--esd-lgray);
  letter-spacing: 0;
  margin-bottom: 11px;
  width: 100%;
}

.hp-process__step-desc {
  font-family: var(--hp-geist);
  font-weight: 300;
  font-style: normal;
  font-size: 18px;
  line-height: 30px;
  letter-spacing: 0;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
  color: var(--hs-subcol);
  width: 100%;
}

/* ABOUT PREVIEW */
.hp-about {
  background: var(--hp-cream4);
}

.hp-about__inner {
  display: grid;
  grid-template-columns: 50% 50%;
  gap: 20px;
  align-items: start;
}

.hp-about__image-wrap { position: relative; padding: 32px 0; }
.hp-about__image-lg {
  width: 100%;
  height:auto;
  object-fit: cover;
  object-position: center bottom;
  display: block;
  aspect-ratio: 3.35 / 4;
  border-radius: 4px;
}
/* Right: content */
.hp-about__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 70px 20px 40px;
  text-align: center;
}

.hp-about__title {
  font-family: var(--hp-news);
  font-size: clamp(28px, 3vw, 52px);
  font-weight: 400;
  line-height: 1;
  color: var(--hs-subtcol);
  letter-spacing: 0.02em;
  margin-bottom: 10px;
  max-width: 340px;
}

.hp-about__subtitle {
  font-family: var(--hp-news);
  font-size: 32px;
  font-style: italic;
  font-weight: 400;
  color: var(--hp-orange);
  line-height: 40px;
  letter-spacing: 0.02em;
  margin-bottom: 28px;
  max-width: 477px;
}

.hp-about__photo {
  width: 42%;
  max-width: 340px;
  height: auto;
  object-fit: cover;
  object-position: 62% center;
  margin-bottom: 28px;
  box-shadow: 0 14px 44px rgba(0, 0, 0, 0.13);
  aspect-ratio: 3.35 / 4;
}

.hp-about__body {
  font-family: var(--hp-geist);
  font-size: 18px;
  line-height: 28px;
  color: #4d4b4b;
  max-width: 87%;
  margin-bottom: 10px;
}
.hp-about__body p { margin-bottom: 14px; color: var(--esd-dgray); }

.hp-about__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Geist";
  font-weight: 500;
  font-style: normal;
  font-size: 18px;
  line-height: 18px;
  letter-spacing: 0;
  color: var(--hs-subtcol);
}
.hp-about__link:hover {
  color: var(--hp-orange);
  border-color: var(--hp-orange);
}

.hp-about__link .cta-arrow {
  width: 16px;
  height: 16px;
  display: block;
  flex-shrink: 0;
}

@media (min-width: 1200px) {
  body.page-template-homepage .hp-about__title {
    margin-bottom: -10px;
  }
  body.page-template-homepage .hp-about__link {
    font-weight: 500;
  }
}

/* SUCCESS STORIES */
.hp-stories {
  background: var(--hp-dark);
  padding: 100px 0;
}

/* Markup is <div class="hp-stories__head"><div><h2 title/><p subtitle/></div><a button/></div>
   — title and subtitle share one wrapper div, with the button as its
   sibling. A flex row (even with align-items:center, tried previously)
   can only ever center the *whole* title+subtitle block against the
   button; it can't put the subtitle specifically on the same line as
   the button while the title sits on its own row above, which is what
   Figma actually shows and what "same horizontal row" means here.
   Switched to a 2-row grid and given the wrapper div display:contents
   (same "unwrap a wrapper so its children become direct grid items"
   trick already used for .hiw-step__card elsewhere in this stylesheet)
   so the title, subtitle, and button can each be placed independently:
   title alone spanning row 1, subtitle + button sharing row 2. No
   markup change needed in homepage.php / location-new.php. */
.hp-stories__head {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 16px;
  row-gap: 6px;
  align-items: center;
  margin-bottom: 44px;
}

.hp-stories__head > div {
  display: contents;
}

.hp-stories__head > .hp-btn {
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
}

.hp-stories__title {
  grid-column: 1 / -1;
  grid-row: 1;
  font-family: var(--hp-news);
  font-size: clamp(30px, 4vw, 52px);
  font-weight: 400;
  line-height: 76px;
  color: var(--esd-lgray);
  margin-bottom: -20px;
  letter-spacing: 0;
}
.hp-stories__title em { font-style: italic; }

.hp-stories__subtitle {
  grid-column: 1;
  grid-row: 2;
  font-family: var(--hp-geist);
  font-size: 20px;
  font-weight: 400;
  color: var(--hs-subcol);
  line-height: 30px;
  margin: 0;
  letter-spacing: 0;
}

.hp-stories__swiper { overflow: visible; }
.hp-stories__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.hp-stories__slide { height: auto; }

.hp-stories__card {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 3px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 0;
  height: 100%;
}

.hp-stories__city {
  font-family: var(--hp-news);
  font-size: 32px;
  font-weight: 400;
  font-style: normal;
  color: var(--esd-lgray);
  margin-bottom: 14px;
  line-height: 32px;
  letter-spacing: 0%;
}

.hp-stories__quote {
  flex: 1;
  margin-bottom: 24px;
}
.hp-stories__quote p {
  font-family: var(--hp-geist);
  font-weight: 300;
  font-size: 18px;
  line-height: 30px;
  color: var(--hs-subcol);
  width: 105%;
  margin-top: 8px;
  margin-bottom: 20px;
  font-style: normal;
  letter-spacing: 0;
}

.hp-stories__footer {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: auto;
}

.hp-stories__avatar {
  width: 55px;
  height: 55px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.hp-stories__name {
  font-family: var(--hp-news);
  font-size: 20px;
  font-weight: 500;
  font-style: italic;
  color: var(--esd-lgray);
  line-height: 20px;
  margin: 0px;
}

.hp-stories__watch {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--hp-geist);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.32px;
  text-transform: uppercase;
  color: var(--hp-orange);
  transition: opacity 0.2s;
  line-height: 100%;
}
.hp-stories__watch:hover { opacity: 0.78; }
.hp-stories__play {
  display: flex;
  align-items: center;
  color: var(--hp-orange);
}

.hp-stories__play svg {
  display: block;
  width: 10px;
  height: 12px;
}

.hp-stories__controls {
  display: none;
}
.hp-stories__prev,
.hp-stories__next {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.25);
  background: transparent;
  cursor: pointer;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.hp-stories__prev:hover,
.hp-stories__next:hover,
.hp-stories__prev:focus-visible,
.hp-stories__next:focus-visible {
  background: var(--hp-orange);
  border-color: var(--hp-orange);
  color: #fff;
}
.hp-stories__prev[aria-disabled="true"],
.hp-stories__next[aria-disabled="true"],
.hp-stories__prev:disabled,
.hp-stories__next:disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}
.hp-stories__pagination {
  display: flex;
  align-items: center;
  gap: 8px;
}
.hp-stories__pagination .esd-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s;
}
.hp-stories__pagination .esd-dot.is-active {
  background: var(--hp-orange);
}

/* COMMITMENT */
.hp-commit {
  background: var(--hp-cream4);
  margin-left: 40px;
  margin-right: 40px;
  margin-top: 40px;
}
.hp-commit__title{
  width: 100%;
  max-width: 576px;
  margin-left: -20px;
  margin-top: 0;
  font-family: "Newsreader", serif;
  font-weight: 400;
  font-size: 52px;
  line-height: 52px;
  letter-spacing: 0;
  color: #151515;
  margin-bottom: 0px;
}
.hp-commit__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(134, 123, 123, 0.15);
  padding-top: 48px;
  padding-bottom: 48px;
  gap: 0;
}
.hp-commit__col {
  padding: 0 35px;
}
.hp-commit__col:first-child { padding-left: 0; }
.hp-commit__col:last-child  { padding-right: 0; }
.hp-commit__col--intro,
.hp-commit__col--list {
  border-right: 1px solid rgba(134, 123, 123, 0.15);
}

.hp-commit__col--list,
.hp-commit__col--cta {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.hp-commit__col--list .hp-btn--outline {
  margin-top: auto;
  margin-bottom: 0;
  border: 1px solid #15151566;
  font: normal 500 14px / 16px "Geist";
  letter-spacing: 0;
  text-align: center;
}
.hp-commit__col.hp-commit__col--intro{
  width: 100%;
  max-width: 576px;
  min-height: 52px;
  opacity: 1;
  font-family: "Newsreader", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 52px;
  line-height: 52px;
  letter-spacing: 0;
  margin: 0;
}

.hp-commit__desc,
.hp-commit__desc p{
  width: 100%;
  max-width: 100%;
  min-height: 101px;
  margin-left: -10px;
  opacity: 1;
  font-family: "Geist";
  font-weight: 400;
  font-style: normal;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: 0;
  color: #272727;
  margin-top: 20px;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
.hp-commit__checklist {
  margin-bottom: 80px;
}
.hp-commit__checklist li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: var(--hp-geist);
  font-size: 18px;
  line-height: 28px;
  color: var(--esd-dgray);
  padding: 6px 0;
  max-width: 100%;
}
.hp-commit__checklist li::before {
  content: "";
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-top: 5px;
  background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 7L5.5 10.5L12 2.5' fill='none' stroke='%23F47A20' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.hp-commit__cta-title {
  width: 100%;
  max-width: 410px;
  min-height: 45px;
  margin: 0;
  opacity: 1;
  font-family: "Geist",system-ui;
  font-weight: 500;
  font-style: normal;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  color: var(--hs-subtcol);
}
.hp-commit__col--cta .hp-commit__cta-title {
  font-weight: 500 !important;
}

.hp-commit__cta-body{
  width: 100%;
  max-width: 100%;
  min-height: 72px;
  margin: 0;
  opacity: 1;
  font-family: "Geist";
  font-weight: 400;
  font-style: normal;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  color: var(--esd-dgray);
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}

.hp-commit__cta-body p{
  margin: 0;
  font: inherit;
  color: inherit;
}
.hp-commit__col--cta .hp-btn--pri{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 80%;
  min-height: 45px;
  padding: 0 32px;
  margin-top: auto;
  border: 0;
  border-radius: 60px;
  background: #EC6921;
  color: #fff;
  font-family: "Geist";
  font-weight: 500;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0;
  text-decoration: none;
  cursor: pointer;
  transition: background .3s ease;
}

.hp-commit__col--cta .hp-btn--pri:hover{
  background: #CF6924;
  color: #fff;
}

/* RESPONSIVE */

@media (max-width:767px){

  .hp-commit__cta-body,
  .hp-commit__col--cta .hp-btn--pri{
    max-width: 100%;
  }
}
/* CITIES STRIP */
.hp-cities {
  background: var(--hp-cream4);
  overflow: hidden;
  border-top: 1px solid rgba(0, 0, 0, 0.07);
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
  padding: 27px 0;
  margin: 0 40px 80px;
}
.page-template-location-new .hp-cities{
  margin:0 !important;
}

.page-template-location-new .hp-commit{
  margin:0;
}
.hp-cities__track {
  display: flex;
  width: max-content;
  will-change: transform;
}
.hp-cities__track span {
  display: inline-block;
  padding: 0 48px;
  font-family: var(--hp-geist);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.32px;
  text-transform: uppercase;
  color: var(--hs-subtcol);
  flex-shrink: 0;
}
.hp-cities__track a {
  display: inline-block;
  color: inherit;
  transition: color 0.2s;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.hp-cities__track a:hover { color: var(--hp-orange); }

/* LOCATIONS */
.hp-locations {
  background: var(--hp-cream4);
  padding: 0 0 110px;
  overflow: hidden;
}

.hp-locations__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 44px;
}
.hp-locations--loc-page .hp-locations__header {
  margin-bottom: 0px;
  margin-top: 50px;
}

.hp-locations__title {
  font-family: var(--hp-news);
  font-size: clamp(36px, 4.5vw, 42px);
  font-weight: 400;
  line-height: 1;
  color: var(--hs-subtcol);
}
.hp-locations__title em {
  font-style: italic;
  color: var(--hs-subtcol);
}

.hp-locations__nav {
  display: flex;
  gap: 8px;
}

.hp-locations__prev,
.hp-locations__next {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1.5px solid rgba(21, 21, 21, 0.2);
  background: transparent;
  cursor: pointer;
  color: var(--hs-subtcol);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.hp-locations__prev:hover,
.hp-locations__next:hover,
.hp-locations__prev:focus-visible,
.hp-locations__next:focus-visible {
  background: var(--hp-orange);
  border-color: var(--hp-orange);
  color: #fff;
}

/* Locations carousel */
.hp-locations__swiper { overflow: hidden; }
.hp-locations__swiper .swiper-wrapper {
  display: flex;
  align-items: stretch;
}
.hp-locations__swiper .swiper-slide {
  height: auto;
  width: 25%;
  flex-shrink: 0; /* width set by ESDCarousel JS */
}

/* Location card */
.hp-loc-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  background: #fff;
  height: 100%;
  transition: box-shadow 0.3s;
}
.hp-loc-card:hover { box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); }

.hp-loc-card__img-wrap {
  position: relative;
  height: 300px;
  overflow: hidden;
  flex-shrink: 0;
}
.hp-loc-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.hp-loc-card:hover .hp-loc-card__img-wrap img { transform: scale(1.06); }

.hp-loc-card__arrow {
  position: absolute;
  bottom: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
  color: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  transition: background 0.3s, color 0.3s;
}
.hp-loc-card__arrow.is-active,
.hp-loc-card:hover .hp-loc-card__arrow {
  background: var(--hp-orange);
  color: #fff;
}

.hp-locations--loc-page .hp-loc-card:not(:hover) .hp-loc-card__arrow.is-active {
  background: #fff;
  color: #111;
}

.hp-loc-card__footer {
  padding: 16px 8px 8px;
  background: var(--hp-cream4);
}
.hp-loc-card__footer h3 {
  font-family: var(--hp-geist);
  font-size: 17px;
  font-weight: 400;
  color: #111;
  margin: 0;
  letter-spacing: 0.01em;
}

.page-template-page-templates-location-new-php .hp-commit__title,
.page-template-page-templates-location-new-php .hp-commit__desc,
.page-template-page-templates-location-new-php .hp-commit__desc p,
.page-template-page-templateslocation-new-php .hp-commit__title,
.page-template-page-templateslocation-new-php .hp-commit__desc,
.page-template-page-templateslocation-new-php .hp-commit__desc p {
  margin-left: 0;
}

/* RESPONSIVE — TABLET  768–1199 */
@media (max-width: 1199px) {
  :root {
    --hp-pad-x: 40px;
  }

  .hp-hero { padding-bottom: 72px; }
  .hp-hero__heading { font-size: clamp(34px, 4vw, 52px); }

  /* Process */
  .hp-process { padding: 80px 0; }
  .hp-process__grid { grid-template-columns: repeat(2, 1fr); }
  .hp-process__card {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 40px;
    margin-bottom: 0;
  }
  .hp-process__card:first-child { padding-left: 0; }
  .hp-process__card:nth-child(2n) { border-right: none; }
  .hp-process__card:nth-child(2n-1) {
    border-right: 1px solid rgba(255, 255, 255, 0.1);
  }
  .hp-process__card:last-child,
  .hp-process__card:nth-last-child(2):nth-child(2n-1) {
    border-bottom: none;
  }

  /* About */
  .hp-about__inner { grid-template-columns: 1fr 1fr; }
  .hp-about__image-lg { width: 100%; height: 600px; }
  .hp-about__content { padding: 48px 10px 32px; }
  .hp-about__photo { width: 52%; height: 260px; }

  /* Stories */
  .hp-stories { padding: 80px 0; }
  .hp-stories__grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }

  /* Commitment */
  .hp-commit { padding: 0 var(--hp-pad-x); }
  .hp-commit__grid {
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .hp-commit__col--cta {
    grid-column: 1 / -1;
    border-right: none;
    border-top: 1px solid rgba(134, 123, 123, 0.15);
    padding: 40px 0 0;
    margin-top: 24px;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
    flex-wrap: wrap;
    height: auto;
  }
  .hp-commit__col--intro { border-right: 1px solid rgba(134, 123, 123, 0.15); }
  .hp-commit__col--list  { border-right: none; }

  /* Cities */
  .hp-cities { margin: 0 var(--hp-pad-x) 60px; }
}

/* RESPONSIVE — MOBILE  ≤ 767 */
@media (max-width: 767px) {
  :root {
    --hp-pad-x: 20px;
  }

  .hp-container {
    padding: 5px 30px;
  }

  .hp-hero__bg {
    background-position-x: 79%;
  }

  body.page-template-page-templateslocation-new-php .hp-hero__bg {
    background-position-x: 85%;
  }

  .hp-hero {
    min-height: 80svh;
    padding-bottom: 56px;
    align-items: flex-end;
  }
  .hp-hero__inner { padding-inline: 20px; max-width: 100%; }
  .hp-hero__eyebrow { font-size: 12px; font-weight: 400; line-height: 100%; letter-spacing: 0.48px; text-transform: uppercase;}
  .hp-hero__heading { font-size: 24px; line-height: 30px; letter-spacing: 0%; }
  .hp-hero__desc { font-size: 12px;  font-weight: 400; font-style: normal; line-height: 100%; letter-spacing: 0; text-align: center; }
  .hp-btn { font-size: 12px; width: 70%; height: 40px; }

  body.page-template-homepage .hp-hero__heading {
    margin-top: 12px;
    margin-bottom: 12px;
  }
  body.page-template-homepage .hp-hero__desc {
    margin-bottom: 20px;
  }

  /* Ticker */
  .hp-ticker__item { padding: 0 22px; height: 76px; }
  .hp-ticker__item img { height: 28px; }

  /* Process */
  .hp-process { padding: 64px 0; }
  .hp-process__grid { grid-template-columns: 1fr; }
  .hp-process__card {
    padding: 0 0 32px 0;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  .hp-process__card:last-child { border-bottom: none; }
  .hp-section-header { margin-bottom: 40px; }

  /* About */
  .hp-about { padding-bottom: 0; }
  .hp-about__inner {
    grid-template-columns: 1fr;
    gap: 0;
  }
  /* Flip order: content first, large image below */
  .hp-about__image-wrap { order: 2; }
  .hp-about__content {
    order: 1;
    padding: 40px 0px 30px;
  }
  .hp-about__title {
    font-size: 24px;
    line-height: 20px;
    max-width: 100%;
    margin-bottom: 12px;
  }
  .hp-about__subtitle {
    font-size: 18px;
    line-height: 24px;
    max-width: 80%;
    margin-bottom: 24px;
    letter-spacing: 0%;
  }
  .hp-about__body p {
    font-family: "Geist";
    font-weight: 300;
    font-style: normal;
    font-size: 14px;
    margin-bottom: 14px;
    line-height: 20px;
    letter-spacing: 0;
    color: var(--esd-dgray);
    text-align: center;
  }
  .hp-about__photo {
    width: 100%;
    height: 250px;
    margin-bottom: 24px;
  }
  .hp-about__body { max-width: 100%; font-size: 14px; }
  .hp-about__link { margin-bottom: 0; font-size: 14px;}
  .hp-about__link .cta-arrow {
    width: 14px;
    height: 14px;
  }
  .hp-about__image-lg {
    width: 100%;
    height: auto;
    aspect-ratio: 2.85 / 4;
    object-fit: cover;
    object-position: center bottom;
    border-radius: 4px;
    display: block;
    margin-bottom: 10%;
  }
  .hp-main img {
    display: block;
    max-width: 100%;
    aspect-ratio: 0;
  }
  /* Stories → carousel */
  .hp-stories { padding: 64px 0; }
  .hp-stories__head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 5%;
  }

  .hp-stories__head .hp-btn { display: none; }

  .hp-stories__swiper { overflow: hidden; }
  .hp-stories__grid {
    display: flex;
    gap: 0;
  }
  .hp-stories__slide {
    width: 100%;
    flex-shrink: 0;
  }
  .hp-stories__card { padding: 24px; }
  .hp-stories__city { font-size: 18px; }

  .hp-stories__avatar {
    width:  60px;
    height: 64px;
  }
  .hp-stories__watch {
    font-size:  12px;
    margin-top: 5px;
  }
  .hp-stories__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 28px;
  }

  .hp-stories__prev,
  .hp-stories__next {
    display: none;
  }

  /* Commitment */
  .hp-commit { padding: 0; margin-left: 16px; margin-right: 16px; margin-top: 30px;}
  .hp-commit__grid {
    grid-template-columns: 1fr;
    padding-top: 40px;
    padding-bottom: 56px;
  }
  .hp-commit__col {
    padding: 0 5%;
    box-sizing: border-box;
    border-right: none;
  }
  .hp-commit__col--intro { border-right: none; }
  .hp-commit__col--list {
    border-right: none;
    padding-top: 1%;
    margin-top: 1%;
    height: auto;
  }
  .hp-commit__col--list .hp-btn--outline {
    margin-top: 28px;
    font: normal 500 12px / 12px "Geist";
    letter-spacing: 0;
    text-align: center;
    border: 1px solid #15151566
  }
  .hp-commit__col--cta {
    border-top: 1px solid rgba(134, 123, 123, 0.15);
    padding-top: 32px;
    margin-top: 32px;
    height: auto;
  }
  .hp-commit__col--cta { flex-direction: column; gap: 0; }
  .hp-commit__title { margin-left: 0; font-weight: 400; font-style: normal; font-size: 24px; line-height: 24px;}
  .hp-commit__desc p { margin-left: 0; font-family: var(--hp-geist); font-size: 14px; font-weight: 400; line-height: 20px; max-width: 100%;}
  .hp-commit__cta-title { margin: 0 0 14px; font-size: 16px; line-height: 20px; font-weight: 500; font-style: normal; font-size: 14px; line-height: 20px; letter-spacing: 0; width: 100%; max-width: 68%;}
  .hp-commit__cta-body { width: 68%; max-width: 100%; margin: 0; padding-top: 0; padding-bottom: 5%; }
  .hp-commit__checklist li { max-width: 80%; }
  .hp-commit__desc { max-width: 100%; width: 100%; margin-left: 0px;}

  .hp-commit__col--list .hp-btn--outline,
  .hp-commit__col--cta .hp-btn--pri {
    width: 90%;
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
    margin-top: auto;
    margin-bottom: 0;
  }

  /* Cities */
  .hp-cities { margin: 0 var(--hp-pad-x) 60px; }
  .hp-cities__track span { padding: 0 30px; font-size: 14px; }

  /* Locations */
  .hp-locations { padding-bottom: 72px; }
  .hp-locations__header { flex-direction: row; gap: 16px; }
  .hp-locations__title { font-size: clamp(28px, 8vw, 40px); }

  /* Ticker */
  .hp-ticker__item img { filter: brightness(0) invert(1); opacity: 0.5; }
  .hp-main ul { list-style: none; padding: 0; max-width: 100%; width: 100%; margin: 0; }
  .hp-btn--outline { background: transparent; color: var(--hp-dark); border: 1.5px solid var(--hp-dark); margin: 5%; }
  .hp-about__image-wrap { position: relative; padding: 32px 0 32px 0px; }

  body.page-template-homepage .hp-about__title {
    margin-bottom: 0px;
  }
  body.page-template-homepage .hp-about__content {
    padding-bottom: 12px;
  }
  body.page-template-homepage .hp-about__image-wrap {
    padding-top: 12px;
    padding-bottom: 0;
  }
  body.page-template-homepage .hp-about__image-lg {
    margin-bottom: 35px;
  }
  .hp-locations__swiper .swiper-slide {
    height: auto;
    width: 100% !important;
    flex-shrink: 0; /* width set by ESDCarousel JS */
  }
  .hp-commit__col:first-child { padding-left: 5%; }
  .hp-commit__col:last-child { padding-right: 5%; }
  .hp-process__card:nth-child(2n-1) { border-right: none; }
  .hp-stories__title {
    font-size: 24px;
    font-style: normal;
    line-height: 20px;
    letter-spacing: 0;
    margin-bottom: 15px;
    text-box-trim: trim-both;
  }
  .hp-stories__city {
    font-size: 18px;
    line-height: 18px;
    letter-spacing: 0;
    margin-bottom: 8px;
  }
  .hp-stories__subtitle { font-size: 14px; width: 80%; line-height: 20px; letter-spacing: 0; text-box-trim: trim-both; text-box-edge: cap alphabetic;}
  .hp-section-header__title {
    font-size: 24px;
    line-height: 20px;
    text-align: left;
  }
  .hp-process__grid {
    gap: 40px;
  }
  .hp-section-header__desc {
    max-width: 79%;
    margin-inline: 0px;
    font-family: "Geist";
    font-weight: 400;
    font-style: normal;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
    text-align: left;
  }
  .hp-stories__quote p {
    font-family: var(--hp-geist);
    font-size: 14px;
    line-height: 20px;
    color: var(--esd-lgray);
    width: 84%;
    font-weight: 300;
    letter-spacing: 0;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
  }
  .hp-process__num {
    font-size: 20px;
    line-height: 20px;
  }
  .hp-process__step-title {
    font-family: var(--hp-news);
    font-weight: 400;
    font-style: normal;
    font-size: 18px;
    line-height: 32px;
    letter-spacing: 0;
  }

  .hp-process__step-desc {
    font-family: "Geist";
    font-weight: 300;
    font-style: normal;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
    width: 76%;
    margin: 0;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
  }
  .hp-stories__name {
    font-family: var(--hp-news);
    font-size: 16px;
    font-style: italic;
    font-weight: 500;
    line-height: 16px;
    letter-spacing: 0;
    margin: 0px;
  }
  .hp-stories__watch {
    font-weight: 400;
    font-style: normal;
    font-size: 12px;
    text-box-trim: trim-both;
    line-height: 100%;
    letter-spacing: 2%;
    text-transform: uppercase;
  }
}

@media screen and (max-width: 1280px) and (max-height: 720px) {
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    padding: clamp(26px, 1vw, 140px) 0 !important;
  }
}
@media screen and (max-width: 1280px){
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    padding: clamp(26px, 1vw, 140px) 0 !important;
  }
  .ss-hero__title {
    font-size: 48px;
    width: 400px;
  }
}
/* RESPONSIVE — LARGE DESKTOP  ≥ 1440px */
@media only screen
and (min-width: 1366px)
and (min-height: 768px){
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find{
    padding: clamp(35px, 1vw, 140px) 0;
  }
  .hp-commit__cta-body {
    max-width: 87%;
  }
  .hp-commit__desc, .hp-commit__desc p {
    max-width: 94%;
  }
}
@media (min-width: 1440px) {
  :root { --hp-pad-x: 80px; }
  .hp-hero { padding-bottom: 110px; }
  .hp-hero__inner { padding-inline: 40px; }
  .hp-process { padding: 80px 0; }
  .hp-about__image-lg { aspect-ratio: 3.65 / 4; height: 800px; }
  .hp-stories { padding: 120px 0; }
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find{
    padding: clamp(44px, 1vw, 140px) 0;
    background-repeat: no-repeat;
  }
}

@media (min-width: 1680px) {
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find{
    padding: clamp(80px, 1vw, 110px) 0 !important;
  }
}
/* RESPONSIVE — VERY LARGE DESKTOP  ≥ 1920px */
/* 1920px – 2239px */
@media (min-width: 1920px) {
  :root { --hp-max-w: 1700px; --hp-pad-x: 90px; }

  .hp-about__image-lg { height: 920px; }
  .hp-loc-card__img-wrap { height: 340px; }

  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    padding: clamp(120px, 2vw, 110px) 0 !important;
  }
  .hp-commit__cta-body {
    max-width: 60%;
  }
  .hp-commit__checklist li {
    max-width: 61%;
  }
  .hp-commit__desc, .hp-commit__desc p {
    max-width: 79%;
  }
  .hp-commit__col--cta .hp-btn--pri {
    max-width: 70%;
  }
  .hp-btn--outline {
    max-width: 70%;
  }
  .hiw-find__bump {
    position: relative;
    width: 14%;
    height: 120px !important;
  }
}

/* 2240px (fills the viewport to ~89% to match Figma proportions) */
@media (min-width: 2240px) {
  :root { --hp-max-w: 1980px; --hp-pad-x: 100px; }

  .hp-about__image-lg { height: 990px; }
  .hp-loc-card__img-wrap { height: 360px; }
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    padding: clamp(167px, 2vw, 110px) 0 !important;
  }
  .page-template-location-new .hp-commit {
    padding-left: 160px;
    padding-right: 160px;
  }

}

/* 2560px */
@media (min-width: 2560px) {
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    padding: clamp(211px, 2vw, 110px) 0 !important;
  }
  :root { --hp-max-w: 2260px; --hp-pad-x: 115px; }

  .hp-about__image-lg { height: 1080px; }
  .hp-loc-card__img-wrap { height: 390px; }
  .page-template-location-new .hp-commit {
    padding-left: 180px;
    padding-right: 180px;
  }
}

/* 2880px */
@media (min-width: 2880px) {
  :root { --hp-max-w: 2520px; --hp-pad-x: 126px; }

  .hp-about__image-lg { height: 1160px; }
  .hp-loc-card__img-wrap { height: 418px; }
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    padding: clamp(261px, 2vw, 110px) 0 !important;
  }
  .page-template-location-new .hp-commit {
    padding-left: 200px;
    padding-right: 200px;
  }
}

/* 3200px */
@media (min-width: 3200px) {
  :root { --hp-max-w: 3020px; --hp-pad-x: 148px; }

  .hp-about__image-lg { height: 1300px; }
  .hp-loc-card__img-wrap { height: 448px; }
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    padding: clamp(318px, 2vw, 110px) 0 !important;
  }
  .page-template-location-new .hp-commit {
    padding-left: 220px;
    padding-right: 220px;
  }
}

/* 3840px */
@media (min-width: 3840px) {
  :root { --hp-max-w: 3360px; --hp-pad-x: 168px; }

  .hp-about__image-lg { height: 1440px; }
  .hp-loc-card__img-wrap { height: 480px; }
  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    padding: clamp(404px, 2vw, 110px) 0 !important;
  }
  .footer-watermark {
    right: 4% !important;
    top: 4.5vw;
    bottom: auto;
  }
  .footer-intro {
    width: 100%;
    max-width: 100% !important;
  }
  .footer-links-row {
    gap: 10% !important;
  }
}

/* ACCESSIBILITY — focus styles */
.hp-main :focus-visible {
  outline: 3px solid var(--hp-orange);
  outline-offset: 3px;
  border-radius: 2px;
}
.hp-btn:focus-visible { outline-offset: 4px; }

/* REDUCE MOTION */
@media (prefers-reduced-motion: reduce) {
  .hp-ticker__track { animation: none; -webkit-animation: none; }

  .hp-loc-card__img-wrap img,
  .hp-loc-card,
  .hp-btn { transition: none; }
}

/* SITE HEADER  –  Production CSS */

/* HEADER / CONTAINER / LOGO */
#site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  border-bottom: 1px solid rgba(255, 255, 255, .15);
  transition: background .3s ease, backdrop-filter .3s ease, -webkit-backdrop-filter .3s ease, box-shadow .3s ease;
}

/* Solid dark background on hover whurl(../../../../../../../../../../../Desktop/Simulator Screenshot - iPhone 15 Pro Max - 2026-07-27 at 20.25.53.png)ile still at the top of the page
   (pre-scroll only) — unchanged from before. Gives the desktop dropdown
   menus a readable backdrop without waiting for the user to scroll. */
#site-header:hover {
  background: var(--hp-dark);
  box-shadow: 0 2px 20px rgba(0, 0, 0, .3);
}

/* Fixed/scrolled header ("Home Menu Fixed" / "Mobile Menu - Fixed" in
   Figma) — frosted glass instead of a solid black bar: a semi-transparent
   dark overlay plus a backdrop blur, so page content stays subtly visible
   behind it. Blur (25px) matches the Figma "Rectangle 6" background-blur
   layer exactly; opacity is bumped up from Figma's literal 35% to 65% —
   at 35% the header reads as pale gray with weak white-text contrast once
   it's scrolled over any light/cream section of the page (Figma's value
   was presumably only checked against a dark hero image behind it).
   Declared after :hover so this wins whenever both apply (scrolled AND
   hovered). Shared by desktop and phone (≤767px) — see the tablet-only
   override further down that keeps 768–1024px on its own always-solid
   header. */
#site-header.scrolled {
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(25px);
  -webkit-backdrop-filter: blur(25px);
  box-shadow: 0 2px 20px rgba(0, 0, 0, .3);
}

/* Browsers with no backdrop-filter support at all (e.g. older Firefox)
   never blur the content behind the header, so contrast/legibility can't
   rely on that blur — fall back to a near-opaque background instead. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  #site-header.scrolled {
    background: rgba(0, 0, 0, 0.35);
  }
}

.header-container {
  width: 100%;
  max-width: 100%;
  height: 82px;
  padding: 0 clamp(20px, 3vw, 80px);
  display: flex;
  align-items: center;
  transition: height .3s ease;
}

/* Compact fixed-header height per Figma — shorter than the initial
   82px header once .scrolled is applied. Desktop only (≥1025px); the
   always-dark mobile/tablet header below is untouched. */
#site-header.scrolled .header-container {
  height: 64px;
}

.header-logo {
  flex: 0 0 20%;
  min-width: 180px;
  display: flex;
  align-items: center;
}

.header-logo img {
  width: 100%;
  max-width: 185px;
  height: 50px;
  display: block;
  transition: max-width .3s ease, height .3s ease;
}

/* Smaller logo in the fixed/compact header state — same aspect ratio,
   scaled down to match the reduced header height. */
#site-header.scrolled .header-logo img {
  max-width: 144px;
  height: 40px;
}

/* DESKTOP NAVIGATION */
.header-menu {
  flex: 1;
  display: flex;
  justify-content: center;
}

.main-menu {
  display: flex;
  align-items: center;
  gap: clamp(18px, 1.3vw, 40px);
  list-style: none;
  margin: 0;
  padding: 0;
}

.main-menu li { margin: 0; position: relative; }

.main-menu a {
  color: #fff;
  text-decoration: none;
  font-size: clamp(13px, .75vw, 16px);
  font-weight: 400;
  white-space: nowrap;
  transition: color .3s ease;
}

.main-menu a:hover,
.main-menu .current-menu-item > a {
  color: var(--hp-orange);
}

/* 2b. DESKTOP DROPDOWN (Locations, etc.) */
.main-menu li.menu-item-has-children > a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.main-menu li.menu-item-has-children > a::after {
  content: '';
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: -3px;
  transition: transform .25s ease;
  flex-shrink: 0;
}

.main-menu li.menu-item-has-children:hover > a::after,
.main-menu li.menu-item-has-children.sub-menu-open > a::after {
  transform: rotate(225deg);
  margin-top: 3px;
}

.main-menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  min-width: 230px;
  background: var(--hp-dark);
  border-radius: 10px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
  list-style: none;
  margin: 0;
  padding: 10px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(8px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
  z-index: 10000;
}

.main-menu li.menu-item-has-children:hover > .sub-menu,
.main-menu li.menu-item-has-children:focus-within > .sub-menu,
.main-menu li.menu-item-has-children.sub-menu-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.main-menu .sub-menu li { margin: 0; }

.main-menu .sub-menu a {
  display: block;
  padding: 11px 16px;
  border-radius: 6px;
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 400;
  white-space: nowrap;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
}

.main-menu .sub-menu a:hover,
.main-menu .sub-menu a:focus-visible,
.main-menu .sub-menu .current-menu-item > a,
.main-menu .sub-menu .current_page_item > a {
  background: rgba(236, 105, 33, .15);
  color: var(--hp-orange);
}

.main-menu .current-menu-parent > a,
.main-menu .current-menu-ancestor > a {
  color: var(--hp-orange);
}

/* PHONE (desktop/tablet) */
.header-phone {
  flex: 0 0 20%;
  min-width: 220px;
  height: 82px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-right: 20px;
  background: #9B9B9B29;
}

.header-phone a {
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: clamp(13px, .75vw, 16px);
  white-space: nowrap;
}

.header-phone i { font-size: 14px; font-weight: 600; }

@media (min-width: 1025px) {
  #site-header.scrolled .header-phone {
    /* background: var(--hp-dark); */
    box-shadow: 0 2px 20px rgba(0, 0, 0, .3);
    height: 64px;
    backdrop-filter: blur(15px);
  }
}

/* LARGE DESKTOP / 2K / 4K OVERRIDES */
@media (min-width: 1600px) {
  .header-container { height: 90px; padding: 0 80px; }
  .header-logo img  { max-width: 260px; }
  .main-menu        { gap: 45px; }
  .main-menu a      { font-size: 16px; }
  .header-phone     { height: 90px; }
  .header-phone a   { font-size: 16px; }

  /* Compact fixed-header state — same ~22% reduction applied at every
     breakpoint tier so it stays proportional to that tier's base size. */
  #site-header.scrolled .header-container,
  #site-header.scrolled .header-phone { height: 70px; }
  #site-header.scrolled .header-logo img { max-width: 200px; }
}

@media (min-width: 2560px) {
  .header-container { height: 100px; padding: 0 120px; }
  .header-logo      { flex-basis: 22%; }
  .header-logo img  { max-width: 320px; }
  .main-menu        { gap: 60px; }
  .main-menu a,
  .main-menu li a   { font-size: 26px; }
  .header-phone     { flex-basis: 22%; height: 100px; }
  .header-phone a   { font-size: 18px; }
  .header-phone i   { font-size: 24px; }

  #site-header.scrolled .header-container,
  #site-header.scrolled .header-phone { height: 78px; }
  #site-header.scrolled .header-logo img { max-width: 248px; }
}

@media (min-width: 3840px) {
  .header-container { height: 120px; padding: 0 180px; }
  .header-logo img  { max-width: 420px; }
  .main-menu        { gap: 80px; }
  .header-phone     { height: 120px; }
  .header-phone a   { font-size: 26px; }

  #site-header.scrolled .header-container,
  #site-header.scrolled .header-phone { height: 94px; }
  #site-header.scrolled .header-logo img { max-width: 328px; }
}

/* MOBILE ACTIONS (CALL US / MENU bar) */
.mobile-actions { display: none; }

/* !important is required here: without it a less-specific `div { display:block }` */
#mobile-menu {
  display: none !important;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 99999;
  flex-direction: column;
  overflow-y: auto;
  background: var(--hp-dark);
}

#mobile-menu.active {
  display: flex !important;
  animation: esd-menu-in .35s ease forwards;
}

#mobile-menu.is-closing {
  display: flex !important;
  animation: esd-menu-out .3s ease forwards;
}

@keyframes esd-menu-out {
  from { transform: translateX(0); }
  to   { transform: translateX(100%); }
}

@media (max-width: 1024px) {

  #site-header {
    background: var(--hp-dark);
  }

  .header-menu,
  .header-phone { display: none !important; }

  .header-logo        { flex: 1; }
  .header-logo img    { max-width: 180px; }

  .mobile-actions {
    display: flex !important;
    align-items: center;
    margin-left: auto;
    height: 82px;
    width: 47%;
    transition: height .3s ease;
  }

  .mobile-call,
  .mobile-menu-btn {
    width: 110px;
    height: 82px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #E7E7E7;
    text-decoration: none;
    font-size: 14px;
    font-weight: 400;
    font-style: normal;
    letter-spacing: .5px;
    background: transparent;
    font-family: var(--hp-geist);
    border: none;
    border-right: 1px solid rgba(255, 255, 255, .15);
    cursor: pointer;
    text-transform: uppercase;
    transition: height .3s ease;
  }
  .mobile-menu-btn {
    border-right: none;
  }
  .mobile-call:focus-visible,
  .mobile-menu-btn:focus-visible {
    outline: 2px solid var(--hp-orange);
    outline-offset: -2px;
  }
}

/* Tablet only (768–1024px): keeps the pre-existing always-solid header at
   every scroll position — no Figma spec calls for changing this tier, so
   it's carved out of both the shared :hover/.scrolled frosted-glass rule
   above and the phone-specific compact/blur treatment below. */
@media (min-width: 768px) and (max-width: 1024px) {
  #site-header:hover,
  #site-header.scrolled {
    background: var(--hp-dark) !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: 0 2px 20px rgba(0, 0, 0, .3);
  }
}

@media (max-width: 576px) {
  .header-logo img  { max-width: 123px; height: 33px; }
  .mobile-call,
  .mobile-menu-btn  { width: 85px; font-size: 12px; line-height: 100%; letter-spacing: 0;}
}

@media (max-width: 767px) {
  #site-header {
    background: transparent;
  }

  /* Phone fixed/scrolled header ("Mobile Menu - Fixed" in Figma) — the
     shared #site-header.scrolled frosted-glass rule above already supplies
     the right background/blur here (phones are outside the 768–1024px
     tablet carve-out), so this only adds the Figma-specified compact
     48px bar height and a matching smaller logo. */
  #site-header.scrolled .mobile-actions,
  #site-header.scrolled .mobile-call,
  #site-header.scrolled .mobile-menu-btn {
    height: 48px;
  }

  #site-header.scrolled .header-logo img {
    max-width: 104px;
    height: 28px;
  }
}

/* MOBILE FULL-SCREEN MENU */

@keyframes esd-menu-in {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}

.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px clamp(20px, 6vw, 34px);
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  flex-shrink: 0;
}

.mobile-menu-header img {
  max-width: 160px;
  height: auto;
}

.mobile-close-btn {
  background: transparent;
  border: none;
  color: #fff;
  font-family: var(--hp-news);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  padding: 8px;
  line-height: 1;
}

.mobile-close-btn:hover,
.mobile-close-btn:focus-visible {
  color: var(--hp-orange);
}

/* MOBILE MENU LIST (numbered nav items) */
.mobile-menu-list {
  list-style: none;
  margin: 0;
  padding: 8px clamp(20px, 6vw, 34px) 24px;
  counter-reset: mobile-menu-item;
  flex-shrink: 0;
}

.mobile-menu-list > li {
  counter-increment: mobile-menu-item;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  position: relative;
}

.mobile-menu-list > li > a {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 22px 0;
  color: var(--esd-lgray, #d5d5d5);
  text-decoration: none;
  font-family: var(--hp-news, Georgia, serif);
  font-size: clamp(22px, 7vw, 30px);
  font-weight: 400;
  line-height: 1.1;
  transition: color .2s ease;
}

.mobile-menu-list > li > a::before {
  content: counter(mobile-menu-item, decimal-leading-zero);
  font-family: var(--hp-news, system-ui, sans-serif);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .5px;
  color: var(--hp-orange, #ec6921);
  flex-shrink: 0;
}

.mobile-menu-list li a:hover,
.mobile-menu-list li a:focus-visible,
.mobile-menu-list .current-menu-item > a,
.mobile-menu-list .current_page_item > a,
.mobile-menu-list .current-menu-parent > a,
.mobile-menu-list .current-menu-ancestor > a {
  color: var(--hp-orange, #ec6921);
}

/* 7b. MOBILE SUBMENU (Locations, etc.) */
.mobile-menu-list > li.has-submenu > a {
  padding-right: 48px;
}

.mobile-submenu-toggle {
  position: absolute;
  right: 0;
  top: 12px;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: var(--esd-lgray, #d5d5d5);
  font-size: 14px;
  cursor: pointer;
  transition: transform .25s ease, color .2s ease;
}

.mobile-submenu-toggle:hover,
.mobile-submenu-toggle:focus-visible {
  color: var(--hp-orange, #ec6921);
}

.mobile-menu-list > li.submenu-open .mobile-submenu-toggle {
  transform: rotate(180deg);
  color: var(--hp-orange, #ec6921);
}

.mobile-menu-list .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}

.mobile-menu-list > li.submenu-open > .sub-menu {
  max-height: 1000px;
}

.mobile-menu-list .sub-menu li {
  border-bottom: none;
}

.mobile-menu-list .sub-menu li a {
  display: block;
  padding: 13px 0 13px 18px;
  font-family: var(--hp-news, system-ui, sans-serif);
  font-size: clamp(15px, 4.2vw, 17px);
  font-weight: 400;
  line-height: 1.3;
  color: var(--esd-lgray, #d5d5d5);
  text-decoration: none;
  transition: color .2s ease;
}

.mobile-menu-list .sub-menu li a::before { content: none; }

.mobile-menu-list .sub-menu li a:hover,
.mobile-menu-list .sub-menu li a:focus-visible,
.mobile-menu-list .sub-menu .current-menu-item > a,
.mobile-menu-list .sub-menu .current_page_item > a {
  color: var(--hp-orange, #ec6921);
}

/* MOBILE SOCIAL ICONS */
.mobile-social {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 16px;
  padding: 8px clamp(20px, 6vw, 34px) 32px;
  margin-top: auto;
  flex-shrink: 0;
}

.mobile-social a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hp-dark, #1b2014);
  font-size: 14px;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
}

.mobile-social a:hover,
.mobile-social a:focus-visible {
  background: var(--hp-orange, #ec6921);
  color: #fff;
}

/* Body scroll lock while mobile menu is open */
body.menu-open { overflow: hidden; }

/* ACCESSIBILITY */
@media (prefers-reduced-motion: reduce) {
  #mobile-menu.active { animation: none; }
}

/* FOOTER SHELL */
.esd-footer {
  background: var(--hp-dark);
  position: relative;
  overflow: hidden;

}

/* FOOTER CONTENT */

.footer-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  margin-top: 13px;
  padding: 40px 24px 48px;
}

/* FOOTER INTRO */

.footer-intro {
  order: 3;
  max-width: 100%;
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-intro h3 {
  margin: 0 0 14px;
  font-family: 'Newsreader', Georgia, serif;
  font-size: 18px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.4;
}

.footer-intro p {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 300;
  font-size: 14px;
  line-height: 22px;
}

/* FOOTER NAV ROW */

.footer-links-row {
  order: 1;
  display: flex;
  flex-direction: column;
  gap: 36px;
  margin-top: 0;
}

.footer-links-group h4,
.footer-contact-group h4 {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 20px;
  font-weight: 400;
  color: #ffffff;
  margin: 0 0 22px;
  line-height: 1.3;
}

/* FOOTER LINK COLUMNS */

.footer-link-cols {
  display: flex;
  gap: 32px;
}

.footer-link-cols ul {
  list-style: none;
  padding: 3px;
  margin: 0;
}

.footer-link-cols li {
  margin-bottom: 14px !important;
}

.footer-link-cols li a {
  color: rgba(255, 255, 255, 0.7);
  font-size: 15px;
  line-height: 1.6;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-link-cols li a:hover,
.footer-link-cols li a:focus-visible {
  color: #ec6921;
}

/* FOOTER CONTACT GROUP */
/* .footer-contact-group h4 {

} */

.footer-contact-group p {
  color: #b8b8b0;
  font-size: 14px;
  line-height: 1.4;
  margin: 0 0 14px;
}

.footer-contact-group p a {
  color: #b8b8b0;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-contact-group p a:hover,
.footer-contact-group p a:focus-visible {
  color: #ec6921;
}

/* FOOTER SOCIAL ICONS */
.footer-socials {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 28px;
}

.footer-socials a {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #b8b8b0;
  font-size: 13px;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.footer-socials a:hover,
.footer-socials a:focus-visible {
  background: var(--hp-orange);
  border-color: #ec6921;
  color: #fff;
}

/* FOOTER COPYRIGHT */
.footer-copyright {
  order: 4;
  margin-top: 28px;
  color: rgba(255, 255, 255, 0.5);
  font-family: var(--hp-news);
  font-size: 14px;
  line-height: 1.5;
}

/* FOOTER WATERMARK */
.footer-watermark {
  position: absolute;
  bottom: 60px !important;
  z-index: 1;
  font-family: var(--hp-serif);
  font-weight: 400;
  font-size: 150px;
  user-select: none;
  margin-top: 24px;
}
.footer-watermark span {
  display: block;
  margin: auto;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 300;
  font-size: 163px !important;
  line-height: 0.83;
  letter-spacing: -3px;
  top: 0px;
  color: rgba(225, 225, 225, 0.48);
}

.footer-watermark span:last-child {
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 40%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 0%, black 40%, transparent 100%);
}

/* RESPONSIVE — TABLET (768–1199px) */
@media (min-width: 768px) {

  .footer-content {
    padding: 50px 40px 50px;
  }

  .footer-intro {
    order: 0;
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    max-width: 480px;
  }

  .footer-intro h3 {
    font-size: 20px;
  }

  .footer-intro p {
    font-size: 15px;
    line-height: 23px;
  }

  .footer-links-row {
    order: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0px;
    margin-top: 60px;
    font-family: var(--hp-geist);
    margin-right: 80px;
  }
  .footer-links-group h4,
  .footer-contact-group h4 {
    font-size: 22px;
    margin-bottom: 28px;
  }
  .footer-link-cols {
    display: flex;
    gap: 32px !important;
  }

  .footer-link-cols li {
    margin-bottom: 16px;
  }

  .footer-link-cols li a {
    font-size: 16px;
  }

  .footer-contact-group p {
    font-size: 15px;
    margin-bottom: 16px;
  }

  .footer-socials {
    margin-top: 32px;
    gap: 13px;
  }

  .footer-socials a {
    width: 38px;
    height: 38px;
    font-size: 14px;
  }

  .footer-copyright {
    order: 0;
    margin-top: 60px;
    font-size: 15px;
  }

  .footer-watermark {
    right: -30px;
    bottom: auto;
    top: 60px;
  }

  .footer-watermark span {
    font-size: 150px;
    letter-spacing: -4px;
  }
}

@media (max-width: 767px) {
  .footer-watermark {
    position: relative !important;
    margin-top: 30px;
    padding-left: 20px;
  }
  .footer-watermark span {
    font-size: 96px !important;
  }

  .footer-link-cols li a {
    font-family: "Geist";
    font-weight: 400;
    font-style: normal;
    font-size: 14px;
    line-height: 160%;
    letter-spacing: 0;
    text-align: center;
  }

  .footer-links-group h4,
  .footer-contact-group h4 {
    font-size: 18px;
    line-height: 18px;
  }

  .footer-intro h3 {
    margin: 0 0 14px;
    font-family: 'Newsreader', Georgia, serif;
    font-size: 16px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.7);
    line-height: 22px;
    width: 80%;
  }
  .footer-intro p {
    font-family: "Geist";
    font-weight: 300;
    font-style: normal;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 0;
    width: 72%;
  }
  .footer-copyright {
    order: 4;
    margin-top: 28px;
    color: rgba(255, 255, 255, 0.5);
    font-size: 12px;
    line-height: 18px;
    width: 55%;
  }
}
/* DESKTOP FOOTER — single fluid block, ≥ 1200px */

/* DESKTOP BASE (≥ 1200px) */
@media (min-width: 1200px) {

  .esd-footer {
    height: auto;
    min-height: 560px;
  }

  .footer-content {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    /* padding-left: var(--hp-pad-x, 60px); */
    /* padding-right: var(--hp-pad-x, 60px); */
    padding-top: 3.2vw;
    padding-bottom: 2.8vw;
  }

  .footer-intro {
    width: 100%;
    max-width: 40%;
  }

  .footer-intro h3 {
    font-size: clamp(16px, 1.4vw, 20px);
    margin-bottom: 0.7vw;
  }

  .footer-intro p {
    font-size: clamp(13px, 1.05vw, 16px);
    line-height: 1.5;
  }

  .footer-links-row {
    flex-wrap: nowrap;
    gap: 0;
    margin-top:   3.2vw;
    margin-right: 0;
  }

  .footer-links-group {
    margin-right: 5vw;
    flex-shrink: 0;
  }

  .footer-contact-group {
    margin-left: 0;
    flex-shrink: 0;
  }

  .footer-links-group h4,
  .footer-contact-group h4 {
    font-size: clamp(16px, 1.5vw, 24px);
    line-height: 1.333;
    margin-bottom: 1.8vw;
  }

  .footer-link-cols {
    gap: 3.5vw;
  }

  .footer-link-cols li {
    margin-bottom: 1.2vw;
  }

  .footer-link-cols li a {
    font-size: clamp(12px, 1vw, 16px);
  }

  .footer-contact-group p {
    font-size: clamp(13px, 1.1vw, 16px);
    margin-bottom: 1vw;
  }

  .footer-socials {
    margin-top: 1.6vw;
    gap: 0.9vw;
  }

  .footer-socials a {
    width:     clamp(34px, 2.6vw, 72px);
    height:    clamp(34px, 2.6vw, 72px);
    font-size: clamp(12px, 1vw, 20px);
  }

  .footer-copyright {
    margin-top: 3vw;
    font-size:  clamp(12px, 0.95vw, 16px);
  }

  .footer-watermark {
    right:  0%;
    top:    4.5vw;
    bottom: auto;
  }

  .footer-watermark span {
    font-size:      clamp(110px, 11vw, 270px) !important;
    line-height:    0.83;
    letter-spacing: -5px;
    margin-right:   0;
  }
}

/* ACCESSIBILITY / REDUCED MOTION */
.esd-footer :focus-visible {
  outline: 3px solid #ec6921;
  outline-offset: 3px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .footer-link-cols li a,
  .footer-contact-group p a,
  .footer-socials a {
    transition: none;
  }
}

/* LOCATION PAGE  –  loc- prefix */

/* BODY SCROLL LOCK (modal) */
body.loc-modal-open { overflow: hidden; }

/* CITY SECTION */
.loc-city {
  background: var(--hp-cream4);
  padding: 110px 0;
  border-bottom: 1px solid #9B9B9B4D;
}

.loc-city__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1fr;
  gap: 30px;
  align-items: start;
}

.loc-city__heading h2 {
  font-family: var(--hp-news);
  font-size: 52px;
  font-weight: 400;
  line-height: 64px;
  letter-spacing: 0.02em;
  color: var(--hs-subtcol);
  max-width: 620px;
  margin: 0;
}

.loc-city__heading h2 span {
  color: var(--hp-orange);
  font-style: italic;
}

/* Middle column */
.loc-city__middle {
  display: flex;
  flex-direction: column;
  gap: 50px;
}

.loc-city__intro {
  font-family: var(--hp-geist);
  font-style: normal;
  font-size: 18px;
  font-weight: 300;
  line-height: 28px;
  color: var(--esd-dgray);
  letter-spacing: 0%;
  text-box-edge: cap alphabetic;
}
.loc-city__intro p { margin: 0; color: var(--esd-dgray); }

.loc-city__features {
  border-left: 2px solid var(--hp-orange);
  padding-left: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.loc-city__feature {
  font-family: var(--hp-geist);
  font-style: normal;
  font-size: 18px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0%;
  color: var(--esd-dgray);
  text-box-edge: cap alphabetic;
}

.loc-city__feature:nth-child(3) {
  margin-top: 12px;
}

/* Right column */
.loc-city__right {
  font-family: var(--hp-geist);
  font-size: 18px;
  line-height: 28px;
  font-weight: 300;
  letter-spacing: 0%;
  color: var(--esd-dgray);
}
.loc-city__right p { margin: 0 0 50px; color: var(--esd-dgray); font-weight: 300;}

.loc-city__content-italic {
  font-style: italic;
  font-weight: 500;
}
.loc-city__content-italic p {
  margin: 0 0 24px;
  color: var(--esd-dgray);
  font-weight: 500;
  font-size: 18px;
  font-style: italic;
  line-height: 28px;
  letter-spacing: 0%;
}
.loc-city__right em {
  display: block;
  margin-top: 32px;
  font-family: var(--hp-news);
  font-style: italic;
  font-size: 24px;
  line-height: 1.5;
  color: #444;
}

@media (max-width: 1199px) {
  .loc-city { padding: 80px 0; }
  .loc-city__grid { gap: 30px; }
  .loc-city__heading h2 { font-size: clamp(28px, 3.5vw, 40px); }
  .loc-city__heading-break {
    display: none;
  }
}

@media (max-width: 991px) {
  .loc-city__grid { grid-template-columns: 1fr; gap: 36px; }
  .loc-city__heading h2 { font-size: 40px; max-width: 100%; }
  .loc-city__intro { font-size: 16px; }
  .loc-city__right { font-size: 16px; }
  .loc-city__right em { font-size: 20px; }
}

@media (max-width: 767px) {
  .loc-city { padding: 60px 0; border-bottom: 1px solid #9B9B9B4D;}
  .loc-city__heading h2 { font-size: 24px; line-height: 30px; letter-spacing: 0%;}
  .loc-city__grid { gap: 24px; }
  .loc-city__middle,
  .loc-city__right {
    display: contents;
  }
  .loc-city__intro { order: 2; }
  .loc-city__location-content { order: 3; }
  .loc-city__features { order: 4; }
  .loc-city__content-italic { order: 5; }
}

@media (max-width: 480px) {
  .loc-city__heading h2 {
    font-size: 22px;
    max-width: 300px;
  }
  .loc-city { padding: 20px 0; border-bottom: 1px solid #9B9B9B4D;}
}

/* GRAVITY FORMS – Global required-fields legend removal */
.gform_wrapper .gform_required_legend,
.gform_wrapper .gfield_required_legend,
.gform_required_legend,
.gform_legend {
  display: none !important;
}

/* GRAVITY FORMS – Hide the honeypot / anti-spam field */
.gform_validation_container,
.gfield--type-honeypot,
.gform_wrapper .gform_validation_container,
.gform_wrapper .gfield--type-honeypot {
  display: none !important;
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* CONSULTATION MODAL */
.loc-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
  display: none !important;
  align-items: center;
  justify-content: center;
  z-index: 999999;
  padding: 20px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.loc-modal.is-open {
  display: flex !important;
}

.loc-modal__box {
  background: #F5F1EA;
  width: 100%;
  max-width: 32%;
  border-radius: 12px;
  padding: 52px 52px 48px;
  position: relative;
  animation: locModalIn 0.36s cubic-bezier(0.34, 1.45, 0.64, 1) both;
  max-height: 90vh;
  overflow-y: auto;
}
/* Home Desktop / Location Desktop (Figma "Home - Modal CTA", node 169:81):
   a compact 448x391 card, not a wide percentage-based panel. */
.page-template-page-templateslocation-new-php .loc-modal__box,
.page-template-page-templateshomepage-php .loc-modal__box {
  max-width: 448px;
  background: var(--hp-cream4);
  border-radius: 16px;
  padding: 32px 24px;
}
@keyframes locModalIn {
  from { opacity: 0; transform: translateY(22px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.loc-modal__close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 38px;
  height: 38px;
  border-radius: 9px;
  border: 2px solid var(--hp-orange);
  background: transparent;
  font-size: 15px;
  cursor: pointer;
  color: #4a4a44;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  line-height: 1;
}
.loc-modal__close:hover {
  background: var(--hp-orange);
  border-color: var(--hp-orange);
  color: #fff;
}

.loc-modal__title {
  font-family: var(--hp-news);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.25;
  color: #1b1b18;
  margin: 0 0 10px;
}
.loc-modal__title em { font-style: italic; }

.loc-modal__desc {
  font-family: var(--hp-geist);
  font-size: 14px;
  line-height: 1.65;
  color: #4a4a44;
  margin: 0 0 28px;
}

/* Home Desktop / Location Desktop (Figma node 169:81): a plain, unboxed
   close mark, and smaller title/description sizes than the generic
   site-wide modal. Scoped to >= 768px so these (higher-specificity,
   two-class) selectors can't outrank the plain single-class mobile
   overrides in the "@media (max-width: 767px)" block below. */
@media (min-width: 768px) {
  .page-template-page-templateslocation-new-php .loc-modal__close,
  .page-template-page-templateshomepage-php .loc-modal__close {
    top: 24px;
    right: 24px;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 0;
    background: transparent;
    font-size: 20px;
    color: #151515;
  }
  .page-template-page-templateslocation-new-php .loc-modal__close:hover,
  .page-template-page-templateshomepage-php .loc-modal__close:hover {
    background: transparent;
    border-color: transparent;
    color: var(--hp-orange);
  }

  .page-template-page-templateslocation-new-php .loc-modal__title,
  .page-template-page-templateshomepage-php .loc-modal__title {
    font-size: 24px;
    margin-bottom: 8px;
  }

  .page-template-page-templateslocation-new-php .loc-modal__desc,
  .page-template-page-templateshomepage-php .loc-modal__desc {
    font-size: 16px;
    line-height: 1.3;
    color: #4d4d4d;
    margin-bottom: 24px;
  }
}

/* Gravity Form inside modal */
.loc-modal__box .gform_wrapper { margin: 0 !important; padding: 0 !important; }
.loc-modal__box .gform_body { margin-bottom: 0 !important; }
.loc-modal__box .gfield { margin-bottom: 6px !important; padding: 0 !important; }
.loc-modal__box .gfield_label { display: none !important; }
.loc-modal__box .ginput_container { margin-top: 0 !important; }

.loc-modal__box input[type="text"],
.loc-modal__box input[type="email"],
.loc-modal__box input[type="tel"],
.loc-modal__box input[type="number"],
.loc-modal__box textarea,
.loc-modal__box select {
  width: 100% !important;
  border: none !important;
  border-bottom: 1.5px solid rgba(0, 0, 0, 0.14) !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 14px 2px !important;
  font-size: 14px !important;
  font-family: Geist, serif !important;
  color: #1b1b18 !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.2s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.loc-modal__box input[type="text"]:focus,
.loc-modal__box input[type="email"]:focus,
.loc-modal__box input[type="tel"]:focus,
.loc-modal__box textarea:focus {
  border-bottom-color: var(--hp-orange) !important;
}
.loc-modal__box input::placeholder,
.loc-modal__box textarea::placeholder {
  color: #8c7e6d !important;
  opacity: 1 !important;
}
.loc-modal__box .gform_button,
.loc-modal__box input[type="submit"] {
  display: block !important;
  width: 100% !important;
  background: var(--hp-orange) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 40px !important;
  padding: 16px 30px !important;
  font-size: 14px !important;
  font-family: var(--hp-geist) !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  cursor: pointer !important;
  margin-top: 24px !important;
  transition: background 0.22s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.loc-modal__box .gform_button:hover,
.loc-modal__box input[type="submit"]:hover {
  background: var(--hp-orange-h) !important;
}
.loc-modal__box .gform_validation_errors,
.loc-modal__box .gfield_validation_message,
.loc-modal__box .validation_message {
  color: #c0392b !important;
  font-size: 12px !important;
  margin-top: 4px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}

.loc-modal__box .gform_validation_errors h2,
.loc-modal__box .gform_validation_errors h3,
.loc-modal__box h2.gform_submission_error {
  font-family: var(--hp-news) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  margin: 0 0 12px !important;
  color: #c0392b !important;
}
.loc-modal__box .gform_confirmation_message {
  font-family: var(--hp-geist);
  font-size: 15px;
  color: #2d6a4f;
  text-align: center;
  padding: 24px 0;
  line-height: 1.6;
}
.loc-modal__box .gfield_required { color: var(--hp-orange) !important; }
.loc-modal__box .gform_footer { margin: 0 !important; padding: 0 !important; }

@media (max-width: 767px) {
  .loc-modal__box { padding: 36px 24px 32px; max-width: 100%; }
  .loc-modal__title { font-family: var(--hp-news); font-weight: 400; font-style: normal; font-size: 18px; line-height: 18px; letter-spacing: 0; }
  .loc-modal__desc { width: 92%; font-size: 13px;}
  .loc-modal__box .gform_validation_errors h2,
  .loc-modal__box .gform_validation_errors h3,
  .loc-modal__box h2.gform_submission_error,
  .loc-bs__form .gform_validation_errors h2,
  .loc-bs__form .gform_validation_errors h3,
  .loc-bs__form h2.gform_submission_error {
    font-size: 18px !important;
    line-height: 1.3 !important;
  }
  .page-template-page-templates-location-new-php .loc-modal__box,
  .page-template-page-templates-homepage-php .loc-modal__box,
  .page-template-page-templateslocation-new-php .loc-modal__box,
  .page-template-page-templateshomepage-php .loc-modal__box {
    max-width: 100% !important;
  }

}

@media only screen and (min-width: 360px) and (max-width: 412px) and (orientation: portrait) {
  .loc-modal__close {
    top: 4px;
    right: 4px;
  }
}
/* BOTTOM SHEET  (mobile sticky) */
.loc-bs {
  display: none; /* shown via media query below */
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99998;
  background: #F5F1EA;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.18);
  overflow: hidden;
  transition: transform 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

.loc-bs__handle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  /* Bottom padding grows on notch/home-indicator iPhones so the button
     never sits under that gesture area — env() resolves to 0 on devices
     without a safe-area inset, matching the plain 16px everywhere else. */
  padding: 16px 20px calc(16px + env(safe-area-inset-bottom, 0px));
  cursor: pointer;
}

.loc-bs__brand {
  font-family: var(--hp-geist);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #555;
  flex-shrink: 0;
}

.loc-bs__cta {
  flex-shrink: 0;
  font-size: 12px;
  padding: 12px 20px;
  white-space: nowrap;
}

.loc-bs.is-open .loc-bs__handle {
  display: none;
}

/* Expanded form panel */
.loc-bs__form {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.42s cubic-bezier(0.4, 0, 0.2, 1),
              padding 0.3s ease;
  padding: 0 20px;
}
.loc-bs.is-open .loc-bs__form {
  max-height: 75vh;
  overflow-y: auto;
  padding: 0 20px calc(28px + env(safe-area-inset-bottom, 0px));
}

.loc-bs__form-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  margin-bottom: 10px;
}

.loc-bs__form-title {
  font-family: var(--hp-news);
  font-size: 26px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--esd-dgray);
  margin: 0;
  padding-right: 8px; /* keep text clear of the close button */
}
.loc-bs__form-title em { font-style: italic; }

.loc-bs__close {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  border: 2px solid var(--hp-orange);
  background: transparent;
  font-size: 14px;
  cursor: pointer;
  color: #4a4a44;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.loc-bs__close:hover {
  background: var(--hp-orange);
  border-color: var(--hp-orange);
  color: #fff;
}

.loc-bs__form-desc {
  font-family: var(--hp-news);
  font-size: 14px;
  line-height: 1.6;
  color: #4a4a44;
  margin: 0 0 20px;
}

/* GF inside bottom sheet */
.loc-bs__form .gform_wrapper { margin: 0 !important; padding: 0 !important; }
.loc-bs__form .gfield { margin-bottom: 4px !important; padding: 0 !important; }
.loc-bs__form .gfield_label { display: none !important; }
.loc-bs__form .ginput_container { margin-top: 0 !important; }

.loc-bs__form .gform_validation_errors,
.loc-bs__form .gfield_validation_message,
.loc-bs__form .validation_message {
  color: #c0392b !important;
  font-size: 12px !important;
  margin-top: 4px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}

.loc-bs__form .gform_validation_errors h2,
.loc-bs__form .gform_validation_errors h3,
.loc-bs__form h2.gform_submission_error {
  font-family: var(--hp-news) !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  margin: 0 0 12px !important;
  color: #c0392b !important;
}

.loc-bs__form input[type="text"],
.loc-bs__form input[type="email"],
.loc-bs__form input[type="tel"],
.loc-bs__form input[type="number"],
.loc-bs__form textarea {
  width: 100% !important;
  border: none !important;
  border-bottom: 1.5px solid rgba(0, 0, 0, 0.14) !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 12px 2px !important;
  font-size: 14px !important;
  font-family: Georgia, serif !important;
  color: #1b1b18 !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.loc-bs__form input::placeholder,
.loc-bs__form textarea::placeholder {
  color: #8c7e6d !important;
  opacity: 1 !important;
}
.loc-bs__form .gform_button,
.loc-bs__form input[type="submit"] {
  display: block !important;
  width: 100% !important;
  background: var(--hp-orange) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 40px !important;
  padding: 15px 30px !important;
  font-size: 14px !important;
  font-family: var(--hp-geist) !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  margin-top: 16px !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.loc-bs__form .gform_footer { margin: 0 !important; padding: 0 !important; }
.loc-bs__form .gform_confirmation_message {
  font-size: 14px;
  color: #2d6a4f;
  text-align: center;
  padding: 16px 0;
}

@media (max-width: 767px) {
  .loc-bs { display: block; }

  .loc-bs {
    transform: translateY(100%);
  }
  .loc-bs.is-revealed {
    transform: translateY(0);
  }

.loc-bs.is-footer-hidden:not(.is-open) {
    transform: translateY(100%);
  }

.loc-bs__handle {
    padding: 24px 16px calc(24px + env(safe-area-inset-bottom, 0px));
    gap: 10px;
    justify-content: center;
  }

  /* Figma's "Mobile Menu - Fixed" frame shows only the CTA button in this
     bar — no brand label beside it. Hidden via CSS (rather than removing
     the markup from every page template that renders .loc-bs — about-us,
     faq, how-it-works, location pages, dating advice, homepage, etc. all
     duplicate this same component) so every page stays in sync from one
     place instead of relying on N separate template edits. */
  .loc-bs__brand {
    display: none;
  }

  .loc-bs__cta {
    flex-shrink: 0;
    flex-grow: 0;
    width: 94%;
    max-width: none;
    font-size: 15px;
    line-height: 1.25;
    padding: 16px 24px;
    white-space: normal;
    text-align: center;
  }
  .loc-bs__form-title { font-family: var(--hp-news); font-size: 18px; font-weight: 400; margin-top: 10px; padding-right: 8px; line-height: 18px; letter-spacing: 0; }
  .loc-bs__form-desc { width: 85%; font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: 0;}
}

@media (prefers-reduced-motion: reduce) {
  .loc-bs, .loc-bs__form { transition: none; }
  .loc-modal__box { animation: none; }
}

/* LOCATION PAGE – About section top padding fix */
.page-template-location-new .hp-about {
  padding-bottom: 23px;
}

/* Ensure hp-commit uses the container on location pages */
.page-template-location-new .hp-commit {
  padding-left: var(--hp-pad-x);
  padding-right: var(--hp-pad-x);
}

/* SUCCESS STORIES PAGE  –  ss- prefix */

/* PAGE SHELL */
.ss-page {
  overflow-x: hidden;
}

/* SHARED CONTAINER */

.ss-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: 60px;
  box-sizing: border-box;
}

/* SHARED BUTTON */
.ss-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 32px;
  border: none;
  border-radius: 50px;
  background: var(--hp-orange);
  color: #fff;
  text-decoration: none;
  font-family: var(--hp-geist);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: background 0.25s ease;
}
.ss-btn:hover,
.ss-btn:focus-visible {
  background: var(--hp-orange);
  color: #fff;
}

/* HERO */
.ss-hero {
  position: relative;
  min-height: 100vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  padding-bottom: 90px;
}

.ss-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.38) 45%,
    rgba(0, 0, 0, 0.08) 100%
  );
}

.ss-hero .ss-container {
  position: relative;
  z-index: 2;
}

.ss-hero__content {
  max-width: 680px;
}

.ss-hero__title {
  color: var(--hs-btitle);
  font-family: var(--hp-news);
  font-size: clamp(38px, 3vw, 48px);
  font-weight: 400;
  line-height: 1.07;
  letter-spacing: -0.01em;
  margin: 0 0 32px;
}

.ss-hero__title em,
.ss-hero__title .hero-italic {
  font-style: italic;
  color: var(--hs-btitle);
}

/* TESTIMONIALS */
.ss-testimonials {
  background: var(--hp-cream4);
  padding: 90px 0;
}

/* Carousel scaffold (desktop: transparent pass-through) */
.ss-carousel__swiper {

}

.ss-carousel__controls {
  display: none;
}

/* Desktop: single-column centred list */
.ss-testimonials__list {
  width: 100%;
  max-width: 87%;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Card shell */
.ss-card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  box-sizing: border-box;
}

.ss-card__body {
  padding:  50px 35px;
  font-family: var(--hp-geist);
  font-style: italic;
  font-size: 18px;
  line-height: 1.85;
  color: #3d3d38;
}
.ss-card__body p { margin: 0 0 18px; }
.ss-card__body p:last-child { margin-bottom: 0; }

/* Card footer – avatar + name + quote mark */
.ss-card__footer {
  background: #eeeff2;
  padding: 20px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.ss-card__user {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.ss-card__avatar {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.ss-card__name {
  margin: 0 0 4px;
  font-family: var(--hp-geist);
  font-size: 17px;
  font-weight: 700;
  color: #1b1b18;
  line-height: 1.2;
}

.ss-card__status {
  display: block;
  font-family: var(--hp-geist);
  font-size: 13px;
  color: #777;
  line-height: 1.4;
}

.ss-card__quote {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 94px;
  line-height: 1;
  color: #b0b8c8;
  user-select: none;
  pointer-events: none;
}

/* FIND YOUR MATCH */
.ss-find {
  position: relative;
  padding: clamp(44px, 1vw, 140px) 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.ss-find__overlay {
  position: absolute;
  inset: 0;
  /* background: rgba(0, 0, 0, 0.45); */
}

.ss-find .ss-container {
  position: relative;
  z-index: 2;
}

.ss-find__content {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
}

.ss-find__title {
  color: #fff;
  font-family: var(--hp-news);
  font-size: clamp(28px, 3.5vw, 40px);
  font-weight: 400;
  font-style: normal;
  line-height: 1.15;
  margin: 0 0 12px;
}

.ss-find__desc {
  font-family: var(--hp-news);
  font-size: 16px;
  color: rgba(255, 255, 255, 0.88);
  margin: 0 auto 24px;
  max-width: 480px;
}

/* Gravity Form wrapper */
.ss-find__form .gform_wrapper {
  max-width: 580px;
  margin-inline: auto !important;
  padding: 0 !important;
}

.ss-find__form ul.gform_fields,
.ss-find__form .gform_fields {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
  list-style: none !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
}

/* Full Name spans both columns */
.ss-find__form #field_2_1 {
  grid-column: 1 / -1 !important;
}

/* Hide GF labels */
.ss-find__form .gfield_label,
.ss-find__form .gform-field-label {
  display: none !important;
}

.ss-find__form .gfield {
  margin-bottom: 0 !important;
  padding: 0 !important;
  margin-right: 35px;
}

.ss-find__form .ginput_container {
  margin-top: 0 !important;
}

/* Input base styles */
.ss-find__form input[type="text"],
.ss-find__form input[type="email"],
.ss-find__form input[type="tel"],
.ss-find__form input[type="number"],
.ss-find__form textarea,
.ss-find__form select {
  display: block !important;
  width: 100% !important;
  height: 52px !important;
  border: none !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.96) !important;
  padding: 0 18px !important;
  font-family: var(--hp-geist) !important;
  font-size: 15px !important;
  color: #333 !important;
  box-shadow: none !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.ss-find__form textarea {
  height: auto !important;
  min-height: 110px !important;
  padding-top: 14px !important;
  resize: vertical !important;
}

.ss-find__form input::placeholder,
.ss-find__form textarea::placeholder {
  color: #999 !important;
  opacity: 1 !important;
}

/* Submit button */
.ss-find__form .gform_footer,
.ss-find__form .gform-page-footer {
  margin: 16px 0 0 !important;
  padding: 0 !important;
  text-align: center !important;
  justify-content: center !important;
}

.ss-find__form .gform_button,
.ss-find__form input[type="submit"] {
  display: inline-block !important;
  min-width: 180px !important;
  height: 52px !important;
  border: none !important;
  border-radius: 40px !important;
  background: #EC6921 !important;
  color: #fff !important;
  font-family: var(--hp-geist) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  padding: 0 40px !important;
  cursor: pointer !important;
  transition: background 0.25s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.ss-find__form .gform_button:hover,
.ss-find__form input[type="submit"]:hover {
  background: #EC6921 !important;
}

/* Validation */
.ss-find__form .gform_validation_errors,
.ss-find__form .gfield_validation_message,
.ss-find__form .validation_message {
  color: #ffccc7 !important;
  font-size: 12px !important;
  margin-top: 4px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}

/* Confirmation message */
.ss-find__form .gform_confirmation_message {
  font-family: var(--hp-geist);
  font-size: 16px;
  color: #fff;
  text-align: center;
  padding: 24px 0;
  line-height: 1.6;
}

/* SS – RESPONSIVE: TABLET  768–1199 */
@media (max-width: 1199px) {

.ss-hero {
    min-height: 80vh;
    padding-bottom: 72px;
  }

  .ss-testimonials {
    padding: 72px 0;
  }

  .ss-find {
    padding: 60px 0;
  }
}
/* SS – RESPONSIVE: MOBILE  ≤ 767 */
@media (max-width: 767px) {

  /* Container */
  .ss-container {
    padding-inline: 20px;
  }

  /* Hero */

  .ss-hero {
    min-height: 80svh;
    padding-bottom: 56px;
    background-position-x: 75%;
    align-items: flex-end;
    background-image: url("https://newsite.executivesearchdating.com/wp-content/themes/esd/img/ss_img.jpg") !important;
  }

  .ss-hero__overlay {

    background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.85) 0%,
      rgba(0, 0, 0, 0.45) 18%,
      rgba(0, 0, 0, 0) 36%
    );
  }

  .ss-hero__content {
    max-width: 100%;
    width: 100%;
  }

  /* Figma mobile spec: 24px / 30px line-height (was clamp(28px,9vw,36px),
     which renders ~32px at 360px width and overflows the viewport). Also
     resets the fixed "width: 400px" leaking down from the <=1280px tablet
     rule above, which forced this onto one unwrapped line wider than the
     mobile viewport. */
  .ss-hero__title {
    font-size: 24px;
    line-height: 30px;
    letter-spacing: -0.01em;
    margin: 0 0 24px;
    width: 100%;
  }

  .ss-hero__title em,
  .ss-hero__title .hero-italic {
    font-style: italic;
  }

  /* Full-width pill button matching PDF */
  .ss-btn {
    display: flex;
    width: 100%;
    height: 54px;
    font-size: 15px;
    border-radius: 50px;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    text-align: center;
  }

/* Testimonials section – carousel mode on mobile */
  .ss-testimonials {
    padding: 32px 0 48px;
  }

  /* Carousel viewport: clips the sliding wrapper to phone width. */
  .ss-carousel__swiper {
    overflow: hidden;
    margin-inline: -16px;

    transition: height 0.3s ease;
  }

  /* Wrapper → horizontal flex row. */
  .ss-testimonials__list {
    max-width: none;
    margin-inline: 0;
    display:        flex !important;
    flex-direction: row !important;
    flex-wrap:      nowrap !important;
    align-items:    flex-start !important;
    gap:            0 !important;
  }

  /* Each slide is exactly the swiper viewport width (set also by ESDCarousel). */
  .ss-carousel__slide {
    width: 100%;
    min-width: 100%;
    flex-shrink: 0;
    box-sizing: border-box;
    padding-inline: 24px;
  }

  .ss-card {
    background: var(--hp-cream4);
    font-family: var(--hp-news);
    box-shadow:none;
  }

  /* Card body – mobile typography */
  .ss-card__body {
    padding: 28px 24px 20px;
    font-size: 15px;
    line-height: 1.82;
  }

  /* Card footer – match design avatar + layout */
  .ss-card__footer {
    padding: 18px 20px;
    gap: 12px;
    background: var(--hp-cream4);
    font-family: var(--hp-news);
  }

  .ss-card__user { gap: 14px; }

  .ss-card__avatar {
    width: 48px;
    height: 48px;
  }

  .ss-card__name   { font-size: 18px; }
  .ss-card__status { font-size: 14px; }

  .ss-card__quote {
    font-size: 26px;
    color: #b0b8c8;
  }

  /* Carousel controls: prev / dots / next */
  .ss-carousel__controls {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 24px;
  }

  .ss-carousel__prev,
  .ss-carousel__next {
    display: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid rgba(0, 0, 0, 0.18);
    background: transparent;
    color: #1b1b18;
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    transition: background 0.2s, border-color 0.2s;
    -webkit-appearance: none;
    appearance: none;
  }

  .ss-carousel__prev:hover,
  .ss-carousel__next:hover {
    background: rgba(0, 0, 0, 0.06);
    border-color: rgba(0, 0, 0, 0.3);
  }

  .ss-carousel__prev:disabled,
  .ss-carousel__next:disabled {
    opacity: 0.3;
    cursor: default;
  }

  .ss-carousel__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
  }

  .ss-carousel__pagination .esd-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(27, 27, 24, 0.18);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s;
    flex-shrink: 0;
  }

  .ss-carousel__pagination .esd-dot.is-active {
    background: var(--hp-orange, #c8692a);
    width: 20px;
    border-radius: 4px;
  }

  /* Find Your Match */
  .ss-find {
    padding: 47px 0;
  }

  .ss-find__content {
    text-align: center;
  }

  .ss-find__title {
    font-size: clamp(24px, 7vw, 28px);
    margin-bottom: 10px;
  }

  .ss-find__desc {
    font-size: 18px;
    line-height: 18px;
    margin-bottom: 20px;
    width: 88%;
  }

  /* Stack ALL form fields to single column on mobile */
  .ss-find__form ul.gform_fields,
  .ss-find__form .gform_fields {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .ss-find__form #field_2_1 {
    grid-column: auto !important;
  }

  /* Taller tap-targets on mobile */
  .ss-find__form input[type="text"],
  .ss-find__form input[type="email"],
  .ss-find__form input[type="tel"] {
    height: 56px !important;
    font-size: 16px !important; /* prevents iOS auto-zoom */
    border-radius: 8px !important;
  }

  /* Full-width submit button */
  .ss-find__form .gform_footer,
  .ss-find__form .gform-page-footer {
    margin-top: 28px !important;
  }

  .ss-find__form .gform_button,
  .ss-find__form input[type="submit"] {
    display: block !important;
    width: 100% !important;
    min-width: unset !important;
    height: 56px !important;
    font-size: 16px !important;
    border-radius: 50px !important;
  }

}

/* SS – RESPONSIVE: SMALL MOBILE  ≤ 480 */
@media (max-width: 480px) {

  .ss-container {
    width: 100%;
    padding-inline: 20px;
  }

  .ss-hero .ss-container {
    width: 100%;
    padding-inline: 20px;
  }

  /* Hero */
  .ss-hero {
    padding-bottom: 48px;
  }

  .ss-hero__title {
    font-size: 24px;
    line-height: 30px;
    margin-bottom: 20px;
  }

  .ss-btn {
    height: 52px;
    font-size: 14px;
  }

  /* Testimonials */
  .ss-testimonials {
    padding: 36px 0 32px;
  }

  .ss-card__body {
    padding: 22px 12px 18px;
    font-size: 14px;
    width: auto;
    border-top: 1px solid #D5D5D5;
    border-left: 1px solid #D5D5D5;
    border-right: 1px solid #D5D5D5;
    border-bottom: none;
    border-radius: 10px 10px 0px 0px;
  }

  .ss-card__footer {
    padding: 14px 15px;
    margin-bottom: 7%;
    border-top: none;
    border-left: 1px solid #D5D5D5;
    border-right: 1px solid #D5D5D5;
    border-bottom: 1px solid #D5D5D5;
    border-radius: 0px 0px 10px 10px;
  }

  .ss-card__avatar {
    width: 80px;
    height: 80px;
  }

  .ss-card__name {
    font-size: 16px;
  }
  .ss-card__meta{
    text-align: center;
  }
  .ss-card__quote {
    font-size: 48px;
    margin-right: -3%;
  }

  /* Find Your Match */
  .ss-find {
    padding: 60px 0;
  }

  .ss-find__title {
    font-size: clamp(26px, 7.5vw, 30px);
  }

  .ss-find__desc {
    font-size: 14px;
  }

  .ss-find__form{
    width: 100%;
  }

  .ss-find__form .gform_footer, .ss-find__form .gform-page-footer {
    margin-top: -4% !important;
  }

  .quote-icon {
    height: 40px;
    width: 40px;
  }
}

/* SS – LARGE DESKTOP  ≥ 1440 */
@media (min-width: 1440px) {

  .ss-container {
    padding-inline: 80px;
  }

  .ss-hero {
    padding-bottom: 110px;
  }

  .ss-hero__title {
    font-size: 64px;
  }

  .ss-testimonials {
    padding: 80px 0;
  }
}

/* Desktop-wide consistency pass: match the Homepage's flat 40px side
   margin (was 60px base / 80px at ≥1440px). ≤1199px untouched. */
@media (min-width: 1200px) {
  .ss-container { padding-inline: 40px; }
}

/* SS – ACCESSIBILITY */
.ss-page :focus-visible {
  outline: 3px solid #EC6921;
  outline-offset: 3px;
  border-radius: 2px;
}

.ss-btn:focus-visible {
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  .ss-btn { transition: none; }
}

/* HOW IT WORKS PAGE  (hiw-) */

/* Full-bleed override (parent theme content wrapper) */
body.page-template-page-templates-how-it-works-php,
body.page-template-page-templates-how-it-works-php #page,
body.page-template-page-templates-how-it-works-php #content,
body.page-template-page-templates-how-it-works-php .content-area,
body.page-template-page-templates-how-it-works-php #primary {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
}

.content-area:has(.hiw-page),
#content:has(.hiw-page),
#primary:has(.hiw-page) {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Page wrapper */
.hiw-page {
  overflow-x: hidden;
  background: var(--hp-cream4, #fdfaf0);
}

/* Container (matches ss-container) */
.hiw-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: 60px;
  box-sizing: border-box;
}

/* HIW – HERO */
.hiw-hero {
  position: relative;

  min-height: 100vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  padding-bottom: 90px;
}

.hiw-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.38) 45%,
    rgba(0, 0, 0, 0.08) 100%
  );
}

.hiw-hero .hiw-container {
  position: relative;
  z-index: 2;
}

.hiw-hero__content {
  max-width: 680px;
}

.hiw-hero__title {
  font-family: var(--hp-news);
  font-size: clamp(38px, 3vw, 48px);
  font-weight: 400;
  color: var(--hs-btitle);
  line-height: 30px;
  letter-spacing: -0.01em;
  margin: 0 0 24px;
}

.hiw-hero__title em {
  font-style: italic;
  color: var(--hs-btitle);
}

.hiw-hero__desc {
  font-family: var(--hp-geist);
  font-size: 20px;
  color: var(--hs-subcol);
  line-height: 1.65;
  margin: 0 0 36px;
  max-width: 700px;
}

/* CTA button (identical to ss-btn) */
.hiw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 32px;
  border: none;
  border-radius: 50px;
  background: var(--hp-orange);
  color: var(--hs-ctabcol);
  font-family: var(--hp-geist);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  text-decoration: none;
  transition: background 0.25s ease;
}

.hiw-btn:hover,
.hiw-btn:focus-visible {
  background: var(--hp-orange);
  color: #fff;
}

/* HIW – STEPS */
.hiw-steps {

  padding: 90px 0 32px;
  background: var(--hp-cream4, #fdfaf0);
}

.hiw-steps__inner {
  position: relative;
}

/* List + center divider */
.hiw-steps__list {
  position: relative;
}

.hiw-steps__divider {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 5px;
  background: rgba(27, 32, 20, 0.12);
}

.hiw-step {
  display: grid;
  grid-template-columns: 1fr 1fr;

  align-items: start;
  gap: 64px;

  padding-bottom: 32px;
}

.hiw-step:last-child {
  padding-bottom: 0;
}
.hiw-step__card {
  display: contents;
}

.hiw-step--reverse .hiw-step__media   { order: 2; }
.hiw-step--reverse .hiw-step__content { order: 1; }
.hiw-step__media {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  padding-top: 54%;
}

.hiw-step__img {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 20px;
}

/* Step content */
.hiw-step__content {
  min-width: 0;
  padding-top: 4px;
}

.hiw-step__num {

  float: left;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--hp-orange);
  color: #FFFFFF;
  font-family: var(--hp-geist);
  font-size: 16px;
  font-weight: 700;
  margin: 0 14px 16px 0;
}

.hiw-step__title {
  font-family: var(--hp-news);
  font-size: clamp(18px, 1.6vw, 23px);
  font-weight: 700;
  color: var(--hp-dark, #1b2014);
  line-height: 36px;
  margin: 0 0 10px;
}

.hiw-step__desc {
  font-family: var(--hp-news);
  font-size: 18px;
  color: #5a5a54;
  line-height: 30px;
  margin: 0;
  clear: left;
}

.hiw-step__desc p {
  color: var(--esd-dgray);
}

.hiw-find__bump {
  position: relative;
  width: 14%;
  height: 95px;
  margin: 0 auto;
  background-color: var(--esd-lgray);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}

.hiw-find__bump::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 50%;
  width: 5px;
  height: 32px;
  background: rgba(27, 32, 20, 0.12);
  transform: translateX(-50%);
}

/* HIW – FIND YOUR MATCH  (mirrors ss-find) */
.hiw-find {
  position: relative;
  padding: clamp(44px, 1vw, 140px) 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hiw-find__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.hiw-find .hiw-container {
  position: relative;
  z-index: 2;
}

.hiw-find__content {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
}

.hiw-find__title {
  font-family: var(--hp-news);
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 400;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 12px;
}

.hiw-find__desc {
  font-family: var(--hp-news);
  font-size: 16px;
  color: rgba(255, 255, 255, 0.88);
  margin: 0 auto 24px;
  max-width: 480px;
}

.hiw-find__form {
  width: 100%;
}

/* HIW – TABLET  768–1199px */
@media (max-width: 1199px) {

  .hiw-hero {
    padding-bottom: 72px;
  }

  .hiw-step {
    gap: 48px;
    padding-bottom: 32px;
  }

}

/* HIW – MOBILE  ≤ 767px */
@media (max-width: 767px) {

  .hiw-container {
    padding-inline: 20px;
  }

  /* Hero */
  .hiw-hero {
    min-height: 80svh;
    padding-bottom: 56px;
    background-position-x: 75%;
  }

  .hiw-hero__title {
    font-size: clamp(32px, 9vw, 44px);
    margin-bottom: 16px;
  }

  .hiw-hero__desc {
    font-size: 15px;
    margin-bottom: 28px;
  }

  .hiw-btn {
    display: flex;
    width: 100%;
    height: 54px;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
  }

  /* Steps */
  .hiw-steps {

    padding: 32px 0 32px;
  }

.hiw-steps__list {
    padding-top: 32px;
  }

  .hiw-steps__divider {
    width: 5px;
    background: var(--esd-lgray, #D5D5D5);
  }

  .hiw-step,
  .hiw-step--reverse {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-bottom: 35px;
  }

  .hiw-step--reverse .hiw-step__media,
  .hiw-step--reverse .hiw-step__content {
    order: initial;
  }

.hiw-step__card {
    display: block;
    position: relative;
    z-index: 1;
    background: var(--hp-cream4);
    border: 1px solid rgba(27, 32, 20, 0.1);
    border-radius: 20px;
    padding: 14px 16px 28px;
  }

  .hiw-step__media {
    width: 100%;
    padding-top: 56.25%; /* 16:9 */
    border-radius: 12px;
  }

  .hiw-step__img {
    border-radius: 12px;
  }

  .hiw-step__content {
    text-align: center;
    padding-top: 20px;
  }

  .hiw-step__num {

    float: none;
    width: 40px;
    height: 40px;
    font-size: 17px;
    margin: 0 auto 16px;
  }

  .hiw-step__title {
    font-family: var(--hp-geist);
    font-size: 24px;
    font-weight: 700;
    line-height: 30px;
    margin-bottom: 12px;
  }

  .hiw-step__desc {
    font-size: 14px;
  }

  /* Find Your Match */
  .hiw-find {
    padding: 44px 0;

    border-radius: 0;
    background-position: center;
  }

  .hiw-find__title {

    font-family: var(--hp-news);
    font-weight: 400;
    font-size: clamp(24px, 7vw, 28px);
    margin-bottom: 10px;
  }

  .hiw-find__desc {
    font-size: 14px;
    margin-bottom: 18px;
  }

  .hiw-find__bump::before {
    z-index: 2;
  }

  .hiw-find__bump::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    width: 100vw;
    height: 32px;
    transform: translateX(-50%);
    background-color: #fdfaf0;
    z-index: 1;
  }
  .hiw-find__bump {
    width: 50%;
    height: 100px;
  }
  .hiw-step__img {
    height: auto;
  }

}

/* HIW – LARGE DESKTOP  ≥ 1440px */
@media (min-width: 1440px) {

  .hiw-container {
    padding-inline: 80px;
  }

  .hiw-hero {
    padding-bottom: 110px;
  }

  .hiw-steps {
    padding: 110px 0 32px;
  }

  .hiw-step {
    gap: 88px;
    padding-bottom: 50px;
  }

  .ss-find,
  .hiw-find,
  .au-find,
  .faq-find {
    background-position: center 46%;
  }

  .hiw-find__bump {
    position: relative;
    width: 14%;
    height: 100px !important;
  }
}

/* Desktop-wide consistency pass: match the Homepage's flat 40px side
   margin (was 60px base / 80px at ≥1440px). ≤1199px untouched. */
@media (min-width: 1200px) {
  .hiw-container { padding-inline: 40px; }
}

/* HIW – ACCESSIBILITY */
.hiw-page :focus-visible {
  outline: 3px solid #EC6921;
  outline-offset: 3px;
  border-radius: 2px;
}

.hiw-btn:focus-visible {
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  .hiw-btn { transition: none; }
}

/* ABOUT US PAGE  (au-) */

/* Full-bleed override */
body.page-template-page-templates-about-us-php,
body.page-template-page-templates-about-us-php #page,
body.page-template-page-templates-about-us-php #content,
body.page-template-page-templates-about-us-php .content-area,
body.page-template-page-templates-about-us-php #primary {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
}

.content-area:has(.au-page),
#content:has(.au-page),
#primary:has(.au-page) {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Page wrapper */
.au-page {
  overflow-x: hidden;
}

/* Container */
.au-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: 60px;
  box-sizing: border-box;
}

/* CTA button (matches ss-btn / hiw-btn) */
.au-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 32px;
  border: none;
  border-radius: 50px;
  background: var(--hp-orange);
  color: #fff;
  font-family: var(--hp-geist);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  text-decoration: none;
  transition: background 0.25s ease;
}

.au-btn:hover,
.au-btn:focus-visible {
  background: var(--hp-orange);
  color: #fff;
}

/* AU – HERO */
.au-hero {
  position: relative;
  min-height: 100vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  padding-bottom: 90px;
}

.au-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.38) 45%,
    rgba(0, 0, 0, 0.08) 100%
  );
}

.au-hero .au-container {
  position: relative;
  z-index: 2;
}

.au-hero__content {
  max-width: 680px;
}

.au-hero__title {
  font-family: var(--hp-news);
  font-size: clamp(38px, 3vw, 48px);
  font-weight: 400;
  color: var(--hs-btitle);
  line-height: 1.07;
  letter-spacing: -0.01em;
  margin: 0 0 32px;
}

.au-hero__title em {
  font-style: italic;
}

/* AU – ABOUT */
.au-about {
  background: var(--hp-cream4, #fdfaf0);
  padding: 90px 0;
}

.au-about__grid {
  display: flex;
  align-items: flex-start;
  gap: 72px;
}

.au-about__image-col {
  flex: 0 0 42%;
}

.au-about__img {
  display: block;
  width: 100%;
  border-radius: 8px;
  object-fit: cover;
}

.au-about__text-col {
  flex: 1;
  min-width: 0;
}

.au-about__body > * + * {
  margin-top: 1.1em;
}

.au-about__body p {
  font-family: var(--hp-news);
  font-size: 16px;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.75;
  margin: 0;
}

.au-about__body h2,
.au-about__body h3 {
  font-family: var(--hp-news);
  font-weight: 400;
  color: var(--hp-dark, #1b2014);
  line-height: 1.2;
  margin: 0 0 8px;
}

.au-about__body h2 { font-size: clamp(24px, 2.5vw, 36px); }
.au-about__body h3 { font-size: clamp(20px, 2vw, 28px); }

.au-about__body strong {
  font-weight: 600;
  color: var(--hp-dark, #1b2014);
}

.au-about__body ul,
.au-about__body ol {
  padding-left: 1.4em;
  margin: 0;
}

.au-about__body li {
  font-family: var(--hp-news);
  font-size: 16px;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.7;
  margin-bottom: 6px;
}

.au-about__text-col > .au-btn {
  margin-top: 36px;
}

@media (min-width: 1200px) {
  .au-about .au-container {
    max-width: var(--hp-max-w, 1400px);
    padding-inline: 30px;
  }

  .au-about__grid {
    display: grid;
    grid-template-columns: 55% 45%;
    gap: 20px;
    align-items: start;
  }

  .au-about__image-col {
    flex: none;
    position: relative;
    padding: 32px 0 32px 80px;
  }

  .au-about__img {
    width: 80%;
    height: 770px;
    object-fit: cover;
    object-position: center bottom;
    border-radius: 4px;
  }

  .au-about__text-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 70px 20px 40px;
  }

  .au-about__body {
    max-width: 95%;
  }

  .au-about__body p {
    font-size: 15px;
    line-height: 1.75;
    color: #4d4b4b;
  }

  .au-about__text-col > .au-btn {
    margin-top: 28px;
  }
}

/* AU – STORY + VIDEO */
.au-story {
  background: var(--hp-dark);
  padding: 90px 0;
}

.au-story__grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 72px;
}

.au-story__video-col {
  flex: 0 0 48%;
  display: flex;
  justify-content: center;
}

.au-video {
  position: relative;
  display: block;
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  line-height: 0;
}

.au-video__thumb {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: opacity 0.25s ease;
}

.au-video:hover .au-video__thumb {
  opacity: 0.85;
}

.au-video__play {
  position: absolute;
  inset: 0;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background: rgba(0, 0, 0, 0.28);
  transition: background 0.25s ease;
}

.au-video:hover .au-video__play {
  background: rgba(0, 0, 0, 0.42);
}

.au-video__play-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: var(--hp-orange);
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.22);
  transition: transform 0.22s ease, background 0.22s ease;
}

.au-video__play-circle svg {
  width: 28px;
  height: 28px;
  margin-left: 3px;
}

.au-video:hover .au-video__play-circle {
  transform: scale(1.08);
  background: var(--hp-orange);
}

.au-video__label {
  font-family: var(--hp-geist);
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.04em;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

.au-story__text-col {
  flex: 1;
  min-width: 0;
}

.au-story__title {
  font-family: var(--hp-news);
  font-size: clamp(24px, 2.8vw, 38px);
  font-weight: 400;
  color: var(--esd-lgray);
  line-height: 1.2;
  margin: 0 0 10px;
}

.au-story__desc {
  font-family: var(--hp-news);
  font-size: 16px;
  color: var(--esd-lgray);
  line-height: 1.75;
  margin: 0;
}

/* Play Video button */
.au-play-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 50px;
  margin-top: 28px;
  padding: 0 28px 0 22px;
  border: none;
  border-radius: 50px;
  background: var(--hp-orange);
  color: #fff;
  font-family: var(--hp-geist);
  font-size: 16px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.25s ease;
}

.au-play-btn:hover,
.au-play-btn:focus-visible {
  background: var(--hp-orange-h);
  color: #fff;
}

.play-btn__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border: 1.5px solid rgba(255, 255, 255, 0.85);
  border-radius: 50%;
  color: #fff;
}

.play-btn__icon svg {
  width: 10px;
  height: 12px;
  margin-left: 1px;
}

/* AU – FIND YOUR MATCH */
.au-find {
  position: relative;
  padding: 56px 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.au-find__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.au-find .au-container {
  position: relative;
  z-index: 2;
}

.au-find__content {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
}

.au-find__title {
  font-family: var(--hp-news);
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 400;
  color: #fff;
  line-height: 1.2;
  margin: 0 0 12px;
}

.au-find__desc {
  font-family: var(--hp-news);
  font-size: 16px;
  color: rgba(255, 255, 255, 0.88);
  line-height: 1.55;
  margin: 0 auto 24px;
  max-width: 480px;
}

.au-find__form {
  width: 100%;
}

/* AU – TABLET  ≤ 1199px */
@media (max-width: 1199px) {

  .au-hero { padding-bottom: 72px; }
  .au-story { padding: 72px 0; }
  .au-story__grid { gap: 48px; }

}

/* AU – MOBILE  ≤ 767px */
@media (max-width: 767px) {

  .au-container { padding-inline: 20px; }
  .au-hero {
    min-height: 80svh;
    padding-bottom: 56px;
    background-position-x: 51%;
  }

  .au-hero__title {
    font-size: clamp(32px, 9vw, 44px);
    margin-bottom: 24px;
  }

  .au-btn {
    display: flex;
    width: 100%;
    height: 54px;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
  }

  .au-about { padding: 56px 0; }

  .au-about__grid {
    flex-direction: column;
    gap: 32px;
  }

  .au-about__image-col {
    flex: none;
    width: 100%;
  }

  .au-about__text-col { width: 100%; }
  .au-about__body p,
  .au-about__body li { font-size: 15px; }
  .au-about__text-col > .au-btn { margin-top: 28px; }
  .au-story { padding: 56px 0; }

  .au-story__grid {
    flex-direction: column;
    gap: 32px;
  }

  .au-story__video-col {
    flex: none;
    width: 100%;
    order: 1;
  }

  .au-story__text-col { order: 2; text-align: center; }

  .au-story__title {
    font-size: clamp(22px, 6vw, 28px);
    margin-bottom: 16px;
    text-align: center;
  }

  .au-story__desc { font-size: 14px; text-align: center;}

  .au-play-btn { margin-top: 24px; font-size: 14px;}

  .au-video__play-circle {
    width: 52px;
    height: 52px;
  }

  .au-video__play-circle svg {
    width: 22px;
    height: 22px;
  }

  .au-find { padding: 44px 0; }

  .au-find__title { font-size: clamp(24px, 7vw, 28px); margin-bottom: 10px; }

  .au-find__desc {
    font-size: 14px;
    margin-bottom: 18px;
  }

}

/* AU – LARGE DESKTOP  ≥ 1440px */
@media (min-width: 1440px) {

  .au-container { padding-inline: 80px; }

  .au-hero { padding-bottom: 110px; }

  .au-story { padding: 110px 0; }

  .au-story__grid { gap: 88px; }

  .au-find { padding: 64px 0; }

}

/* Desktop-wide consistency pass: match the Homepage's flat 40px side
   margin (was 60px base / 80px at ≥1440px). ≤1199px untouched. */
@media (min-width: 1200px) {
  .au-container { padding-inline: 40px; }
}

/* AU – ACCESSIBILITY */
.au-page :focus-visible {
  outline: 3px solid #EC6921;
  outline-offset: 3px;
  border-radius: 2px;
}

.au-btn:focus-visible,
.au-video:focus-visible,
.au-play-btn:focus-visible { outline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
  .au-btn,
  .au-video__thumb,
  .au-video__play,
  .au-video__play-circle,
  .au-play-btn { transition: none; }
}

/* FAQ PAGE  (faq-) */

/* Full-bleed override */
body.page-template-page-templates-faq-php,
body.page-template-page-templates-faq-php #page,
body.page-template-page-templates-faq-php #content,
body.page-template-page-templates-faq-php .content-area,
body.page-template-page-templates-faq-php #primary {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
}

.content-area:has(.faq-page),
#content:has(.faq-page),
#primary:has(.faq-page) {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Page wrapper */
.faq-page {
  overflow-x: hidden;
}

/* Container */
.faq-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: 60px;
  box-sizing: border-box;
}

/* CTA button (matches au-btn / hiw-btn / ss-btn) */
.faq-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 32px;
  border: none;
  border-radius: 50px;
  background: var(--hp-orange);;
  color: #fff;
  font-family: var(--hp-geist);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  text-decoration: none;
  transition: background 0.25s ease;
}

.faq-btn:hover,
.faq-btn:focus-visible {
  background: var(--hp-orange);
  color: #fff;
}

/* FAQ – HERO  (identical to ss-hero / hiw-hero / au-hero) */
.faq-hero {
  position: relative;
  min-height: 100vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  padding-bottom: 90px;
}

.faq-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.38) 45%,
    rgba(0, 0, 0, 0.08) 100%
  );
}

.faq-hero .faq-container {
  position: relative;
  z-index: 2;
}

.faq-hero__content {
  max-width: 680px;
}

.faq-hero__title {
  font-family: var(--hp-news);
  font-size: clamp(38px, 3vw, 48px);
  font-weight: 400;
  color: var(--hs-btitle);
  line-height: 1.07;
  letter-spacing: -0.01em;
  margin: 0 0 32px;
}

.faq-hero__title em {
  font-style: italic;
  color: var(--hs-btitle);
}

/* FAQ – ACCORDION SECTION */
.faq-section {
  background: var(--hp-cream4, #fdfaf0);
  padding: 90px 0;
}

.faq-accordion {
  max-width: 820px;
  margin-inline: auto;
}

/* Single item */
.faq-item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.faq-item:first-child {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

/* Trigger button */
.faq-item__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 26px 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  -webkit-appearance: none;
  appearance: none;
}

.faq-item__question {
  font-family: var(--hp-news);
  font-size: clamp(17px, 1.6vw, 20px);
  font-weight: 400;
  color: var(--hp-dark, #1b2014);
  line-height: 1.35;
  flex: 1;
  min-width: 0;
  transition: color 0.2s ease;
}

.faq-item__trigger:hover .faq-item__question,
.faq-item.is-open .faq-item__question {
  color: var(--hp-orange);;
}

/* Icon (+/-) */
.faq-item__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1.5px solid rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hp-dark, #1b2014);
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.faq-item__trigger:hover .faq-item__icon,
.faq-item.is-open .faq-item__icon {
  background: var(--hp-orange);;
  border-color: var(--hp-orange);;
  color: #fff;
}

/* Show plus when closed, minus when open */
.faq-icon-plus  { display: block; }
.faq-icon-minus { display: none; }

.faq-item.is-open .faq-icon-plus  { display: none; }
.faq-item.is-open .faq-icon-minus { display: block; }

/* Panel (collapsible) */
.faq-item__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s ease;
}

.faq-item.is-open .faq-item__panel {
  grid-template-rows: 1fr;
}

/* Inner wrapper required for grid-template-rows trick */
.faq-item__body {
  overflow: hidden;
}

/* Body content */
.faq-item__body > * {
  padding-bottom: 28px;
}

.faq-item__body p {
  font-family: var(--hp-news);
  font-size: 16px;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.75;
  margin: 0 0 14px;
}

.faq-item__body p:last-child {
  margin-bottom: 0;
}

.faq-item__body a {
  color: var(--hp-orange);;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color 0.2s;
}

.faq-item__body a:hover {
  color: var(--hp-orange);
}

.faq-item__body ul,
.faq-item__body ol {
  padding-left: 1.4em;
  margin: 0 0 14px;
}

.faq-item__body li {
  font-family: var(--hp-news);
  font-size: 16px;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.7;
  margin-bottom: 6px;
}

.faq-item__body strong {
  font-weight: 600;
  color: var(--hp-dark, #1b2014);
}

.faq-item__body h3,
.faq-item__body h4 {
  font-family: var(--hp-news);
  font-weight: 400;
  color: var(--hp-dark, #1b2014);
  line-height: 1.2;
  margin: 0 0 10px;
}

.faq-item__body h3 { font-size: clamp(18px, 1.8vw, 22px); }
.faq-item__body h4 { font-size: 17px; }

/* FAQ – FIND YOUR MATCH */
.faq-find {
  position: relative;
  padding: 56px 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.faq-find__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.faq-find .faq-container {
  position: relative;
  z-index: 2;
}

.faq-find__content {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
}

.faq-find__title {
  font-family: var(--hp-news);
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 400;
  color: #fff;
  line-height: 1.2;
  margin: 0 0 12px;
}

.faq-find__desc {
  font-family: var(--hp-geist);
  font-size: 16px;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.55;
  margin: 0 auto 24px;
  max-width: 480px;
}
.faq-find__form {
  width: 100%;
}

/* FAQ – TABLET  ≤ 1199px */
@media (max-width: 1199px) {

  .faq-hero   { padding-bottom: 72px; }
  .faq-section { padding: 72px 0; }
  .faq-find   { padding: 64px 0; }

}

/* FAQ – MOBILE  ≤ 767px */
@media (max-width: 767px) {

  .faq-container { padding-inline: 20px; }

  /* Hero */
  .faq-hero {
    min-height: 80svh;
    padding-bottom: 56px;
  }

  .faq-hero__title {
    font-size: clamp(32px, 9vw, 44px);
    margin-bottom: 24px;
  }

  .faq-btn {
    display: flex;
    width: 100%;
    height: 54px;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
  }

  /* Accordion */
  .faq-section { padding: 56px 0; }

  .faq-item__trigger { padding: 20px 0; gap: 16px; }

  .faq-item__question { font-size: 16px; }

  .faq-item__icon { width: 32px; height: 32px; }

  .faq-item__body p,
  .faq-item__body li { font-size: 15px; }

  /* Find */
  .faq-find { padding: 44px 0; }

  .faq-find__title { font-size: clamp(24px, 7.5vw, 28px); margin-bottom: 10px; }

  .faq-find__desc {
    font-size: 15px;
    margin-bottom: 24px;
  }

}

/* FAQ – LARGE DESKTOP  ≥ 1440px */
@media (min-width: 1440px) {

  .faq-container  { padding-inline: 80px; }
  .faq-hero       { padding-bottom: 110px; }
  .faq-section    { padding: 110px 0; }
  .faq-find       { padding: clamp(44px, 1vw, 140px) 0; }

}

/* Desktop-wide consistency pass: match the Homepage's flat 40px side
   margin (was 60px base / 80px at ≥1440px). ≤1199px untouched. */
@media (min-width: 1200px) {
  .faq-container { padding-inline: 40px; }
}

/* FAQ – ACCESSIBILITY */
.faq-page :focus-visible {
  outline: 3px solid var(--hp-orange);;
  outline-offset: 3px;
  border-radius: 2px;
}

.faq-btn:focus-visible { outline-offset: 4px; }

.faq-item__trigger:focus-visible {
  outline-offset: 2px;
  border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
  .faq-btn,
  .faq-item__icon { transition: none; }
  .faq-item__panel { transition: none; }
}

/* CONTACT PAGE  (con-) */

/* Full-bleed override */
body.page-template-page-templates-contact-php,
body.page-template-page-templates-contact-php #page,
body.page-template-page-templates-contact-php #content,
body.page-template-page-templates-contact-php .content-area,
body.page-template-page-templates-contact-php #primary {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
}

.content-area:has(.con-page),
#content:has(.con-page),
#primary:has(.con-page) {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Page wrapper */
.con-page {
  overflow-x: hidden;
}

/* Container */
.con-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: 60px;
  box-sizing: border-box;
}

/* CTA button (matches au-btn / faq-btn / hiw-btn) */
.con-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 32px;
  border: none;
  border-radius: 50px;
  background: var(--hp-orange);;
  color: #fff;
  font-family: var(--hp-geist);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  text-decoration: none;
  transition: background 0.25s ease;
}

.con-btn:hover,
.con-btn:focus-visible {
  background: var(--hp-orange-h);
  color: #fff;
}

/* CON – HERO  (identical to other page heroes) */
.con-hero {
  position: relative;
  min-height: 100vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  padding-bottom: 90px;
}

.con-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.72) 0%,
    rgba(0, 0, 0, 0.38) 45%,
    rgba(0, 0, 0, 0.08) 100%
  );
}

.con-hero .con-container {
  position: relative;
  z-index: 2;
}

.con-hero__content {
  max-width: 680px;
}

.con-hero__title {
  font-family: var(--hp-news);
  font-size: clamp(38px, 3vw, 48px);
  font-weight: 400;
  color: var(--hs-btitle);
  line-height: 1.07;
  letter-spacing: -0.01em;
  margin: 0 0 32px;
}

.con-hero__title em {
  font-style: italic;
}

/* CON – CONTACT SECTION */
.con-section {
  background: var(--hp-cream4, #fdfaf0);
  padding: 90px 0;
}

/* Two-column grid */
.con-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0 64px;
  align-items: start;
}

/* Vertical divider */
.con-divider {
  width: 1px;
  align-self: stretch;
  background: rgba(0, 0, 0, 0.1);
  min-height: 200px;
}

/* Left: blurb */
.con-blurb__body {
  margin-bottom: 36px;
}

.con-blurb__body p {
  font-family: var(--hp-news);
  font-size: 16px;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.75;
  margin: 0 0 16px;
}

.con-blurb__body p:last-child {
  margin-bottom: 0;
}

.con-blurb__body h2,
.con-blurb__body h3 {
  font-family: var(--hp-news);
  font-weight: 400;
  color: var(--hp-dark, #1b2014);
  line-height: 1.2;
  margin: 0 0 12px;
}

.con-blurb__body h2 { font-size: clamp(22px, 2.4vw, 32px); }
.con-blurb__body h3 { font-size: clamp(18px, 1.8vw, 24px); }

.con-blurb__body strong {
  font-weight: 600;
  color: var(--hp-dark, #1b2014);
}

.con-blurb__body ul,
.con-blurb__body ol {
  padding-left: 1.4em;
  margin: 0 0 16px;
}

.con-blurb__body li {
  font-family: var(--hp-news);
  font-size: 16px;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.7;
  margin-bottom: 6px;
}

.con-blurb__body a {
  color: var(--hp-orange);;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
  cursor: pointer;
}

.con-blurb__body a:hover {
  color: var(--hp-orange-h);
}

/* Right: contact info */
.con-info {
  padding-top: 4px;
}

.con-info__intro {
  font-family: var(--hp-news);
  font-size: 16px;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.75;
  margin: 0 0 32px;
}

/* Contact row (phone / email) */
.con-info__row {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  margin-bottom: 20px;
}

.con-info__row:last-child {
  margin-bottom: 0;
}

.con-info__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--hp-orange);;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}

.con-info__row:hover .con-info__icon {
  background: var(--hp-orange-h);
}

.con-info__text {
  font-family: var(--hp-news);
  font-size: 17px;
  font-weight: 500;
  color: var(--hp-dark, #1b2014);
  line-height: 1.4;
  transition: color 0.2s ease;
}

.con-info__row:hover .con-info__text {
  color: var(--hp-orange);;
}

/* CON – TABLET  ≤ 1199px */
@media (max-width: 1199px) {

  .con-hero    { padding-bottom: 72px; }
  .con-section { padding: 72px 0; }
  .con-grid    { gap: 0 48px; }

}

/* CON – MOBILE  ≤ 767px */
@media (max-width: 767px) {

  .con-container { padding-inline: 20px; }

  /* Hero */
  .con-hero {
    min-height: 80svh;
    padding-bottom: 56px;
    background-position-x: 63%;
  }

  .con-hero__title {
    font-size: clamp(32px, 9vw, 44px);
    margin-bottom: 24px;
  }

  .con-btn {
    display: flex;
    width: 100%;
    height: 54px;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
  }

  /* Contact section */
  .con-section { padding: 56px 0; }

  .con-grid {
    grid-template-columns: 1fr;
    gap: 48px 0;
  }

  /* Hide vertical divider; replace with horizontal rule */
  .con-divider {
    width: 100%;
    height: 1px;
    min-height: 0;
    align-self: auto;
  }

  .con-blurb__body {
    margin-bottom: 28px;
  }

  .con-blurb__body p,
  .con-blurb__body li { font-size: 15px; }

  .con-info__intro { font-size: 15px; }

  .con-info__text { font-size: 16px; }

}

/* CON – LARGE DESKTOP  ≥ 1440px */
@media (min-width: 1440px) {

  .con-container { padding-inline: 80px; }
  .con-hero      { padding-bottom: 110px; }
  .con-section   { padding: 110px 0; }
  .con-grid      { gap: 0 80px; }

}

/* Desktop-wide consistency pass: match the Homepage's flat 40px side
   margin (was 60px base / 80px at ≥1440px). ≤1199px untouched. */
@media (min-width: 1200px) {
  .con-container { padding-inline: 40px; }
}

/* CON – ACCESSIBILITY */
.con-page :focus-visible {
  outline: 3px solid var(--hp-orange);;
  outline-offset: 3px;
  border-radius: 2px;
}

.con-btn:focus-visible     { outline-offset: 4px; }
.con-info__row:focus-visible { border-radius: 4px; }

@media (prefers-reduced-motion: reduce) {
  .con-btn,
  .con-info__icon,
  .con-info__text { transition: none; }
}

/* DA – DATING ADVICE ARCHIVE */

/* Full-bleed: suppress default page wrappers */
.content-area:has(.da-page),
#content:has(.da-page),
#primary:has(.da-page),
.site:has(.da-page),
main:has(.da-page) {
  max-width: none !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Container */
.da-container {
  padding-inline: 60px;
  margin-inline: auto;
  width: 100%;
}

/* Shared button */
.da-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--hp-orange);
  color: #fff;
  font-family: 'DM Sans';
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 14px 32px;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.15s ease;
  white-space: nowrap;
}
.da-btn:hover  { background: var(--hp-orange-h); }
.da-btn:active { transform: scale(0.98); }

/* Hero */
.da-hero {
  position: relative;
  min-height: 100vh;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-end;
  padding-bottom: 90px;
  overflow: hidden;
}

.da-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(27, 32, 20, 0.25) 0%,
    rgba(27, 32, 20, 0.65) 100%
  );
  pointer-events: none;
}

.da-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.da-hero__title {
  font-family: 'Newsreader';
  font-size: clamp(2.75rem, 6vw, 5rem);
  font-weight: 400;
  color: var(--hs-btitle);
  line-height: 1.1;
  margin: 0;
  max-width: 700px;
}

/* Posts section */
.da-posts {
  background: var(--hp-cream4, #fdfaf0);
  padding: 90px 0;
}

.da-posts__list {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

/* Post card */
.da-card {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 0 52px;
  text-decoration: none;
  color: inherit;
  align-items: center;
  transition: opacity 0.2s ease;
}
.da-card:hover { opacity: 0.88; }

.da-card__img-wrap {
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 4px;
  flex-shrink: 0;
}

.da-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.da-card:hover .da-card__img { transform: scale(1.03); }

.da-card__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 90%;
}

.da-card__title {
  font-family: 'Newsreader';
  font-size: 1.85rem;
  font-weight: 500;
  color: var(--hp-dark, #1b2014);
  line-height: 1.25;
  margin: 0;
}

.da-card__meta {
  display: flex;
  align-items: center;
  gap: 18px;
}

.da-card__date {
  font-family: 'DM Sans';
  font-size: 0.875rem;
  color: var(--hp-dark3, #4a4a44);
}

.da-card__cat {
  font-family: 'DM Sans';
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--hp-orange);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.da-card__excerpt {
  font-family: 'DM Sans';
  font-size: 1rem;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.75;
  margin: 0;
}

.da-card__more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'DM Sans';
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--hp-orange);
  margin-top: 4px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.da-card:hover .da-card__more { color: var(--hp-orange-h); }

/* Load More */
.da-loadmore {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  padding-top: 64px;
}

.da-loadmore__spinner {
  display: none;
  width: 22px;
  height: 22px;
  border: 3px solid rgba(229, 122, 50, 0.25);
  border-top-color: var(--hp-orange);
  border-radius: 50%;

  animation: esd-spin 0.7s linear infinite;
}

.da-loadmore.is-loading .da-loadmore__spinner { display: block; }
.da-loadmore.is-loading .da-loadmore__btn     { opacity: 0.65; pointer-events: none; }

/* DA – TABLET  ≤ 1199px */
@media (max-width: 1199px) {
  .da-container { padding-inline: 40px; }
  .da-card { grid-template-columns: 360px 1fr; gap: 0 40px; }
  .da-card__title { font-size: 1.6rem; }
}

/* DA – MOBILE  ≤ 767px */
@media (max-width: 767px) {
  .da-container { padding-inline: 20px; max-width: 88%;}

  .da-hero {
    min-height: 80svh;
    padding-bottom: 60px;
    background-position-x: 44% !important;
  }

  .da-hero__title { font-size: clamp(2.25rem, 9vw, 3rem); }

  .da-posts { padding: 56px 0; }
  .da-posts__list { gap: 48px; }

  .da-card {
    grid-template-columns: 1fr;
    gap: 20px 0;
  }

  .da-card__img-wrap { aspect-ratio: 16 / 9; }
  .da-card__title  { font-size: 1.35rem; }
  .da-card__excerpt { font-size: 0.9375rem; }

  .da-loadmore { padding-top: 48px; }
  .da-btn { font-size: 0.9375rem; padding: 13px 28px; }
}

/* DA – LARGE DESKTOP  ≥ 1440px */
@media (min-width: 1440px) {
  .da-container   { padding-inline: 80px; }
  .da-hero        { padding-bottom: 110px; }
  .da-hero__title { font-size: 5.5rem; }
  .da-posts       { padding: 110px 0; }
  .da-card { grid-template-columns: 480px 1fr; gap: 0 64px; }
}

/* Desktop-wide consistency pass: match the Homepage's flat 40px side
   margin (was 40px at ≤1199, 60px base, 80px at ≥1440px). ≤1199px
   untouched. */
@media (min-width: 1200px) {
  .da-container { padding-inline: 40px; }
}

/* DA – ACCESSIBILITY */
.da-page :focus-visible {
  outline: 3px solid var(--hp-orange);
  outline-offset: 3px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .da-btn,
  .da-card__img,
  .da-loadmore__spinner { transition: none; animation: none; }
}

/* DAS – DATING ADVICE SINGLE POST */

/* Full-bleed */
body:has(.das-page) > *:not(.das-page):not(#site-header):not(#mobile-menu):not(.esd-footer),
body:has(.das-page) .site,
body:has(.das-page) main { max-width: none !important; padding: 0 !important; margin: 0 !important; }

/* Featured image hero */
.das-hero {
  width: 100%;
  line-height: 0; /* collapse whitespace around img */
}
.das-page { background: var(--hp-cream4); }
.das-hero__img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* Container */
.das-container {
  max-width: 1200px;
  padding-inline: 60px;
  margin-inline: auto;
  width: 100%;
  background: var(--hp-cream4);
}

/* Two-column layout */
.das-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 0 64px;
  padding: 60px 0 100px;
  background: var(--hp-cream4);
  align-items: start;
}

/* Nav / share bar */
.das-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 32px;
  border-bottom: 1px solid rgba(27, 32, 20, 0.1);
  margin-bottom: 36px;
}

.das-nav__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'DM Sans';
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--hp-dark, #1b2014);
  text-decoration: none;
  transition: color 0.2s;
}
.das-nav__back:hover { color: var(--hp-orange); }

.das-nav__share {
  display: flex;
  align-items: center;
  gap: 14px;
}

.das-nav__share-label {
  font-family: 'DM Sans';
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--hp-dark3, #4a4a44);
}

.das-nav__share a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(27, 32, 20, 0.07);
  color: var(--hp-dark, #1b2014);
  font-size: 0.875rem;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.das-nav__share a:hover { background: var(--hp-orange); color: #fff; }

/* Post title / date */
.das-title {
  font-family: 'Newsreader';
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 500;
  color: var(--hp-dark, #1b2014);
  line-height: 1.2;
  margin: 0 0 16px;
}

.das-date {
  font-family: 'DM Sans';
  font-size: 0.875rem;
  color: var(--hp-dark3, #4a4a44);
  margin-bottom: 36px;
}

/* Body content */
.das-body {
  font-family: 'DM Sans';
  font-size: 1.0625rem;
  color: var(--hp-dark3, #4a4a44);
  line-height: 1.85;
}

.das-body h2,
.das-body h3,
.das-body h4 {
  font-family: 'Newsreader';
  color: var(--hp-dark, #1b2014);
  margin-top: 2em;
  margin-bottom: 0.6em;
}

.das-body p  { margin-bottom: 1.25em; }
.das-body a  { color: var(--hp-orange); text-underline-offset: 3px; }
.das-body ul,
.das-body ol { padding-left: 1.5em; margin-bottom: 1.25em; }
.das-body li { margin-bottom: 0.5em; }

/* Post footer (category / tags) */
.das-post-footer {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid rgba(27, 32, 20, 0.1);
}

.das-post-footer__row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-family: 'Newsreader';
  font-size: 0.875rem;
}

.das-post-footer__label {
  font-weight: 700;
  color: var(--hp-dark, #1b2014);
}

.das-post-footer__value {
  color: var(--hp-orange);
  font-weight: 500;
}

/* CTA */
.das-cta {
  margin-top: 48px;
}

/* Aside: recent posts */
.das-aside {
  position: sticky;
  top: 100px;
}

.das-aside__title {
  font-family: 'Newsreader';
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--hp-dark, #1b2014);
  margin: 0 0 28px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--hp-orange);
}

.das-aside__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.das-recent-card {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 0 14px;
  text-decoration: none;
  color: inherit;
  align-items: center;
  transition: opacity 0.2s;
}
.das-recent-card:hover { opacity: 0.8; }

.das-recent-card__img {
  width: 100px;
  height: 70px;
  object-fit: cover;
  border-radius: 3px;
  display: block;
}

.das-recent-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.das-recent-card__title {
  font-family: 'DM Sans';
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--hp-dark, #1b2014);
  line-height: 1.35;
  margin: 0;
}
.das-recent-card:hover .das-recent-card__title { color: var(--hp-orange); }

.das-recent-card__date {
  font-family: 'DM Sans';
  font-size: 0.75rem;
  color: var(--hp-dark3, #4a4a44);
}

/* DAS – TABLET  ≤ 1199px */
@media (max-width: 1199px) {
  .das-container    { padding-inline: 40px; }
  .das-layout       { grid-template-columns: 1fr 260px; gap: 0 48px; }
  .das-hero__img    { height: 420px; }
}

/* DAS – MOBILE  ≤ 767px */
@media (max-width: 767px) {
  .das-container { padding-inline: 22px; }

  /* Image: natural aspect ratio, no fixed height */
  .das-hero__img {
    height: auto;
    aspect-ratio: 16 / 22;
    object-position: center center;
  }

  .das-layout {
    grid-template-columns: 1fr;
    padding: 32px 0 60px;
    gap: 48px 0;
    width: 90%;
  }

  .das-aside { position: static; }

  .das-nav {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding-bottom: 20px;
    margin-bottom: 24px;
  }

  .das-nav__share { gap: 10px; }
  .das-nav__share-label { display: none; } /* hide "Share:" label, icons are enough */

  .das-nav__share a {
    width: 32px;
    height: 32px;
    font-size: 0.8125rem;
  }

  .das-title  { font-size: 1.5rem; line-height: 1.25; margin-bottom: 12px; }
  .das-date   { font-size: 0.8125rem; margin-bottom: 28px; }
  .das-body   { font-size: 0.9375rem; line-height: 1.8; }

  /* Post footer: stack rows and wrap values */
  .das-post-footer { gap: 10px; margin-top: 36px; padding-top: 24px; }
  .das-post-footer__row { font-size: 0.8125rem; flex-wrap: wrap; gap: 6px; }

  /* CTA: full-width on mobile */
  .das-cta { margin-top: 36px; }
  .das-cta .da-btn {
    width: 100%;
    justify-content: center;
    font-size: 0.9375rem;
    padding: 15px 20px;
  }

  /* Aside heading */
  .das-aside__title { font-size: 1.2rem; margin-bottom: 20px; }
  .das-aside__list  { gap: 20px; }

  /* Recent cards: slightly smaller thumbnail */
  .das-recent-card { grid-template-columns: 88px 1fr; gap: 0 12px; }
  .das-recent-card__img { width: 88px; height: 62px; }
  .das-recent-card__title { font-size: 0.8125rem; }
  .das-recent-card__date  { font-size: 0.6875rem; }
}

/* DAS – LARGE DESKTOP  ≥ 1440px */
@media (min-width: 1440px) {
  .das-container { padding-inline: 80px; }
  .das-hero__img { height: 580px; }
  .das-layout    { gap: 0 80px; padding: 80px 0 120px; }
}

/* Desktop-wide consistency pass: match the Homepage's flat 40px side
   margin (was 40px at ≤1199, 60px base, 80px at ≥1440px). ≤1199px
   untouched. */
@media (min-width: 1200px) {
  .das-container { padding-inline: 40px; }
}

/* DAS – ACCESSIBILITY */
.das-page :focus-visible {
  outline: 3px solid var(--hp-orange);
  outline-offset: 3px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .das-nav__back,
  .das-nav__share a,
  .das-recent-card,
  .das-recent-card__title { transition: none; }
}

/* NF – 404 PAGE NOT FOUND */

/* Full-bleed */
body:has(.nf-page) > *:not(.nf-page):not(#site-header):not(#mobile-menu):not(.esd-footer),
body:has(.nf-page) .site,
body:has(.nf-page) main { max-width: none !important; padding: 0 !important; margin: 0 !important; }

/* Hero banner */
.nf-hero {
  position: relative;
  height: 420px;
  background-size: cover;
  background-position: center;
}

.nf-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(27, 32, 20, 0.35) 0%,
    rgba(27, 32, 20, 0.55) 100%
  );
}

/* Content section */
.nf-section {
  background: var(--hp-cream4);
  padding: 90px 0;
}

.nf-container {
  max-width: 680px;
  padding-inline: 60px;
  margin-inline: auto;
  text-align: center;
}

.nf-title {
  font-family: var(--hp-news);
  font-size: clamp(32px, 4.5vw, 52px);
  font-weight: 400;
  color: var(--hp-dark);
  line-height: 1.15;
  margin: 0 0 20px;
}

.nf-desc {
  font-family: var(--hp-news);
  font-size: 17px;
  color: var(--hp-dark3);
  line-height: 1.7;
  margin: 0 0 36px;
}

.nf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--hp-orange);
  color: #fff;
  font-family: var(--hp-news);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 16px 36px;
  border-radius: 40px;
  text-decoration: none;
  transition: background 0.2s ease;
}
.nf-btn:hover { background: var(--hp-orange-h); }

/* NF – TABLET  ≤ 1199px */
@media (max-width: 1199px) {
  .nf-container { padding-inline: 40px; }
}

/* NF – MOBILE  ≤ 767px */
@media (max-width: 767px) {
  .nf-hero { height: 280px; }
  .nf-section { padding: 56px 0; }
  .nf-container { padding-inline: 20px; }
  .nf-title { font-size: clamp(26px, 8vw, 32px); margin-bottom: 14px; }
  .nf-desc { font-size: 15px; margin-bottom: 28px; }
  .nf-btn { width: 100%; padding: 15px 28px; }
  .loc-city__right p {
    margin: 0 0 10px;
  }
}

/* NF – LARGE DESKTOP  ≥ 1440px */
@media (min-width: 1440px) {
  .nf-hero { height: 480px; }
  .nf-section { padding: 110px 0; }
  .nf-container { padding-inline: 80px; }
}

/* Desktop-wide consistency pass: match the Homepage's flat 40px side
   margin (was 60px base / 80px at ≥1440px). ≤1199px untouched. */
@media (min-width: 1200px) {
  .nf-container { padding-inline: 40px; }
}

/* NF – ACCESSIBILITY */
.nf-page :focus-visible {
  outline: 3px solid var(--hp-orange);
  outline-offset: 3px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .nf-btn { transition: none; }
}

/* TY – THANK YOU PAGE */

/* Full-bleed */
body:has(.ty-page) > *:not(.ty-page):not(#site-header):not(#mobile-menu):not(.esd-footer),
body:has(.ty-page) .site,
body:has(.ty-page) main { max-width: none !important; padding: 0 !important; margin: 0 !important; }

/* Hero banner */
.ty-hero {
  position: relative;
  height: 420px;
  background-size: cover;
  background-position: center;
}

.ty-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(27, 32, 20, 0.35) 0%,
    rgba(27, 32, 20, 0.55) 100%
  );
}

/* Content section */
.ty-section {
  background: var(--hp-cream4);
  padding: 90px 0;
}

.ty-container {
  max-width: 680px;
  padding-inline: 60px;
  margin-inline: auto;
  text-align: center;
}

.ty-title {
  font-family: var(--hp-news);
  font-size: clamp(32px, 4.5vw, 52px);
  font-weight: 400;
  color: var(--hp-dark);
  line-height: 1.15;
  margin: 0 0 20px;
}

.ty-desc {
  font-family: var(--hp-news);
  font-size: 17px;
  color: var(--hp-dark3);
  line-height: 1.7;
  margin: 0 0 12px;
}

.ty-phone {
  font-family: var(--hp-news);
  font-size: 17px;
  color: var(--hp-dark3);
  line-height: 1.7;
  margin: 0 0 36px;
}

.ty-phone a {
  color: var(--hp-orange);
  font-weight: 600;
  text-decoration: none;

  white-space: nowrap;
}
.ty-phone a:hover { text-decoration: underline; }

.ty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--hp-orange);
  color: #fff;
  font-family: var(--hp-news);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 16px 36px;
  border-radius: 40px;
  text-decoration: none;
  transition: background 0.2s ease;
}
.ty-btn:hover { background: var(--hp-orange-h); }

/* TY – TABLET  ≤ 1199px */
@media (max-width: 1199px) {
  .ty-container { padding-inline: 40px; }
}

/* TY – MOBILE  ≤ 767px */
@media (max-width: 767px) {
  .ty-hero { height: 280px; }
  .ty-section { padding: 56px 0; }
  .ty-container { padding-inline: 20px; }
  .ty-title { font-size: clamp(26px, 8vw, 32px); margin-bottom: 14px; }
  .ty-desc,
  .ty-phone { font-size: 15px; }
  .ty-phone { margin-bottom: 28px; }
  .ty-phone__label,
  .ty-phone__numbers {
    display: block;
    text-align: center;
  }
  .ty-phone__numbers { margin-top: 8px; }
  .ty-btn { width: 90%; padding: 15px 28px; box-sizing: border-box; }
}

/* TY – LARGE DESKTOP  ≥ 1440px */
@media (min-width: 1440px) {
  .ty-hero { height: 480px; }
  .ty-section { padding: 110px 0; }
  .ty-container { padding-inline: 80px; }
}

/* Desktop-wide consistency pass: bring every page's own container in line
   with the Homepage's flat 40px side margin (was 60px base / 80px at
   ≥1440px here — the same "grows at large desktop" pattern every other
   template container had). Placed after the ≥1440px block above so it
   wins there too (same specificity, later source order). ≤1199px
   (tablet/mobile) values are untouched. */
@media (min-width: 1200px) {
  .ty-container { padding-inline: 40px; }
}

/* TY – ACCESSIBILITY */
.ty-page :focus-visible {
  outline: 3px solid var(--hp-orange);
  outline-offset: 3px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .ty-btn { transition: none; }
}

/* GRAVITY FORMS – Submit loading spinner (form #2, all instances) */
.esd-gform-spinner {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-left: 10px;
  vertical-align: middle;
  border: 2.5px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: esd-spin 0.7s linear infinite;
}

@keyframes esd-spin {
  to { transform: rotate(360deg); }
}

#gform_2 input[type="submit"].esd-is-submitting,
#gform_2 .gform_button.esd-is-submitting {
  opacity: 0.7;
  cursor: not-allowed;
}

@media (prefers-reduced-motion: reduce) {
  .esd-gform-spinner { animation: none; }
}

/* CTA BUTTON – Standardize every page-specific "Book Your */
.ss-btn,
.faq-btn,
.au-btn,
.con-btn,
.hiw-btn,
.da-btn {
  height: auto;
  padding: 14px 32px;
  border-radius: 40px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 100%;
  transition: background 0.22s ease, color 0.22s ease,
              transform 0.22s ease, box-shadow 0.22s ease;
}

.ss-btn:hover,
.ss-btn:focus-visible,
.faq-btn:hover,
.faq-btn:focus-visible,
.au-btn:hover,
.au-btn:focus-visible,
.con-btn:hover,
.con-btn:focus-visible,
.hiw-btn:hover,
.hiw-btn:focus-visible,
.da-btn:hover,
.da-btn:focus-visible {
  background: var(--hp-orange-h);
  color: #fff;
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .ss-btn, .faq-btn, .au-btn, .con-btn, .hiw-btn, .da-btn { transition: none; }
  .ss-btn:hover, .faq-btn:hover, .au-btn:hover, .con-btn:hover, .hiw-btn:hover, .da-btn:hover {
    transform: none;
  }
}

@media (max-width: 767px) {
  .ss-btn, .faq-btn, .au-btn, .con-btn, .hiw-btn, .da-btn {
    font-size: 12px;
    padding: 14px 28px;
    width: 70%;
    height: 40px;
  }
}

/* HERO – Root-cause fix (previous patch was backwards) */


@media (max-width: 767px) {
  .da-hero {
    padding-bottom: 3%;
  }
}

@media (min-width: 1440px) {
  .da-hero {
    padding-bottom: 110px;
  }
  :root { --hp-pad-x: 80px; }
  .hp-hero__heading,
  .au-hero__title,
  .hiw-hero__title,
  .ss-hero__title,
  .faq-hero__title,
  .da-hero__title,
  .con-hero__title { font-size: 64px; width: 700px;}
  .page-template-location-new .hp-hero__heading {
    font-size: 64px;
    width: 850px;
  }
}
/* HERO – Consistent bottom spacing below CTA button (mobile only) */
@media (max-width: 767px) {
  .hp-hero .hp-btn--pri.loc-open-modal,
  .ss-hero .ss-btn.loc-open-modal,
  .faq-hero .faq-btn.loc-open-modal,
  .au-hero .au-btn.loc-open-modal,
  .hiw-hero .hiw-btn.loc-open-modal,
  .con-hero .con-btn.loc-open-modal,
  .da-hero .da-btn.loc-open-modal {
    margin-bottom: 24px;
  }
}
@media (max-width: 360px) {
  .hp-commit__desc p {
    max-width: 100%;
  }
  .hp-commit__checklist li {
    max-width: 100%;
  }
  .hp-commit__cta-title {
    max-width: 81%;
  }
  .hp-commit__cta-body {
    width: 100%;
  }
  .hp-commit__col--list .hp-btn--outline, .hp-commit__col--cta .hp-btn--pri {
    width: 100%;
  }
  .hp-locations__title {
    font-size: 24px;
  }
  .hp-btn {
    font-size: 12px;
    width: 80%;
    height: 40px;
  }
  .hp-process__step-desc {
    width: 100%;
  }
}
.page-id-45 [data-wpr-lazyrender] {
  content-visibility: visible !important;
}

.page-template-how-it-works [data-wpr-lazyrender] {
  content-visibility: visible !important;
}


@media (max-width: 575px) {
  .hp-hero {
    min-height: 80vh;
  }
}

@media (min-width: 576px) {
  .hp-hero {
    min-height: 85vh;
  }
}

@media (min-width: 768px) {
  .hp-hero {
    min-height: 90vh;
  }
}

@media (min-width: 1024px) {
  .hp-hero {
    min-height: 100vh;
  }
}

@media (min-width: 1280px) {
  .hp-hero {
    min-height: 111.5vh;
  }
}
@media (min-width: 1366) {
  .hp-hero {
    min-height: 112vh;
  }
}
@media (min-width: 1440px) {
  .hp-hero {
    min-height: 115vh;
  }
}
@media (min-width: 1920px) {
  .hp-hero {
    min-height: 110vh;
  }
}
@media (min-width: 2560px) {
  .hp-hero {
    min-height: 106vh;
  }
}
@media (min-width: 3840px) {
  .hp-hero {
    min-height: 108vh;
  }
}