/* FPR chrome — matched from live site header/footer */
:root {
  --fpr-red: #8c1c2c;
  --fpr-red-dark: #6e1522;
  --fpr-g50: #f4f4f4;
  --fpr-g100: #e9e9e9;
  --fpr-g200: #cfcfcf;
  --fpr-g600: #555555;
  --fpr-g800: #333333;
  --fpr-soft: #555555;
  --fpr-max: 1120px;
  --fpr-ease: cubic-bezier(.22,1,.36,1);
}

.fpr-chrome,
.fpr-chrome * { box-sizing: border-box; }
.fpr-chrome a { color: inherit; text-decoration: none; }
.fpr-chrome ul { list-style: none; margin: 0; padding: 0; }
.fpr-chrome img { max-width: 100%; height: auto; display: block; }

.fpr-chrome .container {
  width: min(100% - 2.4rem, var(--fpr-max));
  margin-inline: auto;
}

.fpr-chrome .topbar {
  background: var(--fpr-g100);
  border-bottom: 1px solid var(--fpr-g200);
  font-size: 0.875rem;
  color: var(--fpr-g600);
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
}
.fpr-chrome .topbar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 40px;
  gap: 1rem;
}
.fpr-chrome .topbar-left {
  display: flex;
  flex-wrap: wrap;
  gap: 1.4rem;
}
.fpr-chrome .topbar-left a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.fpr-chrome .topbar-left a:hover { color: var(--fpr-red); }
.fpr-chrome .topbar-left svg { width: 14px; height: 14px; fill: currentColor; }
.fpr-chrome .topbar-social { display: flex; align-items: center; gap: 0.45rem; }

.fpr-chrome .linkedin-wide {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem .7rem .35rem .4rem;
  border-radius: 6px;
  background: var(--fpr-soft);
  color: #ffffff !important;
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .01em;
  line-height: 1;
  text-decoration: none;
  transition: background .2s var(--fpr-ease), color .2s var(--fpr-ease);
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
}
.fpr-chrome .linkedin-wide:hover {
  background: var(--fpr-red);
  color: #ffffff !important;
}
.fpr-chrome .linkedin-wide-mark {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  fill: currentColor;
  display: block;
}
.fpr-chrome .linkedin-wide--footer {
  background: rgba(255,255,255,.12);
  color: #f0f0f0 !important;
  border: 1px solid rgba(255,255,255,.18);
  padding: .45rem .85rem .45rem .5rem;
  font-size: .88rem;
}
.fpr-chrome .linkedin-wide--footer .linkedin-wide-mark {
  width: 20px;
  height: 20px;
}
.fpr-chrome .linkedin-wide--footer:hover {
  background: var(--fpr-red);
  border-color: var(--fpr-red);
  color: #ffffff !important;
}

.fpr-chrome .fpr-site-header {
  background: #fff;
  border-bottom: 1px solid var(--fpr-g200);
  position: sticky;
  top: 0;
  z-index: 100;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
  display: block;
  padding: 0;
  margin: 0;
  width: 100%;
  max-width: none;
}
.fpr-chrome .fpr-site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 78px;
  gap: 1rem;
}
.fpr-chrome .logo img { height: 48px; width: auto; }

.fpr-chrome .nav-toggle {
  display: none;
  width: 42px; height: 42px;
  border: 1px solid var(--fpr-g200);
  background: #fff;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0;
}
.fpr-chrome .nav-toggle span {
  display: block; width: 18px; height: 2px; background: var(--fpr-g800);
}

.fpr-chrome .main-nav {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 0;
  margin: 0;
  padding: 0;
}
.fpr-chrome .main-nav > li { position: relative; list-style: none; }
.fpr-chrome .main-nav > li > a {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 0.45rem;
  font-weight: 600;
  font-size: 0.82rem;
  color: var(--fpr-g800);
  white-space: nowrap;
}
.fpr-chrome .main-nav > li > a:hover,
.fpr-chrome .main-nav > li > a.active,
.fpr-chrome .main-nav > li.current-menu-item > a {
  color: var(--fpr-red);
}

.fpr-chrome .fpr-site-footer {
  background: #3a3a3a;
  color: #c8c8c8;
  padding: 3.5rem 0 0;
  font-size: .94rem;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
}
.fpr-chrome .footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: 2rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.fpr-chrome .fpr-site-footer strong,
.fpr-chrome .fpr-site-footer h4 {
  display: block;
  color: #f0f0f0;
  font-size: .95rem;
  margin: 0 0 .85rem;
  font-weight: 700;
}
.fpr-chrome .fpr-site-footer h4 {
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #e4e4e4;
}
.fpr-chrome .fpr-site-footer p {
  color: #bdbdbd;
  margin: 0 0 1rem;
  max-width: 26rem;
  line-height: 1.6;
}
.fpr-chrome .fpr-site-footer a { color: #c8c8c8; }
.fpr-chrome .fpr-site-footer a:hover { color: #ffffff; }
.fpr-chrome .footer-col li,
.fpr-chrome .footer-col a {
  display: block;
  margin-bottom: .5rem;
  list-style: none;
}
.fpr-chrome .footer-brand img {
  height: 42px;
  width: auto;
  margin-bottom: 1rem;
  filter: brightness(0) invert(1);
}
.fpr-chrome .footer-social {
  display: flex;
  gap: .5rem;
  margin-top: 1rem;
}
.fpr-chrome .footer-bar {
  background: #000000;
  color: #cfcfcf;
  font-size: .82rem;
  margin: 0;
  padding: 0;
  border: 0;
  line-height: 1.45;
}
.fpr-chrome .footer-bar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .65rem 1.25rem;
  padding: .95rem 0;
}
.fpr-chrome .footer-bar a {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.fpr-chrome .footer-bar a:hover { color: #ffffff; opacity: .85; }

/* Elementor HF wrappers — remove default padding */
.hfe-header-wrapper,
.hfe-footer-wrapper,
.footer-width-fixer {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
}

@media (max-width: 1100px) {
  .fpr-chrome .nav-toggle { display: flex; }
  .fpr-chrome .fpr-site-header .container { position: relative; }
  .fpr-chrome .main-nav {
    display: none;
    position: absolute;
    left: 0; right: 0; top: 100%;
    background: #fff;
    flex-direction: column;
    align-items: stretch;
    border-bottom: 1px solid var(--fpr-g200);
    box-shadow: 0 12px 24px rgba(0,0,0,.08);
    padding: .4rem 0 .8rem;
    z-index: 120;
  }
  .fpr-chrome .main-nav.open { display: flex; }
  .fpr-chrome .main-nav > li > a {
    width: 100%;
    padding: .9rem 1.2rem;
    font-size: .95rem;
    border-bottom: 1px solid var(--fpr-g50);
  }
}
@media (max-width: 980px) {
  .fpr-chrome .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .fpr-chrome .footer-grid { grid-template-columns: 1fr; }
  .fpr-chrome .topbar-left .topbar-email { display: none; }
  .fpr-chrome .logo img { height: 42px; }
  .fpr-chrome .footer-bar-inner {
    flex-direction: column;
    text-align: center;
    justify-content: center;
  }
}

/* —— Hero + trust (native Elementor widgets, match fpryan.ie style.css) —— */
.elementor-28 .fpr-hero {
  position: relative;
  min-height: 500px !important;
  overflow: hidden;
  color: #fff;
  background-color: #3a3a3a !important;
  width: 100%;
  margin: 0 !important;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
}
/* Exact main-site grayscale bg + overlay (pseudo, so widgets stay editable) */
.elementor-28 .fpr-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/wp-content/uploads/2026/08/hero-desk.jpg") center/cover no-repeat;
  filter: grayscale(1);
  transform: scale(1.02);
  z-index: 0;
  pointer-events: none;
}
.elementor-28 .fpr-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(74, 74, 74, 0.72);
  z-index: 0;
  pointer-events: none;
}
.elementor-28 .fpr-hero > .e-con-inner,
.elementor-28 .fpr-hero > .elementor-element {
  position: relative;
  z-index: 1;
}

/* Main: .hero .container — padding 4.5rem 0, max 640px, left align to 1120 grid */
.elementor-28 .fpr-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 640px !important;
  width: auto !important;
  margin-left: max(calc((100% - 1120px) / 2), 1.2rem) !important;
  margin-right: auto !important;
  --padding-top: 4.5rem !important;
  --padding-bottom: 4.5rem !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  --width: auto;
}

.elementor-28 .fpr-hero-title .elementor-heading-title,
.elementor-28 .fpr-hero-title h1 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(2rem, 4.5vw, 3rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  margin: 0 0 .9rem !important;
  color: #fff !important;
}
.elementor-28 .fpr-hero-text,
.elementor-28 .fpr-hero-text .elementor-widget-container,
.elementor-28 .fpr-hero-text p {
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: 1.15rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  color: rgba(255, 255, 255, .9) !important;
  max-width: 30rem;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-28 .fpr-hero-text {
  margin-bottom: 1.5rem !important;
}

.elementor-28 .fpr-hero-actions {
  --gap: .75rem !important;
  --row-gap: .75rem !important;
  --column-gap: .75rem !important;
}

.elementor-28 .fpr-btn-red .elementor-button,
.elementor-28 .fpr-btn-white .elementor-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.7rem !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-weight: 600 !important;
  font-size: .95rem !important;
  line-height: 1.65 !important;
  border-radius: 999px !important;
  border-width: 2px !important;
  border-style: solid !important;
  transition: .2s cubic-bezier(.22, 1, .36, 1);
  text-decoration: none !important;
  box-shadow: none !important;
}
.elementor-28 .fpr-btn-red .elementor-button {
  background: #8c1c2c !important;
  color: #fff !important;
  border-color: transparent !important;
}
.elementor-28 .fpr-btn-red .elementor-button:hover {
  background: #6e1522 !important;
  color: #fff !important;
}
.elementor-28 .fpr-btn-white .elementor-button {
  background: #fff !important;
  color: #3a3a3a !important;
  border-color: #fff !important;
}
.elementor-28 .fpr-btn-white .elementor-button:hover {
  background: #e9e9e9 !important;
  color: #3a3a3a !important;
  border-color: #e9e9e9 !important;
}

/* Trust strip — exact grid from main */
.elementor-28 .fpr-trust {
  background: #f4f4f4 !important;
  border-bottom: 1px solid #cfcfcf !important;
  width: 100%;
  margin: 0 !important;
  --padding-top: 1.15rem !important;
  --padding-bottom: 1.15rem !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
}
.elementor-28 .fpr-trust-inner {
  --width: 100%;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
}
/* Boxed trust row lives in .e-con-inner — match main .trust-strip .container grid */
.elementor-28 .fpr-trust-inner > .e-con-inner {
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 1rem 1.5rem !important;
  align-items: center !important;
  --gap: 0px !important;
  --flex-wrap: nowrap;
  flex-wrap: nowrap !important;
}
.elementor-28 .fpr-trust-inner > .e-con-inner > .e-con,
.elementor-28 .fpr-trust-item {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --width: auto;
}
.elementor-28 .fpr-trust-item {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: .55rem !important;
}
/* Maroon dot — matches main .trust-item i */
.elementor-28 .fpr-trust-item::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8c1c2c;
  flex-shrink: 0;
  display: block;
}
.elementor-28 .fpr-trust-item .elementor-widget-container,
.elementor-28 .fpr-trust-item p,
.elementor-28 .fpr-trust-item .elementor-text-editor {
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: .92rem !important;
  font-weight: 600 !important;
  line-height: 1.65 !important;
  color: #3f3f3f !important;
}

@media (max-width: 900px) {
  .elementor-28 .fpr-hero-inner {
    margin-left: auto !important;
    margin-right: auto !important;
    width: min(100% - 2.4rem, 1120px) !important;
    max-width: none !important;
  }
  .elementor-28 .fpr-trust-inner > .e-con-inner {
    grid-template-columns: 1fr 1fr !important;
    gap: .85rem 1.25rem !important;
  }
  .elementor-28 .fpr-trust-item .elementor-widget-container,
  .elementor-28 .fpr-trust-item p {
    font-size: .88rem !important;
    line-height: 1.35 !important;
  }
}
@media (max-width: 720px) {
  .elementor-28 .fpr-hero { min-height: 420px !important; }
}
@media (max-width: 420px) {
  .elementor-28 .fpr-trust-item { gap: .4rem !important; }
  .elementor-28 .fpr-trust-item .elementor-widget-container,
  .elementor-28 .fpr-trust-item p {
    font-size: .82rem !important;
  }
}

/* Zero Elementor shell padding on home sections */
.elementor-28 > .e-con {
  --margin-top: 0px !important;
  --margin-bottom: 0px !important;
  --margin-left: 0px !important;
  --margin-right: 0px !important;
}

/* —— Shared section spacing (main .section) —— */
.elementor-28 .fpr-about,
.elementor-28 .fpr-help,
.elementor-28 .fpr-services {
  --padding-top: 4.25rem !important;
  --padding-bottom: 4.25rem !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
}
.elementor-28 .fpr-about-inner > .e-con-inner,
.elementor-28 .fpr-help-inner > .e-con-inner,
.elementor-28 .fpr-services-inner > .e-con-inner,
.elementor-28 .fpr-cta-inner > .e-con-inner,
.elementor-28 .fpr-faq-inner > .e-con-inner,
.elementor-28 .fpr-lead-inner > .e-con-inner {
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
}

/* Outline button */
.elementor-28 .fpr-btn-outline .elementor-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.7rem !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-weight: 600 !important;
  font-size: .95rem !important;
  line-height: 1.65 !important;
  border-radius: 999px !important;
  border-width: 2px !important;
  border-style: solid !important;
  background: transparent !important;
  color: #8c1c2c !important;
  border-color: #8c1c2c !important;
  box-shadow: none !important;
  transition: .2s cubic-bezier(.22, 1, .36, 1);
}
.elementor-28 .fpr-btn-outline .elementor-button:hover {
  background: #8c1c2c !important;
  color: #fff !important;
  border-color: #8c1c2c !important;
}

/* —— Who we are —— */
.elementor-28 .fpr-about-inner > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1.15fr !important;
  grid-template-areas:
    "photo copy"
    "photo actions";
  gap: 1.25rem 3rem !important;
  align-items: center !important;
}
/* Flatten: photo | copy(with actions inside) — use 2-col layout instead of 3-area if actions nested in copy */
.elementor-28 .fpr-about-inner > .e-con-inner {
  grid-template-columns: 1fr 1.15fr !important;
  grid-template-areas: "photo copy" !important;
  gap: 1.25rem 3rem !important;
  align-items: center !important;
}
.elementor-28 .fpr-about-photo {
  grid-area: photo;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
}
.elementor-28 .fpr-about-copy {
  grid-area: copy;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --gap: 0px !important;
}
.elementor-28 .fpr-about-img img,
.elementor-28 .fpr-about-photo img {
  width: 100% !important;
  aspect-ratio: 4/3;
  object-fit: cover;
  object-position: center 15%;
  filter: grayscale(1);
  border-radius: 18px;
  height: auto !important;
}
.elementor-28 .fpr-label,
.elementor-28 .fpr-label p,
.elementor-28 .fpr-label .elementor-widget-container {
  display: block !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: .75rem !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: #8c1c2c !important;
  margin: 0 0 .5rem !important;
  padding: 0 !important;
  line-height: 1.4 !important;
}
.elementor-28 .fpr-about-title .elementor-heading-title,
.elementor-28 .fpr-about-title h2 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.7rem, 3vw, 2.15rem) !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 .75rem !important;
  line-height: 1.25 !important;
}
.elementor-28 .fpr-about-text,
.elementor-28 .fpr-about-text p {
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  color: #555 !important;
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
}
.elementor-28 .fpr-about-text p:last-child { margin-bottom: 0 !important; }
.elementor-28 .fpr-about-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .65rem !important;
  margin-top: 1.25rem !important;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --gap: .65rem !important;
}

/* —— Section titles —— */
.elementor-28 .fpr-section-title {
  text-align: center;
  max-width: 560px;
  margin: 0 auto 2.5rem !important;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
}
.elementor-28 .fpr-sec-h2 .elementor-heading-title,
.elementor-28 .fpr-sec-h2 h2 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.7rem, 3vw, 2.15rem) !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 .6rem !important;
  line-height: 1.25 !important;
  text-align: center !important;
}
.elementor-28 .fpr-sec-sub,
.elementor-28 .fpr-sec-sub p {
  color: #555 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
}

/* —— Who we help —— */
.elementor-28 .fpr-help {
  background: #f4f4f4 !important;
}
.elementor-28 .fpr-help-grid > .e-con-inner,
.elementor-28 .fpr-help-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 0.9rem !important;
  --gap: 0.9rem !important;
  width: 100% !important;
}
.elementor-28 .fpr-help-grid.e-con-boxed > .e-con-inner,
.elementor-28 .fpr-help-grid.e-con-full {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 0.9rem !important;
}
/* When help-grid is full and children are direct icon-boxes */
.elementor-28 .fpr-help-inner > .e-con-inner > .fpr-help-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0.9rem !important;
  width: 100% !important;
}
.elementor-28 .fpr-help-card {
  background: #fff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 14px !important;
  padding: 1.25rem 1.1rem !important;
  text-align: center !important;
  box-shadow: none;
  transition: transform 0.25s cubic-bezier(.22, 1, .36, 1),
    box-shadow 0.25s cubic-bezier(.22, 1, .36, 1),
    background 0.25s cubic-bezier(.22, 1, .36, 1),
    border-color 0.25s cubic-bezier(.22, 1, .36, 1);
  height: auto;
  box-sizing: border-box;
}
.elementor-28 .fpr-help-card:hover {
  transform: translateY(-3px);
  background: #555555 !important;
  border-color: #555555 !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}
.elementor-28 .fpr-help-card .elementor-icon-box-wrapper {
  text-align: center;
  gap: 0 !important;
}
.elementor-28 .fpr-help-card .elementor-icon-box-icon {
  margin: 0 0 .65rem !important;
  padding: 0 !important;
  line-height: 0 !important;
}
.elementor-28 .fpr-help-card .elementor-icon {
  width: 2.4rem !important;
  height: 2.4rem !important;
  min-width: 2.4rem !important;
  min-height: 2.4rem !important;
  border-radius: 10px !important;
  background: rgba(140, 28, 44, 0.08) !important;
  color: #8c1c2c !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 auto !important;
  font-size: 0 !important; /* kill Elementor default 50px */
  padding: 0 !important;
  border: 0 !important;
  transition: background .25s, color .25s;
}
.elementor-28 .fpr-help-card .elementor-icon i,
.elementor-28 .fpr-help-card .elementor-icon svg {
  width: 1.2rem !important;
  height: 1.2rem !important;
  font-size: 1.05rem !important;
  color: #8c1c2c !important;
  fill: #8c1c2c !important;
  transition: color .25s, fill .25s;
}
.elementor-28 .fpr-help-card:hover .elementor-icon {
  background: rgba(255, 255, 255, 0.15) !important;
  color: #fff !important;
}
.elementor-28 .fpr-help-card:hover .elementor-icon i,
.elementor-28 .fpr-help-card:hover .elementor-icon svg {
  color: #fff !important;
  fill: #fff !important;
}
.elementor-28 .fpr-help-card .elementor-icon-box-title,
.elementor-28 .fpr-help-card .elementor-icon-box-title h3 {
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 .35rem !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  transition: color .25s;
}
.elementor-28 .fpr-help-card .elementor-icon-box-description {
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: .88rem !important;
  color: #555 !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  transition: color .25s;
}
.elementor-28 .fpr-help-card:hover .elementor-icon-box-title,
.elementor-28 .fpr-help-card:hover .elementor-icon-box-title h3,
.elementor-28 .fpr-help-card:hover .elementor-icon-box-description {
  color: #fff !important;
}

/* —— Services —— */
.elementor-28 .fpr-services {
  background: #f7f7f7 !important; /* soft gray so white cards separate cleanly */
}
.elementor-28 .fpr-services-inner > .e-con-inner > .fpr-services-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem !important;
  width: 100% !important;
  align-items: stretch !important;
}
.elementor-28 .fpr-service-box {
  background: #fff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 14px !important;
  padding: 1.35rem 1.25rem 1.2rem !important;
  box-shadow: none;
  transition: transform 0.25s cubic-bezier(.22, 1, .36, 1),
    box-shadow 0.25s,
    border-color 0.25s,
    background 0.25s cubic-bezier(.22, 1, .36, 1);
  height: 100%;
  min-height: 0 !important;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
}
.elementor-28 .fpr-service-box:hover {
  transform: translateY(-3px);
  background: #555555 !important;
  border-color: #555555 !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14);
}
.elementor-28 .fpr-service-box .elementor-icon-box-wrapper {
  align-items: flex-start !important;
  text-align: left !important;
  height: 100%;
  gap: 0 !important;
}
.elementor-28 .fpr-service-box .elementor-icon-box-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.elementor-28 .fpr-service-box .elementor-icon-box-icon {
  margin: 0 0 .75rem !important;
  padding: 0 !important;
  line-height: 0 !important;
}
.elementor-28 .fpr-service-box .elementor-icon {
  width: 2.5rem !important;
  height: 2.5rem !important;
  min-width: 2.5rem !important;
  min-height: 2.5rem !important;
  border-radius: 11px !important;
  background: rgba(140, 28, 44, 0.08) !important;
  color: #8c1c2c !important;
  display: grid !important;
  place-items: center !important;
  transition: background .25s, color .25s;
  font-size: 0 !important; /* kill Elementor default 50px */
  padding: 0 !important;
  border: 0 !important;
}
.elementor-28 .fpr-service-box:hover .elementor-icon {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
}
.elementor-28 .fpr-service-box:hover .elementor-icon i,
.elementor-28 .fpr-service-box:hover .elementor-icon svg {
  color: #fff !important;
  fill: #fff !important;
}
.elementor-28 .fpr-service-box .elementor-icon i,
.elementor-28 .fpr-service-box .elementor-icon svg {
  width: 1.35rem !important;
  height: 1.35rem !important;
  font-size: 1.1rem !important;
  color: #8c1c2c !important;
  fill: #8c1c2c !important;
}
.elementor-28 .fpr-service-box .elementor-icon-box-title,
.elementor-28 .fpr-service-box .elementor-icon-box-title h3 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 .4rem !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  transition: color .25s;
}
.elementor-28 .fpr-service-box .elementor-icon-box-description {
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  color: #555 !important;
  font-size: .9rem !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  flex: 1;
  display: flex;
  flex-direction: column;
  transition: color .25s;
}
.elementor-28 .fpr-service-box .elementor-icon-box-description::after {
  content: "Find out more →";
  display: block;
  margin-top: .85rem;
  font-size: .8rem;
  font-weight: 700;
  color: #8c1c2c;
  letter-spacing: .03em;
  transition: color .25s;
}
.elementor-28 .fpr-service-box:hover .elementor-icon-box-title,
.elementor-28 .fpr-service-box:hover .elementor-icon-box-title h3,
.elementor-28 .fpr-service-box:hover .elementor-icon-box-description {
  color: #fff !important;
}
.elementor-28 .fpr-service-box:hover .elementor-icon-box-description::after {
  color: #fff !important;
  text-decoration: underline;
}

/* —— Chartered CTA (match main .chartered-cta exactly) —— */
.elementor-28 .fpr-cta {
  background: linear-gradient(180deg, #4a4a4a 0%, #5c5c5c 55%, #7a7a7a 85%, #f5f5f5 100%) !important;
  background-color: transparent !important;
  color: #fff;
  --padding-top: 3.75rem !important;
  --padding-bottom: 3.5rem !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  --gap: 0px !important;
  overflow: hidden;
}
.elementor-28 .fpr-cta-inner {
  --padding-top: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  width: 100% !important;
  max-width: none !important;
}
.elementor-28 .fpr-cta-inner > .e-con-inner {
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  flex-wrap: wrap !important;
}
.elementor-28 .fpr-cta-copy {
  flex: 1 1 320px;
  max-width: 40rem;
  width: auto !important;
  --width: auto;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --gap: 0px !important;
}
.elementor-28 .fpr-cta-title {
  margin: 0 0 .5rem !important;
}
.elementor-28 .fpr-cta-title .elementor-heading-title,
.elementor-28 .fpr-cta-title h2 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.6rem, 3vw, 2.1rem) !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 0 !important;
  line-height: 1.25 !important;
}
.elementor-28 .fpr-cta-text {
  margin: 0 0 1.25rem !important;
}
.elementor-28 .fpr-cta-text,
.elementor-28 .fpr-cta-text p {
  color: rgba(255, 255, 255, .9) !important;
  max-width: 34rem;
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
}
.elementor-28 .fpr-cta-badge {
  background: #fff !important;
  padding: 1.25rem 1.5rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 220px;
  width: auto !important;
  flex: 0 0 auto;
  border-radius: 16px !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .12);
  --padding-top: 1.25rem !important;
  --padding-bottom: 1.25rem !important;
  --padding-left: 1.5rem !important;
  --padding-right: 1.5rem !important;
  --gap: 0px !important;
}
.elementor-28 .fpr-cta-logo,
.elementor-28 .fpr-cta-logo .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
  text-align: center;
}
.elementor-28 .fpr-cta-logo img,
.elementor-28 .fpr-cta-badge img {
  max-height: 64px !important;
  width: auto !important;
  height: auto !important;
  max-width: 220px !important;
  display: inline-block !important;
  filter: none !important;
}

/* —— FAQ accordion (tighter than Elementor defaults; closer to main .faq-*) —— */
.elementor-28 .fpr-faq {
  background: #f4f4f4 !important;
  --padding-top: 4.25rem !important;
  --padding-bottom: 4.25rem !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
}
.elementor-28 .fpr-faq-inner > .e-con-inner {
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
}
.elementor-28 .fpr-faq-list.elementor-widget-accordion,
.elementor-28 .fpr-faq-list {
  max-width: 760px !important;
  width: 100% !important;
  margin: 0 auto !important;
  --container-widget-width: 100% !important;
}
.elementor-28 .fpr-faq-list .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}
.elementor-28 .fpr-faq-list .elementor-accordion {
  border: 0 !important;
  text-align: left !important;
}
.elementor-28 .fpr-faq-list .elementor-accordion-item {
  border: 1px solid #cfcfcf !important;
  background: #fff !important;
  margin: 0 0 .5rem !important;
  border-radius: 0 !important;
  overflow: hidden;
}
.elementor-28 .fpr-faq-list .elementor-accordion-item + .elementor-accordion-item {
  border-block-start: 1px solid #cfcfcf !important;
}
/* Compact title row — Elementor default 15–20px + 1.65 lh was oversized */
.elementor-28 .fpr-faq-list .elementor-tab-title {
  background: #fff !important;
  border: 0 !important;
  padding: .75rem 1rem !important;
  margin: 0 !important;
  min-height: 0 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-weight: 700 !important;
  font-size: .95rem !important;
  color: #333 !important;
  line-height: 1.35 !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: .75rem !important;
  float: none !important;
}
.elementor-28 .fpr-faq-list .elementor-tab-title::before,
.elementor-28 .fpr-faq-list .elementor-tab-title::after {
  display: none !important;
  content: none !important;
}
.elementor-28 .fpr-faq-list .elementor-tab-title .elementor-accordion-title,
.elementor-28 .fpr-faq-list .elementor-tab-title a.elementor-accordion-title {
  color: #333 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-weight: 700 !important;
  font-size: .95rem !important;
  line-height: 1.35 !important;
  flex: 1 1 auto;
  order: 1;
  text-decoration: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
}
.elementor-28 .fpr-faq-list .elementor-accordion-icon {
  float: none !important;
  order: 2 !important;
  flex: 0 0 auto;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #8c1c2c !important;
  font-size: 1.15rem !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  text-align: center !important;
}
.elementor-28 .fpr-faq-list .elementor-accordion-icon svg,
.elementor-28 .fpr-faq-list .elementor-accordion-icon i {
  display: none !important;
}
.elementor-28 .fpr-faq-list .elementor-accordion-icon-closed::after,
.elementor-28 .fpr-faq-list .elementor-accordion-icon-opened::after {
  content: "+";
  color: #8c1c2c;
  font-size: 1.15rem;
  font-weight: 400;
  line-height: 1;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
  display: block;
  transition: transform .2s cubic-bezier(.22, 1, .36, 1);
}
.elementor-28 .fpr-faq-list .elementor-tab-title.elementor-active .elementor-accordion-icon-closed,
.elementor-28 .fpr-faq-list .elementor-tab-title:not(.elementor-active) .elementor-accordion-icon-opened {
  display: none !important;
}
.elementor-28 .fpr-faq-list .elementor-tab-title.elementor-active .elementor-accordion-icon-opened {
  display: block !important;
}
.elementor-28 .fpr-faq-list .elementor-tab-title.elementor-active .elementor-accordion-icon-opened::after {
  transform: rotate(45deg);
}
.elementor-28 .fpr-faq-list .elementor-tab-content {
  border: 0 !important;
  border-block-start: 0 !important;
  background: #fff !important;
  padding: 0 1rem .85rem !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: .95rem !important;
  font-weight: 400 !important;
  color: #555 !important;
  line-height: 1.5 !important;
}
.elementor-28 .fpr-faq-list .elementor-tab-content p {
  margin: 0 !important;
  padding: 0 !important;
  color: #555 !important;
  font-size: .95rem !important;
  line-height: 1.5 !important;
}
@media (max-width: 767px) {
  .elementor-28 .fpr-faq-list .elementor-tab-title {
    padding: .7rem .9rem !important;
  }
  .elementor-28 .fpr-faq-list .elementor-tab-content {
    padding: 0 .9rem .75rem !important;
  }
}

/* —— Lead band CTA before footer (match main .lead-band) —— */
.elementor-28 .fpr-lead {
  background: linear-gradient(180deg, #454545 0%, #585858 50%, #6e6e6e 82%, #f3f3f3 100%) !important;
  background-color: transparent !important;
  color: #fff;
  --padding-top: 2.4rem !important;
  --padding-bottom: 2.25rem !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
}
.elementor-28 .fpr-lead-inner > .e-con-inner {
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: 1.2fr .85fr !important;
  gap: 1.5rem !important;
  align-items: stretch !important;
}
.elementor-28 .fpr-lead-copy {
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --gap: 0px !important;
}
.elementor-28 .fpr-lead-title .elementor-heading-title,
.elementor-28 .fpr-lead-title h2 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.45rem, 2.6vw, 1.95rem) !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 0 0 .5rem !important;
  line-height: 1.25 !important;
}
.elementor-28 .fpr-lead-text,
.elementor-28 .fpr-lead-text p {
  color: rgba(255, 255, 255, .9) !important;
  margin: 0 0 .85rem !important;
  padding: 0 !important;
  max-width: 32rem;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
}
.elementor-28 .fpr-lead-list {
  margin: 0 0 1rem !important;
}
.elementor-28 .fpr-lead-list .elementor-icon-list-items {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-28 .fpr-lead-list .elementor-icon-list-item {
  margin: 0 0 .3rem !important;
  padding: 0 !important;
}
.elementor-28 .fpr-lead-list .elementor-icon-list-item .elementor-icon-list-text {
  color: rgba(255, 255, 255, .92) !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: 1.05rem !important;
  font-weight: 400 !important;
}
.elementor-28 .fpr-lead-list .elementor-icon-list-icon {
  width: 1.1rem !important;
}
.elementor-28 .fpr-lead-list .elementor-icon-list-icon i,
.elementor-28 .fpr-lead-list .elementor-icon-list-icon svg {
  color: #fff !important;
  fill: #fff !important;
  width: .85rem !important;
  height: .85rem !important;
}
.elementor-28 .fpr-lead-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .75rem !important;
  --gap: .75rem !important;
  --padding-top: 0px !important;
  --padding-right: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  margin-top: 0 !important;
}
.elementor-28 .fpr-lead-phone {
  background: #dcdcdc !important;
  border: 1px solid rgba(0, 0, 0, .08) !important;
  border-radius: 18px !important;
  padding: 1.35rem 1.4rem !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .1);
  color: #333;
  --padding-top: 1.35rem !important;
  --padding-bottom: 1.35rem !important;
  --padding-left: 1.4rem !important;
  --padding-right: 1.4rem !important;
  --gap: 0px !important;
  justify-content: center !important;
}
.elementor-28 .fpr-lead-tag,
.elementor-28 .fpr-lead-tag p,
.elementor-28 .fpr-lead-tag .elementor-widget-container {
  font-size: .72rem !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: #666 !important;
  margin: 0 0 .5rem !important;
  padding: 0 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  line-height: 1.3 !important;
}
.elementor-28 .fpr-lead-phone-num .elementor-heading-title,
.elementor-28 .fpr-lead-phone-num a,
.elementor-28 .fpr-lead-phone-num div {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem) !important;
  color: #222 !important;
  font-weight: 700 !important;
  margin: 0 0 .45rem !important;
  display: block !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
}
.elementor-28 .fpr-lead-phone-num a:hover,
.elementor-28 .fpr-lead-phone-num .elementor-heading-title:hover {
  color: #8c1c2c !important;
}
.elementor-28 .fpr-lead-phone-meta,
.elementor-28 .fpr-lead-phone-meta p {
  color: #444 !important;
  font-size: .95rem !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  line-height: 1.55 !important;
  text-shadow: none !important;
}

@media (max-width: 900px) {
  .elementor-28 .fpr-about-inner > .e-con-inner {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "copy"
      "photo" !important;
    gap: 1.25rem !important;
  }
  .elementor-28 .fpr-help-inner > .e-con-inner > .fpr-help-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .elementor-28 .fpr-services-inner > .e-con-inner > .fpr-services-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .elementor-28 .fpr-lead-inner > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 720px) {
  .elementor-28 .fpr-help-inner > .e-con-inner > .fpr-help-grid,
  .elementor-28 .fpr-services-inner > .e-con-inner > .fpr-services-grid {
    grid-template-columns: 1fr !important;
  }
  .elementor-28 .fpr-cta-badge { width: 100%; min-width: 0; }
}

/* ========== SITE-WIDE PAGE SECTIONS (match fpryan.ie style.css) ========== */
.fpr-chrome .btn,
.elementor .fpr-btn-red .elementor-button,
.elementor .fpr-btn-outline .elementor-button,
.elementor .fpr-btn-white .elementor-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.7rem !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-weight: 600 !important;
  font-size: .95rem !important;
  line-height: 1.65 !important;
  border-radius: 999px !important;
  border-width: 2px !important;
  border-style: solid !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: .2s cubic-bezier(.22,1,.36,1);
  box-sizing: border-box;
}
.fpr-chrome .btn-red,
.elementor .fpr-btn-red .elementor-button {
  background: #8c1c2c !important;
  color: #fff !important;
  border-color: transparent !important;
}
.fpr-chrome .btn-red:hover,
.elementor .fpr-btn-red .elementor-button:hover {
  background: #6e1522 !important;
  color: #fff !important;
}
.fpr-chrome .btn-white,
.elementor .fpr-btn-white .elementor-button {
  background: #fff !important;
  color: #333 !important;
  border-color: #fff !important;
}
.fpr-chrome .btn-white:hover,
.elementor .fpr-btn-white .elementor-button:hover {
  background: #f0f0f0 !important;
  color: #222 !important;
}
.elementor .fpr-btn-outline .elementor-button {
  background: transparent !important;
  color: #8c1c2c !important;
  border-color: #8c1c2c !important;
}
.elementor .fpr-btn-outline .elementor-button:hover {
  background: #8c1c2c !important;
  color: #fff !important;
}

/* Lead band — works in footer (not only elementor-28) */
.fpr-lead {
  background: linear-gradient(180deg, #454545 0%, #585858 50%, #6e6e6e 82%, #f3f3f3 100%) !important;
  color: #fff;
  padding: 2.4rem 0 2.25rem !important;
  width: 100%;
}
.fpr-lead-inner {
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: 1.2fr .85fr !important;
  gap: 1.5rem !important;
  align-items: stretch !important;
}
.fpr-lead-title {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.45rem, 2.6vw, 1.95rem) !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 0 0 .5rem !important;
  line-height: 1.25 !important;
}
.fpr-lead-text {
  color: rgba(255,255,255,.9) !important;
  margin: 0 0 .85rem !important;
  max-width: 32rem;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
}
.fpr-lead-list-static {
  list-style: none !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
}
.fpr-lead-list-static li {
  position: relative;
  padding-left: 1.3rem;
  margin-bottom: .3rem;
  color: rgba(255,255,255,.92);
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
}
.fpr-lead-list-static li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #fff;
  font-weight: 700;
}
.fpr-lead-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.fpr-lead-phone {
  background: #dcdcdc !important;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  padding: 1.35rem 1.4rem;
  box-shadow: 0 10px 28px rgba(0,0,0,.1);
  color: #333;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.fpr-lead-tag {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #666;
  margin-bottom: .5rem;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
}
.fpr-lead-phone-num {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem) !important;
  color: #222 !important;
  font-weight: 700 !important;
  margin: 0 0 .45rem !important;
  display: block !important;
  text-decoration: none !important;
}
.fpr-lead-phone-num:hover { color: #8c1c2c !important; }
.fpr-lead-phone-meta {
  color: #444 !important;
  font-size: .95rem !important;
  margin: 0 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
  line-height: 1.55;
}
@media (max-width: 900px) {
  .fpr-lead-inner { grid-template-columns: 1fr !important; }
}

/* Page banner */
.elementor .fpr-banner {
  background: #555 !important;
  color: #fff !important;
  position: relative;
  overflow: hidden;
  --padding-top: 3rem !important;
  --padding-bottom: 2.75rem !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
}
.elementor .fpr-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("/wp-content/uploads/2026/08/hero-meeting.jpg") center/cover;
  filter: grayscale(1);
  opacity: .18;
  z-index: 0;
  pointer-events: none;
}
.elementor .fpr-banner > .e-con-inner,
.elementor .fpr-banner > .elementor-element,
.elementor .fpr-banner-inner {
  position: relative;
  z-index: 1;
}
.elementor .fpr-banner-inner > .e-con-inner,
.elementor .fpr-banner-inner {
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
}
.elementor .fpr-crumbs,
.elementor .fpr-crumbs p,
.elementor .fpr-crumbs a {
  font-size: .82rem !important;
  color: rgba(255,255,255,.7) !important;
  margin: 0 0 .85rem !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
}
.elementor .fpr-crumbs a:hover { color: #fff !important; }
.elementor .fpr-banner-title .elementor-heading-title,
.elementor .fpr-banner-title h1 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.85rem, 3.5vw, 2.5rem) !important;
  font-weight: 700 !important;
  color: #fff !important;
  margin: 0 0 .5rem !important;
  line-height: 1.2 !important;
}
.elementor .fpr-banner-sub,
.elementor .fpr-banner-sub p {
  color: rgba(255,255,255,.88) !important;
  max-width: 36rem;
  margin: 0 !important;
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
}

/* Sections */
.elementor .fpr-section {
  --padding-top: 4.25rem !important;
  --padding-bottom: 4.25rem !important;
  --padding-left: 0 !important;
  --padding-right: 0 !important;
  background: #fff !important;
}
.elementor .fpr-section-gray,
.elementor .fpr-section.fpr-section-gray {
  background: #f4f4f4 !important;
  --padding-top: 4.25rem !important;
  --padding-bottom: 4.25rem !important;
}
.elementor .fpr-boxed > .e-con-inner,
.elementor .fpr-boxed.e-con-boxed > .e-con-inner {
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
}

/* svc-split */
.elementor .fpr-svc-split > .e-con-inner,
.elementor .fpr-boxed.fpr-svc-split > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 3rem !important;
  align-items: center !important;
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
}
.elementor .fpr-svc-split-reverse > .e-con-inner {
  direction: rtl;
}
.elementor .fpr-svc-split-reverse > .e-con-inner > * {
  direction: ltr;
}
.elementor .fpr-svc-image img {
  width: 100% !important;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 20px;
  filter: grayscale(1);
  box-shadow: 0 12px 32px rgba(0,0,0,.08);
  height: auto !important;
}
.elementor .fpr-label,
.elementor .fpr-label p {
  display: block !important;
  font-size: .75rem !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: #8c1c2c !important;
  margin: 0 0 .55rem !important;
  padding: 0 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
}
.elementor .fpr-svc-title .elementor-heading-title,
.elementor .fpr-svc-title h2 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.6rem, 3vw, 2.1rem) !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 .85rem !important;
  line-height: 1.2 !important;
}
.elementor .fpr-svc-text,
.elementor .fpr-svc-text p {
  color: #555 !important;
  margin: 0 0 1rem !important;
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
}
.elementor .fpr-link-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .75rem !important;
  margin-top: .5rem !important;
  --gap: .75rem !important;
}

/* section titles */
.elementor .fpr-section-title {
  text-align: center;
  max-width: 560px;
  margin: 0 auto 2.5rem !important;
}
.elementor .fpr-sec-h2 .elementor-heading-title,
.elementor .fpr-sec-h2 h2 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.7rem, 3vw, 2.15rem) !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 .6rem !important;
  text-align: center !important;
}
.elementor .fpr-sec-sub,
.elementor .fpr-sec-sub p {
  color: #555 !important;
  text-align: center !important;
  margin: 0 !important;
  font-size: 1.05rem !important;
}

/* svc-cards 3-col */
.elementor .fpr-svc-cards {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 1.25rem !important;
  width: 100% !important;
}
.elementor .fpr-svc-card {
  background: #fff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 18px !important;
  padding: 1.5rem 1.35rem !important;
  box-shadow: none;
  height: 100%;
  box-sizing: border-box;
  transition: transform .25s, background .25s, border-color .25s;
}
.elementor .fpr-svc-card:hover {
  transform: translateY(-3px);
  background: #555 !important;
  border-color: #555 !important;
}
.elementor .fpr-svc-num,
.elementor .fpr-svc-num p {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  color: #8c1c2c !important;
  margin: 0 0 .65rem !important;
  line-height: 1 !important;
}
.elementor .fpr-svc-card:hover .fpr-svc-num,
.elementor .fpr-svc-card:hover .fpr-svc-num p,
.elementor .fpr-svc-card:hover .elementor-heading-title,
.elementor .fpr-svc-card:hover p {
  color: #fff !important;
}
.elementor .fpr-svc-card .elementor-heading-title {
  font-size: 1.08rem !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  font-weight: 700 !important;
  margin: 0 0 .4rem !important;
  color: #333 !important;
}
.elementor .fpr-svc-card .elementor-widget-text-editor p {
  font-size: .92rem !important;
  color: #555 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* include grid */
.elementor .fpr-include-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 1rem !important;
  width: 100% !important;
}
.elementor .fpr-include-card {
  background: #fff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 14px !important;
  padding: 1.15rem 1rem !important;
  height: 100%;
  box-sizing: border-box;
}
.elementor .fpr-include-card .elementor-icon {
  width: 2.2rem !important;
  height: 2.2rem !important;
  min-width: 2.2rem !important;
  font-size: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: rgba(140,28,44,.08) !important;
  color: #8c1c2c !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 0 .65rem !important;
}
.elementor .fpr-include-card .elementor-icon svg {
  width: 1.1rem !important;
  height: 1.1rem !important;
  fill: #8c1c2c !important;
}
.elementor .fpr-include-card .elementor-icon-box-title,
.elementor .fpr-include-card .elementor-icon-box-title h3 {
  font-size: .98rem !important;
  font-weight: 700 !important;
  margin: 0 0 .3rem !important;
  color: #333 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
  text-align: left !important;
}
.elementor .fpr-include-card .elementor-icon-box-description {
  font-size: .88rem !important;
  color: #555 !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  text-align: left !important;
}
.elementor .fpr-include-card .elementor-icon-box-wrapper {
  align-items: flex-start !important;
  text-align: left !important;
}

/* who grid */
.elementor .fpr-who-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 1rem !important;
  width: 100% !important;
}
.elementor .fpr-who-card {
  background: #fff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 14px !important;
  padding: 1.25rem 1.1rem !important;
  text-align: center !important;
  height: 100%;
  box-sizing: border-box;
  transition: background .25s, border-color .25s, transform .25s;
}
.elementor .fpr-who-card:hover {
  background: #555 !important;
  border-color: #555 !important;
  transform: translateY(-3px);
}
.elementor .fpr-who-card .elementor-icon {
  width: 2.4rem !important;
  height: 2.4rem !important;
  font-size: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: rgba(140,28,44,.08) !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 auto .65rem !important;
}
.elementor .fpr-who-card .elementor-icon svg {
  width: 1.2rem !important;
  height: 1.2rem !important;
  fill: #8c1c2c !important;
}
.elementor .fpr-who-card:hover .elementor-icon {
  background: rgba(255,255,255,.15) !important;
}
.elementor .fpr-who-card:hover .elementor-icon svg { fill: #fff !important; }
.elementor .fpr-who-card .elementor-icon-box-title h3,
.elementor .fpr-who-card .elementor-icon-box-title {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin: 0 0 .35rem !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
}
.elementor .fpr-who-card .elementor-icon-box-description {
  font-size: .88rem !important;
  color: #555 !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}
.elementor .fpr-who-card:hover .elementor-icon-box-title,
.elementor .fpr-who-card:hover .elementor-icon-box-title h3,
.elementor .fpr-who-card:hover .elementor-icon-box-description {
  color: #fff !important;
}

/* process */
.elementor .fpr-process {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 1.25rem !important;
  width: 100% !important;
}
.elementor .fpr-process-card {
  background: #fff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 16px !important;
  padding: 1.5rem 1.25rem !important;
  height: 100%;
  box-sizing: border-box;
}
.elementor .fpr-process-num,
.elementor .fpr-process-num p {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: #8c1c2c;
  color: #fff !important;
  display: grid !important;
  place-items: center;
  font-weight: 700 !important;
  font-size: 1rem !important;
  margin: 0 0 .85rem !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
}
.elementor .fpr-process-card .elementor-heading-title {
  font-size: 1.08rem !important;
  font-weight: 700 !important;
  margin: 0 0 .4rem !important;
  color: #333 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
}
.elementor .fpr-process-card .elementor-widget-text-editor p {
  font-size: .92rem !important;
  color: #555 !important;
  margin: 0 !important;
  line-height: 1.5 !important;
}

/* FAQ — all pages */
.elementor .fpr-faq-list.elementor-widget-accordion,
.elementor .fpr-faq-list {
  max-width: 760px !important;
  width: 100% !important;
  margin: 0 auto !important;
}
.elementor .fpr-faq-list .elementor-accordion-item {
  border: 1px solid #cfcfcf !important;
  background: #fff !important;
  margin: 0 0 .5rem !important;
}
.elementor .fpr-faq-list .elementor-tab-title {
  padding: .75rem 1rem !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  background: #fff !important;
  border: 0 !important;
  color: #333 !important;
  font-family: "Source Sans 3", "Segoe UI", sans-serif !important;
}
.elementor .fpr-faq-list .elementor-accordion-icon {
  float: none !important;
  order: 2;
  font-size: 1.15rem !important;
  color: #8c1c2c !important;
}
.elementor .fpr-faq-list .elementor-accordion-icon svg { display: none !important; }
.elementor .fpr-faq-list .elementor-accordion-icon-closed::after,
.elementor .fpr-faq-list .elementor-accordion-icon-opened::after {
  content: "+";
  color: #8c1c2c;
  font-size: 1.15rem;
  line-height: 1;
}
.elementor .fpr-faq-list .elementor-tab-title.elementor-active .elementor-accordion-icon-closed { display: none !important; }
.elementor .fpr-faq-list .elementor-tab-title:not(.elementor-active) .elementor-accordion-icon-opened { display: none !important; }
.elementor .fpr-faq-list .elementor-tab-title.elementor-active .elementor-accordion-icon-opened::after { transform: rotate(45deg); display: block; }
.elementor .fpr-faq-list .elementor-tab-content {
  border: 0 !important;
  padding: 0 1rem .85rem !important;
  font-size: .95rem !important;
  color: #555 !important;
  line-height: 1.5 !important;
  background: #fff !important;
}

/* related chips */
.elementor .fpr-related-links,
.elementor .fpr-related {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .65rem !important;
  justify-content: center !important;
}
.elementor .fpr-chip .elementor-button {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-radius: 999px !important;
  padding: .55rem 1.1rem !important;
  font-size: .88rem !important;
  font-weight: 600 !important;
  color: #3f3f3f !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.03);
}
.elementor .fpr-chip .elementor-button:hover {
  color: #8c1c2c !important;
  border-color: rgba(140,28,44,.25) !important;
}

/* price card */
.elementor .fpr-price-card {
  background: #fff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 20px !important;
  padding: 2rem 2rem 1.75rem !important;
  max-width: 520px;
  margin: 0 auto !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.05);
  text-align: center;
}
.elementor .fpr-price-card .fpr-label { text-align: center; }
.elementor .fpr-price-amount .elementor-heading-title {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(2.2rem, 4vw, 3rem) !important;
  color: #333 !important;
  margin: 0 !important;
}
.elementor .fpr-price-card .elementor-icon-list-text {
  text-align: left;
  color: #555 !important;
}

/* about stats */
.elementor .fpr-about-stats {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0,1fr)) !important;
  gap: 1rem !important;
  width: 100% !important;
}
.elementor .fpr-stat {
  background: #fff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 16px !important;
  padding: 1.5rem 1rem !important;
  text-align: center;
}
.elementor .fpr-stat-num .elementor-heading-title {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: clamp(1.6rem, 3vw, 2rem) !important;
  color: #8c1c2c !important;
  margin: 0 0 .35rem !important;
}
.elementor .fpr-stat-label,
.elementor .fpr-stat-label p {
  font-size: .9rem !important;
  color: #555 !important;
  margin: 0 !important;
}

/* contact */
.elementor .fpr-contact-row > .e-con-inner {
  display: grid !important;
  grid-template-columns: 1fr 1.15fr !important;
  gap: 2.5rem !important;
  align-items: start !important;
  width: min(100% - 2.4rem, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
}
.elementor .fpr-contact-item .elementor-icon-box-title,
.elementor .fpr-contact-item .elementor-icon-box-title h3 {
  font-family: "Libre Baskerville", Georgia, serif !important;
  font-size: 1.15rem !important;
  margin: 0 0 .35rem !important;
  color: #333 !important;
}
.elementor .fpr-contact-item .elementor-icon-box-description {
  color: #555 !important;
  font-size: 1.05rem !important;
  line-height: 1.55 !important;
}
.elementor .fpr-form-wrap,
.elementor .fpr-form-wrap .wpcf7 {
  background: #f4f4f4;
  border: 1px solid #cfcfcf;
  border-radius: 16px;
  padding: 1.5rem 1.35rem;
}
.elementor .fpr-form-wrap label {
  display: block;
  font-weight: 600;
  font-size: .9rem;
  margin-bottom: .35rem;
  color: #333;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
}
.elementor .fpr-form-wrap input[type=text],
.elementor .fpr-form-wrap input[type=email],
.elementor .fpr-form-wrap input[type=tel],
.elementor .fpr-form-wrap select,
.elementor .fpr-form-wrap textarea {
  width: 100%;
  border: 1px solid #cfcfcf;
  border-radius: 8px;
  padding: .65rem .8rem;
  font: inherit;
  background: #fff;
  margin-bottom: .85rem;
  box-sizing: border-box;
}
.elementor .fpr-form-wrap textarea { min-height: 120px; }
.elementor .fpr-form-wrap input[type=submit],
.elementor .fpr-form-wrap .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.7rem;
  font-weight: 600;
  font-size: .95rem;
  border-radius: 999px;
  border: 2px solid transparent;
  background: #8c1c2c;
  color: #fff;
  cursor: pointer;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
}
.elementor .fpr-form-wrap input[type=submit]:hover { background: #6e1522; }
.fpr-map,
.elementor .fpr-office-map {
  margin-top: 2rem;
  width: min(100% - 2.4rem, 1120px);
  max-width: 1120px;
  margin-inline: auto;
}
.fpr-map iframe,
.elementor .fpr-office-map iframe {
  width: 100%;
  height: 360px;
  border: 0;
  border-radius: 16px;
  display: block;
}

@media (max-width: 900px) {
  .elementor .fpr-svc-split > .e-con-inner,
  .elementor .fpr-boxed.fpr-svc-split > .e-con-inner,
  .elementor .fpr-contact-row > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
  .elementor .fpr-svc-split-reverse > .e-con-inner { direction: ltr; }
  .elementor .fpr-svc-cards,
  .elementor .fpr-process,
  .elementor .fpr-who-grid,
  .elementor .fpr-include-grid,
  .elementor .fpr-about-stats {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 560px) {
  .elementor .fpr-svc-cards,
  .elementor .fpr-process,
  .elementor .fpr-who-grid,
  .elementor .fpr-include-grid,
  .elementor .fpr-about-stats {
    grid-template-columns: 1fr !important;
  }
}
