/*
Theme Name:   Antra Child - Add Building Contractor v2
Template:     antra
Version:      2.1.0
Description:  Fresh child theme. Gold + Dark palette, Good Times font. Preserves original Antra design.
Author:       Bripe Media
*/

/* ═══════════════════════════════════════════
   1. CUSTOM FONT — Good Times
   ═══════════════════════════════════════════ */

@font-face {
  font-family: 'Good Times';
  src: url('./fonts/GoodTimes-Regular.woff2') format('woff2'),
       url('./fonts/GoodTimes-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ═══════════════════════════════════════════
   2. COLOR VARIABLES
   Brand: Gold #CAA05C + Dark #1C1C1D
   ═══════════════════════════════════════════ */

:root {
  --abc-gold: #CAA05C;
  --abc-gold-light: #D4B478;
  --abc-gold-dark: #A8834A;
  --abc-dark: #1C1C1D;
  --abc-dark-teal: #0A3840;
  --abc-cream: #F8F7F5;
  --abc-warm-gray: #E8E5E0;

  /* Elementor globals */
  --e-global-color-primary: #CAA05C;
  --e-global-color-secondary: #1C1C1D;
  --e-global-color-text: #4A4A4F;
  --e-global-color-accent: #1C1C1D;
}

/* ═══════════════════════════════════════════
   3. TYPOGRAPHY
   ═══════════════════════════════════════════ */

/* Good Times for headings */
h1, h2, h3,
.elementor-heading-title,
.site-title,
.antra-heading .heading-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  letter-spacing: 0.02em;
  text-transform: none;
}

/* Prevent ugly word breaks in card headings — use Cal Sans (not Good Times uppercase-only) */
html body .elementor-widget-antra-process .process-title,
html body .elementor-widget-antra-process .process-title a,
html body .elementor-widget-antra-process h4,
html body .elementor-widget-antra-process h4 a,
html body .process-content-wap h4,
html body .process-content-wap .process-title,
html body .process-content-wap .process-title a,
html body .antra-process-item h4,
html body .abc-triptych-row h4,
html body .abc-triptych-row .elementor-heading-title {
  font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
  text-transform: none !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
  font-size: 1.35rem !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  font-weight: 600 !important;
}

/* Process card body text - remove uppercase */
.process-content-wap .content,
.process-content-wap .content p,
.process-content-wap .process-inner-content-wap p,
.antra-process .process-content-description,
.abc-triptych-row p,
.abc-triptych-row .elementor-widget-text-editor {
  text-transform: none !important;
  font-family: 'Golos Text', 'Lato', sans-serif !important;
  letter-spacing: 0 !important;
  font-size: 0.95rem !important;
}

/* Service cards titles - prevent broken words */
.antra-services-accordion .service-title,
.antra-services-list .service-title,
.elementor-widget-antra-services-list .antra-service-card h3,
.elementor-widget-antra-services-list .antra-service-card h4 {
  text-transform: none !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
  letter-spacing: 0 !important;
}

/* Let process number watermarks stay big but decorative */
.antra-process .process-number,
.process-number {
  opacity: 0.6;
}

/* ═══════════════════════════════════════════
   3a0. HEADER CTA — replaces login icon with Get a quote
   ═══════════════════════════════════════════ */

/* Hide default login/account icon */
.site-header-account { display: none !important; }

/* Our gold CTA button */
.abc-header-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 22px;
  background: var(--abc-gold);
  color: var(--abc-dark) !important;
  font-family: 'Cal Sans', 'Golos Text', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 999px;
  border: 1.5px solid var(--abc-gold);
  transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  cursor: pointer;
  margin-left: 16px;
  white-space: nowrap;
}

.abc-header-cta:hover {
  background: var(--abc-dark);
  color: var(--abc-gold) !important;
  border-color: var(--abc-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(28, 28, 29, 0.2);
}

.abc-header-cta:active {
  transform: translateY(0);
}

.abc-header-cta::after {
  content: "→";
  font-size: 15px;
  margin-left: 2px;
  transition: transform 0.25s ease;
}

.abc-header-cta:hover::after {
  transform: translateX(3px);
}

@media (max-width: 768px) {
  /* Hide Get a quote in mobile header — keep only logo + hamburger */
  .abc-header-cta,
  html body .site-header .abc-header-cta {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════
   3a. NAVIGATION MENU — top bar + dropdowns
   Use Cal Sans (Good Times is uppercase-only, ugly for long items)
   ═══════════════════════════════════════════ */

/* Top-level menu items */
html body .main-navigation .primary-navigation > ul > li > a,
html body .main-navigation .menu > li > a,
html body .main-navigation .nav-menu > li > a {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  font-size: 14px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  padding: 10px 16px !important;
}

/* Dropdown panel — cleaner spacing, better visuals */
html body .main-navigation .sub-menu,
html body .main-navigation ul ul,
html body .primary-navigation .sub-menu {
  background: #fff !important;
  border: none !important;
  border-radius: 14px !important;
  box-shadow: 0 14px 36px rgba(28, 28, 29, 0.12), 0 4px 12px rgba(28, 28, 29, 0.06) !important;
  padding: 14px 6px !important;
  min-width: 240px !important;
}

/* Dropdown items — Cal Sans, sentence case, better spacing */
html body .main-navigation .sub-menu li,
html body .main-navigation ul ul li {
  list-style: none !important;
  border: none !important;
  margin: 0 !important;
}

html body .main-navigation .sub-menu li a,
html body .main-navigation ul ul li a,
html body .primary-navigation .sub-menu li a {
  font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--abc-dark) !important;
  padding: 10px 18px !important;
  display: block !important;
  border-radius: 8px !important;
  margin: 2px 8px !important;
  transition: background-color 0.2s ease, color 0.2s ease, padding-left 0.2s ease !important;
  line-height: 1.3 !important;
  border-bottom: none !important;
  white-space: normal !important;
  max-width: none !important;
}

html body .main-navigation .sub-menu li a:hover,
html body .main-navigation ul ul li a:hover,
html body .main-navigation .sub-menu li.current-menu-item > a,
html body .main-navigation .sub-menu li.current-menu-parent > a {
  color: var(--abc-gold) !important;
  background: rgba(202, 160, 92, 0.08) !important;
  padding-left: 22px !important;
}

/* Third-level submenus — flyout to the right, not inline */
html body .main-navigation .sub-menu .sub-menu {
  position: absolute !important;
  top: 0 !important;
  left: 100% !important;
  margin-left: 8px !important;
  margin-top: 0 !important;
  background: #fff !important;
  box-shadow: 0 14px 36px rgba(28, 28, 29, 0.12), 0 4px 12px rgba(28, 28, 29, 0.06) !important;
  border-radius: 14px !important;
  padding: 14px 6px !important;
  min-width: 200px !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-8px);
  transition: opacity 0.2s ease, visibility 0s linear 0.2s, transform 0.2s ease;
}

/* Show flyout on hover over parent */
html body .main-navigation .sub-menu li:hover > .sub-menu,
html body .main-navigation .sub-menu li.menu-item-has-children:focus-within > .sub-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateX(0);
  transition: opacity 0.2s ease, visibility 0s linear 0s, transform 0.2s ease;
}

/* Third-level item styling */
html body .main-navigation .sub-menu .sub-menu li a {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--abc-dark) !important;
  padding: 8px 16px !important;
  margin: 1px 6px !important;
}

html body .main-navigation .sub-menu .sub-menu li a:hover {
  color: var(--abc-gold) !important;
  background: rgba(202, 160, 92, 0.08) !important;
  padding-left: 20px !important;
}

/* Parent item with submenu — add right margin for chevron */
html body .main-navigation .sub-menu li.menu-item-has-children {
  position: relative;
}

/* Remove unwanted borders/lines between items */
html body .main-navigation li,
html body .main-navigation .sub-menu li {
  border-top: none !important;
  border-bottom: none !important;
}

/* Active menu item indicator */
html body .main-navigation .primary-navigation > ul > li.current-menu-item > a,
html body .main-navigation .primary-navigation > ul > li.current-menu-parent > a {
  color: var(--abc-gold) !important;
}

/* Chevron for items with children */
html body .main-navigation .menu-item-has-children > a::after {
  content: "›";
  margin-left: 8px;
  color: var(--abc-gold);
  font-weight: 700;
}

/* Don't double the chevron on top-level where theme already adds one */
html body .main-navigation .primary-navigation > ul > li.menu-item-has-children > a::after {
  content: "";
  margin-left: 0;
}

/* ═══════════════════════════════════════════
   3b. PROCESS CARDS — refined UI (Antra antra-process widget)
   Matches the original Antra demo: staggered layout + big decorative number
   HTML: .elementor-process-item > .antra-inner-process
   ═══════════════════════════════════════════ */

/* Container — allow overflow for big decorative numbers and staggering */
.elementor-widget-antra-process .antra-con-inner.elementor-grid {
  gap: 28px;
  align-items: flex-start;
}

/* Each item wrapper — allow positioning context for staggering */
.elementor-widget-antra-process .elementor-process-item {
  position: relative;
}

/* Staggered zigzag: even items offset down */
@media (min-width: 768px) {
  .elementor-widget-antra-process .elementor-process-item:nth-child(2n) {
    margin-top: 80px;
  }
}

/* Card wrapper */
.elementor-widget-antra-process .antra-inner-process {
  position: relative;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(28, 28, 29, 0.08), 0 2px 8px rgba(28, 28, 29, 0.04);
  overflow: hidden;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  height: 100%;
  display: flex;
  flex-direction: column;
  cursor: default;
}

.elementor-widget-antra-process .antra-inner-process:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 50px rgba(28, 28, 29, 0.16), 0 4px 12px rgba(28, 28, 29, 0.08);
}

/* Image area — top of the card */
.elementor-widget-antra-process .antra-top-process,
.elementor-widget-antra-process .antra-process-image {
  margin: 0;
  overflow: hidden;
  position: relative;
}

.elementor-widget-antra-process .antra-process-image img,
.elementor-widget-antra-process .img-antra-process {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.elementor-widget-antra-process .antra-inner-process:hover .img-antra-process {
  transform: scale(1.06);
}

/* Content area */
.elementor-widget-antra-process .process-content-wap {
  padding: 26px 24px 64px; /* extra bottom for decorative number */
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
}

/* Hide the small top number — we'll render a big decorative one via ::after */
.elementor-widget-antra-process .antra-index-process {
  display: none !important;
}

/* Big decorative number at bottom-right of card */
.elementor-widget-antra-process .antra-inner-process::after {
  content: attr(data-index);
  position: absolute;
  bottom: 8px;
  right: 20px;
  font-family: 'Cal Sans', 'Golos Text', sans-serif;
  font-size: 90px;
  font-weight: 800;
  color: #1C1C1D;
  opacity: 0.08;
  line-height: 1;
  letter-spacing: -0.04em;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.elementor-widget-antra-process .antra-inner-process:hover::after {
  opacity: 0.14;
}

/* Number format: "01", "02", etc — handled by JS below */
.elementor-widget-antra-process .antra-inner-process[data-index="0"]::after { content: "01"; }
.elementor-widget-antra-process .antra-inner-process[data-index="1"]::after { content: "02"; }
.elementor-widget-antra-process .antra-inner-process[data-index="2"]::after { content: "03"; }
.elementor-widget-antra-process .antra-inner-process[data-index="3"]::after { content: "04"; }
.elementor-widget-antra-process .antra-inner-process[data-index="4"]::after { content: "05"; }
.elementor-widget-antra-process .antra-inner-process[data-index="5"]::after { content: "06"; }

/* Title — add "01. " prefix via numbered heading */
.elementor-widget-antra-process h4.process-title {
  margin: 0 0 6px !important;
  color: var(--abc-dark) !important;
  position: relative;
  padding-left: 42px;
}

.elementor-widget-antra-process h4.process-title::before {
  content: counter(process-step, decimal-leading-zero) ".";
  counter-increment: process-step;
  position: absolute;
  left: 0;
  top: 0;
  color: var(--abc-gold);
  font-weight: 700;
}

.elementor-widget-antra-process .antra-con-inner {
  counter-reset: process-step;
}

.elementor-widget-antra-process h4.process-title a {
  color: inherit !important;
  text-decoration: none !important;
}

/* Description paragraph */
.elementor-widget-antra-process .process-inner-content-wap .content p {
  margin: 0;
  color: #59585d;
  font-size: 15px;
  line-height: 1.55;
  font-family: 'Golos Text', 'Lato', sans-serif;
}

/* ═══════════════════════════════════════════
   3c1. SERVICES ACCORDION HOVER
   ═══════════════════════════════════════════ */

.antra-services-accordion .antra-item.service,
.elementor-widget-antra-services-accordion .antra-item.service {
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.antra-services-accordion .antra-item.service .service-title,
.antra-services-accordion .antra-item.service .service-link,
.elementor-widget-antra-services-accordion .service-title {
  transition: color 0.3s ease, transform 0.3s ease;
}

.antra-services-accordion .antra-item.service:hover .service-title,
.elementor-widget-antra-services-accordion .antra-item.service:hover .service-title {
  color: var(--abc-gold) !important;
}

.antra-services-accordion .antra-item.service:hover .service-arrow,
.elementor-widget-antra-services-accordion .antra-item.service:hover .service-arrow {
  transform: translateX(4px);
}

/* Services-list cards (the 4 category cards) - add hover */
.services-list .service-block,
.elementor-widget-antra-services-list .antra-item.service {
  transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  cursor: pointer;
}

.services-list .service-block:hover,
.elementor-widget-antra-services-list .antra-item.service:hover {
  transform: translateY(-4px);
}

/* Custom pcards on services page — ensure hover works */
a.abc-pcard {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(28, 28, 29, 0.06);
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  text-decoration: none;
  color: inherit;
}

a.abc-pcard:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(28, 28, 29, 0.16);
}

a.abc-pcard .abc-pcard-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

a.abc-pcard:hover .abc-pcard-img {
  transform: scale(1.05);
}

a.abc-pcard .abc-pcard-grad {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(28, 28, 29, 0) 30%, rgba(28, 28, 29, 0.85) 100%);
  pointer-events: none;
}

a.abc-pcard .abc-pcard-tag {
  position: absolute;
  top: 16px;
  left: 16px;
  background: rgba(255, 255, 255, 0.92);
  padding: 6px 14px;
  border-radius: 999px;
  font-family: 'Cal Sans', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--abc-dark);
  z-index: 2;
}

a.abc-pcard .abc-pcard-num {
  position: absolute;
  top: 14px;
  right: 18px;
  font-family: 'Cal Sans', sans-serif;
  font-size: 56px;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.3);
  line-height: 1;
  z-index: 2;
}

a.abc-pcard .abc-pcard-label {
  position: absolute;
  bottom: 18px;
  left: 20px;
  right: 20px;
  font-family: 'Cal Sans', sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: #fff;
  margin: 0;
  line-height: 1.25;
  z-index: 2;
  text-transform: none !important;
  letter-spacing: 0 !important;
  word-break: normal !important;
}

/* Portfolio group containers — uniform grid, no overlap */
#residential,
#kitchens,
#bathrooms,
#commercial {
  transition: opacity 0.3s ease;
}

/* Fix the 5-card residential grid — force uniform 4-column layout */
#residential .abc-pcard,
#kitchens .abc-pcard,
#bathrooms .abc-pcard,
#commercial .abc-pcard {
  width: 100% !important;
  max-width: none !important;
  height: 320px !important;
  aspect-ratio: auto !important;
  grid-column: auto !important;
  grid-row: auto !important;
}

/* Kill the huge/tall/wide modifiers that cause irregular grid */
#residential .abc-pcard.abc-huge,
#residential .abc-pcard.abc-tall,
#residential .abc-pcard.abc-wide,
#kitchens .abc-pcard.abc-huge,
#kitchens .abc-pcard.abc-tall,
#kitchens .abc-pcard.abc-wide,
#bathrooms .abc-pcard.abc-huge,
#bathrooms .abc-pcard.abc-tall,
#bathrooms .abc-pcard.abc-wide,
#commercial .abc-pcard.abc-huge,
#commercial .abc-pcard.abc-tall,
#commercial .abc-pcard.abc-wide {
  width: 100% !important;
  height: 320px !important;
  grid-area: auto !important;
}

/* Hidden state for filtered groups */
.abc-portfolio-hidden {
  display: none !important;
}

/* ═══════════════════════════════════════════
   3d2. WHY CHOOSE US — 4-column feature grid
   ═══════════════════════════════════════════ */

.elementor-element[data-id^="abc_whychoose_"] > .e-con-inner,
.elementor-element[data-id^="abc_whychoose_"] {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 24px !important;
}

.elementor-widget[data-id^="abc_wcf_"],
[data-id^="abc_wcf_"] {
  flex: 1 1 220px !important;
  max-width: calc(25% - 18px) !important;
  min-width: 240px !important;
}

@media (max-width: 900px) {
  [data-id^="abc_wcf_"] {
    max-width: calc(50% - 12px) !important;
  }
}
@media (max-width: 520px) {
  [data-id^="abc_wcf_"] {
    max-width: 100% !important;
  }
}

/* Icon-box cards visual */
[data-id^="abc_wcf_"] .elementor-widget-container {
  background: #fff;
  border-radius: 14px;
  padding: 32px 24px;
  box-shadow: 0 6px 20px rgba(28, 28, 29, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  height: 100%;
}

[data-id^="abc_wcf_"]:hover .elementor-widget-container {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(28, 28, 29, 0.12);
}

[data-id^="abc_wcf_"] .elementor-icon-box-title {
  font-family: 'Cal Sans', sans-serif !important;
  font-size: 1.1rem !important;
  margin-bottom: 10px !important;
}

[data-id^="abc_wcf_"] .elementor-icon-box-description {
  font-family: 'Golos Text', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  text-transform: none !important;
}

/* ═══════════════════════════════════════════
   3e. BLOG POST GRID — prevent title truncation
   Widget: antra-post-grid
   ═══════════════════════════════════════════ */

.elementor-widget-antra-post-grid .entry-title,
.elementor-widget-antra-post-grid .post-title,
.elementor-widget-antra-post-grid h3,
.elementor-widget-antra-post-grid h4 {
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  max-height: none !important;
}

.elementor-widget-antra-post-grid .entry-title a,
.elementor-widget-antra-post-grid .post-title a,
.elementor-widget-antra-post-grid h3 a,
.elementor-widget-antra-post-grid h4 a {
  display: inline !important;
}

/* Author byline — hide if empty */
.elementor-widget-antra-post-grid .author-by:empty,
.elementor-widget-antra-post-grid .post-author:empty {
  display: none !important;
}

/* Author prefix text cleanup */
.elementor-widget-antra-post-grid .post-by {
  font-size: 12px;
  color: #888;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* ═══════════════════════════════════════════
   3d. PROJECT GRID CARDS — Antra original demo style
   Rounded rectangle cards with category pill + staggered zigzag
   HTML: .antra-item.project > .project-block
   ═══════════════════════════════════════════ */

/* Grid container allows alignment for stagger */
.elementor-widget-antra-project .antra-project.elementor-grid {
  align-items: flex-start;
}

/* Uniform bento grid: all project cards aligned, equal dimensions (no zigzag) */
@media (min-width: 768px) {
  .elementor-widget-antra-project .antra-project.columns-3 > .antra-item:nth-child(3n+2),
  .elementor-widget-antra-project .antra-project.columns-4 > .antra-item:nth-child(2n) {
    margin-top: 0;
  }
}

/* Project block wrapper */
.antra-item.project .project-block {
  position: relative;
}

/* Rounded image container */
.antra-item.project .project-transition {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: #E8E5E0;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              box-shadow 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: 0 8px 24px rgba(28, 28, 29, 0.06);
}

.antra-item.project:hover .project-transition {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(28, 28, 29, 0.14);
}

/* Image styling inside rounded container */
.antra-item.project .project-image,
.antra-item.project .project-image img {
  display: block;
  width: 100%;
  height: auto;
}

.antra-item.project .project-image img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.antra-item.project:hover .project-image img {
  transform: scale(1.05);
}

/* Category pill — top-left of image (gold + dark text, brand-consistent) */
.antra-item.project .project-category {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 3;
  background: var(--abc-gold) !important;
  padding: 7px 16px !important;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  font-family: 'Cal Sans', sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  box-shadow: 0 2px 8px rgba(28, 28, 29, 0.15);
}

.antra-item.project .project-category a,
.antra-item.project .project-category {
  color: var(--abc-dark) !important;
  text-decoration: none !important;
  border: none !important;
}

.antra-item.project .project-category a:hover {
  color: #fff !important;
}

/* Caption area below image */
.antra-item.project .project-caption,
.antra-item.project .project-content,
.antra-item.project .project-text-box {
  padding: 20px 4px 0;
}

/* Title */
html body .antra-item.project .project-loop-title,
html body .antra-item.project h3.project-loop-title,
html body .antra-item.project h4.project-loop-title {
  margin: 0 0 6px !important;
  font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: var(--abc-dark) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.antra-item.project .project-loop-title a {
  color: inherit;
  text-decoration: none;
  border: none;
}

.antra-item.project .project-loop-title a:hover {
  color: var(--abc-gold-dark);
}

/* Meta row: location + date */
.antra-item.project .project-location,
.antra-item.project .project-date {
  font-family: 'Golos Text', 'Lato', sans-serif;
  font-size: 14px;
  color: #59585d;
  margin: 0;
}

.antra-item.project .project-location {
  margin-bottom: 2px;
}

/* ═══════════════════════════════════════════
   3c. PORTFOLIO FILTER CHIPS
   ═══════════════════════════════════════════ */

.abc-portfolio-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin: 32px 0 48px;
  padding: 0 16px;
}

.abc-portfolio-filters .abc-chip {
  display: inline-flex;
  align-items: center;
  padding: 10px 22px;
  border: 1.5px solid var(--abc-dark);
  border-radius: 999px;
  color: var(--abc-dark);
  font-family: 'Cal Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  background: transparent;
  transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  cursor: pointer;
  white-space: nowrap;
}

.abc-portfolio-filters .abc-chip:hover {
  background: rgba(202, 160, 92, 0.1);
  border-color: var(--abc-gold);
  color: var(--abc-gold-dark);
}

.abc-portfolio-filters .abc-chip.is-active {
  background: var(--abc-gold);
  border-color: var(--abc-gold);
  color: var(--abc-dark);
  box-shadow: 0 4px 14px rgba(202, 160, 92, 0.35);
}

@media (max-width: 640px) {
  .abc-portfolio-filters {
    gap: 8px;
    margin: 20px 0 32px;
  }
  .abc-portfolio-filters .abc-chip {
    padding: 8px 16px;
    font-size: 12px;
  }
}


/* ═══════════════════════════════════════════
   4. MOBILE STICKY CTA
   ═══════════════════════════════════════════ */

.mobile-sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: var(--abc-gold);
  padding: 12px 20px;
  text-align: center;
  transform: translateY(100%);
  transition: transform 0.3s ease;
}

.mobile-sticky-cta.visible {
  transform: translateY(0);
}

.mobile-sticky-cta a {
  color: var(--abc-dark);
  font-family: 'Good Times', sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

@media (min-width: 769px) {
  .mobile-sticky-cta {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════
   5. CONTACT MODAL
   ═══════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   CONTACT MODAL — Architectural Blueprint Dossier
   Dark modal with gold blueprint grid, corner crop marks,
   cartouche ref label, unified contact rows. All rules scoped
   under .abc-modal-overlay so they can't bleed elsewhere.
   ═══════════════════════════════════════════════════════════════ */

.abc-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(8, 8, 10, 0.72);
  backdrop-filter: blur(8px) saturate(120%);
  -webkit-backdrop-filter: blur(8px) saturate(120%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.22s ease, visibility 0s linear 0.22s;
}
.abc-modal-overlay[hidden] { display: none !important; }
.abc-modal-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.22s ease, visibility 0s linear 0s;
}

/* ─── Modal box ─── */
.abc-modal-overlay .abc-modal {
  position: relative;
  width: 100%;
  max-width: 480px;
  padding: 40px 32px 26px;
  color: #F8F7F5;
  background-color: #1C1C1D;
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.055) 1px, transparent 1px);
  background-size: 40px 40px;
  border: 1px solid rgba(202, 160, 92, 0.22);
  border-radius: 2px;
  box-shadow:
    0 40px 80px -20px rgba(0, 0, 0, 0.7),
    0 0 0 1px rgba(202, 160, 92, 0.05);
  opacity: 0;
  transform: translateY(24px) scale(0.985);
  transition: opacity 0.4s cubic-bezier(0.2, 0.9, 0.2, 1),
              transform 0.46s cubic-bezier(0.2, 0.9, 0.2, 1);
}
.abc-modal-overlay.is-open .abc-modal {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* ─── Corner crop marks (architectural / viewfinder) ─── */
.abc-modal-overlay .abc-modal__corner {
  position: absolute;
  width: 14px;
  height: 14px;
  pointer-events: none;
  z-index: 3;
}
.abc-modal-overlay .abc-modal__corner--tl {
  top: -1px; left: -1px;
  border-top: 1.5px solid #CAA05C;
  border-left: 1.5px solid #CAA05C;
}
.abc-modal-overlay .abc-modal__corner--tr {
  top: -1px; right: -1px;
  border-top: 1.5px solid #CAA05C;
  border-right: 1.5px solid #CAA05C;
}
.abc-modal-overlay .abc-modal__corner--bl {
  bottom: -1px; left: -1px;
  border-bottom: 1.5px solid #CAA05C;
  border-left: 1.5px solid #CAA05C;
}
.abc-modal-overlay .abc-modal__corner--br {
  bottom: -1px; right: -1px;
  border-bottom: 1.5px solid #CAA05C;
  border-right: 1.5px solid #CAA05C;
}

/* ─── Cartouche (drawing ref number) ─── */
.abc-modal-overlay .abc-modal__cartouche {
  position: absolute;
  top: 14px;
  left: 20px;
  font-family: 'Good Times', 'Cal Sans', ui-monospace, monospace;
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #CAA05C;
  opacity: 0.8;
  z-index: 2;
}
.abc-modal-overlay .abc-modal__cartouche::after {
  content: '';
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 22px;
  height: 1px;
  background: #CAA05C;
  opacity: 0.55;
}

/* ─── Close button ─── */
.abc-modal-overlay .abc-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 1px solid rgba(202, 160, 92, 0.35);
  border-radius: 50%;
  color: rgba(248, 247, 245, 0.75);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: 4;
  line-height: 1;
  font-size: 0;
}
.abc-modal-overlay .abc-modal-close:hover {
  border-color: #CAA05C;
  color: #CAA05C;
  transform: rotate(90deg);
}
.abc-modal-overlay .abc-modal-close svg { display: block; }

/* ─── Header ─── */
.abc-modal-overlay .abc-modal__header {
  margin: 14px 0 22px;
}
.abc-modal-overlay .abc-modal__eyebrow {
  margin: 0 0 10px;
  font-family: ui-monospace, 'Roboto Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(202, 160, 92, 0.85);
}
.abc-modal-overlay .abc-modal__title {
  margin: 0 0 12px;
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 28px;
  line-height: 1.12;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #FFFFFF;
  font-weight: 400;
}
.abc-modal-overlay .abc-modal__title-accent { color: #CAA05C; }
.abc-modal-overlay .abc-modal__sub {
  margin: 0;
  font-family: 'Golos Text', 'Lato', sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(248, 247, 245, 0.65);
}

/* ─── Option list ─── */
.abc-modal-overlay .abc-modal-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 22px;
}

/* Shared button shell */
.abc-modal-overlay .abc-modal-btn {
  position: relative;
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  background: rgba(248, 247, 245, 0.025);
  border: 1px solid rgba(202, 160, 92, 0.22);
  border-radius: 2px;
  color: #F8F7F5;
  text-decoration: none !important;
  overflow: hidden;
  transition: all 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  opacity: 0;
  transform: translateY(12px);
}
.abc-modal-overlay.is-open .abc-modal-btn {
  animation: abc-modal-row-in 360ms cubic-bezier(0.2, 0.9, 0.2, 1) forwards;
}
@keyframes abc-modal-row-in {
  to { opacity: 1; transform: translateY(0); }
}
.abc-modal-overlay.is-open .abc-modal-btn:nth-of-type(1) { animation-delay: 180ms; }
.abc-modal-overlay.is-open .abc-modal-btn:nth-of-type(2) { animation-delay: 240ms; }
.abc-modal-overlay.is-open .abc-modal-btn:nth-of-type(3) { animation-delay: 300ms; }
.abc-modal-overlay.is-open .abc-modal-btn:nth-of-type(4) { animation-delay: 360ms; }

/* Sweep wash on hover */
.abc-modal-overlay .abc-modal-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(202, 160, 92, 0.09), transparent 55%);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}
.abc-modal-overlay .abc-modal-btn:hover {
  border-color: #CAA05C;
  background: rgba(202, 160, 92, 0.06);
  transform: translateY(-1px);
}
.abc-modal-overlay .abc-modal-btn:hover::before { opacity: 1; }

/* Icon square */
.abc-modal-overlay .abc-modal-btn__glyph {
  position: relative;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(28, 28, 29, 0.8);
  border: 1px solid rgba(202, 160, 92, 0.3);
  border-radius: 2px;
  color: #CAA05C;
  transition: all 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: 1;
}
.abc-modal-overlay .abc-modal-btn__glyph svg {
  width: 20px; height: 20px; display: block;
}
.abc-modal-overlay .abc-modal-btn:hover .abc-modal-btn__glyph {
  background: #CAA05C;
  border-color: #CAA05C;
  color: #1C1C1D;
}

/* Text column */
.abc-modal-overlay .abc-modal-btn__text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  z-index: 1;
}
.abc-modal-overlay .abc-modal-btn__label {
  font-family: 'Cal Sans', 'Golos Text', sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #FFFFFF;
  line-height: 1.2;
}
.abc-modal-overlay .abc-modal-btn__sub {
  font-family: 'Golos Text', 'Lato', sans-serif;
  font-size: 12px;
  letter-spacing: 0.01em;
  color: rgba(248, 247, 245, 0.58);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.abc-modal-overlay .abc-modal-btn__sub--mono {
  font-family: ui-monospace, 'Roboto Mono', Menlo, Consolas, monospace;
  font-size: 11.5px;
  letter-spacing: 0;
  color: rgba(202, 160, 92, 0.78);
}

/* Arrow */
.abc-modal-overlay .abc-modal-btn__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(202, 160, 92, 0.55);
  transition: all 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: 1;
}
.abc-modal-overlay .abc-modal-btn:hover .abc-modal-btn__arrow {
  color: #CAA05C;
  transform: translateX(4px);
}

/* WA variant — the "promoted" channel */
.abc-modal-overlay .abc-modal-btn--wa {
  background: rgba(202, 160, 92, 0.08);
  border-color: rgba(202, 160, 92, 0.5);
}
.abc-modal-overlay .abc-modal-btn--wa .abc-modal-btn__glyph {
  background: rgba(202, 160, 92, 0.18);
  border-color: rgba(202, 160, 92, 0.45);
}

/* ─── Trust strip ─── */
.abc-modal-overlay .abc-modal__trust {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  padding-top: 18px;
  font-family: ui-monospace, 'Roboto Mono', Menlo, Consolas, monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(248, 247, 245, 0.48);
}
.abc-modal-overlay .abc-modal__trust::before {
  content: '';
  position: absolute;
  top: 0;
  left: 12%;
  right: 12%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(202, 160, 92, 0.3), transparent);
}
.abc-modal-overlay .abc-modal__trust-dot {
  display: inline-block;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(202, 160, 92, 0.6);
}

/* ─── Mobile ─── */
@media (max-width: 640px) {
  .abc-modal-overlay { padding: 16px; }
  .abc-modal-overlay .abc-modal {
    max-width: 420px;
    padding: 38px 22px 22px;
  }
  .abc-modal-overlay .abc-modal__title { font-size: 22px; }
  .abc-modal-overlay .abc-modal__sub { font-size: 13px; }
  .abc-modal-overlay .abc-modal-btn {
    grid-template-columns: 42px 1fr auto;
    padding: 11px 12px;
    gap: 12px;
  }
  .abc-modal-overlay .abc-modal-btn__glyph { width: 42px; height: 42px; }
  .abc-modal-overlay .abc-modal-btn__label { font-size: 14px; }
  .abc-modal-overlay .abc-modal-btn__sub { font-size: 11.5px; }
  .abc-modal-overlay .abc-modal__cartouche { font-size: 8px; top: 12px; left: 16px; }
  .abc-modal-overlay .abc-modal__trust { font-size: 9px; }
}

/* ─── Reduced motion ─── */
@media (prefers-reduced-motion: reduce) {
  .abc-modal-overlay,
  .abc-modal-overlay .abc-modal,
  .abc-modal-overlay .abc-modal-btn {
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
    transition-duration: 0.01ms !important;
  }
  .abc-modal-overlay.is-open .abc-modal-btn {
    opacity: 1;
    transform: none;
  }
  .abc-modal-overlay .abc-modal-close:hover,
  .abc-modal-overlay .abc-modal-btn:hover,
  .abc-modal-overlay .abc-modal-btn:hover .abc-modal-btn__arrow {
    transform: none;
  }
}

/* ─────────── Single service hero banner ─────────── */
.abc-service-hero {
  position: relative;
  background: #1C1C1D;
  background-image: var(--abc-hero-bg);
  background-size: cover;
  background-position: center;
  padding: 90px 0 70px;
  color: #F8F7F5;
  overflow: hidden;
  border-bottom: 1px solid rgba(202, 160, 92, 0.12);
}

.abc-service-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(28, 28, 29, 0.92) 0%, rgba(28, 28, 29, 0.78) 55%, rgba(28, 28, 29, 0.68) 100%);
  z-index: 1;
}

.abc-service-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 30px;
}

.abc-service-hero__crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-family: 'Cal Sans', sans-serif;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(248, 247, 245, 0.65);
  margin-bottom: 22px;
}

.abc-service-hero__crumb a {
  color: rgba(248, 247, 245, 0.65);
  text-decoration: none;
  transition: color 200ms ease;
}

.abc-service-hero__crumb a:hover { color: #CAA05C; }

.abc-service-hero__crumb span[aria-hidden="true"] {
  color: rgba(202, 160, 92, 0.5);
}

.abc-service-hero__crumb .is-current {
  color: #CAA05C;
  letter-spacing: 0.04em;
}

.abc-service-hero__eyebrow {
  display: inline-block;
  font-family: 'Cal Sans', sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #CAA05C;
  padding: 6px 14px;
  border: 1px solid rgba(202, 160, 92, 0.4);
  border-radius: 999px;
  margin-bottom: 20px;
}

.abc-service-hero__title {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(40px, 6.2vw, 82px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.01em;
  margin: 0;
  color: #F8F7F5;
  text-transform: none;
  max-width: 1100px;
}

.abc-service-hero__title .c-primary {
  color: #CAA05C;
  font-style: italic;
}

@media (max-width: 900px) {
  .abc-service-hero { padding: 60px 0 50px; }
  .abc-service-hero__crumb { font-size: 11px; gap: 6px; }
  .abc-service-hero__eyebrow { font-size: 11px; letter-spacing: 0.18em; }
}

@media (max-width: 520px) {
  .abc-service-hero { padding: 44px 0 36px; }
  .abc-service-hero__inner { padding: 0 18px; }
  .abc-service-hero__title { font-size: clamp(32px, 9vw, 48px); }
}

/* ─────────── Footer email wraps cleanly on narrow columns ─────────── */
.abc-footer-email .elementor-heading-title,
.abc-footer-email .elementor-heading-title a {
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* ─────────── "Need help?" contact card (sidebar-service) ─────────── */
.widget_abc_contact_card {
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.widget_abc_contact_card .widget-title { display: none; }

.abc-help-card {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  padding: 44px 28px 32px;
  background: #1C1C1D;
  color: #F8F7F5;
  box-shadow: 0 14px 40px rgba(28, 28, 29, 0.25);
  min-height: 340px;
  margin-top: 32px;  /* Separate from the services card above it */
  border: 1px solid rgba(202, 160, 92, 0.22);
}

.abc-help-card__bg {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(ellipse at top right, rgba(202, 160, 92, 0.18) 0%, transparent 55%),
    radial-gradient(ellipse at bottom left, rgba(202, 160, 92, 0.08) 0%, transparent 45%),
    linear-gradient(180deg, #1C1C1D 0%, #0E0E0F 100%);
  z-index: 1;
}

.abc-help-card__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
}

.abc-help-card__mark {
  color: #CAA05C;
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-height: 80px;
  border-radius: 0;
  background: transparent;
  border: none;
}
.abc-help-card__mark img {
  width: auto;
  max-width: 140px;
  height: auto;
  max-height: 80px;
  object-fit: contain;
  display: block;
}

html body .abc-help-card h4.abc-help-card__heading,
html body .abc-help-card .abc-help-card__heading {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: #FFFFFF !important;
  margin: 0 0 22px !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

.abc-help-card__phone {
  display: block;
  font-family: 'Cal Sans', sans-serif;
  font-size: 26px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #CAA05C;
  margin: 0 0 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(202, 160, 92, 0.5);
  text-decoration: none;
  transition: color 200ms ease;
}

.abc-help-card__phone:hover { color: #E8C082; }

.abc-help-card__email {
  display: inline-block;
  font-family: 'Cal Sans', sans-serif;
  font-size: 13px;
  color: rgba(248, 247, 245, 0.78);
  margin: 0 0 24px;
  text-decoration: none;
  word-break: break-all;
  transition: color 200ms ease;
}

.abc-help-card__email:hover { color: #CAA05C; }

.abc-help-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 130px;
  min-height: 130px;
  padding: 18px 16px;
  border-radius: 50%;
  background: rgba(248, 247, 245, 0.08);
  border: 1px solid rgba(248, 247, 245, 0.18);
  color: #F8F7F5;
  font-family: 'Cal Sans', sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.01em;
  text-align: center;
  text-decoration: none;
  transition: background 200ms ease, border-color 200ms ease, color 200ms ease, transform 200ms ease;
  cursor: pointer;
  margin-top: 6px;
}

.abc-help-card__cta:hover {
  background: #CAA05C;
  border-color: #CAA05C;
  color: #1C1C1D;
  transform: translateY(-2px);
}

@media (max-width: 520px) {
  .abc-help-card { padding: 36px 22px 28px; min-height: 300px; }
  .abc-help-card__phone { font-size: 22px; }
  .abc-help-card__cta { min-width: 120px; min-height: 120px; font-size: 14px; }
}

/* ─────────── Grouped service sidebar (single-service.php) ─────────── */
/* Dark rounded card matching hero aesthetic */
.widget.widget_abc_grouped_service_list {
  padding: 34px 28px;
  background: #1C1C1D;
  border-radius: 20px;
  box-shadow: 0 12px 40px rgba(28, 28, 29, 0.14);
  color: #F8F7F5;
}

.widget.widget_abc_grouped_service_list .widget-title,
.widget.widget_abc_grouped_service_list h2.widget-title,
.widget.widget_abc_grouped_service_list .gamma.widget-title {
  display: block;
  font-family: 'Cal Sans', sans-serif;
  font-size: 22px;
  font-weight: 500;
  color: #F8F7F5;
  margin: 0 0 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid #CAA05C;
  letter-spacing: 0.01em;
}

.abc-grouped-services {
  list-style: none;
  margin: 0;
  padding: 0;
}

.abc-gs-group {
  margin: 0 0 26px;
  padding: 0;
  list-style: none;
}

.abc-gs-group:last-child { margin-bottom: 0; }

.abc-gs-group__label {
  display: block;
  font-family: 'Cal Sans', 'Good Times', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #CAA05C;
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(202, 160, 92, 0.3);
}

.abc-gs-items {
  list-style: none;
  margin: 0;
  padding: 0;
}

.abc-gs-item {
  margin: 0;
  padding: 0;
  list-style: none;
}

.abc-gs-item a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  color: rgba(248, 247, 245, 0.82);
  font-size: 15px;
  font-family: 'Cal Sans', sans-serif;
  text-decoration: none;
  transition: color 180ms ease, transform 180ms ease;
  border-bottom: 1px solid rgba(248, 247, 245, 0.07);
}

.abc-gs-item:last-child a { border-bottom: none; }

.abc-gs-item a:hover {
  color: #CAA05C;
  transform: translateX(3px);
}

.abc-gs-arrow {
  color: #CAA05C;
  font-size: 16px;
  line-height: 1;
  font-weight: 500;
  flex-shrink: 0;
  transition: transform 180ms ease;
}

.abc-gs-title {
  flex: 1 1 auto;
  line-height: 1.35;
}

.abc-gs-item.is-active a {
  color: #CAA05C;
  font-weight: 500;
}

.abc-gs-item.is-active .abc-gs-arrow {
  transform: translateX(2px);
}

/* ═══════════════════════════════════════════════════════════════
   HIDE sections pending client data (About demo stages/awards/etc.)
   Applied as CSS backup in case Elementor hide flags fail.
   ═══════════════════════════════════════════════════════════════ */
.abc-hidden-pending-content,
.elementor-section.abc-hidden-pending-content,
.elementor-top-section.abc-hidden-pending-content {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   GLOBAL word-break prevention — keep words whole, no hyphenation
   Applied everywhere typography matters: headings, menus, CTAs,
   cards, footer links. Only very long URLs/emails are allowed to
   wrap (handled locally with overflow-wrap: anywhere where needed).
   ═══════════════════════════════════════════════════════════════ */
html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6,
html body .elementor-heading-title,
html body .antra-heading-title,
html body .antra-heading-sub,
html body .site-header a,
html body .main-menu a,
html body .main-menu li,
html body nav a,
html body .elementor-button,
html body .elementor-button-text,
html body .abc-header-cta,
html body .abc-help-cta,
html body .abc-gs-title,
html body .abc-gs-toggle,
html body .abc-service-hero__title,
html body .abc-service-hero__eyebrow,
html body .abc-service-hero__breadcrumb,
html body .process-title,
html body .process-content-wap h4,
html body .antra-service-card h3,
html body .antra-service-card h4,
html body .service-title,
html body .testimonial-title,
html body .antra-project h3,
html body .antra-project h4,
html body .elementor-counter-title,
html body .elementor-counter-number-wrapper,
html body .site-footer a,
html body .site-footer h1,
html body .site-footer h2,
html body .site-footer h3,
html body .site-footer h4,
html body .site-footer h5,
html body .site-footer h6 {
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
}

/* Exception: allow URL/email wrap ONLY at logical break points (@, ., /) so
   "contractor" is never split as "contract|or". Using anywhere on the email
   breaks full words — we need break-word which respects word boundaries more
   strictly + a smaller font-size at mobile so the whole email fits on 2 lines. */
.abc-allow-break {
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

.abc-footer-email .elementor-heading-title,
.abc-footer-email .elementor-heading-title a {
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  /* anywhere lets wrap happen at any character, but only after normal
     word-wrap opportunities exhausted. Combined with smaller font-size on
     mobile below, the full email address fits. */
}

@media (max-width: 640px) {
  .abc-footer-email .elementor-heading-title,
  .abc-footer-email .elementor-heading-title a {
    font-size: clamp(12px, 3.6vw, 16px) !important;
    letter-spacing: 0 !important;
    word-spacing: -0.02em;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Elementor heading wrapper — override default overflow-wrap: break-word
   that forces RESIDENTIAL → RESIDEN|TIAL when font-size is larger than
   the column width. Heading wrapper must also keep words whole.
   ═══════════════════════════════════════════════════════════════ */
html body .elementor-heading-wrapper-inner,
html body .elementor-widget-container,
html body .elementor-widget-heading,
html body .elementor-widget-antra-heading {
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   Cap font-size only on the antra-heading widget (the one that uses
   80-110px display sizes and breaks long words like RESIDENTIAL in
   narrow columns). Regular .elementor-widget-heading (used for the
   "ABC" watermarks and process numbers) keeps whatever size it was
   configured with.
   ═══════════════════════════════════════════════════════════════ */
html body .elementor-widget-antra-heading .antra-heading-title,
html body .elementor-widget-antra-heading .elementor-heading-title {
  font-size: clamp(28px, 3.8vw, 54px) !important;
  line-height: 1.14 !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  max-width: 100%;
  white-space: normal !important;
}

/* Also ensure the wrapper can't force break-word on children */
html body .elementor-widget-antra-heading .elementor-heading-wrapper,
html body .elementor-widget-antra-heading .elementor-heading-wrapper-inner,
html body .elementor-widget-antra-heading .antra-heading-wrapper {
  overflow-wrap: normal !important;
  word-break: normal !important;
  overflow: visible !important;
}

/* Mobile cap on regular heading widgets — long words like CONSTRUCTION
   or TRANSFORMATION at 40-60px desktop size don't fit on 375px viewport.
   Reduce font-size so the longest single word fits the column. */
@media (max-width: 768px) {
  html body .elementor-widget-heading .elementor-heading-title {
    font-size: clamp(24px, 6vw, 32px) !important;
    line-height: 1.18 !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    max-width: 100%;
  }

  /* "Why Choose Us" section (db2242a) — center cards within their rows.
     Cards have fixed widths that don't fill parent, causing left-alignment
     by default. Force justify-content: center on the inner container. */
  html body [data-id="db2242a"] .e-con-inner,
  html body [data-id="db2242a"] > .e-con-inner {
    justify-content: center !important;
    align-items: center !important;
  }
  html body [data-id="db2242a"] .abc-wcf,
  html body [data-id="db2242a"] [class*="abc_wcf"],
  html body [id^="abc_wcf"] {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Generic fallback: center any flex row of cards in the home top-level
     sections so single-column-wrapped cards don't hug the left edge. */
  html body .elementor-top-section .e-con-inner[style*="flex-direction"],
  html body .elementor > .e-con .e-con-inner {
    justify-content: center;
  }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE FIXES (≤768px) — touch targets + sizing
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  /* Hero counter "20" — cap so it doesn't eat full viewport, keeps "+" beside */
  html body .elementor-counter .elementor-counter-number-wrapper,
  html body .elementor-counter .elementor-counter-number-wrapper > span,
  html body .elementor-counter-number,
  html body .elementor-counter-title {
    font-size: clamp(56px, 20vw, 110px) !important;
    line-height: 1 !important;
  }
  html body .elementor-counter-title {
    font-size: clamp(22px, 7vw, 42px) !important;
  }

  /* Menu hamburger — minimum 44×44 tap target */
  html body .menu-mobile-nav-button,
  html body .menu-mobile-nav-button a,
  html body button[aria-label*="menu" i],
  html body button[aria-label*="Menu"],
  html body .mobile-nav-toggle {
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Text-link style buttons (Start your project today / View our projects
     / Start your project today) — give them breathing padding on mobile */
  html body .elementor-button.elementor-button-link,
  html body .elementor-button-link.elementor-button {
    min-height: 44px !important;
    padding: 12px 18px !important;
    display: inline-flex !important;
    align-items: center !important;
  }

  /* Footer link list items — comfortable tap targets */
  html body #colophon .elementor-icon-list-item a,
  html body #colophon .elementor-icon-list-item,
  html body .footer-width-fixer .elementor-icon-list-item a,
  html body .footer-width-fixer .elementor-icon-list-item {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    padding: 4px 0 !important;
  }
}

/* Small mobile (≤420px) — tighter counter so "20+" fits on one line */
@media (max-width: 420px) {
  html body .elementor-counter .elementor-counter-number-wrapper,
  html body .elementor-counter .elementor-counter-number-wrapper > span,
  html body .elementor-counter-number {
    font-size: clamp(48px, 18vw, 88px) !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Footer (#colophon) — fix dark-on-dark text in icon-list pills
   (newsletter, social). Elementor kit defaults text color to
   near-black (rgb(28,28,29)), which is invisible against the
   #1C1C1D section background.
   ═══════════════════════════════════════════════════════════════ */
html body #colophon .elementor-icon-list-text,
html body #colophon .elementor-icon-list-item a,
html body #colophon .elementor-icon-list-items li,
html body #colophon .elementor-icon-list-items a,
html body .site-footer #colophon .elementor-icon-list-text,
html body .footer-width-fixer .elementor-icon-list-text,
html body .footer-width-fixer .elementor-icon-list-item a {
  color: #F8F7F5 !important;
}

/* Keep gold accent items (icons/bullets) in brand gold */
html body #colophon .elementor-icon-list-icon svg,
html body #colophon .elementor-icon-list-icon i,
html body .footer-width-fixer .elementor-icon-list-icon svg,
html body .footer-width-fixer .elementor-icon-list-icon i {
  color: #CAA05C !important;
  fill: #CAA05C !important;
}

/* Footer headings — cream on dark bg (default was dark on dark = invisible) */
html body #colophon h1,
html body #colophon h2,
html body #colophon h3,
html body #colophon h4,
html body #colophon .elementor-heading-title {
  color: #F8F7F5 !important;
}
/* Gold accent spans inside footer headings stay gold */
html body #colophon .elementor-heading-title .c-primary,
html body #colophon .elementor-heading-title span[style*="primary"],
html body #colophon h2 span[style*="primary"] {
  color: #CAA05C !important;
}

/* ═══════════════════════════════════════════════════════════════
   Footer mobile layout — tighter rhythm, 2-column nav menus, no
   absurd 180px trailing padding. Target viewport ≤768px.
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  /* Kill the 180px bottom padding on the middle section */
  html body #colophon .elementor-element-6632dbf {
    padding-bottom: 40px !important;
    padding-top: 40px !important;
  }

  /* Compact padding on all footer sections */
  html body #colophon .e-con-boxed,
  html body #colophon .e-con-full {
    padding-top: 24px;
    padding-bottom: 24px;
  }

  /* Top newsletter block: tighter */
  html body #colophon .elementor-element-8ca2535 {
    padding: 40px 20px 32px !important;
  }

  /* Logo + tagline + description: center, tighter gap */
  html body #colophon .elementor-element-af5145f {
    gap: 16px !important;
  }

  /* Nav menus → 2 columns side-by-side on mobile (Home-About-Services-Projects-Contact
     on left, service links on right). Apply to both icon-list widgets in main menu row. */
  html body #colophon .elementor-element-c979888,
  html body #colophon .elementor-element-9e2737d {
    flex: 1 1 48% !important;
    min-width: 0 !important;
  }

  /* If the two menus are in a wrapping flex row, force them side-by-side */
  html body #colophon .elementor-element-a7c1aa9 {
    flex-direction: row !important;
    gap: 16px !important;
    justify-content: center;
    flex-wrap: wrap;
  }

  /* Menu items: comfortable vertical spacing */
  html body #colophon .elementor-icon-list-items {
    text-align: left;
  }
  html body #colophon .elementor-icon-list-item {
    margin-bottom: 10px !important;
  }
  html body #colophon .elementor-icon-list-item a {
    min-height: 36px !important;
    font-size: 14px !important;
    padding: 6px 0 !important;
  }

  /* ─── Section labels injected via ::before — divides the footer
     visually into "Navigate", "Services", "Contact", "Follow us"
     without needing to edit Elementor data. ─── */

  /* NAVIGATE and SERVICES labels hidden on mobile — items are
     self-explanatory, less visual clutter. Kept for desktop. */
  html body #colophon .elementor-element-c979888::before,
  html body #colophon .elementor-element-9e2737d::before {
    display: none !important;
  }

  /* CONTACT block: center within viewport (parent is offset ~8px left due
     to footer 360px width vs 375px viewport — pull it back with auto margin
     + explicit centering on content). */
  html body #colophon .elementor-element-640aba9,
  html body #colophon .elementor-element-6159a13 {
    align-items: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
  }
  html body #colophon .elementor-element-640aba9 .elementor-heading-title,
  html body #colophon .elementor-element-640aba9 h5,
  html body #colophon .elementor-element-640aba9 h5 a,
  html body #colophon .elementor-element-640aba9 .elementor-widget-container {
    text-align: center !important;
  }
  /* Soft hairline divider above the phone+email block (visual separator
     without a text label). */
  html body #colophon .elementor-element-640aba9 {
    position: relative;
    padding-top: 32px !important;
  }
  html body #colophon .elementor-element-640aba9::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 72px;
    height: 1px;
    background: rgba(202, 160, 92, 0.35);
  }

  /* Ensure the footer content containers fill full viewport width so the
     apparent off-center isn't caused by the 360px cap on the outer e-con. */
  html body #colophon .elementor-element-6632dbf,
  html body #colophon .elementor-element-af5145f {
    width: 100% !important;
    max-width: 100% !important;
  }
  html body #colophon .footer-width-fixer,
  html body .footer-width-fixer {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Soft hairline divider above the social row (no text label). */
  html body #colophon .elementor-element-707e44d {
    position: relative;
    padding-top: 28px !important;
    margin-top: 20px !important;
  }
  html body #colophon .elementor-element-707e44d::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 72px;
    height: 1px;
    background: rgba(202, 160, 92, 0.35);
  }

  /* Add subtle horizontal divider before each main block group.
     Apply a hairline above the main nav row and the contact row. */
  html body #colophon .elementor-element-a7c1aa9 {
    padding: 28px 16px 20px !important;
    margin-top: 8px;
  }

  /* Reduce the huge padding-bottom override if still excessive */
  html body #colophon .elementor-element-6632dbf {
    padding-bottom: 20px !important;
    padding-top: 32px !important;
  }

  /* Trim top padding on the phone+email wrapper so it sits closer
     to the menu columns above (reduce dead space) */
  html body #colophon .elementor-element-6159a13 {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
    gap: 8px !important;
  }
  html body #colophon .elementor-element-640aba9 {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
  html body #colophon .elementor-element-707e44d {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  /* Horizontal padding on outer e-con-boxed so labels/content don't hug
     the viewport edge. 20-24px on each side is comfortable on 375px.
     NOT applied to 640aba9 (phone+email) since its parent af5145f
     already provides horizontal padding — avoids double-padding that
     would narrow the content too much for the full email to fit. */
  html body #colophon .elementor-element-8ca2535,
  html body #colophon .elementor-element-6632dbf,
  html body #colophon .elementor-element-af5145f,
  html body #colophon .elementor-element-a7c1aa9,
  html body #colophon .elementor-element-6705f8e {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  /* Keep menu columns flush inside their parent (no extra inner padding
     so long labels like "Interior Remodeling" fit on one line) */
  html body #colophon .elementor-element-c979888,
  html body #colophon .elementor-element-9e2737d {
    padding: 0 !important;
  }

  /* Menu items — allow wrap if needed inside their column */
  html body #colophon .elementor-element-c979888 .elementor-icon-list-text,
  html body #colophon .elementor-element-9e2737d .elementor-icon-list-text {
    white-space: normal;
    font-size: 12px !important;
    line-height: 1.3 !important;
  }

  /* Phone heading — keep gold, reasonable size */
  html body #colophon .elementor-element-6159a13 h5 a {
    font-size: 18px !important;
  }

  /* Social row (707e44d, the real one) — horizontal, centered */
  html body #colophon .elementor-element-707e44d .elementor-icon-list-items {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px 18px;
    text-align: center;
  }
  html body #colophon .elementor-element-707e44d .elementor-icon-list-item {
    margin-bottom: 0 !important;
  }

  /* Copyright tight */
  html body #colophon .elementor-element-6705f8e {
    padding: 16px 20px !important;
  }

  /* Reset the global antra-heading clamp to per-tag sizes for the footer.
     The global rule earlier set everything to 54px which is too big here. */
  html body #colophon h6.elementor-heading-title,
  html body #colophon h6 {
    font-size: 15px !important;
    line-height: 1.4 !important;
  }
  html body #colophon h5.elementor-heading-title,
  html body #colophon h5 {
    font-size: 18px !important;
    line-height: 1.3 !important;
  }
  /* Email is an h5 but needs smaller font to fit on 2 lines */
  html body #colophon .abc-footer-email h5,
  html body #colophon .abc-footer-email .elementor-heading-title,
  html body #colophon .abc-footer-email h5 a,
  html body #colophon .abc-footer-email .elementor-heading-title a {
    font-size: 13px !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
  }
  html body #colophon h2.elementor-heading-title {
    font-size: 28px !important;
    line-height: 1.15 !important;
  }
  /* company name watermark — readable on one line */
  html body #colophon [data-id="62507a3"] .elementor-heading-title,
  html body #colophon [data-id="da7c44a"] .elementor-heading-title {
    font-size: clamp(20px, 6.5vw, 52px) !important;
    line-height: 1 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE DRAWER — refined design
   Target: .antra-mobile-nav (330×766, z-index 9999, white bg).
   Replaces the default teal/serif look with a dark brand panel,
   Cal Sans typography, gold accents, and generous hit areas.
   ═══════════════════════════════════════════════════════════════ */

html body .antra-mobile-nav {
  background: #FFFFFF !important;
  color: #1C1C1D !important;
  width: min(88vw, 360px) !important;
  box-shadow: -20px 0 60px rgba(0, 0, 0, 0.18);
}

/* Top header row of drawer (logo / close X) */
html body .antra-mobile-nav .menu-header-mobile,
html body .antra-mobile-nav > .mobile-nav-head,
html body .antra-mobile-nav .mobile-menu-wrap-top {
  background: #F8F7F5 !important;
  padding: 20px 24px !important;
  border-bottom: 1px solid rgba(28, 28, 29, 0.08);
}

/* Replace "MAIN MENU" text with the ABC blue logo inside the drawer */
html body .antra-mobile-nav .mobile-nav-tabs {
  background-color: transparent !important;
  border-bottom: none !important;
  padding: 22px 24px 18px !important;
  position: relative;
  min-height: 96px;
  /* Blue ABC logo for the white drawer */
  background-image: url("http://localhost:8080/wp-content/uploads/2026/04/logo-ok-png.png") !important;
  background-repeat: no-repeat !important;
  background-position: 20px center !important;
  background-size: auto 48px !important;
}
/* Hide the original "MAIN MENU" text — the background image replaces it */
html body .antra-mobile-nav .mobile-nav-tabs span,
html body .antra-mobile-nav .mobile-nav-tabs button,
html body .antra-mobile-nav .mobile-nav-tabs a,
html body .antra-mobile-nav .menu-heading,
html body .antra-mobile-nav .tab-heading {
  font-size: 0 !important;
  color: transparent !important;
  line-height: 0 !important;
}
/* No accent line needed anymore */
html body .antra-mobile-nav .mobile-nav-tabs::after,
html body .antra-mobile-nav .menu-heading::after {
  display: none !important;
}

/* Close (X) button */
html body .antra-mobile-nav .close-mobile-menu,
html body .antra-mobile-nav [class*="close"],
html body .antra-mobile-nav .mobile-close-btn,
html body .close-mobile-menu-ic {
  color: #1C1C1D !important;
  background: rgba(28, 28, 29, 0.06) !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease;
}
html body .antra-mobile-nav .close-mobile-menu:hover,
html body .antra-mobile-nav [class*="close"]:hover {
  background: #CAA05C !important;
  color: #FFFFFF !important;
}

/* Menu items list */
html body .antra-mobile-nav .mobile-navigation,
html body .antra-mobile-nav .mobile-pages-menu,
html body .antra-mobile-nav ul.menu,
html body .antra-mobile-nav nav ul {
  padding: 0 !important;
  background: transparent !important;
}

/* Stronger dividers for clear section distinction */
html body .antra-mobile-nav .mobile-navigation li,
html body .antra-mobile-nav .mobile-pages-menu li,
html body .antra-mobile-nav ul.menu > li,
html body .antra-mobile-nav nav ul li {
  list-style: none !important;
  border-bottom: 1px solid rgba(28, 28, 29, 0.1) !important;
  margin: 0 !important;
}

html body .antra-mobile-nav .mobile-navigation li:last-child,
html body .antra-mobile-nav .mobile-pages-menu li:last-child,
html body .antra-mobile-nav ul.menu > li:last-child {
  border-bottom: none !important;
}

html body .antra-mobile-nav .mobile-navigation li a,
html body .antra-mobile-nav .mobile-pages-menu li a,
html body .antra-mobile-nav ul.menu > li > a,
html body .antra-mobile-nav nav ul li a {
  font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  color: #1C1C1D !important;
  padding: 18px 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 56px !important;
  transition: all 0.2s ease;
  position: relative;
  background: transparent;
}

/* Hover / active state — gold text + gold vertical bar on left */
html body .antra-mobile-nav .mobile-navigation li a:hover,
html body .antra-mobile-nav .mobile-navigation li.current-menu-item > a,
html body .antra-mobile-nav .mobile-pages-menu li a:hover,
html body .antra-mobile-nav ul.menu > li > a:hover,
html body .antra-mobile-nav ul.menu > li.current-menu-item > a {
  color: #CAA05C !important;
  background: rgba(202, 160, 92, 0.08) !important;
  padding-left: 28px !important;
}

html body .antra-mobile-nav .mobile-navigation li a::before,
html body .antra-mobile-nav .mobile-pages-menu li a::before,
html body .antra-mobile-nav ul.menu > li > a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) scaleY(0);
  width: 3px;
  height: 28px;
  background: #CAA05C;
  transition: transform 0.2s ease;
  transform-origin: center;
}

html body .antra-mobile-nav .mobile-navigation li a:hover::before,
html body .antra-mobile-nav .mobile-navigation li.current-menu-item > a::before,
html body .antra-mobile-nav ul.menu > li.current-menu-item > a::before,
html body .antra-mobile-nav ul.menu > li > a:hover::before {
  transform: translateY(-50%) scaleY(1);
}

/* Submenu arrow (the › next to SERVICES) */
html body .antra-mobile-nav .menu-item-has-children > a::after,
html body .antra-mobile-nav li.menu-item-has-children > a::after {
  content: '›';
  font-size: 22px;
  line-height: 1;
  color: #CAA05C;
  margin-left: 8px;
}

/* Submenu dropdown container */
html body .antra-mobile-nav .sub-menu,
html body .antra-mobile-nav ul.sub-menu {
  background: #F8F7F5 !important;
  padding: 0 !important;
  border-top: 1px solid rgba(28, 28, 29, 0.08) !important;
}

html body .antra-mobile-nav .sub-menu li a {
  padding: 14px 24px 14px 40px !important;
  font-size: 14px !important;
  color: rgba(28, 28, 29, 0.72) !important;
  min-height: 48px !important;
}

/* Bottom CTA area — phone, email, Get a quote button */
html body .antra-mobile-nav .menu-footer-mobile,
html body .antra-mobile-nav .mobile-nav-footer {
  padding: 24px !important;
  background: rgba(202, 160, 92, 0.04);
  border-top: 1px solid rgba(202, 160, 92, 0.2);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Inject a bottom CTA section using ::after on the drawer root
   (since the default drawer has no footer section we can edit) */
html body .antra-mobile-nav::after {
  content: '';
  display: block;
}

/* Dark backdrop when drawer is open */
html body .mobile-nav-active::before,
html body.mobile-nav-active::before,
html body .mobile-menu-overlay {
  background: rgba(28, 28, 29, 0.72) !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* ═══════════════════════════════════════════════════════════════
   BLUEPRINT GRID FOOTER (mobile only)
   Reference: architectural drawings — each section is a titled frame
   with an alphanumeric cartouche (A — 01 COMPANY, B — 02 NAVIGATE...).
   Monospace for technical data (phone/email), Good Times for cartouche
   labels, CSS counters for numbered menu items.
   ═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════
   MOBILE FOOTER — "Title Block" treatment (≤768px)
   One cohesive title block, not six stacked cartouche frames.
   Layout via CSS Grid on af5145f .e-con-inner:
     A: identity (logo + tagline + serving line)
     B: drawing index (NAVIGATE | SERVICES, 2 cols, hairline split)
     C: contact (phone + email, monospace, centered)
     D: follow (4 social icons horizontal)
     E: copyright + ABC watermark
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* 1. Hard reset Elementor's per-widget margins/padding (this is what
     created the 60-80px gaps between menu items and contact lines) */
  html body #colophon .elementor-widget {
    margin: 0 !important;
  }
  html body #colophon .elementor-widget > .elementor-widget-container {
    padding: 0 !important;
    margin: 0 !important;
  }
  html body #colophon .elementor-element-populated {
    padding: 0 !important;
    margin: 0 !important;
  }

  /* 2. Strip OLD cartouche frames + their ::after dividers + their
     ::before labels for sections we're not labeling on mobile. */
  html body #colophon [data-id="7a88aea"],
  html body #colophon [data-id="010b7a2"],
  html body #colophon [data-id="c979888"],
  html body #colophon [data-id="9e2737d"],
  html body #colophon [data-id="640aba9"],
  html body #colophon [data-id="707e44d"],
  html body #colophon [data-id="6159a13"],
  html body #colophon [data-id="a7c1aa9"] {
    border: 0 !important;
    background: transparent !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body #colophon [data-id="7a88aea"]::after,
  html body #colophon [data-id="010b7a2"]::after,
  html body #colophon [data-id="c979888"]::after,
  html body #colophon [data-id="9e2737d"]::after,
  html body #colophon [data-id="640aba9"]::after,
  html body #colophon [data-id="707e44d"]::after,
  html body #colophon [data-id="6159a13"]::after {
    display: none !important;
    content: none !important;
  }
  html body #colophon [data-id="7a88aea"]::before,
  html body #colophon [data-id="010b7a2"]::before,
  html body #colophon [data-id="640aba9"]::before,
  html body #colophon [data-id="707e44d"]::before {
    display: none !important;
    content: none !important;
  }

  /* 3. Outer wrapper — keep the subtle Blueprint Grid background */
  html body #colophon [data-id="6632dbf"] {
    background-color: #1C1C1D !important;
    background-image:
      linear-gradient(rgba(202, 160, 92, 0.04) 1px, transparent 1px),
      linear-gradient(90deg, rgba(202, 160, 92, 0.04) 1px, transparent 1px) !important;
    background-size: 40px 40px !important;
    padding: 0 !important;
  }

  /* 4. Title block grid — remap af5145f's 4 children into a 3-row mosaic */
  html body #colophon [data-id="af5145f"] > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "identity identity"
      "navigate services"
      "contact  contact";
    gap: 0 !important;
    padding: 36px 24px 0 !important;
    margin: 0 !important;
    width: 100% !important;
  }
  html body #colophon [data-id="a7c1aa9"]  { grid-area: identity; }
  html body #colophon [data-id="c979888"]  { grid-area: navigate; }
  html body #colophon [data-id="9e2737d"]  { grid-area: services; }
  html body #colophon [data-id="6159a13"]  { grid-area: contact;  }

  /* ROW A: identity (logo + tagline + serving line) */
  html body #colophon [data-id="a7c1aa9"] {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 14px !important;
    padding: 0 0 28px !important;
    border-bottom: 1px solid rgba(202, 160, 92, 0.18) !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  html body #colophon [data-id="abc_flogo_04f9829"] img {
    max-width: 188px !important;
    width: auto !important;
    height: auto !important;
    margin: 0 auto !important;
  }
  html body #colophon [data-id="7a88aea"] .elementor-heading-title {
    font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: rgba(248, 247, 245, 0.92) !important;
    max-width: 240px;
    margin: 0 auto !important;
    text-align: center !important;
  }
  html body #colophon [data-id="010b7a2"] {
    width: 100%;
  }
  html body #colophon [data-id="010b7a2"] p,
  html body #colophon [data-id="010b7a2"] .elementor-widget-container > * {
    font-family: 'Golos Text', system-ui, sans-serif !important;
    font-size: 11px !important;
    line-height: 1.6 !important;
    color: rgba(248, 247, 245, 0.5) !important;
    margin: 0 !important;
    text-align: center !important;
  }

  /* ROW B: drawing index — NAVIGATE | SERVICES with vertical hairline */
  html body #colophon [data-id="c979888"],
  html body #colophon [data-id="9e2737d"] {
    display: flex !important;
    flex-direction: column !important;
    padding: 28px 0 28px !important;
    min-width: 0 !important;
    border-bottom: 1px solid rgba(202, 160, 92, 0.18) !important;
  }
  html body #colophon [data-id="c979888"] {
    padding-right: 18px !important;
  }
  html body #colophon [data-id="9e2737d"] {
    padding-left: 18px !important;
    border-left: 1px solid rgba(202, 160, 92, 0.18) !important;
  }
  html body #colophon [data-id="c979888"]::before,
  html body #colophon [data-id="9e2737d"]::before {
    display: block !important;
    position: static !important;
    font-family: 'Good Times', 'Cal Sans', monospace !important;
    font-size: 9px !important;
    font-weight: 400 !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    color: #CAA05C !important;
    line-height: 1.2 !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    z-index: auto !important;
    order: -1 !important;
    top: auto !important;
    left: auto !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    flex-shrink: 0 !important;
  }
  html body #colophon [data-id="c979888"]::before { content: '01 \2014  MENU' !important; }
  html body #colophon [data-id="9e2737d"]::before { content: '02 \2014  WORK' !important; }

  /* Force the icon-list widgets (8d6a090 / 175ead9) to full width and
     left alignment on mobile — Elementor adds elementor-mobile-align-center
     by default which centers everything. */
  html body #colophon [data-id="c979888"] .elementor-widget-icon-list,
  html body #colophon [data-id="9e2737d"] .elementor-widget-icon-list,
  html body #colophon [data-id="c979888"] .elementor-widget-icon-list > .elementor-widget-container,
  html body #colophon [data-id="9e2737d"] .elementor-widget-icon-list > .elementor-widget-container {
    width: 100% !important;
    text-align: left !important;
    display: block !important;
  }
  /* Menu items — tight, 9px gap between rows, no per-item margin */
  html body #colophon [data-id="c979888"] .elementor-icon-list-items,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-items {
    display: flex !important;
    flex-direction: column !important;
    gap: 9px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: none !important;
    width: 100% !important;
    min-width: 100% !important;
    align-self: stretch !important;
    text-align: left !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-item,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-item {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    counter-increment: none !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-item a,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-item a {
    font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    color: rgba(248, 247, 245, 0.82) !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    height: auto !important;
    transition: color 0.18s ease, transform 0.18s ease;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    justify-content: flex-start !important;
    text-align: left !important;
    width: 100% !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-item a:hover,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-item a:hover,
  html body #colophon [data-id="c979888"] .elementor-icon-list-item a:focus-visible,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-item a:focus-visible {
    color: #CAA05C !important;
    transform: translateX(2px);
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-text,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-text {
    font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(248, 247, 245, 0.82) !important;
    display: inline !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-icon,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-icon {
    display: none !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-text::before,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-text::before {
    display: none !important;
    content: none !important;
  }

  /* ROW C + D: contact + follow (stacked inside 6159a13) */
  html body #colophon [data-id="6159a13"] {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body #colophon [data-id="6159a13"] > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
  }

  /* ROW C: contact */
  html body #colophon [data-id="640aba9"] {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 24px 0 22px !important;
    border-bottom: 1px solid rgba(202, 160, 92, 0.18) !important;
    width: 100% !important;
    text-align: center !important;
  }
  html body #colophon [data-id="640aba9"] > .e-con-inner {
    display: contents;
  }
  html body #colophon [data-id="e06bb3b"],
  html body #colophon [data-id="eefee01"] {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    text-align: center !important;
  }
  html body #colophon [data-id="e06bb3b"] .elementor-heading-title,
  html body #colophon [data-id="e06bb3b"] .elementor-heading-title a {
    font-family: ui-monospace, 'SFMono-Regular', 'Cascadia Code', 'Roboto Mono', Menlo, Monaco, Consolas, monospace !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    color: #CAA05C !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    margin: 0 !important;
  }
  html body #colophon [data-id="eefee01"] .elementor-heading-title,
  html body #colophon [data-id="eefee01"] .elementor-heading-title a {
    font-family: ui-monospace, 'SFMono-Regular', 'Cascadia Code', 'Roboto Mono', Menlo, Monaco, Consolas, monospace !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
    color: rgba(248, 247, 245, 0.72) !important;
    text-decoration: none !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    margin: 0 !important;
  }

  /* ROW D: follow — bulletproof horizontal social icons */
  html body #colophon [data-id="707e44d"] {
    padding: 22px 0 26px !important;
    margin: 0 !important;
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }
  html body #colophon [data-id="707e44d"] > .elementor-widget-container {
    display: flex !important;
    justify-content: center !important;
    width: 100%;
  }
  html body #colophon [data-id="707e44d"] .elementor-icon-list-items {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    width: auto !important;
    min-width: calc(4 * 42px + 3 * 14px) !important;
  }
  html body #colophon [data-id="707e44d"] .elementor-icon-list-item {
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
  }
  html body #colophon [data-id="707e44d"] .elementor-icon-list-item a {
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    border: 1px solid rgba(202, 160, 92, 0.5) !important;
    color: #CAA05C !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.18s ease;
    padding: 0 !important;
    margin: 0 !important;
    text-decoration: none !important;
    background: transparent !important;
    overflow: hidden;
  }
  html body #colophon [data-id="707e44d"] .elementor-icon-list-item a:hover,
  html body #colophon [data-id="707e44d"] .elementor-icon-list-item a:focus-visible {
    background: #CAA05C !important;
    color: #1C1C1D !important;
    border-color: #CAA05C !important;
  }
  html body #colophon [data-id="707e44d"] .elementor-icon-list-text {
    font-size: 0 !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    clip: rect(0 0 0 0);
    white-space: nowrap !important;
  }

  /* ROW E: copyright */
  html body #colophon [data-id="6705f8e"] {
    padding: 18px 24px 22px !important;
    margin: 0 !important;
    border-top: 1px solid rgba(202, 160, 92, 0.10) !important;
    background: transparent !important;
  }
  html body #colophon [data-id="6705f8e"] p,
  html body #colophon [data-id="b33d3c1"] p,
  html body #colophon [data-id="b33d3c1"] .elementor-widget-container > * {
    font-family: ui-monospace, 'SFMono-Regular', 'Cascadia Code', 'Roboto Mono', Menlo, Monaco, Consolas, monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.06em !important;
    color: rgba(202, 160, 92, 0.42) !important;
    text-align: center !important;
    margin: 0 !important;
    line-height: 1.5 !important;
  }

  /* ABC watermark — keep but cap size + opacity on mobile */
  html body #colophon [data-id="62507a3"] {
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
  }
  html body #colophon [data-id="62507a3"] .elementor-heading-title {
    font-size: clamp(20px, 6.5vw, 52px) !important;
    line-height: 1 !important;
    color: rgba(248, 247, 245, 0.035) !important;
    text-align: center !important;
    letter-spacing: -0.02em !important;
    margin: 0 !important;
  }

  /* Cleanup any leftover per-element padding from the previous design */
  html body #colophon .elementor-element-8ca2535,
  html body #colophon .elementor-element-6632dbf,
  html body #colophon .elementor-element-af5145f,
  html body #colophon .elementor-element-a7c1aa9 {
    padding: 0 !important;
  }
}
/* ── End title-block mobile footer. The old cartouche/social-icon
   rules that lived here have been removed. SVG mask-images for the
   social icons are defined in the unscoped block at the end of this
   file (search for "Social list — outlined circle buttons"). ── */

/* Service detail hero — more vertical presence */
@media (max-width: 768px) {
  .abc-service-hero {
    min-height: 320px !important;
    padding: 64px 0 56px !important;
  }
  .abc-service-hero__title {
    font-size: clamp(40px, 10vw, 64px) !important;
    line-height: 1.05 !important;
  }
  .abc-service-hero__inner {
    padding: 0 20px !important;
  }
}
@media (min-width: 769px) {
  .abc-service-hero {
    min-height: 480px !important;
    padding: 100px 0 90px !important;
  }
  .abc-service-hero__title {
    font-size: clamp(56px, 6.5vw, 96px) !important;
    line-height: 1.05 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   EXPERIMENTAL — /services/ (page-id 9225) dark blueprint background.
   SAFE TO REMOVE: delete this entire block to revert instantly.
   Backup: style.css.backup-before-bg-test (same folder).
   ═══════════════════════════════════════════════════════════════════ */

/* Hero section + Structured approach section */
body.page-id-9225 [data-id="12b6bd6"],
body.page-id-9225 [data-id="96bc661"] {
  background-color: #1C1C1D !important;
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.13) 1px, transparent 1px) !important;
  background-size: 40px 40px !important;
  color: #F8F7F5;
  /* Convert margins to padding so dark bg extends */
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

/* Tighten the internal e-con-inner so content doesn't get extra margin */
body.page-id-9225 [data-id="12b6bd6"] > .e-con-inner,
body.page-id-9225 [data-id="96bc661"] > .e-con-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Text/headings on the dark sections — force light colors */
body.page-id-9225 [data-id="12b6bd6"] .elementor-heading-title,
body.page-id-9225 [data-id="12b6bd6"] p,
body.page-id-9225 [data-id="12b6bd6"] .elementor-widget-text-editor,
body.page-id-9225 [data-id="96bc661"] .elementor-heading-title,
body.page-id-9225 [data-id="96bc661"] p,
body.page-id-9225 [data-id="96bc661"] .elementor-widget-text-editor {
  color: #F8F7F5 !important;
}

/* Keep the gold accent spans gold */
body.page-id-9225 [data-id="12b6bd6"] .c-primary,
body.page-id-9225 [data-id="96bc661"] .c-primary {
  color: #CAA05C !important;
}

/* Accordion items — darker bg with hairline gold borders so they stand
   out on the blueprint grid without looking glued-on */
body.page-id-9225 [data-id="12b6bd6"] .antra-accordion-item,
body.page-id-9225 [data-id="12b6bd6"] .elementor-accordion-item {
  background: rgba(28, 28, 29, 0.6) !important;
  border: 1px solid rgba(202, 160, 92, 0.18) !important;
  border-radius: 0 !important;
  backdrop-filter: blur(2px);
}

/* Large ABC watermark — 30% opacity white, bring to FRONT (above kitchen
   image) with high z-index + mix-blend for a nice contrast pop. */
body.page-id-9225 [data-id="a919fe3"] {
  position: relative !important;
  z-index: 10 !important;
  pointer-events: none;
}
body.page-id-9225 [data-id="a919fe3"] .elementor-heading-title {
  color: rgba(248, 247, 245, 0.30) !important;
  mix-blend-mode: difference;
  position: relative;
  z-index: 10;
}

/* Services accordion — fix inactive item titles that were dark on dark bg */
body.page-id-9225 .antra-service-item-titles .service-title {
  color: rgba(248, 247, 245, 0.72) !important;
  transition: color 0.2s ease;
}
body.page-id-9225 .antra-service-item-titles.show .service-title,
body.page-id-9225 .antra-service-item-titles.active .service-title,
body.page-id-9225 .antra-service-item-titles:hover .service-title {
  color: #CAA05C !important;
}
/* Service index numbers (01, 02...) — keep the inactive ones subtle */
body.page-id-9225 .antra-service-item-titles .service-index-item {
  color: rgba(248, 247, 245, 0.4) !important;
}
body.page-id-9225 .antra-service-item-titles.show .service-index-item,
body.page-id-9225 .antra-service-item-titles.active .service-index-item {
  color: #CAA05C !important;
}
/* Dividers between items → gold hairline instead of default */
body.page-id-9225 .antra-service-item-titles {
  border-bottom: 1px solid rgba(202, 160, 92, 0.15) !important;
}

/* Force heading "A structured approach that sets us apart" visible — the
   black text span inside was inheriting the dark kit color. */
body.page-id-9225 [data-id="96bc661"] .elementor-heading-title,
body.page-id-9225 [data-id="96bc661"] .elementor-heading-title span:not(.c-primary) {
  color: #F8F7F5 !important;
}

/* Progress bar labels + numbers → light on dark bg, with breathing room */
body.page-id-9225 [data-id="96bc661"] .elementor-progress-bar,
body.page-id-9225 [data-id="96bc661"] .elementor-progress-percentage,
body.page-id-9225 [data-id="96bc661"] .elementor-title {
  color: #F8F7F5 !important;
}
body.page-id-9225 [data-id="96bc661"] .elementor-progress-wrapper {
  background: rgba(248, 247, 245, 0.12) !important;
  height: 3px !important;
}
body.page-id-9225 [data-id="96bc661"] .elementor-widget-progress {
  margin-bottom: 28px !important;
}
body.page-id-9225 [data-id="96bc661"] .elementor-title {
  font-size: 14px !important;
  letter-spacing: 0.1em !important;
  margin-bottom: 10px !important;
}

/* Breathing room between the section heading, description and progress bars */
body.page-id-9225 [data-id="96bc661"] .elementor-widget-heading {
  margin-bottom: 24px !important;
}
body.page-id-9225 [data-id="96bc661"] .elementor-widget-text-editor {
  margin-bottom: 40px !important;
  line-height: 1.7 !important;
}

/* "OUR SERVICES" pill (and any eyebrow icon-list-text in dark sections)
   was inheriting dark kit color — force gold so it shows on dark bg. */
body.page-id-9225 [data-id="12b6bd6"] .elementor-icon-list-text,
body.page-id-9225 [data-id="96bc661"] .elementor-icon-list-text {
  color: #CAA05C !important;
}

/* ═══════════════════════════════════════════════════════════════
   FOOTER CTA — triple action buttons (Call / Text / WhatsApp)
   Replaces the low-conversion newsletter block. Each button fires
   a native action directly (tel:, sms:, wa.me/) — no forms, no
   email friction. Optimized for mobile contact.
   ═══════════════════════════════════════════════════════════════ */

.abc-footer-cta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 420px;
  margin: 0 auto;
  padding: 8px 0;
}

/* Desktop: horizontal row — 3 buttons side by side */
@media (min-width: 769px) {
  .abc-footer-cta {
    flex-direction: row;
    max-width: 780px;
    gap: 14px;
    padding: 0;
  }
  .abc-footer-cta__btn {
    flex: 1 1 0;
    min-width: 0;
    min-height: 72px;
  }
}

/* Tighter heading in the CTA section on desktop — currently inheriting
   the giant page heading size. Reduce so "Let's start your project?"
   fits on 1-2 lines with the buttons sitting right below. */
@media (min-width: 769px) {
  html body #colophon .elementor-element-8ca2535 h2.elementor-heading-title,
  html body #colophon [data-id="cfdbe7f"] .elementor-heading-title {
    font-size: clamp(32px, 3.2vw, 44px) !important;
    line-height: 1.15 !important;
    margin-bottom: 24px !important;
    letter-spacing: 0.02em !important;
  }
}

/* Tighten the CTA section vertical rhythm — heading closer to buttons */
html body #colophon .elementor-element-8ca2535 {
  padding-top: 56px !important;
  padding-bottom: 56px !important;
}
html body #colophon [data-id="cfdbe7f"] {
  margin-bottom: 4px !important;
}

.abc-footer-cta__btn {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 16px 22px 14px 64px;
  border: 1px solid rgba(202, 160, 92, 0.35);
  border-radius: 14px;
  background: rgba(202, 160, 92, 0.04);
  color: #F8F7F5 !important;
  text-decoration: none !important;
  font-family: 'Cal Sans', 'Golos Text', sans-serif;
  transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden;
  min-height: 64px;
}

.abc-footer-cta__btn::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 0;
  background: #CAA05C;
  transition: height 0.3s ease;
}

.abc-footer-cta__btn:hover,
.abc-footer-cta__btn:focus {
  border-color: #CAA05C;
  background: rgba(202, 160, 92, 0.12);
  transform: translateX(4px);
  color: #FFFFFF !important;
}

.abc-footer-cta__btn:hover::before {
  height: 100%;
}

/* Primary button (Call) — gold solid */
.abc-footer-cta__btn--primary {
  background: #CAA05C !important;
  border-color: #CAA05C !important;
  color: #1C1C1D !important;
}

.abc-footer-cta__btn--primary:hover {
  background: #E8C082 !important;
  border-color: #E8C082 !important;
  color: #1C1C1D !important;
}

/* Icon — SVG mask, positioned left */
.abc-footer-cta__icon {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 26px;
  height: 26px;
  background-color: currentColor;
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-position: center;
  -webkit-mask-position: center;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  opacity: 0.9;
}

.abc-footer-cta__icon--phone {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 15.5c-1.25 0-2.45-.2-3.57-.57a1 1 0 0 0-1.02.24l-2.2 2.2a15.1 15.1 0 0 1-6.58-6.59l2.2-2.21c.27-.27.35-.66.24-1.01A11.36 11.36 0 0 1 8.5 4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1 17 17 0 0 0 17 17 1 1 0 0 0 1-1v-3.5a1 1 0 0 0-1-1z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 15.5c-1.25 0-2.45-.2-3.57-.57a1 1 0 0 0-1.02.24l-2.2 2.2a15.1 15.1 0 0 1-6.58-6.59l2.2-2.21c.27-.27.35-.66.24-1.01A11.36 11.36 0 0 1 8.5 4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1 17 17 0 0 0 17 17 1 1 0 0 0 1-1v-3.5a1 1 0 0 0-1-1z'/%3E%3C/svg%3E");
}

.abc-footer-cta__icon--sms {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM7 9h10v2H7V9zm7 4H7v-2h7v2zm3-6H7V5h10v2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM7 9h10v2H7V9zm7 4H7v-2h7v2zm3-6H7V5h10v2z'/%3E%3C/svg%3E");
}

.abc-footer-cta__icon--whatsapp {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413Z'/%3E%3C/svg%3E");
}

.abc-footer-cta__label {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
}

.abc-footer-cta__sub {
  font-size: 12px;
  font-weight: 400;
  opacity: 0.72;
  letter-spacing: 0.02em;
}

/* Primary (Call) — sub text darker gold-on-gold for contrast */
.abc-footer-cta__btn--primary .abc-footer-cta__sub {
  opacity: 0.88;
  color: #1C1C1D;
}

/* CSS backup: force-hide the pill, heading, subtitle in the CTA block */
html body .abc-cta-hide { display: none !important; }

/* ═══════════════════════════════════════════════════════════════
   FEATURE CARDS on home — ORIGINAL layout (icon + heading side-by-side).
   Only adjustments: heading font-size fits inside card, tighter
   vertical spacing. Do NOT restyle the icon widget (let Antra's
   original SVG/shape render as-is).
   ═══════════════════════════════════════════════════════════════ */

/* Card titles: larger sans-serif sentence-case (match reference) */
html body.home .elementor-element.e-con-full.e-flex.e-child:has(.elementor-widget-icon.elementor-view-default) .elementor-widget-heading .elementor-heading-title {
  font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
  font-size: clamp(26px, 2.4vw, 36px) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  color: #1C1C1D !important;
  position: relative;
  z-index: 2;  /* text above icon */
}

/* Move decorative icons BEHIND the heading text */
html body.home .elementor-element.e-con-full.e-flex.e-child > .e-con:has(> .elementor-widget-icon.elementor-view-default) {
  z-index: 1;
}
html body.home .elementor-widget-icon.elementor-view-default {
  opacity: 0.55;
}
html body.home .elementor-widget-icon.elementor-view-default .elementor-icon {
  position: relative;
  z-index: 1;  /* below text (z-index 2) */
}
html body.home .elementor-element.e-con-full.e-flex.e-child:has(.elementor-widget-icon.elementor-view-default) .elementor-widget-heading {
  position: relative;
  z-index: 2;  /* text above icon */
}

/* Tighten card vertical rhythm: remove the huge 60px margin-bottom
   between heading row and divider/description */
html body.home .elementor-element.e-con-full.e-flex.e-child:has(.elementor-widget-icon.elementor-view-default):has(.elementor-widget-heading) {
  margin-bottom: 12px !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

/* ═══════════════════════════════════════════════════════════════
   RECENT PROJECTS — convert the 3-col grid into a horizontal
   scroll carousel (works on desktop AND mobile with swipe support
   via scroll-snap + overflow-x). Preserves all existing cards
   (pill tag + image + title + location + year) from the Antra
   project widget without editing Elementor data.
   ═══════════════════════════════════════════════════════════════ */

/* The grid ul (6 project items inside) becomes a horizontal scroll row */
html body ul.antra-project.antra-list-wrapper {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  grid-template-columns: none !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  gap: 24px;
  padding: 8px 4px 24px;
  scrollbar-width: none;  /* Firefox */
}
html body ul.antra-project.antra-list-wrapper::-webkit-scrollbar {
  display: none;  /* WebKit */
}

/* Each project card = one slide */
html body ul.antra-project.antra-list-wrapper > li.antra-item,
html body ul.antra-project.antra-list-wrapper > li.project {
  flex: 0 0 calc((100% - 48px) / 3);  /* 3 cards per view on desktop */
  scroll-snap-align: start;
  min-width: 0;
  margin: 0 !important;
}

/* Tablet: 2 per view */
@media (max-width: 1024px) {
  html body ul.antra-project.antra-list-wrapper > li.antra-item,
  html body ul.antra-project.antra-list-wrapper > li.project {
    flex: 0 0 calc((100% - 24px) / 2);
  }
}

/* Mobile: 1 per view (slightly visible next) */
@media (max-width: 640px) {
  html body ul.antra-project.antra-list-wrapper {
    gap: 16px;
    padding: 8px 16px 20px;
  }
  html body ul.antra-project.antra-list-wrapper > li.antra-item,
  html body ul.antra-project.antra-list-wrapper > li.project {
    flex: 0 0 85%;
  }
}

/* Projects section — dark bg + blueprint grid + white text */
html body.home [data-id="1bcdd25"] {
  background-color: #1C1C1D !important;
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.08) 1px, transparent 1px) !important;
  background-size: 40px 40px !important;
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

/* Invert heading + text to white on the dark bg */
html body.home [data-id="1bcdd25"] .elementor-heading-title,
html body.home [data-id="1bcdd25"] .elementor-heading-title span:not(.c-primary),
html body.home [data-id="1bcdd25"] p,
html body.home [data-id="1bcdd25"] .elementor-widget-text-editor {
  color: #F8F7F5 !important;
}
html body.home [data-id="1bcdd25"] .elementor-heading-title .c-primary {
  color: #CAA05C !important;
}

/* Project card titles + meta on dark bg */
html body.home [data-id="1bcdd25"] .antra-item .project-title,
html body.home [data-id="1bcdd25"] .antra-item h1,
html body.home [data-id="1bcdd25"] .antra-item h2,
html body.home [data-id="1bcdd25"] .antra-item h3,
html body.home [data-id="1bcdd25"] .antra-item h4,
html body.home [data-id="1bcdd25"] .antra-item h5,
html body.home [data-id="1bcdd25"] .antra-item a {
  color: #F8F7F5 !important;
}
html body.home [data-id="1bcdd25"] .antra-item .project-meta,
html body.home [data-id="1bcdd25"] .antra-item .meta,
html body.home [data-id="1bcdd25"] .antra-item [class*="meta"] {
  color: rgba(248, 247, 245, 0.65) !important;
}

/* Slider — visible hint "swipe for more" with arrow + gold track bar */
html body.home [data-id="1bcdd25"] .elementor-widget-container:has(ul.antra-project.antra-list-wrapper) {
  position: relative;
}

/* Fade edge right = indicates more content to scroll */
@media (min-width: 1025px) {
  html body.home [data-id="1bcdd25"] .elementor-widget-container:has(ul.antra-project.antra-list-wrapper)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    height: calc(100% - 40px);
    width: 120px;
    background: linear-gradient(to left, #1C1C1D, transparent);
    pointer-events: none;
    z-index: 2;
  }
}

/* Hide scrollbar — auto-play handles the movement */
html body.home ul.antra-project.antra-list-wrapper {
  scrollbar-width: none !important;
}
html body.home ul.antra-project.antra-list-wrapper::-webkit-scrollbar {
  display: none !important;
}

/* No swipe hint — the carousel auto-plays so the user doesn't need to scroll */

/* ═══════════════════════════════════════════════════════════════
   Service detail page — sticky sidebar on desktop so user can
   click subcategories while scrolling the main content.
   Sidebar (1309f58) contains the grouped services list + Need Help card.
   ═══════════════════════════════════════════════════════════════ */
@media (min-width: 1024px) {
  body.single-service [data-id="1309f58"] {
    /* No sticky: the sidebar is too tall for viewport and sticky would
       scroll its top items out of view as the page scrolls. Static flow
       keeps all items accessible — user scrolls naturally to see them. */
    align-self: flex-start;
  }

  /* Compact the grouped service list so it takes less vertical space */
  body.single-service .widget_abc_grouped_service_list .abc-gs-group {
    margin-bottom: 14px !important;
  }
  body.single-service .widget_abc_grouped_service_list .abc-gs-group__label {
    padding: 8px 24px 8px 0 !important;
    font-size: 11px !important;
    letter-spacing: 0.2em !important;
    margin-bottom: 4px !important;
  }
  body.single-service .widget_abc_grouped_service_list .abc-gs-item {
    margin: 0 !important;
  }
  body.single-service .widget_abc_grouped_service_list .abc-gs-item a {
    padding: 6px 0 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
  }
  body.single-service .widget_abc_grouped_service_list .abc-gs-title {
    font-size: 14px !important;
  }
}

/* Chevron ▼ next to any header menu item that has a submenu
   (indicates dropdown available). Desktop only. */
@media (min-width: 769px) {
  html body .site-header .main-menu li.menu-item-has-children > a::after,
  html body .site-header nav li.menu-item-has-children > a::after,
  html body .elementor-nav-menu li.menu-item-has-children > a::after,
  html body header li.menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    border-right: 2px solid #CAA05C;
    border-bottom: 2px solid #CAA05C;
    transform: rotate(45deg);
    margin-left: 10px;
    margin-bottom: 5px;
    opacity: 0.9;
    transition: transform 0.25s ease, opacity 0.25s ease;
    vertical-align: middle;
  }
  html body .site-header li.menu-item-has-children:hover > a::after {
    transform: rotate(-135deg) translateY(2px);
    opacity: 1;
  }
}

/* Chevron ▾ next to each group label to show the sub-items are
   expanded / visible beneath it. */
.widget_abc_grouped_service_list .abc-gs-group__label {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  padding-right: 24px !important;
}
.widget_abc_grouped_service_list .abc-gs-group__label::after {
  content: '';
  display: inline-block;
  width: 10px;
  height: 10px;
  border-right: 1.5px solid #CAA05C;
  border-bottom: 1.5px solid #CAA05C;
  transform: rotate(45deg) translateY(-2px);
  margin-left: 8px;
  opacity: 0.75;
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.widget_abc_grouped_service_list .abc-gs-group:hover .abc-gs-group__label::after {
  opacity: 1;
  transform: rotate(45deg) translateY(1px);
}

/* "OUR PROJECTS" pill label — white on dark bg */
html body.home [data-id="1bcdd25"] .elementor-icon-list-text,
html body.home [data-id="1bcdd25"] .antra-heading-sub,
html body.home [data-id="1bcdd25"] .antra-heading-subtitle,
html body.home [data-id="1bcdd25"] [class*="sub-title"],
html body.home [data-id="1bcdd25"] [class*="subtitle"],
html body [data-id="3d8369d"],
html body [data-id="3d8369d"] * {
  color: #F8F7F5 !important;
}

/* Project card meta (title, location, year) — force white/cream */
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item .project-info,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item .project-content,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item .project-bottom,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item a,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item h1,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item h2,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item h3,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item h4,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item h5,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item h6 {
  color: #FFFFFF !important;
}
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item .project-category,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item .category,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item [class*="category"] a {
  color: #1C1C1D !important;  /* keep pill tag text dark on gold bg */
}
/* All plain text spans, p tags inside cards */
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item p,
html body.home [data-id="1bcdd25"] ul.antra-project li.antra-item span:not([class*="category"]) {
  color: rgba(248, 247, 245, 0.75) !important;
}
html body.home .elementor-element.e-con-full.e-flex.e-child .elementor-widget-divider {
  margin-top: 14px !important;
  margin-bottom: 14px !important;
}
html body.home .elementor-element.e-con-full.e-flex.e-child .elementor-widget-text-editor p {
  margin: 0 !important;
  line-height: 1.55;
}

html body .elementor-widget-icon-box.elementor-position-inline-start,
html body .elementor-widget-icon-box.elementor-view-stacked {
  position: relative;
}

html body .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-wrapper {
  display: block !important;
  text-align: left !important;
  padding-right: 68px;   /* reserve space so heading never sits under the corner icon */
  position: relative;
}

html body .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-icon {
  position: absolute !important;
  top: 0;
  right: 0;
  margin: 0 !important;
  flex: 0 0 auto !important;
  z-index: 1 !important;
  opacity: 0.35;
  pointer-events: none;
}

html body .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon {
  width: 56px !important;
  height: 56px !important;
  background: transparent !important;
  border: 1px solid rgba(202, 160, 92, 0.25) !important;
  border-radius: 50%;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  color: #CAA05C !important;
}

html body .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-content {
  position: relative;
  z-index: 2;
  width: 100%;
}

html body .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  font-size: clamp(20px, 2vw, 26px) !important;
  line-height: 1.15 !important;
  letter-spacing: 0.02em !important;
  color: #1C1C1D !important;
  margin-bottom: 0 !important;
  text-transform: uppercase;
}

html body .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-description {
  font-family: 'Golos Text', 'Lato', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: rgba(28, 28, 29, 0.72) !important;
  margin-top: 28px !important;
  padding-top: 28px !important;
  border-top: 1px solid rgba(28, 28, 29, 0.1);
}

/* Hover: icon lifts to full brightness + slight scale */
html body .elementor-widget-icon-box.elementor-position-inline-start:hover .elementor-icon-box-icon {
  opacity: 0.9;
  transform: scale(1.06) translate(-2px, 2px);
  transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

html body .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-icon {
  transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* On service detail pages the card ALREADY has the premium styling
   from earlier rules — keep icons visible there (not at 0.35 opacity). */
body.single-service .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-icon {
  opacity: 1 !important;
  position: static !important;
  margin-bottom: 16px !important;
  margin-right: 0 !important;
}
body.single-service .elementor-widget-icon-box.elementor-position-inline-start .elementor-icon-box-wrapper {
  padding-right: 0;
}

/* ═══════════════════════════════════════════════════════════════
   DESKTOP FOOTER — fix CONTACT frame content overflowing right.
   Mobile rules were leaking into desktop: margin-left/right: auto
   + width: 100% pushed content outside the Blueprint cartouche
   frame. Override on desktop so content sits INSIDE the frame.
   ═══════════════════════════════════════════════════════════════ */
@media (min-width: 769px) {
  html body #colophon .elementor-element-640aba9,
  html body #colophon .elementor-element-6159a13 {
    width: auto !important;
    max-width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
    align-items: center !important;
    text-align: center !important;
  }
  /* Let the Blueprint frame on these widgets sit at its natural size */
  html body #colophon [data-id="640aba9"],
  html body #colophon [data-id="707e44d"] {
    padding-left: 28px !important;
    padding-right: 28px !important;
  }
  /* Heading above the CTA (Let's start your project!) — tighter */
  html body #colophon .elementor-element-8ca2535 h2.elementor-heading-title,
  html body #colophon [data-id="cfdbe7f"] .elementor-heading-title {
    font-size: clamp(32px, 3.2vw, 44px) !important;
    line-height: 1.15 !important;
    margin-bottom: 28px !important;
    letter-spacing: 0.02em !important;
  }
  html body #colophon .elementor-element-8ca2535 {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }
}

/* ═══ END EXPERIMENTAL ═══ */

/* ═══════════════════════════════════════════════════════════════
   PERMANENT FIX (global): force Antra mobile drawer off-screen
   entirely when closed. Root cause: Antra theme sets
   transform:translateX(-330px) on .antra-mobile-nav, but drawer
   width is 360px — the leftover 30px leaks into the viewport at
   the left edge, exposing children (dropdown-toggle, close button,
   menu items). This shows up as a thin white/dark strip on both
   mobile AND desktop. Force -100% so drawer is always fully out
   of viewport until `html.mobile-nav-active` adds transform:none.
   ═══════════════════════════════════════════════════════════════ */

/* Default closed state — fully offscreen, regardless of viewport */
html body .antra-mobile-nav:not(.is-open),
html:not(.mobile-nav-active) body .antra-mobile-nav {
  transform: translateX(-100%) !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Open state (user clicked hamburger) — slide in */
html.mobile-nav-active body .antra-mobile-nav,
html body .antra-mobile-nav.is-open {
  transform: translateX(0) !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Desktop: drawer + its children never render (saves DOM cost) */
@media (min-width: 769px) {
  html body .antra-mobile-nav,
  html body .menu-scroll-mobile,
  html body .mobile-menu-tab,
  html body .handheld-navigation,
  html body .dropdown-toggle,
  html body .mobile-navigation .dropdown-toggle,
  html body .antra-mobile-nav .dropdown-toggle,
  html body a.mobile-nav-close,
  html body .mobile-nav-overlay,
  html body .mobile-menu-overlay {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   SERVICE DETAIL PAGES (body.single-service)
   Base styling inherited by all 22 service pages. Features:
   - Icon-boxes become premium cards with gold hover
   - Icon-list checkmarks align in 2-col grid
   - Hairline dividers between sections
   - Optional cartouche labels (blueprint identity)
   ═══════════════════════════════════════════════════════════════ */

/* 1. ICON-BOXES → premium cards with gold outline + hover lift */
body.single-service .elementor-widget-icon-box {
  background: #FFFFFF;
  border: 1px solid rgba(28, 28, 29, 0.08);
  border-radius: 16px;
  padding: 28px 24px;
  transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: 0 2px 12px rgba(28, 28, 29, 0.04);
  position: relative;
  overflow: hidden;
}
body.single-service .elementor-widget-icon-box::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 0;
  background: #CAA05C;
  transition: height 0.35s ease;
}
body.single-service .elementor-widget-icon-box:hover {
  transform: translateY(-4px);
  border-color: rgba(202, 160, 92, 0.35);
  box-shadow: 0 14px 40px rgba(28, 28, 29, 0.10);
}
body.single-service .elementor-widget-icon-box:hover::before {
  height: 100%;
}

/* Icon-box icon — gold circle outline */
body.single-service .elementor-widget-icon-box .elementor-icon {
  background: rgba(202, 160, 92, 0.12) !important;
  border: 1px solid rgba(202, 160, 92, 0.35) !important;
  color: #CAA05C !important;
  width: 56px !important;
  height: 56px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  transition: all 0.35s ease;
}
body.single-service .elementor-widget-icon-box:hover .elementor-icon {
  background: #CAA05C !important;
  color: #FFFFFF !important;
  transform: rotate(-5deg) scale(1.05);
}

/* Icon-box heading */
body.single-service .elementor-widget-icon-box .elementor-icon-box-title {
  font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  color: #1C1C1D !important;
  margin-bottom: 8px !important;
}

/* Icon-box description */
body.single-service .elementor-widget-icon-box .elementor-icon-box-description {
  font-family: 'Golos Text', 'Lato', sans-serif !important;
  font-size: 14px !important;
  color: rgba(28, 28, 29, 0.7) !important;
  line-height: 1.55 !important;
}

/* 2. ICON-LIST checkmark bullets → single column, left-aligned.
   Force text-align: left + justify-content: flex-start on the WIDGET
   so every checkmark icon sits at the same X coordinate, regardless
   of item text length. */
body.single-service .elementor-widget-icon-list,
body.single-service .elementor-widget-icon-list .elementor-widget-container {
  text-align: left !important;
}
body.single-service .elementor-widget-icon-list .elementor-icon-list-items {
  display: flex !important;
  flex-direction: column;
  gap: 14px;
  list-style: none;
  text-align: left !important;
  justify-content: flex-start !important;
  align-items: center !important;
  padding: 0 !important;
}
body.single-service .elementor-widget-icon-list .elementor-icon-list-item {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  padding: 10px 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(28, 28, 29, 0.06);
  width: 100% !important;
  text-align: left !important;
}
body.single-service .elementor-widget-icon-list .elementor-icon-list-icon {
  flex-shrink: 0 !important;
  width: 26px !important;
  height: 26px !important;
  border: none !important;
  border-radius: 50%;
  background: #CAA05C !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
  box-shadow: 0 2px 6px rgba(202, 160, 92, 0.35);
  position: relative;
}
/* Hide original Antra/Elementor icon, replace with crisp white check SVG */
body.single-service .elementor-widget-icon-list .elementor-icon-list-icon svg,
body.single-service .elementor-widget-icon-list .elementor-icon-list-icon i {
  display: none !important;
}
body.single-service .elementor-widget-icon-list .elementor-icon-list-icon::before {
  content: '';
  display: block;
  width: 14px;
  height: 14px;
  background-color: #FFFFFF;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
body.single-service .elementor-widget-icon-list .elementor-icon-list-text {
  font-family: 'Golos Text', 'Lato', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #1C1C1D !important;
  line-height: 1.45 !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* 3. SECTION DIVIDERS — gold hairline between main top-level sections */
body.single-service .site-main article > .elementor > .e-con + .e-con::before,
body.single-service .site-main article .elementor > .e-con:not(:first-child)::before {
  /* Optional subtle top border — uncomment if desired */
  /* content: ''; display: block; height: 1px; background: rgba(202, 160, 92, 0.18);
     max-width: 200px; margin: 0 auto 40px; */
}

/* 4. About the service — bigger heading + framed image */
body.single-service [data-id="deab069"] .elementor-heading-title,
body.single-service h2.elementor-heading-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  letter-spacing: 0.02em !important;
  font-weight: 400 !important;
}
body.single-service .elementor-widget-antra-post-thumbnails img,
body.single-service .elementor-widget-image img {
  border-radius: 20px;
  box-shadow: 0 16px 48px rgba(28, 28, 29, 0.12);
}

/* 5. Paragraph text — more breathing room */
body.single-service .elementor-widget-text-editor p {
  font-family: 'Golos Text', 'Lato', sans-serif;
  font-size: 17px;
  line-height: 1.75;
  color: rgba(28, 28, 29, 0.82);
  margin-bottom: 18px;
}
body.single-service .elementor-widget-icon-box .elementor-icon-box-description {
  font-size: 15.5px;
  line-height: 1.7;
  color: rgba(28, 28, 29, 0.78);
}
body.single-service .elementor-widget-icon-box .elementor-icon-box-title {
  font-size: 18px;
  line-height: 1.4;
}
body.single-service .e-n-accordion-item-title-text {
  font-size: 17px !important;
  line-height: 1.5;
}
body.single-service .e-n-accordion-item-content p,
body.single-service .e-n-accordion-item-content {
  font-size: 16px;
  line-height: 1.7;
  color: rgba(28, 28, 29, 0.82);
}

/* Featured projects carousel — bigger images (applies to all service
   detail pages). Each slide grows to a more editorial size. */
body.single-service .elementor-widget-image-carousel .swiper-slide img,
body.single-service .elementor-image-carousel-wrapper .swiper-slide img {
  width: 100% !important;
  height: auto !important;
  min-height: 420px !important;
  object-fit: cover !important;
  border-radius: 14px;
}
@media (min-width: 1024px) {
  body.single-service .elementor-widget-image-carousel .swiper-slide img,
  body.single-service .elementor-image-carousel-wrapper .swiper-slide img {
    min-height: 560px !important;
  }
}
@media (min-width: 1280px) {
  body.single-service .elementor-widget-image-carousel .swiper-slide img,
  body.single-service .elementor-image-carousel-wrapper .swiper-slide img {
    min-height: 640px !important;
  }
}
/* Mobile — let the slide adapt to each image's native aspect ratio.
   Swiper autoHeight is enabled via JS (see the wp_footer hook in
   functions.php) so the container resizes per slide instead of locking
   to the tallest image. */
@media (max-width: 640px) {
  body.single-service .elementor-widget-image-carousel .swiper-slide img,
  body.single-service .elementor-image-carousel-wrapper .swiper-slide img {
    min-height: 0 !important;
    height: auto !important;
    max-height: 70vh;
    width: 100% !important;
    object-fit: contain !important;
    display: block;
  }
  body.single-service .elementor-widget-image-carousel .swiper-slide,
  body.single-service .elementor-image-carousel-wrapper .swiper-slide {
    height: auto !important;
    align-self: flex-start;
  }
  /* Don't stretch slides to tallest — let each sit at its own height */
  body.single-service .elementor-widget-image-carousel .swiper-wrapper,
  body.single-service .elementor-image-carousel-wrapper .swiper-wrapper {
    align-items: center !important;
  }
  /* Breathing room above "Featured residential projects" heading on mobile */
  body.single-service [class*="featured-projects"],
  body.single-service .elementor-widget-image-carousel {
    margin-top: 24px;
  }
  /* The heading widget right before the carousel */
  body.single-service .elementor-widget-heading + .elementor-widget-image-carousel {
    margin-top: 12px;
  }
}
/* Extra top spacing on the featured projects section (desktop + mobile) */
body.single-service section.abc-featured-projects,
body.single-service [data-widget_type="image-carousel.default"] {
  margin-top: 16px;
}
@media (max-width: 640px) {
  body.single-service section.abc-featured-projects {
    margin-top: 40px !important;
    padding-top: 8px;
  }
}

/* Carousel arrows — solid gold circle with dark icon for maximum contrast */
body.single-service .elementor-widget-image-carousel .elementor-swiper-button {
  background: #CAA05C !important;
  border: 1px solid #CAA05C !important;
  color: #1C1C1D !important;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  transition: all 0.25s ease;
  opacity: 1 !important;
}
body.single-service .elementor-widget-image-carousel .elementor-swiper-button:hover {
  background: #1C1C1D !important;
  color: #CAA05C !important;
  border-color: #CAA05C !important;
  transform: translateY(-50%) scale(1.05);
}
body.single-service .elementor-widget-image-carousel .elementor-swiper-button svg {
  width: 22px !important;
  height: 22px !important;
  fill: currentColor !important;
}
body.single-service .elementor-widget-image-carousel .elementor-swiper-button i {
  color: inherit !important;
  font-size: 18px !important;
}
/* Pagination dots — thin gold accents */
body.single-service .elementor-widget-image-carousel .swiper-pagination {
  margin-top: 24px;
  position: static !important;
}
body.single-service .elementor-widget-image-carousel .swiper-pagination-bullet {
  background: rgba(28, 28, 29, 0.25) !important;
  width: 8px;
  height: 8px;
  opacity: 1 !important;
  transition: all 0.3s ease;
  margin: 0 5px !important;
}
body.single-service .elementor-widget-image-carousel .swiper-pagination-bullet-active {
  background: #CAA05C !important;
  width: 28px;
  border-radius: 4px;
}

/* 6. Container spacing — consistent vertical rhythm */
body.single-service .site-main article .elementor > .e-con {
  padding-top: 32px;
  padding-bottom: 32px;
}
body.single-service .site-main article .elementor > .e-con:first-child {
  padding-top: 56px;
}

/* 7. "WHAT IS INCLUDED IN YOUR REMODEL" — dark unified block.
   Applied to 5 widgets + the column wrapper that groups the 2 icon-lists
   (79eca6e). All share the same dark bg + blueprint grid, with zero
   gap between them so visually they form one continuous block. */
body.single-service [data-id="7e95051"],
body.single-service [data-id="739b689"],
body.single-service [data-id="79eca6e"],
body.single-service [data-id="15f45a3"],
body.single-service [data-id="108ceaf"],
body.single-service [data-id="fa9bc1f"] {
  background-color: #1C1C1D !important;
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.10) 1px, transparent 1px) !important;
  background-size: 40px 40px !important;
  color: #F8F7F5 !important;
  padding-left: 40px !important;
  padding-right: 40px !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

/* First widget: top padding + rounded top corners */
body.single-service [data-id="7e95051"] {
  padding-top: 72px !important;
  padding-bottom: 20px !important;
  border-top-left-radius: 20px !important;
  border-top-right-radius: 20px !important;
}

/* Last widget: big bottom padding + rounded bottom corners */
body.single-service [data-id="fa9bc1f"] {
  padding-top: 24px !important;
  padding-bottom: 72px !important;
  border-bottom-left-radius: 20px !important;
  border-bottom-right-radius: 20px !important;
}

/* Column wrapper around the 2 icon-lists — no padding, just bg */
body.single-service [data-id="79eca6e"] {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}
/* The 2 icon-lists inside the wrapper: no horizontal padding since parent
   already has 40px. Top/bottom padding tight. */
body.single-service [data-id="15f45a3"],
body.single-service [data-id="108ceaf"] {
  padding: 8px 0 !important;
  background: transparent !important;
}
body.single-service [data-id="15f45a3"],
body.single-service [data-id="108ceaf"] {
  background-image: none !important;
}

/* Middle para widget */
body.single-service [data-id="739b689"] {
  padding-top: 14px !important;
  padding-bottom: 20px !important;
}

/* Zero margin on all widget wrappers in this section */
body.single-service [data-id="7e95051"] > .elementor-widget-container,
body.single-service [data-id="739b689"] > .elementor-widget-container,
body.single-service [data-id="15f45a3"] > .elementor-widget-container,
body.single-service [data-id="108ceaf"] > .elementor-widget-container,
body.single-service [data-id="fa9bc1f"] > .elementor-widget-container {
  margin: 0 !important;
}

/* Light text overrides for the dark section */
body.single-service [data-id="7e95051"] .elementor-heading-title,
body.single-service [data-id="739b689"] p,
body.single-service [data-id="739b689"] .elementor-widget-container,
body.single-service [data-id="fa9bc1f"] p,
body.single-service [data-id="fa9bc1f"] .elementor-widget-container,
body.single-service [data-id="15f45a3"] .elementor-icon-list-text,
body.single-service [data-id="108ceaf"] .elementor-icon-list-text {
  color: #F8F7F5 !important;
}

/* Icon-list dividers on dark bg — lighter hairline */
body.single-service [data-id="15f45a3"] .elementor-icon-list-item,
body.single-service [data-id="108ceaf"] .elementor-icon-list-item {
  border-bottom-color: rgba(248, 247, 245, 0.1) !important;
}

/* Checkmarks on dark bg — keep gold solid fill (inherits .single-service rule) */
body.single-service [data-id="15f45a3"] .elementor-icon-list-icon,
body.single-service [data-id="108ceaf"] .elementor-icon-list-icon {
  background: #CAA05C !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(202, 160, 92, 0.45) !important;
}

/* Mobile: less horizontal padding */
@media (max-width: 640px) {
  body.single-service [data-id="7e95051"],
  body.single-service [data-id="739b689"],
  body.single-service [data-id="15f45a3"],
  body.single-service [data-id="108ceaf"],
  body.single-service [data-id="fa9bc1f"] {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  body.single-service [data-id="7e95051"] { padding-top: 56px !important; }
  body.single-service [data-id="fa9bc1f"] { padding-bottom: 56px !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   FOOTER — unscoped fixes (apply to desktop AND mobile)
   Two bugs were caused by keeping these rules inside a mobile-only
   media query, which hid them on desktop:
   1) Social icons (Facebook/Instagram/YouTube/X) rendered as plain
      text labels on desktop instead of round icon buttons.
   2) The giant "ABC" brandmark sat at 100% white → dominated the
      bottom of every page. Toned down to a faint blueprint accent.
   ═══════════════════════════════════════════════════════════════════ */

/* Social list — outlined circle buttons with SVG icons */
html body #colophon [data-id="707e44d"] .elementor-icon-list-items {
  display: flex !important;
  flex-direction: row !important;
  justify-content: flex-start;
  gap: 12px !important;
  flex-wrap: wrap;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-item {
  margin: 0 !important;
}
/* Hide the default inline-item separator "·" between social icons */
html body #colophon [data-id="707e44d"] .elementor-inline-item:not(:first-child)::before,
html body #colophon [data-id="707e44d"] .elementor-icon-list-item.elementor-inline-item:after {
  display: none !important;
  content: none !important;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-item a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(202, 160, 92, 0.5);
  border-radius: 50%;
  color: #CAA05C !important;
  padding: 0 !important;
  min-height: 42px !important;
  transition: all 0.2s ease;
  overflow: hidden;
  text-decoration: none !important;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-item a:hover {
  background: #CAA05C;
  color: #1C1C1D !important;
  border-color: #CAA05C;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-text {
  font-size: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-item a::before {
  content: '' !important;
  position: static !important;
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
  background-color: currentColor !important;
  mask-size: contain !important;
  -webkit-mask-size: contain !important;
  mask-position: center !important;
  -webkit-mask-position: center !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-repeat: no-repeat !important;
  top: auto !important;
  left: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-item:nth-child(1) a::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12c0 5 3.66 9.13 8.44 9.88v-6.99H7.9v-2.89h2.54V9.84c0-2.51 1.49-3.89 3.78-3.89 1.09 0 2.23.19 2.23.19v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.89h-2.33v6.99C18.34 21.13 22 17 22 12c0-5.52-4.48-10-10-10z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12c0 5 3.66 9.13 8.44 9.88v-6.99H7.9v-2.89h2.54V9.84c0-2.51 1.49-3.89 3.78-3.89 1.09 0 2.23.19 2.23.19v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.89h-2.33v6.99C18.34 21.13 22 17 22 12c0-5.52-4.48-10-10-10z'/%3E%3C/svg%3E") !important;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-item:nth-child(2) a::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z'/%3E%3C/svg%3E") !important;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-item:nth-child(3) a::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E") !important;
}
html body #colophon [data-id="707e44d"] .elementor-icon-list-item:nth-child(4) a::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E") !important;
}

/* Kill the auto-generated bottom gold border on the phone + email
   widgets at all viewports (Elementor stored a 1px gold border in
   the widget settings). */
html body #colophon [data-id="e06bb3b"],
html body #colophon [data-id="eefee01"] {
  border: 0 !important;
  padding: 0 !important;
}

/* Footer — tablet (769-1099px): 3 columns + contact spans full row below.
   Avoids cramming everything into one row at narrow tablet widths. */
/* Tablet (769-1099px) — explicit grid for predictable layout.
   Row 1: identity (logo+tagline) | navigate | services
   Row 2: contact (full width, phone+email centered, socials right) */
@media (min-width: 769px) and (max-width: 1099px) {
  html body #colophon [data-id="af5145f"] > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(240px, 1fr) minmax(120px, 160px) minmax(180px, 220px) !important;
    grid-template-areas:
      "identity navigate services"
      "contact contact contact" !important;
    gap: 40px 32px !important;
    padding: 64px 32px 32px !important;
    align-items: center !important;
  }
  html body #colophon [data-id="a7c1aa9"]  {
    grid-area: identity;
    flex: none !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
    justify-self: stretch !important;
    padding: 0 !important;
  }
  html body #colophon [data-id="c979888"]  {
    grid-area: navigate;
    flex: none !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-self: stretch !important;
    padding: 0 !important;
  }
  html body #colophon [data-id="9e2737d"]  {
    grid-area: services;
    flex: none !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-self: stretch !important;
    padding: 0 !important;
  }
  /* Drawing-index style labels above each menu column for consistency
     with mobile (avoid the bare nav lists feeling rootless) */
  html body #colophon [data-id="c979888"]::before,
  html body #colophon [data-id="9e2737d"]::before {
    display: block !important;
    position: static !important;
    font-family: 'Good Times', 'Cal Sans', monospace !important;
    font-size: 10px !important;
    font-weight: 400 !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    color: #CAA05C !important;
    line-height: 1.2 !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    z-index: auto !important;
    top: auto !important;
    left: auto !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    width: auto !important;
    height: auto !important;
    flex-shrink: 0 !important;
  }
  html body #colophon [data-id="c979888"]::before { content: '01 \2014  MENU' !important; }
  html body #colophon [data-id="9e2737d"]::before { content: '02 \2014  WORK' !important; }
  /* Force columns into flex-column for header + items stack */
  html body #colophon [data-id="c979888"],
  html body #colophon [data-id="9e2737d"] {
    display: flex !important;
    flex-direction: column !important;
  }
  /* Menu items — clean, left-aligned, tight, no per-item padding */
  html body #colophon [data-id="c979888"] .elementor-widget-icon-list,
  html body #colophon [data-id="9e2737d"] .elementor-widget-icon-list,
  html body #colophon [data-id="c979888"] .elementor-widget-icon-list > .elementor-widget-container,
  html body #colophon [data-id="9e2737d"] .elementor-widget-icon-list > .elementor-widget-container {
    width: 100% !important;
    text-align: left !important;
    display: block !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-items,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-items {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    list-style: none !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-item,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-item {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-item a,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-item a {
    font-family: 'Cal Sans', 'Golos Text', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    color: rgba(248, 247, 245, 0.85) !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    transition: color 0.18s ease, transform 0.18s ease;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-item a:hover,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-item a:hover {
    color: #CAA05C !important;
    transform: translateX(2px);
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-text,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-text {
    font-size: 14px !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    word-break: normal !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(248, 247, 245, 0.85) !important;
  }
  html body #colophon [data-id="c979888"] .elementor-icon-list-icon,
  html body #colophon [data-id="9e2737d"] .elementor-icon-list-icon {
    display: none !important;
  }
  html body #colophon [data-id="6159a13"]  {
    grid-area: contact;
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    border-top: 1px solid rgba(202, 160, 92, 0.18);
    padding-top: 28px !important;
  }
  html body #colophon [data-id="6159a13"] > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 20px 32px !important;
    justify-content: space-between !important;
    align-items: center !important;
  }
  html body #colophon [data-id="6159a13"] [data-id="640aba9"] {
    padding: 0 !important;
    width: auto !important;
    flex: 0 1 auto;
  }
  html body #colophon [data-id="6159a13"] [data-id="640aba9"] > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 8px 28px !important;
    align-items: center !important;
    padding: 0 !important;
  }
  html body #colophon [data-id="640aba9"] .elementor-heading-title {
    font-size: 15px !important;
    line-height: 1.4 !important;
    word-break: normal !important;
  }
  html body #colophon [data-id="707e44d"] {
    width: auto !important;
    flex: 0 0 auto;
  }
  html body #colophon [data-id="707e44d"] .elementor-icon-list-items {
    justify-content: flex-end !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
  }
  /* Tagline + serving stay readable, not over-faded */
  html body #colophon [data-id="010b7a2"] p,
  html body #colophon [data-id="010b7a2"] .elementor-widget-container > * {
    color: rgba(248, 247, 245, 0.75) !important;
  }
}

/* Footer — desktop ≥1100px: 4 columns in one row, contact on the right. */
@media (min-width: 1100px) {
  html body #colophon [data-id="af5145f"] > .e-con-inner {
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    gap: 32px !important;
    align-items: center !important;
  }
  html body #colophon [data-id="a7c1aa9"] {
    flex: 0 1 340px !important;
    max-width: 340px;
    min-width: 220px;
  }
  html body #colophon [data-id="c979888"],
  html body #colophon [data-id="9e2737d"] {
    flex: 0 0 auto !important;
  }
  html body #colophon [data-id="6159a13"] {
    flex: 0 1 520px !important;
    max-width: 520px;
    min-width: 280px;
    margin-left: auto;
    order: 4;
  }
  html body #colophon [data-id="6159a13"] > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 36px !important;
    align-items: flex-end !important;
    padding-top: 8px !important;
  }
  html body #colophon [data-id="6159a13"] [data-id="640aba9"] > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;
    padding: 0 !important;
  }
  html body #colophon [data-id="6159a13"] [data-id="640aba9"] {
    padding: 0 !important;
    width: 100% !important;
  }
  html body #colophon [data-id="640aba9"] .elementor-heading-title {
    font-size: 15px !important;
    line-height: 1.4 !important;
    word-break: normal !important;
    overflow-wrap: anywhere;
    max-width: 100%;
  }
  html body #colophon [data-id="707e44d"] {
    width: auto !important;
    margin-top: 16px !important;
  }
  html body #colophon [data-id="707e44d"] .elementor-icon-list-items {
    justify-content: flex-end !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
  }
  /* Serving lines — readable but still secondary on desktop */
  html body #colophon [data-id="010b7a2"] p,
  html body #colophon [data-id="010b7a2"] .elementor-widget-container > * {
    color: rgba(248, 247, 245, 0.75) !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
  }
}

/* ABC brandmark — faint blueprint accent instead of dominant slab */
html body #colophon [data-id="62507a3"] .elementor-heading-title,
html body #colophon [data-id="da7c44a"] .elementor-heading-title {
  color: rgba(248, 247, 245, 0.04) !important;
  opacity: 1 !important;
  letter-spacing: -0.02em;
  user-select: none;
  pointer-events: none;
}
/* Desktop: cap the size so it doesn't eat half the page */
@media (min-width: 769px) {
  html body #colophon [data-id="62507a3"] .elementor-heading-title,
  html body #colophon [data-id="da7c44a"] .elementor-heading-title {
    font-size: clamp(36px, 6vw, 84px) !important;
    line-height: 1 !important;
  }
  html body #colophon [data-id="62507a3"],
  html body #colophon [data-id="da7c44a"] {
    overflow: hidden;
  }
}


/* SEO landing pages 9231-9234: hero H1 sits on a dark container and
   inherits dark-on-dark color from the body. Force white H1 + gold em.
   Selector covers all 4 pages without hardcoding inner-container IDs. */
body.abc-seo-landing .elementor h1.elementor-heading-title,
body.page-id-9232 .elementor h1.elementor-heading-title,
body.page-id-9233 .elementor h1.elementor-heading-title,
body.page-id-9234 .elementor h1.elementor-heading-title,
body.page-id-10005 .elementor h1.elementor-heading-title {
  color: #F8F7F5 !important;
}
body.abc-seo-landing .elementor h1 em,
body.page-id-9232 .elementor h1 em,
body.page-id-9233 .elementor h1 em,
body.page-id-9234 .elementor h1 em,
body.page-id-10005 .elementor h1 em {
  color: #CAA05C !important;
  font-style: normal;
}

/* ═══════════════════════════════════════════════════════════════════════════
   KITCHEN REMODELING IN MIAMI — SEO landing redesign (page-id 9231)
   "Project documentation, not a brochure" — alphanumeric cartouches,
   monospace tech data, hairline gold rules, blueprint grid bg, big gallery.
   All rules scoped to body.abc-seo-landing so nothing bleeds elsewhere.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 0. Tokens & shared utilities ─────────────────────────────────────────── */
body.abc-seo-landing {
  --k-gold: #CAA05C;
  --k-gold-soft: rgba(202, 160, 92, 0.18);
  --k-gold-line: rgba(202, 160, 92, 0.35);
  --k-dark: #1C1C1D;
  --k-cream: #F8F7F5;
  --k-ink: #2A2A2B;
  --k-ink-muted: #5A5A5C;
  --k-mono: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", "Roboto Mono", Consolas, monospace;
}

/* Blueprint grid pattern reused on every dark container in this page */
body.abc-seo-landing .abc-portfolio-hero,
body.abc-seo-landing .abc-process,
body.abc-seo-landing .abc-editorial-grid,
body.abc-seo-landing .abc-stats-band,
body.abc-seo-landing .abc-why-section,
body.abc-seo-landing .abc-portfolio-cta {
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.10) 1px, transparent 1px) !important;
  background-size: 40px 40px !important;
}

/* Cream containers — keep light grid for rhythm */
body.abc-seo-landing .abc-rich-intro,
body.abc-seo-landing .abc-offer-section,
body.abc-seo-landing .abc-local-seo {
  background-image:
    linear-gradient(rgba(28, 28, 29, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(28, 28, 29, 0.04) 1px, transparent 1px) !important;
  background-size: 40px 40px !important;
}

/* Force section padding consistent everywhere — generous breathing room */
body.abc-seo-landing .e-con.e-parent {
  padding-top: 96px !important;
  padding-bottom: 96px !important;
}

/* Switch the white intro to cream + the gallery + final-CTA to dark for rhythm */
body.abc-seo-landing .abc-rich-intro {
  background-color: var(--k-cream) !important;
}
body.abc-seo-landing .abc-editorial-grid,
body.abc-seo-landing .abc-portfolio-cta {
  background-color: var(--k-dark) !important;
}

/* Heading reset — let the page own its typography. Sentence case, tight tracking. */
body.abc-seo-landing .elementor h2.elementor-heading-title,
body.abc-seo-landing .elementor h3.elementor-heading-title,
body.abc-seo-landing .elementor h4.elementor-heading-title {
  font-family: 'Cal Sans', 'Good Times', sans-serif !important;
  letter-spacing: -0.01em;
  text-transform: none !important;
}

/* Color rules for dark vs cream containers */
body.abc-seo-landing .abc-portfolio-hero *,
body.abc-seo-landing .abc-process *,
body.abc-seo-landing .abc-editorial-grid *,
body.abc-seo-landing .abc-stats-band *,
body.abc-seo-landing .abc-why-section *,
body.abc-seo-landing .abc-portfolio-cta * {
  color: var(--k-cream);
}
body.abc-seo-landing .abc-portfolio-hero em,
body.abc-seo-landing .abc-portfolio-hero .c-primary,
body.abc-seo-landing .abc-process em,
body.abc-seo-landing .abc-editorial-grid em,
body.abc-seo-landing .abc-stats-band em,
body.abc-seo-landing .abc-why-section em,
body.abc-seo-landing .abc-portfolio-cta em {
  color: var(--k-gold) !important;
  font-style: normal;
}

body.abc-seo-landing .abc-rich-intro *,
body.abc-seo-landing .abc-offer-section *,
body.abc-seo-landing .abc-local-seo * {
  color: var(--k-ink);
}
body.abc-seo-landing .abc-rich-intro p,
body.abc-seo-landing .abc-offer-section p,
body.abc-seo-landing .abc-local-seo p {
  color: var(--k-ink-muted);
}

/* ── 1. Cartouche labels (the small alphanumeric tags above each H2) ──────
   We don't have an HTML hook for the cartouche, so we add one via ::before
   on the FIRST heading of each container. Each section gets a unique tag. */

/* Cartouche label is rendered via ::before on each section's H2 specifically.
   Targeting h2 (not "first heading widget") avoids matching the "01" number
   widgets inside each sub-card, which also are first-child headings. */
body.abc-seo-landing .abc-rich-intro h2.elementor-heading-title::before,
body.abc-seo-landing .abc-offer-section h2.elementor-heading-title::before,
body.abc-seo-landing .abc-process h2.elementor-heading-title::before,
body.abc-seo-landing .abc-editorial-grid h2.elementor-heading-title::before,
body.abc-seo-landing .abc-why-section h2.elementor-heading-title::before,
body.abc-seo-landing .abc-local-seo h2.elementor-heading-title::before,
body.abc-seo-landing .abc-portfolio-cta h2.elementor-heading-title::before {
  display: block !important;
  font-family: var(--k-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--k-gold);
  margin-bottom: 18px;
  font-weight: 500;
  text-transform: uppercase;
}

/* unique cartouche per section — target H2 only, not the "01" number divs */
body.abc-seo-landing .abc-rich-intro h2.elementor-heading-title::before { content: "B / 02  APPROACH"; }
body.abc-seo-landing .abc-offer-section h2.elementor-heading-title::before { content: "C / 03  SCOPE OF WORK"; }
body.abc-seo-landing .abc-process h2.elementor-heading-title::before { content: "D / 04  PROCESS"; }
body.abc-seo-landing .abc-editorial-grid h2.elementor-heading-title::before { content: "E / 05  ARCHIVE"; }
body.abc-seo-landing .abc-why-section h2.elementor-heading-title::before { content: "F / 06  WHY US"; }
body.abc-seo-landing .abc-local-seo h2.elementor-heading-title::before { content: "G / 07  COVERAGE"; }
body.abc-seo-landing .abc-portfolio-cta h2.elementor-heading-title::before { content: "H / 08  NEXT STEP"; }

/* Hide eyebrow heading widgets on SEO landings.
   Each section has the pattern:
       [eyebrow div widget] → [H2 main heading] → [body content]
   The eyebrow widget renders its title as `<div class="elementor-heading-title">`
   (vs the real H2 which is `<h2 class="elementor-heading-title">`).
   We can't simply hide all DIV-tag headings because the stats columns
   ALSO render their numbers (20+, 14, 256+, 100%) as DIV-tag headings.
   So we scope by section parent and explicitly exclude .abc-stats-band,
   .abc-portfolio-hero (visible eyebrow there), .abc-proc-col (process
   numbers), .abc-why-item (why card numbers), .abc-pcard (photo card
   numbers/labels). */
body.abc-seo-landing .abc-rich-intro div.elementor-heading-title,
body.abc-seo-landing .abc-offer-section > .e-con-inner > .elementor-element div.elementor-heading-title,
body.abc-seo-landing .abc-process > .e-con-inner > .elementor-element:not(.abc-proc-col) div.elementor-heading-title,
body.abc-seo-landing .abc-editorial-grid > .e-con-inner > .elementor-element:not(.abc-editorial-row) div.elementor-heading-title,
body.abc-seo-landing .abc-why-section > .e-con-inner > .elementor-element div.elementor-heading-title,
body.abc-seo-landing .abc-local-seo div.elementor-heading-title,
body.abc-seo-landing .abc-portfolio-cta div.elementor-heading-title {
  position: absolute !important;
  width: 1px; height: 1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap;
}
/* Safety re-show: stat numbers + labels stay visible */
body.abc-seo-landing .abc-stat-col div.elementor-heading-title,
body.abc-seo-landing .abc-proc-col div.elementor-heading-title,
body.abc-seo-landing .abc-why-item div.elementor-heading-title,
body.abc-seo-landing .abc-pcard div.elementor-heading-title {
  position: static !important;
  width: auto; height: auto; overflow: visible;
  clip: auto; white-space: normal;
}

/* ── 2. Hero (#f2c5402) ───────────────────────────────────────────────────── */
body.abc-seo-landing .abc-portfolio-hero {
  position: relative;
  padding-top: 120px !important;
  padding-bottom: 120px !important;
}
/* Top hairline gold rule */
body.abc-seo-landing .abc-portfolio-hero::before {
  content: "";
  position: absolute; top: 80px; left: 50%; transform: translateX(-50%);
  width: min(92%, 1240px); height: 1px;
  background: linear-gradient(90deg, transparent, var(--k-gold-line) 20%, var(--k-gold-line) 80%, transparent);
  pointer-events: none;
}

body.abc-seo-landing .abc-portfolio-hero h1.elementor-heading-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  font-size: clamp(40px, 6vw, 78px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 0 !important;
  text-transform: none !important;
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* Subtitle widget — sits between H1 and (optional) bullets in the hero */
body.abc-seo-landing .abc-portfolio-hero .abc-portfolio-hero__subtitle p,
body.abc-seo-landing .abc-portfolio-hero .elementor-widget-text-editor.abc-portfolio-hero__subtitle p {
  font-family: 'Cal Sans', 'Lato', sans-serif !important;
  font-size: clamp(17px, 1.4vw, 21px) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: rgba(248, 247, 245, 0.78) !important;
  margin: 0 !important;
  max-width: 640px;
}
body.abc-seo-landing .abc-portfolio-hero .abc-portfolio-hero__subtitle {
  margin-top: 24px !important;
  margin-bottom: 0 !important;
}
/* Gold accent span inside the hero H1 — picks up the c-primary class
   added inside the H1 markup for emphasized words in EN and ES. */
body.abc-seo-landing .abc-portfolio-hero h1.elementor-heading-title .c-primary,
body.abc-seo-landing .abc-portfolio-hero h1.elementor-heading-title em {
  color: var(--k-gold) !important;
  font-style: normal !important;
  font-family: inherit !important;
}

/* Constrain the hero columns so a long ES heading can never overflow into the
   bullets column on the right. The Elementor row uses flex; we set explicit
   widths on the two children. */
body.abc-seo-landing .abc-portfolio-hero-row {
  display: flex !important;
  align-items: center !important;
  gap: 56px !important;
  flex-wrap: wrap;
}
body.abc-seo-landing .abc-portfolio-hero-row > .e-con-full:first-child,
body.abc-seo-landing .abc-portfolio-hero-row > .elementor-element:first-child {
  flex: 1 1 56%;
  min-width: 0;
  max-width: 60%;
}
body.abc-seo-landing .abc-portfolio-hero-row > .e-con-full:nth-child(2),
body.abc-seo-landing .abc-portfolio-hero-row > .elementor-element:nth-child(2) {
  flex: 0 1 36%;
  min-width: 280px;
}
@media (max-width: 900px) {
  body.abc-seo-landing .abc-portfolio-hero-row > .e-con-full:first-child,
  body.abc-seo-landing .abc-portfolio-hero-row > .elementor-element:first-child,
  body.abc-seo-landing .abc-portfolio-hero-row > .e-con-full:nth-child(2),
  body.abc-seo-landing .abc-portfolio-hero-row > .elementor-element:nth-child(2) {
    flex: 1 1 100%;
    max-width: 100%;
  }
  body.abc-seo-landing .abc-portfolio-hero h1.elementor-heading-title {
    font-size: clamp(36px, 9vw, 56px) !important;
  }
}

/* Per-page hero background image — set directly on the section so the
   existing ::before hairline rule keeps working on top. The image sits
   under the dark gradient overlay so the H1 stays readable on the left
   half while the photo is most visible on the right (where the bullets
   sit, but those are also bright cream so they read fine over it).
   Picks one image per landing topic (kitchen/bathroom/commercial/home). */
body.page-id-9231 .abc-portfolio-hero,
body.page-id-9470 .abc-portfolio-hero {
  background-image:
    linear-gradient(90deg, rgba(28, 28, 29, 0.86) 0%, rgba(28, 28, 29, 0.78) 60%, rgba(28, 28, 29, 0.72) 100%),
    url('/wp-content/uploads/2026/05/kitchen-banner-2.webp') !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
body.page-id-9232 .abc-portfolio-hero,
body.page-id-9471 .abc-portfolio-hero {
  background-image:
    linear-gradient(90deg, rgba(28, 28, 29, 0.86) 0%, rgba(28, 28, 29, 0.78) 60%, rgba(28, 28, 29, 0.72) 100%),
    url('/wp-content/uploads/2026/05/bathroom-remodel-miami-04.webp') !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Commercial LP body images — constrain so they don't dwarf the text column */
body.page-id-9233 .abc-offer-image img,
body.page-id-9472 .abc-offer-image img {
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: cover;
  object-position: center center;
  display: block;
}
body.page-id-9233 .abc-offer-image .elementor-widget-image,
body.page-id-9472 .abc-offer-image .elementor-widget-image {
  width: 100%;
}
body.page-id-9233 .abc-portfolio-hero,
body.page-id-9472 .abc-portfolio-hero {
  background-image:
    linear-gradient(90deg, rgba(28, 28, 29, 0.86) 0%, rgba(28, 28, 29, 0.78) 60%, rgba(28, 28, 29, 0.72) 100%),
    url('/wp-content/uploads/2026/04/restaurant-69dd855b217c7-20170602_155042-scaled.webp') !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
body.page-id-9234 .abc-portfolio-hero,
body.page-id-9473 .abc-portfolio-hero,
body.page-id-10005 .abc-portfolio-hero {
  background-image:
    linear-gradient(90deg, rgba(28, 28, 29, 0.86) 0%, rgba(28, 28, 29, 0.78) 60%, rgba(28, 28, 29, 0.72) 100%),
    url('/wp-content/uploads/2026/04/full-home-remodeling-miami.webp') !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Hero icon-list — monospace items with gold square markers and hairline rules */
body.abc-seo-landing .abc-portfolio-hero .elementor-icon-list-items {
  list-style: none !important;
  padding: 0 !important;
  margin: 24px 0 0 0 !important;
  display: flex;
  flex-direction: column;
  gap: 0;
}
body.abc-seo-landing .abc-portfolio-hero .elementor-icon-list-item {
  display: flex !important;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid rgba(248, 247, 245, 0.08);
}
body.abc-seo-landing .abc-portfolio-hero .elementor-icon-list-item:first-child {
  border-top: 1px solid rgba(248, 247, 245, 0.08);
}
body.abc-seo-landing .abc-portfolio-hero .elementor-icon-list-item .elementor-icon-list-icon { display: none !important; }
body.abc-seo-landing .abc-portfolio-hero .elementor-icon-list-item .elementor-icon-list-text {
  font-family: var(--k-mono);
  font-size: 15px;
  letter-spacing: 0.04em;
  color: var(--k-cream) !important;
  text-transform: uppercase;
  position: relative;
  padding-left: 32px !important;
  line-height: 1.4;
  display: block !important;
}
body.abc-seo-landing .abc-portfolio-hero .elementor-icon-list-item .elementor-icon-list-text::before {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 8px; height: 8px;
  background: var(--k-gold);
  transform: translateY(-50%);
}

/* ── 3. Intro (#66e8fa4) ──────────────────────────────────────────────────── */
body.abc-seo-landing .abc-rich-intro {
  text-align: center;
  position: relative;
}
body.abc-seo-landing .abc-rich-intro h2.elementor-heading-title {
  font-size: clamp(28px, 4.5vw, 52px) !important;
  line-height: 1.05 !important;
  max-width: 880px;
  margin: 0 auto 32px auto !important;
  color: var(--k-dark) !important;
}
body.abc-seo-landing .abc-rich-intro .elementor-widget-text-editor {
  max-width: 720px;
  margin: 0 auto;
}
body.abc-seo-landing .abc-rich-intro .elementor-widget-text-editor p {
  font-size: 18px !important;
  line-height: 1.7 !important;
  color: var(--k-ink-muted) !important;
  margin: 0 0 12px 0 !important;
}
/* Hairline divider after intro */
body.abc-seo-landing .abc-rich-intro::after {
  content: "";
  display: block;
  width: 60px; height: 1px;
  background: var(--k-gold);
  margin: 56px auto 0 auto;
}

/* ── 4. Services list (#ef6b725) ──────────────────────────────────────────── */
body.abc-seo-landing .abc-offer-section h2.elementor-heading-title {
  font-size: clamp(28px, 4vw, 48px) !important;
  line-height: 1.1 !important;
  margin-bottom: 32px !important;
  color: var(--k-dark) !important;
}
body.abc-seo-landing .abc-offer-section .elementor-icon-list-items {
  list-style: none !important;
  padding: 0 !important;
  margin: 8px 0 0 0 !important;
  counter-reset: scope;
}
body.abc-seo-landing .abc-offer-section .elementor-icon-list-item {
  display: flex !important;
  align-items: center;
  padding: 18px 0 18px 60px !important;
  border-top: 1px solid rgba(28, 28, 29, 0.10);
  counter-increment: scope;
  position: relative;
}
body.abc-seo-landing .abc-offer-section .elementor-icon-list-item:last-child {
  border-bottom: 1px solid rgba(28, 28, 29, 0.10);
}
body.abc-seo-landing .abc-offer-section .elementor-icon-list-item::before {
  content: counter(scope, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--k-mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--k-gold);
  width: 44px;
}
body.abc-seo-landing .abc-offer-section .elementor-icon-list-item .elementor-icon-list-icon { display: none !important; }
body.abc-seo-landing .abc-offer-section .elementor-icon-list-item .elementor-icon-list-text {
  font-family: 'Cal Sans', sans-serif;
  font-size: 19px;
  font-weight: 500;
  color: var(--k-dark) !important;
  letter-spacing: -0.005em;
  line-height: 1.3;
}
/* Image right column — gold corner brackets */
body.abc-seo-landing .abc-offer-section .elementor-widget-image {
  position: relative;
}
body.abc-seo-landing .abc-offer-section .elementor-widget-image::before,
body.abc-seo-landing .abc-offer-section .elementor-widget-image::after {
  content: "";
  position: absolute;
  width: 24px; height: 24px;
  border: 1px solid var(--k-gold);
  pointer-events: none;
  z-index: 2;
}
body.abc-seo-landing .abc-offer-section .elementor-widget-image::before {
  top: -8px; left: -8px;
  border-right: none; border-bottom: none;
}
body.abc-seo-landing .abc-offer-section .elementor-widget-image::after {
  bottom: -8px; right: -8px;
  border-left: none; border-top: none;
}
body.abc-seo-landing .abc-offer-section .elementor-widget-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* ── 5. Process (#16f4b42) ────────────────────────────────────────────────── */
body.abc-seo-landing .abc-process h2.elementor-heading-title {
  font-size: clamp(28px, 4vw, 48px) !important;
  line-height: 1.1 !important;
  text-align: center;
  margin: 0 auto 56px auto !important;
  color: var(--k-cream) !important;
}
/* The 6 step columns (.abc-proc-col) — uniform sizing, monospace number, Cal Sans label */
body.abc-seo-landing .abc-proc-col {
  background: rgba(248, 247, 245, 0.02) !important;
  border: 1px solid rgba(202, 160, 92, 0.18) !important;
  padding: 28px 22px !important;
  min-height: 200px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  gap: 18px !important;
  transition: background 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
  position: relative;
  overflow: hidden;
}
body.abc-seo-landing .abc-proc-col::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--k-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease;
}
body.abc-seo-landing .abc-proc-col:hover {
  background: rgba(202, 160, 92, 0.05) !important;
  border-color: rgba(202, 160, 92, 0.45) !important;
  transform: translateY(-4px);
}
body.abc-seo-landing .abc-proc-col:hover::before { transform: scaleX(1); }

/* The "01-06" big monospace number (first heading widget in each step) */
body.abc-seo-landing .abc-proc-col .elementor-widget-heading:first-child .elementor-heading-title {
  font-family: var(--k-mono) !important;
  font-size: 56px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  color: var(--k-gold) !important;
  margin: 0 !important;
  font-variant-numeric: tabular-nums;
}

/* The label (h4) — Cal Sans sentence case, no truncation */
body.abc-seo-landing .abc-proc-col h4.elementor-heading-title {
  font-family: 'Cal Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.005em !important;
  color: var(--k-cream) !important;
  margin: 0 !important;
  text-transform: none !important;
  word-break: normal !important;
  overflow-wrap: break-word;
  hyphens: none;
}

/* ── 6. Gallery (#1c7ca67) ────────────────────────────────────────────────── */
body.abc-seo-landing .abc-editorial-grid h2.elementor-heading-title {
  font-size: clamp(28px, 4vw, 48px) !important;
  line-height: 1.1 !important;
  text-align: center;
  margin: 0 auto 24px auto !important;
  color: var(--k-cream) !important;
}
body.abc-seo-landing .abc-editorial-grid .elementor-widget-text-editor p {
  text-align: center !important;
  color: rgba(248, 247, 245, 0.7) !important;
  max-width: 680px;
  margin: 0 auto 60px auto !important;
}

/* Editorial grid — extend the .abc-pcard layout already used by portfolio */
body.abc-seo-landing .abc-editorial-row {
  display: grid !important;
  grid-template-columns: 2fr 1fr 1fr !important;
  grid-auto-rows: 240px !important;
  gap: 1px !important;
  background: rgba(202, 160, 92, 0.18);
  padding: 1px;
}
body.abc-seo-landing .abc-editorial-row .abc-pcard,
body.abc-seo-landing .abc-editorial-row a.abc-pcard {
  display: block;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  background: var(--k-dark);
  width: 100%;
  height: 100%;
}
body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-huge { grid-column: span 2; grid-row: span 2; }
body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-tall { grid-row: span 2; }
body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-wide { grid-column: span 2; }

body.abc-seo-landing .abc-editorial-row .abc-pcard-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: grayscale(0.15) brightness(0.85);
  transition: filter 0.5s ease, transform 0.5s ease;
}
body.abc-seo-landing .abc-editorial-row .abc-pcard:hover .abc-pcard-img {
  filter: grayscale(0) brightness(1);
  transform: scale(1.04);
}
body.abc-seo-landing .abc-editorial-row .abc-pcard-grad {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(28,28,29,0) 40%, rgba(28,28,29,0.92) 100%);
  pointer-events: none;
}
body.abc-seo-landing .abc-editorial-row .abc-pcard-tag {
  position: absolute;
  top: 16px; left: 16px;
  font-family: var(--k-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--k-gold);
  text-transform: uppercase;
  background: rgba(28,28,29,0.7);
  padding: 6px 10px;
  border: 1px solid var(--k-gold-line);
}
body.abc-seo-landing .abc-editorial-row .abc-pcard-num {
  position: absolute;
  top: 16px; right: 16px;
  font-family: var(--k-mono);
  font-size: 13px;
  letter-spacing: 0.05em;
  color: var(--k-cream);
  font-variant-numeric: tabular-nums;
}
body.abc-seo-landing .abc-editorial-row .abc-pcard-label {
  position: absolute;
  left: 20px; right: 20px; bottom: 20px;
  font-family: 'Cal Sans', sans-serif;
  font-size: 18px;
  font-weight: 500;
  color: var(--k-cream);
  margin: 0;
  letter-spacing: -0.005em;
}
/* Hide any genuinely empty card (no img src) — collapse the slot cleanly */
body.abc-seo-landing .abc-editorial-row .abc-pcard:not(:has(img[src])) {
  display: none !important;
}

/* ── 6.5. Stats band (#81228e2) — between gallery and reasons ─────────────
   4 columns of proof points: years delivering, documented projects, archive
   photos, etc. Big monospace gold number + small uppercase mono label. */
body.abc-seo-landing .abc-stats-band {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
  border-top: 1px solid rgba(202, 160, 92, 0.18);
  border-bottom: 1px solid rgba(202, 160, 92, 0.18);
}
body.abc-seo-landing .abc-stats-row {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1px !important;
  background: rgba(202, 160, 92, 0.18);
  padding: 1px;
}
body.abc-seo-landing .abc-stat-col {
  background: var(--k-dark) !important;
  padding: 36px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  text-align: center;
  min-height: 180px;
}
body.abc-seo-landing .abc-stat-col .abc-stat-num .elementor-heading-title {
  font-family: var(--k-mono) !important;
  font-size: clamp(36px, 5vw, 56px) !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  color: var(--k-gold) !important;
  margin: 0 !important;
  font-variant-numeric: tabular-nums;
}
body.abc-seo-landing .abc-stat-col .abc-stat-lbl .elementor-heading-title {
  font-family: var(--k-mono) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.18em !important;
  color: rgba(248, 247, 245, 0.7) !important;
  text-transform: uppercase !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* ── 7. Reasons / Why us (#870ad6d) ──────────────────────────────────────── */
body.abc-seo-landing .abc-why-section h2.elementor-heading-title {
  font-size: clamp(28px, 4vw, 48px) !important;
  line-height: 1.1 !important;
  margin: 0 0 56px 0 !important;
  max-width: 720px;
  color: var(--k-cream) !important;
}

/* Each .abc-why-item is a row: number | label, with hairline divider */
body.abc-seo-landing .abc-why-item {
  display: grid !important;
  grid-template-columns: 80px 1fr !important;
  align-items: center !important;
  gap: 32px !important;
  padding: 24px 0 !important;
  border-bottom: 1px solid rgba(248, 247, 245, 0.10) !important;
  transition: padding-left 0.35s ease;
  position: relative;
}
body.abc-seo-landing .abc-why-item:first-of-type {
  border-top: 1px solid rgba(248, 247, 245, 0.10) !important;
}
body.abc-seo-landing .abc-why-item:hover { padding-left: 16px !important; }
body.abc-seo-landing .abc-why-item::after {
  content: "";
  position: absolute;
  left: 0; top: 50%;
  width: 0; height: 1px;
  background: var(--k-gold);
  transform: translateY(-50%);
  transition: width 0.35s ease;
}
body.abc-seo-landing .abc-why-item:hover::after { width: 8px; }

body.abc-seo-landing .abc-why-item .elementor-widget-heading:first-child .elementor-heading-title {
  font-family: var(--k-mono) !important;
  font-size: 32px !important;
  font-weight: 300 !important;
  letter-spacing: -0.02em !important;
  color: var(--k-gold) !important;
  margin: 0 !important;
  font-variant-numeric: tabular-nums;
}
body.abc-seo-landing .abc-why-item h3.elementor-heading-title {
  font-family: 'Cal Sans', sans-serif !important;
  font-size: clamp(18px, 2.4vw, 22px) !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  color: var(--k-cream) !important;
  margin: 0 !important;
  text-transform: none !important;
}

/* ── 8. Coverage / Local block (#a12a69e) ─────────────────────────────────── */
body.abc-seo-landing .abc-local-seo {
  text-align: center;
}
body.abc-seo-landing .abc-local-seo h2.elementor-heading-title {
  font-size: clamp(24px, 3.5vw, 40px) !important;
  line-height: 1.15 !important;
  max-width: 820px;
  margin: 0 auto 24px auto !important;
  color: var(--k-dark) !important;
}
body.abc-seo-landing .abc-local-seo .elementor-widget-text-editor {
  max-width: 680px;
  margin: 0 auto;
}
body.abc-seo-landing .abc-local-seo .elementor-widget-text-editor p {
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: var(--k-ink-muted) !important;
}
/* Coverage chips (rendered by the page) — monospace zip-style row */
body.abc-seo-landing .abc-local-seo::after {
  content: "MIA · 33126   ◆   BRO · 33301   ◆   33136   ◆   33101";
  display: block;
  margin: 40px auto 0 auto;
  font-family: var(--k-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--k-gold);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 92%;
}

/* ── 9. Final CTA (#8813264) ──────────────────────────────────────────────── */
body.abc-seo-landing .abc-portfolio-cta {
  text-align: center;
  position: relative;
}
body.abc-seo-landing .abc-portfolio-cta::before {
  content: "";
  position: absolute;
  top: 80px; left: 50%; transform: translateX(-50%);
  width: 60px; height: 1px;
  background: var(--k-gold);
}
body.abc-seo-landing .abc-portfolio-cta h2.elementor-heading-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  font-size: clamp(32px, 5vw, 56px) !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
  margin: 0 auto 16px auto !important;
  max-width: 880px;
  color: var(--k-cream) !important;
  text-transform: none !important;
}
body.abc-seo-landing .abc-portfolio-cta .elementor-widget-text-editor p {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: rgba(248, 247, 245, 0.72) !important;
  max-width: 560px;
  margin: 0 auto 40px auto !important;
}

/* Two buttons — primary gold, secondary ghost outline */
body.abc-seo-landing .abc-portfolio-cta .elementor-widget-button {
  display: inline-block;
}
body.abc-seo-landing .abc-portfolio-cta .elementor-widget-button .elementor-button {
  font-family: 'Cal Sans', sans-serif !important;
  font-size: 14px !important;
  letter-spacing: 0.04em !important;
  font-weight: 500 !important;
  padding: 18px 32px !important;
  border-radius: 0 !important;
  text-transform: none !important;
  transition: all 0.3s ease;
  min-width: 220px;
}
/* First button = primary (gold solid) */
body.abc-seo-landing .abc-portfolio-cta .elementor-widget-button:nth-of-type(1) .elementor-button {
  background: var(--k-gold) !important;
  color: var(--k-dark) !important;
  border: 1px solid var(--k-gold) !important;
}
body.abc-seo-landing .abc-portfolio-cta .elementor-widget-button:nth-of-type(1) .elementor-button:hover {
  background: var(--k-cream) !important;
  border-color: var(--k-cream) !important;
  color: var(--k-dark) !important;
  transform: translateY(-2px);
}
/* Second button = ghost (outline) */
body.abc-seo-landing .abc-portfolio-cta .elementor-widget-button:nth-of-type(2) .elementor-button {
  background: transparent !important;
  color: var(--k-gold) !important;
  border: 1px solid var(--k-gold-line) !important;
  font-family: var(--k-mono) !important;
  letter-spacing: 0.06em !important;
}
body.abc-seo-landing .abc-portfolio-cta .elementor-widget-button:nth-of-type(2) .elementor-button:hover {
  background: rgba(202, 160, 92, 0.08) !important;
  border-color: var(--k-gold) !important;
}

/* ── 10. Mobile responsive (375px+) ───────────────────────────────────────── */
@media (max-width: 768px) {
  body.abc-seo-landing .e-con.e-parent {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }
  body.abc-seo-landing .abc-portfolio-hero {
    padding-top: 96px !important;
    padding-bottom: 80px !important;
  }
  body.abc-seo-landing .abc-portfolio-hero h1.elementor-heading-title {
    font-size: clamp(34px, 9vw, 48px) !important;
  }
  body.abc-seo-landing .abc-editorial-row {
    grid-template-columns: 1fr 1fr !important;
    grid-auto-rows: 220px !important;
  }
  body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-huge,
  body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-tall,
  body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-wide {
    grid-column: span 2;
    grid-row: span 1;
  }
  body.abc-seo-landing .abc-why-item {
    grid-template-columns: 56px 1fr !important;
    gap: 16px !important;
    padding: 18px 0 !important;
  }
  body.abc-seo-landing .abc-why-item .elementor-widget-heading:first-child .elementor-heading-title {
    font-size: 22px !important;
  }
  body.abc-seo-landing .abc-offer-section .elementor-icon-list-item .elementor-icon-list-text {
    font-size: 15px;
    padding-left: 56px;
  }
  body.abc-seo-landing .abc-portfolio-cta .elementor-widget-button .elementor-button {
    min-width: auto;
    width: 100%;
  }
  body.abc-seo-landing .abc-proc-col {
    min-height: 160px !important;
    padding: 22px 18px !important;
  }
  body.abc-seo-landing .abc-proc-col .elementor-widget-heading:first-child .elementor-heading-title {
    font-size: 44px !important;
  }
  body.abc-seo-landing .abc-local-seo::after {
    font-size: 10px;
    letter-spacing: 0.12em;
  }
  /* Stats band — collapse to 2 columns on mobile */
  body.abc-seo-landing .abc-stats-row {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  body.abc-seo-landing .abc-stat-col {
    padding: 28px 20px !important;
    min-height: 140px;
  }
}

/* Editorial grid — single column on small phones (≤540px). At 2 columns
   below ~430px the cards become too narrow and the project titles wrap
   awkwardly against the bottom edge. One column gives each photo room to
   breathe and the title sits comfortably. */
@media (max-width: 540px) {
  body.abc-seo-landing .abc-editorial-row {
    grid-template-columns: 1fr !important;
    grid-auto-rows: 240px !important;
    gap: 1px !important;
  }
  body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-huge,
  body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-tall,
  body.abc-seo-landing .abc-editorial-row .abc-pcard.abc-wide {
    grid-column: auto;
    grid-row: auto;
  }
  body.abc-seo-landing .abc-editorial-row .abc-pcard-label {
    font-size: 20px;
    left: 22px; right: 22px; bottom: 22px;
  }
  body.abc-seo-landing .abc-editorial-row .abc-pcard-tag {
    font-size: 9px;
    padding: 5px 9px;
  }
}

/* End kitchen SEO landing redesign */

/* ═══════════════════════════════════════════════════════════════════════════
   GLOBAL NAV — refine the parent dropdown indicators
   Antra renders a chevron via a custom icon font (antra-icon) on
   .menu-item-has-children > a::after. The default rendering is inconsistent
   (sometimes up, sometimes down, ill-aligned with the menu type). Replace
   with a refined geometric "+" in our monospace stack — coherent with the
   Blueprint Grid identity used everywhere else.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Top-level menu items with children — CSS-drawn open chevron "v" pointing
   down. Two diagonal lines (rotated square w/ 2 borders). Refined,
   architectural, identical at all levels. */
.main-navigation ul.menu > li.menu-item-has-children > a::after,
.main-navigation ul.nav-menu > li.menu-item-has-children > a::after,
.main-navigation ul.menu > li.menu-item-has-children > .sub-menu:not(.mega-menu) > li.menu-item-has-children > a::after,
.main-navigation ul.nav-menu > li.menu-item-has-children > .sub-menu:not(.mega-menu) > li.menu-item-has-children > a::after {
  font-family: inherit !important;
  content: "" !important;
  display: inline-block !important;
  width: 7px !important;
  height: 7px !important;
  border-left: 0 !important;
  border-top: 0 !important;
  border-right: 1.5px solid currentColor !important;
  border-bottom: 1.5px solid currentColor !important;
  transform: rotate(45deg) !important;
  margin-left: 10px !important;
  margin-bottom: 4px !important;
  vertical-align: middle !important;
  opacity: 0.7;
  transition: opacity 0.2s ease, transform 0.25s ease, margin-bottom 0.25s ease;
  font-size: 0 !important;
  line-height: 0 !important;
  background: transparent !important;
}

/* Hover/open — chevron flips up (open indicator) */
.main-navigation ul.menu > li.menu-item-has-children:hover > a::after,
.main-navigation ul.nav-menu > li.menu-item-has-children:hover > a::after,
.main-navigation ul.menu > li.menu-item-has-children > .sub-menu li.menu-item-has-children:hover > a::after,
.main-navigation ul.nav-menu > li.menu-item-has-children > .sub-menu li.menu-item-has-children:hover > a::after {
  opacity: 1;
  transform: rotate(-135deg) !important;
  margin-bottom: -2px !important;
}

/* Cancel the parent theme's hover-rotation rule on .menu-item-has-children::after
   (which targets the LI itself, not our anchor::after). */
.main-navigation ul.menu > li.menu-item-has-children:hover::after,
.main-navigation ul.menu > li.page_item_has_children:hover::after,
.main-navigation ul.nav-menu > li.menu-item-has-children:hover::after {
  transform: none !important;
}

/* ── Fix sub-menu disappearing when mouse crosses gaps ──
   Antra leaves a vertical gap between top-level link and first dropdown,
   and a horizontal gap (margin-left: 8px) between first and second
   sub-menus. When the mouse crosses these gaps the :hover state breaks
   and the menu collapses. Pull the sub-menus tight against their parents
   so the hover region is continuous (no gaps to cross). */

/* First sub-menu sits flush under the top-level menu bar — kill the
   visual gap that breaks the hover trail. */
.main-navigation ul.menu > li.menu-item-has-children > .sub-menu,
.main-navigation ul.nav-menu > li.menu-item-has-children > .sub-menu {
  margin-top: 0 !important;
  padding-top: 12px !important;
  background-clip: padding-box;
}

/* Top-level item gets bottom padding so its hover area extends down to the
   sub-menu's edge. */
.main-navigation ul.menu > li.menu-item-has-children,
.main-navigation ul.nav-menu > li.menu-item-has-children {
  padding-bottom: 0;
}

/* Second-level sub-menu: kill the 8px margin-left gap so it sits flush
   against the parent li's right edge. */
.main-navigation ul.menu .sub-menu li.menu-item-has-children > .sub-menu,
.main-navigation ul.nav-menu .sub-menu li.menu-item-has-children > .sub-menu {
  margin-left: 0 !important;
  padding-left: 6px !important;
  background-clip: padding-box;
}

/* End global nav refinement */

/* ═══════════════════════════════════════════════════════════════════════════
   LANGUAGE SWITCHER (EN / ES) — injected into header nav by JS in functions.php
   ═══════════════════════════════════════════════════════════════════════════ */
.abc-lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 18px;
  padding: 6px 12px;
  border: 1px solid rgba(28, 28, 29, 0.14);
  border-radius: 999px;
  background: transparent;
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  line-height: 1;
  flex-shrink: 0;
}
.abc-lang-switch__link {
  color: rgba(28, 28, 29, 0.55);
  text-decoration: none !important;
  transition: color 0.2s ease;
  padding: 2px 4px;
  font-weight: 500;
}
.abc-lang-switch__link:hover {
  color: #1C1C1D;
}
.abc-lang-switch__link.is-active {
  color: #CAA05C;
}
.abc-lang-switch__sep {
  color: rgba(28, 28, 29, 0.25);
  pointer-events: none;
}
@media (max-width: 768px) {
  .abc-lang-switch {
    margin: 0 10px;
    padding: 5px 10px;
    font-size: 10px;
  }
}
/* End language switcher */

/* ═══════════════════════════════════════════════════════════════════════════
   DARK HERO (.abc-portfolio-hero) — used on Contact, Projects, About hero
   blocks where the section background is set to #1C1C1D. Without these
   overrides the heading widgets inherit Elementor's default dark heading
   color and become invisible (black text on near-black background).
   Also adds a clean separator/contrast against the white site header above.
   ═══════════════════════════════════════════════════════════════════════════ */
.abc-portfolio-hero,
.abc-section.abc-portfolio-hero {
  position: relative;
  /* small top inset so the dark band visually detaches from the white nav */
  border-top: 1px solid rgba(202, 160, 92, 0.18);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  overflow: hidden;
  isolation: isolate;
}
/* Architectural photo + blueprint grid behind the hero text — fills the
   empty black void without competing with the H1 readability. The photo is
   nearly hidden by a heavy dark overlay (~92%) and a soft right-to-left
   gradient that fades it out where the bullets sit. */
.abc-portfolio-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image:
    /* Dark overlay (right side stronger to keep bullets readable) */
    linear-gradient(90deg,
      rgba(28, 28, 29, 0.78) 0%,
      rgba(28, 28, 29, 0.86) 45%,
      rgba(28, 28, 29, 0.94) 100%),
    /* Architectural reference photo — modern Miami home, same one used on
       the home hero so the brand image stays consistent across pages. */
    url('/wp-content/uploads/revslider/slider-1/h1-slider2.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  filter: saturate(0.55) contrast(0.95);
}
/* Blueprint grid on top — subtle gold lines every 40px, characteristic of
   the Add Building Contractor "Blueprint Grid" identity. */
.abc-portfolio-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.06) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}
/* Make sure direct children sit above the bg layers */
.abc-portfolio-hero > * { position: relative; z-index: 1; }
.abc-portfolio-hero h1,
.abc-portfolio-hero h2,
.abc-portfolio-hero h3,
.abc-portfolio-hero .elementor-heading-title,
.abc-portfolio-hero-title .elementor-heading-title,
.abc-portfolio-hero p,
.abc-portfolio-hero li,
.abc-portfolio-hero .elementor-icon-list-item,
.abc-portfolio-hero .elementor-icon-list-text {
  color: #F8F7F5 !important;
}
.abc-portfolio-hero .elementor-heading-title span.c-primary,
.abc-portfolio-hero .c-primary {
  color: #CAA05C !important;
}
/* Eyebrow / cartouche label sits in gold against the dark bg */
.abc-portfolio-hero .elementor-sub-title,
.abc-portfolio-hero .antra-subtitle {
  color: #CAA05C !important;
  letter-spacing: 0.18em;
}
/* List icons inherit gold so the bullet check marks are visible */
.abc-portfolio-hero .elementor-icon-list-icon i,
.abc-portfolio-hero .elementor-icon-list-icon svg {
  color: #CAA05C !important;
  fill: #CAA05C !important;
}
/* End dark hero */

/* ═══════════════════════════════════════════════════════════════════════════
   INLINE CONTACT SECTION (.abc-inline-contact)
   Replaces the redundant "A structured start" + "Build the next one"
   CTAs on /contact/ + /es/contacto/ with the four contact channels rendered
   inline, using the Blueprint Grid language of the modal: dark bg, gold grid
   pattern, hairline gold corners, gold cartouche label, and a 2x2 card grid
   that collapses to a single column on mobile.
   ═══════════════════════════════════════════════════════════════════════════ */
.abc-inline-contact {
  position: relative;
  background: #1C1C1D;
  padding: 96px 24px 88px;
  overflow: hidden;
}
.abc-inline-contact__bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.07) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}
.abc-inline-contact__inner {
  position: relative;
  max-width: 1080px;
  margin: 0 auto;
  padding: 56px 56px 48px;
  border: 1px solid rgba(202, 160, 92, 0.22);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.025) 0%, rgba(255, 255, 255, 0) 100%);
}
@media (max-width: 720px) {
  .abc-inline-contact { padding: 64px 16px 56px; }
  .abc-inline-contact__inner { padding: 40px 22px 32px; }
}

/* Architectural corner crop marks */
.abc-inline-contact__corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border-color: #CAA05C;
  border-style: solid;
  border-width: 0;
  pointer-events: none;
}
.abc-inline-contact__corner--tl { top: -1px; left: -1px;  border-top-width: 2px;    border-left-width: 2px; }
.abc-inline-contact__corner--tr { top: -1px; right: -1px; border-top-width: 2px;    border-right-width: 2px; }
.abc-inline-contact__corner--bl { bottom: -1px; left: -1px;  border-bottom-width: 2px; border-left-width: 2px; }
.abc-inline-contact__corner--br { bottom: -1px; right: -1px; border-bottom-width: 2px; border-right-width: 2px; }

/* Cartouche reference label */
.abc-inline-contact__cartouche {
  position: absolute;
  top: 18px;
  right: 56px;
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", monospace;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  color: rgba(202, 160, 92, 0.65);
}
@media (max-width: 720px) {
  .abc-inline-contact__cartouche { right: 22px; top: 14px; font-size: 9.5px; }
}

/* Header */
.abc-inline-contact__head {
  text-align: center;
  margin-bottom: 44px;
}
.abc-inline-contact__eyebrow {
  font-family: 'Good Times', sans-serif;
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: #CAA05C;
  margin: 0 0 16px;
}
.abc-inline-contact__title {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.05;
  text-transform: uppercase;
  color: #F8F7F5;
  margin: 0 0 18px;
  letter-spacing: -0.005em;
}
.abc-inline-contact__title-accent {
  color: #CAA05C;
  font-style: italic;
}
.abc-inline-contact__sub {
  font-family: 'Cal Sans', 'Lato', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(248, 247, 245, 0.72);
  max-width: 560px;
  margin: 0 auto;
}

/* Grid of channels: 2x2 desktop, 1col mobile */
.abc-inline-contact__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 36px;
}
@media (max-width: 720px) {
  .abc-inline-contact__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* Each channel card */
.abc-inline-card {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 24px;
  border: 1px solid rgba(202, 160, 92, 0.18);
  background: rgba(255, 255, 255, 0.018);
  text-decoration: none !important;
  color: #F8F7F5;
  transition: border-color 0.22s ease, background 0.22s ease, transform 0.22s ease;
  position: relative;
}
.abc-inline-card:hover {
  border-color: rgba(202, 160, 92, 0.55);
  background: rgba(202, 160, 92, 0.06);
  transform: translateY(-1px);
}
.abc-inline-card:focus-visible {
  outline: 2px solid #CAA05C;
  outline-offset: 2px;
}

/* The primary card uses gold accent — WhatsApp gets it because it's the
   fastest channel; rest stay outlined to keep visual hierarchy. */
.abc-inline-card--wa {
  border-color: #CAA05C;
  background: linear-gradient(180deg, rgba(202, 160, 92, 0.12), rgba(202, 160, 92, 0.04));
}
.abc-inline-card--wa:hover {
  border-color: #CAA05C;
  background: rgba(202, 160, 92, 0.18);
}

.abc-inline-card__glyph {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(202, 160, 92, 0.28);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.25);
  color: #CAA05C;
}
.abc-inline-card__glyph svg {
  width: 20px;
  height: 20px;
  display: block;
}
.abc-inline-card--wa .abc-inline-card__glyph {
  background: rgba(202, 160, 92, 0.16);
  border-color: rgba(202, 160, 92, 0.55);
}
.abc-inline-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.abc-inline-card__label {
  font-family: 'Cal Sans', 'Lato', sans-serif;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.2;
  color: #F8F7F5;
  margin-bottom: 4px;
}
.abc-inline-card__sub {
  font-family: 'Golos Text', 'Lato', sans-serif;
  font-size: 13px;
  line-height: 1.4;
  color: rgba(248, 247, 245, 0.62);
}
.abc-inline-card__sub--mono {
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", monospace;
  letter-spacing: 0.04em;
  font-size: 12.5px;
  color: rgba(248, 247, 245, 0.78);
}

/* Right-aligned mini CTA chip on each card */
.abc-inline-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Good Times', sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #CAA05C;
  flex-shrink: 0;
  white-space: nowrap;
}
.abc-inline-card__cta svg { width: 13px; height: 13px; transition: transform 0.22s ease; }
.abc-inline-card:hover .abc-inline-card__cta svg { transform: translateX(3px); }

@media (max-width: 720px) {
  .abc-inline-card { padding: 18px 16px; gap: 14px; }
  .abc-inline-card__glyph { flex-basis: 38px; width: 38px; height: 38px; }
  .abc-inline-card__glyph svg { width: 17px; height: 17px; }
  .abc-inline-card__label { font-size: 16px; }
  .abc-inline-card__cta { display: none; } /* implicit on mobile, whole card is tap target */
}

/* Trust strip — bottom hairline + 3 chips */
.abc-inline-contact__trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  padding-top: 28px;
  border-top: 1px solid rgba(202, 160, 92, 0.18);
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(248, 247, 245, 0.55);
}
.abc-inline-contact__trust-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(202, 160, 92, 0.45);
  flex-shrink: 0;
}

/* Hide the redundant global footer CTA on contact pages — the inline
   section above replaces it. Same logic on SEO landings: each landing
   already has its own "Start your kitchen/bathroom/etc project today"
   CTA, so the generic "Build the next one with us" footer block is
   pure duplication. */
body.page-id-9222 .abc-global-cta,
body.page-id-9466 .abc-global-cta,
body.abc-seo-landing .abc-global-cta,
body.has-abc-service-page .abc-global-cta {
  display: none !important;
}

/* Also hide the duplicate "A structured start" / "Request a free estimate"
   block that sits just above the global CTA on contact pages. The HTML
   structure is consistent: a heading + small intro + 2 buttons. We target
   the block by its widget id to avoid affecting other pages. */
body.page-id-9222 [data-id="346615a"],
body.page-id-9222 [data-id="fda06f8"],
body.page-id-9466 [data-id="346615a"],
body.page-id-9466 [data-id="fda06f8"] {
  /* keep the heading section but tighten — we still want the quote, just
     not the duplicate buttons. The inline contact section appears before
     the global footer CTA, providing the actual contact options. */
  margin-bottom: 0 !important;
}
/* Remove the duplicated action buttons in the structured-start block.
   The two button widgets (id d544fd1 + 1013b42) sit under the quote and
   provide the same actions as the inline contact section that follows. */
body.page-id-9222 [data-id="d544fd1"],
body.page-id-9222 [data-id="1013b42"],
body.page-id-9466 [data-id="d544fd1"],
body.page-id-9466 [data-id="1013b42"] {
  display: none !important;
}

/* Center the supporting subtext under the "Every successful project..."
   quote on the contact pages. The text-editor widget (id 4aec647) inherits
   `text-align: start` by default, which leaves the centered quote above
   it sitting over a left-aligned paragraph — visually broken. */
body.page-id-9222 [data-id="4aec647"],
body.page-id-9466 [data-id="4aec647"],
body.page-id-9222 [data-id="4aec647"] p,
body.page-id-9466 [data-id="4aec647"] p {
  text-align: center !important;
  max-width: 720px;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* End inline contact section */

/* ═══════════════════════════════════════════════════════════════════════════
   SEO LANDING REFINEMENTS — typography polish + visual punch
   These complement the existing `body.abc-seo-landing` rules with a few
   targeted enhancements that make the four landing pages feel premium and
   editorial rather than dense and small. All scoped to the shared body
   class so kitchen/bathroom/commercial/home all benefit, EN and ES alike.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Process steps: bigger numbers, more breathing room, hover lift */
body.abc-seo-landing .abc-process .abc-proc-row {
  gap: 24px !important;
  padding: 8px 0;
}
body.abc-seo-landing .abc-proc-col {
  padding: 28px 20px !important;
  border: 1px solid rgba(202, 160, 92, 0.18);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.018);
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
body.abc-seo-landing .abc-proc-col:hover {
  transform: translateY(-3px);
  border-color: rgba(202, 160, 92, 0.55);
  background: rgba(202, 160, 92, 0.06);
}
body.abc-seo-landing .abc-proc-col .elementor-widget-heading:first-child .elementor-heading-title {
  font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
  font-size: 38px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  color: #CAA05C !important;
  margin-bottom: 14px !important;
  letter-spacing: 0.04em;
}
body.abc-seo-landing .abc-proc-col h4.elementor-heading-title {
  font-family: 'Cal Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  color: rgba(248, 247, 245, 0.92) !important;
  letter-spacing: 0.01em;
  text-transform: none !important;
}

/* Stats: BIG numbers, refined labels */
body.abc-seo-landing .abc-stats-band {
  padding-top: 90px !important;
  padding-bottom: 90px !important;
}
body.abc-seo-landing .abc-stats-row {
  gap: 24px !important;
}
body.abc-seo-landing .abc-stat-col {
  padding: 32px 16px !important;
  text-align: center;
  border-left: 1px solid rgba(202, 160, 92, 0.18);
}
body.abc-seo-landing .abc-stat-col:first-child { border-left: none; }
body.abc-seo-landing .abc-stat-col .abc-stat-num .elementor-heading-title,
body.abc-seo-landing .abc-stat-col h2.elementor-heading-title:first-child,
body.abc-seo-landing .abc-stat-col h3.elementor-heading-title:first-child {
  font-family: 'Good Times', sans-serif !important;
  font-size: clamp(48px, 5.5vw, 76px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  color: #CAA05C !important;
  margin-bottom: 12px !important;
  letter-spacing: -0.01em;
}
body.abc-seo-landing .abc-stat-col .abc-stat-lbl .elementor-heading-title,
body.abc-seo-landing .abc-stat-col h5.elementor-heading-title,
body.abc-seo-landing .abc-stat-col h6.elementor-heading-title {
  font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: rgba(248, 247, 245, 0.62) !important;
}

/* Why us cards: bigger numbers, better hover, real card feel */
body.abc-seo-landing .abc-why-section {
  padding: 110px 24px !important;
}
body.abc-seo-landing .abc-why-item {
  position: relative;
  padding: 24px 28px 24px 88px !important;
  margin-bottom: 14px !important;
  border: 1px solid rgba(202, 160, 92, 0.14);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.016);
  transition: border-color 0.25s ease, background 0.25s ease, padding-left 0.25s ease;
}
body.abc-seo-landing .abc-why-item:hover {
  padding-left: 96px !important;
  border-color: rgba(202, 160, 92, 0.55);
  background: rgba(202, 160, 92, 0.05);
}
/* Big monospace number positioned absolutely on the left */
body.abc-seo-landing .abc-why-item .elementor-widget-heading:first-child .elementor-heading-title {
  position: absolute !important;
  top: 22px !important;
  left: 24px !important;
  font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
  font-size: 22px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
  color: #CAA05C !important;
  letter-spacing: 0.04em;
  margin: 0 !important;
}
body.abc-seo-landing .abc-why-item h3.elementor-heading-title {
  font-family: 'Cal Sans', 'Lato', sans-serif !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  color: #F8F7F5 !important;
  margin: 0 !important;
}

/* Editorial photo grid: bigger labels and tags, smoother hover */
body.abc-seo-landing .abc-editorial-row .abc-pcard-tag {
  padding: 5px 12px !important;
  font-size: 10px !important;
  letter-spacing: 0.18em !important;
  background: #CAA05C !important;
  color: #1C1C1D !important;
}
body.abc-seo-landing .abc-editorial-row .abc-pcard-num {
  font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
  color: rgba(248, 247, 245, 0.55) !important;
}
body.abc-seo-landing .abc-editorial-row .abc-pcard-label {
  font-family: 'Cal Sans', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: #F8F7F5 !important;
}

/* Rich intro section: more vertical breathing room and softer body color */
body.abc-seo-landing .abc-rich-intro {
  padding-top: 110px !important;
  padding-bottom: 110px !important;
}
body.abc-seo-landing .abc-rich-intro h2.elementor-heading-title {
  font-family: 'Good Times', sans-serif !important;
  font-size: clamp(28px, 3vw, 44px) !important;
  line-height: 1.18 !important;
  margin-bottom: 22px !important;
}
body.abc-seo-landing .abc-rich-intro p {
  font-size: 17px !important;
  line-height: 1.75 !important;
  color: rgba(28, 28, 29, 0.72) !important;
  max-width: 780px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Offer section: improve list typography */
body.abc-seo-landing .abc-offer-section h2.elementor-heading-title {
  font-family: 'Good Times', sans-serif !important;
  font-size: clamp(26px, 2.6vw, 38px) !important;
  line-height: 1.18 !important;
  margin-bottom: 28px !important;
}
body.abc-seo-landing .abc-offer-text .elementor-icon-list-text {
  font-family: 'Cal Sans', 'Lato', sans-serif !important;
  font-size: 17px !important;
  line-height: 1.55 !important;
  color: rgba(28, 28, 29, 0.85) !important;
  font-weight: 500;
}
/* DO NOT override padding here — the parent rule sets `padding: 18px 0 18px 60px`
   which leaves room for the gold absolutely-positioned counter on the left.
   Overriding it caused the counter to overlap the first letter of each item. */

/* Local coverage: center, more padding */
body.abc-seo-landing .abc-local-seo {
  padding: 80px 24px !important;
}
body.abc-seo-landing .abc-local-seo h2.elementor-heading-title {
  font-family: 'Good Times', sans-serif !important;
  font-size: clamp(22px, 2.2vw, 32px) !important;
  line-height: 1.25 !important;
}
body.abc-seo-landing .abc-local-seo p {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: rgba(28, 28, 29, 0.72) !important;
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Mobile responsive: stack the 6-column process to 2-3 columns */
@media (max-width: 900px) {
  body.abc-seo-landing .abc-process .abc-proc-row {
    flex-wrap: wrap !important;
    gap: 16px !important;
  }
  body.abc-seo-landing .abc-proc-col {
    flex: 1 1 calc(50% - 8px) !important;
    min-width: calc(50% - 8px);
  }
  body.abc-seo-landing .abc-proc-col .elementor-widget-heading:first-child .elementor-heading-title {
    font-size: 30px !important;
  }
}
@media (max-width: 480px) {
  body.abc-seo-landing .abc-proc-col {
    flex: 1 1 100% !important;
    min-width: 100%;
  }
  body.abc-seo-landing .abc-stats-row {
    flex-wrap: wrap !important;
  }
  body.abc-seo-landing .abc-stat-col {
    flex: 1 1 50% !important;
    min-width: 50%;
    border-left: none;
    border-bottom: 1px solid rgba(202, 160, 92, 0.18);
    padding: 24px 12px !important;
  }
  body.abc-seo-landing .abc-stat-col .abc-stat-num .elementor-heading-title,
  body.abc-seo-landing .abc-stat-col h2.elementor-heading-title:first-child,
  body.abc-seo-landing .abc-stat-col h3.elementor-heading-title:first-child {
    font-size: 44px !important;
  }
  body.abc-seo-landing .abc-why-item {
    padding: 20px 18px 20px 64px !important;
  }
  body.abc-seo-landing .abc-why-item .elementor-widget-heading:first-child .elementor-heading-title {
    left: 18px !important;
    font-size: 18px !important;
  }
  body.abc-seo-landing .abc-why-item h3.elementor-heading-title {
    font-size: 15px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MOBILE MENU — single chevron only
   The Antra mobile menu renders TWO chevrons on items with submenus:
   1. `a::after` content "›" (gold) — added by the parent theme
   2. `button.dropdown-toggle` — a clickable area that some browsers render
      with a default arrow indicator
   We hide the button to keep only the gold chevron, and rely on tapping
   anywhere on the row (which the parent `<a>` covers) to expand. The submenu
   toggle JS still works because Antra binds it to the entire menu item.
   ═══════════════════════════════════════════════════════════════════════════ */
/* dropdown-toggle: hidden, a::after chevron handles visual indicator */
.mobile-navigation .dropdown-toggle,
.mobile-navigation-categories .dropdown-toggle,
.antra-mobile-nav .dropdown-toggle,
.mobile-menu-wrap .dropdown-toggle {
  display: none !important;
}
/* Gold chevron on items with children */
.antra-mobile-nav .menu-item-has-children > a {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}
.antra-mobile-nav .menu-item-has-children > a::after {
  content: "" !important;
  display: inline-block !important;
  width: 8px !important;
  height: 8px !important;
  border-right: 2px solid #CAA05C !important;
  border-bottom: 2px solid #CAA05C !important;
  transform: rotate(45deg) !important;
  transition: transform 0.3s ease !important;
  flex-shrink: 0 !important;
  margin-left: 12px !important;
}
.antra-mobile-nav .menu-item-has-children.submenu-open > a::after {
  transform: rotate(-135deg) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PROJECTS PAGE (page-id 9224) — filter tabs + grid refinements
   The tabs row is injected by JS in functions.php just before the
   antra-project widget output. Each .antra-item gets a data-category
   attribute, and is hidden via .is-hidden when its category doesn't
   match the active tab. Coherent with Blueprint Grid identity.
   ═══════════════════════════════════════════════════════════════════════════ */

body.page-id-9224 .abc-projects-tabs , body.page-id-9468 .abc-projects-tabs {
  max-width: 1240px;
  margin: 0 auto 56px auto;
  padding: 0 24px;
  text-align: center;
}

body.page-id-9224 .abc-projects-tabs__cartouche , body.page-id-9468 .abc-projects-tabs__cartouche {
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.24em;
  color: #CAA05C;
  text-transform: uppercase;
  margin-bottom: 18px;
  font-weight: 500;
  text-align: center;
}

body.page-id-9224 .abc-projects-tabs__list , body.page-id-9468 .abc-projects-tabs__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0;
  border-top: 1px solid rgba(28, 28, 29, 0.10);
  border-bottom: 1px solid rgba(28, 28, 29, 0.10);
}

body.page-id-9224 .abc-projects-tab , body.page-id-9468 .abc-projects-tab {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 18px 24px;
  cursor: pointer;
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  font-family: 'Cal Sans', sans-serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: rgba(28, 28, 29, 0.55);
  position: relative;
  transition: color 0.25s ease;
  text-transform: none;
}

body.page-id-9224 .abc-projects-tab:hover , body.page-id-9468 .abc-projects-tab:hover {
  color: #1C1C1D;
}

body.page-id-9224 .abc-projects-tab::after , body.page-id-9468 .abc-projects-tab::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: #CAA05C;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

body.page-id-9224 .abc-projects-tab.is-active , body.page-id-9468 .abc-projects-tab.is-active {
  color: #1C1C1D;
}
body.page-id-9224 .abc-projects-tab.is-active::after , body.page-id-9468 .abc-projects-tab.is-active::after {
  transform: scaleX(1);
}

body.page-id-9224 .abc-projects-tab__count , body.page-id-9468 .abc-projects-tab__count {
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: #CAA05C;
  font-variant-numeric: tabular-nums;
  font-weight: 400;
}

/* Grid layout for the antra-item cards — force a clean 3-column grid
   instead of the widget's flex-fallback that was producing odd row counts. */
body.page-id-9224 .elementor-widget-antra-project .antra-list-wrapper , body.page-id-9468 .elementor-widget-antra-project .antra-list-wrapper {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.page-id-9224 .antra-item , body.page-id-9468 .antra-item {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

body.page-id-9224 .antra-item.is-hidden , body.page-id-9468 .antra-item.is-hidden {
  display: none !important;
}

/* The antra-project-style-3 markup has TWO .project-category badges (one in
   the image transition layer, one in the text-box layer) and the text-box
   stacks them on top of the title — they collide visually. Re-architect the
   card so it renders as: image (fills card) + text overlay at bottom with
   a clean column layout (category pill, then title, then meta). */

/* Card container — overflow hidden + position relative for stacking */
body.page-id-9224 .antra-item , body.page-id-9468 .antra-item {
  position: relative;
}
body.page-id-9224 .antra-item .project-block , body.page-id-9468 .antra-item .project-block {
  position: relative;
  overflow: hidden;
  height: 100%;
}

/* Hide the duplicate category badge inside .project-transition so only the
   one in .project-text-box is visible. */
body.page-id-9224 .antra-item .project-transition > .project-category , body.page-id-9468 .antra-item .project-transition > .project-category {
  display: none !important;
}

/* The image fills the whole card — let it sit at full size, no extra
   bottom padding for text. */
body.page-id-9224 .antra-item .project-transition , body.page-id-9468 .antra-item .project-transition {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
body.page-id-9224 .antra-item .project-image, body.page-id-9468 .antra-item .project-image,
body.page-id-9224 .antra-item .project-image figure, body.page-id-9468 .antra-item .project-image figure,
body.page-id-9224 .antra-item .project-image a , body.page-id-9468 .antra-item .project-image a {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
}
body.page-id-9224 .antra-item .project-image img , body.page-id-9468 .antra-item .project-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.5s ease;
}
body.page-id-9224 .antra-item:hover .project-image img , body.page-id-9468 .antra-item:hover .project-image img {
  transform: scale(1.04);
}

/* Hide project text overlay — client wants images only, no titles/captions */
body.page-id-9224 .antra-item .project-text-box,
body.page-id-9468 .antra-item .project-text-box {
  display: none !important;
}

/* Uniform aspect ratio for all project cards */
body.page-id-9224 .antra-item .project-image,
body.page-id-9468 .antra-item .project-image {
  aspect-ratio: 4 / 3 !important;
  overflow: hidden !important;
}
body.page-id-9224 .antra-item .project-image img,
body.page-id-9468 .antra-item .project-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Re-enable pointer events on actual links inside the overlay */
body.page-id-9224 .antra-item .project-text-box a , body.page-id-9468 .antra-item .project-text-box a {
  pointer-events: auto;
}

/* Category badge — small uppercase mono pill, gold border. Force visible
   because the parent theme's project-style-3 hides this badge by default
   (it expects only the transition-layer one to show, but we hid that). */
body.page-id-9224 .antra-item .project-text-box > .project-category , body.page-id-9468 .antra-item .project-text-box > .project-category {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  line-height: 1 !important;
}
body.page-id-9224 .antra-item .project-text-box > .project-category a, body.page-id-9468 .antra-item .project-text-box > .project-category a,
body.page-id-9224 .antra-item .project-text-box > .project-category a:link, body.page-id-9468 .antra-item .project-text-box > .project-category a:link,
body.page-id-9224 .antra-item .project-text-box > .project-category a:visited, body.page-id-9468 .antra-item .project-text-box > .project-category a:visited,
body.page-id-9224 .antra-item .project-text-box > .project-category a:hover , body.page-id-9468 .antra-item .project-text-box > .project-category a:hover {
  display: inline-block !important;
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  font-weight: 500 !important;
  color: #CAA05C !important;
  text-transform: uppercase !important;
  background: rgba(28, 28, 29, 0.7) !important;
  border: 1px solid rgba(202, 160, 92, 0.45) !important;
  padding: 5px 10px !important;
  text-decoration: none !important;
  line-height: 1 !important;
}

/* Title — Cal Sans white, sentence case */
body.page-id-9224 .antra-item .project-caption , body.page-id-9468 .antra-item .project-caption {
  margin: 0 !important;
}
body.page-id-9224 .antra-item .project-loop-title , body.page-id-9468 .antra-item .project-loop-title {
  margin: 0 !important;
  padding: 0 !important;
  font-family: 'Cal Sans', sans-serif !important;
  font-size: 19px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  color: #F8F7F5 !important;
  text-transform: none !important;
}
body.page-id-9224 .antra-item .project-loop-title a , body.page-id-9468 .antra-item .project-loop-title a {
  color: #F8F7F5 !important;
  text-decoration: none !important;
}

/* Meta row — location + date in monospace, low contrast */
body.page-id-9224 .antra-item .project-content , body.page-id-9468 .antra-item .project-content {
  display: flex !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.page-id-9224 .antra-item .project-content .project-location, body.page-id-9468 .antra-item .project-content .project-location,
body.page-id-9224 .antra-item .project-content .project-date , body.page-id-9468 .antra-item .project-content .project-date {
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono", monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.04em !important;
  color: rgba(248, 247, 245, 0.65) !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
}

/* Subtle gold corner brackets on each card (architectural detail) */
body.page-id-9224 .antra-item .project-block::before, body.page-id-9468 .antra-item .project-block::before,
body.page-id-9224 .antra-item .project-block::after , body.page-id-9468 .antra-item .project-block::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  border: 1px solid rgba(202, 160, 92, 0);
  pointer-events: none;
  z-index: 3;
  transition: border-color 0.35s ease;
}
body.page-id-9224 .antra-item .project-block::before , body.page-id-9468 .antra-item .project-block::before {
  top: 8px; left: 8px;
  border-right: none;
  border-bottom: none;
}
body.page-id-9224 .antra-item .project-block::after , body.page-id-9468 .antra-item .project-block::after {
  bottom: 8px; right: 8px;
  border-left: none;
  border-top: none;
}
body.page-id-9224 .antra-item:hover .project-block::before, body.page-id-9468 .antra-item:hover .project-block::before,
body.page-id-9224 .antra-item:hover .project-block::after , body.page-id-9468 .antra-item:hover .project-block::after {
  border-color: rgba(202, 160, 92, 0.85);
}

/* "View" button overlay on the image — center, gold */
body.page-id-9224 .antra-item .view-btn , body.page-id-9468 .antra-item .view-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.9);
  font-family: ui-monospace, "SF Mono", Menlo, Monaco, monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  font-weight: 500;
  color: #1C1C1D;
  background: #CAA05C;
  padding: 12px 22px;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 4;
  pointer-events: none;
}
body.page-id-9224 .antra-item:hover .view-btn , body.page-id-9468 .antra-item:hover .view-btn {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* Mobile responsive — stack tabs vertically with horizontal scroll */
@media (max-width: 900px) {
  body.page-id-9224 .elementor-widget-antra-project .antra-list-wrapper , body.page-id-9468 .elementor-widget-antra-project .antra-list-wrapper {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }
  body.page-id-9224 .abc-projects-tabs__list , body.page-id-9468 .abc-projects-tabs__list {
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  body.page-id-9224 .abc-projects-tabs__list::-webkit-scrollbar , body.page-id-9468 .abc-projects-tabs__list::-webkit-scrollbar { display: none; }
  body.page-id-9224 .abc-projects-tab , body.page-id-9468 .abc-projects-tab {
    padding: 16px 18px;
    font-size: 14px;
    white-space: nowrap;
  }
}

@media (max-width: 600px) {
  body.page-id-9224 .elementor-widget-antra-project .antra-list-wrapper , body.page-id-9468 .elementor-widget-antra-project .antra-list-wrapper {
    grid-template-columns: 1fr !important;
  }
}

/* End projects page filter tabs */

/* ═══════════════════════════════════════════════════════════════════════════
   PROJECT SHOWROOM — single project pages (body.single-project)
   "Project dossier": cinematic hero, drawing-title-block specs, editorial
   story, asymmetric photo plates grid, method strip, related work,
   architectural CTA. All scoped under body.single-project so nothing bleeds.
   ═══════════════════════════════════════════════════════════════════════════ */

body.single-project {
  --d-gold: #CAA05C;
  --d-gold-line: rgba(202, 160, 92, 0.18);
  --d-gold-soft: rgba(202, 160, 92, 0.10);
  --d-dark: #1C1C1D;
  --d-cream: #F8F7F5;
  --d-ink: #2A2A2B;
  --d-ink-muted: #5A5A5C;
  --d-mono: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono",
            "Roboto Mono", Consolas, monospace;
  background: var(--d-cream);
}

/* Reset Antra single-project's default sidebar/title block */
body.single-project #primary,
body.single-project #main {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
body.single-project .site-content,
body.single-project .content-area,
body.single-project main.site-main { padding: 0 !important; margin: 0 !important; }
body.single-project .abc-dossier { margin: 0; }

/* Shared cartouche label — used in 7 sections */
body.single-project .abc-dossier-cartouche {
  font-family: var(--d-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--d-gold);
  text-transform: uppercase;
  font-weight: 500;
  display: inline-block;
}
body.single-project .abc-dossier-cartouche--center { text-align: center; display: block; }
body.single-project .abc-dossier-cartouche--dark { color: var(--d-gold); }

/* ── 1. HERO ──────────────────────────────────────────────────────────── */
body.single-project .abc-dossier-hero {
  position: relative;
  width: 100%;
  height: 88vh;
  min-height: 620px;
  overflow: hidden;
  background: var(--d-dark);
}
body.single-project .abc-dossier-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
  animation: dossierKenBurns 22s ease-out forwards;
  transform-origin: center;
}
@keyframes dossierKenBurns {
  from { transform: scale(1.05); }
  to   { transform: scale(1.00); }
}
body.single-project .abc-dossier-hero__gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(28,28,29,0.45) 0%,
    rgba(28,28,29,0.10) 30%,
    rgba(28,28,29,0.55) 70%,
    rgba(28,28,29,0.92) 100%);
  z-index: 2;
}
body.single-project .abc-dossier-hero__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(202,160,92,0.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202,160,92,0.10) 1px, transparent 1px);
  background-size: 40px 40px;
  z-index: 3;
  pointer-events: none;
  mix-blend-mode: overlay;
}
body.single-project .abc-dossier-hero__rule {
  position: absolute;
  top: 80px;
  left: 5%;
  right: 5%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(202,160,92,0.45) 20%, rgba(202,160,92,0.45) 80%, transparent);
  z-index: 4;
}
body.single-project .abc-dossier-hero__cartouche {
  position: absolute;
  top: 56px;
  right: 5%;
  z-index: 5;
  font-family: var(--d-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--d-gold);
  text-transform: uppercase;
}
body.single-project .abc-dossier-hero__inner {
  position: absolute;
  bottom: 12vh;
  left: 5%;
  right: 5%;
  z-index: 5;
  max-width: 980px;
}
body.single-project .abc-dossier-hero__category {
  display: inline-block;
  font-family: var(--d-mono);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--d-gold);
  text-transform: uppercase;
  margin-bottom: 24px;
  padding: 6px 12px;
  border: 1px solid rgba(202,160,92,0.45);
  background: rgba(28,28,29,0.55);
}
body.single-project .abc-dossier-hero__title {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  font-size: clamp(40px, 6.5vw, 88px);
  line-height: 0.95;
  letter-spacing: -0.02em;
  color: var(--d-cream);
  margin: 0 0 24px 0;
  text-transform: uppercase;
  font-weight: 400;
  word-break: keep-all;
  overflow-wrap: break-word;
}
body.single-project .abc-dossier-hero__title em {
  color: var(--d-gold);
  font-style: normal;
}
body.single-project .abc-dossier-hero__lede {
  font-family: 'Cal Sans', sans-serif;
  font-size: clamp(15px, 1.4vw, 19px);
  line-height: 1.55;
  color: rgba(248,247,245,0.78);
  max-width: 640px;
  margin: 0;
  letter-spacing: -0.005em;
}
body.single-project .abc-dossier-hero__scroll {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
body.single-project .abc-dossier-hero__scroll-line {
  display: block;
  width: 1px;
  height: 36px;
  background: rgba(202,160,92,0.7);
  animation: dossierScrollPulse 2.4s ease-in-out infinite;
  transform-origin: top;
}
@keyframes dossierScrollPulse {
  0%,100% { transform: scaleY(1); opacity: 0.7; }
  50%     { transform: scaleY(0.4); opacity: 1; }
}
body.single-project .abc-dossier-hero__scroll-tag {
  font-family: var(--d-mono);
  font-size: 9px;
  letter-spacing: 0.3em;
  color: rgba(202,160,92,0.65);
  text-transform: uppercase;
}

/* ── 2. SPECS STRIP ──────────────────────────────────────────────────── */
body.single-project .abc-dossier-specs {
  background: var(--d-cream);
  background-image:
    linear-gradient(rgba(28,28,29,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(28,28,29,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  padding: 72px 5% 64px;
  border-top: 1px solid rgba(28,28,29,0.06);
  border-bottom: 1px solid rgba(28,28,29,0.06);
}
body.single-project .abc-dossier-specs__inner {
  max-width: 1240px;
  margin: 0 auto;
}
body.single-project .abc-dossier-specs__row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 32px;
  border: 1px solid rgba(28,28,29,0.10);
  background: rgba(248,247,245,0.6);
  position: relative;
}
body.single-project .abc-dossier-specs__row[data-cells="1"] { grid-template-columns: 1fr; }
body.single-project .abc-dossier-specs__row[data-cells="2"] { grid-template-columns: repeat(2, 1fr); }
body.single-project .abc-dossier-specs__row[data-cells="3"] { grid-template-columns: repeat(3, 1fr); }
body.single-project .abc-dossier-specs__cell {
  padding: 28px 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-right: 1px solid rgba(202,160,92,0.30);
  position: relative;
}
body.single-project .abc-dossier-specs__cell::before {
  content: "";
  position: absolute;
  top: 10px; left: 10px;
  width: 6px; height: 6px;
  border-top: 1px solid var(--d-gold);
  border-left: 1px solid var(--d-gold);
}
body.single-project .abc-dossier-specs__cell:last-child { border-right: none; }
body.single-project .abc-dossier-specs__label {
  font-family: var(--d-mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  color: var(--d-gold);
  text-transform: uppercase;
  font-weight: 500;
}
body.single-project .abc-dossier-specs__value {
  font-family: 'Cal Sans', sans-serif;
  font-size: 18px;
  font-weight: 500;
  color: var(--d-dark);
  letter-spacing: -0.01em;
  line-height: 1.3;
}

/* ── 3. THE STORY ────────────────────────────────────────────────────── */
body.single-project .abc-dossier-story {
  background: var(--d-cream);
  padding: 96px 24px 96px;
}
body.single-project .abc-dossier-story__inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
body.single-project .abc-dossier-story__rule {
  display: block;
  width: 60px;
  height: 1px;
  background: var(--d-gold);
  margin: 0 auto 20px;
}
body.single-project .abc-dossier-story .abc-dossier-cartouche--center {
  margin-bottom: 36px;
}
body.single-project .abc-dossier-story__body {
  font-family: 'Golos Text', 'Cal Sans', sans-serif;
  font-size: 18px;
  line-height: 1.7;
  color: var(--d-ink);
  text-align: left;
}
body.single-project .abc-dossier-story__body p {
  margin: 0 0 1.2em 0;
}
body.single-project .abc-dossier-story__body p:last-child { margin-bottom: 0; }
body.single-project .abc-dossier-story__body p:first-child::first-letter {
  font-family: 'Good Times', 'Cal Sans', serif;
  font-size: 3.6em;
  line-height: 0.85;
  color: var(--d-gold);
  float: left;
  margin: 0.05em 0.12em -0.04em 0;
  font-weight: 400;
}

/* ── 4. PHOTO PLATES ─────────────────────────────────────────────────── */
body.single-project .abc-dossier-plates {
  position: relative;
  background: var(--d-dark);
  padding: 80px 5% 96px;
  overflow: hidden;
}
body.single-project .abc-dossier-plates__grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(202,160,92,0.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202,160,92,0.10) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
  z-index: 1;
}
body.single-project .abc-dossier-plates__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 40px;
  position: relative;
  z-index: 2;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--d-gold-line);
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
}
body.single-project .abc-dossier-plates__count {
  font-family: var(--d-mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: rgba(248,247,245,0.7);
  font-variant-numeric: tabular-nums;
}
body.single-project .abc-dossier-plates__count-num {
  color: var(--d-gold);
  font-weight: 500;
}
body.single-project .abc-dossier-plates__count-sep {
  color: rgba(248,247,245,0.4);
  margin: 0 6px;
}

/* The grid: 12 cols, dense flow, varied span pattern.
   Works for any photo count (5–15). First plate is the hero. */
body.single-project .abc-dossier-plates__grid {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 320px;
  grid-auto-flow: row;
  gap: 1px;
  background: var(--d-gold-line);
  padding: 1px;
  position: relative;
  z-index: 2;
  max-width: 1440px;
}

/* Uniform bento cell: every plate identical size */
body.single-project .abc-plate {
  grid-column: span 1;
  grid-row: span 1;
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  list-style: none;
  background: var(--d-dark);
}

/* Uniform bento: neutralize any per-plate sizing — all equal dimensions */
body.single-project .abc-plate[data-plate] {
  grid-column: span 1;
  grid-row: span 1;
}

body.single-project .abc-plate__link {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  cursor: zoom-in;
}
body.single-project .abc-plate__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 0.5s ease;
  filter: brightness(0.92) saturate(1.02);
}
body.single-project .abc-plate__link:hover .abc-plate__img {
  transform: scale(1.05);
  filter: brightness(1) saturate(1.08);
}

/* Plate number — top-left monospace */
body.single-project .abc-plate__num {
  position: absolute;
  top: 14px;
  left: 14px;
  font-family: var(--d-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--d-gold);
  font-weight: 500;
  background: rgba(28,28,29,0.78);
  padding: 5px 10px;
  border: 1px solid rgba(202,160,92,0.35);
  font-variant-numeric: tabular-nums;
  z-index: 3;
  text-transform: uppercase;
  pointer-events: none;
}

/* Corner brackets — appear on hover */
body.single-project .abc-plate__corner {
  position: absolute;
  width: 22px;
  height: 22px;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}
body.single-project .abc-plate__corner--tl {
  top: 6px; left: 6px;
  border-top: 1px solid var(--d-gold);
  border-left: 1px solid var(--d-gold);
}
body.single-project .abc-plate__corner--br {
  bottom: 6px; right: 6px;
  border-bottom: 1px solid var(--d-gold);
  border-right: 1px solid var(--d-gold);
}
body.single-project .abc-plate__link:hover .abc-plate__corner { opacity: 1; }

/* ── 5. METHOD STRIP ─────────────────────────────────────────────────── */
body.single-project .abc-dossier-method {
  background: var(--d-dark);
  padding: 56px 5% 80px;
  border-top: 1px solid var(--d-gold-line);
  background-image:
    linear-gradient(rgba(202,160,92,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202,160,92,0.06) 1px, transparent 1px);
  background-size: 40px 40px;
}
body.single-project .abc-dossier-method__inner {
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}
body.single-project .abc-dossier-method .abc-dossier-cartouche {
  margin-bottom: 36px;
}
body.single-project .abc-dossier-method__list {
  list-style: none;
  margin: 0 0 28px 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  flex-wrap: wrap;
}
body.single-project .abc-dossier-method__list li {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 0 36px;
  border-right: 1px solid var(--d-gold-line);
}
body.single-project .abc-dossier-method__list li:last-child { border-right: none; }
body.single-project .abc-dossier-method__mono {
  font-family: var(--d-mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--d-gold);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
body.single-project .abc-dossier-method__label {
  font-family: 'Cal Sans', sans-serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--d-cream);
  letter-spacing: -0.005em;
}
body.single-project .abc-dossier-method__note {
  font-family: 'Cal Sans', sans-serif;
  font-size: 14px;
  color: rgba(248,247,245,0.55);
  margin: 0;
  letter-spacing: 0.01em;
}

/* ── 6. RELATED PROJECTS ─────────────────────────────────────────────── */
body.single-project .abc-dossier-related {
  background: var(--d-cream);
  background-image:
    linear-gradient(rgba(28,28,29,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(28,28,29,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  padding: 96px 5%;
}
body.single-project .abc-dossier-related__inner {
  max-width: 1240px;
  margin: 0 auto;
}
body.single-project .abc-dossier-related__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 36px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(28,28,29,0.10);
}
body.single-project .abc-dossier-related__archive-link {
  font-family: var(--d-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--d-gold);
  text-transform: uppercase;
  text-decoration: none;
  transition: gap 0.25s ease, color 0.25s ease;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
body.single-project .abc-dossier-related__archive-link:hover {
  gap: 14px;
  color: var(--d-dark);
}
body.single-project .abc-dossier-related__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
body.single-project .abc-dossier-related__item {
  position: relative;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  aspect-ratio: 4 / 3;
}
body.single-project .abc-dossier-related__item .project-block {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--d-dark);
}

/* Clean rebuilt link — replaces all the inherited .project-* markup */
body.single-project .abc-dossier-related__link {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}
body.single-project .abc-dossier-related__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.5s ease, filter 0.4s ease;
  filter: brightness(0.92);
}
body.single-project .abc-dossier-related__link:hover .abc-dossier-related__img {
  transform: scale(1.04);
  filter: brightness(1);
}

/* Pill — small, top-left corner, dark with gold border */
body.single-project .abc-dossier-related__pill {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 3;
  font-family: var(--d-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  font-weight: 500;
  color: var(--d-gold);
  text-transform: uppercase;
  background: rgba(28, 28, 29, 0.78);
  border: 1px solid rgba(202, 160, 92, 0.45);
  padding: 5px 10px;
  line-height: 1;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  pointer-events: none;
}

/* Bottom overlay with gradient — title and meta only */
body.single-project .abc-dossier-related__overlay {
  position: absolute;
  inset: auto 0 0 0;
  padding: 80px 18px 18px;
  background: linear-gradient(180deg,
    rgba(28,28,29,0) 0%,
    rgba(28,28,29,0.65) 55%,
    rgba(28,28,29,0.92) 100%);
  z-index: 2;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
body.single-project .abc-dossier-related__title {
  margin: 0 !important;
  padding: 0 !important;
  font-family: 'Cal Sans', sans-serif !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.005em !important;
  color: var(--d-cream) !important;
  text-transform: none !important;
}
body.single-project .abc-dossier-related__meta {
  display: flex;
  gap: 12px;
  align-items: baseline;
}
body.single-project .abc-dossier-related__meta span {
  font-family: var(--d-mono);
  font-size: 11px;
  letter-spacing: 0.05em;
  color: rgba(248, 247, 245, 0.65);
  font-variant-numeric: tabular-nums;
}

/* Hide any inherited Antra .project-* duplicates that may still leak through */
body.single-project .abc-dossier-related__item .project-text-box,
body.single-project .abc-dossier-related__item .project-transition > .project-category,
body.single-project .abc-dossier-related__item .view-btn { display: none !important; }

/* ── 7. FINAL CTA ────────────────────────────────────────────────────── */
body.single-project .abc-dossier-cta {
  position: relative;
  background: var(--d-dark);
  padding: 120px 5%;
  overflow: hidden;
  text-align: center;
}
body.single-project .abc-dossier-cta__grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(202,160,92,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202,160,92,0.08) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
  z-index: 1;
}
body.single-project .abc-dossier-cta__glow {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 70%;
  height: 80%;
  background: radial-gradient(ellipse at center,
    rgba(202,160,92,0.10) 0%,
    rgba(202,160,92,0) 65%);
  pointer-events: none;
  z-index: 1;
}
body.single-project .abc-dossier-cta__inner {
  max-width: 760px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
body.single-project .abc-dossier-cta__rule {
  display: block;
  width: 60px;
  height: 1px;
  background: var(--d-gold);
  margin: 0 auto;
}
body.single-project .abc-dossier-cta__rule--top { margin-bottom: 28px; }
body.single-project .abc-dossier-cta__rule--bot { margin-top: 56px; }
body.single-project .abc-dossier-cta .abc-dossier-cartouche {
  display: block;
  margin-bottom: 28px;
}
body.single-project .abc-dossier-cta__title {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  font-size: clamp(32px, 4.5vw, 56px);
  line-height: 1.0;
  letter-spacing: -0.02em;
  color: var(--d-cream);
  margin: 0 0 24px 0;
  text-transform: uppercase;
  font-weight: 400;
}
body.single-project .abc-dossier-cta__body {
  font-family: 'Cal Sans', sans-serif;
  font-size: 17px;
  line-height: 1.6;
  color: rgba(248,247,245,0.72);
  margin: 0 0 44px 0;
  max-width: 580px;
  margin-left: auto;
  margin-right: auto;
}
body.single-project .abc-dossier-cta__actions {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  justify-content: center;
}
body.single-project .abc-dossier-cta__primary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: 'Cal Sans', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--d-dark);
  background: var(--d-gold);
  padding: 18px 28px;
  border: 1px solid var(--d-gold);
  text-decoration: none;
  transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}
body.single-project .abc-dossier-cta__primary:hover {
  background: var(--d-cream);
  border-color: var(--d-cream);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(202,160,92,0.20);
}
body.single-project .abc-dossier-cta__primary-arrow {
  transition: transform 0.3s ease;
}
body.single-project .abc-dossier-cta__primary:hover .abc-dossier-cta__primary-arrow {
  transform: translateX(4px);
}
body.single-project .abc-dossier-cta__ghost {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--d-mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--d-gold);
  background: transparent;
  padding: 18px 24px;
  border: 1px solid rgba(202,160,92,0.35);
  text-decoration: none;
  text-transform: uppercase;
  transition: background 0.25s ease, border-color 0.25s ease;
}
body.single-project .abc-dossier-cta__ghost:hover {
  background: rgba(202,160,92,0.08);
  border-color: var(--d-gold);
}
body.single-project .abc-dossier-cta__ghost-label {
  font-weight: 500;
}
body.single-project .abc-dossier-cta__ghost-num {
  font-weight: 400;
  letter-spacing: 0.10em;
}

/* ── MOBILE & TABLET RESPONSIVE ──────────────────────────────────────── */
@media (max-width: 1024px) {
  body.single-project .abc-dossier-hero { height: 78vh; min-height: 540px; }
  body.single-project .abc-dossier-specs__row { grid-template-columns: repeat(2, 1fr); }
  body.single-project .abc-dossier-specs__row[data-cells="3"] { grid-template-columns: repeat(2, 1fr); }
  body.single-project .abc-dossier-specs__cell:nth-child(2n) { border-right: none; }
  body.single-project .abc-dossier-specs__cell:nth-child(-n+2) { border-bottom: 1px solid rgba(202,160,92,0.3); }

  body.single-project .abc-dossier-plates__grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 280px;
  }
  body.single-project .abc-plate,
  body.single-project .abc-plate[data-plate] { grid-column: span 1; grid-row: span 1; }

  body.single-project .abc-dossier-related__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  body.single-project .abc-dossier-hero { height: 75vh; min-height: 520px; }
  body.single-project .abc-dossier-hero__rule { top: 64px; left: 6%; right: 6%; }
  body.single-project .abc-dossier-hero__cartouche { top: 40px; right: 6%; font-size: 9px; }
  body.single-project .abc-dossier-hero__inner { left: 6%; right: 6%; bottom: 10vh; }
  body.single-project .abc-dossier-hero__category { font-size: 10px; padding: 5px 10px; margin-bottom: 16px; }

  body.single-project .abc-dossier-specs { padding: 56px 6% 56px; }
  body.single-project .abc-dossier-specs__row,
  body.single-project .abc-dossier-specs__row[data-cells="3"] { grid-template-columns: 1fr; }
  body.single-project .abc-dossier-specs__cell { border-right: none; border-bottom: 1px solid rgba(202,160,92,0.3); }
  body.single-project .abc-dossier-specs__cell:last-child { border-bottom: none; }

  body.single-project .abc-dossier-story { padding: 72px 24px; }
  body.single-project .abc-dossier-story__body { font-size: 16px; }
  body.single-project .abc-dossier-story__body p:first-child::first-letter { font-size: 3em; }

  body.single-project .abc-dossier-plates { padding: 64px 6% 72px; }
  body.single-project .abc-dossier-plates__grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 220px;
  }
  body.single-project .abc-plate,
  body.single-project .abc-plate[data-plate="1"],
  body.single-project .abc-plate[data-plate="4"],
  body.single-project .abc-plate[data-plate="5"],
  body.single-project .abc-plate[data-plate="8"],
  body.single-project .abc-plate[data-plate="12"],
  body.single-project .abc-plate[data-plate="13"] {
    grid-column: 1;
    grid-row: span 1;
  }
  body.single-project .abc-plate[data-plate="1"] { grid-row: span 1; }

  body.single-project .abc-dossier-method__list {
    flex-direction: column;
    gap: 12px;
  }
  body.single-project .abc-dossier-method__list li {
    border-right: none;
    border-bottom: 1px solid var(--d-gold-line);
    padding: 14px 0;
    width: 200px;
    justify-content: center;
  }
  body.single-project .abc-dossier-method__list li:last-child { border-bottom: none; }

  body.single-project .abc-dossier-related { padding: 72px 6%; }
  body.single-project .abc-dossier-related__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  body.single-project .abc-dossier-related__grid { grid-template-columns: 1fr; }

  body.single-project .abc-dossier-cta { padding: 88px 6%; }
  body.single-project .abc-dossier-cta__actions { flex-direction: column; width: 100%; }
  body.single-project .abc-dossier-cta__primary,
  body.single-project .abc-dossier-cta__ghost {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 480px) {
  body.single-project .abc-dossier-hero__title { font-size: clamp(34px, 11vw, 48px); }
  body.single-project .abc-dossier-method__label { font-size: 18px; }
}

/* End project showroom */

/* ═══════════════════════════════════════════════════════════════════════════
   GLOBAL CTA — appears in the footer on every page (template 9859).
   Same architectural look as the project-page CTA but without the [G] / 07
   section cartouche (no sequence index when used globally). Standalone
   wrapper so it doesn't depend on body class. Tokens defined locally here.
   ═══════════════════════════════════════════════════════════════════════════ */

.abc-global-cta {
  --gc-gold: #CAA05C;
  --gc-gold-line: rgba(202, 160, 92, 0.18);
  --gc-dark: #1C1C1D;
  --gc-cream: #F8F7F5;
  --gc-mono: ui-monospace, "SF Mono", Menlo, Monaco, "Cascadia Mono",
             "Roboto Mono", Consolas, monospace;
  position: relative;
  background: var(--gc-dark);
  padding: 120px 5%;
  overflow: hidden;
  text-align: center;
  color: var(--gc-cream);
}

.abc-global-cta__grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.08) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
  z-index: 1;
}

.abc-global-cta__glow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70%;
  height: 80%;
  background: radial-gradient(ellipse at center,
    rgba(202, 160, 92, 0.10) 0%,
    rgba(202, 160, 92, 0) 65%);
  pointer-events: none;
  z-index: 1;
}

.abc-global-cta__inner {
  max-width: 760px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.abc-global-cta__rule {
  display: block;
  width: 60px;
  height: 1px;
  background: var(--gc-gold);
  margin: 0 auto;
}
.abc-global-cta__rule--top { margin-bottom: 40px; }
.abc-global-cta__rule--bot { margin-top: 56px; }

.abc-global-cta__title {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  font-size: clamp(32px, 4.5vw, 56px) !important;
  line-height: 1.0 !important;
  letter-spacing: -0.02em !important;
  color: var(--gc-cream) !important;
  margin: 0 0 24px 0 !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
}

.abc-global-cta__body {
  font-family: 'Cal Sans', sans-serif;
  font-size: 17px;
  line-height: 1.6;
  color: rgba(248, 247, 245, 0.72);
  margin: 0 auto 44px auto;
  max-width: 580px;
}

.abc-global-cta__actions {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  justify-content: center;
}

.abc-global-cta__primary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: 'Cal Sans', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--gc-dark);
  background: var(--gc-gold);
  padding: 18px 28px;
  border: 1px solid var(--gc-gold);
  text-decoration: none;
  transition: transform 0.3s ease, background 0.3s ease,
              box-shadow 0.3s ease, border-color 0.3s ease;
}
.abc-global-cta__primary:hover,
.abc-global-cta__primary:focus {
  background: var(--gc-cream);
  border-color: var(--gc-cream);
  color: var(--gc-dark);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(202, 160, 92, 0.20);
  text-decoration: none;
}
.abc-global-cta__primary-arrow {
  transition: transform 0.3s ease;
  display: inline-block;
}
.abc-global-cta__primary:hover .abc-global-cta__primary-arrow {
  transform: translateX(4px);
}

.abc-global-cta__ghost {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--gc-mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--gc-gold);
  background: transparent;
  padding: 18px 24px;
  border: 1px solid rgba(202, 160, 92, 0.35);
  text-decoration: none;
  text-transform: uppercase;
  transition: background 0.25s ease, border-color 0.25s ease;
}
.abc-global-cta__ghost:hover,
.abc-global-cta__ghost:focus {
  background: rgba(202, 160, 92, 0.08);
  border-color: var(--gc-gold);
  color: var(--gc-gold);
  text-decoration: none;
}
.abc-global-cta__ghost-label { font-weight: 500; }
.abc-global-cta__ghost-num   { font-weight: 400; letter-spacing: 0.10em; }

/* Mobile responsive */
@media (max-width: 768px) {
  .abc-global-cta { padding: 88px 6%; }
  .abc-global-cta__rule--top { margin-bottom: 32px; }
  .abc-global-cta__rule--bot { margin-top: 44px; }
  .abc-global-cta__body { margin-bottom: 32px; }
  .abc-global-cta__actions {
    flex-direction: column;
    width: 100%;
  }
  .abc-global-cta__primary,
  .abc-global-cta__ghost {
    width: 100%;
    justify-content: center;
  }
}

/* Hide the global footer CTA on single-project pages — they already have
   the same CTA in-template (with the [G] / 07 NEXT BUILD section cartouche
   that anchors it to the dossier sequence). Showing both would duplicate
   the heading and buttons. */
body.single-project .abc-global-cta {
  display: none !important;
}

/* End global CTA */

/* ═══════════════════════════════════════════════════════════════════════════
   ABC LIGHTBOX — fullscreen image viewer (vanilla JS in assets/abc-lightbox.js)
   Triggered by a delegated click handler on any content <img>. The overlay is
   built lazily on first open and reused across the page. Uses the dark/gold
   identity so it matches the rest of the site instead of feeling bolted on.
   ═══════════════════════════════════════════════════════════════════════════ */
.abc-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(28, 28, 29, 0.94);
  padding: 24px;
  /* Subtle gold blueprint grid to match the site identity */
  background-image:
    linear-gradient(rgba(202, 160, 92, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202, 160, 92, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  background-position: center center;
  opacity: 0;
  transition: opacity 0.25s ease;
  cursor: zoom-out;
}
.abc-lightbox.is-open {
  display: flex;
  opacity: 1;
}
.abc-lightbox__figure {
  position: relative;
  margin: 0;
  max-width: min(1400px, 100%);
  max-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  cursor: zoom-out;
}
.abc-lightbox__img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 120px);
  width: auto;
  height: auto;
  object-fit: contain;
  border: 1px solid rgba(202, 160, 92, 0.25);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  cursor: default;
  /* Keep the image clickable without closing — only backdrop closes */
  pointer-events: auto;
}
.abc-lightbox__caption {
  font-family: 'Cal Sans', 'Lato', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: rgba(248, 247, 245, 0.78);
  text-align: center;
  letter-spacing: 0.01em;
  max-width: 720px;
  margin: 0;
  padding: 0 8px;
}
.abc-lightbox__close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(28, 28, 29, 0.7);
  border: 1px solid rgba(202, 160, 92, 0.4);
  border-radius: 999px;
  color: #F8F7F5;
  cursor: pointer;
  padding: 0;
  z-index: 2;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.abc-lightbox__close:hover,
.abc-lightbox__close:focus-visible {
  background: rgba(202, 160, 92, 0.18);
  border-color: #CAA05C;
  color: #CAA05C;
  outline: none;
  transform: scale(1.05);
}

/* Hint that content images are clickable (subtle — no jumping) */
body.abc-seo-landing .abc-pcard,
.elementor-widget-image img,
.elementor-widget-text-editor img,
.gallery img,
.abc-pcard img {
  cursor: zoom-in;
}
/* Don't override the natural pointer for project-card links */
a.abc-pcard,
a.abc-pcard img {
  cursor: pointer;
}

@media (max-width: 540px) {
  .abc-lightbox {
    padding: 12px;
  }
  .abc-lightbox__img {
    max-height: calc(100vh - 100px);
  }
  .abc-lightbox__close {
    width: 40px;
    height: 40px;
    top: 12px;
    right: 12px;
  }
  .abc-lightbox__caption {
    font-size: 13px;
  }
}
/* End lightbox */

/* ═══════════════════════════════════════════════════════════════
   ABC Services Grid — editorial blueprint cards
   ═══════════════════════════════════════════════════════════════ */
.abc-services-grid {
  --abc-gold: #CAA05C;
  --abc-gold-soft: rgba(202, 160, 92, 0.6);
  --abc-gold-dim: rgba(202, 160, 92, 0.4);
  --abc-gold-faint: rgba(202, 160, 92, 0.15);
  --abc-gold-ghost: rgba(202, 160, 92, 0.06);
  --abc-dark: #1C1C1D;
  --abc-dark-deep: #131314;
  --abc-cream: #F8F7F5;
  --abc-cream-soft: rgba(248, 247, 245, 0.7);
  --abc-cream-dim: rgba(248, 247, 245, 0.4);
  position: relative;
  background-color: var(--abc-dark);
  color: var(--abc-cream);
  padding: clamp(72px, 9vw, 140px) clamp(20px, 5vw, 80px);
  overflow: hidden;
  isolation: isolate;
  font-family: "Golos Text", system-ui, -apple-system, sans-serif;
}
.abc-services-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, var(--abc-gold-ghost) 1px, transparent 1px),
    linear-gradient(to bottom, var(--abc-gold-ghost) 1px, transparent 1px);
  background-size: 40px 40px;
  background-position: 50% 50%;
  pointer-events: none;
  z-index: 0;
  opacity: 0.85;
  -webkit-mask-image: radial-gradient(ellipse 85% 100% at 50% 50%, #000 30%, transparent 95%);
          mask-image: radial-gradient(ellipse 85% 100% at 50% 50%, #000 30%, transparent 95%);
}
.abc-services-grid::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 100% 70% at 50% 0%, transparent 0%, rgba(19, 19, 20, 0.4) 100%),
    radial-gradient(ellipse 100% 70% at 50% 100%, transparent 0%, rgba(19, 19, 20, 0.5) 100%);
  pointer-events: none;
  z-index: 0;
}
.abc-services-grid__inner {
  position: relative;
  z-index: 1;
  max-width: 1480px;
  margin: 0 auto;
}
.abc-services-grid__intro {
  display: grid;
  grid-template-columns: minmax(120px, auto) 1fr;
  align-items: end;
  gap: clamp(24px, 4vw, 64px);
  padding-bottom: clamp(40px, 5vw, 72px);
  border-bottom: 1px solid var(--abc-gold-dim);
  margin-bottom: clamp(32px, 4vw, 56px);
}
.abc-services-grid__cartouche {
  display: inline-block;
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--abc-gold);
  padding: 12px 18px;
  border: 1px solid var(--abc-gold-dim);
  white-space: nowrap;
  font-feature-settings: "tnum" 1;
  align-self: end;
}
.abc-services-grid__lockup {
  align-self: end;
}
.abc-services-grid__eyebrow {
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: 12px;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--abc-gold);
  margin: 0 0 clamp(14px, 1.4vw, 22px) 0;
  font-weight: 400;
}
.abc-services-grid__heading {
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: clamp(30px, 4.6vw, 64px);
  line-height: 1.04;
  letter-spacing: -0.005em;
  color: var(--abc-cream);
  margin: 0;
  text-transform: uppercase;
  font-weight: 400;
  text-wrap: balance;
}
.abc-services-grid__heading em {
  color: var(--abc-gold);
  font-style: normal;
}
.abc-services-grid__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 280px;
  gap: 14px;
}
.abc-services-grid__item {
  position: relative;
  margin: 0;
  padding: 0;
}
/* All service cards same size — no featured oversized card */
.abc-services-grid__item--feature {
  grid-column: span 1;
  grid-row: span 1;
}
.abc-card {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background-color: var(--abc-dark-deep);
  border: 1px solid var(--abc-gold-faint);
  isolation: isolate;
  transition: border-color 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
.abc-card:hover { border-color: var(--abc-gold-soft); }
.abc-card:focus-visible {
  outline: 2px solid var(--abc-gold);
  outline-offset: 4px;
  border-color: var(--abc-gold-soft);
}
.abc-card__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.abc-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 1200ms cubic-bezier(0.22, 0.61, 0.36, 1),
              filter 800ms ease;
  filter: saturate(0.9) contrast(1.04) brightness(0.94);
}
.abc-card:hover .abc-card__media img {
  transform: scale(1.06);
  filter: saturate(1) contrast(1.06) brightness(0.97);
}
.abc-card__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg,
    rgba(28, 28, 29, 0)    0%,
    rgba(28, 28, 29, 0.05) 30%,
    rgba(28, 28, 29, 0.55) 70%,
    rgba(28, 28, 29, 0.92) 100%);
  transition: background 500ms ease;
}
.abc-card:hover .abc-card__overlay {
  background: linear-gradient(180deg,
    rgba(28, 28, 29, 0.15) 0%,
    rgba(28, 28, 29, 0.30) 30%,
    rgba(28, 28, 29, 0.75) 70%,
    rgba(28, 28, 29, 0.96) 100%);
}
.abc-card__body {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 2;
  padding: clamp(20px, 2.6vw, 36px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.abc-card__index {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--abc-gold);
  margin: 0 0 12px 0;
  font-feature-settings: "tnum" 1;
  text-transform: uppercase;
}
.abc-card__title {
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.05;
  color: var(--abc-cream);
  text-transform: uppercase;
  letter-spacing: 0;
  margin: 0;
  display: block;
  text-wrap: balance;
  font-weight: 400;
}
.abc-card__sub {
  font-family: "Cal Sans", "Cabinet Grotesk", system-ui, sans-serif;
  font-size: clamp(13.5px, 1vw, 15.5px);
  line-height: 1.45;
  color: var(--abc-cream-soft);
  display: block;
  margin: 14px 0 0 0;
  max-width: 44ch;
  font-weight: 400;
}
.abc-card__cta {
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--abc-gold);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: clamp(16px, 1.6vw, 24px);
  padding-bottom: 5px;
  border-bottom: 1px solid var(--abc-gold-dim);
  transition: border-bottom-color 400ms ease;
}
.abc-card:hover .abc-card__cta { border-bottom-color: var(--abc-gold); }
.abc-card__cta-text { display: inline-block; }
.abc-card__arrow {
  display: inline-block;
  transition: transform 450ms cubic-bezier(0.34, 1.56, 0.64, 1);
  font-family: ui-monospace, monospace;
}
.abc-card:hover .abc-card__arrow { transform: translateX(6px); }
.abc-card--feature .abc-card__title {
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.05;
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}
/* ES titles are longer than EN — cap at 38px so "REMODELACIÓN DE COCINAS" wraps cleanly inside the card */
.abc-services-grid .abc-card__title { max-width: 100%; }
.abc-card--feature .abc-card__sub {
  font-size: clamp(15px, 1.2vw, 18px);
  max-width: 50ch;
}
.abc-card--feature .abc-card__body {
  padding: clamp(20px, 2.6vw, 36px);
}
.abc-card__bracket {
  position: absolute;
  width: 16px;
  height: 16px;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  transition: opacity 500ms ease, transform 500ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
.abc-card__bracket--tr {
  top: 14px;
  right: 14px;
  border-top: 1px solid var(--abc-gold);
  border-right: 1px solid var(--abc-gold);
  transform: translate(6px, -6px);
}
.abc-card:hover .abc-card__bracket {
  opacity: 1;
  transform: translate(0, 0);
}
.abc-card--feature .abc-card__bracket--tr {
  top: 20px;
  right: 20px;
  width: 22px;
  height: 22px;
}
.abc-services-grid__foot {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(16px, 2vw, 32px);
  margin-top: clamp(40px, 5vw, 72px);
  padding-top: clamp(20px, 2vw, 32px);
  border-top: 1px solid var(--abc-gold-dim);
}
.abc-services-grid__foot-tag {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--abc-cream-dim);
  text-transform: uppercase;
}
.abc-services-grid__foot-rule {
  height: 1px;
  background: var(--abc-gold-faint);
}
@keyframes abcCardReveal {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: no-preference) {
  .abc-services-grid__item {
    opacity: 0;
    animation: abcCardReveal 900ms cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  }
  .abc-services-grid__item:nth-child(1) { animation-delay: 80ms; }
  .abc-services-grid__item:nth-child(2) { animation-delay: 200ms; }
  .abc-services-grid__item:nth-child(3) { animation-delay: 280ms; }
  .abc-services-grid__item:nth-child(4) { animation-delay: 360ms; }
  .abc-services-grid__item:nth-child(5) { animation-delay: 440ms; }
  .abc-services-grid__item:nth-child(6) { animation-delay: 520ms; }
}
@media (prefers-reduced-motion: reduce) {
  .abc-card__media img,
  .abc-card__arrow,
  .abc-card__bracket,
  .abc-card,
  .abc-card__overlay,
  .abc-services-grid__item {
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .abc-card:hover .abc-card__bracket { opacity: 0.55; }
  .abc-card:hover .abc-card__media img { transform: none; }
}
@media (max-width: 1024px) {
  .abc-services-grid__list {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 260px;
  }
  .abc-services-grid__item--feature {
    grid-column: 1 / -1;
    grid-row: span 1;
  }
  .abc-card--feature .abc-card__title { font-size: clamp(26px, 4.6vw, 42px); }
}
@media (max-width: 768px) {
  .abc-services-grid { padding: 60px 24px; }
  .abc-services-grid__intro {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-bottom: 32px;
    margin-bottom: 28px;
  }
  .abc-services-grid__cartouche { justify-self: start; }
  .abc-services-grid__list { grid-auto-rows: 240px; }
  .abc-services-grid__foot { grid-template-columns: auto 1fr; }
  .abc-services-grid__foot-tag:last-child {
    grid-column: 1 / -1;
    text-align: left;
  }
}
@media (max-width: 540px) {
  .abc-services-grid { padding: 56px 18px; }
  .abc-services-grid__list {
    grid-template-columns: 1fr;
    grid-auto-rows: 280px;
    gap: 12px;
  }
  .abc-services-grid__item--feature {
    grid-column: auto;
    grid-row: auto;
  }
  .abc-card__title,
  .abc-card--feature .abc-card__title { font-size: 22px !important; }
  .abc-card__sub,
  .abc-card--feature .abc-card__sub {
    font-size: 14px !important;
    max-width: 100%;
  }
  .abc-card__body,
  .abc-card--feature .abc-card__body { padding: 22px; }
  .abc-card__bracket--tr {
    top: 10px;
    right: 10px;
    width: 14px;
    height: 14px;
  }
  .abc-card .abc-card__bracket {
    opacity: 0.4;
    transform: translate(0, 0);
  }
}
@media (min-width: 1440px) {
  .abc-services-grid__list {
    grid-auto-rows: 320px;
    gap: 16px;
  }
}
/* End services grid */

/* Hide legacy antra-services-accordion section after injection */
.elementor-element.abc-hide-legacy-services,
.abc-hide-legacy-services {
  display: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   ABC Service Page — Exterior, Inspection (and future hubs)
   ═══════════════════════════════════════════════════════════════ */
.abc-service-page {
  --abc-gold: #CAA05C;
  --abc-gold-dim: rgba(202, 160, 92, 0.4);
  --abc-gold-faint: rgba(202, 160, 92, 0.18);
  --abc-gold-ghost: rgba(202, 160, 92, 0.08);
  --abc-dark: #1C1C1D;
  --abc-cream: #F8F7F5;
  --abc-cream-soft: rgba(248, 247, 245, 0.78);
  --abc-cream-dim: rgba(248, 247, 245, 0.48);
  --abc-paper: #F2EFE9;
  --abc-paper-deep: #E8E2D6;
  font-family: "Golos Text", system-ui, -apple-system, sans-serif;
  color: var(--abc-dark);
  display: block;
}

/* Kill parent theme's vertical margins/paddings that wrap our service pages */
body.has-abc-service-page .site-content {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.has-abc-service-page .site-main,
body.has-abc-service-page .entry-content,
body.has-abc-service-page article.page {
  margin: 0 !important;
  padding: 0 !important;
}
body.has-abc-service-page .entry-content > p:empty { display: none; }

/* Force full-width: parent theme constrains everything to .col-full max-width 1410px.
   Pages that use our grid/service-page shortcodes need to span the entire viewport. */
body.has-abc-fullwidth .col-full,
body.has-abc-fullwidth .site-content > .col-full {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}
body.has-abc-fullwidth .site-content {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ─── Hero ─── */
.abc-svc-hero {
  position: relative;
  min-height: clamp(340px, 45vh, 460px);  /* v2.0.7: cap altura hero para evitar imagen "muy grande" en mobile/tablet */
  background-color: var(--abc-dark);
  color: var(--abc-cream);
  overflow: hidden;
  isolation: isolate;
  padding: clamp(48px, 6vw, 88px) clamp(20px, 5vw, 80px) clamp(40px, 4vw, 64px);
  display: flex;
  align-items: flex-end;
}
.abc-svc-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.abc-svc-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.85) brightness(0.7);
}
.abc-svc-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(28,28,29,0.55) 0%, rgba(28,28,29,0.4) 40%, rgba(28,28,29,0.92) 100%),
    linear-gradient(90deg, rgba(28,28,29,0.5) 0%, rgba(28,28,29,0) 60%);
}
.abc-svc-hero__overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, var(--abc-gold-ghost) 1px, transparent 1px),
    linear-gradient(to bottom, var(--abc-gold-ghost) 1px, transparent 1px);
  background-size: 40px 40px;
  opacity: 0.5;
}
.abc-svc-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
}
.abc-svc-breadcrumb {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-cream-dim);
  margin: 0 0 clamp(20px, 3vw, 36px) 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.abc-svc-breadcrumb a {
  color: var(--abc-cream-soft);
  text-decoration: none;
  transition: color 200ms ease;
}
.abc-svc-breadcrumb a:hover { color: var(--abc-gold); }
.abc-svc-breadcrumb span[aria-hidden] { color: var(--abc-gold); opacity: 0.5; }
.abc-svc-hero__cartouche {
  display: inline-block;
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--abc-gold);
  padding: 10px 16px;
  border: 1px solid var(--abc-gold-dim);
  margin-bottom: clamp(16px, 2vw, 24px);
}
.abc-svc-hero__title {
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: clamp(32px, 5.5vw, 72px);
  line-height: 1.02;
  letter-spacing: -0.005em;
  color: var(--abc-cream);
  margin: 0 0 clamp(14px, 1.4vw, 22px) 0;
  text-transform: uppercase;
  font-weight: 400;
  text-wrap: balance;
  max-width: 18ch;
}
.abc-svc-hero__sub {
  font-family: "Cal Sans", system-ui, sans-serif;
  font-size: clamp(16px, 1.4vw, 22px);
  line-height: 1.4;
  color: var(--abc-cream-soft);
  margin: 0 0 clamp(28px, 3vw, 44px) 0;
  max-width: 50ch;
}
.abc-svc-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; }

/* ─── Buttons (shared) ─── */
.abc-svc-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 18px 28px;
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background 300ms ease, border-color 300ms ease, color 300ms ease, transform 300ms ease;
  cursor: pointer;
}
.abc-svc-btn--primary {
  background: var(--abc-gold);
  color: var(--abc-dark);
  border-color: var(--abc-gold);
}
.abc-svc-btn--primary:hover {
  background: transparent;
  color: var(--abc-gold);
}
.abc-svc-btn--primary span[aria-hidden] {
  transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.abc-svc-btn--primary:hover span[aria-hidden] { transform: translateX(6px); }
.abc-svc-btn--ghost {
  background: transparent;
  color: var(--abc-dark);
  border-color: var(--abc-gold-dim);
}
.abc-svc-btn--ghost:hover {
  border-color: var(--abc-gold);
  color: var(--abc-gold);
}

/* ─── Eyebrow + H2 ─── */
.abc-svc-eyebrow {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--abc-gold);
  display: inline-block;
  margin-bottom: 12px;
}
.abc-svc-h2 {
  font-family: "Good Times", "Goldman", sans-serif;
  font-size: clamp(24px, 3.2vw, 38px);
  line-height: 1.1;
  color: var(--abc-dark);
  text-transform: uppercase;
  letter-spacing: -0.005em;
  margin: 0 0 18px 0;
  font-weight: 400;
  text-wrap: balance;
}
.abc-svc-p {
  font-family: "Golos Text", system-ui, sans-serif;
  font-size: clamp(15px, 1.05vw, 16.5px);
  line-height: 1.6;
  color: var(--abc-dark);
  opacity: 0.84;
  margin: 0 0 14px 0;
  max-width: 64ch;
}

/* ─── Intro ─── */
.abc-svc-intro {
  background: var(--abc-paper);
  padding: clamp(48px, 4.5vw, 72px) clamp(20px, 5vw, 80px);
  position: relative;
}
.abc-svc-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(28,28,29,0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(28,28,29,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 80% 100% at 50% 50%, #000 30%, transparent 90%);
          mask-image: radial-gradient(ellipse 80% 100% at 50% 50%, #000 30%, transparent 90%);
}
.abc-svc-intro__inner {
  position: relative;
  max-width: 920px;
  margin: 0 auto;
}

/* ─── Subservices ─── */
.abc-svc-subs {
  background: var(--abc-cream);
  padding: clamp(48px, 4.5vw, 72px) clamp(20px, 5vw, 80px);
  border-top: 1px solid var(--abc-gold-faint);
  border-bottom: 1px solid var(--abc-gold-faint);
}
.abc-svc-subs__inner { max-width: 1240px; margin: 0 auto; }
.abc-svc-subs__head {
  margin-bottom: clamp(28px, 3vw, 40px);
  padding-bottom: clamp(20px, 2vw, 28px);
  border-bottom: 1px solid var(--abc-gold-faint);
}
.abc-svc-subs__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0;
}
.abc-svc-subs__item {
  position: relative;
  padding: clamp(24px, 2.6vw, 36px);
  border: 1px solid var(--abc-gold-faint);
  margin: -1px 0 0 -1px;
  background: var(--abc-cream);
  transition: background 300ms ease;
}
.abc-svc-subs__item:hover { background: var(--abc-paper); }
.abc-svc-subs__num {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--abc-gold);
  font-feature-settings: "tnum" 1;
  display: block;
  margin-bottom: 14px;
}
.abc-svc-subs__title {
  font-family: "Cal Sans", system-ui, sans-serif;
  font-size: clamp(17px, 1.4vw, 21px);
  line-height: 1.25;
  color: var(--abc-dark);
  margin: 0 0 10px 0;
  font-weight: 600;
  letter-spacing: -0.005em;
}
.abc-svc-subs__desc {
  font-family: "Golos Text", system-ui, sans-serif;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--abc-dark);
  opacity: 0.7;
  margin: 0;
}

/* ─── Why choose us ─── */
.abc-svc-why {
  background: var(--abc-dark);
  color: var(--abc-cream);
  padding: clamp(48px, 4.5vw, 72px) clamp(20px, 5vw, 80px);
  position: relative;
  overflow: hidden;
}
.abc-svc-why::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, var(--abc-gold-ghost) 1px, transparent 1px),
    linear-gradient(to bottom, var(--abc-gold-ghost) 1px, transparent 1px);
  background-size: 40px 40px;
  opacity: 0.7;
  -webkit-mask-image: radial-gradient(ellipse 80% 100% at 50% 50%, #000 30%, transparent 90%);
          mask-image: radial-gradient(ellipse 80% 100% at 50% 50%, #000 30%, transparent 90%);
}
.abc-svc-why__inner { position: relative; max-width: 1100px; margin: 0 auto; }
.abc-svc-why .abc-svc-h2 { color: var(--abc-cream); }
.abc-svc-why__list {
  list-style: none;
  margin: clamp(20px, 2.5vw, 32px) 0 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 6px 32px;
}
.abc-svc-why__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--abc-gold-faint);
  font-family: "Cal Sans", system-ui, sans-serif;
  font-size: clamp(15px, 1.05vw, 17px);
  color: var(--abc-cream);
  letter-spacing: -0.005em;
}
.abc-svc-why__check {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  border: 1px solid var(--abc-gold);
  position: relative;
}
.abc-svc-why__check::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  background: var(--abc-gold);
  transform: translate(-50%, -50%);
}

/* ─── FAQ ─── */
.abc-svc-faq {
  background: var(--abc-paper);
  padding: clamp(48px, 4.5vw, 72px) clamp(20px, 5vw, 80px);
}
.abc-svc-faq__inner { max-width: 920px; margin: 0 auto; }
.abc-svc-faq__list {
  margin-top: clamp(20px, 2vw, 28px);
  border-top: 1px solid var(--abc-gold-faint);
}
.abc-svc-faq__item {
  border-bottom: 1px solid var(--abc-gold-faint);
}
.abc-svc-faq__q {
  font-family: "Cal Sans", system-ui, sans-serif;
  font-size: clamp(16px, 1.25vw, 20px);
  font-weight: 500;
  color: var(--abc-dark);
  padding: 24px 48px 24px 4px;
  cursor: pointer;
  list-style: none;
  position: relative;
  letter-spacing: -0.005em;
  transition: color 200ms ease;
}
.abc-svc-faq__q:hover { color: var(--abc-gold); }
.abc-svc-faq__q::-webkit-details-marker { display: none; }
.abc-svc-faq__q::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-family: ui-monospace, monospace;
  font-size: 22px;
  color: var(--abc-gold);
  font-weight: 300;
  line-height: 1;
  transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
}
.abc-svc-faq__item[open] > .abc-svc-faq__q::after { transform: translateY(-50%) rotate(45deg); }
.abc-svc-faq__a {
  padding: 0 4px 28px 4px;
}
.abc-svc-faq__a p {
  font-family: "Golos Text", system-ui, sans-serif;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.65;
  color: var(--abc-dark);
  opacity: 0.78;
  margin: 0;
  max-width: 64ch;
}

/* ─── CTA ─── */
.abc-svc-cta {
  background: var(--abc-dark);
  color: var(--abc-cream);
  padding: clamp(48px, 4.5vw, 72px) clamp(20px, 5vw, 80px) clamp(32px, 3vw, 48px);
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--abc-gold-faint);
}
.abc-svc-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, var(--abc-gold-ghost) 1px, transparent 1px),
    linear-gradient(to bottom, var(--abc-gold-ghost) 1px, transparent 1px);
  background-size: 40px 40px;
  opacity: 0.7;
  -webkit-mask-image: radial-gradient(ellipse 70% 100% at 50% 50%, #000 30%, transparent 90%);
          mask-image: radial-gradient(ellipse 70% 100% at 50% 50%, #000 30%, transparent 90%);
}
.abc-svc-cta__inner {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}
.abc-svc-cta .abc-svc-h2,
.abc-svc-cta__h { color: var(--abc-cream); }
.abc-svc-cta__p {
  color: var(--abc-cream-soft);
  margin-left: auto;
  margin-right: auto;
  margin-bottom: clamp(22px, 2.4vw, 32px);
}
.abc-svc-cta__btns {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.abc-svc-cta .abc-svc-btn--ghost {
  color: var(--abc-cream);
  border-color: var(--abc-gold-dim);
}
.abc-svc-cta .abc-svc-btn--ghost:hover {
  border-color: var(--abc-gold);
  color: var(--abc-gold);
}

/* ─── Mobile ─── */
@media (max-width: 768px) {
  .abc-svc-hero { padding: 80px 22px 56px; align-items: flex-end; min-height: 480px; }
  .abc-svc-hero__title { font-size: 32px; }
  .abc-svc-hero__sub { font-size: 16px; }
  .abc-svc-intro,
  .abc-svc-subs,
  .abc-svc-why,
  .abc-svc-faq,
  .abc-svc-cta { padding-left: 22px; padding-right: 22px; }
  .abc-svc-h2 { font-size: 24px; }
  .abc-svc-subs__list { grid-template-columns: 1fr; }
  .abc-svc-cta__btns { flex-direction: column; align-items: stretch; }
  .abc-svc-cta__btns .abc-svc-btn { justify-content: center; }
}
@media (max-width: 480px) {
  .abc-svc-hero__title { font-size: 26px; }
  .abc-svc-hero__cta .abc-svc-btn { padding: 16px 22px; font-size: 10.5px; }
}

/* ─── Reduced motion ─── */
@media (prefers-reduced-motion: reduce) {
  .abc-svc-btn,
  .abc-svc-btn--primary span[aria-hidden],
  .abc-svc-faq__q::after {
    transition: none !important;
  }
}
/* ─────────────────────────────────────────────
   Service page — Reference Plate gallery
   Editorial drafting-plate aesthetic with hairline
   gold rules, monospace metadata, and an asymmetric
   1-large + 3-stacked composition.
   ───────────────────────────────────────────── */
.abc-svc-collage {
  --abc-gold: #CAA05C;
  --abc-dark: #1C1C1D;
  --abc-cream: #F8F7F5;
  background: var(--abc-cream);
  padding: 96px 0 80px;
  position: relative;
}
.abc-svc-collage::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: rgba(28, 28, 29, 0.08);
}
.abc-svc-collage__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}

/* ─── Section header ─── */
.abc-svc-collage__head {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 56px;
  align-items: flex-start;
  max-width: 600px;
}
.abc-svc-collage__cartouche {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--abc-gold);
}
.abc-svc-collage__lead {
  font-family: 'Cal Sans', sans-serif;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.15;
  color: var(--abc-dark);
  margin: 0;
  font-weight: 400;
  letter-spacing: -0.005em;
}
.abc-svc-collage__lead em {
  color: var(--abc-gold);
  font-style: italic;
  font-weight: 400;
}

/* ─── Drafting plate ─── */
.abc-svc-collage__plate {
  position: relative;
  background: #FCFBF8;
  border: 1px solid rgba(202, 160, 92, 0.35);
  padding: 28px 28px 32px;
  background-image:
    linear-gradient(to right, rgba(202, 160, 92, 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(202, 160, 92, 0.06) 1px, transparent 1px);
  background-size: 40px 40px;
  background-position: 28px 28px;
}
.abc-svc-collage__plate::before,
.abc-svc-collage__plate::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  pointer-events: none;
}
.abc-svc-collage__plate::before {
  top: -1px; left: -1px;
  border-top: 2px solid var(--abc-gold);
  border-left: 2px solid var(--abc-gold);
}
.abc-svc-collage__plate::after {
  bottom: -1px; right: -1px;
  border-bottom: 2px solid var(--abc-gold);
  border-right: 2px solid var(--abc-gold);
}

/* ─── Plate metadata strip ─── */
.abc-svc-collage__meta {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: ui-monospace, 'SFMono-Regular', 'Menlo', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(28, 28, 29, 0.55);
  padding-bottom: 18px;
  margin-bottom: 28px;
  border-bottom: 1px dashed rgba(28, 28, 29, 0.18);
}
.abc-svc-collage__sep {
  flex: 1;
  height: 1px;
  background-image: linear-gradient(to right, rgba(28, 28, 29, 0.2) 50%, transparent 50%);
  background-size: 6px 1px;
  background-repeat: repeat-x;
}

/* ─── Grid composition (1.5fr + 1fr) ─── */
.abc-svc-collage__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 20px;
}
.abc-svc-collage__secondary-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* ─── Tile ─── */
.abc-svc-collage__tile {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.abc-svc-collage__tile--primary .abc-svc-collage__frame {
  aspect-ratio: 4 / 5;
}
.abc-svc-collage__tile--secondary {
  flex: 1 1 0;
  min-height: 0;
}
.abc-svc-collage__tile--secondary .abc-svc-collage__frame {
  aspect-ratio: 16 / 9;
}

/* ─── Frame ─── */
.abc-svc-collage__frame {
  position: relative;
  display: block;
  background: var(--abc-dark);
  overflow: hidden;
  border: 1px solid rgba(28, 28, 29, 0.12);
  transition: border-color 400ms ease;
}
.abc-svc-collage__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: filter 600ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
  filter: saturate(0.9) brightness(0.97);
}
.abc-svc-collage__tile:hover .abc-svc-collage__frame {
  border-color: var(--abc-gold);
}
.abc-svc-collage__tile:hover .abc-svc-collage__frame img {
  filter: saturate(1.08) brightness(1);
}

/* ─── Corner ↗ mark ─── */
.abc-svc-collage__hover-mark {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  font-family: 'Cal Sans', sans-serif;
  color: var(--abc-cream);
  background: rgba(28, 28, 29, 0.55);
  border: 1px solid rgba(248, 247, 245, 0.35);
  font-size: 14px;
  opacity: 0;
  transform: translate(-4px, 4px);
  transition: opacity 400ms ease, transform 400ms ease;
  pointer-events: none;
}
.abc-svc-collage__tile:hover .abc-svc-collage__hover-mark {
  opacity: 1;
  transform: translate(0, 0);
}

/* ─── Caption ─── */
.abc-svc-collage__caption {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0;
  padding: 2px 0;
}
.abc-svc-collage__caption-num {
  font-family: ui-monospace, 'SFMono-Regular', 'Menlo', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--abc-gold);
  flex-shrink: 0;
  font-weight: 500;
  position: relative;
  padding-right: 12px;
}
.abc-svc-collage__caption-num::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 9px;
  background: rgba(28, 28, 29, 0.2);
}
.abc-svc-collage__caption-text {
  font-family: 'Golos Text', 'Cal Sans', sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(28, 28, 29, 0.7);
  font-style: italic;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 300ms ease;
}
.abc-svc-collage__tile:hover .abc-svc-collage__caption-text {
  color: var(--abc-dark);
}

/* ─── Mobile ─── */
@media (max-width: 768px) {
  .abc-svc-collage { padding: 56px 0 40px; }
  .abc-svc-collage__inner { padding: 0 18px; }
  .abc-svc-collage__head { margin-bottom: 32px; gap: 14px; }
  .abc-svc-collage__plate {
    padding: 18px 18px 22px;
    background-size: 30px 30px;
    background-position: 18px 18px;
  }
  .abc-svc-collage__plate::before,
  .abc-svc-collage__plate::after { width: 10px; height: 10px; }
  .abc-svc-collage__meta {
    font-size: 9px;
    gap: 10px;
    padding-bottom: 14px;
    margin-bottom: 18px;
    letter-spacing: 0.12em;
  }
  .abc-svc-collage__grid { grid-template-columns: 1fr; gap: 16px; }
  .abc-svc-collage__tile--primary .abc-svc-collage__frame { aspect-ratio: 4 / 3; }
  .abc-svc-collage__secondary-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
  .abc-svc-collage__tile--secondary { flex: none; }
  .abc-svc-collage__tile--secondary .abc-svc-collage__frame { aspect-ratio: 4 / 3; }
  .abc-svc-collage__caption-num { font-size: 9px; }
  .abc-svc-collage__caption-text { font-size: 12px; -webkit-line-clamp: 1; }
}
@media (max-width: 480px) {
  .abc-svc-collage__secondary-col { grid-template-columns: 1fr; }
  .abc-svc-collage__caption-text { -webkit-line-clamp: 2; }
}

/* Fix Full Project Management photo grid (page #9209): force consistent aspect ratio
   on the 2 mismatched image widgets so they sit in a clean side-by-side grid. */
.elementor-element-f4c87db img,
.elementor-element-7693778 img {
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 6px;
}
.elementor-element-f4c87db,
.elementor-element-7693778 {
  height: auto !important;
}

/* Hide footer global CTA on pages that already have their own [abc_service_page] CTA */
body.has-abc-service-page .abc-global-cta,
body.has-abc-service-page .elementor-element:has(> .e-con-inner > .elementor-widget:has(.abc-global-cta)) {
  display: none !important;
}

/* End service page */

/* ───────────────────────────────────────────────────────────────
   Hero slider — center badge (LICENSED) and CTA pill within the
   left-aligned content block. Title and subtitle remain left-aligned.
   The functions.php JS tags the wrapping <sr7-mask> with
   data-abc-center="1"; CSS turns that into a flex-centered container.
   ─────────────────────────────────────────────────────────────── */
sr7-mask[data-abc-center="1"] {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
}

sr7-mask[data-abc-center="1"] > sr7-txt,
sr7-mask[data-abc-center="1"] > .sr7-btn {
  display: inline-block !important;
  width: auto !important;
}

/* Defensive: hero text content always above any other floating elements */
sr7-grp.sr7-layer,
sr7-grp.sr7-layer sr7-mask,
sr7-grp.sr7-layer sr7-txt,
sr7-grp.sr7-layer .sr7-btn {
  z-index: 100 !important;
  position: relative;
}


/* ============================================================================
   §99 — MENU CASCADE REDESIGN (subtle hover, clean chevron)
   Replaces previous heavy gold-fill hover with text-only color shift + indent.
   Adds CSS-border chevron (right-pointing) for items with children.
   ============================================================================ */

/* Hide ALL existing chevrons (Unicode + theme-injected SVGs/icons) inside sub-menus */
html body .main-navigation .sub-menu li.menu-item-has-children > a::after,
html body .main-navigation .sub-menu li.menu-item-has-children > a::before,
html body .main-navigation .sub-menu li.menu-item-has-children > a > .menu-arrow,
html body .main-navigation .sub-menu li.menu-item-has-children > a > .submenu-arrow,
html body .main-navigation .sub-menu li.menu-item-has-children > a > i.menu-arrow,
html body .main-navigation .sub-menu li.menu-item-has-children > a > svg,
html body .main-navigation .sub-menu li.menu-item-has-children > a > .fa,
html body .main-navigation .sub-menu li.menu-item-has-children > a > .fas {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
}

/* Hover state — SUBTLE: no background, only text color + small indent */
html body .main-navigation .sub-menu li > a,
html body .main-navigation .sub-menu .sub-menu li > a,
html body .main-navigation .sub-menu .sub-menu .sub-menu li > a {
  position: relative !important;
  background: transparent !important;
  background-color: transparent !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 11px 32px 11px 22px !important;
  transition: color 180ms ease, padding-left 180ms cubic-bezier(0.2, 0.7, 0.25, 1) !important;
}

html body .main-navigation .sub-menu li > a:hover,
html body .main-navigation .sub-menu li.current-menu-item > a,
html body .main-navigation .sub-menu li.current-menu-ancestor > a,
html body .main-navigation .sub-menu li.current-menu-parent > a,
html body .main-navigation .sub-menu li.menu-item-has-children:hover > a,
html body .main-navigation .sub-menu li.menu-item-has-children:focus-within > a {
  color: #CAA05C !important;
  background: transparent !important;
  background-color: transparent !important;
  padding-left: 26px !important;
}

/* Inner span wrap (theme nests <span class="menu-title"><span class="menu-title">) */
html body .main-navigation .sub-menu li > a:hover span.menu-title,
html body .main-navigation .sub-menu li > a:hover span.menu-title span.menu-title,
html body .main-navigation .sub-menu li.menu-item-has-children:hover > a span.menu-title,
html body .main-navigation .sub-menu li.menu-item-has-children:focus-within > a span.menu-title,
html body .main-navigation .sub-menu li.current-menu-item > a span.menu-title,
html body .main-navigation .sub-menu li.current-menu-ancestor > a span.menu-title,
html body .main-navigation .sub-menu li.current-menu-parent > a span.menu-title {
  background: transparent !important;
  background-color: transparent !important;
  color: #CAA05C !important;
  padding: 0 !important;
}

/* CHEVRON — CSS border arrow pointing right (›), only on items WITH children */
html body .main-navigation .sub-menu li.menu-item-has-children > a {
  padding-right: 36px !important;
}

html body .main-navigation .sub-menu li.menu-item-has-children > a::after {
  content: "" !important;
  position: absolute !important;
  right: 22px !important;
  top: 50% !important;
  width: 6px !important;
  height: 6px !important;
  border: 0 !important;
  border-right: 1.4px solid rgba(28, 28, 29, 0.35) !important;
  border-top: 1.4px solid rgba(28, 28, 29, 0.35) !important;
  border-radius: 0 !important;
  background: transparent !important;
  transform: translateY(-50%) rotate(45deg) !important;
  transform-origin: center !important;
  transition: border-color 180ms ease, right 220ms cubic-bezier(0.2, 0.7, 0.25, 1) !important;
  margin: 0 !important;
  display: block !important;
  visibility: visible !important;
  pointer-events: none !important;
  font: inherit !important;
  color: transparent !important;
}

html body .main-navigation .sub-menu li.menu-item-has-children:hover > a::after,
html body .main-navigation .sub-menu li.menu-item-has-children:focus-within > a::after,
html body .main-navigation .sub-menu li.menu-item-has-children.current-menu-ancestor > a::after,
html body .main-navigation .sub-menu li.menu-item-has-children.current-menu-parent > a::after {
  border-right-color: #CAA05C !important;
  border-top-color: #CAA05C !important;
  right: 18px !important;
}

/* Remove the default radius/margin pills on sub-items (clean white panel) */
html body .main-navigation .sub-menu li {
  margin: 0 !important;
  border-radius: 0 !important;
}

/* Mobile: keep underline-only feel, no chevron rotation tricks needed */
@media (max-width: 991px) {
  html body .main-navigation .sub-menu li.menu-item-has-children > a::after {
    right: 16px !important;
  }
  html body .main-navigation .sub-menu .sub-menu .sub-menu li.menu-item-has-children > a::after {
    display: none !important;
  }
}

/* §99b — Kill the animated underline on sub-menu items (theme parent inserts ::before
   on span.menu-title that grows to 100% width on hover/active, drawing a 1px line
   under the text). Disable in cascade panels. */
html body .main-navigation .sub-menu li a span.menu-title::before,
html body .main-navigation .sub-menu li a span.menu-title::after,
html body .main-navigation .sub-menu li a span.menu-title span.menu-title::before,
html body .main-navigation .sub-menu li a span.menu-title span.menu-title::after,
html body .main-navigation .sub-menu li a span.menu-title:hover::before,
html body .main-navigation .sub-menu li a:hover span.menu-title::before,
html body .main-navigation .sub-menu li.menu-item-has-children:hover > a span.menu-title::before,
html body .main-navigation .sub-menu li.menu-item-has-children:focus-within > a span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-item > a span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-ancestor > a span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-parent > a span.menu-title::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

/* §99c — RESTORE animated underline on sub-menu items, but in BLACK + only on hover/active.
   Override §99b which had nuked all ::before. The line draws from 0 to 100% width
   under the text only (not the full item width). Text turns gold simultaneously. */

/* Inner span needs to be inline-block + relative so the underline pseudo can sit under it */
html body .main-navigation .sub-menu li > a span.menu-title,
html body .main-navigation .sub-menu li > a span.menu-title span.menu-title {
  position: relative !important;
  display: inline-block !important;
}

/* Re-enable ::before on the INNERMOST span as our underline (override §99b) */
html body .main-navigation .sub-menu li > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.menu-item-has-children:hover > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.menu-item-has-children:focus-within > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-item > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-ancestor > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-parent > a span.menu-title > span.menu-title::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  bottom: -3px !important;
  top: auto !important;
  height: 1.5px !important;
  width: 0 !important;
  background: #000000 !important;
  background-color: #000000 !important;
  border: 0 !important;
  transform: none !important;
  transition: width 220ms cubic-bezier(0.2, 0.7, 0.25, 1) !important;
  pointer-events: none !important;
}

/* Show line on hover/active states */
html body .main-navigation .sub-menu li > a:hover span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.menu-item-has-children:hover > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.menu-item-has-children:focus-within > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-item > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-ancestor > a span.menu-title > span.menu-title::before,
html body .main-navigation .sub-menu li.current-menu-parent > a span.menu-title > span.menu-title::before {
  width: 100% !important;
}

/* §99d — FORCE chevron visibility on sub-menu items with children.
   Some parent theme rule was overriding border-right color to transparent
   and border-top to 0. Use higher specificity + explicit values. */
html body div#masthead.site-header nav.main-navigation ul.menu .sub-menu li.menu-item-has-children > a::after,
html body div#masthead nav.main-navigation ul.menu .sub-menu li.menu-item-has-children > a::after,
html body #masthead .main-navigation .sub-menu li.menu-item.menu-item-has-children > a::after {
  content: "" !important;
  position: absolute !important;
  right: 22px !important;
  top: 50% !important;
  width: 7px !important;
  height: 7px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  border-style: solid !important;
  border-width: 0 1.5px 1.5px 0 !important;
  border-right-width: 1.5px !important;
  border-bottom-width: 1.5px !important;
  border-right-color: rgba(28, 28, 29, 0.5) !important;
  border-bottom-color: rgba(28, 28, 29, 0.5) !important;
  border-top-color: transparent !important;
  border-left-color: transparent !important;
  border-radius: 0 !important;
  transform: translateY(-50%) rotate(-45deg) !important;
  transform-origin: center center !important;
  transition: border-color 180ms ease, right 220ms cubic-bezier(0.2, 0.7, 0.25, 1) !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  font: 0/0 monospace !important;
  color: transparent !important;
  pointer-events: none !important;
  vertical-align: baseline !important;
  line-height: 0 !important;
  font-size: 0 !important;
}

html body div#masthead.site-header nav.main-navigation ul.menu .sub-menu li.menu-item-has-children:hover > a::after,
html body div#masthead nav.main-navigation ul.menu .sub-menu li.menu-item-has-children:focus-within > a::after {
  border-right-color: #CAA05C !important;
  border-bottom-color: #CAA05C !important;
  right: 18px !important;
}

/* ═══════════════════════════════════════════
   100. LOGO size — height-driven (cliente Apr-2026)
   Logo aspect ratio 716x402 ≈ 1.78 (wide)
   Use height-only sizing so the logo never overflows the header bar.
   Parent default is width:126px (height ≈ 71px).
   ═══════════════════════════════════════════ */
.header-1 .site-branding img,
.site-header .custom-logo,
.site-header .site-branding img {
  height: 70px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
  display: block;
}

@media (max-width: 1024px) {
  .header-1 .site-branding img,
  .site-header .custom-logo {
    height: 60px !important;
  }
}

@media (max-width: 768px) {
  .header-1 .site-branding img,
  .site-header .custom-logo {
    height: 48px !important;
  }
}

/* Sticky header: logo slightly smaller when stuck */
.site-header.is-sticky .site-branding img,
.site-header.is-sticky .custom-logo {
  height: 56px !important;
}

/* ═══════════════════════════════════════════


/* 184. WHY CHOOSE US — desktop + mobile fix v2.1.4 */
html body.abc-seo-landing .abc-why-item {
  display: grid !important;
  grid-template-columns: 80px 1fr !important;
  align-items: center !important;
  gap: 24px !important;
  padding: 22px 0 !important;
  margin-bottom: 0 !important;
  border: none !important;
  border-bottom: 1px solid rgba(248, 247, 245, 0.10) !important;
  border-radius: 0 !important;
  background: transparent !important;
  position: relative;
}
html body.abc-seo-landing .abc-why-item:first-of-type {
  border-top: 1px solid rgba(248, 247, 245, 0.10) !important;
}
html body.abc-seo-landing .abc-why-item:hover {
  padding-left: 12px !important;
  border-color: rgba(248, 247, 245, 0.10) !important;
  background: transparent !important;
}
html body.abc-seo-landing .abc-why-item .elementor-widget-heading:first-child .elementor-heading-title {
  position: static !important;
  font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
  font-size: 28px !important;
  font-weight: 300 !important;
  color: #CAA05C !important;
  margin: 0 !important;
  text-align: left !important;
  top: auto !important;
  left: auto !important;
}
html body.abc-seo-landing .abc-why-item h3.elementor-heading-title {
  font-family: "Cal Sans", sans-serif !important;
  font-size: clamp(16px, 2vw, 20px) !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: #F8F7F5 !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  html body.abc-seo-landing .abc-why-item {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 16px !important;
    padding: 18px 16px !important;
    grid-template-columns: unset !important;
  }
  html body.abc-seo-landing .abc-why-item:hover {
    padding-left: 16px !important;
  }
  html body.abc-seo-landing .abc-why-item > .elementor-element:first-child {
    flex: 0 0 40px !important;
    max-width: 40px !important;
  }
  html body.abc-seo-landing .abc-why-item > .elementor-element:last-child {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    width: auto !important;
  }
  html body.abc-seo-landing .abc-why-item .elementor-widget-heading:first-child .elementor-heading-title {
    font-size: 20px !important;
    text-align: center !important;
  }
  html body.abc-seo-landing .abc-why-item h3.elementor-heading-title {
    font-size: 15px !important;
    line-height: 1.4 !important;
  }
  html body.abc-seo-landing .abc-why-section {
    padding: 60px 16px !important;
  }
}
/* 184. WHY CHOOSE US — desktop + mobile fix v2.1.4 */
html body.abc-seo-landing .abc-why-item {
  display: grid !important;
  grid-template-columns: 80px 1fr !important;
  align-items: center !important;
  gap: 24px !important;
  padding: 22px 0 !important;
  margin-bottom: 0 !important;
  border: none !important;
  border-bottom: 1px solid rgba(248, 247, 245, 0.10) !important;
  border-radius: 0 !important;
  background: transparent !important;
  position: relative;
}
html body.abc-seo-landing .abc-why-item:first-of-type {
  border-top: 1px solid rgba(248, 247, 245, 0.10) !important;
}
html body.abc-seo-landing .abc-why-item:hover {
  padding-left: 12px !important;
  border-color: rgba(248, 247, 245, 0.10) !important;
  background: transparent !important;
}
html body.abc-seo-landing .abc-why-item .elementor-widget-heading:first-child .elementor-heading-title {
  position: static !important;
  font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
  font-size: 28px !important;
  font-weight: 300 !important;
  color: #CAA05C !important;
  margin: 0 !important;
  text-align: left !important;
  top: auto !important;
  left: auto !important;
}
html body.abc-seo-landing .abc-why-item h3.elementor-heading-title {
  font-family: "Cal Sans", sans-serif !important;
  font-size: clamp(16px, 2vw, 20px) !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: #F8F7F5 !important;
  margin: 0 !important;
}

@media (max-width: 768px) {
  html body.abc-seo-landing .abc-why-item {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 16px !important;
    padding: 18px 16px !important;
    grid-template-columns: unset !important;
  }
  html body.abc-seo-landing .abc-why-item:hover {
    padding-left: 16px !important;
  }
  html body.abc-seo-landing .abc-why-item > .elementor-element:first-child {
    flex: 0 0 40px !important;
    max-width: 40px !important;
  }
  html body.abc-seo-landing .abc-why-item > .elementor-element:last-child {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    width: auto !important;
  }
  html body.abc-seo-landing .abc-why-item .elementor-widget-heading:first-child .elementor-heading-title {
    font-size: 20px !important;
    text-align: center !important;
  }
  html body.abc-seo-landing .abc-why-item h3.elementor-heading-title {
    font-size: 15px !important;
    line-height: 1.4 !important;
  }
  html body.abc-seo-landing .abc-why-section {
    padding: 60px 16px !important;
  }
}
/* 184b. Editorial gallery cards — more spacing */
html body.abc-seo-landing .abc-editorial-row {
  gap: 16px !important;
}
@media (max-width: 768px) {
  html body.abc-seo-landing .abc-editorial-row {
    gap: 12px !important;
  }
}

/* 180. HEADER MOBILE — logo left | pill | hamburger right */
@media (max-width: 768px) {
  html body .header-main {
    position: relative !important;
  }
  /* Hamburger: absolute far right */
  html body .header-left .menu-mobile-nav-button {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }
  /* Pill: just left of hamburger */
  html body .header-right {
    position: absolute !important;
    right: 52px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    display: flex !important;
  }
}


/* 182b. MOBILE MENU — prevent gold bar + clean active states */
html body .antra-mobile-nav li a::before {
  display: none !important;
}
html body .antra-mobile-nav li a {
  background: transparent !important;
  background-color: transparent !important;
}
html body .antra-mobile-nav .current-menu-item > a,
html body .antra-mobile-nav .current-menu-parent > a,
html body .antra-mobile-nav .current-menu-ancestor > a,
html body .antra-mobile-nav .submenu-open > a {
  color: #CAA05C !important;
  background: transparent !important;
}
/* L3 items: grouped with subtle background + gold left border */
html body .antra-mobile-nav .sub-menu .sub-menu {
  background: rgba(202, 160, 92, 0.06) !important;
  border-left: 3px solid #CAA05C !important;
  margin-left: 24px !important;
  border-radius: 0 !important;
}
html body .antra-mobile-nav .sub-menu .sub-menu li a {
  padding-left: 20px !important;
  font-size: 13px !important;
  color: rgba(28, 28, 29, 0.6) !important;
}
/* Home project carousel — gold navigation arrows */
html body .elementor-element-88ecedd .elementor-swiper-button {
  background: rgba(202, 160, 92, 0.9) !important;
  color: #1C1C1D !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  transition: background 0.25s ease, transform 0.2s ease !important;
}
html body .elementor-element-88ecedd .elementor-swiper-button:hover {
  background: #CAA05C !important;
  transform: scale(1.1) !important;
}
html body .elementor-element-88ecedd .elementor-swiper-button i {
  font-size: 16px !important;
  color: #1C1C1D !important;
}
/* ═══════════════════════════════════════════

/* ═══════════════════════════════════════════
   190. ABOUT PAGE — Industrial-editorial
   v1.1.0: Hero + Intro + Methodology + Scope + Differentiators + CTA
   Prefix: abc-about-
   ═══════════════════════════════════════════ */

/* ─── RESET: prevent Antra theme from overriding ─── */
.abc-about h1,
.abc-about h2,
.abc-about h3,
.abc-about h4 {
  padding: 0 !important;
  margin-top: 0 !important;
  border: none !important;
  background: none !important;
}
.abc-about p {
  padding: 0 !important;
}
.abc-about ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.abc-about a { color: inherit; }

/* ─── WRAPPER: break out of .entry-content container ─── */
body.page-template-default .abc-about {
  width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  margin-top: -30px;
  overflow-x: hidden;
}

/* ─── HERO ─── */
.abc-about-hero {
  position: relative;
  background: var(--abc-dark, #1C1C1D);
  color: var(--abc-cream, #F8F7F5);
  padding: clamp(80px, 12vw, 160px) clamp(24px, 5vw, 80px) clamp(56px, 8vw, 100px);
  overflow: hidden;
}
.abc-about-hero__grain {
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
}
.abc-about-hero__accent {
  position: absolute;
  right: clamp(-20px, 2vw, 40px);
  bottom: -10px;
  max-width: 100vw;
  white-space: nowrap;
  font-family: "Good Times", sans-serif;
  font-size: clamp(20px, 5vw, 72px);
  line-height: 1;
  color: rgba(202, 160, 92, 0.04);
  letter-spacing: 0.02em;
  pointer-events: none;
  user-select: none;
}
.abc-about-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 800px;
}
.abc-about-hero__rule {
  width: 48px;
  height: 3px;
  background: var(--abc-gold, #CAA05C);
  margin-bottom: 28px;
}
.abc-about-hero__title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(28px, 5vw, 52px) !important;
  line-height: 1.1 !important;
  margin: 0 0 20px !important;
  color: var(--abc-cream, #F8F7F5) !important;
  letter-spacing: 0.01em;
}
.abc-about-hero__sub {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(15px, 1.8vw, 18px);
  line-height: 1.65;
  color: rgba(248, 247, 245, 0.65) !important;
  max-width: 600px;
  margin: 0 !important;
}

/* Breadcrumb */
.abc-about-breadcrumb {
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  margin-bottom: 40px;
  color: rgba(248, 247, 245, 0.4);
}
.abc-about-breadcrumb a {
  color: rgba(248, 247, 245, 0.4);
  text-decoration: none;
  transition: color 0.2s ease;
}
.abc-about-breadcrumb a:hover { color: var(--abc-gold, #CAA05C); }
.abc-about-breadcrumb span {
  margin: 0 8px;
  opacity: 0.4;
}
.abc-about-breadcrumb span:last-child {
  margin: 0;
  opacity: 1;
  color: rgba(248, 247, 245, 0.65);
}

/* ─── INTRO / MISSION ─── */
.abc-about-intro {
  background: var(--abc-warm-gray, #E8E5E0);
}
.abc-about-intro__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(48px, 6vw, 80px) clamp(24px, 5vw, 80px);
}
@media (min-width: 769px) {
  .abc-about-intro__inner {
    grid-template-columns: 2fr 3fr;
    gap: clamp(40px, 5vw, 72px);
    align-items: start;
  }
}
.abc-about-intro__eyebrow {
  font-family: "Golos Text", sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-gold, #CAA05C) !important;
  margin: 0 0 16px !important;
}
.abc-about-intro__pullquote {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(18px, 2.5vw, 24px) !important;
  line-height: 1.35 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 0 !important;
  padding-left: 20px !important;
  border-left: 3px solid var(--abc-gold, #CAA05C) !important;
}
.abc-about-intro__body p {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(15px, 1.6vw, 16px);
  line-height: 1.75;
  color: #4a4a4a !important;
  margin: 0 0 16px !important;
}
.abc-about-intro__body p:last-child { margin-bottom: 0 !important; }

/* Stats bar */
.abc-about-stats {
  background: var(--abc-dark, #1C1C1D);
}
.abc-about-stats__inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(32px, 4vw, 56px) clamp(24px, 5vw, 80px);
}
.abc-about-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}
.abc-about-stat__num {
  font-family: "Good Times", sans-serif;
  font-size: clamp(36px, 5vw, 56px);
  line-height: 1;
  color: var(--abc-gold, #CAA05C) !important;
}
.abc-about-stat__plus {
  font-size: 0.6em;
  vertical-align: super;
  color: rgba(202, 160, 92, 0.6);
}
.abc-about-stat__rule {
  width: 24px;
  height: 2px;
  background: rgba(202, 160, 92, 0.3);
}
.abc-about-stat__label {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(11px, 1.2vw, 13px);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(248, 247, 245, 0.5) !important;
}

/* ─── METHODOLOGY ─── */
.abc-about-method {
  position: relative;
  background: var(--abc-cream, #F8F7F5);
  padding: clamp(56px, 7vw, 96px) clamp(24px, 5vw, 80px);
  overflow: hidden;
}
.abc-about-method__grain {
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
  pointer-events: none;
}
.abc-about-method__inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
}
.abc-about-method__eyebrow {
  font-family: "Golos Text", sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-gold, #CAA05C) !important;
  margin: 0 0 12px !important;
}
.abc-about-method__title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(22px, 3.5vw, 36px) !important;
  line-height: 1.15 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 0 0 16px !important;
}
.abc-about-method__sub {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(14px, 1.5vw, 16px);
  line-height: 1.7;
  color: #5a5a5a !important;
  max-width: 680px;
  margin: 0 0 clamp(40px, 5vw, 64px) !important;
}

/* 4-item grid */
.abc-about-method__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  position: relative;
}
@media (min-width: 769px) {
  .abc-about-method__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }
}

.abc-about-method__line {
  display: none;
}
@media (min-width: 769px) {
  .abc-about-method__line {
    display: block;
    position: absolute;
    top: 28px;
    left: 40px;
    right: 40px;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(202, 160, 92, 0.3) 10%, rgba(202, 160, 92, 0.3) 90%, transparent 100%);
  }
}

.abc-about-method__item {
  position: relative;
  padding: clamp(24px, 3vw, 32px) clamp(16px, 2vw, 28px);
  border-bottom: 1px solid rgba(28, 28, 29, 0.07);
}
@media (min-width: 769px) {
  .abc-about-method__item {
    border-bottom: none;
    border-right: 1px solid rgba(28, 28, 29, 0.07);
  }
  .abc-about-method__item:last-child { border-right: none; }
}
.abc-about-method__num {
  display: block;
  font-family: "Good Times", sans-serif;
  font-size: clamp(32px, 4vw, 44px);
  line-height: 1;
  color: rgba(202, 160, 92, 0.25);
  margin-bottom: 16px;
  transition: color 0.3s ease;
}
.abc-about-method__item:hover .abc-about-method__num {
  color: var(--abc-gold, #CAA05C);
}
.abc-about-method__name {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(14px, 1.6vw, 17px) !important;
  line-height: 1.25 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 0 0 10px !important;
  letter-spacing: 0.01em;
}
.abc-about-method__desc {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(13px, 1.3vw, 14px);
  line-height: 1.65;
  color: #6a6a6a !important;
  margin: 0 !important;
}

/* ─── FULL SCOPE ─── */
.abc-about-scope {
  background: var(--abc-warm-gray, #E8E5E0);
  padding: clamp(48px, 6vw, 80px) clamp(24px, 5vw, 80px);
}
.abc-about-scope__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.abc-about-scope__eyebrow {
  font-family: "Golos Text", sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-gold, #CAA05C) !important;
  margin: 0 0 12px !important;
}
.abc-about-scope__title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(20px, 3vw, 30px) !important;
  line-height: 1.2 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 0 0 24px !important;
  max-width: 700px;
}
.abc-about-scope__body {
  max-width: 780px;
}
.abc-about-scope__body p {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(15px, 1.6vw, 16px);
  line-height: 1.75;
  color: #4a4a4a !important;
  margin: 0 0 16px !important;
}
.abc-about-scope__body p:last-child { margin-bottom: 0 !important; }

/* ─── DIFFERENTIATORS ─── */
.abc-about-diff {
  background: var(--abc-dark, #1C1C1D);
  padding: clamp(56px, 7vw, 96px) clamp(24px, 5vw, 80px);
}
.abc-about-diff__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.abc-about-diff__eyebrow {
  font-family: "Golos Text", sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-gold, #CAA05C) !important;
  margin: 0 0 12px !important;
}
.abc-about-diff__title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(22px, 3.5vw, 34px) !important;
  line-height: 1.15 !important;
  color: var(--abc-cream, #F8F7F5) !important;
  margin: 0 0 clamp(36px, 5vw, 56px) !important;
}
.abc-about-diff__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
@media (min-width: 769px) {
  .abc-about-diff__grid {
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
}
.abc-about-diff__item {
  display: flex;
  gap: clamp(16px, 2vw, 24px);
  padding: clamp(24px, 3vw, 32px) 0;
  border-bottom: 1px solid rgba(248, 247, 245, 0.08);
  align-items: flex-start;
}
@media (min-width: 769px) {
  .abc-about-diff__item {
    padding: clamp(24px, 3vw, 32px) clamp(20px, 3vw, 36px);
  }
  .abc-about-diff__item:nth-child(odd) {
    border-right: 1px solid rgba(248, 247, 245, 0.08);
  }
  .abc-about-diff__item:nth-child(1),
  .abc-about-diff__item:nth-child(2) {
    padding-top: 0;
  }
  .abc-about-diff__item:nth-child(3),
  .abc-about-diff__item:nth-child(4) {
    border-bottom: none;
  }
}

.abc-about-diff__marker {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  margin-top: 6px;
  background: var(--abc-gold, #CAA05C);
  border-radius: 1px;
  transform: rotate(45deg);
}
.abc-about-diff__content {
  flex: 1;
  min-width: 0;
}
.abc-about-diff__name {
  display: block !important;
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(14px, 1.5vw, 16px) !important;
  line-height: 1.3 !important;
  color: var(--abc-cream, #F8F7F5) !important;
  margin: 0 0 8px !important;
}
.abc-about-diff__desc {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(13px, 1.3vw, 14px);
  line-height: 1.65;
  color: rgba(248, 247, 245, 0.55) !important;
  margin: 0 !important;
}

/* ─── SERVICE AREAS ─── */
.abc-about-areas {
  background: var(--abc-cream, #F8F7F5);
  padding: clamp(48px, 6vw, 80px) clamp(24px, 5vw, 80px);
  border-top: 1px solid rgba(28, 28, 29, 0.06);
}
.abc-about-areas__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.abc-about-areas__eyebrow {
  font-family: "Golos Text", sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-gold, #CAA05C) !important;
  margin: 0 0 12px !important;
}
.abc-about-areas__title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(20px, 3vw, 30px) !important;
  line-height: 1.2 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 0 0 16px !important;
  max-width: 720px;
}
.abc-about-areas__sub {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(15px, 1.6vw, 16px);
  line-height: 1.7;
  color: #4a4a4a !important;
  max-width: 780px;
  margin: 0 0 clamp(28px, 4vw, 40px) !important;
}
.abc-about-areas__group {
  margin-bottom: clamp(24px, 3vw, 32px);
}
.abc-about-areas__group:last-child {
  margin-bottom: 0;
}
.abc-about-areas__county {
  display: flex !important;
  align-items: center;
  gap: 10px;
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(13px, 1.4vw, 15px) !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 0 0 16px !important;
}
.abc-about-areas__county::before {
  content: "";
  width: 9px;
  height: 9px;
  background: var(--abc-gold, #CAA05C);
  transform: rotate(45deg);
  flex-shrink: 0;
}
.abc-about-areas__list {
  list-style: none !important;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
}
.abc-about-areas__list li {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(12.5px, 1.3vw, 13.5px);
  line-height: 1.2;
  color: #3a3a3a;
  background: #fff;
  border: 1px solid rgba(28, 28, 29, 0.1);
  border-radius: 2px;
  padding: 7px 12px;
  margin: 0 !important;
}

/* ─── CTA ─── */
.abc-about-cta {
  background: var(--abc-dark, #1C1C1D);
  padding: clamp(56px, 7vw, 96px) clamp(24px, 5vw, 80px);
  text-align: center;
}
.abc-about-cta__inner {
  max-width: 600px;
  margin: 0 auto;
}
.abc-about-cta__title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(22px, 3.5vw, 34px) !important;
  line-height: 1.2 !important;
  color: var(--abc-cream, #F8F7F5) !important;
  margin: 0 0 16px !important;
}
.abc-about-cta__sub {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(14px, 1.5vw, 16px);
  line-height: 1.65;
  color: rgba(248, 247, 245, 0.6) !important;
  margin: 0 0 32px !important;
}
.abc-about-cta__btns {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Buttons */
.abc-about-btn {
  display: inline-block;
  font-family: "Good Times", sans-serif;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 16px 36px;
  text-decoration: none;
  border-radius: 2px;
  transition: background 0.3s ease, color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
}
.abc-about-btn--primary {
  background: var(--abc-gold, #CAA05C);
  color: var(--abc-dark, #1C1C1D) !important;
}
.abc-about-btn--primary:hover {
  background: #d4af6a;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(202, 160, 92, 0.25);
  color: var(--abc-dark, #1C1C1D) !important;
}
.abc-about-btn--ghost {
  background: transparent;
  color: var(--abc-cream, #F8F7F5) !important;
  border: 1px solid rgba(248, 247, 245, 0.25);
}
.abc-about-btn--ghost:hover {
  border-color: var(--abc-gold, #CAA05C);
  color: var(--abc-gold, #CAA05C) !important;
}

/* ─── MOBILE REFINEMENTS ─── */
@media (max-width: 768px) {
  .abc-about-hero__accent {
    font-size: 34px;
    right: -10px;
    bottom: -10px;
  }
  .abc-about-stats__inner {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 40px 24px;
  }
  .abc-about-stat {
    flex-direction: row;
    align-items: center;
    gap: 16px;
    text-align: left;
  }
  .abc-about-stat__num {
    min-width: 80px;
  }
  .abc-about-stat__rule {
    width: 2px;
    height: 24px;
  }
  .abc-about-diff__item:first-child {
    padding-top: 0;
  }
  .abc-about-diff__item:last-child {
    border-bottom: none;
  }
}

/* 190c. ABOUT — hide global Elementor CTA (already have our own) */
body.page-id-9221 .elementor-element-8ca2535 {
  display: none !important;
}


/* ═══════════════════════════════════════════════
   §200 · Portfolio Gallery Pages — v2.1.0
   Industrial editorial — uniform grid, no gaps
   ═══════════════════════════════════════════════ */

/* ─── CONTAINER ─────────────────────────────── */

.abc-port {
  --port-gold: var(--abc-gold, #CAA05C);
  --port-dark: var(--abc-dark, #1C1C1D);
  --port-cream: var(--abc-cream, #F8F7F5);
  --port-warm: var(--abc-warm-gray, #E8E5E0);
  --port-radius: 4px;
  color: var(--port-cream);
}


/* ─── HERO ──────────────────────────────────── */

.abc-port__hero {
  position: relative;
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  background: var(--port-dark);
  padding: clamp(100px, 12vw, 180px) clamp(24px, 6vw, 120px) clamp(60px, 8vw, 100px);
  overflow: hidden;
}

.abc-port__grain {
  position: absolute;
  inset: 0;
  opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size: 200px;
  pointer-events: none;
}

.abc-port__hero-inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
}

.abc-port__breadcrumb {
  font-family: "Golos Text", sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--port-gold);
  margin-bottom: 28px;
}
.abc-port__breadcrumb a {
  color: var(--port-gold);
  text-decoration: none;
  opacity: 0.6;
  transition: opacity 250ms ease;
}
.abc-port__breadcrumb a:hover { opacity: 1; }
.abc-port__sep {
  display: inline-block;
  margin: 0 10px;
  opacity: 0.35;
}

.abc-port__hero-rule {
  width: 48px;
  height: 2px;
  background: var(--port-gold);
  margin-bottom: 28px;
}

.abc-port__title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(32px, 5.5vw, 64px) !important;
  line-height: 1.05 !important;
  color: var(--port-cream) !important;
  margin: 0 0 20px !important;
  letter-spacing: -0.01em;
}

.abc-port__subtitle {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(15px, 1.6vw, 19px);
  line-height: 1.55;
  color: rgba(248, 247, 245, 0.55);
  max-width: 560px;
  margin: 0 0 40px;
}

.abc-port__meta {
  display: flex;
  gap: clamp(32px, 4vw, 64px);
  padding-top: 28px;
  border-top: 1px solid rgba(202, 160, 92, 0.15);
}

.abc-port__stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.abc-port__stat-num {
  font-family: "Good Times", sans-serif;
  font-size: clamp(28px, 3.5vw, 44px);
  color: var(--port-gold);
  line-height: 1;
}

.abc-port__stat-label {
  font-family: "Golos Text", sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  color: rgba(248, 247, 245, 0.4);
}


/* ─── BACK NAV ──────────────────────────────── */

.abc-port__back-wrap {
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  position: relative;
  background: var(--port-dark);
  border-bottom: 1px solid rgba(202, 160, 92, 0.1);
}

.abc-port__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 18px clamp(24px, 6vw, 120px);
  font-family: "Golos Text", sans-serif;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--port-gold);
  text-decoration: none;
  opacity: 0.6;
  transition: opacity 250ms ease;
}
.abc-port__back:hover { opacity: 1; }

.abc-port__back-arrow {
  font-size: 16px;
  transition: transform 250ms ease;
}
.abc-port__back:hover .abc-port__back-arrow {
  transform: translateX(-4px);
}


/* ─── GALLERY GRID ──────────────────────────── */

.abc-port__grid {
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  position: relative;
  background: #1C1C1D;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 280px;
  gap: 0;
  padding: 0;
}
/* Strip spurious <br> (wpautop) that become empty grid cells -> uniform bento */
.abc-port__grid br { display: none; }
@media (max-width: 768px) {
  .abc-port__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
}
@media (max-width: 480px) {
  .abc-port__grid { grid-template-columns: 1fr; grid-auto-rows: 260px; }
}

.abc-port__grid::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--port-gold) 15%,
    var(--port-gold) 85%,
    transparent 100%
  );
  opacity: 0.25;
  z-index: 3;
}


/* ─── GALLERY ITEM — uniform cells ──────────── */

.abc-port__item {
  position: relative;
  display: block;
  overflow: hidden;
  height: 100%;
  cursor: pointer;
}

.abc-port__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 600ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 600ms ease;
  filter: saturate(0.92);
}

.abc-port__item:hover img {
  transform: scale(1.06);
  filter: saturate(1);
}

/* Dark gradient overlay on hover */
.abc-port__item::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(28, 28, 29, 0.7) 0%,
    rgba(28, 28, 29, 0) 50%
  );
  opacity: 0;
  transition: opacity 400ms ease;
  pointer-events: none;
}
.abc-port__item:hover::before { opacity: 1; }

/* Index number — bottom right on hover */
.abc-port__item-idx {
  position: absolute;
  bottom: 14px;
  right: 16px;
  z-index: 2;
  font-family: "Good Times", sans-serif;
  font-size: 13px;
  color: var(--port-gold);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 350ms ease 80ms, transform 350ms ease 80ms;
  pointer-events: none;
}
.abc-port__item:hover .abc-port__item-idx {
  opacity: 0.8;
  transform: translateY(0);
}

/* Category tag — top left, always visible on hero */
.abc-port__item-tag {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  font-family: "Golos Text", sans-serif;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--port-cream);
  background: rgba(28, 28, 29, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 6px 14px;
  border: 1px solid rgba(202, 160, 92, 0.3);
  border-radius: 2px;
  pointer-events: none;
}

/* First image spans full width, landscape crop */
.abc-port__item--hero {
  grid-column: 1 / -1;
  aspect-ratio: 21 / 9;
}


/* ─── CTA ───────────────────────────────────── */

.abc-port__cta {
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  position: relative;
  background: var(--port-dark);
  border-top: 1px solid rgba(202, 160, 92, 0.12);
}

.abc-port__cta-inner {
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(60px, 8vw, 100px) clamp(24px, 6vw, 80px);
  text-align: center;
}

.abc-port__cta-eyebrow {
  font-family: "Golos Text", sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--port-gold);
  margin: 0 0 16px;
}

.abc-port__cta-title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(24px, 3.5vw, 40px) !important;
  color: var(--port-cream) !important;
  line-height: 1.15 !important;
  margin: 0 0 16px !important;
}

.abc-port__cta-sub {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(14px, 1.4vw, 17px);
  color: rgba(248, 247, 245, 0.5);
  line-height: 1.6;
  margin: 0 0 36px;
}

.abc-port__cta-btns {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

.abc-port__btn {
  display: inline-block;
  font-family: "Good Times", sans-serif;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 16px 36px;
  border-radius: var(--port-radius);
  text-decoration: none !important;
  transition: all 250ms ease;
  cursor: pointer;
}

.abc-port__btn--primary {
  background: var(--port-gold);
  color: var(--port-dark) !important;
}
.abc-port__btn--primary:hover {
  background: var(--abc-gold-light, #D4B478);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(202, 160, 92, 0.2);
}

.abc-port__btn--ghost {
  background: transparent;
  color: var(--port-cream) !important;
  border: 1px solid rgba(248, 247, 245, 0.2);
}
.abc-port__btn--ghost:hover {
  border-color: var(--port-gold);
  color: var(--port-gold) !important;
  transform: translateY(-2px);
}


/* ═══════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════ */

@media (max-width: 1024px) {
  .abc-port__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .abc-port__item--hero {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 768px) {
  .abc-port__hero {
    padding: clamp(80px, 10vw, 120px) 20px 48px;
  }
  .abc-port__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2px;
    padding: 2px;
  }
  .abc-port__item--hero {
    aspect-ratio: 16 / 10;
  }
  .abc-port__meta { gap: 24px; }
  .abc-port__back { padding: 14px 20px; }
  .abc-port__cta-btns {
    flex-direction: column;
    align-items: center;
  }
  .abc-port__btn {
    width: 100%;
    max-width: 320px;
    text-align: center;
  }
  .abc-port__item-idx {
    opacity: 0.5;
    transform: translateY(0);
  }
  .abc-port__item::before { opacity: 0.4; }
}

@media (max-width: 420px) {
  .abc-port__title { font-size: 28px !important; }
  .abc-port__stat-num { font-size: 24px; }
}


/* Fix white line between header and portfolio hero */
.abc-port .abc-port__hero {
  margin-top: -1px;
}
.page-template-default .entry-content:has(.abc-port) {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.page-template-default:has(.abc-port) .site-content,
.page-template-default:has(.abc-port) .content-area,
.page-template-default:has(.abc-port) .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* Fallback for browsers without :has() */
body .abc-port {
  margin-top: -1px;
}


/* §200 fix — override Antra global img rules inside portfolio grid */
.abc-port__grid .abc-port__item img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

  background-position: center center !important;
}

/* HOME HERO — match header logo typography (restored) */
html body sr7-module sr7-txt[id$="-4"].sr7-layer {
  font-family: 'Good Times', 'Cal Sans', sans-serif !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ABC Custom Landing Pages — Inspection & Real Estate Advisory
   2026-05-12 — Custom LPs built from client wireframes + docx copy
   ═══════════════════════════════════════════════════════════════════════════ */

/* Shared brand buttons used inside these LPs */
.abc-inspection .abc-btn,
.abc-realestate .abc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  font-family: 'Golos Text', system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  border-radius: 2px;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: transform 200ms ease, box-shadow 200ms ease, background 200ms ease, color 200ms ease;
}
.abc-inspection .abc-btn--gold,
.abc-realestate .abc-btn--gold {
  background: var(--abc-gold, #CAA05C);
  color: var(--abc-dark, #1C1C1D);
}
.abc-inspection .abc-btn--gold:hover,
.abc-realestate .abc-btn--gold:hover {
  background: #b8924d;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(202, 160, 92, 0.35);
}
.abc-inspection .abc-btn--ghost-gold,
.abc-realestate .abc-btn--ghost-gold {
  background: transparent;
  color: var(--abc-gold, #CAA05C);
  border-color: var(--abc-gold, #CAA05C);
}
.abc-inspection .abc-btn--ghost-gold:hover,
.abc-realestate .abc-btn--ghost-gold:hover {
  background: rgba(202, 160, 92, 0.12);
  transform: translateY(-1px);
}

/* Containers */
.abc-inspection__container,
.abc-realestate__container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ═══════════════════════════════════════════
   INSPECTION LP
   ═══════════════════════════════════════════ */
.abc-inspection {
  font-family: 'Golos Text', system-ui, sans-serif;
  color: var(--abc-dark, #1C1C1D);
  background: var(--abc-cream, #F8F7F5);
}

/* Hero — dark editorial, no photo */
.abc-inspection__hero {
  position: relative;
  min-height: 88vh;
  background: radial-gradient(ellipse at 75% 0%, rgba(202, 160, 92, 0.08) 0%, transparent 55%),
              linear-gradient(180deg, #16171b 0%, #1C1C1D 50%, #0f1011 100%);
  display: flex;
  align-items: center;
  color: #fff;
  overflow: hidden;
  border-bottom: 1px solid rgba(202, 160, 92, 0.15);
}
.abc-inspection__hero-grain {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='ng'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23ng)' opacity='0.07'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 1;
}
.abc-inspection__hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(202, 160, 92, 0.4) 30%, rgba(202, 160, 92, 0.4) 70%, transparent 100%);
  z-index: 2;
}
.abc-inspection__hero::after {
  content: '';
  position: absolute;
  right: 8%;
  top: 50%;
  transform: translateY(-50%);
  width: 380px;
  height: 380px;
  border: 1px solid rgba(202, 160, 92, 0.18);
  border-radius: 50%;
  z-index: 1;
  pointer-events: none;
}
@media (max-width: 1100px) {
  .abc-inspection__hero::after { display: none; }
}
.abc-inspection__hero-mark {
  position: absolute;
  top: 32px;
  right: 32px;
  z-index: 2;
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.4em;
  color: rgba(202, 160, 92, 0.55);
  display: flex;
  gap: 8px;
}
.abc-inspection__hero-mark span:nth-child(even) {
  color: rgba(255, 255, 255, 0.25);
}
.abc-inspection__hero-inner {
  position: relative;
  z-index: 3;
  max-width: 920px;
  width: 100%;
  margin: 0 auto;
  padding: 140px 24px 100px;
}
.abc-inspection__eyebrow {
  display: inline-block;
  font-family: 'Golos Text', system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-gold, #CAA05C);
  margin-bottom: 24px;
}
.abc-inspection__eyebrow--dark {
  color: rgba(28,28,29, 0.6);
}
.abc-inspection__h1 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(2.4rem, 5.5vw, 4.6rem);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: 0.01em;
  margin: 0 0 24px;
  color: #fff;
}
.abc-inspection__hero-sub {
  font-size: clamp(1rem, 1.15vw, 1.18rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
  max-width: 700px;
  margin: 0 0 40px;
}
.abc-inspection__trust {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: 28px;
}
.abc-inspection__trust li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
}
.abc-inspection__trust-icon {
  width: 28px;
  height: 28px;
  border: 1px solid var(--abc-gold, #CAA05C);
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
}
.abc-inspection__trust-icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
  width: 12px;
  height: 6px;
  border-left: 2px solid var(--abc-gold, #CAA05C);
  border-bottom: 2px solid var(--abc-gold, #CAA05C);
  margin-top: -2px;
}

/* Sections */
.abc-inspection__section {
  padding: 100px 0;
}
.abc-inspection__section--light {
  background: #fff;
  color: var(--abc-dark, #1C1C1D);
}
.abc-inspection__section--cream {
  background: var(--abc-cream, #F8F7F5);
  color: var(--abc-dark, #1C1C1D);
}
.abc-inspection__section--dark {
  background: var(--abc-dark, #1C1C1D);
  color: #fff;
}
.abc-inspection__section-head {
  max-width: 760px;
  margin: 0 0 56px;
}
.abc-inspection__h2 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(1.7rem, 3.5vw, 2.8rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.005em;
  margin: 0 0 20px;
}
.abc-inspection__h2--light { color: #fff; }
.abc-inspection__lede {
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(28,28,29, 0.72);
  margin: 0;
}
.abc-inspection__lede--light {
  color: rgba(255, 255, 255, 0.78);
}

/* Cards grid */
.abc-inspection__grid {
  display: grid;
  gap: 24px;
}
.abc-inspection__grid--4 {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.abc-inspection__grid--3 {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.abc-inspection__card {
  background: #fff;
  padding: 36px 28px;
  border: 1px solid rgba(28,28,29, 0.08);
  border-top: 3px solid var(--abc-gold, #CAA05C);
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease;
}
.abc-inspection__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(28, 28, 29, 0.08);
}
.abc-inspection__card--dark {
  background: rgba(255,255,255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-top: 3px solid var(--abc-gold, #CAA05C);
  color: #fff;
}
.abc-inspection__card--dark:hover {
  background: rgba(255,255,255, 0.06);
  border-color: rgba(202, 160, 92, 0.4);
}
.abc-inspection__card-num {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  color: var(--abc-gold, #CAA05C);
}
.abc-inspection__card-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 1.15rem;
  line-height: 1.25;
  letter-spacing: 0.01em;
  font-weight: 400;
  margin: 0;
  color: inherit;
}
.abc-inspection__card-text {
  font-size: 0.92rem;
  line-height: 1.6;
  color: inherit;
  opacity: 0.78;
  margin: 0;
}
.abc-inspection__card-list {
  list-style: none;
  padding: 12px 0 0;
  margin: 0;
  border-top: 1px dashed rgba(28,28,29, 0.12);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.abc-inspection__card--dark .abc-inspection__card-list {
  border-top-color: rgba(255, 255, 255, 0.18);
}
.abc-inspection__card-list li {
  font-size: 0.84rem;
  letter-spacing: 0.01em;
  position: relative;
  padding-left: 18px;
  color: inherit;
  opacity: 0.7;
}
.abc-inspection__card-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 10px;
  height: 1px;
  background: var(--abc-gold, #CAA05C);
}

/* Why-choose pillars */
.abc-inspection__pillars {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 36px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.abc-inspection__pillars li {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.abc-inspection__pillar-num {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 2.6rem;
  line-height: 1;
  color: var(--abc-gold, #CAA05C);
  font-weight: 400;
}
.abc-inspection__pillars h4 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  margin: 0;
  color: var(--abc-dark, #1C1C1D);
}
.abc-inspection__pillars p {
  font-size: 0.9rem;
  line-height: 1.65;
  color: rgba(28,28,29, 0.7);
  margin: 0;
}

/* CTA strip */
.abc-inspection__cta {
  background: #0a0a0b;
  padding: 80px 0;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.abc-inspection__cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='ni'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23ni)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
}
.abc-inspection__cta-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 48px;
}
.abc-inspection__cta-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  line-height: 1.18;
  letter-spacing: 0.01em;
  font-weight: 400;
  margin: 8px 0 16px;
}
.abc-inspection__cta-sub {
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.72);
  margin: 0;
  max-width: 580px;
}
.abc-inspection__cta-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 240px;
}

/* Inspection mobile */
@media (max-width: 900px) {
  .abc-inspection__section { padding: 70px 0; }
  .abc-inspection__hero-inner { padding: 100px 20px 60px; }
  .abc-inspection__cta-grid { grid-template-columns: 1fr; }
  .abc-inspection__cta-actions { width: 100%; }
  .abc-inspection__cta-actions .abc-btn { width: 100%; }
}
@media (max-width: 520px) {
  .abc-inspection__h1 {
    font-size: 2rem;
    line-height: 1.08;
    word-break: break-word;
    hyphens: auto;
  }
  .abc-inspection__hero-inner { padding: 90px 20px 50px; }
  .abc-inspection__hero { min-height: auto; padding: 0; }
  .abc-inspection__hero-mark { top: 22px; right: 18px; font-size: 0.62rem; }
  .abc-inspection__h2 { font-size: 1.45rem; line-height: 1.2; }
  .abc-inspection__cta-title { font-size: 1.4rem; }
}

/* ═══════════════════════════════════════════
   REAL ESTATE ADVISORY LP
   ═══════════════════════════════════════════ */
.abc-realestate {
  font-family: 'Golos Text', system-ui, sans-serif;
  color: var(--abc-dark, #1C1C1D);
  background: var(--abc-cream, #F8F7F5);
}

/* Hero — dark editorial, no photo */
.abc-realestate__hero {
  position: relative;
  min-height: 92vh;
  background: radial-gradient(ellipse at 20% 0%, rgba(202, 160, 92, 0.1) 0%, transparent 55%),
              linear-gradient(180deg, #16171b 0%, #1C1C1D 50%, #0f1011 100%);
  display: flex;
  align-items: center;
  color: #fff;
  overflow: hidden;
  border-bottom: 1px solid rgba(202, 160, 92, 0.15);
}
.abc-realestate__hero-grain {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='ngre'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23ngre)' opacity='0.07'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 1;
}
.abc-realestate__hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(202, 160, 92, 0.4) 30%, rgba(202, 160, 92, 0.4) 70%, transparent 100%);
  z-index: 2;
}
.abc-realestate__hero::after {
  content: '';
  position: absolute;
  left: -120px;
  top: 50%;
  transform: translateY(-50%);
  width: 460px;
  height: 460px;
  border: 1px solid rgba(202, 160, 92, 0.18);
  border-radius: 50%;
  z-index: 1;
  pointer-events: none;
}
@media (max-width: 1100px) {
  .abc-realestate__hero::after { display: none; }
}
.abc-realestate__hero-mark {
  position: absolute;
  top: 32px;
  right: 32px;
  z-index: 2;
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.4em;
  color: rgba(202, 160, 92, 0.55);
  display: flex;
  gap: 8px;
}
.abc-realestate__hero-mark span:nth-child(even) {
  color: rgba(255, 255, 255, 0.25);
}
.abc-realestate__hero-inner {
  position: relative;
  z-index: 3;
  max-width: 960px;
  margin: 0 auto;
  padding: 150px 24px 110px;
  width: 100%;
}
.abc-realestate__eyebrow {
  display: inline-block;
  font-family: 'Golos Text', system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--abc-gold, #CAA05C);
  margin-bottom: 24px;
}
.abc-realestate__eyebrow--dark { color: rgba(28,28,29, 0.6); }
.abc-realestate__h1 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(2.4rem, 5.5vw, 4.8rem);
  font-weight: 400;
  line-height: 1.06;
  margin: 0 0 24px;
  color: #fff;
}
.abc-realestate__hero-tagline {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(1rem, 1.6vw, 1.4rem);
  letter-spacing: 0.16em;
  color: var(--abc-gold, #CAA05C);
  margin: 0 0 28px;
}
.abc-realestate__hero-tagline span {
  color: rgba(255, 255, 255, 0.35);
  margin: 0 6px;
}
.abc-realestate__hero-sub {
  font-size: clamp(1rem, 1.15vw, 1.18rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
  max-width: 720px;
  margin: 0 0 36px;
}
.abc-realestate__hero-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 48px;
}
.abc-realestate__trust {
  list-style: none;
  padding: 28px 0 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}
.abc-realestate__trust li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
}
.abc-realestate__trust-icon {
  width: 28px;
  height: 28px;
  border: 1px solid var(--abc-gold, #CAA05C);
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
}
.abc-realestate__trust-icon::after {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  width: 8px;
  height: 8px;
  background: var(--abc-gold, #CAA05C);
  border-radius: 50%;
}

/* Sections shared */
.abc-realestate__section {
  padding: 100px 0;
}
.abc-realestate__section--light { background: #fff; }
.abc-realestate__section--cream { background: var(--abc-cream, #F8F7F5); }
.abc-realestate__section--dark { background: var(--abc-dark, #1C1C1D); color: #fff; }

.abc-realestate__section-head {
  max-width: 780px;
  margin: 0 0 56px;
}
.abc-realestate__section-head--centered {
  margin: 0 auto;
  text-align: center;
}
.abc-realestate__h2 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(1.7rem, 3.6vw, 2.8rem);
  font-weight: 400;
  line-height: 1.15;
  margin: 0 0 20px;
}
.abc-realestate__h2--light { color: #fff; }
.abc-realestate__lede {
  font-size: 1.05rem;
  line-height: 1.7;
  color: rgba(28,28,29, 0.72);
  margin: 0;
}
.abc-realestate__lede--light { color: rgba(255, 255, 255, 0.78); }

/* What makes us different */
.abc-realestate__features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
.abc-realestate__features li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 24px;
  background: #fff;
  border-left: 3px solid var(--abc-gold, #CAA05C);
  font-size: 0.96rem;
  font-weight: 500;
  line-height: 1.4;
}
.abc-realestate__check {
  width: 22px;
  height: 22px;
  border: 1px solid var(--abc-gold, #CAA05C);
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
}
.abc-realestate__check::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
  width: 10px;
  height: 5px;
  border-left: 1.5px solid var(--abc-gold, #CAA05C);
  border-bottom: 1.5px solid var(--abc-gold, #CAA05C);
  margin-top: -2px;
}

/* Service cards */
.abc-realestate__grid {
  display: grid;
  gap: 24px;
}
.abc-realestate__grid--3 {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}
.abc-realestate__card {
  background: #fff;
  padding: 40px 32px;
  border: 1px solid rgba(28,28,29, 0.08);
  border-top: 3px solid var(--abc-gold, #CAA05C);
  display: flex;
  flex-direction: column;
  gap: 18px;
  transition: transform 250ms ease, box-shadow 250ms ease;
}
.abc-realestate__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(28, 28, 29, 0.08);
}
.abc-realestate__card-num {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  color: var(--abc-gold, #CAA05C);
}
.abc-realestate__card-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 1.2rem;
  line-height: 1.25;
  font-weight: 400;
  margin: 0;
}
.abc-realestate__card-text {
  font-size: 0.94rem;
  line-height: 1.65;
  color: rgba(28,28,29, 0.72);
  margin: 0;
}
.abc-realestate__card-list {
  list-style: none;
  padding: 14px 0 0;
  margin: 0;
  border-top: 1px dashed rgba(28,28,29, 0.12);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.abc-realestate__card-list li {
  font-size: 0.86rem;
  position: relative;
  padding-left: 18px;
  color: rgba(28,28,29, 0.65);
}
.abc-realestate__card-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 10px;
  height: 1px;
  background: var(--abc-gold, #CAA05C);
}

/* Neighborhoods */
.abc-realestate__neighborhoods {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 14px;
}
.abc-realestate__neighborhoods li {
  background: rgba(255,255,255, 0.04);
  border: 1px solid rgba(255,255,255, 0.12);
  padding: 18px 16px;
  text-align: center;
  font-size: 0.92rem;
  color: rgba(255,255,255, 0.85);
  letter-spacing: 0.02em;
  transition: border-color 200ms ease, background 200ms ease;
}
.abc-realestate__neighborhoods li:hover {
  border-color: rgba(202, 160, 92, 0.5);
  background: rgba(255,255,255, 0.06);
}

/* Process */
.abc-realestate__process {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: process;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 32px;
}
.abc-realestate__process li {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 0 0 0 28px;
  border-left: 1px solid rgba(28,28,29, 0.12);
}
.abc-realestate__process-num {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 2.4rem;
  line-height: 1;
  color: var(--abc-gold, #CAA05C);
  font-weight: 400;
}
.abc-realestate__process h4 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  margin: 0;
}
.abc-realestate__process p {
  font-size: 0.9rem;
  line-height: 1.65;
  color: rgba(28,28,29, 0.7);
  margin: 0;
}

/* CTA */
.abc-realestate__cta {
  background: #0a0a0b;
  padding: 80px 0;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.abc-realestate__cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='nr'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23nr)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
}
.abc-realestate__cta-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 48px;
}
.abc-realestate__cta-title {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  line-height: 1.18;
  font-weight: 400;
  margin: 8px 0 16px;
}
.abc-realestate__cta-sub {
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.72);
  margin: 0;
  max-width: 580px;
}
.abc-realestate__cta-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 240px;
}

/* Real Estate mobile */
@media (max-width: 900px) {
  .abc-realestate__section { padding: 70px 0; }
  .abc-realestate__hero-inner { padding: 100px 20px 60px; }
  .abc-realestate__cta-grid { grid-template-columns: 1fr; }
  .abc-realestate__cta-actions { width: 100%; }
  .abc-realestate__cta-actions .abc-btn { width: 100%; }
  .abc-realestate__hero-actions { flex-direction: column; }
  .abc-realestate__hero-actions .abc-btn { width: 100%; }
}
@media (max-width: 520px) {
  .abc-realestate__h1 {
    font-size: 1.85rem;
    line-height: 1.08;
    word-break: break-word;
    hyphens: auto;
  }
  .abc-realestate__hero-tagline { font-size: 0.92rem; letter-spacing: 0.1em; }
  .abc-realestate__hero-tagline span { margin: 0 4px; }
  .abc-realestate__hero-inner { padding: 90px 20px 50px; }
  .abc-realestate__hero { min-height: auto; }
  .abc-realestate__hero-mark { top: 22px; right: 18px; font-size: 0.62rem; }
  .abc-realestate__h2 { font-size: 1.45rem; line-height: 1.2; }
  .abc-realestate__cta-title { font-size: 1.4rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ABC LPs v2 — Wireframe-driven redesign (Real Estate + Inspection)
   2026-05-12 — Matches client GPT mockup: navy bg + gold accents + photo cards
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  --abc-navy: #0E1828;
  --abc-navy-2: #0A1322;
  --abc-navy-3: #1A2840;             /* card bg on dark sections - clearly visible */
  --abc-gold: #CAA05C;
  --abc-gold-bright: #E0B870;        /* brighter gold for better contrast on dark */
  --abc-gold-soft: #d4b376;
  --abc-cream-2: #F4F1ED;
  --abc-text-dark: #15202E;          /* deeper text color for max contrast on light bg */
  --abc-text-dark-soft: #3B4858;     /* secondary text on light - solid not rgba */
  --abc-text-light: #FFFFFF;         /* primary text on dark */
  --abc-text-light-2: #D9E1ED;       /* secondary text on dark - solid bluish-white */
  --abc-text-light-3: #A8B3C5;       /* tertiary text on dark - subtle */
  --abc-border-light: rgba(255,255,255,0.18);  /* visible hairline on dark */
  --abc-border-gold: rgba(202,160,92,0.4);     /* gold accent border */
}

/* Shared button styles (used in both LPs) */
.abc-rea .abc-btn,
.abc-ins .abc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 28px;
  font-family: 'Golos Text', system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  border-radius: 3px;
  border: 1.5px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: transform 180ms ease, background 180ms ease, color 180ms ease, box-shadow 180ms ease;
  white-space: nowrap;
}
.abc-rea .abc-btn--gold,
.abc-ins .abc-btn--gold {
  background: var(--abc-gold);
  color: var(--abc-navy);
}
.abc-rea .abc-btn--gold:hover,
.abc-ins .abc-btn--gold:hover {
  background: var(--abc-gold-soft);
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(202,160,92,.35);
}
.abc-rea .abc-btn--outline-white,
.abc-ins .abc-btn--outline-white {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,0.7);
}
.abc-rea .abc-btn--outline-white:hover,
.abc-ins .abc-btn--outline-white:hover {
  background: rgba(255,255,255,0.1);
  border-color: #fff;
  transform: translateY(-1px);
}
.abc-rea .abc-btn--lg,
.abc-ins .abc-btn--lg {
  padding: 18px 36px;
  font-size: 1rem;
}

/* ═════════════════════════════════════════
   REAL ESTATE ADVISORY v2
   ═════════════════════════════════════════ */
.abc-rea {
  font-family: 'Golos Text', system-ui, sans-serif;
  color: var(--abc-navy);
  background: #fff;
}

/* HERO */
.abc-rea__hero {
  position: relative;
  background: var(--abc-navy);
  color: #fff;
  overflow: hidden;
  min-height: 720px;
}
.abc-rea__hero-photo {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
}
.abc-rea__hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.abc-rea__hero-photo--right { display: none; } /* used only in split variations */
.abc-rea__hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, var(--abc-navy) 0%, var(--abc-navy) 35%, rgba(14,24,40,0.55) 60%, rgba(14,24,40,0.15) 100%);
  z-index: 2;
}
.abc-rea__hero-topcta {
  position: absolute;
  top: 30px;
  right: 32px;
  z-index: 4;
  padding: 10px 22px;
  background: rgba(14,24,40,0.7);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  font-family: 'Golos Text', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 3px;
  transition: background 180ms ease;
}
.abc-rea__hero-topcta:hover { background: var(--abc-navy); border-color: var(--abc-gold); }

.abc-rea__hero-inner {
  position: relative;
  z-index: 3;
  max-width: 1320px;
  margin: 0 auto;
  padding: 120px 60px 56px;
  width: 100%;
  max-width: 600px;
  margin-left: max(40px, calc((100vw - 1320px)/2 + 40px));
}
.abc-rea__eyebrow {
  display: inline-block;
  font-family: 'Golos Text', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--abc-gold);
  margin-bottom: 22px;
}
.abc-rea__eyebrow--dark { color: var(--abc-gold); }
.abc-rea__h1 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(2.2rem, 4.2vw, 3.6rem);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: 0.005em;
  text-transform: uppercase;
  margin: 0 0 22px;
  color: #fff;
}
.abc-rea__hero-sub {
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.96);
  max-width: 540px;
  margin: 0 0 32px;
}
.abc-rea__hero-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* Trust pills strip */
.abc-rea__trust-strip {
  position: relative;
  z-index: 3;
  background: var(--abc-navy-2);
  padding: 38px 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  max-width: 1320px;
  margin: 0 auto;
  gap: 32px;
  padding-left: max(40px, calc((100vw - 1320px)/2 + 40px));
  padding-right: max(40px, calc((100vw - 1320px)/2 + 40px));
}
.abc-rea__trust {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  color: rgba(255,255,255,0.9);
}
.abc-rea__trust-icon {
  width: 44px;
  height: 44px;
  border: 1px solid var(--abc-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: transparent;
}
.abc-rea__trust h4 {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 6px;
  color: #fff;
}
.abc-rea__trust p {
  font-size: 0.86rem;
  line-height: 1.55;
  margin: 0;
  color: rgba(255,255,255,0.7);
}

/* Sections */
.abc-rea__services,
.abc-rea__diff {
  background: var(--abc-cream-2);
  padding: 100px 40px;
}
.abc-rea__market,
.abc-rea__cta {
  background: var(--abc-navy);
  color: #fff;
  padding: 90px 40px;
}
.abc-rea__svc-head {
  max-width: 800px;
  margin: 0 auto 56px;
  text-align: center;
}
.abc-rea__h2 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(1.8rem, 3.4vw, 2.7rem);
  font-weight: 400;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  margin: 0 0 18px;
  color: var(--abc-navy);
}
.abc-rea__h2--light { color: #fff; }
.abc-rea__lede {
  font-size: 1.02rem;
  line-height: 1.7;
  color: rgba(14,24,40,0.85);
  margin: 0 auto;
}
.abc-rea__lede--light { color: rgba(255,255,255,0.92); }
.abc-rea__rule {
  display: block;
  width: 60px;
  height: 2px;
  background: var(--abc-gold);
  margin: 16px auto 0;
}

/* Service cards (5) */
.abc-rea__cards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  max-width: 1400px;
  margin: 0 auto;
}
.abc-rea__card {
  background: #fff;
  display: flex;
  flex-direction: column;
  border-bottom: 4px solid transparent;
  transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease;
}
.abc-rea__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(14,24,40,0.12);
  border-bottom-color: var(--abc-gold);
}
.abc-rea__card-photo {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.abc-rea__card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 600ms ease;
}
.abc-rea__card:hover .abc-rea__card-photo img { transform: scale(1.05); }
.abc-rea__card-body {
  padding: 24px 22px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}
.abc-rea__card-title {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0;
  color: var(--abc-navy);
}
.abc-rea__card-text {
  font-size: 0.88rem;
  line-height: 1.6;
  color: rgba(14,24,40,0.85);
  margin: 0;
  flex: 1;
}
.abc-rea__card-link {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--abc-gold);
  text-decoration: none;
  margin-top: 8px;
  align-self: flex-start;
  position: relative;
  padding-bottom: 4px;
}
.abc-rea__card-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--abc-gold);
  transition: width 250ms ease;
}
.abc-rea__card-link:hover::after { width: 100%; }

/* Differentiators */
.abc-rea__features {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 1200px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.abc-rea__features li {
  background: #fff;
  padding: 22px 24px;
  border-left: 3px solid var(--abc-gold);
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--abc-navy);
}

/* Market / neighborhoods */
.abc-rea__neigh {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 1200px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}
.abc-rea__neigh li {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  padding: 18px;
  text-align: center;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.95);
}
.abc-rea__neigh li:hover { border-color: var(--abc-gold); }

/* CTA */
.abc-rea__cta {
  background: var(--abc-navy-2);
  padding: 70px 40px;
}
.abc-rea__cta-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 48px;
}
.abc-rea__cta-title {
  font-family: 'Good Times', sans-serif;
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  text-transform: uppercase;
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 14px;
}
.abc-rea__cta-sub { color: rgba(255,255,255,0.9); margin: 0; }
.abc-rea__cta-actions { display: flex; flex-direction: column; gap: 10px; min-width: 240px; }

/* Real Estate responsive */
@media (max-width: 1100px) {
  .abc-rea__cards { grid-template-columns: repeat(3, 1fr); }
  .abc-rea__features { grid-template-columns: repeat(2, 1fr); }
  .abc-rea__hero-photo { width: 100%; opacity: 0.4; }
  .abc-rea__hero-overlay {
    background: linear-gradient(180deg, var(--abc-navy) 0%, rgba(14,24,40,0.85) 100%);
  }
  .abc-rea__hero-inner { margin-left: 40px; padding-left: 0; max-width: none; padding-right: 40px; }
  .abc-rea__trust-strip {
    grid-template-columns: repeat(2, 1fr);
    padding-left: 40px;
    padding-right: 40px;
  }
}
@media (max-width: 700px) {
  .abc-rea__services, .abc-rea__diff, .abc-rea__market { padding: 70px 24px; }
  .abc-rea__cards { grid-template-columns: 1fr; }
  .abc-rea__features { grid-template-columns: 1fr; }
  .abc-rea__trust-strip { grid-template-columns: 1fr; gap: 24px; padding: 30px 24px; }
  .abc-rea__cta-inner { grid-template-columns: 1fr; }
  .abc-rea__cta-actions { width: 100%; }
  .abc-rea__cta-actions .abc-btn { width: 100%; }
  .abc-rea__hero-inner { padding: 100px 24px 50px; margin-left: 0; }
  .abc-rea__hero-topcta { display: none; }
  .abc-rea__hero-actions { flex-direction: column; }
  .abc-rea__hero-actions .abc-btn { width: 100%; }
  .abc-rea__h1 { font-size: 2.2rem; }
}

/* ═════════════════════════════════════════
   INSPECTION v2
   ═════════════════════════════════════════ */
.abc-ins {
  font-family: 'Golos Text', system-ui, sans-serif;
  color: var(--abc-navy);
}

/* HERO */
.abc-ins__hero {
  position: relative;
  background: var(--abc-navy);
  color: #fff;
  overflow: hidden;
  min-height: 700px;
}
.abc-ins__hero-photo {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.abc-ins__hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.abc-ins__hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(90deg, rgba(14,24,40,0.96) 0%, rgba(14,24,40,0.85) 35%, rgba(14,24,40,0.55) 65%, rgba(14,24,40,0.25) 100%);
}
.abc-ins__hero-inner {
  position: relative;
  z-index: 3;
  max-width: 1320px;
  margin: 0 auto;
  padding: 110px 40px 80px;
  width: 100%;
}
.abc-ins__badge {
  display: inline-block;
  background: rgba(14,24,40,0.7);
  border: 1px solid var(--abc-gold);
  color: #fff;
  font-family: 'Golos Text', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  padding: 10px 16px;
  margin-bottom: 28px;
  text-transform: uppercase;
  line-height: 1.4;
}
.abc-ins__badge em {
  font-style: normal;
  color: var(--abc-gold);
  font-weight: 600;
  letter-spacing: 0.08em;
}
.abc-ins__h1 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(2.2rem, 4.2vw, 3.6rem);
  font-weight: 400;
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  margin: 0 0 22px;
  color: #fff;
  max-width: 600px;
}
.abc-ins__hero-sub {
  font-size: 1.05rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.95);
  max-width: 480px;
  margin: 0 0 44px;
}
.abc-ins__hero-trust {
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 32px;
  border-top: 1px solid rgba(255,255,255,0.15);
  padding-top: 24px;
  max-width: 920px;
}
.abc-ins__hero-trust > div {
  display: flex;
  align-items: center;
  gap: 12px;
}
.abc-ins__trust-icon {
  width: 36px;
  height: 36px;
  border: 1px solid var(--abc-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.abc-ins__hero-trust span {
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(255,255,255,0.9);
}

/* Eyebrow + h2 shared */
.abc-ins__eyebrow {
  display: inline-block;
  font-family: 'Golos Text', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--abc-gold);
  margin-bottom: 14px;
}
.abc-ins__eyebrow--dark { color: var(--abc-gold); }
.abc-ins__h2 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  font-weight: 400;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  margin: 0 0 18px;
  color: var(--abc-navy);
}
.abc-ins__h2--light { color: #fff; }
.abc-ins__h2-em { font-style: normal; color: var(--abc-gold); }

/* Section variants */
.abc-ins__section {
  padding: 100px 40px;
}
.abc-ins__section--light { background: var(--abc-cream-2); }
.abc-ins__section--dark { background: var(--abc-navy); }
.abc-ins__head {
  max-width: 1000px;
  margin: 0 auto 56px;
  text-align: center;
}
.abc-ins__lede {
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(14,24,40,0.85);
  margin: 8px auto 0;
  max-width: 720px;
}

/* Card grid */
.abc-ins__cards {
  display: grid;
  gap: 20px;
  max-width: 1320px;
  margin: 0 auto;
}
.abc-ins__cards--4 { grid-template-columns: repeat(4, 1fr); }
.abc-ins__cards--3 { grid-template-columns: repeat(3, 1fr); }

.abc-ins__card {
  background: #fff;
  display: flex;
  flex-direction: column;
  text-align: center;
  padding: 0 24px 28px;
  border-bottom: 3px solid transparent;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.abc-ins__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(14,24,40,0.12);
  border-bottom-color: var(--abc-gold);
}
.abc-ins__card--dark {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  border-bottom: 3px solid transparent;
}
.abc-ins__card--dark:hover {
  background: rgba(255,255,255,0.07);
  border-bottom-color: var(--abc-gold);
}
.abc-ins__card-photo {
  position: relative;
  margin: 0 -24px 50px;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.abc-ins__card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 600ms ease;
}
.abc-ins__card:hover .abc-ins__card-photo img { transform: scale(1.06); }
.abc-ins__card-icon {
  position: absolute;
  top: 20px;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--abc-navy);
  border: 2px solid var(--abc-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  box-shadow: 0 6px 20px rgba(0,0,0,0.35);
}
.abc-ins__card-icon svg { color: var(--abc-gold); }
.abc-ins__card-title {
  font-family: 'Golos Text', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 12px;
  color: var(--abc-navy);
  line-height: 1.3;
}
.abc-ins__card--dark .abc-ins__card-title { color: #fff; }
.abc-ins__card-text {
  font-size: 0.88rem;
  line-height: 1.6;
  color: rgba(14,24,40,0.85);
  margin: 0 0 16px;
  flex: 1;
}
.abc-ins__card--dark .abc-ins__card-text { color: rgba(255,255,255,0.92); }
.abc-ins__card-link {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--abc-gold);
  text-decoration: none;
  align-self: center;
  position: relative;
  padding-bottom: 3px;
}
.abc-ins__card-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--abc-gold);
  transition: width 220ms ease;
}
.abc-ins__card-link:hover::after { width: 100%; }
.abc-ins__card-link--light { color: var(--abc-gold); }

/* Property evaluation section */
.abc-ins__eval {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 48px;
  align-items: stretch;
  max-width: 1320px;
  margin: 0 auto;
}
.abc-ins__eval-photo { width: 100%; }
.abc-ins__eval-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.abc-ins__eval-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.abc-ins__eval-cards article {
  background: #fff;
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-bottom: 3px solid transparent;
  transition: border-color 220ms ease;
}
.abc-ins__eval-cards article:hover { border-bottom-color: var(--abc-gold); }
.abc-ins__eval-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--abc-gold);
  border-radius: 50%;
  color: var(--abc-gold);
}
.abc-ins__eval-cards h3 {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0;
  color: var(--abc-navy);
  line-height: 1.3;
}
.abc-ins__eval-cards p {
  font-size: 0.85rem;
  line-height: 1.6;
  color: rgba(14,24,40,0.85);
  margin: 0;
  flex: 1;
}

/* Why us */
.abc-ins__why {
  background: var(--abc-cream-2);
  padding: 90px 40px;
}
.abc-ins__why header {
  max-width: 800px;
  margin: 0 auto 48px;
}
.abc-ins__pillars {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 1320px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.abc-ins__pillars li {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.abc-ins__pillar-icon {
  width: 52px;
  height: 52px;
  border: 1px solid var(--abc-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--abc-gold);
}
.abc-ins__pillars h4 {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0;
  color: var(--abc-navy);
}
.abc-ins__pillars p {
  font-size: 0.86rem;
  line-height: 1.6;
  color: rgba(14,24,40,0.85);
  margin: 0;
}

/* CTA */
.abc-ins__cta {
  background: var(--abc-cream-2);
  border-top: 1px solid rgba(14,24,40,0.08);
  padding: 36px 40px;
}
.abc-ins__cta-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 40px;
}
.abc-ins__cta-eyebrow {
  display: inline-block;
  font-family: 'Golos Text', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-gold);
  margin-bottom: 6px;
}
.abc-ins__cta-title {
  font-family: 'Good Times', sans-serif;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  text-transform: uppercase;
  font-weight: 400;
  line-height: 1.15;
  margin: 0 0 4px;
  color: var(--abc-navy);
}
.abc-ins__cta-sub { font-size: 0.92rem; color: rgba(14,24,40,0.85); margin: 0; }
.abc-ins__cta-actions {
  display: flex;
  align-items: center;
  gap: 24px;
}
.abc-ins__phone {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--abc-navy);
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
}
.abc-ins__phone span { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid var(--abc-gold); border-radius: 50%; color: var(--abc-gold); position: relative; }
.abc-ins__phone span::before {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* Inspection responsive */
@media (max-width: 1100px) {
  .abc-ins__cards--4 { grid-template-columns: repeat(2, 1fr); }
  .abc-ins__cards--3 { grid-template-columns: repeat(1, 1fr); }
  .abc-ins__eval { grid-template-columns: 1fr; }
  .abc-ins__eval-cards { grid-template-columns: 1fr; }
  .abc-ins__pillars { grid-template-columns: repeat(2, 1fr); }
  .abc-ins__hero-trust { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .abc-ins__section, .abc-ins__why { padding: 70px 24px; }
  .abc-ins__hero-inner { padding: 100px 24px 60px; }
  .abc-ins__cards--4, .abc-ins__cards--3 { grid-template-columns: 1fr; }
  .abc-ins__hero-trust { grid-template-columns: 1fr; gap: 16px; }
  .abc-ins__pillars { grid-template-columns: 1fr; }
  .abc-ins__cta-inner { grid-template-columns: 1fr; }
  .abc-ins__cta-actions { width: 100%; flex-direction: column; gap: 16px; }
  .abc-ins__cta-actions .abc-btn { width: 100%; }
  .abc-ins__h1 { font-size: 2.2rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ABC LPs v2 — CONTRAST + DESIGN POLISH PASS (2026-05-13)
   Overrides earlier rgba transparencies that produced low-contrast text and
   borders. All colors here are intentionally solid or have higher alpha.
   Also adds subtle design upgrades: divider lines, hover refinements, depth.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── REAL ESTATE: Trust pills row ─────────────────────────────────────────── */
.abc-rea__trust-strip {
  border-top: 1px solid rgba(202,160,92,0.25);
  border-bottom: 1px solid rgba(202,160,92,0.15);
  background: linear-gradient(180deg, var(--abc-navy-2) 0%, #07101D 100%);
}
.abc-rea__trust { color: var(--abc-text-light); align-items: center; }
.abc-rea__trust-icon {
  width: 48px;
  height: 48px;
  border: 1.5px solid var(--abc-gold);
  background: rgba(202,160,92,0.08);
}
.abc-rea__trust-icon svg { color: var(--abc-gold-bright); }
.abc-rea__trust h4 {
  font-size: 0.92rem;
  letter-spacing: 0.05em;
  color: var(--abc-text-light);
}
.abc-rea__trust p {
  font-size: 0.88rem;
  color: var(--abc-text-light-2);
  line-height: 1.55;
}

/* ── REAL ESTATE: Hero ─────────────────────────────────────────────────────── */
.abc-rea__hero-overlay {
  background:
    linear-gradient(90deg, var(--abc-navy) 0%, var(--abc-navy) 40%, rgba(14,24,40,0.7) 65%, rgba(14,24,40,0.2) 100%);
}
.abc-rea__hero-sub {
  color: var(--abc-text-light-2);
}
.abc-rea__hero-topcta {
  background: rgba(14,24,40,0.85);
  border-color: var(--abc-gold);
  color: var(--abc-text-light);
}
.abc-rea .abc-btn--outline-white {
  border-color: var(--abc-gold-bright);
  color: var(--abc-text-light);
}
.abc-rea .abc-btn--outline-white:hover {
  background: var(--abc-gold);
  color: var(--abc-navy);
  border-color: var(--abc-gold);
}

/* ── REAL ESTATE: Section ledes ────────────────────────────────────────────── */
.abc-rea__lede { color: var(--abc-text-dark-soft); }
.abc-rea__lede--light { color: var(--abc-text-light-2); }

/* ── REAL ESTATE: Service cards ────────────────────────────────────────────── */
.abc-rea__card {
  box-shadow: 0 4px 14px rgba(14,24,40,0.06);
}
.abc-rea__card-text {
  color: var(--abc-text-dark-soft);
  font-size: 0.9rem;
}

/* ── REAL ESTATE: Differentiator features (light section) ──────────────────── */
.abc-rea__features li {
  box-shadow: 0 4px 12px rgba(14,24,40,0.05);
  color: var(--abc-text-dark);
}

/* ── REAL ESTATE: Neighborhoods grid (dark section) ────────────────────────── */
.abc-rea__neigh li {
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--abc-border-light);
  color: var(--abc-text-light);
  font-weight: 500;
  transition: background 200ms ease, border-color 200ms ease, transform 200ms ease;
}
.abc-rea__neigh li:hover {
  background: rgba(202,160,92,0.12);
  border-color: var(--abc-gold);
  transform: translateY(-2px);
}

/* ── REAL ESTATE: CTA strip ────────────────────────────────────────────────── */
.abc-rea__cta-sub { color: var(--abc-text-light-2); }

/* ── INSPECTION: Hero ──────────────────────────────────────────────────────── */
.abc-ins__hero-overlay {
  background: linear-gradient(90deg, rgba(14,24,40,0.96) 0%, rgba(14,24,40,0.9) 40%, rgba(14,24,40,0.6) 70%, rgba(14,24,40,0.3) 100%);
}
.abc-ins__hero-sub { color: var(--abc-text-light-2); }
.abc-ins__hero-trust {
  border-top: 1px solid var(--abc-border-gold);
  padding-top: 30px;
  margin-top: 16px;
}
.abc-ins__hero-trust > div {
  padding: 6px 0;
}
.abc-ins__hero-trust span {
  font-size: 0.88rem;
  color: var(--abc-text-light);
  font-weight: 500;
}
.abc-ins__trust-icon {
  border-width: 1.5px;
  background: rgba(202,160,92,0.1);
}
.abc-ins__trust-icon svg { color: var(--abc-gold-bright); }

/* ── INSPECTION: Section ledes ─────────────────────────────────────────────── */
.abc-ins__lede { color: var(--abc-text-dark-soft); }

/* ── INSPECTION: Light cards (residential + eval) ──────────────────────────── */
.abc-ins__card {
  box-shadow: 0 4px 14px rgba(14,24,40,0.06);
}
.abc-ins__card-text {
  color: var(--abc-text-dark-soft);
  font-size: 0.92rem;
  line-height: 1.65;
}

/* ── INSPECTION: Dark cards (commercial section) ───────────────────────────── */
.abc-ins__card--dark {
  background: var(--abc-navy-3);
  border: 1px solid rgba(202,160,92,0.18);
}
.abc-ins__card--dark:hover {
  background: #233456;
  border-color: var(--abc-gold);
  box-shadow: 0 18px 36px rgba(0,0,0,0.35);
}
.abc-ins__card--dark .abc-ins__card-title { color: var(--abc-text-light); }
.abc-ins__card--dark .abc-ins__card-text { color: var(--abc-text-light-2); font-size: 0.92rem; }
.abc-ins__card--dark .abc-ins__card-icon { background: var(--abc-navy-3); }

/* Section--dark eyebrow + h2 already light via modifier; ensure subtitle */
.abc-ins__section--dark .abc-ins__lede { color: var(--abc-text-light-2); }

/* ── INSPECTION: Eval cards body text ──────────────────────────────────────── */
.abc-ins__eval-cards p { color: var(--abc-text-dark-soft); font-size: 0.9rem; }

/* ── INSPECTION: Why us pillars (light bg) ─────────────────────────────────── */
.abc-ins__pillars p { color: var(--abc-text-dark-soft); font-size: 0.9rem; }
.abc-ins__pillars h4 { font-size: 0.95rem; }

/* ── INSPECTION: Badge above H1 ────────────────────────────────────────────── */
.abc-ins__badge {
  background: rgba(202,160,92,0.12);
  border-color: var(--abc-gold);
  color: var(--abc-text-light);
  font-size: 0.74rem;
}
.abc-ins__badge em { color: var(--abc-gold-bright); }

/* ── INSPECTION: CTA strip ─────────────────────────────────────────────────── */
.abc-ins__cta {
  background: var(--abc-navy);
  border-top: 1px solid rgba(202,160,92,0.2);
  padding: 50px 40px;
}
.abc-ins__cta-eyebrow { color: var(--abc-gold-bright); }
.abc-ins__cta-title { color: var(--abc-text-light); }
.abc-ins__cta-sub { color: var(--abc-text-light-2); }
.abc-ins__phone { color: var(--abc-text-light); }
.abc-ins__phone span { color: var(--abc-gold-bright); border-color: var(--abc-gold); }

/* ── Both LPs: Stronger outline buttons ────────────────────────────────────── */
.abc-rea .abc-btn--outline-white,
.abc-ins .abc-btn--outline-white {
  border-width: 1.5px;
  border-color: var(--abc-gold-bright);
}

/* ── Both LPs: Heading kerning + leading polish ────────────────────────────── */
.abc-rea__h1, .abc-ins__h1 { letter-spacing: 0; line-height: 1.08; }
.abc-rea__h2, .abc-ins__h2 { letter-spacing: 0; }

/* ── Mobile-specific contrast tweaks ───────────────────────────────────────── */
@media (max-width: 700px) {
  .abc-rea__trust-strip { padding: 36px 24px; }
  .abc-rea__trust { padding: 12px 0; border-bottom: 1px solid rgba(202,160,92,0.15); }
  .abc-rea__trust:last-child { border-bottom: 0; }
  .abc-ins__hero-trust > div { border-bottom: 1px solid rgba(202,160,92,0.15); padding-bottom: 12px; }
  .abc-ins__hero-trust > div:last-child { border-bottom: 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ABC LPs v2 — TYPOGRAPHY SPECIFICITY OVERRIDES
   Antra parent theme sets `.hentry .entry-content h{1-6}` with high
   specificity (0,2,1) and Good Times 2.5rem dark color. This overrides
   that with .entry-content prefix to win specificity ties + later source.
   ═══════════════════════════════════════════════════════════════════════════ */

/* === H1 hero === */
.entry-content .abc-rea__h1,
.entry-content .abc-ins__h1 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(2.4rem, 4.4vw, 3.8rem);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: 0;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 22px;
}

/* === H2 section === */
.entry-content .abc-rea__h2,
.entry-content .abc-ins__h2 {
  font-family: 'Good Times', 'Cal Sans', sans-serif;
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--abc-navy);
  margin: 0 0 18px;
}
.entry-content .abc-rea__h2--light,
.entry-content .abc-ins__h2--light { color: #fff; }
.entry-content .abc-ins__h2-em { color: var(--abc-gold-bright); font-style: normal; }

/* === H3 card titles + CTA title === */
.entry-content .abc-rea__card-title,
.entry-content .abc-ins__card-title,
.entry-content .abc-ins__eval-cards h3,
.entry-content .abc-ins__cta-title,
.entry-content .abc-rea__cta-title {
  font-family: 'Golos Text', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-transform: uppercase;
  color: var(--abc-navy);
  margin: 0 0 12px;
}
.entry-content .abc-ins__card--dark .abc-ins__card-title { color: #fff; }
.entry-content .abc-rea__cta-title {
  font-family: 'Good Times', sans-serif;
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  letter-spacing: 0;
  color: #fff;
}
.entry-content .abc-ins__cta-title {
  font-family: 'Good Times', sans-serif;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  letter-spacing: 0;
  color: #fff;
}

/* === H4 trust strip === */
.entry-content .abc-rea__trust h4 {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.3;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 6px;
}

/* === H4 why-us pillars === */
.entry-content .abc-ins__pillars h4 {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-transform: uppercase;
  color: var(--abc-navy);
  margin: 0 0 6px;
}

/* === Eyebrows (small uppercase gold) === */
.entry-content .abc-rea__eyebrow,
.entry-content .abc-ins__eyebrow,
.entry-content .abc-ins__cta-eyebrow {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--abc-gold-bright);
  margin: 0 0 14px;
  display: inline-block;
}
.entry-content .abc-ins__cta-eyebrow { font-size: 0.7rem; letter-spacing: 0.16em; margin: 0 0 6px; }

/* === Paragraphs - light bg ledes === */
.entry-content .abc-rea__hero-sub,
.entry-content .abc-ins__hero-sub {
  font-family: 'Golos Text', sans-serif;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--abc-text-light-2);
  margin: 0 0 32px;
  max-width: 540px;
}
.entry-content .abc-rea__lede,
.entry-content .abc-ins__lede {
  font-family: 'Golos Text', sans-serif;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--abc-text-dark-soft);
  margin: 0 auto;
}
.entry-content .abc-rea__lede--light { color: var(--abc-text-light-2); }
.entry-content .abc-ins__section--dark .abc-ins__lede { color: var(--abc-text-light-2); }

/* === Card body text === */
.entry-content .abc-rea__card-text,
.entry-content .abc-ins__card-text {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.92rem;
  line-height: 1.65;
  color: var(--abc-text-dark-soft);
  margin: 0;
}
.entry-content .abc-ins__card--dark .abc-ins__card-text { color: var(--abc-text-light-2); }
.entry-content .abc-ins__eval-cards p { font-size: 0.9rem; color: var(--abc-text-dark-soft); line-height: 1.65; }
.entry-content .abc-ins__pillars p { font-size: 0.9rem; color: var(--abc-text-dark-soft); line-height: 1.65; }

/* === Trust pill description === */
.entry-content .abc-rea__trust p {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--abc-text-light-2);
  margin: 0;
}

/* === Hero trust span (inspection) === */
.entry-content .abc-ins__hero-trust span {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #fff;
}

/* === Card links === */
.entry-content .abc-rea__card-link,
.entry-content .abc-ins__card-link {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--abc-gold);
  text-decoration: none;
}

/* === Differentiators / features list === */
.entry-content .abc-rea__features li {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--abc-navy);
}

/* === Neighborhoods list === */
.entry-content .abc-rea__neigh li {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #fff;
}

/* === Badge === */
.entry-content .abc-ins__badge {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.4;
  color: #fff;
  text-transform: uppercase;
}

/* === Buttons (override Antra button styles inside LPs) === */
.entry-content .abc-rea .abc-btn,
.entry-content .abc-ins .abc-btn {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: none;
  border-radius: 3px;
}
.entry-content .abc-rea .abc-btn--gold,
.entry-content .abc-ins .abc-btn--gold {
  background: var(--abc-gold);
  color: var(--abc-navy);
  border-color: var(--abc-gold);
}
.entry-content .abc-rea .abc-btn--outline-white,
.entry-content .abc-ins .abc-btn--outline-white {
  background: transparent;
  color: #fff;
  border-color: var(--abc-gold-bright);
}
.entry-content .abc-rea .abc-btn--lg,
.entry-content .abc-ins .abc-btn--lg {
  padding: 18px 36px;
  font-size: 1rem;
}

/* === Phone (inspection CTA) === */
.entry-content .abc-ins__phone {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
}
.entry-content .abc-ins__phone span { color: var(--abc-gold-bright); }

/* === Hero top CTA (real estate) === */
.entry-content .abc-rea__hero-topcta {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #fff;
  text-transform: uppercase;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ABC LPs v2 — DESIGN POLISH PASS (2026-05-13)
   Beyond contrast: hero impact, section rhythm, card depth, hover refinement,
   eyebrow visibility, neighborhood chip definition.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Eyebrows: more visible and refined ────────────────────────────────────── */
.entry-content .abc-rea__eyebrow,
.entry-content .abc-ins__eyebrow {
  font-size: 0.82rem;
  letter-spacing: 0.28em;
  color: var(--abc-gold-bright);
  position: relative;
  padding-bottom: 12px;
  margin-bottom: 18px;
}
.entry-content .abc-rea__eyebrow::after,
.entry-content .abc-ins__eyebrow::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 36px;
  height: 2px;
  background: var(--abc-gold);
}
/* Centered section eyebrows get centered underline */
.entry-content .abc-rea__svc-head .abc-rea__eyebrow::after,
.entry-content .abc-ins__head .abc-ins__eyebrow::after,
.entry-content .abc-ins__why header .abc-ins__eyebrow::after {
  left: 50%;
  transform: translateX(-50%);
}

/* ── H2: subtle gold accent rule below centered headings ───────────────────── */
.abc-rea__svc-head, .abc-ins__head { padding-bottom: 6px; }

/* ── Hero: bigger statement + better breathing room ────────────────────────── */
.abc-rea__hero { min-height: 760px; }
.abc-ins__hero { min-height: 720px; }

.entry-content .abc-rea__h1,
.entry-content .abc-ins__h1 {
  font-size: clamp(2.6rem, 4.8vw, 4.2rem);
}

/* ── Hero photo subtle ken-burns on load ──────────────────────────────────── */
@keyframes abc-rea-zoom {
  from { transform: scale(1.05); }
  to { transform: scale(1); }
}
.abc-rea__hero-photo img,
.abc-ins__hero-photo img {
  animation: abc-rea-zoom 18s ease-out forwards;
  transform-origin: center center;
}

/* ── Trust strip — more elevated feel ─────────────────────────────────────── */
.abc-rea__trust-strip {
  padding: 44px 60px;
  padding-left: max(60px, calc((100vw - 1320px)/2 + 60px));
  padding-right: max(60px, calc((100vw - 1320px)/2 + 60px));
  gap: 36px;
}
.abc-rea__trust { gap: 18px; }
.abc-rea__trust-icon {
  box-shadow: 0 0 0 4px rgba(202,160,92,0.06);
  transition: box-shadow 250ms ease, background 250ms ease;
}
.abc-rea__trust:hover .abc-rea__trust-icon {
  background: rgba(202,160,92,0.18);
  box-shadow: 0 0 0 6px rgba(202,160,92,0.1);
}

/* ── Sections rhythm: more breathing ──────────────────────────────────────── */
.abc-rea__services,
.abc-rea__diff { padding: 110px 40px; }
.abc-rea__market { padding: 100px 40px; }
.abc-ins__section { padding: 110px 40px; }
.abc-ins__why { padding: 100px 40px; }

/* ── Service cards: more depth + refined hover ────────────────────────────── */
.abc-rea__card {
  border-radius: 2px;
  overflow: hidden;
  transition: transform 320ms cubic-bezier(.2,.8,.2,1), box-shadow 320ms ease, border-color 320ms ease;
}
.abc-rea__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(14,24,40,0.18);
}
.abc-ins__card {
  border-radius: 2px;
  transition: transform 320ms cubic-bezier(.2,.8,.2,1), box-shadow 320ms ease, border-color 320ms ease;
}
.abc-ins__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(14,24,40,0.18);
}

/* ── Eval cards (light bg, inspection) ────────────────────────────────────── */
.abc-ins__eval-cards article {
  background: #fff;
  border-radius: 2px;
  box-shadow: 0 4px 14px rgba(14,24,40,0.06);
  transition: transform 280ms ease, box-shadow 280ms ease, border-color 280ms ease;
}
.abc-ins__eval-cards article:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 32px rgba(14,24,40,0.12);
  border-bottom-color: var(--abc-gold);
}

/* ── Differentiators: refined left-bar style ──────────────────────────────── */
.abc-rea__features li {
  padding: 26px 26px 26px 24px;
  background: #fff;
  border-left-width: 4px;
  border-radius: 0 2px 2px 0;
  box-shadow: 0 4px 12px rgba(14,24,40,0.05);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.abc-rea__features li:hover {
  transform: translateX(4px);
  box-shadow: 0 10px 22px rgba(14,24,40,0.1);
}

/* ── Pillars (inspection why us): icon block + spacing ────────────────────── */
.abc-ins__pillars li { padding: 8px 0; gap: 16px; }
.abc-ins__pillar-icon {
  background: rgba(202,160,92,0.08);
  box-shadow: 0 0 0 4px rgba(202,160,92,0.06);
  transition: background 220ms ease;
}
.abc-ins__pillars li:hover .abc-ins__pillar-icon { background: rgba(202,160,92,0.18); }

/* ── Neighborhoods: chip-style with refined hover ─────────────────────────── */
.abc-rea__neigh {
  gap: 14px;
}
.abc-rea__neigh li {
  padding: 22px 18px;
  border-radius: 2px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.18);
  position: relative;
  overflow: hidden;
  transition: background 250ms ease, border-color 250ms ease, transform 250ms ease, color 250ms ease;
}
.abc-rea__neigh li::before {
  content: '';
  position: absolute;
  left: 0; top: 0;
  width: 3px; height: 100%;
  background: var(--abc-gold);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 300ms ease;
}
.abc-rea__neigh li:hover {
  background: rgba(202,160,92,0.1);
  border-color: var(--abc-gold);
  transform: translateY(-2px);
}
.abc-rea__neigh li:hover::before { transform: scaleY(1); transform-origin: top; }

/* ── CTAs: more prominent ─────────────────────────────────────────────────── */
.abc-rea__cta {
  padding: 80px 40px;
  background: linear-gradient(135deg, var(--abc-navy) 0%, var(--abc-navy-2) 100%);
  border-top: 1px solid rgba(202,160,92,0.2);
}
.abc-ins__cta {
  padding: 60px 40px;
  background: linear-gradient(135deg, var(--abc-navy) 0%, var(--abc-navy-2) 100%);
}

/* ── Section dividers: gold hairline accent on dark sections ──────────────── */
.abc-ins__section--dark { position: relative; }
.abc-ins__section--dark::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 80px; height: 2px;
  background: var(--abc-gold);
}

/* ── Buttons: stronger hover ──────────────────────────────────────────────── */
.entry-content .abc-rea .abc-btn--gold:hover,
.entry-content .abc-ins .abc-btn--gold:hover {
  background: var(--abc-gold-bright);
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(202,160,92,0.4);
}

/* ── Card photo overlay: subtle gold tint on hover ────────────────────────── */
.abc-rea__card-photo { position: relative; }
.abc-rea__card-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(14,24,40,0.4) 100%);
  opacity: 0;
  transition: opacity 320ms ease;
}
.abc-rea__card:hover .abc-rea__card-photo::after { opacity: 1; }

/* ── Polished inspection eyebrow on dark sections ─────────────────────────── */
.abc-ins__section--dark .abc-ins__eyebrow {
  color: var(--abc-gold-bright);
}

/* ── Mobile design polish ─────────────────────────────────────────────────── */
@media (max-width: 700px) {
  .entry-content .abc-rea__h1,
  .entry-content .abc-ins__h1 { font-size: 2.4rem; }
  .abc-rea__hero { min-height: 620px; }
  .abc-ins__hero { min-height: 580px; }
  .abc-rea__services, .abc-rea__diff, .abc-rea__market { padding: 80px 24px; }
  .abc-ins__section, .abc-ins__why { padding: 80px 24px; }
  .abc-rea__cta, .abc-ins__cta { padding: 60px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ICONS via CSS pseudo-elements (data-URI SVG)
   WordPress KSES filter strips inline <svg> from post_content. We inject
   them via background-image so they're immune to content filtering.
   All strokes use --abc-gold-bright #E0B870.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Common base for pseudo-icon */
.abc-rea__trust-icon::before,
.abc-ins__trust-icon::before,
.abc-ins__pillar-icon::before,
.abc-ins__eval-icon::before,
.abc-ins__card-icon::before {
  content: '';
  display: block;
  width: 60%;
  height: 60%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

/* === Real Estate trust pills (4 icons, mapped by :nth-child) === */
/* 1. Personalized advisory → user-check */
.abc-rea__trust:nth-child(1) .abc-rea__trust-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/><circle cx='8.5' cy='7' r='4'/><polyline points='17 11 19 13 23 9'/></svg>");
}
/* 2. Investment analysis → trending-up */
.abc-rea__trust:nth-child(2) .abc-rea__trust-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='23 6 13.5 15.5 8.5 10.5 1 18'/><polyline points='17 6 23 6 23 12'/></svg>");
}
/* 3. Construction experts → hard-hat */
.abc-rea__trust:nth-child(3) .abc-rea__trust-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M2 18h20v3H2z'/><path d='M5 18a7 7 0 0 1 14 0'/><path d='M10 3v4'/><path d='M14 3v4'/><path d='M9 7h6'/></svg>");
}
/* 4. End-to-end support → shield-check */
.abc-rea__trust:nth-child(4) .abc-rea__trust-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/><polyline points='9 12 11 14 15 10'/></svg>");
}

/* === Inspection hero trust (4 icons in grid) === */
/* 1. Detailed reports → file-text */
.abc-ins__hero-trust > div:nth-child(1) .abc-ins__trust-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='16' y1='13' x2='8' y2='13'/><line x1='16' y1='17' x2='8' y2='17'/><polyline points='10 9 9 9 8 9'/></svg>");
}
/* 2. Fast reliable → clock */
.abc-ins__hero-trust > div:nth-child(2) .abc-ins__trust-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>");
}
/* 3. Construction experience → hard-hat */
.abc-ins__hero-trust > div:nth-child(3) .abc-ins__trust-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M2 18h20v3H2z'/><path d='M5 18a7 7 0 0 1 14 0'/><path d='M10 3v4'/><path d='M14 3v4'/><path d='M9 7h6'/></svg>");
}
/* 4. Accepted by insurance → shield-check */
.abc-ins__hero-trust > div:nth-child(4) .abc-ins__trust-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/><polyline points='9 12 11 14 15 10'/></svg>");
}

/* === Inspection "Why us" pillars (4 icons) === */
.abc-ins__pillars li:nth-child(1) .abc-ins__pillar-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M9 12l2 2 4-4'/><path d='M5 7c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2z'/></svg>");
}
.abc-ins__pillars li:nth-child(2) .abc-ins__pillar-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/><line x1='16' y1='13' x2='8' y2='13'/><line x1='16' y1='17' x2='8' y2='17'/></svg>");
}
.abc-ins__pillars li:nth-child(3) .abc-ins__pillar-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/><polyline points='9 12 11 14 15 10'/></svg>");
}
.abc-ins__pillars li:nth-child(4) .abc-ins__pillar-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>");
}

/* === Inspection eval cards (3 icons) === */
.abc-ins__eval-cards article:nth-child(1) .abc-ins__eval-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><polygon points='12 2 2 7 12 12 22 7 12 2'/><polyline points='2 17 12 22 22 17'/><polyline points='2 12 12 17 22 12'/></svg>");
}
.abc-ins__eval-cards article:nth-child(2) .abc-ins__eval-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><line x1='21' y1='21' x2='16.65' y2='16.65'/><line x1='11' y1='8' x2='11' y2='14'/><line x1='8' y1='11' x2='14' y2='11'/></svg>");
}
.abc-ins__eval-cards article:nth-child(3) .abc-ins__eval-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='23 6 13.5 15.5 8.5 10.5 1 18'/><polyline points='17 6 23 6 23 12'/></svg>");
}

/* === Inspection cards icon overlay ===
 * RESIDENTIAL (light cards, .abc-ins__card without --dark modifier):
 *   1. 4-point inspection         → 2x2 grid (4 systems)
 *   2. Wind mitigation inspection → Lucide "wind" (3 horizontal flow lines)
 *   3. Roof certification         → home with peak roof
 * COMMERCIAL (dark cards, .abc-ins__card--dark):
 *   1. Commercial electrical eval → lightning bolt
 *   2. Commercial wind mitigation → Lucide "wind" (same as residential, but on dark)
 *   3. Commercial roof cert       → home with peak roof (same as residential, but on dark)
 */

/* Residential (light cards, not dark) */
.abc-ins__card:not(.abc-ins__card--dark):nth-child(1) .abc-ins__card-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='7'/><rect x='14' y='3' width='7' height='7'/><rect x='14' y='14' width='7' height='7'/><rect x='3' y='14' width='7' height='7'/></svg>");
}
.abc-ins__card:not(.abc-ins__card--dark):nth-child(2) .abc-ins__card-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M17.7 7.7a2.5 2.5 0 1 1 1.8 4.3H2'/><path d='M9.6 4.6A2 2 0 1 1 11 8H2'/><path d='M12.6 19.4A2 2 0 1 0 14 16H2'/></svg>");
}
.abc-ins__card:not(.abc-ins__card--dark):nth-child(3) .abc-ins__card-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 11l9-7 9 7'/><path d='M5 11v9h14v-9'/><path d='M9 20v-5h6v5'/></svg>");
}

/* Commercial (dark cards) */
.abc-ins__card.abc-ins__card--dark:nth-child(1) .abc-ins__card-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/></svg>");
}
.abc-ins__card.abc-ins__card--dark:nth-child(2) .abc-ins__card-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M17.7 7.7a2.5 2.5 0 1 1 1.8 4.3H2'/><path d='M9.6 4.6A2 2 0 1 1 11 8H2'/><path d='M12.6 19.4A2 2 0 1 0 14 16H2'/></svg>");
}
.abc-ins__card.abc-ins__card--dark:nth-child(3) .abc-ins__card-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 11l9-7 9 7'/><path d='M5 11v9h14v-9'/><path d='M9 20v-5h6v5'/></svg>");
}

/* === Make sure icon containers display flex for pseudo-element centering === */
.abc-rea__trust-icon,
.abc-ins__trust-icon,
.abc-ins__pillar-icon,
.abc-ins__eval-icon,
.abc-ins__card-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

/* ═══════════════════════════════════════════════════════════════════════════
   NEW SECTIONS (2026-05-13 source-faithful rewrite)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Inspection: comprehensive property evaluation (single + bullets) ──────── */
.abc-ins__eval-list-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  max-width: 1320px;
  margin: 0 auto;
}
.abc-ins__eval-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 28px;
}
.entry-content .abc-ins__eval-list li {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--abc-navy);
  padding-left: 22px;
  position: relative;
  line-height: 1.4;
}
.entry-content .abc-ins__eval-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 7px;
  width: 12px;
  height: 12px;
  background: var(--abc-gold);
  clip-path: polygon(20% 50%, 0 70%, 40% 100%, 100% 30%, 80% 10%, 40% 60%);
}
.abc-ins__eval-photo-single { width: 100%; height: 100%; }
.abc-ins__eval-photo-single img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 2px;
}
@media (max-width: 900px) {
  .abc-ins__eval-list-wrap { grid-template-columns: 1fr; }
  .abc-ins__eval-list { grid-template-columns: 1fr; }
}

/* ── Inspection: Why Us — 6 pillars in 3x2 grid + 7th as full-width banner ── */
.abc-ins__pillars--7 {
  grid-template-columns: repeat(3, 1fr);
  gap: 36px 32px;
}
/* The 7th item ("Serving Miami-Dade, Broward & Monroe Counties") spans
   all columns as a horizontal service-area banner. */
.abc-ins__pillars--7 li:nth-child(7) {
  grid-column: 1 / -1;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  padding: 22px 28px;
  background: linear-gradient(135deg, rgba(202,160,92,0.1) 0%, rgba(202,160,92,0.02) 100%);
  border: 1px solid rgba(202,160,92,0.25);
  border-radius: 3px;
  margin-top: 12px;
}
.abc-ins__pillars--7 li:nth-child(7) .abc-ins__pillar-icon {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  margin: 0;
}
.entry-content .abc-ins__pillars--7 li:nth-child(7) h4 {
  font-size: 0.98rem;
  margin: 0;
  flex: 1;
}
.entry-content .abc-ins__pillars--7 li:nth-child(7) p {
  margin: 0;
  font-size: 0.88rem;
  text-align: right;
  white-space: nowrap;
}
@media (max-width: 900px) {
  .abc-ins__pillars--7 { grid-template-columns: repeat(2, 1fr); gap: 28px 24px; }
  .abc-ins__pillars--7 li:nth-child(7) { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .abc-ins__pillars--7 { grid-template-columns: 1fr; }
  .abc-ins__pillars--7 li:nth-child(7) { flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px; }
  .entry-content .abc-ins__pillars--7 li:nth-child(7) p { text-align: left; white-space: normal; }
}

/* assign data-URI icons for pillar 5/6/7 */
.abc-ins__pillars--7 li:nth-child(5) .abc-ins__pillar-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M3 21h18'/><path d='M5 21V7l8-4v18'/><path d='M19 21V11l-6-4'/><line x1='9' y1='9' x2='9.01' y2='9'/><line x1='9' y1='12' x2='9.01' y2='12'/><line x1='9' y1='15' x2='9.01' y2='15'/></svg>");
}
.abc-ins__pillars--7 li:nth-child(6) .abc-ins__pillar-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z'/></svg>");
}
.abc-ins__pillars--7 li:nth-child(7) .abc-ins__pillar-icon::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E0B870' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/><circle cx='12' cy='10' r='3'/></svg>");
}

/* ═══════════════════════════════════════════════════════════════════════════
   WHY CHOOSE US — Blueprint depth polish v2.1.7
   ═══════════════════════════════════════════════════════════════════════════ */

.abc-ins__why {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(180deg, #F4F1EA 0%, #F8F7F5 100%);
}

/* Blueprint grid pattern — very subtle gold lines on cream */
.abc-ins__why::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(202,160,92,0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(202,160,92,0.045) 1px, transparent 1px);
  background-size: 64px 64px, 64px 64px;
  background-position: -1px -1px;
  pointer-events: none;
  z-index: 0;
  -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%);
          mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 85%);
}

/* Diagonal accent line — architectural blueprint feel */
.abc-ins__why::after {
  content: "";
  position: absolute;
  top: 0; right: -10%;
  width: 50%; height: 100%;
  background:
    linear-gradient(135deg, transparent 49.5%, rgba(202,160,92,0.08) 50%, transparent 50.5%),
    linear-gradient(135deg, transparent 49.5%, rgba(28,28,29,0.04) 50%, transparent 50.5%);
  background-position: 0 0, 80px 0;
  pointer-events: none;
  z-index: 0;
}

/* Lift content above pattern */
.abc-ins__why > * {
  position: relative;
  z-index: 1;
}

/* ── Pillar items: card-like structure with gold top accent ─────────────── */
.entry-content .abc-ins__pillars--7 li {
  position: relative;
  padding: 28px 22px 24px;
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(28,28,29,0.06);
  border-top: 2px solid var(--abc-gold);
  border-radius: 2px;
  box-shadow: 0 1px 0 rgba(28,28,29,0.02);
  transition: transform 280ms cubic-bezier(.2,.8,.2,1),
              box-shadow 280ms ease,
              background 280ms ease,
              border-color 280ms ease;
  align-items: flex-start;
  gap: 14px;
}
.entry-content .abc-ins__pillars--7 li:hover {
  transform: translateY(-4px);
  background: #fff;
  border-color: rgba(202,160,92,0.35);
  box-shadow: 0 14px 28px rgba(28,28,29,0.08);
}

/* Subtle pillar number (01, 02, 03...) as background watermark */
.entry-content .abc-ins__pillars--7 li::before {
  content: counter(pillar-counter, decimal-leading-zero);
  position: absolute;
  top: 14px; right: 18px;
  font-family: 'Good Times', sans-serif;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: rgba(202,160,92,0.45);
  pointer-events: none;
}
.abc-ins__pillars--7 {
  counter-reset: pillar-counter;
}
.abc-ins__pillars--7 li {
  counter-increment: pillar-counter;
}

/* Icon: solid gold-tinted bg, lifted look */
.abc-ins__pillars--7 .abc-ins__pillar-icon {
  width: 44px;
  height: 44px;
  background: linear-gradient(135deg, rgba(202,160,92,0.18) 0%, rgba(202,160,92,0.08) 100%);
  box-shadow: 0 0 0 4px rgba(202,160,92,0.05),
              inset 0 0 0 1px rgba(202,160,92,0.18);
  flex-shrink: 0;
}
.abc-ins__pillars--7 li:hover .abc-ins__pillar-icon {
  background: linear-gradient(135deg, rgba(202,160,92,0.28) 0%, rgba(202,160,92,0.14) 100%);
}

/* 7th pillar = full-width banner — re-style with stronger presence */
.entry-content .abc-ins__pillars--7 li:nth-child(7) {
  margin-top: 18px;
  padding: 26px 32px;
  background:
    linear-gradient(90deg, rgba(202,160,92,0.10) 0%, rgba(202,160,92,0.04) 100%),
    #fff;
  border: 1px solid rgba(202,160,92,0.25);
  border-top: 2px solid var(--abc-gold);
  display: flex;
  align-items: center;
  gap: 20px;
}
.entry-content .abc-ins__pillars--7 li:nth-child(7)::before {
  display: none;
}
.entry-content .abc-ins__pillars--7 li:nth-child(7):hover {
  background:
    linear-gradient(90deg, rgba(202,160,92,0.16) 0%, rgba(202,160,92,0.06) 100%),
    #fff;
}

/* Tighten typography rhythm in pillars */
.entry-content .abc-ins__pillars--7 h4 {
  font-size: 0.92rem;
  line-height: 1.35;
  margin: 0 0 8px;
  padding-right: 30px; /* avoid collision with number */
}
.entry-content .abc-ins__pillars--7 p {
  font-size: 0.88rem;
  line-height: 1.6;
  margin: 0;
}

/* Mobile — keep cards but tighter */
@media (max-width: 720px) {
  .entry-content .abc-ins__pillars--7 li { padding: 22px 18px 20px; }
  .entry-content .abc-ins__pillars--7 li::before { font-size: 0.65rem; top: 10px; right: 14px; }
  .entry-content .abc-ins__pillars--7 h4 { padding-right: 24px; }
}

/* ── Real Estate: hero tagline (Buy. Sell. Invest. Build.) ────────────────── */
.abc-rea__hero-tagline {
  font-family: 'Golos Text', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--abc-gold-bright);
  margin: 0 0 22px;
}
.abc-rea__hero-tagline span { margin-right: 12px; }

/* ── Real Estate: 3-card services row ─────────────────────────────────────── */
.abc-rea__cards--3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1000px) {
  .abc-rea__cards--3 { grid-template-columns: repeat(1, 1fr); max-width: 720px; margin: 0 auto; }
}

/* ── Real Estate: Property evaluation section (photo + 10-bullet grid) ────── */
.abc-rea__eval-section {
  background: #fff;
  padding: 100px 40px;
}
.abc-rea__eval-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 56px;
  max-width: 1320px;
  margin: 0 auto;
  align-items: stretch;
}
.abc-rea__eval-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 2px;
}
.abc-rea__eval-bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 28px;
  align-content: center;
}
.entry-content .abc-rea__eval-bullets li {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--abc-navy);
  padding-left: 26px;
  position: relative;
  line-height: 1.45;
}
/* v2.1.8 — cleaner check-mark bullet, less busy than circle+dot */
.entry-content .abc-rea__eval-bullets li {
  padding-left: 36px;
  padding-top: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(14,24,40,0.08);
}
.entry-content .abc-rea__eval-bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  width: 22px;
  height: 22px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23CAA05C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.entry-content .abc-rea__eval-bullets li::after { content: none; }
.entry-content .abc-rea__eval-bullets li:last-child,
.entry-content .abc-rea__eval-bullets li:nth-last-child(2):nth-child(odd) {
  border-bottom: none;
}
@media (max-width: 900px) {
  .abc-rea__eval-grid { grid-template-columns: 1fr; }
  .abc-rea__eval-bullets { grid-template-columns: 1fr; }
  .abc-rea__eval-section { padding: 80px 24px; }
}

/* ── Real Estate: Pre-construction & development (6-item numbered grid) ───── */
.abc-rea__preconst {
  background: var(--abc-cream-2);
  padding: 100px 40px;
}
.abc-rea__preconst-grid {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 1200px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.abc-rea__preconst-grid li {
  background: #fff;
  padding: 32px 28px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  align-items: center;
  border-left: 4px solid var(--abc-gold);
  border-radius: 0 2px 2px 0;
  box-shadow: 0 4px 14px rgba(14,24,40,0.05);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.abc-rea__preconst-grid li:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(14,24,40,0.12);
}
.abc-rea__preconst-grid li > span {
  font-family: 'Good Times', sans-serif;
  font-size: 2rem;
  font-weight: 400;
  color: var(--abc-gold);
  line-height: 1;
}
.entry-content .abc-rea__preconst-grid li h4 {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0;
  color: var(--abc-navy);
  line-height: 1.3;
}
@media (max-width: 1000px) {
  .abc-rea__preconst-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .abc-rea__preconst-grid { grid-template-columns: 1fr; }
  .abc-rea__preconst { padding: 80px 24px; }
}

/* ── Real Estate: Our process (5-step numbered list) ──────────────────────── */
.abc-rea__process {
  background: #fff;
  padding: 100px 40px;
}
.abc-rea__steps {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 980px;
  counter-reset: process;
}
.abc-rea__steps li {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 32px;
  align-items: flex-start;
  padding: 36px 0;
  border-bottom: 1px solid rgba(14,24,40,0.08);
}
.abc-rea__steps li:last-child { border-bottom: 0; }
.abc-rea__step-num {
  font-family: 'Good Times', sans-serif;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  font-weight: 400;
  color: var(--abc-gold);
  line-height: 1;
}
.entry-content .abc-rea__steps li h4 {
  font-family: 'Golos Text', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin: 0 0 10px;
  color: var(--abc-navy);
  line-height: 1.25;
}
.entry-content .abc-rea__steps li p {
  font-family: 'Golos Text', sans-serif;
  font-size: 0.98rem;
  line-height: 1.65;
  color: var(--abc-text-dark-soft);
  margin: 0;
}
@media (max-width: 700px) {
  .abc-rea__steps li { grid-template-columns: 1fr; gap: 8px; padding: 28px 0; }
  .abc-rea__process { padding: 70px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   REAL ESTATE — South Florida coverage map v2.1.9
   Replaces neighborhood chips with embedded Google Map + caption
   ═══════════════════════════════════════════════════════════════════════════ */

.abc-rea__map-wrap {
  position: relative;
  max-width: 1200px;
  margin: 36px auto 24px;
  border: 1px solid rgba(202,160,92,0.28);
  border-radius: 2px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(0,0,0,0.35);
  background: #0E1828;
}
.abc-rea__map {
  display: block;
  width: 100%;
  height: 500px;
  border: 0;
  filter: grayscale(0.45) contrast(1.05) brightness(0.92);
  transition: filter 320ms ease;
}
.abc-rea__map-wrap:hover .abc-rea__map { filter: grayscale(0) contrast(1) brightness(1); }

.entry-content .abc-rea__neigh-caption {
  max-width: 1100px;
  margin: 0 auto;
  font-family: 'Golos Text', sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.75;
  color: var(--abc-text-light-3, rgba(255,255,255,0.7));
  text-align: center;
  padding: 4px 16px 0;
}

@media (max-width: 700px) {
  .abc-rea__map { height: 360px; }
  .abc-rea__map-wrap { margin: 28px 0 18px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SMS button — hide on desktop (sms: scheme has no handler on desktop browsers)
   Native SMS app only exists on iOS / Android.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 769px) {
  .abc-modal-btn--sms,
  .abc-inline-card--sms { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SLIDER REVOLUTION — CTA button polish v2.2.1
   Pill outline + gold arrow circle (original look) — fix spacing so the
   circle does not stick to the pill outline.
   ═══════════════════════════════════════════════════════════════════════════ */

.sr7-btn,
a.sr7-layer.sr7-btn {
  font-weight: 600 !important;
  transition: background-color 240ms ease, color 240ms ease, transform 240ms ease !important;
}
.sr7-btn:hover,
a.sr7-layer.sr7-btn:hover {
  background-color: rgba(255,255,255,0.06) !important;
  transform: translateY(-1px);
}

/* Gold arrow circle to the right of the text — give it real breathing room */
.sr7-btn > span,
a.sr7-layer.sr7-btn > span {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  margin-left: 22px !important;          /* clear gap between text and circle */
  border-radius: 50% !important;
  background-color: #CAA05C !important;  /* solid gold */
  box-shadow: 0 4px 12px rgba(202,160,92,0.35);
  flex-shrink: 0;
  transition: background-color 240ms ease, transform 240ms ease;
}
.sr7-btn:hover > span,
a.sr7-layer.sr7-btn:hover > span {
  background-color: #B58944 !important;
  transform: translateX(4px);
}
.sr7-btn > span > i,
a.sr7-layer.sr7-btn > span > i {
  color: #FFFFFF !important;
  font-size: 13px !important;
  line-height: 1 !important;
}

/* Kill any extra pseudo-element circles that Revolution Slider injects */
.sr7-btn::before,
.sr7-btn::after,
a.sr7-layer.sr7-btn::before,
a.sr7-layer.sr7-btn::after { content: none !important; }

/* Home ES had a stray Elementor scroll-down arrow widget overlapping the hero CTA
   (post 9464, widget id 4161bc9 — antra-icon-arrow-down icon).
   Hide it: the slider doesn't need a separate scroll indicator. */
.elementor-widget-icon i.antra-icon-arrow-down {
  display: none !important;
}
.elementor-widget-icon a.elementor-icon i.antra-icon-arrow-down + * { display: none !important; }
/* If the icon is the only child of the widget, hide the whole widget wrapper */
.elementor-widget-icon:has(i.antra-icon-arrow-down) {
  display: none !important;
}

/* Slider Revolution hero — Good Times font + size overrides (restored) */
sr7-module sr7-txt[id*="-2"],
sr7-module sr7-txt[id*="-4"],
sr7-module a.sr7-btn,
sr7-module .sr7-btn {
  font-family: "Good Times", "Cal Sans", sans-serif !important;
  text-transform: uppercase !important;
}
sr7-module sr7-txt[id^="SR7_3"][id$="-6"] {
  text-align: center !important;
}
sr7-module sr7-txt[id*="_1-"][id$="-4"],
sr7-module sr7-txt[id*="_1-"][id$="-4"] * {
  font-size: 68px !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
  font-family: "Good Times", "Cal Sans", sans-serif !important;
}
@media (max-width: 1280px) {
  sr7-module sr7-txt[id*="_1-"][id$="-4"],
  sr7-module sr7-txt[id*="_1-"][id$="-4"] * { font-size: 56px !important; line-height: 1.05 !important; }
}
@media (max-width: 900px) {
  sr7-module sr7-txt[id*="_1-"][id$="-4"],
  sr7-module sr7-txt[id*="_1-"][id$="-4"] * { font-size: 44px !important; line-height: 1.05 !important; }
}
@media (max-width: 640px) {
  sr7-module sr7-txt[id*="_1-"][id$="-4"],
  sr7-module sr7-txt[id*="_1-"][id$="-4"] * { font-size: 32px !important; line-height: 1.05 !important; }
}

/* Divider between about and services — company name watermark */
.elementor-element-0ad81f7 {
  margin-bottom: 0 !important;
  position: relative;
  padding-bottom: 90px !important;
  overflow: hidden;
}
.elementor-element-0ad81f7::after {
  content: "Add Building Contractor";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  max-width: 100vw;
  font-family: "Good Times", sans-serif;
  font-size: clamp(20px, 5.2vw, 78px);
  letter-spacing: 0.02em;
  text-indent: 0.02em;
  color: rgba(255, 255, 255, 0.05);
  pointer-events: none;
  z-index: 0;
  line-height: 1;
  white-space: nowrap;
}

/* Testimonials heading — Good Times font */
.elementor-element-5ee5670 .elementor-heading-title {
  font-family: "Good Times", "Cal Sans", sans-serif !important;
}

/* SEO LP hero — push the right-column trust pill list down to bottom-align
   with the H1 paragraph instead of sitting top-aligned. */
.elementor-widget.abc-portfolio-meta-list {
  align-self: end !important;
  margin-top: auto !important;
}
@media (min-width: 1024px) {
  .elementor-widget.abc-portfolio-meta-list { padding-top: 180px; }
}
@media (max-width: 1023px) {
  .elementor-widget.abc-portfolio-meta-list { padding-top: 32px; }
}

/* INSPECTION LP — section 2 ("Residential / Commercial inspections") was visually
   competing with the hero. Tighten its scale, padding, and header rhythm so it
   reads as secondary content instead of a second hero. */
.abc-ins__section + .abc-ins__section,
.abc-ins__hero + .abc-ins__section {
  padding-top: 70px !important;
  padding-bottom: 70px !important;
}
.abc-ins__section .abc-ins__h2 {
  font-size: clamp(1.5rem, 2.4vw, 2rem) !important;
  margin-bottom: 12px !important;
}
.abc-ins__section .abc-ins__eyebrow {
  font-size: 0.72rem !important;
  letter-spacing: 0.22em !important;
  margin-bottom: 10px !important;
}
.abc-ins__section .abc-ins__head {
  margin-bottom: 36px !important;
}
.abc-ins__section .abc-ins__lede {
  font-size: 0.95rem !important;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* FAQ accordions: the Antra parent theme forces text-transform: capitalize on
   headings, which Title-Cases every FAQ question ("¿Necesito Un Arquitecto?").
   Our copy is already sentence case, so render it as written, site-wide. */
.e-n-accordion-item-title,
.e-n-accordion-item-title-header,
.e-n-accordion-item-title-text,
.elementor-accordion .elementor-tab-title,
.elementor-toggle .elementor-toggle-title {
  text-transform: none !important;
}

/* ───────────────────────────────────────────────────────────
   BLOG SINGLE — reading typography
   Theme renders posts full-width (antra-full-width-content): header
   and featured image are full-bleed, content-area is 930px. That is too
   wide for body text, so we constrain the reading column and refine the
   rhythm of headings, paragraphs, lists, and links.
   ─────────────────────────────────────────────────────────── */
.single-post .entry-content {
  max-width: 740px;
  margin-left: auto !important;
  margin-right: auto !important;
  font-family: "Golos Text", sans-serif;
  color: #3a3a3a;
}
.single-post .entry-content > p {
  font-size: 17px;
  line-height: 1.8;
  margin: 0 0 1.25em !important;
}
/* Lead paragraph */
.single-post .entry-content > p:first-of-type {
  font-size: 19px;
  line-height: 1.7;
  color: #2a2a2a;
}
.single-post .entry-content h2 {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(19px, 2.4vw, 24px) !important;
  line-height: 1.3 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 1.9em 0 0.65em !important;
}
.single-post .entry-content h3 {
  font-family: "Golos Text", sans-serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  line-height: 1.4 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 1.5em 0 0.5em !important;
  text-transform: none !important;
}
.single-post .entry-content ul,
.single-post .entry-content ol {
  margin: 0 0 1.25em !important;
  padding-left: 1.35em !important;
}
.single-post .entry-content li {
  font-size: 17px;
  line-height: 1.7;
  margin-bottom: 0.55em;
}
.single-post .entry-content ul li::marker {
  color: var(--abc-gold, #CAA05C);
}
.single-post .entry-content ol li::marker {
  color: var(--abc-gold, #CAA05C);
  font-weight: 600;
}
.single-post .entry-content strong {
  color: var(--abc-dark, #1C1C1D);
  font-weight: 600;
}
.single-post .entry-content a {
  color: var(--abc-gold, #CAA05C);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}
.single-post .entry-content a:hover {
  color: var(--abc-dark, #1C1C1D);
}
/* Keep post navigation within the reading column too */
.single-post .post-navigation {
  max-width: 740px;
  margin-left: auto;
  margin-right: auto;
}

/* ═══════════════════════════════════════════════════════════════════════
   LEGAL PAGES (privacy policy + cookie policy) — .abc-legal-*
   Document layout: dark hero + readable cream body. Reuses brand tokens.
   ═══════════════════════════════════════════════════════════════════════ */
body.page-template-default .abc-legal {
  width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  margin-top: -30px;
  overflow-x: hidden;
}

/* ─── Hero ─── */
.abc-legal-hero {
  position: relative;
  background: var(--abc-dark, #1C1C1D);
  color: var(--abc-cream, #F8F7F5);
  padding: clamp(80px, 12vw, 150px) clamp(24px, 5vw, 80px) clamp(48px, 7vw, 80px);
  overflow: hidden;
}
.abc-legal-hero__grain {
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
}
.abc-legal-hero__accent {
  position: absolute;
  right: clamp(-20px, 2vw, 40px);
  bottom: -20px;
  font-family: "Good Times", sans-serif;
  font-size: clamp(120px, 18vw, 280px);
  line-height: 1;
  color: rgba(202, 160, 92, 0.04);
  letter-spacing: 0.05em;
  pointer-events: none;
  user-select: none;
}
.abc-legal-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 760px;
  margin: 0 auto;
}
.abc-legal-breadcrumb {
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  margin-bottom: 36px;
  color: rgba(248, 247, 245, 0.4);
}
.abc-legal-breadcrumb a {
  color: rgba(248, 247, 245, 0.4);
  text-decoration: none;
  transition: color 0.2s ease;
}
.abc-legal-breadcrumb a:hover { color: var(--abc-gold, #CAA05C); }
.abc-legal-breadcrumb span { margin: 0 8px; opacity: 0.4; }
.abc-legal-breadcrumb span:last-child {
  margin: 0; opacity: 1;
  color: rgba(248, 247, 245, 0.65);
}
.abc-legal-hero__rule {
  width: 48px; height: 3px;
  background: var(--abc-gold, #CAA05C);
  margin-bottom: 24px;
}
.abc-legal-hero__title {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(28px, 5vw, 48px) !important;
  line-height: 1.1 !important;
  margin: 0 !important;
  color: var(--abc-cream, #F8F7F5) !important;
  letter-spacing: 0.01em;
}
.abc-legal-hero__updated {
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
  font-size: 12px;
  letter-spacing: 0.03em;
  color: rgba(248, 247, 245, 0.45) !important;
  margin: 16px 0 0 !important;
}

/* ─── Body ─── */
.abc-legal-body {
  background: var(--abc-cream, #F8F7F5);
  padding: clamp(48px, 7vw, 96px) clamp(24px, 5vw, 80px);
}
.abc-legal-body__inner {
  max-width: 760px;
  margin: 0 auto;
}
.abc-legal-lead {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(16px, 1.8vw, 19px) !important;
  line-height: 1.7 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 0 0 clamp(32px, 4vw, 48px) !important;
  padding-bottom: clamp(32px, 4vw, 48px);
  border-bottom: 1px solid var(--abc-border, #E3E3E8);
}
.abc-legal-block { margin-bottom: clamp(36px, 4.5vw, 56px); }
.abc-legal-block h2 {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(18px, 2.4vw, 26px) !important;
  line-height: 1.2 !important;
  color: var(--abc-dark, #1C1C1D) !important;
  margin: 0 0 18px !important;
}
.abc-legal-block p {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(15px, 1.5vw, 16px) !important;
  line-height: 1.75 !important;
  color: #4a4a4a !important;
  margin: 0 0 16px !important;
}
.abc-legal-block p:last-child { margin-bottom: 0 !important; }
.abc-legal-block ul {
  list-style: none !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
}
.abc-legal-block li {
  position: relative;
  padding-left: 22px;
  font-family: "Golos Text", sans-serif;
  font-size: clamp(15px, 1.5vw, 16px);
  line-height: 1.7;
  color: #4a4a4a;
  margin-bottom: 12px;
}
.abc-legal-block li::before {
  content: "";
  position: absolute; left: 0; top: 11px;
  width: 8px; height: 2px;
  background: var(--abc-gold, #CAA05C);
}
.abc-legal-block strong { color: var(--abc-dark, #1C1C1D); font-weight: 600; }
.abc-legal-block code {
  font-family: ui-monospace, "SF Mono", Consolas, monospace;
  font-size: 0.88em;
  background: rgba(28, 28, 29, 0.06);
  padding: 1px 6px;
  border-radius: 2px;
}
.abc-legal-block a {
  color: var(--abc-dark, #1C1C1D);
  text-decoration: underline;
  text-decoration-color: var(--abc-gold, #CAA05C);
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
.abc-legal-block a:hover { color: var(--abc-gold, #CAA05C); }

/* ─── Cookie table ─── */
.abc-legal-tablewrap {
  overflow-x: auto;
  margin: 0 0 18px;
  border: 1px solid var(--abc-border, #E3E3E8);
}
.abc-legal-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Golos Text", sans-serif;
  font-size: 14px;
  min-width: 520px;
}
.abc-legal-table th {
  text-align: left !important;
  background: var(--abc-dark, #1C1C1D) !important;
  color: var(--abc-cream, #F8F7F5) !important;
  font-weight: 600;
  padding: 12px 16px;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.abc-legal-table td {
  padding: 14px 16px;
  border-top: 1px solid var(--abc-border, #E3E3E8);
  color: #4a4a4a;
  line-height: 1.55;
  vertical-align: top;
  background: #fff;
}
.abc-legal-table tr td:first-child {
  font-weight: 600;
  color: var(--abc-dark, #1C1C1D);
  white-space: nowrap;
}
.abc-legal-note {
  font-family: "Golos Text", sans-serif;
  font-size: clamp(15px, 1.5vw, 16px) !important;
  line-height: 1.7 !important;
  color: #4a4a4a !important;
  padding: 16px 20px !important;
  background: var(--abc-warm-gray, #E8E5E0);
  border-left: 3px solid var(--abc-gold, #CAA05C);
  margin: 0 !important;
}
.abc-legal-note strong { color: var(--abc-dark, #1C1C1D); }

/* ─── Contact block ─── */
.abc-legal-contact {
  margin-top: clamp(40px, 5vw, 64px);
  padding: clamp(24px, 3vw, 32px);
  background: var(--abc-dark, #1C1C1D);
  color: var(--abc-cream, #F8F7F5);
  border-left: 3px solid var(--abc-gold, #CAA05C);
}
.abc-legal-contact__eyebrow {
  font-family: "Golos Text", sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--abc-gold, #CAA05C) !important;
  margin: 0 0 12px !important;
}
.abc-legal-contact__name {
  font-family: "Good Times", sans-serif !important;
  font-size: clamp(16px, 2vw, 20px) !important;
  color: var(--abc-cream, #F8F7F5) !important;
  margin: 0 0 10px !important;
}
.abc-legal-contact p {
  font-family: "Golos Text", sans-serif;
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: rgba(248, 247, 245, 0.7) !important;
  margin: 0 !important;
}
.abc-legal-contact a { color: var(--abc-gold, #CAA05C); text-decoration: none; }
.abc-legal-contact a:hover { text-decoration: underline; }

/* ─── Footer legal links (injected after copyright) ─── */
.abc-footer-legal {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
  font-family: "Golos Text", sans-serif;
  font-size: 13px;
}
.abc-footer-legal a {
  color: rgba(248, 247, 245, 0.5);
  text-decoration: none;
  transition: color 0.2s ease;
}
.abc-footer-legal a:hover { color: var(--abc-gold, #CAA05C); }
.abc-footer-legal__sep { color: rgba(248, 247, 245, 0.25); }

/* ─── Cookie notice banner ─── */
.abc-cookie-banner {
  position: fixed;
  left: 20px;
  bottom: 20px;
  z-index: 99999;
  max-width: 380px;
  background: var(--abc-dark, #1C1C1D);
  color: var(--abc-cream, #F8F7F5);
  border: 1px solid rgba(202, 160, 92, 0.25);
  border-left: 3px solid var(--abc-gold, #CAA05C);
  padding: 18px 20px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.abc-cookie-banner.is-visible { opacity: 1; transform: translateY(0); }
.abc-cookie-banner__text {
  font-family: "Golos Text", sans-serif;
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: rgba(248, 247, 245, 0.75) !important;
  margin: 0 0 14px !important;
}
.abc-cookie-banner__text a {
  color: var(--abc-gold, #CAA05C);
  text-decoration: none;
  white-space: nowrap;
}
.abc-cookie-banner__text a:hover { text-decoration: underline; }
.abc-cookie-banner__btn {
  font-family: "Golos Text", sans-serif;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  background: var(--abc-gold, #CAA05C);
  color: var(--abc-dark, #1C1C1D);
  border: none;
  padding: 10px 24px;
  transition: background 0.2s ease;
}
.abc-cookie-banner__btn:hover { background: #d9b06a; }
@media (max-width: 768px) {
  .abc-cookie-banner {
    left: 12px;
    right: 12px;
    bottom: 12px;
    max-width: none;
  }
}

/* ─── Advisory page — Buyer profiles section ─── */
.abc-rea__buyers { background: var(--abc-cream, #F8F7F5); padding: 80px 24px; }
.abc-rea__buyers .abc-rea__svc-head { max-width: 800px; margin: 0 auto 48px; text-align: center; }
.abc-rea__buyers-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}
.abc-rea__buyer-card {
  background: #fff;
  border-top: 3px solid var(--abc-gold, #CAA05C);
  padding: 28px 24px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.abc-rea__buyer-title {
  font-family: "Good Times", "Times New Roman", serif;
  font-size: 13px;
  letter-spacing: 0.08em;
  margin: 0 0 14px;
  color: var(--abc-dark, #1C1C1D);
  text-transform: uppercase;
  line-height: 1.4;
}
.abc-rea__buyer-text { font-size: 14px; line-height: 1.65; color: #444; margin: 0; }
@media (max-width: 1024px) { .abc-rea__buyers-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) {
  .abc-rea__buyers { padding: 60px 16px; }
  .abc-rea__buyers-grid { grid-template-columns: 1fr; }
}

/* ───────────────────────────────────────────────────────────
   Brand watermark — replaces the giant decorative "ABC" monogram
   with the full company name on a single full-width line.
   Color/opacity stay per-page (Elementor inline), only size/wrap
   are centralized here. Applied to 7 locations via _css_classes.
   ─────────────────────────────────────────────────────────── */
.abc-brand-watermark {
  max-width: 100vw;
  overflow: hidden !important;
  pointer-events: none;
}
.abc-brand-watermark .elementor-heading-title {
  font-size: clamp(24px, 6vw, 90px) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  letter-spacing: -0.01em;
}


/* ============================================================
   Mobile services bar (.abc-msb) - under header, marquee chips.
   Reappears fixed at top when the user scrolls up (JS toggles
   .abc-msb--fixed); plain sticky breaks under overflow-x hidden.
   ============================================================ */
.abc-msb { display: none; }
@media (max-width: 768px) {
  .abc-msb {
    display: block;
    position: relative;
    z-index: 80;
    background: var(--abc-dark, #1C1C1D);
    border-top: 1px solid rgba(202, 160, 92, 0.28);
    border-bottom: 1px solid rgba(202, 160, 92, 0.28);
    padding: 10px 0 12px;
  }
  .abc-msb--fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 990;
    transform: translateY(-110%);
    transition: transform 350ms cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .abc-msb--fixed.abc-msb--shown { transform: translateY(0); }
  .abc-msb__label {
    display: block;
    padding: 0 18px 8px;
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: 10px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--abc-gold, #CAA05C);
  }
  .abc-msb__viewport {
    overflow: hidden;
    touch-action: pan-y; /* horizontal lo maneja el JS, vertical sigue scrolleando la página */
  }
  .abc-msb__track {
    display: flex;
    width: max-content;
    will-change: transform;
  }
  .abc-msb__group {
    display: flex;
    gap: 10px;
    padding: 0 5px 0 18px;
  }
  .abc-msb__chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid rgba(202, 160, 92, 0.45);
    border-radius: 999px;
    font-family: "Good Times", "Goldman", sans-serif;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--abc-cream, #F8F7F5);
    background: rgba(248, 247, 245, 0.04);
    white-space: nowrap;
    text-decoration: none;
    transition: background 250ms ease, border-color 250ms ease;
  }
  .abc-msb__chip:active {
    background: rgba(202, 160, 92, 0.22);
    border-color: var(--abc-gold, #CAA05C);
  }
  .abc-msb__chip--all {
    background: var(--abc-gold, #CAA05C);
    border-color: var(--abc-gold, #CAA05C);
    color: #1C1C1D;
    font-weight: 600;
  }
  @media (prefers-reduced-motion: reduce) {
    .abc-msb__viewport { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  }
}

/* ============================================================
   Service cards - mobile tap affordance: CTA becomes a gold
   pill button and the whole card gives press feedback
   ============================================================ */
@media (max-width: 768px) {
  .abc-card { transition: transform 250ms ease; }
  .abc-card__cta {
    border: 1px solid var(--abc-gold, #CAA05C);
    border-radius: 999px;
    padding: 0 20px;
    min-height: 44px;
    box-sizing: border-box;
    align-items: center;
    background: rgba(28, 28, 29, 0.45);
    transition: background 250ms ease, color 250ms ease;
  }
  .abc-card:active { transform: scale(0.985); }
  .abc-card:active .abc-card__cta {
    background: var(--abc-gold, #CAA05C);
    color: #1C1C1D;
  }
}
