/* ==========================================================================
   "Gallery" light theme - loaded AFTER premium.css as a trial layer.
   Remove the enqueue in functions.php (EP_GALLERY_THEME) to return to Mercury dark.
   - near-white canvas, white surfaces, #1d1d1f text, centred 600-weight headings
   - one filled blue (#0071e3) for primary actions, #0066cc for outlines/links
   - pill buttons, no shadows, no borders/dividers: sections change tint instead
   ========================================================================== */
:root {
  --ep-canvas: #f5f5f7;
  --ep-card: #ffffff;
  --ep-raised: #e8e8ed;
  --ep-slate: #86868b;
  --ep-mist: #d6d6d6;
  --ep-ash: #6e6e73;
  --ep-ivory: #1d1d1f;
  --ep-cobalt: #0071e3;
  --ep-cobalt-hover: #0077ed;
  --ep-link: #0066cc;
  --ep-white: #ffffff;
  --ep-hair: rgba(0, 0, 0, .08);
  --ep-hair-2: rgba(0, 0, 0, .16);
  --ep-ember: #0066cc;
  --ep-display: -apple-system, 'SF Pro Display', BlinkMacSystemFont, 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --ep-sans: -apple-system, 'SF Pro Text', BlinkMacSystemFont, 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --ep-r-card: 18px;
  --ep-r-btn: 980px;
  --ep-r-pill: 980px;
  --ep-r-input: 12px;
  --ep-wash: linear-gradient(180deg, #f5f5f7 0%, #e6f0fb 55%, #d9e9fa 100%);
}
html, body.ep-theme { background: #fff; color: #1d1d1f; }
body.ep-theme { font-size: 17px; line-height: 1.47; letter-spacing: -.022em; }
.ep-theme ::selection { background: #0071e3; color: #fff; }
.ep-theme :focus-visible { outline-color: #0071e3; }
.ep-theme a { color: #0066cc; }

/* ---------- Type: 600-weight, tight, centred ---------- */
.ep-hero__title, .ep-pagehero__title, .ep-heading h2, .ep-heading h3, .ep-intro__text,
.ep-iconcard__title, .ep-tile__title, .ep-numcard__title, .ep-postcard__title, .ep-sidecard__title,
.ep-footer__title span, .ep-brand__name, .ep-content h1, .ep-content h2, .ep-content h3, .ep-content h4, .ep-content h5, .ep-content h6,
.ep-marquee__list li, .ep-numcard__num {
  font-family: var(--ep-display); font-weight: 600; letter-spacing: -.015em; color: #1d1d1f;
}
.ep-hero__title { font-size: clamp(34px, 4.6vw, 56px); line-height: 1.07; }
.ep-pagehero__title { font-size: clamp(34px, 4.6vw, 56px); line-height: 1.07; text-align: center; margin: 0 auto; }
.ep-heading h2, .ep-heading h3 { font-size: clamp(30px, 3.6vw, 48px); line-height: 1.08; color: #1d1d1f; }
.ep-heading, .ep-heading--center { text-align: center; margin-left: auto; margin-right: auto; }
.ep-heading h2::before, .ep-heading h3::before { display: none; }
.ep-heading__lead { color: #1d1d1f; font-size: 19px; line-height: 1.42; }
.ep-intro__text { font-weight: 600; font-size: clamp(24px, 2.8vw, 34px); line-height: 1.2; }
.ep-brand__name { font-size: 19px; }
.ep-brand__tagline { color: #6e6e73; }

/* ---------- Buttons: pills ---------- */
.ep-btn, .ep-contact__form input[type="submit"], .ep-content .wpcf7 input[type="submit"],
.ep-nav > .nav > li:last-child > a, .ep-mobilebar a { border-radius: 980px !important; }
.ep-btn { min-height: 44px; padding: 11px 22px; font-size: 15px; letter-spacing: -.01em; box-shadow: none !important; }
.ep-btn--gold, .ep-btn--crimson, .ep-btn--primary { background: #0071e3; color: #fff !important; }
.ep-btn--gold:hover, .ep-btn--crimson:hover, .ep-btn--primary:hover { background: #0077ed; }
.ep-btn--ghost { background: transparent; color: #0066cc !important; border: 1px solid #0066cc; }
.ep-btn--ghost:hover, .ep-btn--ghost:focus-visible { background: #0066cc; color: #fff !important; }
.ep-btn--line { background: transparent; color: #0066cc !important; border: 1px solid #0066cc; }
.ep-btn--line:hover, .ep-btn--line:focus-visible { background: #0066cc; color: #fff !important; }
.ep-link, .ep-content a { color: #0066cc !important; border-bottom: 0; }
.ep-link:hover, .ep-content a:hover { color: #0066cc !important; text-decoration: underline; }

/* ---------- Top bar + 44px-style frosted nav ---------- */
.ep-topbar { background: #fff; color: #6e6e73; border-bottom: 1px solid rgba(0, 0, 0, .06); font-size: 12px; }
.ep-topbar a { color: #1d1d1f; }
.ep-topbar a:hover { color: #0066cc; }
.ep-topbar__item > .fa { color: #86868b; }
.ep-topbar .goog-te-gadget-simple { border-color: rgba(0, 0, 0, .14) !important; }
.ep-topbar .goog-te-gadget-simple a, .ep-topbar .goog-te-gadget-simple span { color: #1d1d1f !important; }

.ep-header, .ep-overlay .ep-header { background: rgba(255, 255, 255, .8); -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); }
.ep-header::before { background: rgba(255, 255, 255, .72); border-bottom: 1px solid #d6d6d6; }
.ep-header::after { display: none; }
.ep-overlay #body-holder > section:first-child { margin-top: 0; }
.ep-header__inner { min-height: 64px; }
.ep-header.is-shrunk .ep-header__inner { min-height: 52px; }
.ep-brand { color: #1d1d1f; }
.ep-brand__logo { width: 44px; height: 44px; }
.ep-header.is-shrunk .ep-brand__logo { width: 36px; height: 36px; }
.ep-header.is-shrunk .ep-brand__name { font-size: 17px; }
.ep-nav > .nav { background: transparent !important; border: 0 !important; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 0 !important; }
.ep-nav > .nav > li > a { color: #1d1d1f; font-size: 13px; padding: 8px 12px; background: transparent !important; }
.ep-nav > .nav > li > a:hover, .ep-nav > .nav > li > a:focus, .ep-nav > .nav > li.open > a { color: #474747; background: transparent !important; }
.ep-nav > .nav > li.active > a { background: transparent !important; color: #000; font-weight: 600; }
.ep-nav > .nav > li:last-child > a { background: #0071e3 !important; color: #fff !important; padding: 7px 16px; font-size: 13px; }
.ep-nav > .nav > li:last-child > a:hover { background: #0077ed !important; }
.ep-nav .caret { border-top-color: #86868b; }
.ep-nav .dropdown-menu { background: rgba(255, 255, 255, .96); border: 0; border-radius: 0 0 18px 18px; -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); }
.ep-nav .dropdown-menu > li > a { color: #1d1d1f; font-size: 13.5px; border-radius: 980px; }
.ep-nav .dropdown-menu > li > a:hover, .ep-nav .dropdown-menu > li > a:focus, .ep-nav .dropdown-menu > .active > a { background: #f5f5f7; color: #0066cc; }
.ep-burger { background: #f5f5f7; border-color: transparent; }
.ep-burger span { background: #1d1d1f; }
@media (max-width: 1199px) {
  .ep-nav { background: #fff; }
  .ep-nav-open .ep-header::before { background: #fff; }
  .ep-nav > .nav > li { border-bottom: 1px solid #e8e8ed; }
  .ep-nav > .nav > li > a, .ep-nav > .nav > li.active > a, .ep-nav > .nav > li.open > a { color: #1d1d1f !important; font-family: var(--ep-display); font-weight: 600; font-size: 24px; }
  .ep-nav > .nav > li:last-child > a { color: #fff !important; font-size: 16px; padding: 14px; }
  .ep-nav .dropdown-menu { background: #f5f5f7; border-radius: 18px; }
  .ep-nav .dropdown-menu > li > a { color: #1d1d1f; }
}

/* ---------- Hero: centred text on white, photo window below ---------- */
.ep-hero { background: #fff; color: #1d1d1f; min-height: 0; display: block; padding-bottom: min(54vw, 560px); }
.ep-hero__overlay { display: none; }
.ep-hero__bg {
  inset: auto 0 0 0; height: min(52vw, 540px); margin: 0 auto; max-width: 1240px; width: calc(100% - 40px);
  border-radius: 18px; filter: none; translate: none !important; animation: none !important; transform: none !important;
}
.ep-hero__inner { padding-top: 72px; padding-bottom: 48px; }
.ep-hero__title { color: #1d1d1f; }
.ep-hero__text { color: #1d1d1f; font-size: 21px; line-height: 1.38; max-width: 760px; }
.ep-hero__actions { gap: 10px; margin-top: 30px; }
.ep-hero__dots { margin-top: 30px; }
.ep-hero__dot { background: #d2d2d7; }
.ep-hero__dot.is-active { background: #d2d2d7; }
.ep-hero__dot.is-active::before { background: #1d1d1f; }
.ep-split .ep-w > span { color: inherit; }

/* ---------- Marquee: quiet grey band ---------- */
.ep-marquee { background: #f5f5f7 !important; color: #6e6e73; border: 0; }
.ep-marquee__list li { color: #1d1d1f; font-weight: 600; font-size: 17px; }
.ep-marquee__list li::after { background: #d2d2d7; }

/* ---------- Sections: tint rotation, no decorative photos ---------- */
.ep-section { background: #fff; color: #1d1d1f; }
.ep-intro { background: #fff; }
.ep-section__photo { display: none; }
.ep-iconcards-wrap { background: var(--ep-wash) !important; }
.ep-section--light, .ep-why { background: #f5f5f7 !important; }
.ep-services { background: #fff !important; }
.ep-complaints { background: #fff; }

/* Service cards (icons) - white tiles on the blue wash */
.ep-iconcard, .ep-iconcards-wrap .ep-iconcard { background: #fff !important; color: #1d1d1f !important; border-radius: 18px; box-shadow: none; }
.ep-iconcard:hover, .ep-iconcards-wrap .ep-iconcard:hover { background: #fff !important; transform: translateY(-6px) scale(1.01); }
.ep-iconcard__icon { background: #f5f5f7; border: 0; }
.ep-iconcard:hover .ep-iconcard__icon { background: #e8f1fc; }
.ep-iconcard__icon img, .ep-numcard__icon img { filter: brightness(0) saturate(100%) invert(10%) sepia(6%) saturate(600%) hue-rotate(200deg) brightness(96%); }
.ep-iconcard__title { color: #1d1d1f; }
.ep-iconcard__text, .ep-numcard__text, .ep-postcard__text { color: #6e6e73; }
.ep-iconcard__arrow { border-color: #0066cc; color: #0066cc; }
.ep-iconcard:hover .ep-iconcard__arrow { background: #0066cc; border-color: #0066cc; color: #fff; }

/* Image tiles keep white text over the photo */
.ep-tile { border-radius: 18px; background: #1d1d1f; }
.ep-tile__title { color: #fff; }
.ep-tile__arrow { border-color: #fff; color: #fff; }
.ep-tile:hover .ep-tile__arrow { background: #fff; color: #1d1d1f; }
.ep-tile > .ep-tile__badge { color: #fff; background: rgba(0, 0, 0, .35); border-color: rgba(255, 255, 255, .35); }

/* Why choose us: centred head, white cards on grey */
.ep-why__head { grid-template-columns: 1fr; text-align: center; gap: 32px; }
.ep-why__head .ep-heading { margin: 0 auto; }
.ep-why__media { border: 0; border-radius: 18px; box-shadow: none; max-width: 980px; margin: 0 auto; width: 100%; }
.ep-numcard { background: #fff !important; color: #1d1d1f !important; border-radius: 18px; }
.ep-numcard:hover { background: #fff !important; transform: translateY(-6px) scale(1.01); }
.ep-numcard__num { color: #d2d2d7; font-weight: 600; }
.ep-numcard:hover .ep-numcard__num { color: #0071e3; }
.ep-numcard__icon { background: #f5f5f7; }
.ep-numcard:hover .ep-numcard__icon { background: #e8f1fc; }
.ep-numcard__title { color: #1d1d1f; }

/* Our services cards */
.ep-services__banner { border-radius: 18px; box-shadow: none; max-width: 980px; margin-left: auto; margin-right: auto; }
.ep-postcard, .ep-services .ep-postcard { background: #f5f5f7 !important; border-radius: 18px; }
.ep-postcard:hover, .ep-services .ep-postcard:hover { background: #f5f5f7 !important; transform: translateY(-6px) scale(1.01); }
.ep-postcard__title { color: #1d1d1f; }

/* Complaints + contact */
.ep-complaints__box { background: #f5f5f7; border-radius: 18px; text-align: center; }
.ep-complaints__box p { color: #1d1d1f; margin: 0 auto; }
.ep-contact { background: var(--ep-wash); }
.ep-contact::before { display: none; }
.ep-contact .ep-heading h3 { color: #1d1d1f; }
.ep-contact__form { background: #fff; border-radius: 18px; -webkit-backdrop-filter: none; backdrop-filter: none; }

/* Forms (all) */
.ep-contact__form input[type="text"], .ep-contact__form input[type="email"], .ep-contact__form input[type="tel"], .ep-contact__form textarea,
.ep-content .wpcf7 input[type="text"], .ep-content .wpcf7 input[type="email"], .ep-content .wpcf7 input[type="tel"],
.ep-content .wpcf7 input[type="number"], .ep-content .wpcf7 input[type="file"], .ep-content .wpcf7 select, .ep-content .wpcf7 textarea {
  background: #fff; color: #1d1d1f; border: 1px solid #d2d2d7; border-radius: 12px;
}
.ep-contact__form input:focus, .ep-contact__form textarea:focus,
.ep-content .wpcf7 input:focus, .ep-content .wpcf7 select:focus, .ep-content .wpcf7 textarea:focus { border-color: #0071e3; background: #fff; box-shadow: 0 0 0 4px rgba(0, 113, 227, .15); }
.ep-contact__form ::placeholder, .ep-content .wpcf7 ::placeholder { color: #86868b; }
.ep-content .wpcf7 select option { background: #fff; color: #1d1d1f; }
.ep-contact__form input[type="submit"], .ep-content .wpcf7 input[type="submit"] { background: #0071e3; color: #fff; }
.ep-contact__form input[type="submit"]:hover, .ep-content .wpcf7 input[type="submit"]:hover { background: #0077ed; }
.ep-contact__form .wpcf7-not-valid-tip, .ep-content .wpcf7-not-valid-tip { color: #e30000; }
.ep-contact__form .wpcf7-response-output, .ep-content .wpcf7-response-output { color: #1d1d1f; }
.ep-content .bottom_contact .home-form, .ep-content .contact-form-holder { background: #f5f5f7; }
.ep-content .bottom_contact label, .ep-content .bottom_contact .wpcf7 p, .ep-content .wpcf7 label { color: #1d1d1f; }

/* ---------- Inner pages: centred title on grey, photo window below ---------- */
.ep-pagehero { background: #f5f5f7; color: #1d1d1f; min-height: 0; display: block; padding-bottom: min(40vw, 420px); }
.ep-pagehero__overlay, .ep-pagehero::after { display: none; }
.ep-pagehero__bg {
  inset: auto 0 0 0; height: min(38vw, 400px); width: calc(100% - 40px); max-width: 1240px; margin: 0 auto;
  border-radius: 18px 18px 0 0; filter: none; z-index: 0; translate: none !important; animation: none !important; transform: none !important;
}
.ep-pagehero__inner { padding-top: 64px; padding-bottom: 40px; text-align: center; }
.ep-pagehero__title { color: #1d1d1f; }
.ep-page { background: #f5f5f7; padding-top: 0; }
.ep-page__main { background: #fff; border-radius: 0 0 18px 18px; }
.ep-page__grid { gap: 20px; }
.ep-page__feature { border-radius: 18px; }
.ep-page__feature img, .ep-sidecard--img img { filter: none; }
.ep-sidecard--contact { background: #fff; color: #1d1d1f; border-radius: 18px; }
.ep-sidecard__title { color: #1d1d1f; }
.ep-sidecard__list li { border-bottom-color: #e8e8ed; color: #1d1d1f; }
.ep-sidecard__list strong { color: #6e6e73; }
.ep-sidecard__list .fa { background: #f5f5f7; color: #1d1d1f; }
.ep-sidecard__list a { color: #0066cc; }
.ep-sidecard--map { background: #fff; }
.ep-sidecard--map iframe { filter: none; }
.ep-sidecard--img { background: #fff; border-radius: 18px; }

.ep-content { color: #1d1d1f; font-size: 17px; line-height: 1.47; }
.ep-content strong, .ep-content b { color: #1d1d1f; font-weight: 600; }
.ep-content [style*="color"] { color: #1d1d1f !important; }
.ep-content ul > li::before { background: #86868b; }
.ep-content ol > li::marker { color: #1d1d1f; }
.ep-content blockquote { background: #f5f5f7; color: #1d1d1f; }
.ep-content hr { background: #d6d6d6; }
.ep-content table { border-color: #e8e8ed; border-radius: 18px; }
.ep-content table th, .ep-content table td, .ep-content .fees_table th, .ep-content .fees_table td { color: #1d1d1f; border-bottom-color: #e8e8ed !important; }
.ep-content table thead { background: #f5f5f7; }
.ep-content table thead th, .ep-content .fees_table th, .ep-content table thead th strong { color: #1d1d1f !important; font-weight: 600; }
.ep-content table tbody tr:hover td { background: #fafafc; }
.ep-content table tr > td:nth-child(2):last-child { color: #1d1d1f; font-weight: 600; }
.ep-content table tr:has(> td:nth-child(2):last-child:empty) > td { background: #f5f5f7 !important; color: #1d1d1f; font-weight: 600; }

/* ---------- Footer: dense grey band ---------- */
.ep-footer { background: #f5f5f7; color: #6e6e73; border-top: 0; font-size: 12px; }
.ep-footer a { color: #424245; }
.ep-footer a:hover, .ep-footer a:focus { color: #1d1d1f; text-decoration: underline; }
.ep-footer__links { border-bottom: 1px solid #d2d2d7; padding: 40px 0 28px; }
.ep-footer__links li a { padding: 4px 0; font-size: 12.5px; }
.ep-footer__title span { color: #1d1d1f; font-size: 17px; }
.ep-footer__title p, .ep-footer__dev { color: #6e6e73; }
.ep-footer__dev img { filter: grayscale(1); opacity: .6; }
.ep-social a { background: #e8e8ed; color: #1d1d1f; }
.ep-social a:hover, .ep-social a:focus { background: #d2d2d7; color: #1d1d1f; }

/* ---------- Mobile contact bar ---------- */
@media (max-width: 767px) {
  .ep-mobilebar { background: rgba(255, 255, 255, .86); border: 1px solid rgba(0, 0, 0, .08); border-radius: 980px; }
  .ep-mobilebar a { color: #1d1d1f; }
  .ep-mobilebar a:first-child { background: #0071e3; color: #fff; }
  .ep-mobilebar a:not(:first-child) { background: #f5f5f7; }
  .ep-hero { padding-bottom: 62vw; }
  .ep-hero__bg { height: 58vw; width: calc(100% - 32px); }
  .ep-hero__inner { padding-top: 40px; }
  .ep-hero__text { font-size: 17px; }
  .ep-pagehero { padding-bottom: 52vw; }
  .ep-pagehero__bg { height: 50vw; width: calc(100% - 32px); }
  .ep-pagehero__inner { padding-top: 40px; padding-bottom: 28px; }
}

/* Scroll progress line */
.ep-progress { background: #0071e3; }

/* ==========================================================================
   Hero + page banners: photo full-bleed BEHIND the centred text
   ========================================================================== */
.ep-hero {
  display: flex; align-items: center; justify-content: center;
  min-height: min(88vh, 820px); padding-bottom: 0; background: #1d1d1f; color: #fff;
}
.ep-hero__bg {
  inset: -2%; height: auto; width: auto; max-width: none; margin: 0; border-radius: 0;
  filter: none; transform: none;
}
@media (prefers-reduced-motion: no-preference) {
  .ep-hero__bg.is-active { animation: ep-heroZoom 7s linear both !important; }
}
.ep-hero__overlay {
  display: block;
  background: linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, .35) 45%, rgba(0, 0, 0, .55) 100%);
}
.ep-hero__inner { padding-top: 96px; padding-bottom: 88px; }
.ep-hero__title, .ep-hero .ep-split .ep-w > span { color: #fff; }
.ep-hero__text { color: rgba(255, 255, 255, .92); }
.ep-hero .ep-btn--ghost { color: #fff !important; border-color: rgba(255, 255, 255, .85); }
.ep-hero .ep-btn--ghost:hover, .ep-hero .ep-btn--ghost:focus-visible { background: #fff; color: #1d1d1f !important; border-color: #fff; }
.ep-hero__dot, .ep-hero__dot.is-active { background: rgba(255, 255, 255, .35); }
.ep-hero__dot.is-active::before { background: #fff; }

.ep-pagehero {
  display: flex; align-items: center; justify-content: center;
  min-height: 420px; padding-bottom: 0; background: #1d1d1f;
}
.ep-pagehero__bg {
  inset: -2%; height: auto; width: auto; max-width: none; margin: 0; border-radius: 0; z-index: -2;
}
.ep-pagehero__overlay { display: block; background: linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, .5) 100%); }
.ep-pagehero__inner { padding-top: 88px; padding-bottom: 72px; }
.ep-pagehero__title, .ep-pagehero .ep-split .ep-w > span { color: #fff; }
.ep-page { padding-top: 40px; }
.ep-page__main { border-radius: 18px; }

@media (max-width: 767px) {
  .ep-hero { min-height: 0; padding-bottom: 0; }
  .ep-hero__bg { height: auto; width: auto; }
  .ep-hero__inner { padding-top: 56px; padding-bottom: 56px; }
  .ep-pagehero { min-height: 280px; padding-bottom: 0; }
  .ep-pagehero__bg { height: auto; width: auto; }
  .ep-pagehero__inner { padding-top: 56px; padding-bottom: 48px; }
  .ep-page { padding-top: 20px; }
}
.ep-ring__btn { background: #fff; color: #1d1d1f; border-color: #d2d2d7; }
.ep-ring__btn:hover { background: #fff; color: #0066cc; border-color: #0066cc; }
.ep-ring__count { color: #6e6e73; }

/* Mobile menu fix: a backdrop-filter on .ep-header makes it the containing block for the fixed
   menu panel, which then gets cut to the header's height. Keep the frosted blur on ::before only. */
.ep-header, .ep-overlay .ep-header { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background: transparent !important; }
.ep-header::before {
  opacity: 1 !important; background: rgba(255, 255, 255, .8);
  -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, .08);
}
@media (max-width: 1199px) {
  .ep-nav { bottom: 0; height: auto; max-height: none; background: #fff; }
  .ep-nav-open .ep-header::before { background: #fff; }
}
