.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-409f7e7:#EDF2F8;--e-global-color-64957c3:#1E3D64;--e-global-color-b6fde91:#2678BE;--e-global-color-02794d9:#F2F2F2;--e-global-color-50bb6ff:#B89968;--e-global-color-4629741:#FAF7F2;--e-global-color-d14d1ba:#F5EFE6;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:500;--e-global-typography-74effd9-font-family:"Brittany";color:var( --e-global-color-64957c3 );font-family:"Montserrat", Sans-serif;--e-page-transition-entrance-animation:e-page-transition-fade-out;--e-page-transition-animation-duration:400ms;}.elementor-kit-6 e-page-transition{background-color:var( --e-global-color-4629741 );}.elementor-kit-6 a{font-family:"Montserrat", Sans-serif;text-transform:uppercase;}.elementor-kit-6 h1{font-family:"Montserrat", Sans-serif;}.elementor-kit-6 h2{font-family:"Montserrat", Sans-serif;}.elementor-kit-6 h3{font-family:"Montserrat", Sans-serif;}.elementor-kit-6 h4{font-family:"Montserrat", Sans-serif;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-family:"Montserrat", Sans-serif;text-transform:uppercase;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1340px;}.e-con{--container-max-width:1340px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ============================================================
   Capital Bathrooms — Scroll-Reveal Utility
   Partner to  elementor/capital-reveal.js
   Paste into  Elementor > Site Settings > Custom CSS
   --------------------------------------------------------
   Shared animation system used by every section template.
   Elements tagged with `.capital-reveal` start invisible and
   fade/rise into place the moment they enter the viewport.

   Why custom rather than Elementor's Entrance Animation:
   Elementor's `_animation` adds `elementor-invisible` on
   page load and relies on its motion-effects JavaScript to
   remove it. If that script fails to load (host caching,
   asset-loading experiments, JS errors upstream), elements
   stay permanently hidden. This utility is self-contained
   with a failsafe, so content is guaranteed visible.
   ============================================================ */

/* -- Baseline transition ----------------------------------
   Applied to every reveal element. Transitions opacity and
   transform, but hidden state below only activates when JS
   confirms IntersectionObserver support (via html.capital-reveal-ready). */
.capital-reveal {
  transition:
    opacity   1s   cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

/* -- Hidden initial state ---------------------------------
   Only applies after the JS has flagged readiness on <html>.
   If JS is disabled or fails to load, this rule never
   activates — content renders normally, just without the
   scroll-in motion. */
html.capital-reveal-ready .capital-reveal {
  opacity: 0;
  transform: translateY(32px);
}

/* -- Visible state ----------------------------------------
   The JS adds `.is-visible` when the element scrolls into
   view (or the failsafe timer fires). */
html.capital-reveal-ready .capital-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* -- Stagger delay modifiers ------------------------------
   Combine with `.capital-reveal` to stagger sibling reveals
   by 100ms increments. Example: `capital-reveal capital-reveal--d2`. */
.capital-reveal--d1 { transition-delay: 100ms; }
.capital-reveal--d2 { transition-delay: 200ms; }
.capital-reveal--d3 { transition-delay: 300ms; }
.capital-reveal--d4 { transition-delay: 400ms; }
.capital-reveal--d5 { transition-delay: 500ms; }

/* -- Reduced-motion override ------------------------------
   Users who've opted out of motion see the content appear
   statically with no transform or fade. */
@media (prefers-reduced-motion: reduce) {
  .capital-reveal,
  html.capital-reveal-ready .capital-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Brittany';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://capitalbathroo.wpenginepowered.com/wp-content/uploads/2026/04/BrittanySignature.woff2') format('woff2'),
		url('https://capitalbathroo.wpenginepowered.com/wp-content/uploads/2026/04/BrittanySignature.woff') format('woff'),
		url('https://capitalbathroo.wpenginepowered.com/wp-content/uploads/2026/04/BrittanySignature.ttf') format('truetype');
}
/* End Custom Fonts CSS */