/* =========================================================================
   NOTE ON ORGANIZATION
   This file consolidates three former locations:
     1. Customizer > Additional CSS (439 lines)
     2. WPCode snippet 859 "animation_css" (non-slider rules only)
     3. WPCode snippet 1300 "Cinematic Styles" (CSS portion)
   All Smart Slider (n2-* / .ss-slide) rules were REMOVED — the plugin and the
   only page using it (Inspiring Greatness) were deleted 2026-06-01, so that
   CSS was dead. Duplicate declarations, dead overrides, and a cross-location
   box-shadow conflict were resolved (see inline notes).
   ========================================================================= */

/* === Site container & global chrome ===================================== */
.site-container {
    max-width: 1440px !important;
}
.kadence-svg-iconset svg {
    height: 0.8em;
    width: 0.8em;
}
.content-area {
    margin-bottom: -1px !important;
}
main#inner-wrap {
    margin-bottom: 272px;
    background: #fff;
    z-index: 2;
}
footer.site-footer {
    bottom: 0;
    left: 0;
    position: fixed;
    width: 100%;
    padding-bottom: 36px;
}
.wp-block-spacer {
    background: #e2e2e2 !important;
}
.wp-block-column {
    border-left: 1px solid #dddddd;
}
/* === end global chrome === */

/* === Header scroll-hide behavior (driven by JS: header-scroll.js) =======
   Class toggles `menu-hidden` / `is-sticky` are applied on scroll by JS that
   watches the homepage video container (.kb-blocks-bg-video-container).
   CONFLICT RESOLVED: snippet 859 set box-shadow: 0 2px 8px on .is-sticky while
   the Customizer set box-shadow: none !important. The Customizer value won
   live, so the no-shadow result is preserved here as the single intended rule.
   ======================================================================== */
.site-main-header-wrap {
    transition: all 0.4s ease;
}
.site-main-header-wrap.menu-hidden {
    transform: translateY(-100%);
    opacity: 0;
    transition: all 0.4s ease;
}
.site-bottom-header-wrap.is-sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    box-shadow: none;
    transition: top 0.4s ease, opacity 0.4s ease;
}
body.home .site-bottom-header-wrap {
    display: none !important;
}
/* === end header scroll-hide === */

/* === Navigation & menu items ============================================ */
span.kt-svg-icon-list-text {
    font-size: 12px;
    text-decoration: none;
    transition: opacity .4s;
    color: #fff;
}

.widget-toggle-open-container .widget-toggle-open {
    display: flex;
    flex-direction: row-reverse;
    column-gap: 10px;
}
.search-toggle-open {
    flex-direction: row-reverse;
    column-gap: 10px;
}
.kt-svg-icon-list-single {
    display: none !important;
}
.site-footer-row-container .site-container {
    padding-left: 0 !important;   /* was declared twice; de-duplicated */
}
.wp-block-kadence-listitem:hover {
    cursor: pointer;
    opacity: 0.8;
}
/* === end drawer / mobile menu === */

/* === Headings & text ==================================================== */
p.has-small-font-size {
    padding: 0 15px;
}
h2.wp-block-heading.has-small-font-size {
    padding: 0 15px;
    text-transform: uppercase;
}/* === end hero row centering === */

/* === Footer logo + body scroll behavior (from snippet 1300) ============= */
/* Native scroll — no wheel hijacking, no section snapping */
/* === Global typography base: rendering refinements (site-wide) === */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
}
/* === end global typography base === */

html, body {
    scroll-behavior: auto;
    overscroll-behavior-y: auto;
    scroll-snap-type: none;
}
#colophon .wp-block-kadence-image img {
    width: 180px;
    padding: 5px 0 12px;
}
/* === end footer logo + scroll behavior === */

/* === Logo crossfade: wordmark -> turtle (scroll-linked, JS-driven) === */
/* Opacity + turtle scale are driven by js/logo-scroll-crossfade.js via GSAP
   ScrollTrigger. CSS here only establishes layout. Do NOT add opacity/transition
   or a scale here -- that fights the scroll-scrubbed animation.

   IMPORTANT: Kadence's native sticky logo-swap must be turned OFF in
   Customize -> Header -> Sticky settings, or Kadence sets opacity:0 inline on the
   wordmark in the stuck state and the GSAP fade can't win without !important. */
.brand.has-sticky-logo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Turtle stacked over the wordmark, centered. Base box is the ENLARGED size
   (75 x 47.5); GSAP scales it DOWN to the resting 60 x 38 (scale 0.8), which
   keeps the raster crisp. JS sets opacity (0 at top), transform, and scale. */
.brand.has-sticky-logo img.kadence-sticky-logo {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 75px;
  height: 47.5px;
  object-fit: contain;
  opacity: 0;
  pointer-events: none;
  /* transform (centering translate + scale) and opacity are set by GSAP */
}
/* === end logo crossfade === */

/* === Responsive / breakpoints =========================================== */
@media screen and (max-width: 1024px) {
    main#inner-wrap {
        margin-bottom: 392px;
    }
}    
@media screen and (max-width: 768px) {
    main#inner-wrap {
        margin-bottom: 592px;
    }
    .site-footer-middle-section-1.site-footer-section.footer-section-inner-items-5 {
        display: grid;
        min-height: 36px;
        grid-template-columns: 1fr 1fr;
        margin-bottom: 30px;
    }
}
/* === end responsive === */

/* === Land & Sea: image-switch overlapping pair (2026-06-15, rev7 larger) === */
.ls-image-switch {
  position: relative;
  width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  /* overlay top (36vw) + overlay height (92vw * 10/16 = 57.5vw) ≈ 93.5vw + gap */
  padding-bottom: 77vw;
  overflow: visible;
}
.ls-image-switch__base,
.ls-image-switch__overlay {
  display: block;
  position: absolute;
  width: 85vw;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.ls-image-switch__base {
  top: 0;
  left: -12vw;            /* bleeds further off the left */
  z-index: 1;
}
.ls-image-switch__overlay {
  top: 20vw;              /* larger vertical stagger */
  left: 25vw;             /* right edge ~112vw, bleeds off the right */
  z-index: 2;
}

/* Tablet */
@media (max-width: 1024px) {
  .ls-image-switch { padding-bottom: 105vw; }
  .ls-image-switch__base,
  .ls-image-switch__overlay { width: 100vw; }
  .ls-image-switch__base    { left: -10vw; top: 0; }
  .ls-image-switch__overlay { left: 14vw; top: 40vw; }
}

/* Mobile: stack vertically */
@media (max-width: 600px) {
  .ls-image-switch {
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .ls-image-switch__base,
  .ls-image-switch__overlay {
    position: static;
    width: 100%;
    top: auto; left: auto;
  }
}
/* === end image-switch === */

/* === Land & Sea: hover-play video feature (2026-06-15) === */
.ls-video-feature {
  text-align: center;
  max-width: 1440px;
  margin: 0 auto;
  padding: 60px 20px;
}
.ls-video-feature__eyebrow {
  font-size: 13px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0 0 12px;
}
.ls-video-feature__headline {
  font-size: 2.5rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 300;
  margin: 0 0 20px;
}
.ls-video-feature__text {
  max-width: 600px;
  margin: 0 auto 28px;
  line-height: 1.7;
}
.ls-video-feature__video-wrap {
  position: relative;
  width: 100%;
  margin-top: 40px;
  overflow: hidden;
  cursor: pointer;
}
.ls-video-feature__video {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
@media (max-width: 768px) {
  .ls-video-feature__headline { font-size: 30px; }
}
/* === end hover-play video feature === */
/* === Land & Sea: neighborhood carousel (2026-06-17) ===========================
   Full-width horizontal scroller for the "Neighborhood Carousel" block pattern
   (kadence-child/neighborhood-carousel). Scoped to .ls-hood-carousel so it can't
   touch the existing static neighborhood grid. Card visuals mirror that grid:
   Josefin Sans uppercase title, square image, body copy in #2d3748.
   Scroll logic: js/neighborhood-carousel.js
   --------------------------------------------------------------------------- */
.ls-hood-carousel {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 0;
  margin-bottom: 40px;
  padding-top: 7.5rem;
  overflow: hidden;
}
.ls-hood-carousel__head {
  position: relative;
  max-width: 1328px;
  margin: 0 auto 40px;
  padding: 0 24px;
}
.ls-hood-carousel__intro {
  max-width: 840px;
  margin: 0 auto;
  text-align: center;
}
.ls-hood-carousel__title {
  font-family: 'Inter', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 300;
  font-size: 2.5rem;
  color: #151515;
  margin: 0 0 16px;
}
.ls-hood-carousel__lead {
  font-size: 1rem;
  line-height: 1.6;
  color: #151515;
  margin: 0 0 40px;
}
.ls-hood-carousel__nav {
  position: absolute;
  top: 0;
  right: 24px;
  display: flex;
  gap: 10px;
}
.ls-hood-carousel__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #8A919A;
  color: #FFFFFF;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, opacity 0.25s ease, border-color 0.25s ease;
}
.ls-hood-carousel__arrow:hover:not(:disabled) {
  background: #52575C;
  color: #fff;
}
.ls-hood-carousel__arrow:disabled {
  opacity: 0.3;
  cursor: default;
}
.ls-hood-carousel__arrow svg { display: block; }

/* Track: full bleed; left padding aligns first card with the page content
   gutter PLUS a small aesthetic offset; right edge runs off screen so the
   trailing card is clipped (the "there's more" cue). */
.ls-hood-carousel__track {
  display: flex;
  gap: 34px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 4px 0;
  padding-left: 34px;
  scroll-padding-left: 34px;
  scrollbar-width: none;
}
.ls-hood-carousel__track::-webkit-scrollbar { display: none; }

.ls-hood-card {
  flex: 0 0 auto;
  width: 440px;
  border-left: 1px solid #ddd;
  scroll-snap-align: start;
}
.ls-hood-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.ls-hood-card__link:hover,
.ls-hood-card__link:focus { color: inherit; }
.ls-hood-card__media {
  margin: 0 0 32px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.ls-hood-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.ls-hood-card:hover .ls-hood-card__media img { transform: scale(1.05); }
.ls-hood-card__name {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 2.3px;
  text-transform: uppercase;
  color: #151515;
  margin: 0 0 7px;
  padding-left: 16px;
}
.ls-hood-card__text {
  font-size: 0.9rem;
  line-height: 1.6;
  color: #151515;
  margin: 0;
  padding-left: 16px;
}

/* "More Neighborhoods" card — same footprint, link-style treatment */
.ls-hood-card--more .ls-hood-card__more-link {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  background: #151515;
  color: #fff;
  text-decoration: none;
  transition: background-color 0.3s ease;
}
.ls-hood-card--more .ls-hood-card__more-link:hover { background: #2d3748; }
.ls-hood-card__more-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}
.ls-hood-card__more-label {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.167rem;
  text-transform: uppercase;
  line-height: 1.3;
}
.ls-hood-card__more-arrow { display: inline-flex; }

@media (max-width: 768px) {
  .ls-hood-card { width: clamp(220px, 72vw, 280px); }
  .ls-hood-carousel__head { padding: 0 18px; }
  .ls-hood-carousel__nav { right: 18px; }
  .ls-hood-carousel__track { padding-left: 18px; scroll-padding-left: 18px; }
}
/* === end neighborhood carousel === */
/* === Land & Sea: Centered CTA pattern (ls-cta) — added 2026-06-17 === */
.ls-cta {
  width: 100%;
  padding: 96px 24px;
  text-align: center;
}
.ls-cta__inner {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ls-cta__eyebrow {
  margin: 0 0 24px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.167em;
  text-transform: uppercase;
  color: #151515;
}
.ls-cta__heading {
  margin: 0;
  font-size: 2.5rem;
  font-weight: 300;
  letter-spacing: 0.15em;
  line-height: 1.1;
  color: #151515;
}
.ls-cta__divider {
  display: block;
  width: 40px;
  height: 1px;
  margin: 28px auto 32px;
  background: #1a1a1a;
}
.ls-cta__body {
  margin: 0 0 40px;
  max-width: 620px;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.85;
  color: #4a4a4a;
}
.ls-cta__button,
.ls-pinnacle__cta .wp-block-button__link {
  display: inline-block;
  padding: 16px 40px;
  border-radius: 999px;
  background: #8A919A;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.3s ease, transform 0.3s ease;
}
.ls-cta__button:hover,
.ls-cta__button:focus,
.ls-pinnacle__cta .wp-block-button__link:hover,
.ls-pinnacle__cta .wp-block-button__link:focus {
  background: #757d86;
  color: #ffffff;
  transform: translateY(-1px);
}

@media (max-width: 768px) {
  .ls-cta { padding: 64px 20px; }
  .ls-cta__heading { font-size: 34px; }
  .ls-cta__body { font-size: 15px; }
}
/* === end Centered CTA pattern === */

/* === Land & Sea: two-column parallax patterns (ls-parallax) — added 2026-06-17 === */
.ls-parallax {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  margin-top: 0;
  margin-bottom: 0;
  overflow-x: clip;
}
.ls-parallax__media {
  position: relative;
  aspect-ratio: 2000 / 1320;
  align-self: start;
  overflow: visible;
}
.ls-parallax__media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 2000 / 1320;
  max-width: none;
  display: block;
  will-change: transform;
}
.ls-parallax__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 80px;
  padding-inline: clamp(2rem, 6vw, 8rem);
  will-change: transform;
}
.ls-parallax:not(.ls-parallax--image-right) .ls-parallax__content {
  align-items: flex-start;
  text-align: left;
}
.ls-parallax--image-right .ls-parallax__content {
  align-items: flex-end;
  text-align: right;
}
.ls-parallax__heading {
  margin: 0 0 24px;
  font-weight: 300;
  letter-spacing: 0.16em;
  line-height: 1.45;
  text-transform: uppercase;
  color: #151515;
}
.ls-parallax__body {
  margin: 0 0 36px;
  max-width: 80ch;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.95;
  color: #151515;
}
.ls-parallax__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, max-content);
  grid-template-rows: repeat(5, auto);
  grid-auto-flow: column;
  column-gap: 3rem;
}

/* Override Kadence .single-content ul padding-left (2em) — keep link grid flush */
.ls-parallax .ls-parallax__links {
  padding-left: 0;
}
.ls-parallax__links li {
  margin: 0 0 12px;
}
.ls-parallax__links a {
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.6;
  color: #151515;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.25s ease;
}
.ls-parallax__links a:hover,
.ls-parallax__links a:focus {
  color: #8A919A;
}
.ls-parallax--image-right .ls-parallax__media {
  order: 2;
}
.ls-parallax--image-right .ls-parallax__content {
  order: 1;
}
@media (max-width: 768px) {
  .ls-parallax {
    grid-template-columns: 1fr;
    margin-top: 0;
    margin-bottom: 0;
  }
  .ls-parallax__media {
    aspect-ratio: 2000 / 1320;
    order: 1;
    overflow: hidden;
  }
  .ls-parallax__media img,
  .ls-parallax:not(.ls-parallax--image-right) .ls-parallax__media img,
  .ls-parallax--image-right .ls-parallax__media img {
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: none !important;
  }
  .ls-parallax__content,
  .ls-parallax:not(.ls-parallax--image-right) .ls-parallax__content,
  .ls-parallax--image-right .ls-parallax__content {
    order: 2;
    padding: 56px 24px;
    align-items: flex-start;
    transform: none !important;
  }
  .ls-parallax--image-right .ls-parallax__media { order: 1; }
  .ls-parallax--image-right .ls-parallax__content { order: 2; }
}
/* === end two-column parallax patterns === */

/* === LS Testimonials — video bg slider (2026-06-18) === */
/* Facsimile of michaellawler.com "FROM OUR CLIENTS".
   Typography intentionally omitted — global Kadence font styles control
   family/weight on .ls-testimonials__heading, __quote, __author.
   After editing this file, bump the Version: line in style.css header so
   functions.php's wp_get_theme()->get('Version') cache-busts the enqueue. */

.ls-testimonials {
	position: relative;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	width: 100vw;
	min-height: 548px;
	display: flex;
	align-items: center;
	overflow: hidden;
	isolation: isolate;
	color: #fff;
}

.ls-testimonials__video {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.ls-testimonials__video-el {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.ls-testimonials__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, 0.5); /* matches reference scrim */
}

.ls-testimonials__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1328px; /* matches .site-container width */
	margin: 0 auto;
	padding: 5rem 2rem;
	display: flex;
	align-items: center;
	gap: 3rem;
}

.ls-testimonials__left {
	flex: 0 0 30%;
	max-width: 30%;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.ls-testimonials__heading {
	margin: 0;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.ls-testimonials__arrows {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* Rotate chevrons to vertical: prev = up, next = down */
.ls-testimonials__arrow--prev svg { transform: rotate(90deg); }
.ls-testimonials__arrow--next svg { transform: rotate(90deg); }

.ls-testimonials__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	cursor: pointer;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.ls-testimonials__arrow:hover,
.ls-testimonials__arrow:focus-visible {
	background: #fff;
	border-color: #fff;
	color: #111;
	outline: none;
}

.ls-testimonials__right {
	flex: 1 1 auto;
	min-width: 0;
}

.ls-testimonials__track {
	position: relative;
	min-height: 180px; /* JS sets this from the tallest slide; fallback here */
}

.ls-testimonials__slide {
	transition: opacity 0.5s ease, transform 0.5s ease, visibility 0.5s ease;
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(40px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	border-left: 2px solid #ffffff;
	padding-left: 1.25rem;
}

/* First-paint state before GSAP initializes (no-JS / pre-hydration safety) */
.ls-testimonials__slide.is-active {
	opacity: 1;
	visibility: visible;
	position: relative;
	transform: translateY(0);
}

/* Outgoing slide: rises up and out the top while the incoming one rises in from below */
.ls-testimonials__slide.is-leaving {
	opacity: 0;
	visibility: visible;
	position: absolute;
	transform: translateY(-40px);
}

/* Reverse direction (down arrow): incoming drops from above, outgoing exits below */
.ls-testimonials.is-reverse .ls-testimonials__slide {
	transform: translateY(-40px);
}
.ls-testimonials.is-reverse .ls-testimonials__slide.is-active {
	transform: translateY(0);
}
.ls-testimonials.is-reverse .ls-testimonials__slide.is-leaving {
	transform: translateY(40px);
}

.ls-testimonials__quote {
	margin: 0 0 1rem;
	color: #fff;
	font-style: normal;
	line-height: 1.6;
	border-left: 0;
	padding-left: 0;
}

.ls-testimonials__quote::before { content: "\201C"; }
.ls-testimonials__quote::after  { content: "\201D"; }

.ls-testimonials__author {
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: 0.04em;
}

/* ---- Tablet / mobile ---- */
@media (max-width: 991.99px) {
	.ls-testimonials__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 2rem;
		padding: 4rem 1.5rem;
	}
	.ls-testimonials__left {
		flex: 1 1 auto;
		max-width: 100%;
	}
}

/* Respect reduced-motion: video still loops, but no autoplay shimmer reliance */
@media (prefers-reduced-motion: reduce) {
	.ls-testimonials__video-el { display: none; }
	.ls-testimonials { background: #14202b; }
}
/* === end LS Testimonials === */

/* === Land & Sea: parallax responsive refinements (2026-06-19) === */

@media (max-width: 768px) {
  .ls-parallax__links {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-flow: row;
    column-gap: 0;
  }
  .ls-parallax__links li {
    margin: 0 0 20px;
  }
  .ls-parallax__links a {
    display: inline-block;
    padding: 4px 0;
  }
  .ls-parallax__body {
    max-width: 100%;
  }
  .ls-parallax__content,
  .ls-parallax:not(.ls-parallax--image-right) .ls-parallax__content,
  .ls-parallax--image-right .ls-parallax__content {
    align-items: center;
    text-align: center;
  }
  .ls-parallax__links {
    justify-items: center;
    text-align: center;
  }
}
/* === end parallax responsive refinements === */

/* === Header nav: Rolls-Royce treatment + sub-nav row === */
/* Existing nav (MENU toggle + CONTACT) restyled to match: small, uppercase,
   wide tracking, white. Font: Inter (set globally in Kadence). */
.site-header-main-section-left .widget-toggle-label,
.site-header-main-section-right a {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff;
}

/* --- Sub-nav row (injected by js/header-subnav.js) ---------------------- */
.ls-subnav {
  width: 100%;
  position: relative;
  isolation: isolate;
}
/* Centered container; max-width matches the site container (1440px) so the
   row's right edge aligns under CONTACT and left edge under MENU at any width. */
.ls-subnav-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding-right: 1rem;
  box-sizing: border-box;
}
/* Links right-aligned, like the RR section row. */
.ls-subnav-links {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 32px;
  min-height: 60px;
}
.ls-subnav-link {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.25s ease;
  opacity: 1;
}
.ls-subnav-link:hover,
.ls-subnav-link:focus {
  opacity: 0.8;
  color: #fff;
}

/* Responsive: let the links wrap / tighten on small screens. */
@media (max-width: 768px) {
  .ls-subnav-inner { padding: 0 16px; }
  .ls-subnav-links { gap: 18px; justify-content: center; flex-wrap: wrap; }
  .ls-subnav-link { font-size: 13px; letter-spacing: 1px; }
}
/* === Land & Sea: single responsive header (mobile uses desktop layout) === */

/* Hide Kadence's mobile header entirely — we use the desktop header at all widths */
#mobile-header {
  display: none !important;
}

/* Keep the desktop header visible at all widths (override Kadence's mobile-breakpoint hide) */
@media (max-width: 1024px) {
  .site-header-wrap,
  .site-header-inner-wrap,
  .site-header-upper-wrap,
  .site-header-upper-inner-wrap,
  .site-main-header-wrap {
    display: block !important;
  }
}

/* Narrow viewport: shrink wordmark and hide sub-nav (drawer menu covers those links) */
/* Wordmark + band shrink: at ≤768px */
@media (max-width: 768px) {
  .ls-logo-wordmark { width: 180px !important; }
  .site-main-header-inner-wrap { min-height: 110px !important; }
}

/* Sub-nav hidden ≤1024px (desktop & laptop only) */
@media (max-width: 1024px) {
  .ls-subnav { display: none !important; }
}

/* === Land & Sea: sub-nav backdrop === */
.ls-subnav::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(20, 20, 20, 0.3);
  -webkit-backdrop-filter: blur(calc(var(--subnav-backdrop-opacity, 0) * 20px));
  backdrop-filter: blur(calc(var(--subnav-backdrop-opacity, 0) * 20px));
  opacity: var(--subnav-backdrop-opacity, 0);
  z-index: -1;
  pointer-events: none;
}
/* === end sub-nav backdrop === */

/* === Land & Sea: keep Kadence sticky header chrome transparent at all scroll states === */
.transparent-header #masthead .kadence-sticky-header,
.transparent-header #masthead .kadence-sticky-header .site-header-row-container-inner,
.transparent-header #masthead .site-main-header-wrap,
.transparent-header #masthead .site-main-header-wrap .site-header-row-container-inner {
  background-color: transparent !important;
  background-image: none !important;
}
/* === end === */

/* === Land & Sea: header geometry (size + shrink) === */
/* Restore padding/border overrides (originally bundled with the bad backdrop rules removed in v1.0.93) */
.kadence-sticky-header.item-is-fixed.item-at-start {
  padding: 0;
}
.site-header .site-container {
  padding: 0;
}
.site-main-header-wrap .site-header-row-container-inner > .site-container {
  padding: 0 !important;
  border-bottom: 1px solid #dddddd70;
  transition: padding 0.3s ease;
}

.site-main-header-inner-wrap {
  min-height: calc(120px - var(--band-shrink-progress, 0) * 45px) !important;
}
/* === end header geometry === */
/* === Land & Sea: wordmark padding-top (band height held by .site-main-header-inner-wrap min-height) === */
.ls-logo-wordmark {
  padding-top: 5px;
}
/* === end === */
/* === Land & Sea: primary nav hover dim (matches sub-nav 0.8) === */
.site-header .drawer-toggle,
.site-header .header-html-inner a {
  transition: opacity 0.25s;
  padding: 1rem;
}
.site-header .drawer-toggle:hover,
.site-header .drawer-toggle:focus,
.site-header .header-html-inner a:hover,
.site-header .header-html-inner a:focus {
  opacity: 0.8;
}
/* === end load-in choreography === */
/* === end === */

/* === Land & Sea: Pinnacle Feature pattern (2026-06-24, rev 2026-06-25 RR-faithful) === */
.ls-pinnacle {
	background: #fff;
	padding: 120px 0 0px;
}
.ls-pinnacle__intro {
	padding: 0 24px;
}
.ls-eyebrow,
.ls-pinnacle__eyebrow {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.167em;
	text-transform: uppercase;
	margin: 0 0 24px;
	opacity: 0.7;
}
.ls-pinnacle__heading {
	margin: 0 0 32px;
}
.ls-pinnacle__body {
	font-size: 16px;
	line-height: 1.6;
	margin: 0 0 48px;
}
.ls-pinnacle .ls-pinnacle__gallery {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 0;
	align-items: start;
	padding: 96px 24px 0px;
	width: 100vw;
	max-width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	box-sizing: border-box;
}
.ls-pinnacle .ls-pinnacle__gallery > .wp-block-group__inner-container {
	display: contents;
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img {
	margin: 0;
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(1) {
	grid-column: 1 / 4;
	grid-row: 1;
	transform: translate(8.3vw, 11.5vw);
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(1) img {
	aspect-ratio: 3 / 4;
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(2) {
	grid-column: 4 / 8;
	grid-row: 1;
	transform: translate(6.8vw, -1.7vw);
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(2) img {
	aspect-ratio: 5 / 8;
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(3) {
	grid-column: 7 / 10;
	grid-row: 1;
	transform: translate(6.8vw, 13vw);
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(3) img {
	aspect-ratio: 3 / 4;
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(4) {
	grid-column: 9 / 13;
	grid-row: 1;
	transform: translate(-1vw, -2.1vw) scale(0.648);
}
.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(4) img {
	aspect-ratio: 2 / 3;
}
@media (max-width: 768px) {
	.ls-pinnacle { padding: 64px 0 56px; }
	.ls-pinnacle .ls-pinnacle__gallery {
		grid-template-columns: 1fr 1fr;
		gap: 16px;
		padding: 48px 24px 64px;
	}
	.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(1),
	.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(2),
	.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(3),
	.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img:nth-child(4) {
		grid-column: auto;
		transform: none;
		z-index: auto;
	}
	.ls-pinnacle .ls-pinnacle__gallery .ls-pinnacle__img img {
		aspect-ratio: 3 / 4;
	}
}
/* Large H2s (Neighborhoods, Services, Bespoke) — fluid 24 → 40 */
.ls-hood-carousel__title,
.ls-cta__heading,
.ls-pinnacle__heading {
  font-size: clamp(1.5rem, 3.5vw, 2.5rem);
  line-height: 1.2;
  text-wrap: balance;
}

/* Medium H2s (Parallax, Visit Our Blog) — fluid 22 → 32 */
.ls-parallax__heading,
.kt-adv-heading1231_08928b-cd {
  font-size: clamp(1.375rem, 3vw, 2rem);
  line-height: 1.3;
  text-wrap: balance;
}

/* Generic H1/H2 fallback for any heading without a custom class */
h1 { font-size: clamp(2rem, 5vw, 3.75rem); line-height: 1.15; }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.5rem); line-height: 1.2; }

/* === end responsive headings === */
/* === Land & Sea: drawer menu redesign (Robin Kencel-inspired) === */

/* Drawer panel: narrower (420px), dark bg preserved */
#widget-drawer.popup-drawer-layout-sidepanel .drawer-inner {
  max-width: 700px !important;
  padding: 36px 100px !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Drawer header: flex row — wordmark left, X close right */
#widget-drawer .drawer-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 0 !important;
  margin-bottom: 86px !important;
}

/* Wordmark injected as ::before pseudo-element on the left */
#widget-drawer .drawer-header::before {
  content: '';
  display: block;
  width: 140px;
  height: 26px;
  background-image: url('https://landandsearealty.com/wp-content/uploads/2025/10/Land-Sea-Logo-no-padding.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left center;
  margin-top: 8px;
}

/* Close button: hide "CLOSE" text, keep X icon, large + right */
#widget-drawer .widget-toggle-close .widget-toggle-label,
#widget-drawer .widget-toggle-close > span:not(.kadence-svg-iconset) {
  display: none !important;
}
#widget-drawer .widget-toggle-close {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  color: #fff !important;
  transition: color 0.25s !important;
  opacity: 1 !important;
}
#widget-drawer .widget-toggle-close .kadence-svg-icon {
  width: 28px !important;
  height: 28px !important;
}
#widget-drawer .widget-toggle-close:hover {
  opacity: 0.7 !important;
}

/* Menu items: left-aligned, larger font, thin bottom dividers */
#widget-drawer .drawer-content .menu {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
#widget-drawer .drawer-content .menu-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
}
#widget-drawer .drawer-content .menu-item a {
  display: block !important;
  text-align: left !important;
  padding: 5px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: #fff !important;
  text-decoration: none !important;
  transition: opacity 0.25s !important;
}
#widget-drawer .drawer-content .menu-item a:hover {
  opacity: 0.7 !important;
}
/* Content area takes all available vertical space so contact info sits at the bottom */
#widget-drawer .drawer-content {
  flex: 1;
}

/* Contact info at bottom of drawer */
#widget-drawer .drawer-inner::after {
  content: 'T: (239) 970-1000  |  E: admin@landandsearealty.com';
  margin-top: 24px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  letter-spacing: 0.5px;
  color: rgba(255, 255, 255, 0.85);
}
/* === end drawer redesign === */

/* === Land & Sea: INQUIRE drawer (left-side slide-out, Robin Kencel-inspired) === */
#ls-inquire-drawer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9998;
}
#ls-inquire-drawer.is-open { pointer-events: auto; }

.ls-inquire-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 400ms ease;
  cursor: pointer;
}
#ls-inquire-drawer.is-open .ls-inquire-drawer__overlay { opacity: 1; }

.ls-inquire-drawer__panel {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 700px;
  max-width: 100vw;
  background: #ededed;
  transform: translateX(-100%);
  transition: transform 400ms ease;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  padding: 36px 100px;
  box-sizing: border-box;
}
#ls-inquire-drawer.is-open .ls-inquire-drawer__panel { transform: translateX(0); }

.ls-inquire-drawer__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 86px;
}
.ls-inquire-drawer__logo {
  width: auto;
  height: 26px;
  display: block;
  margin-top: 8px;
}
.ls-inquire-drawer__close {
  background: none;
  border: none;
  padding: 0;
  font-size: 32px;
  line-height: 1;
  color: #1a1a1a;
  cursor: pointer;
  transition: opacity 0.25s;
}
.ls-inquire-drawer__close:hover { opacity: 0.7; }

.ls-inquire-drawer__heading {
  font-family: 'Inter', sans-serif;
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 300;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1a1a1a;
  margin: 0 0 32px;
  line-height: 1.1;
}

.ls-inquire-drawer__form {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.ls-inquire-drawer__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ls-inquire-drawer__field-label {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #1a1a1a;
}
.ls-inquire-drawer__field input,
.ls-inquire-drawer__field textarea {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: #1a1a1a;
  background: transparent;
  border: none;
  border-bottom: 1px solid #1a1a1a;
  padding: 6px 0;
  width: 100%;
  box-sizing: border-box;
}

/* === Land & Sea: kill Kadence's default border-radius on drawer form fields
   (causes the bottom border to "curl up" at the ends) === */
.ls-inquire-drawer__field input,
.ls-inquire-drawer__field textarea {
  border-radius: 0;
}
/* === end === */
.ls-inquire-drawer__field textarea {
  border: 1px solid #1a1a1a;
  padding: 8px;
  resize: vertical;
  min-height: 90px;
}
.ls-inquire-drawer__field input:focus,
.ls-inquire-drawer__field textarea:focus {
  outline: none;
  border-color: #000;
}

.ls-inquire-drawer__consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  line-height: 1.5;
  color: #1a1a1a;
  cursor: pointer;
}
.ls-inquire-drawer__consent input { margin-top: 3px; flex-shrink: 0; }

.ls-inquire-drawer__submit {
  display: inline-block;
  background: transparent;
  border: 2px solid #1a1a1a;
  color: #1a1a1a;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 14px 32px;
  cursor: pointer;
  align-self: flex-start;
  transition: background 0.25s, color 0.25s;
  margin-top: 8px;
}
.ls-inquire-drawer__submit:hover {
  background: #1a1a1a;
  color: #ededed;
}

.ls-inquire-drawer__success {
  display: none;
  padding: 32px 0;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: #1a1a1a;
}
#ls-inquire-drawer.is-success .ls-inquire-drawer__form { display: none; }
#ls-inquire-drawer.is-success .ls-inquire-drawer__success { display: block; }

.ls-inquire-drawer__contact {
  margin-top: auto;
  padding-top: 24px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  letter-spacing: 0.5px;
  color: rgba(0, 0, 0, 0.7);
}

body.ls-inquire-open { overflow: hidden; }

@media (max-width: 600px) {
  .ls-inquire-drawer__panel { width: 100vw; padding: 24px; }
  .ls-inquire-drawer__heading { font-size: 2rem; }

  /* Right drawer: match left drawer's mobile padding so logo + X sit at
     equivalent insets on both panels, and menu links align with the logo edge */
  #widget-drawer.popup-drawer-layout-sidepanel .drawer-inner {
    padding: 24px !important;
  }
  #widget-drawer .drawer-content .menu-item a {
    padding: 5px 0 !important;
  }
}
/* === end INQUIRE drawer === */

/* === Land & Sea: mobile primary header layout — wordmark on top row, INQUIRE/MENU below === */
@media (max-width: 768px) {
  /* Re-shape the Kadence header grid into 2 rows: logo on top, left/right beneath */
  .site-main-header-inner-wrap {
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: auto auto !important;
    grid-template-areas:
      "logo logo"
      "left right" !important;
    row-gap: 0 !important;
    align-items: stretch !important;
  }

  /* Top row: wordmark, centered, hugging the top to leave room below */
  .site-header-main-section-center {
    grid-area: logo !important;
    justify-content: center !important;
    align-items: flex-start !important;
    padding-top: 6px !important;
    padding-bottom: 0 !important;
  }

  /* Bottom-left cell: INQUIRE NOW */
  .site-header-main-section-left {
    grid-area: left !important;
    justify-content: flex-start !important;
    align-items: center !important;
    padding-left: 16px !important;
  }

  /* Bottom-right cell: MENU */
  .site-header-main-section-right {
    grid-area: right !important;
    justify-content: flex-end !important;
    align-items: center !important;
    padding-right: 16px !important;
  }

  /* Let the header auto-size to fit the two stacked rows */
  .site-header-inner-wrap.kadence-sticky-header {
    height: auto !important;
    min-height: 0 !important;
  }
  .site-main-header-wrap,
  .site-main-header-inner-wrap {
    height: auto !important;
  }

  /* The INQUIRE NOW and MENU items themselves — give them clean touch targets */
  .site-header-main-section-left .header-html-inner a,
  .site-header-main-section-right .header-menu-container .menu-toggle-open,
  .site-header-main-section-right .drawer-toggle {
    padding: 8px 4px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }
}
/* === end mobile primary header layout === */

/* === Land & Sea: header slide-away === */
/* --- Sub-nav decouple: wrapper slides up, subnav counter-translates to stay pinned (2026-06-29) --- */
.site-header-inner-wrap {
  transform: translateY(calc(-1 * var(--primary-slide-px, 0px)));
}
/* ls-subnav: no transform needed — rides the wrapper translate to y=0 naturally */
.ls-subnav::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(20, 20, 20, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  opacity: var(--subnav-backdrop-opacity, 0);
  pointer-events: none;
}
/* --- end sub-nav decouple --- */
/* === end === */
/* === Land & Sea: sub-nav backdrop === */
.ls-subnav {
  position: relative;
  isolation: isolate;
}
.ls-subnav::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(20, 20, 20, 0.3);
  -webkit-backdrop-filter: blur(calc(var(--subnav-backdrop-opacity, 0) * 20px));
  backdrop-filter: blur(calc(var(--subnav-backdrop-opacity, 0) * 20px));
  opacity: var(--subnav-backdrop-opacity, 0);
  z-index: -1;
  pointer-events: none;
}
/* === end === */

/* === Land & Sea: keep Kadence sticky header chrome transparent at all scroll states === */
.transparent-header #masthead .kadence-sticky-header,
.transparent-header #masthead .kadence-sticky-header .site-header-row-container-inner,
.transparent-header #masthead .site-main-header-wrap,
.transparent-header #masthead .site-main-header-wrap .site-header-row-container-inner {
  background-color: transparent !important;
  background-image: none !important;
}
/* === end === */

/* === Land & Sea: header geometry (size + shrink) === */
/* Restore padding/border overrides (originally bundled with the bad backdrop rules removed in v1.0.93) */
.kadence-sticky-header.item-is-fixed.item-at-start {
  padding: 0;
}
.site-header .site-container {
  padding: 0;
}
.site-main-header-wrap .site-header-row-container-inner > .site-container {
  padding: 0 !important;
  border-bottom: 1px solid #dddddd70;
  transition: padding 0.3s ease;
}

.site-main-header-inner-wrap {
  min-height: calc(120px - var(--band-shrink-progress, 0) * 45px) !important;
}
/* === end header geometry === */
/* === Land & Sea: wordmark padding-top (band height held by .site-main-header-inner-wrap min-height) === */
.ls-logo-wordmark {
  padding-top: 5px;
}
/* === end === */
/* === Land & Sea: primary nav hover dim (matches sub-nav 0.8) === */
.site-header .drawer-toggle,
.site-header .header-html-inner a {
  transition: opacity 0.25s;
}
.site-header .drawer-toggle:hover,
.site-header .drawer-toggle:focus,
.site-header .header-html-inner a:hover,
.site-header .header-html-inner a:focus {
  opacity: 0.8;
}
/* === Land & Sea: load-in choreography (header band + hero content) === */
/* Header band fades in 800ms once .ls-header-ready is set 600ms after paint */
.site-header-inner-wrap {
  opacity: 0;
  transition: opacity 400ms ease;
}
body.ls-header-ready .site-header-inner-wrap {
  opacity: 1;
}

/* scroll JS overrides via --hero-content-opacity (no transition during scrub) *
/* === end load-in choreography === */

/* === Kadence drawer: match left inquire-drawer timing (2026-06-29) === */
.drawer-inner {
  transition: transform 0.4s ease, opacity 0.4s ease !important;
}
.drawer-overlay {
  transition: opacity 0.4s ease !important;
}
.popup-drawer {
  transition: opacity 0.4s ease, left 0s 0.4s, right 0s 0.4s !important;
}
.popup-drawer.show-drawer {
  transition: opacity 0.4s ease, left 0s 0s, right 0s 0s !important;
}
/* === end Kadence drawer timing === */