/* Sitewide SQA and UX consistency layer */
:root {
  --qa-focus: #f0b42d;
  --qa-radius: 10px;
}

html {
  scroll-padding-top: 92px;
}

body,
button,
input,
select,
textarea {
  font-family: "Poppins", Arial, sans-serif;
}

body {
  font-size: 15px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Manrope", Arial, sans-serif;
  text-wrap: balance;
}

main p,
main li {
  text-wrap: pretty;
}

button,
a,
input,
select,
textarea {
  transition:
    color .2s ease,
    background-color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease,
    transform .2s ease;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--qa-focus);
  outline-offset: 3px;
}

button:disabled {
  cursor: not-allowed;
  opacity: .45;
}

.site-header .main-nav {
  gap: clamp(17px, 1.8vw, 29px);
}

.site-header .main-nav a > span,
.main-nav a > span {
  display: none;
}

.site-header .main-nav a {
  letter-spacing: -.01em;
}

.section {
  padding-top: clamp(48px, 4.5vw, 66px);
}

.section-heading {
  margin-bottom: clamp(18px, 2vw, 26px);
}

.section-heading p,
.about-copy > p:not(.eyebrow),
.card-body > p,
.services-grid p,
.faq-item button,
.faq-item p {
  font-size: 13px;
}

.process {
  padding-bottom: clamp(48px, 4.5vw, 64px);
}

.process-track p {
  font-size: 12px;
}

.testimonials {
  padding-block: clamp(34px, 4vw, 52px);
}

.testimonial-window {
  overflow: hidden;
}

.testimonial-track {
  display: flex;
  gap: 12px;
  transition: transform .38s ease;
  will-change: transform;
}

.testimonial-card {
  flex: 0 0 calc((100% - 24px) / 3);
  min-width: 0;
}

.slider-buttons button,
.partner-arrow,
.ab-partner-arrow,
.pd-related-arrow,
.ab-testimonial-slider > button {
  display: grid;
  place-items: center;
  cursor: pointer;
}

.slider-buttons button:hover,
.partner-arrow:hover,
.ab-partner-arrow:hover,
.pd-related-arrow:hover,
.ab-testimonial-slider > button:hover {
  transform: translateY(-2px);
  box-shadow: 0 7px 16px rgba(0, 49, 35, .15);
}

.faq-section {
  padding-block: clamp(48px, 4.5vw, 66px);
}

.faq-item[hidden] {
  display: none;
}

/* Projects listing */
.projects-list {
  padding-top: clamp(34px, 3.5vw, 48px);
}

.partners {
  padding-top: clamp(28px, 3vw, 42px);
  padding-bottom: clamp(32px, 3vw, 46px);
}

.partner-row {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.partner-row::-webkit-scrollbar,
.ab-partner-track::-webkit-scrollbar,
.pd-related-grid::-webkit-scrollbar {
  display: none;
}

.partner-row article {
  flex: 0 0 clamp(150px, 15vw, 180px);
  scroll-snap-align: start;
}

.consultation {
  margin-top: 6px;
}

.consultation-copy p,
.benefit span,
.faq-list button,
.faq-list p,
.right-project-card p {
  font-size: 12px;
}

.faq-contact {
  padding-top: clamp(30px, 3vw, 44px);
  padding-bottom: clamp(28px, 3vw, 42px);
}

/* Project detail */
.pd-intro {
  padding-top: clamp(24px, 3vw, 36px);
  padding-bottom: 18px;
}

.pd-section {
  padding-block: clamp(24px, 2.5vw, 34px);
}

.pd-description,
.pd-overview-grid p,
.pd-overview-grid li,
.pd-location-grid li {
  font-size: 13px;
}

.pd-stat-bar span,
.pd-pricing-grid small,
.pd-pricing-grid p,
.pd-amenities span,
.pd-unit-grid p,
.pd-floor-grid p,
.pd-floor-grid button,
.pd-note {
  font-size: 11px;
}

.pd-stat-bar strong,
.pd-related-card h3 {
  font-size: 13px;
}

.pd-pricing-grid strong,
.pd-unit-grid h3 {
  font-size: 14px;
}

.pd-promises,
.pd-table-wrap th,
.pd-table-wrap td,
.pd-inquiry-card label,
.pd-faq button,
.pd-faq p,
.pd-related-card p,
.pd-related-card span,
.pd-related-card strong,
.pd-assurance-strip span,
.pd-assurance-strip strong {
  font-size: 12px;
}

.pd-inquiry-card input,
.pd-inquiry-card select,
.pd-inquiry-card textarea {
  min-height: 43px;
  font-size: 13px;
}

.pd-related-wrap {
  position: relative;
}

.pd-related-grid {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.pd-related-card {
  flex: 0 0 calc((100% - 10px) / 2);
  min-width: 0;
  scroll-snap-align: start;
}

.pd-related-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 34px;
  height: 34px;
  border: 1px solid #dfe5df;
  border-radius: 50%;
  color: #075640;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 49, 35, .12);
  transform: translateY(-50%);
}

.pd-related-arrow:hover {
  transform: translateY(calc(-50% - 2px));
}

.pd-related-prev {
  left: -14px;
}

.pd-related-next {
  right: -14px;
}

/* Residential and commercial listings */
.rp-listing,
.cp-listing {
  padding-top: clamp(34px, 3.5vw, 48px);
  padding-bottom: clamp(30px, 3vw, 44px);
}

.rp-card-location,
.rp-features,
.rp-card-body > a,
.cp-card-body > p,
.cp-meta,
.cp-card-body small {
  font-size: 12px;
}

.rp-contact-cta,
.cp-contact-cta {
  margin-bottom: clamp(34px, 4vw, 52px);
}

.cp-bottom {
  padding-top: clamp(32px, 3.5vw, 48px);
  padding-bottom: clamp(34px, 4vw, 54px);
}

.cp-investment-panel article p,
.cp-faq button,
.cp-faq article > p,
.cp-expert-card p,
.cp-expert-card a {
  font-size: 12px;
}

/* Services */
.sv-core {
  padding-top: clamp(40px, 4vw, 56px);
  padding-bottom: clamp(34px, 3.5vw, 48px);
}

.sv-core-grid h3,
.sv-detail h2 {
  font-size: 14px;
}

.sv-core-grid p,
.sv-core-grid a,
.sv-detail-copy > p,
.sv-detail ul,
.sv-process-heading p,
.sv-process-track p,
.sv-testimonial-grid article > p,
.sv-review-cta p,
.sv-review-cta a {
  font-size: 12px;
}

.sv-detail {
  padding-block: clamp(26px, 3vw, 38px);
}

.sv-process {
  padding-top: clamp(42px, 4vw, 58px);
  padding-bottom: clamp(40px, 4vw, 56px);
}

.sv-process-track h3,
.sv-testimonial-grid strong {
  font-size: 13px;
}

.sv-testimonial-grid small,
.sv-stats span {
  font-size: 11px;
}

.sv-reviews {
  padding-top: clamp(36px, 3.5vw, 50px);
  padding-bottom: clamp(38px, 4vw, 56px);
}

/* About */
.ab-story {
  padding-top: clamp(38px, 4vw, 54px);
}

.ab-story-copy > p,
.ab-purpose p,
.ab-section-heading p,
.ab-why-grid p,
.ab-team-grid > article > p,
.ab-journey-track p,
.ab-testimonial-slider article > p,
.ab-faq article > button,
.ab-faq article > p,
.ab-support-points p,
.ab-contact-card p,
.ab-contact-card a {
  font-size: 12px;
}

.ab-story-stats span,
.ab-partner-track span,
.ab-testimonial-slider footer strong,
.ab-testimonial-slider footer small,
.ab-trust-stats span {
  font-size: 11px;
}

.ab-why,
.ab-partners,
.ab-team {
  padding-top: clamp(38px, 4vw, 54px);
}

.ab-purpose {
  margin-top: clamp(30px, 3vw, 44px);
}

.ab-journey {
  padding-top: clamp(40px, 4vw, 56px);
  padding-bottom: clamp(38px, 4vw, 54px);
}

.ab-partner-track {
  display: flex;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.ab-partner-track article {
  flex: 0 0 clamp(155px, 16vw, 190px);
  scroll-snap-align: start;
}

.ab-testimonial-area {
  padding-block: 24px;
}

.ab-bottom {
  padding-top: clamp(38px, 4vw, 54px);
  padding-bottom: clamp(38px, 4vw, 54px);
}

.ab-faq-tabs button {
  min-height: 36px;
  font-size: 12px;
}

/* Inquiry */
.iq-page-shell {
  padding-top: clamp(34px, 3.5vw, 48px);
  padding-bottom: clamp(36px, 4vw, 54px);
}

.inquiry-page .eyebrow,
.inquiry-page .progress-label,
.inquiry-page .goal-card small,
.inquiry-page .field label,
.inquiry-page .field-error,
.inquiry-page .hint,
.inquiry-page .counter,
.inquiry-page .choice,
.inquiry-page .checkbox,
.inquiry-page .review-row,
.inquiry-page .submit-note,
.inquiry-page .summary-item,
.inquiry-page .benefit p,
.inquiry-page .advisor-card p,
.inquiry-page .advisor-actions a,
.inquiry-page .draft-banner,
.inquiry-page .draft-actions button,
.iq-trust strong,
.iq-trust span,
.iq-section-heading p,
.iq-direct article span,
.iq-faq > p,
.iq-faq article > button,
.iq-faq article > p,
.iq-faq-cta p,
.iq-faq-cta a,
.iq-bottom-cta small,
.iq-bottom-cta > a {
  font-size: 11px;
}

.inquiry-page .field input,
.inquiry-page .field select,
.inquiry-page .field textarea,
.inquiry-page .method,
.inquiry-page .btn,
.inquiry-page .goal-card strong,
.inquiry-page .benefit strong,
.iq-intent button,
.iq-direct article strong,
.iq-direct article a {
  font-size: 12px;
}

.iq-trust,
.iq-direct,
.iq-faq-section {
  padding-top: clamp(34px, 3.5vw, 48px);
  padding-bottom: clamp(34px, 3.5vw, 48px);
}

.iq-bottom-cta {
  margin-bottom: clamp(34px, 4vw, 52px);
}

@media (max-width: 900px) {
  .testimonial-card {
    flex-basis: calc((100% - 12px) / 2);
  }
}

@media (max-width: 620px) {
  html {
    scroll-padding-top: 78px;
  }

  body {
    font-size: 14px;
  }

  .section,
  .faq-section {
    padding-top: 42px;
  }

  .testimonial-card {
    flex-basis: 100%;
  }

  .partner-row article,
  .ab-partner-track article {
    flex-basis: 150px;
  }

  .pd-related-card {
    flex-basis: 100%;
  }

  .pd-related-prev {
    left: 6px;
  }

  .pd-related-next {
    right: 6px;
  }

  .pd-description,
  .pd-overview-grid p,
  .pd-overview-grid li,
  .pd-location-grid li {
    font-size: 12px;
  }

  .ab-team-grid > article > p,
  .inquiry-page .progress-label {
    font-size: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }
}
