/*
Theme Name:   Artificial Rock Contractors (Hello Elementor Child)
Theme URI:    https://artificialrockcontractor.com/
Description:  Child theme for the Artificial Rock Contractors redesign. Holds the component styles that Elementor (free) cannot express natively: overlapping media compositions, the project mosaic, decorative textures and form styling. Colors, fonts, buttons and spacing come from the Elementor Kit (Site Settings); every color below references an Elementor global color variable so the Kit stays the single source of truth.
Author:       Artificial Rock Contractors
Template:     hello-elementor
Version:      1.0.0
Text Domain:  arc-child
*/

/* ==========================================================================
   0. Token aliases (resolve to Elementor Kit globals, with mockup fallbacks)
   ========================================================================== */
body {
  --arc-blue: var(--e-global-color-primary, #1298D0);
  --arc-blue-600: var(--e-global-color-accent, #087EB5);
  --arc-blue-700: var(--e-global-color-blue700, #066A99);
  --arc-blue-200: var(--e-global-color-blue200, #9FD8F0);
  --arc-aqua: var(--e-global-color-aqua, #45C4CB);
  --arc-aqua-100: var(--e-global-color-aqua100, #DDF3FB);
  --arc-aqua-50: var(--e-global-color-aqua50, #EFFAFE);
  --arc-mist: var(--e-global-color-mist, #F7FBFC);
  --arc-sand: var(--e-global-color-sand, #F2EBDC);
  --arc-sand-deep: var(--e-global-color-sanddeep, #E8DDC6);
  --arc-off: var(--e-global-color-off, #F8F6F0);
  --arc-stone: var(--e-global-color-stone, #B6A58F);
  --arc-stone-600: var(--e-global-color-stone600, #8C7A61);
  --arc-line: var(--e-global-color-line, #E6DFD0);
  --arc-line-cool: var(--e-global-color-linecool, #CFE8F2);
  --arc-slate: var(--e-global-color-secondary, #153D4D);
  --arc-ink: var(--e-global-color-text, #18343E);
  --arc-muted: var(--e-global-color-muted, #53666D);
  --arc-deep: var(--e-global-color-deepwater, #0A3F5A);
  --arc-font-head: var(--e-global-typography-primary-font-family, "Manrope"), "Manrope", system-ui, sans-serif;
  --arc-r-sm: 10px; --arc-r-md: 16px; --arc-r-lg: 24px; --arc-r-xl: 32px;
  --arc-shadow-sm: 0 2px 8px rgba(23, 63, 80, .06);
  --arc-shadow-md: 0 14px 34px -12px rgba(23, 63, 80, .18);
  --arc-shadow-lg: 0 30px 60px -24px rgba(23, 63, 80, .28);
  --arc-ease: cubic-bezier(.2, .7, .2, 1);
  --arc-header-h: 78px;
  --arc-contours: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='420' viewBox='0 0 640 420'%3E%3Cg fill='none' stroke='%23B6A58F' stroke-width='1'%3E%3Cpath d='M-20 40c90-34 160 30 250 4s170-48 250-10 140 28 180 6'/%3E%3Cpath d='M-20 84c96-30 150 34 244 8s176-44 256-6 136 24 180 4'/%3E%3Cpath d='M-20 130c80-40 170 22 260 0s160-50 250-12 130 30 170 10'/%3E%3Cpath d='M-20 178c100-26 150 38 250 10s170-40 250-6 140 26 180 2'/%3E%3Cpath d='M-20 226c86-36 164 26 256 2s168-46 252-8 132 28 172 8'/%3E%3Cpath d='M-20 272c94-30 156 34 246 8s174-44 254-8 140 24 180 4'/%3E%3Cpath d='M-20 318c82-38 168 24 258 0s164-48 250-10 134 30 172 10'/%3E%3Cpath d='M-20 364c98-28 152 36 250 8s172-42 252-6 138 26 178 4'/%3E%3Cpath d='M-20 410c88-34 162 28 254 4s168-46 252-8 136 28 174 8'/%3E%3C/g%3E%3C/svg%3E");
  --arc-ripples: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='420' viewBox='0 0 640 420'%3E%3Cg fill='none' stroke='%231298D0' stroke-width='1'%3E%3Cpath d='M-20 40c90-34 160 30 250 4s170-48 250-10 140 28 180 6'/%3E%3Cpath d='M-20 110c96-30 150 34 244 8s176-44 256-6 136 24 180 4'/%3E%3Cpath d='M-20 180c80-40 170 22 260 0s160-50 250-12 130 30 170 10'/%3E%3Cpath d='M-20 250c100-26 150 38 250 10s170-40 250-6 140 26 180 2'/%3E%3Cpath d='M-20 320c86-36 164 26 256 2s168-46 252-8 132 28 172 8'/%3E%3Cpath d='M-20 390c94-30 156 34 246 8s174-44 254-8 140 24 180 4'/%3E%3C/g%3E%3C/svg%3E");
  --arc-ripples-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='420' viewBox='0 0 640 420'%3E%3Cg fill='none' stroke='%23FFFFFF' stroke-width='1'%3E%3Cpath d='M-20 40c90-34 160 30 250 4s170-48 250-10 140 28 180 6'/%3E%3Cpath d='M-20 110c96-30 150 34 244 8s176-44 256-6 136 24 180 4'/%3E%3Cpath d='M-20 180c80-40 170 22 260 0s160-50 250-12 130 30 170 10'/%3E%3Cpath d='M-20 250c100-26 150 38 250 10s170-40 250-6 140 26 180 2'/%3E%3Cpath d='M-20 320c86-36 164 26 256 2s168-46 252-8 132 28 172 8'/%3E%3Cpath d='M-20 390c94-30 156 34 246 8s174-44 254-8 140 24 180 4'/%3E%3C/g%3E%3C/svg%3E");
}

/* ==========================================================================
   1. Base
   ========================================================================== */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
body { overflow-x: clip; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { text-wrap: balance; }
p, li { text-wrap: pretty; }
:focus-visible { outline: 3px solid var(--arc-blue); outline-offset: 3px; border-radius: 6px; }
[id] { scroll-margin-top: calc(var(--arc-header-h) + 12px); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.arc-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Decorative textures (topographic "rock strata" and water ripples) */
.arc-textured, .arc-rippled { position: relative; }
.arc-textured::before, .arc-rippled::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-size: 640px 420px;
}
.arc-textured::before { background-image: var(--arc-contours); opacity: .3; }
.arc-rippled::before { background-image: var(--arc-ripples); opacity: .09; }
.arc-textured > .e-con-inner, .arc-rippled > .e-con-inner { position: relative; z-index: 1; }

/* ==========================================================================
   2. Shared components
   ========================================================================== */
/* Eyebrow */
.arc-eyebrow .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--arc-font-head); font-size: .78rem; font-weight: 800; line-height: 1.4;
  letter-spacing: .16em; text-transform: uppercase; color: var(--arc-blue-600);
}
.arc-eyebrow .elementor-heading-title::before {
  content: ""; flex: none; width: 26px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--arc-aqua), var(--arc-blue));
}
.arc-eyebrow--stone .elementor-heading-title { color: var(--arc-stone-600); }
.arc-eyebrow--stone .elementor-heading-title::before { background: var(--arc-stone); }
.arc-eyebrow--white .elementor-heading-title { color: #fff; }
.arc-eyebrow--white .elementor-heading-title::before { background: #fff; }

.arc-lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.225rem); line-height: 1.6; color: var(--arc-muted); }
.arc-muted, .arc-muted p { color: var(--arc-muted); }

/* Section heads */
.arc-head h2.elementor-heading-title { max-width: 22ch; }
.arc-head--center { text-align: center; }
.arc-head--center h2.elementor-heading-title { max-width: 24ch; margin-inline: auto; }
.arc-head--split .elementor-widget-text-editor { max-width: 46ch; color: var(--arc-muted); }

/* Buttons: base look comes from the Kit (Site Settings > Buttons). Variants: */
.elementor-button { transition: transform .25s var(--arc-ease), box-shadow .25s var(--arc-ease), background-color .2s, color .2s, border-color .2s; white-space: nowrap; }
.elementor-button .elementor-button-icon svg { width: 18px; height: 18px; }
.elementor-button:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -12px rgba(8, 126, 181, .75); }
.arc-btn--sm .elementor-button { min-height: 44px; padding: 0 20px; font-size: .88rem; }
.arc-btn--outline .elementor-button { background: rgba(255,255,255,.7); color: var(--arc-blue-600); border-color: var(--arc-blue); }
.arc-btn--outline .elementor-button:hover { background: var(--arc-aqua-50); color: var(--arc-blue-700); border-color: var(--arc-blue-600); box-shadow: none; }
.arc-btn--white .elementor-button { background: #fff; color: var(--arc-blue-600); border-color: #fff; }
.arc-btn--white .elementor-button:hover { background: #fff; color: var(--arc-blue-700); box-shadow: 0 14px 30px -12px rgba(0,0,0,.35); }
.arc-btn--outline-white .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.arc-btn--outline-white .elementor-button:hover { background: rgba(255,255,255,.12); color: #fff; border-color: #fff; box-shadow: none; }
.arc-btn--block, .arc-btn--block .elementor-button { width: 100%; }

/* Text link with arrow */
.arc-link .elementor-button {
  min-height: 0; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none;
  color: var(--arc-blue-600); font-size: .92rem; gap: 8px;
}
.arc-link .elementor-button:hover { background: none; color: var(--arc-blue-700); transform: none; box-shadow: none; }
.arc-link .elementor-button-icon svg { transition: transform .25s var(--arc-ease); fill: currentColor; }
.arc-link .elementor-button:hover .elementor-button-icon svg { transform: translateX(4px); }

/* Card footer row: full width with round arrow button */
.arc-linkrow { width: 100%; margin-top: auto; }
.arc-linkrow .elementor-button-wrapper, .arc-linkrow .elementor-button { width: 100%; }
.arc-linkrow .elementor-button {
  justify-content: space-between; min-height: 0; padding: 18px 0 0; border: 0; border-top: 1px solid var(--arc-aqua-100);
  border-radius: 0; background: none; color: var(--arc-blue-600); font-size: .92rem; box-shadow: none;
}
.arc-linkrow .elementor-button:hover { background: none; color: var(--arc-blue-700); transform: none; box-shadow: none; }
.arc-linkrow .elementor-button-content-wrapper { width: 100%; justify-content: space-between; }
.arc-linkrow .elementor-button-icon { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--arc-aqua-50); transition: background-color .25s; }
.arc-linkrow .elementor-button-icon svg { width: 16px; height: 16px; fill: var(--arc-blue-600); transition: fill .25s; }
.arc-card:hover .arc-linkrow .elementor-button-icon, .arc-feature:hover .arc-linkrow .elementor-button-icon,
.arc-market:hover .arc-linkrow .elementor-button-icon, .arc-linkrow .elementor-button:hover .elementor-button-icon { background: var(--arc-blue-600); }
.arc-card:hover .arc-linkrow .elementor-button-icon svg, .arc-feature:hover .arc-linkrow .elementor-button-icon svg,
.arc-market:hover .arc-linkrow .elementor-button-icon svg, .arc-linkrow .elementor-button:hover .elementor-button-icon svg { fill: #fff; }

/* Chips */
.arc-chip .elementor-heading-title, ul.arc-chips li {
  display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px;
  font-family: inherit; font-size: .78rem; font-weight: 600; line-height: 1.2; letter-spacing: 0;
  background: #fff; border: 1px solid var(--arc-line); color: var(--arc-ink);
}
ul.arc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 24px; padding: 0; list-style: none; }
.arc-chips--blue ul.arc-chips li { border-color: var(--arc-line-cool); color: var(--arc-blue-600); font-weight: 700; }
.arc-chips--off ul.arc-chips li { background: var(--arc-off); }

/* Check list (Elementor Icon List) */
.arc-checklist .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 26px; }
.arc-checklist .elementor-icon-list-item { align-items: flex-start !important; margin: 0 !important; padding: 0 !important; }
.arc-checklist .elementor-icon-list-icon {
  flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid !important; place-items: center;
  background: #fff; border: 1px solid var(--arc-line); padding: 0 !important; margin-right: 12px;
}
.arc-checklist .elementor-icon-list-icon svg { width: 12px !important; height: 12px !important; fill: var(--arc-blue-600) !important; }
.arc-checklist .elementor-icon-list-text { font-weight: 600; font-size: .95rem; line-height: 1.4; color: var(--arc-ink); padding: 0 !important; }

/* Media frames: the widget box is the frame, the image covers it */
.arc-cover { position: relative; overflow: hidden; border-radius: var(--arc-r-lg); background: var(--arc-sand); }
.arc-cover img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
.arc-cover a { display: block; position: absolute; inset: 0; }
.arc-zoom img { transition: transform .9s var(--arc-ease); }
.arc-zoom:hover img, a:hover .arc-zoom img, .arc-card:hover .arc-zoom img, .arc-feature:hover .arc-zoom img, .arc-market:hover .arc-zoom img, .arc-tile:hover img { transform: scale(1.05); }

/* Circle icons */
.arc-ico-circle .elementor-icon {
  width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  background: var(--arc-blue); color: #fff; box-shadow: 0 0 0 6px var(--arc-aqua-100); font-size: 20px;
}
.arc-ico-circle .elementor-icon svg { width: 20px; height: 20px; fill: #fff; }

/* ==========================================================================
   3. Header (UAE Header template)
   ========================================================================== */
html body #masthead, .ehf-header #masthead { position: sticky; top: 0; z-index: 100; }
html body.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { html body.admin-bar #masthead { top: 0; } }
.arc-header {
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid var(--arc-line-cool); box-shadow: 0 8px 24px -18px rgba(8, 80, 115, .35);
}
.arc-header > .e-con-inner { min-height: var(--arc-header-h); }
.arc-brand img { width: 214px; height: auto; }
.arc-header-phone { gap: 10px; color: var(--arc-ink); white-space: nowrap; }
.arc-header-phone .elementor-icon { width: 38px; height: 38px; font-size: 18px; box-shadow: 0 0 0 5px var(--arc-aqua-100); }
.arc-header-phone .elementor-icon svg { width: 18px; height: 18px; }
.arc-header-phone .arc-phone-text { font-family: var(--arc-font-head); font-weight: 800; font-size: .95rem; line-height: 1.15; }
.arc-header-phone .arc-phone-text small { display: block; font-family: inherit; font-family: var(--e-global-typography-text-font-family, "Inter"), sans-serif; font-weight: 500; font-size: .72rem; color: var(--arc-muted); }
.arc-header-phone:hover .arc-phone-text { color: var(--arc-blue-600); }

/* Navigation (UAE Navigation Menu) */
.arc-nav .hfe-nav-menu > li > a.hfe-menu-item,
.arc-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item {
  font-family: var(--arc-font-head); font-weight: 700; font-size: .9rem; color: var(--arc-ink); padding: 10px 12px; position: relative;
}
.arc-nav .hfe-nav-menu > li > a.hfe-menu-item::after,
.arc-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 3px; height: 2px; border-radius: 2px;
  background: var(--arc-blue); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--arc-ease);
}
.arc-nav .hfe-nav-menu > li:hover > a.hfe-menu-item, .arc-nav .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item,
.arc-nav .hfe-nav-menu > li:hover > .hfe-has-submenu-container > a.hfe-menu-item { color: var(--arc-blue-600); }
.arc-nav .hfe-nav-menu > li:hover > a.hfe-menu-item::after, .arc-nav .hfe-nav-menu > li.current-menu-item > a.hfe-menu-item::after { transform: scaleX(1); }

/* Services dropdown: two-column panel with thumbnails (desktop) */
@media (min-width: 1025px) {
  .arc-nav .hfe-nav-menu .sub-menu {
    width: 620px !important; left: 50% !important; transform: translateX(-50%);
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 4px; padding: 14px !important;
    background: #fff !important; border: 1px solid var(--arc-line-cool); border-top: 3px solid var(--arc-blue);
    border-radius: var(--arc-r-md); box-shadow: var(--arc-shadow-lg) !important;
  }
  .arc-nav .hfe-nav-menu .sub-menu li { border: 0 !important; }
  .arc-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
    display: flex !important; gap: 12px; align-items: center; padding: 10px !important; border-radius: var(--arc-r-sm);
    background: none !important; color: var(--arc-ink) !important; transition: background-color .2s;
  }
  /* [thumbnail][text] from the left edge: UAE's link rule (space-between) floated the text block toward the middle */
  .arc-nav .hfe-nav-menu .sub-menu li:not(.arc-menu-all) > a.hfe-sub-menu-item { justify-content: flex-start !important; text-align: left; }
  .arc-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item .arc-mi-text { flex: 1 1 auto; text-align: left; }
  .arc-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover { background: var(--arc-aqua-50) !important; }
  .arc-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover .arc-mi-title { color: var(--arc-blue-600); }
  .arc-nav .sub-menu li.arc-menu-all { grid-column: 1 / -1; margin-top: 4px; }
  .arc-nav .sub-menu li.arc-menu-all a.hfe-sub-menu-item { background: var(--arc-blue-600) !important; color: #fff !important; justify-content: space-between; }
  .arc-nav .sub-menu li.arc-menu-all a.hfe-sub-menu-item:hover { background: var(--arc-blue-700) !important; }
  .arc-nav .sub-menu li.arc-menu-all .arc-mi-title { color: #fff !important; }
  /* static: UAE positions every menu-link ::after absolutely, which pinned the arrow over "View" */
  .arc-nav .sub-menu li.arc-menu-all a::after { content: "\2192"; font-weight: 800; position: static; }
}
.arc-mi-thumb { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; flex: none; }
.arc-mi-text { display: block; min-width: 0; }
.arc-mi-title { display: block; font-family: var(--arc-font-head); font-weight: 700; font-size: .9rem; line-height: 1.25; }
.arc-mi-desc { display: block; font-size: .78rem; font-weight: 400; color: var(--arc-muted); line-height: 1.35; margin-top: 2px; }
/* Mobile/tablet menu */
@media (max-width: 1024px) {
  .arc-nav .hfe-nav-menu__layout-horizontal { background: #fff; border-top: 1px solid var(--arc-line); box-shadow: 0 24px 40px -24px rgba(8,80,115,.35); }
  .arc-nav .hfe-nav-menu li a.hfe-menu-item, .arc-nav .hfe-nav-menu li a.hfe-sub-menu-item { padding: 16px 20px !important; font-size: 1.02rem; }
  .arc-nav .hfe-nav-menu > li { border-bottom: 1px solid var(--arc-line); }
  .arc-nav .hfe-nav-menu a.hfe-menu-item::after { display: none; }
  .arc-mi-thumb, .arc-mi-desc { display: none; }
  .arc-nav .hfe-nav-menu__toggle { min-width: 46px; min-height: 46px; border: 1px solid var(--arc-line); border-radius: 12px; display: grid !important; place-items: center; }
}
@media (max-width: 1439px) { .arc-header-phone .arc-phone-text { display: none; } }
@media (max-width: 1366px) { .arc-brand img { width: 188px; } .arc-nav .hfe-nav-menu > li > a.hfe-menu-item, .arc-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item { padding-left: 9px; padding-right: 9px; } }
@media (max-width: 1240px) { .arc-header-cta { display: none; } }
@media (max-width: 1024px) { .arc-header-phone .arc-phone-text { display: block; } :root { --arc-header-h: 70px; } }
@media (max-width: 767px) { .arc-header-phone .arc-phone-text { display: none; } .arc-brand img { width: 172px; } }

/* ==========================================================================
   4. Hero
   ========================================================================== */
.arc-hero {
  overflow: hidden;
  background:
    radial-gradient(55% 75% at 86% 30%, rgba(18, 152, 208, .20), transparent 70%),
    radial-gradient(40% 50% at 100% 100%, rgba(69, 196, 203, .20), transparent 70%),
    radial-gradient(45% 55% at 0% 100%, rgba(182, 165, 143, .16), transparent 70%),
    linear-gradient(180deg, #FFFFFF 0%, var(--arc-mist) 100%);
}
.arc-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: var(--arc-contours); background-size: 720px 472px; opacity: .35;
  -webkit-mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.5) 50%, transparent 80%);
  mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.5) 50%, transparent 80%);
}
.arc-hero > .e-con-inner { position: relative; z-index: 1; }
.arc-hero h1.elementor-heading-title { max-width: 16.5ch; }
.arc-hero h1 em { font-style: normal; color: var(--arc-blue-600); }
.arc-hero .arc-lead { max-width: 54ch; }
.arc-hero__contact { border-top: 1px solid var(--arc-line-cool); }
.arc-hero__phone { color: var(--arc-ink); }
.arc-hero__phone p { margin: 0; line-height: 1.25; }
.arc-hero__phone small { display: block; font-size: .8rem; color: var(--arc-muted); }
.arc-hero__phone strong { display: block; font-family: var(--arc-font-head); font-size: 1.15rem; }
.arc-hero__phone:hover strong { color: var(--arc-blue-600); }
.arc-note .elementor-icon-list-text { font-size: .86rem; color: var(--arc-muted) !important; }
.arc-note .elementor-icon-list-icon svg { fill: var(--arc-blue) !important; width: 18px !important; height: 18px !important; }

.arc-hero__media { position: relative; padding: 0 0 56px 56px; }
.arc-hero__media::before {
  content: ""; position: absolute; top: -18px; right: -18px; bottom: 38px; left: 74px; pointer-events: none;
  border: 2px solid var(--arc-blue); border-radius: 999px 999px var(--arc-r-xl) var(--arc-r-xl); opacity: .35;
}
.arc-hero__main {
  aspect-ratio: 4 / 5; max-height: 660px; width: 100%;
  border-radius: 999px 999px var(--arc-r-xl) var(--arc-r-xl) !important;
  box-shadow: 0 30px 60px -24px rgba(8, 126, 181, .45); background: var(--arc-aqua-100) !important;
}
.arc-hero__main::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(18,152,208,.28) 0%, rgba(18,152,208,0) 38%); }
.arc-hero__main img { object-position: 50% 70%; }
.e-con.arc-hero__inset {
  position: absolute; left: 0; bottom: 0; width: 40%; aspect-ratio: 3 / 4; z-index: 2;
  border-radius: var(--arc-r-lg); overflow: hidden; border: 6px solid #fff; box-shadow: var(--arc-shadow-lg); background: var(--arc-sand);
}
.arc-hero__inset .arc-cover { position: absolute; inset: 0; border-radius: 0; }
.arc-hero__inset .arc-cover img { object-position: 50% 40%; }
.arc-hero__inset .arc-caption { position: absolute; left: 10px; right: 10px; bottom: 10px; z-index: 1; }
.arc-caption .elementor-heading-title {
  display: block; padding: 7px 10px; border-radius: 10px; font-family: inherit;
  font-size: .72rem; font-weight: 700; line-height: 1.25; letter-spacing: 0; color: var(--arc-ink);
  background: rgba(255,255,255,.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.e-con.arc-hero__badge {
  position: absolute; right: -8px; bottom: 84px; z-index: 3; max-width: 250px;
  padding: 16px 20px; background: rgba(255,255,255,.95); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border-radius: var(--arc-r-md); box-shadow: var(--arc-shadow-md); border: 1px solid var(--arc-line-cool); border-left: 4px solid var(--arc-blue);
}
.arc-hero__badge .arc-stat .elementor-heading-title { font-family: var(--arc-font-head); font-size: 2.3rem; line-height: 1; font-weight: 800; letter-spacing: -.04em; color: var(--arc-blue); }
.arc-hero__badge .elementor-widget-text-editor { font-size: .8rem; line-height: 1.35; font-weight: 600; color: var(--arc-ink); }
@media (max-width: 1024px) {
  .arc-hero__media { padding: 0 0 44px 32px; }
  .e-con.arc-hero__badge { right: -4px; bottom: 60px; padding: 12px 14px; max-width: 200px; }
  .arc-hero__badge .arc-stat .elementor-heading-title { font-size: 1.8rem; }
  .arc-hero__badge .elementor-widget-text-editor { font-size: .72rem; }
}
@media (max-width: 880px) {
  .arc-hero__media { max-width: 560px; width: 100%; margin-inline: auto; }
  .arc-hero__main { aspect-ratio: 5 / 5.2; }
}
@media (max-width: 767px) {
  .arc-hero__media { padding: 0 0 44px 28px; }
  .arc-hero__main { aspect-ratio: 4 / 4.4; border-radius: 280px 280px var(--arc-r-lg) var(--arc-r-lg) !important; }
  .e-con.arc-hero__badge { right: 0; }
  .arc-hero__actions .elementor-widget-button { flex: 1 1 200px; }
  .arc-hero__actions .elementor-button { width: 100%; }
}
@media (max-width: 480px) { .arc-hero__actions .elementor-widget-button { flex-basis: 100%; } }

/* ==========================================================================
   5. Trust strip
   ========================================================================== */
.arc-trust { border-block: 1px solid var(--arc-line-cool); }
.arc-trust__item { padding: 28px 22px; }
.arc-trust__grid > .arc-trust__item + .arc-trust__item { border-left: 1px solid var(--arc-line-cool); }
.arc-trust__item .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 14px; text-align: left; }
.arc-trust__item .elementor-icon-box-icon { margin: 0 !important; }
.arc-trust__item .elementor-icon {
  width: 46px; height: 46px; padding: 0; border-radius: 50%; display: grid; place-items: center;
  background: #fff; box-shadow: 0 0 0 1px var(--arc-line-cool); font-size: 22px;
}
.arc-trust__item .elementor-icon svg { width: 22px; height: 22px; fill: var(--arc-blue-600); }
.arc-trust__item .elementor-icon-box-title { margin: 0; font-family: var(--arc-font-head); font-weight: 800; font-size: 1rem; line-height: 1.2; color: var(--arc-ink); }
.arc-trust__item .elementor-icon-box-description { margin: 3px 0 0; font-size: .8rem; line-height: 1.35; color: var(--arc-muted); }
@media (max-width: 1024px) {
  .arc-trust__grid > .arc-trust__item:nth-child(4) { border-left: 0; }
  .arc-trust__grid > .arc-trust__item:nth-child(n+4) { border-top: 1px solid var(--arc-line-cool); }
}
@media (max-width: 767px) {
  .arc-trust__item { padding: 20px 14px; }
  .arc-trust__grid > .arc-trust__item:nth-child(n) { border-left: 0; border-top: 1px solid var(--arc-line-cool); }
  .arc-trust__grid > .arc-trust__item:nth-child(-n+2) { border-top: 0; }
  .arc-trust__grid > .arc-trust__item:nth-child(even) { border-left: 1px solid var(--arc-line-cool); }
  .arc-trust__grid > .arc-trust__item:last-child { grid-column: 1 / -1; border-left: 0; }
  .arc-trust__item .elementor-icon { width: 40px; height: 40px; }
}

/* ==========================================================================
   6. Intro
   ========================================================================== */
.arc-intro h2.elementor-heading-title { max-width: 18ch; }
.arc-intro .elementor-widget-text-editor { max-width: 58ch; color: var(--arc-muted); }
.arc-intro__media { position: relative; padding: 0 0 72px 0; }
.arc-intro__media::before {
  content: ""; position: absolute; right: -28px; top: -28px; width: 58%; height: 70%;
  border-radius: var(--arc-r-xl); background: var(--arc-sand-deep); opacity: .7;
}
.arc-intro__main { aspect-ratio: 4 / 3; width: 100%; border-radius: var(--arc-r-xl) !important; box-shadow: var(--arc-shadow-lg); }
.arc-intro__secondary {
  position: absolute !important; left: -40px; bottom: 0; width: 48% !important; aspect-ratio: 4 / 3; z-index: 2;
  border: 6px solid var(--arc-sand); box-shadow: var(--arc-shadow-md);
}
.arc-intro__secondary img { object-position: 50% 60%; }
.arc-intro__tag { position: absolute !important; right: 18px; bottom: 90px; z-index: 3; width: auto !important; }
.arc-intro__tag .elementor-heading-title {
  display: inline-flex; gap: 8px; align-items: center; background: #fff; border-radius: 999px; padding: 10px 16px;
  font-family: var(--arc-font-head); font-weight: 800; font-size: .82rem; line-height: 1.2; color: var(--arc-ink); box-shadow: var(--arc-shadow-md);
}
.arc-intro__tag .elementor-heading-title::before { content: "\2726"; color: var(--arc-aqua); }
@media (max-width: 880px) {
  .arc-intro__media { max-width: 680px; margin-inline: auto; width: 100%; padding-left: 30px; }
  .arc-intro__secondary { left: 0; }
}
@media (max-width: 767px) { .arc-checklist .elementor-icon-list-items { grid-template-columns: 1fr; } .arc-intro__media::before { right: -8px; top: -16px; } }
@media (max-width: 480px) { .arc-intro__media { padding-left: 16px; padding-bottom: 56px; } .arc-intro__secondary { width: 52% !important; } .arc-intro__tag { display: none; } }

/* ==========================================================================
   7. Service cards
   ========================================================================== */
.e-con.arc-card {
  background: #fff; border: 1px solid var(--arc-line); border-radius: var(--arc-r-lg); overflow: hidden; height: 100%;
  transition: transform .35s var(--arc-ease), box-shadow .35s var(--arc-ease), border-color .35s;
}
.e-con.arc-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -28px rgba(8, 126, 181, .45); border-color: var(--arc-blue); }
.arc-card__media { aspect-ratio: 4 / 3; width: 100%; border-radius: 0 !important; background: var(--arc-aqua-100) !important; }
.arc-card__media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(0deg, rgba(18,152,208,.35) 0%, transparent 45%); opacity: 0; transition: opacity .4s;
}
.arc-card:hover .arc-card__media::after { opacity: 1; }
.arc-card__num { position: absolute !important; left: 16px; top: 16px; z-index: 2; width: auto !important; }
.arc-card__num .elementor-heading-title {
  display: inline-block; font-family: var(--arc-font-head); font-weight: 800; font-size: .78rem; letter-spacing: .06em; line-height: 1.2;
  padding: 6px 11px; border-radius: 999px; background: var(--arc-blue-600); color: #fff;
}
.arc-card__body .elementor-widget-text-editor { color: var(--arc-muted); font-size: .95rem; flex: 1; }

/* ==========================================================================
   8. Our Work mosaic (strongest pool-blue moment)
   ========================================================================== */
.e-con.arc-work__band {
  position: relative;
  background: linear-gradient(180deg, transparent 0, transparent 150px, var(--arc-blue) 150px, var(--arc-blue-600) 100%);
}
.arc-work__band::before {
  content: ""; position: absolute; left: 0; right: 0; top: 150px; bottom: 0; pointer-events: none;
  background-image: var(--arc-ripples-white); background-size: 640px 420px; opacity: .14;
}
.arc-work__band > .e-con-inner { position: relative; z-index: 1; }
/* Editorial mosaic: grid areas are defined here (Elementor grid sets the base column count) */
.e-con.arc-work__grid {
  --e-con-grid-template-columns: 1.15fr 1fr 1fr !important;
  --e-con-grid-template-rows: 270px 270px 320px !important;
  grid-template-areas: "a b c" "a d c" "e e f" !important;
}
.arc-tile--a { grid-area: a; } .arc-tile--b { grid-area: b; } .arc-tile--c { grid-area: c; } .arc-tile--d { grid-area: d; } .arc-tile--e { grid-area: e; } .arc-work__cta { grid-area: f; }
a.e-con.arc-tile, .e-con.arc-tile {
  position: relative; display: block; border-radius: var(--arc-r-lg); overflow: hidden; background: var(--arc-aqua-100);
  box-shadow: 0 24px 48px -26px rgba(4, 50, 75, .6); padding: 0; min-height: 0;
}
.arc-tile .arc-cover { position: absolute; inset: 0; border-radius: 0; background: var(--arc-aqua-100); }
.arc-tile::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, transparent 50%, rgba(6,60,88,.66) 100%); pointer-events: none; }
.arc-tile::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(0deg, rgba(18,152,208,.45), transparent 60%); opacity: 0; transition: opacity .4s; }
.arc-tile:hover::before { opacity: 1; }
.e-con.arc-tile__cap { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 3; }
.arc-tile__cap .arc-chip .elementor-heading-title { background: rgba(255,255,255,.95); border: 0; color: var(--arc-blue-600); font-weight: 700; }
.arc-tile__cap h3.elementor-heading-title { color: #fff; font-size: 1.12rem; text-shadow: 0 1px 12px rgba(0,0,0,.25); }
a.e-con.arc-work__cta, .e-con.arc-work__cta {
  border-radius: var(--arc-r-lg); padding: 32px; background: #fff; box-shadow: 0 24px 48px -26px rgba(4,50,75,.6);
  justify-content: space-between; transition: transform .35s var(--arc-ease), box-shadow .35s var(--arc-ease); color: var(--arc-ink);
}
.arc-work__cta:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -24px rgba(4,50,75,.7); }
.arc-work__cta h3.elementor-heading-title { font-size: 1.5rem; }
.arc-work__cta .elementor-widget-text-editor { color: var(--arc-muted); font-size: .95rem; }
.arc-btn-fake .elementor-heading-title {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 20px; border-radius: 999px;
  background: var(--arc-blue-600); color: #fff; font-family: var(--arc-font-head); font-weight: 800; font-size: .88rem; letter-spacing: .01em;
}
.arc-btn-fake .elementor-heading-title::after { content: "\2192"; }
.arc-work__cta:hover .arc-btn-fake .elementor-heading-title { background: var(--arc-blue-700); }
@media (max-width: 1024px) {
  .e-con.arc-work__grid { --e-con-grid-template-columns: 1fr 1fr !important; --e-con-grid-template-rows: 300px 300px 300px 260px !important; grid-template-areas: "a b" "a d" "c e" "f f" !important; }
}
@media (max-width: 767px) {
  .e-con.arc-work__grid { --e-con-grid-template-columns: 1fr !important; --e-con-grid-template-rows: none !important; grid-auto-rows: 280px; grid-template-areas: "a" "b" "c" "d" "e" "f" !important; }
  .arc-work__cta { min-height: 240px; }
}

/* ==========================================================================
   9. Why artificial rock
   ========================================================================== */
.arc-why__media { position: relative; }
.arc-why__img { aspect-ratio: 4 / 5; width: 100%; border-radius: var(--arc-r-xl) !important; box-shadow: var(--arc-shadow-lg); }
.arc-why__img img { object-position: 42% 50%; }
.e-con.arc-why__stat { position: absolute; right: -24px; bottom: 36px; width: 230px; z-index: 2; background: #fff; border-radius: var(--arc-r-md); padding: 20px 22px; box-shadow: var(--arc-shadow-md); }
.arc-why__stat .arc-stat .elementor-heading-title { font-family: var(--arc-font-head); font-size: 2.6rem; line-height: 1; font-weight: 800; color: var(--arc-stone-600); letter-spacing: -.04em; }
.arc-why__stat .elementor-widget-text-editor { font-size: .84rem; line-height: 1.4; color: var(--arc-ink); font-weight: 600; }
.arc-why h2.elementor-heading-title { max-width: 19ch; }
.arc-why .arc-body { max-width: 56ch; color: var(--arc-muted); }
.arc-benefit { padding: 20px 0; border-top: 1px solid rgba(140, 122, 97, .25); }
.arc-benefit .elementor-icon-box-wrapper { display: flex; gap: 16px; text-align: left; align-items: flex-start; }
.arc-benefit .elementor-icon-box-icon { margin: 0 !important; }
.arc-benefit .elementor-icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: #fff; font-size: 22px; }
.arc-benefit .elementor-icon svg { width: 22px; height: 22px; fill: var(--arc-stone-600); }
.arc-benefit .elementor-icon-box-title { margin: 0 0 4px; font-size: 1rem; }
.arc-benefit .elementor-icon-box-description { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--arc-muted); }
@media (max-width: 880px) { .arc-why__media { max-width: 560px; } .arc-why__img { aspect-ratio: 4 / 3.4; } .e-con.arc-why__stat { right: 16px; } }
@media (max-width: 767px) { .e-con.arc-why__stat { position: relative; right: auto; bottom: auto; width: auto; margin: -40px 16px 0; } }

/* ==========================================================================
   10. Signature features
   ========================================================================== */
.e-con.arc-feature {
  border-radius: var(--arc-r-xl); overflow: hidden; background: var(--arc-aqua-50); border: 1px solid var(--arc-line-cool);
  min-height: 360px; transition: box-shadow .35s var(--arc-ease), border-color .35s;
}
.e-con.arc-feature:hover { border-color: var(--arc-blue); box-shadow: 0 30px 60px -30px rgba(8,126,181,.5); }
.arc-feature__media { width: 100%; height: 100%; min-height: 300px; border-radius: 0 !important; background: var(--arc-aqua-100) !important; }
.arc-feature__media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(18,152,208,.35), transparent 50%); opacity: 0; transition: opacity .4s; }
.arc-feature:hover .arc-feature__media::after { opacity: 1; }
.arc-kicker .elementor-heading-title { font-family: var(--arc-font-head); font-size: .76rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; line-height: 1.4; color: var(--arc-blue-600); }
.arc-feature h3.elementor-heading-title { font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); line-height: 1.15; letter-spacing: -.025em; }
.arc-feature .elementor-widget-text-editor { color: var(--arc-muted); }
.arc-feature--half .arc-feature__media { height: 300px; min-height: 0; }
@media (max-width: 1024px) { .arc-feature--wide .arc-feature__media { min-height: 340px; } }
@media (max-width: 767px) { .arc-feature--half .arc-feature__media { height: 240px; } }

/* ==========================================================================
   11. Craft behind the rock
   ========================================================================== */
.arc-craft::before {
  content: ""; position: absolute; inset: 0 45% 0 0; pointer-events: none;
  background-image: var(--arc-ripples); background-size: 720px 472px; opacity: .08;
}
.arc-craft > .e-con-inner { position: relative; z-index: 1; }
.arc-craft h2.elementor-heading-title { max-width: 17ch; }
.arc-craft h2 span { color: var(--arc-blue-600); }
.arc-craft__lead { max-width: 42ch; color: var(--arc-muted); font-size: 1.02rem; }
.e-con.arc-craft__stage { position: relative; }
/* Pool-blue panel bleeding to the right viewport edge */
.e-con.arc-craft__stage::before {
  content: ""; position: absolute; top: 0; bottom: 0; z-index: 0;
  right: calc((100vw - 100%) / -2); width: calc(42% + (100vw - 100%) / 2);
  border-radius: var(--arc-r-xl) 0 0 var(--arc-r-xl);
  background: var(--arc-ripples-white) 0 0 / 640px 420px, linear-gradient(180deg, var(--arc-blue) 0%, var(--arc-blue-600) 78%);
  background-blend-mode: soft-light, normal;
}
.e-con.arc-craft__main { position: relative; z-index: 1; aspect-ratio: 3 / 2; border-radius: var(--arc-r-xl); overflow: hidden; background: var(--arc-aqua-100); box-shadow: 0 40px 80px -36px rgba(6,70,100,.55); }
.arc-craft__main .arc-cover { position: absolute; inset: 0; border-radius: 0; }
.arc-craft__main .arc-cover img { object-position: 50% 40%; }
.e-con.arc-craft__cap {
  position: absolute; left: 20px; bottom: 20px; right: 20px; max-width: 460px; z-index: 2;
  padding: 12px 16px 12px 12px; border-radius: 16px; background: rgba(255,255,255,.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.arc-craft__tag .elementor-heading-title { display: inline-block; white-space: nowrap; padding: 7px 12px; border-radius: 999px; font-family: var(--arc-font-head); font-weight: 800; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; background: var(--arc-blue-600); color: #fff; line-height: 1.2; }
.arc-craft__cap .elementor-widget-text-editor { font-size: .86rem; line-height: 1.4; color: var(--arc-ink); }
.e-con.arc-craft__detail { position: relative; z-index: 2; margin-left: -110px; color: #fff; }
.arc-craft__detail-img { aspect-ratio: 4 / 5; width: 100%; border-radius: var(--arc-r-lg) !important; border: 6px solid #fff; box-shadow: 0 30px 60px -24px rgba(4,40,60,.6); background: var(--arc-aqua-100) !important; }
.arc-craft__detail-img img { object-position: 50% 40%; }
.arc-craft__detail .elementor-widget-text-editor { font-size: .9rem; line-height: 1.55; color: #fff; margin-bottom: 8px; }
.arc-craft__detail .elementor-widget-text-editor strong { display: block; margin-bottom: 6px; font-family: var(--arc-font-head); font-size: .76rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.arc-step { position: relative; padding-top: 28px; border-top: 1px solid var(--arc-line-cool); }
.arc-step::before { content: ""; position: absolute; top: -2px; left: 0; width: 64px; height: 3px; border-radius: 3px; background: var(--arc-blue); }
.arc-step__num .elementor-heading-title { font-family: var(--arc-font-head); font-weight: 800; font-size: clamp(2.6rem, 2rem + 1.6vw, 3.6rem); line-height: .9; letter-spacing: -.05em; color: var(--arc-blue-200); }
.arc-step__icon .elementor-icon { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--arc-aqua-100); font-size: 22px; }
.arc-step__icon .elementor-icon svg { width: 22px; height: 22px; fill: var(--arc-blue-600); }
.arc-step h3.elementor-heading-title { font-size: 1.15rem; }
.arc-step .elementor-widget-text-editor { font-size: .95rem; color: var(--arc-muted); max-width: 38ch; }
@media (max-width: 1024px) {
  .e-con.arc-craft__stage::before { width: calc(52% + (100vw - 100%) / 2); }
  .e-con.arc-craft__detail { margin-left: -70px; }
}
@media (max-width: 767px) {
  .e-con.arc-craft__stage::before { top: auto; bottom: 0; height: 58%; left: calc((100vw - 100%) / -2); right: calc((100vw - 100%) / -2); width: auto; border-radius: 0; }
  .e-con.arc-craft__main { aspect-ratio: 4 / 3.4; }
  .e-con.arc-craft__cap { left: 12px; right: auto; top: 12px; bottom: auto; padding: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .arc-craft__cap .elementor-widget-text-editor { display: none; }
  .e-con.arc-craft__detail { margin: -44px 0 0; padding-left: 12px; }
}

/* ==========================================================================
   12. Residential + commercial
   ========================================================================== */
.e-con.arc-market { background: #fff; border-radius: var(--arc-r-xl); overflow: hidden; border: 1px solid var(--arc-line); height: 100%; }
.arc-market__media { aspect-ratio: 16 / 10; width: 100%; border-radius: 0 !important; }
.e-con.arc-market__mediawrap { position: relative; }
.arc-market__label { position: absolute !important; left: 20px; top: 20px; z-index: 2; width: auto !important; }
.arc-market__label .elementor-heading-title { display: inline-block; padding: 8px 14px; border-radius: 999px; background: #fff; color: var(--arc-blue-600); font-family: var(--arc-font-head); font-weight: 800; font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; line-height: 1.2; }
.arc-market h3.elementor-heading-title { font-size: clamp(1.4rem, 1.15rem + .8vw, 1.85rem); letter-spacing: -.025em; }
.arc-market .elementor-widget-text-editor { color: var(--arc-muted); }

/* ==========================================================================
   13. Process
   ========================================================================== */
.e-con.arc-process__list { position: relative; }
.e-con.arc-process__list::before {
  content: ""; position: absolute; left: 28px; right: 28px; top: 28px; height: 2px; pointer-events: none;
  background: repeating-linear-gradient(90deg, var(--arc-aqua) 0 10px, transparent 10px 18px); opacity: .8;
}
.e-con.arc-pstep { position: relative; }
.arc-pnum { width: auto !important; }
.arc-pnum .elementor-heading-title {
  position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--arc-font-head); font-weight: 800; font-size: 1rem; line-height: 1; color: var(--arc-blue-600);
  background: #fff; border: 2px solid var(--arc-aqua); box-shadow: 0 0 0 8px #fff; transition: background-color .3s, color .3s, border-color .3s;
}
.arc-pstep:hover .arc-pnum .elementor-heading-title { background: var(--arc-blue-600); border-color: var(--arc-blue-600); color: #fff; }
.arc-pstep h3.elementor-heading-title { font-size: 1.1rem; }
.arc-pstep .elementor-widget-text-editor { font-size: .92rem; color: var(--arc-muted); }
.e-con.arc-process__foot { border-radius: var(--arc-r-lg); background: var(--arc-aqua-50); border: 1px solid var(--arc-line-cool); }
.arc-process__foot .elementor-widget-text-editor { font-weight: 600; max-width: 62ch; }
@media (max-width: 880px) {
  .e-con.arc-process__list::before { left: 27px; right: auto; top: 28px; bottom: 28px; width: 2px; height: auto; background: repeating-linear-gradient(180deg, var(--arc-aqua) 0 10px, transparent 10px 18px); }
  .e-con.arc-pstep { display: grid !important; grid-template-columns: 56px 1fr; column-gap: 24px; row-gap: 6px; padding-bottom: 32px; }
  .e-con.arc-pstep > .arc-pnum { grid-row: span 2; }
  .e-con.arc-pstep:last-child { padding-bottom: 0; }
}
@media (max-width: 480px) { .arc-process__foot .elementor-widget-button, .arc-process__foot .elementor-button { width: 100%; } }

/* ==========================================================================
   14. Testimonials
   ========================================================================== */
.e-con.arc-review {
  background: #fff; border-radius: var(--arc-r-lg); height: 100%;
  box-shadow: 0 18px 40px -28px rgba(8,126,181,.45); border: 1px solid var(--arc-line-cool); border-top: 3px solid var(--arc-blue);
}
.arc-review__mark .elementor-icon { font-size: 34px; color: var(--arc-blue); }
.arc-review__mark .elementor-icon svg { width: 34px; height: 34px; fill: var(--arc-blue); }
.arc-review .arc-chip .elementor-heading-title { background: var(--arc-aqua-50); border-color: var(--arc-line-cool); color: var(--arc-blue-600); font-weight: 700; }
.arc-stars { color: var(--arc-blue); letter-spacing: 2px; font-size: 1.05rem; line-height: 1; }
.arc-review blockquote { margin: 0; padding: 0; border: 0; font-size: 1rem; line-height: 1.7; color: var(--arc-ink); font-style: normal; }
.arc-review blockquote p { margin: 0; }
.arc-review__quote { flex: 1; }
.e-con.arc-review__by { border-top: 1px solid var(--arc-aqua-100); }
.arc-avatar { width: auto !important; }
.arc-avatar .elementor-heading-title { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-family: var(--arc-font-head); font-weight: 800; font-size: 1rem; color: #fff; background: linear-gradient(135deg, var(--arc-aqua), var(--arc-blue-600)); }
.arc-review__name p { margin: 0; line-height: 1.3; }
.arc-review__name strong { display: block; font-family: var(--arc-font-head); }
.arc-review__name span { display: block; font-size: .82rem; color: var(--arc-muted); }

/* ==========================================================================
   15. Story
   ========================================================================== */
.arc-story__media { position: relative; padding: 0 64px 90px 0; }
.arc-story__main { aspect-ratio: 16 / 11; width: 100%; border-radius: var(--arc-r-xl) !important; box-shadow: var(--arc-shadow-md); }
.arc-story__second { position: absolute !important; right: 0; bottom: 0; width: 56% !important; aspect-ratio: 16 / 10; z-index: 2; border: 6px solid #fff; box-shadow: var(--arc-shadow-lg); }
.arc-story__quote { position: absolute !important; left: 24px; bottom: 16px; max-width: 34%; width: auto !important; }
.arc-story__quote .elementor-heading-title { font-family: var(--arc-font-head); font-weight: 800; font-size: 1.15rem; line-height: 1.25; color: var(--arc-stone-600); }
.arc-story h2.elementor-heading-title { max-width: 20ch; }
.arc-story .arc-body { max-width: 58ch; color: var(--arc-muted); }
.e-con.arc-facts { gap: 1px !important; background: var(--arc-line); border: 1px solid var(--arc-line); border-radius: var(--arc-r-md); overflow: hidden; }
.arc-fact { background: #fff; padding: 20px 22px; }
.arc-fact .elementor-icon-box-wrapper { display: flex; gap: 14px; align-items: flex-start; text-align: left; }
.arc-fact .elementor-icon-box-icon { margin: 2px 0 0 !important; }
.arc-fact .elementor-icon { font-size: 22px; }
.arc-fact .elementor-icon svg { width: 22px; height: 22px; fill: var(--arc-blue); }
.arc-fact .elementor-icon-box-title { margin: 0; font-family: var(--arc-font-head); font-weight: 800; font-size: 1rem; line-height: 1.25; color: var(--arc-ink); }
.arc-fact .elementor-icon-box-description { margin: 2px 0 0; font-size: .84rem; color: var(--arc-muted); line-height: 1.4; }
@media (max-width: 880px) { .arc-story__media { max-width: 680px; } }
@media (max-width: 767px) { .arc-story__media { padding: 0 28px 70px 0; } .arc-story__quote { display: none; } }

/* ==========================================================================
   16. Areas served
   ========================================================================== */
.arc-areas::before { content: ""; position: absolute; inset: 0 0 55% 0; pointer-events: none; background-image: var(--arc-ripples); background-size: 640px 420px; opacity: .07; }
.arc-areas > .e-con-inner { position: relative; z-index: 1; }
.arc-areas h2.elementor-heading-title { max-width: 20ch; }
.e-con.arc-areas__visual {
  border-radius: 22px; background: linear-gradient(175deg, #FFFFFF 0%, #FFFFFF 60%, var(--arc-aqua-50) 100%);
  border: 1px solid var(--arc-line-cool); box-shadow: 0 30px 60px -38px rgba(8,126,181,.5);
}
.arc-areas__vtitle .elementor-heading-title { font-family: var(--arc-font-head); font-weight: 800; font-size: 1.12rem; color: var(--arc-ink); }
.arc-areas__vsub .elementor-heading-title { font-family: var(--arc-font-head); font-weight: 800; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--arc-blue-600); }
.arc-areas__map { flex: 1; width: 100%; }
.arc-map-frame { position: relative; height: 100%; min-height: 440px; border-radius: 16px; overflow: hidden; background: #DCF0F8; }
.arc-map-frame svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.arc-legend { display: none; }
.arc-legend ul { list-style: none; margin: 0; padding: 0; }
.arc-legend li { display: grid; grid-template-columns: 14px 1fr; gap: 2px 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--arc-aqua-100); }
.arc-legend li::before { content: ""; width: 14px; height: 14px; border-radius: 50%; background: var(--c); grid-row: span 2; }
.arc-legend strong { font-family: var(--arc-font-head); color: var(--arc-ink); }
.arc-legend span { font-size: .8rem; color: var(--arc-muted); }
.e-con.arc-areas__proof { border-top: 1px solid var(--arc-line-cool); }
.arc-thumbs img { width: 48px !important; height: 48px !important; border-radius: 50%; object-fit: cover; border: 3px solid #fff; box-shadow: 0 6px 14px -6px rgba(8,80,115,.45); }
.e-con.arc-thumbs > .elementor-widget-image + .elementor-widget-image { margin-left: -14px; }
.arc-areas__proof .elementor-widget-text-editor p { margin: 0; line-height: 1.35; }
.arc-areas__proof strong { display: block; font-family: var(--arc-font-head); font-size: .92rem; color: var(--arc-ink); }
.arc-areas__proof span { display: block; font-size: .8rem; color: var(--arc-muted); }

.e-con.arc-county {
  --c: var(--arc-blue);
  position: relative; overflow: hidden; background: #fff; border: 1px solid var(--arc-line-cool); border-radius: 20px;
  box-shadow: 0 16px 36px -30px rgba(8,126,181,.5); transition: border-color .3s, box-shadow .3s var(--arc-ease);
}
.e-con.arc-county::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--c); }
.e-con.arc-county:hover { border-color: var(--c); box-shadow: 0 24px 48px -30px rgba(8,126,181,.55); }
.arc-county--sd { --c: #1298D0 !important; } .arc-county--oc { --c: #45C4CB !important; } .arc-county--rv { --c: #8FD3E8 !important; }
.e-con.arc-county__head { border-bottom: 1px solid var(--arc-aqua-100); }
.arc-county__pin .elementor-icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--c); font-size: 20px; }
.arc-county__pin .elementor-icon svg { width: 20px; height: 20px; fill: #fff; }
.arc-county--rv .arc-county__pin .elementor-icon svg { fill: var(--arc-slate); }
.arc-county h3.elementor-heading-title { font-size: 1.25rem; line-height: 1.2; }
.arc-county__meta { font-size: .8rem; color: var(--arc-muted); }
.arc-county__more .elementor-button { font-size: .84rem; gap: 6px; }
.arc-cities .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px 20px; }
.arc-cities .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.arc-cities .elementor-icon-list-item a { display: inline-flex !important; align-items: flex-start; gap: 9px; padding: 5px 0; }
.arc-cities .elementor-icon-list-item a::before { content: ""; flex: none; width: 5px; height: 5px; margin-top: .5em; border-radius: 50%; background: var(--c); }
.arc-cities .elementor-icon-list-text { font-size: .92rem !important; line-height: 1.3; color: var(--arc-ink) !important; padding: 0 !important; transition: color .2s; }
.arc-cities .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--arc-blue-600) !important; text-decoration: underline; text-underline-offset: 3px; }
.arc-cities .elementor-icon-list-icon { display: none !important; }
.e-con.arc-areas__cta { border-radius: 22px; background: linear-gradient(105deg, var(--arc-aqua-100) 0%, #FFFFFF 62%); border: 1px solid var(--arc-line-cool); }
.arc-areas__cta-ico .elementor-icon { width: 54px; height: 54px; box-shadow: 0 0 0 6px rgba(255,255,255,.8); }
.arc-areas__cta-ico .elementor-icon svg { width: 24px; height: 24px; }
.arc-areas__cta h3.elementor-heading-title { font-size: 1.25rem; }
@media (max-width: 1024px) {
  .arc-legend { display: block; }
  .e-con.arc-areas__visual { display: grid !important; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); grid-template-areas: "map head" "map legend" "map proof" !important; align-items: start; column-gap: 32px; }
  .arc-areas__vhead { grid-area: head; } .arc-legend { grid-area: legend; } .arc-areas__proof { grid-area: proof; } .arc-areas__map { grid-area: map; }
  .arc-map-frame { min-height: 0; aspect-ratio: 420 / 560; height: auto; }
}
@media (max-width: 880px) { .arc-cities .elementor-icon-list-items { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .e-con.arc-areas__visual { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "map" "proof" !important; }
  .arc-legend { display: none; }
  .arc-cities .elementor-icon-list-items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 14px; }
  .e-con.arc-county__head { flex-wrap: wrap !important; }
  .arc-county__more { order: 3; width: 100% !important; padding-left: 54px; }
  .arc-areas__cta-actions .elementor-widget-button, .arc-areas__cta-actions .elementor-button { width: 100%; }
}

/* ==========================================================================
   17. FAQ (Elementor Nested Accordion)
   ========================================================================== */
.arc-faq { max-width: 920px; margin-inline: auto; width: 100%; }
.arc-faq .e-n-accordion { border-top: 2px solid var(--arc-blue); gap: 0 !important; }
.arc-faq .e-n-accordion-item { border-bottom: 1px solid var(--arc-line-cool); }
.arc-faq .e-n-accordion-item-title { padding: 26px 4px !important; border: 0 !important; background: none !important; gap: 24px; justify-content: space-between; cursor: pointer; }
.arc-faq .e-n-accordion-item-title-text { font-family: var(--arc-font-head); font-weight: 700; font-size: clamp(1.02rem, .98rem + .25vw, 1.15rem); line-height: 1.4; color: var(--arc-ink); margin: 0; letter-spacing: -.01em; transition: color .2s; }
.arc-faq .e-n-accordion-item[open] .e-n-accordion-item-title-text, .arc-faq .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--arc-blue-600); }
.arc-faq .e-n-accordion-item-title-icon { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid !important; place-items: center; border: 1.5px solid var(--arc-line-cool); background: var(--arc-aqua-50); transition: background-color .25s, border-color .25s; }
.arc-faq .e-n-accordion-item-title-icon svg { width: 14px; height: 14px; fill: var(--arc-blue-600); }
.arc-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--arc-blue-600); border-color: var(--arc-blue-600); }
.arc-faq .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg { fill: #fff; }
.arc-faq .e-n-accordion-item > .e-con { padding: 0 64px 28px 4px !important; border: 0 !important; background: none !important; }
.arc-faq .e-n-accordion-item .elementor-widget-text-editor { color: var(--arc-muted); max-width: 78ch; }
.arc-faq .elementor-widget-text-editor a { color: var(--arc-blue-600); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) { .arc-faq .e-n-accordion-item > .e-con { padding-right: 4px !important; } }

/* ==========================================================================
   18. Final CTA + quote form
   ========================================================================== */
.arc-cta {
  overflow: hidden; color: #fff;
  background: radial-gradient(60% 90% at 100% 0%, rgba(69,196,203,.5), transparent 60%), linear-gradient(118deg, var(--arc-blue-600) 0%, var(--arc-blue) 58%, #2BB0CF 100%);
}
.arc-cta::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .18; background-image: var(--arc-ripples-white); background-size: 640px 420px; }
.arc-cta > .e-con-inner { position: relative; z-index: 1; }
.arc-cta h2.elementor-heading-title { color: #fff; font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.6rem); max-width: 14ch; }
.arc-cta .arc-lead { color: rgba(255,255,255,.94); max-width: 46ch; }
.arc-cta__meta .elementor-icon-list-text, .arc-cta__meta a { color: rgba(255,255,255,.94) !important; font-size: .92rem; }
.arc-cta__meta .elementor-icon-list-icon svg { fill: #fff !important; width: 20px !important; height: 20px !important; }
.arc-cta__meta a:hover .elementor-icon-list-text { text-decoration: underline; text-underline-offset: 3px; }
.e-con.arc-quote-form { background: #fff; color: var(--arc-ink); border-radius: var(--arc-r-xl); box-shadow: 0 40px 80px -30px rgba(10,50,70,.55); }
.arc-quote-form h3.elementor-heading-title { font-size: 1.5rem; }
.arc-quote-form .arc-form-intro { font-size: .9rem; color: var(--arc-muted); }
.arc-form-note { font-size: .78rem; color: var(--arc-muted); text-align: center; }
.arc-form-note a { color: var(--arc-ink); }
@media (max-width: 480px) { .arc-cta__actions .elementor-widget-button, .arc-cta__actions .elementor-button { width: 100%; } }

/* Gravity Forms (form #1) styled to the design system */
.arc-gf .gform_wrapper.gravity-theme, .arc-gf .gform_wrapper { margin: 0; }
.arc-gf .gform_wrapper .gform_fields { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px !important; }
.arc-gf .gform_wrapper .gfield { grid-column: 1 / -1; margin: 0 !important; padding: 0 !important; }
.arc-gf .gform_wrapper .gfield--type-name, .arc-gf .gform_wrapper .gfield--type-phone { grid-column: span 1; }
.arc-gf .gform_wrapper .gfield_label, .arc-gf .gform_wrapper .gform-field-label { font-size: .8rem !important; font-weight: 700 !important; color: var(--arc-ink) !important; margin-bottom: 6px !important; }
.arc-gf .gform_wrapper .gfield_required { color: var(--arc-blue-600) !important; }
.arc-gf .gform_wrapper input[type="text"], .arc-gf .gform_wrapper input[type="email"], .arc-gf .gform_wrapper input[type="tel"], .arc-gf .gform_wrapper textarea, .arc-gf .gform_wrapper select {
  width: 100% !important; font: inherit !important; font-size: 1rem !important; color: var(--arc-ink) !important;
  padding: 13px 14px !important; min-height: 50px !important; border-radius: 12px !important;
  border: 1.5px solid var(--arc-line-cool) !important; background: var(--arc-mist) !important; box-shadow: none !important;
  transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.arc-gf .gform_wrapper textarea { min-height: 104px !important; height: 104px; resize: vertical; }
.arc-gf .gform_wrapper input:focus, .arc-gf .gform_wrapper textarea:focus, .arc-gf .gform_wrapper select:focus { outline: none !important; border-color: var(--arc-blue) !important; background-color: #fff !important; box-shadow: 0 0 0 4px rgba(22,143,196,.14) !important; }
.arc-gf .gform_wrapper .gform_footer { margin: 8px 0 0 !important; padding: 0 !important; }
.arc-gf .gform_wrapper .gform_footer input[type="submit"], .arc-gf .gform_wrapper .gform_footer button {
  width: 100% !important; min-height: 52px !important; padding: 0 26px !important; border-radius: 999px !important; border: 1.5px solid var(--arc-blue-600) !important;
  background: var(--arc-blue-600) !important; color: #fff !important; font-family: var(--arc-font-head) !important; font-weight: 800 !important; font-size: .95rem !important; cursor: pointer;
  transition: transform .25s var(--arc-ease), box-shadow .25s var(--arc-ease), background-color .2s;
}
.arc-gf .gform_wrapper .gform_footer input[type="submit"]:hover, .arc-gf .gform_wrapper .gform_footer button:hover { background: var(--arc-blue-700) !important; transform: translateY(-2px); box-shadow: 0 14px 28px -12px rgba(8,126,181,.75) !important; }
.arc-gf .gform_wrapper .gfield_validation_message, .arc-gf .gform_wrapper .validation_message { font-size: .8rem; color: #B42318; background: none; border: 0; padding: 4px 0 0; }
.arc-gf .gform_wrapper .gform_validation_errors { border-radius: 12px; }
.arc-gf .gform_confirmation_message { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: var(--arc-aqua-50); color: var(--arc-ink); font-size: .9rem; font-weight: 600; }
@media (max-width: 767px) { .arc-gf .gform_wrapper .gfield--type-name, .arc-gf .gform_wrapper .gfield--type-phone { grid-column: 1 / -1; } }

/* ==========================================================================
   19. Footer (UAE Footer template)
   ========================================================================== */
.arc-footer { position: relative; color: rgba(255,255,255,.8); font-size: .92rem; background: linear-gradient(180deg, #0B4A68 0%, var(--arc-deep) 55%, #08344B 100%); }
.arc-footer::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: var(--arc-ripples-white); background-size: 640px 420px; opacity: .05; }
/* No z-index here: it would trap the fixed Call / Free Quote bar (inside the footer) below page content.
   The ripple ::before still sits underneath because it comes first in source order. */
.arc-footer > .e-con-inner { position: relative; }
.arc-footer .elementor-widget-text-editor { color: rgba(255,255,255,.8); }
.arc-logo-plate { width: auto !important; }
.arc-logo-plate img { width: 196px !important; background: #fff; padding: 12px 16px; border-radius: 14px; box-sizing: content-box; }
.arc-footer__title .elementor-heading-title { font-family: var(--arc-font-head); font-size: .8rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #fff; }
.arc-footer__links .elementor-icon-list-item:not(:last-child) { padding-bottom: 10px !important; }
.arc-footer__links .elementor-icon-list-text { color: rgba(255,255,255,.8) !important; transition: color .2s; }
.arc-footer__links a:hover .elementor-icon-list-text { color: var(--arc-aqua) !important; }
.arc-footer__contact .elementor-icon-list-text { color: #fff !important; }
.arc-footer__contact .elementor-icon-list-icon svg { fill: var(--arc-aqua) !important; width: 18px !important; height: 18px !important; }
.arc-footer__contact a:hover .elementor-icon-list-text { color: var(--arc-aqua) !important; }
.e-con.arc-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); font-size: .82rem; color: rgba(255,255,255,.65); }
.arc-footer__bottom .elementor-widget-text-editor, .arc-footer__bottom .hfe-copyright-wrapper, .arc-footer__bottom .hfe-copyright-wrapper span { color: rgba(255,255,255,.65); font-size: .82rem; }
.arc-footer__legal .elementor-icon-list-text { color: rgba(255,255,255,.65) !important; font-size: .82rem !important; }
.arc-footer__legal a:hover .elementor-icon-list-text { color: #fff !important; }

/* Call / Free Quote bar (.arc-mobile-bar): site-wide at every screen size, see section 4e */

/* ==========================================================================
   20. Layout helpers for Elementor flex rows
   ========================================================================== */
.elementor-button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; }
.e-con.arc-card__mediawrap, .e-con.arc-market__mediawrap { position: relative; }
.e-con.arc-card__body, .e-con.arc-market__body, .e-con.arc-feature__body { flex: 1 1 auto; }
.arc-card__body .elementor-widget-text-editor { flex: 1 1 auto; }
.arc-county__head > .elementor-widget, .arc-header-actions > *, .arc-header-phone > *, .arc-hero__contact > *,
.arc-hero__phone > .elementor-widget-icon, .arc-review__by > .arc-avatar, .arc-areas__proof > .arc-thumbs { flex-shrink: 0; }
.e-con.arc-county__title { flex: 1 1 auto; min-width: 0; width: auto; }
.arc-avatar p { margin: 0; }
.arc-avatar-i { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-family: var(--arc-font-head); font-weight: 800; font-size: 1rem; color: #fff; background: linear-gradient(135deg, var(--arc-aqua), var(--arc-blue-600)); }
.arc-stars { margin: 0; }
.arc-header .arc-brand { flex-shrink: 0; }
.arc-header .arc-nav { flex: 1 1 auto; min-width: 0; }
@media (max-width: 880px) { .e-con.arc-reviews { max-width: 720px; margin-inline: auto; width: 100%; } }
.arc-hero__badge .arc-stat, .arc-why__stat .arc-stat { flex-shrink: 0; }
.arc-hero__badge .elementor-widget-text-editor { min-width: 0; }

/* Elementor gives every container ::before a full-size overlay box (left/width/height).
   Reset it so our decorative pseudo-elements follow their own insets. */
.e-con.arc-hero::before, .e-con.arc-textured::before, .e-con.arc-rippled::before, .e-con.arc-craft::before,
.e-con.arc-areas::before, .e-con.arc-cta::before, .e-con.arc-footer::before, .e-con.arc-work__band::before,
.e-con.arc-process__list::before, .e-con.arc-county::before, .e-con.arc-craft__stage::before { width: auto; height: auto; border-width: 0; }
.e-con.arc-county::before { width: 5px; right: auto; }
.e-con.arc-craft__stage::before { left: auto; width: calc(42% + (100vw - 100%) / 2); }
@media (max-width: 1024px) { .e-con.arc-craft__stage::before { width: calc(52% + (100vw - 100%) / 2); } }
@media (max-width: 767px) {
  .e-con.arc-craft__stage::before { left: calc((100vw - 100%) / -2); width: auto; height: 58%; }
  .e-con.arc-process__list::before { width: 2px; }
}
@media (max-width: 880px) { .e-con.arc-process__list::before { width: 2px; right: auto; } }
/* Craft: caption tag never shrinks; detail column widens by its overlap */
.arc-craft__tag { flex-shrink: 0; width: auto !important; }
.arc-craft__cap .elementor-widget-text-editor { min-width: 0; flex: 1 1 auto; }
.e-con.arc-craft__detail { width: calc(100% + 110px); max-width: none; }
@media (max-width: 1024px) { .e-con.arc-craft__detail { width: calc(100% + 70px); } }
@media (max-width: 767px) { .e-con.arc-craft__detail { width: 100%; } }
.e-con > .arc-story__quote { max-width: 34%; }
.e-con > .arc-intro__tag, .e-con > .arc-card__num, .e-con > .arc-market__label { max-width: none; }

/* Gravity Forms (legacy markup): visible labels, design-system layout */
.arc-gf .gform_wrapper .hidden_label > .gfield_label, .arc-gf .gform_wrapper .hidden_label > legend.gfield_label {
  position: static !important; width: auto !important; height: auto !important; clip: auto !important; clip-path: none !important; overflow: visible !important; display: block !important;
}
.arc-gf .gform_wrapper ul.gform_fields, .arc-gf .gform_wrapper .gform_fields { list-style: none; padding: 0 !important; margin: 0 !important; }
.arc-gf .gform_wrapper .gfield--type-name { grid-column: 1 / -1 !important; }
.arc-gf .gform_wrapper .gfield--type-phone, .arc-gf .gform_wrapper .gfield--type-email { grid-column: span 1 !important; }
.arc-gf .gform_wrapper .ginput_complex { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0 !important; width: 100% !important; }
.arc-gf .gform_wrapper .ginput_complex > span { width: 100% !important; padding: 0 !important; margin: 0 !important; float: none !important; }
.arc-gf .gform_wrapper .ginput_container { margin-top: 0 !important; }
.arc-gf .gform_wrapper .gfield_label { display: block; }
@media (max-width: 767px) {
  .arc-gf .gform_wrapper .gfield--type-phone, .arc-gf .gform_wrapper .gfield--type-email { grid-column: 1 / -1 !important; }
}
@media (max-width: 380px) { .arc-gf .gform_wrapper .ginput_complex { grid-template-columns: 1fr; } }
/* No horizontal scroll: clip full-bleed decoration at section edges (clip keeps sticky header working) */
html { overflow-x: clip; }
.e-con.arc-craft, .e-con.arc-hero, .e-con.arc-work, .e-con.arc-cta, .e-con.arc-areas { overflow-x: clip; }
/* Tablet/mobile header: logo | phone | menu toggle */
@media (max-width: 1024px) {
  .arc-header .arc-nav { order: 3; flex: 0 0 auto; position: static; }
  .arc-header .arc-header-actions { order: 2; margin-left: auto; }
  .arc-nav nav.hfe-dropdown { position: absolute !important; top: 100% !important; left: 0 !important; right: 0 !important; width: auto !important; max-height: calc(100dvh - 70px); overflow-y: auto; z-index: 99; }
}
@media (max-width: 1024px) {
  .arc-nav nav.hfe-dropdown { overflow-x: hidden; margin-top: 0 !important; }
  .arc-nav nav.hfe-dropdown a.hfe-menu-item, .arc-nav nav.hfe-dropdown a.hfe-sub-menu-item {
    padding: 16px 32px !important; font-family: var(--arc-font-head); font-weight: 700; font-size: 1.02rem !important; color: var(--arc-ink) !important;
  }
  .arc-nav nav.hfe-dropdown .sub-menu a.hfe-sub-menu-item { padding-left: 48px !important; font-weight: 600; font-size: .95rem !important; }
  .arc-nav nav.hfe-dropdown li.current-menu-item > a { color: var(--arc-blue-600) !important; }
}
@media (max-width: 767px) {
  .arc-nav nav.hfe-dropdown a.hfe-menu-item, .arc-nav nav.hfe-dropdown a.hfe-sub-menu-item { padding: 16px 20px !important; }
  .arc-nav nav.hfe-dropdown .sub-menu a.hfe-sub-menu-item { padding-left: 36px !important; }
}
/* Button icons follow the button text color (outline/white variants included) */
.elementor-button .elementor-button-icon svg { fill: currentColor; }
/* Elementor makes every flex container 100% wide and wrapping on phones; keep inline rows inline */
@media (max-width: 767px) {
  .arc-header > .e-con-inner, .e-con.arc-header-actions, .e-con.arc-header-phone, .e-con.arc-hero__phone, .e-con.arc-review__by,
  .e-con.arc-areas__proof, .e-con.arc-thumbs, .e-con.arc-hero__badge, .e-con.arc-mobile-bar, .e-con.arc-craft__cap, .arc-step > .e-con {
    --flex-wrap: nowrap; flex-wrap: nowrap;
  }
  .e-con.arc-header-actions, .e-con.arc-header-phone, .e-con.arc-hero__phone, .e-con.arc-thumbs { --width: auto; width: auto; }
  .e-con.arc-areas__proof > .elementor-widget-text-editor { min-width: 0; }
}
/* Touch targets: standalone text links get a 44px hit area */
.arc-link .elementor-button { min-height: 44px; }
.arc-cities .elementor-icon-list-item a { min-height: 32px; align-items: center; }

/* ==========================================================================
   21. INNER PAGES - shared components (same tokens as the homepage)
   ========================================================================== */
/* Breadcrumbs (Rank Math) */
.arc-crumbs .rank-math-breadcrumb p { margin: 0; font-size: .82rem; font-weight: 600; color: var(--arc-muted); }
.arc-crumbs .rank-math-breadcrumb a { color: var(--arc-blue-600); text-decoration: none; }
.arc-crumbs .rank-math-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
.arc-crumbs .rank-math-breadcrumb .separator { margin: 0 8px; color: var(--arc-blue-200); }

/* Page hero (lighter, shorter variant of the homepage hero) */
.arc-phero h1.elementor-heading-title { font-size: clamp(2.15rem, 1.45rem + 2.6vw, 3.5rem); line-height: 1.05; letter-spacing: -.035em; max-width: 18ch; }
.arc-phero .arc-lead { max-width: 56ch; }
.arc-phero__media { position: relative; padding: 0 0 0 40px; }
.arc-phero__media::before {
  content: ""; position: absolute; top: -16px; right: -16px; bottom: 24px; left: 60px; pointer-events: none;
  border: 2px solid var(--arc-blue); border-radius: 999px 999px var(--arc-r-xl) var(--arc-r-xl); opacity: .3;
}
.arc-phero__img { aspect-ratio: 4 / 4.4; width: 100%; max-height: 560px; border-radius: 999px 999px var(--arc-r-xl) var(--arc-r-xl) !important; box-shadow: 0 30px 60px -24px rgba(8,126,181,.45); background: var(--arc-aqua-100) !important; }
.arc-phero__img::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(18,152,208,.25) 0%, rgba(18,152,208,0) 40%); }
.e-con.arc-phero__badge {
  position: absolute; left: 0; bottom: 40px; z-index: 3; max-width: 240px; padding: 14px 18px;
  background: rgba(255,255,255,.95); border-radius: var(--arc-r-md); box-shadow: var(--arc-shadow-md); border: 1px solid var(--arc-line-cool); border-left: 4px solid var(--arc-blue);
}
.arc-phero__badge .arc-stat .elementor-heading-title { font-family: var(--arc-font-head); font-size: 2rem; line-height: 1; font-weight: 800; letter-spacing: -.04em; color: var(--arc-blue); }
.arc-phero__badge .elementor-widget-text-editor { font-size: .78rem; line-height: 1.35; font-weight: 600; color: var(--arc-ink); }
.arc-phero__badge .arc-stat { flex-shrink: 0; }
.arc-mini-trust .elementor-icon-list-items { gap: 8px 22px; }
.arc-mini-trust .elementor-icon-list-text { font-size: .86rem !important; font-weight: 600; color: var(--arc-ink) !important; }
.arc-mini-trust .elementor-icon-list-icon svg { fill: var(--arc-blue) !important; width: 16px !important; height: 16px !important; }
@media (max-width: 880px) {
  .arc-phero__media { max-width: 520px; width: 100%; margin-inline: auto; padding-left: 24px; }
  .arc-phero__img { aspect-ratio: 5 / 4.4; }
}
@media (max-width: 767px) {
  .arc-phero__img { aspect-ratio: 4 / 3.6; border-radius: 240px 240px var(--arc-r-lg) var(--arc-r-lg) !important; }
  .e-con.arc-phero__badge { bottom: -16px; padding: 10px 14px; max-width: 210px; }
  .arc-phero__badge .arc-stat .elementor-heading-title { font-size: 1.6rem; }
}

/* Long-form content inside text widgets */
.arc-prose { color: var(--arc-muted); }
.arc-prose p { margin: 0 0 1em; }
.arc-prose h3 { font-family: var(--arc-font-head); font-size: 1.15rem; font-weight: 700; color: var(--arc-ink); margin: 1.4em 0 .5em; letter-spacing: -.015em; }
.arc-prose h3:first-child { margin-top: 0; }
.arc-prose strong { color: var(--arc-ink); }
.arc-prose ul { list-style: none; margin: 0 0 1.2em; padding: 0; display: grid; gap: 10px; }
.arc-prose ul li { position: relative; padding-left: 30px; }
.arc-prose ul li::before {
  content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23087EB5%27 stroke-width=%273.2%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M20 6 9 17l-5-5%27/%3E%3C/svg%3E") center / 11px no-repeat;
  border: 1px solid var(--arc-line);
}
.arc-prose a { color: var(--arc-blue-600); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.arc-prose--narrow { max-width: 62ch; }

/* Image + text split */
.arc-split__img { aspect-ratio: 4 / 3; width: 100%; border-radius: var(--arc-r-xl) !important; box-shadow: var(--arc-shadow-lg); }
.arc-split__img--tall { aspect-ratio: 4 / 5; }
.arc-split__media { position: relative; }
.arc-split__media--deco::before { content: ""; position: absolute; left: -24px; bottom: -24px; width: 55%; height: 60%; border-radius: var(--arc-r-xl); background: var(--arc-sand-deep); opacity: .7; }
.arc-split__media--blue::before { content: ""; position: absolute; right: -24px; top: -24px; width: 55%; height: 60%; border-radius: var(--arc-r-xl); background: var(--arc-aqua-100); }
.e-con.arc-split__media--deco::before, .e-con.arc-split__media--blue::before { height: 60%; width: 55%; border-width: 0; }
.e-con.arc-split__media--deco::before { left: -24px; top: auto; }
.e-con.arc-split__media--blue::before { left: auto; right: -24px; }
.arc-split__media .arc-split__img { position: relative; z-index: 1; }
@media (max-width: 767px) { .e-con.arc-split__media--deco::before { left: -10px; bottom: -12px; } .e-con.arc-split__media--blue::before { right: -10px; top: -12px; } }

/* Feature cards (icon-box) */
.arc-fcard { background: #fff; border: 1px solid var(--arc-line); border-radius: 20px; padding: 26px 26px 24px; height: 100%; transition: border-color .3s, box-shadow .3s var(--arc-ease); }
.arc-fcard:hover { border-color: var(--arc-blue); box-shadow: 0 24px 48px -32px rgba(8,126,181,.5); }
.arc-fcard .elementor-icon-box-wrapper { text-align: left; display: block; }
.arc-fcard .elementor-icon-box-icon { margin: 0 0 16px !important; display: block; }
.arc-fcard .elementor-icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--arc-aqua-50); font-size: 22px; }
.arc-fcard .elementor-icon svg { width: 22px; height: 22px; fill: var(--arc-blue-600); }
.arc-fcard .elementor-icon-box-title { margin: 0 0 8px; font-size: 1.12rem; }
.arc-fcard .elementor-icon-box-description { margin: 0; font-size: .93rem; line-height: 1.6; color: var(--arc-muted); }
.arc-fcards--sand .arc-fcard { background: rgba(255,255,255,.75); border-color: rgba(140,122,97,.22); }
.arc-fcards--sand .arc-fcard .elementor-icon { background: #fff; }
.arc-fcards--sand .arc-fcard .elementor-icon svg { fill: var(--arc-stone-600); }

/* Comparison */
.e-con.arc-compare__col { border-radius: var(--arc-r-lg); height: 100%; }
.e-con.arc-compare__col--rock { background: var(--arc-off); border: 1px solid var(--arc-line); }
.e-con.arc-compare__col--arc { background: var(--arc-aqua-50); border: 1px solid var(--arc-line-cool); border-top: 3px solid var(--arc-blue); }
.arc-compare__col h3.elementor-heading-title { font-size: 1.3rem; }
.arc-compare__list .elementor-icon-list-item { padding: 9px 0 !important; border-bottom: 1px solid rgba(21,61,77,.08); align-items: flex-start !important; }
.arc-compare__list .elementor-icon-list-item:last-child { border-bottom: 0; }
.arc-compare__list .elementor-icon-list-text { font-size: .95rem; color: var(--arc-ink) !important; padding-left: 10px !important; }
.arc-compare__list .elementor-icon-list-icon svg { width: 16px !important; height: 16px !important; margin-top: 4px; }
.arc-compare__col--rock .elementor-icon-list-icon svg { fill: var(--arc-stone-600) !important; }
.arc-compare__col--arc .elementor-icon-list-icon svg { fill: var(--arc-blue-600) !important; }

/* Pull quote (single testimonial) */
.e-con.arc-pull { border-radius: var(--arc-r-xl); background: #fff; border: 1px solid var(--arc-line-cool); box-shadow: 0 30px 60px -40px rgba(8,126,181,.55); }
.arc-pull__mark .elementor-icon svg { width: 40px; height: 40px; fill: var(--arc-blue); }
.arc-pull blockquote { margin: 0; padding: 0; border: 0; font-family: var(--arc-font-head); font-weight: 700; font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem); line-height: 1.45; color: var(--arc-ink); letter-spacing: -.01em; }
.arc-pull blockquote p { margin: 0; }
.arc-pull__by p { margin: 0; font-size: .9rem; color: var(--arc-muted); }
.arc-pull__by strong { color: var(--arc-ink); font-family: var(--arc-font-head); }

/* Areas strip */
.e-con.arc-astrip__county { background: #fff; border: 1px solid var(--arc-line-cool); border-radius: 18px; border-left: 5px solid var(--c, var(--arc-blue)); height: 100%; }
.arc-astrip__county--oc { --c: #45C4CB; } .arc-astrip__county--rv { --c: #8FD3E8; }
.arc-astrip__county h3.elementor-heading-title { font-size: 1.1rem; }
.arc-astrip__links .elementor-icon-list-items { display: flex !important; flex-wrap: wrap; gap: 6px 14px; }
.arc-astrip__links .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.arc-astrip__links .elementor-icon-list-text { font-size: .9rem !important; color: var(--arc-ink) !important; padding: 0 !important; }
.arc-astrip__links a:hover .elementor-icon-list-text { color: var(--arc-blue-600) !important; text-decoration: underline; text-underline-offset: 3px; }

/* Related services (compact service cards) */
.arc-related .arc-card__media { aspect-ratio: 16 / 10; }
.arc-related .arc-card__body .elementor-widget-text-editor { font-size: .9rem; }

/* Generic section heads on inner pages */
.arc-ihead h2.elementor-heading-title { max-width: 26ch; }
.arc-ihead .elementor-widget-text-editor { max-width: 64ch; color: var(--arc-muted); }
.arc-ihead--center { text-align: center; }
.arc-ihead--center h2.elementor-heading-title, .arc-ihead--center .elementor-widget-text-editor { margin-inline: auto; }

/* Gallery tiles (Our Work) */
.e-con.arc-gtile { position: relative; border-radius: var(--arc-r-lg); overflow: hidden; box-shadow: 0 24px 48px -30px rgba(4,50,75,.55); }
.arc-gtile .arc-cover { aspect-ratio: 4 / 5; border-radius: 0; }
.arc-gtile--wide .arc-cover { aspect-ratio: 16 / 11; }
.arc-gtile .arc-cover a { cursor: zoom-in; }
.arc-gtile__cap { position: absolute !important; left: 14px; right: 14px; bottom: 12px; z-index: 2; pointer-events: none; width: auto !important; }
.arc-gtile__cap .elementor-heading-title { display: inline-block; padding: 7px 12px; border-radius: 10px; background: rgba(255,255,255,.94); font-family: inherit; font-size: .8rem; font-weight: 700; line-height: 1.3; color: var(--arc-ink); letter-spacing: 0; }

/* Contact cards */
.e-con.arc-ccard { background: #fff; border: 1px solid var(--arc-line-cool); border-radius: 20px; height: 100%; }
.arc-ccard .elementor-icon-box-wrapper { display: flex; gap: 16px; text-align: left; align-items: flex-start; }
.arc-ccard .elementor-icon-box-icon { margin: 0 !important; }
.arc-ccard .elementor-icon { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--arc-blue); font-size: 20px; box-shadow: 0 0 0 6px var(--arc-aqua-100); }
.arc-ccard .elementor-icon svg { width: 20px; height: 20px; fill: #fff; }
.arc-ccard .elementor-icon-box-title { margin: 0 0 4px; font-size: 1.05rem; }
.arc-ccard .elementor-icon-box-title a { color: var(--arc-ink); }
.arc-ccard .elementor-icon-box-description { margin: 0; font-size: .92rem; color: var(--arc-muted); }

/* Full community list (Areas Served) */
.arc-community .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px 18px; }
.arc-community .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.arc-community .elementor-icon-list-text { font-size: .88rem !important; line-height: 1.35; padding: 4px 0 !important; color: var(--arc-ink) !important; }
.arc-community a .elementor-icon-list-text { color: var(--arc-blue-600) !important; }
.arc-community a:hover .elementor-icon-list-text { text-decoration: underline; text-underline-offset: 3px; }
.arc-community .elementor-icon-list-icon { display: none !important; }
@media (max-width: 1024px) { .arc-community .elementor-icon-list-items { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .arc-community .elementor-icon-list-items { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.e-con.arc-cblock { background: #fff; border: 1px solid var(--arc-line-cool); border-radius: 22px; border-top: 4px solid var(--c, var(--arc-blue)); }
.arc-cblock--oc { --c: #45C4CB; } .arc-cblock--rv { --c: #8FD3E8; }

/* HTML sitemap */
.arc-smap .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px 18px; }
.arc-smap .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.arc-smap .elementor-icon-list-text { font-size: .9rem !important; padding: 4px 0 !important; color: var(--arc-blue-600) !important; }
.arc-smap .elementor-icon-list-icon { display: none !important; }
.arc-smap--2 .elementor-icon-list-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) { .arc-smap .elementor-icon-list-items, .arc-smap--2 .elementor-icon-list-items { grid-template-columns: 1fr; } }

/* Mobile inline rows on inner pages */
@media (max-width: 767px) {
  .e-con.arc-phero__badge, .e-con.arc-pull__byrow { --flex-wrap: nowrap; flex-wrap: nowrap; }
}

/* ==========================================================================
   22. Classic content (blog posts, legal pages, location pages until redesigned)
   ========================================================================== */
body:not(.elementor-page) .site-main { max-width: 1240px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 40px); }
body:not(.elementor-page) .site-main .page-header .entry-title { font-size: clamp(2rem, 1.4rem + 2.2vw, 3rem); line-height: 1.08; letter-spacing: -.03em; margin: clamp(40px, 5vw, 64px) 0 24px; max-width: 24ch; }
body:not(.elementor-page) .site-main .page-content { max-width: 760px; font-size: 1.04rem; line-height: 1.75; color: var(--arc-ink); padding-bottom: 72px; }
body:not(.elementor-page) .site-main .page-content h2 { font-size: clamp(1.45rem, 1.2rem + .9vw, 1.9rem); margin: 1.8em 0 .6em; }
body:not(.elementor-page) .site-main .page-content h3 { font-size: 1.25rem; margin: 1.6em 0 .5em; }
body:not(.elementor-page) .site-main .page-content img { border-radius: 16px; height: auto; }
body:not(.elementor-page) .site-main .page-content a { color: var(--arc-blue-600); text-decoration: underline; text-underline-offset: 3px; }
body:not(.elementor-page) .site-main .page-content ul, body:not(.elementor-page) .site-main .page-content ol { padding-left: 1.3em; }
body:not(.elementor-page) .site-main .page-content li { margin-bottom: .4em; }

/* Blog single (child theme template-parts/single.php) */
.arc-post { padding-bottom: 72px; }
.arc-post__hero { background: radial-gradient(55% 75% at 86% 30%, rgba(18,152,208,.14), transparent 70%), linear-gradient(180deg, #FFFFFF 0%, var(--arc-mist) 100%); border-bottom: 1px solid var(--arc-line-cool); }
.arc-post__hero-inner, .arc-post__body { max-width: 1240px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 40px); }
.arc-post__hero-inner { padding-block: clamp(40px, 5vw, 72px) clamp(32px, 4vw, 56px); }
.arc-post__crumbs { font-size: .82rem; font-weight: 600; color: var(--arc-muted); margin-bottom: 18px; }
.arc-post__crumbs a { color: var(--arc-blue-600); }
.arc-post__crumbs .separator { margin: 0 8px; color: var(--arc-blue-200); }
.arc-post__cat { display: inline-block; font-family: var(--arc-font-head); font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--arc-blue-600); margin-bottom: 14px; }
.arc-post__title { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); line-height: 1.07; letter-spacing: -.035em; max-width: 22ch; margin: 0 0 18px; }
.arc-post__meta { font-size: .88rem; color: var(--arc-muted); }
.arc-post__body { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(32px, 5vw, 72px); padding-top: clamp(36px, 4vw, 56px); align-items: start; }
.arc-post__content { font-size: 1.06rem; line-height: 1.78; color: var(--arc-ink); max-width: 72ch; }
.arc-post__content h2 { font-size: clamp(1.45rem, 1.2rem + .9vw, 1.9rem); margin: 1.8em 0 .6em; }
.arc-post__content h3 { font-size: 1.25rem; margin: 1.6em 0 .5em; }
.arc-post__content img { border-radius: 16px; height: auto; max-width: 100%; }
.arc-post__content a { color: var(--arc-blue-600); text-decoration: underline; text-underline-offset: 3px; }
.arc-post__aside { position: sticky; top: calc(var(--arc-header-h) + 24px); display: grid; gap: 18px; }
.arc-post__box { background: var(--arc-aqua-50); border: 1px solid var(--arc-line-cool); border-radius: 20px; padding: 24px; }
.arc-post__box h2 { font-size: 1.05rem; margin: 0 0 12px; }
.arc-post__box ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.arc-post__box ul a { font-weight: 600; color: var(--arc-ink); text-decoration: none; }
.arc-post__box ul a:hover { color: var(--arc-blue-600); }
.arc-post__box p { font-size: .92rem; color: var(--arc-muted); margin: 0 0 14px; }
.arc-post__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--arc-blue-600); color: #fff !important; font-family: var(--arc-font-head); font-weight: 800; font-size: .9rem; text-decoration: none !important; }
.arc-post__btn:hover { background: var(--arc-blue-700); }
.arc-post__related { max-width: 1240px; margin: 56px auto 0; padding-inline: clamp(20px, 4vw, 40px); }
.arc-post__related h2 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.8rem); margin-bottom: 20px; }
.arc-post__related ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.arc-post__related li a { display: block; height: 100%; padding: 20px 22px; border-radius: 18px; background: #fff; border: 1px solid var(--arc-line); font-family: var(--arc-font-head); font-weight: 700; color: var(--arc-ink); text-decoration: none; transition: border-color .25s; }
.arc-post__related li a:hover { border-color: var(--arc-blue); color: var(--arc-blue-600); }
@media (max-width: 1024px) { .arc-post__body { grid-template-columns: 1fr; } .arc-post__aside { position: static; } .arc-post__related ul { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .arc-post__related ul { grid-template-columns: 1fr; } }
.arc-fcard .elementor-icon-box-wrapper, .arc-fcard .elementor-icon-box-content, .arc-fcard .elementor-icon-box-title, .arc-fcard .elementor-icon-box-description { text-align: left !important; }
.arc-fcard .elementor-icon-box-icon { display: flex !important; justify-content: flex-start; }
.arc-fcard .elementor-icon-box-description a { color: var(--arc-blue-600); font-weight: 600; }
.arc-cta .arc-quote-form h2.elementor-heading-title, .arc-cta .arc-quote-form h3.elementor-heading-title { color: var(--arc-ink); font-size: 1.5rem; max-width: none; letter-spacing: -.015em; line-height: 1.25; }
.arc-gf .gform_wrapper .gform_fields { align-items: start; }
.arc-gf .gform_wrapper .gfield--type-phone .ginput_container, .arc-gf .gform_wrapper .gfield--type-email .ginput_container { margin-top: 0 !important; }
.arc-checklist--single .elementor-icon-list-items { grid-template-columns: 1fr; gap: 10px; }
.arc-phero__map { width: 100%; }
.arc-phero__map .arc-map-frame { min-height: 0; height: auto; aspect-ratio: 420 / 500; border-radius: 999px 999px var(--arc-r-xl) var(--arc-r-xl); box-shadow: 0 30px 60px -24px rgba(8,126,181,.45); }
@media (max-width: 767px) { .arc-phero__map .arc-map-frame { aspect-ratio: 420 / 420; border-radius: 240px 240px var(--arc-r-lg) var(--arc-r-lg); } }
.arc-ccard .elementor-icon-box-title a:hover { color: var(--arc-blue-600); }
.arc-cblock h2.elementor-heading-title { max-width: none; }
.arc-ccard .elementor-icon-box-content { min-width: 0; }
.arc-ccard .elementor-icon-box-title { overflow-wrap: anywhere; font-weight: 700; }
@media (max-width: 400px) { .arc-ccard .elementor-icon-box-title { font-size: .98rem; } }

/* ==========================================================================
   23. Location pages (Phase 3 pilot template)
   ========================================================================== */
.arc-fcard .elementor-icon-box-title a { color: inherit; text-decoration: none; }
.arc-fcard .elementor-icon-box-title a:hover { color: var(--arc-blue-600); }
.arc-fcard__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; text-decoration: none; }
.arc-fcard__more::after { content: "\2192"; transition: transform .25s var(--arc-ease); }
.arc-fcard__more:hover::after { transform: translateX(3px); }
.e-con.arc-apps__col { background: var(--arc-off, #faf8f4); border: 1px solid var(--arc-line); border-radius: 20px; height: 100%; }
.arc-apps__col h3.elementor-heading-title { font-size: 1.25rem; }
.arc-apps__col .arc-muted a { color: var(--arc-blue-600); font-weight: 600; }
.arc-locctx h2.elementor-heading-title, .arc-nearby h2.elementor-heading-title { max-width: 18ch; }
.arc-nearby .arc-astrip__links .elementor-icon-list-items { gap: 10px 22px; }
.arc-nearby .arc-astrip__links .elementor-icon-list-text { font-size: 1rem !important; font-weight: 600; }
@media (max-width: 1024px) { .arc-locctx h2.elementor-heading-title, .arc-nearby h2.elementor-heading-title { max-width: none; } }
/* Gallery tiles: as a flex column the overflow-hidden image wrapper could
   shrink to 0px in single-column (mobile) grids. Block layout keeps the
   4:5 / 16:11 aspect-ratio height at every width. */
.e-con.arc-gtile { display: block !important; }
.arc-gtile .arc-cover { flex-shrink: 0; }
/* Header submenu arrow drawn in CSS so the 76 KB Font Awesome solid font
   is no longer downloaded just for this glyph. */
.arc-nav .hfe-nav-menu .parent-has-child .sub-arrow i { font-family: inherit !important; font-style: normal; }
.arc-nav .hfe-nav-menu .parent-has-child .sub-arrow i::before { content: "" !important; display: inline-block; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; font-family: inherit !important; }
.arc-nav .hfe-nav-menu .parent-has-child .sub-menu-active .sub-arrow i::before,
.arc-nav.hfe-link-redirect-self_link .hfe-nav-menu .parent-has-child .menu-active .sub-arrow i::before { transform: translateY(2px) rotate(-135deg); }
.arc-nav .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i::before { transform: rotate(-45deg); }
/* Text-link buttons wrap instead of running past narrow screens
   (e.g. "Read more client testimonials" at 320-375px). */
.elementor-widget-button.arc-link, .elementor-widget-button.arc-linkrow { max-width: 100%; }
.arc-link .elementor-button, .arc-linkrow .elementor-button { white-space: normal; text-align: left; }
.arc-link .elementor-button-content-wrapper { flex-wrap: nowrap; }
.arc-link .elementor-button-text { min-width: 0; }
/* Blog article: let the single column shrink below its content's min-width. */
.arc-post__content { min-width: 0; }
@media (max-width: 1024px) { .arc-post__body { grid-template-columns: minmax(0, 1fr); } }
/* Embedded video/maps in posts and classic pages scale to the column. */
.arc-post__content iframe, .arc-post__content embed, .arc-post__content video, .page-content iframe { max-width: 100%; }
.arc-post__content iframe[src*="youtube"], .arc-post__content iframe[src*="vimeo"] { width: 100%; height: auto; aspect-ratio: 16 / 9; }


/* ==========================================================================
   4b. Homepage hero: full-bleed project photo, light gradient, quote card
   (scoped to .arc-hero--home; page heroes keep section 4 / .arc-phero)
   ========================================================================== */
.e-con.arc-hero--home { position: relative; isolation: isolate; background: #fff; }
.e-con.arc-hero--home > .e-con-inner { position: static; }
.e-con.arc-hero--home::before { z-index: 1; opacity: .12; -webkit-mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.45) 24%, transparent 40%); mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.45) 24%, transparent 40%); }
.e-con.arc-hero--home .arc-hero__grid { position: relative; z-index: 2; }

/* Photo layer: a real <img> (srcset, WebP, high fetch priority) behind the whole hero */
.arc-hero--home .elementor-widget.arc-hero__bg { position: absolute !important; inset: 0; width: auto !important; max-width: none !important; margin: 0 !important; z-index: 0; pointer-events: none; }
.arc-hero--home .arc-hero__bg .elementor-widget-container { position: absolute; inset: 0; }
.arc-hero--home .arc-hero__bg img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; object-position: 50% 74%; border-radius: 0; filter: saturate(1.12) contrast(1.04); }
/* Text side stays solid; the photo comes through beside and around the quote card */
.arc-hero--home .arc-hero__bg::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, #fff 0%, #fff 40%, rgba(255,255,255,.96) 46%, rgba(255,255,255,.82) 51%, rgba(250,253,254,.54) 56%, rgba(244,251,253,.28) 62%, rgba(239,249,252,.12) 71%, rgba(239,249,252,.05) 100%),
    linear-gradient(180deg, rgba(255,255,255,0) 78%, rgba(255,255,255,.45) 100%);
}

/* Left column */
.arc-hero--home .arc-hero__content { min-width: 0; }
.arc-hero--home .arc-hero__actions { margin-bottom: 22px !important; }
.arc-hero--home .arc-hero__contact { gap: 14px 22px; }
.arc-hero--home .arc-hero__contact .arc-note { position: relative; padding-left: 22px; }
.arc-hero--home .arc-hero__contact .arc-note::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 30px; transform: translateY(-50%); background: var(--arc-line-cool); }

/* Quote card */
.e-con.arc-hero__form {
  width: 100%; max-width: 470px; justify-self: end;
  background: rgba(255,255,255,.97); color: var(--arc-ink);
  border: 1px solid rgba(255,255,255,.7); border-radius: 22px;
  box-shadow: 0 24px 60px -16px rgba(17,73,96,.28), 0 2px 8px rgba(17,73,96,.06);
}
.arc-hero__form .arc-eyebrow .elementor-heading-title { font-size: .7rem; letter-spacing: .18em; }
.arc-hero__form h2.elementor-heading-title { font-size: clamp(1.5rem, 1.25rem + .7vw, 1.85rem); line-height: 1.15; letter-spacing: -.02em; color: var(--arc-ink); max-width: none; margin: 0; }
.arc-hero__form .arc-form-intro { font-size: .88rem; line-height: 1.45; color: var(--arc-muted); margin-bottom: 6px; }
.arc-hero__form .arc-gf .gform_wrapper .gform_fields { gap: 10px !important; }
.arc-hero__form .arc-gf .gform_wrapper .gfield_label, .arc-hero__form .arc-gf .gform_wrapper .gform-field-label { margin-bottom: 5px !important; }
.arc-hero__form .arc-gf .gform_wrapper .ginput_container input { margin-top: 0 !important; }
.arc-hero__form .arc-gf .gform_wrapper textarea { min-height: 84px !important; height: 84px; }
.arc-hero__form .arc-gf .gform_wrapper .gform_footer { margin-top: 6px !important; }
.arc-hero__form .arc-gf .gform_wrapper .gform_footer input[type="submit"]:focus-visible,
.arc-hero__form .arc-gf .gform_wrapper .gform_footer button:focus-visible { outline: 3px solid var(--arc-blue); outline-offset: 3px; }
.arc-hero__form .arc-gf .gform_wrapper .gform_footer input[type="submit"]:active,
.arc-hero__form .arc-gf .gform_wrapper .gform_footer button:active { transform: translateY(0); background: var(--arc-deep) !important; box-shadow: none !important; }
.arc-hero__form .arc-form-note { margin-top: 4px; }

/* Tablet: stack (content, then form); stronger veil behind the text */
@media (max-width: 1024px) {
  .arc-hero--home .arc-hero__bg img { object-position: 58% 60%; }
  .arc-hero--home .arc-hero__bg::after {
    background: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.94) 40%, rgba(247,251,252,.62) 62%, rgba(239,249,252,.34) 100%);
  }
  .e-con.arc-hero--home::before { -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 42%); mask-image: linear-gradient(180deg, #000 0%, transparent 42%); }
  .e-con.arc-hero__form { max-width: 640px; justify-self: start; }
}
/* Phone: text and form fully readable over a light photo veil */
@media (max-width: 767px) {
  .arc-hero--home .arc-hero__bg::after {
    background: linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.93) 44%, rgba(247,251,252,.74) 66%, rgba(239,249,252,.56) 100%);
  }
  .arc-hero--home .arc-hero__actions .elementor-widget-button { flex: 1 1 100%; }
  .arc-hero--home .arc-hero__contact .arc-note { padding-left: 0; }
  .arc-hero--home .arc-hero__contact .arc-note::before { display: none; }
  /* The fixed Call / Free Quote bar's step-aside rules live in section 4e */
}

/* ==========================================================================
   4c. Final audit fixes (2026-10-05)
   ========================================================================== */
/* WCAG AA contrast: small accent-blue text (eyebrows, text links, phone label) measured 4.16-4.43:1 on the
   tinted section backgrounds. The accent is one step darker (same hue): >= 4.6:1 on every light background.
   Overrides the Kit value here so the Kit itself is unchanged. */
body.elementor-kit-1680 { --e-global-color-accent: #0776AB; }
/* Gravity Forms legacy CSS gives the Email input a 12px top margin, so it sat lower than Phone (hero already fixed) */
.arc-gf .gform_wrapper .ginput_container input { margin-top: 0 !important; }
/* Story caption: an element-level Elementor width won over the 34% cap, so it ran under the inset photo */
.arc-story__media > .elementor-widget.arc-story__quote { max-width: 34% !important; }
/* Inline links inside running text must not rely on color alone */
.e-con .elementor-widget-text-editor p a:not(.elementor-button) { text-decoration: underline; text-underline-offset: 3px; }
/* 320px: trust-strip items may shrink below their longest word (was 2px past the viewport) */
.arc-trust__grid > .arc-trust__item { min-width: 0; }

/* ==========================================================================
   4d. Final cleanup (2026-10-05)
   ========================================================================== */
/* Header menu keyboard states (script in functions.php). UAE removes the outline on menu links. */
.arc-nav .hfe-nav-menu a.hfe-menu-item:focus-visible,
.arc-nav .hfe-nav-menu a.hfe-sub-menu-item:focus-visible,
.arc-nav .hfe-nav-menu__toggle:focus-visible { outline: 3px solid var(--arc-blue) !important; outline-offset: 2px; border-radius: 10px; }
.arc-nav nav.hfe-dropdown a.hfe-menu-item:focus-visible,
.arc-nav nav.hfe-dropdown a.hfe-sub-menu-item:focus-visible { outline-offset: -3px; }
@media (min-width: 1025px) {
  .arc-nav .hfe-nav-menu > li.arc-open > .sub-menu { visibility: visible !important; opacity: 1 !important; height: auto !important; }
  .arc-nav .hfe-nav-menu > li.arc-closed > .sub-menu { visibility: hidden !important; opacity: 0 !important; }
  /* Closed with Escape or by leaving it: hide at once, so the next Tab never lands in a fading panel */
  .arc-nav .hfe-nav-menu > li[data-arc-esc] > .sub-menu { transition: none !important; }
}
/* Open mobile menu: the page behind it does not scroll */
/* On <html> only: overflow on <body> too would make body the sticky header's scroll container,
   so a menu opened mid-page would stay up at the top of the document, off screen. */
html.arc-menu-open { overflow: hidden !important; }
.arc-nav nav.hfe-dropdown { overscroll-behavior: contain; }

/* Story caption: 18.4px is just under large-text size, so it needs 4.5:1. One step darker stone (about 5.6:1 on white). */
.arc-story__quote .elementor-heading-title { color: #76654F; }

/* Contact cards: break long lines at natural points only (email after "@", hours after "·") */
.arc-ccard .elementor-icon-box-title { overflow-wrap: break-word; word-break: normal; }
.arc-nowrap { white-space: nowrap; }
.e-con:has(> .e-con.arc-ccard) { container-type: inline-size; grid-auto-flow: row dense; }
@media (min-width: 768px) {
  .e-con.arc-ccard:has(a[href^="mailto:"]), .e-con.arc-ccard:has(a[href*="google.com/maps"]) { grid-column: 1 / -1; }
}
/* Narrow card column (e.g. 1024px, beside the form): one card per row */
@container (max-width: 520px) { .e-con.arc-ccard { grid-column: 1 / -1; } }
@media (max-width: 480px) {
  .e-con.arc-ccard .elementor-widget-icon-box .elementor-icon-box-wrapper { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* Shared outline button for theme templates (blog hub, 404) */
.arc-btn-ghost { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 1.5px solid var(--arc-blue); background: rgba(255,255,255,.75); color: var(--arc-blue-600) !important; font-family: var(--arc-font-head); font-weight: 800; font-size: .9rem; text-decoration: none !important; transition: background-color .2s, color .2s; }
.arc-btn-ghost:hover { background: var(--arc-aqua-50); color: var(--arc-blue-700) !important; }

/* Blog hub (template-parts/archive.php): text cards, no imagery */
.arc-archive__lead { font-size: clamp(1.02rem, 1rem + .25vw, 1.15rem); line-height: 1.65; color: var(--arc-muted); max-width: 62ch; margin: 0 0 6px; }
.arc-archive__lead p { margin: 0; }
/* Archive and 404 build their own 1240px inner columns; the hero band runs full width (as on single posts). */
body:not(.elementor-page) .site-main.arc-archive, body:not(.elementor-page) .site-main.arc-404 { max-width: none; padding-inline: 0; }
.arc-archive__body { max-width: 1240px; margin-inline: auto; padding: clamp(36px, 4vw, 56px) clamp(20px, 4vw, 40px) 0; }
.arc-archive__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.arc-bcard { display: flex; min-width: 0; }
.arc-bcard__inner { position: relative; display: flex; flex-direction: column; width: 100%; padding: 28px 26px 24px; background: #fff; border: 1px solid var(--arc-line-cool); border-radius: 20px; box-shadow: var(--arc-shadow-sm); transition: border-color .25s, box-shadow .25s, transform .25s var(--arc-ease); }
.arc-bcard__inner::before { content: ""; position: absolute; left: 26px; right: 26px; top: -1px; height: 3px; border-radius: 0 0 3px 3px; background: linear-gradient(90deg, var(--arc-aqua), var(--arc-blue)); }
.arc-bcard__inner:hover { border-color: var(--arc-blue); box-shadow: var(--arc-shadow-md); transform: translateY(-2px); }
.arc-bcard__meta { margin: 0 0 10px; font-size: .8rem; font-weight: 600; letter-spacing: .02em; color: var(--arc-muted); }
.arc-archive h2.arc-bcard__title { margin: 0 0 10px; font-size: 1.14rem; line-height: 1.32; letter-spacing: -.01em; }
.arc-bcard__title a { color: var(--arc-ink); text-decoration: none !important; }
.arc-bcard__title a::after { content: ""; position: absolute; inset: 0; border-radius: 20px; }
.arc-bcard__title a:focus-visible { outline: none; }
.arc-bcard__inner:has(.arc-bcard__title a:focus-visible) { outline: 3px solid var(--arc-blue); outline-offset: 3px; }
.arc-bcard__inner:hover .arc-bcard__title a { color: var(--arc-blue-600); }
.arc-bcard__excerpt { margin: 0 0 18px; font-size: .94rem; line-height: 1.6; color: var(--arc-muted); flex: 1 1 auto; }
.arc-bcard__more { margin-top: auto; display: inline-flex; gap: 6px; font-family: var(--arc-font-head); font-weight: 800; font-size: .9rem; color: var(--arc-blue-600); }
.arc-bcard__arrow { display: inline-block; transition: transform .25s var(--arc-ease); }
.arc-bcard__inner:hover .arc-bcard__arrow { transform: translateX(4px); }
.arc-archive__pagination { margin-top: 40px; }
.arc-archive__pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.arc-archive__pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--arc-line-cool); background: #fff; font-family: var(--arc-font-head); font-weight: 700; font-size: .9rem; color: var(--arc-ink); text-decoration: none; }
.arc-archive__pagination a.page-numbers:hover { border-color: var(--arc-blue); color: var(--arc-blue-600); }
.arc-archive__pagination .page-numbers.current { background: var(--arc-blue-600); border-color: var(--arc-blue-600); color: #fff; }
.arc-archive__pagination .page-numbers.dots { border: 0; background: none; min-width: 0; padding: 0 4px; }
.arc-archive__cta { max-width: 1240px; margin: clamp(48px, 6vw, 80px) auto clamp(56px, 6vw, 88px); padding-inline: clamp(20px, 4vw, 40px); }
.arc-archive__cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px 32px; flex-wrap: wrap; padding: clamp(28px, 4vw, 44px); border-radius: 24px; background: var(--arc-aqua-50); border: 1px solid var(--arc-line-cool); }
.arc-archive .arc-archive__cta h2 { margin: 0 0 8px; font-size: clamp(1.4rem, 1.2rem + .8vw, 1.85rem); line-height: 1.2; }
.arc-archive__cta p { margin: 0; color: var(--arc-muted); max-width: 52ch; }
.arc-archive__cta-actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 1024px) { .arc-archive__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .arc-archive__grid { grid-template-columns: 1fr; gap: 16px; }
  .arc-archive__cta-actions, .arc-archive__cta-actions a { width: 100%; }
}

/* 404 (template-parts/404.php) */
.arc-404__hero { border-bottom: 0; }
.arc-404__inner { padding-block: clamp(56px, 8vw, 112px); }
.arc-404__lead { font-size: clamp(1.02rem, 1rem + .25vw, 1.15rem); line-height: 1.65; color: var(--arc-muted); max-width: 56ch; margin: 0 0 28px; }
.arc-404__links { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.arc-404__phone { margin: 0; font-size: .95rem; color: var(--arc-muted); }
.arc-404__phone a { color: var(--arc-blue-600); font-weight: 700; text-decoration: none; }
@media (max-width: 480px) {
  .arc-404__links li { flex: 1 1 calc(50% - 6px); }
  .arc-404__links li:first-child { flex-basis: 100%; }
  .arc-404__links a { width: 100%; }
}

/* ==========================================================================
   4e. Sticky Call / Free Quote bar, site-wide (2026-10-05)
   One component: container .arc-mobile-bar in the ARC Footer template (1700), shown at every
   screen size as a centred floating tray. Call = Deep Water (white text, 11.2:1),
   Free Quote = Aqua (ink text, 6.3:1). It steps aside (no covering) while:
   - a quote form or its confirmation sits under it, or a form field has focus (body.arc-cta-away, functions.php);
   - on phones, the homepage hero quote card is on screen (body.arc-quote-in-view, functions.php);
   - the mobile menu is open (html.arc-menu-open).
   Room for it is reserved inside the dark footer, so the page never ends with a white strip.
   ========================================================================== */
body { --arc-cta-h: 60px; --arc-cta-pad: 8px; --arc-cta-bottom: 20px; }
@media (max-width: 1024px) { body { --arc-cta-h: 58px; --arc-cta-bottom: 16px; } }
@media (max-width: 767px) { body { --arc-cta-h: 54px; --arc-cta-pad: 6px; --arc-cta-bottom: max(8px, env(safe-area-inset-bottom)); } }
@media (max-height: 500px) { body { --arc-cta-h: 48px; --arc-cta-pad: 6px; --arc-cta-bottom: max(8px, env(safe-area-inset-bottom)); } }

.e-con.arc-footer { padding-bottom: calc(var(--arc-cta-h) + 2 * var(--arc-cta-pad) + 2px + var(--arc-cta-bottom) + 10px) !important; }

.e-con.arc-mobile-bar {
  --width: min(720px, calc(100% - 40px));
  position: fixed; left: 0; right: 0; bottom: var(--arc-cta-bottom); z-index: 90;
  display: flex; flex-direction: row; flex-wrap: nowrap; --flex-wrap: nowrap; align-items: stretch; gap: 8px;
  width: var(--width) !important; max-width: none; margin: 0 auto !important;
  padding: var(--arc-cta-pad) !important;
  background: #fff; border: 1px solid var(--arc-line-cool); border-radius: 22px;
  box-shadow: 0 10px 35px rgba(20, 75, 100, .18);
  transition: transform .25s var(--arc-ease), opacity .25s, visibility 0s;
  animation: arc-cta-in .45s var(--arc-ease) .25s backwards;
}
@keyframes arc-cta-in { from { opacity: 0; transform: translateY(14px); } }
body.arc-cta-away .e-con.arc-mobile-bar,
html.arc-menu-open .e-con.arc-mobile-bar {
  transform: translateY(calc(100% + 40px)); opacity: 0; visibility: hidden; pointer-events: none;
  transition: transform .25s var(--arc-ease), opacity .25s, visibility 0s linear .25s;
}
@media (max-width: 767px) {
  body.arc-quote-in-view .e-con.arc-mobile-bar {
    transform: translateY(calc(100% + 40px)); opacity: 0; visibility: hidden; pointer-events: none;
    transition: transform .25s var(--arc-ease), opacity .25s, visibility 0s linear .25s;
  }
}

.e-con.arc-mobile-bar > .elementor-widget-button { flex: 1 1 0; min-width: 0; margin: 0 !important; }
.e-con.arc-mobile-bar > .arc-cta__quote { flex-grow: 1.12; }
.e-con.arc-mobile-bar .elementor-button {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
  min-height: var(--arc-cta-h); padding: 0 18px; border: 0; border-radius: 15px;
  font-family: var(--arc-font-head); font-size: 1.05rem; font-weight: 800; line-height: 1.15; letter-spacing: -.005em;
  white-space: nowrap; text-decoration: none; box-shadow: none; transform: none;
}
.e-con.arc-mobile-bar .elementor-button-content-wrapper { display: flex; flex-direction: row; align-items: center; gap: 12px; min-width: 0; }
.e-con.arc-mobile-bar .elementor-button-text { text-align: left; }
.e-con.arc-mobile-bar .elementor-button-icon {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 34px; height: 34px; border-radius: 50%;
}
.e-con.arc-mobile-bar .elementor-button-icon svg { width: 15px; height: 15px; fill: #fff; }
.e-con.arc-mobile-bar .arc-cta__now { display: none; }

/* Call: Deep Water, white text and icon */
.e-con.arc-mobile-bar .arc-cta__call .elementor-button,
.e-con.arc-mobile-bar .arc-cta__call .elementor-button:hover,
.e-con.arc-mobile-bar .arc-cta__call .elementor-button:focus { background: var(--arc-deep); color: #fff; }
.e-con.arc-mobile-bar .arc-cta__call .elementor-button-icon { background: #27566E; background: color-mix(in srgb, var(--arc-deep) 86%, #fff); }
/* Free Quote: Aqua, ink text, Deep Water icon disc */
.e-con.arc-mobile-bar .arc-cta__quote .elementor-button,
.e-con.arc-mobile-bar .arc-cta__quote .elementor-button:hover,
.e-con.arc-mobile-bar .arc-cta__quote .elementor-button:focus { background: var(--arc-aqua); color: var(--arc-ink); }
.e-con.arc-mobile-bar .arc-cta__quote .elementor-button-icon { background: var(--arc-deep); }

.e-con.arc-mobile-bar .elementor-button:focus-visible { outline: 3px solid var(--arc-blue-600); outline-offset: 3px; }
@media (hover: hover) and (min-width: 768px) {
  .e-con.arc-mobile-bar .elementor-button { transition: transform .2s var(--arc-ease), box-shadow .2s var(--arc-ease); }
  .e-con.arc-mobile-bar .elementor-button:hover { transform: translateY(-1px); box-shadow: 0 10px 20px -12px rgba(10, 63, 90, .7); }
}

@media (max-width: 1024px) {
  .e-con.arc-mobile-bar { --width: min(700px, calc(100% - 32px)); }
}
@media (max-width: 767px) {
  .e-con.arc-mobile-bar { --width: calc(100% - 20px); gap: 6px; border-radius: 20px; }
  .e-con.arc-mobile-bar > .elementor-widget-button { flex: 1 1 auto; }
  .e-con.arc-mobile-bar .elementor-button { padding: 0 10px; border-radius: 14px; font-size: .92rem; }
  .e-con.arc-mobile-bar .elementor-button-content-wrapper { gap: 8px; }
  .e-con.arc-mobile-bar .elementor-button-icon { width: 28px; height: 28px; }
  .e-con.arc-mobile-bar .elementor-button-icon svg { width: 13px; height: 13px; }
  /* The full number goes on a second line inside the Call button */
  .e-con.arc-mobile-bar .arc-cta__num { display: block; margin-top: 1px; font-size: .84em; font-weight: 700; letter-spacing: 0; }
}
@media (max-width: 359px) {
  .e-con.arc-mobile-bar { --width: calc(100% - 16px); }
  .e-con.arc-mobile-bar .elementor-button { padding: 0 8px; font-size: .88rem; }
  .e-con.arc-mobile-bar .elementor-button-content-wrapper { gap: 6px; }
  .e-con.arc-mobile-bar .elementor-button-icon { width: 24px; height: 24px; }
  .e-con.arc-mobile-bar .elementor-button-icon svg { width: 12px; height: 12px; }
  /* Only where the number genuinely cannot fit: "Call Now" */
  .e-con.arc-mobile-bar .arc-cta__num { display: none; }
  .e-con.arc-mobile-bar .arc-cta__now { display: inline; }
}
@media (max-height: 500px) and (min-width: 600px) {
  .e-con.arc-mobile-bar .arc-cta__num { display: inline; margin: 0; font-size: 1em; font-weight: 800; }
}
@media (prefers-reduced-motion: reduce) {
  .e-con.arc-mobile-bar { animation: none; transition: none !important; }
}
/* Elementor editor: keep it in the footer flow so it never floats over editing controls */
.elementor-editor-active .e-con.arc-mobile-bar,
.elementor-editor-preview .e-con.arc-mobile-bar { position: relative; bottom: auto; animation: none; margin: 24px auto !important; }
.elementor-editor-active .e-con.arc-footer { padding-bottom: 0 !important; }
@media print { .e-con.arc-mobile-bar { display: none !important; } .e-con.arc-footer { padding-bottom: 0 !important; } }

/* ==========================================================================
   4f. Footer service-area map (2026-10-05)
   Section .arc-footer__areas in the ARC Footer template (1700), above the copyright row:
   "Areas We Serve" text + county links (left) and a neutral Google Maps area view (right).
   The map is Google's keyless "Embed a map" iframe of the region: no place, pin, business or address.
   ========================================================================== */
.e-con.arc-footer__areas {
  --display: grid; display: grid; grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); gap: 32px 56px; align-items: center;
  padding: 44px 0 48px !important; border-top: 1px solid rgba(255, 255, 255, .12);
}
.e-con.arc-footer__areas-text { --gap: 16px; gap: 16px; }
.arc-footer__areas-title .elementor-heading-title {
  margin: 0; font-family: var(--arc-font-head); font-size: clamp(1.35rem, 1.2rem + .5vw, 1.6rem); font-weight: 800; line-height: 1.2; letter-spacing: -.01em; color: #fff;
}
.arc-footer__areas-copy, .arc-footer__areas-copy p { margin: 0; max-width: 46ch; color: rgba(255, 255, 255, .8); line-height: 1.65; }
.arc-footer__map {
  position: relative; height: 340px; overflow: hidden; border-radius: 18px;
  border: 1px solid rgba(207, 232, 242, .35); background: var(--arc-aqua-50);
  box-shadow: 0 18px 40px -26px rgba(4, 30, 44, .8);
}
.arc-footer__map iframe { display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 1024px) {
  .e-con.arc-footer__areas { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .arc-footer__map { height: 300px; } /* 280 px made Google zoom out a level on wide tablet columns */
}
@media (max-width: 767px) {
  .e-con.arc-footer__areas { padding: 36px 0 40px !important; gap: 24px; }
  .arc-footer__map { height: 240px; border-radius: 16px; }
}
@media (max-height: 500px) and (min-width: 600px) { .arc-footer__map { height: 230px; } }

/* ==========================================================================
   4g. Location page template (pilot: Mission Viejo, 2026-10-06)
   Reuses the approved pilot location layout, homepage trust strip and service cards and
   the CTA band. These rules only style classes added for the template:
   .arc-phero__cap, .arc-trust--4, .arc-locdetail(--tint), .arc-linkset, .arc-cta--solo.
   ========================================================================== */
/* Hero photo note (the photo is a representative project, not a local one) */
/* Out of flow, so the media box (and the badge anchored to its bottom) keeps the pilot layout */
.elementor-widget.arc-phero__cap { position: absolute; z-index: 2; right: 0; top: calc(100% + 14px); width: auto; max-width: calc(100% - 40px); margin: 0 !important; text-align: right; }
.arc-phero__cap p { margin: 0; font-size: .78rem; line-height: 1.4; color: var(--arc-muted); }

/* Four-item trust strip: 4 across, 2 × 2 on tablet and phone */
@media (max-width: 1024px) {
  .arc-trust--4 .arc-trust__grid > .arc-trust__item:nth-child(n) { border-left: 0; border-top: 0; }
  .arc-trust--4 .arc-trust__grid > .arc-trust__item:nth-child(even) { border-left: 1px solid var(--arc-line-cool); }
  .arc-trust--4 .arc-trust__grid > .arc-trust__item:nth-child(n+3) { border-top: 1px solid var(--arc-line-cool); }
}
@media (max-width: 767px) {
  .arc-trust--4 .arc-trust__grid > .arc-trust__item:last-child { grid-column: auto; border-left: 1px solid var(--arc-line-cool); }
}

/* Location-specific service sections: alternating, tighter rhythm, tinted middle band */
.e-con.arc-locdetail { padding-block: clamp(48px, 5vw, 72px) !important; }
.e-con.arc-locdetail--tint { background: var(--arc-mist); border-block: 1px solid var(--arc-line-cool); }
.e-con.arc-linkset { margin-top: 6px; }

/* Closing CTA without the form column: one centred column */
.e-con.arc-cta--solo > .e-con-inner > .e-con { grid-template-columns: minmax(0, 1fr) !important; --e-con-grid-template-columns: minmax(0, 1fr); }
.e-con.arc-cta--solo > .e-con-inner > .e-con > .e-con { max-width: 820px; margin-inline: auto; align-items: center; text-align: center; }
.arc-cta--solo h2.elementor-heading-title { max-width: 22ch; margin-inline: auto; font-size: clamp(2rem, 1.5rem + 1.9vw, 3.1rem); }
.arc-cta--solo .arc-lead { margin-inline: auto; }
.arc-cta--solo .elementor-widget-heading, .arc-cta--solo .elementor-widget-text-editor { text-align: center; }
.e-con.arc-cta--solo .arc-cta__actions { justify-content: center; }
.arc-cta--solo .arc-cta__meta .elementor-icon-list-items { justify-content: center; }
/* Section intros on location pages keep a reading width (never full-bleed text) */
.arc-loc-sec .elementor-widget-text-editor { max-width: 68ch; }
.arc-loc-sec .arc-ihead--center .elementor-widget-text-editor { margin-inline: auto; }
@media (max-width: 767px) {
  /* the "20+ years" badge hangs 16px below the photo here: put the note under it */
  .elementor-widget.arc-phero__cap { top: calc(100% + 30px); }
  .e-con.arc-phero__media:has(> .arc-phero__cap) { margin-bottom: 34px; }
}

/* 4g-1. Location template: reading width for the centred "Why artificial rock" intro (owner polish, 2026-10-06).
   Elementor's ".elementor.elementor .e-con > .elementor-widget { max-width: 100% }" outranked the 68ch rule above. */
.elementor .e-con.arc-loc-sec .arc-ihead--center > .elementor-widget-text-editor,
.elementor .e-con.arc-loc-sec .arc-ihead--center > .e-con-inner > .elementor-widget-text-editor { max-width: 820px; margin-inline: auto; text-wrap: balance; }
