﻿@charset "UTF-8";

:root {
  /* ── Layout ──────────────────────────────────────────────────────────────── */
  /* 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. */
  --sd-content-gutter: max(60px, calc((100% - 1920px) / 2 + 60px));
  --sd-content-gutter-block: max(100px, calc((100% - 1920px) / 2 + 100px));

  /* 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. */

  /* ── Brand colours ───────────────────────────────────────────────────────── */
  --sd-color-dark: #1f242e;
  /* dark section background / primary dark  */
  --sd-color-orange: #d46f35;
  /* brand orange                            */
  --sd-color-gold: #e2bb61;
  /* brand gold                              */
  --sd-color-muted: #c8c8c8;
  /* body text on dark backgrounds           */
  --sd-color-white: #ffffff;
  --sd-color-gray: #686868;
  --sd-color-light-gray: #dddddd;
  --sd-color-blue: #DCA23B;
  --sd-color-brand-blue: #2a5f9e;

  /* ── Brand gradients ─────────────────────────────────────────────────────── */
  --sd-gradient-brand: linear-gradient(90deg, #d46f35 0%, #e2bb61 100%);
  --sd-gradient-brand-v: linear-gradient(180deg, #d46f35 0%, #e2bb61 100%);

  /* ── Typography ──────────────────────────────────────────────────────────── */
  --sd-font-display: 'Lexend', sans-serif;
  --sd-font-body: 'Lexend', sans-serif;
}

@media (max-width: 1023.98px) {
  :root {
    --sd-content-gutter: 30px;
  }
}

@media (max-width: 640px) {
  :root {
    --sd-content-gutter: 20px;
  }
}

.wp-site-blocks {
  overflow-x: clip;
}

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

: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{
    scroll-behavior: smooth;
}
html body {
  font-family: 'Lexend', sans-serif;
  font-size: 16px;
  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;
  padding: 30px 0px !important;
}

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

/* Brand the Gravity Forms submit buttons to the brand blue (#2a5f9e) 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: #2a5f9e !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: #2a5f9e !important;
  border-color: #2a5f9e !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: #171412 !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: #d46f35 !important;
  border-color: #d46f35 !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, #1F242E);
  padding: 8px 15px;
  cursor: pointer !important;
}

ul.locations_nav li a:hover {
  background-color: var(--wp--preset--color--contrast, #1F242E);
  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, #1F242E);
}

.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;
} */

footer {
  background-color: var(--wp--preset--color--contrast);
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: clamp(48px, 9vw, 120px) clamp(24px, 6vw, 120px);
}

footer a{
  text-decoration: none;
}
footer a:hover{
  text-decoration: underline;
  color: #e07b2a;
}
footer ul li a:hover{
  text-decoration: underline;
  color: #e07b2a !important;
}

@media screen and (max-width: 767px) {
  .no-border-mobile{
    border: none;
  }
  .no-gap-mobile{
    row-gap: 0px;
  }
  .order-1-mobile{
    order: 1;
  }
  .order-2-mobile{
    order: 2;
  }
  .peak7-footer-copy{
    margin-top: 20px !important;
    text-align: center;
    width: 100%;
  }
}
/* .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, #d46f35);
} */

/* 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: 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, #d46f35);
}

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

.shrink .header-wrapper {
  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;
} */


header:has(.sd-navbar--light){
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  padding: clamp(20px, 9vw, 30px) clamp(24px, 6vw, 120px);
  /* Always-on scrim: keeps the white nav legible over a dark hero OR a light
     section, while still reading as a transparent overlay (fades to clear). Pinned
     (fixed) so the navbar stays visible at every scroll position, not only once the
     .shrink class adds a background. */
  background: linear-gradient(180deg, rgba(31, 36, 46, 0.55) 0%, rgba(31, 36, 46, 0) 100%);
  transition: all 0.3s ease !important;
  box-sizing: border-box;

}

header.shrink:has(.sd-navbar--light){
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  padding: 14px clamp(24px, 6vw, 120px);
  background: rgba(31, 36, 46,0.7);
  transition: all 0.3s ease !important;
  box-shadow: 0px 1px 2px 0px #00000026;
  backdrop-filter: blur(10px);
}

header:has(.sd-navbar--dark){
  width: 100%;
  z-index: 10;
  padding: clamp(20px, 9vw, 30px) clamp(24px, 6vw, 120px);
  transition: all 0.3s ease !important;
  box-sizing: border-box;
  background-color: #F6F4EE;
  box-shadow: 0px 1px 2px 0px #00000026;

}

header.shrink:has(.sd-navbar--dark){
  position: fixed;
  z-index: 9999;
  top: 0;
  padding: 14px clamp(24px, 6vw, 120px);
  background-color: rgba(255, 255, 255,0.7);
  transition: all 0.3s ease !important;
  backdrop-filter: blur(10px);
}

@media screen and (max-width: 480px) {
  header .logo img{
    max-width: 70%;
  }
}


/* .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, #d46f35);
}

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

.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, #d46f35);
}

.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, #d46f35);
}

.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, #d46f35);
  padding: 0px 20px;
  line-height: 36px;
  font-size: 14px;
  font-weight: bold;
  color: #fff;
  border: 1px solid var(--wp--preset--color--orange, #d46f35);
  text-align: center;
}

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

#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, #d46f35) !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;
} */

.sd-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, #1F242E);
}

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

.sd-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. */
.sd-proximity-row {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px;
}

.sd-proximity-row:last-child {
  margin-bottom: 0;
}

.sd-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, #1F242E);
}

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

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

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

.sd-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);
}

.sd-proximity-tile--noimg {
  background: linear-gradient(135deg, #0b3a5b, var(--wp--preset--color--contrast, #1F242E));
}

.sd-proximity-tile--noimg .sd-proximity-tile__caption {
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem;
  background: none;
}

@media (max-width: 680px) {
  .sd-proximity-tile {
    width: clamp(150px, 42vw, 200px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .sd-proximity-tile__img {
    transition: none;
  }
}

.sd-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, #1F242E);
}

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

.sd-amenities-row {
  list-style: none;
  margin: 0 0 15px;
  padding: 0;
  display: flex;
  gap: 15px;
  min-height: clamp(300px, 33vw, 440px);
}

.sd-amenities-row:last-child {
  margin-bottom: 0;
}

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

.sd-amenity-tile:hover {
  flex-grow: 3;
}

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

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

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

.sd-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);
}

.sd-amenity-tile--noimg {
  background: linear-gradient(135deg, #0b3a5b, var(--wp--preset--color--contrast, #1F242E));
}

.sd-amenity-tile--noimg .sd-amenity-tile__caption {
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem;
  text-align: center;
  background: none;
}

@media (max-width: 768px) {
  .sd-amenities-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    min-height: 0;
  }

  .sd-amenity-tile {
    flex: none;
    aspect-ratio: 4/5;
  }

  .sd-amenity-tile:hover {
    flex-grow: 0;
  }
}

@media (prefers-reduced-motion: reduce) {

  .sd-amenity-tile,
  .sd-amenity-tile__img {
    transition: none;
  }
}

.sd-team {
  max-width: 1200px;
  margin: 2.5rem auto;
  padding: 0 1.5rem;
  text-align: center;
  color: var(--wp--preset--color--contrast, #1F242E);
}

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

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

.sd-team-card {
  position: relative;
  box-sizing: border-box;
  flex: 0 1 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 24px;
}

.sd-team-card+.sd-team-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 6px;
  width: 1px;
  background: #d7dde2;
}

.sd-team-photo {
  width: 100%;
  max-width: 230px;
  aspect-ratio: 25/32;
  overflow: hidden;
  background: #eef1f4;
  margin-bottom: 0.9rem;
}

.sd-team-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

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

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

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

.sd-team-phone {
  color: var(--wp--preset--color--contrast, #1F242E);
  text-decoration: none;
  margin-top: 0.1rem;
}

.sd-team-phone:hover {
  color: var(--wp--preset--color--accent-1, #DCA23B);
  text-decoration: underline;
}

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

@media (max-width: 720px) {
  .sd-team-card+.sd-team-card::before {
    display: none;
  }
}

/* Migrated "Community Associate" section, rendered via render_for_community() and
   wrapped in .sd-associates-fix (includes/nc-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. */
/* .sd-associates-fix .guten-column-wrapper,
.sd-associates-fix [class*=guten-column-gap] {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 30px 24px;
}

.sd-associates-fix .guten-column:not(:has(.guten-column)) {
  flex: 0 1 240px !important;
  max-width: 280px !important;
  width: auto !important;
} */

/* .sd-associates-fix img {
  max-width: 100%;
  height: auto;
} */

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

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

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

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

.sd-series-plans {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.9rem;
}

.sd-series-plans li {
  font-weight: 600;
}

.sd-series-plans a {
  color: var(--wp--preset--color--accent-1, #DCA23B);
  text-decoration: none;
}

.sd-series-plans a:hover {
  text-decoration: underline;
}

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

.sd-cgallery-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.75rem;
}

.sd-cgallery-grid li {
  margin: 0;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 10px;
  background: #eef1f4;
}

.sd-cgallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/**
 * Community card + card grid — shared by nc/location-communities and
 * nc/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.
 */
/* .sd-loc-communities {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

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

@media (max-width: 900px) {
  .sd-loc-cards {
    max-width: 460px;
    margin: 0 auto;
  }
}

.sd-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) {
  .sd-loc-card {
    flex-basis: 100%;
    max-width: 100%;
  }
}

.sd-loc-card__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

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

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

.sd-loc-card__logo--text {
  font-family: 'Lexend', sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: #1F242E;
  min-height: 96px;
  display: flex;
  align-items: center;
}

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

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

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

.sd-loc-card__inventory {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  padding: 12px 10px;
  margin-bottom: 0;
  border: 1px solid #DCA23B;
  color: #DCA23B;
  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;
}

.sd-loc-card__inventory:hover,
.sd-loc-card__inventory:focus-visible {
  background: #DCA23B;
  color: #fff;
  outline: none;
}

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

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

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

.sd-loc-card__title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #1F242E;
}

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

.sd-loc-card__view {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 12px 10px;
  background: #DCA23B;
  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;
}

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

.sd-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.sd-anim .sd-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.sd-anim .sd-reveal.sd-reveal--left {
    transform: translate3d(-44px, 0, 0);
  }

  html.sd-anim .sd-reveal.sd-reveal--right {
    transform: translate3d(44px, 0, 0);
  }

  html.sd-anim .sd-reveal.sd-reveal--zoom {
    transform: scale(0.94);
  }

  html.sd-anim .sd-reveal.sd-reveal--split {
    opacity: 1;
    transform: none;
    will-change: auto;
  }

  html.sd-anim .sd-reveal.sd-reveal--split .sd-split__media,
  html.sd-anim .sd-reveal.sd-reveal--split .sd-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.sd-anim .sd-reveal.sd-reveal--split .sd-split__media {
    transform: translate3d(-44px, 0, 0);
  }

  html.sd-anim .sd-reveal.sd-reveal--split .sd-split__text {
    transform: translate3d(44px, 0, 0);
  }

  html.sd-anim .sd-reveal.sd-reveal--split.sd-split--media-right .sd-split__media {
    transform: translate3d(44px, 0, 0);
  }

  html.sd-anim .sd-reveal.sd-reveal--split.sd-split--media-right .sd-split__text {
    transform: translate3d(-44px, 0, 0);
  }

  html.sd-anim .sd-reveal-stagger .sd-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.sd-anim .sd-reveal-stagger .sd-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.sd-anim .sd-reveal-stagger .sd-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.sd-anim .sd-reveal-stagger .sd-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.sd-anim .sd-reveal-stagger .sd-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.sd-anim .sd-reveal-stagger .sd-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.sd-anim .sd-reveal.is-in {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal--split.is-in .sd-split__media,
  html.sd-anim .sd-reveal--split.is-in .sd-split__text {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>* {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(1) {
    transition-delay: 0s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(2) {
    transition-delay: 0.09s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(3) {
    transition-delay: 0.18s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(4) {
    transition-delay: 0.27s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(5) {
    transition-delay: 0.36s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(6) {
    transition-delay: 0.45s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(7) {
    transition-delay: 0.54s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(8) {
    transition-delay: 0.63s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(9) {
    transition-delay: 0.72s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(10) {
    transition-delay: 0.81s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(11) {
    transition-delay: 0.9s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cgrid__grid>*:nth-child(12) {
    transition-delay: 0.99s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>* {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(1) {
    transition-delay: 0s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(2) {
    transition-delay: 0.09s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(3) {
    transition-delay: 0.18s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(4) {
    transition-delay: 0.27s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(5) {
    transition-delay: 0.36s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(6) {
    transition-delay: 0.45s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(7) {
    transition-delay: 0.54s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(8) {
    transition-delay: 0.63s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(9) {
    transition-delay: 0.72s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(10) {
    transition-delay: 0.81s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(11) {
    transition-delay: 0.9s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cardgrid__grid>*:nth-child(12) {
    transition-delay: 0.99s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>* {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(1) {
    transition-delay: 0s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(2) {
    transition-delay: 0.09s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(3) {
    transition-delay: 0.18s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(4) {
    transition-delay: 0.27s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(5) {
    transition-delay: 0.36s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(6) {
    transition-delay: 0.45s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(7) {
    transition-delay: 0.54s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(8) {
    transition-delay: 0.63s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(9) {
    transition-delay: 0.72s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(10) {
    transition-delay: 0.81s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(11) {
    transition-delay: 0.9s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-postgrid__grid>*:nth-child(12) {
    transition-delay: 0.99s;
  }

  /* html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>* {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(1) {
    transition-delay: 0s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(2) {
    transition-delay: 0.09s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(3) {
    transition-delay: 0.18s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(4) {
    transition-delay: 0.27s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(5) {
    transition-delay: 0.36s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(6) {
    transition-delay: 0.45s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(7) {
    transition-delay: 0.54s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(8) {
    transition-delay: 0.63s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(9) {
    transition-delay: 0.72s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(10) {
    transition-delay: 0.81s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(11) {
    transition-delay: 0.9s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-loc-cards>*:nth-child(12) {
    transition-delay: 0.99s;
  } */

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>* {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(1) {
    transition-delay: 0s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(2) {
    transition-delay: 0.09s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(3) {
    transition-delay: 0.18s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(4) {
    transition-delay: 0.27s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(5) {
    transition-delay: 0.36s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(6) {
    transition-delay: 0.45s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(7) {
    transition-delay: 0.54s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(8) {
    transition-delay: 0.63s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(9) {
    transition-delay: 0.72s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(10) {
    transition-delay: 0.81s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(11) {
    transition-delay: 0.9s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-fbanners__row>*:nth-child(12) {
    transition-delay: 0.99s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>* {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(1) {
    transition-delay: 0s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(2) {
    transition-delay: 0.09s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(3) {
    transition-delay: 0.18s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(4) {
    transition-delay: 0.27s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(5) {
    transition-delay: 0.36s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(6) {
    transition-delay: 0.45s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(7) {
    transition-delay: 0.54s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(8) {
    transition-delay: 0.63s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(9) {
    transition-delay: 0.72s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(10) {
    transition-delay: 0.81s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(11) {
    transition-delay: 0.9s;
  }

  html.sd-anim .sd-reveal-stagger.is-in .sd-cslider__cards>*:nth-child(12) {
    transition-delay: 0.99s;
  }
}

@media (prefers-reduced-motion: no-preference) {
  html.sd-anim .sd-reveal.sd-reveal--split.sd-split--overlay .sd-split__bg {
    opacity: 0;
    transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  }

  html.sd-anim .sd-reveal.sd-reveal--split.sd-split--overlay .sd-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.sd-anim .sd-reveal.sd-reveal--split.sd-split--overlay.sd-split--card-left .sd-split__overlaycard {
    transform: translate3d(-44px, 0, 0);
  }

  html.sd-anim .sd-reveal.sd-reveal--split.sd-split--overlay.sd-split--card-right .sd-split__overlaycard {
    transform: translate3d(44px, 0, 0);
  }

  html.sd-anim .sd-reveal.sd-reveal--split.sd-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.sd-anim .sd-reveal.sd-reveal--split.sd-why-warranty .wp-block-column:first-child {
    transform: translate3d(-44px, 0, 0);
  }

  html.sd-anim .sd-reveal.sd-reveal--split.sd-why-warranty .wp-block-column:last-child {
    transform: translate3d(44px, 0, 0);
  }

  html.sd-anim .sd-reveal--split.sd-split--overlay.is-in .sd-split__bg {
    opacity: 1;
  }

  html.sd-anim .sd-reveal--split.sd-split--overlay.is-in .sd-split__overlaycard {
    opacity: 1;
    transform: none;
  }

  html.sd-anim .sd-reveal--split.sd-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;
}

/* =========================================================================
   Header — Gutenverse-free rebuild (parts/header.html + nc-header.js)
   Brand-blue bar, white uppercase nav, orange accents, navy mega panels,
   full-width search dropdown, gradient mobile drawer. Colours come from the
   theme.json palette via CSS custom properties so they track the tokens.
   ========================================================================= */
/* The template-part wrapper <header> already gets position:sticky + shrink
   transition from sd.css; we only add the chrome inside it here. */
/* header {
  background: var(--wp--preset--color--custom-color-2, #2a5f9e);
} */

/* When an admin is logged in, the WP toolbar is fixed at the top of the viewport.
   Park the sticky header below it so it doesn't slide underneath on scroll. Heights
   mirror core's admin bar: 32px desktop, 46px <=782px, and it stops being fixed
   (scrolls away) at <=600px, so reset to 0 there. Higher specificity than the
   `header{top:0}` sticky rule in _p7-legacy.scss, so it wins regardless of order. */
/* .admin-bar header {
  top: 32px;
} */

/* @media screen and (max-width: 782px) {
  .admin-bar header {
    top: 46px;
  }
} */

/* @media screen and (max-width: 600px) {
  .admin-bar header {
    top: 0;
  }
} */

/* ----------------------------------------------------------------- shell */
.sd-header {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 25px var(--sd-content-gutter);
  background: var(--wp--preset--color--custom-color-2, #2a5f9e);
  color: var(--wp--preset--color--base, #fff);
  transition: padding 0.35s ease;
}

@media (max-width: 1250px) {
  .sd-header {
    padding-inline: 30px;
  }
}

@media (max-width: 1023.98px) {
  .sd-header {
    padding: 14px 20px;
  }
}

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

.sd-header__inner {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

@media (max-width: 1023.98px) {
  .sd-header__inner {
    flex: 1 1 auto;
    width: 100%;
    justify-content: space-between;
  }
}

.sd-logo {
  display: inline-flex;
  line-height: 0;
}

.sd-logo img {
  width: 200px;
  max-width: 55vw;
  height: auto;
  transition: width 0.35s ease;
}

header.shrink .sd-logo img {
  width: 170px;
}

/* ------------------------------------------------------------------- nav */
.sd-nav {
  flex: 1 1 auto;
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  gap: 22px;
}

@media (max-width: 1023.98px) {
  .sd-nav {
    display: none !important;
  }
}

@media (min-width: 1024px) and (max-width: 1250px) {
  .sd-nav {
    gap: 14px;
  }
}

.sd-nav__item {
  position: relative;
  display: flex;
  align-items: center;
}

.sd-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  margin: 0;
  border: 0;
  background: none;
  color: var(--wp--preset--color--base, #fff);
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.01em;
  line-height: 1.2;
  cursor: pointer;
  transition: color 0.2s ease;
}

@media (min-width: 1024px) and (max-width: 1250px) {
  .sd-nav__link {
    font-size: 0.8rem;
  }
}

.sd-nav__link:hover,
.sd-nav__link:focus-visible {
  color: var(--wp--preset--color--orange, #d46f35);
}

/* dropdown caret on mega triggers */
.sd-nav__item.has-mega>.sd-nav__link::after {
  content: "";
  width: 0.5em;
  height: 0.5em;
  margin-top: -0.18em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}

.sd-nav__item.has-mega.is-open>.sd-nav__link::after {
  transform: rotate(-135deg);
  margin-top: 0.12em;
}

/* ----------------------------------------------------------- mega panels */
.sd-mega {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 100;
  min-width: 260px;
  margin-top: 18px;
  padding: 28px 30px;
  background: rgba(42, 95, 158, 0.95);
  backdrop-filter: blur(6px);
  color: var(--wp--preset--color--base, #fff);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}

header.shrink .sd-mega {
  margin-top: 6px;
}

/* invisible hover bridge so the cursor can cross the gap to the panel */
.sd-mega::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -18px;
  height: 18px;
}

.sd-nav__item.has-mega:hover>.sd-mega,
.sd-nav__item.has-mega.is-open>.sd-mega {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.sd-mega--wide {
  min-width: 640px;
}

.sd-mega--about {
  min-width: 460px;
  right: 0;
  left: auto;
}

/* nav blocks inside the panels */
.sd-mega .wp-block-navigation,
.sd-mega .sd-mega__nav {
  --wp--style--block-gap: 0;
}

.sd-mega .wp-block-navigation .wp-block-navigation__container,
.sd-mega .sd-mega__nav .wp-block-navigation__container {
  gap: 12px;
}

.sd-mega .wp-block-navigation a,
.sd-mega .wp-block-navigation .wp-block-navigation-item__content,
.sd-mega .sd-mega__nav a,
.sd-mega .sd-mega__nav .wp-block-navigation-item__content {
  color: var(--wp--preset--color--base, #fff);
  font-size: 0.9rem;
  text-decoration: none;
}

.sd-mega .wp-block-navigation a:hover,
.sd-mega .wp-block-navigation .wp-block-navigation-item__content:hover,
.sd-mega .sd-mega__nav a:hover,
.sd-mega .sd-mega__nav .wp-block-navigation-item__content:hover {
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-mega__cols {
  gap: 50px;
}

/* communities grid */
.sd-communities {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  gap: 8px 34px;
}

.sd-communities__col {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sd-communities__col li {
  margin: 0 0 10px;
}

.sd-communities__heading {
  color: var(--wp--preset--color--orange, #d46f35);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.1rem;
  margin-bottom: 14px;
}

.sd-communities a {
  display: block;
  color: var(--wp--preset--color--base, #fff);
  text-decoration: none;
  font-size: 0.85rem;
  line-height: 1.15;
}

.sd-communities a strong {
  display: block;
  font-weight: 700;
}

.sd-communities a span {
  display: block;
  font-weight: 400;
  opacity: 0.85;
}

.sd-communities a:hover {
  color: var(--wp--preset--color--orange, #d46f35);
}

/* Unified mega list — the theme-owned Header Menu (Neal -> Menu) builds every
   drop-down as ONE list flowed into 1/2/3 CSS columns, so a single structure styles
   Where We Build, Communities (with area sub-labels) and About Neal alike. */
.sd-mega--c1 {
  min-width: 240px;
}

.sd-mega--c2 {
  min-width: 460px;
}

.sd-mega--c3 {
  min-width: 660px;
}

.sd-mega--right {
  left: auto;
  right: 0;
}

.sd-mega__list {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

.sd-mega__col {
  flex: 0 1 auto;
  min-width: 150px;
}

.sd-mega__link {
  display: block;
  margin: 0 0 12px;
  color: var(--wp--preset--color--base, #fff);
  text-decoration: none;
  font-size: 0.85rem;
  line-height: 1.18;
}

.sd-mega__link strong {
  display: block;
  font-weight: 700;
}

.sd-mega__link span {
  display: block;
  font-weight: 400;
  opacity: 0.85;
}

.sd-mega__link:hover {
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-mega__group {
  display: block;
  margin: 0 0 12px;
  color: var(--wp--preset--color--orange, #d46f35);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.05rem;
}

.sd-mega__group:not(:first-child) {
  margin-top: 6px;
}

/* Drawer (phone) drop-down list — same model, flat list with optional group headings. */
.sd-drawer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sd-drawer__group {
  color: var(--wp--preset--color--orange, #d46f35);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  padding: 10px 0 4px;
}

/* --------------------------------------------------------------- actions */
.sd-nav__actions {
  display: flex;
  align-items: center;
  gap: 0;
  margin-left: 8px;
  /* Flush "segmented" group like the legacy header — Contact / Call / search
     sit edge-to-edge sharing a single 1px border, not separated by a gap.
     The -1px collapses the doubled border; raise the hovered control so its
     filled state draws cleanly over its neighbour. */
}

.sd-nav__actions>*+* {
  margin-left: -1px;
}

.sd-nav__actions>*:hover,
.sd-nav__actions>*:focus-visible {
  position: relative;
  z-index: 1;
}

.sd-btn-outline {
  --h: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--h);
  padding: 0 18px;
  border: 1px solid var(--wp--preset--color--orange, #d46f35);
  color: var(--wp--preset--color--base, #fff);
  background: transparent;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  box-sizing: border-box;
  transition: background 0.2s ease, color 0.2s ease;
}

.sd-btn-outline:hover,
.sd-btn-outline:focus-visible {
  background: var(--wp--preset--color--orange, #d46f35);
  color: var(--wp--preset--color--base, #fff);
}

header.shrink .sd-btn-outline {
  --h: 32px;
}

/* promo highlight in the primary nav (PR-2) — a filled accent pill so the live promo
   reads as the loudest thing in the bar. Rendered only while the promo is active. */
.sd-nav__promo {
  display: flex;
  align-items: center;
}

.sd-nav__promo-link {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 18px;
  border-radius: 999px;
  background: var(--wp--preset--color--orange, #d46f35);
  color: var(--wp--preset--color--base, #fff);
  font-family: 'Lexend', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.01em;
  white-space: nowrap;
  box-sizing: border-box;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sd-nav__promo-link:hover,
.sd-nav__promo-link:focus-visible {
  color: var(--wp--preset--color--base, #fff);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(255, 105, 0, 0.38);
}

@media (min-width: 1024px) and (max-width: 1250px) {
  .sd-nav__promo-link {
    font-size: 0.8rem;
    padding: 0 14px;
  }
}

header.shrink .sd-nav__promo-link {
  height: 32px;
}

.sd-icon-btn {
  --h: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--h);
  height: var(--h);
  padding: 0;
  border: 1px solid var(--wp--preset--color--orange, #d46f35);
  background: transparent;
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
  box-sizing: border-box;
  transition: background 0.2s ease;
}

.sd-icon-btn:hover,
.sd-icon-btn:focus-visible {
  background: var(--wp--preset--color--orange, #d46f35);
}

header.shrink .sd-icon-btn {
  --h: 32px;
}

/* -------------------------------------------------------- search dropdown */
/* Legacy: clicking the search icon drops a full-width WHITE band ("Find Your Dream
   Home in Southwest Florida" on the left, the search field + orange button on the
   right), NOT a dark-blue overlay. The bar itself is the theme-owned nc/search block. */
.sd-search-panel {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 90;
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}

.sd-search-panel.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* The nc/search block carries the bar (heading + input + button + REST autocomplete).
   In the header dropdown it rides the full content gutter rather than its own centred
   1180 results column, and drops the bottom rule it uses to divide bar from results. */
.sd-search-panel .sd-search {
  padding: 30px var(--sd-content-gutter);
}

.sd-search-panel .sd-search__inner {
  max-width: none;
}

.sd-search-panel .sd-search__bar {
  padding-bottom: 0;
  border-bottom: 0;
}

/* On mobile the same panel opens from the compact bar (triggered by the mobile search
   icon): tighten it and drop the big serif heading so it reads as a simple search field. */
@media (max-width: 1023.98px) {
  .sd-search-panel .sd-search {
    padding: 14px 20px 18px;
  }

  .sd-search-panel .sd-search__heading {
    display: none;
  }
}

/* ------------------------------------------------------- mobile header tools */
/* The compact mobile bar shows a plain white search icon + the hamburger, grouped
   to the right of the logo (the legacy mobile header). Hidden on desktop, where the
   bordered search lives in the .sd-nav__actions group instead. */
.sd-header__mtools {
  display: none;
  align-items: center;
  gap: 2px;
}

@media (max-width: 1023.98px) {
  .sd-header__mtools {
    display: flex;
  }
}

.sd-mobile-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 9px;
  border: 0;
  background: none;
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
}

/* ---------------------------------------------------------------- burger */
.sd-burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 7px;
  border: 0;
  background: none;
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
}

@media (max-width: 1023.98px) {
  .sd-burger {
    display: inline-flex;
  }
}

/* ---------------------------------------------------------------- drawer */
.sd-drawer {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 10000;
  width: min(380px, 86vw);
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, var(--wp--preset--color--accent-1, #DCA23B) 0%, var(--wp--preset--color--contrast, #1F242E) 98%);
  color: var(--wp--preset--color--base, #fff);
  transform: translateX(-100%);
  transition: transform 0.42s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
}

.sd-drawer.is-open {
  transform: translateX(0);
}

@media (min-width: 1024px) {
  .sd-drawer {
    display: none !important;
  }
}

body.sd-drawer-open {
  overflow: hidden;
}

/* dimmed backdrop */
.sd-drawer::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.42s ease, visibility 0.42s;
  z-index: -1;
}

.sd-drawer.is-open::before {
  opacity: 1;
  visibility: visible;
}

.sd-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
}

.sd-drawer__logo {
  width: 180px;
  height: auto;
}

.sd-drawer__close {
  border: 0;
  background: none;
  color: var(--wp--preset--color--base, #fff);
  cursor: pointer;
  display: inline-flex;
  padding: 6px;
}

.sd-drawer__body {
  padding: 8px 0 40px;
}

.sd-drawer__link,
.sd-acc__trigger {
  display: block;
  width: 100%;
  text-align: left;
  padding: 16px 24px;
  border: 0;
  background: none;
  color: var(--wp--preset--color--base, #fff);
  font-family: 'Lexend', sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}

.sd-acc__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sd-acc__trigger::after {
  content: "";
  width: 0.55em;
  height: 0.55em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}

.sd-acc.is-open>.sd-acc__trigger::after {
  transform: rotate(-135deg);
}

.sd-acc__panel {
  display: none;
  padding: 4px 24px 18px 32px;
  background: rgba(242, 242, 242, 0.06);
}

.sd-acc.is-open>.sd-acc__panel {
  display: block;
}

.sd-acc__panel a,
.sd-acc__panel .wp-block-navigation-item__content {
  display: block;
  padding: 8px 0;
  color: var(--wp--preset--color--base, #fff);
  font-size: 1rem;
  text-decoration: none;
}

.sd-acc__panel a:hover,
.sd-acc__panel .wp-block-navigation-item__content:hover {
  color: rgba(255, 255, 255, 0.8);
}

.sd-acc__panel a em,
.sd-acc__panel .wp-block-navigation-item__content em {
  font-weight: 400;
  opacity: 0.75;
  text-transform: none;
}

.sd-drawer__communities {
  list-style: none;
  margin: 0;
  padding: 0;
}

.sd-acc__panel .wp-block-navigation,
.sd-drawer__nav {
  --wp--style--block-gap: 0;
}

.sd-acc__panel .wp-block-navigation__container {
  gap: 0;
  flex-direction: column;
}

.sd-drawer__cta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px 24px 0;
}

.sd-drawer__cta .sd-btn-outline {
  --h: 48px;
  width: 100%;
}

/* promo highlight in the mobile drawer (PR-2) — same live-promo link as the nav pill,
   here a full-width accent block at the top of the menu. */
.sd-drawer__promo {
  padding: 14px 24px 6px;
}

.sd-drawer__promo-link {
  display: block;
  text-align: center;
  padding: 14px 18px;
  border-radius: 8px;
  background: var(--wp--preset--color--orange, #d46f35);
  color: var(--wp--preset--color--base, #fff);
  font-family: 'Lexend', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.01em;
}

/* =========================================================================
   Header (variant "header-new") — Gutenverse-free rebuild.
   Used on plans / specs / community pages. It mirrors parts/header.html
   (same nc-* hooks => reuses _header.scss for the logo, mega nav, actions,
   search dropdown and mobile drawer) and ADDS only what is specific to this
   variant: a promo bar stacked above the brand-blue header bar.

   Standalone partial — no @use of siblings. Colours come from the theme.json
   palette via CSS custom properties so they track the tokens.
   ========================================================================= */
/* ---------------------------------------------------------------- shell ----
   In this variant .sd-header is a vertical wrapper (promo bar + header bar),
   not the flex row that _header.scss styles. Reset it to a block and hand the
   flex "shell" (padding, brand bg, sticky shrink) down to .sd-header__bar so
   all the inherited nc-nav / nc-mega rules keep working unchanged. */
.sd-header--new {
  display: block;
  padding: 0;
  background: var(--wp--preset--color--custom-color-2, #2a5f9e);
}

.sd-header--new .sd-header__bar {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 25px var(--sd-content-gutter);
  background: var(--wp--preset--color--custom-color-2, #2a5f9e);
  color: var(--wp--preset--color--base, #fff);
  transition: padding 0.35s ease;
}

@media (max-width: 1250px) {
  .sd-header--new .sd-header__bar {
    padding-inline: 30px;
  }
}

@media (max-width: 1023.98px) {
  .sd-header--new .sd-header__bar {
    padding: 14px 20px;
  }
}

header.shrink .sd-header--new .sd-header__bar {
  padding-top: 5px;
  padding-bottom: 5px;
}

/* The mega panels / search dropdown are positioned relative to the bar row
   (they use top:100%), so the bar must be the positioning context. */
.sd-header--new .sd-header__bar {
  position: relative;
}

/* The promo bar hides on scroll-shrink so the sticky header stays compact. */
header.shrink .sd-promo {
  display: none;
}

/* ----------------------------------------------------------- promo bar ----- */
.sd-promo {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-promo__inner {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

@media (max-width: 1023.98px) {
  .sd-promo__inner {
    gap: 8px 12px;
    padding: 8px 16px;
  }
}

/* the orange angled "shape" tag on the left (mirrors the old promo-shape) */
.sd-promo__shape {
  flex: 0 0 auto;
  margin: 0;
  padding: 7px 40px 7px 12px;
  background: var(--wp--preset--color--orange, #d46f35);
  color: var(--wp--preset--color--base, #fff);
  font-family: 'Lexend', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: right;
  text-transform: uppercase;
  clip-path: polygon(0 0, 100% 0, calc(100% - 22px) 100%, 0 100%);
}

@media (max-width: 1023.98px) {
  .sd-promo__shape {
    padding: 6px 22px 6px 12px;
    font-size: 11px;
    clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
  }
}

.sd-promo__text {
  flex: 1 1 auto;
  margin: 0;
  padding: 0 10px;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.2;
}

@media (max-width: 1023.98px) {
  .sd-promo__text {
    font-size: 12px;
  }
}

.sd-promo__cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px 0 0;
  color: var(--wp--preset--color--orange, #d46f35);
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.sd-promo__cta svg {
  width: 14px;
  height: 14px;
}

.sd-promo__cta:hover,
.sd-promo__cta:focus-visible {
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

/* =========================================================================
   Footer — Gutenverse-free rebuild (parts/footer.html)
   Brand-blue link grid (white uppercase headings, orange hover), light-gray
   bottom bar with brand logo, quick links, regional addresses, trust badges
   and copyright. Two Gravity Forms + the mobile search list live in CSS
   :target popups so the existing #schedule-tour / #get-more-info /
   #btn-search-mobile anchors keep working. Colours come from the theme.json
   palette via CSS custom properties so they track the tokens.
   ========================================================================= */
.sd-footer {
  font-family: 'Lexend', sans-serif;
}

/* ============================================================ link grid top */
.sd-footer-top {
  background: linear-gradient(180deg, var(--wp--preset--color--accent-1, #DCA23B) 0%, var(--wp--preset--color--custom-color-2, #2a5f9e) 100%);
  color: var(--wp--preset--color--base, #fff);
  padding: 60px;
}

@media (max-width: 1024px) {
  .sd-footer-top {
    padding: 50px 30px;
  }
}

@media (max-width: 640px) {
  .sd-footer-top {
    padding: 20px 10px;
  }
}

.sd-footer-cols {
  max-width: 1280px;
  margin-inline: auto;
  gap: 40px;
}

@media (max-width: 640px) {
  .sd-footer-cols {
    gap: 24px;
  }
}

@media (max-width: 1024px) {
  .sd-footer-col {
    padding-bottom: 20px;
  }
}

.sd-footer-col__title {
  margin: 0 0 10px;
  padding-bottom: 10px;
  border-bottom: 3px solid var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--base, #fff);
  font-family: 'Lexend', sans-serif;
  font-size: 1em;
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.2;
}

/* core/navigation columns + the hardcoded communities list share styling */
.sd-footer-links,
.sd-footer-communities {
  font-size: 1rem;
}

.sd-footer-links a,
.sd-footer-links .wp-block-navigation-item__content,
.sd-footer-communities a,
.sd-footer-communities .wp-block-navigation-item__content {
  color: var(--wp--preset--color--base, #fff);
  text-decoration: none;
  transition: color 0.2s ease;
}

.sd-footer-links a:hover,
.sd-footer-links a:focus-visible,
.sd-footer-links .wp-block-navigation-item__content:hover,
.sd-footer-links .wp-block-navigation-item__content:focus-visible,
.sd-footer-communities a:hover,
.sd-footer-communities a:focus-visible,
.sd-footer-communities .wp-block-navigation-item__content:hover,
.sd-footer-communities .wp-block-navigation-item__content:focus-visible {
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-footer-links {
  --wp--style--block-gap: 0;
}

.sd-footer-links .wp-block-navigation__container {
  gap: 14px;
}

.sd-footer-communities {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  columns: 2;
  column-gap: 40px;
}

.sd-footer-communities li {
  margin: 0 0 14px;
  break-inside: avoid;
}

@media (max-width: 640px) {
  .sd-footer-communities {
    columns: 1;
  }
}

/* Theme-owned footer list (Neal -> Footer builds every column from this). A column
   can opt into the two-up layout (the Communities-style "--2col" variant). */
.sd-footer-col {
  flex-grow: 1;
}

.sd-footer-list {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  font-size: 1rem;
}

.sd-footer-list li {
  margin: 0 0 14px;
}

.sd-footer-list a {
  color: var(--wp--preset--color--base, #fff);
  text-decoration: none;
  transition: color 0.2s ease;
}

.sd-footer-list a:hover,
.sd-footer-list a:focus-visible {
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-footer-list--2col {
  columns: 2;
  column-gap: 40px;
}

.sd-footer-list--2col li {
  break-inside: avoid;
}

@media (max-width: 640px) {
  .sd-footer-list--2col {
    columns: 1;
  }
}

/* ========================================================= light bottom bar */
.sd-footer-bottom {
  background: #f7f7f7;
  color: var(--wp--preset--color--contrast, #1F242E);
  padding: 60px;
}

@media (max-width: 1024px) {
  .sd-footer-bottom {
    padding: 50px 30px;
  }
}

@media (max-width: 640px) {
  .sd-footer-bottom {
    padding: 40px 20px;
  }
}

.sd-footer-bottom__grid {
  max-width: 1940px;
  margin-inline: auto;
  align-items: flex-start;
}

/* brand logo */
.sd-footer-brand__logo {
  margin: 0 0 40px;
}

.sd-footer-brand__logo img {
  width: 237px;
  max-width: 100%;
  height: auto;
}

@media (max-width: 1024px) {
  .sd-footer-brand__logo {
    text-align: center;
  }

  .sd-footer-brand__logo img {
    width: 180px;
  }
}

/* quick-links — two inline lists side by side */
.sd-footer-quicklinks {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  gap: 30px;
}

.sd-footer-quick {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
}

.sd-footer-quick li {
  margin: 0 0 15px;
}

.sd-footer-quick a {
  color: var(--wp--preset--color--contrast, #1F242E);
  text-decoration: none;
  font-size: 0.95rem;
  transition: color 0.2s ease;
}

.sd-footer-quick a:hover,
.sd-footer-quick a:focus-visible {
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

/* regional addresses */
.sd-footer-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 30px;
}

.sd-footer-office {
  flex: 1 1 45%;
  min-width: 200px;
}

.sd-footer-office__title {
  margin: 0 0 10px;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  font-weight: 600;
}

.sd-footer-office__addr {
  margin: 0 0 10px;
  font-size: 0.95rem;
  line-height: 1.45;
}

.sd-footer-office__phone {
  margin: 0;
  font-size: 0.95rem;
}

.sd-footer-office__phone a {
  color: var(--wp--preset--color--contrast, #1F242E);
  text-decoration: none;
}

.sd-footer-office__phone a:hover,
.sd-footer-office__phone a:focus-visible {
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

/* ------------------------------------------------------------ trust badges */
.sd-footer-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0;
  max-width: 540px;
  margin: 60px auto 0;
}

.sd-footer-badge {
  margin: 0;
  padding: 15px;
}

.sd-footer-badge img {
  display: block;
  height: 90px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

@media (max-width: 640px) {
  .sd-footer-badge {
    padding: 10px;
  }

  .sd-footer-badge img {
    height: 30px;
  }
}

.sd-footer-badge--year img {
  height: 90px;
}

.sd-footer-badges--compliance {
  margin-top: 0;
}

.sd-footer-badge--compliance,
.sd-footer-badge--bbb {
  padding: 10px;
}

.sd-footer-badge--compliance img,
.sd-footer-badge--bbb img {
  height: 60px;
}

@media (max-width: 640px) {

  .sd-footer-badge--compliance,
  .sd-footer-badge--bbb {
    padding: 5px;
  }

  .sd-footer-badge--compliance img,
  .sd-footer-badge--bbb img {
    height: 45px;
  }
}

/* ----------------------------------------------------------------- copyright */
.sd-footer-copy {
  margin: 30px 0 0;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-size: 14px;
  text-align: center;
}

/* ============================================================ :target popups */
.sd-popup {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s;
}

.sd-popup:target,
.sd-popup.is-open {
  opacity: 1;
  visibility: visible;
}

body.sd-popup-open {
  overflow: hidden;
}

.sd-popup__overlay {
  position: fixed;
  inset: 0;
  background: linear-gradient(270deg, rgba(42, 95, 158, 0.93) 0%, rgba(42, 95, 158, 0.88) 100%);
  cursor: pointer;
}

.sd-popup__dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 700px;
  max-height: calc(100vh - 80px);
  overflow-y: auto;
  margin: 0 auto;
  padding: 40px 30px 30px;
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

@media (max-width: 640px) {
  .sd-popup__dialog {
    padding: 36px 18px 20px;
  }
}

.sd-popup--search .sd-popup__dialog {
  max-width: 800px;
}

.sd-popup__close {
  position: absolute;
  top: 8px;
  right: 14px;
  font-size: 30px;
  line-height: 1;
  color: var(--wp--preset--color--contrast, #1F242E);
  text-decoration: none;
}

.sd-popup__close:hover,
.sd-popup__close:focus-visible {
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-popup__lead {
  margin: 0 0 12px;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-popup__sub {
  margin: 0 0 20px;
  color: var(--wp--preset--color--contrast, #1F242E);
}

/* =========================================================================
   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.
   ========================================================================= */
.sd-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. */
.sd-post-hero.wp-block-cover {
  min-height: 375px;
  align-items: flex-start;
  justify-content: center;
}

.sd-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. */
}

.sd-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;
}

.sd-post-hero .wp-block-cover__inner-container {
  width: 100%;
}

@media (max-width: 1023.98px) {
  .sd-post-hero.wp-block-cover {
    padding: 20px !important;
  }
}

/* The category "pill" — pinned to the top-right of the hero. */
.sd-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;
}

.sd-post-hero__cat a {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 1023.98px) {
  .sd-post-hero__cat {
    top: 20px;
    right: 20px;
    left: 20px;
  }
}

/* ------------------------------------------------------------- logo strip --- */
.sd-post-logo {
  padding: 20px 60px;
  text-align: center;
  background: var(--wp--preset--color--base, #fff);
}

.sd-post-logo .sd-post-logo__img {
  margin: 0;
}

.sd-post-logo .sd-post-logo__img img {
  height: 110px;
  width: auto;
}

@media (max-width: 782px) {
  .sd-post-logo {
    padding: 20px 30px;
  }
}

@media (max-width: 1023.98px) {
  .sd-post-logo {
    padding: 10px 20px;
  }
}

/* ----------------------------------------------------------- article body --- */
.sd-post-body {
  padding: 50px 60px;
  background: var(--wp--preset--color--base, #fff);
}

@media (max-width: 782px) {
  .sd-post-body {
    padding: 50px 30px;
  }
}

@media (max-width: 1023.98px) {
  .sd-post-body {
    padding: 40px 20px;
  }
}

.sd-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) {
  .sd-post-grid .sd-post-col--nav {
    order: 1;
  }

  .sd-post-grid .sd-post-col--article {
    order: 2;
  }

  .sd-post-grid .sd-post-col--share {
    order: 3;
  }
}

/* Back button — borderless link with a leading chevron (replaces the
   Gutenverse fas fa-chevron-left icon button). */
.sd-post-back .sd-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, #1F242E);
  font-size: 1rem;
  font-weight: 700;
}

.sd-post-back .sd-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);
}

.sd-post-back .sd-post-back__btn .wp-block-button__link:hover,
.sd-post-back .sd-post-back__btn .wp-block-button__link:focus-visible {
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

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

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

.sd-post-content {
  margin-bottom: 40px;
  color: #636569;
}

.sd-post-content a {
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

.sd-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. */
.sd-post-pager {
  gap: 20px;
}

.sd-post-pager .wp-block-post-navigation-link {
  font-size: 1rem;
  font-weight: 700;
}

.sd-post-pager .wp-block-post-navigation-link a {
  color: var(--wp--preset--color--contrast, #1F242E);
  text-decoration: none;
}

.sd-post-pager .wp-block-post-navigation-link a:hover,
.sd-post-pager .wp-block-post-navigation-link a:focus-visible {
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

/* Share column — right-aligned to mirror the Gutenverse flex-end column. */
.sd-post-col--share {
  display: flex;
  justify-content: flex-end;
}

@media (max-width: 781px) {
  .sd-post-col--share {
    justify-content: flex-start;
  }
}

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

@media (max-width: 1023.98px) {
  .sd-post-related {
    padding: 40px 20px !important;
  }
}

/* ------------------------------------------------------------- instagram --- */
.sd-post-instagram {
  padding: 50px 60px 0;
  background: var(--wp--preset--color--base, #fff);
}

@media (max-width: 1023.98px) {
  .sd-post-instagram {
    padding: 0;
  }
}

.sd-post-instagram__row {
  border-top: 1px solid var(--wp--preset--color--contrast, #1F242E);
  padding-top: 30px;
  margin-bottom: 0;
}

@media (max-width: 781px) {
  .sd-post-instagram__row {
    border-top: 0;
  }
}

.sd-post-instagram__icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.sd-post-instagram__icon svg {
  width: 48px;
  height: 48px;
}

/* --------------------------------------------------------------- form ------- */
.sd-post-form {
  padding: 50px 60px;
  background: var(--wp--preset--color--base, #fff);
}

@media (max-width: 782px) {
  .sd-post-form {
    padding: 50px 30px;
  }
}

@media (max-width: 1023.98px) {
  .sd-post-form {
    padding: 40px 20px;
  }
}

.sd-post-form__grid {
  border-top: 1px solid var(--wp--preset--color--contrast, #1F242E);
  padding-top: 30px;
  gap: 0;
}

@media (max-width: 781px) {
  .sd-post-form__grid {
    border-top: 0;
    padding-top: 0;
  }
}

.sd-post-form__left {
  padding: 30px 20px 30px 0;
  border-right: 1px solid var(--wp--preset--color--contrast, #1F242E);
}

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

.sd-post-form__right {
  padding: 30px 0 30px 20px;
}

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

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

.sd-post-form__contact {
  margin-bottom: 50px;
}

.sd-post-form__contact p {
  margin: 0 0 16px;
}

.sd-post-form__social .wp-block-social-link {
  color: var(--wp--preset--color--contrast, #1F242E);
}

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

/* =========================================================================
   nc/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.
   ========================================================================= */
.sd-inpage-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
}

@media (max-width: 899.98px) {
  .sd-inpage-nav {
    position: relative;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

/* ------------------------------------------------------------------- list */
.sd-inpage-nav__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 900px) and (max-width: 1250px) {
  .sd-inpage-nav__list {
    gap: 4px 14px;
  }
}

.sd-inpage-nav__list {
  /* Mobile: collapse into a dropdown the toggle reveals. */
}

@media (max-width: 899.98px) {
  .sd-inpage-nav__list {
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    margin-top: 8px;
  }

  .sd-inpage-nav.is-open .sd-inpage-nav__list {
    display: flex;
  }
}

.sd-inpage-nav__item {
  margin: 0;
  padding: 0;
}

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

/* ------------------------------------------------------------------- link */
.sd-inpage-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 6px 2px;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-family: 'Lexend', sans-serif;
  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;
}

@media (min-width: 900px) and (max-width: 1250px) {
  .sd-inpage-nav__link {
    font-size: 0.8rem;
  }
}

.sd-inpage-nav__link {
  /* orange underline grows from the active/hovered link */
}

.sd-inpage-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--wp--preset--color--orange, #d46f35);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}

.sd-inpage-nav__link:hover,
.sd-inpage-nav__link:focus-visible {
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-inpage-nav__link:hover::after,
.sd-inpage-nav__link:focus-visible::after {
  transform: scaleX(1);
}

.sd-inpage-nav__link.is-active {
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-inpage-nav__link.is-active::after {
  transform: scaleX(1);
}

@media (max-width: 899.98px) {
  .sd-inpage-nav__link {
    display: flex;
    padding: 14px 4px;
  }

  .sd-inpage-nav__link::after {
    display: none;
  }

  .sd-inpage-nav__link.is-active {
    color: var(--wp--preset--color--orange, #d46f35);
  }
}

/* ----------------------------------------------------------------- toggle */
.sd-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, #1F242E);
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  text-align: left;
  cursor: pointer;
}

@media (max-width: 899.98px) {
  .sd-inpage-nav__toggle {
    display: flex;
  }
}

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

/* chevron that flips when the menu is open */
.sd-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;
}

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

.sd-share {
  width: 100%;
  max-width: 100%;
  max-height: 100vh;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: rgba(6, 37, 55, 0.5);
  color: var(--wp--preset--color--base, #fff);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
  overflow: visible;
}

.sd-share::backdrop {
  background: rgba(6, 37, 55, 0.6);
}

.sd-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;
}

.sd-share.is-open:not([open])::before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(6, 37, 55, 0.6);
}

.sd-share.is-open:not([open]) .sd-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, #1F242E);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
  overflow: auto;
}

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

.sd-share__panel {
  position: relative;
  padding: 48px 40px 44px;
  text-align: center;
}

@media (max-width: 600px) {
  .sd-share__panel {
    padding: 44px 22px 34px;
  }
}

.sd-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: #d46f35;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.sd-share__close .sd-share__icon {
  width: 20px;
  height: 20px;
}

.sd-share__close:hover,
.sd-share__close:focus-visible {
  background: var(--wp--preset--color--orange, #d46f35);
  color: var(--wp--preset--color--base, #fff);
}

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

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

.sd-share__item {
  margin: 0;
}

.sd-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: 'Lexend', sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.01em;
  cursor: pointer;
}

.sd-share__btn .sd-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;
}

.sd-share__btn:hover,
.sd-share__btn:focus-visible {
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-share__btn:hover .sd-share__icon,
.sd-share__btn:focus-visible .sd-share__icon {
  background: var(--wp--preset--color--orange, #d46f35);
  fill: var(--wp--preset--color--base, #fff);
}

.sd-share__btn--copy.is-copied {
  color: var(--wp--preset--color--orange, #d46f35);
}

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

.sd-share--floorplan {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-share--floorplan.is-open:not([open]) .sd-share__panel {
  background: var(--wp--preset--color--base, #fff);
}

.sd-share--floorplan .sd-share__panel {
  padding: 40px;
  text-align: left;
}

@media (max-width: 600px) {
  .sd-share--floorplan .sd-share__panel {
    padding: 30px 20px;
  }
}

.sd-share--floorplan .sd-share__close {
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  background: transparent;
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-share--floorplan .sd-share__close .sd-share__icon {
  width: 22px;
  height: 22px;
}

.sd-share--floorplan .sd-share__close:hover,
.sd-share--floorplan .sd-share__close:focus-visible {
  background: var(--wp--preset--color--orange, #d46f35);
  color: var(--wp--preset--color--base, #fff);
}

.sd-share--floorplan .sd-share__heading {
  margin: 0 0 24px;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-family: 'Lexend', sans-serif;
  font-size: 2rem;
  font-weight: 700;
  text-align: left;
}

.sd-share--floorplan .sd-share__list {
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 10px;
}

.sd-share--floorplan .sd-share__item {
  flex: 1 1 0;
  min-width: 0;
}

.sd-share--floorplan .sd-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, #DCA23B);
  border-radius: 0;
  background: var(--wp--preset--color--accent-1, #DCA23B);
  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;
}

.sd-share--floorplan .sd-share__btn .sd-share__icon {
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  padding: 0;
  border-radius: 0;
  background: none;
  fill: var(--wp--preset--color--base, #fff);
}

.sd-share--floorplan .sd-share__btn:hover,
.sd-share--floorplan .sd-share__btn:focus-visible {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

.sd-share--floorplan .sd-share__btn:hover .sd-share__icon,
.sd-share--floorplan .sd-share__btn:focus-visible .sd-share__icon {
  background: none;
  fill: var(--wp--preset--color--accent-1, #DCA23B);
}

.sd-share--floorplan .sd-share__btn--copy.is-copied {
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

.sd-share--floorplan .sd-share__btn--copy.is-copied .sd-share__icon {
  background: none;
  fill: var(--wp--preset--color--accent-1, #DCA23B);
}

/* =========================================================================
   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 (nc/inpage-nav and
   nc/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. */
.sd-sp-nav {
  position: sticky;
  top: 40px;
  z-index: 100;
  gap: 20px;
  width: 100%;
  margin: 0 0 10px;
  padding: 10px var(--sd-content-gutter);
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 1px 5px 0 rgba(42, 95, 158, 0.3);
}

@media (max-width: 1250px) {
  .sd-sp-nav {
    padding-inline: 30px;
  }
}

@media (max-width: 782px) {
  .sd-sp-nav {
    padding: 20px 30px;
  }
}

.sd-sp-nav {
  /* On mobile the bar releases (the menu collapses into the nc/inpage-nav
     toggle) and stacks vertically. */
}

@media (max-width: 1023.98px) {
  .sd-sp-nav {
    position: static;
    top: auto;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px 20px;
  }
}

/* LEFT — community title (h2) + location. */
.sd-sp-nav__left {
  flex: 0 1 34%;
  min-width: 0;
}

.sd-sp-nav__left .m-0 {
  margin: 0;
}

.sd-sp-nav__left {
  /* p7_community renders an h2 at 28px; p7_location the muted sub-line. */
}

.sd-sp-nav__left h2 {
  margin: 0;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-size: 28px;
  line-height: 1.15;
}

@media (max-width: 1023.98px) {
  .sd-sp-nav__left {
    flex: 1 1 100%;
  }

  .sd-sp-nav__left h2 {
    font-size: 22px;
  }
}

/* RIGHT — the in-page anchor nav (nc/inpage-nav) + Directions button. */
.sd-sp-nav__right {
  flex: 1 1 auto;
  gap: 10px;
  min-width: 0;
}

@media (max-width: 1023.98px) {
  .sd-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). */
.sd-sp-nav__button {
  flex: 0 0 auto;
}

@media (max-width: 1023.98px) {
  .sd-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. */
.sd-sp-content {
  background: var(--wp--preset--color--base, #fff);
}

.sd-sp-content--flex {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.sd-sp-content--flex>.entry-content,
.sd-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(--sd-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 .sd-sp-content so only the spec/plan body is affected; !important wins
   deterministically over any leftover inline container style. */
/* .sd-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 nc-* sections nested in
   the same body are untouched — they don't use these legacy classes (their headings are
   .sd-vtour__heading / .sd-amenities-title / .sd-proximity-title). */
/* .sd-sp-content .entry-content .wp-block-gutenverse-heading,
.sd-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. */
.sd-sp-instagram {
  padding: 50px 60px 0;
  background: var(--wp--preset--color--base, #fff);
}

@media (max-width: 782px) {
  .sd-sp-instagram {
    padding: 50px 30px 0;
  }
}

@media (max-width: 1023.98px) {
  .sd-sp-instagram {
    padding: 20px;
  }
}

.sd-sp-instagram:not(:has(.sd-sp-instagram__feed > *)) {
  display: none;
}

.sd-sp-instagram__row {
  border-top: 1px solid var(--wp--preset--color--contrast, #1F242E);
  padding-top: 30px;
  margin-bottom: 0;
}

@media (max-width: 781px) {
  .sd-sp-instagram__row {
    border-top: 0;
    padding-top: 0;
  }
}

.sd-sp-instagram__icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.sd-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. */
.sd-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) {
  .sd-sp-form {
    padding: 0 30px 50px;
  }
}

@media (max-width: 1023.98px) {
  .sd-sp-form {
    padding: 0 20px 50px;
  }
}

.sd-sp-form__grid {
  border-top: 1px solid var(--wp--preset--color--contrast, #1F242E);
  padding-top: 50px;
  gap: 0;
}

@media (max-width: 781px) {
  .sd-sp-form__grid {
    border-top: 0;
    padding-top: 0;
  }
}

.sd-sp-form__left {
  padding: 30px 20px 30px 0;
  border-right: 1px solid var(--wp--preset--color--contrast, #1F242E);
}

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

.sd-sp-form__right {
  padding: 30px 0 80px 20px;
}

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

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

.sd-sp-form__contact {
  margin-bottom: 50px;
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-sp-form__contact p {
  margin: 0 0 16px;
}

.sd-sp-form__contact p:nth-child(3) {
  margin-bottom: 30px;
}

.sd-sp-form__social .wp-block-social-link {
  color: var(--wp--preset--color--contrast, #1F242E);
}

/* ============================================================= description ===
   The spec overview copy, swapped in from the editable Description field by
   sd_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. */
.sd-spec-desc p {
  margin: 0 0 20px;
}

.sd-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 nc/home-floorplan's .sd-fplan* on purpose. */
.sd-vtour {
  padding: clamp(2.5rem, 5vw, 4rem) var(--sd-content-gutter, 60px);
  background: var(--wp--preset--color--base, #fff);
  scroll-margin-top: 120px;
  /* clear the sticky sub-nav on a #virtual-tour jump */
}

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

.sd-vtour__heading {
  margin: 0 0 28px;
  text-align: center;
  font-family: 'Lexend', sans-serif;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 600;
  color: #1F242E;
}

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

.sd-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;
}

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

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

/* ------------------------------------------------------------------ hero */
.sd-chero {
  position: relative;
  margin: 0;
  display: flex;
  gap: 12px;
  padding-inline: var(--sd-content-gutter);
  scroll-margin-top: 120px;
}

@media (max-width: 767px) {
  .sd-chero {
    flex-direction: column;
  }
}

.sd-chero__stage {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  height: clamp(320px, 56vh, 580px);
  overflow: hidden;
  background: var(--wp--preset--color--contrast, #1F242E);
}

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

.sd-chero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.sd-chero__slide.is-active {
  opacity: 1;
  z-index: 1;
}

.sd-chero__slide>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

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

.sd-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;
}

.sd-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;
}

.sd-chero__play:hover,
.sd-chero__play:focus-visible {
  background: var(--wp--preset--color--orange, #d46f35);
  transform: translate(-50%, -50%) scale(1.06);
}

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

.sd-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;
}

.sd-chero__arrow::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}

.sd-chero__arrow:hover,
.sd-chero__arrow:focus-visible {
  background: var(--wp--preset--color--orange, #d46f35);
}

.sd-chero__arrow--prev {
  left: 14px;
}

.sd-chero__arrow--prev::before {
  transform: translateX(2px) rotate(-135deg);
}

.sd-chero__arrow--next {
  right: 14px;
}

.sd-chero__arrow--next::before {
  transform: translateX(-2px) rotate(45deg);
}

.sd-chero__viewall {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 3;
  padding: 0.6rem 1.4rem;
  background: var(--wp--preset--color--orange, #d46f35);
  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, #d46f35);
}

.sd-chero__viewall:hover,
.sd-chero__viewall:focus-visible {
  background: #fff;
  color: var(--wp--preset--color--orange, #d46f35);
}

.sd-chero__side {
  flex: 0 0 clamp(150px, 17vw, 216px);
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: clamp(320px, 56vh, 580px);
}

@media (max-width: 767px) {
  .sd-chero__side {
    flex-basis: auto;
    height: auto;
  }
}

.sd-chero__logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2px 0;
  max-height: 92px;
}

.sd-chero__logo img {
  max-width: 100%;
  max-height: 84px;
  width: auto;
  height: auto;
  display: block;
}

.sd-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: 767px) {
  .sd-chero__thumbs {
    flex-basis: auto;
    flex-direction: row;
    overflow-x: auto;
  }
}

.sd-chero__thumb {
  flex: 1 1 0;
  position: relative;
  min-height: 0;
}

.sd-chero__thumb.is-active .sd-chero__thumb-btn {
  outline: 3px solid var(--wp--preset--color--orange, #d46f35);
  outline-offset: -3px;
}

@media (max-width: 767px) {
  .sd-chero__thumb {
    flex: 0 0 132px;
    height: 84px;
  }
}

.sd-chero__thumb-btn {
  display: block;
  position: relative;
  padding: 0;
  border: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
  background: var(--wp--preset--color--contrast, #1F242E);
}

@media (max-width: 767px) {
  .sd-chero__thumb-btn {
    height: 84px;
  }
}

.sd-chero__thumb-btn>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.2s ease;
}

.sd-chero__thumb-btn:hover>img {
  opacity: 0.88;
}

.sd-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;
}

.sd-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;
}

.sd-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: 'Lexend', sans-serif;
  font-weight: 500;
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  pointer-events: none;
  transition: background 0.2s ease;
}

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

/* ---------------------------------------------------------------- lightbox */
.sd-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);
}

.sd-lightbox__stage {
  max-width: min(1200px, 92vw);
  max-height: 86vh;
}

.sd-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);
}

.sd-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;
}

.sd-lightbox__close:hover,
.sd-lightbox__close:focus-visible {
  background: var(--wp--preset--color--orange, #d46f35);
}

.sd-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;
}

.sd-lightbox__nav::before {
  content: "";
  width: 13px;
  height: 13px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}

.sd-lightbox__nav:hover,
.sd-lightbox__nav:focus-visible {
  background: var(--wp--preset--color--orange, #d46f35);
}

.sd-lightbox__nav--prev {
  left: clamp(0.5rem, 3vw, 2rem);
}

.sd-lightbox__nav--prev::before {
  transform: translateX(3px) rotate(-135deg);
}

.sd-lightbox__nav--next {
  right: clamp(0.5rem, 3vw, 2rem);
}

.sd-lightbox__nav--next::before {
  transform: translateX(-3px) rotate(45deg);
}

.sd-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 */
.sd-ccta {
  background: linear-gradient(115deg, var(--wp--preset--color--contrast, #1F242E) 0%, #0a3a59 55%, var(--wp--preset--color--accent-1, #DCA23B) 165%);
  color: var(--wp--preset--color--base, #fff);
}

.sd-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(--sd-content-gutter);
}

@media (max-width: 900px) {
  .sd-ccta__inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

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

.sd-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, #DCA23B));
}

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

.sd-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);
}

.sd-ccta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  flex-shrink: 0;
}

@media (max-width: 520px) {
  .sd-ccta__actions {
    width: 100%;
    flex-direction: column;
  }
}

.sd-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;
}

.sd-ccta__btn:hover {
  transform: translateY(-1px);
}

.sd-ccta__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--base, #fff);
  outline-offset: 2px;
}

@media (max-width: 520px) {
  .sd-ccta__btn {
    width: 100%;
  }
}

.sd-ccta__btn--primary {
  background: var(--wp--preset--color--orange, #d46f35);
  color: var(--wp--preset--color--base, #fff);
  box-shadow: 0 6px 18px rgba(255, 105, 0, 0.28);
}

.sd-ccta__btn--primary:hover {
  background: color-mix(in srgb, var(--wp--preset--color--orange, #d46f35) 90%, #000);
}

.sd-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);
}

.sd-ccta__btn--ghost:hover {
  background: rgba(255, 255, 255, 0.16);
}

.sd-ccta__btn--ghost svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* -------------------------------------------------------------- overview */

/* Strip the section wrapper's default block-padding — the dark band handles its own spacing. */
.sd-csec--overview {
  padding-block: 0;
  background: var(--sd-color-dark);
}

.sd-coverview {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(48px, 8vw, 126px);
  padding: clamp(48px, 9vw, 120px) clamp(24px, 6vw, 120px);
  background: var(--sd-color-dark);
}

/* ── Left: text column ─────────────────────────────────────────────────────── */
.sd-coverview__text {
  flex: 0 0 clamp(300px, 40%, 486px);
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.sd-coverview__heading {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sd-coverview__heading-label,
.sd-coverview__heading-name {
  font-family: var(--sd-font-display);
  font-weight: 700;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  line-height: 1;
  display: block;
}

.sd-coverview__heading-label {
  color: var(--sd-color-white);
}

.sd-coverview__heading-name {
  background: var(--sd-gradient-brand);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.sd-coverview__address {
  font-family: var(--sd-font-display);
  font-weight: 700;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 0.17em;
  color: var(--sd-color-orange);
  text-transform: uppercase;
  margin: 0;
}

.sd-coverview__divider {
  width: 78px;
  height: 3px;
  background: var(--sd-color-gold);
  border: none;
  margin: 0;
  flex-shrink: 0;
}

.sd-coverview__body {
  font-family: var(--sd-font-display);
  font-weight: 500;
  font-size: 18px;
  line-height: 28px;
  color: var(--sd-color-muted);
}

.sd-coverview__body p {
  margin: 0 0 1rem;
}

.sd-coverview__body p:last-child {
  margin-bottom: 0;
}

/* ── Right: map column ─────────────────────────────────────────────────────── */
.sd-coverview__map {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.sd-coverview__map-title {
  font-family: var(--sd-font-display);
  font-weight: 700;
  font-size: 18px;
  line-height: 28px;
  color: var(--sd-color-white);
  margin: 0;
}

.sd-coverview__map-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 588 / 382;
  border-radius: 4px;
  overflow: hidden;
  background: var(--sd-color-light-gray);
}

.sd-coverview__map-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ── No-map variant: centre the text column ─────────────────────────────── */
.sd-coverview--no-map {
  justify-content: center;
}

.sd-coverview--no-map .sd-coverview__text {
  flex: 0 0 auto;
  max-width: 600px;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .sd-coverview {
    flex-direction: column;
    align-items: flex-start;
  }

  .sd-coverview__text {
    flex: none;
    width: 100%;
    max-width: 100%;
  }

  .sd-coverview__map {
    width: 100%;
  }

  .sd-coverview__map-frame {
    aspect-ratio: 4 / 3;
  }
}

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

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

/* Map marker: the brand "N" badge (the site icon), matching nc/communities-map
   instead of Google's default pin. AdvancedMarkerElement anchors content
   bottom-center. */
/* .sd-locmap__pin {
  line-height: 0;
}

.sd-locmap__pin img {
  display: block;
  width: 40px;
  height: 40px;
  box-shadow: 0 2px 7px rgba(6, 37, 55, 0.45);
}

.sd-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 */
.sd-cgrid {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
/* padding-inline: var(--sd-content-gutter);
  padding-block: var(--sd-content-gutter-block); */
  padding: clamp(48px, 9vw, 120px) clamp(24px, 6vw, 120px);
}

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

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

.sd-cgrid__heading,
.sd-cplans__series {
  background: none !important;
  color: var(--wp--preset--color--contrast, #1F242E);
  text-align: center;
  font-family: 'Lexend', sans-serif;
  font-weight: 500;
  margin: 0 auto 1rem;
  padding: 0;
}

.sd-cplans__series {
  background: var(--sd-gradient-brand) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent;
  color: transparent;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 700;
  line-height: 1;
  margin: 0 auto 34px;
  text-transform: capitalize;
  width: fit-content;
}

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

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

/* ── Community-plans section header (Figma 2026) ─────────────────────────── */
.wp-block-simplydwell-community-plans,
.wp-block-simplydwell-homes {
  background-color: #FAF8F5;
}

.sd-cgrid__eyebrow {
  margin: 0 0 10px;
  font-family: var(--sd-font-display);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.17em;
  color: var(--sd-color-orange);
}

.sd-cgrid__head .sd-cgrid__heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.2em 0.35em;
  font-family: var(--sd-font-display);
  font-size: clamp(2rem, 5vw, 3.75rem);
  font-weight: 700;
  line-height: 1.05;
  color: var(--sd-color-dark);
  background: none !important;
}

.sd-cgrid__heading-accent {
  background: var(--sd-gradient-brand);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.sd-cgrid__head .sd-cgrid__sub {
  font-family: var(--sd-font-display);
  font-size: 1rem;
  font-weight: 500;
  color: #737a87;
  margin: 2rem auto;
}

.sd-cgrid__divider {
  width: 78px;
  height: 3px;
  background: #dca23b;
  margin: 30px auto 0;
  border-radius: 2px;
}

.sd-cplans__group {
  margin-top: 2.5rem;
  padding-top: 2.5rem;
}

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

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

.sd-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, #1F242E);
  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;
}

.sd-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;
}

.sd-cplans__tile>* {
  position: relative;
  z-index: 1;
}

.sd-cplans__tile:hover,
.sd-cplans__tile:focus-visible {
  background: var(--wp--preset--color--accent-1, #DCA23B);
  transform: translateY(-4px);
  filter: drop-shadow(0 12px 16px rgba(6, 37, 55, 0.22));
}

.sd-cplans__tile:focus-visible::before {
  inset: 2px;
}

.sd-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;
}

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

.sd-cplans__tile-price {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-size: 1.2rem;
  font-weight: 700;
}

.sd-cplans__tile-price small {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7a848c;
}

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

.sd-cplans__group {
  scroll-margin-top: 120px;
}

.sd-cplans__group:target .sd-cplans__series {
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

.sd-cgrid__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}

.sd-cgrid__grid>.sd-pcard {
  box-sizing: border-box;
  flex: 0 0 calc((100% - 60px) / 3);
  max-width: calc((100% - 60px) / 3);
}

@media (max-width: 1024px) {
  .sd-cgrid__grid>.sd-pcard {
    flex-basis: calc((100% - 30px) / 2);
    max-width: calc((100% - 30px) / 2);
  }
}

@media (max-width: 600px) {
  .sd-cgrid__grid>.sd-pcard {
    flex-basis: 100%;
    max-width: 100%;
  }
}

.sd-cgrid__placeholder,
.sd-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;
}

.sd-cgrid__placeholder .dashicons,
.sd-cgrid__placeholder .dashicons {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

.sd-cgrid__placeholder strong,
.sd-cgrid__placeholder strong {
  color: var(--wp--preset--color--contrast, #1F242E);
}

/* 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. */
.sd-pcard {
  border-radius: 20px;
  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);
}

.sd-pcard:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 38px rgba(6, 37, 55, 0.13);
}

.sd-pcard:focus-within {
  outline: 2px solid var(--wp--preset--color--accent-1, #DCA23B);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .sd-pcard {
    transition: box-shadow 0.2s ease;
  }

  .sd-pcard:hover {
    transform: none;
  }
}

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

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

.sd-pcard__photo {
  display: block;
  width: 100%;
  min-height: 300px;
  max-height: 300px;
  object-fit: cover;
}

@media (max-width: 600px) {
  .sd-pcard__photo {
    min-height: 250px;
    max-height: 250px;
  }
}

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

.sd-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, #DCA23B);
  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));
}

.sd-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;
}

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

.sd-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));
}

.sd-pcard__flag img {
  display: block;
  width: 100%;
  height: auto;
}

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

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

.sd-pcard__title {
  margin: 0 auto 10px;
  font-family: 'Lexend', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast, #1F242E);
}

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

.sd-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, #1F242E);
}

.sd-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;
}

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

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

.sd-pcard__price {
  margin: 18px auto 16px;
  font-size: 1.25rem;
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-pcard__price span {
  font-weight: 700;
}

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

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

.sd-pcard__specs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 16px;
  margin: 0;
}

.sd-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, #1F242E);
}

.sd-pcard__specs span+span::before {
  content: "·";
  position: absolute;
  left: -10px;
  color: #5a6b76;
  font-weight: 700;
}

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

.sd-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, #1F242E);
}

.sd-pcard__ready svg {
  flex: none;
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

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

.sd-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, #2a5f9e);
  color: #fff;
  border: 1px solid var(--wp--preset--color--custom-color-2, #2a5f9e);
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.sd-pcard__btn:hover {
  background-color: #fff;
  color: var(--wp--preset--color--custom-color-2, #2a5f9e);
}

.sd-pcard__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #1F242E);
  outline-offset: 2px;
}

.sd-pcard__btn:active {
  transform: translateY(1px);
}

.sd-pcard__btn--primary {
  background-color: var(--wp--preset--color--orange, #d46f35);
  border-color: var(--wp--preset--color--orange, #d46f35);
}

.sd-pcard__btn--primary:hover {
  background-color: #fff;
  color: var(--wp--preset--color--custom-color-2, #2a5f9e);
  border-color: var(--wp--preset--color--custom-color-2, #2a5f9e);
}

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

/* ── Plan card redesign (Figma 2026) ─────────────────────────────────────── */
.sd-pcard--plan {
  background: transparent;
  box-shadow: none;
  filter: drop-shadow(0px 2px 10px rgba(0, 0, 0, 0.17));
  border-radius: 20px;
  overflow: visible;
}

.sd-pcard--plan:hover {
  transform: translateY(-4px);
  box-shadow: none;
}

.sd-pcard--plan .sd-pcard__media {
  height: 283px;
  border-radius: 20px 20px 0 0;
  overflow: hidden;
}

.sd-pcard--plan .sd-pcard__photo,
.sd-pcard--plan .sd-pcard__photo-empty {
  height: 100%;
  min-height: unset;
  max-height: unset;
}

.sd-pcard--plan .sd-pcard__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 26px 16px;
  background: #f6f4ee;
  border: 0.5px solid #c8c8c8;
  border-radius: 0 0 20px 20px;
}

.sd-pcard--plan .sd-pcard__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.sd-pcard--plan .sd-pcard__name {
  margin: 0;
  font-family: var(--sd-font-display);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--sd-color-dark);
  text-align: left;
  text-transform: none;
}

.sd-pcard--plan .sd-pcard__price {
  flex-shrink: 0;
  margin: 0;
  font-family: var(--sd-font-display);
  font-size: 1.125rem;
  font-weight: 700;
  text-align: right;
  color: var(--sd-color-orange);
  text-transform: none;
}

.sd-pcard--plan .sd-pcard__payment {
  margin: -8px 0 0;
  font-family: var(--sd-font-display);
  font-size: 0.625rem;
  font-weight: 700;
  text-align: right;
  color: var(--sd-color-orange);
}

.sd-pcard--plan .sd-pcard__payment a {
  display: block;
  color: #737A87;
}

.pcard__payment a:hover {
  color: var(--sd-color-orange);
}

.sd-pcard--plan .sd-pcard__meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0;
}

.sd-pcard--plan .sd-pcard__meta-row {
  display: flex;
  gap: 16px;
}

.sd-pcard--plan .sd-pcard__meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--sd-font-display);
  font-size: 0.875rem;
  font-weight: 500;
  color: #737a87;
}

.sd-pcard--plan .sd-pcard__meta-item svg {
  flex-shrink: 0;
  stroke: #737a87;
}

.sd-pcard--plan .sd-pcard__actions {
  display: flex;
  gap: 6px;
  margin-top: auto;
}

.sd-pcard--plan .sd-pcard__btn {
  border-radius: 20px;
  padding: 8px 6px;
  font-size: 0.75rem;
  font-weight: 500;
  font-family: var(--sd-font-display);
  letter-spacing: 0;
  text-transform: none;
}

.sd-pcard--plan .sd-pcard__btn--ghost {
  background: #faf8f5;
  color: var(--sd-color-dark);
  border: 0.5px solid #a5a7ab;
}

.sd-pcard--plan .sd-pcard__btn--ghost:hover {
  background: var(--sd-color-dark);
  color: #fff;
  border-color: var(--sd-color-dark);
}

.sd-pcard--plan .sd-pcard__btn--cta {
  background: var(--sd-color-orange);
  color: #fff;
  border: none;
}

.sd-pcard--plan .sd-pcard__btn--cta:hover {
  background: var(--sd-color-gold);
  color: var(--sd-color-dark);
}

@media (prefers-reduced-motion: reduce) {
  .sd-pcard--plan {
    filter: none;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.17);
  }

  .sd-pcard--plan:hover {
    transform: none;
  }
}

.sd-pcard--plan .sd-pcard__community-badge {
  position: absolute;
  top: 25px;
  right: 12px;
  padding: 3px 10px;
  background: #fff;
  color: #1F242E;
  font-family: var(--sd-font-display);
  font-size: 0.7rem;
  font-weight: 600;
  border-radius: 20px;
  pointer-events: none;
  white-space: nowrap;
  max-width: calc(100% - 24px);
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: uppercase;
}

.sd-pcard--plan .sd-pcard__btn--na {
  opacity: 0.35;
  pointer-events: none;
  cursor: default;
}

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

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

.sd-cmap-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border: 1px solid #e3e7eb;
  background: #eef1f4;
}

.sd-cmap-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ----------------------------------------------------------------- video */
.sd-cvideo {
  max-width: 1000px;
  margin-inline: var(--sd-content-gutter) auto;
  padding-inline: 0;
}

@media (max-width: 1200px) {
  .sd-cvideo {
    margin-inline: auto;
    padding-inline: 1.5rem;
  }
}

.sd-cvideo {
  text-align: center;
}

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

.sd-cvideo-frame iframe,
.sd-cvideo-frame video {
  width: 100%;
  aspect-ratio: 16/9;
  height: auto;
  border: 0;
}

.sd-cvideo-frame>a {
  display: inline-block;
  padding: 0.8rem 2rem;
  background: var(--wp--preset--color--orange, #d46f35);
  color: #fff;
  border: 1px solid var(--wp--preset--color--orange, #d46f35);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
}

.sd-cvideo-frame>a:hover,
.sd-cvideo-frame>a:focus-visible {
  background: #fff;
  color: var(--wp--preset--color--orange, #d46f35);
}

/* -------------------------------- Quick Move-In filter bar (nc/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. */
.sd-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;
}

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

.sd-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;
}

.sd-cfilters select {
  width: 100%;
  padding: 0.6rem 2rem 0.6rem 0.7rem;
  border: 1px solid var(--wp--preset--color--contrast, #1F242E);
  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='%231F242E' d='M0 0h12L6 8z'/%3E%3C/svg%3E") no-repeat right 0.7rem center;
  background-size: 12px 8px;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-size: 0.92rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  cursor: pointer;
}

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

.sd-cfilters__reset:hover {
  background: var(--wp--preset--color--contrast, #1F242E);
  color: #fff;
}

.sd-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  (.sd-promo-content)
     - templates/page.html              (.sd-page-content)
     - templates/single-locations.html  (.sd-loc / .sd-loc-nav / .sd-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 (nc/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. */
.sd-promo-content {
  background: var(--wp--preset--color--base, #fff);
}

.sd-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) {
  .sd-promo-hero {
    min-height: 240px;
    padding: 56px 20px;
  }
}

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

/* Featured image → dark overlay so the headline stays legible. */
.sd-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));
}

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

.sd-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;
}

.sd-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. */
.sd-promo-hero--poster {
  display: block;
  min-height: 0;
  padding: 0;
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #1F242E);
}

@media (max-width: 1023.98px) {
  .sd-promo-hero--poster {
    min-height: 0;
    padding: 0;
  }
}

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

.sd-promo-hero__poster {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
}

/* Subheadline as a centered navy tagline under the poster (the headline lives in the art). */
.sd-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, #1F242E);
  opacity: 1;
  font-weight: 500;
}

/* Visually hidden, available to screen readers + SEO (the poster carries the H1 text). */
.sd-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;
}

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

.sd-promo-body__inner {
  max-width: 820px;
  margin: 0 auto;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-size: 1.0625rem;
  line-height: 1.7;
}

.sd-promo-body__inner p {
  margin: 0 0 1em;
}

.sd-promo-body__inner p:last-child {
  margin-bottom: 0;
}

.sd-promo-body__inner a {
  color: var(--wp--preset--color--accent-1, #DCA23B);
}

.sd-promo-body__inner h2,
.sd-promo-body__inner h3,
.sd-promo-body__inner h4 {
  color: var(--wp--preset--color--contrast, #1F242E);
}

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

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

.sd-promo-index__title {
  margin: 0;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-size: clamp(1.9rem, 3.4vw, 2.75rem);
  line-height: 1.12;
}

.sd-promo-index__sub {
  margin: 12px auto 0;
  max-width: 720px;
  color: #5a6b76;
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.5;
}

.sd-promo-index__empty {
  margin: 28px 0 0;
  color: #5a6b76;
}

.sd-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;
}

.sd-promo-card {
  display: flex;
}

.sd-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;
}

.sd-promo-card__link:hover,
.sd-promo-card__link:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(6, 37, 55, 0.12);
  border-color: #cdd6dd;
}

.sd-promo-card__media {
  display: block;
  aspect-ratio: 1600/590;
  background-size: cover;
  background-position: center;
}

.sd-promo-card__media--band {
  background: linear-gradient(120deg, var(--wp--preset--color--contrast, #1F242E), var(--wp--preset--color--accent-1, #DCA23B));
}

.sd-promo-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 18px 20px 20px;
}

.sd-promo-card__title {
  color: var(--wp--preset--color--contrast, #1F242E);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.2;
}

.sd-promo-card__sub {
  color: #5a6b76;
  font-size: 0.95rem;
  line-height: 1.45;
}

.sd-promo-card__cta {
  margin-top: 6px;
  color: var(--wp--preset--color--orange, #d46f35);
  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. */
.sd-promo-form {
  background: var(--wp--preset--color--base, #fff);
  padding: clamp(32px, 5vw, 72px) 24px clamp(8px, 2vw, 24px);
}

.sd-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) {
  .sd-promo-form__inner {
    grid-template-columns: 1fr;
  }
}

.sd-promo-form__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

.sd-promo-form__title {
  margin: 0 0 12px;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.12;
}

.sd-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). */
.sd-promo-rate {
  background: var(--wp--preset--color--base, #fff);
  text-align: center;
  padding: clamp(8px, 2vw, 24px) 24px clamp(28px, 4vw, 56px);
}

.sd-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, #DCA23B);
  color: var(--wp--preset--color--base, #fff);
  font-size: 2rem;
  font-weight: 300;
  line-height: 1;
}

.sd-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;
}

.sd-promo-rate__text {
  margin: 0;
  color: var(--wp--preset--color--accent-1, #DCA23B);
  font-size: clamp(1.7rem, 4.6vw, 3.4rem);
  font-weight: 800;
  line-height: 1.05;
}

.sd-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;
}

.sd-promo-bluepromo__inner {
  max-width: 880px;
  margin: 0 auto;
}

.sd-promo-bluepromo__inner h2,
.sd-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;
}

.sd-promo-bluepromo__inner p {
  margin: 0 0 1.1em;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.6;
}

.sd-promo-bluepromo__inner a {
  color: #cfe3f7;
}

.sd-promo-bluepromo__inner .sd-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. */
.sd-promo-content+.sd-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;
}

/* ================================================================= page ===
   Was gutenverse/wrapper (no-margin) wrapping a constrained, full-width
   post-content. The core/group + constrained post-content reproduce that;
   nothing extra required. */
.sd-page-content {
  background: var(--wp--preset--color--base, #fff);
}

/* ====================================================== marketing pages ===
   The About-Neal-nav marketing pages migrated off Gutenverse (see
   includes/nc-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. */
.sd-marketing-page {
  box-sizing: border-box;
  padding-inline: var(--sd-content-gutter);
  padding-block: 0 clamp(2rem, 5vw, 4rem);
  /* Comfortable vertical rhythm between the top-level sections. */
}

.sd-marketing-page>*+* {
  margin-top: clamp(1.5rem, 3.5vw, 2.5rem);
}

.sd-marketing-page {
  /* 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. */
}

.sd-marketing-page>.wp-block-cover {
  margin-inline: calc(-1 * var(--sd-content-gutter));
}

.sd-marketing-page {
  /* Typographic rhythm: the stripped Gutenverse blocks left headings, copy and the
     form butting together. Restore comfortable spacing below headings and paragraphs. */
}

.sd-marketing-page h1,
.sd-marketing-page h2,
.sd-marketing-page h3,
.sd-marketing-page h4 {
  line-height: 1.2;
  margin-top: 0;
  margin-bottom: 0.5em;
}

.sd-marketing-page p {
  line-height: 1.6;
  margin-top: 0;
  margin-bottom: 1em;
}

.sd-marketing-page {
  /* The form sits a little further below its intro copy, and its fields get room. */
}

.sd-marketing-page .wp-block-column .gform_wrapper,
.sd-marketing-page .wp-block-column .gform-body,
.sd-marketing-page .gform_wrapper {
  margin-top: 1.25rem;
}

.sd-marketing-page {
  /* 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). */
}

.sd-marketing-page .wp-block-buttons {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}

.sd-marketing-page .wp-block-button__link {
  border-radius: 0;
  padding: 14px 28px;
  font-weight: 700;
  background-color: var(--wp--preset--color--base, #fff);
  color: #DCA23B;
  border: 1px solid #DCA23B;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.sd-marketing-page .wp-block-button__link:hover,
.sd-marketing-page .wp-block-button__link:focus-visible {
  background-color: #DCA23B;
  color: var(--wp--preset--color--base, #fff);
}

.sd-marketing-page {
  /* 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. */
}

.sd-marketing-page .wp-block-button__link[href^="tel:"] {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.sd-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;
}

.sd-marketing-page {
  /* The form-column heading reads as a small uppercase sans label (legacy), distinct
     from the serif section headings beside it. */
}

.sd-marketing-page .sd-form-heading {
  font-family: 'Lexend', sans-serif;
  text-transform: uppercase;
  font-size: 1.05rem;
  letter-spacing: 0.02em;
}

.sd-marketing-page {
  /* "Warranty Highlights" coverage table now lives at file scope (.sd-coverage,
     just below) so it can be reused OUTSIDE .sd-marketing-page — e.g. the Why-Neal
     two-column warranty band (.sd-why-warranty). */
}

/* ============================================== Blog intro ("Front Porch") ===
   On the Blog page the full-bleed post-hero is a SIBLING directly above the
   .sd-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. */
.sd-posthero+.sd-marketing-page {
  padding-top: clamp(2.5rem, 6vw, 4.5rem);
}

.sd-posthero+.sd-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. */
.sd-coverage {
  display: grid;
  gap: 3px;
  background: var(--wp--preset--color--base, #fff);
  margin: 0.25rem 0 1.25rem;
}

.sd-coverage__head {
  padding: 14px 16px;
  background: #DCA23B;
  color: var(--wp--preset--color--base, #fff);
  font-weight: 700;
  text-align: center;
  font-size: 1.05rem;
}

.sd-coverage__row {
  display: grid;
  grid-template-columns: minmax(110px, 0.4fr) 1fr;
  gap: 3px;
}

.sd-coverage__label {
  display: flex;
  align-items: center;
  padding: 14px 16px;
  background: #DCA23B;
  color: var(--wp--preset--color--base, #fff);
  font-weight: 700;
  line-height: 1.25;
}

.sd-coverage__desc {
  display: flex;
  align-items: center;
  padding: 14px 16px;
  background: #e8f1f9;
  color: var(--wp--preset--color--contrast, #1F242E);
  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). */
.sd-coverage--even .sd-coverage__row {
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 600px) {

  .sd-coverage__row,
  .sd-coverage--even .sd-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 .sd-marketing-page). */
.sd-why-warranty {
  box-sizing: border-box;
  padding: clamp(2rem, 5vw, 4rem) var(--sd-content-gutter);
}

.sd-why-warranty .wp-block-columns {
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}

@media (max-width: 1023.98px) {
  .sd-why-warranty .wp-block-columns {
    gap: 28px;
  }
}

.sd-why-warranty h2 {
  margin: 0 0 0.5rem;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-family: 'Lexend', sans-serif;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.12;
}

.sd-why-warranty {
  /* The "PEACE OF MIND FOR YOUR NEW HOME" sub-label: small blue uppercase. */
}

.sd-why-warranty h3 {
  margin: 0 0 1rem;
  color: #DCA23B;
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sd-why-warranty p {
  margin: 0 0 1rem;
  color: var(--wp--preset--color--contrast, #1F242E);
  line-height: 1.6;
}

.sd-why-warranty .wp-block-buttons {
  margin-top: 1.5rem;
}

.sd-why-warranty {
  /* Solid-blue CTA (matches the legacy Why-Neal buttons). */
}

.sd-why-warranty .wp-block-button__link {
  display: inline-block;
  border-radius: 0;
  padding: 14px 30px;
  font-weight: 700;
  background-color: #DCA23B;
  border: 2px solid #DCA23B;
  color: var(--wp--preset--color--base, #fff);
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.sd-why-warranty .wp-block-button__link:hover,
.sd-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 nc/* 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 .sd-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 .sd-search. */
.home .sd-page-content .wp-block-post-content>.sd-search {
  margin-top: clamp(1.5rem, 3vw, 2rem);
  padding-top: 8px;
  padding-bottom: 8px;
}

.home .sd-page-content .wp-block-post-content>.sd-communities-map {
  margin-top: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* Designed nc/* 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
   nc/* bands, so plain text pages (whose children are paragraphs) are untouched; the
   home uses nc/parallax (not an nc/* band) and keeps its own tighter rhythm above. */
.sd-page-content .wp-block-post-content:has(> .sd-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. */
/* .sd-loc {
  background: var(--wp--preset--color--base, #fff);
} */

/* Vertical rhythm for the rebuilt location body. The clean nc/* composition
   (nc/location-hero -> centered heading -> nc/communities-map ->
   nc/location-communities) stacks through post-content's is-layout-flow, but each
   nc/* 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 .sd-loc-card__title, not .wp-block-heading), so the
   direct-child selectors only touch the four top-level sections. */
/* .sd-loc .entry-content {
} */

/* .sd-loc .entry-content>.wp-block-heading {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.sd-loc .entry-content {
} */

/* .sd-loc .entry-content>.sd-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
   (.sd-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) {
  .sd-loc-cards:has(.sd-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. */
/* .sd-loc-spacer {
  background: var(--wp--preset--color--base, #fff);
}

@media (max-width: 1023.98px) {
  .sd-loc-spacer {
    height: 90px !important;
  }
}

@media (min-width: 1024px) and (max-width: 1250px) {
  .sd-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. */
/* .sd-loc-nav {
  position: sticky;
  top: 30px;
  z-index: 100;
  width: 100%;
  margin: 0 0 10px;
  padding: 10px var(--sd-content-gutter);
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 1px 5px 0 rgba(42, 95, 158, 0.3);
}

@media (max-width: 1250px) {
  .sd-loc-nav {
    padding-inline: 30px;
  }
} */

/* .sd-loc-nav {
} */

/* @media (max-width: 1023.98px) {
  .sd-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. */
/* .sd-loc-nav__left {
  flex: 0 1 30%;
  min-width: 0;
}

.sd-loc-nav__left .m-0 {
  margin: 0;
}

.sd-loc-nav__left h1 {
  margin: 0;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-size: 28px;
  line-height: 1.15;
}

@media (max-width: 1023.98px) {
  .sd-loc-nav__left {
    flex: 1 1 100%;
  }

  .sd-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). */
/* .sd-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. */
/* .sd-loc-menu .sd-loc-menu__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sd-loc-menu li {
  margin: 0;
}

.sd-loc-menu a {
  display: inline-block;
  padding: 5px 10px;
  color: var(--wp--preset--color--contrast, #1F242E);
  font-family: 'Lexend', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
  text-decoration: none;
}

.sd-loc-menu a:hover,
.sd-loc-menu a:focus-visible,
.sd-loc-menu a[aria-current] {
  color: var(--wp--preset--color--orange, #d46f35);
} */

/* .sd-loc-menu {
} */

/* @media (max-width: 1250px) {
  .sd-loc-menu a {
    padding: 7px;
    font-size: 0.8125rem;
  }
} */

/* .sd-loc-menu {
} */

/* @media (max-width: 1023.98px) {
  .sd-loc-menu .sd-loc-menu__list {
    justify-content: flex-start;
    gap: 4px 8px;
  }

  .sd-loc-menu a {
    padding: 5px 0;
    font-size: 1rem;
  }
} */

.sd-404 {
  position: relative;
  overflow: hidden;
  background: #fff;
  padding-block: clamp(3.5rem, 9vw, 7rem);
  padding-inline: clamp(1.25rem, 5vw, 2rem);
  text-align: center;
}

.sd-404__inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin-inline: auto;
  animation: nc-404-rise 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.sd-404__mark {
  display: block;
  font-family: 'Lexend', sans-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);
}

.sd-404__title {
  margin: 0 0 0.6em;
  font-family: 'Lexend', sans-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, #1F242E);
  text-wrap: balance;
}

.sd-404__lead {
  max-width: 56ch;
  margin: 0 auto;
  font-family: 'Lexend', sans-serif;
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.6;
  color: #3a4b56;
  text-wrap: pretty;
}

.sd-404__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: clamp(1.75rem, 4vw, 2.5rem);
}

.sd-404__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Lexend', 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;
}

.sd-404__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent-1, #DCA23B);
  outline-offset: 3px;
}

.sd-404__btn--primary {
  background: var(--wp--preset--color--orange, #d46f35);
  border-color: var(--wp--preset--color--orange, #d46f35);
  color: #fff;
}

.sd-404__btn--primary:hover,
.sd-404__btn--primary:focus-visible {
  background: #fff;
  color: var(--wp--preset--color--custom-color-2, #2a5f9e);
  border-color: var(--wp--preset--color--custom-color-2, #2a5f9e);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(6, 37, 55, 0.16);
}

.sd-404__btn--ghost {
  background: transparent;
  border-color: var(--wp--preset--color--contrast, #1F242E);
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-404__btn--ghost:hover,
.sd-404__btn--ghost:focus-visible {
  background: var(--wp--preset--color--contrast, #1F242E);
  color: #fff;
  transform: translateY(-1px);
}

.sd-404__communities {
  margin-top: clamp(2.5rem, 6vw, 3.5rem);
  padding: clamp(1.5rem, 4vw, 2.25rem);
  background: var(--wp--preset--color--accent-2, #eef3fa);
  border-radius: 12px;
}

.sd-404__communities-label {
  margin: 0 0 1rem;
  font-family: 'Lexend', sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-404__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sd-404__chips a {
  display: inline-block;
  padding: 0.5em 1.05em;
  font-family: 'Lexend', sans-serif;
  font-size: 0.9rem;
  color: var(--wp--preset--color--contrast, #1F242E);
  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;
}

.sd-404__chips a:hover,
.sd-404__chips a:focus-visible {
  background: var(--wp--preset--color--accent-1, #DCA23B);
  border-color: var(--wp--preset--color--accent-1, #DCA23B);
  color: #fff;
}

.sd-404__chips a:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #1F242E);
  outline-offset: 2px;
}

@keyframes nc-404-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sd-404__inner {
    animation: none;
  }
}

/* ==========================================================================
   sd-section-head — accent line + title + subtitle heading system
   ========================================================================== */

.sd-section-head {
  text-align: center;
  padding-bottom: 2rem;
}

.sd-section-head__accent {
  display: block;
  width: 48px;
  height: 3px;
  background: var(--wp--preset--color--primary, #e36c2b);
  margin: 0 auto 1rem;
  border-radius: 2px;
}

.sd-section-head__title {
  font-family: 'Lexend', sans-serif;
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  font-weight: 500;
  color: var(--wp--preset--color--contrast, #1F242E);
  margin: 0 0 0.6rem;
  line-height: 1.2;
}

.sd-section-head__sub {
  font-size: 1rem;
  color: var(--wp--preset--color--contrast-2, #4a5f6f);
  margin: 0;
  max-width: 52ch;
  margin-inline: auto;
}

/* ==========================================================================
   sd-csec — community page section wrappers
   ========================================================================== */

.sd-csec {
  padding-block: 4rem;
}

.sd-csec--plans,
.sd-csec--homes {
  background: var(--wp--preset--color--base-2, #f5f7f9);
}

.sd-csec--team {
  background: #fff;
}

/* ==========================================================================
   sd-pcard — unified plan & home card
   ========================================================================== */

.sd-pcard {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #C8C8C8;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(6, 37, 55, 0.06);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.sd-pcard:hover {
  box-shadow: 0 6px 20px rgba(6, 37, 55, 0.13);
  transform: translateY(-2px);
}

/* Invisible full-card link overlay so the whole card is clickable */
.sd-pcard__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* --- Media (image area) -------------------------------------------------- */

.sd-pcard__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #C8C8C8;
  flex-shrink: 0;
}

.sd-pcard__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.sd-pcard:hover .sd-pcard__photo {
  transform: scale(1.04);
}

.sd-pcard__photo-empty {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #dde5ec 0%, #c8d4dd 100%);
}

/* Price badge — bottom of image */
.sd-pcard__price-badge {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  background: var(--wp--preset--color--primary, #e36c2b);
  color: #fff;
  font-family: 'Lexend', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-align: center;
  padding: 0.35em 0.75em;
}

/* Status snipe badge — top-left */
.sd-pcard__snipe {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  background: var(--wp--preset--color--primary, #e36c2b);
  color: #fff;
  font-family: 'Lexend', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.3em 0.7em;
}

/* Flag / pennant image — top-right */
.sd-pcard__flag {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 3;
  width: 56px;
}

.sd-pcard__flag img {
  width: 100%;
  display: block;
}

/* --- Body --------------------------------------------------------------- */

.sd-pcard__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1rem 1.1rem 1.1rem;
  gap: 0.5rem;
}

.sd-pcard__head {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.sd-pcard__name {
  font-family: 'Lexend', sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--wp--preset--color--contrast, #1F242E);
  margin: 0;
  line-height: 1.25;
}

.sd-pcard__community,
.sd-pcard__location,
.sd-pcard__homesite,
.sd-pcard__ready {
  font-size: 0.8rem;
  color: var(--wp--preset--color--contrast-2, #4a5f6f);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.3em;
}

.sd-pcard__location svg,
.sd-pcard__ready svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

/* --- Specs bar (horizontal pipe-separated list) -------------------------- */

.sd-pcard__specs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0;
}

.sd-pcard__specs li {
  font-size: 0.78rem;
  color: var(--wp--preset--color--contrast-2, #4a5f6f);
  font-family: 'Lexend', sans-serif;
  font-weight: 500;
  padding-inline: 0.55em;
  border-right: 1px solid #c9d8ea;
  line-height: 1.2;
}

.sd-pcard__specs li:first-child {
  padding-left: 0;
}

.sd-pcard__specs li:last-child {
  border-right: none;
}

/* --- Actions (two-button row) ------------------------------------------- */

.sd-pcard__actions {
  display: flex;
  gap: 0.6rem;
  margin-top: auto;
  padding-top: 0.5rem;
  position: relative;
  z-index: 2;
}

.sd-pcard__btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Lexend', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0.55em 0.75em;
  border-radius: 2px;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  white-space: nowrap;
}

.sd-pcard__btn--outline {
  background: transparent;
  border-color: var(--wp--preset--color--contrast, #1F242E);
  color: var(--wp--preset--color--contrast, #1F242E);
}

.sd-pcard__btn--outline:hover,
.sd-pcard__btn--outline:focus-visible {
  background: var(--wp--preset--color--contrast, #1F242E);
  color: #fff;
}

.sd-pcard__btn--primary {
  background: var(--wp--preset--color--primary, #e36c2b);
  border-color: var(--wp--preset--color--primary, #e36c2b);
  color: #fff;
}

.sd-pcard__btn--primary:hover,
.sd-pcard__btn--primary:focus-visible {
  background: #c45a1e;
  border-color: #c45a1e;
  color: #fff;
}

.sd-pcard__btn:focus-visible {
  outline: 2px solid var(--wp--preset--color--contrast, #1F242E);
  outline-offset: 2px;
}

/* ==========================================================================
   Responsive overrides
   ========================================================================== */

@media (max-width: 600px) {
    .sd-pcard__actions,
  .sd-pcard--plan .sd-pcard__actions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.6rem;
  }

  .sd-csec {
    padding-block: 2.5rem;
  }
}

/* ==========================================================================
   sd-section-head--light — inverted variant (white text on dark backgrounds)
   ========================================================================== */

.sd-section-head--light .sd-section-head__title {
  color: #fff;
}

.sd-section-head--light .sd-section-head__sub {
  color: rgba(255, 255, 255, 0.75);
}

/* ==========================================================================
   sd-cfeatures — Included Features accordion (dark navy background)
   ========================================================================== */

.sd-cfeatures {
  background: var(--wp--preset--color--contrast, #1F242E);
  padding-inline: var(--sd-content-gutter);
  padding-block: var(--sd-content-gutter-block);
  color: #fff;
}

.sd-cfeatures__inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 2rem;
}

.sd-cfeatures__list {
  display: flex;
  flex-direction: column;
  gap: 0;
  /* border-top: 1px solid rgba(255, 255, 255, 0.15); */
}

/* .sd-cfeatures__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
} */

.sd-cfeatures__item[open] .sd-cfeatures__icon::before {
  content: '−';
}

.sd-cfeatures__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 0;
  cursor: pointer;
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: #fff;
  list-style: none;
  user-select: none;
}

.sd-cfeatures__summary::-webkit-details-marker {
  display: none;
}

.sd-cfeatures__summary:hover {
  color: var(--wp--preset--color--primary, #e36c2b);
}

.sd-cfeatures__icon {
  width: 24px;
  height: 24px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  line-height: 1;
  transition: border-color 0.18s ease, color 0.18s ease;
}

.sd-cfeatures__icon::before {
  content: '+';
}

.sd-cfeatures__body {
  list-style: none;
  margin: 0;
  padding: 0 0 1.2rem 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0.4rem 1.5rem;
}

.sd-cfeatures__body li {
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.82);
  padding-left: 1.1em;
  position: relative;
}

.sd-cfeatures__body li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--wp--preset--color--primary, #e36c2b);
  font-size: 0.75rem;
}

/* Section background overrides for new sections */
.sd-csec--features {
  padding-block: 0;
  /* features section has its own inner padding */
  background: transparent;
}

.sd-csec--reviews {
  background: var(--wp--preset--color--base-2, #f5f7f9);
}

@media (max-width: 600px) {
  .sd-cfeatures__inner {
    padding-inline: 1rem;
  }

  .sd-cfeatures__body {
    grid-template-columns: 1fr;
  }
}

.sd-hero {
  position: relative !important;
  display: flex;
  min-height: clamp(680px, 70vh, 760px);
  overflow: hidden;
  background: #1F242E;
  isolation: isolate;
}

@media (min-width: 640px) {
   .wp-block-simplydwell-subscribe #gform_2 .gfield--width-half {
        grid-column: span 8 !important;
    }
	.wp-block-simplydwell-subscribe #gform_2 #field_submit{
		 grid-column: span 4 !important;
	}
}