/*
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;
  }
  .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; }
  .arc-nav .sub-menu li.arc-menu-all a::after { content: "\2192"; font-weight: 800; }
}
.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; }
.arc-footer > .e-con-inner { position: relative; z-index: 1; }
.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; }

/* Mobile conversion bar */
.e-con.arc-mobile-bar { display: none; }
@media (max-width: 767px) {
  body { padding-bottom: 74px; }
  .e-con.arc-mobile-bar {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom)) !important;
    background: rgba(255,255,255,.96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border-top: 1px solid var(--arc-line-cool); box-shadow: 0 -10px 30px -18px rgba(8,80,115,.4);
  }
  .arc-mobile-bar .elementor-widget-button { flex: 1; }
  .arc-mobile-bar .elementor-button { width: 100%; min-height: 50px; padding: 0 14px; }
}

/* ==========================================================================
   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; }
