.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ===========================================================
   OCALA PAVER SEALING — GLOBAL STYLES
   =========================================================== */

:root{
  --opc-blue:#1FA8E0;
  --opc-blue-deep:#0E7AAB;
  --opc-navy:#0A1F35;
  --opc-orange:#F58220;
  --opc-orange-dark:#D86A0E;
  --opc-black:#0A0E14;
  --opc-ink:#111827;
  --opc-muted:#5B6470;
  --opc-line:#E5E7EB;
  --opc-bg:#F5F7FA;
}

body{ font-family: 'Inter', system-ui, sans-serif; color: var(--opc-ink); }

/* HEADER */
.opc-topbar{ font-size: 13px; color: #cfd8e0; }
.opc-topbar .opc-topbar-left,
.opc-topbar .opc-topbar-right{
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: #cfd8e0;
  line-height: 1.4;
}
.opc-topbar .opc-stars{ color: #FFC93C; letter-spacing: 1px; margin-right: 4px; }

.opc-mainhdr{
  border-bottom: 3px solid var(--opc-orange) !important;
  box-shadow: 0 1px 0 rgba(10,31,53,.04);
}
.opc-mainhdr.elementor-sticky--effects{ background: #fff !important; }

.opc-logo-img img{ display:block; max-height: 56px; width: auto; }

.opc-nav .elementor-nav-menu > li > a{
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
  letter-spacing: .2px;
  color: var(--opc-ink) !important;
  transition: color .15s;
}
.opc-nav .elementor-nav-menu > li > a:hover,
.opc-nav .elementor-nav-menu > li.current-menu-item > a{
  color: var(--opc-blue-deep) !important;
}

.opc-phone{
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 22px;
  letter-spacing: .5px;
  color: var(--opc-blue-deep);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.opc-phone:hover{ color: var(--opc-blue); }
.opc-phone-icon{ font-size: 18px; }

.opc-btn-primary .elementor-button{
  background-color: var(--opc-orange) !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: .5px;
  text-transform: uppercase;
  padding: 12px 20px !important;
  border-radius: 6px !important;
  box-shadow: 0 3px 0 var(--opc-orange-dark);
  border: 0;
  transition: transform .12s, box-shadow .12s, background .15s;
}
.opc-btn-primary .elementor-button:hover{
  background-color: var(--opc-orange-dark) !important;
  transform: translateY(1px);
  box-shadow: 0 2px 0 var(--opc-orange-dark);
}

@media (max-width: 480px){
  .opc-header-cta .elementor-widget-html:has(.opc-phone){ display: none; }
}

/* MOBILE STICKY BAR */
.opc-mobile-bar{
  position: fixed !important;
  bottom: 0; left: 0; right: 0;
  z-index: 1001;
}
.opc-mobile-bar-inner{
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--opc-black);
  border-top: 3px solid var(--opc-orange);
}
.opc-mobile-bar-inner a{
  padding: 14px;
  text-align: center;
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.opc-mobile-bar-inner .opc-mb-call{ background: var(--opc-blue-deep); }
.opc-mobile-bar-inner .opc-mb-quote{ background: var(--opc-orange); }
.opc-mobile-bar-inner a:hover{ filter: brightness(1.08); }

@media (min-width: 1025px){
  .opc-mobile-bar{ display: none !important; }
}
@media (max-width: 1024px){
  body{ padding-bottom: 60px; }
}

/* FOOTER */
.opc-footer{ font-family: 'Inter', sans-serif; }
.opc-footer-h .elementor-heading-title{
  font-family: 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: 18px !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #fff !important;
  margin-bottom: 14px !important;
}
.opc-footer-text p{
  margin: 0 0 10px;
  color: #9AA7B6;
  font-size: 14px;
  line-height: 1.55;
}
.opc-footer-text a{ color: #fff; text-decoration: none; }
.opc-footer-text a:hover{ color: var(--opc-orange); }

.opc-footer-list .elementor-icon-list-text{
  color: #9AA7B6 !important;
  font-size: 14px !important;
  transition: color .15s;
}
.opc-footer-list .elementor-icon-list-item:hover .elementor-icon-list-text{
  color: var(--opc-orange) !important;
}
.opc-footer-list .elementor-icon-list-item{ padding: 4px 0; }

@media (max-width: 767px){
  .opc-footer-grid{ flex-direction: column !important; }
  .opc-footer-col{ width: 100% !important; }
}

.opc-footer-legal{ width: 100%; }
.opc-footer-legal-text{
  font-size: 12px;
  color: #5D6B7D;
  line-height: 1.5;
}
.opc-footer-legal-text a{
  color: #5D6B7D;
  text-decoration: none;
  margin: 0 4px;
}
.opc-footer-legal-text a:hover{ color: var(--opc-orange); }

.opc-header a, .opc-footer a{ text-decoration: none; }
.opc-header *, .opc-footer *{ box-sizing: border-box; }


/* ===========================================================
   HOMEPAGE STYLES (appended)
   =========================================================== */

.opc-section-head{ text-align:center; max-width:680px; margin:0 auto; }
.opc-section-head h2{
  font-family:'Barlow Condensed', Impact, sans-serif !important;
  font-size: clamp(34px, 4.4vw, 52px); letter-spacing:.5px; line-height:1.05;
  text-transform:uppercase; color: var(--opc-navy); margin:0 0 14px; font-weight:800;
}
.opc-section-head-light h2{ color:#fff; }
.opc-section-head p{ color: var(--opc-muted); font-size:16px; line-height:1.65; margin:0; }
.opc-section-head-light p{ color:#a8b3c2; }

.opc-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:700; color: var(--opc-orange);
  letter-spacing:2.4px; font-size:12px; text-transform:uppercase;
  margin-bottom:14px; font-family:'Inter',sans-serif;
}
.opc-eyebrow::before, .opc-eyebrow::after{
  content:""; width:18px; height:2px; background: var(--opc-orange); opacity:.7;
}

/* HERO */
.opc-hero{ color:#fff; position:relative; overflow:hidden; }
.opc-hero h1, .opc-hero-h1 .elementor-heading-title{
  font-family:'Barlow Condensed', Impact, sans-serif !important;
  font-size: clamp(42px, 7vw, 78px) !important;
  line-height:1.05 !important; letter-spacing:.5px; text-transform:uppercase;
  color:#fff !important; margin:0 !important; font-weight:800 !important;
}
.opc-hero h1 .opc-accent, .opc-hero-h1 .opc-accent{ color: var(--opc-orange); }
.opc-hero-text .opc-eyebrow{ color: var(--opc-orange); margin-bottom:18px; }
.opc-hero-lede{
  font-family:'Inter',sans-serif !important;
  font-size:18px !important; color:#cfe6f5 !important;
  line-height:1.55 !important; margin:18px 0 28px !important; max-width:560px;
}
.opc-hero .elementor-widget-text-editor{ margin:18px 0 28px; }
.opc-hero-ctas{ margin-bottom:26px !important; }
.opc-hero-trust{ display:flex; flex-wrap:wrap; gap:18px; font-size:13px; color:#cfe6f5; margin-top:18px; }
.opc-hero-trust span{ display:inline-flex; align-items:center; gap:6px; }
.opc-hero-trust .opc-dot{ width:6px; height:6px; border-radius:50%; background:var(--opc-orange); display:inline-block; }

.opc-btn-lg .elementor-button, .opc-btn-lg.opc-btn{ padding:16px 26px !important; font-size:15px !important; }
.opc-btn-ghost .elementor-button, .opc-btn-ghost.opc-btn{
  background:transparent !important; color:#fff !important;
  border:2px solid #fff !important; box-shadow:none !important;
  font-family:'Inter',sans-serif; font-weight:700; letter-spacing:.5px;
  text-transform:uppercase; padding:14px 24px; border-radius:6px;
  transition:all .15s; display:inline-flex; align-items:center; gap:8px; text-decoration:none;
}
.opc-btn-ghost .elementor-button:hover, .opc-btn-ghost.opc-btn:hover{
  background:#fff !important; color: var(--opc-navy) !important;
}

/* Before/after */
.opc-ba-wrap{ position:relative; }
.opc-ba{ box-shadow:0 30px 60px rgba(0,0,0,.45); position:relative; z-index:1; }
.opc-ba > div, .opc-ba .elementor-widget-html{ flex:1; }
.opc-ba-pane{ position:relative; border-radius:8px; overflow:hidden; aspect-ratio:1/1.05; background:#1a1a1a; }
.opc-ba-pane img{ width:100%; height:100%; object-fit:cover; display:block; }
.opc-ba-pane.opc-ba-before img{ filter:saturate(.65) brightness(.85); }
.opc-ba-label{
  position:absolute; top:10px; left:10px;
  background:#fff; color: var(--opc-ink);
  font-family:'Inter',sans-serif; font-weight:800; font-size:11px;
  letter-spacing:1.5px; padding:5px 10px; border-radius:4px;
}
.opc-ba-label-orange{ background: var(--opc-orange); color:#fff; }

.opc-float-card{
  position:absolute; background:#fff; color: var(--opc-ink);
  border-radius:12px; padding:12px 14px;
  box-shadow:0 14px 32px rgba(0,0,0,.25);
  display:flex; align-items:center; gap:11px;
  border:1px solid rgba(255,255,255,.4); z-index:2; max-width:240px;
}
.opc-float-card strong{
  display:block; font-family:'Barlow Condensed',sans-serif;
  font-weight:800; font-size:17px; letter-spacing:.5px;
  color: var(--opc-navy); line-height:1.05;
}
.opc-float-card small{ display:block; color: var(--opc-muted); font-size:11.5px; margin-top:2px; }
.opc-float-ico{
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  color:#fff; font-weight:800; font-size:15px; flex-shrink:0;
}
.opc-ico-blue{ background: var(--opc-blue-deep); }
.opc-ico-orange{ background: var(--opc-orange); }
.opc-float-tl{ top:-14px; left:-14px; }
.opc-float-br{ bottom:-14px; right:-14px; }
@media (max-width: 640px){
  .opc-float-card{ position:relative; top:auto; left:auto; bottom:auto; right:auto; margin:12px 0; max-width:100%; }
}

/* TRUST STRIP */
.opc-trust-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:18px;
  text-align:center; width:100%; max-width:1200px;
}
@media (min-width:760px){ .opc-trust-grid{ grid-template-columns:repeat(4,1fr); } }
.opc-trust-item{ display:flex; flex-direction:column; align-items:center; gap:6px; }
.opc-trust-num{
  font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:38px; color: var(--opc-blue-deep); line-height:1;
}
.opc-trust-lbl{ font-size:12px; color: var(--opc-muted); letter-spacing:1.2px; text-transform:uppercase; font-weight:600; }

/* SERVICES */
.opc-svc-grid{ display:grid; gap:18px; grid-template-columns:1fr; margin-top:24px; }
@media (min-width:680px){ .opc-svc-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1040px){ .opc-svc-grid{ grid-template-columns:repeat(4,1fr); } }
.opc-svc-card{
  background:#fff; border-radius:12px; padding:28px;
  border:1px solid var(--opc-line);
  transition:transform .15s, box-shadow .15s, border-color .15s;
  position:relative; overflow:hidden;
}
.opc-svc-card:hover{ transform:translateY(-3px); box-shadow:0 18px 36px rgba(10,31,53,.10); border-color:var(--opc-blue); }
.opc-svc-card::before{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background: var(--opc-blue); transform:scaleX(0); transform-origin:left;
  transition:transform .25s;
}
.opc-svc-card:hover::before{ transform:scaleX(1); }
.opc-svc-icon{
  width:54px; height:54px; border-radius:12px;
  background: var(--opc-blue-deep); display:grid; place-items:center;
  margin-bottom:18px; color:#fff; font-size:22px;
}
.opc-svc-card h3{
  font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:22px; color: var(--opc-navy); margin:0 0 10px;
  letter-spacing:.5px; text-transform:uppercase; line-height:1.05;
}
.opc-svc-card p{ color: var(--opc-muted); font-size:14.5px; line-height:1.6; margin:0 0 14px; }
.opc-svc-more{ font-weight:700; color: var(--opc-blue-deep); font-size:13px; letter-spacing:1px; text-transform:uppercase; display:inline-flex; align-items:center; gap:6px; text-decoration:none; }
.opc-svc-more::after{ content:"→"; transition:transform .2s; }
.opc-svc-card:hover .opc-svc-more::after{ transform:translateX(4px); }

/* PROCESS */
.opc-step-grid{ display:grid; gap:22px; grid-template-columns:1fr; margin-top:24px; }
@media (min-width:880px){ .opc-step-grid{ grid-template-columns:repeat(3,1fr); gap:28px; } }
.opc-step{ background:#fff; border:1px solid var(--opc-line); border-radius:14px; padding:34px 28px; position:relative; }
.opc-step::before{ content:""; position:absolute; top:0; left:28px; right:28px; height:3px; background: var(--opc-orange); border-radius:0 0 3px 3px; }
.opc-step-num{ display:inline-flex; align-items:center; gap:8px; font-family:'Barlow Condensed',sans-serif; font-weight:800; letter-spacing:2px; font-size:13px; color: var(--opc-orange); text-transform:uppercase; margin-bottom:14px; }
.opc-step-dot{ width:6px; height:6px; border-radius:50%; background: var(--opc-orange); }
.opc-step h3{ font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:24px; color: var(--opc-navy); margin:0 0 12px; letter-spacing:.5px; text-transform:uppercase; line-height:1.05; }
.opc-step p{ color: var(--opc-muted); line-height:1.6; font-size:14.5px; margin:0; }
.opc-step-ic{ position:absolute; top:24px; right:24px; width:42px; height:42px; border-radius:10px; background:rgba(14,122,171,.08); display:grid; place-items:center; color: var(--opc-blue-deep); font-size:18px; }

/* GALLERY */
.opc-gallery-grid{ display:grid; gap:12px; grid-template-columns:repeat(2,1fr); margin-top:24px; }
@media (min-width:760px){ .opc-gallery-grid{ grid-template-columns:repeat(4,1fr); } }
.opc-tile{ position:relative; aspect-ratio:1/1; border-radius:10px; overflow:hidden; border:1px solid var(--opc-line); display:block; transition:transform .2s; text-decoration:none; }
.opc-tile:hover{ transform:translateY(-3px); }
.opc-tile img{ width:100%; height:100%; object-fit:cover; display:block; }
.opc-tile-tag{ position:absolute; left:10px; bottom:10px; background: var(--opc-navy); color:#fff; font-family:'Inter',sans-serif; font-size:11px; font-weight:800; letter-spacing:1.5px; padding:5px 9px; border-radius:4px; }

/* REVIEWS */
.opc-review-grid{ display:grid; gap:20px; grid-template-columns:1fr; margin-top:24px; }
@media (min-width:780px){ .opc-review-grid{ grid-template-columns:repeat(3,1fr); } }
.opc-review{ background:#fff; border:1px solid var(--opc-line); border-radius:12px; padding:28px; position:relative; }
.opc-review::before{ content:""; position:absolute; top:0; left:24px; width:36px; height:3px; background: var(--opc-blue-deep); border-radius:0 0 3px 3px; }
.opc-review .opc-stars{ color:#FFC93C; margin-bottom:12px; letter-spacing:2px; font-size:14px; }
.opc-review p{ font-size:15.5px; line-height:1.6; color: var(--opc-ink); margin:0 0 18px; }
.opc-review-who{ display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid var(--opc-line); }
.opc-review-who .opc-av{ width:40px; height:40px; border-radius:50%; background: var(--opc-blue-deep); color:#fff; display:grid; place-items:center; font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:14px; }
.opc-review-who small{ display:block; color: var(--opc-muted); font-size:12px; }
.opc-review-src{ position:absolute; top:24px; right:24px; font-size:11px; font-weight:700; color: var(--opc-muted); letter-spacing:1px; text-transform:uppercase; }

/* AREAS */
.opc-areas{ position:relative; overflow:hidden; }
.opc-areas::before{ content:""; position:absolute; top:-200px; right:-200px; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(31,168,224,.18), transparent 65%); pointer-events:none; }
.opc-pills{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:760px; margin:0 auto; }
.opc-pill{ padding:10px 18px; border:1px solid rgba(255,255,255,.18); border-radius:999px; font-size:14px; color:#cfd8e0; font-weight:500; font-family:'Inter',sans-serif; text-decoration:none; transition:all .15s; }
.opc-pill:hover{ background:#fff; border-color:#fff; color: var(--opc-navy); }

/* FINAL CTA */
.opc-final-cta{ position:relative; overflow:hidden; color:#fff; }
.opc-final-cta::before{ content:""; position:absolute; inset:0; opacity:.10; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='80' viewBox='0 0 160 80'><g fill='none' stroke='%23ffffff' stroke-width='1.5'><rect x='0' y='0' width='80' height='40'/><rect x='80' y='0' width='80' height='40'/><rect x='40' y='40' width='80' height='40'/><rect x='-40' y='40' width='80' height='40'/><rect x='120' y='40' width='80' height='40'/></g></svg>"); pointer-events:none; }
.opc-final-cta::after{ content:""; position:absolute; bottom:-180px; left:-100px; width:480px; height:480px; border-radius:50%; background:radial-gradient(circle, rgba(245,130,32,.20), transparent 65%); pointer-events:none; }
.opc-final-inner{ text-align:center; display:flex; flex-direction:column; gap:18px; align-items:center; max-width:760px; margin:0 auto; position:relative; z-index:1; }
.opc-final-inner h2{ font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:clamp(36px,5.2vw,58px); color:#fff; line-height:1.05; margin:0; letter-spacing:.5px; text-transform:uppercase; }
.opc-final-inner p{ max-width:560px; font-size:17px; color:#cfe6f5; line-height:1.6; margin:0; }
.opc-final-row{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:8px; }
.opc-final-row .opc-btn{ padding:17px 30px; font-size:15px; }

a.opc-btn{ display:inline-flex; align-items:center; gap:8px; padding:14px 24px; font-family:'Inter',sans-serif; font-weight:700; font-size:14px; letter-spacing:.5px; text-transform:uppercase; text-decoration:none; border-radius:6px; transition:all .15s; cursor:pointer; border:0; }
a.opc-btn-primary{ background:var(--opc-orange); color:#fff; box-shadow:0 3px 0 var(--opc-orange-dark); }
a.opc-btn-primary:hover{ background:var(--opc-orange-dark); transform:translateY(1px); box-shadow:0 2px 0 var(--opc-orange-dark); }

body.elementor-page .entry-title, body.page .entry-header, body.page-template-default .page-header{ display:none !important; }


/* Hero buttons — orange primary, ghost secondary */
.opc-hero-ctas .elementor-widget-button:first-child .elementor-button{
  background-color: var(--opc-orange) !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: .5px;
  text-transform: uppercase;
  padding: 16px 26px !important;
  border-radius: 6px !important;
  box-shadow: 0 3px 0 var(--opc-orange-dark);
}
.opc-hero-ctas .elementor-widget-button:first-child .elementor-button:hover{
  background-color: var(--opc-orange-dark) !important;
}
.opc-hero-ctas .elementor-widget-button:nth-child(2) .elementor-button{
  background: transparent !important;
  color: #fff !important;
  border: 2px solid #fff !important;
  box-shadow: none !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: .5px;
  text-transform: uppercase;
  padding: 14px 24px !important;
  border-radius: 6px !important;
}
.opc-hero-ctas .elementor-widget-button:nth-child(2) .elementor-button:hover{
  background: #fff !important;
  color: var(--opc-navy) !important;
}


/* Hero — force side-by-side layout on desktop (Elementor wraps in .e-con-inner) */
@media (min-width: 920px){
  .opc-hero-inner > .e-con-inner,
  .opc-hero-inner.e-con > .e-con-inner{
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 60px !important;
  }
  .opc-hero-text{
    width: 55% !important;
    flex: 0 0 55% !important;
    max-width: 55% !important;
  }
  .opc-ba-wrap{
    width: 45% !important;
    flex: 0 0 45% !important;
    max-width: 45% !important;
  }
}


/* ============================================================
   SERVICE PAGE STYLES
   ============================================================ */
.opc-svc-hero{ color:#fff; }
.opc-svc-hero .opc-eyebrow{ color: var(--opc-orange); margin-bottom: 0; }
.opc-svc-h1 .elementor-heading-title,
.opc-svc-hero h1{
  font-family:'Barlow Condensed', Impact, sans-serif !important;
  font-size: clamp(40px, 5.6vw, 64px) !important;
  line-height: 1.05 !important;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: #fff !important;
  margin: 0 !important;
  font-weight: 800 !important;
  text-align: center;
}
.opc-svc-h1 .opc-accent{ color: var(--opc-orange); }
.opc-svc-hero .elementor-widget-text-editor{
  text-align:center; max-width:760px; margin:0 auto !important;
}
.opc-svc-lede{
  font-family:'Inter',sans-serif !important;
  font-size:18px !important; color:#cfe6f5 !important;
  line-height:1.6 !important; margin:0 !important;
  text-align:center;
}
.opc-svc-hero-ctas{ margin-top: 8px !important; }

/* Numbered benefit blocks */
.opc-benefit-grid{ display:grid; gap:22px; grid-template-columns:1fr; margin-top:24px; }
@media (min-width: 680px){ .opc-benefit-grid{ grid-template-columns:repeat(2,1fr); } }
.opc-benefit{
  background:#fff; border:1px solid var(--opc-line); border-radius:14px;
  padding:32px 28px; position:relative;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.opc-benefit:hover{ transform:translateY(-3px); box-shadow:0 18px 36px rgba(10,31,53,.10); border-color: var(--opc-blue); }
.opc-benefit-num{
  font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:44px; color: var(--opc-orange); line-height:1;
  margin-bottom:14px; letter-spacing:1px;
}
.opc-benefit h3{
  font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:22px; color: var(--opc-navy); margin:0 0 10px;
  letter-spacing:.5px; text-transform:uppercase; line-height:1.05;
}
.opc-benefit p{ color: var(--opc-muted); font-size:15px; line-height:1.6; margin:0; }

/* FAQ collapsible */
.opc-faq-list{ display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.opc-faq-item{
  background:#fff; border:1px solid var(--opc-line); border-radius:10px;
  overflow:hidden; transition:border-color .15s, box-shadow .15s;
}
.opc-faq-item:hover{ border-color: var(--opc-blue); }
.opc-faq-item[open]{ border-color: var(--opc-blue-deep); box-shadow:0 4px 16px rgba(10,31,53,.06); }
.opc-faq-item summary{
  list-style:none; cursor:pointer;
  padding:18px 50px 18px 22px;
  font-family:'Inter',sans-serif; font-weight:600; font-size:16px;
  color: var(--opc-navy); position:relative; user-select:none;
}
.opc-faq-item summary::-webkit-details-marker{ display:none; }
.opc-faq-item summary::after{
  content:"+"; position:absolute; right:22px; top:50%;
  transform: translateY(-50%);
  font-family:'Inter',sans-serif; font-weight:600;
  font-size:22px; color: var(--opc-blue-deep); line-height:1;
}
.opc-faq-item[open] summary::after{ content:"−"; }
.opc-faq-item summary:hover{ color: var(--opc-blue-deep); }
.opc-faq-a{
  padding: 0 22px 20px;
  color: var(--opc-ink); font-size:15px; line-height:1.65;
}
.opc-faq-a [itemprop="text"]{ color: var(--opc-muted); }

/* Cross-sell cards */
.opc-cross-grid{ display:grid; gap:18px; grid-template-columns:1fr; margin-top:24px; }
@media (min-width: 760px){ .opc-cross-grid{ grid-template-columns:repeat(3,1fr); } }
.opc-cross-card{
  background:#fff; border:1px solid var(--opc-line); border-radius:14px;
  padding:30px 28px; display:block; text-decoration:none;
  transition:transform .15s, box-shadow .15s, border-color .15s;
  position:relative; overflow:hidden;
}
.opc-cross-card::before{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background: var(--opc-orange); transform: scaleX(0); transform-origin: left;
  transition: transform .25s;
}
.opc-cross-card:hover{ transform:translateY(-3px); box-shadow:0 18px 36px rgba(10,31,53,.10); border-color: var(--opc-orange); }
.opc-cross-card:hover::before{ transform: scaleX(1); }
.opc-cross-card h3{
  font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:22px; color: var(--opc-navy); margin:0 0 10px;
  letter-spacing:.5px; text-transform:uppercase;
}
.opc-cross-card p{ color: var(--opc-muted); font-size:14.5px; line-height:1.6; margin:0 0 14px; }
.opc-cross-link{
  font-weight:700; color: var(--opc-blue-deep);
  font-size:13px; letter-spacing:1px; text-transform:uppercase;
}

/* Service hero buttons (orange + ghost) */
.opc-svc-hero-ctas .elementor-widget-button:first-child .elementor-button{
  background-color: var(--opc-orange) !important; color:#fff !important;
  font-family:'Inter',sans-serif !important; font-weight:700 !important;
  font-size:15px !important; letter-spacing:.5px;
  text-transform:uppercase; padding:16px 26px !important;
  border-radius:6px !important;
  box-shadow: 0 3px 0 var(--opc-orange-dark);
}
.opc-svc-hero-ctas .elementor-widget-button:first-child .elementor-button:hover{
  background-color: var(--opc-orange-dark) !important;
}
.opc-svc-hero-ctas .elementor-widget-button:nth-child(2) .elementor-button{
  background:transparent !important; color:#fff !important;
  border:2px solid #fff !important; box-shadow:none !important;
  font-family:'Inter',sans-serif !important; font-weight:700 !important;
  font-size:15px !important; letter-spacing:.5px;
  text-transform:uppercase; padding:14px 24px !important;
  border-radius:6px !important;
}
.opc-svc-hero-ctas .elementor-widget-button:nth-child(2) .elementor-button:hover{
  background:#fff !important; color: var(--opc-navy) !important;
}

/* Service-area map embed */
.opc-map-wrap{
  max-width:1000px; margin:0 auto 36px;
  border-radius:14px; overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 24px 60px rgba(0,0,0,.35);
  aspect-ratio:16/9; background:#0a1f35;
}
.opc-map-wrap iframe{ display:block; width:100%; height:100%; border:0; filter:saturate(.92); }
@media (max-width: 640px){ .opc-map-wrap{ aspect-ratio:4/5; margin-bottom:28px; } }

/* Mobile section padding */
@media (max-width: 640px){
  .opc-svc-hero{ padding-top:60px !important; padding-bottom:60px !important; }
  .opc-services, .opc-why, .opc-process, .opc-gallery,
  .opc-faq, .opc-areas, .opc-cross{
    padding-top:54px !important; padding-bottom:54px !important;
  }
  .opc-final-cta{ padding-top:64px !important; padding-bottom:64px !important; }
  .opc-faq-item summary{ padding:20px 50px 20px 20px; font-size:15.5px; line-height:1.45; }
  .opc-svc-hero-ctas .elementor-button{ width:100%; min-width:240px; }
  .opc-cross-card{ padding:26px 22px; }
  .opc-benefit-num{ font-size:36px; }
}


/* ==========================================================
   OPC: Primary nav dropdown (Services submenu)
   ========================================================== */
.opc-mainhdr ul.elementor-nav-menu > li.menu-item-has-children > a::after,
.opc-mainhdr ul.elementor-nav-menu > li.menu-item-has-children > a .sub-arrow{
  content: "";
  display: inline-block;
  width: 0; height: 0;
  margin-left: 6px;
  vertical-align: middle;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: .8;
}
.opc-mainhdr ul.elementor-nav-menu > li.menu-item-has-children > a .sub-arrow{ display:none; }
.opc-mainhdr ul.elementor-nav-menu > li > ul.sub-menu{
  min-width: 220px !important;
  background: #fff !important;
  border-top: 3px solid var(--opc-orange) !important;
  border-radius: 0 0 8px 8px !important;
  box-shadow: 0 12px 28px rgba(10,31,53,.15) !important;
  padding: 6px 0 !important;
  z-index: 99 !important;
}
.opc-mainhdr ul.elementor-nav-menu > li > ul.sub-menu > li > a{
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  color: var(--opc-navy) !important;
  padding: 12px 22px !important;
  letter-spacing: .2px;
  border-bottom: 1px solid var(--opc-line);
  transition: background .15s, color .15s, padding-left .15s;
}
.opc-mainhdr ul.elementor-nav-menu > li > ul.sub-menu > li:last-child > a{
  border-bottom: 0;
}
.opc-mainhdr ul.elementor-nav-menu > li > ul.sub-menu > li > a:hover{
  background: var(--opc-blue-pale, #eaf6fc) !important;
  color: var(--opc-blue-deep) !important;
  padding-left: 26px !important;
}

/* Mobile/tablet — sub-menu inside burger drawer */
.opc-mainhdr .elementor-nav-menu--dropdown ul.sub-menu{
  background: rgba(255,255,255,.04) !important;
  border-left: 3px solid var(--opc-orange) !important;
  margin: 4px 0 8px 12px !important;
}
.opc-mainhdr .elementor-nav-menu--dropdown ul.sub-menu li a.elementor-sub-item{
  padding-left: 22px !important;
  font-size: 14.5px !important;
}
/* End OPC nav dropdown */


/* ==========================================================
   OPC: About + Contact page components
   ========================================================== */
/* About page — story copy */
.opc-story{ max-width: 820px; margin: 0 auto; }
.opc-story p{
  font-size: 17px;
  line-height: 1.75;
  color: var(--opc-ink);
  margin: 0 0 18px;
}
.opc-story p:last-child{ margin-bottom: 0; }

/* About page — trust strip (stats) */
.opc-trust-row{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  text-align: center;
}
@media (min-width: 760px){
  .opc-trust-row{ grid-template-columns: repeat(4, 1fr); }
}
.opc-trust-item{ padding: 8px 4px; }
.opc-trust-num{
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 52px;
  color: var(--opc-orange);
  line-height: 1;
  letter-spacing: 0.5px;
}
.opc-trust-label{
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--opc-muted);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-top: 8px;
}

/* Contact page — two-column layout */
.opc-contact-grid > .e-con-inner,
.opc-contact-grid{
  align-items: stretch !important;
}
.opc-contact-form-col,
.opc-contact-info-col{
  width: 100% !important;
  flex: 1 1 100%;
}
@media (min-width: 880px){
  .opc-contact-form-col{ flex: 0 0 58% !important; max-width: 58%; }
  .opc-contact-info-col{ flex: 0 0 calc(42% - 32px) !important; max-width: calc(42% - 32px); }
}

/* Form heading */
.opc-form-head h2{
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 32px;
  color: var(--opc-navy);
  text-transform: uppercase;
  margin: 0 0 6px;
  line-height: 1.05;
  letter-spacing: 0.5px;
}
.opc-form-head p{
  color: var(--opc-muted);
  font-size: 15px;
  margin: 0 0 22px;
}

/* Elementor form widget — branded fields & button */
.opc-contact-form-col .elementor-form .elementor-field-group label{
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 13px;
  color: var(--opc-navy);
  letter-spacing: 0.3px;
  margin-bottom: 6px;
}
.opc-contact-form-col .elementor-form .elementor-field{
  font-size: 15px !important;
  padding: 12px 14px !important;
  border: 1px solid var(--opc-line) !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: var(--opc-navy) !important;
  transition: border-color .15s, box-shadow .15s;
}
.opc-contact-form-col .elementor-form .elementor-field:focus{
  outline: none;
  border-color: var(--opc-blue) !important;
  box-shadow: 0 0 0 3px rgba(31,168,224,.15) !important;
}
.opc-contact-form-col .elementor-form .elementor-field-group{ margin-bottom: 16px !important; }
.opc-contact-form-col .elementor-form button[type=submit]{
  background-color: var(--opc-orange) !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding: 16px 26px !important;
  border-radius: 6px !important;
  border: none;
  width: 100%;
  box-shadow: 0 3px 0 var(--opc-orange-dark);
  cursor: pointer;
  transition: background .15s;
}
.opc-contact-form-col .elementor-form button[type=submit]:hover{
  background-color: var(--opc-orange-dark) !important;
}

/* Contact info card */
.opc-contact-card{
  background: #fff;
  border: 1px solid var(--opc-line);
  border-radius: 14px;
  padding: 32px 28px;
  height: 100%;
  box-shadow: 0 2px 8px rgba(10,31,53,.04);
}
.opc-contact-card h3{
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: 26px;
  color: var(--opc-navy);
  margin: 0 0 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.opc-contact-sub{
  color: var(--opc-muted);
  font-size: 14.5px;
  margin: 0 0 22px;
}
.opc-contact-row{
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px solid var(--opc-line);
}
.opc-contact-row:first-of-type{ border-top: none; padding-top: 0; }
.opc-contact-icon{
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: rgba(245,130,32,.10);
  color: var(--opc-orange);
  display: flex;
  align-items: center;
  justify-content: center;
}
.opc-contact-icon svg{ display: block; }
.opc-contact-label{
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: var(--opc-muted);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 2px;
}
.opc-contact-value{
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--opc-navy);
  text-decoration: none;
  letter-spacing: 0.3px;
}
.opc-contact-value:hover{ color: var(--opc-blue-deep); }
.opc-contact-value-static{
  font-family: 'Inter', sans-serif;
  font-size: 14.5px;
  color: var(--opc-ink);
  line-height: 1.55;
}
.opc-contact-badge{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--opc-line);
}
.opc-contact-badge span{
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: var(--opc-blue-deep);
  background: rgba(31,168,224,.08);
  padding: 6px 12px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}

/* Mobile — stack contact card under form */
@media (max-width: 879px){
  .opc-contact-card{ padding: 26px 22px; }
  .opc-contact-form-col{ padding: 28px 22px !important; }
}
/* End OPC About + Contact components */


/* ==========================================================
   OPC: Mobile header polish + sticky bar full-width
   ========================================================== */
@media (max-width: 880px){
  /* Hide phone-text + Free Estimate button in main header on mobile.
     The sticky bottom bar already handles both CTAs. */
  .opc-mainhdr .opc-header-cta,
  .opc-mainhdr > .e-con-inner > .elementor-widget:not(.elementor-widget-image):not(.elementor-widget-nav-menu){
    display: none !important;
  }
  /* Tighten main header padding + spacing */
  .opc-mainhdr{
    padding: 12px 16px !important;
  }
  .opc-mainhdr > .e-con-inner{
    gap: 12px !important;
  }
  /* Logo cap on mobile so it doesn't crowd the burger */
  .opc-mainhdr .elementor-widget-image img{
    max-height: 56px !important;
    width: auto !important;
  }
  /* Topbar slimmer on mobile */
  .opc-topbar{
    padding: 6px 14px !important;
  }
  .opc-topbar .opc-topbar-text,
  .opc-topbar .opc-topbar-cta{
    font-size: 11px !important;
    letter-spacing: .3px;
  }
}

/* Sticky mobile bar — guarantee full-width 50/50 buttons + iOS safe area */
.opc-mobile-bar{
  width: 100% !important;
  left: 0 !important;
  right: 0 !important;
}
.opc-mobile-bar > .elementor-element,
.opc-mobile-bar .elementor-widget-html,
.opc-mobile-bar .elementor-widget-container{
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.opc-mobile-bar-inner{
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  background: var(--opc-navy) !important;
  border-top: 3px solid var(--opc-orange) !important;
  padding-bottom: env(safe-area-inset-bottom, 0px) !important;
}
.opc-mobile-bar-inner a{
  width: 100% !important;
  min-height: 56px;
  padding: 16px 8px !important;
  font-size: 14px !important;
  letter-spacing: 1px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
/* Hide the emoji icon, replace with inline SVG via ::before */
.opc-mobile-bar-inner .opc-mb-call img.emoji{ display: none !important; }
.opc-mobile-bar-inner .opc-mb-call::before{
  content: "";
  width: 16px; height: 16px;
  display: inline-block;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
}
/* End OPC mobile header polish */


/* OPC: By Request tag badge */
.opc-svc-card h3 .opc-tag,
.opc-cross-card h3 .opc-tag,
.opc-benefit h3 .opc-tag,
h3 .opc-tag{
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--opc-blue-deep);
  background: rgba(31,168,224,.10);
  border: 1px solid rgba(31,168,224,.25);
  padding: 3px 8px;
  border-radius: 999px;
  margin-left: 8px;
  vertical-align: middle;
  line-height: 1.2;
}
/* End OPC by-request tag *//* End custom CSS */