/*
Theme Name:   New South Properties
Theme URI:
Author:       NLH Solutions
Author URI:
Description:  Genesis child theme for New South Properties — commercial real estate portfolio site serving the Carolinas and Virginia.
Version:      1.0.0
Template:     genesis
Text Domain:  new-south-properties
*/

/* ==================================================
   ROOT — THEME VARIABLES
================================================== */

:root {

  /* Brand */
  --color-navy:        #0F2E45;
  --color-navy-dark:   #02111D;
  --color-blue:        #0F2E45;
  --color-blue-dark:   #0F2E45;
  --color-red:         #B11F24;
  --color-red-dark:    #B11F24;

  /* Light / Neutral */
  --color-light-blue:  #B9D8EB;
  --color-ice-blue:    #DCE3EC;
  --color-silver:      #F1F1F0;
  --color-gray:        #C6C6C6;
  --color-mid-gray:    #4D4D4D;

  /* Base */
  --color-white:       #FFFFFF;
  --color-bg:          #FFFFFF;
  --color-surface:     #F5F7FA;
  --color-border:      #E1E5EB;
  --color-text:         var(--color-navy-dark);
  --color-text-muted:  #C6C6C6;
  --color-heading:     var(--color-navy-dark);

  /* Status */
  --color-success:     #1A7A4A;
  --color-warning:     #B45309;
  --color-error:       var(--color-red);

  /* Focus */
  --color-focus:       var(--color-navy);

  /* Font Families */
  --font-display:         "Cormorant Garamond", Georgia, serif;
  --font-display-italic:  "Cormorant Garamond", Georgia, serif;
  --font-heading:         "neue-haas-grotesk-display", sans-serif;
  --font-body:            "neue-haas-grotesk-text", sans-serif;

  /* Type Scale (rem, base = 16px) */
  --text-hero:     5.4rem;
  --text-h1:       4.25rem;
  --text-h2:       3.75rem;
  --text-h3:       1.75rem;
  --text-h4:       1.25rem;
  --text-h5:       1rem;
  --text-h6:       0.875rem;
  --text-body:     1.1rem;
  --text-small:    0.9rem;
  --text-label:    0.75rem;
  --text-nav:      0.9375rem;
  --text-stat:     3.5rem;

  /* Line Heights */
  --line-tight:    0.9;
  --line-snug:     1.15;
  --line-normal:   1.2;
  --line-relaxed:  1.5;
  --line-loose:    1.6875; /* 27px at 16px base */

  /* Font Weights */
  --weight-regular:  400;
  --weight-normal:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;

  /* Spacing (base unit: 4px = 0.25rem) */
  --space-1:   0.25rem;
  --space-2:   0.5rem;
  --space-3:   0.75rem;
  --space-4:   1rem;
  --space-6:   1.5rem;
  --space-8:   2rem;
  --space-12:  3rem;
  --space-16:  4rem;
  --space-20:  5rem;
  --space-24:  6rem;
  --space-32:  8rem;
  --space-36:  9rem;

  /* Layout */
  --max-width:        1280px;
  --radius-sm:        4px;
  --radius-btn:       5px;
  --radius-md:        8px;
  --radius-lg:        12px;
  --radius-pill:      100px;

  /* Shadows */
  --shadow-sm:        0 2px 8px rgba(0,0,0,0.08);
  --shadow-md:        0 6px 20px rgba(0,0,0,0.12);
  --shadow-lg:        0 10px 40px rgba(0,0,0,0.16);

  /* Transitions */
  --transition-fast:  0.15s ease;
  --transition-base:  0.25s ease;
  --transition-slow:  0.35s ease;

  /* Z-Index */
  --z-dropdown:       100;
  --z-sticky:         500;
  --z-modal:          1000;
  --z-tooltip:        1100;
}

/* ==================================================
   BASE RESET
================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: var(--font-body);
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  margin: 0;
  padding: 0;
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  line-height: var(--line-loose);
  color: var(--color-text);
  background-color: var(--color-bg);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--color-blue);
  text-decoration: none;
  transition: var(--transition-base);
}

a:hover {
  color: var(--color-blue-dark);
  text-decoration: underline;
}

a:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ==================================================
   TYPOGRAPHY
================================================== */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--weight-normal);
  color: var(--color-heading);
  margin-top: 0;
  margin-bottom: var(--space-4);
  line-height: var(--line-snug);
}

h1 { font-size: var(--text-h1); line-height: var(--line-tight); }
h2 { font-size: var(--text-h2); font-weight: var(--weight-normal); line-height: var(--line-normal); }
h3 { font-size: var(--text-h3); font-weight: var(--weight-semibold); }
h4 { font-size: var(--text-h4); font-weight: var(--weight-semibold); }
h5 { font-size: var(--text-h5); font-weight: var(--weight-semibold); }
h6 { font-size: var(--text-h6); font-weight: var(--weight-semibold); }

p {
  margin-bottom: var(--space-4);
  line-height: var(--line-loose);
}

.section-label {
  font-family: var(--font-heading);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  color: var(--color-red);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--space-3);
}

/* ==================================================
   BUTTONS
================================================== */

.btn-primary {
  line-height: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  padding: var(--space-4) var(--space-8);
  min-height: 44px;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  text-decoration: none;
  background-color: var(--color-red);
  color: var(--color-white);
  transition: var(--transition-base);
}

.btn-primary:hover {
  background-color: var(--color-red-dark);
  color: var(--color-white);
  text-decoration: none;
}

.btn-primary:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

/* Secondary — for dark backgrounds */
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: var(--weight-semibold);
  padding: var(--space-3) var(--space-8);
  min-height: 44px;
  border: 1px solid var(--color-white);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: var(--text-small);
  text-decoration: none;
  background-color: transparent;
  color: var(--color-white);
  transition: var(--transition-base);
}

.btn-secondary:hover {
  background-color: var(--color-red-dark);
  border-color: var(--color-red-dark);
  color: var(--color-white);
  text-decoration: none;
}

.btn-secondary:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: var(--weight-semibold);
  padding: var(--space-3) var(--space-8);
  min-height: 44px;
  border: 1px solid var(--color-text-muted);
  border-radius: var(--radius-sm);
  cursor: pointer;
  text-decoration: none;
  background-color: transparent;
  color: var(--color-navy);
  transition: var(--transition-base);
}

.btn-ghost:hover {
  background-color: var(--color-navy);
  color: var(--color-white);
  text-decoration: none;
}

.btn-ghost:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

/* ==================================================
   SKIP LINK
================================================== */

.skip-to-content {
  position: absolute;
  top: -100%;
  left: var(--space-4);
  z-index: 9999;
  padding: var(--space-3) var(--space-6);
  background: var(--color-blue);
  color: var(--color-white);
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  text-decoration: none;
  border-radius: 0 0 4px 4px;
}

@media (prefers-reduced-motion: no-preference) {
  .skip-to-content {
    transition: top 0.15s ease;
  }
}

.skip-to-content:focus,
.skip-to-content:focus-visible {
  top: 0;
  outline: 3px solid #ffffff;
  outline-offset: -4px;
}

.skip-to-content:hover {
  background: var(--color-navy);
  color: var(--color-white);
  text-decoration: underline;
}

/* ==================================================
   HEADER — default state (all pages + scrolled)
================================================== */

.site-header {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100%;
  background-color: var(--color-white);
  box-shadow: 0 2px 12px rgba(0,0,0,0.16);
}

/* Transparent state — homepage only, before scroll */
.has-transparent-header .site-header {
  position: fixed;
  background-color: transparent;
  box-shadow: none;
}

@media (prefers-reduced-motion: no-preference) {
  .has-transparent-header .site-header {
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
  }
}

/* JS adds .site-header--scrolled after 80px — reverts to solid white */
.has-transparent-header .site-header--scrolled {
  background-color: var(--color-white);
  box-shadow: 0 2px 12px rgba(0,0,0,0.16);
}

/* Revert CTA to default navy style once scrolled */
.has-transparent-header .site-header--scrolled .site-header__cta {
  align-self: stretch;
  padding: 0 var(--space-8);
  height: auto;
  background-color: var(--color-navy);
  color: var(--color-white);
  border: none;
  border-radius: 0;
}

.has-transparent-header .site-header--scrolled .site-header__cta:hover {
  background-color: var(--color-red);
}

/* Inner container */
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0 0 0 var(--space-8);
  height: 4.5rem; /* 72px */
}

/* ==================================================
   LOGO
================================================== */

.site-header__logo-link {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
}

.site-header__logo-link:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 4px;
  border-radius: 2px;
}

.site-header__logo {
  display: block;
  height: 2.75rem; /* 44px */
  width: auto;
  max-width: 220px;
}

/* Default: color logo visible, white hidden */
.site-header__logo--white { display: none; }
.site-header__logo--color { display: block; }

/* Transparent homepage (not scrolled): swap to white logo */
.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__logo--white { display: block; }
.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__logo--color { display: none; }

/* ==================================================
   PRIMARY NAVIGATION
================================================== */

.site-header__nav {
  display: flex;
  align-items: center;
  align-self: stretch;
  gap: var(--space-8);
}

.site-header__menu {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-header__menu > li {
  position: relative;
}

.site-header__menu a {
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-navy-dark);
  text-decoration: none;
  line-height: 1;
  white-space: nowrap;
  position: relative;
  display: block;
  padding: var(--space-2) 0;
}

/* Animated underline on hover */
.site-header__menu > li > a::after {
  content: '';
  display: block;
  position: absolute;
  bottom: -3px;
  left: 0;
  right: 0;
  height: 2px;
  background-color: var(--color-red);
  transform: scaleX(0);
  transform-origin: left center;
}

@media (prefers-reduced-motion: no-preference) {
  .site-header__menu a { transition: color 0.2s ease; }
  .site-header__menu > li > a::after { transition: transform 0.2s ease; }
}

.site-header__menu > li > a:hover::after,
.site-header__menu .current-menu-item > a::after,
.site-header__menu .current-page-ancestor > a::after {
  transform: scaleX(1);
}

.site-header__menu a:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 4px;
  border-radius: 2px;
}

.site-header__menu ul li ul.sub-menu li a {
  color: var(--color-heading);
}

.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__menu {
  gap: var(--space-12);
  margin-right: var(--space-6);
}

.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__nav {
    margin-right: var(--space-6);
}

/* Top-level links are white on transparent homepage header */
.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__menu > li > a {
  color: var(--color-white);
}

/* Hover stays white (not blue) on transparent bg — top-level only */
.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__menu > li > a:hover {
  color: var(--color-white);
  opacity: 0.8;
}

/* Dropdown links keep interior-page treatment regardless of header state */
.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__menu ul li a {
  color: var(--color-navy);
  opacity: 1;
}

.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__menu ul li a:hover {
  background-color: var(--color-ice-blue);
  color: var(--color-blue);
  opacity: 1;
}

/* Underline accent is white on transparent bg */
.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__menu > li > a::after {
  background-color: var(--color-white);
}

/* ==================================================
   DROPDOWNS
================================================== */

.site-header__menu ul {
  position: absolute;
  top: calc(100% + 8px);
  left: -25px;
  min-width: 220px;
  background-color: var(--color-white);
  border-radius: var(--radius-sm);
  list-style: none;
  padding: var(--space-4);
  margin: 0;
  opacity: 0;
  visibility: hidden;
  box-shadow: var(--shadow-md);
  z-index: var(--z-dropdown);
}

@media (prefers-reduced-motion: no-preference) {
  .site-header__menu ul {
    transition: opacity var(--transition-base), visibility var(--transition-base);
  }
}

.site-header__menu > li:hover > ul,
.site-header__menu > li:focus-within > ul,
.site-header__menu ul:hover,
.site-header__menu ul:focus-within {
  opacity: 1;
  visibility: visible;
}

.site-header__menu ul li:not(:last-child) {
  margin-bottom: var(--space-2);
}

.site-header__menu ul li a {
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: var(--weight-normal);
  color: var(--color-navy);
  text-transform: capitalize;
  letter-spacing: normal;
  padding: var(--space-2) var(--space-4);
  display: block;
  white-space: nowrap;
  text-decoration: none;
  border-radius: var(--radius-sm);
}

/* Remove underline from dropdown links */
.site-header__menu ul li a::after { display: none; }

.site-header__menu ul li a:hover {
  background-color: var(--color-ice-blue);
  color: var(--color-blue);
  text-decoration: none;
}

.site-header__menu ul li a:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: -2px;
  background-color: var(--color-ice-blue);
  color: var(--color-blue);
}


/* ==================================================
   VIEW PROPERTIES CTA
================================================== */

/* Interior pages + scrolled: full-height navy block */
.site-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  padding: 0 var(--space-8);
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: var(--weight-semibold);
  text-transform: none;
  letter-spacing: 0.02em;
  color: var(--color-white);
  text-decoration: none;
  background-color: var(--color-navy);
  border: none;
  border-radius: 0;
  white-space: nowrap;
  flex-shrink: 0;
}

@media (prefers-reduced-motion: no-preference) {
  .site-header__cta { transition: background-color 0.2s ease; }
}

.site-header__cta:hover {
  background-color: var(--color-blue);
  color: var(--color-white);
  text-decoration: none;
}

.site-header__cta:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: -3px;
}

/* Transparent homepage (not scrolled): outlined button */
.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__cta {
  align-self: center;
  padding: 1rem 1.625rem;
  height: auto;
  background-color: transparent;
  color: var(--color-white);
  border: 1px solid var(--color-white);
  border-radius: 5px;
}

.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__cta:hover {
  background-color: var(--color-white);
  color: var(--color-navy);
}

/* ==================================================
   MOBILE HAMBURGER TOGGLE
================================================== */

.site-header__toggle {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: 4px;
}

.site-header__toggle:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.site-header__hamburger {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 22px;
}

.site-header__hamburger span {
  display: block;
  height: 2px;
  background-color: var(--color-navy-dark);
  border-radius: 2px;
}

/* Transparent homepage: white hamburger lines */
.has-transparent-header .site-header:not(.site-header--scrolled) .site-header__hamburger span {
  background-color: var(--color-white);
}

@media (prefers-reduced-motion: no-preference) {
  .site-header__hamburger span {
    transition: transform 0.25s ease, opacity 0.2s ease;
  }
}

/* Active / X state */
.site-header__toggle.is-active .site-header__hamburger span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.site-header__toggle.is-active .site-header__hamburger span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.site-header__toggle.is-active .site-header__hamburger span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ==================================================
   MOBILE NAVIGATION — FULL-SCREEN OVERLAY
================================================== */

.site-header__mobile-nav {
  display: none; /* shown via 767px breakpoint rule */
  position: fixed;
  inset: 0;
  z-index: 999;
  background-color: var(--color-navy);
  background-image: url('/wp-content/themes/new-south/images/navy-bkg.png');
  background-size: cover;
  background-position: center top;
  overflow-y: auto;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}


@media (prefers-reduced-motion: no-preference) {
  .site-header__mobile-nav {
    transition: opacity 0.4s ease, visibility 0.4s ease;
  }
}

.site-header__mobile-nav.is-open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

/* Close button — upper right corner */
.site-header__mobile-close {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  background: transparent;
  border: 0px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
  color: var(--color-white);
  cursor: pointer;
  padding: 0;
}

@media (prefers-reduced-motion: no-preference) {
  .site-header__mobile-close {
    transition: background 0.2s ease, border-color 0.2s ease;
  }
}

.site-header__mobile-close:hover {
  background:transparent;
  opacity: 0.7;
}

.site-header__mobile-close:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

/* Inner layout — left-aligned, 40px from top, 30px from left */
.site-header__mobile-nav-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  min-height: 100svh;
  padding: 40px var(--space-8) var(--space-16) 30px;
}

/* Nav list */
.site-header__mobile-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  width: 100%;
}

.site-header__mobile-menu li {
  border-bottom: none;
  width: 100%;
}

/* Stagger each item's entrance */
.site-header__mobile-menu li:nth-child(1)  { --item-delay: 0.10s; }
.site-header__mobile-menu li:nth-child(2)  { --item-delay: 0.16s; }
.site-header__mobile-menu li:nth-child(3)  { --item-delay: 0.22s; }
.site-header__mobile-menu li:nth-child(4)  { --item-delay: 0.28s; }
.site-header__mobile-menu li:nth-child(5)  { --item-delay: 0.34s; }
.site-header__mobile-menu li:nth-child(6)  { --item-delay: 0.40s; }
.site-header__mobile-menu li:nth-child(7)  { --item-delay: 0.46s; }
.site-header__mobile-menu li:nth-child(8)  { --item-delay: 0.52s; }

@media (prefers-reduced-motion: no-preference) {
  .site-header__mobile-menu > li {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.4s ease var(--item-delay, 0.1s),
                transform 0.4s ease var(--item-delay, 0.1s);
  }

  .site-header__mobile-nav.is-open .site-header__mobile-menu > li {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Parent links — display font */
.site-header__mobile-menu > li > a {
  display: inline;
  padding: var(--space-2) 0;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 6vw, 2.75rem);
  font-weight: 400;
  color: var(--color-white);
  text-decoration: none;
  line-height: 1.15;
}

/* Parent item row — link + toggle button side by side */
.site-header__mobile-menu > li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
  padding: 0;
}

@media (prefers-reduced-motion: no-preference) {
  .site-header__mobile-menu > li > a {
    transition: opacity 0.2s ease;
  }
}

.site-header__mobile-menu > li > a:hover,
.site-header__mobile-menu > li > a:focus-visible {
  opacity: 0.7;
}

.site-header__mobile-menu > li > a:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 4px;
  border-radius: 2px;
}

/* + / − toggle button */
.submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0px;
  min-width: 44px;
  min-height: 44px;
  color: var(--color-white);
  cursor: pointer;
  padding: 8px 13px;
  flex-shrink: 0;
}

.submenu-toggle:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 2px;
  border-radius: 2px;
}

.submenu-toggle__icon {
  font-size: 2rem;
  line-height: 1;
  font-style: normal;
  font-family: var(--font-body);
}

@media (prefers-reduced-motion: no-preference) {
  .submenu-toggle {
    transition: opacity 0.2s ease;
  }
}

.submenu-toggle:hover {
  background: transparent;
  opacity: 0.7;
}

/* Submenu — hidden by default, shown on .submenu-open */
.site-header__mobile-menu .sub-menu {
  display: none;
  list-style: none;
  padding: var(--space-1) 0 var(--space-2) var(--space-2);
  margin: 0;
  width: 100%;
  flex-basis: 100%;
}

.site-header__mobile-menu li.submenu-open > .sub-menu {
  display: block;
}

.site-header__mobile-menu .sub-menu a {
  display: block;
  padding: var(--space-1) 0;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  line-height: 1.4;
}

.site-header__mobile-menu .sub-menu a:hover,
.site-header__mobile-menu .sub-menu a:focus-visible {
  color: var(--color-white);
}

/* Mobile CTA */
.site-header__mobile-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: var(--space-8);
  padding: 0 var(--space-8);
  height: 3rem;
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: var(--weight-semibold);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-white);
  text-decoration: none;
  background-color: var(--color-red);
  border-radius: 4px;
  opacity: 0;
  transform: translateY(12px);
}

@media (prefers-reduced-motion: no-preference) {
  .site-header__mobile-cta {
    transition: background-color 0.2s ease, opacity 0.4s ease 0.5s, transform 0.4s ease 0.5s;
  }

  .site-header__mobile-nav.is-open .site-header__mobile-cta {
    opacity: 1;
    transform: translateY(0);
  }
}

.site-header__mobile-cta:hover  { background-color: var(--color-red-dark); color: var(--color-white); text-decoration: none; }
.site-header__mobile-cta:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }

/* Decorative ns-icon — fixed in lower-right of overlay */
.site-header__mobile-icon {
  position: fixed;
  bottom: var(--space-8);
  right: var(--space-8);
  width: 100px;
  height: auto;
  pointer-events: none;
  z-index: 2;
}

/* Hamburger lines turn white when overlay is open */
.site-header__toggle.is-active .site-header__hamburger span {
  background-color: var(--color-white);
}

body.mobile-nav-open { overflow: hidden; }


.menu-item-45 > a {
  pointer-events: none;
  cursor: default;
}

.menu-item-45:hover > a::after {
  transform: scaleX(1);
}

/* ==================================================
   FOOTER
================================================== */

.site-footer {
  background-color: var(--color-blue);
  color: var(--color-white);
  padding: 0;
}

.site-footer__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* ─── Grid ───────────────────────────────────────────────────────────────── */

.site-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--space-8);
  padding: var(--space-16) 0 var(--space-12);
  border-bottom: 1px solid rgba(255,255,255,0.15);
}

.site-footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

/* ─── Col 1: Brand ───────────────────────────────────────────────────────── */

.site-footer__col--brand {
  gap: var(--space-4);
}

.site-footer__logo-link {
  display: inline-block;
  width: fit-content;
  transition: var(--transition-base);
}

.site-footer__logo-link:hover { opacity: 0.85; }

.site-footer__logo-link:focus {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.site-footer__logo {
  height: 48px;
  width: auto;
  display: block;
}

.site-footer__tagline {
  font-family: var(--font-body);
  font-size: var(--text-nav);
  font-weight: var(--weight-regular);
  line-height: var(--line-loose);
  color: var(--color-white);
  margin: 0;
  max-width: 300px;
}

.site-footer__badge {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-4);
}

.site-footer__badge-img {
  max-width: 71px;
  width: auto;
  height: auto;
  display: block;
  flex-shrink: 0;
}

.site-footer__badge-tagline {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: var(--weight-semibold);
  color: var(--color-light-blue);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.4;
  margin: 0;
  max-width: 196px;
}

/* ─── Cols 2 & 3: Quick Links & Capabilities ─────────────────────────────── */

.site-footer__col--quick-links,
.site-footer__col--capabilities {
  gap: var(--space-4);
}

.site-footer__col--quick-links .footer-widget,
.site-footer__col--capabilities .footer-widget {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.site-footer__col--quick-links .footer-widget__title,
.site-footer__col--capabilities .footer-widget__title {
  font-family: var(--font-heading);
  font-size: var(--text-h5);
  font-weight: var(--weight-semibold);
  color: var(--color-white);
  margin: 0 0 var(--space-3);
  text-transform: none;
}

.site-footer__col--quick-links .menu,
.site-footer__col--capabilities .menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.site-footer__col--quick-links .menu li,
.site-footer__col--capabilities .menu li {
  margin: 0;
  list-style: none;
}

.site-footer__col--quick-links .menu a,
.site-footer__col--capabilities .menu a {
  font-family: var(--font-body);
  font-size: var(--text-nav);
  font-weight: var(--weight-regular);
  line-height: var(--line-normal);
  color: var(--color-white);
  text-decoration: none;
  display: block;
  transition: var(--transition-base);
}

.site-footer__col--quick-links .menu a:hover,
.site-footer__col--capabilities .menu a:hover {
  color: var(--color-light-blue);
  text-decoration: underline;
  opacity: 1;
}

.site-footer__col--quick-links .menu a:focus,
.site-footer__col--capabilities .menu a:focus {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
  text-decoration: underline;
  border-radius: var(--radius-sm);
}

/* ─── Col 4: Contact ─────────────────────────────────────────────────────── */

.site-footer__col--contact {
  gap: var(--space-6);
}

.site-footer__col-title {
  font-family: var(--font-heading);
  font-size: var(--text-h5);
  font-weight: var(--weight-semibold);
  color: var(--color-white);
  margin: 0;
  text-transform: none;
}

.site-footer__address {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.site-footer__address-line {
  font-family: var(--font-body);
  font-size: var(--text-nav);
  font-weight: var(--weight-regular);
  color: var(--color-white);
  line-height: var(--line-normal);
  display: block;
}

.site-footer__phone,
.site-footer__email {
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--text-nav);
  line-height: var(--line-normal);
}

.site-footer__contact-link {
  font-family: var(--font-body);
  font-size: var(--text-nav);
  font-weight: var(--weight-regular);
  line-height: var(--line-normal);
  color: var(--color-white);
  text-decoration: none;
  transition: var(--transition-base);
}

.site-footer__contact-link:hover {
  color: var(--color-light-blue);
  text-decoration: underline;
  opacity: 1;
}

.site-footer__contact-link:focus {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

/* Inline SVG icons for phone & email */
.site-footer__phone::before,
.site-footer__email::before {
  content: '';
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.site-footer__phone::before {
  background-image: url(/wp-content/themes/new-south/images/icon-phone.png);
}

.site-footer__email::before {
  background-image: url(/wp-content/themes/new-south/images/icon-email.png);
}

/* ─── Contact icons (address pin, phone, email) ──────────────────────────── */

.site-footer__address {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: var(--space-3);
}

.site-footer__address::before {
  content: '';
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 2px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23B8D8EB"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></svg>');
}

.site-footer__address-link {
  text-decoration: none;
  color: inherit;
}

.site-footer__address-link:hover .site-footer__address-line {
  color: var(--color-light-blue);
}

.site-footer__address-link:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.site-footer__address-lines {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}


/* ─── Social Icons (bottom bar) ──────────────────────────────────────────── */

.site-footer__social-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: var(--space-3);
}

.site-footer__social-item {
  margin: 0;
  list-style: none;
}

.site-footer__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--color-light-blue);
  color: var(--color-blue);
  text-decoration: none;
  transition: var(--transition-base);
}

.site-footer__social-link:hover {
  background-color: var(--color-white);
  text-decoration: none;
}

@media (prefers-reduced-motion: no-preference) {
  .site-footer__social-link:hover {
    transform: scale(1.1);
  }
}

.site-footer__social-link:focus {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.site-footer__social-icon {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

/* ─── Bottom Bar ─────────────────────────────────────────────────────────── */

.site-footer__bottom {
  padding: var(--space-6) 0;
}

.site-footer__bottom-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-6);
}

.site-footer__copyright {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: var(--weight-regular);
  color: rgba(255,255,255,0.7);
  margin: 0;
  line-height: 1.5;
}

.site-footer__copyright a {
  color: inherit;
  text-decoration: underline;
  transition: var(--transition-base);
}

.site-footer__copyright a:hover { opacity: 0.9; }

.site-footer__copyright a:focus {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.site-footer__bottom .site-footer__social {
  margin-left: auto;
  flex-shrink: 0;
}

/* ==================================================
   RESPONSIVE — TABLET (max 1024px)
================================================== */

@media (max-width: 1024px) {
  .site-header__menu { gap: var(--space-4); }

  .site-footer__inner { padding: 0 var(--space-6); }

 .site-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--space-6);
  padding: var(--space-12) 0 var(--space-8);
}

  .site-footer__col--brand {
    grid-column: 1 / 2;
    margin-bottom: var(--space-4);
  }

  .site-footer__col--quick-links { grid-column: 1; }
  .site-footer__col--capabilities { grid-column: 2; }

  .site-footer__col--contact {
    grid-column: 1 / -1;
    margin-top: var(--space-4);
  }

  .site-footer__bottom-inner {
    padding: 0 var(--space-6);
    flex-direction: column;
    align-items: flex-start;
  }

  .site-footer__bottom .site-footer__social {
    margin-left: 0;
    margin-top: var(--space-4);
  }
}

/* ==================================================
   RESPONSIVE — MOBILE (max 768px)
================================================== */

@media (max-width: 1020px) {
  .site-header__inner {
    padding: 0 var(--space-6);
    height: 4rem;
  }

  .site-header__nav { display: none; }
  .site-header__toggle { display: flex; }
  .site-header__mobile-nav { display: block; }

  .site-footer { padding: var(--space-12) 0 0; }

  .site-footer__inner { padding: 0 var(--space-6); }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
    padding: var(--space-8) 0 var(--space-6);
  }

  .site-footer__col--brand,
  .site-footer__col--quick-links,
  .site-footer__col--capabilities,
  .site-footer__col--contact {
    grid-column: auto;
    margin: 0;
    text-align: center;
  }

   .site-footer__col--quick-links,
  .site-footer__col--capabilities {
    display: none !important;
  }


  .site-footer__logo { height: 48px; }

  .site-footer__tagline {
    font-size: 0.8125rem;
    max-width: 100%;
  }

  .site-footer__badge-img { max-width: 56px; }

  .site-footer__col--quick-links .footer-widget__title,
  .site-footer__col--capabilities .footer-widget__title,
  .site-footer__col-title {
    font-size: var(--text-h6);
  }

  .site-footer__col--quick-links .menu,
  .site-footer__col--capabilities .menu { gap: var(--space-2); }

  .site-footer__col--quick-links .menu a,
  .site-footer__col--capabilities .menu a,
  .site-footer__address-line,
  .site-footer__contact-link { font-size: 0.8125rem; }

  .site-footer__bottom { padding: var(--space-6) 0; }

  .site-footer__address,
  .site-footer__address-lines,
  .site-footer__phone,
  .site-footer__email,
  .site-footer__social,
  .site-footer__social-list {
    justify-content: center;
    text-align: center;
  }

  .site-footer__phone::before,
  .site-footer__email::before,
  .site-footer__address::before {
    display: none;
  }

  .site-footer__bottom-inner {
    padding: 0 var(--space-6);
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .site-footer__copyright { font-size: 0.7rem; line-height: 1.4; }

  .site-footer__bottom .site-footer__social-list {
    margin-left: 0;
    margin-top: var(--space-4);
    gap: var(--space-2);
    justify-content: center;
  }

  .site-footer__social-link { width: 36px; height: 36px; }
  .site-footer__social-icon { width: 18px; height: 18px; }
}

/* ==================================================
   RESPONSIVE — SMALL MOBILE (max 600px)
================================================== */

@media (max-width: 600px) {
      .site-footer__col {
        display: flex;
        gap: var(--space-4);
        justify-content: center;
        align-items: center;
    }
  .site-footer__grid { gap: var(--space-4); }
  .site-footer__badge-tagline {
    text-align: left;
  }
}

/* ==================================================
   HOMEPAGE — HERO
================================================== */

.home-hero {
  position: relative;
  width: 100%;
  min-height: 90vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}

/* Video background */
.home-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.home-hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Gradient overlay for text readability */
.home-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.63);
}



.home-hero__overlay::after,
.home-hero__overlay::before {
    content: '';
    position: absolute;
    bottom: -50%;
    width: clamp(780px, 84vw, 1260px);
    height: clamp(660px, 72vw, 1026px);
    background-image: url('/wp-content/themes/new-south/images/video-mask.png');
    background-repeat: no-repeat;
    background-size: contain;
    display: block;
    pointer-events: none;
}

.home-hero__overlay::after {
    right: clamp(-500px, -36vw, -1000px);
    background-position: right center;
}

.home-hero__overlay::before {
    left: clamp(-800px, 36vw, -1000px);
    background-position: left center;
    transform: scaleX(-1);
}

/* Content layer */
.home-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  align-items: center;
  padding: var(--space-32) 0 var(--space-24);
}

.home-hero__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
  width: 100%;
}

.home-hero__heading {
  font-family: var(--font-display);
  font-size: var(--text-hero);
  font-weight: var(--weight-normal);
  line-height: var(--line-tight);
  color: var(--color-white);
  margin: 0 0 var(--space-6);
  max-width: 28ch;
  letter-spacing: 0px;
  position: relative;
}

.home-hero__heading span {
  display: inline-block;
  position: relative;
}

.home-hero__heading span::after {
  content: '';
  position: absolute;
  left: -0.1em;
  right: -0.1em;
  bottom: 0;
    height: 45%;
  background-color: rgba(25, 79, 145, 0.8);
  z-index: -1;
}




.home-hero__subheading {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: var(--weight-regular);
  line-height: var(--line-relaxed);
  color: var(--color-white);
  margin: var(--space-8) 0 0;
  max-width: 52ch;
}

@media (prefers-reduced-motion: no-preference) {
  .home-hero__video {
    transition: opacity var(--transition-slow);
  }
}

/* ── Hero responsive ──────────────────────────────────────────────────────── */

@media (max-width: 1430px) {
  .home-hero__heading { font-size: 4.6rem; }
  .home-hero__subheading { font-size: 1.0625rem; }
}


@media (max-width: 1024px) {
  .home-hero__heading { font-size: 2.5rem; }
  .home-hero__subheading { font-size: 1.0625rem; }
}

@media (max-width: 768px) {
  .home-hero__heading { font-size: 2rem; max-width: 100%; }
  .home-hero__subheading { font-size: 1rem; }
  .home-hero {
    min-height: 60vh;
  }
  .home-hero__content { padding: var(--space-24) 0 var(--space-16); }
  .home-hero__inner { padding: 0 var(--space-6); text-align: center; }
 .home-hero__subheading {
  max-width:100%;
 }
 .home-hero__overlay::after {
  display: none;
 }
 .home-hero__overlay::before {
    display: none;
 }

}

@media (max-width: 600px) {
  .home-hero__heading { font-size: 2.5rem; }
 .home-hero__heading span::after {
  display: none;
 }
  .home-hero__content { padding: var(--space-20) 0 var(--space-12); }
}

/* ==================================================
   HOMEPAGE — STATS BAR
================================================== */

.home-stats {
  background-color: var(--color-light-blue);
  padding: var(--space-20) 0;
  background-size: cover;
  background-image: url(/wp-content/themes/new-south/images/lt-blue-bkg.jpg);
}

.home-stats__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.home-stats__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-8);
  list-style: none;
  margin: 0;
  padding: 0;
}

.home-stats__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-2);
}

.home-stats__value {
  font-family: var(--font-body);
  font-size: var(--text-stat);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
  color: var(--color-blue);
  margin-bottom: var(--space-1);
}

.home-stats__label {
  font-family: var(--font-heading);
  font-size: var(--text-nav);
  font-weight: var(--weight-semibold);
  color: var(--color-navy);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: var(--line-normal);
}

/* ── Stats responsive ─────────────────────────────────────────────────────── */

@media (max-width: 768px) {
  .home-stats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-6);
  }
   .home-stats__value {
        font-size: 3rem;
        display: block;
    }
}

@media (max-width: 767px) {
  /* When Slick is active, override the grid layout */
  .home-stats__grid.slick-initialized {
    display: block;
  }

  .home-stats__grid.slick-initialized .home-stats__item {
    text-align: center;
    padding: 0 var(--space-6);
  }

  /* Dots */
  .home-stats__dots {
    list-style: none;
    margin: var(--space-6) 0 0;
    padding: 0;
    display: flex !important;
    justify-content: center;
    gap: var(--space-2);
  }

  .home-stats__dots li button {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: var(--color-blue);
    padding: 0;
    opacity: 0.7;
    font-size: 0;
    cursor: pointer;
    transition: background 0.2s;
  }

  .home-stats__dots li.slick-active button {
    background: var(--color-blue);
    opacity: 1;
  }
}

@media (max-width: 600px) {
  .home-stats { padding: var(--space-8) 0; }
  .home-stats__inner { padding: 0 var(--space-6); }
 
}

/* ==================================================
   HOMEPAGE — INTRO
================================================== */

.home-intro {
  background-color: var(--color-bg);
  padding: var(--space-24) 0;
}

.home-intro__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: var(--space-16);
  align-items: start;
}

.home-intro__inner--has-awards {
  grid-template-columns: 0.7fr 1fr;
}

.home-intro__left {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

/* Right col: body content + CTA */
.home-intro__right {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.home-intro__eyebrow {
font-family: var(--font-body);
  font-size: var(--text-h6);
  text-transform: uppercase;
  font-weight: var(--weight-semibold);
  line-height: var(--line-tight);
  color: var(--color-red);
  margin: 0px;
}

.home-intro__heading {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-normal);
  line-height: var(--line-tight);
  color: var(--color-heading);
  margin: -10px 0px 0px;
  max-width: 525px;
}



/* WYSIWYG body copy */
.home-intro__body {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--line-loose);
  color: var(--color-text);
}

.home-intro__body p { margin-bottom: var(--space-4); }
.home-intro__body p:last-child { margin-bottom: 0; }

.home-intro__body ul {
  list-style: none !important;
  padding: 0;
  margin: 0 0 var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.home-intro__body ul li {
  position: relative;
  font-size: var(--text-small);
  padding-left: var(--space-6);
  line-height: var(--line-loose);
}

.home-intro__body ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.35em;
  width: 15px;
  height: 15px;
background-image: url('/wp-content/themes/new-south/images/check-bullet.png');
background-repeat: no-repeat;
  background-size: contain;
}

.home-intro__list {
  list-style: none !important;
  padding: 0;
  margin: 0 0 var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.home-intro__list li {
  position: relative;
  font-size: var(--text-small);
  padding-left: var(--space-6);
  line-height: var(--line-loose);
}

.home-intro__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.35em;
  width: 15px;
  height: 15px;
  background-image: url('/wp-content/themes/new-south/images/check-bullet.png');
  background-repeat: no-repeat;
  background-size: contain;
}

/* Enlarged when the right col is list-only (paragraph moved to the left col) */
.home-intro__list--large li {
  font-size: var(--text-body);
}

.home-intro__cta {
  background-color: var(--color-navy);
  align-self: flex-start;
}

/* Awards row — 3 logos side by side within the left column */
.home-intro__awards {
  display: flex;
  justify-content: flex-start;
  width: 90%;
  padding: var(--space-6) var(--space-4) 0;
  flex-direction: row;
  gap: var(--space-6);
  align-items:  flex-start;
}

.home-intro__award {
  display: flex;
  align-items:  flex-start;
  justify-content:  flex-start;;
  flex: 1;
}

.home-intro__award-img {
  max-width: 150px;
  width: 100%;
  height: auto;
}

/* ── Intro responsive ─────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
  .home-intro__inner {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-10);
  }
}

@media (max-width: 768px) {
  .home-intro {
    padding: var(--space-16) 0;
  }
  .home-intro__inner {
    text-align: center;
    grid-template-columns: 1fr;
    gap: var(--space-8);
    padding: 0 var(--space-6);
  }
  .home-intro__awards {
    width: 100%;
    gap: var(--space-4);
  }
  .home-intro__heading {
    font-size: 2.5rem;
  }
  .home-intro__body ul, .home-intro__list {
    text-align: left;
  }
  .home-intro__award-img { max-width: 150px; }
  .home-intro__cta {
    align-self: center;
}

 
}

/* ==================================================
   HOMEPAGE — PORTFOLIO MAP
================================================== */

.home-map {
  background-color: var(--color-navy);
}

.home-map__inner {
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-16);
  align-items: self-end;
}

.home-map__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  padding: 0 0 var(--space-20);
}

.home-map__heading {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-normal);
  line-height: var(--line-snug);
  color: var(--color-white);
  margin: 0;
}

.home-map__description {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--line-loose);
  color: rgba(255, 255, 255, 1);
  margin: 0;
  max-width: 490px;
}

.home-map__buttons {
  display: flex;
  gap: 10px;
}

.home-map__cta {
  align-self: flex-start;
}

/* ── Interactive map wrapper (SVG + Google Maps layers) ───────────────────── */

.home-map-interactive__map-wrapper {
  position: relative;
  width: 100%;
  max-height: 600px;
  overflow: hidden;
}

/* State outline paths — all US states */
.home-map-interactive__state {
  fill: var(--color-ice-blue);
  stroke: var(--color-navy);
  stroke-width: 0.8;
  stroke-opacity: 0.5;
  stroke-linejoin: round;
}

/* Active states (NC, SC, VA) — white fill */
.home-map-interactive__state--active {
  fill: var(--color-white);
}

/* SVG marker layer — max-height caps the map at 600px regardless of viewport width */
.home-map-interactive__svg {
  display: block;
  width: 100%;
  height: auto;
  max-height: 600px;
  cursor: grab;
  user-select: none;
}

.home-map-interactive__svg.is-dragging {
  cursor: grabbing;
}

/* Suppress focus ring on mouse click; keyboard users retain :focus-visible outline */
.home-map-interactive__marker:focus:not(:focus-visible) {
  outline: none;
}

@media (prefers-reduced-motion: no-preference) {
  .home-map-interactive__svg {
    transition: opacity var(--transition-base);
  }
}

/* Google Maps canvas — hidden by default, revealed on toggle */
#nsp-google-map {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
}

@media (prefers-reduced-motion: no-preference) {
  #nsp-google-map {
    transition: opacity var(--transition-base), visibility var(--transition-base);
  }
}

/* Toggle active: show Google Map, fade SVG */
.home-map-interactive__map-wrapper.is-interactive #nsp-google-map {
  opacity: 1;
  visibility: visible;
}

.home-map-interactive__map-wrapper.is-interactive .home-map-interactive__svg {
  opacity: 0;
}

/* Tooltip — positioned by portfolio-map.js */
.home-map-interactive__tooltip {
  position: absolute;
  z-index: 10;
  background: var(--color-white);
  color: var(--color-navy);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  padding: 8px 12px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  line-height: 1.5;
  pointer-events: none;
  max-width: 240px;
}

.home-map-interactive__tooltip strong {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-blue);
  line-height: 1.3;
  margin: 0 0 var(--space-1);
}

.home-map-interactive__tooltip .tooltip-address {
  display: block;
  text-transform: capitalize;
  font-size: 0.875rem;
}

/* Toggle button — extends .btn-secondary; active state when Google Map is visible */
.home-map-interactive__toggle[aria-pressed="true"] {
  background-color: rgba(255, 255, 255, 0.15);
}

button.home-map-interactive__toggle {
  display: inline-block;
}

.home-map-interactive__reset {
  position: absolute;
  bottom: 12px;
  right: 12px;
  z-index: 10;
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid #C6C6C6;
  border-radius: 4px;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-navy);
  cursor: pointer;
  line-height: 1;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}

.home-map-interactive__reset:hover {
  background: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

/* ── Map responsive ───────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
  .home-map__inner {
    gap: var(--space-10);
  }
}

@media (max-width: 768px) {
  .home-map {
    padding: var(--space-12) 0 0;
  }
  .home-map__inner {
    grid-template-columns: 1fr;
    gap: var(--space-8);
    padding: 0;
    display: flex;
    flex-direction: column-reverse;
  }
  .home-map-interactive__map-wrapper,
  .home-map-interactive__svg {
    width: 100%;
  }

  .home-map__content {
    text-align: center;
    padding: var(--space-8);
  }

  .home-map__heading {
    font-size: 2.8rem;
  }
  .home-map__buttons {
    flex-wrap: wrap;
    justify-content: center;
}
}

/* ==================================================
   HOMEPAGE — AVAILABLE NOW
================================================== */

.home-available {
  background-color: var(--color-white);
  padding: var(--space-24) 0;
}

.home-available__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: flex;
  flex-direction: column;
  gap: var(--space-10);
}

.home-available__eyebrow {
font-family: var(--font-body);
  font-size: var(--text-h6);
  text-transform: uppercase;
  font-weight: var(--weight-semibold);
  line-height: var(--line-tight);
  color: var(--color-red);
  z-index: 100;
}

.home-available__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-6);
  padding-bottom: var(--space-12);
}

.home-available__header-text {
  display: flex;
  flex-direction: column;
}

.home-available__heading {
  font-family: var(--font-display);
  font-size: var(--text-hero);
  font-weight: var(--weight-normal);
  line-height: var(--line-snug);
  color: var(--color-ice-blue);
  margin: -35px 0 0 10px;
  z-index: 0;
}

.home-available__description {
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--color-text);
  margin: 0;
  line-height: var(--line-normal);
}


.home-available__see-all:hover {
  color: var(--color-white);
  text-decoration: none;
}

.home-available__see-all:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.home-available__see-all-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-left: var(--space-2);
}

/* Property card grid */
.home-available__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
  list-style: none;
  margin: 0;
  padding: 0;
}

.home-available__empty {
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--color-mid-gray);
  text-align: center;
  padding: var(--space-16) 0;
}

/* ── Property card component ──────────────────────────────────────────────── */

.property-card {
  background-color: var(--color-white);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.property-card:hover {
  box-shadow: var(--shadow-md);
}

@media (prefers-reduced-motion: no-preference) {
  .property-card:hover {
    transform: translateY(-2px);
  }
}

.property-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.property-card__link:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.property-card__image-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: var(--color-silver);
}

.property-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform var(--transition-slow);
}

.property-card:hover .property-card__image {
  transform: scale(1.04);
}

a.property-card__link:hover {
  text-decoration: none !important;
}

.property-card__image-placeholder {
  width: 100%;
  height: 100%;
  background-color: var(--color-ice-blue);
}

/* Listing type badge on card image */
.property-card__badge {
  position: absolute;
  top: var(--space-3);
  left: var(--space-3);
}

.property-card__body {
  padding: var(--space-6) var(--space-4) 10px;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1;
}

.property-card__title {
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-weight: var(--weight-normal);
  color: var(--color-heading);
  margin: 0;
  line-height: var(--line-snug);
}

/* City + SF row with vertical divider */
.property-card__details {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.property-card__detail {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.property-card__detail-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  object-fit: contain;
}

.property-card__city,
.property-card__sf {
  text-transform: capitalize;
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  color: var(--color-navy);
  line-height: 1;
}

/* Light grey vertical divider between city and SF */
.property-card__divider {
  width: 1px;
  height: 14px;
  background-color: var(--color-silver);
  flex-shrink: 0;
}

/* Type tag pinned to bottom-right */
.property-card__footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
  margin-right: -10px;
}

.property-card__type {
  font-family: var(--font-heading);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  color: var(--color-navy);
  background-color: var(--color-ice-blue);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-sm);
}

/* ── Badge component ──────────────────────────────────────────────────────── */

.badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-heading);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  padding: var(--space-1) var(--space-3) var(--space-1);
  border-radius: var(--radius-pill);
  line-height: 1;
}

.badge--available {
  background-color: var(--color-red);
  color: var(--color-white);
}

.badge--leased,
.badge--sold {
  background-color: var(--color-blue);
  color: var(--color-white);
}

/* ── Available Now responsive ─────────────────────────────────────────────── */

@media (max-width: 1024px) {
  .home-available__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
 .home-available__heading {
        color: var(--color-heading);
        font-size: 2.8rem;
        text-align: center;
        line-height: 2.8rem;
        margin: 0px;
    }
    .home-available__header-text {
      gap: var(--space-4);
              width: 100%;
        text-align: center;
    }
    .home-available__description {
       text-align: center;
       padding: 0px var(--space-6);
    }
    .home-available__see-all {
    float: none;
    margin: 30px auto 0px;
    }

    
  .home-available {
    padding: var(--space-16) 0;
  }
  .home-available__inner {
    padding: 0 var(--space-6);
    gap: var(--space-8);
  }
  .home-available__header {
    flex-direction: column;
    align-items: flex-start;
        justify-content: center;
    gap: var(--space-3);
    padding-bottom: var(--space-8);
  }
  .home-available__grid {
    grid-template-columns: 1fr;
  }

  .home-available__grid.slick-initialized {
    display: block;
  }

  .home-available__grid.slick-initialized .property-card {
    padding: 0 var(--space-2);
  }
}

/* ==================================================
   HOMEPAGE — SERVICES
================================================== */

.home-services {
  background-color: var(--color-bg);
  background-image: url(/wp-content/themes/new-south/images/map-bkg.jpg);
  background-size: cover;
  padding: var(--space-24) 0;
}

.home-services__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: flex;
  flex-direction: column;
  gap: var(--space-10);
}

/* Full-width header */
.home-services__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-width: 820px;
  margin-bottom: var(--space-12);
}

.home-services__heading {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-normal);
  line-height: var(--line-tight);
  color: var(--color-heading);
  margin: 0;
}

.home-services__heading span {
  position: relative;
  z-index: 1;
  display: inline-block;
}



.home-services__description {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--line-loose);
  color: var(--color-text);
  margin: 0;
}

/* Bottom row: image 3/4 + links 1/4 */
.home-services__body {
  display: grid;
  grid-template-columns: 2.75fr 1fr;
  gap: var(--space-12);
  align-items: flex-end;
}

.home-services__image-col {
  overflow: hidden;
}

.home-services__image {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 0.5;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Links column */
.home-services__links-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.home-services__links {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.home-services__link,
a.home-services__link {
  display: block;
  padding: var(--space-1) 0;
  font-family: var(--font-display-italic);
  font-size: 2.125rem; /* 34px */
  font-weight: var(--weight-regular); /* Book = 400 in Typekit */
  font-style: italic;
  color: var(--color-navy);
  text-decoration: none;
  line-height: var(--line-snug);
  transition: font-style var(--transition-base);
}

a.home-services__link:hover {
  color: var(--color-blue);
  text-decoration: none;
}

a.home-services__link:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.home-services__link--plain {
  cursor: default;
}

.home-services__cta {
  align-self: flex-start;
  background-color: var(--color-blue);
  border-color: var(--color-blue);
}

.home-services__cta:hover {
  background-color: var(--color-red-dark);
  border-color: var(--color-red-dark);
  color: var(--color-white);
  text-decoration: none;
}

/* ── Services responsive ──────────────────────────────────────────────────── */

@media (max-width: 1024px) {
  .home-services__body {
    grid-template-columns: 2fr 1fr;
    gap: var(--space-8);
  }
  .home-services__link,
  a.home-services__link { font-size: 1.75rem; }
}

@media (max-width: 768px) {
  .home-services {
    padding: var(--space-16) 0;
  }
  .home-services__heading {
    font-size: 2.8rem;
    text-align: center;
  }
  .home-services__header {
    text-align: center;
    margin: 0;
  }
  .home-services__inner {
    padding: 0 var(--space-6);
    gap: var(--space-8);
  }
  .home-services__body {
    grid-template-columns: 1fr;
    gap: var(--space-8);
    text-align: center;
  }
  .home-services__image { aspect-ratio: 16 / 9; }
  .home-services__link,
  a.home-services__link { font-size: 1.5rem; }

  .home-services__cta {
    float: none;
    margin: 0px auto;
}

}

/* ==================================================
   HOMEPAGE — CLIENTS
================================================== */

.home-clients {
  background-color: var(--color-white);
  padding: var(--space-16) 0;
}

.home-clients__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-10);
}

.home-clients__heading {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: var(--weight-bold);
  line-height: var(--line-snug);
  color: var(--color-blue);
  text-align: center;
  margin: 0 0 var(--space-12);
}

/* Slider wrapper: arrows + track */
.home-clients__slider {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  width: 100%;
}

/* Arrow buttons */
.home-clients__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: opacity var(--transition-base);
}

.home-clients__arrow:hover { opacity: 0.7; }
.home-clients__arrow:disabled { opacity: 0.25; cursor: default; }

.home-clients__arrow:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.home-clients__arrow-icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
}

/* Prev arrow: flip horizontally */
.home-clients__arrow--prev .home-clients__arrow-icon {
  transform: scaleX(-1);
}

/* Scrollable track */
.home-clients__track-wrap {
  overflow: hidden;
  flex: 1;
  min-width: 0;
}

.home-clients__logos {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  list-style: none;
  margin: 0;
  padding: 0;
  transition: transform var(--transition-slow);
  will-change: transform;
}

.home-clients__logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 calc((100% - (var(--space-8) * 4)) / 5);
  min-width: 0;
}

.home-clients__logo {
  max-height: 80px;
  width: 100%;
  max-width: 200px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

/* ── Clients responsive ───────────────────────────────────────────────────── */

@media (max-width: 1024px) {
  .home-clients__logo-item {
    flex: 0 0 calc((100% - (var(--space-8) * 3)) / 4);
  }
}

@media (max-width: 768px) {
  .home-clients {
    padding: var(--space-12) 0;
  }
  .home-clients__inner {
    padding: 0 var(--space-6);
    gap: var(--space-8);
  }
  .home-clients__heading { font-size: var(--text-h4); padding: 0px var(--space-6);}
  .home-clients__logo-item {
    flex: 0 0 calc((100% - (var(--space-6) * 2)) / 3);
  }
  .home-clients__logos { gap: var(--space-6); }
  .home-clients__logo { max-height: 56px; }
}

@media (max-width: 600px) {
  .home-clients__logo-item {
    flex: 0 0 calc((100% - var(--space-4)) / 2);
  }
}

/* ==================================================
   HOMEPAGE — NEWSLETTER
================================================== */

.home-newsletter {
  background-image:url(/wp-content/themes/new-south/images/navy-bkg.png);
  background-size: cover;
  background-repeat: no-repeat;
  background-color: var(--color-navy);
  padding: var(--space-24) 0;
  position: relative;
}

.home-newsletter::after {
  height: 100%;
  width: 100%;
  content: "";
  position: absolute;
  z-index: 0;
  top: 0px;
  left: 0px;
  background: rgba(0,0,0,0.3);
}

.home-newsletter__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: var(--space-16);
  align-items: start;
}

.home-newsletter__content {
  display: flex;
  z-index: 100;
  flex-direction: column;
  gap: var(--space-4);
}

.home-newsletter__heading {
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-normal);
  line-height: var(--line-tight);
  color: var(--color-white);
  margin: 0;
}

.home-newsletter__desc_icon {
  display: flex;
  justify-content: flex-start;
  gap: 20px;
  flex-direction: row;
  align-items: center;
}

.home-newsletter__desc_icon img {
  height: 27px;
  width: 36px;
}

.home-newsletter__description {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--line-loose);
  color: white;
  margin: 0;
}

.home-newsletter__form-col {
  display: flex;
  z-index: 100;
  flex-direction: column;
  gap: var(--space-4);
}

.home-newsletter__form {
  /* Gravity Forms / form plugin overrides for dark background */
  color: var(--color-white);
}

.home-newsletter__form .gform_wrapper.gravity-theme .gform_footer, .home-newsletter__form .gform_wrapper.gravity-theme .gform_page_footer {
    margin: 0px;
    padding: 0px;
}

/* Placeholder text — body font, mid-gray */
.home-newsletter__form input::placeholder,
.home-newsletter__form textarea::placeholder {
  font-family: var(--font-body);
  color: var(--color-mid-gray);
  opacity: 1;
  font-size: var(--text-body);
}

.home-newsletter__form #field_1_3 {
  grid-column: span 2;
  margin-top: 5px;
}

.home-newsletter__form #field_1_1 {
  grid-column: span 7;
   margin-top: 5px;
}

/* Submit button — red with arrow icon after text */
.home-newsletter__form .gform_button,
.home-newsletter__form input[type="submit"],
.home-newsletter__form button[type="submit"] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-heading);
  font-size: 0.8125rem;
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: var(--space-3) var(--space-8);
  min-height: 44px;
  border: none;
  border-radius: var(--radius-btn);
  cursor: pointer;
  background-color: var(--color-red);
  color: var(--color-white);
  transition: background-color var(--transition-base);
}

.home-newsletter__form .gform_button:hover,
.home-newsletter__form input[type="submit"]:hover,
.home-newsletter__form button[type="submit"]:hover {
  background-color: var(--color-red-dark);
}

.home-newsletter__form .gform_button:focus-visible,
.home-newsletter__form input[type="submit"]:focus-visible,
.home-newsletter__form button[type="submit"]:focus-visible {
  outline: 3px solid var(--color-blue);
  outline-offset: 2px;
}

/* Arrow icon injected after button text via ::after */
.home-newsletter__form .gform_button::after,
.home-newsletter__form input[type="submit"]::after,
.home-newsletter__form button[type="submit"]::after {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-image: url('/wp-content/themes/new-south/images/arrow-right-white.png');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.home-newsletter__disclaimer {
  font-family: var(--font-body);
  font-size: var(--text-label);
  color:white;
  margin: 0;
  line-height: var(--line-loose);
}

/* ── Newsletter responsive ────────────────────────────────────────────────── */

@media (max-width: 768px) {
  .home-newsletter {
    padding: var(--space-16) 0;
  }
  .home-newsletter__inner {
    grid-template-columns: 1fr;
    gap: var(--space-8);
    padding: 0 var(--space-6);
  }

  .home-newsletter__desc_icon {
    text-align: center;
    justify-content: center;
    flex-direction: column;
    align-items: center;
}
.home-newsletter__heading, 
.home-newsletter__disclaimer { 
   text-align: center;
}

.home-newsletter__form #field_1_3 {
    width: 50px;
}

.home-newsletter .gform_wrapper.gravity-theme .gform_fields {
        display: flex;
        grid-column-gap: 5px;
        justify-content: center;
        flex-wrap: wrap;
    }

}

/* ==================================================
   HOMEPAGE — WYSIWYG CONTENT SHARED
================================================== */

.wysiwyg-content a {
  color: var(--color-blue);
  text-decoration: underline;
}

.wysiwyg-content a:hover {
  color: var(--color-blue-dark);
}

.wysiwyg-content strong { font-weight: var(--weight-semibold); }
.wysiwyg-content em { font-style: italic; }


/* ============================================================================
   DEFAULT PAGE TEMPLATE
   ============================================================================ */

.page-default {
  padding: var(--space-16) 0;
}

.page-default__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.page-default__header {
  margin-bottom: var(--space-10);
}

/* Body text */
.page-default__body p {
  margin-bottom: var(--space-4);
  line-height: var(--line-loose);
}
.page-default__body p:last-child { margin-bottom: 0; }

/* Heading spacing within body copy */
.page-default__body h2 { margin-top: var(--space-10); 
color: var(--color-blue); font-size: 2.5rem;}
.page-default__body h3 { margin-top: var(--space-8); }
.page-default__body h4,
.page-default__body h5,
.page-default__body h6 { margin-top: var(--space-6); }

/* Unordered lists — navy bullet, matching property-details pattern */
.page-default__body ul {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.page-default__body ul li {
  position: relative;
  padding-left: var(--space-6);
  line-height: var(--line-loose);
}

.page-default__body ul li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--color-navy);
  font-weight: var(--weight-bold);
  font-size: 1.25rem;
  line-height: 1.4;
}

/* Ordered lists */
.page-default__body ol {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-4);
  counter-reset: page-ol;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.page-default__body ol li {
  position: relative;
  padding-left: var(--space-8);
  line-height: var(--line-loose);
  counter-increment: page-ol;
}

.page-default__body ol li::before {
  content: counter(page-ol) ".";
  position: absolute;
  left: 0;
  color: var(--color-navy);
  font-weight: var(--weight-semibold);
  font-family: var(--font-heading);
}

@media (max-width: 768px) {
  .page-default {
    padding: var(--space-12) 0;
  }

  .page-default__inner {
    padding: 0 var(--space-6);
  }
}


/* ============================================================================
   SINGLE COMMERCIAL PROPERTY PAGE STYLES
   ============================================================================ */

/* Property Header
   ========================================================================== */

.property-header {
	padding: var(--space-16) var(--space-6);
      max-width: var(--max-width);
    margin: 0 auto;
}

.property-header__title {
	font-size: 4rem;
	font-weight: 500;
	font-family: var(--font-display);
	color: var(--color-heading);
	margin: 0 0 10px;
	line-height: 1;
}

.property-header__meta-row {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	flex-wrap: wrap;
	font-size: 1rem;
	font-family: var(--font-heading);
	color: var(--color-error);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
  line-height: 1;
	margin: 0;
}

.property-header__address {
	display: inline-block;
}

.property-header__divider {
	color: var(--color-text);
  font-size: 30px;
  font-weight: 100;
	display: inline-block;
}

.property-header__category {
	display: inline-block;
	color: var(--color-red);
	font-weight: 600;
	letter-spacing: 0.1em;
}

.property-header__badge-new {
	display: inline-block;
	background: var(--color-red);
	color: var(--color-white);
	padding: var(--space-1) var(--space-3);
	border-radius: 3px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	border: 2px solid var(--color-red);
}

/* Gallery / Carousel
   ========================================================================== */

.property-gallery {
	margin: var(--space-10) 0;
	position: relative;
}

.gallery-carousel {
	position: relative;
	background: var(--color-surface);
}

.gallery-carousel__cell {
	width: 100%;
	margin-right: 0;
}

.gallery-carousel__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Carousel nav buttons (Flickity)
   Customize Flickity's default button styling */
.gallery-carousel .flickity-button {
	background: transparent;
	border: none;
	width: 44px;
	height: 44px;
	padding: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-white);
	transition: all 250ms ease;
	z-index: 10;
}

.gallery-carousel .flickity-button:hover {
	background: rgba(25, 79, 145, 0.9);
}

.gallery-carousel .flickity-button:focus {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

.gallery-carousel .flickity-button-icon {
	fill: currentColor;
}

/* Details + Sidebar Layout
   ========================================================================== */

/* Property Details + Sidebar — 2-column layout
   ========================================================================== */

.property-details-sidebar {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-16);
}

.property-details-sidebar[data-aos] .property-details,
.property-details-sidebar[data-aos] .property-sidebar {
  animation-delay: inherit;
  opacity: 0;
}

.property-details-sidebar.aos-animate .property-details {
  animation: fadeIn 0.7s ease-in forwards;
}

.property-details-sidebar.aos-animate .property-sidebar {
  animation: fadeIn 0.7s ease-in forwards;
  animation-delay: 0.3s;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Property Details (Left Column)
   ========================================================================== */

.property-details {
	grid-column: 1;
	padding: var(--space-16);
}

/* Eyebrow label — matches .home-available__eyebrow */
.property-details__eyebrow {
	font-family: var(--font-body);
    font-size: var(--text-h6);
    text-transform: uppercase;
    font-weight: var(--weight-semibold);
    line-height: var(--line-tight);
    color: var(--color-red);
    z-index: 100;
}

/* "Overview" display heading — matches .home-available__heading style */
.property-details__heading {
	display: flex;
	flex-direction: column;
	margin: 0 0 var(--space-8) 0;
}

.property-details__heading-text {
	font-family: var(--font-display);
    font-size: var(--text-h2);
    font-weight: var(--weight-normal);
    line-height: var(--line-snug);
	color: var(--color-blue);
  z-index: 0;
  position: relative;
}

.property-details__overview {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--color-text);
	margin-bottom: var(--space-8);
}

.property-details__overview p {
	margin: 0 0 var(--space-4) 0;
}

.property-details__overview p:last-child {
	margin-bottom: 0;
}

/* Navy bullet lists within overview content */
.property-details__overview ul {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--space-4) 0;
}

.property-details__overview ul li {
	padding-left: var(--space-6);
	margin-bottom: var(--space-2);
	position: relative;
	line-height: 1.6;
}

.property-details__overview ul li::before {
	content: "•";
	position: absolute;
	left: 0;
	color: var(--color-navy);
	font-weight: var(--weight-bold);
	font-size: 1.25rem;
	line-height: 1.4;
}

/* Property Sidebar (Right Column) — unified navy panel
   ========================================================================== */

.property-sidebar {
	grid-column: 2;
  padding: var(--space-16) var(--space-12);
	background-color: var(--color-navy);
	overflow: hidden;
	height: 100%;
}

/* Top row: listing type + property type badge
   ========================================================================== */

.property-sidebar__top-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding: 0 0 var(--space-8);
	border-bottom: 1px solid var(--color-light-blue);
}

.property-sidebar__listing-title {
	font-family: var(--font-display);
	font-size: 2.5rem;
	font-weight: var(--weight-regular);
	color: var(--color-white);
	margin: 0;
}

/* Blue highlight block behind listing title — works across wrapped lines */
.property-sidebar__listing-title {
	line-height: 1.25;
}

.property-sidebar__listing-title-inner {
	display: inline;
	background-color: var(--color-blue);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	padding: 0.1em 0.2em;
}

/* Property type taxonomy badge — grey bg, grey text */
.property-sidebar__type-tag {
	flex-shrink: 0;
	background-color: var(--color-gray);
	color: var(--color-mid-gray);
	font-family: var(--font-heading);
	font-size: 0.6875rem;
	font-weight: var(--weight-semibold);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: var(--space-1) var(--space-3);
	border-radius: var(--radius-sm);
}

/* Details row: 3 equal columns with dividers
   ========================================================================== */

.property-sidebar__details-row {
	display: flex;
	padding: var(--space-6) 0;
}

.property-sidebar__detail-col {
	flex: 1 1 0;
	display: flex;
	padding: 0 var(--space-6);
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2);
	min-width: 0;
}

.property-sidebar__detail-col:first-child {
  padding-left: 0px;
}

/* Middle column (Available Space) gets 30px extra flex-basis */
.property-sidebar__detail-col--wide {
	flex: 1 1 30px;
}

/* Vertical divider between columns */
.property-sidebar__detail-col + .property-sidebar__detail-col {
	border-left: 1px solid var(--color-light-blue);
}

.property-sidebar__detail-label {
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: var(--weight-bold);
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--color-light-blue);
}

.property-sidebar__detail-data {
  display: flex;
  flex-direction: row;
  gap: 10px;
}

.property-sidebar__detail-icon {
	display: block;
	width: 24px;
	height: 24px;
	object-fit: contain;
}

.property-sidebar__detail-value {
	font-family: var(--font-heading);
	font-size: 1.3125rem;
	font-weight: var(--weight-bold);
	color: var(--color-white);
	line-height: 1.2;
  text-transform: capitalize;
}

/* Shared row label — light blue, small, uppercase
   ========================================================================== */

.property-sidebar__row-label {
	display: block;
	font-family: var(--font-body);
	font-size: var(--text-h6);
	font-weight: var(--weight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--color-light-blue);
	margin-bottom: var(--space-4);
}

/* Documents & Links row
   ========================================================================== */

.property-sidebar__docs-row {
	border-bottom: 1px solid var(--color-light-blue);
	padding: var(--space-6) 0;
}

.property-sidebar__docs-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}

/* Document download button — white bg, red text/border */
.property-sidebar__doc-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	background-color: var(--color-white);
	color: var(--color-red);
	border: 1px solid var(--color-gray);
	border-radius: var(--radius-btn);
	font-family: var(--font-heading);
	font-size: 0.8125rem;
	font-weight: var(--weight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: var(--space-2) var(--space-4);
	min-height: 44px;
	text-decoration: none;
	transition: opacity var(--transition-fast);
}

.property-sidebar__doc-btn:hover {
	opacity: 0.75;
  text-decoration: none;
}

.property-sidebar__doc-btn:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
}

/* Brokers row
   ========================================================================== */

.property-sidebar__brokers-row {
	border-top: 1px solid var(--color-light-blue);
	padding: var(--space-12) 0 0;
}

.property-sidebar__brokers-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}

/* 2-column grid when multiple brokers */
.property-sidebar__brokers-list--two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-6);
}

/* Broker card
   ========================================================================== */

.broker-card {
	display: flex;
	gap: var(--space-4);
	align-items: flex-start;
}

.broker-card__image-wrap {
	flex-shrink: 0;
}

.broker-card__img {
	width: 105px;
	height: 105px;
	border-radius: 50%;
	object-fit: cover;
	object-position: center top;
	display: block;
	border: 4px solid var(--color-light-blue);
}

/* Placeholder circle when no headshot is uploaded */
.broker-card__img--placeholder {
	background-color: rgba(184, 216, 235, 0.2);
  background-size: cover;
  background-position: center center;
  background-image: url(/wp-content/themes/new-south/images/placeholder.jpg)
}

.broker-card__info {
	flex: 1;
	min-width: 0;
}

/* Broker name — Cormorant Garamond, 29px, weight 500, white */
.broker-card__name {
	font-family: var(--font-display);
	font-size: 1.8125rem;
	font-weight: var(--weight-medium);
	color: var(--color-white);
	margin: 0 0 var(--space-1);
	line-height: 1.1;
}

/* Broker title/position — Neue Haas Grotesk, 14px, bold, uppercase */
.broker-card__position {
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: var(--weight-bold);
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--color-light-blue);
	margin: 0 0 0;
}

.broker-card__phone,
.broker-card__email {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	margin: 0 0 0;
}

.broker-card__phone a,
.broker-card__email a {
	color: var(--color-white);
	text-decoration: none;
}

.broker-card__phone a:hover,
.broker-card__email a:hover {
	text-decoration: underline;
	color: var(--color-white);
}

.broker-card__contact-img {
	flex-shrink: 0;
	display: block;
}


/* Demographics Section
   ========================================================================== */

.property-demographics {
	position: relative;
	background-color: var(--color-ice-blue);
	background-image: url('images/lt-blue-bkg.jpg');
	background-size: cover;
	background-position: center;
	padding: var(--space-24) 0;
}

/* 2-column inner: heading left, table right */
.property-demographics__inner {
  max-width: var(--max-width);
  margin: 0px auto;
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: var(--space-12);
	align-items: start;
}

.property-demographics__header {
	padding-top: var(--space-2);
}

/* "AREA / DEMOGRAPHICS" stacked display heading */
.property-demographics__heading {
	font-size: 2.2rem;
  text-align: left;
  text-transform: uppercase;
	font-family: var(--font-body);
    font-weight: var(--weight-bold);
    line-height: var(--line-snug);
    color: var(--color-blue);
    margin: 0 30px var(--space-12);
}

.property-demographics__heading-line {
	display: block;
}

/* Table
   ========================================================================== */

.property-demographics__table-wrap {
	overflow-x: auto;
  padding: 0px var(--space-16);
}

.demographics-table {
	width: 100%;
	border-collapse: collapse;
}

/* Column headers */

.demographics-table thead th {
	padding: var(--space-3) var(--space-4);
	text-align: right;
	font-family: var(--font-heading);
	font-size: 0.75rem;
	font-weight: var(--weight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--color-navy);
}

/* "Metric" column header — left-aligned */
.demographics-table thead th:first-child {
	text-align: left;
}

/* Row label (metric name) */
.demographics-table tbody th[scope="row"] {
	padding: var(--space-4);
	text-align: left;
	font-family: var(--font-heading);
	font-size: 0.8125rem;
	font-weight: var(--weight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-navy);
	white-space: nowrap;
}

/* Numeric data cells — right-aligned */
.demographics-table tbody td {
	padding: var(--space-4);
	text-align: right;
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: var(--weight-regular);
	color: var(--color-text);
}

/* Row separators */
.demographics-table tbody tr {
	border-bottom: 1px solid var(--color-silver);
}

.demographics-table tbody tr:last-child {
	border-bottom: none;
}

/* Alternating row tint */
.demographics-table tbody tr:nth-child(odd) {
	background-color: rgba(255, 255, 255, 0.45);
}

/* Responsive
   ========================================================================== */

@media (max-width: 1024px) {
	.property-demographics__inner {
		grid-template-columns: 1fr;
		gap: var(--space-8);
	}

	.property-demographics__heading {
		font-size: 2.75rem;
	}
}

@media (max-width: 768px) {

	/* Stacked card layout — hide the column-header row */
	.demographics-table thead {
		display: none;
	}

	.demographics-table,
	.demographics-table tbody,
	.demographics-table tr,
	.demographics-table th,
	.demographics-table td {
		display: block;
		width: 100%;
	}

	/* Each data row becomes a card */
	.demographics-table tbody tr {
		background-color: rgba(255, 255, 255, 0.55);
		border: 1px solid var(--color-silver);
		border-radius: var(--radius-sm);
		margin-bottom: var(--space-3);
		padding: var(--space-3) var(--space-4);
	}

	.demographics-table tbody tr:last-child {
		margin-bottom: 0;
	}

	.demographics-table tbody tr:nth-child(odd) {
		background-color: rgba(255, 255, 255, 0.55);
	}

	/* Row label (metric name) spans full width as a card heading */
	.demographics-table tbody th[scope="row"] {
		font-size: 0.75rem;
		padding: 0 0 var(--space-2);
		border-bottom: 1px solid var(--color-silver);
		margin-bottom: var(--space-2);
		white-space: normal;
	}

	/* Each data cell shows its distance label inline via data-label */
	.demographics-table tbody td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		text-align: right;
		padding: var(--space-1) 0;
		font-size: 0.9375rem;
		border-bottom: none;
	}

	.demographics-table tbody td::before {
		content: attr(data-label);
		font-family: var(--font-heading);
		font-size: 0.75rem;
		font-weight: var(--weight-semibold);
		text-transform: uppercase;
		letter-spacing: 0.06em;
		color: var(--color-navy);
		opacity: 0.7;
		text-align: left;
		flex-shrink: 0;
		margin-right: var(--space-4);
	}

  .property-details__heading {
 align-items: flex-start;
    gap: 15px;
    justify-content: flex-start;
  }

  .property-sidebar__docs-row {
    padding: var(--space-3) 0;
    border-bottom: 1px;
  }

  .property-sidebar__row-label {
    margin-bottom: var(--space-2);
  }

  .property-sidebar__brokers-row {
	padding: var(--space-8) 0;
}
}

/* Map Section
   ========================================================================== */

.property-map {
	margin: 0;
	overflow: hidden;
}

.property-map__container {
	position: relative;
	width: 100%;
	height: 480px;
}

/* Iframe fallback (map_embed_url ACF field) */
.property-map__iframe {
	width: 100%;
	height: 100%;
	border: none;
	display: block;
}

/* JS API canvas — Google Maps renders into this div */
.property-map__canvas {
	width: 100%;
	height: 100%;
}

/* InfoWindow content — styled with design system tokens */
/* Hide the native Google Maps close button on all site maps */
.gm-ui-hover-effect {
  display: none !important;
}

.gm-style-iw-ch {
  padding-top: 13px;
}

.nsp-map-infowindow {
  font-family: var(--font-body);
  color: var(--color-navy);
  background: var(--color-white);
  border-radius: 4px;
  padding: 0px 12px 0px;
  max-width: 190px;
  text-transform: capitalize;
  font-size: 0.9rem;
  line-height: 1.5;
}

.nsp-map-infowindow strong {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-navy);
  line-height: 1.3;
  margin: 0 0 4px;
}

.nsp-map-infowindow p {
  margin: 0;
}

@media (max-width: 1024px) {
	.property-map__container {
		height: 420px;
	}
}


/* Section Labels
   ========================================================================== */

.section-label {
	display: block;
	font-size: 0.75rem;
	font-family: var(--font-heading);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--color-red);
	margin-bottom: var(--space-3);
}

/* Icon Utilities
   ========================================================================== */

.icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.125em;
	fill: currentColor;
}

/* Responsive Adjustments
   ========================================================================== */

@media (max-width: 1024px) {
	.property-details-sidebar {
		grid-template-columns: 1fr;
		gap: var(--space-12);
	}

	.property-sidebar {
		grid-column: 1;
	}
}

@media (max-width: 768px) {
	    .property-header {
        padding: var(--space-12) var(--space-8);
        text-align: center;
    }

    .property-header__divider {
      display: none;
    }

	.property-header__title {
		font-size: 2rem;
    margin: 0 0 var(--space-6);
	}

  .property-header__meta-row {
    justify-content: center;  
  }

	.property-gallery {
		margin: var(--space-12) 0;
	}

	.property-details-sidebar {
		gap: var(--space-2);
		margin: var(--space-12) 0 0;
	}

	.property-details {
		padding: var(--space-4);
	}

	.property-details__heading-text {
		font-size: 3.5rem;
	}

  .property-sidebar {
    padding: var(--space-6);
  }

	.property-sidebar__listing-title {
		font-size: 1.875rem;
	}

	.property-sidebar__listing-title-inner {
		background-color: transparent;
		padding: 0;
	}

	/* Stack 3-col details to single column on mobile */
	.property-sidebar__details-row {
		flex-direction: column;
    padding: 0px;
	}

	.property-sidebar__detail-col {
		padding: var(--space-3) 0;
	}

	.property-sidebar__detail-col + .property-sidebar__detail-col {
		border-left: none;
		border-top: 1px solid var(--color-light-blue);
	}

  .property-sidebar__detail-col + .property-sidebar__detail-col:last-child {
    	border-bottom: 1px solid var(--color-light-blue);
  }

	/* Stack 2-col brokers to single column on mobile */
	.property-sidebar__brokers-list--two-col {
		grid-template-columns: 1fr;
	}

	.property-demographics {
		padding: var(--space-16) 0;
		margin: 0;
	}

	.property-demographics__heading {
		font-size: 2rem;
	}

	.property-map {
		margin: 0;
	}
}

/* Prefers Reduced Motion
   ========================================================================== */

/* ==================================================
   PROPERTY GALLERY CAROUSEL (Slick)
================================================== */

/* Outer container — background + vertical padding */
.property-gallery {
  position: relative;
  background-color: var(--color-ice-blue);
  padding: 30px 0;
}

/* Slick resets — strip list styling from the ul */
.property-gallery__track {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Slide image */
.property-gallery__image {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

/* 30px gap between slides — 15px margin each side, compensated on .slick-list */
.property-gallery .slick-list {
  margin: 0 -15px;
}

.property-gallery .slick-slide {
  margin: 0 15px;
  opacity: 0.36;
  transition: opacity var(--transition-slow);
}

/* Center (active) slide: full opacity */
.property-gallery .slick-slide.slick-center {
  opacity: 1;
}

/* Arrow buttons — blue circle, absolutely positioned over faded sides */
.property-gallery__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--color-blue);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background-color var(--transition-base), opacity var(--transition-base);
}

.property-gallery__arrow--prev { left: var(--space-6); }
.property-gallery__arrow--next { right: var(--space-6); }

.property-gallery__arrow:hover {
  background-color: var(--color-blue-dark);
}

/* Slick adds .slick-disabled when at first/last slide with infinite: false */
.property-gallery__arrow.slick-disabled {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}

.property-gallery__arrow:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}

.property-gallery__arrow-icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
  display: block;
}

/* Flip the shared arrow image for the prev direction */
.property-gallery__arrow--prev .property-gallery__arrow-icon {
  transform: scaleX(-1);
}

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
  .property-gallery { padding: 32px 0; margin: 0px; }
  .property-gallery__arrow { width: 40px; height: 40px; }
  .property-gallery__arrow--prev { left: var(--space-3); }
  .property-gallery__arrow--next { right: var(--space-3); }
  .property-gallery__arrow-icon { width: 14px; height: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .property-gallery .slick-slide { transition: none; }
}

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

/* =============================================================================
   COMMERCIAL ARCHIVE — /properties/
   Filter bar + 2-column map/sidebar layout
============================================================================= */

/* ── Filter bar ────────────────────────────────────────────────────────────── */

.property-archive__filters {
  position: sticky;
  top: 0;
  z-index: 100;
  background-color: var(--color-blue);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding: var(--space-4) 0;
}

.property-archive__filters-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-6);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.property-archive__filter {
  flex: 1 1 160px;
  min-width: 140px;
}

.property-archive__filter--search {
  flex: 2 1 240px;
}

.property-archive__input,
.property-archive__select {
  width: 100%;
  height: 44px;
  padding: 0 var(--space-3);
  background-color: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius-sm);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: var(--text-small);
  transition: border-color var(--transition-base), background-color var(--transition-base);
  -webkit-appearance: none;
  appearance: none;
}

.property-archive__input::placeholder {
  color: rgba(255, 255, 255, 0.45);
}

.property-archive__select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23ffffff' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--space-3) center;
  padding-right: var(--space-8);
  cursor: pointer;
}

.property-archive__select option {
  background-color: var(--color-navy);
  color: var(--color-white);
}

.property-archive__input:focus,
.property-archive__select:focus {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
  border-color: var(--color-light-blue);
  background-color: rgba(255, 255, 255, 0.12);
}

.property-archive__count {
  flex: 0 0 auto;
  font-family: var(--font-body);
  font-size: var(--text-small);
  color: rgba(255, 255, 255, 0.65);
  white-space: nowrap;
  margin: 0;
  padding-left: var(--space-2);
}

/* ── Two-column layout ─────────────────────────────────────────────────────── */

.property-archive__layout {
  display: grid;
  grid-template-columns: 380px 1fr;
  grid-template-rows: 1fr;
  height: calc(100vh - 130px); /* viewport minus filter bar + site header */
  min-height: 600px;
  overflow: hidden;
}

/* ── Sidebar ───────────────────────────────────────────────────────────────── */

.property-archive__sidebar {
  overflow-y: auto;
  overscroll-behavior: contain;
  background-color: var(--color-surface);
  border-right: 1px solid var(--color-border);
  padding: var(--space-4) var(--space-4) var(--space-8);
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Scrollbar styling */
.property-archive__sidebar::-webkit-scrollbar {
  width: 6px;
}
.property-archive__sidebar::-webkit-scrollbar-track {
  background: var(--color-silver);
}
.property-archive__sidebar::-webkit-scrollbar-thumb {
  background-color: var(--color-gray);
  border-radius: 3px;
}

.property-archive__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

/* ── Property card (archive variant) ─────────────────────────────────────── */

.property-archive__card {
  cursor: pointer;
}

.property-archive__card .property-card__link {
  display: flex;
  flex-direction: column;
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  text-decoration: none;
  transition: box-shadow var(--transition-base), border-color var(--transition-base);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.property-archive__card .property-card__link:hover,
.property-archive__card.is-active .property-card__link {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  border-color: var(--color-blue);
}

.property-archive__card.is-active .property-card__link {
  border-color: var(--color-blue);
  box-shadow: 0 0 0 2px var(--color-blue), 0 4px 16px rgba(0, 0, 0, 0.12);
}

.property-archive__card .property-card__image-wrap {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: var(--color-silver);
}

.property-archive__card .property-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-slow);
}

.property-archive__card .property-card__link:hover .property-card__image {
  transform: scale(1.04);
}

.property-archive__card .property-card__image-placeholder {
  width: 100%;
  height: 100%;
  background-color: var(--color-ice-blue);
}

.property-archive__card .property-card__badge {
  position: absolute;
  top: var(--space-2);
  left: var(--space-2);
}

.property-archive__card .property-card__body {
  padding: var(--space-3) var(--space-4);
}

.property-archive__card .property-card__title {
  font-family: var(--font-display);
  font-size: var(--text-h4);
  font-weight: 600;
  color: var(--color-heading);
  margin: 0 0 var(--space-2);
  line-height: 1;
}

.property-archive__card .property-card__details {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-bottom: var(--space-2);
}

.property-archive__card .property-card__detail {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--text-small);
  color: var(--color-mid-gray);
}

.property-archive__card .property-card__detail-icon {
  flex-shrink: 0;
  opacity: 0.65;
}

.property-archive__card .property-card__divider {
  width: 1px;
  height: 12px;
  background-color: var(--color-gray);
  flex-shrink: 0;
}

.property-archive__card .property-card__footer {
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-border);
}

.property-archive__card .property-card__type {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-blue);
}

/* ── Empty state ───────────────────────────────────────────────────────────── */

.property-archive__empty {
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-mid-gray);
  text-align: center;
  padding: var(--space-8) var(--space-4);
  margin: 0;
}

/* ── Map column ────────────────────────────────────────────────────────────── */

.property-archive__map-wrap {
  position: relative;
  overflow: hidden;
}

#nsp-archive-map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* ── InfoWindow ────────────────────────────────────────────────────────────── */

.nsp-archive-infowindow {
  padding: var(--space-2) var(--space-3);
  font-family: var(--font-body);
  max-width: 220px;
}

.nsp-archive-infowindow__title {
  margin: 0 0 var(--space-1);
  font-size: var(--text-small);
  font-weight: 600;
  color: var(--color-navy);
  line-height: 1.3;
}

.nsp-archive-infowindow__title a {
  color: var(--color-blue);
  font-size: 0.9rem;
  text-decoration: none;
  font-family: var(--font-body);
}

.nsp-archive-infowindow__title a:hover {
  text-decoration: underline;
}

.nsp-archive-infowindow__address {
  margin: 0;
  text-transform: capitalize;
  font-size: 0.85rem;
  color: var(--color-navy);
  line-height: 1.4;
}

/* ── Responsive ────────────────────────────────────────────────────────────── */

@media (max-width: 1024px) {
  .property-archive__layout {
    grid-template-columns: 320px 1fr;
    height: calc(100vh - 120px);
  }
}

@media (max-width: 768px) {
  .property-archive__filters-inner {
    gap: var(--space-2);
    padding: 0 var(--space-4);
  }

  .property-archive__filter {
    flex: 1 1 calc(50% - var(--space-2));
  }

  .property-archive__filter--search {
    flex: 1 1 100%;
  }

  /* Stack vertically: map on top, sidebar below */
  .property-archive__layout {
    grid-template-columns: 1fr;
    grid-template-rows: 50vh auto;
    height: auto;
    min-height: 0;
  }

  .property-archive__sidebar { order: 2; }
  .property-archive__map-wrap { order: 1; }

  .property-archive__sidebar {
    max-height: none;
    height: auto;
    overflow-y: visible;
    border-right: none;
    border-top: 1px solid var(--color-border);
  }

  .property-archive__map-wrap {
    height: 50vh;
    position: relative;
  }

  #nsp-archive-map {
    position: absolute;
    inset: 0;
  }
}

@media (max-width: 480px) {
  .property-archive__filter {
    flex: 1 1 100%;
  }

  .property-archive__count {
    width: 100%;
    padding-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .property-archive__card .property-card__image {
    transition: none;
  }
  .property-archive__card .property-card__link {
    transition: none;
  }
}


/* ============================================================================
   WYSIWYG CONTENT — LIST STYLES
   (extends the shared .wysiwyg-content class used in team sections, page body, etc.)
   ============================================================================ */

.wysiwyg-content p {
  font-weight: var(--weight-normal);
  margin-bottom: var(--space-4);
  line-height: var(--line-loose);
}
.wysiwyg-content p:last-child { margin-bottom: 0; }

.wysiwyg-content ul,
.wysiwyg-content ol {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.wysiwyg-content ul li,
.wysiwyg-content ol li {
  position: relative;
  padding-left: var(--space-6);
  line-height: var(--line-loose);
}

.wysiwyg-content:not(.home-intro__body) ul li::before {
content: "\2022";
  position: absolute;
  left: 0;
  color: var(--color-navy);
  font-weight: var(--weight-bold);
  font-size: 1.25rem;
  line-height: 1.4;
}

.wysiwyg-content ol {
  counter-reset: wysiwyg-ol;
}

.wysiwyg-content ol li {
  counter-increment: wysiwyg-ol;
  padding-left: var(--space-8);
}

.wysiwyg-content ol li::before {
  content: counter(wysiwyg-ol) ".";
  position: absolute;
  left: 0;
  color: var(--color-navy);
  font-weight: var(--weight-semibold);
  font-family: var(--font-heading);
}

.wysiwyg-content h2,
.wysiwyg-content h3,
.wysiwyg-content h4 {
  margin-top: var(--space-8);
}
.wysiwyg-content h2:first-child,
.wysiwyg-content h3:first-child,
.wysiwyg-content h4:first-child {
  margin-top: 0;
}


/* ============================================================================
   ABOUT PAGE — HERO BANNER
   ============================================================================ */

.about-hero {
  position: relative;
  min-height: 460px;
  background-color: var(--color-navy);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
}

.about-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.about-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(16, 24, 32, 0.62);
}

.about-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: var(--space-16) 0;
}

.about-hero__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.about-hero__eyebrow {
  font-family: var(--font-heading);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-light-blue);
  margin: 0 0 var(--space-2);
}

.about-hero__heading {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-normal);
  color: var(--color-white);
  line-height: var(--line-tight);
  margin: 0;
}

@media (max-width: 768px) {
  .about-hero {
    min-height: 320px;
  }

  .about-hero__inner {
    padding: 0 var(--space-6);
  }

  .about-hero__heading {
    font-size: 2.7rem;
  }
}


/* ============================================================================
   ABOUT PAGE — INTRO (page editor content)
   ============================================================================ */

.page-template-page-about .about-intro {
  background-image: url(/wp-content/themes/new-south/images/map-bkg.jpg);
  padding: var(--space-16) 0;
  background-color: var(--color-light);
}

.about-intro {
  padding: var(--space-16) 0;
  background-color: var(--color-light);
}

.about-intro__inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  text-align: center;
}

.about-intro__body h1,
.about-intro__body h2,
.about-intro__body h3,
.about-intro__body h4,
.about-intro__body h5,
.about-intro__body h6 {
  color: var(--color-blue);
}

.about-intro__body h2 {
  font-family: var(--font-body);
    font-size: var(--text-h3);
    font-weight: var(--weight-bold);
    line-height: var(--line-snug);
    color: var(--color-blue);
    text-align: center;
    margin: 0 0 var(--space-6);
}

.about-intro__body ul li::before {
  color: var(--color-blue);
}

@media (max-width: 768px) {
  .about-intro {
    padding: var(--space-12) 0;
  }

  .about-intro__inner {
    padding: 0 var(--space-6);
  }
}


/* ============================================================================
   ABOUT PAGE — FEATURED PROPERTIES
   ============================================================================ */

.about-properties {
  padding: var(--space-16) 0;
  background-color: var(--color-ice-blue);
}

.about-properties__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.about-properties__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-6);
  margin-bottom: var(--space-10);
}

.about-properties__eyebrow {
  font-family: var(--font-heading);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-red);
  margin: 0 0 var(--space-2);
}

.about-properties__heading {
  margin: 0;
}

.about-properties__see-all {
  flex-shrink: 0;
  gap: var(--space-2);
}

.about-properties__see-all-icon {
  display: inline-block;
  vertical-align: middle;
}

.about-properties__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (max-width: 900px) {
  .about-properties__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .about-properties__header {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 600px) {
  .about-properties {
    padding: var(--space-12) 0;
  }

  .about-properties__inner {
    padding: 0 var(--space-6);
  }

  .about-properties__grid {
    grid-template-columns: 1fr;
  }
}


/* ============================================================================
   ABOUT PAGE — AWARDS STRIP
   ============================================================================ */



.about-awards__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: var(--space-8) var(--space-16);
}

.about-awards__list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

.about-awards__item {
  display: flex;
  align-items: center;
  justify-content: center;
}

.about-awards__img {
  max-width: 200px;
  max-height: 130px;
  width: auto;
  height: auto;
  object-fit: contain;
}

@media (max-width: 600px) {
  .about-awards {
    padding: var(--space-8) 0;
  }

  .about-awards__inner {
    padding: 0 var(--space-6);
  }

  .about-awards__list {
    gap: var(--space-6);
  }

}


/* ============================================================================
   ABOUT PAGE — TEAM GRID
   ============================================================================ */

.about-team {
  padding: var(--space-16) 0;
  background-image:url(/wp-content/themes/new-south/images/navy-bkg.png);
  background-color: var(--color-navy);
  position: relative;
  background-attachment: fixed;
  background-size: cover;
}


.about-team__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(16, 24, 32, 0.62);
}

.about-team__inner {
  position: relative;
  z-index: 2;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.about-team__heading {
  text-align: center;
  margin-bottom: var(--space-12);
  color: var(--color-white);
}

.about-team__group {
  margin-bottom: var(--space-16);
}

.about-team__group:last-child {
  margin-bottom: 0;
}

h3.about-team__group-heading {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: var(--weight-semibold);
  color: var(--color-white);
  text-align: center;
  margin-bottom: var(--space-10);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.about-team__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-12);
  list-style: none;
  margin: var(--space-6) 0 0;
  padding: 0;
}

.about-team__member {
  flex: 0 0 calc(25% - 2.25rem); /* 4-col: (3 gaps × 3rem) / 4 = 2.25rem per item */
  display: flex;
  flex-direction: column;
}

.about-team__photo-link {
  display: block;
  overflow: hidden;
  border-radius: var(--radius-sm);
}

.about-team__photo {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform var(--transition-slow);
}

.about-team__photo-link:hover .about-team__photo {
  transform: scale(1.03);
}

.about-team__info {
  padding: var(--space-4) 0 0;
}

.about-team__name {
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-semibold);
  color: var(--color-white);
  margin: 0 0 var(--space-1);
  line-height: var(--line-snug);
}

.about-team__name a {
  color: inherit;
  text-decoration: none;
}

.about-team__name a:hover {
  color: rgba(255, 255, 255, 0.75);
}

.about-team__title {
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-regular);
  color: var(--color-light-blue);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0;
}

@media (max-width: 1100px) {
  .about-team__grid {
    gap: var(--space-10);
  }
  .about-team__member {
    flex-basis: calc(33.333% - 1.667rem); /* 3-col: (2 gaps × 2.5rem) / 3 */
  }
}

@media (max-width: 768px) {
  .about-team__grid {
    gap: var(--space-8);
  }
  .about-team__member {
    flex-basis: calc(50% - 1rem); /* 2-col: (1 gap × 2rem) / 2 */
  }
}

@media (max-width: 600px) {
  .about-team {
    padding: var(--space-12) 0;
  }

  .about-team__inner {
    padding: 0 var(--space-6);
  }

    .about-team__member {
    flex-basis: calc(60% - 1rem); }
  
}


/* ============================================================================
   SINGLE TEAM MEMBER — BACK LINK
   ============================================================================ */

.team-back {
  position: relative;
  z-index: 1;
  padding: var(--space-6) var(--space-12) var(--space-8);
}

.team-back__link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #ffffff;
  text-decoration: none;
  opacity: 0.65;
  transition: opacity 0.2s ease, gap 0.2s ease;
}

.team-back__link:hover,
.team-back__link:focus-visible {
  opacity: 1;
  gap: 0.6rem;
  color: #ffffff;
  text-decoration: none;
}

.team-back__arrow {
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.team-back__link:hover .team-back__arrow {
  transform: translateX(3px);
}

@media (max-width: 900px) {
.team-back { padding: var(--space-8) var(--space-6);
}
}

/* ============================================================================
   SINGLE TEAM MEMBER — HERO
   ============================================================================ */

.team-hero {
  display: grid;
  grid-template-columns: 1.5fr 3fr; /* 40% photo / 60% navy */
  height: 580px;
  position: relative;
  width: 100%;
  margin-bottom: var(--space-16);
}

.team-hero__photo-col {
  overflow: hidden;
  background-color: var(--color-navy);
  position: relative;
}

.team-hero__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: top center;
  display: block;
}

.team-hero__info-col {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  background-color: var(--color-navy);
  background-image: url(/wp-content/themes/new-south/images/navy-bkg.png);
  background-repeat: no-repeat;
}

/* Solid navy overlay with diagonal right edge — background image peeks through on the right */
.team-hero__info-col::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: var(--color-navy);
  clip-path: polygon(0 0, 78% 0, 62% 100%, 0 100%);
  z-index: 0;
}

.team-hero__info-inner {
  padding: var(--space-16) var(--space-12) var(--space-8);
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.team-hero__name {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: var(--weight-normal);
  color: var(--color-white);
  margin: 0 0 var(--space-3);
  line-height: var(--line-tight);
}

.team-hero__title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: var(--weight-semibold);
  color: var(--color-light-blue);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 var(--space-8);
}

.team-hero__contact {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.team-hero__contact-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
}

.team-hero__contact-icon {
  width: 16px;
  height: 16px;
  object-fit: contain;
  flex-shrink: 0;
  opacity: 0.7;
}

.team-hero__contact-link {
  font-family: var(--font-heading);
  font-size: var(--text-body);
  color: white;
  text-decoration: none;
}

.team-hero__contact-link:hover {
  color: var(--color-white);
  text-decoration: underline;
}

.team-hero__vcard {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  color: var(--color-white);
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: var(--radius-sm);
  padding: var(--space-2) var(--space-4);
  margin-top: var(--space-2);
  transition: background-color var(--transition-base), border-color var(--transition-base);
}

.team-hero__vcard:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: var(--color-white);
}

@media (max-width: 900px) {
  .team-hero {
    height: auto;
  }

  .team-hero__photo-col {
    height: 420px;
    background-color: var(--color-navy);
    padding: 0px var(--space-8);
  }

  .team-hero__info-inner {
    padding: var(--space-10) var(--space-8);
  }

  .team-hero__name {
    font-size: var(--text-h2);
  }

  .team-hero__info-col {
    background-size: 109%;
  }

  .team-hero__photo {
        object-position: center;
    }

  .team-hero__info-inner {
    padding: var(--space-8) var(--space-6);
  }

  .team-hero__info-col {
 background-image: none;
}

}

@media (max-width: 768px) {

    .team-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

 .team-hero__photo {
        object-position: center 21%;
        object-fit: cover;
    }

}

/* ============================================================================
   SINGLE TEAM MEMBER — CONTENT SECTIONS
   ============================================================================ */

.team-content {
  padding: var(--space-16) 0;
}

.team-content__inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.team-section__heading {
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-semibold);
  color: var(--color-heading);
  margin: var(--space-6) 0;
  padding-bottom: var(--space-4);
  border-bottom: 2px solid var(--color-silver);
}

.team-section__body {
  font-size: var(--text-body);
  color: var(--color-text);
  line-height: var(--line-loose);
}

@media (max-width: 900px) {
  .team-content {
    padding: 0 0 var(--space-12) ;
  }

  .team-content__inner {
    padding: 0 var(--space-6);
    gap: var(--space-10);
  }
}


/* ── Two-column layout for Affiliations + Education ──────────────────────── */

.team-columns {
  display: contents; /* single item: no wrapping, flows naturally */
}

.team-columns--two {
  display: flex;
  flex-direction: column;
  gap: var(--space-10);
}

@media (max-width: 768px) {
  .team-columns--two {
    grid-template-columns: 1fr;
  }
}


/* ============================================================================
   SINGLE TEAM MEMBER — PROPERTIES SLIDER
   ============================================================================ */

.team-properties {
  padding: var(--space-16) 0;
  background-image:url(/wp-content/themes/new-south/images/map-bkg.jpg);
  background-color: var(--color-ice-blue);
}

.team-properties__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.team-properties__heading {
  text-align: center;
  margin-bottom: var(--space-8);
  font-family: var(--font-heading);
  font-size: var(--text-h4);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-navy);
}

.team-properties__slider {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

/* Arrow buttons — match home-clients pattern */
.team-properties__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: opacity var(--transition-base);
}

.team-properties__arrow:hover { opacity: 0.7; }
.team-properties__arrow:disabled { opacity: 0.25; cursor: default; }

.team-properties__arrow:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.team-properties__arrow-icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
}

.team-properties__arrow--prev .team-properties__arrow-icon {
  transform: scaleX(-1);
}

/* Scrollable track */
.team-properties__track-wrap {
  overflow: hidden;
  flex: 1;
  min-width: 0;
}

.team-properties__track {
  display: flex;
  gap: var(--space-6);
  list-style: none;
  margin: 0;
  padding: 0;
  transition: transform 0.35s ease;
  will-change: transform;
}

.team-properties__item {
  flex: 0 0 calc((100% - (var(--space-6) * 2)) / 3);
  min-width: 0;
}

@media (max-width: 900px) {
  .team-properties__item {
    flex: 0 0 calc((100% - var(--space-6)) / 2);
  }
}

@media (max-width: 600px) {
  .team-properties {
    padding: var(--space-12) 0;
  }

  .team-properties__inner {
    padding: 0 var(--space-6);
  }

  .team-properties__item {
    flex: 0 0 100%;
  }
}


/* ============================================================================
   SERVICES PAGE — SERVICE AREAS
   ============================================================================ */

.services-areas {
  display: flex;
  flex-direction: column;
}

.services-areas--horizontal {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}

.services-areas--3col {
  grid-template-columns: 1fr 1fr 1fr;
}

.services-areas--horizontal .services-area:first-child .services-area__inner {
  padding-left: var(--space-12);
}

.services-areas--horizontal .services-area:last-child .services-area__inner {
  padding-right: var(--space-12);
}

/* Each service area alternates white / ice-blue background */
.services-area {
  padding: var(--space-16) 0;
  background-color: var(--color-white);
}

.services-area--alt {
  background-color: var(--color-ice-blue);
}

.services-areas--horizontal .services-area {
   background-color: #eeeff0;
}

.services-areas--horizontal .services-area--alt {
   background-color: var(--color-ice-blue);
}

.services-area__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: var(--space-12);
  align-items: start;
}

/* Large decorative number */
.services-area__number {
  font-family: var(--font-display);
  font-size: 5rem;
  font-weight: var(--weight-bold);
  line-height: 1;
  color: var(--color-blue);
  opacity: 0.18;
  user-select: none;
  padding-top: var(--space-1);
}

.services-area__body {
  font-size: var(--text-body);
  color: var(--color-text);
  line-height: var(--line-loose);
}

/* First heading in the body acts as the service title */
.services-area__body h2,
.services-area__body h3 {
  color: var(--color-navy);
  margin-top: 0;
}

@media (max-width: 768px) {
  .services-areas--horizontal {
    grid-template-columns: 1fr;
  }

  .services-area {
    padding: var(--space-12) 0;
  }

  .services-area__inner {
    grid-template-columns: 60px 1fr;
    gap: var(--space-8);
    padding: 0 var(--space-6);
  }

  .services-area__number {
    font-size: 3.5rem;
  }
}

@media (max-width: 480px) {
  .services-area__inner {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .services-area__number {
    font-size: 2.5rem;
    opacity: 0.12;
  }
}


/* ============================================================================
   SERVICES PAGE — DOWNLOADS
   ============================================================================ */

.services-downloads {
  padding: var(--space-16) 0;
  background-color: var(--color-navy);
}

.services-downloads__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.services-downloads__eyebrow {
  font-family: var(--font-heading);
  font-size: var(--text-label);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-light-blue);
  margin: 0 0;
}

.services-downloads__heading {
  font-family: var(--font-display);
  color: var(--color-white);
  margin: 0 0 var(--space-8);
}

.services-downloads__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

.services-downloads__item {
  margin: 0;
}

.services-downloads__link {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-6);
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--color-white);
  min-width: 0;
  overflow: hidden;
  transition: background-color var(--transition-base), border-color var(--transition-base);
}

.services-downloads__link:hover {
  background-color: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.3);
  text-decoration: none;
}

.services-downloads__icon-wrap {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: white;
  border-radius: var(--radius-sm);
}

.services-downloads__icon {
  width: 15px;
  height: 15px;
  object-fit: contain;
}

.services-downloads__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.services-downloads__title {
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  color: var(--color-white);
  white-space: nowrap;
  overflow: hidden;
  text-transform: capitalize;
  text-overflow: ellipsis;
}

.services-downloads__meta {
  font-family: var(--font-heading);
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.services-downloads__cta {
  flex-shrink: 0;
  font-family: var(--font-heading);
  font-size: 0.75rem;
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-red);
}

@media (max-width: 900px) {
  .services-downloads__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .services-downloads {
    padding: var(--space-12) 0;
  }

  .services-downloads__inner {
    padding: 0 var(--space-6);
  }

  .services-downloads__grid {
    grid-template-columns: 1fr;
  }

  .services-downloads__cta {
    display: none;
  }

  .services-downloads__heading {
    font-size: 2rem;
  }

  .services-downloads__title {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
  }
}

/* ============================================================================
   SERVICES HUB — CHILD PAGES GRID
   ============================================================================ */

.services-hub {
  background-color: var(--color-white);
  padding: var(--space-20) 0;
}

.services-hub__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.services-hub__eyebrow {
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-red);
  margin: 0 0;
}

.services-hub__heading {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-normal);
  color: var(--color-navy);
  margin: 0 0 var(--space-12);
}

.services-hub__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

.services-hub__item {
  margin: 0;
}

.services-hub__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-top: 3px solid var(--color-blue);
  padding: var(--space-8);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.services-hub__card:hover {
  box-shadow: 0 4px 20px rgba(26, 45, 69, 0.1);
  transform: translateY(-2px);
}

.services-hub__card-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  border: 1.5px solid var(--color-light-blue);
  margin-bottom: var(--space-6);
  flex-shrink: 0;
}

.services-hub__card-icon {
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.services-hub__card-title {
  font-family: var(--font-heading);
  font-size: var(--text-h4);
  font-weight: var(--weight-semibold);
  color: var(--color-blue);
  margin: 0 0 var(--space-4);
  line-height: var(--line-tight);
}

.services-hub__card-excerpt {
  font-family: var(--font-body);
  color: var(--color-text);
  margin: 0 0 var(--space-6);
  flex: 1;
}

.services-hub__card-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: var(--weight-semibold);
  color: var(--color-blue);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: auto;
  transition: color 0.2s ease, gap 0.2s ease;
}

.services-hub__card-link img.arrow {
  height: 13px;
  width: 14px;
}

.services-hub__card-link:hover {
  color: var(--color-red);
  gap: var(--space-3);
  text-decoration: none;
}

@media (max-width: 1024px) {
  .services-hub__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .services-hub {
    padding: var(--space-14) 0;
  }

  .services-hub__inner {
    padding: var(--space-6);
  }

  .services-hub__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .services-hub__heading {
    margin: 0 0 var(--space-6);
    font-size: 2.7rem;
  }
}

/* ============================================================================
   CLIENTS PAGE
   ============================================================================ */

/* Hero intro body — sits below h1 inside the hero overlay */
.clients-hero__intro {
  margin-top: var(--space-6);
  max-width: 640px;
}

.clients-hero .about-hero__overlay {
  background: rgba(16, 24, 32, 0.82);
}

.clients-hero__intro p {
  color: rgba(255, 255, 255, 0.9);
  font-size: var(--text-body);
  line-height: var(--line-loose);
  margin: 0 0 var(--space-4);
}

.clients-hero__intro p:last-child {
  margin-bottom: 0;
}

/* Gutenberg button override — match site .btn-primary style */
.clients-hero__intro .wp-block-button__link,
.clients-hero__intro .wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: var(--weight-semibold);
  padding: var(--space-4) var(--space-8);
  min-height: 44px;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  text-decoration: none;
  background-color: var(--color-red);
  color: var(--color-white) !important;
  transition: var(--transition-base);
}

.clients-hero__intro .wp-block-button__link:hover,
.clients-hero__intro .wp-element-button:hover {
  background-color: var(--color-blue);
  color: var(--color-white) !important;
  text-decoration: none;
}

.clients-hero__intro .wp-block-button {
  margin-top: var(--space-4);
}

/* Client logo sections wrapper */
.clients-sections {
  background-color: var(--color-white);
  padding: var(--space-16) 0 var(--space-20);
}

.clients-sections__inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

/* Individual section (one per ACF repeater row) */
.clients-section {
  margin-bottom: var(--space-16);
}

.clients-section:last-child {
  margin-bottom: 0;
}

.clients-section__heading {
  font-family: var(--font-display);
  font-size: var(--text-h3);
  font-weight: var(--weight-normal);
  color: var(--color-navy);
  padding-bottom: var(--space-4);
  border-bottom: 2px solid var(--color-ice-blue);
  margin: 0 0 var(--space-12);
}


/* Logo grid */
.clients-logo-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-6);
  list-style: none;
  margin: var(--space-2) 0 0;
  padding: 0;
}

.clients-logo-grid__item {
  margin: 0;
}

.clients-logo-grid__cell {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100px;
  padding: var(--space-4);
  background-color: var(--color-white);
  border: 1px solid rgba(26, 45, 69, 0.1);
  border-radius: var(--radius-sm);
  transition: box-shadow 0.2s ease;
}

.clients-logo-grid__cell:hover {
  box-shadow: 0 4px 16px rgba(26, 45, 69, 0.1);
}

.clients-logo-grid__img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

@media (max-width: 1024px) {
  .clients-logo-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 768px) {
  .clients-sections {
    padding: var(--space-12) 0 var(--space-16);
  }

  .clients-sections__inner {
    padding: 0 var(--space-6);
  }

  .clients-logo-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
  }
}

@media (max-width: 480px) {
  .clients-logo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ==================================================
   CONTACT PAGE
================================================== */

/* ── Intro + Map 50/50 split ─────────────────────── */

.contact-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
  background-color: var(--color-white);
}

.contact-split__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-16) var(--space-32);
}

.contact-split__content a {
  color: var(--color-heading);
  text-decoration: none;
}

.contact-split__content a:hover {
  text-decoration: underline;
}

.contact-split__content h2.wp-block-heading {
  font-family: var(--font-body);
  font-size: var(--text-h3);
  font-weight: var(--weight-bold);
  line-height: var(--line-snug);
  color: var(--color-blue);
  margin: 0 0 var(--space-6);
}

.contact-split__map {
  position: relative;
}

.contact-split__map .property-map__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* ── Form Section ───────────────────────────────── */

.contact-form-section {
  padding: var(--space-20) 0;
  background-size: cover;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
}

.contact-form-section__inner {
  max-width: var(--container-narrow, 760px);
  margin: 0 auto;
  padding: 0 var(--space-8);
}

.contact-form-section__header {
  margin-bottom: var(--space-10);
  text-align: center;
}

.contact-form-section__heading {
  font-family: var(--font-display);
  font-size: var(--text-h2);
  font-weight: var(--weight-regular);
  color: var(--color-white);
  line-height: var(--line-snug);
  margin-bottom: var(--space-3);
}

.contact-form-section__subtext {
  font-size: var(--text-body);
  color: white;
  line-height: var(--line-relaxed);
}

/* Gravity Forms overrides — matches .home-newsletter__form */
.contact-form-section__form {
  color: var(--color-white);
}

.contact-form-section__form .gform_wrapper.gravity-theme .gform_footer,
.contact-form-section__form .gform_wrapper.gravity-theme .gform_page_footer {
  margin: 0;
  padding: 0;
}

.contact-form-section__form .gform_wrapper .gfield_label,
.contact-form-section__form .gform_wrapper.gravity-theme .ginput_complex label,
.contact-form-section__form .gform_wrapper.gravity-theme .ginput_complex legend {
  color: var(--color-white);
}

.contact-form-section__form input::placeholder,
.contact-form-section__form textarea::placeholder {
  font-family: var(--font-body);
  color: var(--color-mid-gray);
  opacity: 1;
  font-size: var(--text-body);
}

.contact-form-section__form .gform_button,
.contact-form-section__form input[type="submit"],
.contact-form-section__form button[type="submit"] {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-heading);
  font-size: 0.8125rem;
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: var(--space-3) var(--space-8);
  min-height: 44px;
  border: none;
  border-radius: var(--radius-btn);
  cursor: pointer;
  background-color: var(--color-red);
  color: var(--color-white);
  transition: background-color var(--transition-base);
}

.contact-form-section__form .gform_button:hover,
.contact-form-section__form input[type="submit"]:hover,
.contact-form-section__form button[type="submit"]:hover {
  background-color: var(--color-red-dark);
}

.contact-form-section__form .gform_button:focus-visible,
.contact-form-section__form input[type="submit"]:focus-visible,
.contact-form-section__form button[type="submit"]:focus-visible {
  outline: 3px solid var(--color-blue);
  outline-offset: 2px;
}

.contact-form-section__form .gform_button::after,
.contact-form-section__form input[type="submit"]::after,
.contact-form-section__form button[type="submit"]::after {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background-image: url('/wp-content/themes/new-south/images/arrow-right-white.png');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

/* ── Responsive ─────────────────────────────────── */

@media (max-width: 1240px) {
 .contact-split__content {
    padding: var(--space-12) var(--space-6);
  }
}

@media (max-width: 768px) {
  .contact-split {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .contact-split__content {
    padding-bottom: 0px;
  }

 .contact-split__content .wp-block-columns {
   gap: 0px;
  }


  .contact-split__map {
    height: 360px;
  }

  .contact-form-section {
    padding: var(--space-14) 0;
  }

  .contact-form-section__heading {
    font-size: var(--text-h3);
  }
}

@media (max-width: 480px) {
  .contact-form-section__inner {
    padding: var(--space-6);
  }
}

/* ==================================================
   ENTRANCE ANIMATIONS
================================================== */

@keyframes nsp-fade-up {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes nsp-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Used by portfolio-map.js for SVG marker elements */
@keyframes nsp-pin-fall {
  from {
    opacity: 0;
    transform: translateY(-40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.nsp-anim {
  opacity: 0;
}

.nsp-anim.is-visible {
  animation: nsp-fade-up 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: var(--nsp-delay, 0s);
}

.nsp-anim.nsp-anim--fade.is-visible {
  animation: nsp-fade-in 0.65s ease both;
  animation-delay: var(--nsp-delay, 0s);
}

@media (prefers-reduced-motion: reduce) {
  .nsp-anim {
    opacity: 1;
  }
  .nsp-anim.is-visible {
    animation: none;
  }
}