/* Minimal Elementor bridges for Orange County.
   Customizer Additional CSS still owns the oc-* design. */

.awl-native-oc.oc-page {
  width: 100%;
  max-width: none !important;
  margin: 0;
  padding: 0 !important;
  gap: 0 !important;
}

.awl-native-oc > .e-con-inner {
  max-width: none !important;
  padding: 0 !important;
  gap: 0 !important;
}

/* Elementor's full-width container rule is more specific than the legacy
   Customizer `.oc-wrap` rule. Restore the original centered page wrapper. */
.awl-native-oc .oc-wrap {
  width: 100%;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px;
}

/* Hero: Elementor flex -> original 2-col grid */
.awl-native-oc .oc-hero {
  min-height: 760px;
  justify-content: center;
  background-image: linear-gradient(90deg, rgba(16, 26, 48, .92), rgba(16, 26, 48, .68), rgba(16, 26, 48, .26)), var(--hero) !important;
  background-size: cover !important;
  background-position: center !important;
}

.awl-native-oc .oc-hero-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 900px) minmax(390px, 500px);
  gap: 84px;
  align-items: center;
  width: 100%;
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 32px;
}

.awl-native-oc .oc-hero-copy {
  gap: 0;
  max-width: 900px;
  font-family: Poppins, Arial, sans-serif;
}

.awl-native-oc .oc-hero h1.elementor-heading-title {
  max-width: 900px;
  margin: 0 0 18px;
  color: #fff;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: clamp(42px, 4.55vw, 68px);
  line-height: 1.04;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: normal;
}

.awl-native-oc .oc-hero-copy > .elementor-widget-text-editor p {
  max-width: 860px;
  margin: 0 0 26px;
  color: #F3F8FF;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.62;
}

.awl-native-oc .oc-hero-copy .oc-badge-row,
.awl-native-oc .oc-hero-copy .oc-badge-row span,
.awl-native-oc .oc-hero-copy .oc-trust {
  font-family: Poppins, Arial, sans-serif !important;
}

/* Badge / trust markup kept as original HTML inside text-editor */
.awl-native-oc .oc-hero-copy .oc-badge-row {
  display: flex !important;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 28px;
}

.awl-native-oc .oc-hero-copy .oc-badge-row span,
.awl-native-oc .oc-hero-copy .oc-trust {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 999px;
  background: rgba(255, 255, 255, .13);
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-align: center;
}

.awl-native-oc .oc-hero-copy .oc-trust {
  margin-top: 18px;
  border-color: rgba(191, 229, 183, .62);
  background: rgba(58, 158, 30, .24);
}

.awl-native-oc .oc-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  width: auto;
}

.awl-native-oc .oc-actions > .elementor-widget-button,
.awl-native-oc .oc-btn,
.awl-native-oc .oc-btn .elementor-widget-container,
.awl-native-oc .oc-btn .elementor-button-wrapper {
  width: auto !important;
  max-width: none;
}

.awl-native-oc .oc-btn .elementor-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: 52px;
  padding: 14px 24px;
  border: 0 !important;
  border-radius: 6px;
  text-decoration: none;
  font: 900 15px/1.2 Poppins, Arial, sans-serif !important;
  text-transform: uppercase;
  letter-spacing: normal;
}

.awl-native-oc .oc-call .elementor-button {
  background: var(--green, #3A9E1E) !important;
  color: #fff !important;
}

.awl-native-oc .oc-secondary .elementor-button {
  background: #fff !important;
  color: var(--navy, #101A30) !important;
}

/* Converted section heads (kickers/titles as Elementor headings) */
.awl-native-oc .oc-kicker,
.awl-native-oc .oc-kicker .elementor-heading-title,
.awl-native-oc p.oc-kicker {
  color: var(--green, #3A9E1E) !important;
}

.awl-native-oc .oc-kicker .elementor-heading-title {
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 0 0 8px;
}

/* Restore the original section rhythm after conversion to Elementor
   containers, whose generated styles otherwise zero this padding. */
.awl-native-oc .oc-section,
.awl-native-oc .oc-final {
  padding-top: 84px;
  padding-bottom: 84px;
}

.awl-native-oc .oc-intro-copy h2.elementor-heading-title,
.awl-native-oc .oc-section h2.elementor-heading-title,
.awl-native-oc .oc-final h2.elementor-heading-title {
  margin: 0 0 14px;
  color: var(--navy, #101A30);
  font-family: Poppins, Arial, sans-serif !important;
  font-size: clamp(32px, 3.6vw, 52px);
  line-height: 1.07;
  font-weight: 900;
  text-transform: uppercase;
}

.awl-native-oc .oc-intro-copy {
  gap: 0;
  font-family: Poppins, Arial, sans-serif;
}

.awl-native-oc .oc-intro-copy .elementor-widget-text-editor p {
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 17px;
  margin: 0 0 18px;
  color: var(--text, #263143);
  line-height: 1.62;
}

.awl-native-oc .oc-final h2.elementor-heading-title {
  color: #fff;
}

.awl-native-oc .oc-head {
  text-align: center;
  max-width: 940px;
  margin: 0 auto 42px;
  gap: 0;
}

.awl-native-oc .oc-intro,
.awl-native-oc .oc-split {
  display: grid !important;
  grid-template-columns: 1.05fr .95fr;
  gap: 44px;
  align-items: start;
}

/* Opening proof cards retained inside a Text Editor widget. */
.awl-native-oc .oc-proof {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.awl-native-oc .oc-proof > div {
  padding: 20px;
  border: 1px solid var(--line, #DDE7F0);
  border-left: 5px solid var(--green, #3A9E1E);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(16, 26, 48, .06);
}

.awl-native-oc .oc-proof strong {
  display: block;
  margin-bottom: 6px;
  color: var(--navy, #101A30);
  font-size: 21px;
  line-height: 1.12;
}

.awl-native-oc .oc-proof span {
  display: block;
  font-size: 14px;
  line-height: 1.5;
}

/* Cities: each chip is a native Heading widget (same look as original spans). */
.awl-native-oc .oc-city-grid {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
}

.awl-native-oc .oc-city-grid > .elementor-widget-heading {
  background: #fff;
  border: 1px solid var(--line, #DDE7F0);
  border-left: 4px solid var(--green, #3A9E1E);
  border-radius: 6px;
  padding: 11px 12px;
  margin: 0;
  box-shadow: 0 8px 18px rgba(16, 26, 48, .05);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.awl-native-oc .oc-city-grid > .elementor-widget-heading:hover {
  transform: translateY(-3px);
  border-color: rgba(58, 158, 30, .38);
  box-shadow: 0 10px 22px rgba(16, 26, 48, .08);
}

.awl-native-oc .oc-city-grid .elementor-heading-title,
.awl-native-oc .oc-city-grid .elementor-heading-title a {
  margin: 0;
  color: var(--navy, #101A30) !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.3;
  text-decoration: none;
}

.awl-native-oc .oc-service-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

/*
 * Native Elementor adds wrapper divs that the original broad
 * `.oc-service-grid div` rule was never written for. Reset every wrapper,
 * then restore the green divider and padding on the copy container only.
 */
.awl-native-oc .oc-service-grid div {
  padding: 0 !important;
  border-top: 0 !important;
}

.awl-native-oc .oc-service-card {
  gap: 0 !important;
  background: #fff;
  border: 1px solid var(--line, #DDE7F0);
  border-radius: 9px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(16, 26, 48, .07);
  padding: 0 !important;
}

.awl-native-oc .oc-service-card > .e-con-inner {
  gap: 0 !important;
}

.awl-native-oc .oc-service-card .elementor-widget-image,
.awl-native-oc .oc-service-card .elementor-widget-image .elementor-widget-container,
.awl-native-oc .oc-service-card .elementor-widget-image a,
.awl-native-oc .oc-service-card .elementor-widget-image img {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.awl-native-oc .oc-service-card .elementor-widget-image a {
  display: block !important;
  height: 220px !important;
  line-height: 0 !important;
}

.awl-native-oc .oc-service-card img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  display: block !important;
}

.awl-native-oc .oc-service-card .oc-service-copy,
.awl-native-oc .oc-service-card .oc-service-copy.e-con {
  padding: 22px !important;
  border-top: 5px solid var(--green, #3A9E1E) !important;
  gap: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.awl-native-oc .oc-service-card .oc-service-copy > .e-con-inner {
  gap: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.awl-native-oc .oc-service-card h3.elementor-heading-title,
.awl-native-oc .oc-service-card h3.elementor-heading-title a {
  margin: 0 0 10px !important;
  padding: 0 !important;
  color: var(--navy, #101A30) !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  text-decoration: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

.awl-native-oc .oc-service-card h3.elementor-heading-title::before,
.awl-native-oc .oc-service-card h3.elementor-heading-title::after,
.awl-native-oc .oc-service-card .elementor-widget-heading::before,
.awl-native-oc .oc-service-card .elementor-widget-heading::after {
  content: none !important;
  display: none !important;
}

.awl-native-oc .oc-service-card .elementor-widget-text-editor,
.awl-native-oc .oc-service-card .elementor-widget-text-editor .elementor-widget-container,
.awl-native-oc .oc-service-card .elementor-widget-heading,
.awl-native-oc .oc-service-card .elementor-widget-heading .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: none !important;
}

.awl-native-oc .oc-service-card .elementor-widget-text-editor p {
  margin: 0 !important;
  padding: 0 !important;
  color: var(--text, #263143) !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.62 !important;
  text-align: left !important;
}

/* Process: five independent native Elementor cards, matching the original articles. */
.awl-native-oc .oc-process {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}

.awl-native-oc .oc-process-card {
  gap: 0 !important;
  background: #fff;
  border: 1px solid var(--line, #DDE7F0);
  border-top: 5px solid var(--green, #3A9E1E);
  border-radius: 9px;
  padding: 22px !important;
  box-shadow: 0 12px 30px rgba(16, 26, 48, .07);
}

.awl-native-oc .oc-process-card > .e-con-inner {
  gap: 0 !important;
}

.awl-native-oc .oc-process-card .elementor-widget-heading,
.awl-native-oc .oc-process-card .elementor-widget-heading .elementor-widget-container,
.awl-native-oc .oc-process-card .elementor-widget-text-editor,
.awl-native-oc .oc-process-card .elementor-widget-text-editor .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
}

.awl-native-oc .oc-process-number .elementor-heading-title {
  display: inline-flex !important;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  margin: 0 0 14px !important;
  padding: 0 !important;
  border-radius: 50%;
  background: var(--navy, #101A30) !important;
  color: #fff !important;
  font: 900 16px/1 Poppins, Arial, sans-serif !important;
}

.awl-native-oc .oc-process-card h3.elementor-heading-title {
  margin: 0 0 10px !important;
  color: var(--navy, #101A30) !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 22px !important;
  line-height: 1.18 !important;
  font-weight: 900 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

.awl-native-oc .oc-process-card .elementor-widget-text-editor p {
  margin: 0 !important;
  color: var(--text, #263143) !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 15px !important;
  line-height: 1.62 !important;
}

/* Active-problem split: native image widgets and editable checklist items. */
.awl-native-oc .oc-photo-stack {
  align-self: stretch;
  display: grid !important;
  grid-template-rows: minmax(320px, .9fr) minmax(430px, 1.35fr);
  gap: 24px;
  height: 100%;
}

.awl-native-oc .oc-photo-stack .oc-photo.elementor-widget-image {
  min-height: 0;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border-radius: 10px;
  background: none !important;
  box-shadow: 0 20px 45px rgba(16, 26, 48, .16);
}

.awl-native-oc .oc-photo .elementor-widget-container,
.awl-native-oc .oc-photo a,
.awl-native-oc .oc-photo img {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.awl-native-oc .oc-photo img {
  object-fit: cover !important;
}

.awl-native-oc .oc-split-copy {
  gap: 0 !important;
}

.awl-native-oc .oc-keywords {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

/* Neutralize the original `.oc-keywords div` rule on Elementor wrappers. */
.awl-native-oc .oc-keywords div {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0;
  background: none !important;
  box-shadow: none !important;
  transform: none;
}

/* The original rule adds a dot to every div; Elementor introduces several
   wrapper divs per widget, so suppress their pseudo-elements. */
.awl-native-oc .oc-keywords div:not(.oc-keyword-item)::before,
.awl-native-oc .oc-keywords div:not(.oc-keyword-item)::after {
  content: none !important;
  display: none !important;
}

.awl-native-oc .oc-keywords > .oc-keyword-item,
.awl-native-oc .oc-keywords > .e-con-inner > .oc-keyword-item {
  position: relative;
  margin: 0 !important;
  padding: 14px 16px 14px 34px !important;
  border: 1px solid var(--line, #DDE7F0) !important;
  border-radius: 6px;
  background: #fff !important;
  box-shadow: none !important;
}

.awl-native-oc .oc-keywords .oc-keyword-item::before {
  content: "";
  display: block !important;
  position: absolute;
  left: 14px;
  top: 22px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--green, #3A9E1E);
}

.awl-native-oc .oc-keyword-item .elementor-heading-title {
  margin: 0 !important;
  color: var(--navy, #101A30) !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 16px !important;
  line-height: 1.62 !important;
  font-weight: 800 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

/* Risk and FAQ sections: native Elementor cards matching the original grid. */
.awl-native-oc .oc-risk-grid,
.awl-native-oc .oc-faq {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.awl-native-oc .oc-risk-card,
.awl-native-oc .oc-faq-card {
  gap: 0 !important;
  background: #fff;
  border: 1px solid var(--line, #DDE7F0);
  border-left: 5px solid var(--green, #3A9E1E);
  border-radius: 8px;
  padding: 20px !important;
  box-shadow: 0 12px 30px rgba(16, 26, 48, .06);
}

.awl-native-oc .oc-risk-card > .e-con-inner,
.awl-native-oc .oc-faq-card > .e-con-inner {
  gap: 0 !important;
}

.awl-native-oc .oc-risk-card .elementor-widget-heading,
.awl-native-oc .oc-risk-card .elementor-widget-heading .elementor-widget-container,
.awl-native-oc .oc-risk-card .elementor-widget-text-editor,
.awl-native-oc .oc-risk-card .elementor-widget-text-editor .elementor-widget-container,
.awl-native-oc .oc-faq-card .elementor-widget-heading,
.awl-native-oc .oc-faq-card .elementor-widget-heading .elementor-widget-container,
.awl-native-oc .oc-faq-card .elementor-widget-text-editor,
.awl-native-oc .oc-faq-card .elementor-widget-text-editor .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
}

.awl-native-oc .oc-risk-card h3.elementor-heading-title,
.awl-native-oc .oc-risk-card h3.elementor-heading-title a,
.awl-native-oc .oc-faq-card h3.elementor-heading-title {
  margin: 0 0 10px !important;
  color: var(--navy, #101A30) !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 22px !important;
  line-height: 1.18 !important;
  font-weight: 900 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  text-decoration: none !important;
}

.awl-native-oc .oc-risk-card .elementor-widget-text-editor p,
.awl-native-oc .oc-faq-card .elementor-widget-text-editor p {
  margin: 0 !important;
  color: var(--text, #263143) !important;
  font-family: Poppins, Arial, sans-serif !important;
  font-size: 15px !important;
  line-height: 1.62 !important;
}

.awl-native-oc .oc-final .oc-actions {
  justify-content: center;
}

.awl-native-oc .oc-final {
  background: var(--navy, #101A30);
  color: #fff;
  text-align: center;
}

.awl-native-oc .oc-final .elementor-widget-text-editor p {
  max-width: 820px;
  margin: 0 auto 18px;
  color: #E9F2FB;
  font-size: 17px;
  line-height: 1.62;
}

.awl-native-oc .oc-final .oc-small,
.awl-native-oc .oc-final .oc-small a {
  color: #E9F2FB !important;
  font-size: 14px;
}

@media (max-width: 1180px) {
  .awl-native-oc .oc-city-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .awl-native-oc .oc-service-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .awl-native-oc .oc-process {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 900px) {
  .awl-native-oc .oc-hero-grid,
  .awl-native-oc .oc-intro,
  .awl-native-oc .oc-split {
    grid-template-columns: 1fr;
  }
  .awl-native-oc .oc-proof {
    grid-template-columns: 1fr;
  }
  .awl-native-oc .oc-city-grid {
    grid-template-columns: 1fr;
  }
  .awl-native-oc .oc-photo-stack {
    grid-template-rows: none;
    height: auto;
  }
  .awl-native-oc .oc-photo-stack .oc-photo.elementor-widget-image {
    min-height: 300px;
  }
  .awl-native-oc .oc-risk-grid,
  .awl-native-oc .oc-faq {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .awl-native-oc .oc-wrap {
    padding-left: 17px;
    padding-right: 17px;
  }
  .awl-native-oc .oc-section,
  .awl-native-oc .oc-final {
    padding-top: 62px;
    padding-bottom: 62px;
  }
  .awl-native-oc .oc-hero-grid {
    padding: 0 17px;
  }
  .awl-native-oc .oc-hero {
    min-height: auto;
    padding: 76px 0;
    background-image: linear-gradient(180deg, rgba(16, 26, 48, .62), rgba(16, 26, 48, .94)), var(--hero) !important;
  }
  .awl-native-oc .oc-hero h1.elementor-heading-title {
    font-size: 34px;
  }
  .awl-native-oc .oc-actions {
    display: grid;
    width: 100%;
  }
  .awl-native-oc .oc-hero-copy .oc-badge-row {
    display: grid !important;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .awl-native-oc .oc-hero-copy .oc-badge-row span,
  .awl-native-oc .oc-hero-copy .oc-trust {
    width: 100%;
  }
  .awl-native-oc .oc-btn .elementor-button {
    width: 100% !important;
  }
  .awl-native-oc .oc-service-grid {
    grid-template-columns: 1fr;
  }
  .awl-native-oc .oc-service-card .elementor-widget-image a,
  .awl-native-oc .oc-service-card img {
    height: 210px !important;
  }
  .awl-native-oc .oc-process {
    grid-template-columns: 1fr;
  }
  .awl-native-oc .oc-keywords {
    grid-template-columns: 1fr;
  }
}

/* Preserve the original Orange County page motion after its content was
   converted from a monolithic HTML widget to native Elementor elements. */
@keyframes awlOcFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}
@keyframes awlOcFormIn {
  from { opacity: 0; transform: translateX(58px) scale(.98); }
  to { opacity: 1; transform: none; }
}
@keyframes awlOcPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(58, 158, 30, .28); }
  50% { box-shadow: 0 0 0 10px rgba(58, 158, 30, 0); }
}
@keyframes awlOcButtonShine {
  from { left: -55%; }
  to { left: 120%; }
}

.awl-native-oc.awl-site-motion-ready .awl-motion-hero-item {
  animation: awlOcFadeUp .68s cubic-bezier(.2, .8, .2, 1) both;
}
.awl-native-oc.awl-site-motion-ready .awl-motion-form {
  animation: awlOcFormIn .78s cubic-bezier(.2, .8, .2, 1) .18s both;
}
.awl-native-oc.awl-site-motion-ready .awl-site-motion-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition-property: opacity, transform, box-shadow, border-color;
  transition-duration: .62s, .62s, .24s, .24s;
  transition-timing-function: cubic-bezier(.2, .8, .2, 1), cubic-bezier(.2, .8, .2, 1), ease, ease;
}
.awl-native-oc.awl-site-motion-ready .awl-site-motion-reveal.is-visible {
  opacity: 1;
  transform: none;
}

.awl-native-oc .oc-service-card,
.awl-native-oc .oc-process-card,
.awl-native-oc .oc-risk-card,
.awl-native-oc .oc-faq-card,
.awl-native-oc .oc-proof > div {
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
  will-change: transform;
}
.awl-native-oc.awl-site-motion-ready .oc-service-card.is-visible:hover,
.awl-native-oc.awl-site-motion-ready .oc-process-card.is-visible:hover,
.awl-native-oc.awl-site-motion-ready .oc-risk-card.is-visible:hover,
.awl-native-oc.awl-site-motion-ready .oc-faq-card.is-visible:hover,
.awl-native-oc.awl-site-motion-ready .oc-proof > div.is-visible:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 38px rgba(16, 26, 48, .13);
  border-color: rgba(58, 158, 30, .42) !important;
}
.awl-native-oc .oc-service-card img {
  transition: transform .45s ease, opacity .25s ease;
}
.awl-native-oc .oc-service-card:hover img {
  transform: scale(1.045);
}

.awl-native-oc.awl-site-motion-ready .oc-photo.awl-site-motion-reveal {
  transform: translateX(-34px) scale(.985);
  filter: blur(4px);
  transition: opacity .72s ease, transform .72s cubic-bezier(.2, .8, .2, 1), filter .72s ease;
}
.awl-native-oc.awl-site-motion-ready .oc-photo.awl-site-motion-reveal.is-visible {
  transform: none;
  filter: none;
}
.awl-native-oc.awl-site-motion-ready .oc-city-item.awl-site-motion-reveal,
.awl-native-oc.awl-site-motion-ready .oc-keyword-item.awl-site-motion-reveal {
  transform: translateY(16px) scale(.98);
  transition: opacity .5s ease, transform .5s cubic-bezier(.2, .8, .2, 1), box-shadow .22s ease, border-color .22s ease;
}
.awl-native-oc.awl-site-motion-ready .oc-city-item.awl-site-motion-reveal.is-visible,
.awl-native-oc.awl-site-motion-ready .oc-keyword-item.awl-site-motion-reveal.is-visible {
  transform: none;
}
.awl-native-oc.awl-site-motion-ready .oc-city-item.is-visible:hover,
.awl-native-oc.awl-site-motion-ready .oc-keyword-item.is-visible:hover {
  transform: translateY(-3px);
  border-color: rgba(58, 158, 30, .38) !important;
  box-shadow: 0 12px 26px rgba(16, 26, 48, .09);
}

.awl-native-oc .oc-btn .elementor-button,
.awl-native-oc form button {
  position: relative;
  overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, color .22s ease;
  will-change: transform;
}
.awl-native-oc .oc-btn .elementor-button::after,
.awl-native-oc form button::after {
  content: "";
  position: absolute;
  inset: -40% auto -40% -55%;
  width: 42%;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .46), transparent);
  opacity: 0;
}
.awl-native-oc .oc-btn .elementor-button:hover,
.awl-native-oc .oc-btn .elementor-button:focus,
.awl-native-oc form button:hover,
.awl-native-oc form button:focus {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(16, 26, 48, .20);
}
.awl-native-oc .oc-btn .elementor-button:hover::after,
.awl-native-oc .oc-btn .elementor-button:focus::after,
.awl-native-oc form button:hover::after,
.awl-native-oc form button:focus::after {
  opacity: 1;
  animation: awlOcButtonShine .72s ease;
}
.awl-native-oc .oc-call .elementor-button,
.awl-native-oc form button {
  animation: awlOcPulse 3.2s ease-in-out infinite;
}

body.elementor-editor-active .awl-native-oc .awl-site-motion-reveal,
body.elementor-editor-preview .awl-native-oc .awl-site-motion-reveal {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .awl-native-oc *,
  .awl-native-oc *::before,
  .awl-native-oc *::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
  .awl-native-oc.awl-site-motion-ready .awl-site-motion-reveal {
    opacity: 1 !important;
    filter: none !important;
  }
}
