/* Custom Patch Artist — logo sizing and homepage adjustments */

.header__logo,
.header__logo.header__logo-3 .logo-3 {
  width: 260px;
  max-width: 280px;
}

.header__logo.header__logo-3 .logo-3 img,
.offcanvas__logo a img,
.footer__logo img {
  width: 260px;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.header__logo.header__logo-3 {
  gap: 16px;
}

.footer__logo img {
  width: 260px;
  max-width: 280px;
}

.offcanvas__logo a {
  display: inline-block;
  background: #fff;
  padding: 6px 8px;
  line-height: 0;
}

.offcanvas__logo a img {
  width: 200px;
  max-width: 210px;
}

@media (max-width: 1199.98px) {
  .header__logo,
  .header__logo.header__logo-3 .logo-3,
  .header__logo.header__logo-3 .logo-3 img {
    width: 220px;
    max-width: 240px;
  }
}

@media (max-width: 991.98px) {
  .header__logo,
  .header__logo.header__logo-3 .logo-3,
  .header__logo.header__logo-3 .logo-3 img,
  .offcanvas__logo a img {
    width: 200px;
    max-width: 210px;
  }
}

@media (max-width: 575.98px) {
  .header__logo,
  .header__logo.header__logo-3 .logo-3,
  .header__logo.header__logo-3 .logo-3 img,
  .offcanvas__logo a img {
    width: 180px;
    max-width: 200px;
  }

  .footer__logo img {
    width: 240px;
  }
}

.banner__area .bg-color {
  background: linear-gradient(100deg, #f4f7f4 0%, #ffffff 46%, #eef3ee 100%);
}

.banner__content p {
  color: #4d554e;
  opacity: 1;
}

.hover-theme:hover {
  color: var(--rr-theme-primary);
}

.cpa-hero-actions {
  gap: 12px;
}

.cpa-hero-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.cpa-hero-grid img,
.cpa-patch-card img,
.cpa-work-card img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.cpa-patch-card,
.cpa-step,
.cpa-work-card,
.cpa-reason,
.cpa-contact-card,
.cpa-blog-card {
  background: #fff;
  border: 1px solid rgba(25, 29, 26, 0.08);
  border-radius: 8px;
  height: 100%;
}

.cpa-patch-card,
.cpa-work-card,
.cpa-reason,
.cpa-blog-card,
.cpa-contact-card {
  padding: 22px;
}

.cpa-patch-card h3,
.cpa-step h3,
.cpa-reason h3,
.cpa-work-card h3,
.cpa-blog-card h3 {
  color: var(--rr-heading-primary);
  font-size: 22px;
  margin: 14px 0 8px;
}

.cpa-patch-card p,
.cpa-step p,
.cpa-reason p,
.cpa-work-card p,
.cpa-blog-card p,
.cpa-contact-card p,
.cpa-about p {
  color: var(--rr-text-body);
  margin-bottom: 0;
}

.cpa-step {
  padding: 28px 22px;
}

.cpa-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--rr-theme-primary);
  color: #fff;
  font-weight: 600;
}

.cpa-section-space {
  padding-top: 100px;
  padding-bottom: 80px;
}

.cpa-soft-bg {
  background: #f7f8f6;
}

.main-menu ul li.active > a,
.main-menu ul li a:hover,
.footer__link ul li a:hover,
.footer__copyright a:hover {
  color: var(--rr-theme-primary);
}

.cpa-quote-form .form-control,
.cpa-quote-form .form-select {
  border: 1px solid rgba(25, 29, 26, 0.15);
  min-height: 52px;
  border-radius: 4px;
}

.cpa-quote-form textarea.form-control {
  min-height: 140px;
}

.cpa-quote-form .form-control:focus,
.cpa-quote-form .form-select:focus {
  border-color: var(--rr-theme-primary);
  box-shadow: 0 0 0 0.2rem rgba(55, 80, 54, 0.15);
}

.accordion-button:not(.collapsed) {
  color: var(--rr-heading-primary);
  background: #eef3ee;
  box-shadow: none;
}

.accordion-button:focus {
  box-shadow: 0 0 0 0.2rem rgba(55, 80, 54, 0.15);
}

.cpa-note {
  background: #fff;
  border-left: 3px solid var(--rr-theme-primary);
  padding: 14px 16px;
}

.cpa-page-hero h1,
.cpa-soft-bg h1 {
  color: var(--rr-heading-primary);
  font-size: clamp(38px, 5vw, 64px);
  line-height: 1.12;
}

.cpa-detail-image {
  max-height: 520px;
  width: 100%;
  object-fit: contain;
}

.cpa-patch-card .readmore,
.cpa-blog-card .readmore {
  color: var(--rr-theme-primary);
  font-weight: 600;
}

.cpa-patch-card:hover,
.cpa-work-card:hover,
.cpa-blog-card:hover {
  box-shadow: 0 14px 32px rgba(25, 29, 26, 0.08);
  transform: translateY(-3px);
  transition: box-shadow .2s ease, transform .2s ease;
}

@media (max-width: 767.98px) {
  .cpa-hero-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 28px;
  }

  .cpa-section-space {
    padding-top: 70px;
    padding-bottom: 50px;
  }
}

/* ---- products.php: highlights band ---- */
.cpa-highlights {
  background-color: #001D08;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
  padding: 70px 0;
}

.cpa-highlight {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 100%;
  padding: 24px 22px;
  background: rgba(255, 255, 255, 0.06);
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}

.cpa-highlight__icon {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #fff;
  color: var(--rr-theme-primary, #375036);
  font-size: 24px;
  transition: background .25s ease, color .25s ease;
}

.cpa-highlight__title {
  color: #fff;
  font-size: 18px;
  line-height: 1.3;
  margin: 0;
}

.cpa-highlight:hover {
  background: #fff;
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(0, 29, 8, 0.25);
}

.cpa-highlight:hover .cpa-highlight__icon {
  background: var(--rr-theme-primary, #375036);
  color: #fff;
}

.cpa-highlight:hover .cpa-highlight__title {
  color: var(--rr-heading-primary, #001D08);
}

/* ---- products.php: equal-height patch cards ---- */
.cpa-products-grid .cpa-patch-row > [class*="col-"] {
  display: flex;
}

.cpa-products-grid .cpa-patch-card {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.cpa-products-grid .cpa-patch-card h3 {
  line-height: 1.2;
  min-height: 2.4em;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cpa-products-grid .cpa-patch-card .readmore {
  margin-top: auto;
  padding-top: 15px;
}

@media (max-width: 767.98px) {
  .cpa-highlights {
    padding: 50px 0;
  }
}
.cpa-products-grid .cpa-section-title,
.cpa-products-grid .cpa-section-title h6,
.cpa-products-grid .cpa-section-title h2 {
  text-align: center;
}

/* ---- products.php: intro ---- */
.cpa-intro-title .latest-service__title-box-title h2 {
  line-height: 1.2;
}

.cpa-intro-text p {
  margin-bottom: 16px;
}

.cpa-intro-text p:last-child {
  margin-bottom: 0;
}

.cpa-intro-media {
  border-radius: 18px;
  overflow: hidden;
  animation: cpa-float 6s ease-in-out infinite;
  box-shadow: 0 18px 40px rgba(0, 29, 8, 0.12);
}

.cpa-intro-media__img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .6s ease;
}

.cpa-intro-media:hover .cpa-intro-media__img {
  transform: scale(1.04);
}

@keyframes cpa-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

@media (prefers-reduced-motion: reduce) {
  .cpa-intro-media {
    animation: none;
  }

  .cpa-intro-media__img {
    transition: none;
  }

  .cpa-intro-media:hover .cpa-intro-media__img {
    transform: none;
  }
}
/* ---- products.php: intro gradient CTA (keeps theme .rr-btn hover sweep) ---- */
.rr-btn.cpa-btn-gradient {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  border: 1px solid transparent;
  background-color: #001D08;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
  transition: color .3s ease, background-color .3s ease, border-color .3s ease;
}

.rr-btn.cpa-btn-gradient:hover,
.rr-btn.cpa-btn-gradient:focus,
.rr-btn.cpa-btn-gradient:focus-visible {
  color: #375036;
  border-color: #375036;
  background-color: #fff;
  background-image: none;
}

.rr-btn.cpa-btn-gradient:hover *,
.rr-btn.cpa-btn-gradient:focus *,
.rr-btn.cpa-btn-gradient:focus-visible * {
  color: #375036;
}
/* =====================================================================
   products.php premium polish (scoped: .cpa-products-hero, .cpa-section,
   .cpa-highlights, .cpa-products-grid)
   ===================================================================== */
.cpa-products-hero {
  background-image: url('../imgs/hero/Custom-Embroidery-Collection-Banner.webp');
  background-image: image-set(url('../imgs/hero/Custom-Embroidery-Collection-Banner.webp') type('image/webp'), url('../imgs/hero/Custom-Embroidery-Collection-Banner.webp') type('image/webp'));
}

.cpa-section {
  padding-top: 100px;
  padding-bottom: 100px;
}

.cpa-section .latest-service__title-box-title h2 {
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.2;
}

.cpa-section p {
  line-height: 1.7;
}

.cpa-intro-media img {
  max-width: 100%;
}

/* Highlights band */
.cpa-highlights {
  padding: 80px 0;
}

.cpa-highlights .row > [class*="col-"] {
  display: flex;
}

.cpa-highlight {
  width: 100%;
  min-height: 104px;
  padding: 22px 20px;
}

.cpa-highlight__title {
  font-size: 17px;
  line-height: 1.35;
}

.cpa-highlight__icon i {
  line-height: 1;
}

/* Product cards */
.cpa-products-grid .cpa-patch-card {
  padding: 18px 18px 24px;
  border-radius: 14px;
  border-color: rgba(0, 29, 8, 0.08);
  box-shadow: 0 4px 14px rgba(0, 29, 8, 0.04);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.cpa-products-grid .cpa-patch-card:hover {
  transform: translateY(-6px);
  border-color: rgba(55, 80, 54, 0.25);
  box-shadow: 0 18px 38px rgba(0, 29, 8, 0.12);
}

.cpa-patch-card__media {
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  overflow: hidden;
  background: #f4f7f4;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cpa-products-grid .cpa-patch-card__media img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  transition: transform .5s ease;
}

.cpa-products-grid .cpa-patch-card:hover .cpa-patch-card__media img {
  transform: scale(1.05);
}

.cpa-products-grid .cpa-patch-card h3 {
  font-size: 20px;
  line-height: 1.2;
  min-height: 2.4em;
  margin: 18px 0 10px;
}

.cpa-products-grid .cpa-patch-card p {
  font-size: 15px;
  line-height: 1.6;
  color: #4d554e;
}

.cpa-products-grid .cpa-patch-card .cpa-quote-btn {
  margin-top: auto;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 22px;
  border: 1px solid #375036;
  border-radius: 999px;
  color: #375036;
  background: transparent;
  font-size: 15px;
  font-weight: 600;
  transition: background-color .3s ease, color .3s ease;
}

.cpa-products-grid .cpa-patch-card p + .cpa-quote-btn {
  margin-top: auto;
}

.cpa-products-grid .cpa-patch-card p {
  margin-bottom: 20px;
}

.cpa-products-grid .cpa-patch-card .cpa-quote-btn:hover,
.cpa-products-grid .cpa-patch-card .cpa-quote-btn:focus-visible {
  background: #375036;
  color: #fff;
}

.cpa-intro-text + .cpa-hero-actions .rr-btn,
.cpa-btn-gradient {
  min-height: 48px;
}

@media (max-width: 991.98px) {
  .cpa-section {
    padding-top: 70px;
    padding-bottom: 70px;
  }

  .cpa-highlights {
    padding: 60px 0;
  }
}

@media (max-width: 767.98px) {
  .cpa-section {
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .cpa-highlights {
    padding: 50px 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cpa-products-grid .cpa-patch-card,
  .cpa-products-grid .cpa-patch-card__media img {
    transition: none;
  }

  .cpa-products-grid .cpa-patch-card:hover,
  .cpa-products-grid .cpa-patch-card:hover .cpa-patch-card__media img {
    transform: none;
  }
}
/* =====================================================================
   Product detail pages (includes/product-detail-template.php)
   ===================================================================== */
.cpa-detail-hero--embroidered {
  background-image: url('../imgs/hero/embroidered-patch-collection-hero.webp');
  background-image: image-set(url('../imgs/hero/embroidered-patch-collection-hero.webp') type('image/webp'), url('../imgs/hero/embroidered-patch-collection-hero.webp') type('image/webp'));
}

.cpa-detail-hero--chenille {
  background-image: url('../imgs/hero/Chenille-Varsity-Patch-Collection.webp');
  background-image: image-set(url('../imgs/hero/Chenille-Varsity-Patch-Collection.webp') type('image/webp'), url('../imgs/hero/Chenille-Varsity-Patch-Collection.webp') type('image/webp'));
  background-position: center center;
}

@media (max-width: 767.98px) {
  .cpa-detail-hero--chenille {
    background-position: 16% center;
  }
}

.cpa-detail__thumb {
  border-radius: 18px;
  overflow: hidden;
  background: #f4f7f4;
}

.cpa-detail__thumb img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.cpa-detail__title {
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.2;
  margin-bottom: 18px;
  color: #2f2e2f;
  font-weight: 600;
}

.cpa-detail__subtitle {
  color: var(--rr-heading-primary, #001D08);
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.25;
}

.cpa-detail p {
  line-height: 1.7;
}

.cpa-feature {
  display: flex;
  gap: 16px;
  width: 100%;
  padding: 22px;
  background: #fff;
  border: 1px solid rgba(0, 29, 8, 0.08);
  border-radius: 14px;
  transition: transform .3s ease, box-shadow .3s ease;
}

.cpa-feature:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0, 29, 8, 0.1);
}

.cpa-feature__icon {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  font-size: 22px;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
}

.cpa-feature__title {
  font-size: 18px;
  line-height: 1.3;
  margin-bottom: 6px;
}

.cpa-feature p {
  font-size: 15px;
  line-height: 1.6;
  color: #4d554e;
  margin-bottom: 0;
}

.cpa-check-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
  margin-top: 16px;
  padding: 0;
  list-style: none;
}

.cpa-check-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #4d554e;
}

.cpa-check-list i {
  color: var(--rr-theme-primary, #375036);
}

.cpa-detail-faq .card-link {
  width: 100%;
  text-align: left;
}

.cpa-quote-card {
  padding: 24px;
  border-radius: 14px;
  background: #f4f7f4;
  border: 1px solid rgba(0, 29, 8, 0.08);
  text-align: center;
}

.cpa-quote-card__media {
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  margin-bottom: 18px;
}

.cpa-quote-card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cpa-quote-card__title {
  font-size: 20px;
  line-height: 1.3;
  margin-bottom: 8px;
}

.cpa-quote-card p {
  font-size: 15px;
  color: #4d554e;
  margin-bottom: 18px;
}

.cpa-highlights__heading {
  color: #fff;
  text-align: center;
  font-size: clamp(26px, 3vw, 38px);
  margin-bottom: 36px;
}

.service-details-righ-widget .search a h6 {
  margin-bottom: 0;
}

@media (max-width: 575.98px) {
  .cpa-check-list {
    grid-template-columns: 1fr;
  }

  .cpa-feature {
    padding: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cpa-feature,
  .cpa-feature:hover {
    transition: none;
    transform: none;
  }
}

/* Detail hero: soft cream overlay so the h1 stays readable over busy photos */
.cpa-detail-hero {
  position: relative;
  isolation: isolate;
}

.cpa-detail-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(255, 253, 247, 0.88) 0%, rgba(255, 253, 247, 0.6) 55%, rgba(255, 253, 247, 0.25) 100%);
  z-index: 0;
  pointer-events: none;
}

.cpa-detail-hero > .container {
  position: relative;
  z-index: 1;
}
@media (max-width: 991.98px) {
  .cpa-quote-card__media {
    max-width: 360px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =====================================================================
   Homepage: process steps + patch set showcase (.cpa-home-*)
   ===================================================================== */
.cpa-home-intro {
  background: #fbf8f1;
  padding: 90px 0 100px;
}

.cpa-home-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
  list-style: none;
  margin: 0 0 60px;
  padding: 0;
}

.cpa-home-step {
  position: relative;
  text-align: center;
}

/* dashed connector + gold arrow circle between steps (desktop only) */
.cpa-home-step:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 55px;
  left: calc(50% + 62px);
  right: calc(-50% + 32px);
  border-top: 2px dashed rgba(55, 80, 54, 0.25);
}

.cpa-home-step:not(:last-child)::after {
  content: "\f061";
  font-family: "Font Awesome 6 Pro";
  font-weight: 300;
  position: absolute;
  top: 41px;
  left: calc(100% + 15px);
  transform: translateX(-50%);
  width: 28px;
  height: 28px;
  line-height: 26px;
  border: 1px solid #c9a24a;
  border-radius: 50%;
  background: #fbf8f1;
  color: #c9a24a;
  font-size: 12px;
}

.cpa-home-step__icon {
  position: relative;
  width: 110px;
  height: 110px;
  margin: 0 auto 22px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 10px 26px rgba(0, 29, 8, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--rr-heading-primary, #001D08);
  font-size: 40px;
}

.cpa-home-step__num {
  position: absolute;
  top: -4px;
  left: -10px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--rr-heading-primary, #001D08);
  color: #fff;
  font-family: var(--rr-ff-heading);
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cpa-home-step__title {
  font-size: 19px;
  line-height: 1.3;
  margin-bottom: 8px;
  color: var(--rr-heading-primary, #001D08);
}

.cpa-home-step__text {
  font-size: 14.5px;
  line-height: 1.6;
  color: #4d554e;
  max-width: 260px;
  margin: 0 auto;
}

/* Patch set cards */
.cpa-home-sets > [class*="col-"] {
  display: flex;
}

.cpa-home-set {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 250px;
  padding: 30px 20px 30px 28px;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0, 29, 8, 0.07);
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease;
}

.cpa-home-set:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(0, 29, 8, 0.12);
}

.cpa-home-set--cream { background: #f6eee2; }
.cpa-home-set--sage { background: #e8ede6; }
.cpa-home-set--blush { background: #f8e9e4; }

.cpa-home-set__body {
  flex: 1 1 58%;
  min-width: 0;
}

.cpa-home-set__media {
  flex: 0 0 40%;
  max-width: 40%;
}

.cpa-home-set__media img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .4s ease;
}

.cpa-home-set:hover .cpa-home-set__media img {
  transform: scale(1.04);
}

.cpa-home-set__label {
  display: block;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #4d554e;
  margin-bottom: 10px;
}

.cpa-home-set__title {
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.2;
  margin-bottom: 12px;
  color: var(--rr-heading-primary, #001D08);
}

.cpa-home-set__text {
  font-size: 14.5px;
  line-height: 1.6;
  color: #4d554e;
  margin-bottom: 20px;
}

.cpa-home-set__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 20px;
  border: 1px solid #375036;
  border-radius: 6px;
  background: #375036;
  color: #fff;
  font-family: var(--rr-ff-heading);
  font-size: 15px;
  font-weight: 600;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.cpa-home-set__btn:hover,
.cpa-home-set__btn:focus-visible {
  background: #001D08;
  border-color: #001D08;
  color: #fff;
}

.cpa-home-set__btn--outline {
  background: #fff;
  color: #001D08;
  border-color: rgba(0, 29, 8, 0.6);
}

.cpa-home-set__btn--outline:hover,
.cpa-home-set__btn--outline:focus-visible {
  background: #375036;
  border-color: #375036;
  color: #fff;
}

/* Tablet: 2x2 steps, no connectors */
@media (max-width: 1199.98px) {
  .cpa-home-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 44px;
  }

  .cpa-home-step::before,
  .cpa-home-step::after {
    display: none;
  }
}

@media (max-width: 991.98px) {
  .cpa-home-intro {
    padding: 70px 0;
  }
}

/* Mobile: stacked */
@media (max-width: 575.98px) {
  .cpa-home-intro {
    padding: 60px 0;
  }

  .cpa-home-steps {
    grid-template-columns: 1fr;
    row-gap: 36px;
  }

  .cpa-home-set {
    padding: 24px 16px 24px 22px;
    min-height: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cpa-home-set,
  .cpa-home-set__media img {
    transition: none;
  }

  .cpa-home-set:hover,
  .cpa-home-set:hover .cpa-home-set__media img {
    transform: none;
  }
}

.cpa-home-set__title {
  font-size: clamp(20px, 1.75vw, 26px);
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

.cpa-home-set__media img {
  mix-blend-mode: multiply;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .cpa-home-sets > .col-md-12 .cpa-home-set__media {
    flex-basis: 220px;
    max-width: 220px;
  }
}
/* Showcase cards: wider row + larger right-aligned images (t10u) */
.cpa-home-sets-wrap {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 24px;
}

.cpa-home-sets {
  --bs-gutter-x: 24px;
  --bs-gutter-y: 24px;
}

.cpa-home-set {
  gap: 16px;
  padding: 30px;
  min-height: 270px;
}

.cpa-home-set__body {
  flex: 0 0 56%;
  max-width: 56%;
}

.cpa-home-set__media {
  flex: 0 0 42%;
  max-width: 42%;
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cpa-home-set__media img {
  width: 100%;
  max-width: 100%;
  max-height: 230px;
  height: auto;
  object-fit: contain;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .cpa-home-sets > .col-md-12 .cpa-home-set__body {
    flex-basis: 60%;
    max-width: 60%;
  }

  .cpa-home-sets > .col-md-12 .cpa-home-set__media {
    flex-basis: 220px;
    max-width: 220px;
    margin-left: auto;
  }
}

@media (max-width: 575.98px) {
  .cpa-home-sets-wrap {
    padding: 0 15px;
  }

  .cpa-home-set {
    flex-direction: column;
    align-items: stretch;
    padding: 24px;
  }

  .cpa-home-set__body,
  .cpa-home-set__media {
    flex: 0 0 auto;
    max-width: 100%;
  }

  .cpa-home-set__media {
    order: -1;
  }

  .cpa-home-set__media img {
    width: 70%;
    max-height: 260px;
  }
}
.cpa-home-set__body {
  flex-basis: 54%;
  max-width: 54%;
}

.cpa-home-set__media {
  flex-basis: 45%;
  max-width: 45%;
}

.cpa-home-set__media img {
  max-height: 260px;
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .cpa-home-sets > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .cpa-home-sets .cpa-home-set__body {
    flex-basis: 60%;
    max-width: 60%;
  }

  .cpa-home-sets .cpa-home-set__media {
    flex-basis: 220px;
    max-width: 220px;
    margin-left: auto;
  }
}
@media (max-width: 575.98px) {
  .cpa-home-set__body,
  .cpa-home-set__media {
    flex-basis: auto;
    max-width: 100%;
  }
}

/* =====================================================================
   Best Deals / Hot Deals — original theme card.
   Layout, type, radius, and image placement come from main.css.
   Orange is scoped here because the site theme primary is forest green.
   ===================================================================== */
.best-deal__title-wrapper-subtitle {
  display: block;
  background: none;
  border-radius: 0;
  padding: 0;
  color: #FF3D00;
}

.best-deal__button-right #getting-started div {
  background: #FF3D00;
}

.best-deal__area .row > [class*="col-"]:has(> .best-deal__active-content) {
  display: flex;
}

.best-deal__active-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 22px 16px 14px;
  border-radius: 16px;
  background: #375036;
}

.best-deal__active-content .right {
  margin-left: 6px;
  margin-right: 6px;
}

.best-deal__active-content-title {
  margin-top: 0;
  margin-bottom: 8px;
  color: #fff;
  font-size: 22px;
  line-height: 1.25;
}

.best-deal__active-content-description {
  max-width: none;
  margin-bottom: 16px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  line-height: 1.45;
  opacity: 1;
}

.best-deal__active-content-btn {
  color: #1c1c1c;
  background: #fff;
  border-radius: 10px;
  padding: 10px 16px;
  font-weight: 600;
}

.best-deal__active-content-btn:hover {
  color: #fff;
  background: #001D08;
}

.best-deal__active-content-bottom-img {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  flex: 1 1 auto;
  width: auto;
  min-height: 148px;
  margin-top: 18px;
  border-radius: 12px;
  overflow: hidden;
}

.best-deal__active-content-bottom-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 28% 42%;
  animation: none;
}

.best-deal__area .rr-fea-product__item {
  height: auto;
}

.best-deal__area .rr-fea-product__thumb {
  aspect-ratio: 1 / 1;
  background: #f3f3f3;
}

.best-deal__area .rr-fea-product__content {
  flex: none;
}

.best-deal__area .rr-fea-product__link-box,
.best-deal__area .rr-fea-product__item:hover .rr-fea-product__link-box {
  margin-top: 0;
}

/* =====================================================================
   Featured Product cards (.rr-fea-product__*): uniform image frames so
   titles, excerpts, and Explore More buttons align across grid rows.
   ===================================================================== */
.rr-fea-product__area .row > [class*="col-"]:has(> .rr-fea-product__item) {
  display: flex;
}

.rr-fea-product__area .rr-fea-product__item {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}

.rr-fea-product__thumb {
  aspect-ratio: 4 / 3;
  width: 100%;
  overflow: hidden;
  border-radius: 10px;
  background: #f4f7f4;
}

.rr-fea-product__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.rr-fea-product__area .rr-fea-product__content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.rr-fea-product__area .rr-fea-product__link-box,
.rr-fea-product__area .rr-fea-product__item:hover .rr-fea-product__link-box {
  margin-top: auto;
}

@media (prefers-reduced-motion: reduce) {
  .rr-fea-product__item:hover .rr-fea-product__thumb img {
    transform: none;
  }
}

/* =====================================================================
   Product detail banner v2 (t11u): full-color photo + forest-green vignette.
   Generic: .cpa-detail-hero   Per-product image/position: .cpa-detail-hero--<slug>
   ===================================================================== */
.cpa-detail-hero.breadcrumb-space {
  padding: 255px 0 125px; /* top includes the overlaid header */
  background-size: cover;
  background-repeat: no-repeat;
  background-color: #001D08;
}

.cpa-detail-hero::before {
  background:
    radial-gradient(ellipse 60% 70% at 50% 50%, rgba(0, 29, 8, 0.62) 0%, rgba(0, 29, 8, 0.38) 55%, rgba(0, 29, 8, 0.12) 100%),
    linear-gradient(180deg, rgba(0, 29, 8, 0.18) 0%, rgba(0, 29, 8, 0) 30%, rgba(0, 29, 8, 0.25) 100%);
}

.cpa-detail-hero .inner-top-shape {
  display: none;
}

.cpa-detail-hero .breadcrumb__title {
  color: #fff;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
  font-size: clamp(34px, 5vw, 64px);
  line-height: 1.15;
}

.cpa-detail-hero .breadcrumb__menu ul li span,
.cpa-detail-hero .breadcrumb__menu ul li span a,
.cpa-detail-hero .breadcrumb__menu ul li.active span,
.cpa-detail-hero .breadcrumb__menu ul li:not(:last-child)::before {
  color: #fbf3e2;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}

.cpa-detail-hero .breadcrumb__menu ul li span a:hover,
.cpa-detail-hero .breadcrumb__menu ul li span a:focus-visible {
  color: #e2bf6a;
}

.cpa-detail-hero--embroidered {
  background-position: center 40%;
}

@media (max-width: 991.98px) {
  .cpa-detail-hero.breadcrumb-space {
    padding: 200px 0 95px;
  }
}

@media (max-width: 575.98px) {
  .cpa-detail-hero.breadcrumb-space {
    padding: 150px 0 65px;
  }

  .cpa-detail-hero .breadcrumb__menu ul li span {
    font-size: 16px;
  }

  .cpa-detail-hero::before {
    background: rgba(0, 29, 8, 0.5);
  }
}
/* t12u reverted (t15u): embroidered banner uses its own image again, see .cpa-detail-hero--embroidered above */
/* t13u: detail page Common Uses cards + full-width FAQ */
.cpa-use {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 20px 22px;
  border-radius: 14px;
  background: #f4f7f4;
  border: 1px solid rgba(55, 80, 54, 0.12);
  box-shadow: 0 6px 18px rgba(0, 29, 8, 0.05);
  transition: transform .3s ease, box-shadow .3s ease;
}

.cpa-uses > div:nth-child(4n+2) .cpa-use,
.cpa-uses > div:nth-child(4n+3) .cpa-use {
  background: #fbf6ec;
}

.cpa-use:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(0, 29, 8, 0.1);
}

.cpa-use__icon {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  font-size: 22px;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
}

.cpa-use__title {
  font-size: 17px;
  line-height: 1.35;
  margin: 0;
  color: var(--rr-heading-primary, #001D08);
}

.cpa-detail-faq.cpa-section {
  padding-top: 0;
}

.cpa-detail-faq__inner {
  max-width: 960px;
  margin: 0 auto;
}

.cpa-detail-faq__title {
  text-align: center;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.2;
  margin-bottom: 30px;
  color: var(--rr-heading-primary, #001D08);
}

@media (prefers-reduced-motion: reduce) {
  .cpa-use,
  .cpa-use:hover {
    transition: none;
    transform: none;
  }
}
.cpa-detail-faq .content-area .faq .accordion .card {
  max-width: none;
}

.cpa-detail-faq .content-area .faq .accordion .card-body p {
  max-width: none;
}

.cpa-detail-faq .content-area .faq {
  padding-bottom: 0;
}

.cpa-detail-faq__title {
  font-family: var(--rr-ff-heading);
  font-weight: var(--rr-fw-bold, 700);
}
.cpa-highlights__heading {
  font-family: var(--rr-ff-heading);
  font-weight: var(--rr-fw-bold, 700);
}

/* t14u: products.php banner reuses the shared .cpa-detail-hero treatment */
.cpa-products-hero.cpa-detail-hero {
  background-position: center center;
}

/* =====================================================================
   t16u: product detail refinement (.cpa-pd-*)
   ===================================================================== */
.cpa-pd-eyebrow {
  display: inline-block;
  font-family: var(--rr-ff-subtitle);
  color: var(--rr-theme-primary, #375036);
  font-size: 22px;
  margin-bottom: 6px;
}

.cpa-pd-intro__media {
  border-radius: 18px;
  overflow: hidden;
  background: #f4f7f4;
  margin-bottom: 28px;
  box-shadow: 0 14px 34px rgba(0, 29, 8, 0.1);
  line-height: 0;
}

.cpa-pd-intro__media picture,
.cpa-pd-intro__media img {
  display: block;
  width: 100%;
  height: auto;
}

.cpa-pd-points {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.cpa-pd-points li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #eef3ee;
  color: var(--rr-heading-primary, #001D08);
  font-size: 14px;
  font-weight: 500;
}

.cpa-pd-points i {
  color: var(--rr-theme-primary, #375036);
}

.cpa-pd-block {
  margin-top: 56px;
}

.cpa-pd-block .cpa-detail__subtitle {
  margin-bottom: 10px;
}

.cpa-pd-lead {
  color: #4d554e;
  margin-bottom: 24px;
}

.cpa-pd-block > .row {
  margin-top: 4px;
}

/* Options */
.cpa-pd-option {
  width: 100%;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid rgba(0, 29, 8, 0.08);
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0, 29, 8, 0.04);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.cpa-pd-option:hover {
  transform: translateY(-4px);
  border-color: rgba(55, 80, 54, 0.25);
  box-shadow: 0 16px 34px rgba(0, 29, 8, 0.1);
}

.cpa-pd-option__icon {
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
  color: #fff;
  font-size: 28px;
  margin-bottom: 18px;
}

.cpa-pd-option__title {
  font-size: 19px;
  line-height: 1.3;
  margin-bottom: 8px;
}

.cpa-pd-option p {
  font-size: 15px;
  line-height: 1.6;
  color: #4d554e;
  margin: 0;
}

.cpa-pd-styles {
  margin: 28px 0 0;
  border-radius: 16px;
  overflow: hidden;
  background: #fbf8f1;
  border: 1px solid rgba(0, 29, 8, 0.06);
}

.cpa-pd-styles img {
  display: block;
  width: 100%;
  height: auto;
}

.cpa-pd-styles figcaption {
  padding: 14px 20px;
  font-size: 14px;
  color: #4d554e;
  text-align: center;
}

/* Common uses */
.cpa-pd-use {
  display: flex;
  flex-direction: column;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(0, 29, 8, 0.08);
  box-shadow: 0 6px 18px rgba(0, 29, 8, 0.05);
  transition: transform .3s ease, box-shadow .3s ease;
}

.cpa-pd-use:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(0, 29, 8, 0.12);
}

.cpa-pd-use__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.cpa-pd-use__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.cpa-pd-use:hover .cpa-pd-use__media img {
  transform: scale(1.04);
}

.cpa-pd-use__body {
  position: relative;
  padding: 34px 22px 22px;
  flex: 1 1 auto;
}

.cpa-pd-use__icon {
  position: absolute;
  top: -26px;
  left: 22px;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 3px solid #fff;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
  color: #fff;
  font-size: 21px;
}

.cpa-pd-use__title {
  font-size: 18px;
  line-height: 1.3;
  margin-bottom: 6px;
}

.cpa-pd-use__body p {
  font-size: 14.5px;
  line-height: 1.6;
  color: #4d554e;
  margin: 0;
}

/* icon-forward tinted card (no photo) */
.cpa-pd-use--plain {
  background: linear-gradient(160deg, #eef3ee 0%, #fbf6ec 100%);
  justify-content: center;
}

.cpa-pd-use--plain .cpa-pd-use__body {
  padding: 30px 24px;
}

.cpa-pd-use--plain .cpa-pd-use__icon {
  position: static;
  width: 72px;
  height: 72px;
  font-size: 30px;
  border: 0;
  margin-bottom: 18px;
}

/* Sidebar */
.cpa-pd-sidebar {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

@media (min-width: 992px) {
  .cpa-pd-sidebar {
    position: sticky;
    top: 120px;
  }
}

.cpa-pd-types {
  padding: 24px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(0, 29, 8, 0.08);
  box-shadow: 0 6px 18px rgba(0, 29, 8, 0.04);
}

.cpa-pd-types__title {
  font-size: 20px;
  margin-bottom: 14px;
}

.cpa-pd-types ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.cpa-pd-types li + li {
  margin-top: 8px;
}

.cpa-pd-types__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 46px;
  padding: 10px 16px;
  border-radius: 10px;
  border: 1px solid rgba(0, 29, 8, 0.08);
  color: var(--rr-heading-primary, #001D08);
  font-size: 15px;
  font-weight: 500;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.cpa-pd-types__link i {
  transition: transform .25s ease;
}

.cpa-pd-types__link:hover,
.cpa-pd-types__link:focus-visible {
  background: #eef3ee;
  border-color: rgba(55, 80, 54, 0.3);
  color: var(--rr-heading-primary, #001D08);
}

.cpa-pd-types__link:hover i {
  transform: translateX(3px);
}

.cpa-pd-types__link.is-active {
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
  border-color: transparent;
  color: #fff;
}

.cpa-pd-quote {
  padding: 22px;
  border-radius: 18px;
  background: linear-gradient(170deg, #fbf6ec 0%, #eef3ee 100%);
  border: 1px solid rgba(0, 29, 8, 0.08);
  text-align: center;
  box-shadow: 0 14px 32px rgba(0, 29, 8, 0.08);
}

.cpa-pd-quote__media {
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 18px;
}

.cpa-pd-quote__media img {
  display: block;
  width: 100%;
  height: auto;
}

.cpa-pd-quote__title {
  font-size: 21px;
  line-height: 1.3;
  margin-bottom: 8px;
}

.cpa-pd-quote p {
  font-size: 15px;
  line-height: 1.6;
  color: #4d554e;
  margin-bottom: 18px;
}

.rr-btn.cpa-pd-btn {
  gap: 10px;
  min-height: 50px;
  padding: 12px 30px;
  border-radius: 8px;
}

.rr-btn.cpa-pd-btn--lg {
  min-height: 56px;
  padding: 14px 38px;
  font-size: 17px;
}

/* FAQ readability */
.cpa-detail-faq .content-area .faq .accordion .card .card-header .card-link {
  font-size: 18px;
  line-height: 1.4;
  padding-top: 18px;
  padding-bottom: 18px;
}

.cpa-detail-faq .content-area .faq .accordion .card {
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 14px;
}

.cpa-detail-faq .content-area .faq .accordion .card-body {
  padding: 18px 22px 22px;
  background: #f7f9f6;
}

.cpa-detail-faq .content-area .faq .accordion .card-body p {
  font-size: 16px;
  line-height: 1.7;
}

/* How it works */
.cpa-pd-process {
  padding: 90px 0;
  background-color: #001D08;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
}

.cpa-pd-process__title {
  color: #fff;
  text-align: center;
  font-family: var(--rr-ff-heading);
  font-weight: var(--rr-fw-bold, 700);
  font-size: clamp(28px, 3vw, 40px);
  margin-bottom: 50px;
}

.cpa-pd-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 30px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cpa-pd-step {
  position: relative;
  text-align: center;
}

.cpa-pd-step:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 46px;
  left: calc(50% + 56px);
  right: calc(-50% + 41px);
  border-top: 2px dashed rgba(255, 255, 255, 0.3);
}

.cpa-pd-step:not(:last-child)::after {
  content: "\f061";
  font-family: "Font Awesome 6 Pro";
  font-weight: 300;
  position: absolute;
  top: 32px;
  left: calc(100% + 15px);
  transform: translateX(-50%);
  width: 28px;
  height: 28px;
  line-height: 26px;
  border-radius: 50%;
  border: 1px solid #e2bf6a;
  background: #1c3420;
  color: #e2bf6a;
  font-size: 12px;
}

.cpa-pd-step__icon {
  position: relative;
  width: 92px;
  height: 92px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 34px;
}

.cpa-pd-step__num {
  position: absolute;
  top: -6px;
  left: -8px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #e2bf6a;
  color: #001D08;
  font-family: var(--rr-ff-heading);
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cpa-pd-step__title {
  color: #fff;
  font-size: 19px;
  line-height: 1.3;
  margin-bottom: 8px;
}

.cpa-pd-step__text {
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
  line-height: 1.6;
  max-width: 250px;
  margin: 0 auto;
}

/* Final CTA */
.cpa-pd-cta .cpa-pd-cta__title {
  font-size: clamp(30px, 4vw, 52px);
  line-height: 1.15;
}

.cpa-pd-cta .cpa-pd-cta__text {
  font-size: 18px;
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 1199.98px) {
  .cpa-pd-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 44px;
  }

  .cpa-pd-step::before,
  .cpa-pd-step::after {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .cpa-pd-process {
    padding: 64px 0;
  }

  .cpa-pd-block {
    margin-top: 44px;
  }
}

@media (max-width: 575.98px) {
  .cpa-pd-steps {
    grid-template-columns: 1fr;
  }

  .cpa-detail-faq .content-area .faq .accordion .card .card-header .card-link {
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cpa-pd-option,
  .cpa-pd-use,
  .cpa-pd-use__media img,
  .cpa-pd-types__link i {
    transition: none;
  }

  .cpa-pd-option:hover,
  .cpa-pd-use:hover,
  .cpa-pd-use:hover .cpa-pd-use__media img,
  .cpa-pd-types__link:hover i {
    transform: none;
  }
}

@media (max-width: 991.98px) {
  .cpa-pd-quote__media {
    max-width: 280px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* t17u: Common Uses standardized image-top cards */
.cpa-pd-use,
.cpa-pd-use--plain {
  background: #fff;
  border-radius: 16px;
  justify-content: flex-start;
}
.cpa-pd-use__media {
  aspect-ratio: 4 / 3;
  background: #f4f1ea;
}
.cpa-pd-use__media picture,
.cpa-pd-use__media img {
  display: block;
  width: 100%;
  height: 100%;
}
.cpa-pd-use__media img {
  object-fit: cover;
  object-position: center 30%;
}
.cpa-pd-use--contain .cpa-pd-use__media {
  background: #f5f3ee;
}
.cpa-pd-use--contain .cpa-pd-use__media img {
  object-fit: contain;
  object-position: center;
  padding: 18px;
}
.cpa-pd-use__body,
.cpa-pd-use--plain .cpa-pd-use__body {
  padding: 20px 22px 22px;
}
.cpa-pd-use__title {
  margin-bottom: 6px;
}
.cpa-pd-use:hover {
  transform: translateY(-4px);
}
.cpa-pd-use:hover .cpa-pd-use__media img {
  transform: scale(1.04);
}
.cpa-pd-use .cpa-pd-use__body {
  padding: 18px 22px 22px;
}
.cpa-pd-use .cpa-pd-use__title {
  margin-top: 0;
}

/* t18u: FAQ aligns with main + sidebar row */
.cpa-detail-faq .cpa-detail-faq__inner {
  max-width: none;
  margin: 0;
}

/* =====================================================================
   t19u: product detail motion (scoped: html.cpa-motion set only by the
   product template; no-JS and reduced-motion show everything)
   ===================================================================== */
.cpa-motion .cpa-reveal {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition: opacity .6s ease, transform .6s cubic-bezier(.22, .61, .36, 1);
  will-change: opacity, transform;
}

.cpa-motion .cpa-reveal.is-in {
  opacity: 1;
  transform: none;
  will-change: auto;
}

/* FAQ indicator: smooth state change, aria-driven */
.cpa-detail-faq .content-area .faq .accordion .card .card-header .card-link:before {
  transition: transform .35s ease, background-color .3s ease, color .3s ease;
}

.cpa-detail-faq .content-area .faq .accordion .card .card-header .card-link[aria-expanded=true]:before {
  transform: rotate(180deg);
}

.cpa-detail-faq .content-area .faq .accordion .card .card-header .card-link:focus-visible {
  outline: 2px solid #c9a24a;
  outline-offset: 2px;
}

/* Keyboard focus mirrors hover */
.cpa-pd-option:focus-within {
  transform: translateY(-4px);
  border-color: rgba(55, 80, 54, 0.25);
  box-shadow: 0 16px 34px rgba(0, 29, 8, 0.1);
}

.cpa-pd-use:focus-within {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(0, 29, 8, 0.12);
}

.cpa-pd-types__link:focus-visible {
  outline: 2px solid #c9a24a;
  outline-offset: 2px;
}

.cpa-pd-types__link:focus-visible i {
  transform: translateX(3px);
}

.rr-btn.cpa-pd-btn:focus-visible {
  outline: 2px solid #c9a24a;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .cpa-motion .cpa-reveal,
  .cpa-motion .cpa-reveal.is-in {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .cpa-detail-faq .content-area .faq .accordion .card .card-header .card-link:before {
    transition: none;
  }

  .cpa-pd-option:focus-within,
  .cpa-pd-use:focus-within {
    transform: none;
  }
}
/* t21u: per-product detail banners */
.cpa-detail-hero--woven {
  background-image: url('../imgs/hero/woven-adventure-patch-collection.webp');
  background-image: image-set(url('../imgs/hero/woven-adventure-patch-collection.webp') type('image/webp'), url('../imgs/hero/woven-adventure-patch-collection.webp') type('image/webp'));
  background-position: center center;
}

.cpa-detail-hero--pvc {
  background-image: url('../imgs/hero/tactical-pvc-patch-showcase.webp');
  background-image: image-set(url('../imgs/hero/tactical-pvc-patch-showcase.webp') type('image/webp'), url('../imgs/hero/tactical-pvc-patch-showcase.webp') type('image/webp'));
  background-position: center center;
}

.cpa-detail-hero--printed {
  background-image: url('../imgs/hero/adventure-printed-patch-display.webp');
  background-image: image-set(url('../imgs/hero/adventure-printed-patch-display.webp') type('image/webp'), url('../imgs/hero/adventure-printed-patch-display.webp') type('image/webp'));
  background-position: center center;
}

.cpa-detail-hero--leather {
  background-image: url('../imgs/hero/rustic-leather-badge-banner.webp');
  background-image: image-set(url('../imgs/hero/rustic-leather-badge-banner.webp') type('image/webp'), url('../imgs/hero/rustic-leather-badge-banner.webp') type('image/webp'));
  background-position: center center;
}

.cpa-detail-hero--sublimated {
  background-image: url('../imgs/hero/colorful-sublimated-patches-banner.webp');
  background-image: image-set(url('../imgs/hero/colorful-sublimated-patches-banner.webp') type('image/webp'), url('../imgs/hero/colorful-sublimated-patches-banner.webp') type('image/webp'));
  background-position: center center;
}

.cpa-detail-hero--applique {
  background-image: url('../imgs/hero/handmade-applique-craft-banner.webp');
  background-image: image-set(url('../imgs/hero/handmade-applique-craft-banner.webp') type('image/webp'), url('../imgs/hero/handmade-applique-craft-banner.webp') type('image/webp'));
  background-position: center center;
}


/* t22u: About page (plain sections) */
.cpa-about-hero {
  background-color: #001D08;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
}

.cpa-about-cta {
  padding: 100px 0;
  background: #fbf8f1;
}

.cpa-about-cta__title {
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.15;
  margin-bottom: 14px;
}

.cpa-about-cta__text {
  font-size: 18px;
  max-width: 620px;
  margin: 0 auto 32px;
}

@media (max-width: 767.98px) {
  .cpa-about-cta {
    padding: 64px 0;
  }
}

/* t23u: About page banner, story, contact */
.cpa-about-hero {
  background-image: url('../imgs/hero/about-us-banner.webp');
  background-size: cover;
  background-position: center;
}

.cpa-about-story {
  padding: 0 0 100px;
}

.cpa-about-story__title,
.cpa-about-mission__title {
  font-size: clamp(26px, 3vw, 36px);
  margin-bottom: 18px;
}

.cpa-about-story p {
  font-size: 17px;
  line-height: 1.75;
  color: #4d554e;
}

.cpa-about-mission {
  height: 100%;
  padding: 36px 32px;
  border-radius: 18px;
  background: linear-gradient(170deg, #fbf6ec 0%, #eef3ee 100%);
  border: 1px solid rgba(0, 29, 8, 0.08);
}

.cpa-about-mission p {
  font-size: 17px;
  line-height: 1.7;
  color: #4d554e;
}

.cpa-about-values {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.cpa-about-values li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  font-weight: 500;
  color: var(--rr-heading-primary, #001D08);
}

.cpa-about-values i {
  color: var(--rr-theme-primary, #375036);
  font-size: 18px;
}

.cpa-about-contact {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 28px;
  margin: 32px 0 0;
  padding: 0;
  list-style: none;
}

.cpa-about-contact a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--rr-heading-primary, #001D08);
  font-weight: 500;
}

.cpa-about-contact a:hover,
.cpa-about-contact a:focus-visible {
  color: var(--rr-theme-primary, #375036);
  text-decoration: underline;
}

@media (max-width: 767.98px) {
  .cpa-about-story {
    padding-bottom: 64px;
  }

  .cpa-about-mission {
    padding: 28px 22px;
  }
}

.cpa-about-story__title,
.cpa-about-mission__title,
.cpa-about-cta__title {
  font-family: var(--rr-ff-heading);
  font-weight: 700;
  color: var(--rr-heading-primary, #001D08);
}

/* t24u: About page theme sections */
.cpa-about-svc-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
  color: #fff;
  font-size: 32px;
}

.latest-Choose-us__media-img1 img,
.latest-Choose-us__media-img2 img,
.question__area .media img {
  object-fit: cover;
}

.question__area .media img {
  width: 100%;
  height: auto;
  border-radius: 16px;
}

/* =====================================================================
   t25u: About page refinements (scoped to About sections)
   ===================================================================== */
.cpa-motion .cpa-reveal.cpa-reveal--left { transform: translate3d(-32px, 0, 0); }
.cpa-motion .cpa-reveal.cpa-reveal--right { transform: translate3d(32px, 0, 0); }
.cpa-motion .cpa-reveal.cpa-reveal--left.is-in,
.cpa-motion .cpa-reveal.cpa-reveal--right.is-in { transform: none; }

@media (min-width: 1200px) {
  .cpa-about-whatwedo__content { padding-left: 30px; }
}
@media (max-width: 1199px) {
  .cpa-about-whatwedo .latest-about2__media { margin-bottom: 40px; }
}

/* Service cards: equal height, aligned Learn More, premium hover */
.cpa-about-services .row > [class*="col-"] { display: flex; }
.cpa-about-services .latest-service2__item {
  display: flex;
  flex-direction: column;
  width: 100%;
  transition: transform .35s ease, box-shadow .35s ease;
}
.cpa-about-services .latest-service2__item-text {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.cpa-about-services .latest-service2__item-text .readmore { margin-top: auto; }
.cpa-about-services .latest-service2__item-text .readmore i { transition: transform .3s ease; }
.cpa-about-services .cpa-about-svc-icon {
  box-shadow: 0 0 0 0 rgba(201, 162, 74, 0);
  transition: transform .35s ease, box-shadow .35s ease;
}
.cpa-about-services .latest-service2__item:hover,
.cpa-about-services .latest-service2__item:focus-within {
  transform: translateY(-6px);
  box-shadow: 0 18px 38px rgba(0, 29, 8, 0.12);
}
.cpa-about-services .latest-service2__item:hover .cpa-about-svc-icon,
.cpa-about-services .latest-service2__item:focus-within .cpa-about-svc-icon {
  transform: scale(1.08);
  box-shadow: 0 0 0 4px #fff, 0 0 0 6px #c9a24a;
}
.cpa-about-services .latest-service2__item:hover .readmore i,
.cpa-about-services .readmore:focus-visible i { transform: translateX(4px); }

/* Why Choose Us: show whole patches, no crop or distortion */
.cpa-about-choose-media { align-items: flex-start; }
.cpa-about-choose-media .latest-Choose-us__media-img1,
.cpa-about-choose-media .latest-Choose-us__media-img2 { flex: 1 1 0; min-width: 0; }
.cpa-about-choose-media .latest-Choose-us__media-img1 img,
.cpa-about-choose-media .latest-Choose-us__media-img2 img {
  width: 100%;
  height: auto;
  aspect-ratio: 324 / 356;
  object-fit: contain;
}
.cpa-about-choose-media .latest-Choose-us__media-img2 { margin-top: 60px; }

/* Contact links under the CTA */
.cpa-about-contact-strip { padding: 30px 0; background: #fbf8f1; }
.cpa-about-contact-strip .cpa-about-contact { justify-content: center; margin: 0; }

@media (prefers-reduced-motion: reduce) {
  .cpa-about-services .latest-service2__item,
  .cpa-about-services .cpa-about-svc-icon,
  .cpa-about-services .readmore i { transition: none; }
  .cpa-about-services .latest-service2__item:hover { transform: none; }
  .cpa-motion .cpa-reveal.cpa-reveal--left,
  .cpa-motion .cpa-reveal.cpa-reveal--right { transform: none; }
}

/* t26u: About services heading, card borders, single What We Do image */
.cpa-about-services .latest-service2__title-wrapper {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.cpa-about-services .latest-service2__title-wrapper-subtitle,
.cpa-about-services .latest-service2__title-wrapper-title { text-align: center; }
.cpa-about-services .latest-service2__item {
  border: 1px solid rgba(55, 80, 54, 0.16);
  border-radius: 14px;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.cpa-about-services .latest-service2__item.active,
.cpa-about-services .latest-service2__item:hover,
.cpa-about-services .latest-service2__item:focus-within {
  border-color: #375036;
  box-shadow: inset 0 3px 0 #c9a24a, 0 18px 38px rgba(0, 29, 8, 0.12);
}
.cpa-about-services .latest-service2__item.active .cpa-about-svc-icon {
  box-shadow: 0 0 0 4px #fff, 0 0 0 6px #c9a24a;
}
.cpa-about-services .row:hover .latest-service2__item.active:not(:hover) {
  border-color: rgba(55, 80, 54, 0.16);
  box-shadow: none;
}
.cpa-about-services .row:hover .latest-service2__item.active:not(:hover) .cpa-about-svc-icon {
  box-shadow: 0 0 0 0 rgba(201, 162, 74, 0);
}
.cpa-about-whatwedo__media img {
  width: 100%;
  height: auto;
  border-radius: 16px;
  display: block;
}

/* t27u: service cards without Learn More; large transparent FAQ robot */
.cpa-about-services .latest-service2__item { padding-bottom: 34px; }
.cpa-about-services .latest-service2__item-text p { margin-bottom: 0; }
.cpa-about-faq .cpa-about-faq__media {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.cpa-about-faq .cpa-about-faq__media img {
  display: block;
  width: 100%;
  max-width: 600px;
  height: auto;
  margin: 0 auto;
  border-radius: 0;
  background: none;
  box-shadow: none;
  object-fit: contain;
}
@media (max-width: 991px) {
  .cpa-about-faq .cpa-about-faq__media { margin-top: 40px; }
  .cpa-about-faq .cpa-about-faq__media img { max-width: 100%; }
}

/* t28u: Our Work page */
.cpa-ourwork-hero {
  background-color: #001D08;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
}
.cpa-ourwork .gallery__item:before { pointer-events: none; }
.cpa-ourwork .gallery__item .popup-image { display: block; }
.cpa-ourwork .gallery__item .text .title a { color: inherit; }
.cpa-ourwork .gallery__item .icon-wrapper:focus-visible,
.cpa-ourwork .gallery__item .text .title a:focus-visible {
  outline: 2px solid #c9a24a;
  outline-offset: 3px;
}
.cpa-ourwork .gallery__item:focus-within:before { transform: scale(100%); }
.cpa-ourwork .gallery__item:focus-within .text { transform: translateY(100%); visibility: visible; }
.cpa-ourwork .gallery__item:focus-within .icon-wrapper { transform: translateY(-30px); visibility: visible; }

/* t29u: Our Work filters and lightbox */
.cpa-ow-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 40px;
}
.cpa-ow-filters[hidden] { display: none; }
.cpa-ow-filter {
  min-height: 44px;
  padding: 10px 22px;
  border: 1px solid #375036;
  border-radius: 999px;
  background: #fff;
  color: #375036;
  font-family: var(--rr-ff-heading);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.cpa-ow-filter:hover { background: #f1f5ef; }
.cpa-ow-filter.is-active {
  background: #375036;
  color: #fff;
  box-shadow: inset 0 -3px 0 #c9a24a;
}
.cpa-ow-filter:focus-visible { outline: 2px solid #c9a24a; outline-offset: 3px; }

@media (max-width: 767px) {
  .cpa-ow-filters {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 4px 2px 8px;
    margin-bottom: 30px;
  }
  .cpa-ow-filters::-webkit-scrollbar { display: none; }
  .cpa-ow-filter { flex: 0 0 auto; }
}

.cpa-ourwork .col-item {
  transition: opacity .26s ease, transform .26s ease;
}
.cpa-ourwork .col-item.cpa-ow-out,
.cpa-ourwork .col-item.cpa-ow-in {
  opacity: 0;
  transform: scale(.96);
}
.cpa-ourwork .col-item[hidden] { display: none !important; }
.cpa-ourwork .gallery__item .sub-title a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.cpa-ourwork .gallery__item .sub-title a:focus-visible { outline: 2px solid #c9a24a; outline-offset: 2px; }

/* Lightbox */
html.cpa-lb-open, html.cpa-lb-open body { overflow: hidden; }
.cpa-lb {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0, 18, 5, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
}
.cpa-lb[hidden] { display: none; }
.cpa-lb__stage {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 70px 90px;
}
.cpa-lb__figure { margin: 0; text-align: center; max-width: 100%; max-height: 100%; }
.cpa-lb__img {
  display: block;
  max-width: min(1000px, 100%);
  max-height: calc(100vh - 190px);
  width: auto;
  height: auto;
  margin: 0 auto;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .45);
}
.cpa-lb__caption {
  margin-top: 16px;
  color: #fff;
  font-family: var(--rr-ff-heading);
  font-size: 18px;
  font-weight: 600;
}
.cpa-lb__btn {
  position: absolute;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: 50%;
  background: rgba(255, 255, 255, .08);
  color: #fff;
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color .25s ease, border-color .25s ease;
}
.cpa-lb__btn[hidden] { display: none; }
.cpa-lb__btn:hover { background: #375036; border-color: #c9a24a; }
.cpa-lb__btn:focus-visible { outline: 2px solid #c9a24a; outline-offset: 3px; }
.cpa-lb__close { top: 20px; right: 20px; }
.cpa-lb__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.cpa-lb__next { right: 20px; top: 50%; transform: translateY(-50%); }
@media (max-width: 767px) {
  .cpa-lb__stage { padding: 80px 16px 110px; }
  .cpa-lb__img { max-height: calc(100vh - 260px); }
  .cpa-lb__prev, .cpa-lb__next { top: auto; bottom: 24px; transform: none; }
  .cpa-lb__prev { left: calc(50% - 64px); }
  .cpa-lb__next { right: calc(50% - 64px); }
}
@media (prefers-reduced-motion: reduce) {
  .cpa-ourwork .col-item,
  .cpa-ow-filter,
  .cpa-lb__btn { transition: none; }
  .cpa-ourwork .col-item.cpa-ow-out,
  .cpa-ourwork .col-item.cpa-ow-in { transform: none; }
}

/* t30u: Blog page and Our Work banner */
.cpa-blog-hero {
  background-color: #001D08;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
}
.cpa-blog-grid .latest-blog__item-slide { height: 100%; display: flex; flex-direction: column; }
.cpa-blog-grid .latest-blog__item-text { flex: 1 1 auto; display: flex; flex-direction: column; }
.cpa-blog-grid .latest-blog__item-text-bottom { display: flex; flex-direction: column; flex: 1 1 auto; }
.cpa-blog-grid .latest-blog__item-text-bottom .readmore { margin-top: auto; }
.cpa-blog-grid .latest-blog__item-text-meta { flex-wrap: wrap; gap: 6px 18px; }
.cpa-blog-grid .cpa-blog-excerpt { margin-bottom: 20px; }
.cpa-blog-grid .row > [class*="col-"] { display: flex; }
.cpa-blog-grid .row > [class*="col-"] > .latest-blog__item-slide { width: 100%; }

.cpa-ourwork-hero {
  background-color: #001D08;
  background-image: linear-gradient(rgba(0, 29, 8, 0.25), rgba(0, 29, 8, 0.25)), url('../imgs/hero/our-work-banner.webp');
  background-size: cover;
  background-position: center;
}

/* t31u: blogs.php cards (scoped to .cpa-blog-grid) */
.cpa-blog-grid .cpa-blog-row { --bs-gutter-x: 30px; --bs-gutter-y: 30px; }
.cpa-blog-grid .cpa-blog-row > [class*="col-"] { display: flex; }
@media (max-width: 991px) { .cpa-blog-grid .cpa-blog-row { --bs-gutter-x: 24px; --bs-gutter-y: 24px; } }
@media (max-width: 767px) { .cpa-blog-grid .cpa-blog-row { --bs-gutter-x: 20px; --bs-gutter-y: 20px; } }

.cpa-blog-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: #fff;
  border: 1px solid rgba(0, 29, 8, 0.08);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0, 29, 8, 0.06);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.cpa-blog-card:hover,
.cpa-blog-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(55, 80, 54, 0.35);
  box-shadow: 0 16px 34px rgba(0, 29, 8, 0.12);
}
.cpa-blog-card__media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.cpa-blog-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .6s ease;
}
.cpa-blog-card:hover .cpa-blog-card__media img { transform: scale(1.05); }
.cpa-blog-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 26px 26px 28px;
}
.cpa-blog-card__title {
  margin: 0 0 12px;
  font-family: var(--rr-ff-heading);
  font-size: 21px;
  font-weight: 600;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.cpa-blog-card__title a { color: #001D08; transition: color .25s ease; }
.cpa-blog-card__title a:hover { color: #375036; }
.cpa-blog-card__excerpt {
  margin: 0 0 22px;
  font-size: 15px;
  line-height: 1.65;
  color: #5a6a5c;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.cpa-blog-card__link {
  margin-top: auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 3px;
  color: #375036;
  font-family: var(--rr-ff-heading);
  font-size: 15px;
  font-weight: 600;
  background-image: linear-gradient(90deg, #c9a24a, #375036);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0 2px;
  transition: background-size .3s ease, color .25s ease;
}
.cpa-blog-card__link i { transition: transform .3s ease; }
.cpa-blog-card:hover .cpa-blog-card__link,
.cpa-blog-card__link:focus-visible { background-size: 100% 2px; color: #001D08; }
.cpa-blog-card:hover .cpa-blog-card__link i,
.cpa-blog-card__link:focus-visible i { transform: translateX(4px); }
.cpa-blog-card__title a:focus-visible,
.cpa-blog-card__link:focus-visible {
  outline: 2px solid #c9a24a;
  outline-offset: 3px;
  border-radius: 2px;
}
@media (max-width: 767px) {
  .cpa-blog-card__body { padding: 22px 22px 24px; }
  .cpa-blog-card__title { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .cpa-blog-card,
  .cpa-blog-card__media img,
  .cpa-blog-card__link,
  .cpa-blog-card__link i { transition: none; }
  .cpa-blog-card:hover,
  .cpa-blog-card:focus-within { transform: none; }
  .cpa-blog-card:hover .cpa-blog-card__media img { transform: none; }
}

.cpa-blog-grid .cpa-blog-card { padding: 0; margin: 0; }

/* t32u: Blog banner image (light centre: same dark radial overlay as product banners, slightly stronger) */
.cpa-blog-hero {
  background-color: #001D08;
  background-image: url('../imgs/hero/blog-banner.webp');
  background-size: cover;
  background-position: center;
}
.cpa-blog-hero::before {
  background:
    radial-gradient(ellipse 60% 70% at 50% 50%, rgba(0, 29, 8, 0.68) 0%, rgba(0, 29, 8, 0.48) 55%, rgba(0, 29, 8, 0.2) 100%),
    linear-gradient(180deg, rgba(0, 29, 8, 0.18) 0%, rgba(0, 29, 8, 0) 30%, rgba(0, 29, 8, 0.25) 100%);
}
/* t33u: Contact Us page */
.cpa-contact-hero {
  background-color: #001D08;
  background-image: linear-gradient(135deg, #375036 0%, #001D08 100%);
}
.cpa-contact .contact-us__widget {
  background: #fbf8f1;
  border: 1px solid rgba(55, 80, 54, 0.12);
  border-radius: 16px;
  padding: 36px 32px;
}
.cpa-contact .contact-us__widget-list-item { display: flex; align-items: flex-start; gap: 16px; }
.cpa-contact .contact-us__widget-list-item .icon,
.cpa-contact .contact-us__widget-list-item .large-hight {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #375036;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  box-shadow: 0 0 0 4px #fbf8f1, 0 0 0 5px rgba(201, 162, 74, 0.6);
}
.cpa-contact .contact-us__widget-list-item .text span {
  display: block;
  font-family: var(--rr-ff-heading);
  font-weight: 600;
  color: #001D08;
  margin-bottom: 4px;
}
.cpa-contact .contact-us__widget-list-item .text a,
.cpa-contact .contact-us__widget-list-item .text p { color: #4c5a4e; margin: 0; }
.cpa-contact .contact-us__widget-list-item .text a:hover { color: #375036; }
.cpa-contact .contact-us__form-wrapper {
  background: #fff;
  border: 1px solid rgba(0, 29, 8, 0.08);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0, 29, 8, 0.06);
  padding: 36px 32px;
}
.cpa-contact-form label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--rr-ff-heading);
  font-size: 15px;
  font-weight: 600;
  color: #001D08;
}
.cpa-req { color: #b3261e; }
.cpa-contact-form .contact-us__input,
.cpa-contact-form .contact-us__textarea { margin-bottom: 20px; }
.cpa-contact-form input[type="text"],
.cpa-contact-form input[type="email"],
.cpa-contact-form input[type="tel"],
.cpa-contact-form select,
.cpa-contact-form textarea {
  width: 100%;
  min-height: 52px;
  padding: 12px 16px;
  border: 1px solid rgba(0, 29, 8, 0.18);
  border-radius: 10px;
  background: #fff;
  color: #001D08;
  font-size: 15px;
}
.cpa-contact-form textarea { min-height: 160px; resize: vertical; }
.cpa-contact-form input[type="file"] {
  width: 100%;
  padding: 11px 12px;
  border: 1px dashed rgba(55, 80, 54, 0.4);
  border-radius: 10px;
  background: #fbf8f1;
  font-size: 14px;
}
.cpa-contact-form input:focus-visible,
.cpa-contact-form select:focus-visible,
.cpa-contact-form textarea:focus-visible {
  outline: none;
  border-color: #375036;
  box-shadow: 0 0 0 3px rgba(201, 162, 74, 0.45);
}
.cpa-contact-form [aria-invalid="true"] { border-color: #b3261e !important; }
.cpa-field-error { margin: 6px 0 0; color: #b3261e; font-size: 14px; line-height: 1.4; }
.cpa-field-error[hidden] { display: none; }
.cpa-field-hint { margin: 6px 0 0; color: #6b776d; font-size: 13px; }
.cpa-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.cpa-form-status[hidden] { display: none; }
.cpa-alert { margin-bottom: 24px; padding: 14px 18px; border-radius: 10px; font-size: 15px; line-height: 1.5; }
.cpa-alert:focus { outline: 2px solid #c9a24a; outline-offset: 2px; }
.cpa-alert--error { background: #fdecea; border: 1px solid #f3c2bd; color: #7a1c15; }
.cpa-alert--success { background: #edf5ec; border: 1px solid #b9d4b6; color: #1f3d1e; }
.cpa-contact-form .rr-btn[disabled] { opacity: .7; cursor: progress; }
@media (max-width: 1199px) {
  .cpa-contact .contact-us__widget { margin-bottom: 30px; }
}
@media (max-width: 575px) {
  .cpa-contact .contact-us__widget,
  .cpa-contact .contact-us__form-wrapper { padding: 26px 20px; }
}

/* t33u: contact overrides for theme specificity */
.contact-us__area.cpa-contact .contact-us__widget .contact-us__widget-list .contact-us__widget-list-item .icon,
.contact-us__area.cpa-contact .contact-us__widget .contact-us__widget-list .contact-us__widget-list-item .large-hight {
  flex: 0 0 52px;
  width: 52px;
  min-width: 52px;
  height: 52px;
  background: #375036;
  color: #fff;
}
.contact-us__area.cpa-contact .contact-us__widget .contact-us__widget-list .contact-us__widget-list-item .icon i { color: #fff; }
.contact-us__area.cpa-contact .contact-us__form-wrapper .contact-us__form .contact-us__input input { margin-bottom: 0; padding: 12px 16px; border-radius: 10px; border-color: rgba(0, 29, 8, 0.18); }
.contact-us__area.cpa-contact .contact-us__form-wrapper .contact-us__form .contact-us__textarea textarea { height: 160px !important; padding: 12px 16px; border-radius: 10px; border-color: rgba(0, 29, 8, 0.18); }
.contact-us__area.cpa-contact .contact-us__form-wrapper .contact-us__form .contact-us__input input[aria-invalid="true"],
.contact-us__area.cpa-contact .contact-us__form-wrapper .contact-us__form .contact-us__textarea textarea[aria-invalid="true"] { border-color: #b3261e; }
.cpa-contact .cpa-contact-form p.cpa-field-error { margin: 6px 0 0; color: #b3261e; font-size: 14px; line-height: 1.4; }
.cpa-contact .cpa-contact-form p.cpa-field-hint { margin: 6px 0 0; color: #6b776d; font-size: 13px; line-height: 1.4; }
/* t34u: contact submit state, success dialog, thank-you page */
.cpa-submit { display: inline-flex; align-items: center; gap: 10px; }
.cpa-submit__spinner {
  display: none;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #fff;
  border-radius: 50%;
  animation: cpa-spin .8s linear infinite;
}
.cpa-submit.is-busy .cpa-submit__spinner { display: inline-block; }
.cpa-contact-form .rr-btn.cpa-submit[disabled] { opacity: .85; cursor: progress; }
@keyframes cpa-spin { to { transform: rotate(360deg); } }

.cpa-success {
  position: fixed;
  inset: 0;
  z-index: 10120;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0, 18, 5, 0.7);
}
.cpa-success__dialog {
  width: 100%;
  max-width: 440px;
  padding: 40px 32px 34px;
  border-radius: 18px;
  background: #fff;
  border-top: 4px solid #c9a24a;
  text-align: center;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
  animation: cpa-pop .3s ease;
}
.cpa-success__dialog:focus { outline: none; }
.cpa-success__icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: #375036;
  color: #fff;
  font-size: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 6px #edf5ec;
}
.cpa-success__brand { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #375036; }
.cpa-success__title { margin: 0 0 10px; font-family: var(--rr-ff-heading); font-size: 22px; line-height: 1.3; color: #001D08; }
.cpa-success__text { margin: 0; color: #5a6a5c; font-size: 15px; line-height: 1.55; }
@keyframes cpa-pop { from { transform: scale(.94); } to { transform: none; } }

.cpa-ty {
  background: #fff;
  color: #1f2a20;
}
.cpa-ty__hero {
  position: relative;
  overflow: hidden;
  padding: 168px 20px 128px;
  text-align: center;
  color: #fff;
  background:
    radial-gradient(ellipse 70% 80% at 50% -10%, rgba(255, 255, 255, 0.14), transparent 55%),
    linear-gradient(180deg, #245536 0%, #173222 48%, #102418 100%);
}
.cpa-ty__art {
  position: absolute;
  bottom: 0;
  z-index: 0;
  width: min(42vw, 520px);
  height: auto;
  pointer-events: none;
  user-select: none;
}
.cpa-ty__art--left { left: 0; }
.cpa-ty__art--right { right: 0; }
.cpa-ty__plane {
  position: absolute;
  top: 156px;
  right: 9%;
  z-index: 1;
  color: rgba(255, 255, 255, 0.82);
  pointer-events: none;
}
.cpa-ty__hero-inner {
  position: relative;
  z-index: 1;
  max-width: 640px;
  margin: 0 auto;
}
.cpa-ty__check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 78px;
  height: 78px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: #fff;
  color: #173222;
  font-size: 32px;
  box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.16);
  animation: cpa-ty-pop .45s ease;
}
.cpa-ty__hero h1 {
  margin: 0 0 8px;
  color: #fff;
  font-family: var(--rr-ff-heading);
  font-size: 58px;
  font-weight: 700;
  line-height: 1.1;
}
.cpa-ty__sub {
  margin: 0 0 14px;
  color: #fff;
  font-family: var(--rr-ff-heading);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.35;
}
.cpa-ty__copy {
  margin: 0 auto;
  max-width: 520px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 16px;
  line-height: 1.65;
}
.cpa-ty__panel {
  position: relative;
  z-index: 2;
  margin-top: -72px;
  padding: 0 16px;
}
.cpa-ty__status {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 980px;
  margin: 0 auto;
  padding: 8px 8px;
  list-style: none;
  background: #f3f6f1;
  border: 1px solid rgba(23, 50, 34, 0.06);
  border-radius: 22px;
  box-shadow: 0 16px 40px rgba(16, 36, 24, 0.1);
}
.cpa-ty__status li {
  min-width: 0;
  padding: 26px 22px 28px;
  text-align: center;
}
.cpa-ty__status li + li { border-left: 1px solid rgba(23, 50, 34, 0.08); }
.cpa-ty__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #e7f3ea;
  color: #1c7a3a;
  font-size: 22px;
  box-shadow: 0 4px 14px rgba(23, 50, 34, 0.06);
}
.cpa-ty__icon--received { background: #e5f4ea; color: #1c7a3a; }
.cpa-ty__icon--review { background: #f8efd2; color: #a97808; }
.cpa-ty__icon--help { background: #e4eef8; color: #2d6aab; }
.cpa-ty__status h2 {
  margin: 0 0 6px;
  color: #173222;
  font-family: var(--rr-ff-heading);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}
.cpa-ty__status p {
  margin: 0;
  color: #4d5b50;
  font-size: 14.5px;
  line-height: 1.55;
}
.cpa-ty__mail {
  color: #173222;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cpa-ty__mail:hover { color: #2f6a45; }
.cpa-ty__next {
  padding: 54px 16px 64px;
  text-align: center;
  background: #f7f4ec;
}
.cpa-ty__next h2 {
  margin: 0 0 10px;
  color: #102418;
  font-family: var(--rr-ff-heading);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.15;
}
.cpa-ty__next p {
  max-width: 520px;
  margin: 0 auto 26px;
  color: #5a675d;
  font-size: 16px;
  line-height: 1.6;
}
.cpa-ty__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.cpa-ty__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 0 22px;
  border-radius: 10px;
  font-family: var(--rr-ff-heading);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.cpa-ty__btn--solid {
  background: #173222;
  color: #fff;
  border: 1px solid #173222;
}
.cpa-ty__btn--solid:hover { background: #245536; color: #fff; }
.cpa-ty__btn--ghost {
  background: #fff;
  color: #173222;
  border: 1px solid #c5cfc6;
}
.cpa-ty__btn--ghost:hover { border-color: #173222; color: #173222; }
.cpa-ty__btn:focus-visible { outline: 2px solid #c9a24a; outline-offset: 3px; }
@keyframes cpa-ty-pop {
  from { opacity: 0; transform: scale(.92); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 1400px) and (max-height: 860px) {
  .cpa-ty__hero { padding: 148px 16px 78px; }
  .cpa-ty__hero h1 { font-size: 46px; }
  .cpa-ty__check { width: 64px; height: 64px; margin-bottom: 12px; font-size: 26px; }
  .cpa-ty__sub { font-size: 18px; }
  .cpa-ty__panel { margin-top: -56px; }
  .cpa-ty__status li { padding: 16px 16px 18px; }
  .cpa-ty__icon { width: 48px; height: 48px; margin-bottom: 8px; font-size: 18px; }
  .cpa-ty__next { padding: 22px 16px 28px; }
  .cpa-ty__next h2 { font-size: 32px; }
  .cpa-ty__next p { margin-bottom: 16px; }
  .cpa-thanks-page .cpa-ft__main { padding-top: 48px; padding-bottom: 148px; }
  .cpa-thanks-page .cpa-ft__deco--left { width: 300px; }
  .cpa-thanks-page .cpa-ft__deco--right { width: 240px; }
}
@media (max-width: 991.98px) {
  .cpa-ty__hero { padding: 168px 16px 108px; }
  .cpa-ty__hero h1 { font-size: 44px; }
  .cpa-ty__art { width: min(46vw, 280px); opacity: .95; }
  .cpa-ty__plane { display: none; }
  .cpa-ty__status li { padding: 22px 14px; }
}
@media (max-width: 767.98px) {
  .cpa-ty__hero { padding-top: 108px; padding-bottom: 100px; }
  .cpa-ty__status { grid-template-columns: minmax(0, 1fr); padding: 6px 8px; }
  .cpa-ty__status li + li { border-left: 0; border-top: 1px solid rgba(23, 50, 34, 0.08); }
  .cpa-ty__art { width: 180px; bottom: 18px; }
  .cpa-ty__hero h1 { font-size: 38px; }
  .cpa-ty__next h2 { font-size: 30px; }
  .cpa-ty__btn { width: 100%; max-width: 320px; }
}
@media (prefers-reduced-motion: reduce) {
  .cpa-ty__check, .cpa-ty__btn { animation: none; transition: none; }
}
@media (prefers-reduced-motion: reduce) {
  .cpa-submit__spinner { animation-duration: 2s; }
  .cpa-success__dialog { animation: none; }
}

/* t35u: contact page redesign (scoped to .cpa-c2) */
.cpa-c2 { padding: 56px 0 64px; background: #f7f4ec; }
.cpa-c2__shell { background: #fff; border: 1px solid rgba(0, 29, 8, 0.08); border-radius: 16px; padding: 28px; box-shadow: 0 12px 34px rgba(0, 29, 8, 0.06); }
.cpa-c2__form-card { height: 100%; padding: 28px 30px; border: 1px solid rgba(0, 29, 8, 0.09); border-radius: 14px; background: #fff; }
.cpa-c2__title { font-family: var(--rr-ff-heading); font-weight: 600; font-size: 30px; line-height: 1.25; color: #001D08; margin: 0 0 8px; }
.cpa-c2__intro { font-size: 15px; line-height: 1.6; color: #55635a; margin: 0 0 6px; }
.cpa-c2__note { font-size: 13px; color: #6b776e; margin: 0 0 16px; }
.cpa-c2 .cpa-req { color: #c0392b; }
.cpa-c2 .cpa-form-status { margin-bottom: 14px; }
.cpa-c2__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.cpa-c2__field { display: flex; flex-direction: column; min-width: 0; }
.cpa-c2__field--full { grid-column: 1 / -1; }
.cpa-c2__field > label, .cpa-c2__label { font-family: var(--rr-ff-heading); font-size: 14px; font-weight: 500; color: #001D08; margin: 0 0 6px; line-height: 1.3; }
.cpa-c2 .cpa-c2__field input:not([type="file"]), .cpa-c2 .cpa-c2__field select, .cpa-c2 .cpa-c2__field textarea {
  box-sizing: border-box; line-height: normal; min-height: 0; margin-left: 0;
  width: 100%; height: 46px; margin: 0; padding: 0 14px; font-size: 15px; color: #001D08;
  background: #fff; border: 1px solid #d9ddd6; border-radius: 10px; box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.cpa-c2__field select { appearance: auto; padding-right: 10px; }
.cpa-c2 .cpa-c2__field textarea { height: auto; min-height: 112px; padding: 11px 14px; resize: vertical; line-height: 1.5; }
.cpa-c2__field input::placeholder, .cpa-c2__field textarea::placeholder { color: #9aa49c; }
.cpa-c2__field input:focus, .cpa-c2__field select:focus, .cpa-c2__field textarea:focus { outline: none; border-color: #375036; box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.15); }
.cpa-c2__field [aria-invalid="true"] { border-color: #c0392b !important; }
.cpa-c2__field [aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.14) !important; }
.cpa-c2 .cpa-field-error { margin: 5px 0 0; font-size: 13px; line-height: 1.4; color: #b03a2e; }
.cpa-c2__file { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px dashed #b9c3b6; border-radius: 10px; background: #fbfaf6; transition: border-color .2s ease, box-shadow .2s ease; }
.cpa-c2__file:focus-within { border-color: #375036; box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.15); }
.cpa-c2__file-icon { flex: 0 0 38px; height: 38px; border-radius: 9px; background: #edf2ec; color: #375036; display: flex; align-items: center; justify-content: center; font-size: 17px; }
.cpa-c2__file-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.cpa-c2__file-name { font-size: 14px; color: #55635a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cpa-c2__file-name.has-file { color: #001D08; font-weight: 500; }
.cpa-c2__file-hint { font-size: 12px; color: #7d887f; }
.cpa-c2__file-btn { flex: 0 0 auto; margin: 0; padding: 8px 14px; border-radius: 8px; border: 1px solid #375036; color: #375036; background: #fff; font-size: 13px; font-weight: 600; cursor: pointer; transition: background .2s ease, color .2s ease; }
.cpa-c2__file:hover .cpa-c2__file-btn { background: #375036; color: #fff; }
.cpa-c2__file-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.cpa-c2__file:has([aria-invalid="true"]) { border-color: #c0392b; }
.cpa-c2__submit { width: 100%; margin-top: 18px; height: 50px; justify-content: center; border: 0; border-radius: 10px; color: #fff; font-family: var(--rr-ff-heading); font-size: 16px; font-weight: 600; background: linear-gradient(135deg, #476a45 0%, #375036 55%, #001D08 100%); box-shadow: 0 8px 18px rgba(0, 29, 8, 0.18); transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.cpa-c2__submit:hover:not([disabled]) { filter: brightness(.88); transform: translateY(-1px); box-shadow: 0 12px 22px rgba(0, 29, 8, 0.24); }
.cpa-c2__submit:focus-visible { outline: 3px solid rgba(201, 162, 74, 0.7); outline-offset: 2px; }
.cpa-c2__submit[disabled] { opacity: .85; cursor: progress; }
.cpa-c2__info { height: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-content: stretch; }
.cpa-c2__card { padding: 22px 20px; border: 1px solid rgba(0, 29, 8, 0.09); border-radius: 14px; background: #fff; display: flex; flex-direction: column; transition: border-color .2s ease, box-shadow .2s ease; }
.cpa-c2__card:hover { border-color: rgba(55, 80, 54, 0.35); box-shadow: 0 8px 20px rgba(0, 29, 8, 0.07); }
.cpa-c2__card-icon { width: 46px; height: 46px; border-radius: 12px; border: 1px solid rgba(55, 80, 54, 0.35); color: #375036; display: flex; align-items: center; justify-content: center; font-size: 19px; margin-bottom: 16px; }
.cpa-c2__card-title { font-family: var(--rr-ff-heading); font-size: 17px; font-weight: 600; color: #001D08; margin: 0 0 4px; }
.cpa-c2__card-text { font-size: 14px; line-height: 1.5; color: #6b776e; margin: 0 0 10px; }
.cpa-c2__card-value { margin-top: auto; font-size: 14px; font-weight: 600; line-height: 1.45; color: #375036; overflow-wrap: anywhere; }
.cpa-c2__card-value a { color: #375036; text-decoration: none; }
.cpa-c2__card-value a:hover { color: #001D08; text-decoration: underline; }
.cpa-c2__trust { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cpa-c2__trust li { display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: #fff; border: 1px solid rgba(0, 29, 8, 0.08); border-radius: 14px; font-size: 14px; line-height: 1.45; color: #2f3d33; }
.cpa-c2__trust-icon { flex: 0 0 38px; height: 38px; border-radius: 50%; background: #375036; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 15px; box-shadow: 0 0 0 3px rgba(201, 162, 74, 0.35); }
@media (max-width: 991px) {
  .cpa-c2 { padding: 44px 0 52px; }
  .cpa-c2__shell { padding: 20px; }
  .cpa-c2__trust { grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width: 575px) {
  .cpa-c2 { padding: 32px 0 40px; }
  .cpa-c2__shell { padding: 12px; border-radius: 14px; }
  .cpa-c2__form-card { padding: 20px 16px; }
  .cpa-c2__title { font-size: 24px; }
  .cpa-c2__grid { grid-template-columns: 1fr; }
  .cpa-c2__info { grid-template-columns: 1fr; gap: 12px; }
  .cpa-c2__card { padding: 18px 16px; }
}
@media (prefers-reduced-motion: reduce) { .cpa-c2__submit, .cpa-c2__submit:hover:not([disabled]) { transform: none; transition: none; } }
.cpa-c2__aside { height: 100%; display: flex; flex-direction: column; gap: 16px; }
.cpa-c2__aside .cpa-c2__info { height: auto; align-content: start; }
.cpa-c2__card-value { overflow-wrap: normal; word-break: normal; }
.cpa-c2__cta { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 22px 22px; border-radius: 14px; background: #f7f4ec; border: 1px solid rgba(201, 162, 74, 0.35); }
.cpa-c2__cta-title { font-family: var(--rr-ff-heading); font-size: 18px; font-weight: 600; color: #001D08; margin: 0 0 4px; }
.cpa-c2__cta-text { font-size: 14px; line-height: 1.5; color: #55635a; margin: 0 0 14px; }
.cpa-c2__cta-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 10px; background: #375036; color: #fff; font-family: var(--rr-ff-heading); font-size: 14px; font-weight: 600; text-decoration: none; transition: background .2s ease; }
.cpa-c2__cta-btn:hover, .cpa-c2__cta-btn:focus-visible { background: #001D08; color: #fff; }

/* t36u: Contact banner image (light cream centre: dark radial overlay like blog banner, slightly stronger) */
.cpa-contact-hero {
  background-color: #001D08;
  background-image: url('../imgs/hero/contact-banner.webp');
  background-size: cover;
  background-position: center;
}
.cpa-contact-hero::before {
  background:
    radial-gradient(ellipse 60% 70% at 50% 50%, rgba(0, 29, 8, 0.72) 0%, rgba(0, 29, 8, 0.52) 55%, rgba(0, 29, 8, 0.22) 100%),
    linear-gradient(180deg, rgba(0, 29, 8, 0.18) 0%, rgba(0, 29, 8, 0) 30%, rgba(0, 29, 8, 0.25) 100%);
}
/* t37u: header account buttons */
.cpa-hauth { display: flex; align-items: center; gap: 10px; }
.cpa-hauth__btn { display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 20px; border-radius: 10px; font-family: var(--rr-ff-heading); font-size: 15px; font-weight: 600; line-height: 1; white-space: nowrap; text-decoration: none; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.cpa-hauth__btn--ghost { border: 1px solid #375036; color: #375036; background: transparent; }
.cpa-hauth__btn--ghost:hover, .cpa-hauth__btn--ghost:focus-visible, .cpa-hauth__btn--ghost.is-current { background: #edf2ec; color: #001D08; }
.cpa-hauth__btn--solid { border: 1px solid #375036; color: #fff; background: #375036; }
.cpa-hauth__btn--solid:hover, .cpa-hauth__btn--solid:focus-visible { background: #001D08; border-color: #001D08; color: #fff; }
.cpa-hauth__btn:focus-visible, .cpa-hauth__user:focus-visible { outline: 2px solid rgba(201, 162, 74, 0.8); outline-offset: 2px; }
.cpa-hauth__user { display: inline-flex; align-items: center; gap: 8px; color: #001D08; font-family: var(--rr-ff-heading); font-size: 15px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.cpa-hauth__user i { font-size: 24px; color: #375036; }
.cpa-hauth__user:hover { color: #375036; }
.cpa-hauth__logout { margin: 0; }
@media (max-width: 1199px) {
  .cpa-hauth__btn { height: 40px; padding: 0 16px; font-size: 14px; }
}
@media (max-width: 575px) {
  .cpa-hauth { gap: 8px; }
  .cpa-hauth__btn { height: 38px; padding: 0 14px; }
  .cpa-hauth__signup, .cpa-hauth__name, .cpa-hauth__logout { display: none; }
  .cpa-hauth__user i { font-size: 28px; }
}
.cpa-oc-auth { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 24px 0; }
.cpa-oc-auth form { margin: 0; }
.cpa-oc-auth__btn { display: inline-flex; align-items: center; justify-content: center; height: 42px; padding: 0 20px; border-radius: 10px; font-size: 15px; font-weight: 600; text-decoration: none; cursor: pointer; }
.cpa-oc-auth__btn--ghost { border: 1px solid rgba(255, 255, 255, 0.6); color: #fff; background: transparent; }
.cpa-oc-auth__btn--solid { border: 1px solid #fff; color: #001D08; background: #fff; }
.cpa-oc-auth__btn:hover { opacity: .9; }
.cpa-oc-auth__link { color: #fff; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }

/* t37u: auth pages */
.cpa-auth-hero { background-color: #001D08; background-image: linear-gradient(135deg, #375036 0%, #001D08 100%); }
.cpa-auth { padding: 56px 0 72px; background: #f7f4ec; }
.cpa-auth__card { max-width: 500px; margin: 0 auto; padding: 32px 32px 28px; background: #fff; border: 1px solid rgba(0, 29, 8, 0.09); border-radius: 16px; box-shadow: 0 12px 34px rgba(0, 29, 8, 0.06); }
.cpa-auth__title { font-family: var(--rr-ff-heading); font-weight: 600; font-size: 26px; line-height: 1.25; color: #001D08; margin: 0 0 6px; }
.cpa-auth__intro { font-size: 15px; line-height: 1.6; color: #55635a; margin: 0 0 18px; }
.cpa-auth__status { margin-bottom: 16px; }
.cpa-alert--info { background: #eef4ee; border: 1px solid rgba(55, 80, 54, 0.3); color: #2d4a2c; padding: 12px 14px; border-radius: 10px; font-size: 14px; }
.cpa-auth__form { display: flex; flex-direction: column; gap: 14px; }
.cpa-auth__field { display: flex; flex-direction: column; min-width: 0; }
.cpa-auth__field > label:not(.cpa-auth__check) { font-family: var(--rr-ff-heading); font-size: 14px; font-weight: 500; color: #001D08; margin: 0 0 6px; line-height: 1.3; }
.cpa-auth .cpa-req { color: #c0392b; }
.cpa-auth .cpa-auth__field input[type="text"], .cpa-auth .cpa-auth__field input[type="email"], .cpa-auth .cpa-auth__field input[type="password"] {
  box-sizing: border-box; width: 100%; height: 46px; min-height: 0; margin: 0; padding: 0 14px; font-size: 15px; line-height: normal; color: #001D08;
  background: #fff; border: 1px solid #d9ddd6; border-radius: 10px; box-shadow: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.cpa-auth .cpa-auth__field input:focus { outline: none; border-color: #375036; box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.15); }
.cpa-auth .cpa-auth__field input[aria-invalid="true"] { border-color: #c0392b; }
.cpa-auth .cpa-field-error { margin: 5px 0 0; font-size: 13px; line-height: 1.4; color: #b03a2e; }
.cpa-auth__hint { margin: 6px 0 0; font-size: 12.5px; line-height: 1.45; color: #6b776e; }
.cpa-pw { position: relative; }
.cpa-auth .cpa-pw input { padding-right: 48px; }
.cpa-pw__toggle { position: absolute; top: 3px; right: 3px; width: 40px; height: 40px; border: 0; border-radius: 8px; background: transparent; color: #55635a; font-size: 16px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.cpa-pw__toggle:hover { color: #375036; background: #f1f4f0; }
.cpa-pw__toggle:focus-visible { outline: 2px solid #375036; outline-offset: 0; }
.cpa-pw__toggle[hidden] { display: none; }
.cpa-pw-meter { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.cpa-pw-meter[hidden] { display: none; }
.cpa-pw-meter__track { flex: 1 1 auto; height: 6px; border-radius: 6px; background: #e7eae5; overflow: hidden; }
.cpa-pw-meter__bar { display: block; height: 100%; width: 0; border-radius: 6px; background: #c0392b; transition: width .2s ease, background .2s ease; }
.cpa-pw-meter[data-score="2"] .cpa-pw-meter__bar { background: #c9a24a; }
.cpa-pw-meter[data-score="3"] .cpa-pw-meter__bar { background: #6b8f45; }
.cpa-pw-meter[data-score="4"] .cpa-pw-meter__bar { background: #375036; }
.cpa-pw-meter__label { flex: 0 0 auto; font-size: 12.5px; color: #55635a; min-width: 150px; text-align: right; }
.cpa-auth__check { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: 14px; line-height: 1.5; color: #2f3d33; cursor: pointer; }
.cpa-auth .cpa-auth__check input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #375036; }
.cpa-auth__check a, .cpa-auth__link, .cpa-auth__alt a { color: #375036; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.cpa-auth__check a:hover, .cpa-auth__link:hover, .cpa-auth__alt a:hover { color: #001D08; }
.cpa-auth__row { display: flex; justify-content: flex-end; margin-top: -4px; font-size: 14px; }
.cpa-auth__submit { width: 100%; height: 50px; margin-top: 4px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 10px; color: #fff; font-family: var(--rr-ff-heading); font-size: 16px; font-weight: 600; text-decoration: none; background: linear-gradient(135deg, #476a45 0%, #375036 55%, #001D08 100%); box-shadow: 0 8px 18px rgba(0, 29, 8, 0.18); transition: transform .2s ease, box-shadow .2s ease, filter .2s ease; }
.cpa-auth__submit:hover:not([disabled]) { filter: brightness(.88); transform: translateY(-1px); color: #fff; }
.cpa-auth__submit:focus-visible { outline: 3px solid rgba(201, 162, 74, 0.7); outline-offset: 2px; }
.cpa-auth__submit[disabled], .cpa-auth__submit.is-busy { opacity: .85; cursor: progress; }
.cpa-auth__submit--inline { width: auto; padding: 0 24px; margin: 0; }
.cpa-auth__alt { margin: 18px 0 0; text-align: center; font-size: 14px; color: #55635a; }
.cpa-auth__details { margin: 0 0 20px; padding: 0; border: 1px solid rgba(0, 29, 8, 0.08); border-radius: 12px; overflow: hidden; }
.cpa-auth__details > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 16px; font-size: 14px; }
.cpa-auth__details > div + div { border-top: 1px solid rgba(0, 29, 8, 0.08); }
.cpa-auth__details dt { font-weight: 500; color: #6b776e; }
.cpa-auth__details dd { margin: 0; color: #001D08; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.cpa-auth__actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.cpa-auth__actions form { margin: 0; }
.cpa-auth__ghost { display: inline-flex; align-items: center; height: 50px; padding: 0 22px; border: 1px solid #375036; border-radius: 10px; color: #375036; font-weight: 600; text-decoration: none; }
.cpa-auth__ghost:hover { background: #edf2ec; color: #001D08; }
@media (max-width: 575px) {
  .cpa-auth { padding: 32px 0 48px; }
  .cpa-auth__card { padding: 24px 18px 22px; }
  .cpa-auth__title { font-size: 22px; }
  .cpa-pw-meter__label { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { .cpa-auth__submit, .cpa-pw-meter__bar { transition: none; } .cpa-auth__submit:hover:not([disabled]) { transform: none; } }

/* t38u: shared auth modal */
/* t39u: scroll lock; scrollbar compensation is set inline by cpa-auth-modal.js (body + fixed sticky header) */
html.cpa-am-lock { overflow: hidden; }
html.cpa-am-lock body { overflow: hidden; }
.cpa-am { position: fixed; inset: 0; z-index: 10050; display: flex; align-items: center; justify-content: center; padding: 24px 16px; }
.cpa-am[hidden] { display: none; }
/* t39u: no backdrop-filter (a full-viewport blur re-rasterised the page every frame and was the measured cause of the lag) */
.cpa-am__backdrop { position: absolute; inset: 0; background: rgba(0, 29, 8, 0.58); animation: cpa-am-fade .18s ease-out both; }
.cpa-am__dialog { position: relative; width: 100%; max-width: 460px; max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px); display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(0, 29, 8, 0.09); border-radius: 16px; box-shadow: 0 24px 60px rgba(0, 29, 8, 0.28); animation: cpa-am-pop .18s cubic-bezier(.2, .8, .2, 1) both; will-change: opacity, transform; }
.cpa-am__dialog--wide { max-width: 520px; }
.cpa-am__dialog:focus { outline: none; }
.cpa-am.is-closing .cpa-am__backdrop { animation: cpa-am-fade-out .16s ease-in both; }
.cpa-am.is-closing .cpa-am__dialog { animation: cpa-am-pop-out .16s ease-in both; }
.cpa-am.is-closing { pointer-events: none; }
@keyframes cpa-am-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes cpa-am-fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes cpa-am-pop { from { opacity: 0; transform: translateY(8px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes cpa-am-pop-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(6px) scale(.98); } }
.cpa-am__body { overflow-y: auto; overscroll-behavior: contain; padding: 30px 30px 26px; border-radius: 16px; }
.cpa-am__close { position: absolute; top: 12px; right: 12px; z-index: 2; width: 38px; height: 38px; border: 0; border-radius: 10px; background: #f3f5f2; color: #001D08; font-size: 18px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s ease; }
.cpa-am__close:hover { background: #e5eae3; }
.cpa-am__close:focus-visible { outline: 2px solid #375036; outline-offset: 2px; }
.cpa-am .cpa-auth__title { padding-right: 44px; }
.cpa-am .cpa-auth__title:focus { outline: none; }
.cpa-am .cpa-auth__form { display: flex; flex-direction: column; gap: 14px; }
/* field styles shared with the standalone pages (.cpa-auth scope) */
.cpa-am .cpa-req { color: #c0392b; }
.cpa-am .cpa-auth__field input[type="text"], .cpa-am .cpa-auth__field input[type="email"], .cpa-am .cpa-auth__field input[type="password"] {
  box-sizing: border-box; width: 100%; height: 46px; min-height: 0; margin: 0; padding: 0 14px; font-size: 15px; line-height: normal; color: #001D08;
  background: #fff; border: 1px solid #d9ddd6; border-radius: 10px; box-shadow: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.cpa-am .cpa-pw input { padding-right: 48px; }
.cpa-am .cpa-auth__field input:focus { outline: none; border-color: #375036; box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.15); }
.cpa-am .cpa-auth__field input[aria-invalid="true"] { border-color: #c0392b; }
.cpa-am .cpa-field-error { margin: 5px 0 0; font-size: 13px; line-height: 1.4; color: #b03a2e; }
.cpa-am .cpa-auth__check input { flex: 0 0 18px; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #375036; }
.cpa-am .cpa-auth__status { margin-bottom: 14px; }
@media (max-width: 575px) {
  .cpa-am { padding: 12px; align-items: center; }
  .cpa-am__dialog, .cpa-am__dialog--wide { max-width: none; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
  .cpa-am__body { padding: 24px 18px 20px; }
  .cpa-am .cpa-auth__title { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .cpa-am__backdrop, .cpa-am__dialog, .cpa-am.is-closing .cpa-am__backdrop, .cpa-am.is-closing .cpa-am__dialog { animation: none; }
}

/* t39u: sign-up form (modal + standalone signup.php share this markup) */
.cpa-am__dialog--wide { max-width: 780px; }
.cpa-auth__card:has(.cpa-su) { max-width: 780px; }
.cpa-su__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; align-items: start; }
.cpa-su .cpa-auth__field { margin: 0; min-width: 0; }
.cpa-su .cpa-auth__hint { margin-top: 5px; font-size: 12px; }
.cpa-su .cpa-opt { font-weight: 400; color: #6b776e; font-size: 13px; }
.cpa-su .cpa-auth__field input[type="text"], .cpa-su .cpa-auth__field input[type="email"], .cpa-su .cpa-auth__field input[type="password"], .cpa-su .cpa-auth__field input[type="tel"], .cpa-su .cpa-auth__field select {
  box-sizing: border-box; width: 100%; height: 46px; min-height: 0; margin: 0; padding: 0 14px; font-size: 15px; line-height: normal; color: #001D08;
  background-color: #fff; border: 1px solid #d9ddd6; border-radius: 10px; box-shadow: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.cpa-su .cpa-auth__field select { -webkit-appearance: none; appearance: none; padding-right: 38px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23375036' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; }
.cpa-su .cpa-auth__field select:invalid, .cpa-su .cpa-auth__field select option[value=""] { color: #7d877f; }
.cpa-su .cpa-auth__field select option { color: #001D08; }
.cpa-su .cpa-auth__field input:focus, .cpa-su .cpa-auth__field select:focus { outline: none; border-color: #375036; box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.15); }
.cpa-su .cpa-auth__field input[aria-invalid="true"], .cpa-su .cpa-auth__field select[aria-invalid="true"] { border-color: #c0392b; }
.cpa-su .cpa-auth__field input::placeholder { color: #9aa39c; }
.cpa-su .cpa-auth__field input:disabled { background: #f5f6f3; color: #7d877f; cursor: not-allowed; }
/* searchable country box */
.cpa-combo { position: relative; }
.cpa-su .cpa-combo__input { padding-right: 38px; }
.cpa-combo__caret { position: absolute; right: 14px; top: 50%; width: 12px; height: 8px; margin-top: -4px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23375036' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat center; }
.cpa-combo__list { position: absolute; z-index: 5; left: 0; right: 0; top: calc(100% + 4px); max-height: 236px; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 6px; list-style: none;
  background: #fff; border: 1px solid #d9ddd6; border-radius: 10px; box-shadow: 0 14px 30px rgba(0, 29, 8, 0.16); }
.cpa-combo__list[hidden] { display: none; }
.cpa-combo__opt, .cpa-combo__empty { padding: 8px 10px; border-radius: 7px; font-size: 14.5px; line-height: 1.35; color: #001D08; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cpa-combo__opt.is-active { background: #eef2ec; }
.cpa-combo__opt[aria-selected="true"] { font-weight: 600; box-shadow: inset 3px 0 0 #c9a24a; }
.cpa-combo__empty { color: #6b776e; cursor: default; }
/* contact number with calling code */
.cpa-phone { display: flex; gap: 8px; }
.cpa-phone__cc { position: relative; flex: 0 0 104px; height: 46px; border: 1px solid #d9ddd6; border-radius: 10px; background: #f7f8f5; display: flex; align-items: center; padding: 0 30px 0 12px; font-size: 15px; color: #001D08; white-space: nowrap; overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23375036' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 11px center; }
.cpa-phone__cc:focus-within { border-color: #375036; box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.15); }
.cpa-phone__cc:has(select[aria-invalid="true"]) { border-color: #c0392b; }
.cpa-su .cpa-phone__cc select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; padding: 0; background: none; }
.cpa-phone__cc-text { overflow: hidden; text-overflow: ellipsis; }
.cpa-phone input { flex: 1 1 auto; min-width: 0; }
/* terms */
.cpa-su__terms { margin-top: 2px; }
.cpa-su__terms-note { margin: 6px 0 0 28px; font-size: 13px; color: #55635a; }
.cpa-su__terms-note summary { display: inline-block; cursor: pointer; color: #375036; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; list-style: none; }
.cpa-su__terms-note summary::-webkit-details-marker { display: none; }
.cpa-su__terms-note summary:focus-visible { outline: 2px solid #c9a24a; outline-offset: 2px; border-radius: 3px; }
.cpa-su__terms-note p { margin: 6px 0 0; padding: 10px 12px; background: #f7f5ee; border-left: 3px solid #c9a24a; border-radius: 6px; line-height: 1.5; }
.cpa-su__terms-note a { color: #375036; font-weight: 600; text-decoration: underline; }
.cpa-su .cpa-auth__submit { height: 54px; font-size: 17px; margin-top: 2px; }
.cpa-su .cpa-auth__submit:focus-visible { outline: 2px solid #c9a24a; outline-offset: 3px; }
@media (max-width: 575px) {
  .cpa-su__grid { grid-template-columns: 1fr; gap: 12px; }
  .cpa-phone__cc { flex-basis: 96px; }
  .cpa-su__terms-note { margin-left: 0; }
}

/* =====================================================================
   Policy pages + FAQs (t41u): privacy-policy, terms-and-conditions,
   refund-policy, faqs. Scoped to .cpa-legal*, .cpa-faq*, .cpa-confirm.
   ===================================================================== */
/* Legal / FAQ banners: theme-colour banner, no image (t50u, see "Legal / FAQ banner" below). */

.cpa-confirm {
  display: inline;
  padding: 1px 6px;
  border: 1px solid rgba(201, 162, 74, 0.75);
  border-radius: 6px;
  background: rgba(201, 162, 74, 0.08);
  color: #6b5317;
  font-size: 0.92em;
  font-style: italic;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.cpa-legal {
  padding: 90px 0 110px;
  background: #fff;
}

.cpa-legal__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 32px;
  max-width: 1120px;
  margin: 0 auto;
}

@media (min-width: 992px) {
  .cpa-legal__layout {
    grid-template-columns: 260px minmax(0, 820px);
    justify-content: center;
    gap: 48px;
  }
}

.cpa-legal__toc {
  align-self: start;
  padding: 22px 22px 18px;
  border: 1px solid rgba(55, 80, 54, 0.14);
  border-radius: 14px;
  background: #f6f8f5;
}

@media (min-width: 992px) {
  .cpa-legal__toc {
    position: sticky;
    top: 120px;
    max-height: calc(100vh - 140px);
    overflow-y: auto;
  }
}

.cpa-legal__toc-title {
  margin: 0 0 10px;
  font-family: var(--rr-ff-heading);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rr-heading-primary);
}

.cpa-legal__toc ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.cpa-legal__toc li + li { margin-top: 2px; }

.cpa-legal__toc a {
  display: flex;
  gap: 6px;
  padding: 5px 8px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.4;
  color: #3e4a3e;
  text-decoration: none;
}

.cpa-legal__toc a span {
  min-width: 1.6em;
  color: var(--rr-theme-primary);
  font-weight: 600;
}

.cpa-legal__toc a:hover,
.cpa-legal__toc a:focus-visible {
  background: rgba(55, 80, 54, 0.1);
  color: var(--rr-heading-primary);
}

.cpa-legal__doc {
  min-width: 0;
  max-width: 820px;
  color: #3f453f;
  font-size: 16px;
  line-height: 1.75;
}

.cpa-legal__doc p,
.cpa-legal__doc li { overflow-wrap: anywhere; }

.cpa-legal__meta {
  display: inline-block;
  margin-bottom: 18px;
  font-size: 14px;
  color: #5b665b;
}

.cpa-legal__intro {
  padding-bottom: 26px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(55, 80, 54, 0.14);
}

.cpa-legal__section {
  padding-top: 30px;
  scroll-margin-top: 120px;
}

.cpa-legal__section h2 {
  margin: 0 0 12px;
  font-size: clamp(21px, 2.4vw, 26px);
  line-height: 1.3;
  color: var(--rr-heading-primary);
}

.cpa-legal__num { color: var(--rr-theme-primary); margin-right: 4px; }

.cpa-legal__doc p { margin-bottom: 14px; }

.cpa-legal__doc ul {
  margin: 0 0 16px;
  padding-left: 22px;
}

.cpa-legal__doc ul li {
  list-style: disc;
  margin-bottom: 8px;
}

.cpa-legal__doc ul li::marker { color: var(--rr-theme-primary); }

.cpa-legal__doc a:not(.rr-btn) {
  color: var(--rr-theme-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cpa-legal__doc a:not(.rr-btn):hover { color: var(--rr-heading-primary); }

.cpa-legal__related {
  margin-top: 40px;
  padding: 18px 22px;
  border-left: 4px solid var(--rr-theme-primary);
  border-radius: 10px;
  background: #f6f8f5;
}

.cpa-legal__related p { margin: 0; }

@media (max-width: 991.98px) {
  .cpa-legal { padding: 60px 0 80px; }
  .cpa-legal__doc { margin: 0 auto; }
  .cpa-legal__toc ol { columns: 2; column-gap: 20px; }
  .cpa-legal__toc li { break-inside: avoid; }
}

@media (max-width: 575.98px) {
  .cpa-legal__toc ol { columns: 1; }
  .cpa-legal__doc { font-size: 15px; }
}


.cpa-legal__section h2 {
  font-family: var(--rr-ff-heading);
  font-weight: 600;
  letter-spacing: -0.01em;
}

.cpa-legal__doc h3 {
  margin: 20px 0 8px;
  font-family: var(--rr-ff-heading);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--rr-heading-primary);
}
/* calling-code picker (t42u): button + listbox, reusing .cpa-combo__list / .cpa-combo__opt */
.cpa-badge { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 26px; height: 20px; padding: 0 5px; border-radius: 5px; background: #eef2ec; color: #375036; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; line-height: 1; text-transform: uppercase; font-variant-numeric: tabular-nums; }
.cpa-phone:has(.cpa-phone__cc.is-enhanced) { gap: 0; }
.cpa-su .cpa-phone__cc.is-enhanced { flex: 0 0 auto; height: auto; padding: 0; border: 0; border-radius: 0; background: none; overflow: visible; box-shadow: none; }
.cpa-cc__btn { position: relative; display: flex; align-items: center; gap: 7px; box-sizing: border-box; height: 46px; min-width: 92px; margin: 0; padding: 0 34px 0 11px; border: 1px solid #d9ddd6; border-radius: 10px 0 0 10px; background: #f7f8f5; color: #001D08; font: inherit; font-size: 15px; line-height: 1; white-space: nowrap; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
.cpa-cc__btn:hover { background: #eef2ec; }
.cpa-cc__btn:focus { outline: none; }
.cpa-cc__btn:focus-visible, .cpa-cc__btn[aria-expanded="true"] { z-index: 2; border-color: #375036; box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.15); }
.cpa-cc__btn[aria-invalid="true"] { border-color: #c0392b; }
.cpa-cc__btn .cpa-cc__caret { right: 12px; transition: transform .15s ease; }
.cpa-cc__btn[aria-expanded="true"] .cpa-cc__caret { transform: rotate(180deg); }
.cpa-cc__face { display: inline-flex; align-items: center; gap: 7px; }
.cpa-cc__dial-sel { font-weight: 500; font-variant-numeric: tabular-nums; }
.cpa-cc__ph { color: #7d877f; }
.cpa-phone__cc.is-enhanced + input[type="tel"], .cpa-su .cpa-phone__cc.is-enhanced + input[type="tel"] { position: relative; margin-left: -1px; border-radius: 0 10px 10px 0; }
.cpa-su .cpa-phone__cc.is-enhanced + input[type="tel"]:focus { z-index: 2; }
.cpa-combo__list.cpa-cc__list { position: fixed; z-index: 1000; right: auto; top: 0; left: 0; width: 320px; box-sizing: border-box; }
.cpa-cc__list:focus { outline: none; }
.cpa-cc__opt { display: flex; align-items: center; gap: 10px; padding: 9px 10px; }
.cpa-cc__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.cpa-cc__dial { flex: 0 0 auto; margin-left: auto; color: #6b776e; font-weight: 400; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.cpa-cc__opt[aria-selected="true"] { background: #eef6ea; }
.cpa-cc__opt[aria-selected="true"].is-active { background: #e3eedd; }
.cpa-cc__opt[aria-selected="true"] .cpa-badge { background: #375036; color: #fff; }
@media (prefers-reduced-motion: reduce) { .cpa-cc__btn, .cpa-cc__btn .cpa-cc__caret { transition: none; } }
.cpa-phone__cc.is-enhanced .cpa-phone__cc-text { display: none; }

/* FAQs page (t43u): reuses the product-page FAQ block (.cpa-detail-faq); only spacing + intro here */
.cpa-faqs-page.cpa-section { padding-top: 90px; }
.cpa-faqs-page__lead { max-width: 760px; margin: -6px auto 28px; text-align: center; color: #4a554b; font-size: 16px; line-height: 1.7; }
.cpa-faqs-page__more { margin: 28px 0 0; text-align: center; color: #4a554b; }
.cpa-faqs-page__more a, .cpa-faqs-page .card-body a { color: var(--rr-theme-primary); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 991.98px) { .cpa-faqs-page.cpa-section { padding-top: 60px; } }
/* =====================================================================
   Legal / FAQ side navigation (t44u): .cpa-lnav  (JS: assets/js/cpa-legal-nav.js)
   --cpa-lnav-top: sticky offset below the sticky header (JS keeps it measured);
   --cpa-anchor-offset: where anchor jumps land. Both default to safe values.
   ===================================================================== */
.cpa-legal__layout { --cpa-lnav-top: 112px; --cpa-anchor-offset: 112px; }
.cpa-legal__section,
.cpa-legal__layout--faq .card { scroll-margin-top: calc(var(--cpa-anchor-offset) + 8px); }
.cpa-legal__layout--faq { max-width: 1160px; margin: 0 auto; }
.cpa-legal__layout--faq .cpa-detail-faq__inner { min-width: 0; max-width: none; margin: 0; }

.cpa-lnav { align-self: start; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.cpa-lnav__card {
  position: relative; display: flex; flex-direction: column; min-height: 0; overflow: hidden;
  background: #fff; border: 1px solid rgba(0, 29, 8, 0.1); border-top: 3px solid var(--rr-theme-primary);
  border-radius: 14px; box-shadow: 0 10px 30px rgba(0, 29, 8, 0.07), 0 1px 3px rgba(0, 29, 8, 0.05);
}
.cpa-lnav__progress { position: absolute; top: 0; left: 0; right: 0; height: 3px; background: transparent; }
.cpa-lnav__progress span { display: block; height: 100%; background: #c9a24a; transform: scaleX(0); transform-origin: 0 50%; }
.cpa-lnav__head {
  display: flex; align-items: center; gap: 9px; margin: 0; padding: 16px 18px 12px;
  font-family: var(--rr-ff-heading); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--rr-heading-primary); border-bottom: 1px solid rgba(0, 29, 8, 0.08);
}
.cpa-lnav__head i { color: var(--rr-theme-primary); font-size: 14px; }
.cpa-lnav__list {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 8px; list-style: none;
  scrollbar-width: thin; scrollbar-color: rgba(55, 80, 54, .35) transparent;
}
.cpa-lnav__list::-webkit-scrollbar { width: 6px; }
.cpa-lnav__list::-webkit-scrollbar-thumb { background: rgba(55, 80, 54, .35); border-radius: 6px; }
.cpa-lnav__list li { margin: 0; }
.cpa-lnav__list li + li { margin-top: 2px; }
.cpa-lnav__link {
  position: relative; display: flex; align-items: flex-start; gap: 10px; padding: 9px 10px; border-radius: 9px;
  color: #1f2a20; font-size: 14px; line-height: 1.4; text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}
.cpa-lnav__link:hover { background: #eef4ea; color: var(--rr-heading-primary); }
.cpa-lnav__link:focus-visible { outline: 2px solid #c9a24a; outline-offset: 1px; }
.cpa-lnav__badge {
  flex: 0 0 22px; width: 22px; height: 22px; margin-top: -1px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: #eef2ec; color: var(--rr-theme-primary); font-size: 11.5px; font-weight: 700; font-variant-numeric: tabular-nums;
  transition: background-color .15s ease, color .15s ease;
}
.cpa-lnav__text { min-width: 0; overflow-wrap: anywhere; }
.cpa-lnav__link.is-active { background: #f1f6ee; color: var(--rr-theme-primary); font-weight: 600; }
.cpa-lnav__link.is-active::before { content: ""; position: absolute; left: 0; top: 7px; bottom: 7px; width: 3px; border-radius: 3px; background: #c9a24a; }
.cpa-lnav__link.is-active .cpa-lnav__badge { background: var(--rr-theme-primary); color: #fff; }
.cpa-lnav__top {
  display: flex; align-items: center; gap: 8px; margin: 0; padding: 11px 18px 13px; border-top: 1px solid rgba(0, 29, 8, 0.08);
  color: var(--rr-theme-primary); font-size: 13.5px; font-weight: 600; text-decoration: none;
}
.cpa-lnav__top:hover, .cpa-lnav__top:focus-visible { background: #f6f8f5; color: var(--rr-heading-primary); }
.cpa-lnav__help {
  padding: 16px 18px; border-radius: 14px; background: var(--rr-heading-primary); color: #dfe8dc; font-size: 13.5px; line-height: 1.5;
}
.cpa-lnav__help p { margin: 0 0 8px; color: #dfe8dc; }
.cpa-lnav__help .cpa-lnav__help-title { margin-bottom: 4px; color: #fff; font-family: var(--rr-ff-heading); font-size: 15px; font-weight: 600; }
.cpa-lnav__help a { color: #e2bf6a; font-weight: 600; text-decoration: none; }
.cpa-lnav__help a:hover, .cpa-lnav__help a:focus-visible { color: #fff; text-decoration: underline; }

@media (min-width: 992px) {
  .cpa-lnav {
    position: sticky; top: var(--cpa-lnav-top); max-height: calc(100vh - var(--cpa-lnav-top) - 20px);
    transition: top .2s ease, max-height .2s ease;
  }
  .cpa-lnav__card { flex: 0 1 auto; }
  .cpa-lnav__help { flex: 0 0 auto; }
}
@media (min-width: 992px) and (max-height: 640px) { .cpa-lnav__help { display: none; } }

/* Below 992px: disclosure above the content */
.cpa-lnav__toggle { display: none; }
@media (max-width: 991.98px) {
  .cpa-lnav { gap: 10px; }
  .cpa-lnav.is-compact .cpa-lnav__toggle {
    display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 13px 16px;
    background: #fff; border: 1px solid rgba(0, 29, 8, 0.12); border-left: 3px solid var(--rr-theme-primary); border-radius: 12px;
    box-shadow: 0 6px 18px rgba(0, 29, 8, 0.06); color: var(--rr-heading-primary); font: inherit; font-size: 15px; font-weight: 600; text-align: left; cursor: pointer;
  }
  .cpa-lnav__toggle:focus-visible { outline: 2px solid #c9a24a; outline-offset: 2px; }
  .cpa-lnav__toggle-icon { color: var(--rr-theme-primary); }
  .cpa-lnav__count { font-weight: 400; color: #5b665b; }
  .cpa-lnav__current { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; font-size: 13px; font-weight: 400; color: #5b665b; }
  .cpa-lnav__chev { flex: 0 0 12px; width: 12px; height: 8px; transition: transform .2s ease;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23375036' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat center; }
  .cpa-lnav__toggle[aria-expanded="true"] .cpa-lnav__chev { transform: rotate(180deg); }
  .cpa-lnav.is-compact .cpa-lnav__head { display: none; }
  .cpa-lnav.is-compact .cpa-lnav__card { border-top-width: 1px; }
  .cpa-lnav.is-compact .cpa-lnav__progress { display: none; }
  .cpa-lnav__list { max-height: 60vh; }
  .cpa-lnav__help { display: none; }
  .cpa-legal__layout--faq { gap: 20px; }
}
@media (max-width: 575.98px) { .cpa-lnav__current { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .cpa-lnav, .cpa-lnav__link, .cpa-lnav__badge, .cpa-lnav__chev { transition: none; }
}
@media (min-width: 992px) { .cpa-lnav.is-tight .cpa-lnav__help { display: none; } }
.cpa-lnav__chev { margin-left: auto; }

/* =====================================================================
   Cream footer (t45u): includes/footer.php  (.cpa-ft*)
   Decorations: assets/imgs/footer/footer-patches-{left,right}.webp (cut out on the same cream).
   ===================================================================== */
.cpa-ft { --cpa-ft-bg: #ffffff; --cpa-ft-bar: #edede8; --cpa-ft-ink: #1f2a20; --cpa-ft-line: rgba(0, 29, 8, 0.12);
  position: relative; background: var(--cpa-ft-bg); color: var(--cpa-ft-ink); font-size: 15px; line-height: 1.6; }
.cpa-ft__main { position: relative; overflow: hidden; padding: 72px 0 236px; }
.cpa-ft__main > .container { position: relative; z-index: 1; }
.cpa-ft__deco { position: absolute; bottom: 0; z-index: 0; height: auto; pointer-events: none; user-select: none; }
.cpa-ft__deco--left { left: 0; width: 500px; }
.cpa-ft__deco--right { right: 0; width: 450px; }
.cpa-ft__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .95fr) minmax(0, .95fr) minmax(0, 1.3fr); }
.cpa-ft__col { min-width: 0; padding: 0 30px; }
.cpa-ft__col:first-child { padding-left: 0; }
.cpa-ft__col:last-child { padding-right: 0; }
.cpa-ft__col + .cpa-ft__col { border-left: 1px solid var(--cpa-ft-line); }
.cpa-ft__logo { display: inline-block; margin-bottom: 18px; }
.cpa-ft__logo img { display: block; width: 210px; max-width: 100%; height: auto; }
.cpa-ft__about { margin: 0 0 22px; max-width: 310px; color: #1f2a20; font-size: 16px; font-weight: 500; line-height: 1.65; }
.cpa-ft__social { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.cpa-ft__social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid rgba(0, 29, 8, 0.16); background: #fff; color: var(--rr-heading-primary); font-size: 15px; text-decoration: none;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease; }
.cpa-ft__social a:hover { background: var(--rr-theme-primary); border-color: var(--rr-theme-primary); color: #fff; transform: translateY(-2px); }
.cpa-ft__title { position: relative; margin: 0 0 24px; padding-bottom: 12px; font-family: var(--rr-ff-heading); font-size: 23px; font-weight: 700; line-height: 1.3; color: var(--rr-heading-primary); }
.cpa-ft__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 2px; border-radius: 2px; background: var(--rr-theme-primary); }
.cpa-ft__links { margin: 0; padding: 0; list-style: none; }
.cpa-ft__links li + li { margin-top: 9px; }
.cpa-ft__links a { display: inline-flex; align-items: center; gap: 10px; color: var(--cpa-ft-ink); font-size: 16px; font-weight: 500; line-height: 1.45; text-decoration: none; transition: color .15s ease, transform .15s ease; }
.cpa-ft__links a i { flex: 0 0 auto; font-size: 13px; color: var(--rr-heading-primary); transition: transform .15s ease; }
.cpa-ft__links a:hover { color: var(--rr-theme-primary); }
.cpa-ft__links a:hover i { transform: translateX(2px); }
.cpa-ft__sub-text { margin: 0 0 20px; color: #1f2a20; font-size: 16px; font-weight: 500; line-height: 1.6; }
.cpa-ft__form { margin: 0 0 20px; }
.cpa-ft__field { display: flex; align-items: stretch; height: 48px; border: 1px solid #d6dbd2; border-radius: 10px; background: #fff; overflow: hidden; transition: border-color .15s ease, box-shadow .15s ease; }
.cpa-ft__field:focus-within { border-color: var(--rr-theme-primary); box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.16); }
.cpa-ft__field:has(input[aria-invalid="true"]) { border-color: #c0392b; }
.cpa-ft__field-icon { display: flex; align-items: center; padding: 0 0 0 14px; color: #55615a; }
.cpa-ft .cpa-ft__field input { flex: 1 1 auto; min-width: 0; height: 100%; margin: 0; padding: 0 10px; border: 0; background: transparent; color: var(--cpa-ft-ink); font-size: 15px; font-weight: 500; box-shadow: none; outline: none; }
.cpa-ft__field input::placeholder { color: #66716a; }
.cpa-ft__btn { position: relative; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 0 18px; border: 0; border-radius: 0 9px 9px 0;
  background: var(--rr-heading-primary); color: #fff; font-family: var(--rr-ff-heading); font-size: 15px; font-weight: 700; cursor: pointer; transition: background-color .15s ease; }
.cpa-ft__btn:hover { background: var(--rr-theme-primary); }
.cpa-ft__btn:focus-visible { outline: 3px solid #c9a24a; outline-offset: -3px; }
.cpa-ft__btn:disabled { cursor: progress; }
.cpa-ft__btn-chev { font-size: 12px; }
.cpa-ft__spinner { display: none; width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, .4); border-top-color: #fff; border-radius: 50%; animation: cpa-ft-spin .7s linear infinite; }
.cpa-ft__form.is-busy .cpa-ft__spinner { display: inline-block; }
.cpa-ft__form.is-busy .cpa-ft__btn-chev { display: none; }
@keyframes cpa-ft-spin { to { transform: rotate(360deg); } }
.cpa-ft__msg { min-height: 0; margin: 8px 0 0; font-size: 14px; line-height: 1.45; color: #4a554b; }
.cpa-ft__msg:empty { display: none; }
.cpa-ft__msg.is-success { color: #2e6b2c; font-weight: 600; }
.cpa-ft__msg.is-error { color: #b03224; }
.cpa-ft__hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cpa-ft__contact { margin: 0; padding: 18px 0 0; border-top: 1px solid var(--cpa-ft-line); list-style: none; }
.cpa-ft__contact li + li { margin-top: 12px; }
.cpa-ft__contact a { display: inline-flex; align-items: center; gap: 12px; color: var(--cpa-ft-ink); font-size: 16px; font-weight: 500; text-decoration: none; transition: color .15s ease; }
.cpa-ft__contact-icon { display: inline-flex; width: 26px; justify-content: center; color: var(--rr-heading-primary); }
.cpa-ft__contact a > i { font-size: 12px; color: #6b776e; transition: transform .15s ease; }
.cpa-ft__contact a:hover { color: var(--rr-theme-primary); }
.cpa-ft__contact a:hover > i { transform: translateX(2px); }
.cpa-ft a:focus-visible { outline: 2px solid #c9a24a; outline-offset: 3px; border-radius: 4px; }
.cpa-ft__social a:focus-visible { border-radius: 50%; }
.cpa-ft__bar { position: relative; z-index: 1; background: var(--cpa-ft-bar); border-top: 1px solid rgba(0, 29, 8, 0.06); }
.cpa-ft__bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-top: 20px; padding-bottom: 20px; padding-right: 84px; }
.cpa-ft__copy { margin: 0; color: #253026; font-size: 15px; font-weight: 500; }
.cpa-ft__legal { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.cpa-ft__legal li + li::before { content: "|"; margin: 0 14px; color: rgba(0, 29, 8, 0.3); }
.cpa-ft__legal a { color: #253026; font-size: 15px; font-weight: 500; text-decoration: none; }
.cpa-ft__legal a:hover { color: var(--rr-theme-primary); text-decoration: underline; text-underline-offset: 3px; }

/* subscribe.php (no-JS fallback page) */
.cpa-nl-page { padding: 80px 0 100px; }
.cpa-nl-page__card { max-width: 560px; margin: 0 auto; padding: 32px; background: #fff; border: 1px solid rgba(0, 29, 8, .1); border-radius: 16px; box-shadow: 0 12px 34px rgba(0, 29, 8, .07); }
.cpa-nl-page__title { font-size: 24px; margin-bottom: 8px; color: var(--rr-heading-primary); }
.cpa-nl-page__form label { display: block; margin-bottom: 6px; font-weight: 600; color: var(--rr-heading-primary); }
.cpa-nl-page__form .cpa-ft__field input { flex: 1 1 auto; min-width: 0; height: 100%; padding: 0 14px; border: 0; outline: none; background: transparent; }
.cpa-nl-page__msg { padding: 10px 14px; border-radius: 10px; font-weight: 600; }
.cpa-nl-page__msg--ok { background: #eef6ea; color: #2e6b2c; }
.cpa-nl-page__msg--info { background: #f7f5ee; color: #6b5317; border-left: 3px solid #c9a24a; }
.cpa-nl-page__msg--err { background: #fbeceb; color: #b03224; }

@media (max-width: 1199.98px) {
  .cpa-ft__col { padding: 0 20px; }
  .cpa-ft__main { padding-bottom: 136px; }
  .cpa-ft__deco--left { width: 260px; }
  .cpa-ft__deco--right { width: 100px; }
  .cpa-ft__btn { padding: 0 14px; }
}
@media (max-width: 991.98px) {
  .cpa-ft__main { padding: 60px 0 116px; }
  .cpa-ft__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 0; }
  .cpa-ft__col, .cpa-ft__col:first-child, .cpa-ft__col:last-child { padding: 0 28px; }
  .cpa-ft__col:nth-child(odd) { padding-left: 0; border-left: 0; }
  .cpa-ft__col:nth-child(even) { padding-right: 0; }
  .cpa-ft__deco--left { width: 210px; }
  .cpa-ft__deco--right { width: 84px; }
}
@media (max-width: 575.98px) {
  .cpa-ft__main { padding: 48px 0 40px; }
  .cpa-ft__grid { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .cpa-ft__col, .cpa-ft__col:first-child, .cpa-ft__col:last-child, .cpa-ft__col:nth-child(even) { padding: 0; border-left: 0; }
  .cpa-ft__col + .cpa-ft__col { padding-top: 30px; border-top: 1px solid var(--cpa-ft-line); }
  .cpa-ft__deco { display: none; }
  .cpa-ft__about { max-width: none; }
  .cpa-ft__bar-inner { flex-direction: column; align-items: flex-start; padding-right: 72px; }
  .cpa-ft__legal li + li::before { margin: 0 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .cpa-ft__social a, .cpa-ft__links a, .cpa-ft__links a i, .cpa-ft__contact a > i { transition: none; }
  .cpa-ft__social a:hover { transform: none; }
  .cpa-ft__spinner { animation-duration: 1.6s; }
}
/* =====================================================================
   t47u: laptop / short-viewport fixes (header clipping + homepage hero).
   Nothing here applies at >= 1600px wide, so large screens render exactly as before.
   ===================================================================== */
/* Header: main.css pulls the hamburger out with margin-left:-80px and removes that below 1750px,
   but .header__logo-3 keeps justify-content:center inside a .header__left box that is only as wide
   as the logo (260px). The hamburger + gap + logo (326px) then overflows that box on both sides
   and the hamburger ends up at x < 0. Let the group size to its content and start at the edge. */
@media (max-width: 1599.98px) {
  .header__area .header__left { flex: 0 0 auto; }
  .header__logo.header__logo-3 { justify-content: flex-start; }
}

/* Homepage hero on laptop widths (1200-1499px) and on short 1500-1599px viewports. */
@media (min-width: 1200px) and (max-width: 1499.98px), (min-width: 1500px) and (max-width: 1599.98px) and (max-height: 860px) {
  .banner__area { --cpa-hero-pt: clamp(170px, calc(110px + 10vh), 230px); --cpa-hero-s: .8; }
  /* min-height keeps the scaled collage (bottom = 148px + 749px * scale) inside the overflow:hidden slide. */
  .banner__area .banner__space-3 { padding-top: var(--cpa-hero-pt); padding-bottom: clamp(70px, 11vh, 130px); min-height: calc(172px + 749px * var(--cpa-hero-s)); }
  .banner__area .banner-custom-container .banner .content-3 .title { font-size: clamp(40px, min(3.4vw, 7vh), 56px); line-height: 1.25; }
  .banner__area .banner-custom-container .banner .content-3 .sub-title { margin-bottom: 10px; }
  .banner__area .banner-custom-container .banner .content-3 .banner-home-2__btn__wrapper-2 { margin-top: 28px; padding-bottom: 24px; }
  /* Collage (two rotated 300x370 cards; they reach ~186px above the row and ~563px below it) scaled
     as one unit on the wrapper (.middel-img itself is animated with transform) and placed so its
     top clears the ~136px header. */
  .banner__area .banner-custom-container .banner .banner-media-3 {
    transform: translateY(calc(148px - var(--cpa-hero-pt) + 186px * var(--cpa-hero-s))) scale(var(--cpa-hero-s));
    transform-origin: 50% 0;
  }
  /* Brush shape: same transform as the collage, around the same point (centre of the middle column at
     row top), so it stays behind the cards. Theme value top:279px = row top - 46px. */
  .banner__area .banner__space-3 .bg-shape {
    top: calc(var(--cpa-hero-pt) - 46px);
    transform: translateY(calc(148px - var(--cpa-hero-pt) + 186px * var(--cpa-hero-s))) scale(var(--cpa-hero-s));
    transform-origin: calc(50vw - 15px - 378px) 46px;
  }
  .banner__area .banner-custom-container .banner .banner-text .text-space p { margin-top: 0; font-size: 18px; }
  .banner__area .banner-custom-container .banner .banner-text .text-space .arrow img { max-width: min(410px, 26vw); }
}
@media (min-width: 1200px) and (max-width: 1599.98px) and (max-height: 800px) { .banner__area { --cpa-hero-s: .7; } }
@media (min-width: 1200px) and (max-width: 1599.98px) and (max-height: 700px) { .banner__area { --cpa-hero-s: .62; } }

/* Single-column hero (<= 991px): the theme's margin-right:-59px lets the headline run past the
   column, so long words were cut off by the slider's overflow:hidden on phones. */
@media (max-width: 991.98px) {
  .banner__area .banner-custom-container .banner .content-3 { margin-right: 0; }
}
@media (max-width: 575.98px) {
  .banner__area .banner-custom-container .banner .content-3 .title { font-size: clamp(30px, 10vw, 45px); line-height: 1.3; overflow-wrap: break-word; }
}/* 1200-1299px: the 260px logo left only 18px (1280) down to ~0px (1200) before "Home"; scale it to 214-230px. */
@media (min-width: 1200px) and (max-width: 1299.98px) {
  .header__logo.header__logo-3 .logo-3, .header__logo.header__logo-3 .logo-3 img { width: clamp(214px, calc(16px + 16.5vw), 230px); max-width: 230px; }
}
/* =====================================================================
   t48u: product pages (product-detail template)
   ===================================================================== */
/* Main intro image (770x520): on desktop widths with a short window it could fill or exceed the
   space under the ~130-136px sticky header. Cap it to the visible area (header + 2 x 22px gap);
   "cover" with a centred position trims evenly top and bottom only when the cap applies,
   so tall windows (>= ~700px) render exactly as before. */
@media (min-width: 1200px) {
  .cpa-pd-intro__media img { max-height: max(340px, calc(100vh - 180px)); object-fit: cover; object-position: 50% 50%; }
}

/* How It Works: was 90px top/bottom + 50px under the heading, after the FAQ section's 100px
   bottom padding (~190px of space at the FAQ -> How It Works seam). Scale it with the viewport. */
.cpa-pd-process { padding-top: clamp(56px, 5vw, 80px); padding-bottom: clamp(56px, 5vw, 80px); }
.cpa-pd-process__title { margin-bottom: clamp(28px, 2.6vw, 44px); }
.cpa-detail-faq.cpa-section:has(+ .cpa-pd-process) { padding-bottom: clamp(56px, 5vw, 80px); }
/* =====================================================================
   t49u: pre-footer CTA (.happy-customer__are; homepage, about-us, all 8 product pages)
   main.css hides both decoration images for every width <= 1600px, while the 120px / 70px
   padding stays, so laptop screens got a tall, empty band. 1200-1600px: show both images scaled
   with the viewport, narrow the text column so they never meet, and tighten the padding.
   Nothing here applies above 1600px.
   ===================================================================== */
@media (min-width: 1200px) and (max-width: 1600px) {
  .happy-customer__are.section-space-top { padding-top: 72px; }
  .happy-customer__are.pb-70-custom { padding-bottom: 60px; }
  .happy-customer__are .happy-customer__content-wrapper { max-width: clamp(640px, 52vw, 820px); margin-left: auto; margin-right: auto; margin-bottom: 30px; }
  .happy-customer__are .happy-customer__content-wrapper-title { font-size: clamp(34px, 3vw, 44px); line-height: 1.2; }
  .happy-customer__are .happy-customer__shape-wrapper-left-shape { display: block; left: -40px; top: 24px; width: 22vw; }
  .happy-customer__are .happy-customer__shape-wrapper-right-shape { display: block; right: -30px; top: 64px; width: calc(22vw * 404 / 501); }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  /* Images stay hidden here (not enough room beside the text); trim the empty space instead. */
  .happy-customer__are.section-space-top { padding-top: 80px; }
}
/* =====================================================================
   t50u: Legal / FAQ banner (privacy, terms, refund, faqs via cpa_legal_banner()).
   Forest-green gradient with a faint woven texture and a gold "stitch" line; no image.
   Same .cpa-detail-hero.breadcrumb-space spacing as the product banners.
   ===================================================================== */
.cpa-legal-hero.cpa-detail-hero {
  background-color: #001D08;
  background-image:
    radial-gradient(ellipse 60% 85% at 50% 55%, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0) 70%),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.035) 0 1px, rgba(255, 255, 255, 0) 1px 14px),
    repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.025) 0 1px, rgba(255, 255, 255, 0) 1px 14px),
    linear-gradient(135deg, #375036 0%, #001D08 100%);
  background-size: auto;
}
.cpa-legal-hero.cpa-detail-hero::before { background: none; }
.cpa-legal-hero .breadcrumb__title { text-shadow: none; }
.cpa-legal-hero .breadcrumb__menu ul li span,
.cpa-legal-hero .breadcrumb__menu ul li span a,
.cpa-legal-hero .breadcrumb__menu ul li:not(:last-child)::before { color: #fff; text-shadow: none; }
.cpa-legal-hero .breadcrumb__menu ul li.active span { color: #e2bf6a; text-shadow: none; }
.cpa-legal-hero .breadcrumb__menu ul li span a:hover,
.cpa-legal-hero .breadcrumb__menu ul li span a:focus-visible { color: #e2bf6a; }

/* t50u: State / Province uses the same .cpa-combo as Country */
.cpa-combo__opt[aria-selected="true"] { background: #f3f7f1; }
.cpa-combo__opt[aria-selected="true"].is-active { background: #e8efe5; }
.cpa-combo.is-disabled .cpa-combo__input { background: #f2f3f0; color: #6b776e; cursor: not-allowed; }
.cpa-combo.is-disabled .cpa-combo__caret { opacity: .45; }
.cpa-combo[hidden] { display: none; }
/* t51u: brand logo centred above the Login heading (modal + login.php) */
.cpa-auth__head--brand { text-align: center; }
.cpa-auth__logo { display: block; width: 250px; max-width: 100%; height: auto; margin: 0 auto 16px; }
.cpa-am .cpa-auth__head--brand .cpa-auth__title { padding-right: 0; }
@media (max-width: 575.98px) {
  .cpa-auth__logo { width: 160px; margin-bottom: 14px; }
}
/* t52u/t53u: compact banner on all four legal/FAQ pages (top padding includes the overlaid header: ~136px desktop/tablet, ~86px mobile) */
.cpa-legal-hero.cpa-detail-hero.breadcrumb-space { padding: 206px 0 68px; }
@media (max-width: 575.98px) {
  .cpa-legal-hero.cpa-detail-hero.breadcrumb-space { padding: 126px 0 40px; }
}

/* Clean-URL 404 page */
.cpa-404 { padding-top: 180px; padding-bottom: 100px; }
.cpa-404__code { margin: 0 0 8px; font-size: 72px; line-height: 1; font-weight: 700; color: #375036; opacity: .35; }
.cpa-404__title { margin: 0 0 12px; color: #001D08; }
.cpa-404__text { margin: 0 auto 28px; max-width: 34em; color: #445047; }
.cpa-404__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
@media (max-width: 575.98px) {
  .cpa-404 { padding-top: 120px; padding-bottom: 64px; }
  .cpa-404__code { font-size: 56px; }
}

/* Who We Work With — two opposite marquees */
.cpa-audiences {
  overflow: hidden;
  max-width: 100%;
}

.cpa-audiences .partners__title-wrapper-subtitle {
  font-family: var(--rr-ff-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  padding: 6px 16px 7px;
}

.cpa-audiences__lead {
  max-width: 640px;
  margin: 14px auto 0;
  color: #4d5a4c;
  font-size: 16px;
  line-height: 1.55;
}

.cpa-audiences__rows {
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-top: 36px;
  max-width: 100%;
}

.cpa-audiences__row {
  overflow: hidden;
  max-width: 100%;
}

.cpa-audiences__track {
  display: flex;
  width: max-content;
  animation: cpa-audiences-marquee 48s linear infinite;
}

.cpa-audiences__row--reverse .cpa-audiences__track {
  animation-direction: reverse;
}

.cpa-audiences__row:hover .cpa-audiences__track,
.cpa-audiences__row:focus-within .cpa-audiences__track {
  animation-play-state: paused;
}

.cpa-audiences__set {
  display: flex;
  gap: 18px;
  padding-right: 18px;
  flex: 0 0 auto;
}

.cpa-audiences__card {
  flex: 0 0 310px;
  width: 340px;
  height: 118px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0px 0px 0px 0px;
  background: #fff;
  border: 1px solid rgba(55, 80, 54, 0.08);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(0, 29, 8, 0.08);
}

.cpa-audiences__thumb {
  position: relative;
  flex: 0 0 86px;
  width: 190px;
  height: 120px;
  padding: 0px;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-sizing: border-box;
}

.cpa-audiences__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.cpa-audiences__copy {
  min-width: 0;
}

.cpa-audiences__copy h3 {
  margin: 0 0 4px;
  color: #001D08;
  font-size: 16px;
  line-height: 1.25;
  font-weight: 700;
}

.cpa-audiences__copy p {
  margin: 0;
  color: #4d5a4c;
  font-size: 13px;
  line-height: 1.4;
}

@keyframes cpa-audiences-marquee {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

@media (max-width: 767.98px) {
  .cpa-audiences__rows { gap: 24px; }
  .cpa-audiences__card {
    flex-basis: 286px;
    width: 286px;
    height: 108px;
    padding: 12px 14px 12px 12px;
  }
  .cpa-audiences__thumb {
    flex-basis: 74px;
    width: 74px;
    height: 74px;
  }
  .cpa-audiences__copy h3 { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .cpa-audiences__track { animation: none; }
  .cpa-audiences__row { overflow-x: auto; }
}
/* ---------- Get a Quote modal ---------- */
html.cpa-qm-lock,
html.cpa-qm-lock body {
  overflow: hidden !important;
  overscroll-behavior: none;
}
.cpa-qm {
  position: fixed;
  inset: 0;
  z-index: 10060;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 16px;
  overscroll-behavior: none;
}
.cpa-qm[hidden] { display: none; }
.cpa-qm__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 28, 18, 0.62);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  animation: cpa-qm-fade .2s ease-out both;
}
.cpa-qm__dialog {
  position: relative;
  width: 100%;
  max-width: 760px;
  max-height: min(92vh, 920px);
  max-height: min(92dvh, 920px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(0, 29, 8, 0.06);
  border-radius: 28px;
  box-shadow: 0 30px 80px rgba(0, 29, 8, 0.28);
  animation: cpa-qm-pop .22s cubic-bezier(.2, .8, .2, 1) both;
  will-change: opacity, transform;
}
.cpa-qm__dialog:focus { outline: none; }
.cpa-qm.is-closing .cpa-qm__backdrop { animation: cpa-qm-fade-out .16s ease-in both; }
.cpa-qm.is-closing .cpa-qm__dialog { animation: cpa-qm-pop-out .16s ease-in both; }
.cpa-qm.is-closing { pointer-events: none; }
.cpa-qm__blob {
  position: absolute;
  border-radius: 50%;
  background: #e8f1ea;
  pointer-events: none;
  z-index: 0;
  opacity: 0.95;
}
.cpa-qm__blob--bl {
  left: -70px;
  bottom: -80px;
  width: 220px;
  height: 180px;
  border-radius: 55% 45% 50% 50%;
}
.cpa-qm__blob--br {
  right: -60px;
  bottom: -70px;
  width: 200px;
  height: 160px;
  border-radius: 45% 55% 48% 52%;
}
.cpa-qm__body {
  position: relative;
  z-index: 1;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 28px 34px 30px;
  border-radius: 28px;
  -webkit-overflow-scrolling: touch;
}
.cpa-qm__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  background: #eef2ee;
  color: #1c2b22;
  font-size: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.cpa-qm__close:hover { background: #e1e8e1; color: #001D08; }
.cpa-qm__close:focus-visible { outline: 2px solid #375036; outline-offset: 2px; }
.cpa-qm__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 0 28px 20px 0;
  min-height: 88px;
}
.cpa-qm__head-copy {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 4px;
}
.cpa-qm__title {
  margin: 0 0 6px;
  color: #101910;
  font-size: 32px;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.03em;
}
.cpa-qm__sub {
  margin: 0;
  color: #6b776d;
  font-size: 15px;
  line-height: 1.45;
  font-weight: 500;
}
.cpa-qm__art {
  flex: 0 0 auto;
  width: 190px;
  max-width: 36%;
  margin-top: -18px;
  margin-right: 4px;
  pointer-events: none;
  user-select: none;
}
.cpa-qm__art img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 10px 18px rgba(0, 29, 8, 0.14));
}
.cpa-qm__status { margin: 0 0 14px; }
.cpa-qm__form { display: flex; flex-direction: column; gap: 16px; }
.cpa-qm__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
}
.cpa-qm__field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.cpa-qm__field--full { grid-column: 1 / -1; }
.cpa-qm__field label,
.cpa-qm__label {
  margin: 0;
  color: #1a271e;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.01em;
}
.cpa-qm__control {
  position: relative;
  display: flex;
  align-items: center;
}
.cpa-qm__icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  width: 18px;
  color: #5d6f61;
  font-size: 14px;
  line-height: 1;
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cpa-qm__control--area .cpa-qm__icon {
  top: 16px;
  transform: none;
}
.cpa-qm__field input,
.cpa-qm__field select,
.cpa-qm__field textarea {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px 12px 42px;
  border: 1px solid #dde5dc;
  border-radius: 12px;
  background: #fff;
  color: #001D08;
  font: inherit;
  font-size: 14.5px;
  line-height: 1.35;
  box-shadow: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.cpa-qm__field textarea {
  min-height: 118px;
  padding-top: 14px;
  resize: vertical;
}
.cpa-qm__field select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235d6b5c' d='M1.4.6 6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 38px;
  cursor: pointer;
}
.cpa-qm__field input::placeholder,
.cpa-qm__field textarea::placeholder {
  color: #8a958c;
}
.cpa-qm__field input:focus,
.cpa-qm__field select:focus,
.cpa-qm__field textarea:focus {
  outline: none;
  border-color: #375036;
  box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.14);
}
.cpa-qm__field input[aria-invalid="true"],
.cpa-qm__field select[aria-invalid="true"],
.cpa-qm__field textarea[aria-invalid="true"] {
  border-color: #c0392b;
}
.cpa-qm .cpa-field-error {
  margin: 0;
  color: #b03a2e;
  font-size: 12.5px;
  line-height: 1.35;
}
.cpa-qm__file {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 12px 12px 12px 14px;
  border: 1px solid #d5e2d6;
  border-radius: 14px;
  background: #eef5ef;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.cpa-qm__file.is-drag {
  border-color: #375036;
  background: #e4efe5;
  box-shadow: 0 0 0 3px rgba(55, 80, 54, 0.12);
}
.cpa-qm__file-input {
  position: absolute;
  inset: 0;
  opacity: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  z-index: 2;
}
.cpa-qm__file-icon {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #d9eadb;
  color: #1f4a2d;
  font-size: 17px;
  pointer-events: none;
}
.cpa-qm__file-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  pointer-events: none;
}
.cpa-qm__file-name {
  color: #173222;
  font-size: 13.5px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cpa-qm__file-name.has-file { color: #0f2418; }
.cpa-qm__file-hint {
  color: #667268;
  font-size: 11.5px;
  line-height: 1.35;
}
.cpa-qm__file-btn {
  position: relative;
  z-index: 3;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 14px;
  border: 1px solid #cfdacd;
  border-radius: 999px;
  background: #fff;
  color: #173222;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background .18s ease, border-color .18s ease;
}
.cpa-qm__file-btn:hover { background: #f7faf6; border-color: #b8c8b6; }
.cpa-qm__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  align-self: center;
  min-width: 240px;
  height: 54px;
  margin-top: 6px;
  padding: 0 26px;
  border: 0;
  border-radius: 999px;
  background: #173222;
  color: #fff;
  font-size: 15.5px;
  font-weight: 800;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
}
.cpa-qm__submit:hover { background: #214a32; }
.cpa-qm__submit:focus-visible { outline: 2px solid #375036; outline-offset: 3px; }
.cpa-qm__submit:disabled { opacity: .72; cursor: wait; }
.cpa-qm__submit-spin {
  display: none;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: cpa-spin .8s linear infinite;
}
.cpa-qm__submit.is-busy .cpa-qm__submit-spin { display: inline-block; }
.cpa-qm__submit.is-busy .cpa-qm__submit-mark { display: none; }
.cpa-qm__submit-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #2f8f4e;
  color: #fff;
  font-size: 12px;
}
@keyframes cpa-qm-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes cpa-qm-fade-out {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes cpa-qm-pop {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
  to { opacity: 1; transform: none; }
}
@keyframes cpa-qm-pop-out {
  from { opacity: 1; transform: none; }
  to { opacity: 0; transform: translateY(10px) scale(.985); }
}
@media (max-width: 720px) {
  .cpa-qm {
    padding: 10px;
    align-items: center;
  }
  .cpa-qm__dialog {
    max-width: none;
    max-height: min(94vh, 100%);
    max-height: min(94dvh, 100%);
    border-radius: 22px;
  }
  .cpa-qm__body { padding: 22px 16px 18px; }
  .cpa-qm__head {
    margin-right: 24px;
    min-height: 0;
    align-items: center;
  }
  .cpa-qm__title { font-size: 24px; }
  .cpa-qm__sub { font-size: 13.5px; }
  .cpa-qm__art { width: 108px; margin-top: 0; margin-right: 4px; }
  .cpa-qm__grid { grid-template-columns: 1fr; gap: 12px; }
  .cpa-qm__file { min-height: 68px; }
  .cpa-qm__file-btn { padding: 0 12px; }
  .cpa-qm__submit { width: 100%; min-width: 0; }
  .cpa-qm__blob--bl,
  .cpa-qm__blob--br { opacity: .7; }
}
@media (max-width: 420px) {
  .cpa-qm__art { display: none; }
  .cpa-qm__file-btn { display: none; }
  .cpa-qm__head { margin-right: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .cpa-qm__backdrop,
  .cpa-qm__dialog,
  .cpa-qm.is-closing .cpa-qm__backdrop,
  .cpa-qm.is-closing .cpa-qm__dialog { animation: none; }
}
/* ---------- t101: Get a Quote modal refresh (matches reference) ---------- */
.cpa-qm { font-family: Rubik, sans-serif; padding: 24px; }
.cpa-qm__backdrop { background: rgba(22, 48, 30, 0.58); }
.cpa-qm__dialog {
  max-width: 880px;
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  border-radius: 18px;
  border: 0;
  box-shadow: 0 28px 70px rgba(0, 29, 8, 0.30);
}
.cpa-qm__blob { display: none; }
/* soft sage curve behind the artwork (top-right) and bottom wave */
.cpa-qm__dialog::before {
  content: ""; position: absolute; top: -90px; right: -70px; width: 380px; height: 250px;
  border-radius: 0 0 0 100%; background: #eef5ef; pointer-events: none; z-index: 0;
}
.cpa-qm__body { border-radius: 18px; padding: 28px 40px 0; }
.cpa-qm__body::after {
  content: ""; display: block; height: 0;
}
.cpa-qm__form {
  position: relative; gap: 18px; margin: 0 -40px; padding: 0 40px 28px;
  background: linear-gradient(#fff, #fff) top / 100% calc(100% - 96px) no-repeat,
              url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 880 120' preserveAspectRatio='none'%3E%3Cpath fill='%23eef5ef' d='M0 30 C 220 75 660 75 880 30 L880 120 L0 120Z'/%3E%3C/svg%3E") bottom / 100% 120px no-repeat;
}
.cpa-qm__close { top: 14px; right: 14px; width: 38px; height: 38px; background: #e6efe7; color: #173222; font-size: 16px; }
.cpa-qm__close:hover { background: #d8e6da; }
.cpa-qm__head { margin: 0 44px 22px 0; min-height: 96px; align-items: flex-start; }
.cpa-qm__title { font-family: Poppins, sans-serif; font-size: 30px; font-weight: 700; color: #0f1d13; letter-spacing: -0.02em; }
.cpa-qm__sub { font-size: 15px; color: #6b776d; font-weight: 400; }
.cpa-qm__art { position: relative; width: 210px; max-width: 34%; margin: -14px 0 0; }
.cpa-qm__art img { filter: drop-shadow(0 8px 14px rgba(0, 29, 8, 0.18)); }
.cpa-qm__grid { gap: 16px 22px; }
.cpa-qm__field { gap: 7px; }
.cpa-qm__field label, .cpa-qm__label { font-size: 13px; font-weight: 600; color: #1a271e; }
.cpa-qm .cpa-req { color: #d0342c; }
.cpa-qm__field input,
.cpa-qm__field select,
.cpa-qm__field textarea {
  margin: 0; height: 46px; min-height: 46px; padding: 0 14px 0 44px; border: 1px solid #dfe6df; border-radius: 10px;
  font-family: Rubik, sans-serif; font-size: 14px; color: #13241a; background-color: #fff;
}
.cpa-qm__field select { padding-right: 38px; }
.cpa-qm__field textarea { height: auto; min-height: 104px; padding: 12px 14px 12px 44px; }
.cpa-qm__icon { left: 15px; color: #5d6f61; font-size: 15px; }
.cpa-qm__control--area .cpa-qm__icon { top: 15px; }
.cpa-qm__file {
  min-height: 72px; padding: 10px 12px; border: 1.5px dashed #b9d0bd; border-radius: 10px; background: #f1f7f2;
}
.cpa-qm__file-icon { background: #d9eadb; }
.cpa-qm__file-name { font-size: 13px; }
.cpa-qm__file-hint { font-size: 11.5px; }
.cpa-qm__file-btn { height: 34px; padding: 0 16px; border-color: #d3ddd3; box-shadow: 0 1px 2px rgba(0,29,8,.06); }
.cpa-qm__submit { min-width: 220px; height: 52px; margin-top: 10px; font-family: Rubik, sans-serif; font-weight: 600; font-size: 16px; background: #173222; }
.cpa-qm__submit-mark { width: 30px; height: 30px; background: #cfe8d4; color: #173222; font-size: 13px; }
@media (max-width: 720px) {
  .cpa-qm { padding: 12px; }
  .cpa-qm__dialog { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); border-radius: 16px; }
  .cpa-qm__dialog::before { width: 200px; height: 150px; top: -60px; right: -50px; }
  .cpa-qm__body { padding: 20px 18px 0; }
  .cpa-qm__form { margin: 0 -18px; padding: 0 18px 20px; }
  .cpa-qm__head { margin-right: 40px; min-height: 0; margin-bottom: 16px; }
  .cpa-qm__title { font-size: 24px; }
  .cpa-qm__sub { font-size: 13.5px; }
  .cpa-qm__art { width: 104px; margin-top: 0; }
  .cpa-qm__grid { gap: 14px; }
}
@media (max-width: 420px) {
  .cpa-qm__art { display: block; width: 84px; }
  .cpa-qm__head { margin-right: 40px; }
  .cpa-qm__file-btn { display: inline-flex; padding: 0 12px; }
  .cpa-qm__file { flex-wrap: nowrap; }
  .cpa-qm__file-name { white-space: normal; }
}
/* Short laptops (1280×720, 1366×786): fit the full form, scroll only if errors add height */
@media (max-height: 840px) {
  .cpa-qm { padding: 12px; align-items: center; }
  .cpa-qm__dialog {
    max-height: min(90vh, calc(100vh - 16px));
    max-height: min(90dvh, calc(100dvh - 16px));
  }
  .cpa-qm__dialog::before { width: 240px; height: 140px; top: -70px; right: -40px; }
  .cpa-qm__body { padding: 14px 28px 0; }
  .cpa-qm__form {
    gap: 8px;
    margin: 0 -28px;
    padding: 0 28px 14px;
    background: linear-gradient(#fff, #fff) top / 100% calc(100% - 64px) no-repeat,
                url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 880 80' preserveAspectRatio='none'%3E%3Cpath fill='%23eef5ef' d='M0 20 C 220 50 660 50 880 20 L880 80 L0 80Z'/%3E%3C/svg%3E") bottom / 100% 72px no-repeat;
  }
  .cpa-qm__head { min-height: 0; margin: 0 36px 8px 0; align-items: center; }
  .cpa-qm__title { font-size: 24px; margin-bottom: 2px; }
  .cpa-qm__sub { font-size: 13px; line-height: 1.3; }
  .cpa-qm__art { width: 128px; max-width: 28%; margin: 0; }
  .cpa-qm__grid { gap: 8px 16px; }
  .cpa-qm__field { gap: 3px; }
  .cpa-qm__field label, .cpa-qm__label { font-size: 12.5px; line-height: 1.2; }
  .cpa-qm__field input,
  .cpa-qm__field select,
  .cpa-qm__field textarea { height: 38px; min-height: 38px; font-size: 13.5px; }
  .cpa-qm__field textarea { height: auto; min-height: 64px; padding-top: 8px; }
  .cpa-qm__control--area .cpa-qm__icon { top: 11px; }
  .cpa-qm__file { min-height: 52px; padding: 6px 10px; }
  .cpa-qm__file-icon { flex-basis: 32px; width: 32px; height: 32px; font-size: 14px; }
  .cpa-qm__file-name { font-size: 12.5px; }
  .cpa-qm__file-hint { font-size: 11px; }
  .cpa-qm__file-btn { height: 30px; }
  .cpa-qm__submit { height: 44px; margin-top: 2px; font-size: 15px; }
  .cpa-qm .cpa-field-error { font-size: 12px; line-height: 1.25; }
}
/* Full-viewport blur re-rasterised the animating homepage on every frame (same lag fixed earlier on the login modal). */
.cpa-qm__backdrop {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.cpa-qm__dialog { will-change: auto; contain: paint; }
.cpa-qm__art img { filter: none; }
/* t114: homepage banner slider. <picture> wrappers keep the existing card styling; pagination dots. */
.banner-media-3 picture { display: contents; }
.banner__area .banner_parallax-slider .banner__pagination { position: absolute; left: 0; right: 0; bottom: 18px; top: auto; width: 100%; z-index: 5; display: flex; justify-content: center; gap: 10px; }
.banner__area .banner__pagination .swiper-pagination-bullet { width: 10px; height: 10px; margin: 0 !important; background: #001D08; opacity: .25; transition: opacity .3s, transform .3s; }
.banner__area .banner__pagination .swiper-pagination-bullet-active { opacity: 1; transform: scale(1.2); }

/* t115: testimonial carousel equal-height cards */
.feedback__active-2 .swiper-slide { height: auto; display: flex; }
.feedback__active-2 .feedback__item-2 { height: 100%; width: 100%; }
.feedback__active-2 .testimonial-3__wrapper-item-2-content { flex-wrap: nowrap; }
.feedback__active-2 .testimonial-3__wrapper-item-2-content-right-img { flex: 0 0 80px; }
.feedback__active-2 .testimonial-3__wrapper-item-2-content-right-img img { width: 80px; height: 80px; border-radius: 50%; display: block; }
@media (max-width: 575px) {
  .feedback__active-2 .testimonial-3__wrapper-item-2-content { flex-wrap: wrap; }
}

/* =====================================================================
   t120: homepage hero redesign (index.php .banner.cpa-hero, both slides).
   Root cause of the cramped hero: three equal col-xl-4 columns (heading got ~1/3 of the width,
   plus the theme's fixed 64px/86px title), absolutely positioned cards with big rotations that
   overlapped the text, and the t47u laptop rule that scaled the cards/splash by .62-.8.
   Here: CSS grid (text | cards | text) on >=1200px, single stacked column below, fluid clamp() sizes,
   cards laid out in flow inside a box sized from one variable (--cpa-cw). The t47u scale is neutralised.
   ===================================================================== */
.banner__area .banner-custom-container { max-width: 1680px; }
.banner__area .banner-custom-container .banner.cpa-hero {
  --cpa-hdr: 86px;
  --cpa-cw: clamp(170px, 44vw, 270px);
  --cpa-ink: #173a24;
  padding: calc(var(--cpa-hdr) + 28px) 0 64px;
  min-height: 0;
}
.banner__area .banner-custom-container .banner.cpa-hero > .bg-shape { display: none; }
.banner__area .banner-custom-container .banner.cpa-hero > .row {
  display: grid; grid-template-columns: minmax(0, 1fr); row-gap: clamp(36px, 6vw, 56px);
  margin: 0; width: 100%;
}
.banner__area .banner-custom-container .banner.cpa-hero > .row > [class*="col-"] {
  width: auto; max-width: none; flex: none; padding: 0; min-width: 0;
}
/* left: pill, heading, CTA */
.banner__area .banner-custom-container .banner.cpa-hero .content-3 { max-width: none; margin: 0; }
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .sub-title { margin-bottom: clamp(14px, 2vh, 22px); }
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .title {
  font-size: clamp(38px, 7.4vw, 64px); line-height: 1.02; letter-spacing: -.025em;
  font-weight: 800; color: var(--cpa-ink); overflow-wrap: normal; isolation: isolate;
}
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .title .cpa-hl { display: block; white-space: nowrap; }
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .title .cpa-hl--light {
  font-weight: 300; color: #3f4743; font-size: .86em; letter-spacing: -.015em; line-height: 1.12; margin-top: .14em;
}
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .title .cpa-hl--script {
  display: inline-block; position: relative; font-family: var(--rr-ff-subtitle), cursive; font-weight: 400;
  color: #1f4a2c; font-size: 1.14em; letter-spacing: 0; line-height: 1.2; padding: 0 .12em .06em .02em;
}
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .title .cpa-hl--script::after {
  content: ""; position: absolute; z-index: -1; left: -.06em; right: -.04em; bottom: .02em; height: .34em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 40' preserveAspectRatio='none'%3E%3Cpath d='M5 27c38-11 116-18 196-17 36 0 66 3 94 8-32 2-72 3-112 6-52 4-118 9-176 14-6 0-8-8-2-11z' fill='%23f3a877' fill-opacity='.75'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .banner-home-2__btn__wrapper-2 { margin-top: clamp(24px, 4vh, 40px) !important; padding-bottom: 0 !important; }
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .rr-btn {
  display: inline-flex; align-items: center; gap: 12px; padding: 18px 32px; background-color: var(--cpa-ink); color: #fff;
}
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .rr-btn i { transition: transform .3s ease; }
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .rr-btn:hover i,
.banner__area .banner-custom-container .banner.cpa-hero .content-3 .rr-btn:focus-visible i { transform: translateX(4px); }
/* centre: two tilted cards in a box sized from --cpa-cw, splash behind them */
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3 {
  position: relative; transform: none; width: calc(var(--cpa-cw) * 1.62); height: calc(var(--cpa-cw) * 1.95); margin: 0 auto;
}
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: 52%; width: calc(var(--cpa-cw) * 1.95); aspect-ratio: 784 / 604;
  transform: translate(-50%, -50%); background: url('../imgs/banner-3/isolation_mode-2.svg') center / contain no-repeat; pointer-events: none;
}
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3 .middel-img { position: absolute; inset: 0; top: 0; left: 0; margin: 0; }
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3 .middel-img .frist-img,
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3 .middel-img .secend-img {
  position: absolute; width: var(--cpa-cw); height: calc(var(--cpa-cw) * 1.233); max-width: none; margin: 0;
  border-radius: 14px; overflow: hidden; box-shadow: 0 18px 40px rgba(0, 29, 8, .18);
}
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3 .middel-img .frist-img { top: 3%; left: 3%; right: auto; bottom: auto; transform: rotate(-8deg); z-index: 1; }
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3 .middel-img .secend-img { bottom: 3%; right: 3%; top: auto; left: auto; transform: rotate(8deg); z-index: 2; }
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3 .middel-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.banner__area .banner-custom-container .banner.cpa-hero .banner-media-3 .img-border::before { border-radius: 14px; z-index: 1; }
/* right: description, features, paper plane */
.banner__area .banner-custom-container .banner.cpa-hero .banner-text .text-space p {
  margin: 0 0 clamp(22px, 3.5vh, 34px); max-width: 32em; font-size: clamp(16px, 1.1vw, 20px); line-height: 1.65;
}
.cpa-hero-feats { list-style: none; margin: 0; padding: 0; display: flex; max-width: 460px; }
.cpa-hero-feats li { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 0 clamp(8px, 1.1vw, 18px); text-align: center; }
.cpa-hero-feats li:first-child { padding-left: 0; }
.cpa-hero-feats li + li { border-left: 1px solid rgba(55, 80, 54, .2); }
.cpa-hero-feats__icon { width: clamp(46px, 3.4vw, 56px); height: clamp(46px, 3.4vw, 56px); border-radius: 50%; background: #e4ece2; color: #375036; display: inline-flex; align-items: center; justify-content: center; font-size: clamp(18px, 1.3vw, 22px); }
.cpa-hero-feats__label { font-family: var(--rr-ff-heading); font-weight: 600; font-size: clamp(13px, .95vw, 15px); line-height: 1.3; color: var(--cpa-ink); }
.banner__area .banner-custom-container .banner.cpa-hero .banner-text .text-space .arrow { position: relative; left: auto; top: auto; margin: clamp(14px, 3vh, 30px) 0 0; }
.banner__area .banner-custom-container .banner.cpa-hero .banner-text .text-space .arrow img { max-width: min(240px, 60%); }
@media (max-width: 1199.98px) {
  .banner__area .banner-custom-container .banner.cpa-hero .banner-text .text-space .arrow img { max-width: 150px; }
}
/* 768-1199: text | cards on the first row, description + features below (same reading order) */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .banner__area .banner-custom-container .banner.cpa-hero { --cpa-cw: clamp(200px, 26vw, 290px); padding-top: calc(var(--cpa-hdr) + 48px); }
  .banner__area .banner-custom-container .banner.cpa-hero > .row { grid-template-columns: minmax(0, 1fr) auto; column-gap: clamp(24px, 4vw, 48px); align-items: center; }
  .banner__area .banner-custom-container .banner.cpa-hero > .row > [class*="col-"]:last-child { grid-column: 1 / -1; }
  .banner__area .banner-custom-container .banner.cpa-hero .content-3 .title { font-size: clamp(38px, 5.4vw, 64px); }
  .banner__area .banner-custom-container .banner.cpa-hero .banner-text .text-space { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); column-gap: clamp(24px, 4vw, 48px); align-items: center; }
  .banner__area .banner-custom-container .banner.cpa-hero .banner-text .text-space p { margin: 0; }
  .banner__area .banner-custom-container .banner.cpa-hero .banner-text .text-space .arrow { grid-column: 1; margin-top: 4px; }
}
@media (min-width: 1200px) {
  .banner__area .banner-custom-container .banner.cpa-hero {
    --cpa-hdr: 80px;
    --cpa-cw: clamp(190px, min(17vw, calc((100vh - 250px) / 1.9)), 340px);
    display: flex; align-items: center; min-height: clamp(640px, 100vh, 1080px);
    padding: calc(var(--cpa-hdr) + clamp(12px, 2.5vh, 32px)) 0 clamp(44px, 6vh, 72px);
  }
  .banner__area .banner-custom-container .banner.cpa-hero > .row {
    grid-template-columns: minmax(0, 1.22fr) calc(var(--cpa-cw) * 1.62) minmax(0, .86fr);
    column-gap: clamp(32px, 3.2vw, 64px); align-items: center;
  }
  .banner__area .banner-custom-container .banner.cpa-hero .content-3 .title { font-size: clamp(44px, min(4.4vw, 7.6vh), 84px); }
}

/* t121: laptop hero spacing (992-1599px). Root cause: the t120 grid gave the heading a flexible 1.22fr track
   (and the description .86fr) while the cards sit centred in a fixed middle track; at laptop widths the heading
   text is much narrower than its track, so the unused track width became an empty gap before the cards.
   Fix: heading track sized to the heading's own (nowrap) lines, description track takes the remaining width,
   so heading->cards and cards->description are both just the column-gap. Cards a little larger.
   1600px and up (incl. 1920) is untouched. */
@media (min-width: 1200px) and (max-width: 1599.98px) {
  .banner__area .banner-custom-container .banner.cpa-hero {
    --t121: 1;
    --cpa-cw: clamp(200px, min(19vw, calc((100vh - 230px) / 1.85)), 300px);
  }
  .banner__area .banner-custom-container .banner.cpa-hero > .row {
    --t121: 1;
    grid-template-columns: min-content calc(var(--cpa-cw) * 1.62) minmax(0, 1fr);
    column-gap: clamp(36px, 4vw, 64px);
  }
}
@media (min-width: 992px) and (max-width: 1599.98px) {
  .banner__area .banner-custom-container .banner.cpa-hero .content-3 .sub-title,
  .banner__area .banner-custom-container .banner.cpa-hero .content-3 .rr-btn { --t121: 1; white-space: nowrap; }
}
/* 992-1199 (1366 laptops at 110%/125% scaling): heading and cards together, centred as a pair */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .banner__area .banner-custom-container .banner.cpa-hero > .row { --t121: 1; grid-template-columns: min-content auto; justify-content: space-evenly; }
}

/* t126: footer Contact Us column */
.cpa-ft__info { margin: 0; padding: 0; list-style: none; display: grid; gap: 16px; }
.cpa-ft__info li { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.cpa-ft__info-icon { flex: 0 0 34px; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(53, 79, 54, .1); color: var(--rr-theme-primary); font-size: 14px; }
.cpa-ft__info a, .cpa-ft__info address { margin: 0; padding-top: 5px; color: var(--cpa-ft-ink); font-size: 16px; font-weight: 500; font-style: normal; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; transition: color .15s ease; }
.cpa-ft__info a:hover, .cpa-ft__info a:focus-visible { color: var(--rr-theme-primary); }
.cpa-ft__info li:hover .cpa-ft__info-icon { background: var(--rr-theme-primary); color: #fff; }
/* t128: pre-footer CTA uses the site's pale yellow (same as .partners__area #fdfff2); the bottom scallop image is white-on-transparent so it needs no recolour */
.happy-customer__are.happy-customer-bg { background: #fdfff2; }

/* t129: testimonials show immediately (WOW reveal removed in index.php); reserve the 2-up desktop layout before Swiper initialises to avoid a jump */
@media (min-width: 992px) { .feedback__active-2:not(.swiper-initialized) .swiper-slide { width: calc((100% - 30px) / 2); margin-right: 30px; } }
