/* =============================================================================
   COMPONENT: SHARED SECTION PATTERNS
   Reusable section layouts used across multiple pages
   ============================================================================= */

/* ---------------------------------------------------------------------------
   BREAK BANNER — Full-width image divider with optional overlay card
   Figma ref: node 1:162 (1240×400 rounded rectangle with overlay card)
--------------------------------------------------------------------------- */
.break-banner {
  width: 100%;
  height: 500px;
  overflow: hidden;
  position: relative;
  background-color: #e8e5e0;
}

.break-banner--full {
  border-radius: 0;
  height: 510px;
}

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

/* Overlay card on break banner (right side) */
.break-banner__card {
  position: absolute;
  right: 60px;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--color-white);
  padding: 45px 50px;
  width: 442px;
  max-width: calc(100% - 80px);
  text-align: right;
}

.break-banner__card-heading {
  font-family: var(--font-primary);
  font-size: 28px;
  font-weight: var(--fw-semibold);
  line-height: 1.3;
  color: var(--color-dark-text);
  margin-bottom: 16px;
}

.break-banner__card-text {
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  line-height: 20px;
  color: #797979;
  margin-bottom: 24px;
}

/* ---------------------------------------------------------------------------
   PAGE HERO — Short image header (Contact, For Sale, About)
   Figma ref: node 97:55 (1442×400)
   Full-bleed: .site-wrapper is max 1440px, so width:100% leaves grey gaps
   on wide monitors. Use 100vw + negative margins (same pattern as .home-hero).
   html/body overflow-x:hidden absorbs any scrollbar px difference.
--------------------------------------------------------------------------- */
.page-hero {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  height: calc(400px + var(--nav-height)); /* image extends behind transparent nav */
  overflow: hidden;
  position: relative;
  background-color: #e8e5e0;
}

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

/* Fallback gradient when no image */
.page-hero--fallback {
  background: linear-gradient(135deg, #c8bfb0 0%, #a09080 100%);
}

/* ---------------------------------------------------------------------------
   SUBSCRIBE SECTION — Newsletter signup
   Figma ref: node 66:348, 108:510 / contact: 66:1951
--------------------------------------------------------------------------- */
.subscribe-section {
  /* padding: var(--section-padding-y) var(--container-padding); */
}

/* Post–MC4WP redirect: anchor + scrollIntoView land below fixed nav */
#subscribe-section {
  scroll-margin-top: calc(var(--nav-height) + 24px);
}

.subscribe-section__inner {
  
  margin: 0 auto;
  text-align: center;
}

.subscribe-section__header {
  margin-bottom: 60px;
}

.subscribe-section__form-wrap {
  max-width: 573px;
  margin: 0 auto;
}

/* MC4WP form: flex row so input + button are inline */
.subscribe-section__form-wrap .mc4wp-form {
  width: 100%;
}

.subscribe-section__form-wrap .mc4wp-form-fields {
  display: flex;
  align-items: flex-end;
  gap: 25px;
  width: 100%;
}

/* If MC4WP wraps inputs in <p> tags, make them invisible to flex */
.subscribe-section__form-wrap .mc4wp-form-fields > p:not(.subscribe-section__error) {
  margin: 0;
  display: contents;
}

.subscribe-section__form-wrap .mc4wp-form p:has(input[name="_mc4wp_lists[]"]),
.subscribe-section__form-wrap .mc4wp-form-fields > label:has(+ p input[name="_mc4wp_lists[]"]) {
  display: none !important;
}

.subscribe-section__form-wrap .mc4wp-form input[type="email"],
.subscribe-section__form-wrap .mc4wp-form input[name="EMAIL"] {
  flex: 1;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--color-dark-text);
  padding: 0 0 10px;
  font-family: var(--font-primary);
  font-size: var(--fs-body-sm);
  color: var(--color-dark-text);
  outline: none;
  line-height: 20px;
  min-width: 0;
  transition: border-color 0.2s ease;
}

.subscribe-section__form-wrap .mc4wp-form input[type="email"]::placeholder,
.subscribe-section__form-wrap .mc4wp-form input[name="EMAIL"]::placeholder {
  color: #1E1E1E;
  font-family: var(--font-primary);
}

/* Error state: red border on input */
.subscribe-section__form-wrap.has-error .mc4wp-form input[type="email"],
.subscribe-section__form-wrap.has-error .mc4wp-form input[name="EMAIL"] {
  border-bottom-color: #c8102e;
}

/* Dark SUBSCRIBE button */
.subscribe-section__form-wrap .mc4wp-form input[type="submit"],
.subscribe-section__form-wrap .mc4wp-form button[type="submit"] {
  flex-shrink: 0;
  align-self: flex-end;
  min-width: 120px;
  height: var(--btn-dark-h);
  padding: 0 var(--btn-dark-px);
  background-color: var(--color-dark-text);
  color: var(--color-white);
  font-family: var(--font-secondary);
  font-size: var(--fs-label);
  font-weight: var(--fw-medium);
  text-transform: uppercase;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: background-color 0.2s ease, opacity 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}

.subscribe-section__form-wrap .mc4wp-form input[type="submit"]:hover:not(:disabled),
.subscribe-section__form-wrap .mc4wp-form button[type="submit"]:hover:not(:disabled) {
  background-color: #383838;
}

/* Disabled = opacity 0.25, matching Figma */
.subscribe-section__form-wrap .mc4wp-form input[type="submit"]:disabled,
.subscribe-section__form-wrap .mc4wp-form button[type="submit"]:disabled {
  opacity: 0.25;
  cursor: not-allowed;
}

.subscribe-section__form-wrap .mc4wp-response {
  width: 100%;
  max-width: calc(100% - 145px); /* input width area: full row minus button+gap */
  margin-left: 0;
  margin-right: auto;
  text-align: left;
  margin-top: 10px;
}

.subscribe-section .mc4wp-response .mc4wp-notice,
.subscribe-section .mc4wp-response .mc4wp-error {
  color: var(--color-error);
}

/* Validation error message */
.subscribe-section__error {
  display: block;
  max-width: 573px;
  margin: 6px auto 0;
  font-family: var(--font-primary);
  font-size: 10px;
  color: #c8102e;
  line-height: 16px;
  text-align: left;
}

.subscribe-section__error[hidden] {
  display: none;
}

/* Banner image below form */
.subscribe-section__banner {
  margin-top: 50px;
  width: 100%;
  height: 400px;
  overflow: hidden;
}

.subscribe-section__banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Success popup overlay — Figma: node 66:2848 */
.subscribe-success-popup {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.5);
  z-index: 100010;
}

.subscribe-success-popup[hidden] {
  display: none;
}

.subscribe-success-popup__card {
  background: var(--color-white);
  padding: 50px 48px;
  width: 550px;
  max-width: calc(100% - 40px);
  text-align: center;
}

.subscribe-success-popup__title {
  font-family: var(--font-primary);
  font-size: 32px;
  font-weight: var(--fw-medium);
  color: var(--color-dark-text);
  line-height: 38px;
  margin-bottom: 16px;
}

.subscribe-success-popup__text {
  font-family: var(--font-primary);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-regular);
  color: var(--color-dark-text);
  line-height: 20px;
  margin-bottom: 30px;
}

.subscribe-success-popup__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ---------------------------------------------------------------------------
   GET STARTED SECTION — Dual CTA cards
   Figma ref: node 1:299 (bottom of Home + About)
--------------------------------------------------------------------------- */
.get-started {
  padding: 80px var(--container-padding);
  text-align: center;
}

.get-started__header {
  margin-bottom: 60px;
}

.get-started__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--col-gap);
  
  margin: 0 auto;
}

.get-started__card {
  background-color: var(--color-card-bg);
  padding: 40px;
  text-align: left;
}

.section--dark .get-started__card {
  background-color: rgba(255, 255, 255, 0.08);
}

.get-started__card-heading {
  font-family: var(--font-primary);
  font-size: var(--fs-subtitle);   /* 18px Bold — Figma */
  font-weight: var(--fw-bold);
  color: var(--color-dark-text);
  margin-bottom: 12px;
}

.section--dark .get-started__card-heading {
  color: var(--color-white);
}

.get-started__card-text {
  font-family: var(--font-primary);
  font-size: var(--fs-body);
  line-height: 20px;
  color: var(--color-dark-text);
  margin-bottom: 24px;
}

.section--dark .get-started__card-text {
  color: rgba(255, 255, 255, 0.75);
}

/* ---------------------------------------------------------------------------
   PROCESS STEPS — Home page "the process"
   Figma ref: node 1:138 (4 steps with connecting lines)
--------------------------------------------------------------------------- */
.process-steps {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  padding: 0;
  position: relative;
}

.process-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  flex: 1;
  position: relative;
  text-align: center;
}

/* Connecting line between steps — inset from each circle (Figma: visible gap) */
.process-step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 35px; /* vertically centered on 70px circle */
  left: calc(50% + 35px + 12px); /* right edge of circle + gap */
  width: calc(100% - 70px - 24px); /* full span minus both circles’ radii and both gaps */
  height: 1px;
  background-color: var(--color-grey-2);
}

.process-step__circle {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background-color: var(--color-bg-light);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}

.process-step__number {
  font-family: var(--font-primary);
  font-size: 30px;                   /* Figma: 30px/30px SemiBold #1e1e1e */
  font-weight: var(--fw-semibold);
  line-height: 30px;
  color: var(--color-dark-text);
}

.process-step__label {
  font-family: var(--font-primary);
  font-size: var(--fs-subtitle);     /* 18px */
  font-weight: var(--fw-medium);     /* Figma: Medium */
  line-height: 24px;
  color: var(--color-light-black);   /* #383838 — Figma */
}

/* ---------------------------------------------------------------------------
   CONCEPT SLIDER — Home page "the concept"
   Figma ref: node 1:108 (dark bg, 3 images + nav arrows)
--------------------------------------------------------------------------- */
.concept-section {
  background-color: var(--color-bg-light); /* #F5F6F8 — Figma: light, NOT dark */
  padding: var(--section-padding-y) 0;
  color: var(--color-dark-text);
}

/* Label row 1 col 1; title + body share row 2 — body top-aligns with heading (Figma 1:108) */
.concept-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 60px;
  row-gap: 0;
  padding: 0 var(--container-padding);
  margin-bottom: 60px;
  align-items: start;
}

.concept-intro__label {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 18px;
}

.concept-intro__title {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
}

.concept-intro__body {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
}

.concept-intro__cta {
  margin-top: 24px;
  font-size: var(--fs-body);
}

.concept-slider {
  position: relative;
  /* padding: 0 var(--container-padding); */
}

.concept-slider__viewport {
  position: relative;
}

.concept-slider__track {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--col-gap);
  overflow: hidden;
}

.concept-slide {
  height: 600px;
  overflow: hidden;
  position: relative;
  background-color: #2a2a2a;
  display: none;
}

.concept-slide.is-active {
  display: block;
  animation: conceptFadeIn 0.5s ease;
}

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

.concept-slide__image {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}

/* Slider nav arrows — overlaid inside first/third images */
/* Figma: node 1:128 (next, left-[1260px]) and node 1:133 (prev, left-[120px]), size-[60px] */
.concept-slider__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: none;
  transition: background-color 0.2s ease;
  z-index: 2;
}

.concept-slider__nav:hover {
  background-color: #f0f0f0;
}

.concept-slider__viewport .concept-slider__nav--prev {
  left: 20px;
}

.concept-slider__viewport .concept-slider__nav--next {
  right: 20px;
}

@media (min-width: 769px) {
  .concept-slider__dots {
    display: none;
  }
}

/* Slider dots */
.concept-slider__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 30px;
}

.concept-slider__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--color-grey-2);
  cursor: pointer;
  border: none;
  transition: background-color 0.2s ease;
}

.concept-slider__dot.is-active {
  width: 30px;
  border-radius: 5px;
  background-color: var(--color-dark-text);
}

/* =============================================================================
   MOBILE — max-width 768px
   ============================================================================= */
@media (max-width: 768px) {

  /* Break banner: taller on mobile, card anchored to bottom */
  .break-banner {
    height: 420px;
  }

  .break-banner__card {
    right: auto;
    top: auto;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 32px);
    max-width: calc(100% - 32px);
    padding: 30px 24px;
    text-align: center;
  }

  .break-banner__card-heading {
    font-size: 26px;
  }

  .break-banner__card .btn {
    width: 100%;
    justify-content: center;
  }

  /* Process steps: vertical layout matching Figma mobile */
  .process-steps {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .process-step {
    flex: none;
    width: 100%;
    gap: 16px;
  }

  /* Override horizontal line → vertical line below each circle (gaps at ends) */
  .process-step:not(:last-child)::after {
    top: 9rem;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 4rem;
  }

  /* Add spacing so vertical line has room */
  .process-step:not(:last-child) {
    padding-bottom: 80px;
  }

  .process-step__label {
    font-size: 16px;
  }

  /* Concept: single-column copy + one-up carousel */
  .concept-section {
    padding: 60px 0;
  }

  .concept-intro {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 0 20px;
    margin-bottom: 40px;
    text-align: center;
  }

  .concept-intro__label {
    grid-column: 1;
    grid-row: 1;
    margin-bottom: 0
  }

  .concept-intro__title {
    grid-column: 1;
    grid-row: 2;
    margin-bottom: 0;
  }

  .concept-intro__body {
    grid-column: 1;
    grid-row: 3;
  }

  .concept-intro__body .section-subtitle {
    text-align: center;
  }

  .concept-slider {
    padding: 0 20px;
  }

  .concept-slider__track {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .concept-slide {
    height: 420px;
  }

  .concept-slide:not(.is-active) {
    display: none;
  }

  .concept-slider__dots {
    margin-top: 24px;
  }

  /* Get Started: stacked cards, centered, full-width CTAs */
  .get-started {
    padding: 60px 20px;
  }

  .get-started__header {
    margin-bottom: 40px;
  }

  .get-started__header .section-subtitle {
    text-align: center;
  }

  .get-started__cards {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .get-started__card {
    text-align: center;
    padding: 30px 24px;
  }

  .get-started__card .btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  /* .subscribe-section {
    padding: 60px 20px;
  } */

  /* Form: stack vertically on mobile */
  .subscribe-section__form-wrap .mc4wp-form {
    flex-direction: column;
    align-items: stretch;
  }

  /* Form fields: also column so email is above submit */
  .subscribe-section__form-wrap .mc4wp-form-fields {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 5px;
  }

  .subscribe-section__form-wrap .mc4wp-form input[type="submit"],
  .subscribe-section__form-wrap .mc4wp-form button[type="submit"] {
    width: 100%;
    margin-left: 0;
    margin-top: 16px;
  }

  .subscribe-section__form-wrap .mc4wp-response {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }

  /* Error element moved inside mc4wp-form-fields by JS — reset centering from parent */
  .subscribe-section__error {
    max-width: 100%;
    margin: 6px 0 0;
    font-size: 12px;
    text-align: left;
  }

  .subscribe-section__banner {
    height: 250px;
    margin-top: 30px;
  }

  .subscribe-success-popup__card {
    padding: 40px 24px;
  }

  .subscribe-success-popup__btn {
    width: 100%;
  }
}
