.elementor-97 .elementor-element.elementor-element-ea41ec6{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:72px;--padding-bottom:0px;--padding-left:24px;--padding-right:24px;}.elementor-97 .elementor-element.elementor-element-ea41ec6:not(.elementor-motion-effects-element-type-background), .elementor-97 .elementor-element.elementor-element-ea41ec6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-469aec99 );}.elementor-97 .elementor-element.elementor-element-a09551f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;border-style:solid;--border-style:solid;border-width:2px 2px 2px 2px;--border-top-width:2px;--border-right-width:2px;--border-bottom-width:2px;--border-left-width:2px;border-color:var( --e-global-color-text );--border-color:var( --e-global-color-text );--border-radius:21px 21px 21px 21px;}.elementor-97 .elementor-element.elementor-element-2755f18{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-97 .elementor-element.elementor-element-8e887cb .elementor-heading-title{color:var( --e-global-color-44ce1758 );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-97 .elementor-element.elementor-element-c7ee7d4 p{margin-block-end:0px;}.elementor-97 .elementor-element.elementor-element-c7ee7d4{color:var( --e-global-color-44ce1758 );}.elementor-97 .elementor-element.elementor-element-49b4324{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-end;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-global .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-97 .elementor-element.elementor-global-328 .elementor-button-content-wrapper{flex-direction:row;}.elementor-97 .elementor-element.elementor-global-328 .elementor-button{border-style:solid;border-width:1px 1px 1px 1px;}.elementor-97 .elementor-element.elementor-global-331 .elementor-button{font-family:"Nunito Sans", Sans-serif;font-weight:700;}.elementor-97 .elementor-element.elementor-element-14a4955{--display:grid;--e-con-grid-template-columns:repeat(4, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-97 .elementor-element.elementor-element-803d52c{--display:flex;}.elementor-97 .elementor-element.elementor-element-aee951b .elementor-heading-title{color:var( --e-global-color-44ce1758 );}.elementor-97 .elementor-element.elementor-element-f5f143a p{margin-block-end:0px;}.elementor-97 .elementor-element.elementor-element-f5f143a{color:var( --e-global-color-44ce1758 );}.elementor-97 .elementor-element.elementor-element-c794965{--grid-template-columns:repeat(0, auto);text-align:center;--grid-column-gap:5px;--grid-row-gap:0px;}.elementor-97 .elementor-element.elementor-element-c794965 .elementor-social-icon{background-color:var( --e-global-color-6920a886 );}.elementor-97 .elementor-element.elementor-element-b45895e{--display:flex;}.elementor-97 .elementor-element.elementor-element-7516726 .elementor-heading-title{color:var( --e-global-color-2623ebe );}.elementor-97 .elementor-element.elementor-element-d2f697f p{margin-block-end:0px;}.elementor-97 .elementor-element.elementor-element-d2f697f{color:var( --e-global-color-44ce1758 );}.elementor-97 .elementor-element.elementor-element-4033411{--display:flex;}.elementor-97 .elementor-element.elementor-element-0ad3884 .elementor-heading-title{color:var( --e-global-color-2623ebe );}.elementor-97 .elementor-element.elementor-element-5b1fb7e p{margin-block-end:0px;}.elementor-97 .elementor-element.elementor-element-5b1fb7e{color:var( --e-global-color-44ce1758 );}.elementor-97 .elementor-element.elementor-element-fb27ddf{--display:flex;}.elementor-97 .elementor-element.elementor-element-2e9cc13 .elementor-heading-title{color:var( --e-global-color-2623ebe );}.elementor-97 .elementor-element.elementor-element-bd70c35 p{margin-block-end:0px;}.elementor-97 .elementor-element.elementor-element-bd70c35{color:var( --e-global-color-2623ebe );}.elementor-97 .elementor-element.elementor-element-abdb3ba p{margin-block-end:0px;}.elementor-97 .elementor-element.elementor-element-abdb3ba{color:var( --e-global-color-44ce1758 );}.elementor-97 .elementor-element.elementor-element-10d6880{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;border-style:solid;--border-style:solid;border-width:1px 0px 0px 0px;--border-top-width:1px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:var( --e-global-color-2623ebe );--border-color:var( --e-global-color-2623ebe );--margin-top:23px;--margin-bottom:23px;--margin-left:23px;--margin-right:23px;--padding-top:18px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-97 .elementor-element.elementor-element-5382689{--display:flex;}.elementor-97 .elementor-element.elementor-element-3e6dcb7{font-family:"Nunito Sans", Sans-serif;font-size:13px;font-weight:400;color:var( --e-global-color-2623ebe );}.elementor-97 .elementor-element.elementor-element-f78e6d6{--display:flex;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-97 .elementor-element.elementor-element-a327100{font-family:"Nunito Sans", Sans-serif;font-size:13px;font-weight:400;color:var( --e-global-color-2623ebe );}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:1024px){.elementor-97 .elementor-element.elementor-element-14a4955{--e-con-grid-template-columns:repeat(2, 1fr);--grid-auto-flow:row;}}@media(max-width:767px){.elementor-97 .elementor-element.elementor-element-a09551f{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-97 .elementor-element.elementor-element-49b4324{--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-97 .elementor-element.elementor-element-14a4955{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-97 .elementor-element.elementor-element-10d6880{--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}}/* Start custom CSS *//* ==========================================================================
   CRC PLUMBING — FOOTER CSS

   Paste into: Elementor → Templates → Theme Builder → Footer (97) →
   Settings (the gear, bottom-left of the panel) → Advanced → Custom CSS.

   NOT Site Settings. Stylesheets load in this order:

     post-169.css   Site Settings custom CSS
     post-295.css   the homepage
     post-113.css   the header
     post-97.css    the footer  ← Elementor's per-widget footer rules

   Site-level CSS therefore loads BEFORE the footer's widget rules, so any
   tie on specificity goes to Elementor. Custom CSS entered on the Footer
   template itself is appended to the end of post-97.css, where it wins those
   ties instead. That's the whole reason this is a separate file.

   Classes to add first — see CRC-footer-fixes.md.

   FOOTER TOP PADDING: now that the wave lives on #crc-area instead of here,
   drop the footer's top padding from 128 back to 72. The extra 56 was room
   for the wave.
   ========================================================================== */


/* ==========================================================================
   1. ROOT — wave, caustics, base text
   Background colour and padding stay in the panel.
   ========================================================================== */

.crc-footer {
  position: relative;
  isolation: isolate;
}

/* Caustic wash. Weaker than the hero's — it sits behind text here, not
   beside it. isolation:isolate above makes .crc-footer a stacking context, so
   this z-index:-1 layer paints above the panel background and below content. */
.crc-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(60ch 40ch at 88% -20%, rgba(46,143,191,.28), transparent 62%),
    radial-gradient(52ch 36ch at 2% 108%,  rgba(46,143,191,.16), transparent 70%);
}

/* NO WAVE HERE ANY MORE.

   I painted this wave twice and got the colour wrong both times, because a
   top-edge wave has to match the section ABOVE it and the Service Area tint
   kept moving. The join is now handled from the other side: #crc-area carries
   .crc-wave-bottom .crc-wave-bottom--navy, which paints navy-deep down into
   itself. Navy-deep is fixed, so that join can't drift again.

   See CRC-audit.md for the two-minute change. */

.crc-footer > .e-con-inner {
  position: relative;
  z-index: 2;
}

/* Base body colour for the whole subtree. Written at 0-3-0 so it ties with
   Elementor's per-widget colour rules and wins on source order. */
.elementor-97 .crc-footer :is(p, li, address, div) {
  color: var(--crc-footer-ink);
}
.elementor-97 .crc-footer :is(p, address) {
  margin: 0;
  line-height: 1.65;
}


/* ==========================================================================
   2. CTA STRIP
   ========================================================================== */

.elementor-97 .crc-footer .crc-footer__cta {
  background-color: rgba(255,255,255,.06);
  border: 1px solid rgba(207,224,234,.18);
  /* Padding lives HERE now, breaking my own "padding belongs in the panel"
     rule — deliberately. This is the third time the panel step for this
     container has gone missing (the class moved containers twice), and a
     rule that depends on a manual step in another tool isn't a rule, it's
     a hope. */
  padding: 26px 32px;
  gap: 24px;
  /* The one squared corner on the site. Once you strip crc-droplet off the
     six service cards (see the audit), this is the only place it appears —
     which is the only way it reads as intentional rather than broken. */
  border-radius: var(--crc-radius) var(--crc-radius) var(--crc-radius) 4px;
}

/* Doubled classes on purpose. The heading carries a Global Colour from the
   widget panel, which Elementor writes at the same specificity as a normal
   rule here (0-4-0) — so WHERE this file is pasted decides who wins. In the
   Footer template it wins on source order; in Site Settings it loads first
   and loses, and the heading renders navy-on-navy. Doubling to 0-6-0 makes
   the white win from either location instead of depending on the paste
   being in the right box. */
.elementor-97 .crc-footer .crc-footer__cta.crc-footer__cta .elementor-heading-title.elementor-heading-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--crc-white);
  margin: 0 0 4px;
}
.elementor-97 .crc-footer .crc-footer__cta p {
  font-size: .92rem;
}


/* ==========================================================================
   3. BUTTONS ON A DARK BACKGROUND

   The global ghost button is navy text on a navy border. On the navy footer
   that's invisible. Both CTA buttons are GLOBAL widgets shared with the hero,
   so their classes can't be changed here without changing the hero too —
   this repaints them for the dark context instead.
   ========================================================================== */

/* 0-6-0, to beat the global widget's own per-widget colour rules (0-5-0).
   See the long note in crc-site.css section 4 — clearing those panel values
   is the real fix and lets this drop back to something sane. */
.elementor-97 .crc-footer .crc-btn-ghost.crc-btn-ghost .elementor-button.elementor-button {
  color: var(--crc-white);
  border-color: rgba(255,255,255,.55);
  background-color: transparent;
}
.elementor-97 .crc-footer .crc-btn-ghost.crc-btn-ghost .elementor-button.elementor-button:hover,
.elementor-97 .crc-footer .crc-btn-ghost.crc-btn-ghost .elementor-button.elementor-button:focus {
  color: var(--crc-white);
}
/* The rising fill goes water blue rather than navy — navy on navy reads as
   nothing happening. */
.elementor-97 .crc-footer .crc-btn-fill .elementor-button::before {
  background: var(--crc-water);
}

.elementor-97 .crc-footer .elementor-button {
  padding: 14px 26px;
  font-size: 1rem;
  font-weight: 700;
  border-radius: var(--crc-pill);
  line-height: 1.2;
  white-space: nowrap;
}


/* ==========================================================================
   4. COLUMNS

   Elementor's grid control only does equal columns. The brand column carries
   a paragraph and the others carry short lists, so equal quarters leaves the
   blurb cramped and the link columns half empty. These ratios need CSS.

   Written at 0-3-0 to beat the widget's own --e-con-grid-template-columns.
   ========================================================================== */

@media (min-width: 1025px) {
  .elementor-97 .crc-footer .crc-footer__cols {
    --e-con-grid-template-columns: 1.7fr 1fr 1fr 1.2fr;
  }
}

/* Column labels. Small and lettered rather than big and bold — these are
   labels, not section titles, and the footer shouldn't shout over the page. */
.elementor-97 .crc-footer .crc-footer__heading .elementor-heading-title {
  font-family: "Poppins", sans-serif;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--crc-water-200);
  margin: 0 0 18px;
}


/* ==========================================================================
   5. BRAND COLUMN
   ========================================================================== */

.elementor-97 .crc-footer .crc-footer__brand .elementor-heading-title {
  font-family: "Poppins", sans-serif;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--crc-white);
  margin: 0 0 12px;
}

.elementor-97 .crc-footer .crc-footer__blurb {
  max-width: 34ch;
  margin: 0 0 22px;
}

/* Trust chips. Works for the HTML widget's <span>s and for an Icon List set
   to Inline, so it survives the swap to a proper widget. */
.crc-footer__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.crc-footer__badges span,
.crc-footer__badges .elementor-icon-list-item {
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--crc-water-200);
  border: 1px solid rgba(207,224,234,.28);
  border-radius: var(--crc-pill);
  padding: 6px 13px;
}
/* An empty wrapper left over from the mockup paste renders as a bare pill.
   Delete it from the widget (see the fixes doc); this hides it meanwhile. */
.crc-footer__badges:empty,
.crc-footer__badges:not(:has(span, li)) { display: none; }

.elementor-97 .crc-footer .crc-footer__social .elementor-social-icon {
  width: 40px;
  height: 40px;
  background-color: rgba(255,255,255,.08);
  border: 1px solid rgba(207,224,234,.2);
  transition: background-color var(--crc-t), border-color var(--crc-t),
              transform var(--crc-t);
}
.elementor-97 .crc-footer .crc-footer__social .elementor-social-icon svg {
  width: 17px;
  height: 17px;
  fill: var(--crc-white);
}
.elementor-97 .crc-footer .crc-footer__social .elementor-social-icon:hover {
  background-color: var(--crc-water);
  border-color: var(--crc-water);
  transform: translateY(-2px);
}


/* ==========================================================================
   6. LINK LISTS
   The water underline from the homepage body links, reused.

   Covers three shapes, because the columns are currently <br>-separated text
   and should become Icon Lists of real links:
     .crc-footer__links p        the <br> version (works, but not links)
     .crc-footer__links li       an Icon List
     .crc-footer__links a        either
   ========================================================================== */

.elementor-97 .crc-footer .crc-footer__links p {
  line-height: 2.05;
}
.elementor-97 .crc-footer .crc-footer__links .elementor-icon-list-items {
  display: grid;
  gap: 11px;
}

.crc-footer__links a {
  color: var(--crc-footer-ink);
  text-decoration: none;
  background-image: linear-gradient(var(--crc-water), var(--crc-water));
  background-size: 0% 2px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  padding-bottom: 2px;
  transition: background-size var(--crc-t), color var(--crc-t);
}
.crc-footer__links a:hover {
  background-size: 100% 2px;
  color: var(--crc-white);
}


/* ==========================================================================
   7. CONTACT COLUMN
   ========================================================================== */

/* The phone number is the loudest thing down here on purpose: anyone who
   scrolled this far didn't find what they wanted higher up. */
.elementor-97 .crc-footer .crc-footer__phone :is(h1, h2, h3, h4, p, div),
.elementor-97 .crc-footer .crc-footer__phone a {
  font-family: "Poppins", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--crc-white);
  text-decoration: none;
  margin: 0 0 6px;
}
.elementor-97 .crc-footer .crc-footer__phone a:hover {
  color: var(--crc-water-200);
}

.elementor-97 .crc-footer address {
  font-style: normal;
  margin-top: 10px;
}

/* Open-now dot. A live indicator earns its place here because the business
   genuinely is 24/7 per your own opening-hours schema — it reports a fact
   rather than decorating one. Remove it if that ever stops being true. */
.elementor-97 .crc-footer .crc-footer__hours :is(p, div) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  font-size: .86rem;
  font-weight: 700;
  color: var(--crc-white);
}
.elementor-97 .crc-footer .crc-footer__hours :is(p, div)::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #3FBF7F;
  box-shadow: 0 0 0 4px rgba(63,191,127,.22);
  flex: none;
}


/* ==========================================================================
   8. BOTTOM BAR
   ========================================================================== */

.elementor-97 .crc-footer .crc-footer__bar {
  border-top: 1px solid rgba(207,224,234,.16);
}
.elementor-97 .crc-footer .crc-footer__bar :is(p, div, a) {
  font-size: .83rem;
  color: #93A6BA;
}
.elementor-97 .crc-footer .crc-footer__bar a {
  text-decoration: none;
  transition: color var(--crc-t);
}
.elementor-97 .crc-footer .crc-footer__bar a:hover {
  color: var(--crc-white);
}


/* ==========================================================================
   9. MOBILE
   ========================================================================== */

@media (max-width: 767px) {
  /* crc-quiet-mobile paints navy text on a navy border — correct on the white
     hero, invisible on the navy footer. Repaint it light. */
  .elementor-97 .crc-footer .crc-quiet-mobile.crc-quiet-mobile .elementor-button.elementor-button {
    color: var(--crc-white);
    border-color: rgba(255,255,255,.55);
    background-color: transparent;
  }

  .elementor-97 .crc-footer .elementor-button {
    width: 100%;
    justify-content: center;
  }

  .elementor-97 .crc-footer .crc-footer__blurb { max-width: none; }

  .elementor-97 .crc-footer .crc-footer__cta {
    padding: 22px 20px;
  }
}/* End custom CSS */