@charset "UTF-8";
:root {
  /* Shared content gutter — ONE source of truth for the site's horizontal
     alignment. Content rides a centred max-width:1920 column with a 60px inner
     gutter, so the logo, the spec/plan sub-nav and every body section sit on a
     single vertical line (~293px in from each edge on a 2400px screen),
     collapsing to a flat 60px gutter below 1920px. Bar *backgrounds* stay
     full-width; only their content rides this gutter. The body's Gutenverse
     container instead caps at (1920 - 2*60) so, centred inside the post
     wrapper's own 60px padding, it lands on this exact same line. */
  --nsh-content-gutter: max(60px, calc((100% - 1920px) / 2 + 60px));
  /* On tablet/phone the centred-1920 math floors at a flat 60px each side,
     which swallows too much width on a narrow screen (~120px of a 390px phone).
     Tighten it so body sections sit nearer the edge, in step with the header's
     own mobile padding. Every block that rides this variable (home gallery,
     overview, floorplan, search, bands) narrows together, so the single
     vertical alignment line is preserved. Steps mirror the footer's. */
}
@media (max-width: 1023.98px) {
  :root {
    --nsh-content-gutter: 30px;
  }
}
@media (max-width: 640px) {
  :root {
    --nsh-content-gutter: 20px;
  }
}

/* Detail pages (home/plan/community) use a slightly narrower content column, capped so
   the full-width 16:9 gallery hero stays a fold-friendly height (~700px) rather than the
   ~880px a full 1920 column would force. Scoped to <main> so the whole detail body -
   header row, sticky sub-nav, gallery hero and every section - narrows together on the
   same gutter and stays aligned, while the site header/footer (siblings of <main>) keep
   the standard width. Desktop only: below the stacking breakpoint the mobile gutter steps
   above own the value, and the effective cap (1500px column) only changes anything past
   ~1620px anyway. */
@media (min-width: 1024px) {
  .single-specs main,
  .single-plans main,
  .single-community main {
    --nsh-content-gutter: max(60px, calc((100% - 1620px) / 2 + 60px));
  }
}
.wp-site-blocks {
  overflow-x: clip;
}

a {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.1em;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

:where(.wp-site-blocks *:focus) {
  outline-width: 2px;
  outline-style: solid;
}

.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
  margin-bottom: 3px;
}

.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
  outline-offset: 4px;
}

.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  outline-offset: 0;
}

h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
  text-wrap: pretty;
}

.more-link {
  display: block;
}

:where(pre) {
  overflow-x: auto;
}

html body {
  font-family: var(--wp--preset--font-family--gotham);
  font-size: 1rem;
  line-height: 1.25em;
}

.gform_heading {
  display: none !important;
}

body .gform-theme--api,
body .gform-theme--foundation {
  --gf-form-gap-y: 10px;
  --gf-form-gap-x: 25px;
}

body .gform-theme--api,
body .gform-theme--framework {
  --gf-ctrl-btn-font-weight: 600;
  --gf-ctrl-shadow: none;
}

body #gform_wrapper_1[data-form-index="0"].gform-theme,
body #gform_wrapper_2[data-form-index="0"].gform-theme,
body #gform_wrapper_3[data-form-index="0"].gform-theme,
body #gform_wrapper_4[data-form-index="0"].gform-theme,
#gform_wrapper_5[data-form-index="0"].gform-theme,
#gform_wrapper_6[data-form-index="0"].gform-theme,
#gform_wrapper_7[data-form-index="0"].gform-theme {
  --gf-ctrl-size-md: 48px;
}

body .gform_wrapper ::placeholder {
  color: #636569;
  opacity: 1;
}

.gform-footer.gform_footer {
  justify-content: center;
  margin-top: 40px;
}

.gform-footer.gform_footer input[type=submit] {
  font-weight: bold;
}

/* Brand the Gravity Forms submit buttons to the brand blue (#1d5c8c) site-wide — e.g.
   the "Join Our Community" newsletter "More Information" button. Each form ships a
   per-form inline <style> setting --gf-color-primary (the GF default blue, or an orange
   set in the GF admin) and the GF framework paints the button from that var with a
   high-specificity :where() rule, so we override BOTH the var and the background with
   !important. The Warranty Service Request form (id 4) is the orange exception below. */
.gform_wrapper {
  --gf-color-primary: #1d5c8c !important;
  --gf-color-primary-rgb: 42, 95, 158 !important;
  --gf-color-primary-contrast: #ffffff !important;
  --gf-color-primary-darker: #244f83 !important;
  --gf-color-primary-lighter: #346cae !important;
}

.gform_wrapper .gform_footer input[type=submit],
.gform_wrapper .gform_footer button,
.gform_wrapper .gform-footer input[type=submit],
.gform_wrapper .gform-footer button,
.gform_wrapper input.gform_button,
.gform_wrapper button.gform_button {
  background-color: #1d5c8c !important;
  border-color: #1d5c8c !important;
  color: #fff !important;
}

.gform_wrapper .gform_footer input[type=submit]:hover,
.gform_wrapper .gform_footer button:hover,
.gform_wrapper .gform-footer input[type=submit]:hover,
.gform_wrapper .gform-footer button:hover,
.gform_wrapper input.gform_button:hover,
.gform_wrapper button.gform_button:hover {
  background-color: #244f83 !important;
  border-color: #244f83 !important;
}

/* The Warranty Service Request (id 4) and the Contact Us "Connect with us!" (id 6) forms
   keep the legacy ORANGE submit. The id selector outranks the brand-blue rules above (even
   among !important declarations). */
#gform_wrapper_4,
#gform_wrapper_6 {
  --gf-color-primary: #b69121 !important;
  --gf-color-primary-rgb: 255, 105, 0 !important;
  --gf-color-primary-contrast: #ffffff !important;
  --gf-color-primary-darker: #e05e00 !important;
  --gf-color-primary-lighter: #ff7d24 !important;
}

#gform_wrapper_4 .gform_footer input[type=submit],
#gform_wrapper_4 .gform-footer input[type=submit],
#gform_wrapper_4 input.gform_button,
#gform_wrapper_4 button.gform_button,
#gform_wrapper_6 .gform_footer input[type=submit],
#gform_wrapper_6 .gform-footer input[type=submit],
#gform_wrapper_6 input.gform_button,
#gform_wrapper_6 button.gform_button {
  background-color: #b69121 !important;
  border-color: #b69121 !important;
  color: #fff !important;
}

#gform_wrapper_4 .gform_footer input[type=submit]:hover,
#gform_wrapper_4 input.gform_button:hover,
#gform_wrapper_4 button.gform_button:hover,
#gform_wrapper_6 .gform_footer input[type=submit]:hover,
#gform_wrapper_6 input.gform_button:hover,
#gform_wrapper_6 button.gform_button:hover {
  background-color: #e05e00 !important;
  border-color: #e05e00 !important;
}

#gform_wrapper_2,
#gform_wrapper_1,
#gform_wrapper_3,
#gform_wrapper_4,
#gform_wrapper_5,
#gform_wrapper_6,
#gform_wrapper_7 {
  width: 100%;
}

body .gform-theme--framework .gfield--input-type-datepicker .ginput_container_date input {
  --gf-local-width: 100%;
}

body .gform-theme--foundation .gfield textarea {
  resize: none;
}

.flex-height > div > * {
  height: 100%;
}

.flex-height > div > h4 {
  display: flex;
  justify-content: center;
  align-items: center;
}

.flex-height,
.flex-height .block-editor-block-list__layout {
  align-items: stretch !important;
}

.home_slider .swiper-button-next,
.home_slider .swiper-container-rtl .swiper-button-prev {
  right: 50px !important;
}

.home_slider .swiper-button-prev,
.home_slider .swiper-container-rtl .swiper-button-next {
  left: 50px !important;
}

@media screen and (max-width: 767px) {
  .cities-map-block .side-image-container {
    min-height: auto !important;
  }
}
nav:has(ul.locations_nav) {
  width: 100%;
  max-width: 100% !important;
}

ul.locations_nav li a {
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  padding: 8px 15px;
  cursor: pointer !important;
}

ul.locations_nav li a:hover {
  background-color: var(--wp--preset--color--contrast, #0c3554);
  color: #fff !important;
}

/* Location hero — keep the navy legibility scrim sized and aligned to the slider
   photo. Gutenverse authored the scrim with a FIXED width and `left:-20px`, so it
   (a) juts ~20px past the photo's left edge and (b) cannot follow the photo when
   the column grows. Anchor it to the column box instead (left:0, right:20px to
   clear the column's 20px right padding, width:auto) so it sits exactly over the
   photo at any width — including the full-bleed widths below. Targeted
   structurally (the overlay that is a sibling of the slider), so it holds on
   every /locations/ page regardless of that page's generated Gutenverse hash. */
.guten-column-wrapper:has(> .p7-simple-slider-block) > .guten-wrap-helper {
  left: 0 !important;
  right: 20px !important;
  width: auto !important;
}

/* Location hero — full-bleed on ultra-wide (>1920px) screens. The hero row
   (photo slider + area map) is a fixed 1920px block centered in the page, so on
   4K monitors it leaves a large white side-gutter and the slider photo's left
   edge reads as fading into the white. Above 1920px, drop the row's max-width
   cap and let the two columns grow proportionally (2:1, matching the original
   1280:640) so the photo and map fill the viewport edge to edge. The p7 slider
   (Swiper) reads its column width on init and watches it with a resize observer,
   so it sizes the slides to the wider column on its own. Scoped to >1920px so the
   normal desktop / tablet / mobile layout is untouched. Applies to every
   /locations/ hero that uses this slider+map structure. */
@media (min-width: 1921px) {
  .wp-block-gutenverse-section:has(.p7-simple-slider-block) .guten-container {
    max-width: none !important;
  }
  .wp-block-gutenverse-section:has(.p7-simple-slider-block) .wp-block-gutenverse-column:has(.p7-simple-slider-block) {
    flex: 0 0 auto !important;
    width: 66.667% !important;
    max-width: none !important;
  }
  .wp-block-gutenverse-section:has(.p7-simple-slider-block) .wp-block-gutenverse-column:not(:has(.p7-simple-slider-block)) {
    flex: 0 0 auto !important;
    width: 33.333% !important;
    max-width: none !important;
  }
}
@media screen and (max-width: 767px) {
  .spce_text p,
  .plan_text p {
    text-align: center !important;
    margin-bottom: 6px !important;
  }
}
span.gfield_required.gfield_required_asterisk {
  color: var(--wp--preset--color--contrast, #0c3554);
}

.single-post .entry-content img {
  display: block;
  width: 100%;
  max-width: 520px;
  float: none !important;
  margin: 40px auto !important;
}

h2,
h3 {
  color: inherit;
}

.bg-slideshow-container,
.bg-slideshow-container * {
  transition: none !important;
}

@media screen and (min-width: 1920px) {
  .hero-section--style {
    height: auto !important;
    min-height: 680px;
    background-position: center center !important;
  }
}
#gform_submit_button_6 {
  width: 100% !important;
  max-width: 100% !important;
}

.footer-links a,
.header-links a {
  cursor: pointer !important;
}

.footer-links a:hover,
.header-links a:hove {
  color: rgba(255, 255, 255, 0.9) !important;
}

.guten-mega-menu.horizontal .mega-menu-item.mega-menu-mega-menu.header-mega.is-open .mega-menu-body {
  display: flex;
}

.icon_bar_header:hover svg path {
  stroke: var(--wp--preset--color--orange, #b69121);
}

header {
  position: sticky;
  z-index: 9999;
  top: 0;
  transition: background 0.3s ease, box-shadow 0.3s ease !important;
}

/* Elements animation */
header .main-header,
header .header-icon,
header .header-mega,
header .header-col {
  transition: padding 0.35s ease, transform 0.35s ease, opacity 0.3s ease !important;
}

/* Default header spacing */
header .main-header {
  padding: 25px 0;
}

@media screen and (max-width: 767px) {
  header .main-header {
    padding: 14px 0;
  }
}
/* Shrink state */
header.shrink .main-header {
  padding: 5px 0;
}

/* Optional shadow when scrolling */
header.shrink {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.header-mega .mega-menu-item-body {
  transition: background 0.35s ease, backdrop-filter 0.35s ease !important;
}

/* Mega menu background */
header.shrink .header-mega .mega-menu-item-body {
  /*background: linear-gradient(180deg,
          rgba(0, 103, 177, 1) 0%,
          rgba(6, 37, 55, 1) 100%) !important;*/
  background: rgba(42, 95, 158, 0.95) !important;
}

@media screen and (max-width: 1024px) {
  body .guten-nav-menu.break-point-tablet .gutenverse-menu-wrapper .gutenverse-menu li .sub-menu.dropdown-open {
    display: none;
    opacity: 0;
    visibility: hidden;
  }
  body .guten-nav-menu.break-point-tablet .gutenverse-menu-wrapper .gutenverse-menu li .sub-menu.is-open-mobile {
    display: block;
    opacity: 1;
    visibility: visible;
  }
}
.timeline_slider .swiper-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 100%;
  position: relative !important;
  padding-top: 60px;
}

header .header-icon {
  cursor: pointer;
}

.communities-nav ul li {
  flex: 0 0 calc(50% - 10px);
}

.communities-nav ul {
  justify-content: flex-start;
  align-items: flex-start;
  gap: 10px 20px;
}

.icon-menu {
  justify-content: flex-end;
}

.box-sizing-boderbox {
  box-sizing: border-box;
}

.header-icon:hover .text_menu {
  color: var(--wp--preset--color--orange, #b69121);
}

.header-wrapper {
  transition: background 3s ease, backdrop-filter 0.35s ease !important;
}

.shrink .header-wrapper {
  /*background: linear-gradient(180deg, rgba(0, 103, 177, 1) 0%, rgba(0, 45, 71, 1) 100%) !important;*/
  background: rgba(42, 95, 158, 0.95) !important;
}

.accordion-menu .accordion-heading {
  position: relative;
}

.accordion-menu h3.accordion-text {
  border-bottom: 3px solid #fff;
  padding-bottom: 10px;
}

.accordion-menu .accordion-icon {
  position: absolute;
  right: 0;
  top: 15%;
}

header .header-mega .mega-menu-item-body {
  top: 26px;
}

header.shrink .header-mega .mega-menu-item-body {
  top: 6px;
}

/* Hover bridge: the panel sits 26px below the trigger, leaving a dead strip the
   cursor falls through on a diagonal move toward a community — closing the menu.
   This invisible pseudo-element fills that gap so the panel stays :hover during
   transit. Left-anchored + capped width so it never overlaps the CONTACT US /
   CALL US buttons to the right. Hidden automatically when the panel is closed. */
header .header-mega .mega-menu-item-body::before {
  content: "";
  position: absolute;
  left: 0;
  top: -28px;
  width: 260px;
  height: 28px;
}

header.shrink .header-mega .mega-menu-item-body::before {
  top: -8px;
  height: 8px;
}

.flex-buttons > .guten-inner-wrap {
  gap: 5px;
}

.flex-buttons .guten-button-wrapper {
  flex: 1;
}

@media screen and (min-width: 1024px) {
  .show-mobile {
    display: none !important;
  }
}
body.hide-virtual-tour #virtual-tour,
body.hide-virtual-tour .virtual-tour-line,
body.hide-virtual-tour .virtual-tour-link {
  display: none !important;
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

body.hide-navigation .inner-menu > div {
  display: none !important;
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.timeline_slider .swiper-button-next:after,
.timeline_slider .swiper-container-rtl .swiper-button-prev:after {
  font-size: 24px;
}

.timeline_slider .swiper-button-prev:after,
.timeline_slider .swiper-container-rtl .swiper-button-next:after {
  font-size: 24px;
}

.plan_box > .guten-inner-wrap > * {
  flex: 1;
}

.social_share_icons {
  gap: 10px;
}

.about-us-slider .p7-dual-slider-navigation {
  display: none !important;
}

.btn-item-header {
  border: 1px solid var(--wp--preset--color--orange, #b69121);
}

.btn-item-header:hover {
  background: var(--wp--preset--color--orange, #b69121);
}

.btn-item-header:hover a {
  color: #fff !important;
}

@media screen and (min-width: 1024px) and (max-width: 1150px) {
  header .header-wrapper {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  header .header-logo {
    width: 20% !important;
  }
  header .header-menu {
    width: 80% !important;
  }
  header .header-menu .mega-menu-heading,
  header .header-menu .mega-menu-heading span,
  header .header-menu .mega-menu-heading a {
    font-size: 0.75rem !important;
  }
}
@media screen and (min-width: 1150px) and (max-width: 1250px) {
  header .header-wrapper {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
  header .header-logo {
    width: 20% !important;
  }
  header .header-menu {
    width: 80% !important;
  }
  header .header-menu .mega-menu-heading,
  header .header-menu .mega-menu-heading span,
  header .header-menu .mega-menu-heading a {
    font-size: 0.85rem !important;
  }
}
@media screen and (min-width: 1250px) and (max-width: 1450px) {
  header .header-wrapper {
    padding-left: 50px !important;
    padding-right: 50px !important;
  }
  header .header-logo {
    width: 20% !important;
  }
  header .header-menu {
    width: 80% !important;
  }
  header .header-menu .mega-menu-heading,
  header .header-menu .mega-menu-heading span,
  header .header-menu .mega-menu-heading a {
    font-size: 0.85rem !important;
  }
}
@media screen and (min-width: 1450px) and (max-width: 1550px) {
  header .header-logo {
    width: 20% !important;
  }
  header .header-menu {
    width: 80% !important;
  }
}
.inner-header .hide-collapsed {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0.35s;
}

header.shrink:not(.show-menu-up) .inner-header .hide-collapsed {
  opacity: 0;
  transform: translateY(-10px);
  visibility: hidden;
}

header .inner-header .mega-menu-item-body {
  top: 16px;
}

header.shrink .inner-header .header-mega .mega-menu-item-body {
  top: 6px;
}

/* Spec action buttons: render as evenly-spaced separate buttons, matching the
   plan/model pages (.flex-buttons). The old 2fr/1fr grid crammed "SCHEDULE TOUR"
   + "CALL US" into a single edge-to-edge bar. */
.buttons-grid > .guten-inner-wrap {
  gap: 5px;
}

.buttons-grid .guten-button-wrapper {
  flex: 1;
}

.search-link {
  border: 1px solid var(--wp--preset--color--orange, #b69121);
}

.search-link .mega-menu-heading {
  background-image: url("/wp-content/uploads/2026/03/Search-Icon-1.png");
  padding: 0px !important;
  width: 50px;
  height: 50px;
  background-size: 23px;
  background-repeat: no-repeat;
  background-position: center;
}

.search-link:hover {
  background-color: var(--wp--preset--color--orange, #b69121);
}

.search-link:hover .mega-menu-heading {
  background-image: url("/wp-content/uploads/2026/04/Search-Icon-w.png");
}

.search-link .mega-menu-heading span {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.group-buttons {
  display: flex;
  justify-content: center;
  padding: 30px 0px;
  gap: 5px;
  align-items: center;
  max-width: 500px;
  margin: auto;
}

.wp-site-blocks .guten-element[id] {
  scroll-margin-top: 150px;
}

.group-buttons .btn-form {
  flex: 1;
}

a.btn-form {
  background-color: var(--wp--preset--color--orange, #b69121);
  padding: 0px 20px;
  line-height: 36px;
  font-size: 14px;
  font-weight: bold;
  color: #fff;
  border: 1px solid var(--wp--preset--color--orange, #b69121);
  text-align: center;
}

a.btn-form:hover {
  background-color: transparent;
  color: var(--wp--preset--color--orange, #b69121);
}

#gform_8 #gform_submit_button_8 {
  display: none;
}

#gform_9 .gform-footer {
  justify-content: flex-end;
}

input#gform_submit_button_9 {
  text-transform: uppercase;
  font-weight: 500;
  font-size: 20px;
}

.guten-button span {
  margin-top: 1px;
}

header.shrink .top-header {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}

.promo-shape {
  --s: 15px;
  line-height: 1.8;
  padding-inline: 0.3em calc(var(--s) + 0.3em);
  clip-path: polygon(0 0, calc(100% - var(--s)) 0, 100% 50%, calc(100% - var(--s)) 100%, 0 100%);
  width: 100%;
}

.footer-links .wp-block-navigation-item .wp-block-navigation-item__content {
  cursor: pointer;
}

.footer-links a.wp-block-navigation-item__content:hover {
  color: var(--wp--preset--color--orange, #b69121) !important;
  text-decoration: underline;
}

.top-header .search-link .mega-menu-heading {
  width: 29px;
  height: 29px;
  background-size: 16px;
}

/* CONTACT US / CALL US / Search: one compact, equal-height row.
   Gutenverse's item padding made these buttons oversized, which inflated the
   whole header. Pinning all three to a shared height makes the search box match
   the text buttons AND keeps the nav tight. They shrink further once scrolled.
   Two knobs: --nav-btn-h (default height) and the shrink override below. */
.btn-item-header,
.search-link {
  --nav-btn-h: 40px;
  display: flex;
  align-items: stretch;
  height: var(--nav-btn-h);
  box-sizing: border-box;
}

header.shrink .btn-item-header,
header.shrink .search-link {
  --nav-btn-h: 30px;
}

/* Kill the tall vertical padding so the shared height takes effect, keep text
   centred. Horizontal padding stays for the text buttons. */
.btn-item-header .mega-menu-heading,
.search-link .mega-menu-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box;
}

/* Search box: square (width tracks the height), icon centred, no side padding. */
.search-link .mega-menu-heading,
.top-header .search-link .mega-menu-heading {
  width: var(--nav-btn-h);
  height: 100%;
  padding-left: 0 !important;
  padding-right: 0 !important;
  background-size: 18px;
}

.communities_links_n p strong {
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 7px;
}

@media screen and (max-width: 767px) {
  .locations_nav {
    flex-direction: row;
    width: 100%;
  }
  .locations_nav li {
    width: 48%;
  }
  .locations_nav li a {
    width: 100%;
    font-size: 11px;
    padding: 5px !important;
    text-align: center;
  }
  .wp-block-p7-video-gallery.p7-video-gallery {
    height: auto;
  }
}
.popup-search-mobile .guten-popup-content {
  height: 100vh;
}

@media screen and (max-width: 767px) {
  .spec_text p, .spec_text h3 {
    text-align: left !important;
  }
}
@media screen and (max-width: 767px) {
  .bg-color-box {
    background-color: rgb(25, 76, 147) !important;
  }
}
/* Available Homes (and any page that leads with the legacy p7 cities map):
   the baked Gutenverse wrapper around the map carries a 100px top pad, which
   leaves a white gap between the site header and the map's area-nav bar.
   Collapse it so the map sits directly under the header. Scoped to the wrapper
   that actually contains the map, so it never affects other Gutenverse sections;
   render-time, re-import-safe (no page-content edit). */
.wp-block-gutenverse-wrapper:has(> .guten-inner-wrap > .cities-map-block) {
  padding-top: 0 !important;
}

/* Legacy hardcoded rate banner ("Save up to $40,000 in Design Options ... 4.99% / 5.042
   APR") baked into plan/spec/community Gutenverse bodies. Stale, unmanaged marketing
   the client asked to remove. Hidden render-time (non-destructive, reversible) via its
   distinctive .promo-shape arrow. NOTE: the arrow and the copy are SIBLING rows inside
   the banner's flex container (the arrow's own parent does NOT hold the copy), so the
   earlier `:has(> .promo-shape)` rule only hid the empty arrow and left the text on the
   page. Hide the whole flex container that CONTAINS the arrow instead — that wraps both
   rows. The banner is always its own self-contained flex container, so this never
   reaches the page's main content. Drop this rule once a managed promo replaces it. */
.guten-flex-container:has(.promo-shape) {
  display: none !important;
}

.nsh2-hero {
  isolation: isolate;
  overflow: hidden;
}
.nsh2-hero::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.45) 100%), linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4));
  content: "";
  inset: 0;
  position: absolute;
  z-index: 0;
}
.nsh2-hero .wp-block-cover__inner-container {
  margin: 0 auto;
  max-width: 1440px;
  padding: clamp(64px, 8.5vw, 120px) clamp(24px, 5.5vw, 80px);
  width: 100%;
}
@media (max-width: 1024px) {
  .nsh2-hero:not(.nsh2-hero--home) {
    min-height: min(680px, 88svh) !important;
  }
}

.nsh2-hero--home {
  min-height: 100svh !important;
}
.nsh2-hero--home.wp-block-cover.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container {
  box-sizing: border-box;
  margin-left: 3%;
  max-width: none;
  padding-left: 80px;
  padding-right: 80px;
}
@media (max-width: 1439px) {
  .nsh2-hero--home .wp-block-cover__inner-container {
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media (max-width: 1179px) {
  .nsh2-hero--home .wp-block-cover__inner-container {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (min-width: 2000px) {
  .nsh2-hero--home .nsh2-hero__text {
    gap: 32px;
    max-width: clamp(680px, 32vw, 880px);
  }
  .nsh2-hero--home .nsh2-tagline {
    font-size: 14px;
    letter-spacing: 2.2px;
  }
  .nsh2-hero--home .nsh2-hero__title {
    font-size: clamp(72px, 3.2vw, 88px);
  }
  .nsh2-hero--home .nsh2-hero__copy {
    font-size: clamp(18px, 0.85vw, 22px);
    line-height: 1.65;
  }
  .nsh2-hero--home .nsh2-btn-outline,
  .nsh2-hero--home .nsh2-link-underline {
    font-size: 14px;
  }
}

.nsh2-hero__text {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 536px;
}
.nsh2-hero__text > * {
  margin: 0;
}

.nsh2-tagline {
  align-items: center;
  color: var(--wp--preset--color--base, #fff);
  display: flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 8px;
  letter-spacing: 1.8px;
  line-height: normal;
  text-transform: uppercase;
}
.nsh2-tagline::before {
  background: currentColor;
  content: "";
  height: 1px;
  transform: scaleX(var(--nsh2-rule, 1));
  transform-origin: right center;
  width: 40px;
}

.nsh2-hero__title {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(40px, 4.2vw, 60px);
  font-weight: 400;
  line-height: 1.13;
}

.nsh2-hero__copy {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
}

.nsh2-hero__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  position: relative;
}
.nsh2-hero__actions--ready .nsh2-btn-outline {
  border-color: transparent;
}
.nsh2-hero__actions--ready .nsh2-btn-outline:hover, .nsh2-hero__actions--ready .nsh2-btn-outline:focus-visible {
  background: transparent;
  color: var(--wp--preset--color--base, #fff);
}
.nsh2-hero__actions:not(.is-swapped) .nsh2-btn-outline:hover, .nsh2-hero__actions:not(.is-swapped) .nsh2-btn-outline:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-hero__actions .nsh2-btn-outline__icon {
  transition: transform 0.32s ease-out;
}
.nsh2-hero__actions .nsh2-btn-outline:hover .nsh2-btn-outline__icon,
.nsh2-hero__actions .nsh2-btn-outline:focus-visible .nsh2-btn-outline__icon {
  transform: translateX(4px);
}
.nsh2-hero__actions .nsh2-link-underline {
  align-items: center;
  border-bottom: 0;
  display: inline-flex;
  gap: 0;
  padding: 16px;
  transition: color 0.32s ease-out, gap 0.32s ease-out;
}
.nsh2-hero__actions .nsh2-link-underline:hover, .nsh2-hero__actions .nsh2-link-underline:focus-visible {
  border-bottom-width: 0;
  padding-bottom: 16px;
}
.nsh2-hero__actions .nsh2-link-underline .nsh2-btn-outline__icon {
  opacity: 0;
  overflow: hidden;
  transform: none;
  transition: width 0.32s ease-out, opacity 0.32s ease-out;
  width: 0;
}
.nsh2-hero__actions .nsh2-link-underline:hover::after,
.nsh2-hero__actions .nsh2-link-underline:focus-visible::after {
  animation: none;
}
.nsh2-hero__actions .nsh2-btn-outline::after,
.nsh2-hero__actions .nsh2-link-underline::after {
  background: currentColor;
  bottom: 12px;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.32s ease-out;
  width: 100%;
}
.nsh2-hero__actions .nsh2-btn-outline {
  position: relative;
}
.nsh2-hero__actions .nsh2-btn-outline::after {
  left: 16px;
  transform-origin: right center;
  width: calc(100% - 32px);
}
.nsh2-hero__actions .nsh2-link-underline {
  position: relative;
}
.nsh2-hero__actions .nsh2-link-underline::after {
  left: 16px;
  transform: scaleX(1);
  width: calc(100% - 32px);
}
.nsh2-hero__actions.is-swapped .nsh2-btn-outline::after {
  transform: scaleX(1);
}
.nsh2-hero__actions.is-swapped .nsh2-link-underline {
  color: var(--wp--preset--color--contrast, #0c3554);
  gap: 16px;
}
.nsh2-hero__actions.is-swapped .nsh2-link-underline::after {
  transform: scaleX(0);
}
.nsh2-hero__actions.is-swapped .nsh2-link-underline .nsh2-btn-outline__icon {
  opacity: 1;
  transform: none;
  width: 12px;
}
.nsh2-hero__actions.is-swapped .nsh2-hero__actions-frame {
  background: var(--wp--preset--color--base, #fff);
  border-color: var(--wp--preset--color--base, #fff);
  transition-delay: 0.12s;
}
.nsh2-hero__actions.is-measuring, .nsh2-hero__actions.is-measuring * {
  transition: none !important;
}

.nsh2-hero__actions-frame {
  background: transparent;
  border: 1px solid var(--wp--preset--color--base, #fff);
  box-sizing: border-box;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.nsh2-btn-outline {
  align-items: center;
  border: 1px solid currentColor;
  color: var(--wp--preset--color--base, #fff);
  display: inline-flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 16px;
  letter-spacing: 1.8px;
  line-height: normal;
  padding: 16px;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.nsh2-btn-outline:hover, .nsh2-btn-outline:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-btn-outline:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

.nsh2-btn-outline__icon {
  flex: 0 0 auto;
}

.nsh2-btn-fill {
  align-items: center;
  background: var(--wp--preset--color--accent-1, #d2ba81);
  border: 1px solid var(--wp--preset--color--accent-1, #d2ba81);
  color: var(--wp--preset--color--contrast, #0c3554);
  display: inline-flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 16px;
  letter-spacing: 1.8px;
  line-height: normal;
  padding: 16px;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.nsh2-btn-fill:hover, .nsh2-btn-fill:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  border-color: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-btn-fill:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

@keyframes nsh2-line-draw {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-link-underline:hover::after,
  .nsh2-link-underline:focus-visible::after {
    animation: none;
  }
}
.nsh2-link-underline {
  border-bottom: 0;
  color: var(--wp--preset--color--base, #fff);
  display: inline-block;
  position: relative;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: normal;
  padding-bottom: 4px;
  text-decoration: none;
  text-transform: uppercase;
}
.nsh2-link-underline::after {
  background: currentColor;
  bottom: 0;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(1);
  transform-origin: left center;
  width: 100%;
}
.nsh2-link-underline:hover, .nsh2-link-underline:focus-visible {
  border-bottom-width: 0;
  color: var(--wp--preset--color--base, #fff);
  padding-bottom: 4px;
}
.nsh2-link-underline:hover::after, .nsh2-link-underline:focus-visible::after {
  animation: nsh2-line-draw 0.45s ease;
}
.nsh2-link-underline:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

.wp-block-cover.nsh2-hero.nsh2-hero--community {
  align-items: flex-start;
  padding: 0;
}
.wp-block-cover.nsh2-hero.nsh2-hero--community::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.45) 100%), linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45));
}
.wp-block-cover.nsh2-hero.nsh2-hero--community .wp-block-cover__inner-container {
  display: flex;
  justify-content: center;
  padding-top: 306px;
  padding-bottom: 176px;
}
.wp-block-cover.nsh2-hero.nsh2-hero--community .nsh2-hero__text {
  align-items: center;
  max-width: 628px;
  text-align: center;
}

.nsh2-chero__title {
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1.111;
}

.nsh2-tagline--dual::after {
  background: currentColor;
  content: "";
  height: 1px;
  transform: scaleX(var(--nsh2-rule, 1));
  transform-origin: left center;
  width: 40px;
}

.nsh2-chero__rule {
  background: var(--wp--preset--color--base, #fff);
  height: 1px;
  width: 169px;
}

.nsh2-chero__tiles {
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  background: rgba(0, 0, 0, 0.16);
  border-top: 0.5px solid var(--wp--preset--color--accent-3, #e9e9e9);
  bottom: 0;
  box-sizing: border-box;
  height: 112px;
  align-items: stretch;
  display: flex;
  justify-content: center;
  left: 0;
  list-style: none;
  margin: 0;
  padding: 0 clamp(24px, 5.5vw, 80px);
  position: absolute;
  text-align: center;
  width: 100%;
  z-index: 1;
}

.nsh2-chero__tile {
  align-self: stretch;
  border-right: 0.5px solid var(--wp--preset--color--accent-3, #e9e9e9);
  box-sizing: border-box;
  display: flex;
  flex: 0 1 302px;
  flex-direction: column;
  gap: 8px;
  height: 100%;
  justify-content: center;
  padding: 24px 16px;
  position: relative;
  z-index: 1;
}
.nsh2-chero__tile:last-child {
  border-right: 0;
}

.nsh2-chero__spot {
  height: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  visibility: hidden;
  width: 0;
  z-index: 0;
}

.nsh2-chero__spot-fill {
  background: rgba(255, 255, 255, 0.2);
  inset: 0;
  position: absolute;
}

.nsh2-chero__spot svg {
  display: block;
  height: 100%;
  left: 0;
  overflow: visible;
  position: absolute;
  top: 0;
  width: 100%;
}

.nsh2-chero__spot path {
  fill: none;
  stroke: var(--wp--preset--color--base, #fff);
  stroke-width: 1;
}

.nsh2-chero__tiles:not(.nsh2-chero__tiles--motion) .nsh2-chero__tile:hover,
.nsh2-chero__tiles:not(.nsh2-chero__tiles--motion) .nsh2-chero__tile:focus-within {
  background: rgba(255, 255, 255, 0.18);
  box-shadow: inset 0 0 0 1px var(--wp--preset--color--base, #fff);
}
.nsh2-chero__tiles:not(.nsh2-chero__tiles--motion) .nsh2-chero__tile:hover .nsh2-chero__tile-value,
.nsh2-chero__tiles:not(.nsh2-chero__tiles--motion) .nsh2-chero__tile:focus-within .nsh2-chero__tile-value {
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.95), 0 0 26px rgba(190, 220, 245, 0.9);
  transform: scale(1.06);
}
.nsh2-chero__tiles:not(.nsh2-chero__tiles--motion) .nsh2-chero__tile:hover .nsh2-chero__tile-label,
.nsh2-chero__tiles:not(.nsh2-chero__tiles--motion) .nsh2-chero__tile:focus-within .nsh2-chero__tile-label {
  color: var(--wp--preset--color--base, #fff);
}
.nsh2-chero__tiles:not(.nsh2-chero__tiles--motion):hover .nsh2-chero__tile:not(:hover), .nsh2-chero__tiles:not(.nsh2-chero__tiles--motion):focus-within .nsh2-chero__tile:not(:focus-within) {
  opacity: 0.4;
}

.nsh2-chero__tile-value {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 28px;
  line-height: 34px;
  text-shadow: 0 0 0 rgba(255, 255, 255, 0), 0 0 0 rgba(190, 220, 245, 0);
  transform-origin: center center;
}

.nsh2-chero__tile-label {
  color: var(--wp--preset--color--accent-3, #e9e9e9);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: normal;
  text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
  .nsh2-chero__tiles:not(.nsh2-chero__tiles--motion) .nsh2-chero__tile:hover .nsh2-chero__tile-value,
  .nsh2-chero__tiles:not(.nsh2-chero__tiles--motion) .nsh2-chero__tile:focus-within .nsh2-chero__tile-value {
    transform: none;
  }
}
@media (max-width: 1024px) {
  .nsh2-hero--community .wp-block-cover__inner-container {
    padding-top: clamp(168px, 22vw, 240px);
  }
}
@media (max-width: 782px) {
  .wp-block-cover.nsh2-hero.nsh2-hero--community {
    align-items: center;
    flex-direction: column;
    justify-content: center;
  }
  .nsh2-hero--community .wp-block-cover__inner-container {
    display: flex;
    flex: 1 0 auto;
    align-items: center;
    padding-top: clamp(64px, 8.5vw, 120px);
    padding-bottom: clamp(64px, 8.5vw, 120px);
  }
  .nsh2-chero__tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    height: auto;
    position: static;
    width: 100%;
  }
  .nsh2-chero__tile {
    border-right: 0;
    padding: 24px 8px;
  }
  .nsh2-chero__tile:nth-child(odd):not(:last-child) {
    border-right: 0.5px solid var(--wp--preset--color--accent-3, #e9e9e9);
  }
  .nsh2-chero__tile:nth-child(n+3) {
    border-top: 0.5px solid var(--wp--preset--color--accent-3, #e9e9e9);
  }
  .nsh2-chero__tile-value {
    font-size: 22px;
    line-height: 28px;
  }
}
body.nsh2-has-cbar {
  --nsh2-cbar-h: 84px;
}

.nsh2-cbar {
  align-items: center;
  background: var(--wp--preset--color--accent-1, #d2ba81);
  border-bottom: 1px solid var(--wp--preset--color--contrast, #0c3554);
  box-shadow: 0 1px 2.5px rgba(0, 0, 0, 0.15);
  box-sizing: border-box;
  color: var(--wp--preset--color--contrast, #0c3554);
  display: flex;
  gap: clamp(24px, 4.5vw, 64px);
  justify-content: center;
  left: 0;
  margin: 0;
  padding: 24px clamp(24px, 5.5vw, 80px);
  position: fixed;
  right: 0;
  top: var(--nsh2-header-h, 96px);
  z-index: 80;
}

.admin-bar .nsh2-cbar {
  top: calc(96px + var(--wp-admin--admin-bar--height, 32px));
}

.nsh2-cbar__name {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 28px;
  line-height: 34px;
  margin: 0;
  white-space: nowrap;
}

.nsh2-cbar__menu {
  display: flex;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nsh2-cbar__menu li {
  margin: 0;
}

.nsh2-cbar__item--more {
  display: none;
}

.nsh2-cbar__nudge {
  display: none;
}

.nsh2-cbar__link {
  color: var(--wp--preset--color--contrast, #0c3554);
  display: inline-block;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: normal;
  padding-bottom: 4px;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.nsh2-cbar__link::after {
  background: currentColor;
  bottom: 0;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s ease;
  width: 100%;
}
.nsh2-cbar__link:hover, .nsh2-cbar__link:focus-visible {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-cbar__link:hover::after, .nsh2-cbar__link:focus-visible::after {
  transform: scaleX(1);
}
.nsh2-cbar__link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: no-preference) {
  .nsh2-cbar__name,
  .nsh2-cbar__menu li,
  .nsh2-cbar__actions {
    animation: nsh2-cbar-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
  }
  .nsh2-cbar__menu li:nth-child(2) {
    animation-delay: 0.04s;
  }
  .nsh2-cbar__menu li:nth-child(3) {
    animation-delay: 0.08s;
  }
  .nsh2-cbar__menu li:nth-child(4) {
    animation-delay: 0.12s;
  }
  .nsh2-cbar__menu li:nth-child(5) {
    animation-delay: 0.16s;
  }
  .nsh2-cbar__actions {
    animation-delay: 0.12s;
  }
}
@keyframes nsh2-cbar-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-cbar__link::after {
    transition: none;
  }
}
.nsh2-cbar__actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  gap: 16px;
}

.nsh2-cbar__cta {
  box-sizing: border-box;
  color: var(--wp--preset--color--contrast, #0c3554);
  flex: 0 0 auto;
  height: 32px;
  line-height: 1;
  padding: 0 16px;
  white-space: nowrap;
}

.nsh2-cbar .nsh-fav {
  background: transparent;
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  box-shadow: none;
  height: 32px;
  position: static;
  width: 32px;
}
.nsh2-cbar .nsh-fav svg {
  height: 16px;
  width: 16px;
}

#overview,
#available_homes,
#community-amenities,
#community-map,
#community-proximity,
#gallery,
#join-our-community,
#floor-plan,
#design-options,
#neighborhood,
#similar-homes,
#sales-associate {
  scroll-margin-top: 200px;
}

@media (max-width: 1024px) {
  body.nsh2-has-cbar {
    --nsh2-cbar-h: 49px;
  }
  .nsh2-cbar {
    align-items: stretch;
    display: flex;
    padding: 0;
    position: sticky;
    top: var(--nsh2-header-h, 66px);
  }
  .nsh2-cbar__nudge {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--wp--preset--color--contrast, #0c3554);
    cursor: pointer;
    display: none;
    flex: 0 0 40px;
    justify-content: center;
    padding: 0;
  }
  .nsh2-cbar__nudge:disabled {
    cursor: default;
    opacity: 0.28;
  }
  .nsh2-cbar__nudge:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: -6px;
  }
  .nsh2-cbar--overflow .nsh2-cbar__nudge {
    display: flex;
  }
  .admin-bar .nsh2-cbar {
    top: calc(var(--nsh2-header-h, 66px) + var(--wp-admin--admin-bar--height, 32px));
  }
  .nsh2-cbar__name,
  .nsh2-cbar__actions {
    display: none;
  }
  .nsh2-cbar__item--more {
    display: list-item;
  }
  .nsh2-cbar__nav {
    -webkit-overflow-scrolling: touch;
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .nsh2-cbar__nav::-webkit-scrollbar {
    display: none;
  }
  .nsh2-cbar__menu {
    gap: 28px;
    padding: 16px 12px;
    width: max-content;
  }
  .nsh2-cbar__menu li {
    scroll-snap-align: start;
  }
  #overview,
  #available_homes,
  #community-amenities,
  #community-map,
  #community-proximity,
  #gallery,
  #join-our-community,
  #floor-plan,
  #design-options,
  #neighborhood,
  #similar-homes,
  #sales-associate {
    scroll-margin-top: calc(var(--nsh2-header-h, 66px) + var(--nsh2-cbar-h, 49px) + 12px);
  }
}
.nsh2-coverview {
  align-items: center;
  background: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
  display: flex;
  gap: clamp(48px, 8.5vw, 133px);
  justify-content: center;
  padding: clamp(64px, 8.5vw, 120px) clamp(24px, 5.5vw, 80px);
}

.nsh2-coverview__media {
  flex: 0 1 628px;
  min-width: 0;
  position: relative;
}
.nsh2-coverview__media::before {
  border: 0.5px solid var(--wp--preset--color--accent-1, #d2ba81);
  content: "";
  height: 100%;
  left: -16px;
  pointer-events: none;
  position: absolute;
  top: -16px;
  width: 100%;
}
@media (prefers-reduced-motion: no-preference) {
  .nsh2-coverview__media::before {
    animation: nsh2-coverview-frame linear both;
    animation-range: entry 10% entry 45%;
    animation-timeline: view();
  }
}
.nsh2-coverview__media::after {
  background: rgba(12, 53, 84, 0.15);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.nsh2-coverview .nsh-locmap__canvas.nsh2-coverview__map {
  height: 378px;
  width: 100%;
}

@keyframes nsh2-coverview-frame {
  from {
    opacity: 0;
    transform: translate(-10px, -10px);
  }
}
.nsh2-coverview__info {
  display: flex;
  flex: 0 1 519px;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}

.nsh2-coverview .nsh2-tagline {
  color: var(--wp--preset--color--base, #fff);
}

.nsh2-coverview__title-row {
  align-items: center;
  display: flex;
  gap: 24px;
}

.nsh2-coverview__title {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(30px, 3vw, 40px);
  font-weight: 400;
  line-height: 1.2;
  margin: 0;
}

.nsh2-coverview .nsh-fav {
  background: transparent;
  border: 1px solid var(--wp--preset--color--base, #fff);
  box-shadow: none;
  color: var(--wp--preset--color--base, #fff);
  flex: none;
  height: 32px;
  position: static;
  width: 32px;
}
.nsh2-coverview .nsh-fav svg {
  height: 16px;
  width: 16px;
}

.nsh2-coverview__body {
  font-size: 16px;
  line-height: 28px;
}
.nsh2-coverview__body p {
  margin: 0;
  text-align: left;
}
.nsh2-coverview__body p + p {
  margin-top: 12px;
}

.nsh2-coverview__foot {
  align-items: flex-end;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: space-between;
}

.nsh2-coverview__facts {
  display: flex;
  flex-direction: column;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nsh2-coverview__fact {
  align-items: flex-start;
  display: flex;
  font-size: 14px;
  font-weight: 700;
  gap: 8px;
  line-height: 22px;
  text-transform: uppercase;
}
.nsh2-coverview__fact svg {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  flex: none;
  margin-top: 3px;
}

@media (max-width: 1024px) {
  .nsh2-coverview {
    flex-direction: column;
    gap: 56px;
  }
  .nsh2-coverview__media,
  .nsh2-coverview__info {
    flex: none;
    width: 100%;
  }
}
@media (max-width: 782px) {
  .nsh2-coverview .nsh-locmap__canvas.nsh2-coverview__map {
    height: 300px;
  }
  .nsh2-coverview__foot {
    align-items: stretch;
    flex-direction: column;
  }
  .nsh2-coverview .nsh2-btn-fill {
    text-align: center;
  }
}
.nsh2-chomes__header.nsh2-chomes__header {
  align-items: center;
  border-bottom: 0;
  flex-direction: column;
  gap: 24px;
  margin: 0 auto;
  max-width: 846px;
  padding-bottom: 0;
  text-align: center;
}

.nsh2-chomes .nsh2-tagline {
  justify-content: center;
}

.nsh2-chomes__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(34px, 3.6vw, 48px);
  font-weight: 400;
  line-height: 1.17;
  margin: 0;
}

.nsh2-chomes__lede {
  color: #636569;
  font-size: 16px;
  line-height: 28px;
  margin: 0;
}

.nsh2-chomes__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
}

.nsh2-chomes__tab {
  background: none;
  border: 0;
  border-bottom: 1px solid transparent;
  color: var(--wp--preset--color--contrast, #0c3554);
  cursor: pointer;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  padding: 4px 0;
  text-transform: uppercase;
}
.nsh2-chomes__tab:hover, .nsh2-chomes__tab:focus-visible {
  border-bottom-color: currentColor;
}
.nsh2-chomes__tab.is-active {
  border-bottom-color: currentColor;
  font-weight: 700;
}

.nsh2-chomes .nsh-cfilters {
  justify-content: center;
  margin-bottom: 0;
}

.nsh2-chomes .nsh-cgrid__inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.nsh2-homes .nsh-pcard--plan .nsh-pcard__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  justify-content: space-between;
}
.nsh2-homes .nsh-pcard--plan .nsh-pcard__meta p {
  color: #636569;
  font-size: 14px;
  letter-spacing: 0.04em;
  line-height: 22px;
  margin: 0;
  text-transform: uppercase;
}

.nsh2-chomes .nsh-homes__more svg {
  margin-left: 4px;
}

.nsh2-fyh .nsh-cfilters {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  justify-content: stretch;
}

.nsh2-fyh .nsh-cfilters__group {
  max-width: none;
}

.nsh2-fyh .nsh-cfilters select {
  width: 100%;
}

.nsh2-fyh .nsh-cfilters__reset {
  grid-column: 1/-1;
  justify-self: end;
}

@media (max-width: 1024px) {
  .nsh2-fyh .nsh-cfilters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .nsh2-fyh .nsh-cfilters {
    grid-template-columns: 1fr 1fr;
  }
  .nsh2-fyh .nsh2-chomes__tabs {
    gap: 16px 20px;
  }
}
.nsh2-camenities {
  position: relative;
}

.nsh2-slide--amenity.nsh2-slide::after {
  background: rgba(0, 0, 0, 0.6);
}

.nsh2-slide--amenity.wp-block-cover {
  align-items: flex-end;
  justify-content: center;
}
.nsh2-slide--amenity.wp-block-cover .wp-block-cover__inner-container {
  align-items: center;
  display: flex;
  justify-content: center;
  padding-bottom: clamp(64px, 8.5vw, 120px);
}

.nsh2-camenities__title {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(32px, 3.2vw, 40px);
  font-weight: 400;
  left: 50%;
  line-height: 1.2;
  margin: 0;
  max-width: 1280px;
  padding: 0 24px;
  pointer-events: none;
  position: absolute;
  text-align: center;
  top: calc(var(--nsh2-header-h, 96px) + var(--nsh2-cbar-h, 0px) + 120px);
  transform: translateX(-50%);
  width: 100%;
  z-index: 4;
}
@media (max-width: 1024px) {
  .nsh2-camenities__title {
    top: 28px;
  }
}
@media (max-width: 1024px) {
  .nsh2-slides--deck .nsh2-camenities__title {
    top: calc(var(--nsh2-header-h, 96px) + 16px);
  }
}

.nsh2-camenities__info {
  align-items: center;
  gap: 16px;
  max-width: 411px;
  text-align: center;
  width: 100%;
}

.nsh2-camenities__icon {
  display: block;
  flex: 0 0 auto;
  height: 40px;
  width: 40px;
}

.nsh2-camenities__name {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 28px;
  font-weight: 400;
  line-height: 34px;
  margin: 0;
}

.nsh2-camenities__link {
  color: inherit;
  text-decoration: none;
}
.nsh2-camenities__link:hover, .nsh2-camenities__link:focus-visible {
  color: inherit;
}

.nsh2-camenities__rule {
  background: var(--wp--preset--color--accent-1, #d2ba81);
  display: block;
  height: 1px;
  width: 85px;
}

.nsh2-camenities__copy {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  margin: 0;
}

.nsh2-csiteplan {
  background: var(--wp--preset--color--base, #fff);
  padding: clamp(64px, 8.5vw, 120px) clamp(24px, 5.5vw, 80px);
}

.nsh2-csiteplan__header {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 0 auto 48px;
  max-width: 628px;
  text-align: center;
}

.nsh2-csiteplan .nsh2-tagline {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  justify-content: center;
}

.nsh2-csiteplan__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(34px, 3.6vw, 48px);
  font-weight: 400;
  line-height: 1.17;
  margin: 0;
}

.nsh2-csiteplan__lede {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
}

.nsh2-csiteplan__frame {
  aspect-ratio: 1062/948;
  background: #f7f7f7;
  border-radius: 8px;
  margin: 0 auto;
  max-width: 1062px;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.nsh2-csiteplan__frame iframe {
  border: 0;
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

@media (max-width: 782px) {
  .nsh2-csiteplan__frame {
    aspect-ratio: auto;
    height: clamp(380px, 70vh, 600px);
  }
}
.nsh2-cproximity {
  position: relative;
}

.nsh2-slide--proximity.nsh2-slide::after {
  background: rgba(0, 0, 0, 0.6);
}

.nsh2-slide--proximity.wp-block-cover {
  align-items: flex-end;
  justify-content: center;
}
.nsh2-slide--proximity.wp-block-cover .wp-block-cover__inner-container {
  align-items: center;
  display: flex;
  justify-content: center;
  padding-bottom: clamp(64px, 8.5vw, 120px);
}

.nsh2-cproximity__title {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(32px, 3.2vw, 40px);
  font-weight: 400;
  left: 50%;
  line-height: 1.2;
  margin: 0;
  max-width: 1280px;
  padding: 0 24px;
  pointer-events: none;
  position: absolute;
  text-align: center;
  top: calc(var(--nsh2-header-h, 96px) + var(--nsh2-cbar-h, 0px) + 120px);
  transform: translateX(-50%);
  width: 100%;
  z-index: 4;
}
@media (max-width: 1024px) {
  .nsh2-cproximity__title {
    top: 28px;
  }
}
@media (max-width: 1024px) {
  .nsh2-slides--deck .nsh2-cproximity__title {
    top: calc(var(--nsh2-header-h, 96px) + 16px);
  }
}

.nsh2-cproximity__info {
  align-items: center;
  gap: 16px;
  max-width: 411px;
  text-align: center;
  width: 100%;
}

.nsh2-cproximity__icon {
  display: block;
  flex: 0 0 auto;
  height: 20px;
  width: 20px;
}

.nsh2-cproximity__name {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 28px;
  font-weight: 400;
  line-height: 34px;
  margin: 0;
}

.nsh2-cproximity__link {
  color: inherit;
  text-decoration: none;
}
.nsh2-cproximity__link:hover, .nsh2-cproximity__link:focus-visible {
  color: inherit;
}

.nsh2-cproximity__rule {
  background: var(--wp--preset--color--accent-1, #d2ba81);
  display: block;
  height: 1px;
  width: 85px;
}

.nsh2-cproximity__copy {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  margin: 0;
}

.nsh2-cgallery {
  background: var(--wp--preset--color--base, #fff);
  overflow: clip;
  padding: clamp(64px, 8.5vw, 120px) 0;
}

.nsh2-cgallery__header {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin: 0 auto 64px;
  max-width: 846px;
  padding: 0 clamp(24px, 5.5vw, 80px);
  text-align: center;
}

.nsh2-cgallery .nsh2-tagline {
  color: #636569;
  justify-content: center;
}

.nsh2-cgallery__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(32px, 3.2vw, 40px);
  font-weight: 400;
  line-height: 1.2;
  margin: 0;
}

.nsh2-cgallery__lede {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  margin: 0;
  max-width: 628px;
}

.nsh2-cgallery__stage {
  outline: none;
  position: relative;
}

.nsh2-cgallery__viewport {
  box-sizing: border-box;
  height: 538px;
  overflow: hidden;
  padding: 24px 0;
  position: relative;
}

.nsh2-cgallery__track {
  align-items: center;
  display: flex;
  gap: 132px;
  justify-content: flex-start;
  list-style: none;
  margin: 0;
  padding: 0;
  will-change: transform;
}

.nsh2-cgallery__slide {
  background: #f7f7f7;
  flex: 0 0 618px;
  height: 358px;
  margin: 0;
  opacity: 0.92;
  overflow: hidden;
  position: relative;
  transform-origin: center center;
  z-index: 0;
}
.nsh2-cgallery__slide img {
  display: block;
  height: 100%;
  object-fit: cover;
  transform: scale(1.12);
  width: 100%;
}
.nsh2-cgallery__slide[hidden] {
  display: none;
}

.nsh2-cgallery__open {
  appearance: none;
  background: transparent;
  border: 0;
  cursor: zoom-in;
  display: block;
  height: 100%;
  padding: 0;
  width: 100%;
}

.nsh2-cgallery__slide.is-active {
  box-shadow: 0 5px 15px 4px rgba(0, 0, 0, 0.13);
  flex-basis: 846px;
  height: 490px;
  opacity: 1;
  z-index: 1;
}

.nsh2-cgallery__nav {
  background: transparent;
  border: 0;
  cursor: pointer;
  line-height: 0;
  padding: 0;
  position: absolute;
  top: 249px;
  z-index: 3;
}
.nsh2-cgallery__nav img {
  display: block;
}
.nsh2-cgallery__nav:hover, .nsh2-cgallery__nav:focus-visible {
  opacity: 0.8;
}

.nsh2-cgallery__nav--prev {
  left: max(16px, (100% - 846px) / 2 - 80px);
}

.nsh2-cgallery__nav--next {
  right: max(16px, (100% - 846px) / 2 - 80px);
}

.nsh2-cgallery__dots {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 24px;
}

.nsh2-cgallery__dot {
  background: transparent;
  border: 1px solid var(--wp--preset--color--accent-1, #d2ba81);
  border-radius: 50%;
  cursor: pointer;
  height: 8px;
  padding: 0;
  width: 8px;
}
.nsh2-cgallery__dot[aria-current=true] {
  background: var(--wp--preset--color--accent-1, #d2ba81);
}

@media (max-width: 1024px) {
  .nsh2-cgallery__header {
    margin-bottom: 40px;
  }
  .nsh2-cgallery__viewport {
    height: auto;
  }
  .nsh2-cgallery__track {
    gap: 24px;
  }
  .nsh2-cgallery__slide {
    flex-basis: min(280px, 72vw);
    height: 180px;
  }
  .nsh2-cgallery__slide.is-active {
    flex-basis: min(846px, 100vw - 48px);
    height: auto;
    aspect-ratio: 846/490;
  }
  .nsh2-cgallery__nav {
    top: 50%;
    transform: translateY(-50%);
  }
  .nsh2-cgallery__nav--prev {
    left: 8px;
  }
  .nsh2-cgallery__nav--next {
    right: 8px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-cgallery__slide {
    transition: none;
  }
}
.nsh2-cgallery-zoom {
  inset: 0;
  position: fixed;
  z-index: 10000;
}

.nsh2-cgallery-zoom__backdrop {
  background: rgba(0, 24, 40, 0.9);
  inset: 0;
  position: absolute;
}

.nsh2-cgallery-zoom__photo {
  object-fit: cover;
  position: fixed;
}

.nsh2-cgallery-zoom__close {
  background: transparent;
  border: 1px solid var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 20px;
  height: 40px;
  line-height: 1;
  position: fixed;
  right: 24px;
  top: 24px;
  width: 40px;
  z-index: 1;
}
.nsh2-cgallery-zoom__close:hover, .nsh2-cgallery-zoom__close:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh2-sassoc {
  align-items: center;
  background: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
  display: flex;
  flex-direction: column;
  padding: clamp(72px, 9vw, 140px) clamp(24px, 5.5vw, 80px);
  text-align: center;
}

.nsh2-sassoc__heading {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 48px;
  font-weight: 400;
  line-height: 56px;
  margin: 0 0 72px;
}

.nsh2-sassoc__people {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 80px;
  justify-content: center;
  width: fit-content;
}

.nsh2-sassoc__person {
  align-items: center;
  display: flex;
  gap: 80px;
  text-align: left;
  width: fit-content;
}

.nsh2-sassoc__photo {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  flex: 0 0 auto;
  height: 332px;
  overflow: hidden;
  position: relative;
  width: 272px;
}
.nsh2-sassoc__photo img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.nsh2-sassoc__photo::after {
  background: rgba(0, 0, 0, 0.2);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.nsh2-sassoc__info {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 32px;
  width: max-content;
  max-width: min(420px, 100%);
}

.nsh2-sassoc__personal {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nsh2-sassoc__role {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 30px;
  margin: 0;
  text-transform: uppercase;
}

.nsh2-sassoc__name {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 32px;
  font-weight: 400;
  line-height: 40px;
  margin: 0;
}

.nsh2-sassoc__phone {
  align-items: center;
  display: inline-flex;
  font-size: 14px;
  gap: 10px;
  width: fit-content;
}
.nsh2-sassoc__phone img {
  display: block;
  filter: brightness(0) invert(1);
  height: 14px;
  width: 14px;
}
.nsh2-sassoc__phone:hover, .nsh2-sassoc__phone:focus-visible {
  color: var(--wp--preset--color--base, #fff);
}

.nsh2-sassoc__facts {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.nsh2-sassoc__arrow {
  display: block;
  height: auto;
  width: 280px;
}

.nsh2-sassoc__address,
.nsh2-sassoc__hours,
.nsh2-sassoc__hours-row {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  margin: 0;
}

.nsh2-sassoc__hours {
  display: flex;
  flex-direction: column;
}

.nsh2-sassoc__hours-row {
  column-gap: 32px;
  display: grid;
  grid-template-columns: max-content max-content;
}

@media (max-width: 782px) {
  .nsh2-sassoc__heading {
    font-size: 36px;
    line-height: 44px;
    margin-bottom: 48px;
  }
  .nsh2-sassoc__people {
    gap: 48px;
  }
  .nsh2-sassoc__person {
    flex-direction: column;
    gap: 28px;
    text-align: center;
  }
  .nsh2-sassoc__info {
    align-items: center;
    width: 100%;
  }
  .nsh2-sassoc__personal {
    align-items: center;
  }
  .nsh2-sassoc__arrow {
    margin-inline: auto;
  }
}
.single-plans main,
.single-specs main {
  container-name: nsh-plan;
  container-type: inline-size;
  --nsh-frame-pad: 80px;
  --nsh-frame-inset: max(var(--nsh-frame-pad), calc((100cqi - 1440px) / 2 + var(--nsh-frame-pad)));
}

@media (max-width: 1439px) {
  .single-plans main,
  .single-specs main {
    --nsh-frame-pad: 32px;
  }
}
@media (max-width: 1179px) {
  .single-plans main,
  .single-specs main {
    --nsh-frame-pad: 24px;
  }
}
.nsh2-cbar--plan {
  --nsh-cbar-pad: 102.5px;
  box-sizing: border-box;
  gap: 64px;
  height: 82px;
  justify-content: space-between;
  padding: 0 max(var(--nsh-cbar-pad), (100% - 1440px) / 2 + var(--nsh-cbar-pad));
}

@media (max-width: 1024px) {
  .nsh2-cbar--plan {
    gap: 0;
    height: auto;
    padding: 0;
  }
}
.nsh2-phero {
  background: var(--wp--preset--color--contrast, #0c3554);
  display: grid;
  grid-template-columns: minmax(0, 623fr) minmax(0, 817fr);
  min-height: 795px;
}
@media (max-width: 1024px) {
  .nsh2-phero {
    grid-template-columns: 1fr;
    min-height: 0;
  }
}

.nsh2-phero__panel {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 795px;
  padding: 272px 0 0;
}
@media (max-width: 1024px) {
  .nsh2-phero__panel {
    min-height: 0;
    padding: 40px 0 0;
  }
}

.nsh2-phero__text {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-left: var(--nsh-frame-pad, 80px);
  padding-right: 40px;
}

.nsh2-phero__tagline {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  margin: 0;
}

.nsh2-phero__title-row {
  align-items: center;
  display: flex;
  gap: 16px;
}

.nsh2-phero__title {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 48px;
  font-weight: 400;
  line-height: 1;
  margin: 0;
}
@media (max-width: 1024px) {
  .nsh2-phero__title {
    font-size: 40px;
  }
}

.nsh2-phero__copy {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
  max-width: 439px;
  opacity: 0.92;
}

.nsh2-phero__price {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 28px;
  line-height: 30px;
  margin: 0;
}

.nsh2-phero__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 0;
}

.nsh2-phero__actions .nsh2-btn-fill {
  box-sizing: border-box;
  height: 48px;
  padding: 0 16px;
}

.nsh2-phero__secondary {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.nsh2-phero__minor {
  align-items: center;
  background: none;
  border: 0;
  cursor: pointer;
  display: inline-flex;
  gap: 8px;
  padding: 0 0 4px;
}

.nsh2-phero__tiles {
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  background: rgba(0, 0, 0, 0.16);
  border-bottom: 0.5px solid #636569;
  border-top: 0.5px solid #636569;
  display: grid;
  gap: 0;
  grid-template-columns: repeat(4, 1fr);
  height: 102px;
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
@media (max-width: 1024px) {
  .nsh2-phero__tiles {
    border: 0.5px solid #636569;
    grid-template-columns: repeat(2, 1fr);
    height: auto;
    margin: 48px var(--nsh-frame-pad, 24px) 48px;
  }
}

.nsh2-phero__tile {
  align-items: center;
  background: transparent;
  border-right: 0.5px solid #636569;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: center;
  padding: 24px 8px;
  position: relative;
  text-align: center;
  z-index: 1;
}
@media (max-width: 1024px) {
  .nsh2-phero__tile {
    border-bottom: 0;
  }
  .nsh2-phero__tile:nth-child(-n+2) {
    border-bottom: 0.5px solid #636569;
  }
  .nsh2-phero__tile:nth-child(2n) {
    border-right: 0;
  }
}

.nsh2-phero__tiles:not(.nsh2-phero__tiles--motion) .nsh2-phero__tile:hover,
.nsh2-phero__tiles:not(.nsh2-phero__tiles--motion) .nsh2-phero__tile:focus-within {
  background: rgba(255, 255, 255, 0.18);
  box-shadow: inset 0 0 0 1px var(--wp--preset--color--base, #fff);
}
.nsh2-phero__tiles:not(.nsh2-phero__tiles--motion) .nsh2-phero__tile:hover .nsh2-phero__tile-value,
.nsh2-phero__tiles:not(.nsh2-phero__tiles--motion) .nsh2-phero__tile:focus-within .nsh2-phero__tile-value {
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.95), 0 0 26px rgba(190, 220, 245, 0.9);
  transform: scale(1.06);
}
.nsh2-phero__tiles:not(.nsh2-phero__tiles--motion) .nsh2-phero__tile:hover .nsh2-phero__tile-label,
.nsh2-phero__tiles:not(.nsh2-phero__tiles--motion) .nsh2-phero__tile:focus-within .nsh2-phero__tile-label {
  color: var(--wp--preset--color--base, #fff);
}
.nsh2-phero__tiles:not(.nsh2-phero__tiles--motion):hover .nsh2-phero__tile:not(:hover), .nsh2-phero__tiles:not(.nsh2-phero__tiles--motion):focus-within .nsh2-phero__tile:not(:focus-within) {
  opacity: 0.4;
}

.nsh2-phero__tile-value {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 24px;
  line-height: 30px;
  margin: 0;
  text-shadow: 0 0 0 rgba(255, 255, 255, 0), 0 0 0 rgba(190, 220, 245, 0);
  transform-origin: center center;
}

.nsh2-phero__tile-label {
  align-items: center;
  color: #d5d5d7;
  display: flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 8px;
  justify-content: center;
  letter-spacing: 1.8px;
  line-height: 1;
  margin: 0;
  text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
  .nsh2-phero__tiles:not(.nsh2-phero__tiles--motion) .nsh2-phero__tile:hover .nsh2-phero__tile-value,
  .nsh2-phero__tiles:not(.nsh2-phero__tiles--motion) .nsh2-phero__tile:focus-within .nsh2-phero__tile-value {
    transform: none;
  }
}
.nsh2-phero__gallery {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 795px;
  padding-top: 178px;
  position: relative;
}
@media (max-width: 1024px) {
  .nsh2-phero__gallery {
    min-height: 420px;
    padding-top: 0;
  }
}

.nsh2-phero__stage {
  flex: 1 1 auto;
  overflow: hidden;
  position: relative;
}
.nsh2-phero__stage::after {
  background: rgba(0, 0, 0, 0.2);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}

.nsh2-phero__photo {
  height: 100%;
  inset: 0;
  object-fit: cover;
  opacity: 0;
  position: absolute;
  transform: scale(1.05);
  transition: opacity 0.6s ease;
  width: 100%;
}
.nsh2-phero__photo.is-active {
  animation: nsh2-phero-zoom 18s ease-out forwards;
  opacity: 1;
}

@keyframes nsh2-phero-zoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.05);
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-phero__photo {
    transform: none;
  }
  .nsh2-phero__photo.is-active {
    animation: none;
  }
}
.nsh2-phero__nav {
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
  position: absolute;
  top: calc(50% - 51px);
  transform: translateY(-50%);
  z-index: 2;
}
.nsh2-phero__nav--prev {
  left: 24px;
}
.nsh2-phero__nav--next {
  right: 24px;
}
.nsh2-phero__nav img {
  display: block;
  filter: brightness(0) invert(1);
  height: 30px;
  width: 30px;
}

.nsh2-phero__strip {
  -webkit-backdrop-filter: blur(3px);
  align-items: center;
  backdrop-filter: blur(3px);
  background: rgba(0, 0, 0, 0.5);
  border-top: 0.5px solid #d5d5d7;
  bottom: 0;
  box-sizing: border-box;
  display: flex;
  gap: 24px;
  height: 102px;
  justify-content: center;
  left: 0;
  padding: 0 16px;
  position: absolute;
  right: 0;
  z-index: 2;
}

.nsh2-phero__strip-nav {
  background: none;
  border: 0;
  cursor: pointer;
  flex: 0 0 auto;
  padding: 0;
}
.nsh2-phero__strip-nav img {
  display: block;
  filter: brightness(0) invert(1);
  height: 30px;
  width: 30px;
}

.nsh2-phero__thumbs {
  display: flex;
  gap: 8px;
  max-width: 609px;
  overflow: hidden;
}

.nsh2-phero__thumb {
  background: none;
  border: 0;
  cursor: pointer;
  flex: 0 0 72px;
  height: 60px;
  overflow: hidden;
  padding: 0;
  position: relative;
  width: 72px;
}
.nsh2-phero__thumb img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.nsh2-phero__thumb::after {
  background: rgba(0, 0, 0, 0.2);
  content: "";
  inset: 0;
  position: absolute;
}
.nsh2-phero__thumb.is-active::after {
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--wp--preset--color--base, #fff);
}

.nsh2-pdisclaimer {
  background: var(--wp--preset--color--accent-5, #faf7ee);
  box-sizing: border-box;
  min-height: 80px;
  padding: 32px var(--nsh-frame-inset, 80px);
}
.nsh2-pdisclaimer__text {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  line-height: 16px;
  margin: 0 auto;
  max-width: 1280px;
}

.nsh2-pfloor {
  background: var(--wp--preset--color--base, #fff);
  padding: 120px var(--nsh-frame-inset, 80px);
}
@media (max-width: 1024px) {
  .nsh2-pfloor {
    padding: 64px var(--nsh-frame-inset, 24px);
  }
}

.nsh2-pfloor__inner {
  display: grid;
  gap: 133px;
  grid-template-columns: minmax(0, 519fr) minmax(0, 628fr);
  margin: 0 auto;
  max-width: 1280px;
}
@media (max-width: 1024px) {
  .nsh2-pfloor__inner {
    gap: 40px;
    grid-template-columns: 1fr;
  }
}

.nsh2-pfloor .nsh2-tagline {
  color: var(--wp--preset--color--contrast, #0c3554);
  margin: 0;
}
.nsh2-pfloor .nsh2-tagline::before {
  background: var(--wp--preset--color--accent-1, #d2ba81);
}

.nsh2-pfloor__heading {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(32px, 3.2vw, 40px);
  font-weight: 400;
  margin: 24px 0;
}

.nsh2-pfloor__label {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.5px;
  margin: 0 0 8px;
  text-transform: uppercase;
}

.nsh2-pfloor__place {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 13px;
  font-weight: 600;
  margin: 0 0 20px;
}

.nsh2-pfloor__copy {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 15px;
  line-height: 26px;
}
.nsh2-pfloor__copy p {
  margin: 0 0 18px;
}

.nsh2-pfloor__tour {
  margin-top: 12px;
}

.nsh2-pfloor__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
  margin: 0 0 20px;
}

.nsh2-pfloor__action {
  align-items: center;
  background: none;
  border: 0;
  color: var(--wp--preset--color--contrast, #0c3554);
  cursor: pointer;
  display: inline-flex;
  gap: 8px;
}
.nsh2-pfloor__action:hover, .nsh2-pfloor__action:focus-visible {
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh2-pfloor__figure {
  margin: 0;
}

.nsh2-pfloor__img {
  display: block;
  height: auto;
  width: 100%;
}

.nsh2-pfloor__frame {
  border: 0;
  display: block;
  height: 640px;
  width: 100%;
}

.nsh2-pfloor__lightbox {
  align-items: center;
  background: rgba(6, 26, 41, 0.9);
  cursor: zoom-out;
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 4vh 4vw;
  position: fixed;
  z-index: 10000;
}
.nsh2-pfloor__lightbox img {
  background: var(--wp--preset--color--base, #fff);
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
}

.nsh2-ppers {
  background: var(--wp--preset--color--accent-5, #faf7ee);
  overflow: clip;
  padding: 120px 0;
}
@media (max-width: 1024px) {
  .nsh2-ppers {
    padding: 64px 0;
  }
}

.nsh2-ppers__head {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  margin: 0;
  max-width: none;
  padding: 0 var(--nsh-frame-inset, 80px);
}
@media (max-width: 900px) {
  .nsh2-ppers__head {
    grid-template-columns: 1fr;
  }
}

.nsh2-ppers .nsh2-tagline {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-ppers .nsh2-tagline::before, .nsh2-ppers .nsh2-tagline::after {
  background: var(--wp--preset--color--accent-1, #d2ba81);
}

.nsh2-ppers__heading {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(32px, 3.2vw, 40px);
  font-weight: 400;
  margin: 24px 0 32px;
}

.nsh2-btn-outline--navy {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-btn-outline--navy:hover, .nsh2-btn-outline--navy:focus-visible {
  background: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
}

.nsh2-ppers__intro {
  align-self: center;
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 15px;
  line-height: 26px;
  margin: 0;
}

.nsh2-ppers__note {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(18px, 1.8vw, 22px);
  margin: 64px 0 32px;
  padding: 0 var(--nsh-frame-inset, 80px);
  text-align: center;
}

.nsh2-ppers__carousel {
  margin-left: var(--nsh-frame-inset, 80px);
  position: relative;
  width: calc(100% - var(--nsh-frame-inset, 80px));
}

.nsh2-ppers__track {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  padding: 0;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.nsh2-ppers__track::-webkit-scrollbar {
  display: none;
}

.nsh2-ppers__item {
  aspect-ratio: 519/400;
  flex: 0 0 519px;
  margin: 0;
  scroll-snap-align: start;
}
.nsh2-ppers__item img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.nsh2-ppers__nav {
  align-items: center;
  background: var(--wp--preset--color--base, #fff);
  border: 0;
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
  cursor: pointer;
  display: flex;
  height: 44px;
  justify-content: center;
  padding: 0;
  position: absolute;
  top: 200px;
  transform: translateY(-50%);
  width: 44px;
  z-index: 2;
}
.nsh2-ppers__nav img {
  display: block;
}
.nsh2-ppers__nav--prev {
  left: 0;
  transform: translate(-50%, -50%);
}
.nsh2-ppers__nav--next {
  right: 24px;
}

@media (max-width: 1024px) {
  .nsh2-ppers__item {
    flex-basis: min(78vw, 519px);
  }
  .nsh2-ppers__nav {
    top: 50%;
  }
}
.nsh2-pcomm {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 794px;
  overflow: clip;
  padding: 120px var(--nsh-frame-inset, 80px);
  position: relative;
}

.nsh2-pcomm__slides,
.nsh2-pcomm__bg,
.nsh2-pcomm__scrim {
  inset: 0;
  position: absolute;
}

.nsh2-pcomm__bg {
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.45s ease;
  width: 100%;
}
.nsh2-pcomm__bg.is-active {
  opacity: 1;
}

.nsh2-pcomm__scrim {
  background: linear-gradient(270deg, rgba(0, 0, 0, 0) 35.764%, rgba(0, 0, 0, 0.6) 100%), linear-gradient(90deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
}

.nsh2-pcomm__content {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 519px;
  position: relative;
  z-index: 1;
}

.nsh2-pcomm__tagline,
.nsh2-pcomm__meta,
.nsh2-pcomm__blurb {
  color: var(--wp--preset--color--base, #fff);
  margin: 0;
}

.nsh2-pcomm__name {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 72px;
  font-weight: 400;
  line-height: 80px;
  margin: 0;
}

.nsh2-pcomm__meta {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

.nsh2-pcomm__blurb {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
}

.nsh2-pcomm__cta {
  align-self: flex-start;
  width: fit-content;
}
.nsh2-pcomm__cta .nsh2-btn-outline__icon {
  filter: brightness(0) invert(1);
}
.nsh2-pcomm__cta:hover .nsh2-btn-outline__icon, .nsh2-pcomm__cta:focus-visible .nsh2-btn-outline__icon {
  filter: none;
}

.nsh2-pcomm__dots {
  bottom: 40px;
  display: flex;
  gap: 4px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  z-index: 1;
}

.nsh2-pcomm__dot {
  background: transparent;
  border: 0;
  cursor: pointer;
  height: 28px;
  padding: 0;
  position: relative;
  width: 28px;
}
.nsh2-pcomm__dot::before {
  border: 1px solid var(--wp--preset--color--base, #fff);
  border-radius: 50%;
  content: "";
  height: 8px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
}
.nsh2-pcomm__dot.is-active::before {
  background: var(--wp--preset--color--base, #fff);
}

.nsh2-pcomm__nav {
  align-items: center;
  background: var(--wp--preset--color--base, #fff);
  border: 0;
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
  cursor: pointer;
  display: flex;
  height: 48px;
  justify-content: center;
  padding: 0;
  position: absolute;
  top: 96px;
  width: 48px;
  z-index: 2;
}
.nsh2-pcomm__nav--prev {
  left: 24px;
}
.nsh2-pcomm__nav--next {
  right: 24px;
}
.nsh2-pcomm__nav img {
  display: block;
  height: 28px;
  width: 28px;
}
.nsh2-pcomm__nav:hover, .nsh2-pcomm__nav:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28);
}

@media (max-width: 1024px) {
  .nsh2-pcomm__nav {
    top: 48px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-pcomm__bg {
    transition: none;
  }
}
.nsh2-psimilar {
  background: var(--wp--preset--color--accent-5, #faf7ee);
  overflow: clip;
  padding: 120px 0;
}

.nsh2-psimilar__header {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 0 auto 48px;
  max-width: 846px;
  padding: 0 24px;
  text-align: center;
}
.nsh2-psimilar__header .nsh2-tagline {
  color: #636569;
  justify-content: center;
}

.nsh2-psimilar__heading {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 48px;
  font-weight: 400;
  line-height: 56px;
  margin: 0;
}

.nsh2-psimilar__lede {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
}

.nsh2-psimilar__stage {
  margin-left: var(--nsh-frame-inset, 80px);
  position: relative;
  width: calc(100% - var(--nsh-frame-inset, 80px));
}

.nsh2-psimilar__nav {
  align-items: center;
  background: var(--wp--preset--color--base, #fff);
  border: 0;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 3px rgba(12, 12, 13, 0.1);
  cursor: pointer;
  display: flex;
  height: 40px;
  justify-content: center;
  padding: 0;
  position: absolute;
  top: calc(40px + (100% - 40px - 56px) / 2);
  transform: translateY(-50%);
  width: 40px;
  z-index: 2;
}
.nsh2-psimilar__nav img {
  display: block;
  filter: brightness(0);
  height: 24px;
  width: 24px;
}
.nsh2-psimilar__nav--prev {
  left: 0;
  transform: translate(-50%, -50%);
}
.nsh2-psimilar__nav--next {
  right: 24px;
}

.nsh2-psimilar__track {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  padding: 40px 0 56px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.nsh2-psimilar__track::-webkit-scrollbar {
  display: none;
}

.nsh2-hcard {
  background: var(--wp--preset--color--base, #fff);
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 3px rgba(12, 12, 13, 0.1);
  display: flex;
  flex: 0 0 628px;
  flex-direction: column;
  scroll-snap-align: start;
}

.nsh2-psimilar .nsh2-hcard {
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.nsh2-psimilar .nsh2-hcard:hover, .nsh2-psimilar .nsh2-hcard:focus-within {
  box-shadow: 18px 0 32px color-mix(in srgb, var(--wp--preset--color--contrast, #0c3554) 42%, transparent);
  transform: translateY(-12px);
}

.nsh2-hcard__gallery {
  border-radius: 4px 4px 0 0;
  height: 270px;
  overflow: hidden;
  position: relative;
}
.nsh2-hcard__gallery::after {
  background: rgba(0, 0, 0, 0.15);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.nsh2-hcard__photo {
  height: 100%;
  inset: 0;
  object-fit: cover;
  opacity: 0;
  position: absolute;
  transform: scale(1.06);
  transition: opacity 0.6s ease;
  width: 100%;
}
.nsh2-hcard__photo.is-active {
  animation: nsh2-hcard-zoom 18s ease-out forwards;
  opacity: 1;
}

@keyframes nsh2-hcard-zoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.06);
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-hcard__photo {
    transform: none;
  }
  .nsh2-hcard__photo.is-active {
    animation: none;
  }
  .nsh2-psimilar .nsh2-hcard {
    transition: none;
  }
}
.nsh2-hcard__controls {
  align-items: center;
  display: flex;
  justify-content: space-between;
  left: 24px;
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}
.nsh2-hcard__controls button {
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 0;
}
.nsh2-hcard__controls img {
  display: block;
  filter: brightness(0) invert(1);
  height: 32px;
  width: 32px;
}

.nsh2-hcard__dots {
  bottom: 16px;
  display: flex;
  gap: 4px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  z-index: 1;
}

.nsh2-hcard__dot {
  background: transparent;
  border: 1px solid var(--wp--preset--color--base, #fff);
  border-radius: 50%;
  cursor: pointer;
  height: 8px;
  padding: 0;
  width: 8px;
}
.nsh2-hcard__dot.is-active {
  background: var(--wp--preset--color--base, #fff);
}

.nsh2-hcard__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;
}

.nsh2-hcard__head {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.nsh2-hcard__name {
  align-items: center;
  display: flex;
  gap: 16px;
}
.nsh2-hcard__name h3 {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 30px;
  margin: 0;
}

.nsh2-hcard .nsh-fav {
  background: transparent;
  box-shadow: none;
  height: 19px;
  position: static;
  width: 19px;
}
.nsh2-hcard .nsh-fav svg {
  height: 19px;
  width: 19px;
}
.nsh2-hcard .nsh-fav:hover {
  background: transparent;
}

.nsh2-hcard__place {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  gap: 4px;
  line-height: 28px;
  margin: 8px 0 0;
}

.nsh2-hcard__comm {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-weight: 700;
  text-transform: uppercase;
}

.nsh2-hcard__at,
.nsh2-hcard__price {
  color: #636569;
  font-weight: 400;
}

.nsh2-hcard__price {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
  white-space: nowrap;
}

.nsh2-hcard__rule {
  border: 0;
  border-top: 1px solid #d5d5d7;
  margin: 0;
  width: 100%;
}

.nsh2-hcard__specs {
  display: flex;
  gap: 8px 12px;
  justify-content: space-between;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nsh2-hcard__specs li {
  align-items: center;
  color: #636569;
  display: flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  gap: 8px;
  line-height: 22px;
  text-transform: uppercase;
  white-space: nowrap;
}
.nsh2-hcard__specs img {
  display: block;
  flex: 0 0 auto;
  height: 16px;
  width: 16px;
}

.nsh2-hcard__actions {
  display: flex;
  gap: 16px;
}

.nsh2-hcard__btn {
  align-items: center;
  background: transparent;
  border: 1px solid var(--wp--preset--color--accent-1, #d2ba81);
  box-sizing: border-box;
  color: var(--wp--preset--color--accent-1, #d2ba81);
  cursor: pointer;
  display: flex;
  flex: 1 1 0;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  height: 38px;
  justify-content: center;
  letter-spacing: 1.8px;
  padding: 0 8px;
  text-decoration: none;
  text-transform: uppercase;
}
.nsh2-hcard__btn--fill {
  background: var(--wp--preset--color--contrast, #0c3554);
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
}
.nsh2-hcard__btn:hover, .nsh2-hcard__btn:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-hcard__btn--fill:hover, .nsh2-hcard__btn--fill:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh2-sassoc--form {
  align-items: start;
  box-sizing: border-box;
  display: grid;
  gap: 64px;
  grid-template-columns: minmax(0, 588px) 628px;
  justify-content: center;
  padding: 120px var(--nsh-frame-inset, 80px);
  text-align: left;
}
.nsh2-sassoc--form .nsh2-sassoc__main {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 64px;
  min-width: 0;
  padding-top: 96px;
}
.nsh2-sassoc--form .nsh2-sassoc__heading {
  font-size: 36px;
  line-height: 44px;
  margin: 0;
  text-align: left;
  width: 100%;
}
.nsh2-sassoc--form .nsh2-sassoc__people {
  gap: 0;
  justify-content: center;
  width: 100%;
}
.nsh2-sassoc--form .nsh2-sassoc__person {
  align-items: stretch;
  gap: 40px;
}
.nsh2-sassoc--form .nsh2-sassoc__photo {
  align-self: stretch;
  height: auto;
  min-height: 280px;
  width: 240px;
}
.nsh2-sassoc--form .nsh2-sassoc__info {
  gap: 28px;
  max-width: none;
  width: auto;
  flex: 1 1 auto;
}
.nsh2-sassoc--form .nsh2-sassoc__personal {
  gap: 10px;
}
.nsh2-sassoc--form .nsh2-sassoc__role {
  font-size: 18px;
  line-height: 28px;
}
.nsh2-sassoc--form .nsh2-sassoc__name {
  font-size: 32px;
  line-height: 40px;
}
.nsh2-sassoc--form .nsh2-sassoc__phone {
  font-size: 14px;
  gap: 10px;
  letter-spacing: 1.8px;
}
.nsh2-sassoc--form .nsh2-sassoc__phone img {
  height: 16px;
  width: 16px;
}
.nsh2-sassoc--form .nsh2-sassoc__facts {
  gap: 28px;
}
.nsh2-sassoc--form .nsh2-sassoc__arrow {
  width: 100%;
}
.nsh2-sassoc--form .nsh2-sassoc__address,
.nsh2-sassoc--form .nsh2-sassoc__hours,
.nsh2-sassoc--form .nsh2-sassoc__hours-row {
  font-size: 16px;
  line-height: 26px;
}
@media (max-width: 1024px) {
  .nsh2-sassoc--form {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
  .nsh2-sassoc--form .nsh2-sassoc__main {
    padding-top: 0;
  }
  .nsh2-sassoc--form .nsh2-sassoc__info,
  .nsh2-sassoc--form .nsh2-sassoc__form {
    width: 100%;
  }
}

.nsh2-sassoc__form {
  background: #fff9f6;
  border-radius: 4px;
  box-shadow: 0 5px 2.5px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  padding: 48px;
  width: 628px;
}
.nsh2-sassoc__form .nsh2-sassoc__form-tagline {
  color: var(--wp--preset--color--contrast, #0c3554);
  justify-content: center;
}
.nsh2-sassoc__form .nsh2-sassoc__form-heading {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 32px;
  font-weight: 400;
  line-height: 40px;
  margin: 24px 0 48px;
  text-align: center;
}
.nsh2-sassoc__form .gform_wrapper,
.nsh2-sassoc__form .gform_wrapper form {
  margin: 0;
  width: 100%;
}
.nsh2-sassoc__form .gform_wrapper .gform_heading,
.nsh2-sassoc__form .gform_wrapper .gform_required_legend {
  display: none;
}
.nsh2-sassoc__form .gform_wrapper form {
  display: grid;
  gap: 16px 24px;
  grid-template-columns: 1fr 1fr;
}
.nsh2-sassoc__form .gform_wrapper .gform_body,
.nsh2-sassoc__form .gform_wrapper .gform_fields {
  display: contents;
}
.nsh2-sassoc__form .gform_wrapper .gfield {
  grid-column: 1/-1;
  margin: 0;
  min-width: 0;
  padding: 0;
}
.nsh2-sassoc__form .gform_wrapper .gfield_visibility_hidden,
.nsh2-sassoc__form .gform_wrapper .gform_validation_container,
.nsh2-sassoc__form .gform_wrapper .gfield--type-hidden {
  display: none;
}
.nsh2-sassoc__form .gform_wrapper .gfield--width-half,
.nsh2-sassoc__form .gform_wrapper .half-width,
.nsh2-sassoc__form .gform_wrapper .gf_left_half,
.nsh2-sassoc__form .gform_wrapper .gf_right_half {
  grid-column: auto;
}
.nsh2-sassoc__form .gform_wrapper .gfield--type-captcha {
  order: 1;
}
.nsh2-sassoc__form .gform_wrapper .gform_footer {
  grid-column: 1/-1;
  order: 2;
}
.nsh2-sassoc__form .gform_wrapper .gfield_html {
  grid-column: 1/-1;
  order: 3;
}
.nsh2-sassoc__form .gform_wrapper .gfield--type-captcha .gfield_label {
  display: none;
}
.nsh2-sassoc__form .gform_wrapper label,
.nsh2-sassoc__form .gform_wrapper legend,
.nsh2-sassoc__form .gform_wrapper .gfield_label {
  color: var(--wp--preset--color--contrast, #0c3554);
  display: block;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  margin: 0 0 8px;
  text-transform: uppercase;
}
.nsh2-sassoc__form .gform_wrapper .ginput_container,
.nsh2-sassoc__form .gform_wrapper .ginput_container_textarea {
  margin: 0;
}
.nsh2-sassoc__form .gform_wrapper input[type=text],
.nsh2-sassoc__form .gform_wrapper input[type=email],
.nsh2-sassoc__form .gform_wrapper input[type=tel],
.nsh2-sassoc__form .gform_wrapper textarea {
  background: var(--wp--preset--color--base, #fff);
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  border-radius: 0;
  box-sizing: border-box;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  height: 38px;
  padding: 8px;
  width: 100%;
}
.nsh2-sassoc__form .gform_wrapper input[type=text]::placeholder,
.nsh2-sassoc__form .gform_wrapper input[type=email]::placeholder,
.nsh2-sassoc__form .gform_wrapper input[type=tel]::placeholder,
.nsh2-sassoc__form .gform_wrapper textarea::placeholder {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-sassoc__form .gform_wrapper textarea {
  height: 110px;
  max-height: 110px;
  min-height: 0;
}
.nsh2-sassoc__form .gform_wrapper .gform_footer {
  margin: 0;
  padding: 0;
}
.nsh2-sassoc__form .gform_wrapper .gform_footer button,
.nsh2-sassoc__form .gform_wrapper .gform_footer input[type=submit] {
  background: var(--wp--preset--color--contrast, #0c3554);
  border: 0;
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  height: 38px;
  letter-spacing: 1.8px;
  padding: 0 16px;
  text-transform: uppercase;
  width: 100%;
}
.nsh2-sassoc__form .gform_wrapper .gform_footer button:hover, .nsh2-sassoc__form .gform_wrapper .gform_footer button:focus-visible,
.nsh2-sassoc__form .gform_wrapper .gform_footer input[type=submit]:hover,
.nsh2-sassoc__form .gform_wrapper .gform_footer input[type=submit]:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
  outline: 1px solid var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-sassoc__form .gform_wrapper .gfield_html .btn-draw,
.nsh2-sassoc__form .gform_wrapper .gfield_html .velo-slide__btn {
  display: none;
}
.nsh2-sassoc__form .gform_wrapper .gfield_html,
.nsh2-sassoc__form .gform_wrapper .gform_footer .gform_footer_description,
.nsh2-sassoc__form .gform_wrapper .gfield_description {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  line-height: normal;
}

@media (max-width: 1024px) {
  .nsh2-phero__panel {
    padding-bottom: 0;
  }
  .nsh2-pcomm {
    min-height: 720px;
    padding: 72px 24px 96px;
  }
  .nsh2-pcomm__name {
    font-size: 48px;
    line-height: 56px;
  }
  .nsh2-pcomm__content {
    max-width: none;
    padding-top: 40px;
  }
  .nsh2-pcomm__tagline {
    justify-content: center;
    left: 48px;
    margin: 0;
    position: absolute;
    right: 48px;
    top: 0;
    transform: translateY(-50%);
    z-index: 2;
  }
  .nsh2-pcomm__cta {
    margin-bottom: 40px;
  }
  .nsh2-psimilar {
    padding: 72px 0;
  }
  .nsh2-psimilar .nsh2-hcard {
    flex-basis: min(78vw, 628px);
  }
  .nsh2-psimilar__heading {
    font-size: 36px;
    line-height: 44px;
  }
  .nsh2-hcard__specs {
    flex-wrap: wrap;
  }
  .nsh2-sassoc__form {
    padding: 32px 24px;
  }
}
@media (max-width: 782px) {
  .nsh2-psimilar .nsh2-hcard {
    flex-basis: min(86vw, 420px);
  }
  .nsh2-hcard__gallery {
    height: 200px;
  }
  .nsh2-hcard__controls {
    left: 36px;
    right: 36px;
  }
  .nsh2-hcard__body {
    gap: 16px;
    padding: 16px;
  }
  .nsh2-hcard__head {
    flex-direction: column;
    gap: 4px;
  }
  .nsh2-hcard__name h3 {
    font-size: 22px;
    line-height: 28px;
  }
  .nsh2-hcard__place {
    font-size: 14px;
    line-height: 22px;
    margin-top: 4px;
  }
  .nsh2-hcard__specs {
    display: grid;
    gap: 10px 16px;
    grid-template-columns: 1fr 1fr;
    justify-content: stretch;
  }
  .nsh2-hcard__actions {
    display: grid;
    gap: 8px;
    grid-template-columns: 1fr 1fr;
  }
  .nsh2-hcard__btn {
    flex: none;
    letter-spacing: 1.2px;
    width: 100%;
  }
  .nsh2-hcard__btn--fill {
    grid-column: 1/-1;
  }
  .nsh2-psimilar__nav {
    top: 208px;
  }
}
.nsh2-diff {
  color: var(--wp--preset--color--base, #fff);
  display: flex;
  flex-direction: column;
  isolation: isolate;
  min-height: 100svh;
  overflow: hidden;
  position: relative;
}
.nsh2-diff::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 100%), linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7));
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.nsh2-diff--plain {
  background: #00304c;
}

.nsh2-diff__bg {
  background-position: center;
  background-size: cover;
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
  z-index: -2;
}

.nsh2-diff__inner {
  box-sizing: border-box;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 64px;
  justify-content: center;
  margin: 0 auto;
  max-width: 1440px;
  padding: clamp(64px, 8.5vw, 120px) clamp(24px, 5.5vw, 80px);
  width: 100%;
}

.nsh2-diff__header {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 0 auto;
  max-width: 628px;
  text-align: center;
}
.nsh2-diff__header > * {
  margin: 0;
}

.nsh2-tagline--center::after {
  background: currentColor;
  content: "";
  height: 1px;
  transform: scaleX(var(--nsh2-rule, 1));
  transform-origin: left center;
  width: 40px;
}

.nsh2-diff__title {
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(44px, 5vw, 72px);
  font-weight: 400;
  line-height: 1.11;
}

.nsh2-diff__lede {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 18px;
  line-height: 30px;
}

.nsh2-diff__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.nsh2-diff__tab {
  align-items: center;
  background: none;
  border: 0;
  border-bottom: 0.5px solid var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
  display: flex;
  flex: 1 1 220px;
  max-width: 320px;
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 24px;
  gap: 8px;
  justify-content: center;
  line-height: 30px;
  padding: 16px;
  transition: background-color 0.2s ease;
}
.nsh2-diff__tab[aria-selected=true] {
  backdrop-filter: blur(5px);
  background: rgba(255, 255, 255, 0.1);
  border: 0.5px solid var(--wp--preset--color--base, #fff);
}
.nsh2-diff__tab:hover:not([aria-selected=true]) {
  background: rgba(255, 255, 255, 0.05);
}
.nsh2-diff__tab:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: -4px;
}
@media (max-width: 1024px) {
  .nsh2-diff__tab {
    flex: 1 1 calc(50% - 8px);
    max-width: calc(50% - 8px);
  }
}
@media (max-width: 640px) {
  .nsh2-diff__tab {
    flex: 1 1 100%;
    justify-content: flex-start;
    max-width: 100%;
  }
}

.nsh2-diff__num {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  font-weight: 700;
  line-height: 22px;
}

.nsh2-diff__panels {
  display: grid;
}

.nsh2-diff__panel {
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 16px;
  grid-area: 1/1;
  justify-self: start;
  max-width: 519px;
  width: min(100%, 519px);
}
.nsh2-diff__panel > * {
  margin: 0;
}
.nsh2-diff__panel:not(.is-active) {
  visibility: hidden;
}

.nsh2-diff__panel--right {
  justify-self: end;
}

.nsh2-diff__panel-title {
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(30px, 2.8vw, 40px);
  font-weight: 400;
  line-height: 1.2;
}

.nsh2-diff__panel-copy {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
}

.nsh2-diff .nsh2-link-underline--arrow {
  align-items: center;
  align-self: flex-start;
  background: transparent;
  border: 1px solid transparent;
  border-bottom-color: currentColor;
  color: var(--wp--preset--color--base, #fff);
  display: inline-flex;
  gap: 8px;
  padding: 16px 0 4px;
  transition: padding 0.45s ease, margin 0.45s ease, border-color 0.45s ease, background-color 0.45s ease, color 0.45s ease, gap 0.45s ease;
}
.nsh2-diff .nsh2-link-underline--arrow::after {
  content: none;
}
.nsh2-diff .nsh2-link-underline--arrow svg {
  flex: 0 0 auto;
  transition: transform 0.45s ease;
}
.nsh2-diff .nsh2-link-underline--arrow:hover, .nsh2-diff .nsh2-link-underline--arrow:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  border-bottom-width: 1px;
  border-color: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
  gap: 16px;
  margin-bottom: -12px;
  padding: 16px;
}
.nsh2-diff .nsh2-link-underline--arrow:hover::after, .nsh2-diff .nsh2-link-underline--arrow:focus-visible::after {
  animation: none;
  opacity: 0;
}
.nsh2-diff .nsh2-link-underline--arrow:hover svg, .nsh2-diff .nsh2-link-underline--arrow:focus-visible svg {
  transform: translateX(6px);
}

.nsh2-diff--city .nsh2-diff__title {
  font-size: clamp(36px, 3.4vw, 48px);
  line-height: 1.167;
}
.nsh2-diff--city .nsh2-diff__bg {
  opacity: 0;
  transition: opacity 0.45s ease;
}
.nsh2-diff--city .nsh2-diff__bg.is-active {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .nsh2-diff--city .nsh2-diff__bg {
    transition: none;
  }
}
.nsh2-vision {
  padding: clamp(64px, 8.5vw, 120px) clamp(24px, 5.5vw, 80px);
}
.nsh2-vision .nsh2-vision__cols {
  gap: 24px;
  margin: 0 auto;
  max-width: 1440px;
}
.nsh2-vision .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.nsh2-vision .wp-block-column > * {
  margin: 0;
}

.nsh2-card__img {
  overflow: hidden;
}
.nsh2-card__img img {
  aspect-ratio: 628/383;
  display: block;
  height: auto;
  object-fit: cover;
  transition: transform 0.8s ease;
  width: 100%;
}
.nsh2-card__img picture {
  display: block;
}

.nsh2-card__img-link {
  display: block;
  overflow: hidden;
  position: relative;
}
.nsh2-card__img-link::after {
  background: color-mix(in srgb, var(--wp--preset--color--contrast, #0c3554) 22%, transparent);
  content: "";
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  transition: opacity 0.8s ease;
  z-index: 1;
}
.nsh2-card__img > .nsh2-card__img-link {
  display: block;
}
.nsh2-card__img-link:hover img, .nsh2-card__img-link:focus-visible img {
  transform: scale(1.045);
}
.nsh2-card__img-link:hover::after, .nsh2-card__img-link:focus-visible::after {
  opacity: 1;
}
.nsh2-card__img-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .nsh2-card__img img,
  .nsh2-card__img-link::after {
    transition: none;
  }
}
.nsh2-kicker {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: normal;
  text-transform: uppercase;
}

.nsh2-card__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 28px;
  font-weight: 400;
  line-height: 34px;
}

.nsh2-card__copy {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 30px;
}

.nsh2-link-rule-wrap {
  line-height: 0;
}

.nsh2-link-rule {
  align-items: center;
  color: var(--wp--preset--color--contrast, #0c3554);
  display: inline-flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 8px;
  letter-spacing: 1.8px;
  line-height: normal;
  text-decoration: none;
  text-transform: uppercase;
}
.nsh2-link-rule::before {
  background: currentColor;
  content: "";
  height: 1px;
  transition: width 0.2s ease;
  width: 20px;
}
.nsh2-link-rule:hover::before, .nsh2-link-rule:focus-visible::before {
  width: 40px;
}
.nsh2-link-rule:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

.nsh2-slide {
  color: var(--wp--preset--color--base, #fff);
  isolation: isolate;
}
.nsh2-slide::after {
  background: linear-gradient(270deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, calc(var(--nsh2-slide-overlay, 0.45) + 0.2)) 100%), linear-gradient(rgba(0, 0, 0, var(--nsh2-slide-overlay, 0.45)), rgba(0, 0, 0, var(--nsh2-slide-overlay, 0.45)));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.nsh2-slide .wp-block-cover__inner-container {
  margin: 0 auto;
  max-width: 1440px;
  padding: clamp(64px, 8.5vw, 120px) clamp(24px, 5.5vw, 80px);
  position: relative;
  width: 100%;
  z-index: 1;
}
@media (max-width: 1024px) {
  .nsh2-slide {
    min-height: min(720px, 92svh) !important;
  }
}

.nsh2-slide--intro.wp-block-cover {
  align-items: flex-end;
  justify-content: flex-start;
}
.nsh2-slide--intro.wp-block-cover .wp-block-cover__inner-container {
  margin-left: 0;
  margin-right: 0;
  max-width: none;
  width: 100%;
}

.nsh2-slide__intro {
  align-items: flex-end;
  display: flex;
  gap: 32px;
  justify-content: space-between;
  width: 100%;
}
@media (max-width: 1024px) {
  .nsh2-slide__intro {
    align-items: flex-start;
    flex-direction: column;
  }
}

.nsh2-slide__info {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.nsh2-slide__info > * {
  margin: 0;
}

.nsh2-slide .nsh2-tagline,
.nsh2-slide .nsh2-link-underline,
.nsh2-slide .nsh2-kicker,
.nsh2-slide .nsh2-slide__meta,
.nsh2-slide .nsh2-btn-outline {
  font-size: 16px;
  letter-spacing: 0.12em;
}

.nsh2-slide__cities {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

.nsh2-slide__meta {
  align-items: center;
  display: flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 8px;
  letter-spacing: 1.8px;
  line-height: normal;
  text-transform: uppercase;
}

.nsh2-slide__rule {
  background: currentColor;
  display: inline-block;
  height: 1px;
  width: 20px;
}

.nsh2-slide__status {
  color: var(--wp--preset--color--accent-1, #d2ba81);
}

.nsh2-slide__name {
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(44px, 5vw, 72px);
  font-weight: 400;
  line-height: 1.11;
}

.nsh2-slide__copy {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
}

.nsh2-slide__info .nsh2-btn-outline {
  align-self: flex-start;
  margin-top: 8px;
}

.nsh2-slides--deck {
  height: calc(var(--nsh2-deck-screens, 1) * 100svh);
  position: relative;
}
.nsh2-slides--deck .nsh2-slide {
  height: 100%;
  inset: 0;
  min-height: 0 !important;
  overflow: hidden;
  position: absolute;
  will-change: transform;
}
.nsh2-slides--deck .nsh2-slide .wp-block-cover__image-background {
  will-change: transform;
}

.nsh2-slides__viewport {
  height: 100svh;
  overflow: hidden;
  position: sticky;
  top: 0;
  width: 100%;
}

.nsh2-homes {
  padding: clamp(64px, 8.5vw, 120px) clamp(24px, 5.5vw, 80px);
}

.nsh2-homes__inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
  margin: 0 auto;
  max-width: 1440px;
}

/* ------------------------------------------------------------------ header */
.nsh2-homes__header {
  align-items: flex-end;
  border-bottom: 1px solid #d5d5d7;
  display: flex;
  gap: 32px;
  justify-content: space-between;
  padding-bottom: 48px;
}
@media (max-width: 1024px) {
  .nsh2-homes__header {
    align-items: flex-start;
    flex-direction: column;
  }
}

.nsh2-homes:not(.nsh2-chomes) .nsh2-tagline {
  color: #636569;
}
.nsh2-homes:not(.nsh2-chomes) .nsh2-tagline::before {
  background: var(--wp--preset--color--accent-1, #d2ba81);
}

.nsh2-homes__titles {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.nsh2-homes__titles > * {
  margin: 0;
}

.nsh2-homes__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(40px, 4.2vw, 60px);
  font-weight: 400;
  line-height: 1.13;
}

.nsh2-homes__lede {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
  max-width: 411px;
}

/* ------------------------------------------------------------- block frame */
.nsh2-homes .nsh-cgrid__inner {
  max-width: none;
  padding: 0;
}

.nsh2-homes .nsh-cgrid__count {
  display: none;
}

/* ----------------------------------------------------------------- filters */
.nsh2-homes .nsh-cfilters {
  border-bottom: 0;
  gap: 24px 16px;
  margin-bottom: 48px;
  padding-bottom: 0;
}

.nsh2-homes:not(.nsh2-chomes) .nsh-cfilters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 640px) {
  .nsh2-homes:not(.nsh2-chomes) .nsh-cfilters {
    grid-template-columns: 1fr 1fr;
  }
}

.nsh2-homes .nsh-cfilters__group {
  max-width: 220px;
  min-width: 0;
}

.nsh2-homes:not(.nsh2-chomes) .nsh-cfilters__group {
  max-width: none;
}

.nsh2-homes .nsh-cfilters select {
  background-color: var(--wp--preset--color--base, #fff);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23636569' stroke-linecap='round' stroke-linejoin='round' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E");
  background-size: 12px 12px;
  border: 1px solid #d5d5d7;
  color: #636569;
  font-size: 12px;
  font-weight: 400;
  height: 40px;
  letter-spacing: 0.04em;
  line-height: 16px;
  padding: 0 36px 0 16px;
  text-transform: none;
}

.nsh2-homes:not(.nsh2-chomes) .nsh-cfilters__reset {
  align-self: center;
  justify-self: start;
}

.nsh2-homes .nsh-cfilters__reset {
  background: none;
  border: 0;
  border-bottom: 1px solid currentColor;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  padding: 4px 0;
  text-transform: uppercase;
}
.nsh2-homes .nsh-cfilters__reset:hover {
  background: none;
  border-bottom-width: 2px;
  color: var(--wp--preset--color--contrast, #0c3554);
}

/* ------------------------------------------------------------------- cards */
.nsh2-homes .nsh-cgrid__grid {
  gap: 24px;
}
.nsh2-homes .nsh-cgrid__grid > .nsh-pcard {
  flex: 0 0 calc((100% - 24px) / 2);
  max-width: calc((100% - 24px) / 2);
}
@media (max-width: 640px) {
  .nsh2-homes .nsh-cgrid__grid > .nsh-pcard,
  .nsh2-homes .nsh-cgrid__grid > .nsh2-hcard {
    flex-basis: 100%;
    max-width: 100%;
  }
}

.nsh2-homes .nsh-pcard {
  border-radius: 4px;
  box-shadow: 0 1px 2px rgba(12, 12, 13, 0.1), 0 1px 2px rgba(12, 12, 13, 0.05);
  overflow: hidden;
}

.nsh2-homes .nsh-cgrid__grid > .nsh2-hcard {
  flex: 1 1 calc((100% - 24px) / 2);
  max-width: calc((100% - 24px) / 2);
  min-width: 0;
}

.nsh2-homes .nsh2-hcard {
  overflow: visible;
}

.nsh2-homes .nsh2-hcard__tag {
  background: var(--wp--preset--color--accent-1, #d2ba81);
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 700;
  left: 0;
  letter-spacing: 0.04em;
  padding: 8px 16px;
  position: absolute;
  text-transform: uppercase;
  top: 24px;
  z-index: 2;
}

.nsh2-homes .nsh-pcard__photo {
  max-height: 270px;
  min-height: 270px;
}

.nsh2-homes .nsh-pcard__badge {
  background: var(--wp--preset--color--accent-1, #d2ba81);
  clip-path: none;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.15));
  left: auto;
  padding: 8px 16px;
  right: 0;
  top: 24px;
}
.nsh2-homes .nsh-pcard__badge::before {
  display: none;
}

.nsh2-homes .nsh-pcard__badge-text {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.nsh2-homes .nsh-pcard__box {
  color: var(--wp--preset--color--contrast, #0c3554);
  padding: 24px;
  text-align: left;
}

.nsh2-homes .nsh-pcard__title {
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 30px;
  margin: 0 0 8px;
  text-transform: none;
}

.nsh2-homes .nsh-pcard__type {
  display: none;
}

.nsh2-homes .nsh-pcard__community {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  text-transform: uppercase;
}

.nsh2-homes .nsh-pcard__location {
  color: #636569;
  justify-content: flex-start;
  margin-top: 2px;
}

.nsh2-homes .nsh-pcard__homesite,
.nsh2-homes .nsh-pcard__ready {
  color: #636569;
  justify-content: flex-start;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

.nsh2-homes .nsh-pcard__price {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  margin: 12px 0 16px;
  text-transform: none;
}
.nsh2-homes .nsh-pcard__price span {
  font-weight: 400;
}

.nsh2-homes .nsh-pcard__rule {
  background: #d5d5d7;
}

.nsh2-homes .nsh-pcard__specs {
  justify-content: space-between;
  gap: 4px 12px;
}
.nsh2-homes .nsh-pcard__specs span {
  color: #636569;
  font-weight: 400;
  letter-spacing: 0.04em;
}
.nsh2-homes .nsh-pcard__specs span + span::before {
  content: none;
}

.nsh2-homes .nsh-pcard__sqft {
  color: #636569;
  font-weight: 400;
  text-align: left;
}

/* ---------------------------------------------------------- card buttons */
.nsh2-homes .nsh-pcard__btn {
  background: none;
  border: 1px solid var(--wp--preset--color--accent-1, #d2ba81);
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  min-height: 38px;
  text-transform: uppercase;
}
.nsh2-homes .nsh-pcard__btn:hover {
  background: var(--wp--preset--color--accent-1, #d2ba81);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-homes .nsh-pcard__btn--primary {
  background: var(--wp--preset--color--contrast, #0c3554);
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
  order: -1;
}
.nsh2-homes .nsh-pcard__btn--primary:hover {
  background: var(--wp--preset--color--base, #fff);
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh2-homes .nsh-pcard__footer {
  gap: 16px;
  padding-top: 8px;
}

/* ------------------------------------------------- show more + view all */
.nsh2-homes .nsh-homes__more,
.nsh2-btn-outline--navy {
  background: none;
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-homes .nsh-homes__more:hover,
.nsh2-btn-outline--navy:hover {
  background: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
}

.nsh2-homes .nsh-homes__more {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 16px;
  justify-content: center;
  letter-spacing: 1.8px;
  padding: 16px;
  text-transform: uppercase;
}
.nsh2-homes .nsh-homes__more[hidden] {
  display: none;
}

.nsh2-homes .nsh-homes__more-wrap,
.nsh2-homes__actions {
  display: flex;
  justify-content: center;
}

.nsh2-newsletter {
  --nsh2-newsletter-wash: var(--wp--preset--color--contrast, #0c3554);
  background: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
  display: flex;
  flex-direction: column;
  gap: 48px;
  isolation: isolate;
  padding: clamp(64px, 8.5vw, 120px) clamp(24px, 5.5vw, 80px);
  position: relative;
}
.nsh2-newsletter::before {
  background-color: currentColor;
  content: "";
  inset: 0;
  mask: url("../img/newsletter/diamond-motif.svg") center/96px 96px repeat;
  -webkit-mask: url("../img/newsletter/diamond-motif.svg") center/96px 96px repeat;
  opacity: 0.2;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.nsh2-newsletter::after {
  background: linear-gradient(180deg, var(--nsh2-newsletter-wash) 0%, rgba(0, 48, 76, 0) 100%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.nsh2-newsletter > * {
  position: relative;
  z-index: 1;
}

.nsh2-newsletter__header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0 auto;
  max-width: 846px;
  text-align: center;
}
.nsh2-newsletter__header > * {
  margin: 0;
}

.nsh2-newsletter__tagline {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 22px;
  margin: 0;
  text-transform: uppercase;
}

.nsh2-newsletter__title {
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 32px;
  font-weight: 400;
  line-height: 40px;
}

.nsh2-newsletter__copy {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
}

/* ------------------------------------------------- Gravity Form 2026 skin */
.nsh2-newsletter__form {
  margin: 0 auto;
  max-width: 1280px;
  width: 100%;
}
.nsh2-newsletter__form .gform_wrapper {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
}
.nsh2-newsletter__form .gform_fields {
  display: grid !important;
  gap: 24px 16px;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 640px) {
  .nsh2-newsletter__form .gform_fields {
    grid-template-columns: 1fr;
  }
}
.nsh2-newsletter__form .gform_wrapper .gfield {
  margin: 0;
}
.nsh2-newsletter__form .gform_wrapper .gfield--type-textarea,
.nsh2-newsletter__form .gform_wrapper .gfield--type-captcha,
.nsh2-newsletter__form .gform_wrapper .gfield--type-html,
.nsh2-newsletter__form .gform_wrapper .gfield--width-full {
  grid-column: 1/-1;
}
.nsh2-newsletter__form .gform_wrapper .gfield--type-hidden,
.nsh2-newsletter__form .gform_wrapper .gfield--type-honeypot {
  display: none;
}
.nsh2-newsletter__form .gform_wrapper a.submit-form {
  display: none;
}
.nsh2-newsletter__form .gform_wrapper label,
.nsh2-newsletter__form .gform_wrapper legend {
  color: var(--wp--preset--color--base, #fff);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}
.nsh2-newsletter__form .gform_wrapper input[type=text],
.nsh2-newsletter__form .gform_wrapper input[type=email],
.nsh2-newsletter__form .gform_wrapper input[type=tel],
.nsh2-newsletter__form .gform_wrapper select,
.nsh2-newsletter__form .gform_wrapper textarea {
  background: transparent;
  border: 1px solid var(--wp--preset--color--base, #fff);
  border-radius: 0;
  color: var(--wp--preset--color--base, #fff);
  font-family: inherit;
  font-size: 12px;
  min-height: 38px;
  padding: 8px;
  width: 100%;
}
.nsh2-newsletter__form .gform_wrapper input[type=text]::placeholder,
.nsh2-newsletter__form .gform_wrapper input[type=email]::placeholder,
.nsh2-newsletter__form .gform_wrapper input[type=tel]::placeholder,
.nsh2-newsletter__form .gform_wrapper select::placeholder,
.nsh2-newsletter__form .gform_wrapper textarea::placeholder {
  color: rgba(255, 255, 255, 0.75);
}
.nsh2-newsletter__form .gform_wrapper input[type=text]:focus-visible,
.nsh2-newsletter__form .gform_wrapper input[type=email]:focus-visible,
.nsh2-newsletter__form .gform_wrapper input[type=tel]:focus-visible,
.nsh2-newsletter__form .gform_wrapper select:focus-visible,
.nsh2-newsletter__form .gform_wrapper textarea:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent-1, #d2ba81);
  outline-offset: 2px;
}
.nsh2-newsletter__form .gform_wrapper textarea {
  min-height: 96px;
}
.nsh2-newsletter__form .gform_wrapper .gfield--type-html,
.nsh2-newsletter__form .gform_wrapper .gform_required_legend {
  color: rgba(255, 255, 255, 0.75);
  font-size: 12px;
  line-height: 1.5;
}
.nsh2-newsletter__form .gform_wrapper .gfield--type-html a,
.nsh2-newsletter__form .gform_wrapper .gform_required_legend a {
  color: var(--wp--preset--color--accent-1, #d2ba81);
}
.nsh2-newsletter__form .gform_wrapper input[type=submit],
.nsh2-newsletter__form .gform_wrapper .gform_button {
  background: var(--wp--preset--color--accent-1, #d2ba81) !important;
  border: 1px solid var(--wp--preset--color--accent-1, #d2ba81) !important;
  border-radius: 0;
  color: var(--wp--preset--color--contrast, #0c3554) !important;
  cursor: pointer;
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  min-height: 38px;
  padding: 8px 24px;
  text-transform: uppercase;
  transition: background-color 0.18s ease, color 0.18s ease;
}
.nsh2-newsletter__form .gform_wrapper input[type=submit]:hover,
.nsh2-newsletter__form .gform_wrapper .gform_button:hover {
  background: var(--wp--preset--color--base, #fff) !important;
}
.nsh2-newsletter__form .gform_wrapper input[type=submit]:focus-visible,
.nsh2-newsletter__form .gform_wrapper .gform_button:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 2px;
}
.nsh2-newsletter__form .gform_wrapper .gform_footer {
  display: flex;
  justify-content: center;
  margin-top: 24px;
  padding: 0;
}
.nsh2-newsletter__form .gform_wrapper .gfield_error label,
.nsh2-newsletter__form .gform_wrapper .gfield_validation_message,
.nsh2-newsletter__form .gform_wrapper .validation_message {
  background: transparent;
  border: 0;
  color: #ffd7c9;
}
.nsh2-newsletter__form .gform_wrapper .gform_validation_errors {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid #ffd7c9;
  color: var(--wp--preset--color--base, #fff);
}

.nsh2-newsletter--navy {
  padding: 120px 80px;
}
@media (max-width: 782px) {
  .nsh2-newsletter--navy {
    padding: 64px 24px;
  }
}
.nsh2-newsletter--navy::before {
  background-color: transparent;
  background-image: url("../img/newsletter/diamond-pattern.svg");
  background-position: 687.141px 146.373px;
  background-repeat: repeat;
  background-size: 157.723px 141.255px;
  mask: none;
  -webkit-mask: none;
  opacity: 0.15;
  z-index: 1;
}
.nsh2-newsletter--navy::after {
  z-index: 0;
}
.nsh2-newsletter--navy > * {
  z-index: 2;
}
.nsh2-newsletter--navy .nsh2-newsletter__form {
  max-width: 1280px;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper form {
  align-items: end;
  column-gap: 24px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) max-content;
  row-gap: 0;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_body,
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_fields {
  display: contents !important;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-text.gfield_visibility_visible,
.nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-email,
.nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-phone {
  display: flex;
  flex-direction: column;
  gap: 8px;
  grid-row: 1;
  min-width: 0;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-textarea,
.nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-captcha,
.nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-html,
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_required_legend {
  display: none !important;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper .gfield {
  margin: 0;
  min-width: 0;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper .ginput_container {
  margin: 0;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper label,
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper legend,
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper .gfield_label {
  letter-spacing: 0;
  line-height: 12px;
  margin: 0 !important;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper .gfield_required {
  color: var(--wp--preset--color--base, #fff);
  margin-left: 4px;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper input[type=text],
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper input[type=email],
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper input[type=tel] {
  background: var(--wp--preset--color--contrast, #0c3554);
  border: 1px solid var(--wp--preset--color--base, #fff);
  box-shadow: none;
  box-sizing: border-box;
  font-size: 12px;
  font-weight: 400;
  height: 38px;
  line-height: 12px;
  margin: 0;
  min-height: 38px;
  padding: 8px 16px;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper input[type=text]::placeholder,
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper input[type=email]::placeholder,
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper input[type=tel]::placeholder {
  color: var(--wp--preset--color--base, #fff);
  opacity: 1;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper .gform_footer,
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper .gform-footer {
  align-self: end;
  grid-column: 5;
  grid-row: 1;
  margin: 0 !important;
  padding: 0;
}
.nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper button.gform_button {
  align-items: center;
  display: inline-flex;
  font-weight: 500 !important;
  gap: 16px;
  height: 38px;
  letter-spacing: 1.8px;
  line-height: 12px;
  min-height: 38px;
  padding: 8px 16px;
  white-space: nowrap;
}
@media (max-width: 782px) {
  .nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper form {
    grid-template-columns: 1fr;
    row-gap: 16px;
  }
  .nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-text.gfield_visibility_visible,
  .nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-email,
  .nsh2-newsletter--navy .nsh2-newsletter__form .gfield--type-phone,
  .nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper .gform_footer,
  .nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper .gform-footer {
    grid-column: 1;
    grid-row: auto;
  }
  .nsh2-newsletter--navy .nsh2-newsletter__form .gform_wrapper button.gform_button {
    width: 100%;
  }
}

.nsh2-newsletter--champagne {
  --nsh2-newsletter-wash: var(--wp--preset--color--accent-1, #d2ba81);
  background: var(--wp--preset--color--accent-1, #d2ba81);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-newsletter--champagne::after {
  background: linear-gradient(180deg, var(--nsh2-newsletter-wash) 0%, rgba(210, 186, 129, 0) 100%);
}
.nsh2-newsletter--champagne .nsh2-newsletter__tagline,
.nsh2-newsletter--champagne .nsh2-newsletter__title,
.nsh2-newsletter--champagne .nsh2-newsletter__copy {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-newsletter--champagne .nsh2-newsletter__form {
  max-width: 1280px;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper form {
  align-items: start;
  column-gap: 24px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) 193px;
  row-gap: 24px;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_body,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_fields {
  display: contents !important;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-hidden,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-honeypot,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield_visibility_hidden,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_hidden {
  display: none !important;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-name {
  display: contents;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-name > .gfield_label {
  display: none;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .ginput_container_name {
  display: contents;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_first,
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_last {
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-self: stretch;
  max-width: none;
  min-width: 0;
  padding-top: 0 !important;
  width: 100% !important;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_first input,
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_last input {
  margin-bottom: 0 !important;
  width: 100%;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_first::before,
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_last::before {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 16px;
  text-transform: uppercase;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_first {
  grid-column: 1;
  grid-row: 1;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_first::before {
  content: "First Name*";
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_last {
  grid-column: 2;
  grid-row: 1;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .name_last::before {
  content: "Last Name*";
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-email,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-phone,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-text.gfield_visibility_visible {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-email {
  grid-column: 3;
  grid-row: 1;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-phone {
  grid-column: 4;
  grid-row: 1;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-text.gfield_visibility_visible {
  align-self: start;
  grid-column: 1;
  grid-row: 2;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-captcha {
  align-self: start;
  grid-column: 2/5;
  grid-row: 2;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gfield {
  min-width: 0;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .ginput_container {
  margin-top: 0;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper label,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper legend {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gfield.hidden_label > .gfield_label {
  clip: auto !important;
  clip-path: none;
  height: auto !important;
  margin: 0;
  overflow: visible !important;
  position: static !important;
  width: auto !important;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=text],
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=email],
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=tel],
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper select,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper textarea {
  background: var(--wp--preset--color--base, #fff);
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
  margin-top: 0;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=text]::placeholder,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=email]::placeholder,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=tel]::placeholder,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper select::placeholder,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper textarea::placeholder {
  color: rgba(0, 48, 76, 0.55);
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=text]:focus-visible,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=email]:focus-visible,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=tel]:focus-visible,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper select:focus-visible,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper textarea:focus-visible {
  outline-color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gfield--type-html,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gform_required_legend {
  color: rgba(0, 48, 76, 0.75);
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gfield--type-html a,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gform_required_legend a {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gform_footer {
  align-self: end;
  grid-column: 5;
  grid-row: 1;
  justify-content: stretch;
  margin: 0;
  width: 193px;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=submit],
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gform_button {
  background: var(--wp--preset--color--contrast, #0c3554) !important;
  border-color: var(--wp--preset--color--contrast, #0c3554) !important;
  color: var(--wp--preset--color--base, #fff) !important;
  width: 100%;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=submit]:hover,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gform_button:hover {
  background: var(--wp--preset--color--base, #fff) !important;
  color: var(--wp--preset--color--contrast, #0c3554) !important;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper input[type=submit]:focus-visible,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gform_button:focus-visible {
  outline-color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gfield_error label,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gfield_validation_message,
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .validation_message {
  color: #8a2b1c;
}
.nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gform_validation_errors {
  background: rgba(0, 48, 76, 0.06);
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
  grid-column: 1/-1;
}
@media (max-width: 782px) {
  .nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper form {
    grid-template-columns: 1fr;
  }
  .nsh2-newsletter--champagne .nsh2-newsletter__form .name_first,
  .nsh2-newsletter--champagne .nsh2-newsletter__form .name_last,
  .nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-email,
  .nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-phone,
  .nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-text.gfield_visibility_visible,
  .nsh2-newsletter--champagne .nsh2-newsletter__form .gfield--type-captcha,
  .nsh2-newsletter--champagne .nsh2-newsletter__form .gform_wrapper .gform_footer {
    grid-column: 1;
    grid-row: auto;
    width: 100%;
  }
}

.nsh2-hoods {
  background: var(--wp--preset--color--accent-5, #fff9f6);
  padding: 64px clamp(24px, 5.5vw, 80px) clamp(64px, 8.5vw, 120px);
}

.nsh2-hoods__header {
  align-items: center;
  background: var(--wp--preset--color--accent-5, #fff9f6);
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 0 auto 48px;
  max-width: 846px;
  position: relative;
  text-align: center;
  z-index: 2;
}

.nsh2-hoods .nsh2-tagline {
  color: #636569;
  justify-content: center;
}
.nsh2-hoods .nsh2-tagline::before, .nsh2-hoods .nsh2-tagline::after {
  background: var(--wp--preset--color--accent-1, #d2ba81);
}

.nsh2-hoods__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(36px, 3.4vw, 48px);
  font-weight: 400;
  line-height: 56px;
  margin: 0;
}

.nsh2-hoods__lede {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
}

.nsh2-hoods__stage {
  border-radius: 4px;
  container-type: size;
  height: clamp(480px, 100vh - 240px, 795px);
  isolation: isolate;
  margin: 0 auto;
  max-width: 1280px;
  overflow: hidden;
  position: relative;
  z-index: 0;
}

.nsh2-hoods__canvas {
  inset: 0;
  overflow: hidden;
  position: absolute;
}
.nsh2-hoods__canvas .gm-style {
  z-index: 0 !important;
}

.nsh2-hoods__panel {
  bottom: 16px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  left: 40px;
  max-height: calc(100% - 32px);
  position: absolute;
  width: 302px;
  z-index: 2;
}

.nsh2-hoods__city {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 0;
}
.nsh2-hoods__city[hidden] {
  display: none;
}

.nsh2-hoods__label {
  color: #fff;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  margin: 0 0 16px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.nsh2-hoods__cards {
  display: flex;
  flex-direction: column;
  gap: 16px;
  list-style: none;
  margin: 0;
  min-height: 0;
  padding: 0;
}
.nsh2-hoods__cards > li {
  display: flex;
  min-height: 0;
}

.nsh2-hoods__card {
  border: 0.5px solid #fff;
  border-radius: 4px;
  color: #fff;
  display: block;
  flex: 1 1 auto;
  height: min(200px, (100cqh - 104px) / 2);
  min-height: 0;
  overflow: hidden;
  position: relative;
  text-decoration: none;
  width: 100%;
}
.nsh2-hoods__card img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.nsh2-hoods__card::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.8) 100%), linear-gradient(90deg, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.35));
  content: "";
  inset: 0;
  position: absolute;
}

.nsh2-hoods__soon,
.nsh2-hoods__name,
.nsh2-hoods__view {
  position: absolute;
  z-index: 1;
}

.nsh2-hoods__soon {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 700;
  left: 16px;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
  top: 16px;
}

.nsh2-hoods__name {
  bottom: 16px;
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 24px;
  font-weight: 400;
  left: 16px;
  line-height: 30px;
}

.nsh2-hoods__view {
  bottom: 18px;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 1;
  right: 16px;
  text-transform: uppercase;
}
.nsh2-hoods__view::before {
  background: currentColor;
  bottom: -6px;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left center;
  width: 100%;
}
.nsh2-hoods__view::after {
  border-right: 1.5px solid currentColor;
  border-top: 1.5px solid currentColor;
  content: "";
  display: inline-block;
  height: 6px;
  margin-left: 8px;
  transform: rotate(45deg);
  width: 6px;
}

.nsh2-hoods__card:hover .nsh2-hoods__view,
.nsh2-hoods__card:focus-visible .nsh2-hoods__view {
  color: #fff;
}
.nsh2-hoods__card:hover .nsh2-hoods__view::before,
.nsh2-hoods__card:focus-visible .nsh2-hoods__view::before {
  animation: nsh2-line-draw 0.35s ease forwards;
}

.nsh2-hoods__card:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

.nsh2-hoods__pin {
  align-items: center;
  background: rgba(255, 249, 246, 0.92);
  border: 2px solid var(--wp--preset--color--accent-1, #d2ba81);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  height: 45px;
  justify-content: center;
  padding: 0;
  width: 45px;
}
.nsh2-hoods__pin span {
  background: var(--wp--preset--color--contrast, #0c3554);
  border-radius: 50%;
  height: 8px;
  width: 8px;
}
.nsh2-hoods__pin.is-active {
  background: var(--wp--preset--color--orange, #b69121);
  border-color: var(--wp--preset--color--orange, #b69121);
}
.nsh2-hoods__pin.is-active span {
  background: #fff;
}
.nsh2-hoods__pin:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media (max-width: 782px) {
  .nsh2-hoods__title {
    line-height: 1.15;
  }
  .nsh2-hoods__stage {
    container-type: normal;
    display: flex;
    flex-direction: column;
    gap: 20px;
    height: auto;
    overflow: visible;
  }
  .nsh2-hoods__canvas {
    border-radius: 4px;
    height: min(420px, 52vh);
    inset: auto;
    min-height: 280px;
    position: relative;
  }
  .nsh2-hoods__panel {
    bottom: auto;
    left: auto;
    max-height: none;
    position: relative;
    right: auto;
    width: 100%;
  }
  .nsh2-hoods__label {
    color: var(--wp--preset--color--contrast, #0c3554);
    text-shadow: none;
  }
  .nsh2-hoods__cards {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .nsh2-hoods__card {
    height: 180px;
  }
}
@media (max-width: 560px) {
  .nsh2-hoods__cards {
    grid-template-columns: 1fr;
  }
  .nsh2-hoods__canvas {
    height: 300px;
    min-height: 240px;
  }
}
.nsh2-process {
  align-items: center;
  background: #1c1a17;
  display: flex;
  justify-content: center;
  min-height: 795px;
  overflow: hidden;
  position: relative;
}

.nsh2-process__media {
  inset: 0;
  position: absolute;
  z-index: 0;
}
.nsh2-process__media img,
.nsh2-process__media video {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.nsh2-process__media video {
  inset: 0;
  opacity: 0;
  position: absolute;
}

.nsh2-process.is-playing .nsh2-process__media video {
  opacity: 1;
  transition: opacity 0.45s ease;
}

.nsh2-process__card {
  backdrop-filter: blur(11.5px);
  background: rgba(255, 249, 246, 0.8);
  border-radius: 4px;
  box-shadow: 0 5px 5px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 48px 16px;
  max-width: 519px;
  padding: 48px;
  position: relative;
  text-align: center;
  width: 100%;
  z-index: 1;
}

.nsh2-process .nsh2-tagline {
  color: var(--wp--preset--color--contrast, #0c3554);
  justify-content: center;
  margin: 0;
}
.nsh2-process .nsh2-tagline::before, .nsh2-process .nsh2-tagline::after {
  background: var(--wp--preset--color--accent-1, #d2ba81);
}

.nsh2-process__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 32px;
  font-weight: 400;
  line-height: 40px;
  margin: 0;
}

.nsh2-process__copy {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
}

.nsh2-process__btn {
  background: var(--wp--preset--color--contrast, #0c3554);
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  border-radius: 0;
  box-sizing: border-box;
  color: #fff;
  display: inline-block;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: normal;
  margin: 24px auto 0;
  padding: 16px;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  width: 301px;
}
.nsh2-process__btn:hover, .nsh2-process__btn:focus-visible {
  background: #fff;
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-process__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: 3px;
}

@media (max-width: 782px) {
  .nsh2-process {
    min-height: 0;
  }
  .nsh2-process__card {
    margin: 24px 16px;
    padding: 32px 24px;
  }
  .nsh2-process__title {
    font-size: 28px;
    line-height: 36px;
  }
  .nsh2-process__btn {
    width: 100%;
  }
}
.nsh2-dintro {
  background: var(--wp--preset--color--base, #fff);
  padding: 160px 80px 80px;
}
.nsh2-dintro .nsh2-tagline {
  color: #636569;
  margin: 0;
}
.nsh2-dintro .nsh2-tagline::before {
  background: var(--wp--preset--color--accent-1, #d2ba81);
}

.nsh2-dintro__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-inline: auto;
  max-width: 1440px;
  width: 100%;
}

.nsh2-dintro__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 48px;
  font-weight: 400;
  line-height: 56px;
  margin: 0;
  max-width: 18em;
}

.nsh2-dintro__row {
  align-items: flex-end;
  display: flex;
  gap: 48px;
  justify-content: space-between;
}

.nsh2-dintro__copy {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  margin: 0;
  max-width: 845px;
}

.nsh2-dintro__btn {
  align-items: center;
  background: var(--wp--preset--color--contrast, #0c3554);
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
  display: inline-flex;
  flex: 0 0 auto;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 16px;
  letter-spacing: 1.8px;
  line-height: normal;
  padding: 16px;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.nsh2-dintro__btn:hover, .nsh2-dintro__btn:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-dintro__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: 3px;
}

.nsh2-dintro__btn-icon {
  flex: 0 0 auto;
}

.nsh2-dgal {
  background: var(--wp--preset--color--base, #fff);
  padding: 80px 80px 48px;
}

.nsh2-dgal__inner {
  display: flex;
  flex-direction: column;
  gap: 64px;
  margin-inline: auto;
  max-width: 1440px;
  width: 100%;
}

.nsh2-dgal__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 72px;
  font-weight: 400;
  line-height: 80px;
  margin: 0;
}

.nsh2-dgal__frame {
  height: clamp(520px, 68vh, 760px);
  position: relative;
}

.nsh2-dgal__scroller {
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}
.nsh2-dgal__scroller:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: -2px;
}

.nsh2-dgal__grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0 0 112px;
  position: relative;
}

.nsh2-dgal__item {
  margin: 0;
  min-width: 0;
  opacity: 1;
  transition: opacity 0.28s ease;
}
.nsh2-dgal__item img {
  aspect-ratio: 1;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.nsh2-dgal__item.is-out {
  opacity: 0;
}

.nsh2-dgal.is-motion .nsh2-dgal__item {
  transition: none;
}

.nsh2-dgal__open {
  background: transparent;
  border: 0;
  cursor: zoom-in;
  display: block;
  overflow: hidden;
  padding: 0;
  width: 100%;
}
.nsh2-dgal__open:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: 3px;
}

.nsh2-dgal__empty,
.nsh2-dgal__none {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
}

.nsh2-dgal__nav {
  align-items: center;
  background: var(--wp--preset--color--base, #fff);
  bottom: 24px;
  box-shadow: 0 1px 2px rgba(12, 12, 13, 0.1), 0 1px 2px rgba(12, 12, 13, 0.05);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  justify-content: center;
  left: 50%;
  max-width: calc(100% - 48px);
  padding: 16px;
  position: absolute;
  transform: translateX(-50%);
  width: max-content;
  z-index: 2;
}

.nsh2-dgal__filter {
  background: transparent;
  border: 0;
  color: var(--wp--preset--color--contrast, #0c3554);
  cursor: pointer;
  flex: 0 1 auto;
  white-space: nowrap;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: normal;
  padding: 0 0 4px;
  position: relative;
  text-transform: uppercase;
}
.nsh2-dgal__filter::after {
  background: currentColor;
  bottom: 0;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left center;
  width: 100%;
}
.nsh2-dgal__filter:hover, .nsh2-dgal__filter:focus-visible {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-dgal__filter:hover::after, .nsh2-dgal__filter:focus-visible::after {
  animation: nsh2-line-draw 0.45s ease forwards;
}
.nsh2-dgal__filter:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: 4px;
}
.nsh2-dgal__filter.is-active {
  background: var(--wp--preset--color--accent-1, #d2ba81);
  color: var(--wp--preset--color--contrast, #0c3554);
  padding: 16px;
}
.nsh2-dgal__filter.is-active::after {
  content: none;
}

.nsh2-dgal-zoom {
  inset: 0;
  position: fixed;
  z-index: 10000;
}

.nsh2-dgal-zoom__backdrop {
  background: rgba(0, 24, 40, 0.92);
  inset: 0;
  position: absolute;
}

.nsh2-dgal-zoom__photo {
  object-fit: contain;
  position: fixed;
}

.nsh2-dgal-zoom__close,
.nsh2-dgal-zoom__step {
  background: transparent;
  border: 1px solid var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  line-height: 1;
  position: fixed;
  z-index: 1;
}
.nsh2-dgal-zoom__close:hover, .nsh2-dgal-zoom__close:focus-visible,
.nsh2-dgal-zoom__step:hover,
.nsh2-dgal-zoom__step:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh2-dgal-zoom__close:focus-visible,
.nsh2-dgal-zoom__step:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 3px;
}

.nsh2-dgal-zoom__close {
  font-size: 22px;
  height: 44px;
  right: 24px;
  top: 24px;
  width: 44px;
}

.nsh2-dgal-zoom__step {
  font-size: 28px;
  height: 48px;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
}

.nsh2-dgal-zoom__step--prev {
  left: 20px;
}

.nsh2-dgal-zoom__step--next {
  right: 20px;
}

@media (prefers-reduced-motion: reduce) {
  .nsh2-dgal__item,
  .nsh2-dintro__btn {
    transition: none;
  }
  .nsh2-dgal__filter:hover::after,
  .nsh2-dgal__filter:focus-visible::after {
    animation: none;
    transform: scaleX(1);
  }
}
@media (max-width: 1179px) {
  .nsh2-dintro {
    padding: 140px 32px 64px;
  }
  .nsh2-dintro__title {
    font-size: 40px;
    line-height: 48px;
  }
  .nsh2-dgal {
    padding: 64px 32px 40px;
  }
  .nsh2-dgal__title {
    font-size: 56px;
    line-height: 64px;
  }
  .nsh2-dgal__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }
}
@media (max-width: 782px) {
  .nsh2-dintro {
    padding: 120px 24px 48px;
  }
  .nsh2-dintro__title {
    font-size: 32px;
    line-height: 40px;
  }
  .nsh2-dintro__row {
    align-items: flex-start;
    flex-direction: column;
    gap: 24px;
  }
  .nsh2-dgal {
    padding: 48px 24px 32px;
  }
  .nsh2-dgal__inner {
    gap: 32px;
  }
  .nsh2-dgal__title {
    font-size: 40px;
    line-height: 48px;
  }
  .nsh2-dgal__frame {
    height: min(70vh, 560px);
  }
  .nsh2-dgal__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding-bottom: 96px;
  }
  .nsh2-dgal__nav {
    bottom: 12px;
    gap: 8px 16px;
    padding: 12px;
  }
}
.nsh2-lhero {
  align-items: stretch;
  background: var(--wp--preset--color--contrast, #0c3554);
  display: flex;
  justify-content: center;
  min-height: max(795px, 100svh);
  position: relative;
}
.nsh2-lhero.nsh2-hero::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.45) 100%), linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45));
}
.nsh2-lhero .wp-block-cover__image-background {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
  z-index: 0;
}
.nsh2-lhero .nsh2-hero__text {
  align-items: center;
  max-width: 628px;
  text-align: center;
}

.nsh2-lhero__frame {
  box-sizing: border-box;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: max(795px, 100svh);
  padding: 120px 80px;
  position: relative;
  width: min(1440px, 100%);
  z-index: 1;
}

.nsh2-lhero__title {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(44px, 5vw, 72px);
  font-weight: 400;
  line-height: 1.111;
  margin: 0;
}

.nsh2-lhero__rule {
  background: var(--wp--preset--color--base, #fff);
  height: 1px;
  width: 169px;
}

.nsh2-lhero__arrow {
  flex: 0 0 auto;
}

.nsh2-lhero__card {
  border: 0.5px solid var(--wp--preset--color--base, #fff);
  border-radius: 4px;
  bottom: 48px;
  box-sizing: border-box;
  color: var(--wp--preset--color--base, #fff);
  display: block;
  height: 200px;
  overflow: hidden;
  position: absolute;
  right: 48px;
  text-decoration: none;
  width: 302px;
}
.nsh2-lhero__card img {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.nsh2-lhero__card::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.8) 100%), linear-gradient(rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.35));
  content: "";
  inset: 0;
  position: absolute;
}
.nsh2-lhero__card:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 3px;
}

.nsh2-lhero__card-name,
.nsh2-lhero__view {
  position: absolute;
  z-index: 1;
}

.nsh2-lhero__card-name {
  bottom: 16px;
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 24px;
  font-weight: 400;
  left: 16px;
  line-height: 30px;
  max-width: 180px;
}

.nsh2-lhero__view {
  align-items: center;
  bottom: 20px;
  color: var(--wp--preset--color--base, #fff);
  display: inline-flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 8px;
  letter-spacing: 1.8px;
  line-height: normal;
  right: 16px;
  text-transform: uppercase;
}
.nsh2-lhero__view::after {
  background: currentColor;
  bottom: -4px;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left center;
  width: 100%;
}

.nsh2-lhero__card:hover .nsh2-lhero__view::after,
.nsh2-lhero__card:focus-visible .nsh2-lhero__view::after {
  animation: nsh2-line-draw 0.45s ease forwards;
}

@media (max-width: 1179px) {
  .nsh2-lhero,
  .nsh2-lhero__frame {
    min-height: max(680px, 100svh);
  }
  .nsh2-lhero__frame {
    padding: 96px 32px 48px;
  }
  .nsh2-lhero__card {
    height: 160px;
    right: 32px;
    width: 240px;
  }
  .nsh2-lhero__card-name {
    font-size: 20px;
    line-height: 26px;
    max-width: 130px;
  }
}
@media (max-width: 782px) {
  .nsh2-lhero,
  .nsh2-lhero__frame {
    min-height: 0;
  }
  .nsh2-lhero__frame {
    align-items: stretch;
    flex-direction: column;
    gap: 32px;
    padding: 140px 24px 48px;
  }
  .nsh2-lhero__card {
    align-self: center;
    bottom: auto;
    height: 180px;
    position: relative;
    right: auto;
    width: min(302px, 100%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-lhero__card:hover .nsh2-lhero__view::after,
  .nsh2-lhero__card:focus-visible .nsh2-lhero__view::after {
    animation: none;
    transform: scaleX(1);
  }
}
.nsh2-loverview {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
  padding: 80px clamp(24px, 5.5vw, 80px);
  scroll-margin-top: 120px;
}

.nsh2-loverview__inner {
  align-items: flex-start;
  display: flex;
  gap: 48px;
  justify-content: space-between;
  margin-inline: auto;
  max-width: 1440px;
}

.nsh2-loverview__copy {
  display: flex;
  flex-direction: column;
  gap: 48px;
  max-width: 519px;
  min-width: 0;
  width: 100%;
}

.nsh2-loverview__intro {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nsh2-loverview__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(28px, 2.4vw, 32px);
  font-weight: 400;
  line-height: 1.25;
  margin: 0;
}

.nsh2-loverview__body {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
}
.nsh2-loverview__body p {
  margin: 0 0 16px;
}
.nsh2-loverview__body p:last-child {
  margin-bottom: 0;
}

.nsh2-loverview__prompt {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  margin: 0 0 16px;
}

#overview .nsh2-loverview__form .gform_heading,
#overview .nsh2-loverview__form .gform_required_legend,
#overview .nsh2-loverview__form .gfield--type-hidden,
#overview .nsh2-loverview__form .gfield--type-honeypot,
#overview .nsh2-loverview__form .gfield_visibility_hidden,
#overview .nsh2-loverview__form .gform_hidden,
#overview .nsh2-loverview__form .gform_validation_container {
  display: none !important;
}
#overview .nsh2-loverview__form .gform_wrapper,
#overview .nsh2-loverview__form .gform_body,
#overview .nsh2-loverview__form .gform_footer {
  margin: 0;
  padding: 0;
}
#overview .nsh2-loverview__form .gform_fields {
  display: flex;
  flex-direction: column;
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}
#overview .nsh2-loverview__form .gfield {
  margin: 0;
  min-width: 0;
}
#overview .nsh2-loverview__form .gfield.hidden_label,
#overview .nsh2-loverview__form .gfield--type-email,
#overview .nsh2-loverview__form .gfield--type-phone,
#overview .nsh2-loverview__form .gfield--type-text.gfield_visibility_visible,
#overview .nsh2-loverview__form .gfield--type-textarea,
#overview .nsh2-loverview__form .gfield--type-select,
#overview .nsh2-loverview__form .gfield--type-checkbox,
#overview .nsh2-loverview__form .gfield--type-radio,
#overview .nsh2-loverview__form .gfield--type-consent,
#overview .nsh2-loverview__form .gfield--type-html,
#overview .nsh2-loverview__form .gfield--type-captcha,
#overview .nsh2-loverview__form .gfield--type-date,
#overview .nsh2-loverview__form .gfield--type-address,
#overview .nsh2-loverview__form .gfield--type-website {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100% !important;
}
#overview .nsh2-loverview__form .gfield_label,
#overview .nsh2-loverview__form .gform-field-label {
  color: var(--wp--preset--color--contrast, #0c3554);
  display: block;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 400;
  height: auto;
  letter-spacing: 0;
  line-height: normal;
  margin: 0;
  position: static;
  text-transform: uppercase;
  width: auto;
}
#overview .nsh2-loverview__form .gchoice .gform-field-label,
#overview .nsh2-loverview__form .gfield_consent_label,
#overview .nsh2-loverview__form .ginput_container_consent .gform-field-label {
  font-size: 14px;
  letter-spacing: 0;
  line-height: 22px;
  text-transform: none;
}
#overview .nsh2-loverview__form .gform_wrapper .gfield.hidden_label > .gfield_label,
#overview .nsh2-loverview__form .gform_wrapper .name_first .gform-field-label,
#overview .nsh2-loverview__form .gform_wrapper .name_last .gform-field-label {
  border: 0;
  clip: auto !important;
  clip-path: none !important;
  height: auto !important;
  margin: 0;
  overflow: visible !important;
  padding: 0;
  position: static !important;
  white-space: normal;
  width: auto !important;
}
#overview .nsh2-loverview__form .gfield--type-name > .gfield_label {
  display: none !important;
}
#overview .nsh2-loverview__form .gfield--type-captcha > .gfield_label {
  display: none;
}
#overview .nsh2-loverview__form .gfield--type-phone,
#overview .nsh2-loverview__form .gfield--type-text,
#overview .nsh2-loverview__form .gfield--type-select,
#overview .nsh2-loverview__form .gfield--type-number,
#overview .nsh2-loverview__form .gfield--type-textarea,
#overview .nsh2-loverview__form .gfield--type-date {
  display: none !important;
}
#overview .nsh2-loverview__form .ginput_complex,
#overview .nsh2-loverview__form .ginput_container_name {
  display: grid !important;
  gap: 8px;
  grid-template-columns: 1fr 1fr;
  width: 100%;
}
#overview .nsh2-loverview__form .name_first,
#overview .nsh2-loverview__form .name_last,
#overview .nsh2-loverview__form .ginput_left,
#overview .nsh2-loverview__form .ginput_right {
  display: flex !important;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  padding: 0 !important;
  width: auto !important;
}
#overview .nsh2-loverview__form .name_first .gform-field-label,
#overview .nsh2-loverview__form .name_last .gform-field-label {
  order: -1;
}
#overview .nsh2-loverview__form input[type=text],
#overview .nsh2-loverview__form input[type=email],
#overview .nsh2-loverview__form input[type=tel],
#overview .nsh2-loverview__form input[type=number],
#overview .nsh2-loverview__form input[type=url],
#overview .nsh2-loverview__form input[type=date],
#overview .nsh2-loverview__form select,
#overview .nsh2-loverview__form textarea {
  appearance: auto;
  background: var(--wp--preset--color--base, #fff) !important;
  border: 1px solid var(--wp--preset--color--contrast, #0c3554) !important;
  border-radius: 0 !important;
  box-sizing: border-box;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px !important;
  height: 38px !important;
  line-height: normal;
  margin: 0;
  min-height: 38px;
  padding: 8px !important;
  width: 100%;
}
#overview .nsh2-loverview__form input[type=text]::placeholder,
#overview .nsh2-loverview__form input[type=email]::placeholder,
#overview .nsh2-loverview__form input[type=tel]::placeholder,
#overview .nsh2-loverview__form input[type=number]::placeholder,
#overview .nsh2-loverview__form input[type=url]::placeholder,
#overview .nsh2-loverview__form input[type=date]::placeholder,
#overview .nsh2-loverview__form select::placeholder,
#overview .nsh2-loverview__form textarea::placeholder {
  color: var(--wp--preset--color--contrast, #0c3554);
  opacity: 1;
}
#overview .nsh2-loverview__form input[type=text]:focus-visible,
#overview .nsh2-loverview__form input[type=email]:focus-visible,
#overview .nsh2-loverview__form input[type=tel]:focus-visible,
#overview .nsh2-loverview__form input[type=number]:focus-visible,
#overview .nsh2-loverview__form input[type=url]:focus-visible,
#overview .nsh2-loverview__form input[type=date]:focus-visible,
#overview .nsh2-loverview__form select:focus-visible,
#overview .nsh2-loverview__form textarea:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554) !important;
  outline-offset: 2px;
}
#overview .nsh2-loverview__form textarea {
  height: auto !important;
  min-height: 76px;
}
#overview .nsh2-loverview__form .gfield_description,
#overview .nsh2-loverview__form .gfield_validation_message,
#overview .nsh2-loverview__form .validation_message {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 12px;
  line-height: 18px;
  margin: 6px 0 0;
}
#overview .nsh2-loverview__form .gform_footer,
#overview .nsh2-loverview__form .gform-footer {
  display: block;
  margin-top: 16px;
  padding: 0;
  width: 100%;
}
#overview .nsh2-loverview__form .gform_wrapper .gform_footer input[type=submit],
#overview .nsh2-loverview__form .gform_wrapper .gform-footer input[type=submit],
#overview .nsh2-loverview__form .gform_wrapper .gform_button {
  background-color: var(--wp--preset--color--accent-1, #d2ba81) !important;
  border: 1px solid var(--wp--preset--color--accent-1, #d2ba81) !important;
  border-radius: 0;
  box-sizing: border-box;
  color: var(--wp--preset--color--contrast, #0c3554) !important;
  cursor: pointer;
  display: block;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  height: 38px;
  letter-spacing: 1.8px;
  line-height: 38px;
  margin: 0;
  padding: 0 16px;
  text-align: center;
  text-transform: uppercase;
  transition: background-color 0.15s ease, border-color 0.15s ease;
  width: 100% !important;
}
#overview .nsh2-loverview__form .gform_wrapper .gform_footer input[type=submit]:hover, #overview .nsh2-loverview__form .gform_wrapper .gform_footer input[type=submit]:focus-visible,
#overview .nsh2-loverview__form .gform_wrapper .gform-footer input[type=submit]:hover,
#overview .nsh2-loverview__form .gform_wrapper .gform-footer input[type=submit]:focus-visible,
#overview .nsh2-loverview__form .gform_wrapper .gform_button:hover,
#overview .nsh2-loverview__form .gform_wrapper .gform_button:focus-visible {
  background-color: var(--wp--preset--color--base, #fff) !important;
  border-color: var(--wp--preset--color--contrast, #0c3554) !important;
  color: var(--wp--preset--color--contrast, #0c3554) !important;
}
#overview .nsh2-loverview__form .gform_wrapper .gform_footer input[type=submit]:focus-visible,
#overview .nsh2-loverview__form .gform_wrapper .gform-footer input[type=submit]:focus-visible,
#overview .nsh2-loverview__form .gform_wrapper .gform_button:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: 2px;
}

.nsh2-loverview__map {
  border-radius: 4px;
  flex: 1 1 628px;
  height: 699px;
  max-width: 628px;
  min-width: 0;
  overflow: hidden;
  position: relative;
}

.nsh2-loverview__canvas {
  height: 100%;
  width: 100%;
}

.nsh2-loverview__map-note {
  color: #636569;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  left: 24px;
  line-height: 22px;
  margin: 0;
  position: absolute;
  right: 24px;
  top: 24px;
}

.nsh2-loverview__map.is-ready .nsh2-loverview__map-note {
  display: none;
}

@media (max-width: 1179px) {
  .nsh2-loverview {
    padding-bottom: 64px;
    padding-top: 64px;
  }
  .nsh2-loverview__inner {
    align-items: stretch;
    flex-direction: column;
  }
  .nsh2-loverview__copy,
  .nsh2-loverview__map {
    max-width: none;
  }
  .nsh2-loverview__map {
    flex: none;
    height: min(420px, 70vh);
    width: 100%;
  }
}
@media (max-width: 782px) {
  .nsh2-loverview__form .ginput_complex,
  .nsh2-loverview__form .ginput_container_name {
    grid-template-columns: 1fr;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-loverview__form .gform_button,
  .nsh2-loverview__form input[type=submit] {
    transition: none;
  }
}
.nsh2-lcomms {
  background: var(--wp--preset--color--accent-5, #fff9f6);
  color: var(--wp--preset--color--contrast, #0c3554);
  scroll-margin-top: 120px;
}
.nsh2-lcomms .nsh2-tagline {
  color: var(--wp--preset--color--accent-4, #636569);
}
.nsh2-lcomms .nsh2-tagline::before, .nsh2-lcomms .nsh2-tagline::after {
  background: var(--wp--preset--color--accent-1, #d2ba81);
}

.nsh2-lcomms__inner {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 48px;
  margin: 0 auto;
  max-width: 1440px;
  padding: clamp(72px, 8vw, 120px) clamp(24px, 5.5vw, 80px);
}

.nsh2-lcomms__header {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 0 auto;
  max-width: 846px;
  position: static;
  text-align: center;
  top: auto;
  z-index: auto;
}
.nsh2-lcomms__header > * {
  margin: 0;
}

.nsh2-lcomms__title {
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(32px, 3vw, 40px);
  font-weight: 400;
  line-height: 1.2;
}

.nsh2-lcomms__intro {
  color: var(--wp--preset--color--accent-4, #636569);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
}

.nsh2-lcomms__list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}

.nsh2-lcomms__card {
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 1px 2px rgba(12, 12, 13, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.15);
  display: flex;
  flex: 1 1 320px;
  flex-direction: column;
  max-width: 628px;
  width: min(100%, 628px);
}

.nsh2-lcomms__media {
  background: #d9d3cc;
  border-radius: 4px 4px 0 0;
  height: 270px;
  overflow: hidden;
  position: relative;
}
.nsh2-lcomms__media:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: -4px;
}
.nsh2-lcomms__media::after {
  background: rgba(0, 0, 0, 0.15);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.nsh2-lcomms__slide {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
}
.nsh2-lcomms__slide[hidden] {
  display: none;
}

.nsh2-lcomms__controls {
  display: flex;
  justify-content: space-between;
  left: 16px;
  pointer-events: none;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}

.nsh2-lcomms__nav {
  background: none;
  border: 0;
  cursor: pointer;
  line-height: 0;
  padding: 0;
  pointer-events: auto;
}
.nsh2-lcomms__nav img {
  display: block;
  height: 32px;
  width: 32px;
}
.nsh2-lcomms__nav:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 2px;
}

.nsh2-lcomms__dots {
  bottom: 16px;
  display: flex;
  gap: 8px;
  justify-content: center;
  left: 0;
  position: absolute;
  right: 0;
  z-index: 1;
}

.nsh2-lcomms__dot {
  background: rgba(255, 255, 255, 0.45);
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  height: 8px;
  padding: 0;
  width: 8px;
}
.nsh2-lcomms__dot[aria-current=true] {
  background: var(--wp--preset--color--base, #fff);
}
.nsh2-lcomms__dot:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 2px;
}

.nsh2-lcomms__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;
  position: relative;
}

.nsh2-lcomms__logo {
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 1px 2px rgba(12, 12, 13, 0.1), 0 1px 4px rgba(12, 12, 13, 0.05);
  padding: 8px;
  position: absolute;
  right: 24px;
  top: -74px;
  z-index: 2;
}
.nsh2-lcomms__logo img {
  display: block;
  height: 104px;
  object-fit: contain;
  width: 104px;
}

.nsh2-lcomms__info {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.nsh2-lcomms__name-row {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  gap: 16px 32px;
  padding-right: 136px;
  width: 100%;
}

.nsh2-lcomms__name {
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 30px;
  margin: 0;
}

.nsh2-lcomms__name-row .nsh-fav {
  background: transparent;
  box-shadow: none;
  color: var(--wp--preset--color--contrast, #0c3554);
  height: 19px;
  position: static;
  width: 18px;
}
.nsh2-lcomms__name-row .nsh-fav svg {
  height: 18px;
  width: 18px;
}

.nsh2-lcomms__place {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
  margin: 0;
}

.nsh2-lcomms__city {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-weight: 700;
}

.nsh2-lcomms__state {
  color: var(--wp--preset--color--accent-4, #636569);
}

.nsh2-lcomms__blurb {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--wp--preset--color--accent-4, #636569);
  display: -webkit-box;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  line-height: 22px;
  margin: 0;
  overflow: hidden;
  width: 100%;
}

.nsh2-lcomms__rule {
  border: 0;
  border-top: 1px solid var(--wp--preset--color--accent-3, #e9e9e9);
  margin: 0;
  width: 100%;
}

.nsh2-lcomms__specs {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nsh2-lcomms__specs li {
  align-items: center;
  color: var(--wp--preset--color--accent-4, #636569);
  display: flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  gap: 8px;
  line-height: 22px;
}
.nsh2-lcomms__specs img {
  display: block;
  flex: 0 0 auto;
  height: 16px;
  width: 16px;
}

.nsh2-lcomms__view {
  box-sizing: border-box;
  height: 38px;
  justify-content: center;
  padding: 0 16px;
  width: 100%;
}

@media (max-width: 720px) {
  .nsh2-lcomms__media {
    height: 220px;
  }
  .nsh2-lcomms__logo {
    padding: 6px;
    right: 16px;
    top: -56px;
  }
  .nsh2-lcomms__logo img {
    height: 72px;
    width: 72px;
  }
  .nsh2-lcomms__name-row {
    gap: 8px 16px;
    padding-right: 96px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-lcomms__nav,
  .nsh2-lcomms__dot,
  .nsh2-lcomms__view {
    transition: none;
  }
}
.nsh2-lquotes {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
  scroll-margin-top: 120px;
}

.nsh2-lquotes__inner {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 48px;
  margin: 0 auto;
  max-width: 1440px;
  padding: clamp(72px, 8vw, 120px) clamp(24px, 5.5vw, 80px);
}

.nsh2-lquotes__tagline {
  align-items: center;
  display: flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  gap: 8px;
  letter-spacing: 1.8px;
  line-height: normal;
  margin: 0;
  text-transform: uppercase;
}
.nsh2-lquotes__tagline img {
  display: block;
  flex: 0 0 auto;
  height: 1px;
  width: 40px;
}

.nsh2-lquotes__row {
  align-items: stretch;
  display: flex;
  gap: 48px;
  justify-content: space-between;
  width: 100%;
}

.nsh2-lquotes__quotes {
  display: grid;
  flex: 1 1 auto;
  max-width: 738px;
}

.nsh2-lquotes__quote {
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  grid-area: 1/1;
  line-height: 1.2;
  margin: 0;
}
.nsh2-lquotes__quote:not(.is-active) {
  visibility: hidden;
}

.nsh2-lquotes__aside {
  display: flex;
  flex: 0 0 320px;
  flex-direction: column;
  justify-content: flex-end;
  width: 320px;
}
.nsh2-lquotes__aside:has(.nsh2-lquotes__controls) {
  justify-content: space-between;
}

.nsh2-lquotes__controls {
  display: flex;
  gap: 32px;
}

.nsh2-lquotes__nav {
  align-items: center;
  background: var(--wp--preset--color--base, #fff);
  border: 0;
  border-radius: 30px;
  box-shadow: 0 1px 2px rgba(12, 12, 13, 0.1), 0 1px 2px rgba(12, 12, 13, 0.05);
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  padding: 8px;
}
.nsh2-lquotes__nav img {
  display: block;
  height: 24px;
  width: 24px;
}
.nsh2-lquotes__nav:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: 3px;
}

.nsh2-lquotes__nav--prev img {
  transform: rotate(180deg);
}

.nsh2-lquotes__count {
  color: var(--wp--preset--color--accent-1, #d2ba81);
  font-family: var(--wp--preset--font-family--goudy-old-style, "Goudy Old Style", serif);
  font-size: 24px;
  line-height: 30px;
  margin: 0;
}

.nsh2-lquotes__people {
  display: grid;
}

.nsh2-lquotes__person {
  display: flex;
  flex-direction: column;
  grid-area: 1/1;
}
.nsh2-lquotes__person:not(.is-active) {
  visibility: hidden;
}
.nsh2-lquotes__person p {
  margin: 0;
}

.nsh2-lquotes__name {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 30px;
}

.nsh2-lquotes__place {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 16px;
  line-height: 28px;
}

.nsh2-lquotes__date {
  color: var(--wp--preset--color--accent-4, #636569);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  line-height: 22px;
}

@media (max-width: 900px) {
  .nsh2-lquotes__row {
    flex-direction: column;
    gap: 32px;
  }
  .nsh2-lquotes__aside,
  .nsh2-lquotes__aside:has(.nsh2-lquotes__controls) {
    flex-basis: auto;
    gap: 24px;
    justify-content: flex-start;
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh2-lquotes__nav {
    transition: none;
  }
}
.nsh-proximity {
  max-width: 1320px;
  margin: clamp(2.5rem, 4vw, 3.5rem) auto;
  padding: 0 1.5rem;
  text-align: center;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-proximity-title {
  font-family: Vollkorn, serif;
  font-weight: 500;
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 0 0 0.35rem;
}

.nsh-proximity-district {
  color: #5a6b76;
  margin: 0 0 1.4rem;
  font-weight: 600;
}

/* ---- balanced photo-tile rows: portrait tiles, centered per row (matches the Amenities
   grid + the legacy site). Each row is its own centered flex track, so the balanced-row
   math (3+2, up to 6 across) reads cleanly and a sparse last row stays centered. */
.nsh-proximity-row {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px;
}
.nsh-proximity-row:last-child {
  margin-bottom: 0;
}

.nsh-proximity-tile {
  position: relative;
  flex: 0 1 auto;
  width: clamp(190px, 21vw, 236px);
  aspect-ratio: 23/32;
  overflow: hidden;
  background: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-proximity-tile__link {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 3;
}

.nsh-proximity-tile__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}

.nsh-proximity-tile:hover .nsh-proximity-tile__img {
  transform: scale(1.05);
}

.nsh-proximity-tile__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 2.6rem 1rem 1.1rem;
  color: #fff;
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.25;
  text-align: center;
  background: linear-gradient(to top, rgba(6, 37, 55, 0.82), rgba(6, 37, 55, 0));
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.nsh-proximity-tile--noimg {
  background: linear-gradient(135deg, #0b3a5b, var(--wp--preset--color--contrast, #0c3554));
}
.nsh-proximity-tile--noimg .nsh-proximity-tile__caption {
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem;
  background: none;
}

@media (max-width: 680px) {
  .nsh-proximity-tile {
    width: clamp(150px, 42vw, 200px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh-proximity-tile__img {
    transition: none;
  }
}
.nsh-amenities {
  max-width: 1320px;
  margin: clamp(2.5rem, 4vw, 3.5rem) auto;
  padding: 0 1.5rem;
  text-align: center;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-amenities-title {
  font-family: Vollkorn, serif;
  font-weight: 500;
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 0 0 1.4rem;
}

.nsh-amenities-row {
  list-style: none;
  margin: 0 0 15px;
  padding: 0;
  display: flex;
  gap: 15px;
  min-height: clamp(240px, 22vw, 340px);
}
.nsh-amenities-row:last-child {
  margin-bottom: 0;
}

.nsh-amenity-tile {
  position: relative;
  flex: 1 1 0;
  overflow: hidden;
  background: var(--wp--preset--color--contrast, #0c3554);
  transition: flex-grow 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.nsh-amenity-tile:hover {
  flex-grow: 3;
}

.nsh-amenity-tile__link {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 3;
}

.nsh-amenity-tile__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s, filter 0.6s;
}

.nsh-amenity-tile:hover .nsh-amenity-tile__img {
  transform: scale(1.05);
  filter: brightness(0.82);
}

.nsh-amenity-tile__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 2.4rem 1.1rem 1rem;
  color: #fff;
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.2;
  text-align: left;
  background: linear-gradient(to top, rgba(6, 37, 55, 0.78), rgba(6, 37, 55, 0));
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.nsh-amenity-tile--noimg {
  background: linear-gradient(135deg, #0b3a5b, var(--wp--preset--color--contrast, #0c3554));
}
.nsh-amenity-tile--noimg .nsh-amenity-tile__caption {
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem;
  text-align: center;
  background: none;
}

@media (max-width: 1023.98px) {
  .nsh-amenities {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 12px;
  }
  .nsh-amenities-title {
    flex: 0 0 100%;
  }
  .nsh-amenities-row {
    display: contents;
  }
  .nsh-amenity-tile {
    flex: 0 0 calc((100% - 24px) / 3);
    aspect-ratio: 4/5;
  }
  .nsh-amenity-tile:hover {
    flex-grow: 0;
  }
}
@media (max-width: 600px) {
  .nsh-amenities {
    gap: 8px;
  }
  .nsh-amenity-tile {
    flex-basis: calc((100% - 8px) / 2);
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh-amenity-tile,
  .nsh-amenity-tile__img {
    transition: none;
  }
}
.nsh-team {
  max-width: 1200px;
  margin: 2.5rem auto;
  padding: 0 1.5rem;
  text-align: center;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-team-title {
  font-family: Vollkorn, serif;
  font-weight: 500;
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin: 0 0 1.8rem;
}

.nsh-team-list {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 1.5rem;
}

.nsh-team-card {
  position: relative;
  box-sizing: border-box;
  flex: 0 1 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 24px;
}
.nsh-team-card + .nsh-team-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 6px;
  width: 1px;
  background: #d7dde2;
}

.nsh-team-photo {
  width: 100%;
  max-width: 230px;
  aspect-ratio: 25/32;
  overflow: hidden;
  background: #eef1f4;
  margin-bottom: 0.9rem;
}
.nsh-team-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.nsh-team-name {
  font-family: Vollkorn, serif;
  font-weight: 500;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  line-height: 1.15;
}

.nsh-team-role {
  font-size: 0.95rem;
  color: #3a4b56;
  margin-top: 0.2rem;
}

.nsh-team-city {
  font-weight: 700;
  color: var(--wp--preset--color--contrast, #0c3554);
  margin-top: 0.7rem;
}

.nsh-team-phone {
  color: var(--wp--preset--color--contrast, #0c3554);
  text-decoration: none;
  margin-top: 0.1rem;
}
.nsh-team-phone:hover {
  color: var(--wp--preset--color--accent-1, #236d9f);
  text-decoration: underline;
}

.nsh-team-office {
  color: #5a6b76;
  font-weight: 600;
  margin: 0.4rem 0 0;
}

@media (max-width: 720px) {
  .nsh-team-card + .nsh-team-card::before {
    display: none;
  }
}
/* Migrated "Community Associate" section, rendered via render_for_community() and
   wrapped in .nsh-associates-fix (includes/nsh-components.php). Rendered late through
   the_content, Gutenverse never enqueues the per-count column widths for the
   "Consultant Card" columns, so a community with e.g. 2 associates collapses to
   full-width (giant) cards. Force the agent cards to a uniform size + center the
   row so it reads the same with 2, 3 or 4. Leaf columns only (the "Consultant
   Card"s) — :not(:has()) skips the outer "Consultants Wrapper" column. */
.nsh-associates-fix .guten-column-wrapper,
.nsh-associates-fix [class*=guten-column-gap] {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 30px 24px;
}
.nsh-associates-fix .guten-column:not(:has(.guten-column)) {
  flex: 0 1 240px !important;
  max-width: 280px !important;
  width: auto !important;
}
.nsh-associates-fix img {
  max-width: 100%;
  height: auto;
}

.nsh-series {
  max-width: 1080px;
  margin: 2.5rem auto;
  padding: 0 1.5rem;
  display: grid;
  gap: 1.25rem;
}

.nsh-series-group {
  border-left: 4px solid var(--wp--preset--color--accent-1, #236d9f);
  padding: 0.25rem 0 0.25rem 1.1rem;
}

.nsh-series-name {
  font-size: 1.3rem;
  margin: 0 0 0.35rem;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-series-desc {
  color: #5a6b76;
  margin: 0 0 0.6rem;
}

.nsh-series-plans {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.9rem;
}
.nsh-series-plans li {
  font-weight: 600;
}
.nsh-series-plans a {
  color: var(--wp--preset--color--accent-1, #236d9f);
  text-decoration: none;
}
.nsh-series-plans a:hover {
  text-decoration: underline;
}

.nsh-cgallery {
  max-width: 1200px;
  margin: 2.5rem auto;
  padding: 0 1.5rem;
}

.nsh-cgallery-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.75rem;
}
.nsh-cgallery-grid li {
  margin: 0;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 10px;
  background: #eef1f4;
}
.nsh-cgallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/**
 * Community card + card grid — shared by nsh/location-communities and
 * nsh/communities-grid. Mirrors the legacy p7 community-grid card: logo,
 * Starting From + price, outline Inventory Homes, photo, name + city, solid
 * View Community. Promoted from the location-communities block-local style so
 * the communities-grid block (which has no block-local CSS) reuses it.
 */
.nsh-loc-communities {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.nsh-loc-cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}

@media (max-width: 900px) {
  .nsh-loc-cards {
    max-width: 460px;
    margin: 0 auto;
  }
}
.nsh-loc-card {
  position: relative;
  box-sizing: border-box;
  flex: 0 0 calc((100% - 60px) / 3);
  max-width: calc((100% - 60px) / 3);
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e4e9ee;
}

@media (max-width: 900px) {
  .nsh-loc-card {
    flex-basis: 100%;
    max-width: 100%;
  }
}
.nsh-loc-card__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.nsh-loc-card__head {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 24px 0;
}

.nsh-loc-card__logo {
  max-width: 70%;
  height: 96px;
  width: auto;
  object-fit: contain;
}

.nsh-loc-card__logo--text {
  font-family: "Vollkorn", Georgia, serif;
  font-size: 22px;
  font-weight: 600;
  color: #0c3554;
  min-height: 96px;
  display: flex;
  align-items: center;
}

.nsh-loc-card__rule {
  width: 100%;
  border: 0;
  border-top: 1px solid #0c3554;
  margin: 22px 0 18px;
}

.nsh-loc-card__label {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0c3554;
}

.nsh-loc-card__price {
  margin: 6px 0 18px;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0c3554;
}

.nsh-loc-card__inventory {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  padding: 12px 10px;
  margin-bottom: 0;
  border: 1px solid #236d9f;
  color: #236d9f;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.nsh-loc-card__inventory:hover,
.nsh-loc-card__inventory:focus-visible {
  background: #236d9f;
  color: #fff;
  outline: none;
}

.nsh-loc-card__photo {
  margin-top: 18px;
  aspect-ratio: 16/10;
  background: #eef2f5;
  overflow: hidden;
}

.nsh-loc-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.nsh-loc-card__footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 20px 24px 24px;
}

.nsh-loc-card__title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #0c3554;
}

.nsh-loc-card__city {
  margin: 0 0 16px;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0c3554;
}

.nsh-loc-card__view {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 12px 10px;
  background: #236d9f;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.nsh-loc-card__view:hover,
.nsh-loc-card__view:focus-visible {
  background: #00528f;
  outline: none;
}

.nsh-loc-communities__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 40px;
  border: 1px dashed #c4d0d9;
  color: #3a4b56;
  text-align: center;
}

@media (prefers-reduced-motion: no-preference) {
  html.nsh-anim .nsh-reveal {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change: opacity, transform;
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--left {
    transform: translate3d(-44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--right {
    transform: translate3d(44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--zoom {
    transform: scale(0.94);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split {
    opacity: 1;
    transform: none;
    will-change: auto;
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split .nsh-split__media,
  html.nsh-anim .nsh-reveal.nsh-reveal--split .nsh-split__text {
    opacity: 0;
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split .nsh-split__media {
    transform: translate3d(-44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split .nsh-split__text {
    transform: translate3d(44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-split--media-right .nsh-split__media {
    transform: translate3d(44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-split--media-right .nsh-split__text {
    transform: translate3d(-44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal-stagger .nsh-cgrid__grid > * {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal-stagger .nsh-cardgrid__grid > * {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal-stagger .nsh-postgrid__grid > * {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal-stagger .nsh-loc-cards > * {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal-stagger .nsh-fbanners__row > * {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal-stagger .nsh-cslider__cards > * {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal.is-in {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal--split.is-in .nsh-split__media,
  html.nsh-anim .nsh-reveal--split.is-in .nsh-split__text {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > * {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(1) {
    transition-delay: 0s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(2) {
    transition-delay: 0.09s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(3) {
    transition-delay: 0.18s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(4) {
    transition-delay: 0.27s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(5) {
    transition-delay: 0.36s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(6) {
    transition-delay: 0.45s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(7) {
    transition-delay: 0.54s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(8) {
    transition-delay: 0.63s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(9) {
    transition-delay: 0.72s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(10) {
    transition-delay: 0.81s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(11) {
    transition-delay: 0.9s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cgrid__grid > *:nth-child(12) {
    transition-delay: 0.99s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > * {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(1) {
    transition-delay: 0s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(2) {
    transition-delay: 0.09s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(3) {
    transition-delay: 0.18s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(4) {
    transition-delay: 0.27s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(5) {
    transition-delay: 0.36s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(6) {
    transition-delay: 0.45s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(7) {
    transition-delay: 0.54s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(8) {
    transition-delay: 0.63s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(9) {
    transition-delay: 0.72s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(10) {
    transition-delay: 0.81s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(11) {
    transition-delay: 0.9s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cardgrid__grid > *:nth-child(12) {
    transition-delay: 0.99s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > * {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(1) {
    transition-delay: 0s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(2) {
    transition-delay: 0.09s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(3) {
    transition-delay: 0.18s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(4) {
    transition-delay: 0.27s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(5) {
    transition-delay: 0.36s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(6) {
    transition-delay: 0.45s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(7) {
    transition-delay: 0.54s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(8) {
    transition-delay: 0.63s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(9) {
    transition-delay: 0.72s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(10) {
    transition-delay: 0.81s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(11) {
    transition-delay: 0.9s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-postgrid__grid > *:nth-child(12) {
    transition-delay: 0.99s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > * {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(1) {
    transition-delay: 0s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(2) {
    transition-delay: 0.09s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(3) {
    transition-delay: 0.18s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(4) {
    transition-delay: 0.27s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(5) {
    transition-delay: 0.36s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(6) {
    transition-delay: 0.45s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(7) {
    transition-delay: 0.54s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(8) {
    transition-delay: 0.63s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(9) {
    transition-delay: 0.72s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(10) {
    transition-delay: 0.81s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(11) {
    transition-delay: 0.9s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-loc-cards > *:nth-child(12) {
    transition-delay: 0.99s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > * {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(1) {
    transition-delay: 0s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(2) {
    transition-delay: 0.09s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(3) {
    transition-delay: 0.18s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(4) {
    transition-delay: 0.27s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(5) {
    transition-delay: 0.36s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(6) {
    transition-delay: 0.45s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(7) {
    transition-delay: 0.54s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(8) {
    transition-delay: 0.63s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(9) {
    transition-delay: 0.72s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(10) {
    transition-delay: 0.81s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(11) {
    transition-delay: 0.9s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-fbanners__row > *:nth-child(12) {
    transition-delay: 0.99s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > * {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(1) {
    transition-delay: 0s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(2) {
    transition-delay: 0.09s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(3) {
    transition-delay: 0.18s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(4) {
    transition-delay: 0.27s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(5) {
    transition-delay: 0.36s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(6) {
    transition-delay: 0.45s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(7) {
    transition-delay: 0.54s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(8) {
    transition-delay: 0.63s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(9) {
    transition-delay: 0.72s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(10) {
    transition-delay: 0.81s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(11) {
    transition-delay: 0.9s;
  }
  html.nsh-anim .nsh-reveal-stagger.is-in .nsh-cslider__cards > *:nth-child(12) {
    transition-delay: 0.99s;
  }
}
@media (prefers-reduced-motion: no-preference) {
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-split--overlay .nsh-split__bg {
    opacity: 0;
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-split--overlay .nsh-split__overlaycard {
    opacity: 0;
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-split--overlay.nsh-split--card-left .nsh-split__overlaycard {
    transform: translate3d(-44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-split--overlay.nsh-split--card-right .nsh-split__overlaycard {
    transform: translate3d(44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-why-warranty .wp-block-column {
    opacity: 0;
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-why-warranty .wp-block-column:first-child {
    transform: translate3d(-44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal.nsh-reveal--split.nsh-why-warranty .wp-block-column:last-child {
    transform: translate3d(44px, 0, 0);
  }
  html.nsh-anim .nsh-reveal--split.nsh-split--overlay.is-in .nsh-split__bg {
    opacity: 1;
  }
  html.nsh-anim .nsh-reveal--split.nsh-split--overlay.is-in .nsh-split__overlaycard {
    opacity: 1;
    transform: none;
  }
  html.nsh-anim .nsh-reveal--split.nsh-why-warranty.is-in .wp-block-column {
    opacity: 1;
    transform: none;
  }
}
.hero-section--style .guten-column-wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-end !important;
}
.hero-section--style .gutenverse-text-editor .text-content-inner {
  word-break: normal;
}
.hero-section--style .gutenverse-text-editor p {
  text-align: left;
}
.hero-section--style .wp-block-gutenverse-heading,
.hero-section--style h1 {
  letter-spacing: 0.06em;
}
.hero-section--style .guten-column-wrapper > .guten-wrap-helper {
  width: 480px !important;
  max-width: 100%;
}
.hero-section--style .p7-weather .location p {
  display: block !important;
  justify-content: normal !important;
  text-align: left;
  font-size: 0.65rem;
  letter-spacing: 0.45em;
}
.hero-section--style .p7-weather .location p span {
  display: contents !important;
}

.nsh2-header {
  --nsh2-chrome: var(--wp--preset--color--contrast, #0c3554);
  --nsh2-chrome-contrast: var(--wp--preset--color--base, #fff);
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  position: relative;
  z-index: 90;
}

:root {
  --nsh2-header-h: 96px;
}

.nsh2-header--overlay,
html.nsh2-js body.nsh2-has-hero .nsh2-header,
html.nsh2-js body.nsh2-has-cbar .nsh2-header {
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
}

.admin-bar .nsh2-header--overlay,
html.nsh2-js body.admin-bar.nsh2-has-hero .nsh2-header,
html.nsh2-js body.admin-bar.nsh2-has-cbar .nsh2-header {
  top: var(--wp-admin--admin-bar--height, 32px);
}

html.nsh2-js:not(.nsh2-scrolled) body.nsh2-has-hero:not(.nsh2-has-cbar) .nsh2-header:not(.nsh2-header--solid),
body:not(.nsh2-has-cbar) .nsh2-header--overlay:not(.nsh2-header--solid),
.nsh2-drawer-open .nsh2-header {
  --nsh2-chrome: var(--wp--preset--color--base, #fff);
  --nsh2-chrome-contrast: var(--wp--preset--color--contrast, #0c3554);
}

html.nsh2-js:not(.nsh2-scrolled) body.nsh2-has-hero:not(.nsh2-has-cbar) .nsh2-header:not(.nsh2-header--solid),
body:not(.nsh2-has-cbar) .nsh2-header--overlay:not(.nsh2-header--solid) {
  background: transparent;
  box-shadow: none;
}

.nsh2-header__bar {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  gap: 24px;
  height: 96px;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1440px;
  padding: 0 80px;
}
@media (max-width: 1179px) {
  .nsh2-header__bar {
    height: auto;
    padding: 16px 24px;
  }
}

.nsh2-header__logo {
  display: block;
  flex: 0 0 auto;
  line-height: 0;
  position: relative;
}
.nsh2-header__logo:focus-visible {
  outline: 2px solid var(--nsh2-chrome);
  outline-offset: 4px;
}
.nsh2-header__logo img {
  height: 42px;
  width: 156px;
}
@media (max-width: 640px) {
  .nsh2-header__logo img {
    height: 34px;
    width: auto;
  }
}

.nsh2-header__logo img.nsh2-header__logo-img--color {
  display: block;
}

.nsh2-header__logo img.nsh2-header__logo-img--white {
  display: block;
  height: 100%;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

html.nsh2-js:not(.nsh2-scrolled) body.nsh2-has-hero:not(.nsh2-has-cbar) .nsh2-header:not(.nsh2-header--solid) .nsh2-header__logo img.nsh2-header__logo-img--white,
body:not(.nsh2-has-cbar) .nsh2-header--overlay:not(.nsh2-header--solid) .nsh2-header__logo img.nsh2-header__logo-img--white,
.nsh2-drawer-open .nsh2-header .nsh2-header__logo img.nsh2-header__logo-img--white {
  opacity: 1;
}

.nsh2-header__list {
  align-items: center;
  display: flex;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nsh2-header__list a {
  color: var(--nsh2-chrome);
  display: inline-block;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 1;
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.nsh2-header__list a::after {
  background: transparent;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
}
.nsh2-header__list a:hover::after, .nsh2-header__list a:focus-visible::after, .nsh2-header__list a[aria-current=page]::after {
  background: currentColor;
}
.nsh2-header__list a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

.nsh2-header__cta {
  align-items: center;
  border: 1px solid var(--nsh2-chrome);
  box-sizing: border-box;
  color: var(--nsh2-chrome);
  display: inline-flex;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  height: 48px;
  justify-content: center;
  letter-spacing: 1.8px;
  line-height: 1;
  padding: 0 48px;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.15s ease, color 0.15s ease;
  white-space: nowrap;
}
.nsh2-header__cta:hover, .nsh2-header__cta:focus-visible {
  background: var(--nsh2-chrome);
  color: var(--nsh2-chrome-contrast);
}
.nsh2-header__cta:focus-visible {
  outline: 2px solid var(--nsh2-chrome);
  outline-offset: 3px;
}

.nsh2-header__cta--drawer {
  display: none;
}

.nsh2-header__burger {
  align-items: center;
  background: none;
  border: 0;
  color: var(--nsh2-chrome);
  cursor: pointer;
  display: none;
  gap: 10px;
  padding: 8px;
}
.nsh2-header__burger:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

.nsh2-header__burger-label {
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

.nsh2-header__burger-icon {
  display: inline-flex;
  flex-direction: column;
  gap: 5px;
}
.nsh2-header__burger-icon span {
  background: currentColor;
  display: block;
  height: 2px;
  transition: transform 0.2s ease, opacity 0.2s ease;
  width: 22px;
}

.nsh2-header__burger[aria-expanded=true] .nsh2-header__burger-icon span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.nsh2-header__burger[aria-expanded=true] .nsh2-header__burger-icon span:nth-child(2) {
  opacity: 0;
}
.nsh2-header__burger[aria-expanded=true] .nsh2-header__burger-icon span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 1439px) and (min-width: 1180px) {
  .nsh2-header__bar {
    gap: 16px;
    padding: 0 32px;
  }
  .nsh2-header__list {
    gap: 16px;
  }
  .nsh2-header__cta {
    padding: 0 24px;
  }
}
@media (max-width: 1179px) {
  :root {
    --nsh2-header-h: 74px;
  }
}
@media (max-width: 1179px) and (max-width: 640px) {
  :root {
    --nsh2-header-h: 66px;
  }
}
@media (max-width: 1179px) {
  html.nsh2-js body.nsh2-has-cbar .nsh2-header {
    position: sticky;
  }
  .nsh2-header__cta--bar {
    display: none;
  }
  .nsh2-header__burger {
    display: inline-flex;
  }
  .nsh2-header__nav {
    background: var(--wp--preset--color--contrast, #0c3554);
    inset: 0;
    overflow-y: auto;
    padding: calc(var(--nsh2-header-h, 66px) + 72px) 24px 40px;
    position: fixed;
    transform: translateY(-100%);
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0.45s;
    visibility: hidden;
    z-index: 100;
  }
  .nsh2-drawer-open .nsh2-header__nav {
    transform: translateY(0);
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    visibility: visible;
  }
  .nsh2-header__list li,
  .nsh2-header__cta--drawer {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.3s ease, transform 0.3s ease;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li,
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__cta--drawer {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.35s ease, transform 0.35s ease;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li:nth-child(1) {
    transition-delay: 0.2s;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li:nth-child(2) {
    transition-delay: 0.255s;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li:nth-child(3) {
    transition-delay: 0.31s;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li:nth-child(4) {
    transition-delay: 0.365s;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li:nth-child(5) {
    transition-delay: 0.42s;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li:nth-child(6) {
    transition-delay: 0.475s;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li:nth-child(7) {
    transition-delay: 0.53s;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li:nth-child(8) {
    transition-delay: 0.585s;
  }
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__cta--drawer {
    transition-delay: 0.64s;
  }
}
@media (max-width: 1179px) and (prefers-reduced-motion: reduce) {
  .nsh2-header__nav,
  .nsh2-drawer-open .nsh2-header__nav,
  .nsh2-header__list li,
  .nsh2-header__cta--drawer,
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__list li,
  .nsh2-drawer-open .nsh2-header__nav .nsh2-header__cta--drawer {
    transition: none;
  }
}
@media (max-width: 1179px) {
  .nsh2-header__list {
    align-items: stretch;
    flex-direction: column;
    gap: 0;
  }
  .nsh2-header__list a {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    color: var(--wp--preset--color--base, #fff);
    display: block;
    font-size: 14px;
    padding: 18px 4px;
    white-space: normal;
  }
  .nsh2-header__list a[aria-current=page], .nsh2-header__list a:hover {
    border-bottom-color: var(--wp--preset--color--base, #fff);
  }
  .nsh2-header__cta--drawer {
    align-items: center;
    display: flex;
    font-size: 14px;
    justify-content: center;
    line-height: 1;
    margin-top: 32px;
    width: 100%;
  }
  .nsh2-header__logo,
  .nsh2-header__burger {
    position: relative;
    z-index: 120;
  }
  .nsh2-drawer-open {
    overflow: hidden;
  }
}
.nsh2-footer {
  background: #636569;
  color: var(--wp--preset--color--base, #fff);
}

.nsh2-footer__inner {
  display: flex;
  flex-direction: column;
  gap: 64px;
  margin: 0 auto;
  max-width: 1440px;
  padding: 64px 80px;
}
@media (max-width: 1024px) {
  .nsh2-footer__inner {
    gap: 40px;
    padding: 40px 24px;
  }
}

.nsh2-footer__content {
  align-items: center;
  display: flex;
  gap: 48px;
  justify-content: space-between;
}
@media (max-width: 1024px) {
  .nsh2-footer__content {
    align-items: flex-start;
    flex-direction: column;
    gap: 40px;
  }
}

.nsh2-footer__logo {
  display: block;
  flex: 0 0 auto;
  line-height: 0;
}
.nsh2-footer__logo:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 4px;
}
.nsh2-footer__logo img {
  display: block;
  height: 52px;
  width: 193px;
}

.nsh2-footer__columns {
  display: flex;
  gap: 24px;
}
@media (max-width: 640px) {
  .nsh2-footer__columns {
    flex-direction: column;
    gap: 32px;
  }
}

.nsh2-footer__col {
  max-width: 240px;
  min-width: 154px;
}
@media (max-width: 640px) {
  .nsh2-footer__col {
    max-width: none;
    min-width: 0;
  }
}

.nsh2-footer__heading {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 14px;
  font-weight: 700;
  line-height: 22px;
  margin: 0 0 8px;
  text-transform: uppercase;
  white-space: nowrap;
}

.nsh2-footer__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nsh2-footer__list a {
  border-bottom: 1px solid transparent;
  color: var(--wp--preset--color--base, #fff);
  display: inline-block;
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: normal;
  padding-bottom: 4px;
  text-decoration: none;
  text-transform: uppercase;
}
.nsh2-footer__list a:hover, .nsh2-footer__list a:focus-visible, .nsh2-footer__list a[aria-current=page] {
  border-bottom-color: currentColor;
}
.nsh2-footer__list a:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 3px;
}

.nsh2-footer__legal {
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--manrope, "Manrope", sans-serif);
  font-size: 10px;
  line-height: normal;
  margin: 0;
  text-align: center;
}
.nsh2-footer__legal a {
  color: inherit;
  text-decoration: underline;
}
.nsh2-footer__legal a:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 2px;
}

/* =========================================================================
   Single blog post (templates/single.html) — Gutenverse-free rebuild.

   Core blocks only: a core/cover featured-image hero with an absolutely
   positioned core/post-terms "category pill", a centred logo strip, a 3-column
   article body (back nav / article / share), a related-posts slider band, an
   Instagram-feed row and the newsletter form section.

   Standalone partial — no @use of siblings. Colours come from the theme.json
   palette via CSS custom properties so they track the tokens.
   ========================================================================= */
.nsh-post {
  background: var(--wp--preset--color--base, #fff);
}

/* ------------------------------------------------------------------- hero ---
   core/cover with useFeaturedImage. The native overlay (.has-background-dim)
   is a flat tint; recolour it as the original linear gradient (transparent →
   navy 70% at the bottom) so the category pill and any title stay legible. */
.nsh-post-hero {
  /* Gradient overlay replacing core's flat dim. Core gives the dim overlay a SOLID
     colour (the navy preset when an overlay colour is set, or black by default) that
     buries the featured photo, and a plain `background` shorthand does not beat it.
     Force the colour transparent and let this gradient be the only dim, so the photo
     shows at the top and fades to navy toward the meta. */
}
.nsh-post-hero.wp-block-cover {
  min-height: 375px;
  align-items: flex-start;
  justify-content: center;
}
.nsh-post-hero .wp-block-cover__background {
  background-color: transparent !important;
  background-image: linear-gradient(180deg, rgba(0, 45, 71, 0) 0%, rgba(0, 45, 71, 0.7) 100%);
  opacity: 1;
}
.nsh-post-hero .wp-block-cover__inner-container {
  width: 100%;
}
@media (max-width: 1023.98px) {
  .nsh-post-hero.wp-block-cover {
    padding: 20px !important;
  }
}

/* The category "pill" — pinned to the top-right of the hero. */
.nsh-post-hero__cat {
  position: absolute;
  top: 60px;
  right: 60px;
  margin: 0;
  padding: 10px 20px;
  color: var(--wp--preset--color--base, #fff);
  font-weight: 600;
  text-transform: uppercase;
  line-height: 1.2;
}
.nsh-post-hero__cat a {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 1023.98px) {
  .nsh-post-hero__cat {
    top: 20px;
    right: 20px;
    left: 20px;
  }
}

/* ------------------------------------------------------------- logo strip --- */
.nsh-post-logo {
  padding: 20px 60px;
  text-align: center;
  background: var(--wp--preset--color--base, #fff);
}
.nsh-post-logo .nsh-post-logo__img {
  margin: 0;
}
.nsh-post-logo .nsh-post-logo__img img {
  height: 110px;
  width: auto;
}
@media (max-width: 782px) {
  .nsh-post-logo {
    padding: 20px 30px;
  }
}
@media (max-width: 1023.98px) {
  .nsh-post-logo {
    padding: 10px 20px;
  }
}

/* ----------------------------------------------------------- article body --- */
.nsh-post-body {
  padding: 50px 60px;
  background: var(--wp--preset--color--base, #fff);
}
@media (max-width: 782px) {
  .nsh-post-body {
    padding: 50px 30px;
  }
}
@media (max-width: 1023.98px) {
  .nsh-post-body {
    padding: 40px 20px;
  }
}

.nsh-post-grid {
  gap: 30px;
  /* Stack on tablet/mobile; core already wraps columns, this just tightens
     the rhythm and re-orders so the share row sits below the article. */
}
@media (max-width: 781px) {
  .nsh-post-grid .nsh-post-col--nav {
    order: 1;
  }
  .nsh-post-grid .nsh-post-col--article {
    order: 2;
  }
  .nsh-post-grid .nsh-post-col--share {
    order: 3;
  }
}

/* Back button — borderless link with a leading chevron (replaces the
   Gutenverse fas fa-chevron-left icon button). */
.nsh-post-back .nsh-post-back__btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border: 0;
  background: none;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 1rem;
  font-weight: 700;
}
.nsh-post-back .nsh-post-back__btn .wp-block-button__link::before {
  content: "";
  width: 10px;
  height: 10px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}
.nsh-post-back .nsh-post-back__btn .wp-block-button__link:hover, .nsh-post-back .nsh-post-back__btn .wp-block-button__link:focus-visible {
  color: var(--wp--preset--color--accent-1, #236d9f);
}

.nsh-post-title {
  margin: 0 0 30px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 2.25rem;
  line-height: 1.2;
}

.nsh-post-date {
  margin: 0 0 40px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 0.875rem;
  font-weight: 400;
  text-transform: uppercase;
}

.nsh-post-content {
  margin-bottom: 40px;
  color: #636569;
}
.nsh-post-content a {
  color: var(--wp--preset--color--accent-1, #236d9f);
}
.nsh-post-content img {
  height: auto;
}

/* prev / next post navigation (core/post-navigation-link). The arrows ship
   as text entities; style the row and link chrome to match the old buttons. */
.nsh-post-pager {
  gap: 20px;
}
.nsh-post-pager .wp-block-post-navigation-link {
  font-size: 1rem;
  font-weight: 700;
}
.nsh-post-pager .wp-block-post-navigation-link a {
  color: var(--wp--preset--color--contrast, #0c3554);
  text-decoration: none;
}
.nsh-post-pager .wp-block-post-navigation-link a:hover, .nsh-post-pager .wp-block-post-navigation-link a:focus-visible {
  color: var(--wp--preset--color--accent-1, #236d9f);
}

/* Share column — right-aligned to mirror the Gutenverse flex-end column. */
.nsh-post-col--share {
  display: flex;
  justify-content: flex-end;
}
@media (max-width: 781px) {
  .nsh-post-col--share {
    justify-content: flex-start;
  }
}

/* ------------------------------------------------------- related articles --- */
/* Background colour + padding live inline on the group (matches p7/posts-slider
   backgroundColor #1d5c8c); nothing extra needed beyond the responsive padding. */
@media (max-width: 782px) {
  .nsh-post-related {
    padding-inline: 30px !important;
  }
}
@media (max-width: 1023.98px) {
  .nsh-post-related {
    padding: 40px 20px !important;
  }
}

/* ------------------------------------------------------------- instagram --- */
.nsh-post-instagram {
  padding: 50px 60px 0;
  background: var(--wp--preset--color--base, #fff);
}
@media (max-width: 1023.98px) {
  .nsh-post-instagram {
    padding: 0;
  }
}

.nsh-post-instagram__row {
  border-top: 1px solid var(--wp--preset--color--contrast, #0c3554);
  padding-top: 30px;
  margin-bottom: 0;
}
@media (max-width: 781px) {
  .nsh-post-instagram__row {
    border-top: 0;
  }
}

.nsh-post-instagram__icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.nsh-post-instagram__icon svg {
  width: 48px;
  height: 48px;
}

/* --------------------------------------------------------------- form ------- */
.nsh-post-form {
  padding: 50px 60px;
  background: var(--wp--preset--color--base, #fff);
}
@media (max-width: 782px) {
  .nsh-post-form {
    padding: 50px 30px;
  }
}
@media (max-width: 1023.98px) {
  .nsh-post-form {
    padding: 40px 20px;
  }
}

.nsh-post-form__grid {
  border-top: 1px solid var(--wp--preset--color--contrast, #0c3554);
  padding-top: 30px;
  gap: 0;
}
@media (max-width: 781px) {
  .nsh-post-form__grid {
    border-top: 0;
    padding-top: 0;
  }
}

.nsh-post-form__left {
  padding: 30px 20px 30px 0;
  border-right: 1px solid var(--wp--preset--color--contrast, #0c3554);
}
@media (max-width: 781px) {
  .nsh-post-form__left {
    padding: 0 0 30px;
    border-right: 0;
    border-top: 1px solid var(--wp--preset--color--contrast, #0c3554);
  }
}

.nsh-post-form__right {
  padding: 30px 0 30px 20px;
}
@media (max-width: 781px) {
  .nsh-post-form__right {
    padding: 0 0 30px;
  }
}

.nsh-post-form__heading {
  margin: 0 0 30px;
  color: var(--wp--preset--color--contrast, #0c3554);
  text-transform: uppercase;
  font-weight: 400;
}

.nsh-post-form__contact {
  margin-bottom: 50px;
}
.nsh-post-form__contact p {
  margin: 0 0 16px;
}

.nsh-post-form__social .wp-block-social-link {
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-post-form__privacy {
  margin: 30px 0;
  color: #636569;
  font-size: 14px;
  line-height: 20px;
}

/* =========================================================================
   nsh/inpage-nav — sticky in-page section nav (replaces gutenverse/nav-menu 111
   on spec & plan templates). The template wraps this in its own sticky
   container ("Spec Navigation"), so we style the <nav> inline: a horizontal,
   uppercase anchor bar with an orange .is-active underline, collapsing to a
   toggle on mobile. Colours come from the theme.json palette via CSS custom
   properties so they track the tokens.
   ========================================================================= */
.nsh-inpage-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
}
@media (max-width: 899.98px) {
  .nsh-inpage-nav {
    position: relative;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

/* ------------------------------------------------------------------- list */
.nsh-inpage-nav__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 22px;
  margin: 0;
  padding: 0;
  list-style: none;
  /* Mobile: collapse into a dropdown the toggle reveals. */
}
@media (min-width: 900px) and (max-width: 1250px) {
  .nsh-inpage-nav__list {
    gap: 4px 14px;
  }
}
@media (max-width: 899.98px) {
  .nsh-inpage-nav__list {
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    margin-top: 8px;
  }
  .nsh-inpage-nav.is-open .nsh-inpage-nav__list {
    display: flex;
  }
}

.nsh-inpage-nav__item {
  margin: 0;
  padding: 0;
}
@media (max-width: 899.98px) {
  .nsh-inpage-nav__item {
    border-top: 1px solid rgba(6, 37, 55, 0.1);
  }
}

/* ------------------------------------------------------------------- link */
.nsh-inpage-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 6px 2px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--gotham, inherit);
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.01em;
  line-height: 1.2;
  white-space: nowrap;
  transition: color 0.2s ease;
  /* orange underline grows from the active/hovered link */
}
@media (min-width: 900px) and (max-width: 1250px) {
  .nsh-inpage-nav__link {
    font-size: 0.8rem;
  }
}
.nsh-inpage-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--wp--preset--color--orange, #b69121);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}
.nsh-inpage-nav__link:hover, .nsh-inpage-nav__link:focus-visible {
  color: var(--wp--preset--color--orange, #b69121);
}
.nsh-inpage-nav__link:hover::after, .nsh-inpage-nav__link:focus-visible::after {
  transform: scaleX(1);
}
.nsh-inpage-nav__link.is-active {
  color: var(--wp--preset--color--orange, #b69121);
}
.nsh-inpage-nav__link.is-active::after {
  transform: scaleX(1);
}
@media (max-width: 899.98px) {
  .nsh-inpage-nav__link {
    display: flex;
    padding: 14px 4px;
  }
  .nsh-inpage-nav__link::after {
    display: none;
  }
  .nsh-inpage-nav__link.is-active {
    color: var(--wp--preset--color--orange, #b69121);
  }
}

/* ----------------------------------------------------------------- toggle */
.nsh-inpage-nav__toggle {
  display: none;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 12px 4px;
  border: 0;
  background: none;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--gotham, inherit);
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  text-align: left;
  cursor: pointer;
}
@media (max-width: 899.98px) {
  .nsh-inpage-nav__toggle {
    display: flex;
  }
}

.nsh-inpage-nav__toggle-label {
  flex: 1 1 auto;
}

/* chevron that flips when the menu is open */
.nsh-inpage-nav__toggle-icon {
  flex: 0 0 auto;
  width: 0.55em;
  height: 0.55em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}

.nsh-inpage-nav.is-open .nsh-inpage-nav__toggle-icon {
  transform: rotate(-135deg);
}

.nsh-share {
  width: min(700px, 100vw - 32px);
  max-width: min(700px, 100vw - 32px);
  max-height: calc(100vh - 32px);
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
  overflow: visible;
}
.nsh-share::backdrop {
  background: rgba(6, 37, 55, 0.6);
}
.nsh-share.is-open:not([open]) {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 100000;
  width: 100vw;
  max-width: 100vw;
  max-height: 100vh;
  margin: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.nsh-share.is-open:not([open])::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(6, 37, 55, 0.6);
}
.nsh-share.is-open:not([open]) .nsh-share__panel {
  position: relative;
  width: min(700px, 100vw - 32px);
  max-height: calc(100vh - 32px);
  margin: 5vh auto 0;
  border-radius: 10px;
  background: var(--wp--preset--color--contrast, #0c3554);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
  overflow: auto;
}

body.nsh-share-open {
  overflow: hidden;
}

.nsh-share__panel {
  position: relative;
  padding: 48px 40px 44px;
  text-align: center;
}
@media (max-width: 600px) {
  .nsh-share__panel {
    padding: 44px 22px 34px;
  }
}

.nsh-share__close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.nsh-share__close .nsh-share__icon {
  width: 20px;
  height: 20px;
}
.nsh-share__close:hover, .nsh-share__close:focus-visible {
  background: var(--wp--preset--color--orange, #b69121);
  color: var(--wp--preset--color--base, #fff);
}

.nsh-share__heading {
  margin: 0 0 28px;
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--gotham);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.2;
}

.nsh-share__list {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  gap: 18px 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nsh-share__item {
  margin: 0;
}

.nsh-share__btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 88px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--wp--preset--color--base, #fff);
  font-family: var(--wp--preset--font-family--gotham);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.01em;
  cursor: pointer;
}
.nsh-share__btn .nsh-share__icon {
  box-sizing: content-box;
  width: 28px;
  height: 28px;
  padding: 18px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  fill: var(--wp--preset--color--base, #fff);
  transition: background 0.2s ease, fill 0.2s ease;
}
.nsh-share__btn:hover, .nsh-share__btn:focus-visible {
  color: var(--wp--preset--color--orange, #b69121);
}
.nsh-share__btn:hover .nsh-share__icon, .nsh-share__btn:focus-visible .nsh-share__icon {
  background: var(--wp--preset--color--orange, #b69121);
  fill: var(--wp--preset--color--base, #fff);
}

.nsh-share__btn--copy.is-copied {
  color: var(--wp--preset--color--orange, #b69121);
}
.nsh-share__btn--copy.is-copied .nsh-share__icon {
  background: var(--wp--preset--color--orange, #b69121);
  fill: var(--wp--preset--color--base, #fff);
}

.nsh-share--floorplan {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-share--floorplan.is-open:not([open]) .nsh-share__panel {
  background: var(--wp--preset--color--base, #fff);
}
.nsh-share--floorplan .nsh-share__panel {
  padding: 40px;
  text-align: left;
}
@media (max-width: 600px) {
  .nsh-share--floorplan .nsh-share__panel {
    padding: 30px 20px;
  }
}
.nsh-share--floorplan .nsh-share__close {
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  background: transparent;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-share--floorplan .nsh-share__close .nsh-share__icon {
  width: 22px;
  height: 22px;
}
.nsh-share--floorplan .nsh-share__close:hover, .nsh-share--floorplan .nsh-share__close:focus-visible {
  background: var(--wp--preset--color--orange, #b69121);
  color: var(--wp--preset--color--base, #fff);
}
.nsh-share--floorplan .nsh-share__heading {
  margin: 0 0 24px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: var(--wp--preset--font-family--vollkorn);
  font-size: 2rem;
  font-weight: 700;
  text-align: left;
}
.nsh-share--floorplan .nsh-share__list {
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 10px;
}
.nsh-share--floorplan .nsh-share__item {
  flex: 1 1 0;
  min-width: 0;
}
.nsh-share--floorplan .nsh-share__btn {
  box-sizing: border-box;
  flex: 1 1 auto;
  flex-direction: row;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 11px 14px;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--wp--preset--color--accent-1, #236d9f);
  border-radius: 0;
  background: var(--wp--preset--color--accent-1, #236d9f);
  box-shadow: none;
  color: var(--wp--preset--color--base, #fff);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  text-transform: none;
  letter-spacing: 0;
}
.nsh-share--floorplan .nsh-share__btn .nsh-share__icon {
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  padding: 0;
  border-radius: 0;
  background: none;
  fill: var(--wp--preset--color--base, #fff);
}
.nsh-share--floorplan .nsh-share__btn:hover, .nsh-share--floorplan .nsh-share__btn:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--accent-1, #236d9f);
}
.nsh-share--floorplan .nsh-share__btn:hover .nsh-share__icon, .nsh-share--floorplan .nsh-share__btn:focus-visible .nsh-share__icon {
  background: none;
  fill: var(--wp--preset--color--accent-1, #236d9f);
}
.nsh-share--floorplan .nsh-share__btn--copy.is-copied {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--accent-1, #236d9f);
}
.nsh-share--floorplan .nsh-share__btn--copy.is-copied .nsh-share__icon {
  background: none;
  fill: var(--wp--preset--color--accent-1, #236d9f);
}

.nsh-fav {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--wp--preset--color--contrast, #0c3554);
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(6, 37, 55, 0.25);
  transition: color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}
.nsh-fav svg {
  display: block;
}
.nsh-fav:hover {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--orange, #b69121);
  transform: scale(1.06);
}
.nsh-fav:focus-visible {
  outline: 2px solid var(--wp--preset--color--orange, #b69121);
  outline-offset: 2px;
}
.nsh-fav.is-fav {
  color: var(--wp--preset--color--orange, #b69121);
}
.nsh-fav.is-fav svg path {
  fill: currentColor;
}
.nsh-fav:disabled {
  cursor: default;
  opacity: 0.7;
}
@media (prefers-reduced-motion: reduce) {
  .nsh-fav {
    transition: none;
  }
  .nsh-fav:hover {
    transform: none;
  }
}

.nsh-loc-card {
  position: relative;
}
.nsh-loc-card .nsh-fav {
  box-shadow: 0 1px 4px rgba(6, 37, 55, 0.18);
}

.nsh-auth {
  width: min(460px, 100vw - 32px);
  max-width: min(460px, 100vw - 32px);
  max-height: calc(100vh - 32px);
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: var(--wp--preset--color--base, #fff);
  color: #10222e;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  overflow: auto;
}
.nsh-auth::backdrop {
  background: rgba(6, 37, 55, 0.6);
}
.nsh-auth__panel {
  position: relative;
  padding: clamp(24px, 5vw, 40px);
}
.nsh-auth__close {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #5a6b76;
  cursor: pointer;
}
.nsh-auth__close:hover {
  background: #eef1f4;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-auth__prompt {
  margin: 0 0 16px;
  padding: 10px 14px;
  border-left: 3px solid var(--wp--preset--color--orange, #b69121);
  background: var(--wp--preset--color--accent-2, #edf3f7);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-auth__title {
  margin: 0 0 6px;
  font-family: Vollkorn, serif;
  font-size: 28px;
  font-weight: 500;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-auth__sub {
  margin: 0 0 20px;
  font-size: 14px;
  line-height: 1.55;
  color: #5b6671;
}
.nsh-auth__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 14px;
}
@media (max-width: 480px) {
  .nsh-auth__row {
    grid-template-columns: 1fr;
  }
}
.nsh-auth__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 14px;
}
.nsh-auth__field span {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #5a6b76;
}
.nsh-auth__field input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #d3d8dd;
  border-radius: 6px;
  font-size: 15px;
  color: #10222e;
  background: var(--wp--preset--color--base, #fff);
}
.nsh-auth__field input:focus {
  border-color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  outline: 2px solid rgba(42, 95, 158, 0.25);
  outline-offset: 0;
}
.nsh-auth__hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.nsh-auth__msg {
  margin: 0 0 14px;
  padding: 10px 14px;
  border-radius: 6px;
  background: var(--wp--preset--color--accent-2, #edf3f7);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-auth__msg.is-error {
  background: #fdecea;
  color: #c0341d;
}
.nsh-auth__submit {
  display: block;
  width: 100%;
  margin: 4px 0 16px;
  padding: 13px 18px;
  border: 0;
  border-radius: 6px;
  background: var(--wp--preset--color--custom-color-2, #1d5c8c);
  color: var(--wp--preset--color--base, #fff);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.16s ease;
}
.nsh-auth__submit:hover {
  background: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-auth__submit:disabled {
  opacity: 0.6;
  cursor: default;
}
.nsh-auth__alt {
  margin: 8px 0 0;
  font-size: 13.5px;
  text-align: center;
  color: #5b6671;
}
.nsh-auth__switch {
  padding: 0;
  border: 0;
  background: none;
  color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  font-size: inherit;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.nsh-auth__switch:hover {
  color: var(--wp--preset--color--orange, #b69121);
}

/* =========================================================================
   Plan & Spec single templates (templates/single-plans.html +
   templates/single-specs.html) — Gutenverse-free rebuild. ONE shared partial
   for both, since the two templates are the same shape bar three documented
   diffs (spec content is flex-centred; the share modal variant/heading; the
   form anchor wrapper). The two custom blocks placed inside (nsh/inpage-nav and
   nsh/share) own their own chrome in _inpage-nav.scss / _share.scss — this
   partial only styles the template-level scaffolding: the sticky nav bar, the
   post-content band, the Instagram row and the contact/form section.

   Standalone partial — no @use of siblings. Colours come from the theme.json
   palette via CSS custom properties so they track the tokens.
   ========================================================================= */
/* ===================================================================== nav ===
   The sticky in-page nav bar ("Plan/Spec Navigation"). Was a Gutenverse
   container (sticky, topSticky 40px, z 100, boxed 1920, white bg, brand-blue
   shadow). The site header is itself sticky, so this bar parks 40px below it.
   Keeps the original `community_menu top-36` classes verbatim. */
.nsh-sp-nav {
  position: sticky;
  top: 40px;
  z-index: 100;
  gap: 20px;
  width: 100%;
  margin: 0 0 10px;
  padding: 10px var(--nsh-content-gutter);
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 1px 5px 0 rgba(42, 95, 158, 0.3);
  /* On mobile the bar releases (the menu collapses into the nsh/inpage-nav
     toggle) and stacks vertically. */
}
@media (max-width: 1250px) {
  .nsh-sp-nav {
    padding-inline: 30px;
  }
}
@media (max-width: 782px) {
  .nsh-sp-nav {
    padding: 20px 30px;
  }
}
@media (max-width: 1023.98px) {
  .nsh-sp-nav {
    position: static;
    top: auto;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px 20px;
  }
}

/* When the WP admin bar is showing, the sticky site header drops 32px (see
   _header.scss: `.admin-bar header { top: 32px }`). This bar parks below the header, so
   it has to drop by the same 32px or it slides up behind the header when logged in.
   The bar is static below the desktop breakpoint, where `top` is ignored anyway. */
.admin-bar .nsh-sp-nav {
  top: 72px; /* 40px base offset + 32px admin bar */
}

/* LEFT — community title (h2) + location. */
.nsh-sp-nav__left {
  flex: 0 1 34%;
  min-width: 0;
  /* p7_community renders an h2 at 28px; p7_location the muted sub-line. */
}
.nsh-sp-nav__left .m-0 {
  margin: 0;
}
.nsh-sp-nav__left h2 {
  margin: 0;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 28px;
  line-height: 1.15;
}
@media (max-width: 1023.98px) {
  .nsh-sp-nav__left {
    flex: 1 1 100%;
  }
  .nsh-sp-nav__left h2 {
    font-size: 22px;
  }
}

/* RIGHT — the in-page anchor nav (nsh/inpage-nav) + Directions button. */
.nsh-sp-nav__right {
  flex: 1 1 auto;
  gap: 10px;
  min-width: 0;
}
@media (max-width: 1023.98px) {
  .nsh-sp-nav__right {
    flex: 1 1 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
  }
}

/* The Directions button column (p7/button). Hidden on mobile in the original
   (the bar's hideMobile on the button container). */
.nsh-sp-nav__button {
  flex: 0 0 auto;
}
@media (max-width: 1023.98px) {
  .nsh-sp-nav__button {
    display: none;
  }
}

/* ================================================================= content ===
   The post-content band ("Plan/Spec Content"). Plans used a plain wrapper;
   specs used a flex wrapper centring its content (diff #1) — `--flex` flexes
   and centres the inner post-content so wide spec blocks sit middle-aligned. */
.nsh-sp-content {
  background: var(--wp--preset--color--base, #fff);
}

.nsh-sp-content--flex {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.nsh-sp-content--flex > .entry-content,
.nsh-sp-content--flex > .wp-block-post-content {
  width: 100%;
}

/* Align the migrated body to the SAME centred-column gutter as the header bar and
   the sticky nav (var(--nsh-content-gutter)). The spec/plan sections arrive as
   Gutenverse containers; Gutenverse USED to cap them at 1920 and centre them with
   its own margin:0 auto. With the plugin now OFF that CSS is gone, so the theme owns
   both: cap the width (narrowed by 2*60 — the same 60px the bars inset, so
   container-left == bar content-left) AND re-centre with margin-inline:auto. Without
   the margin the capped container sits flush-left, and a section that still renders
   from the dormant body (e.g. the Virtual Tour) reads as shifted left of page centre.
       bars: (W - 1920)/2 + 60
       body: (W - 1920)/2 + 60  (container centred, then its 60px gutter)
   Scoped to .nsh-sp-content so only the spec/plan body is affected; !important wins
   deterministically over any leftover inline container style. */
.nsh-sp-content .wp-block-gutenverse-section .guten-container {
  max-width: 1800px !important;
  margin-inline: auto !important;
}

/* The dormant plan/spec body (.entry-content) still contains a few legacy Gutenverse
   blocks that lost their styling when the plugin was turned off, so they render unstyled
   at the left edge: a stray "View Plan" button and a duplicate "<Plan> Tour" heading the
   theme already supersedes (the header's View Plan link + the styled "<Plan> Virtual Tour"
   section right below it). Hide those leftovers. The theme-owned nsh-* sections nested in
   the same body are untouched — they don't use these legacy classes (their headings are
   .nsh-vtour__heading / .nsh-amenities-title / .nsh-proximity-title). */
.nsh-sp-content .entry-content .wp-block-gutenverse-heading,
.nsh-sp-content .entry-content .guten-button-wrapper {
  display: none !important;
}

/* =============================================================== instagram ===
   IG row: an inline glyph (core/html SVG) + the kept sbi feed, on a top rule.
   Mirrors the blog single's Instagram band. */
.nsh-sp-instagram {
  padding: 50px 60px 0;
  background: var(--wp--preset--color--base, #fff);
}
@media (max-width: 782px) {
  .nsh-sp-instagram {
    padding: 50px 30px 0;
  }
}
@media (max-width: 1023.98px) {
  .nsh-sp-instagram {
    padding: 20px;
  }
}
.nsh-sp-instagram:not(:has(.nsh-sp-instagram__feed > *)) {
  display: none;
}

.nsh-sp-instagram__row {
  border-top: 1px solid var(--wp--preset--color--contrast, #0c3554);
  padding-top: 30px;
  margin-bottom: 0;
}
@media (max-width: 781px) {
  .nsh-sp-instagram__row {
    border-top: 0;
    padding-top: 0;
  }
}

.nsh-sp-instagram__icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.nsh-sp-instagram__icon svg {
  width: 48px;
  height: 48px;
}

/* ==================================================================== form ===
   Contact + "Plan Your Visit" form section. anchor id="plan_visit" lives on
   the group itself (the in-page nav scrolls here). 33 / 67 columns split by a
   vertical rule, stacking under a horizontal rule on mobile. */
.nsh-sp-form {
  padding: 0 60px 50px;
  background: var(--wp--preset--color--base, #fff);
  scroll-margin-top: 120px; /* clear the sticky header + nav bar on anchor jump */
}
@media (max-width: 782px) {
  .nsh-sp-form {
    padding: 0 30px 50px;
  }
}
@media (max-width: 1023.98px) {
  .nsh-sp-form {
    padding: 0 20px 50px;
  }
}

.nsh-sp-form__grid {
  border-top: 1px solid var(--wp--preset--color--contrast, #0c3554);
  padding-top: 50px;
  gap: 0;
}
@media (max-width: 781px) {
  .nsh-sp-form__grid {
    border-top: 0;
    padding-top: 0;
  }
}

.nsh-sp-form__left {
  padding: 30px 20px 30px 0;
  border-right: 1px solid var(--wp--preset--color--contrast, #0c3554);
}
@media (max-width: 781px) {
  .nsh-sp-form__left {
    padding: 0 0 30px;
    border-right: 0;
    border-top: 1px solid var(--wp--preset--color--contrast, #0c3554);
  }
}

.nsh-sp-form__right {
  padding: 30px 0 80px 20px;
}
@media (max-width: 781px) {
  .nsh-sp-form__right {
    padding: 0 0 30px;
  }
}

.nsh-sp-form__heading {
  margin: 0 0 30px;
  color: var(--wp--preset--color--contrast, #0c3554);
  text-transform: uppercase;
  font-weight: 400;
}

.nsh-sp-form__contact {
  margin-bottom: 50px;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-sp-form__contact p {
  margin: 0 0 16px;
}
.nsh-sp-form__contact p:nth-child(3) {
  margin-bottom: 30px;
}

.nsh-sp-form__social .wp-block-social-link {
  color: var(--wp--preset--color--contrast, #0c3554);
}

/* ============================================================= description ===
   The spec overview copy, swapped in from the editable Description field by
   nsh_spec_overview_description() (includes/spec-template.php). It reuses the
   migrated text-editor's wrapper (so font/colour track the gutenverse styling)
   but its inner copy is plain <p>, which the per-block gutenverse margins no
   longer reach — restore the original 20px paragraph rhythm. */
.nsh-spec-desc p {
  margin: 0 0 20px;
}
.nsh-spec-desc p:last-child {
  margin-bottom: 0;
}

/* ============================================================ virtual tour ===
   The Virtual Tour embed (#virtual-tour) is a baked p7/iframe-block inside a
   Gutenverse "Virtual Tour" wrapper whose heading + group chrome collapse to
   nothing on the front end (Gutenverse deprecation), leaving a bare, full-bleed,
   anchorless iframe. includes/spec-template.php wraps it at render time in this
   section so it matches the Floorplan above it: the #virtual-tour anchor the
   sticky sub-nav scroll-spy needs, a centred serif heading, and the floorplan's
   centred 1100px column. Values mirror nsh/home-floorplan's .nsh-fplan* on purpose. */
.nsh-vtour {
  padding: clamp(2.5rem, 5vw, 4rem) var(--nsh-content-gutter, 60px);
  background: var(--wp--preset--color--base, #fff);
  scroll-margin-top: 120px; /* clear the sticky sub-nav on a #virtual-tour jump */
}

.nsh-vtour__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.nsh-vtour__heading {
  margin: 0 0 28px;
  text-align: center;
  font-family: "Vollkorn", Georgia, serif;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 600;
  color: #0c3554;
}

/* The baked iframe block fills the centred column; height stays close to its
   embedded 525 but flexes down on narrow screens. */
.nsh-vtour .wp-block-p7-iframe-block {
  margin: 0;
}

.nsh-vtour iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: clamp(360px, 50vw, 560px);
  border: 0;
}

/* ============================================================== floor plan ===
   The p7/floorplan viewer renders its image at natural size (height:auto), so a
   tall floor plan overflows the viewport and you scroll past it twice. Cap the
   on-page height so the section fits one screen; the block's own zoom controls
   still enlarge it (they scale via transform, unaffected by this cap). Scoped to
   the single-home/plan floorplan block, NOT the /all-floorplans/ grid cards
   (those use .floorplan-card-img). */
.floorplan-block .floorplan-image,
.wp-block-p7-floorplan .floorplan-image {
  max-height: 70vh;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

.nsh-csec {
  padding-block: clamp(2rem, 5vw, 3.75rem);
}

.nsh-csec--amenities .nsh-amenities,
.nsh-csec--amenities .nsh-proximity {
  max-width: none;
  margin-inline: 0;
  padding-inline: var(--nsh-content-gutter);
}

/* ------------------------------------------------------------------ hero */
.nsh-chero {
  position: relative;
  margin: 0;
  display: flex;
  gap: 12px;
  padding-inline: var(--nsh-content-gutter);
  scroll-margin-top: 120px;
}
@media (max-width: 1023.98px) {
  .nsh-chero {
    flex-direction: column;
  }
}

.nsh-chero__stage {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-chero__slides {
  list-style: none;
  margin: 0;
  padding: 0;
  height: 100%;
}

.nsh-chero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.nsh-chero__slide.is-active {
  opacity: 1;
  z-index: 1;
}
.nsh-chero__slide > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
@media (max-width: 1023.98px) {
  .nsh-chero__slide > img {
    object-fit: contain;
    object-position: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nsh-chero__slide {
    transition: none;
  }
}
.nsh-chero__play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 76px;
  height: 76px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 98, 0, 0.92);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
.nsh-chero__play::before {
  content: "";
  position: absolute;
  left: 53%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 11px 0 11px 18px;
  border-color: transparent transparent transparent #fff;
}
.nsh-chero__play:hover, .nsh-chero__play:focus-visible {
  background: var(--wp--preset--color--orange, #b69121);
  transform: translate(-50%, -50%) scale(1.06);
}

.nsh-chero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  z-index: 4;
}

.nsh-chero__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: rgba(6, 37, 55, 0.55);
  color: #fff;
  cursor: pointer;
  transition: background 0.2s ease;
}
.nsh-chero__arrow::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
.nsh-chero__arrow:hover, .nsh-chero__arrow:focus-visible {
  background: var(--wp--preset--color--orange, #b69121);
}
.nsh-chero__arrow--prev {
  left: 14px;
}
.nsh-chero__arrow--prev::before {
  transform: translateX(2px) rotate(-135deg);
}
.nsh-chero__arrow--next {
  right: 14px;
}
.nsh-chero__arrow--next::before {
  transform: translateX(-2px) rotate(45deg);
}

.nsh-chero__viewall {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 3;
  padding: 0.6rem 1.4rem;
  background: var(--wp--preset--color--orange, #b69121);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--wp--preset--color--orange, #b69121);
}
.nsh-chero__viewall:hover, .nsh-chero__viewall:focus-visible {
  background: #fff;
  color: var(--wp--preset--color--orange, #b69121);
}

.nsh-chero__side {
  flex: 0 0 clamp(150px, 17vw, 216px);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (max-width: 1023.98px) {
  .nsh-chero__side {
    flex-basis: auto;
  }
}

.nsh-chero__logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2px 0;
  max-height: 92px;
}
.nsh-chero__logo img {
  max-width: 100%;
  max-height: 84px;
  width: auto;
  height: auto;
  display: block;
}

.nsh-chero__thumbs {
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (max-width: 1023.98px) {
  .nsh-chero__thumbs {
    flex-basis: auto;
    flex-direction: row;
    overflow: visible;
  }
}

.nsh-chero__thumb {
  flex: 1 1 0;
  position: relative;
  min-height: 0;
}
.nsh-chero__thumb.is-active .nsh-chero__thumb-btn {
  outline: 3px solid var(--wp--preset--color--orange, #b69121);
  outline-offset: -3px;
}
@media (max-width: 1023.98px) {
  .nsh-chero__thumb {
    min-width: 0;
    height: auto;
    aspect-ratio: 16/9;
  }
}

.nsh-chero__thumb-btn {
  display: block;
  position: relative;
  padding: 0;
  border: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
  background: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-chero__thumb-btn > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.2s ease;
}
.nsh-chero__thumb-btn:hover > img {
  opacity: 0.88;
}

.nsh-chero__thumb-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 98, 0, 0.92);
  pointer-events: none;
}
.nsh-chero__thumb-play::before {
  content: "";
  position: absolute;
  left: 54%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent #fff;
}

.nsh-chero__more {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(6, 37, 55, 0.62);
  color: #fff;
  font-family: Vollkorn, serif;
  font-weight: 500;
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  pointer-events: none;
  transition: background 0.2s ease;
}

.nsh-chero__thumb--more .nsh-chero__thumb-btn:hover .nsh-chero__more {
  background: rgba(6, 37, 55, 0.48);
}

/* ---------------------------------------------------------------- lightbox */
.nsh-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(6, 37, 55, 0.93);
  padding: clamp(1rem, 5vw, 4rem);
}

.nsh-lightbox__stage {
  max-width: min(1200px, 92vw);
  max-height: 86vh;
}
.nsh-lightbox__stage img {
  max-width: 100%;
  max-height: 86vh;
  width: auto;
  height: auto;
  display: block;
  box-shadow: 0 12px 44px rgba(0, 0, 0, 0.45);
}

.nsh-lightbox__close {
  position: absolute;
  top: clamp(0.8rem, 2vw, 1.6rem);
  right: clamp(0.8rem, 2vw, 1.6rem);
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-size: 1.7rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease;
}
.nsh-lightbox__close:hover, .nsh-lightbox__close:focus-visible {
  background: var(--wp--preset--color--orange, #b69121);
}

.nsh-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  cursor: pointer;
  transition: background 0.2s ease;
}
.nsh-lightbox__nav::before {
  content: "";
  width: 13px;
  height: 13px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
.nsh-lightbox__nav:hover, .nsh-lightbox__nav:focus-visible {
  background: var(--wp--preset--color--orange, #b69121);
}
.nsh-lightbox__nav--prev {
  left: clamp(0.5rem, 3vw, 2rem);
}
.nsh-lightbox__nav--prev::before {
  transform: translateX(3px) rotate(-135deg);
}
.nsh-lightbox__nav--next {
  right: clamp(0.5rem, 3vw, 2rem);
}
.nsh-lightbox__nav--next::before {
  transform: translateX(-3px) rotate(45deg);
}

.nsh-lightbox__count {
  position: absolute;
  bottom: clamp(0.8rem, 3vw, 1.8rem);
  left: 0;
  right: 0;
  margin: 0;
  text-align: center;
  color: #fff;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

/* --------------------------------------------------------- top CTA band */
.nsh-ccta {
  background: linear-gradient(115deg, var(--wp--preset--color--contrast, #0c3554) 0%, #0a3a59 55%, var(--wp--preset--color--accent-1, #236d9f) 165%);
  color: var(--wp--preset--color--base, #fff);
}

.nsh-ccta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  padding-block: clamp(1.75rem, 3.5vw, 2.75rem);
  padding-inline: var(--nsh-content-gutter);
}
@media (max-width: 900px) {
  .nsh-ccta__inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

.nsh-ccta__copy {
  min-width: 0;
}

.nsh-ccta__eyebrow {
  margin: 0 0 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--wp--preset--color--base, #fff) 72%, var(--wp--preset--color--accent-1, #236d9f));
}

.nsh-ccta__title {
  margin: 0;
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  line-height: 1.15;
  font-weight: 600;
}

.nsh-ccta__sub {
  margin: 0.6rem 0 0;
  max-width: 48ch;
  font-size: 1rem;
  line-height: 1.5;
  color: color-mix(in srgb, var(--wp--preset--color--base, #fff) 82%, transparent);
}

.nsh-ccta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  flex-shrink: 0;
}
@media (max-width: 520px) {
  .nsh-ccta__actions {
    width: 100%;
    flex-direction: column;
  }
}

.nsh-ccta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.9rem 1.6rem;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  border-radius: 2px;
  transition: transform 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.nsh-ccta__btn:hover {
  transform: translateY(-1px);
}
.nsh-ccta__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 2px;
}
@media (max-width: 520px) {
  .nsh-ccta__btn {
    width: 100%;
  }
}

.nsh-ccta__btn--primary {
  background: var(--wp--preset--color--orange, #b69121);
  color: var(--wp--preset--color--base, #fff);
  box-shadow: 0 6px 18px rgba(255, 105, 0, 0.28);
}
.nsh-ccta__btn--primary:hover {
  background: color-mix(in srgb, var(--wp--preset--color--orange, #b69121) 90%, #000);
}

.nsh-ccta__btn--ghost {
  background: rgba(255, 255, 255, 0.08);
  color: var(--wp--preset--color--base, #fff);
  border: 1px solid rgba(255, 255, 255, 0.55);
}
.nsh-ccta__btn--ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}
.nsh-ccta__btn--ghost svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* -------------------------------------------------------------- overview */
.nsh-coverview {
  max-width: 960px;
  margin-inline: auto;
  padding-inline: 1.5rem;
  color: var(--wp--preset--color--contrast, #0c3554);
  text-align: center;
}

.nsh-coverview-headline {
  font-family: Vollkorn, serif;
  font-weight: 500;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  line-height: 1.15;
  margin: 0 0 0.8rem;
}

.nsh-coverview-tagline {
  font-family: Vollkorn, serif;
  font-style: italic;
  font-size: clamp(1.2rem, 2.4vw, 1.7rem);
  line-height: 1.3;
  margin: 0 0 1.6rem;
}

.nsh-coverview-body {
  line-height: 1.7;
  font-size: 1.02rem;
}
.nsh-coverview-body p {
  margin: 0 0 1rem;
}
.nsh-coverview-body p:last-child {
  margin-bottom: 0;
}

.nsh-coverview-address {
  margin: 1.4rem 0 0;
  font-weight: 700;
}

/* ----------------------------------------------- location map (overview) */
/* The community location pin, right after the address (legacy order). Full-bleed
 * via the template's alignfull. nsh-community.js fills .__canvas with a Google map;
 * a referer-restricted key renders Google's own notice in this box (as on local). */
.nsh-locmap {
  margin: 2.5rem 0 0;
  padding-inline: var(--nsh-content-gutter);
}

.nsh-locmap__canvas {
  width: 100%;
  height: clamp(320px, 42vh, 460px);
  background: #e9edf0;
}

/* Map marker: the brand "N" badge (the site icon), matching nsh/communities-map
   instead of Google's default pin. AdvancedMarkerElement anchors content
   bottom-center. */
.nsh-locmap__pin {
  line-height: 0;
}
.nsh-locmap__pin img {
  display: block;
  width: 40px;
  height: 40px;
  box-shadow: 0 2px 7px rgba(6, 37, 55, 0.45);
}

.nsh-locmap__pin-fb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #003da5;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
  font-size: 22px;
  box-shadow: 0 2px 7px rgba(6, 37, 55, 0.45);
}

/* ------------------------------------------------------ floor-plan / homes grids */
.nsh-cgrid {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding-inline: var(--nsh-content-gutter);
}

.nsh-homes {
  padding-block: clamp(2.5rem, 5vw, 3.5rem);
}

.nsh-cgrid__head {
  background: none !important;
  text-align: center;
  margin-bottom: 1.8rem;
}

.nsh-cgrid__heading,
.nsh-cplans__series {
  background: none !important;
  color: var(--wp--preset--color--contrast, #0c3554);
  text-align: center;
  font-family: Vollkorn, serif;
  font-weight: 500;
  margin: 0 auto 0.4rem;
  padding: 0;
}

.nsh-cgrid__heading {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
}

.nsh-cgrid__sub {
  color: #3a4b56;
  margin: 0 auto;
  text-align: center;
  font-size: 1rem;
}

.nsh-cplans__group {
  border-top: 1px solid #d7dde2;
  margin-top: 2.5rem;
  padding-top: 2.5rem;
}

.nsh-cplans__series {
  font-size: clamp(1.5rem, 2.4vw, 1.75rem);
  margin-bottom: 1.6rem;
}

.nsh-cplans__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 0.75rem;
  margin: 0 auto 2.75rem;
}

.nsh-cplans__tile {
  position: relative;
  flex: 1 1 0;
  min-width: 172px;
  max-width: 240px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1.1rem 0.95rem 3rem;
  background: #cdd5dd;
  color: var(--wp--preset--color--contrast, #0c3554);
  text-align: center;
  text-decoration: none;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 30px), 50% 100%, 0 calc(100% - 30px));
  filter: drop-shadow(0 4px 9px rgba(6, 37, 55, 0.2));
  transition: filter 0.15s ease, background-color 0.15s ease, transform 0.15s ease;
}
.nsh-cplans__tile::before {
  content: "";
  position: absolute;
  inset: 1px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 29px), 50% 100%, 0 calc(100% - 29px));
  z-index: 0;
}
.nsh-cplans__tile > * {
  position: relative;
  z-index: 1;
}
.nsh-cplans__tile:hover, .nsh-cplans__tile:focus-visible {
  background: var(--wp--preset--color--accent-1, #236d9f);
  transform: translateY(-4px);
  filter: drop-shadow(0 12px 16px rgba(6, 37, 55, 0.22));
}
.nsh-cplans__tile:focus-visible::before {
  inset: 2px;
}

.nsh-cplans__tile-name {
  width: 100%;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #e3e7eb;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.nsh-cplans__tile-sqft {
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  color: #3a4b56;
}

.nsh-cplans__tile-price {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-size: 1.2rem;
  font-weight: 700;
}
.nsh-cplans__tile-price small {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7a848c;
}

.nsh-cplans__tile-cta {
  margin-top: 0.15rem;
  padding: 0.5rem 1rem;
  background: var(--wp--preset--color--orange, #b69121);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.nsh-cplans__group {
  scroll-margin-top: 120px;
}
.nsh-cplans__group:target .nsh-cplans__series {
  color: var(--wp--preset--color--accent-1, #236d9f);
}

.nsh-cgrid__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}
.nsh-cgrid__grid > .nsh-pcard {
  box-sizing: border-box;
  flex: 0 0 calc((100% - 60px) / 3);
  max-width: calc((100% - 60px) / 3);
}
@media (max-width: 1024px) {
  .nsh-cgrid__grid > .nsh-pcard {
    flex-basis: calc((100% - 30px) / 2);
    max-width: calc((100% - 30px) / 2);
  }
}
@media (max-width: 600px) {
  .nsh-cgrid__grid > .nsh-pcard {
    flex-basis: 100%;
    max-width: 100%;
  }
}

.nsh-cgrid__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  padding: 2.5rem 1rem;
  border: 1px dashed #c7d0d8;
  border-radius: 4px;
  color: #7a848c;
  text-align: center;
}
.nsh-cgrid__placeholder .dashicons {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: var(--wp--preset--color--accent-1, #236d9f);
}
.nsh-cgrid__placeholder strong {
  color: var(--wp--preset--color--contrast, #0c3554);
}

/* Shared card — mirrors the existing p7 plans-grid card (.p7-plan-home-card) so the
   community page stays visually consistent with the rest of the site: a centered
   white box, full-width 300px photo, uppercase title, type, community, "Priced From",
   a divider, stacked uppercase specs, and the View / Download / Share / Tour row. */
.nsh-pcard {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  box-shadow: 0 1px 3px rgba(6, 37, 55, 0.08), 0 6px 16px rgba(6, 37, 55, 0.05);
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.nsh-pcard:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 38px rgba(6, 37, 55, 0.13);
}
.nsh-pcard:focus-within {
  outline: 2px solid var(--wp--preset--color--accent-1, #236d9f);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .nsh-pcard {
    transition: box-shadow 0.2s ease;
  }
  .nsh-pcard:hover {
    transform: none;
  }
}

.nsh-pcard__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.nsh-pcard__photo-wrap {
  position: relative;
  overflow: hidden;
}

.nsh-pcard__photo {
  display: block;
  width: 100%;
  min-height: 300px;
  max-height: 300px;
  object-fit: cover;
}
@media (max-width: 600px) {
  .nsh-pcard__photo {
    min-height: 250px;
    max-height: 250px;
  }
}

.nsh-pcard__photo--empty {
  background: linear-gradient(135deg, #eef1f4, #dde4ea);
}

.nsh-pcard__badge {
  position: absolute;
  top: 0;
  left: 1.25rem;
  z-index: 2;
  padding: 0.62rem 1.05rem 1.15rem;
  background: var(--wp--preset--color--accent-1, #236d9f);
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.15;
  text-align: center;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), 50% 100%, 0 calc(100% - 14px));
  filter: drop-shadow(0 3px 6px rgba(6, 37, 55, 0.28));
}
.nsh-pcard__badge::before {
  content: "";
  position: absolute;
  inset: 2px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), 50% 100%, 0 calc(100% - 12px));
  z-index: 0;
}

.nsh-pcard__badge-text {
  position: relative;
  z-index: 1;
  color: var(--wp--preset--color--accent-1, #236d9f);
}

.nsh-pcard__flag {
  position: absolute;
  top: 0;
  left: 1.1rem;
  z-index: 2;
  width: clamp(92px, 10vw, 130px);
  line-height: 0;
  filter: drop-shadow(0 3px 7px rgba(6, 37, 55, 0.3));
}
.nsh-pcard__flag img {
  display: block;
  width: 100%;
  height: auto;
}

.nsh-pcard__box {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 26px 22px 28px;
  text-align: center;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-pcard__info {
  padding: 4px 0 0;
}

.nsh-pcard__title {
  margin: 0 auto 10px;
  font-family: var(--wp--preset--font-family--gotham);
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-pcard__type {
  margin: 8px auto;
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #5a6b76;
}

.nsh-pcard__community {
  margin: 0;
  min-height: 1.4em;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-pcard__location {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 6px auto 0;
  font-size: 0.875rem;
  line-height: 1.3;
  color: #5a6b76;
}

.nsh-pcard__pin {
  flex: none;
  color: #5a6b76;
}

.nsh-pcard__homesite {
  margin: 4px auto 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #5a6b76;
}

.nsh-pcard__price {
  margin: 18px auto 16px;
  font-size: 1.25rem;
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-pcard__price span {
  font-weight: 700;
}
.nsh-pcard__price .nsh-pcard__was {
  margin-right: 0.45em;
  font-weight: 600;
  font-size: 0.82em;
  color: #5b6671;
  text-decoration: line-through;
}

.nsh-pcard__rule {
  border: none;
  height: 1px;
  margin: 0;
  background: rgba(6, 37, 55, 0.14);
}

.nsh-pcard__meta {
  padding: 18px 0 22px;
  margin: 0;
}

.nsh-pcard__specs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 16px;
  margin: 0;
}
.nsh-pcard__specs span {
  position: relative;
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-pcard__specs span + span::before {
  content: "·";
  position: absolute;
  left: -10px;
  color: #5a6b76;
  font-weight: 700;
}

.nsh-pcard__sqft {
  margin: 8px 0 0;
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #5a6b76;
}

.nsh-pcard__ready {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 12px auto 0;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-pcard__ready svg {
  flex: none;
  color: var(--wp--preset--color--accent-1, #236d9f);
}

.nsh-pcard__footer {
  display: flex;
  gap: 6px;
  margin-top: auto;
}

.nsh-pcard__btn {
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  border-radius: 0;
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 7px 6px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.1;
  text-decoration: none;
  background-color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  color: #fff;
  border: 1px solid var(--wp--preset--color--custom-color-2, #1d5c8c);
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.nsh-pcard__btn:hover {
  background-color: #fff;
  color: var(--wp--preset--color--custom-color-2, #1d5c8c);
}
.nsh-pcard__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: 2px;
}
.nsh-pcard__btn:active {
  transform: translateY(1px);
}
.nsh-pcard__btn--primary {
  background-color: var(--wp--preset--color--orange, #b69121);
  border-color: var(--wp--preset--color--orange, #b69121);
}
.nsh-pcard__btn--primary:hover {
  background-color: #fff;
  color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  border-color: var(--wp--preset--color--custom-color-2, #1d5c8c);
}
@media (prefers-reduced-motion: reduce) {
  .nsh-pcard__btn {
    transition: none;
  }
}

/* ------------------------------------------------------------ site-plan map */
.nsh-cmap {
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: 1.5rem;
}

.nsh-cmap-title {
  text-align: center;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin: 0 0 1.5rem;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-cmap-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border: 1px solid #e3e7eb;
  background: #eef1f4;
}
.nsh-cmap-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 781px) {
  .nsh-cmap-frame {
    aspect-ratio: auto;
    height: clamp(380px, 70vh, 600px);
  }
}
/* ----------------------------------------------------------------- video */
.nsh-cvideo {
  max-width: 1000px;
  margin-inline: var(--nsh-content-gutter) auto;
  padding-inline: 0;
  text-align: center;
}
@media (max-width: 1200px) {
  .nsh-cvideo {
    margin-inline: auto;
    padding-inline: 1.5rem;
  }
}

.nsh-cvideo-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin: 0 0 1.5rem;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-cvideo-frame iframe,
.nsh-cvideo-frame video {
  width: 100%;
  aspect-ratio: 16/9;
  height: auto;
  border: 0;
}
.nsh-cvideo-frame > a {
  display: inline-block;
  padding: 0.8rem 2rem;
  background: var(--wp--preset--color--orange, #b69121);
  color: #fff;
  border: 1px solid var(--wp--preset--color--orange, #b69121);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
}
.nsh-cvideo-frame > a:hover, .nsh-cvideo-frame > a:focus-visible {
  background: #fff;
  color: var(--wp--preset--color--orange, #b69121);
}

/* -------------------------------- Quick Move-In filter bar (nsh/community-homes)
 * Mirrors the p7 inventory filters (minus Location + Community, fixed on a single
 * community page); filtered client-side by the block's view.js. Full width, so it
 * lines up with the grid below it. */
.nsh-cfilters {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.75rem;
  margin: 0 0 2.25rem;
  padding: 0 0 2.25rem;
  border-bottom: 1px solid #d7dde2;
}

.nsh-cfilters__group {
  display: flex;
  flex: 1 1 140px;
  min-width: 128px;
  max-width: 180px;
}

.nsh-cfilters__group label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.nsh-cfilters select {
  width: 100%;
  padding: 0.6rem 2rem 0.6rem 0.7rem;
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  border-radius: 0;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%230c3554' d='M0 0h12L6 8z'/%3E%3C/svg%3E") no-repeat right 0.7rem center;
  background-size: 12px 8px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 0.92rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.nsh-cfilters__reset {
  flex: 0 0 auto;
  padding: 0.6rem 1.1rem;
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  background: #fff;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.nsh-cfilters__reset:hover {
  background: var(--wp--preset--color--contrast, #0c3554);
  color: #fff;
}

.nsh-cfilters__toggle {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.1rem;
  border: 2px solid var(--wp--preset--color--orange, #b69121);
  background: #fff;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  user-select: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.nsh-cfilters__toggle input {
  width: 1rem;
  height: 1rem;
  margin: 0;
  accent-color: var(--wp--preset--color--orange, #b69121);
  cursor: pointer;
}
.nsh-cfilters__toggle:hover {
  background: rgba(255, 105, 0, 0.08);
}
.nsh-cfilters__toggle:has(input:checked) {
  background: var(--wp--preset--color--orange, #b69121);
  color: #fff;
}
.nsh-cfilters__toggle:has(input:checked) input {
  accent-color: #fff;
}

.nsh-chomes__empty {
  text-align: center;
  color: #7a848c;
  font-size: 1.05rem;
  padding: 2.5rem 0;
}

/* =========================================================================
   Misc FSE templates — Gutenverse-free rebuild. ONE shared standalone partial
   for the three templates that carried only a thin Gutenverse shell:

     - templates/single-promotion.html  (.nsh-promo-content)
     - templates/page.html              (.nsh-page-content)
     - templates/single-locations.html  (.nsh-loc / .nsh-loc-nav / .nsh-loc-menu)

   The promo + page wrappers were plain Gutenverse `wrapper` blocks whose only
   behaviour (centre the content / constrain it) is now expressed inline on the
   replacement core/group, so they need no CSS here beyond a small safety reset.
   The locations template carried a sticky "Location Navigation" bar (a boxed
   Gutenverse container + a classic nav-menu, id 8) — that chrome is rebuilt
   below as a core/group + core/html <nav>.

   Standalone partial — no @use of siblings. Colours come from the theme.json
   palette via CSS custom properties so they track the tokens.
   ========================================================================= */
/* ============================================================ promotion ===
   Field-driven landing page (nsh/promotion-content): a hero band (featured image
   or brand gradient + headline + subheadline) over the description, with the
   p7/inventory-homes grid rendered below it by the template. Replaces the old
   hand-built Gutenverse body. */
.nsh-promo-content {
  background: var(--wp--preset--color--base, #fff);
}

.nsh-promo-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 340px;
  padding: 80px 24px;
  background-size: cover;
  background-position: center;
  text-align: center;
  color: var(--wp--preset--color--base, #fff);
}
@media (max-width: 1023.98px) {
  .nsh-promo-hero {
    min-height: 240px;
    padding: 56px 20px;
  }
}

/* No featured image → brand gradient band. */
.nsh-promo-hero--band {
  background: linear-gradient(120deg, var(--wp--preset--color--contrast, #0c3554), var(--wp--preset--color--accent-1, #236d9f));
}

/* Featured image → dark overlay so the headline stays legible. */
.nsh-promo-hero--image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 37, 55, 0.35), rgba(6, 37, 55, 0.68));
}

.nsh-promo-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 900px;
}

.nsh-promo-hero__title {
  margin: 0;
  color: var(--wp--preset--color--base, #fff);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.1;
  font-weight: 700;
  text-transform: uppercase;
}

.nsh-promo-hero__sub {
  margin: 14px 0 0;
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  line-height: 1.4;
  opacity: 0.95;
}

/* Poster layout: the designed banner shown FULL-BLEED and uncropped on white, flush
   below the nav, so its faded palm-frond edges melt into the page (no crop, no overlay,
   no side gutter). A 4K source is served on large/retina screens via srcset. */
.nsh-promo-hero--poster {
  display: block;
  min-height: 0;
  padding: 0;
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
}
@media (max-width: 1023.98px) {
  .nsh-promo-hero--poster {
    min-height: 0;
    padding: 0;
  }
}

.nsh-promo-hero--poster .nsh-promo-hero__inner {
  max-width: none;
  width: 100%;
  margin: 0;
}

.nsh-promo-hero__poster {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  /* The poster artwork + "Stay In Summer" text sit in the TOP of the image; the bottom
     third fades to white and otherwise leaves a large empty gap on wide screens. Cap the
     height and cover from the top so the white fade is trimmed without cropping the art. */
  max-height: clamp(240px, 32vw, 500px);
  object-fit: cover;
  object-position: center top;
  /* On very wide (4K+) viewports the width scales much faster than the 500px cap, so
     the bottom palm-tree border gets cropped and only the tall corner palms remain.
     Relax the cap so the tree silhouettes continue to span the full width. */
}
@media (min-width: 1920px) {
  .nsh-promo-hero__poster {
    max-height: clamp(500px, 35vw, 900px);
  }
}

/* Subheadline as a centered navy tagline under the poster (the headline lives in the art). */
.nsh-promo-hero__sub--poster {
  margin: clamp(18px, 2.4vw, 30px) auto 0;
  max-width: 760px;
  padding-inline: 24px;
  text-align: center;
  color: var(--wp--preset--color--contrast, #0c3554);
  opacity: 1;
  font-weight: 500;
}

/* Visually hidden, available to screen readers + SEO (the poster carries the H1 text). */
.nsh-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.nsh-promo-body {
  background: var(--wp--preset--color--base, #fff);
  padding: 48px 24px;
}

.nsh-promo-body__inner {
  max-width: 820px;
  margin: 0 auto;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 1.0625rem;
  line-height: 1.7;
}
.nsh-promo-body__inner p {
  margin: 0 0 1em;
}
.nsh-promo-body__inner p:last-child {
  margin-bottom: 0;
}
.nsh-promo-body__inner a {
  color: var(--wp--preset--color--accent-1, #236d9f);
}
.nsh-promo-body__inner h2, .nsh-promo-body__inner h3, .nsh-promo-body__inner h4 {
  color: var(--wp--preset--color--contrast, #0c3554);
}

/* Index ("master") layout: a hub of the active offers. */
.nsh-promo-index {
  background: var(--wp--preset--color--base, #fff);
  padding: clamp(40px, 6vw, 80px) 24px;
}

.nsh-promo-index__inner {
  max-width: 1180px;
  margin: 0 auto;
  text-align: center;
}

.nsh-promo-index__title {
  margin: 0;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: clamp(1.9rem, 3.4vw, 2.75rem);
  line-height: 1.12;
}

.nsh-promo-index__sub {
  margin: 12px auto 0;
  max-width: 720px;
  color: #5a6b76;
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.5;
}

.nsh-promo-index__empty {
  margin: 28px 0 0;
  color: #5a6b76;
}

.nsh-promo-index__grid {
  list-style: none;
  margin: clamp(28px, 4vw, 44px) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 22px;
  text-align: left;
}

.nsh-promo-card {
  display: flex;
}

.nsh-promo-card__link {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--wp--preset--color--base, #fff);
  border: 1px solid #e2e6ea;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.nsh-promo-card__link:hover, .nsh-promo-card__link:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(6, 37, 55, 0.12);
  border-color: #cdd6dd;
}

.nsh-promo-card__media {
  display: block;
  aspect-ratio: 1600/590;
  background-size: cover;
  background-position: center;
}
.nsh-promo-card__media--band {
  background: linear-gradient(120deg, var(--wp--preset--color--contrast, #0c3554), var(--wp--preset--color--accent-1, #236d9f));
}

.nsh-promo-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 20px 20px;
}

.nsh-promo-card__title {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.2;
}

.nsh-promo-card__sub {
  color: #5a6b76;
  font-size: 0.95rem;
  line-height: 1.45;
}

.nsh-promo-card__cta {
  margin-top: 6px;
  color: var(--wp--preset--color--orange, #b69121);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Form layout (the master record): lead form + image, a rate callout, and a blue
   palm-frond promo section whose top fronds blend down from the white page. */
.nsh-promo-form {
  background: var(--wp--preset--color--base, #fff);
  padding: clamp(32px, 5vw, 72px) 24px clamp(8px, 2vw, 24px);
}

.nsh-promo-form__inner {
  max-width: 1300px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
@media (max-width: 1023.98px) {
  .nsh-promo-form__inner {
    grid-template-columns: 1fr;
  }
}

.nsh-promo-form__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

.nsh-promo-form__title {
  margin: 0 0 12px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.12;
}

.nsh-promo-form__lead {
  margin: 0 0 22px;
  color: #5a6b76;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.55;
}

/* The "+" rate callout (blue mark on a centered rule + a big blue rate line). */
.nsh-promo-rate {
  background: var(--wp--preset--color--base, #fff);
  text-align: center;
  padding: clamp(8px, 2vw, 24px) 24px clamp(28px, 4vw, 56px);
}

.nsh-promo-rate__mark {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 16px;
  border-radius: 50%;
  background: var(--wp--preset--color--accent-1, #236d9f);
  color: var(--wp--preset--color--base, #fff);
  font-size: 2rem;
  font-weight: 300;
  line-height: 1;
}
.nsh-promo-rate__mark::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 86vw;
  max-width: 820px;
  height: 1px;
  background: #cfd6dd;
  z-index: -1;
}

.nsh-promo-rate__text {
  margin: 0;
  color: var(--wp--preset--color--accent-1, #236d9f);
  font-size: clamp(1.7rem, 4.6vw, 3.4rem);
  font-weight: 800;
  line-height: 1.05;
}

.nsh-promo-bluepromo {
  background-color: #0045ae;
  background-image: url(../img/promotions/palm-promo-bg.jpg);
  background-position: top center;
  background-size: 100% auto;
  background-repeat: no-repeat;
  color: var(--wp--preset--color--base, #fff);
  padding: clamp(150px, 30vw, 600px) 24px clamp(48px, 7vw, 96px);
  text-align: center;
}

.nsh-promo-bluepromo__inner {
  max-width: 880px;
  margin: 0 auto;
}
.nsh-promo-bluepromo__inner h2, .nsh-promo-bluepromo__inner h3 {
  margin: 0 0 18px;
  color: var(--wp--preset--color--base, #fff);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.15;
}
.nsh-promo-bluepromo__inner p {
  margin: 0 0 1.1em;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.6;
}
.nsh-promo-bluepromo__inner a {
  color: #cfe3f7;
}
.nsh-promo-bluepromo__inner .nsh-promo-fineprint {
  margin-top: 1.8em;
  font-size: 0.72rem;
  line-height: 1.5;
  opacity: 0.82;
}

/* The homes grid that follows a promotion (any layout): breathing room above the
   "Homes in this offer" header and below the pagination, so it does not crowd the
   section above or sit flush against the footer. */
.nsh-promo-content + .nsh-homes {
  padding-top: clamp(40px, 5vw, 72px);
  padding-bottom: clamp(48px, 6vw, 88px);
}

/* Homes grid sits directly below; give it room on the promotion page. */
body.single-promotion .p7-inventory-homes-block {
  padding: 16px 24px 64px;
}

/* ====================================================== promotion list ===
   DP-5: the grouped, image-less homes list (the promotion-sheet format), used
   when a promotion's Homes display is "Grouped list". Sectioned Area ->
   Community (north to south), homes by price; each row carries plan / homesite
   / address / specs / timing on the left and WAS-NOW price + estimated payment
   on the right. */
.nsh-promo-list {
  background: var(--wp--preset--color--base, #fff);
  padding: clamp(40px, 5vw, 72px) var(--nsh-content-gutter) clamp(48px, 6vw, 88px);
}

.nsh-promo-list__inner {
  max-width: 1100px;
  margin-inline: auto;
}

.nsh-promo-list__area + .nsh-promo-list__area {
  margin-top: clamp(32px, 4vw, 56px);
}

.nsh-promo-list__area-title {
  margin: 0 0 4px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--wp--preset--color--orange, #b69121);
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  font-weight: 800;
  line-height: 1.1;
}

.nsh-promo-list__community {
  margin-top: clamp(20px, 2.6vw, 32px);
}

.nsh-promo-list__community-title {
  margin: 0 0 8px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: clamp(1.1rem, 1.7vw, 1.35rem);
  font-weight: 700;
}

.nsh-promo-list__rows {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid #e3e7eb;
}

.nsh-promo-list__row + .nsh-promo-list__row .nsh-promo-list__link {
  border-top: 1px solid #e3e7eb;
}

.nsh-promo-list__link {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  align-items: baseline;
  justify-content: space-between;
  padding: 14px 8px;
  color: inherit;
  text-decoration: none;
  transition: background-color 0.15s ease;
}
.nsh-promo-list__link:hover, .nsh-promo-list__link:focus-visible {
  background: rgba(0, 103, 177, 0.05);
}

.nsh-promo-list__info {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 14px;
  min-width: 0;
  flex: 1 1 60%;
}

.nsh-promo-list__plan {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 1.05rem;
  font-weight: 700;
  flex: 0 0 100%;
}

.nsh-promo-list__meta,
.nsh-promo-list__specs,
.nsh-promo-list__timing {
  color: #5a6b76;
  font-size: 0.9rem;
}

.nsh-promo-list__timing {
  color: var(--wp--preset--color--accent-1, #236d9f);
  font-weight: 600;
}

.nsh-promo-list__badge {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 8px;
  border-radius: 10px;
  background: #b32d2e;
  color: var(--wp--preset--color--base, #fff);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
}

.nsh-promo-list__pricing {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: 4px 12px;
  flex: 0 0 auto;
  text-align: right;
}

.nsh-promo-list__was {
  color: #5b6671;
  font-size: 0.95rem;
  text-decoration: line-through;
}

.nsh-promo-list__now {
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 1.15rem;
  font-weight: 800;
}

.nsh-promo-list__pay {
  flex: 0 0 100%;
  color: #5a6b76;
  font-size: 0.85rem;
}

/* Sold home: dim the row and strike the live price so it reads as gone, not for sale. */
.nsh-promo-list__row.is-sold .nsh-promo-list__link {
  opacity: 0.62;
}
.nsh-promo-list__row.is-sold .nsh-promo-list__now {
  text-decoration: line-through;
}

.nsh-promo-list__note {
  margin: clamp(24px, 3vw, 40px) 0 0;
  color: #5b6671;
  font-size: 0.78rem;
  line-height: 1.5;
}

@media (max-width: 640px) {
  .nsh-promo-list__link {
    gap: 6px;
  }
  .nsh-promo-list__pricing {
    justify-content: flex-start;
    text-align: left;
    flex: 1 1 100%;
  }
}
/* ====================================================== promotion gate ===
   DP-6: the lead-capture gate. When locked, the homes block is hidden behind a
   teaser (count + a CTA that scrolls to the form already on the page); the gate
   JS reveals the homes once the form is submitted. */
.nsh-promo-gated.is-locked .nsh-promo-gated__content {
  display: none;
}

.nsh-promo-gated.is-unlocked .nsh-promo-gated__teaser {
  display: none;
}

.nsh-promo-gated__teaser {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(36px, 5vw, 64px) var(--nsh-content-gutter);
  text-align: center;
}

.nsh-promo-gated__title {
  margin: 0 0 12px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: clamp(1.5rem, 2.8vw, 2.2rem);
  font-weight: 800;
  line-height: 1.1;
}

.nsh-promo-gated__copy {
  margin: 0 auto clamp(20px, 3vw, 28px);
  max-width: 56ch;
  color: #5a6b76;
  font-size: clamp(1rem, 1.4vw, 1.12rem);
  line-height: 1.6;
}

.nsh-promo-gated__cta {
  display: inline-block;
  padding: 14px 30px;
  border-radius: 4px;
  background: var(--wp--preset--color--orange, #b69121);
  color: var(--wp--preset--color--base, #fff);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: filter 0.15s ease;
}
.nsh-promo-gated__cta:hover, .nsh-promo-gated__cta:focus-visible {
  filter: brightness(0.92);
}

/* ============================================ promotion print sheet (DP-7) ===
   "Print" (or "Save as PDF") on a promotion landing produces a clean inventory
   sheet: drop the site chrome, hero, forms and gate teaser, and lay the grouped
   homes list (DP-5) out in plain black on white with the legal fine print kept.
   The browser puts the page <title> and date in the print header/footer. */
@media print {
  body.single-promotion {
    /* A gated list prints in full (staff print after unlocking, or for internal use). */
    /* Keep a community block and each row intact across page breaks. */
  }
  body.single-promotion .nsh-header,
  body.single-promotion .nsh-footer,
  body.single-promotion #wpadminbar,
  body.single-promotion .nsh-promo-content,
  body.single-promotion .nsh-promo-hero,
  body.single-promotion .nsh-promo-form,
  body.single-promotion .nsh-promo-rate,
  body.single-promotion .nsh-promo-bluepromo,
  body.single-promotion .nsh-loc-inquiry,
  body.single-promotion .nsh-promo-gated__teaser {
    display: none !important;
  }
  body.single-promotion .nsh-promo-gated.is-locked .nsh-promo-gated__content {
    display: block !important;
  }
  body.single-promotion .nsh-promo-list {
    padding: 0 !important;
    color: #000;
  }
  body.single-promotion .nsh-promo-list__inner {
    max-width: none;
  }
  body.single-promotion .nsh-promo-list__area-title,
  body.single-promotion .nsh-promo-list__community-title,
  body.single-promotion .nsh-promo-list__plan,
  body.single-promotion .nsh-promo-list__now {
    color: #000;
  }
  body.single-promotion .nsh-promo-list__area-title {
    border-bottom-color: #000;
  }
  body.single-promotion .nsh-promo-list__link {
    color: #000;
  }
  body.single-promotion .nsh-promo-list__community,
  body.single-promotion .nsh-promo-list__row {
    break-inside: avoid;
  }
  body.single-promotion .nsh-promo-list__area-title,
  body.single-promotion .nsh-promo-list__community-title {
    break-after: avoid;
  }
  body.single-promotion .nsh-promo-disclaimer {
    font-size: 9px;
  }
}
/* ================================================================= page ===
   Was gutenverse/wrapper (no-margin) wrapping a constrained, full-width
   post-content. The core/group + constrained post-content reproduce that;
   nothing extra required. */
.nsh-page-content {
  background: var(--wp--preset--color--base, #fff);
}

/* All Communities intro: the heading + paragraphs above the grid are plain core
   blocks, and theme.json sets contentSize=100%, so they span full width. Pin them
   to the same max-width/padding as .nsh-loc-communities so the copy and cards share
   one centered column. */
.page-all-communities .wp-block-group:has(> h2):has(+ .nsh-loc-communities) {
  box-sizing: border-box;
  max-width: 1200px;
  margin-inline: auto;
  margin-bottom: clamp(28px, 4vw, 44px);
  padding-inline: 24px;
  text-align: center;
}

/* ====================================================== marketing pages ===
   The About-Neal-nav marketing pages migrated off Gutenverse (see
   includes/nsh-marketing-reseed.php) wrap their content in this group. The legacy
   pages got their horizontal inset from Gutenverse section padding, which the
   transform strips; re-apply the shared content gutter here so the content sits in
   the centered column instead of flush against the viewport edge. */
.nsh-marketing-page {
  box-sizing: border-box;
  padding-inline: var(--nsh-content-gutter);
  padding-block: 0 clamp(2rem, 5vw, 4rem);
  /* Comfortable vertical rhythm between the top-level sections. */
  /* The hero (a top-level cover) bleeds full width — pull it back out of the content
     gutter to the viewport edges, while the text/form sections below keep the gutter. */
  /* Typographic rhythm: the stripped Gutenverse blocks left headings, copy and the
     form butting together. Restore comfortable spacing below headings and paragraphs. */
  /* The form sits a little further below its intro copy, and its fields get room. */
  /* CTA: the brand "boxy" button — square, white fill, brand-blue outline + BOLD
     text (matching the legacy Click-to-call), spaced below the copy above it. The
     orange Gravity Forms submit button is unaffected (it is not a core button). */
  /* Phone glyph before the "Click to call" CTA (legacy). Drawn in the button's own
     colour (a mask), so it flips to white on hover along with the label. */
  /* The form-column heading reads as a small uppercase sans label (legacy), distinct
     from the serif section headings beside it. */
  /* "Warranty Highlights" coverage table now lives at file scope (.nsh-coverage,
     just below) so it can be reused OUTSIDE .nsh-marketing-page — e.g. the Why-Neal
     two-column warranty band (.nsh-why-warranty). */
}
.nsh-marketing-page > * + * {
  margin-top: clamp(1.5rem, 3.5vw, 2.5rem);
}
.nsh-marketing-page > .wp-block-cover {
  margin-inline: calc(-1 * var(--nsh-content-gutter));
}
.nsh-marketing-page h1, .nsh-marketing-page h2, .nsh-marketing-page h3, .nsh-marketing-page h4 {
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0.5em;
}
.nsh-marketing-page p {
  line-height: 1.6;
  margin-top: 0;
  margin-bottom: 1em;
}
.nsh-marketing-page .wp-block-column .gform_wrapper,
.nsh-marketing-page .wp-block-column .gform-body,
.nsh-marketing-page .gform_wrapper {
  margin-top: 1.25rem;
}
.nsh-marketing-page .wp-block-buttons {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}
.nsh-marketing-page .wp-block-button__link {
  border-radius: 0;
  padding: 14px 28px;
  font-weight: 700;
  background-color: var(--wp--preset--color--base, #fff);
  color: #236d9f;
  border: 1px solid #236d9f;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.nsh-marketing-page .wp-block-button__link:hover, .nsh-marketing-page .wp-block-button__link:focus-visible {
  background-color: #236d9f;
  color: var(--wp--preset--color--base, #fff);
}
.nsh-marketing-page .wp-block-button__link[href^="tel:"] {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.nsh-marketing-page .wp-block-button__link[href^="tel:"]::before {
  content: "";
  flex: 0 0 auto;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24 11.36 11.36 0 0 0 3.57.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.24 1.02l-2.21 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24 11.36 11.36 0 0 0 3.57.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.24 1.02l-2.21 2.2z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.nsh-marketing-page .nsh-form-heading {
  font-family: var(--wp--preset--font-family--gotham, inherit);
  text-transform: uppercase;
  font-size: 1.05rem;
  letter-spacing: 0.02em;
}

/* ============================================== Blog intro ("Front Porch") ===
   On the Blog page the full-bleed post-hero is a SIBLING directly above the
   .nsh-marketing-page wrapper (the heading + intro copy), and that wrapper has no top
   padding (padding-block: 0 ...), so the "Welcome to the Front Porch" heading butted
   straight against the hero with no breathing room. Give it top space and center the
   copy into a comfortable intro column. Scoped via the adjacency — a post-hero only
   precedes a marketing-page on the Blog. */
.nsh-posthero + .nsh-marketing-page {
  padding-top: clamp(2.5rem, 6vw, 4.5rem);
}
.nsh-posthero + .nsh-marketing-page > p {
  max-width: 60rem;
  margin-inline: auto;
  text-align: center;
}

/* ====================================================== coverage table ===
   A brand-blue header bar over label / description rows, separated by thin white
   gridlines (the legacy "Warranty Highlights" / funding charges table card). File
   scope so any page can use it. */
.nsh-coverage {
  display: grid;
  gap: 3px;
  background: var(--wp--preset--color--base, #fff);
  margin: 0.25rem 0 1.25rem;
}

.nsh-coverage__head {
  padding: 14px 16px;
  background: #236d9f;
  color: var(--wp--preset--color--base, #fff);
  font-weight: 700;
  text-align: center;
  font-size: 1.05rem;
}

.nsh-coverage__row {
  display: grid;
  grid-template-columns: minmax(110px, 0.4fr) 1fr;
  gap: 3px;
}

.nsh-coverage__label {
  display: flex;
  align-items: center;
  padding: 14px 16px;
  background: #236d9f;
  color: var(--wp--preset--color--base, #fff);
  font-weight: 700;
  line-height: 1.25;
}

.nsh-coverage__desc {
  display: flex;
  align-items: center;
  padding: 14px 16px;
  background: #e8f1f9;
  color: var(--wp--preset--color--contrast, #0c3554);
  line-height: 1.4;
}

/* Balanced 50/50 columns for tables with long labels + a two-cell header row
   (e.g. the funding "Description of Standard Loan Services" charges table). */
.nsh-coverage--even .nsh-coverage__row {
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 600px) {
  .nsh-coverage__row,
  .nsh-coverage--even .nsh-coverage__row {
    grid-template-columns: 1fr;
  }
}
/* ================================================ Why-Neal warranty band ===
   The legacy two-column "We're With You. Even After Move-In." section: a text
   column (navy serif heading, a blue uppercase sub-label, copy and a solid-blue
   CTA) beside the coverage table. A standalone group at the document root, so it
   provides its own content gutter + rhythm (it is not inside .nsh-marketing-page). */
.nsh-why-warranty {
  box-sizing: border-box;
  padding: clamp(2rem, 5vw, 4rem) var(--nsh-content-gutter);
  /* The "PEACE OF MIND FOR YOUR NEW HOME" sub-label: small blue uppercase. */
  /* Solid-blue CTA (matches the legacy Why-Neal buttons). */
}
.nsh-why-warranty .wp-block-columns {
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
@media (max-width: 1023.98px) {
  .nsh-why-warranty .wp-block-columns {
    gap: 28px;
  }
}
.nsh-why-warranty h2 {
  margin: 0 0 0.5rem;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: "Vollkorn", Georgia, serif;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.12;
}
.nsh-why-warranty h3 {
  margin: 0 0 1rem;
  color: #236d9f;
  font-family: var(--wp--preset--font-family--gotham, inherit);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.nsh-why-warranty p {
  margin: 0 0 1rem;
  color: var(--wp--preset--color--contrast, #0c3554);
  line-height: 1.6;
}
.nsh-why-warranty .wp-block-buttons {
  margin-top: 1.5rem;
}
.nsh-why-warranty .wp-block-button__link {
  display: inline-block;
  border-radius: 0;
  padding: 14px 30px;
  font-weight: 700;
  background-color: #236d9f;
  border: 2px solid #236d9f;
  color: var(--wp--preset--color--base, #fff);
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.nsh-why-warranty .wp-block-button__link:hover, .nsh-why-warranty .wp-block-button__link:focus-visible {
  background-color: #00558f;
  border-color: #00558f;
}

/* Home (front page) section rhythm. The re-seed composes the page from nsh/* blocks
   (hero, search, map, video gallery, Browse Homes, feature banners, parallax,
   testimonials) that each zero their own margins, so with the old Gutenverse spacers
   gone the sections butt together — the "Show more homes" button lands on the feature
   banners, the banners merge into the parallax band, etc. Add a consistent vertical
   gap between the top-level sections. Scoped to the front page so other pages (which
   reuse .wp-block-post-content) are untouched; the hero (first child) keeps no top
   margin. */
.home .nsh-page-content .wp-block-post-content > * + * {
  margin-top: clamp(2.75rem, 5vw, 4rem);
}

/* The "Find Your Dream Home" search band is a tight rule-and-bar, not a full section:
   the generic 64px rhythm plus the section's own 44px padding stacked ~108px of air
   above and below it. Pull it close under the hero and just above the map it introduces,
   like the legacy band. Scoped to the home so the search RESULTS page keeps its padding.
   These beat the `> * + *` rule above (4 classes vs 3) and the block's own .nsh-search. */
.home .nsh-page-content .wp-block-post-content > .nsh-search {
  margin-top: clamp(1.5rem, 3vw, 2rem);
  padding-top: 8px;
  padding-bottom: 8px;
}

.home .nsh-page-content .wp-block-post-content > .nsh-communities-map {
  margin-top: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* Designed nsh/* pages other than the home (e.g. About Neal): the composed full-bleed
   sections each zero their own margins, so without spacers they butt together — and a
   parallax band fills its bottom padding with its own photo, leaving no breath before
   the next section. Add section rhythm. Scoped via :has() to a post-content that holds
   nsh/* bands, so plain text pages (whose children are paragraphs) are untouched; the
   home uses nsh/parallax (not an nsh/* band) and keeps its own tighter rhythm above. */
.nsh-page-content .wp-block-post-content:has(> .nsh-band) > * + * {
  margin-top: clamp(2.5rem, 5vw, 4rem);
}

/* ============================================================ locations ===
   The whole location post used a gutenverse/wrapper shell. Now a plain
   core/group; just paint it white so the sticky bar reads cleanly. */
.nsh-loc {
  background: var(--wp--preset--color--base, #fff);
}

/* Vertical rhythm for the rebuilt location body. The clean nsh/* composition
   (nsh/location-hero -> centered heading -> nsh/communities-map ->
   nsh/location-communities) stacks through post-content's is-layout-flow, but each
   nsh/* block zeros its own margins, so without the old Gutenverse spacers the
   full-bleed hero/map butt straight against the heading and grid. Restore the
   spacing here. Scoped to the rebuilt body: the heading is the single centered
   <h2> (grid cards use .nsh-loc-card__title, not .wp-block-heading), so the
   direct-child selectors only touch the four top-level sections. */
.nsh-loc .entry-content {
  /* "Neal Signature Homes in <Area>": breathe below the hero, sit just above the
     map it titles. */
  /* The community-card grid: clear the full-bleed map above and the footer below. */
}
.nsh-loc .entry-content > .wp-block-heading {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}
.nsh-loc .entry-content > .nsh-loc-communities {
  margin-top: clamp(2.75rem, 5vw, 4rem);
  margin-bottom: clamp(2.75rem, 5vw, 4rem);
}

/* A location with only ONE community (e.g. Naples -> Skysail): centre the lone
   card on desktop instead of stranding it in the left column of the 3-up grid
   (.nsh-loc-cards is `repeat(3, 1fr)`). Below 900px the grid is already one centred
   column, so this only needs the desktop range. */
@media (min-width: 901px) {
  .nsh-loc-cards:has(.nsh-loc-card:only-child) {
    grid-template-columns: minmax(0, 380px);
    justify-content: center;
  }
}
/* The leading spacer (was gutenverse/spacer: 100px desktop, 107 tablet,
   90 mobile, base/white bg). core/spacer renders the desktop height inline;
   tighten the responsive heights here. */
.nsh-loc-spacer {
  background: var(--wp--preset--color--base, #fff);
}
@media (max-width: 1023.98px) {
  .nsh-loc-spacer {
    height: 90px !important;
  }
}
@media (min-width: 1024px) and (max-width: 1250px) {
  .nsh-loc-spacer {
    height: 107px !important;
  }
}

/* --------------------------------------------------------------- nav bar ---
   The sticky "Location Navigation" bar. Was a boxed gutenverse/container
   (sticky topSticky 30px, z 100, boxed 1920, white bg, brand-blue box-shadow,
   10px/60px padding, 10px bottom margin). The site header is itself sticky, so
   this bar parks 30px below it. Keeps the legacy `community_menu` class. */
.nsh-loc-nav {
  position: sticky;
  top: 30px;
  z-index: 100;
  width: 100%;
  margin: 0 0 10px;
  padding: 10px var(--nsh-content-gutter);
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 1px 5px 0 rgba(42, 95, 158, 0.3);
  /* On mobile the bar releases and stacks (title over the link row). */
}
@media (max-width: 1250px) {
  .nsh-loc-nav {
    padding-inline: 30px;
  }
}
@media (max-width: 1023.98px) {
  .nsh-loc-nav {
    position: static;
    top: auto;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px 20px;
  }
}

/* LEFT — location title (h1 via p7/postmeta, 28px). Was a 30%-wide container. */
.nsh-loc-nav__left {
  flex: 0 1 30%;
  min-width: 0;
}
.nsh-loc-nav__left .m-0 {
  margin: 0;
}
.nsh-loc-nav__left h1 {
  margin: 0;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 28px;
  line-height: 1.15;
}
@media (max-width: 1023.98px) {
  .nsh-loc-nav__left {
    flex: 1 1 100%;
  }
  .nsh-loc-nav__left h1 {
    font-size: 22px;
  }
}

/* RIGHT — the location nav menu. Was a 70%-wide container holding the classic
   nav-menu (alignment space-between). */
.nsh-loc-nav__right {
  flex: 1 1 70%;
  min-width: 0;
}

/* The menu itself (was gutenverse/nav-menu, id 8): uppercase bold Gotham,
   ~0.875rem, navy text → orange on hover/active, items spread space-between. */
.nsh-loc-menu {
  /* Tablet: tighten the rhythm (item spacing was 7px there). */
  /* Mobile: the items wrap into a left-aligned cluster under the title. */
}
.nsh-loc-menu .nsh-loc-menu__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nsh-loc-menu li {
  margin: 0;
}
.nsh-loc-menu a {
  display: inline-block;
  padding: 5px 10px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: "Gotham", sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  text-decoration: none;
}
.nsh-loc-menu a:hover, .nsh-loc-menu a:focus-visible, .nsh-loc-menu a[aria-current] {
  color: var(--wp--preset--color--orange, #b69121);
}
@media (max-width: 1250px) {
  .nsh-loc-menu a {
    padding: 7px;
    font-size: 0.8125rem;
  }
}
@media (max-width: 1023.98px) {
  .nsh-loc-menu .nsh-loc-menu__list {
    justify-content: flex-start;
    gap: 4px 8px;
  }
  .nsh-loc-menu a {
    padding: 5px 0;
    font-size: 1rem;
  }
}

/* ---------------------------------------------------- Where We Build page --- */
/* /where-we-build/ (body.nsh-wwb) is a flat stack of nsh/* components. Two bits of
   page-level chrome are plain page content (not nsh/* blocks) and need matching to the
   legacy design: the "Neal Community:" section label (core/heading) and the region
   jump-nav (core/navigation .locations_nav). Both were unstyled/full-bleed. */
.nsh-wwb main .wp-block-heading {
  max-width: 1280px;
  margin: clamp(40px, 5vw, 60px) auto 18px;
  padding: 0 24px;
  color: var(--wp--preset--color--contrast, #0c3554);
  font-family: "Vollkorn", Georgia, serif;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 400;
  text-transform: uppercase;
}
.nsh-wwb main .locations_nav {
  max-width: 1280px !important;
  margin: 16px auto;
  padding: 0 24px;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.nsh-wwb main .locations_nav a {
  display: inline-block;
  padding: 8px 16px;
  border: 1px solid var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.nsh-wwb main .locations_nav a:hover,
.nsh-wwb main .locations_nav a:focus-visible {
  background: var(--wp--preset--color--contrast, #0c3554);
  color: #fff;
}

.nsh-404 {
  position: relative;
  overflow: hidden;
  background: #fff;
  padding-block: clamp(3.5rem, 9vw, 7rem);
  padding-inline: clamp(1.25rem, 5vw, 2rem);
  text-align: center;
}

.nsh-404__inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin-inline: auto;
  animation: nsh-404-rise 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.nsh-404__mark {
  display: block;
  font-family: Vollkorn, serif;
  font-weight: 600;
  font-size: clamp(5rem, 16vw, 8.5rem);
  line-height: 0.85;
  letter-spacing: -0.02em;
  color: #d6e4f3;
  user-select: none;
  margin-bottom: clamp(0.5rem, 2vw, 1rem);
}

.nsh-404__title {
  margin: 0 0 0.6em;
  font-family: Vollkorn, serif;
  font-weight: 600;
  font-size: clamp(1.9rem, 4.5vw, 2.8rem);
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--wp--preset--color--contrast, #0c3554);
  text-wrap: balance;
}

.nsh-404__lead {
  max-width: 56ch;
  margin: 0 auto;
  font-family: Gotham, sans-serif;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.6;
  color: #3a4b56;
  text-wrap: pretty;
}

.nsh-404__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: clamp(1.75rem, 4vw, 2.5rem);
}

.nsh-404__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: Gotham, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  line-height: 1;
  padding: 0.95em 1.7em;
  border: 1.5px solid transparent;
  border-radius: 4px;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.nsh-404__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent-1, #236d9f);
  outline-offset: 3px;
}
.nsh-404__btn--primary {
  background: var(--wp--preset--color--orange, #b69121);
  border-color: var(--wp--preset--color--orange, #b69121);
  color: #fff;
}
.nsh-404__btn--primary:hover, .nsh-404__btn--primary:focus-visible {
  background: #fff;
  color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  border-color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(6, 37, 55, 0.16);
}
.nsh-404__btn--ghost {
  background: transparent;
  border-color: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-404__btn--ghost:hover, .nsh-404__btn--ghost:focus-visible {
  background: var(--wp--preset--color--contrast, #0c3554);
  color: #fff;
  transform: translateY(-1px);
}

.nsh-404__communities {
  margin-top: clamp(2.5rem, 6vw, 3.5rem);
  padding: clamp(1.5rem, 4vw, 2.25rem);
  background: var(--wp--preset--color--accent-2, #edf3f7);
  border-radius: 12px;
}

.nsh-404__communities-label {
  margin: 0 0 1rem;
  font-family: Gotham, sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--wp--preset--color--contrast, #0c3554);
}

.nsh-404__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nsh-404__chips a {
  display: inline-block;
  padding: 0.5em 1.05em;
  font-family: Gotham, sans-serif;
  font-size: 0.9rem;
  color: var(--wp--preset--color--contrast, #0c3554);
  background: #fff;
  border: 1px solid #c9d8ea;
  border-radius: 999px;
  text-decoration: none;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.nsh-404__chips a:hover, .nsh-404__chips a:focus-visible {
  background: var(--wp--preset--color--accent-1, #236d9f);
  border-color: var(--wp--preset--color--accent-1, #236d9f);
  color: #fff;
}
.nsh-404__chips a:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #0c3554);
  outline-offset: 2px;
}

@keyframes nsh-404-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nsh-404__inner {
    animation: none;
  }
}
.nsh-mn--reset {
  display: flex;
  justify-content: center;
  padding: clamp(48px, 8vw, 96px) 20px;
  background: #f7f7f7;
}
.nsh-mn-reset__card {
  padding: clamp(24px, 5vw, 40px);
  height: auto;
}
.nsh-mn-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: clamp(220px, 34vw, 380px);
  background: var(--wp--preset--color--contrast, #0c3554);
  overflow: hidden;
}
.nsh-mn-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.nsh-mn-hero__title {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0 0 clamp(20px, 3vw, 36px) clamp(20px, 5vw, 64px);
  font-family: Vollkorn, serif;
  font-size: clamp(34px, 5vw, 54px);
  font-weight: 500;
  color: var(--wp--preset--color--base, #fff);
  text-shadow: 0 2px 18px rgba(6, 37, 55, 0.55);
}
.nsh-mn-hero--plain .nsh-mn-hero__title {
  text-shadow: none;
}
.nsh-mn-body {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: clamp(24px, 4vw, 56px);
  width: min(1200px, 100% - 40px);
  margin: clamp(28px, 4vw, 48px) auto clamp(48px, 6vw, 80px);
}
@media (max-width: 900px) {
  .nsh-mn-body {
    grid-template-columns: 1fr;
  }
}
.nsh-mn-nav__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid #e3e7eb;
  border-radius: 8px;
  background: var(--wp--preset--color--base, #fff);
  overflow: hidden;
}
@media (max-width: 900px) {
  .nsh-mn-nav__list {
    display: none;
  }
}
.nsh-mn-nav__link {
  display: block;
  width: 100%;
  padding: 13px 18px;
  border: 0;
  border-left: 3px solid transparent;
  background: none;
  font-size: 14.5px;
  text-align: left;
  text-decoration: none;
  color: #5a6b76;
  cursor: pointer;
}
.nsh-mn-nav__link:hover {
  background: #f7f7f7;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-nav__link.is-active {
  border-left-color: var(--wp--preset--color--orange, #b69121);
  background: var(--wp--preset--color--accent-2, #edf3f7);
  font-weight: 700;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-nav__item--logout {
  border-top: 1px solid #e3e7eb;
}
.nsh-mn-nav__select-wrap {
  display: none;
}
@media (max-width: 900px) {
  .nsh-mn-nav__select-wrap {
    display: block;
  }
}
.nsh-mn-nav__select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d3d8dd;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--wp--preset--color--contrast, #0c3554);
  background: var(--wp--preset--color--base, #fff);
}
.nsh-mn-title {
  margin: 0 0 10px;
  font-family: Vollkorn, serif;
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 500;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-lede {
  max-width: 640px;
  margin: 0 0 28px;
  font-size: 14.5px;
  line-height: 1.65;
  color: #5b6671;
}
.nsh-mn-subtitle {
  margin: 34px 0 16px;
  font-family: Vollkorn, serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-empty {
  max-width: 560px;
  margin: 0 0 18px;
  font-size: 14px;
  line-height: 1.6;
  color: #5b6671;
}
.nsh-mn-cta {
  margin: 0 0 8px;
}
.nsh-mn-btn {
  display: inline-block;
  padding: 12px 26px;
  border: 1px solid var(--wp--preset--color--custom-color-2, #1d5c8c);
  border-radius: 4px;
  background: var(--wp--preset--color--custom-color-2, #1d5c8c);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease;
}
.nsh-mn-btn:hover {
  background: var(--wp--preset--color--contrast, #0c3554);
  border-color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-btn:disabled {
  opacity: 0.55;
  cursor: default;
}
.nsh-mn-btn--ghost {
  background: transparent;
  color: var(--wp--preset--color--custom-color-2, #1d5c8c);
}
.nsh-mn-btn--ghost:hover {
  background: var(--wp--preset--color--custom-color-2, #1d5c8c);
  color: var(--wp--preset--color--base, #fff);
}
.nsh-mn-cards-wrap {
  position: relative;
}
.nsh-mn-cards {
  display: flex;
  flex-wrap: nowrap;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  padding-bottom: 8px;
}
.nsh-mn-cards > .nsh-pcard,
.nsh-mn-cards > .nsh-mn-cmp {
  flex: 0 0 min(300px, 78vw);
  box-sizing: border-box;
  min-width: 0;
  scroll-snap-align: start;
}
.nsh-mn-cards.nsh-loc-cards {
  margin: 0;
  padding: 0 0 8px;
}
.nsh-mn-cards.nsh-loc-cards > .nsh-loc-card {
  flex: 0 0 min(300px, 78vw);
  max-width: none;
}
.nsh-mn-scrollbtn {
  position: absolute;
  top: 34%;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #0c3554);
  box-shadow: 0 1px 6px rgba(6, 37, 55, 0.3);
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease;
}
.nsh-mn-scrollbtn:hover {
  background: var(--wp--preset--color--contrast, #0c3554);
  color: var(--wp--preset--color--base, #fff);
}
.nsh-mn-scrollbtn:disabled {
  opacity: 0;
  pointer-events: none;
}
.nsh-mn-scrollbtn--prev {
  left: -14px;
}
.nsh-mn-scrollbtn--next {
  right: -14px;
}
@media (max-width: 640px) {
  .nsh-mn-scrollbtn {
    display: none;
  }
}
.nsh-mn-group {
  margin: 0 0 34px;
}
.nsh-mn-group__title {
  margin: 0 0 16px;
  font-family: Vollkorn, serif;
  font-size: 20px;
  font-weight: 500;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-subtabs {
  display: flex;
  gap: 26px;
  margin: 0 0 26px;
  border-bottom: 1px solid #e3e7eb;
}
.nsh-mn-subtab {
  padding: 0 2px 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: none;
  font-size: 14px;
  font-weight: 600;
  color: #5a6b76;
  cursor: pointer;
}
.nsh-mn-subtab:hover {
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-subtab.is-active {
  border-bottom-color: var(--wp--preset--color--orange, #b69121);
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-cmp {
  position: relative;
}
.nsh-mn-cmp .nsh-loc-card,
.nsh-mn-cmp .nsh-pcard {
  flex-basis: 100%;
  max-width: 100%;
  width: 100%;
}
.nsh-mn-cmp__pick {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 1px 4px rgba(6, 37, 55, 0.22);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast, #0c3554);
  cursor: pointer;
  user-select: none;
}
.nsh-mn-cmp__pick input {
  margin: 0;
  accent-color: var(--wp--preset--color--custom-color-2, #1d5c8c);
}
.nsh-mn-cmp__pick input:disabled {
  accent-color: var(--wp--preset--color--accent-3, #e9e9e9);
}
.nsh-mn-cmp.is-picked {
  outline: 2px solid var(--wp--preset--color--custom-color-2, #1d5c8c);
  outline-offset: 2px;
  border-radius: 4px;
}
.nsh-mn-cmp-actions {
  margin-top: 26px;
  text-align: center;
}
.nsh-mn-cmp-back {
  padding: 0;
  border: 0;
  background: none;
  font-size: 14px;
  font-weight: 600;
  color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.nsh-mn-cmp-back:hover {
  color: var(--wp--preset--color--orange, #b69121);
}
.nsh-mn-table {
  border: 1px solid #e3e7eb;
  border-radius: 8px;
  background: var(--wp--preset--color--base, #fff);
  overflow: hidden;
}
.nsh-mn-table__row {
  display: grid;
  grid-template-columns: 160px 1fr 1fr;
  border-top: 1px solid #e3e7eb;
}
.nsh-mn-table__row:first-child {
  border-top: 0;
}
@media (max-width: 640px) {
  .nsh-mn-table__row {
    grid-template-columns: 110px 1fr 1fr;
  }
}
.nsh-mn-table__label {
  display: flex;
  align-items: center;
  padding: 14px 16px;
  background: #f7f7f7;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #5a6b76;
}
.nsh-mn-table__cell {
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-content: center;
  padding: 14px 16px;
  border-left: 1px solid #e3e7eb;
  font-size: 14.5px;
  color: #10222e;
}
.nsh-mn-table__cell img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
}
.nsh-mn-table__cell--head {
  align-items: flex-start;
  justify-content: flex-start;
}
.nsh-mn-table__cell--head img {
  max-height: 180px;
  object-fit: cover;
}
.nsh-mn-table__name {
  margin: 0;
  font-family: Vollkorn, serif;
  font-size: 20px;
  font-weight: 500;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-table__type {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #5a6b76;
}
.nsh-mn-table__link {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.nsh-mn-table__link:hover {
  color: var(--wp--preset--color--orange, #b69121);
}
.nsh-mn-account {
  max-width: 560px;
}
.nsh-mn-account__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}
@media (max-width: 560px) {
  .nsh-mn-account__row {
    grid-template-columns: 1fr;
  }
}
.nsh-mn-account__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 16px;
}
.nsh-mn-account__field span {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #5a6b76;
}
.nsh-mn-account__field span em {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: #5b6671;
}
.nsh-mn-account__field input {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid #d3d8dd;
  border-radius: 6px;
  font-size: 15px;
  color: #10222e;
  background: var(--wp--preset--color--base, #fff);
}
.nsh-mn-account__field input:focus {
  border-color: var(--wp--preset--color--custom-color-2, #1d5c8c);
  outline: 2px solid rgba(42, 95, 158, 0.25);
  outline-offset: 0;
}
.nsh-mn-account__pw {
  margin: 8px 0 20px;
  padding: 16px 18px 4px;
  border: 1px solid #e3e7eb;
  border-radius: 8px;
}
.nsh-mn-account__pw legend {
  padding: 0 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-account__pw legend em {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: #5b6671;
}
.nsh-mn-account__msg {
  margin: 0 0 16px;
  padding: 11px 15px;
  border-radius: 6px;
  background: var(--wp--preset--color--accent-2, #edf3f7);
  font-size: 14px;
  color: var(--wp--preset--color--contrast, #0c3554);
}
.nsh-mn-account__msg.is-error {
  background: #fdecea;
  color: #c0341d;
}
