* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -o-font-smoothing: antialiased;
  -webkit-appearance:none;
}

/* =============================================
   MISSING CLASS DEFINITIONS
   Classes used in pages but missing from Webflow CSS export.
   ============================================= */

/* --- Remove ALL red-line underlines site-wide --- */
.red-line,
.red-line.mini-size,
.red-line.mini-size._1-px,
.line-red {
  display: none !important;
}

.navbar.overlay {
  transition: background-color 0.3s ease;
}

/* Mega-menu starts hidden — JS toggles .is-open */
.navbar_mega-menu {
  display: none;
}
.navbar_mega-menu.is-open {
  display: flex !important;
}

/* --- Nav: Solid background on scroll --- */
.navbar.overlay.nav-scrolled {
  background-color: rgba(23, 23, 25, 0.95) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* --- Nav: Light text ONLY when scrolled (dark bg active) --- */
.nav-scrolled .nav_links-wrapper.text-color-black,
.nav-scrolled .nav_links-wrapper-menu.text-color-black,
.nav-scrolled .nav_links-wrapper,
.nav-scrolled .nav_links-wrapper div,
.nav-scrolled .nav_links-wrapper-menu,
.nav-scrolled .nav_links-wrapper-menu div,
.nav-scrolled .text-color-black,
.nav-scrolled .paragraph {
  color: #F2ECE4 !important;
}

/* Recolor dark logo to cream ONLY when scrolled */
.nav-scrolled .navbar_logo-black-home svg path[fill="#171719"],
.nav-scrolled .navbar_logo-black-home svg path[fill="#231F20"],
.nav-scrolled .navbar_embed svg path[fill="#231F20"] {
  fill: #F2ECE4;
}

/* --- Nav: Make grid-2 visible when scrolled (Webflow sets opacity:0 by default) --- */
.nav-scrolled .navbar_grid-new-2 {
  opacity: 1 !important;
}

/* Scrolled nav: only Logo + Menu + Inquire visible. Other links are in the mega-menu. */
.nav-scrolled .navbar_grid-new-2 .nav_links-wrapper-menu {
  display: flex !important;
}
/* Also show Inquire on scrolled nav */
.nav-scrolled .navbar_grid-new-2 .nav-right-links-wrapper > a[href="/inquire"].hide {
  display: flex !important;
}

/* --- Nav: Mobile layout fixes --- */
@media (max-width: 991px) {
  .navbar_grid-new-2 .nav_links-wrapper-menu,
  .navbar_grid-new-1 .nav_links-wrapper-menu {
    display: flex !important;
  }

  .navbar_grid-new-2 .nav-left-links-wrapper > a.hide,
  .navbar_grid-new-1 .nav-right-links-wrapper > a:not(.nav_links-wrapper-menu):not([href="/inquire"]) {
    display: none !important;
  }

  /* Tighten nav grid on tablet */
  .navbar_grid-new-1,
  .navbar_grid-new-2 {
    grid-column-gap: 0.5rem;
    margin: 8px 3%;
  }
}

@media (max-width: 767px) {
  /* Reduce nav height on mobile */
  .navbar.overlay {
    height: 56px;
    max-height: 56px;
  }

  .navbar_grid-new-1,
  .navbar_grid-new-2 {
    height: 40px;
    grid-column-gap: 0.25rem;
    margin: 8px 4%;
  }

  /* Scale logo down slightly on mobile */
  .navbar_logo-black-home,
  .navbar_embed {
    transform: scale(0.85);
    transform-origin: center center;
  }

  /* Make sure Inquire + Menu don't wrap */
  .nav-right-links-wrapper {
    grid-column-gap: 1rem;
    gap: 1rem;
  }

  .nav-left-links-wrapper {
    grid-column-gap: 0.5rem;
    gap: 0.5rem;
  }
}

@media (max-width: 479px) {
  .navbar.overlay {
    height: 50px;
    max-height: 50px;
  }

  .navbar_grid-new-1,
  .navbar_grid-new-2 {
    height: 36px;
    grid-column-gap: 0;
    margin: 7px 3%;
    grid-template-columns: 1fr auto 1fr;
  }

  /* Smaller text on mobile nav */
  .nav_links-wrapper-menu,
  .nav_links-wrapper-menu div,
  .nav_links-wrapper,
  .nav_links-wrapper div {
    font-size: 0.75rem;
  }

  .navbar_logo-black-home,
  .navbar_embed {
    transform: scale(0.7);
    transform-origin: center center;
  }

  /* Mega-menu full width on phone */
  .navbar-mwnu-wrapper {
    max-width: 100% !important;
    width: 100% !important;
  }

  /* Mega-menu link sizing */
  .navbar_mega-menu .menu-links .menu {
    font-size: 1.1rem;
  }
}

/* --- Hero: Infinite scroll animation (left column down, right column up) --- */
@keyframes hero-scroll-down {
  0%   { transform: translateY(-50%); }
  100% { transform: translateY(0%); }
}
@keyframes hero-scroll-up {
  0%   { transform: translateY(0%); }
  100% { transform: translateY(-50%); }
}

.new-hero_header_image-list-left,
.new-hero_header_image-list-right,
.new-hero_header_image-list-left > .new-hero_header_image-list,
.new-hero_header_image-list-right > .new-hero_header_image-list {
  height: auto !important;
}

.new-hero_header_image-list-left {
  animation: hero-scroll-down 80s linear infinite;
}

.new-hero_header_image-list-right {
  animation: hero-scroll-up 80s linear infinite;
  margin-top: 0 !important;
}

/* Pause animation on hover for usability */
.new-hero_header_content-right:hover .new-hero_header_image-list-left,
.new-hero_header_content-right:hover .new-hero_header_image-list-right {
  animation-play-state: paused;
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  .new-hero_header_image-list-left,
  .new-hero_header_image-list-right {
    animation: none;
  }
}

/* --- Any section with an absolute-positioned bg image needs position:relative --- */
.section_header-blog,
.section_header-prcoess,
.section_hero-whoweare,
.section_faq_header,
[class*="section_header"],
[class*="section_hero"] {
  position: relative;
  overflow: hidden;
}

/* --- Hero Background Image Wrapper --- */
.header30_background-image-wrapper {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
}

.image-overlay-layer {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0,0,0,0.4);
}

/* --- Section Backgrounds --- */
.section_bg_off_white {
  background-color: var(--off-white, #F2ECE4);
}

.section_kitchens_feature {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.section_pricing {
  background-color: var(--dark-grey, #222224);
  position: relative;
}

.section_enhancement {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.section_bg-kitchen {
  min-height: 70vh;
  background-size: cover;
  background-position: center;
}

/* --- Kitchen Feature Layout --- */
.kitchens_feature_component {
  width: 100%;
}

.kitchens_feature_content-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.kitchens_feature_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.kitchens_feature_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
}

.text-span-2,
.text-span-3 {
  color: var(--red-brand, #CA171E);
}

/* --- Pricing Grid & Cards --- */
.pricing_grid {
  grid-column-gap: 2.5rem;
  grid-row-gap: 2.5rem;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: auto;
  grid-auto-columns: 1fr;
  display: grid;
}

.pricing-cart {
  padding: 2rem 1.5rem;
}

.bullets-grid {
  text-align: left;
  grid-template-rows: auto auto auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  justify-content: stretch;
  display: grid;
  gap: 0.75rem;
}

/* --- Pricing Bullets --- */
.pricing-bulletes {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.bullet-arrow-wrapper {
  flex-shrink: 0;
  width: 21px;
  height: 22px;
  margin-top: 2px;
}

.bullet-text-wrapper {
  flex: 1;
}

/* --- Portfolio List & Project Categories --- */
.home_portfolio-list {
  width: 100%;
}

.home_project-categories {
  width: 100%;
}

/* --- FAQ Component --- */
.faq_faq-4_component {
  width: 100%;
}

.faq_faq-4_list {
  width: 100%;
}

.faq_faq-4_accordion {
  border-bottom: 1px solid rgba(255,255,255,0.15);
}

.faq_faq-4_accordion.bottom-line {
  border-bottom: 1px solid rgba(255,255,255,0.15);
}

/* --- CTA Component --- */
.home_cta_component {
  width: 100%;
}

/* --- Testimonial Component --- */
.home_testimonial_component {
  width: 100%;
}

/* --- Commercial TI Featured Blog List Header --- */
.commercial-tenant-improvements_featured-blog-list-header_component {
  width: 100%;
}

.commercial-tenant-improvements_featured-blog-list-header_content {
  width: 100%;
}

.commercial-tenant-improvements_featured-blog-list-header_list-wrapper {
  width: 100%;
}

.commercial-tenant-improvements_featured-blog-list-header_item {
  display: flex;
  flex-direction: column;
}

.commercial-tenant-improvements_featured-blog-list-header_item-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.commercial-tenant-improvements_featured-blog-list-header_image-wrapper {
  width: 100%;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 3/2;
}

.commercial-tenant-improvements_featured-blog-list-header_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.commercial-tenant-improvements_featured-blog-list-header_meta-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* --- Section Headers (Commercial TI pattern) --- */
.section_commercial-tenant-improvements_featured-blog-list-header {
  background-color: var(--dark-grey, #222224);
  position: relative;
}

/* --- Portfolio / Project Cards --- */
.portfolio-image-wrapper {
  width: 100%;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 16/9;
}

.profolio_cart-wrapper {
  display: flex;
  flex-direction: column;
}

/* --- Signature / Founder Card --- */
.signature_cart {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.signature_image-wrapper {
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
}

.signature_image-contain {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --- FAQ Section (Service Pages) --- */
.section_faq-service {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.section_faq_faq-4 {
  position: relative;
}

/* --- Custom Homes Timeline --- */
.section_custom-homes_timeline {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.custom-homes_timeline_component {
  position: relative;
  width: 100%;
}

.custom-homes_timeline_row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 2rem;
  align-items: start;
  margin-bottom: 2rem;
}

.custom-homes_timeline_circle-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.custom-homes_timeline_line {
  position: absolute;
  width: 2px;
  height: 100%;
  background-color: rgba(0,0,0,0.15);
}

.custom-homes_timeline_progress-line {
  position: absolute;
  width: 2px;
  background-color: #CA171E;
}

.custom-homes_timeline_progress-line-cover {
  position: absolute;
  width: 2px;
  background-color: var(--off-white, #F2ECE4);
}

.custom-homes_timeline_fade-overlay-top,
.custom-homes_timeline_fade-overlay-bottom {
  position: absolute;
  left: 0;
  right: 0;
  height: 60px;
  z-index: 1;
  pointer-events: none;
}

.custom-homes_timeline_fade-overlay-top,
.custom-homes_timeline_fade-overlay-bottom {
  display: none;
}

/* --- Miscellaneous Utility Classes --- */
.text-align-right {
  text-align: right;
}

.no-left-pad {
  padding-left: 0;
}

.right-pad {
  padding-right: 1rem;
}

.without-bg {
  background: transparent;
}

/* --- Brand red for ALL + signs --- */
.plus,
.plus-2,
.text-span {
  color: #CA171E !important;
  font-weight: 700;
}

.container-small {
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}

.z-index-1 {
  z-index: 1;
  position: relative;
}

.icon-embed-small {
  display: flex;
  width: 1.75rem;
  height: 1.75rem;
}

.next-3 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.checkbox-2 {
  width: 1.125rem;
  height: 1.125rem;
  margin: 0;
}

.pagination-2 {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 2rem;
}

.code-embed-5 {
  display: flex;
}

.collection-list-8 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
}

/* --- Text Span Colors (Pricing Dashes) --- */
.text-span-7,
.text-span-8,
.text-span-9 {
  color: #CA171E;
  font-weight: 300;
}

.text-span-10,
.text-span-11,
.text-span-12,
.text-span-13 {
  color: #CA171E;
  font-weight: 700;
}

/* --- Project Page: Image Grid & Gallery --- */
.section_project_item-body {
  background-color: #222224;
  position: relative;
}

.section_project_gallery {
  background-color: #171719;
  position: relative;
}

.project_gallery_component {
  width: 100%;
}

.project_item-body_image-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.project_item-body_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 4/3;
}

.project_item-body_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.project_portfolio-item-body_metatag-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 2rem;
}

/* --- Section Links (Service Pages) --- */
.section_links-expertise {
  background-color: #171719;
}

.land-scpate {
  padding-left: 2%;
  padding-right: 2%;
}

.custom-pad {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  text-align: center;
  flex-flow: row wrap;
  justify-content: center;
  display: flex;
}

.section_links {
  padding: 1rem 1.5rem;
  color: var(--off-white, #F2ECE4);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* --- Table Responsive Override --- */
@media (max-width: 767px) {
  .wpc-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* --- Mobile Responsive Overrides --- */
@media (max-width: 991px) {
  .custom-homes_timeline_row {
    grid-template-columns: auto 1fr;
    gap: 1rem;
  }

  .project_item-body_image-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
  }
}

@media (max-width: 767px) {
  .commercial-tenant-improvements_featured-blog-list-header_image-wrapper {
    aspect-ratio: 16/9;
  }

  .kitchens_feature_image {
    aspect-ratio: 16/9;
  }

  .signature_cart {
    flex-direction: column;
    text-align: center;
  }

  .project_item-body_image-grid {
    grid-template-columns: 1fr;
  }

  .project_portfolio-item-body_metatag-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 479px) {
  .pricing-bulletes {
    gap: 0.5rem;
  }

  .custom-homes_timeline_row {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
}

/* =============================================
   MISSING PAGE-SPECIFIC CLASS DEFINITIONS
   ============================================= */

/* --- Override Webflow scroll-animation init styles (opacity:0, translate) --- */
/* Webflow sets inline style opacity:0 + translate3d(0,40px,0) on elements
   meant for scroll-triggered animations. Without Webflow JS, they stay hidden.
   Target elements that have BOTH transform and opacity (the animation pattern). */
/* Target Webflow animation init: translate3d + opacity:0 */
[style*="translate3d"][style*="opacity:0"],
[style*="translate3d"][style*="opacity: 0"] {
  opacity: 1 !important;
  transform: none !important;
}

/* Also catch bare opacity:0 on non-form elements (Webflow IX2 without transform) */
.button-group[style*="opacity:0"],
.heading-style-h2[style*="opacity:0"],
.text-size-medium[style*="opacity:0"],
div[style="opacity:0"]:not([class*="w-form"]):not(input) {
  opacity: 1 !important;
}

/* .clip is Webflow's text-reveal animation mask (overflow:hidden).
   Without the Webflow JS runtime, text stays clipped/cut off. */
.clip {
  overflow: visible !important;
}

/* Also fix standalone opacity:0 on button-groups and other visible elements */
.button-group[style*="opacity:0"],
.hero-secton[style*="opacity:0"] {
  opacity: 1 !important;
}

/* --- Picture element fill: ensure <picture> inherits parent dimensions --- */
[class*="_image-wrapper"] picture,
[class*="_background-image-wrapper"] picture {
  display: block;
  width: 100%;
  height: 100%;
}

/* For absolute-positioned bg image wrappers */
[class*="_background-image-wrapper"] picture {
  position: absolute;
  inset: 0;
}

/* --- Utility classes --- */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

.main-wrapper {
  overflow: hidden;
}

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

.container-medium {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

.container-narrow {
  width: 100%;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.grid-2-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.grid-3-columns {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2rem;
}

.flex-vertical {
  display: flex;
  flex-direction: column;
}

.text-color-muted {
  color: rgba(0,0,0,0.5);
}

.text-color-neutral-600 {
  color: #6b7280;
}

.text-size-tiny {
  font-size: 0.75rem;
  line-height: 1.5;
}

.text-rich-text h2 {
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.text-rich-text h3 {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}

.text-rich-text p {
  margin-bottom: 1rem;
}

.text-rich-text ul,
.text-rich-text ol {
  margin-bottom: 1rem;
  padding-left: 1.5rem;
}

.text-rich-text li {
  margin-bottom: 0.25rem;
}

.icon-embed-xsmall {
  display: flex;
  width: 1rem;
  height: 1rem;
}

.div-block-2,
.div-block-3,
.div-block-4 {
  width: 100%;
}

.absolute-link-block {
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* --- Remove ALL underlines site-wide (except hover-line buttons) --- */
a,
a:hover,
a:focus,
a:active,
a:visited {
  text-decoration: none !important;
}

.red-underline {
  text-decoration: none !important;
}

/* Button hover-line: inline layout with rotating + icon */
.button-hover-line {
  position: relative;
  text-decoration: none !important;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Hide the white-line / red-line animation divs completely */
.button-hover-line .white-line,
.button-hover-line .white-line.transparent-line,
.button-hover-line .white-line.inquire {
  display: none !important;
}

/* + icon: subtle rotation on hover */
.button-hover-line .icon-embed-xxsmall {
  transition: transform 0.3s ease;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.button-hover-line:hover .icon-embed-xxsmall {
  transform: rotate(90deg);
}

/* --- Hero / Header backgrounds (shared pattern) --- */
/* Keep H1 above the fold — cap hero height so bottom-aligned text is visible */
.header69_component {
  min-height: 65vh;
  display: flex;
  align-items: flex-end;
}

.section_header-blog,
.section_header-prcoess,
.section_hero-whoweare,
.section_hero-expertise,
.section_faq_header,
.section_header-portfolio,
.section_header-commercial,
.section_header-custom,
.section_header-kitchen,
.section_header30,
[class*="section_header"],
[class*="section_hero"] {
  min-height: 65vh !important;
}

.header_content-blog {
  min-height: 65vh !important;
}

.header69_background-image-wrapper {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
}

/* Background images: both the <picture> wrapper and the <img> need to fill the container */
.header30_background-image-wrapper picture,
.header69_background-image-wrapper picture,
.header-blog_background-image-wrapper picture,
.header-faq_background-image-wrapper picture,
.project_item-header_image-wrapper picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.header69_background-image,
.header30_background-image,
.header54_background-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.header-blog_background-image-wrapper {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
}

.header-faq_background-image-wrapper {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
}

.section_hero-expertise,
.section_header-kitchen,
.section_header-blog,
.section_faq_header,
.section_our-process_hero-header {
  position: relative;
  overflow: hidden;
}

/* --- Expertise page --- */
.section_expertise_feature-3 {
  background-color: var(--dark-grey, #222224);
  position: relative;
}

.section_expertise_feature-6 {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.section_expertise_feature-5 {
  background-color: var(--dark-grey, #222224);
  position: relative;
}

.expertise_feature-3_component {
  width: 100%;
}

.expertise_feature-3_content {
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}

.expertise_feature-3_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.expertise_feature-3_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4/3;
}

.expertise_feature-3_content-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.section_expertise_luxury {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.section_refined-expertise {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.section_bg-expertise {
  min-height: 60vh;
  position: relative;
  overflow: hidden;
}

.section_bg-expertise picture,
.section-bg-custom-home picture,
.section_bg-commercial picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.image-bg-expertise {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}

/* --- Who We Are page --- */
.section_who-we-are_about-1 {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.who-we-are_about-1_component {
  width: 100%;
}

.who-we-are_about-1_content-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.who-we-are_about-1_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.who-we-are_about-1_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/4;
}

.section_who-we-are_about-2 {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.who-we-are_about-2_component {
  width: 100%;
}

.who-we-are_about-2_list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.section_who-we-are_about-3 {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.who-we-are_about-3_component {
  width: 100%;
}

.who-we-are_about-3_content-right {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.who-we-are_about-3_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.who-we-are_about-3_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/4;
}

.section_who-we-are_faq {
  background-color: var(--dark-grey, #222224);
  position: relative;
  overflow: hidden;
}

.who-we-are_faq_content-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.who-we-are_faq_content-right {
  display: flex;
  flex-direction: column;
}

.section_who-we-are_partner-logos-list {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
  overflow: hidden;
}

.who-we-are_partner-logos-list_component {
  width: 100%;
}

/* --- Values cards (How We Work Differently) --- */
.values-card {
  background: #fff;
  padding: 2rem;
  border-radius: 6px;
  border-top: 3px solid #CA171E;
}

/* --- Partner logos grid --- */
.partner-logos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 2rem;
  align-items: center;
  justify-items: center;
}

.partner-logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
}

.who-we-are_partner-logos-list_logo {
  max-width: 140px;
  max-height: 60px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* --- Light-themed testimonial carousel (who-we-are) --- */
.testimonial-card.is-light {
  background: #fff;
  border-radius: 8px;
  padding: 2rem;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.testimonial-card.is-light blockquote {
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--dark-grey-blakish, #171719);
  flex: 1;
  margin: 0;
}

.testimonial-client-name.is-dark {
  color: var(--dark-grey-blakish, #171719);
}

.carousel-btn.is-light {
  background: none;
  border: 2px solid #CA171E;
  color: var(--dark-grey-blakish, #171719);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}

.carousel-btn.is-light:hover {
  background: #CA171E;
  color: #fff;
}

.carousel-nav.is-light .carousel-dot {
  color: rgba(23, 23, 25, 0.3);
}

.carousel-nav.is-light .carousel-dot.active {
  color: #CA171E;
}

/* --- Portfolio page --- */
.section_portfolio_list {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.portfolio_list_component {
  width: 100%;
}

.section_portfolio_about {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.portfolio_about_component {
  width: 100%;
}

.portfolio_about_content-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.portfolio_about_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.portfolio_about_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
}

/* --- Our Process page --- */
.section_our-process_hero-header {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.our-process_hero-header_content-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.our-process_hero-header_content-right {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.section_our-process_cta-1 {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.our-process_cta-1_component {
  width: 100%;
}

.our-process_cta-1_form-block {
  width: 100%;
}

.our-process_cta-1_form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* Our Process Steps & Timeline */
.section-steps {
  position: relative;
}

.process-nav-step {
  cursor: pointer;
  padding: 0.5rem 1rem;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: border-color 0.3s ease;
}

.process-nav-step.active,
.process-nav-step:hover {
  border-bottom-color: #CA171E;
}

/* --- Timeline13 Desktop Base (from live page-specific CSS) --- */
.timeline13_component {
  position: relative;
}

.timeline13_content {
  flex-direction: column;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  justify-items: center;
  display: grid;
  position: relative;
}

.timeline13_list {
  grid-column-gap: 5rem;
  grid-row-gap: 5rem;
  flex-flow: column;
  grid-template-rows: auto;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.timeline13_row {
  grid-column-gap: 3rem;
  grid-row-gap: 3rem;
  grid-template-rows: auto;
  grid-template-columns: 1fr max-content 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.timeline13_item {
  z-index: 2;
  grid-template-rows: auto;
  grid-template-columns: 1fr 12rem 1fr;
  grid-auto-columns: 1fr;
  width: 100%;
}

.timeline13_item.item-left {
  text-align: right;
  flex-flow: column;
  align-items: flex-end;
  display: flex;
}

.timeline13_progress {
  flex-direction: column;
  align-items: center;
  width: 2rem;
  height: 100%;
  display: flex;
  position: absolute;
}

.timeline13_line {
  background-color: var(--base-color-neutral--neutral-lighter, #ccc);
  width: 3px;
  height: 100%;
}

.timeline13_progress-line {
  background-color: var(--brand-red, #CA171E);
  width: 3px;
  height: 50vh;
  margin-top: -50vh;
  position: sticky;
  top: 0;
}

.timeline13_progress-line-cover {
  background-color: var(--off-white, #F2ECE4);
  width: 100%;
  height: 50vh;
  position: absolute;
  top: -50vh;
}

/* No gradients — per user request */
.timeline13_fade-overlay-top,
.timeline13_fade-overlay-bottom {
  display: none;
}

.timeline13_image-wrapper {
  overflow: hidden;
}

.timeline13_image {
  aspect-ratio: 1;
  object-fit: cover;
  width: 100%;
}

.timeline13_circle-wrapper {
  justify-content: center;
  width: 2rem;
  display: flex;
}

.timeline13_circle {
  z-index: 2;
  background-color: transparent;
  box-shadow: none;
  border-radius: 0;
  justify-content: center;
  align-items: center;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 2rem;
  position: relative;
}

/* Replace circle with red + icon */
.timeline13_circle::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.25rem;
  height: 1.25rem;
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.645 8.637V0h2.71v8.637H20v2.726h-8.645V20h-2.71v-8.637H0V8.637h8.645z' fill='%23CA171E'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  transform: translate(-50%, -50%) rotate(var(--plus-rotation, 0deg));
}

/* Rotate + as user scrolls past (via intersection observer or scroll) */
.timeline13_circle-wrapper {
  position: sticky;
  top: 50vh;
}

/* Timeline grid child placement (replaces Webflow w-node ID selectors) */
.timeline13_row > .timeline13_item { grid-column: 1; }
.timeline13_row > .timeline13_circle-wrapper { grid-column: 2; justify-self: center; align-self: start; }
.timeline13_row > .timeline13_image-wrapper { grid-column: 3; }

/* Alternate rows: image on left, text on right */
.timeline13_row:nth-child(even) > .timeline13_image-wrapper { grid-column: 1; grid-row: 1; }
.timeline13_row:nth-child(even) > .timeline13_circle-wrapper { grid-column: 2; grid-row: 1; }
.timeline13_row:nth-child(even) > .timeline13_item { grid-column: 3; grid-row: 1; }

/* Timeline responsive */
@media (max-width: 991px) {
  .timeline13_row {
    grid-column-gap: 2rem;
    grid-row-gap: 2rem;
  }
  .timeline13_item {
    grid-template-columns: 1fr 10rem 1fr;
  }
}

@media (max-width: 767px) {
  .timeline13_row {
    grid-column-gap: 1rem;
    grid-row-gap: 1.5rem;
    grid-template-columns: 1fr;
  }
  .timeline13_row > .timeline13_item,
  .timeline13_row > .timeline13_circle-wrapper,
  .timeline13_row > .timeline13_image-wrapper,
  .timeline13_row:nth-child(even) > .timeline13_image-wrapper,
  .timeline13_row:nth-child(even) > .timeline13_circle-wrapper,
  .timeline13_row:nth-child(even) > .timeline13_item {
    grid-column: 1;
    grid-row: auto;
  }
  .timeline13_circle-wrapper {
    display: none;
  }
  .timeline13_image-wrapper {
    width: 100%;
    max-width: 400px;
  }
  .timeline13_item {
    grid-template-columns: 1fr;
    width: 100%;
  }
  .timeline13_item.item-left {
    text-align: left;
    align-items: flex-start;
  }
  .timeline13_list {
    grid-column-gap: 3rem;
    grid-row-gap: 3rem;
  }
  .timeline13_progress {
    display: none;
  }
}

@media (max-width: 479px) {
  .timeline13_image-wrapper {
    max-width: 100%;
  }
}

.heading-sticky {
  position: sticky;
  top: 6rem;
}

/* --- Inquire page --- */
.section_inquire {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.section_inquire_hero-header {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.section_inquire_multi-form {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.section_inquire_cta {
  background-color: var(--dark-grey, #222224);
  position: relative;
}

.inquire_hero-header_component {
  width: 100%;
}

.inquire_hero-header_content-wrapper {
  grid-column-gap: 5rem;
  grid-row-gap: 4rem;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  align-items: start;
  display: grid;
}

.inquire_hero-header_content-left,
.inquire_hero-header_content-right {
  display: flex;
  flex-direction: column;
}

.inquire_hero-header_image-wrapper.sticky-section-inquire {
  background-color: var(--dark-grey-blakish, #171719);
  position: sticky;
  top: 0;
  justify-content: center;
  align-items: center;
  max-width: none;
  display: flex;
}

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

.mobile-align-centre {
  /* desktop: no special alignment */
}

.button-w-o-line {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.button-w-o-line .icon-embed-xxsmall {
  transition: transform 0.3s ease;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.button-w-o-line:hover .icon-embed-xxsmall {
  transform: rotate(90deg);
}

.inquire_multi-form_component {
  width: 100%;
}

.inquire_cta_component {
  width: 100%;
}

.field-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
}

.form-block {
  width: 100%;
}

.form_input {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 4px;
  background-color: transparent;
  color: inherit;
  font-size: 1rem;
}

.form_input:focus {
  border-color: #CA171E;
  outline: none;
}

.form_message-success-wrapper {
  display: none;
  padding: 1rem;
  background-color: rgba(0,128,0,0.1);
  border-radius: 4px;
}

.form_message-error-wrapper {
  display: none;
  padding: 1rem;
  background-color: rgba(202,23,30,0.1);
  border-radius: 4px;
}

.success-text {
  color: #22c55e;
}

.error-text {
  color: #CA171E;
}

.submit-button-2 {
  padding: 0.75rem 2rem;
  background-color: #CA171E;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: background-color 0.3s ease;
}

.submit-button-2:hover {
  background-color: #a8131a;
}

/* --- Reviews page --- */
.section_home_testimonial.is-white {
  background-color: var(--off-white, #F2ECE4);
}

.home_testimonial_client {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.home_testimonial_client-image-wrapper {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
}

.home_testimonial_client-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.client_testimonial-item {
  padding: 2rem;
}

/* Testimonial carousel (homepage) */
.testimonial-carousel {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.testimonial-track {
  display: flex;
  transition: transform 0.5s ease;
}

.testimonial-card {
  flex: 0 0 50%;
  padding: 2rem;
  box-sizing: border-box;
}

.testimonial-client {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.testimonial-client-photo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.testimonial-client-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.testimonial-client-name {
  font-weight: 600;
}

.testimonial-project-link {
  display: inline-block;
  margin-top: 0.75rem;
  color: #CA171E;
  font-weight: 600;
  text-decoration: none;
}

.carousel-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
}

.carousel-btn {
  background: none;
  border: 1px solid rgba(255,255,255,0.3);
  color: #F2ECE4;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.3s ease;
}

.carousel-btn:hover {
  border-color: #CA171E;
}

.carousel-dots {
  display: flex;
  gap: 0.5rem;
}

.carousel-dot {
  background: none;
  border: none;
  color: rgba(255,255,255,0.4);
  font-size: 1.25rem;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  transition: color 0.3s ease;
}

.carousel-dot.active {
  color: #CA171E;
}

/* --- Blog page --- */
.section_blog_blog {
  position: relative;
}

.blog_blog_component {
  width: 100%;
}

.blog_blog_content {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 3rem;
}

.blog_blog_category-menu {
  position: sticky;
  top: 6rem;
  align-self: start;
}

.blog_blog_category-heading {
  margin-bottom: 0.5rem;
}

.blog_blog_blog-posts {
  width: 100%;
}

.blog_blog_list-wrapper {
  width: 100%;
}

.blog_blog_list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.blog_blog_item {
  display: flex;
  flex-direction: column;
}

.blog_blog_item-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.blog_blog_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 3/2;
  position: relative;
}

.blog_blog_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog_blog_author-wrapper {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.blog_blog_author-image-wrapper {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.blog_blog_author-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog_blog_author-text {
  display: flex;
  flex-direction: column;
}

.blog_blog_date-wrapper {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.blog_blog_text-divider {
  line-height: 1;
}

.black-wrapper {
  position: absolute;
  inset: 0;
  background-color: rgba(0,0,0,0.3);
  transition: opacity 0.3s ease;
}

/* --- Blog Post / Article page --- */
.section_blog-post-page_blog-post-body {
  position: relative;
}

.section_blog-headings {
  position: relative;
}

.blog-post-page_blog-post-body_component {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 3rem;
  align-items: start;
}

.blog-post-page_blog-post-body_content-bottom {
  width: 100%;
}

.blog-post-page_blog-post-body_author-wrapper {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.blog-post-page_blog-post-body_author-image-wrapper {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.blog-post-page_blog-post-body_author-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog-post-page_blog-post-body_author-text {
  display: flex;
  flex-direction: column;
}

.blog-post-page_blog-post-body_social-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: inherit;
}

/* --- Custom Homes page --- */
.section_custom-homes_feature {
  background-color: var(--dark-grey, #222224);
  position: relative;
}

.custom-homes_feature_component {
  width: 100%;
}

.custom-homes_feature_content-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.custom-homes_feature_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.custom-homes_feature_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
}

.section-bg-custom-home {
  min-height: 60vh;
  position: relative;
  overflow: hidden;
}

/* --- Commercial TI page --- */
.section_bg-commercial {
  min-height: 60vh;
  position: relative;
  overflow: hidden;
}

.section_commercial-tenant-improvements_feature {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

.commercial-tenant-improvements_feature_component {
  width: 100%;
}

.commercial-tenant-improvements_feature_content-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.commercial-tenant-improvements_feature_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
}

.commercial-tenant-improvements_feature_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
}

/* --- Main-Floor Remodel page --- */
.section_guide-form {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.spaces-we-build-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2rem;
}

.behind-the-scenes {
  position: relative;
}

/* --- Project individual pages --- */
.section_project_item-header {
  position: relative;
  overflow: hidden;
}

.project_item-header_image-wrapper {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
}

.project_item-header_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.project_item-header_tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.section_project_portfolio-item-body {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.project_portfolio-item-body_component {
  width: 100%;
}

.project_portfolio-item-body_content-left {
  display: flex;
  flex-direction: column;
}

.project_portfolio-item-body_content-right {
  display: flex;
  flex-direction: column;
}

.project_protfolio-wrapper {
  width: 100%;
}

.project_gallery_grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
}

.project_gallery_image-wrapper {
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 4/3;
}

.project_gallery_image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.materials-list {
  list-style: none;
  padding: 0;
}

.materials-list_item {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.5rem;
}

.materials-list_item::before {
  content: '+';
  position: absolute;
  left: 0;
  top: 0;
  color: #CA171E;
  font-weight: 700;
}

.section-related-projects {
  background-color: var(--dark-grey, #222224);
  position: relative;
}

.related-projects-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2rem;
}

.related-project-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}

/* --- FAQ pages --- */
.section_faq_header {
  background-color: var(--dark-grey-blakish, #171719);
  justify-content: flex-start;
  align-items: flex-end;
  min-height: 90svh;
  display: flex;
  position: relative;
  overflow: hidden;
}

.section_faq_faq-4 {
  background-color: var(--off-white, #F2ECE4);
  position: relative;
}

.faq_list {
  width: 100%;
}

.faq_item {
  border-bottom: 1px solid rgba(0,0,0,0.1);
  padding: 1.5rem 0;
}

.section_cta {
  background-color: var(--dark-grey-blakish, #171719);
  position: relative;
}

/* --- Privacy Policy --- */
.section_privacy-policy {
  position: relative;
}

/* --- Areas We Serve --- */
.breadcrumb_component {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

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

.breadcrumb-divider {
  opacity: 0.5;
}

/* --- Collection/tag lists --- */
.collection-list-5,
.collection-list-7 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
}

/* Red-line variants that should be hidden */
.red-line-4,
.red-line-faq {
  display: none !important;
}

.red-line-wrapper {
  display: none !important;
}

/* --- Slider (static replacement for Webflow JS slider) --- */
.testimonial-slider .mask-2 {
  overflow: hidden;
}

.testimonial-slider .slide-2,
.testimonial-slider .slide-3 {
  display: none;
}

.testimonial-slider .left-arrow-2,
.testimonial-slider .right-arrow-2 {
  display: none;
}

.testimonial-slider .slide-nav-2 {
  display: none;
}

/* --- Responsive: Tablet (991px) --- */
@media (max-width: 991px) {
  .grid-2-columns {
    grid-template-columns: 1fr;
  }

  .grid-3-columns {
    grid-template-columns: 1fr 1fr;
  }

  .expertise_feature-3_content {
    grid-template-columns: 1fr;
  }

  .blog_blog_content {
    grid-template-columns: 1fr;
  }

  .blog_blog_category-menu {
    position: static;
  }

  .blog-post-page_blog-post-body_component {
    grid-template-columns: 1fr;
  }

  .project_gallery_grid {
    grid-template-columns: 1fr 1fr;
  }

  .related-projects-grid {
    grid-template-columns: 1fr 1fr;
  }

  .spaces-we-build-grid {
    grid-template-columns: 1fr 1fr;
  }

  .who-we-are_about-2_list {
    grid-template-columns: 1fr;
  }

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

  .inquire_hero-header_content-wrapper {
    grid-column-gap: 3rem;
    grid-row-gap: 2rem;
  }

  .pricing_grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* --- Responsive: Mobile Landscape (767px) --- */
@media (max-width: 767px) {
  /* Shorter heroes on mobile so H1 stays above fold */
  [class*="section_header"],
  [class*="section_hero"],
  .header69_component,
  .header_content-blog {
    min-height: 50vh !important;
  }

  .blog_blog_list {
    grid-template-columns: 1fr;
  }

  .grid-3-columns {
    grid-template-columns: 1fr;
  }

  .project_gallery_grid {
    grid-template-columns: 1fr;
  }

  .related-projects-grid {
    grid-template-columns: 1fr;
  }

  .spaces-we-build-grid {
    grid-template-columns: 1fr;
  }

  .inquire_hero-header_content-wrapper {
    grid-template-columns: 1fr;
  }

  /* Ensure images show on small screens */
  .expertise_feature-3_image-wrapper,
  .who-we-are_about-1_image-wrapper,
  .who-we-are_about-3_image-wrapper,
  .portfolio_about_image-wrapper,
  .custom-homes_feature_image-wrapper,
  .commercial-tenant-improvements_feature_image-wrapper,
  .kitchens_feature_image-wrapper,
  .project_item-body_image-wrapper,
  .project_gallery_image-wrapper,
  .blog_blog_image-wrapper,
  .commercial-tenant-improvements_featured-blog-list-header_image-wrapper {
    width: 100%;
    display: block;
  }

  .expertise_feature-3_image,
  .who-we-are_about-1_image,
  .who-we-are_about-3_image,
  .portfolio_about_image,
  .custom-homes_feature_image,
  .commercial-tenant-improvements_feature_image,
  .kitchens_feature_image,
  .project_gallery_image,
  .blog_blog_image {
    width: 100%;
    height: auto;
    display: block;
  }
}

/* --- Remaining missing classes --- */
.tag {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border: 1px solid rgba(0,0,0,0.15);
  border-radius: 2rem;
  font-size: 0.8rem;
  line-height: 1.5;
  white-space: nowrap;
}

.tag.without-bg {
  border-color: transparent;
  padding-left: 0;
  padding-right: 0;
}

.current {
  color: #CA171E;
  font-weight: 600;
}

.w-dyn-list {
  width: 100%;
}

.w-dyn-items {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

.w-dyn-items[role="list"] {
  list-style: none;
  padding: 0;
  margin: 0;
}

.w-dyn-item {
  width: 100%;
}

.w-form-formradioinput,
.w-form-formradioinput--inputType-custom {
  display: none;
}

.w-pagination-wrapper {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 2rem;
}

.w-pagination-next {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: inherit;
}

.relative-form {
  position: relative;
}

.skip-to-content {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
}

.skip-to-content:focus {
  left: 0;
  padding: 1rem;
  background: #171719;
  color: #F2ECE4;
}

.footer11_left-wrapper {
  display: flex;
  flex-direction: column;
}

.footer_social-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}

.reviews {
  position: relative;
}

/* --- Responsive: Mobile Portrait (479px) --- */
@media (max-width: 479px) {
  .header69_component {
    min-height: auto;
  }

  .blog_blog_author-wrapper {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .testimonial-client {
    flex-direction: column;
    text-align: center;
  }

  .inquire_hero-header_content-wrapper {
    grid-column-gap: 1.25rem;
    grid-row-gap: 1.25rem;
    grid-template-columns: 1fr;
  }

  .pricing_grid {
    grid-template-columns: 1fr;
  }

  .inquire_hero-header_image-wrapper.sticky-section-inquire {
    position: static;
  }

  .mobile-align-centre {
    text-align: center;
  }

  .button-group.mobile-align-centre {
    justify-content: center;
  }
}
