/*
Theme Name: SSC Theme
Theme URI: https://www.seattlesurfacecleaners.com
Description: Seattle Surface Cleaners custom theme based on Kadence
Author: Seattle Surface Cleaners
Template: kadence
Version: 1.0.0
Text Domain: ssc-theme
*/

/* ==========================================================================
   SSC Theme — Custom Styles for Kadence Child Theme
   Direction A: Pacific Northwest Professional

   Design: Grounded, trustworthy, refined aesthetic inspired by the PNW.
   Color palette:
     --ssc-teal:       #1B3A4B  (deep blue-teal, primary)
     --ssc-teal-mid:   #2C5F6E  (mid teal, links/accents)
     --ssc-teal-light: #E8F0F2  (light teal, subtle backgrounds)
     --ssc-body:       #2D2D2D  (body text)
     --ssc-gold:       #C8973E  (accent gold, badges)
     --ssc-cta-orange: #C8973E  (gold CTA, buttons/accents)
     --ssc-light-gray: #F5F3EF  (warm off-white backgrounds)
     --ssc-mid-gray:   #D1D1D1  (borders)
     --ssc-dark-gray:  #5A5A5A  (secondary text)
   ========================================================================== */

/* Google Fonts — loaded via functions.php <link> tag (not @import) for performance.
   Heading: Barlow (600-800) | Body: Source Sans 3 (400-700) */

/* ---------------------------------------------------------------------------
   1. CSS Custom Properties (Design Tokens)
   --------------------------------------------------------------------------- */

:root {
  /* Primary palette — PNW Professional */
  --ssc-teal: #1B3A4B;
  --ssc-teal-mid: #2C5F6E;
  --ssc-teal-light: #E8F0F2;
  --ssc-body: #2D2D2D;
  --ssc-gold: #C8973E;
  --ssc-gold-text: #8A6B2A;
  --ssc-blue: #2C5F6E;
  --ssc-cta-orange: #C8973E;
  --ssc-cta-orange-hover: #A87A30;

  /* Neutrals */
  --ssc-white: #FFFFFF;
  --ssc-light-gray: #F5F3EF;
  --ssc-mid-gray: #B8B8B8;
  --ssc-dark-gray: #5A5A5A;

  /* Typography */
  --ssc-font-body: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ssc-font-heading: 'Barlow', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ssc-heading-font: var(--ssc-font-heading);
  --ssc-font-size-base: 16px;

  /* Heading color alias (referenced by some rules) */
  --ssc-heading: var(--ssc-teal);

  /* Spacing */
  --ssc-section-padding: 72px 0;
  --ssc-section-padding-lg: 96px 0;
  --ssc-content-max-width: 1200px;
  --ssc-gutter: 30px;

  /* Transitions */
  --ssc-transition: 200ms ease;

  /* Shadows — only two */
  --ssc-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.06);
  --ssc-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.10);

  /* Border Radius — three standardised values (sharp for industrial feel) */
  --ssc-radius-sm: 4px;
  --ssc-radius-md: 6px;
  --ssc-radius-lg: 8px;
}

/* ---------------------------------------------------------------------------
   2. Base / Reset
   --------------------------------------------------------------------------- */

html {
  font-family: var(--ssc-font-body);
}

body {
  font-family: var(--ssc-font-body);
  font-size: var(--ssc-font-size-base);
  font-weight: 400;
  line-height: 1.65;
  color: var(--ssc-body);
  background-color: var(--ssc-light-gray);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---------------------------------------------------------------------------
   3. Typography
   --------------------------------------------------------------------------- */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ssc-font-heading);
  font-weight: 700;
  color: var(--ssc-teal);
  line-height: 1.15;
  margin-top: 0;
}

h1 {
  font-size: 42px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 24px;
}

h2 {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: 20px;
}

h3 {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 16px;
}

h4 {
  font-size: 18px;
  line-height: 1.3;
  margin-bottom: 14px;
}

h5 {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 10px;
}

h6 {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 10px;
}

p {
  margin-bottom: 1.2em;
}

/* Collapse empty paragraphs WordPress inserts between shortcode/HTML blocks */
.entry-content > p:empty,
.entry-content-wrap > p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  font-size: 0 !important;
}

/* Also collapse <p><br></p> (wpautop inserts these at start/end of content) */
.entry-content > p:has(> br:only-child),
.entry-content-wrap > p:has(> br:only-child) {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

a {
  color: var(--ssc-teal-mid);
  text-decoration: none;
  transition: color var(--ssc-transition);
}

a:hover,
a:focus {
  color: var(--ssc-teal);
}

/* ---------------------------------------------------------------------------
   4. Header / Navigation
   --------------------------------------------------------------------------- */

/* Teal header background — matches production */
.site-header {
  background-color: var(--ssc-teal) !important;
}

/* Transparent header row */
.site-header .site-header-row-container-inner {
  background-color: transparent;
}

/* Hide the empty Kadence top header row (announcement bar is via functions.php) */
.site-header .site-top-header-wrap {
  display: none !important;
}

/* Site title text — white on dark header, sized to match production */
.site-header .site-branding .site-title,
.site-header .site-branding .site-title a {
  color: var(--ssc-white) !important;
  font-family: var(--ssc-font-heading);
  font-weight: 700;
  font-size: 20px !important;
  letter-spacing: 3px;
  text-transform: uppercase;
}

/* Top announcement bar — warm orange bar with tagline (rendered via functions.php) */
.ssc-announcement-bar {
  background-color: var(--ssc-cta-orange);
  color: var(--ssc-white);
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  padding: 8px 20px;
  line-height: 1.4;
  position: relative;
  z-index: 100;
}

.ssc-announcement-bar__inner {
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
}

.ssc-announcement-bar a {
  color: var(--ssc-white) !important;
  font-weight: 700;
  text-decoration: underline;
}

.ssc-announcement-bar a:hover {
  color: var(--ssc-light-gray) !important;
}

/* Also style Kadence's top header row if it becomes visible */
.site-top-header-wrap .site-header-row-container-inner {
  background-color: var(--ssc-cta-orange) !important;
}

/* Main header row — !important to override Kadence customizer inline styles */
.site-header .site-main-header-wrap {
  background-color: var(--ssc-teal) !important;
}

/* Kadence main header inner container — ensure teal background, no FOUC */
.site-header .site-main-header-wrap .site-header-row-container-inner {
  background-color: var(--ssc-teal) !important;
}

/* Logo — larger than production for better readability */
.site-header .site-branding img,
.site-header .site-branding a.brand img {
  max-height: 110px;
  width: auto;
  max-width: 384px !important;
}

/* Mobile logo — proportionally scaled for readability */
@media (max-width: 768px) {
  .site-header .site-branding img,
  .site-header .site-branding a.brand img,
  .mobile-site-branding img {
    max-height: 80px;
    max-width: 280px !important;
  }
}

/* Navigation links — override Kadence defaults with high specificity */
.site-header .header-navigation nav ul li a,
.site-header .header-navigation .header-menu-container ul li a,
.site-header .site-main-header-wrap nav ul li a,
#masthead nav ul li a,
.site-header .primary-menu > li > a,
.site-header nav:not(.mobile-navigation) ul > li > a {
  color: var(--ssc-white) !important;
  font-family: var(--ssc-font-body);
  font-size: 14px;
  font-weight: 500;
  text-transform: none;
  padding: 10px 15px;
  transition: color var(--ssc-transition);
}

.site-header .header-navigation nav ul li a:hover,
.site-header .header-navigation nav ul li.current-menu-item a,
.site-header .site-main-header-wrap nav ul li a:hover,
#masthead nav ul li a:hover,
.site-header .primary-menu > li > a:hover,
.site-header nav:not(.mobile-navigation) ul > li > a:hover,
.site-header .header-navigation nav ul li.current-menu-item > a,
.site-header nav ul li.current-menu-item > a {
  color: var(--ssc-white) !important;
  text-decoration: underline;
  text-decoration-color: var(--ssc-teal-mid);
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
}

/* Dropdown menus */
.site-header .header-navigation nav ul ul {
  background-color: var(--ssc-teal);
  border: none;
  box-shadow: var(--ssc-shadow-md);
  border-radius: var(--ssc-radius-sm);
}

.site-header .header-navigation nav ul ul li a {
  color: var(--ssc-white);
  font-size: 13px;
  padding: 8px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.site-header .header-navigation nav ul ul li a:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--ssc-white);
}

/* Header CTA button (Contact Us) — high specificity override */
.site-header .header-button a,
.site-header .header-navigation nav ul li.menu-item-has-cta > a,
#masthead .header-button a,
.site-header .header-button .button,
.site-header .header-button-wrap a {
  background-color: var(--ssc-cta-orange) !important;
  color: var(--ssc-white) !important;
  font-family: var(--ssc-font-body);
  font-weight: 600;
  padding: 10px 24px !important;
  border-radius: var(--ssc-radius-sm) !important;
  transition: background-color var(--ssc-transition);
  text-decoration: none;
  font-size: 14px;
  letter-spacing: 0.5px;
}

.site-header .header-button a:hover,
.site-header .header-navigation nav ul li.menu-item-has-cta > a:hover,
#masthead .header-button a:hover,
.site-header .header-button-wrap a:hover {
  background-color: var(--ssc-cta-orange-hover) !important;
  color: var(--ssc-white) !important;
}

/* Sticky header */
.item-is-fixed:not(.item-at-start):not(.site-header-row-container) .site-header,
#masthead.kadence-sticky-header.item-is-stuck {
  background-color: var(--ssc-teal) !important;
  box-shadow: var(--ssc-shadow-md);
}

/* ---------------------------------------------------------------------------
   5. Mobile Navigation
   --------------------------------------------------------------------------- */

/* Hamburger toggle */
.site-header .menu-toggle-open {
  color: var(--ssc-white);
}

/* Mobile drawer */
.mobile-navigation-container {
  background-color: var(--ssc-body);
}

.mobile-navigation-container nav ul li a {
  color: var(--ssc-white);
  font-size: 16px;
  padding: 12px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.mobile-navigation-container nav ul li a:hover {
  color: var(--ssc-gold);
}

/* Mobile sub-menu toggle */
.mobile-navigation-container .drawer-sub-toggle {
  color: var(--ssc-white);
  border-left: 1px solid rgba(255, 255, 255, 0.08);
}

/* ---------------------------------------------------------------------------
   6. Hero Sections
   --------------------------------------------------------------------------- */

/* Generic hero/banner section — used on all pages */
.ssc-hero,
.wp-block-cover.ssc-page-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  padding: 80px 20px;
  text-align: center;
  background-color: var(--ssc-teal);
  background-size: cover;
  background-position: center;
}

.ssc-hero::before,
.wp-block-cover.ssc-page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(27, 58, 75, 0.75) 0%,
    rgba(27, 58, 75, 0.60) 100%
  );
  z-index: 1;
}

.ssc-hero .ssc-hero-content,
.ssc-hero .ssc-row,
.wp-block-cover.ssc-page-hero .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
}

.ssc-hero h1,
.wp-block-cover.ssc-page-hero h1 {
  color: var(--ssc-white);
  font-size: 48px;
  letter-spacing: -0.02em;
  margin-bottom: 20px;
}

.ssc-hero h2,
.ssc-hero p,
.wp-block-cover.ssc-page-hero h2,
.wp-block-cover.ssc-page-hero p {
  color: var(--ssc-white);
}

.ssc-hero p.ssc-hero-subtitle {
  font-size: 18px;
  font-weight: 400;
  max-width: 700px;
  margin: 0 auto 32px;
  line-height: 1.6;
  opacity: 0.9;
}

/* Hero tagline — small uppercase text above the main heading */
.ssc-hero .ssc-hero-tagline {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--ssc-gold);
  margin-bottom: 16px;
  opacity: 0.95;
}

/* Hero text shadow for readability on background images */
.ssc-hero h1,
.ssc-hero h2,
.ssc-hero p,
.ssc-hero .ssc-hero-content h1,
.ssc-hero .ssc-hero-content p,
.ssc-hero .ssc-row h1,
.ssc-hero .ssc-row p {
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4), 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* Ensure hero text is bright white */
.ssc-hero h1,
.ssc-hero .ssc-hero-content h1,
.ssc-hero .ssc-row h1 {
  color: #ffffff !important;
  font-weight: 700;
}

.ssc-hero p,
.ssc-hero .ssc-hero-content p {
  color: rgba(255, 255, 255, 0.95) !important;
}

/* Homepage hero — taller with generous spacing */
.home .ssc-hero,
.ssc-hero--home {
  min-height: 520px;
  padding: 100px 40px;
}

/* Hero dual CTA buttons — side by side */
.ssc-hero-ctas {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 30px;
}

/* White outline button for phone CTA in hero */
.ssc-btn--outline-white {
  display: inline-block;
  padding: 14px 32px;
  font-size: 16px;
  font-weight: 600;
  font-family: var(--ssc-font-body);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #ffffff;
  background: transparent;
  border: 2px solid rgba(255, 255, 255, 0.8);
  border-radius: var(--ssc-radius-sm);
  text-decoration: none;
  transition: color var(--ssc-transition), background-color var(--ssc-transition), border-color var(--ssc-transition);
  cursor: pointer;
}

.ssc-btn--outline-white:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #ffffff;
  color: #ffffff;
}

/* Hero trust bar — badge + trust items */
.ssc-hero-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 10px;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.ssc-hero-trust-badge img {
  width: 100px;
  height: 100px;
  object-fit: contain;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}

.ssc-hero-trust-items {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: left;
}

.ssc-hero-trust-item {
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

.ssc-hero-trust-stars {
  color: var(--ssc-gold);
  font-size: 18px;
  letter-spacing: 2px;
  margin-right: 6px;
}

/* Service page hero — medium height with title overlay */
.ssc-hero--service {
  min-height: 300px;
  text-align: left;
}

.ssc-hero--service h1 {
  font-size: 42px;
}

.ssc-hero--service .ssc-hero-subtitle {
  margin-left: 0;
}

/* ---------------------------------------------------------------------------
   7. Buttons / CTAs
   --------------------------------------------------------------------------- */

/* Primary button — orange bg, white text, rounded corners */
.wp-block-button__link,
.wp-element-button,
.ssc-btn,
.kadence-form .kb-submit-field .kb-forms-submit {
  background-color: var(--ssc-cta-orange) !important;
  color: var(--ssc-white) !important;
  border: 2px solid var(--ssc-cta-orange) !important;
  border-radius: var(--ssc-radius-sm) !important;
  font-family: var(--ssc-font-body);
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 14px 30px !important;
  cursor: pointer;
  transition: color var(--ssc-transition), background-color var(--ssc-transition), border-color var(--ssc-transition);
  display: inline-block;
  text-decoration: none;
}

.wp-block-button__link:hover,
.wp-element-button:hover,
.ssc-btn:hover,
.kadence-form .kb-submit-field .kb-forms-submit:hover {
  background-color: var(--ssc-cta-orange-hover) !important;
  border-color: var(--ssc-cta-orange-hover) !important;
  color: var(--ssc-white) !important;
}

/* Secondary button — outlined teal */
.wp-block-button.is-style-outline .wp-block-button__link,
.ssc-btn--outline {
  background-color: transparent !important;
  color: var(--ssc-teal) !important;
  border: 2px solid var(--ssc-teal) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.ssc-btn--outline:hover {
  background-color: var(--ssc-teal) !important;
  color: var(--ssc-white) !important;
}

/* White button — for use on dark backgrounds */
.ssc-btn--white,
.has-ssc-teal-background-color .wp-block-button__link {
  background-color: var(--ssc-white) !important;
  color: var(--ssc-teal) !important;
  border-color: var(--ssc-white) !important;
}

.ssc-btn--white:hover,
.has-ssc-teal-background-color .wp-block-button__link:hover {
  background-color: var(--ssc-light-gray) !important;
  color: var(--ssc-teal) !important;
  border-color: var(--ssc-light-gray) !important;
}

/* Gold/CTA button — accessible: gold border + teal text on white bg */
.ssc-btn--gold {
  background-color: var(--ssc-white) !important;
  color: var(--ssc-teal) !important;
  border: 2px solid var(--ssc-gold-text) !important;
}

.ssc-btn--gold:hover {
  background-color: var(--ssc-gold-text) !important;
  color: var(--ssc-white) !important;
  border-color: var(--ssc-gold-text) !important;
}

/* ---------------------------------------------------------------------------
   8. Content Sections
   --------------------------------------------------------------------------- */

/* Row/column grid system — used by page template output */
.ssc-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ssc-gutter);
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

/* Fractional column widths */
.ssc-col { flex: 1 1 0; min-width: 0; }
.ssc-col-4-4 { flex: 0 0 100%; max-width: 100%; }
.ssc-col-1-2 { flex: 0 0 calc(50% - var(--ssc-gutter) / 2); max-width: calc(50% - var(--ssc-gutter) / 2); }
.ssc-col-1-3 { flex: 0 0 calc(33.333% - var(--ssc-gutter) * 2 / 3); max-width: calc(33.333% - var(--ssc-gutter) * 2 / 3); }
.ssc-col-2-3 { flex: 0 0 calc(66.666% - var(--ssc-gutter) / 3); max-width: calc(66.666% - var(--ssc-gutter) / 3); }
.ssc-col-1-4 { flex: 0 0 calc(25% - var(--ssc-gutter) * 3 / 4); max-width: calc(25% - var(--ssc-gutter) * 3 / 4); }
.ssc-col-3-4 { flex: 0 0 calc(75% - var(--ssc-gutter) / 4); max-width: calc(75% - var(--ssc-gutter) / 4); }
.ssc-col-1-5 { flex: 0 0 calc(20% - var(--ssc-gutter) * 4 / 5); max-width: calc(20% - var(--ssc-gutter) * 4 / 5); }
.ssc-col-2-5 { flex: 0 0 calc(40% - var(--ssc-gutter) * 3 / 5); max-width: calc(40% - var(--ssc-gutter) * 3 / 5); }
.ssc-col-3-5 { flex: 0 0 calc(60% - var(--ssc-gutter) * 2 / 5); max-width: calc(60% - var(--ssc-gutter) * 2 / 5); }

/* Responsive: stack columns on mobile */
@media (max-width: 768px) {
  .ssc-row {
    flex-direction: column;
  }
  .ssc-col-1-2,
  .ssc-col-1-3,
  .ssc-col-2-3,
  .ssc-col-1-4,
  .ssc-col-3-4,
  .ssc-col-1-5,
  .ssc-col-2-5,
  .ssc-col-3-5 {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* Images within columns */
.ssc-row img {
  max-width: 100%;
  height: auto;
}

/* Full-width section with vertical padding */
.ssc-section {
  padding: var(--ssc-section-padding);
}

/* Center section-level headings (direct children only).
   H2s nested inside .ssc-row > .ssc-col remain left-aligned for
   long-form content readability. */
.ssc-section > h2 {
  text-align: center;
}

/* Center H2s inside full-width columns (4-of-4).
   These are nested 3 levels deep: .ssc-section > .ssc-row > .ssc-col-4-4 > h2
   so the direct-child selector above doesn't reach them.
   Half-width columns (.ssc-col-1-2) stay left-aligned for 2-column layouts. */
.ssc-col-4-4 > h2 {
  text-align: center;
}

.ssc-section--lg {
  padding: var(--ssc-section-padding-lg);
}

/* Background color variants */
.ssc-section--white,
.has-ssc-white-background-color {
  background-color: var(--ssc-white);
}

.ssc-section--light,
.has-ssc-light-gray-background-color {
  background-color: var(--ssc-light-gray);
}

.ssc-section--muted {
  background-color: var(--ssc-light-gray);
}

.ssc-section--mid,
.has-ssc-mid-gray-background-color {
  background-color: var(--ssc-mid-gray);
}

.ssc-section--teal,
.has-ssc-teal-background-color {
  background-color: var(--ssc-teal);
  color: var(--ssc-white);
}

/* Banner sections with background images */
.ssc-section--banner,
.ssc-hero {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--ssc-white);
  padding: var(--ssc-section-padding-lg);
}

/* Teal gradient overlay (via ::after so url() in CSS avoids wp_kses stripping) */
.ssc-bg-overlay-teal {
  isolation: isolate;
}
.ssc-bg-overlay-teal::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(27, 58, 75, 0.75);
  z-index: -1;
}

/* ── Background Image Classes ─────────────────────────────────────────────
   WordPress wp_kses strips url() from inline styles. These classes provide
   background-image via the stylesheet instead, which is not sanitized.
   Generated from background_image attributes across all pages.
   ───────────────────────────────────────────────────────────────────────── */
.ssc-bg-ssc-banners-7 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-7.jpg');
}
.ssc-bg-ssc-banners-18 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-18.jpg');
}
.ssc-bg-ssc-banners-4 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-4.jpg');
}
.ssc-bg-ssc-banners-14 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-14.jpg');
}
.ssc-bg-ssc-banners-6 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-6.jpg');
}
.ssc-bg-ssc-banners-13 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-13.jpg');
}
.ssc-bg-ssc-banners {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2025/02/ssc-banners.jpg');
}
.ssc-bg-ssc-banners-25 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/11/ssc-banners-25.jpg');
}
.ssc-bg-ssc-banners-17 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-17.jpg');
}
.ssc-bg-ssc-banners-1 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2025/02/ssc-banners-1.jpg');
}
.ssc-bg-ssc-banners-16 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-16.jpg');
}
.ssc-bg-ssc-banners-15 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-15.jpg');
}
.ssc-bg-ssc-banners-10 {
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/ssc-banners-10.jpg');
}

.ssc-section--banner h2,
.ssc-section--banner h3,
.ssc-section--banner p,
.ssc-hero h2,
.ssc-hero h3,
.ssc-hero p {
  color: var(--ssc-white);
}

.ssc-section--banner a {
  color: var(--ssc-gold);
}

.ssc-section--banner a:hover {
  color: var(--ssc-white);
}

.ssc-section--teal h2,
.ssc-section--teal h3,
.ssc-section--teal h4,
.ssc-section--teal p,
.has-ssc-teal-background-color h2,
.has-ssc-teal-background-color h3,
.has-ssc-teal-background-color h4,
.has-ssc-teal-background-color p {
  color: var(--ssc-white);
}

.ssc-section--teal a,
.has-ssc-teal-background-color a {
  color: var(--ssc-gold);
}

.ssc-section--teal a:hover,
.has-ssc-teal-background-color a:hover {
  color: var(--ssc-white);
}

/* Centered section titles */
.ssc-section-title {
  text-align: center;
  margin-bottom: 50px;
}

.ssc-section-title h2 {
  margin-bottom: 10px;
}

.ssc-section-title p {
  font-size: 18px;
  color: #444444;
  max-width: 700px;
  margin: 0 auto;
}

/* Content width constraint */
.ssc-content-narrow {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* ---------------------------------------------------------------------------
   9. Service Cards Grid
   --------------------------------------------------------------------------- */

.ssc-services-grid,
.ssc-service-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ssc-gutter);
  padding: 0 20px;
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
}

/* 2-column variant for 4-item grids (e.g., pain points) */
.ssc-services-grid--2col {
  grid-template-columns: repeat(2, 1fr);
}

.ssc-service-card {
  background-color: var(--ssc-white);
  border: 1px solid var(--ssc-mid-gray);
  padding: 48px 34px;
  text-align: center;
  transition: box-shadow var(--ssc-transition), transform var(--ssc-transition);
}

.ssc-service-card:hover {
  box-shadow: var(--ssc-shadow-md);
  transform: translateY(-3px);
}

.ssc-service-card h3 {
  font-size: 20px;
  margin-bottom: 12px;
}

.ssc-service-card p {
  font-size: 15px;
  color: var(--ssc-dark-gray);
  margin-bottom: 20px;
}

/* Kadence icon box overrides for service cards */
.kt-svg-icon-list-items .kt-svg-icon-list-single .kt-svg-icon-list-icon-wrap svg {
  color: var(--ssc-teal) !important;
}

/* Service card sub-components */
.ssc-service-card-icon {
  width: 60px;
  height: 60px;
  aspect-ratio: 1;
  margin: 0 auto 20px;
}

.ssc-service-card-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ssc-service-card-body {
  font-size: 15px;
  line-height: 1.5;
  color: var(--ssc-dark-gray);
}

.ssc-areas-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
  padding: 0 20px;
}

/* Hide wpautop <br> tags inside grid */
.ssc-areas-grid > br {
  display: none;
}

.ssc-area-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 20px;
  background-color: var(--ssc-white);
  border: 1px solid var(--ssc-mid-gray);
  text-decoration: none;
  color: var(--ssc-body);
  transition: box-shadow var(--ssc-transition),
              transform var(--ssc-transition),
              border-color var(--ssc-transition);
}

.ssc-area-card:hover {
  box-shadow: var(--ssc-shadow-md);
  transform: translateY(-3px);
  border-color: var(--ssc-teal);
  color: var(--ssc-body);
}

.ssc-area-card__region {
  font-family: var(--ssc-font-body);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--ssc-dark-gray);
  margin-bottom: 6px;
}

.ssc-area-card__name {
  font-family: var(--ssc-font-heading);
  font-size: 18px;
  font-weight: 700;
  color: var(--ssc-teal);
  margin: 0;
  transition: color var(--ssc-transition);
}

.ssc-area-card:hover .ssc-area-card__name {
  color: var(--ssc-gold);
}

/* Arrow indicator on hover */
.ssc-area-card__name::after {
  content: ' \2192';
  opacity: 0;
  transition: opacity var(--ssc-transition);
  color: var(--ssc-cta-orange);
}

.ssc-area-card:hover .ssc-area-card__name::after {
  opacity: 1;
}

@media (max-width: 1100px) {
  .ssc-areas-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .ssc-areas-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    padding: 0;
  }
}

/* Mobile: horizontal layout */
@media (max-width: 480px) {
  .ssc-areas-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .ssc-area-card {
    flex-direction: row;
    padding: 16px 20px;
    gap: 12px;
    text-align: left;
  }

  .ssc-area-card__region {
    display: none;
  }

  .ssc-area-card__name {
    text-align: left;
  }
}

/* ---------------------------------------------------------------------------
   9b. Blurbs (Feature Lists, Bullet Testimonials, Descriptions)
   --------------------------------------------------------------------------- */

.ssc-blurb {
  padding: 28px 34px;
  margin-bottom: 24px;
  border-left: 4px solid var(--ssc-teal);
  background-color: var(--ssc-light-gray);
  border-radius: 0 var(--ssc-radius-sm) var(--ssc-radius-sm) 0;
}

.ssc-blurb-title {
  font-family: var(--ssc-font-heading);
  font-size: 18px;
  font-weight: 700;
  color: var(--ssc-teal);
  margin: 0 0 8px;
}

.ssc-blurb-body {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ssc-body);
}

/* Blurb inside teal section — invert colors */
.ssc-section--teal .ssc-blurb {
  background-color: rgba(255, 255, 255, 0.1);
  border-left-color: var(--ssc-gold);
}

.ssc-section--teal .ssc-blurb-title {
  color: var(--ssc-gold);
}

.ssc-section--teal .ssc-blurb-body {
  color: var(--ssc-white);
}

/* ---------------------------------------------------------------------------
   9c. Video Wrapper (Responsive Embeds)
   --------------------------------------------------------------------------- */

.ssc-video-wrapper {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
  max-width: 100%;
  margin: 20px 0;
  border-radius: var(--ssc-radius-sm);
  box-shadow: var(--ssc-shadow-md);
}

.ssc-video-wrapper iframe,
.ssc-video-wrapper video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ---------------------------------------------------------------------------
   9d. Slider / Static Content Blocks
   --------------------------------------------------------------------------- */

.ssc-slider-static {
  background-color: var(--ssc-light-gray);
  padding: 40px;
  border-radius: var(--ssc-radius-sm);
}

.ssc-slider-body {
  font-size: 15px;
  line-height: 1.7;
}

.ssc-slider-body ul {
  list-style: none;
  padding: 0;
}

.ssc-slider-body li {
  padding: 8px 0 8px 28px;
  position: relative;
  border-bottom: 1px solid var(--ssc-mid-gray);
}

.ssc-slider-body li:last-child {
  border-bottom: none;
}

.ssc-slider-body li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--ssc-teal);
  font-weight: 700;
}

/* ---------------------------------------------------------------------------
   9e. Hotspot Grid (Service Type Selector)
   --------------------------------------------------------------------------- */

.ssc-hotspot-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ssc-gutter);
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
}

.ssc-hotspot-item {
  background-color: var(--ssc-white);
  border: 1px solid var(--ssc-mid-gray);
  padding: 30px 25px;
  text-align: center;
  transition: border-color var(--ssc-transition), box-shadow var(--ssc-transition), transform var(--ssc-transition);
  cursor: pointer;
}

.ssc-hotspot-item:hover {
  border-color: var(--ssc-teal);
  box-shadow: var(--ssc-shadow-md);
  transform: translateY(-2px);
}

.ssc-hotspot-item h3 {
  font-size: 18px;
  color: var(--ssc-teal);
  margin-bottom: 10px;
}

.ssc-hotspot-desc {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ssc-dark-gray);
  margin-top: 10px;
}

/* ---------------------------------------------------------------------------
   9f. Before / After Comparison
   --------------------------------------------------------------------------- */

.ssc-before-after {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ssc-gutter);
  margin: 30px 0;
}

.ssc-before,
.ssc-after {
  overflow: hidden;
  border-radius: var(--ssc-radius-sm);
  box-shadow: var(--ssc-shadow-sm);
}

.ssc-before figure,
.ssc-after figure {
  margin: 0;
}

.ssc-before img,
.ssc-after img {
  width: 100%;
  height: auto;
  display: block;
}

.ssc-before figcaption,
.ssc-after figcaption {
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
}

.ssc-before figcaption {
  background-color: var(--ssc-mid-gray);
  color: var(--ssc-body);
}

.ssc-after figcaption {
  background-color: var(--ssc-teal);
  color: var(--ssc-white);
}

/* ---------------------------------------------------------------------------
   9g. Partner Logos
   --------------------------------------------------------------------------- */

.ssc-partner-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 40px;
  max-width: var(--ssc-content-max-width);
  margin: 30px auto 0;
}

.ssc-partner-logo {
  display: inline-block;
}

.ssc-partner-logo img {
  max-height: 60px;
  width: auto;
  filter: grayscale(100%);
  opacity: 0.6;
  transition: filter var(--ssc-transition), opacity var(--ssc-transition);
}

.ssc-partner-logo:hover img {
  filter: grayscale(0%);
  opacity: 1;
}

/* ---------------------------------------------------------------------------
   9h. Button Grid
   --------------------------------------------------------------------------- */

.ssc-button-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: center;
  margin: 20px 0;
}

/* ---------------------------------------------------------------------------
   9i. Responsive Overrides for New Components
   --------------------------------------------------------------------------- */

@media (max-width: 768px) {
  .ssc-hotspot-grid {
    grid-template-columns: 1fr;
  }

  .ssc-before-after {
    grid-template-columns: 1fr;
  }

  .ssc-blurb {
    padding: 20px;
  }

  .ssc-slider-static {
    padding: 25px;
  }
}

/* ---------------------------------------------------------------------------
   10. Testimonials
   --------------------------------------------------------------------------- */

.ssc-testimonial {
  background-color: var(--ssc-light-gray);
  padding: 36px;
  border-left: 4px solid var(--ssc-teal);
  margin-bottom: 24px;
}

.ssc-testimonial blockquote,
.ssc-testimonial .wp-block-quote {
  border-left: none;
  padding-left: 0;
  margin: 0;
  font-style: italic;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ssc-body);
}

.ssc-testimonial cite,
.ssc-testimonial .wp-block-quote cite {
  display: block;
  margin-top: 15px;
  font-style: normal;
  font-weight: 700;
  font-size: 14px;
  color: var(--ssc-teal);
}

/* Star Ratings */
.ssc-stars {
  color: var(--ssc-gold);
  font-size: 18px;
  letter-spacing: 2px;
  margin-bottom: 8px;
}

/* Testimonials Grid (multi-column) */
.ssc-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ssc-gutter);
  padding: 0 20px;
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
}

.ssc-testimonials-grid .ssc-testimonial {
  display: flex;
  flex-direction: column;
}

.ssc-testimonials-grid .ssc-testimonial blockquote {
  flex: 1;
}

/* "Why Choose Us" Value Proposition Grid */
.ssc-values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ssc-gutter);
  padding: 0 20px;
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
}

.ssc-value-card {
  text-align: center;
  padding: 36px 24px;
}

.ssc-value-card img {
  width: 60px;
  height: 60px;
  margin: 0 auto 15px;
  display: block;
  object-fit: contain;
}

.ssc-value-card h3 {
  font-size: 18px;
  margin-bottom: 0;
  color: var(--ssc-heading);
}

/* KING 5 news video feature */
.ssc-news-feature {
  display: flex;
  align-items: center;
  gap: var(--ssc-gutter);
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
  padding: 0 20px;
}

.ssc-news-feature .ssc-video-wrapper {
  flex: 1;
  margin: 0;
}

.ssc-news-feature-text {
  flex: 1;
}

.ssc-news-feature-text .ssc-news-badge {
  display: inline-block;
  background-color: var(--ssc-teal);
  color: var(--ssc-white);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 4px 12px;
  margin-bottom: 12px;
}

/* Kadence testimonial block overrides */
.wp-block-kadence-testimonials .kt-testimonial-item {
  background-color: var(--ssc-light-gray);
  border-radius: 0;
  border-left: 4px solid var(--ssc-teal);
}

/* ---------------------------------------------------------------------------
   11. Client Logos Section
   --------------------------------------------------------------------------- */

.ssc-clients {
  padding: var(--ssc-section-padding);
  text-align: center;
}

.ssc-clients-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 40px;
  max-width: var(--ssc-content-max-width);
  margin: 30px auto 0;
}

.ssc-clients-grid img {
  max-height: 60px;
  width: auto;
  filter: grayscale(100%);
  opacity: 0.6;
  transition: filter var(--ssc-transition), opacity var(--ssc-transition);
}

.ssc-clients-grid img:hover {
  filter: grayscale(0%);
  opacity: 1;
}

/* ---------------------------------------------------------------------------
   12. "How It Works" Steps
   --------------------------------------------------------------------------- */

.ssc-steps,
.ssc-process-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ssc-gutter);
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
  counter-reset: step;
}

/* Grid children should fill their tracks — remove flex-based max-width
   that calculates against the track instead of the container. */
.ssc-process-steps > .ssc-col {
  max-width: none;
}

.ssc-step {
  text-align: center;
  padding: 36px 24px;
  position: relative;
}

.ssc-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: var(--ssc-gold);
  color: var(--ssc-body);
  font-family: var(--ssc-font-heading);
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 15px;
}

.ssc-step::before {
  counter-increment: step;
  content: 'Step ' counter(step);
  display: inline-block;
  background-color: var(--ssc-teal);
  color: var(--ssc-white);
  font-family: var(--ssc-font-heading);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 8px 20px;
  margin-bottom: 20px;
}

/* Hide ::before counter when explicit .ssc-step-number is present */
.ssc-step:has(.ssc-step-number)::before {
  display: none;
}

.ssc-step h3 {
  font-size: 22px;
  margin-bottom: 10px;
}

.ssc-step p {
  font-size: 14px;
  color: var(--ssc-dark-gray);
}

/* Steps inside banner sections (teal bg) — white text */
.ssc-section--banner .ssc-step h3,
.ssc-section--teal .ssc-step h3 {
  color: var(--ssc-white);
}

.ssc-section--banner .ssc-step p,
.ssc-section--teal .ssc-step p {
  color: rgba(255, 255, 255, 0.85);
}

.ssc-section--banner .ssc-step .ssc-btn,
.ssc-section--teal .ssc-step .ssc-btn {
  background-color: var(--ssc-gold) !important;
  border-color: var(--ssc-gold) !important;
  color: var(--ssc-body) !important;
}

/* ---------------------------------------------------------------------------
   13. FAQ / Accordion
   --------------------------------------------------------------------------- */

.ssc-faq .wp-block-kadence-pane {
  border: 1px solid var(--ssc-mid-gray);
  border-radius: 0;
  margin-bottom: -1px;
}

.ssc-faq .wp-block-kadence-pane .kt-blocks-accordion-header {
  background-color: var(--ssc-white);
  color: var(--ssc-body);
  font-family: var(--ssc-font-body);
  font-size: 16px;
  font-weight: 700;
  padding: 18px 20px;
  border: none;
}

.ssc-faq .wp-block-kadence-pane .kt-blocks-accordion-header:hover {
  background-color: var(--ssc-light-gray);
}

.ssc-faq .wp-block-kadence-pane .kt-blocks-accordion-header .kt-btn-svg-icon svg {
  color: var(--ssc-teal);
}

.ssc-faq .wp-block-kadence-pane .kt-accordion-panel-inner {
  padding: 15px 20px 20px;
  font-size: 15px;
  line-height: 1.7;
}

/* Native HTML details/summary accordion — used in REST API templates */
.ssc-faq details {
  border: 1px solid var(--ssc-mid-gray);
  margin-bottom: -1px;
}

.ssc-faq details summary {
  background-color: var(--ssc-white);
  color: var(--ssc-body);
  font-family: var(--ssc-font-body);
  font-size: 16px;
  font-weight: 700;
  padding: 18px 20px;
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: 45px;
  transition: background-color var(--ssc-transition);
}

.ssc-faq details summary::-webkit-details-marker {
  display: none;
}

.ssc-faq details summary::after {
  content: '+';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: 700;
  color: var(--ssc-teal);
  transition: transform var(--ssc-transition);
}

.ssc-faq details[open] summary::after {
  content: '−';
}

.ssc-faq details summary:hover {
  background-color: var(--ssc-light-gray);
}

.ssc-faq details .ssc-faq-answer {
  padding: 15px 20px 20px;
  font-size: 15px;
  line-height: 1.7;
}

.ssc-faq details .ssc-faq-answer p:last-child {
  margin-bottom: 0;
}

/* ---------------------------------------------------------------------------
   14. Footer
   --------------------------------------------------------------------------- */

.site-footer {
  background-color: var(--ssc-teal) !important;
  color: var(--ssc-white);
}

/* Footer top section (3-column layout) */
.site-footer .footer-widget-area {
  background-color: var(--ssc-teal);
  padding: 60px 0 40px;
}

.site-footer .footer-widget-area .widget {
  color: var(--ssc-white);
}

.site-footer .footer-widget-area .widget-title {
  color: var(--ssc-gold);
  font-family: var(--ssc-font-heading);
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 20px;
}

.site-footer .footer-widget-area a {
  color: rgba(255, 255, 255, 0.8);
  transition: color var(--ssc-transition);
}

.site-footer .footer-widget-area a:hover {
  color: var(--ssc-gold);
}

/* Footer NAP (Name, Address, Phone) */
.ssc-footer-nap a {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  color: rgba(255, 255, 255, 0.9);
}

.ssc-footer-nap a:hover {
  color: var(--ssc-gold);
}

.ssc-footer-nap .ssc-nap-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.7);
  display: block;
}

/* Footer service links */
.ssc-footer-services ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ssc-footer-services ul li {
  margin-bottom: 8px;
}

.ssc-footer-services ul li a {
  font-size: 14px;
}

/* Footer logo + social */
.ssc-footer-brand img {
  max-width: 200px;
  margin-bottom: 20px;
}

.ssc-footer-social {
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
}

.ssc-footer-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--ssc-white);
  border-radius: 50%;
  transition: background-color var(--ssc-transition);
}

.ssc-footer-social a:hover {
  background-color: var(--ssc-gold);
  color: var(--ssc-body);
}

/* ---------------------------------------------------------------------------
   14b. Pre-Footer Contact Bar
   --------------------------------------------------------------------------- */

/* Dark contact bar with phone/email/address — sits above footer */
.ssc-contact-bar {
  background-color: var(--ssc-body);
  color: var(--ssc-white);
  padding: 36px 20px;
}

.ssc-contact-bar .ssc-row {
  justify-content: center;
  text-align: center;
}

.ssc-contact-bar-item {
  text-align: center;
  padding: 12px 24px;
}

.ssc-contact-bar-label {
  font-family: var(--ssc-font-heading);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--ssc-gold);
  margin-bottom: 6px;
}

.ssc-contact-bar-value {
  font-size: 15px;
  color: var(--ssc-white);
}

.ssc-contact-bar-value a {
  color: var(--ssc-white) !important;
  text-decoration: none;
}

.ssc-contact-bar-value a:hover {
  color: var(--ssc-gold) !important;
}

/* ---------------------------------------------------------------------------
   14b-2. Contact Information Card Grid
   --------------------------------------------------------------------------- */

.ssc-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--ssc-gutter);
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
  padding: 0 20px;
}

.ssc-contact-card {
  background: var(--ssc-white);
  border-radius: var(--ssc-radius-sm);
  padding: 30px;
  border-left: 4px solid var(--ssc-teal);
  box-shadow: var(--ssc-shadow-sm);
}

.ssc-contact-card h3 {
  font-size: 18px;
  margin-bottom: 8px;
  color: var(--ssc-heading);
}

.ssc-contact-card p {
  font-size: 14px;
  color: var(--ssc-dark-gray);
  margin-bottom: 8px;
}

.ssc-contact-card p:last-child {
  margin-bottom: 0;
}

.ssc-contact-card a {
  color: var(--ssc-teal);
  font-weight: 600;
}

.ssc-contact-card a:hover {
  color: var(--ssc-gold);
}

/* ---------------------------------------------------------------------------
   14c. Footer Widget Content Styling
   --------------------------------------------------------------------------- */

/* Footer widget area backgrounds — ensure teal bg */
.site-footer .site-top-footer-wrap {
  background-color: var(--ssc-teal) !important;
}

.site-footer .site-top-footer-wrap .site-header-row-container-inner,
.site-footer .site-top-footer-wrap .site-footer-row-container-inner {
  background-color: var(--ssc-teal) !important;
}

/* Footer widget headings */
.site-footer .widget h4,
.site-footer .site-top-footer-wrap h4 {
  color: var(--ssc-gold) !important;
  font-family: var(--ssc-font-heading);
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 20px;
}

/* Footer widget text */
.site-footer .widget p,
.site-footer .site-top-footer-wrap p {
  color: var(--ssc-white) !important;
  margin-bottom: 8px;
}

/* Footer widget links */
.site-footer .widget a,
.site-footer .site-top-footer-wrap a {
  color: rgba(255, 255, 255, 0.85) !important;
  text-decoration: none;
  transition: color var(--ssc-transition);
}

.site-footer .widget a:hover,
.site-footer .site-top-footer-wrap a:hover {
  color: var(--ssc-gold) !important;
}

/* Footer widget lists */
.site-footer .widget ul,
.site-footer .site-top-footer-wrap ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer .widget ul li,
.site-footer .site-top-footer-wrap ul li {
  padding: 4px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer .widget ul li:last-child,
.site-footer .site-top-footer-wrap ul li:last-child {
  border-bottom: none;
}

.site-footer .widget ul li a,
.site-footer .site-top-footer-wrap ul li a {
  font-size: 14px;
  display: block;
  padding: 4px 0;
}

/* Footer CTA button */
.site-footer .ssc-footer-cta-btn,
.site-footer a[href*="contact"] {
  display: inline-block;
  background-color: var(--ssc-cta-orange);
  color: var(--ssc-white) !important;
  padding: 12px 24px;
  font-weight: 700;
  text-decoration: none;
  border-radius: var(--ssc-radius-sm);
  margin-top: 10px;
  transition: background-color var(--ssc-transition);
}

.site-footer .ssc-footer-cta-btn:hover,
.site-footer a[href*="contact"]:hover {
  background-color: var(--ssc-gold);
  color: var(--ssc-body) !important;
}

/* Footer bottom bar — copyright row */
.site-footer .site-bottom-footer-wrap,
.site-footer .site-footer-bottom-wrap,
.site-footer .footer-bottom {
  background-color: rgba(0, 0, 0, 0.2) !important;
  padding: 0 !important;
  font-size: 12px;
  text-align: center;
  color: rgba(255, 255, 255, 0.6);
}

/* Collapse Kadence's excessive inner padding on copyright row */
.site-footer .site-bottom-footer-wrap .site-bottom-footer-inner-wrap {
  padding: 0 !important;
}

.site-footer .site-bottom-footer-wrap .footer-widget-area.site-info {
  padding: 18px 0 !important;
  background-color: transparent !important;
}

/* Ensure bottom bar spans full viewport width */
.site-footer .site-bottom-footer-wrap .site-footer-row-container-inner {
  background-color: transparent !important;
  max-width: none !important;
}

.site-footer .site-bottom-footer-wrap .site-container {
  max-width: 1200px;
  margin: 0 auto;
}

.site-footer .site-footer-bottom-wrap a,
.site-footer .footer-bottom a {
  color: rgba(255, 255, 255, 0.6);
}

.site-footer .site-footer-bottom-wrap a:hover,
.site-footer .footer-bottom a:hover {
  color: var(--ssc-gold);
}

/* Hide the empty Kadence footer top widget row — replaced by ssc-main-footer */
.site-footer .site-top-footer-wrap {
  display: none !important;
}

/* ---------------------------------------------------------------------------
   14d. Main Footer — 3-column layout (brand | services | CTA)
   --------------------------------------------------------------------------- */

.ssc-main-footer {
  background-color: var(--ssc-teal);
  color: var(--ssc-white);
  padding: 70px 0 50px;
}

.ssc-main-footer__inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 30px;
}

/* -- Brand column --------------------------------------------------------- */

.ssc-main-footer__logo-link {
  display: block;
  /* Fallback background for lazy-loaded logo (placeholder may not trigger) */
  background-image: url('https://www.seattlesurfacecleaners.com/wp-content/uploads/2024/10/SSC-Logo-white-LS.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left center;
  min-height: 52px;
}

.ssc-main-footer__logo {
  max-width: 320px;
  height: auto;
  margin-bottom: 24px;
}

.ssc-main-footer__tagline {
  color: rgba(255, 255, 255, 0.85);
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 20px;
}

.ssc-main-footer__tagline strong {
  color: var(--ssc-white);
}

.ssc-main-footer__social {
  display: flex;
  gap: 12px;
  margin-bottom: 30px;
}

.ssc-main-footer__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background-color: rgba(255, 255, 255, 0.12);
  color: var(--ssc-white) !important;
  border-radius: 50%;
  text-decoration: none;
  transition: background-color var(--ssc-transition), color var(--ssc-transition);
}

.ssc-main-footer__social-link:hover {
  background-color: var(--ssc-gold);
  color: var(--ssc-body) !important;
}

.ssc-main-footer__badge {
  max-width: 200px;
  height: auto;
  border-radius: 50%;
}

/* Increase OMWBE badge size in Divi footer — client requested larger badge.
   Targets the footer image module containing the OMWBE badge image. */
.et-l--footer img[src*="OMWBE"],
footer img[src*="OMWBE"] {
  width: 350px !important;
  max-width: 350px !important;
  height: auto !important;
}

/* Fix EWWW lazy-load breaking the OMWBE badge on staging.
   EWWW replaces src with a blank data URI and the JS lazy-loader never fires.
   Solution: hide the broken <img>, use the <picture> parent as a CSS
   background-image container with the original PNG URL. */
.ssc-main-footer__col--brand picture:has(.ssc-main-footer__badge) {
  display: block;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background-image: url('/wp-content/uploads/2025/05/OMWBE-Certified-Badge-600x-300x300.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.ssc-main-footer__col--brand picture:has(.ssc-main-footer__badge) > source,
.ssc-main-footer__col--brand picture:has(.ssc-main-footer__badge) > img {
  display: none;
}

/* Fix OMWBE badge in page content: WordPress wp_kses_post() strips
   inline background-image from style attributes (security measure).
   This rule re-applies the image via the stylesheet using aria-label. */
div[role="img"][aria-label*="OMWBE"] {
  background-image: url('/wp-content/uploads/2025/05/OMWBE-Certified-Badge-600x.png') !important;
}

/* -- Footer heading (replaces h4 to avoid heading-level skip) ------------- */

.ssc-footer-heading {
  font-family: var(--ssc-font-heading);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--ssc-white) !important;
  margin: 0 0 20px;
}

/* -- Services column ------------------------------------------------------ */

.ssc-main-footer__heading {
  color: var(--ssc-white) !important;
  font-family: var(--ssc-font-heading);
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 20px;
}

.ssc-main-footer__nav {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ssc-main-footer__nav li {
  padding: 5px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ssc-main-footer__nav li:last-child {
  border-bottom: none;
}

.ssc-main-footer__nav a {
  color: rgba(255, 255, 255, 0.8) !important;
  text-decoration: none;
  font-size: 14px;
  display: block;
  padding: 3px 0;
  transition: color var(--ssc-transition);
}

.ssc-main-footer__nav a:hover {
  color: var(--ssc-gold) !important;
}

/* -- CTA column ----------------------------------------------------------- */

.ssc-main-footer__heading--cta {
  font-size: 22px;
  line-height: 1.35;
}

.ssc-main-footer__cta-btn {
  display: inline-block;
  background-color: transparent;
  color: var(--ssc-white) !important;
  padding: 14px 30px;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 2px solid var(--ssc-white);
  margin-top: 10px;
  transition: background-color var(--ssc-transition), color var(--ssc-transition), border-color var(--ssc-transition);
}

.ssc-main-footer__cta-btn:hover {
  background-color: var(--ssc-gold);
  color: var(--ssc-body) !important;
  border-color: var(--ssc-gold);
}

/* -- Responsive ----------------------------------------------------------- */

@media (max-width: 960px) {
  .ssc-main-footer__inner {
    grid-template-columns: 1fr 1fr;
  }

  .ssc-main-footer__col--brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 600px) {
  .ssc-main-footer {
    padding: 40px 0 30px;
  }

  .ssc-main-footer__inner {
    grid-template-columns: 1fr;
    gap: 30px;
    text-align: center;
    padding: 0 20px;
  }

  .ssc-main-footer__social {
    justify-content: center;
  }

  .ssc-main-footer__badge {
    margin: 0 auto;
  }

  .ssc-main-footer__col--brand picture:has(.ssc-main-footer__badge) {
    margin: 0 auto;
  }

  .ssc-main-footer__logo {
    margin: 0 auto 24px;
  }
}

/* ---------------------------------------------------------------------------
   14e. Structured Data Bar — NAP + service area (below copyright)
   --------------------------------------------------------------------------- */

.ssc-structured-bar {
  background-color: var(--ssc-teal);
  color: rgba(255, 255, 255, 0.85);
  padding: 30px 20px;
  text-align: center;
  font-size: 14px;
  line-height: 1.7;
}

.ssc-structured-bar__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.ssc-structured-bar p {
  margin: 0 0 4px;
}

.ssc-structured-bar p:last-child {
  margin-bottom: 0;
}

.ssc-structured-bar__name {
  font-size: 18px;
  color: var(--ssc-white);
}

.ssc-structured-bar a {
  color: var(--ssc-gold);
  text-decoration: none;
}

.ssc-structured-bar a:hover {
  color: var(--ssc-white);
  text-decoration: underline;
}

.ssc-structured-bar__area {
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
}

/* ---------------------------------------------------------------------------
   15. CTA Banner Sections
   --------------------------------------------------------------------------- */

/* Teal full-width CTA strips between content sections */
.ssc-cta-banner {
  background-color: var(--ssc-teal);
  color: var(--ssc-white);
  text-align: center;
  padding: 80px 20px;
}

.ssc-cta-banner h2 {
  color: var(--ssc-white);
  font-size: 36px;
  margin-bottom: 10px;
}

.ssc-cta-banner p {
  color: rgba(255, 255, 255, 0.85);
  font-size: 18px;
  max-width: 600px;
  margin: 0 auto 25px;
}

/* CTA banner with background image overlay */
.ssc-cta-banner--image {
  position: relative;
  background-size: cover;
  background-position: center;
}

.ssc-cta-banner--image::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(27, 58, 75, 0.86);
}

.ssc-cta-banner--image > * {
  position: relative;
  z-index: 1;
}

/* ---------------------------------------------------------------------------
   16. Forms (Kadence Forms / Contact)
   --------------------------------------------------------------------------- */

.kadence-form .kb-form .kb-field {
  margin-bottom: 20px;
}

.kadence-form .kb-form label {
  font-weight: 700;
  font-size: 14px;
  color: var(--ssc-body);
  margin-bottom: 5px;
  display: block;
}

.kadence-form .kb-form input[type="text"],
.kadence-form .kb-form input[type="email"],
.kadence-form .kb-form input[type="tel"],
.kadence-form .kb-form textarea,
.kadence-form .kb-form select {
  border: 1px solid var(--ssc-mid-gray);
  border-radius: 0;
  padding: 12px 15px;
  font-size: 15px;
  font-family: var(--ssc-font-body);
  color: var(--ssc-body);
  background-color: var(--ssc-white);
  transition: border-color var(--ssc-transition);
  width: 100%;
}

.kadence-form .kb-form input:focus,
.kadence-form .kb-form textarea:focus,
.kadence-form .kb-form select:focus {
  border-color: var(--ssc-teal);
  outline: 2px solid var(--ssc-teal);
  outline-offset: 1px;
  box-shadow: 0 0 0 3px rgba(27, 58, 75, 0.4);
}

/* Forminator contact form field borders
   Overrides the "flat" design which sets border: none on all fields */
.forminator-custom-form .forminator-input,
.forminator-custom-form .forminator-textarea {
  border: 1px solid var(--ssc-mid-gray) !important;
  border-radius: var(--ssc-radius-sm) !important;
  padding: 12px 15px !important;
  font-size: var(--ssc-font-size-base);
  font-family: var(--ssc-font-body);
  color: var(--ssc-body);
  background-color: var(--ssc-white);
  transition: border-color var(--ssc-transition);
}

.forminator-custom-form .forminator-input:focus,
.forminator-custom-form .forminator-textarea:focus {
  border-color: var(--ssc-teal) !important;
  outline: 2px solid var(--ssc-teal);
  outline-offset: 1px;
  box-shadow: 0 0 0 3px rgba(27, 58, 75, 0.4);
}

/* Forminator Select2 dropdown borders */
.forminator-custom-form .select2-container .select2-selection {
  border: 1px solid var(--ssc-mid-gray) !important;
  border-radius: var(--ssc-radius-sm) !important;
  min-height: 44px !important;
  transition: border-color var(--ssc-transition);
}

.forminator-custom-form .select2-container--focus .select2-selection,
.forminator-custom-form .select2-container--open .select2-selection {
  border-color: var(--ssc-teal) !important;
  box-shadow: 0 0 0 2px rgba(27, 58, 75, 0.15);
}

/* ---------------------------------------------------------------------------
   17. Blog / Post Styles
   --------------------------------------------------------------------------- */

/* Blog archive */
.loop-entry .entry-content-wrap {
  padding: 25px;
}

.loop-entry .entry-title a {
  color: var(--ssc-teal);
  font-family: var(--ssc-font-heading);
}

.loop-entry .entry-title a:hover {
  color: var(--ssc-gold);
}

.loop-entry .entry-meta {
  font-size: 13px;
  color: var(--ssc-dark-gray);
}

/* Single post */
.single-post .entry-header .entry-title {
  font-size: 42px;
  color: var(--ssc-teal);
}

.single-post .entry-content {
  font-size: 16px;
  line-height: 1.8;
}

.single-post .entry-content h2 {
  font-size: 32px;
  margin-top: 40px;
}

.single-post .entry-content h3 {
  font-size: 24px;
  margin-top: 30px;
}

/* ---------------------------------------------------------------------------
   18. Kadence Block Overrides
   --------------------------------------------------------------------------- */

/* Info box / Icon box */
.wp-block-kadence-infobox .kt-blocks-info-box-link-wrap {
  border-radius: 0;
  transition: box-shadow var(--ssc-transition);
}

.wp-block-kadence-infobox .kt-blocks-info-box-link-wrap:hover {
  box-shadow: var(--ssc-shadow-md);
}

/* Tabs */
.wp-block-kadence-tabs .kt-tabs-title-list li .kt-tab-title {
  font-family: var(--ssc-font-heading);
  font-weight: 700;
  color: var(--ssc-body);
}

.wp-block-kadence-tabs .kt-tabs-title-list li.kt-tab-title-active .kt-tab-title {
  color: var(--ssc-teal);
  border-color: var(--ssc-teal);
}

/* Row layout */
.wp-block-kadence-rowlayout > .kt-row-column-wrap {
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
}

/* ---------------------------------------------------------------------------
   19. Utility Classes
   --------------------------------------------------------------------------- */

.ssc-text-center { text-align: center; }
.ssc-text-left   { text-align: left; }
.ssc-text-right  { text-align: right; }
.ssc-text-white  { color: var(--ssc-white); }
.ssc-text-teal   { color: var(--ssc-teal); }
.ssc-text-gold   { color: var(--ssc-gold-text); }
.ssc-bg-white    { background-color: var(--ssc-white); }
.ssc-bg-light    { background-color: var(--ssc-light-gray); }
.ssc-bg-mid      { background-color: var(--ssc-mid-gray); }
.ssc-bg-teal     { background-color: var(--ssc-teal); }

.ssc-mt-0  { margin-top: 0; }
.ssc-mb-0  { margin-bottom: 0; }
.ssc-pt-0  { padding-top: 0; }
.ssc-pb-0  { padding-bottom: 0; }
.ssc-py-sm { padding-top: 30px; padding-bottom: 30px; }
.ssc-py-md { padding-top: 60px; padding-bottom: 60px; }
.ssc-py-lg { padding-top: 80px; padding-bottom: 80px; }

/* ---------------------------------------------------------------------------
   20. Responsive Styles
   --------------------------------------------------------------------------- */

/* Large tablet (max-width: 1100px) */
@media (max-width: 1100px) {
  .ssc-services-grid,
  .ssc-service-cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .ssc-testimonials-grid,
  .ssc-values-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ssc-steps,
  .ssc-process-steps {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Tablet (max-width: 980px) */
@media (max-width: 980px) {
  h1 { font-size: 38px; }
  h2 { font-size: 28px; }
  h3 { font-size: 22px; }

  .ssc-hero h1,
  .wp-block-cover.ssc-page-hero h1 {
    font-size: 38px;
  }

  .ssc-hero--home {
    min-height: 400px;
    padding: 60px 20px;
  }

  .ssc-hero--service h1 {
    font-size: 36px;
  }

  .ssc-section {
    padding: 50px 0;
  }

  .ssc-cta-banner {
    padding: 50px 20px;
  }

  .ssc-cta-banner h2 {
    font-size: 32px;
  }

  .ssc-neighborhood-hero h1 {
    font-size: 42px;
  }

  .single-post .entry-header .entry-title {
    font-size: 32px;
  }

  .single-post .entry-content h2 {
    font-size: 26px;
  }

  .ssc-contact-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile (max-width: 767px) */
@media (max-width: 767px) {
  h1 { font-size: 42px; }
  h2 { font-size: 28px; }
  h3 { font-size: 22px; }

  .ssc-hero h1,
  .wp-block-cover.ssc-page-hero h1 {
    font-size: 42px;
  }

  .ssc-hero--service h1 {
    font-size: 32px;
  }

  /* Hero trust bar — stack vertically on mobile */
  .ssc-hero-trust {
    flex-direction: column;
    gap: 16px;
    text-align: center;
  }

  .ssc-hero-trust-items {
    text-align: center;
    align-items: center;
  }

  .ssc-hero-trust-badge img {
    width: 80px;
    height: 80px;
  }

  .ssc-hero-ctas {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .ssc-hero-ctas .ssc-btn,
  .ssc-hero-ctas .ssc-btn--outline-white {
    width: 100%;
    max-width: 300px;
    text-align: center;
  }

  .ssc-services-grid,
  .ssc-service-cards {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ssc-testimonials-grid,
  .ssc-values-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ssc-news-feature {
    flex-direction: column;
  }

  .ssc-steps,
  .ssc-process-steps {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .ssc-cta-banner h2 {
    font-size: 28px;
  }

  /* Full-width buttons on mobile — scoped to avoid conflicts */
  .ssc-hero-ctas .ssc-btn,
  .ssc-cta-banner .ssc-btn,
  .ssc-section .wp-block-button__link,
  .ssc-section .wp-element-button {
    display: block;
    width: 100%;
    text-align: center;
  }

  /* Before/after stacks vertically */
  .ssc-before-after--overlay {
    grid-template-columns: 1fr;
  }

  /* Related services — horizontal scroll on mobile */
  .ssc-related-services__grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 15px;
    padding-bottom: 15px;
    position: relative;
  }

  .ssc-related-services__grid::after {
    content: '';
    position: sticky;
    right: 0;
    top: 0;
    flex-shrink: 0;
    width: 40px;
    height: 100%;
    background: linear-gradient(to right, transparent, var(--ssc-white));
    pointer-events: none;
  }

  .ssc-related-services__card {
    flex: 0 0 200px;
    scroll-snap-align: start;
  }

  /* Neighborhood hero — compact on mobile */
  .ssc-neighborhood-hero {
    min-height: 220px;
    padding: 40px 20px;
  }

  .ssc-neighborhood-hero h1 {
    font-size: 32px;
  }

  .ssc-local-map iframe {
    height: 280px;
  }

  .single-post .entry-header .entry-title {
    font-size: 28px;
  }

  .single-post .entry-content h2 {
    font-size: 24px;
  }
}

/* Small mobile (max-width: 480px) */
@media (max-width: 480px) {
  h1 { font-size: 36px; }
  h2 { font-size: 24px; }
  h3 { font-size: 20px; }

  .ssc-hero h1,
  .wp-block-cover.ssc-page-hero h1 {
    font-size: 36px;
  }

  .ssc-hero--home {
    min-height: 350px;
    padding: 40px 15px;
  }

  .ssc-service-card {
    padding: 30px 20px;
  }

  .ssc-cta-banner h2 {
    font-size: 24px;
  }

  .ssc-related-services__card {
    flex: 0 0 170px;
    padding: 20px 15px;
  }

  .ssc-contact-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------------------------------------------------------------------------
   21. Before/After Gallery (Overlay Variant)
   --------------------------------------------------------------------------- */

/* Enhanced before/after with label overlays positioned on top of images.
   Uses BEM naming (.ssc-before-after__item) alongside existing 9f classes. */
.ssc-before-after--overlay {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ssc-gutter);
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
  padding: 0 20px;
}

.ssc-before-after__item {
  position: relative;
  overflow: hidden;
  border-radius: var(--ssc-radius-sm);
  box-shadow: var(--ssc-shadow-sm);
}

.ssc-before-after__item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform var(--ssc-transition);
}

.ssc-before-after__item:hover img {
  transform: scale(1.03);
}

.ssc-before-after__label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 10px 16px;
  font-family: var(--ssc-font-heading);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-align: center;
}

.ssc-before-after__item--before .ssc-before-after__label {
  background-color: rgba(27, 58, 75, 0.85);
  color: var(--ssc-white);
}

.ssc-before-after__item--after .ssc-before-after__label {
  background-color: rgba(27, 58, 75, 0.85);
  color: var(--ssc-gold);
}

/* ---------------------------------------------------------------------------
   22. Related Services / Internal Links ("Explore Other Services")
   --------------------------------------------------------------------------- */

.ssc-related-services {
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
  padding: 40px 20px;
  text-align: center;
}

/* Center the section heading above .ssc-related-services */
.ssc-section--light:has(.ssc-related-services) > h2 {
  text-align: center;
  max-width: var(--ssc-content-max-width);
  margin-left: auto;
  margin-right: auto;
  padding: 0 20px;
}

.ssc-related-services__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  max-width: 700px;
  margin: 0 auto;
}

/* WordPress wpautop inserts <br> between cards — hide them in grid */
.ssc-related-services__grid > br {
  display: none;
}

.ssc-related-services__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 30px 20px;
  background-color: var(--ssc-white);
  border: 1px solid var(--ssc-mid-gray);
  text-decoration: none;
  color: var(--ssc-body);
  transition: box-shadow var(--ssc-transition),
              transform var(--ssc-transition),
              border-color var(--ssc-transition);
}

.ssc-related-services__card:hover {
  box-shadow: var(--ssc-shadow-md);
  transform: translateY(-2px);
  border-color: var(--ssc-teal);
  color: var(--ssc-body);
}

.ssc-related-services__icon {
  width: 48px;
  height: 48px;
  margin-bottom: 15px;
}

.ssc-related-services__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ssc-related-services__name {
  font-family: var(--ssc-font-heading);
  font-size: 16px;
  font-weight: 700;
  color: var(--ssc-teal);
  margin: 0;
}

.ssc-related-services__card:hover .ssc-related-services__name {
  color: var(--ssc-gold);
}

/* Related services — single column on mobile (overrides grid above) */
@media (max-width: 768px) {
  .ssc-related-services__grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .ssc-related-services__card {
    flex-direction: row;
    padding: 16px 20px;
    gap: 12px;
  }

  .ssc-related-services__icon {
    margin-bottom: 0;
    flex-shrink: 0;
  }

  .ssc-related-services__name {
    text-align: left;
  }
}

/* "Explore Our Other Services" internal link section (below CTA on service pages) */
.ssc-rs-header {
  text-align: center;
  margin-bottom: 30px;
}

.ssc-rs-header h3 {
  font-family: var(--ssc-font-heading);
  font-size: 28px;
  font-weight: 700;
  color: var(--ssc-teal);
  margin: 0 0 8px;
}

.ssc-rs-header p {
  font-size: 16px;
  color: var(--ssc-body);
  margin: 0;
}

.ssc-rs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 24px;
  max-width: 700px;
  margin: 0 auto 30px;
}

.ssc-rs-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: var(--ssc-white);
  border: 1px solid var(--ssc-mid-gray);
  border-radius: var(--ssc-radius-sm);
  text-decoration: none;
  color: var(--ssc-teal);
  font-family: var(--ssc-font-heading);
  font-size: 15px;
  font-weight: 600;
  transition: border-color var(--ssc-transition),
              box-shadow var(--ssc-transition),
              transform var(--ssc-transition);
}

.ssc-rs-card:hover {
  border-color: var(--ssc-teal);
  box-shadow: var(--ssc-shadow-md);
  transform: translateY(-1px);
  color: var(--ssc-teal);
}

.ssc-rs-arrow {
  color: var(--ssc-gold);
  font-size: 18px;
  flex-shrink: 0;
}

.ssc-rs-label {
  flex: 1;
}

.ssc-rs-cta {
  text-align: center;
  padding-top: 10px;
}

.ssc-rs-btn {
  display: inline-block;
  padding: 14px 36px;
  background: var(--ssc-gold);
  color: var(--ssc-white);
  font-family: var(--ssc-font-heading);
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-radius: var(--ssc-radius-sm);
  transition: background var(--ssc-transition),
              transform var(--ssc-transition);
}

.ssc-rs-btn:hover {
  background: var(--ssc-gold);
  transform: translateY(-1px);
  color: var(--ssc-white);
}

@media (max-width: 767px) {
  .ssc-rs-grid {
    grid-template-columns: 1fr;
    max-width: 100%;
  }

  .ssc-rs-header h3 {
    font-size: 24px;
  }

  .ssc-rs-btn {
    width: 100%;
    text-align: center;
  }
}

/* ---------------------------------------------------------------------------
   23. Neighborhood Landing Pages
   --------------------------------------------------------------------------- */

/* ── Scoping strategy ──
   Neighborhood pages render bare WordPress blocks (h1, h2, h3, p, ul) as
   direct children of .entry-content — no .ssc-section wrappers.
   Converted pages (FAQ, About, Contact, Homepage) all use .ssc-section
   wrappers and never place an <h1> directly inside .entry-content.
   The :has(> h1) pseudo-class safely scopes every rule below to
   neighborhood pages only. */

/* --- Container: keep full-width for hero, add bottom breathing room --- */
.page .entry-content:has(> h1) {
  padding-bottom: 0;
}

/* --- Hero H1: full-width teal banner matching the site hero style --- */
.page .entry-content:has(> h1) > h1 {
  background: linear-gradient(
    135deg,
    var(--ssc-teal) 0%,
    var(--ssc-teal-mid) 100%
  );
  color: var(--ssc-white);
  font-family: var(--ssc-font-heading);
  font-size: 46px;
  font-weight: 700;
  text-align: center;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  padding: 72px 24px 56px;
  margin: 0 0 0 0;
  max-width: none;
  box-sizing: border-box;
}

/* --- Constrain all non-hero content to a readable column --- */
.page .entry-content:has(> h1) > *:not(h1) {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* --- Intro paragraphs (first two <p>s after the H1) --- */
.page .entry-content:has(> h1) > h1 + p,
.page .entry-content:has(> h1) > h1 + p + p {
  font-size: 18px;
  line-height: 1.75;
  color: var(--ssc-dark-gray);
}

.page .entry-content:has(> h1) > h1 + p {
  margin-top: 40px;
}

/* --- H2 section headings: dividers with generous spacing --- */
.page .entry-content:has(> h1) > h2 {
  font-family: var(--ssc-font-heading);
  font-size: 32px;
  font-weight: 700;
  color: var(--ssc-heading);
  margin-top: 56px;
  margin-bottom: 20px;
  padding-top: 40px;
  border-top: 1px solid var(--ssc-mid-gray);
}

/* First H2 after intro — no top border (content starts here) */
.page .entry-content:has(> h1) > h2:first-of-type {
  margin-top: 40px;
  padding-top: 0;
  border-top: none;
}

/* --- H3 service sub-headings --- */
.page .entry-content:has(> h1) > h3 {
  font-family: var(--ssc-font-heading);
  font-size: 24px;
  font-weight: 700;
  color: var(--ssc-teal-mid);
  margin-top: 36px;
  margin-bottom: 12px;
  padding-left: 36px;
  position: relative;
}

/* Accent bar on H3s */
.page .entry-content:has(> h1) > h3::before {
  content: '';
  position: absolute;
  left: 24px;
  top: 4px;
  width: 4px;
  height: 24px;
  background: var(--ssc-gold);
  border-radius: 2px;
}

/* --- Body paragraphs --- */
.page .entry-content:has(> h1) > p {
  font-size: 16px;
  line-height: 1.75;
  color: var(--ssc-body);
  margin-bottom: 16px;
}

/* --- Bullet lists (pricing, services) --- */
.page .entry-content:has(> h1) > ul {
  list-style: none;
  padding-left: 24px;
  margin-top: 8px;
  margin-bottom: 28px;
}

.page .entry-content:has(> h1) > ul > li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 12px;
  line-height: 1.65;
  color: var(--ssc-body);
}

/* Custom bullet: gold dot */
.page .entry-content:has(> h1) > ul > li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 10px;
  width: 8px;
  height: 8px;
  background: var(--ssc-gold);
  border-radius: 50%;
}

/* --- CTA section: "Get a Free Quote" area --- */
/* Target the last h2 followed by the CTA content + author box.
   The "Get a Free Quote" H2 is always the last H2 on neighborhood pages. */
.page .entry-content:has(> h1) > h2:last-of-type {
  background: var(--ssc-teal);
  color: var(--ssc-white);
  text-align: center;
  padding: 40px 24px 20px;
  margin-top: 56px;
  margin-bottom: 0;
  border-top: none;
  border-radius: var(--ssc-radius-lg) var(--ssc-radius-lg) 0 0;
  max-width: 800px;
}

/* CTA paragraphs following the CTA H2 (before the author box) */
.page .entry-content:has(> h1) > h2:last-of-type ~ p {
  background: var(--ssc-teal);
  color: rgba(255, 255, 255, 0.95);
  text-align: center;
  margin-bottom: 0;
  padding-top: 4px;
  padding-bottom: 4px;
  max-width: 800px;
}

/* Last paragraph before the author box — close the CTA banner */
.page .entry-content:has(> h1) > h2:last-of-type ~ p:has(+ div),
.page .entry-content:has(> h1) > h2:last-of-type ~ p:last-of-type {
  padding-bottom: 36px;
  border-radius: 0 0 var(--ssc-radius-lg) var(--ssc-radius-lg);
}

/* Phone link inside CTA */
.page .entry-content:has(> h1) > h2:last-of-type ~ p a[href^="tel:"] {
  color: var(--ssc-gold);
  font-weight: 700;
  font-size: 20px;
  text-decoration: none;
}

.page .entry-content:has(> h1) > h2:last-of-type ~ p a[href^="tel:"]:hover {
  text-decoration: underline;
}

/* "Request a Free Estimate" link → styled as button */
.page .entry-content:has(> h1) > h2:last-of-type ~ p a[href*="contact"] {
  display: inline-block;
  background: var(--ssc-cta-orange);
  color: var(--ssc-white);
  padding: 14px 36px;
  border-radius: var(--ssc-radius-sm);
  text-decoration: none;
  font-weight: 600;
  font-size: 16px;
  transition: background var(--ssc-transition), transform var(--ssc-transition);
}

.page .entry-content:has(> h1) > h2:last-of-type ~ p a[href*="contact"]:hover {
  background: var(--ssc-cta-orange-hover);
  transform: translateY(-1px);
}

/* --- Author bio box: enhanced card --- */
.page .entry-content:has(> h1) > div:last-child {
  background: var(--ssc-white) !important;
  border: 1px solid var(--ssc-mid-gray) !important;
  border-radius: var(--ssc-radius-md) !important;
  padding: 28px !important;
  margin-top: 48px !important;
  margin-bottom: 48px !important;
  box-shadow: var(--ssc-shadow-sm) !important;
}

/* Author image — ensure circle crop */
.page .entry-content:has(> h1) > div:last-child > img {
  border: 3px solid var(--ssc-teal-light) !important;
}

/* --- Responsive: tablet (<=768px) --- */
@media (max-width: 768px) {
  .page .entry-content:has(> h1) > h1 {
    font-size: 34px;
    padding: 56px 20px 40px;
  }

  .page .entry-content:has(> h1) > h2 {
    font-size: 26px;
    margin-top: 40px;
    padding-top: 28px;
  }

  .page .entry-content:has(> h1) > h3 {
    font-size: 21px;
  }

  .page .entry-content:has(> h1) > h2:last-of-type {
    margin-top: 40px;
    padding: 32px 20px 16px;
  }
}

/* --- Responsive: mobile (<=480px) --- */
@media (max-width: 480px) {
  .page .entry-content:has(> h1) > h1 {
    font-size: 28px;
    padding: 48px 16px 36px;
  }

  .page .entry-content:has(> h1) > *:not(h1) {
    padding-left: 16px;
    padding-right: 16px;
  }

  .page .entry-content:has(> h1) > h2 {
    font-size: 24px;
    margin-top: 32px;
    padding-top: 24px;
  }

  .page .entry-content:has(> h1) > h3 {
    font-size: 20px;
    margin-top: 28px;
  }

  .page .entry-content:has(> h1) > h2:last-of-type,
  .page .entry-content:has(> h1) > h2:last-of-type ~ p {
    padding-left: 16px;
    padding-right: 16px;
  }

  .page .entry-content:has(> h1) > div:last-child {
    flex-direction: column !important;
    text-align: center;
    gap: 16px !important;
  }

  .page .entry-content:has(> h1) > div:last-child > img {
    margin: 0 auto !important;
  }
}

/* ── Legacy class-based selectors (for pages with custom HTML) ── */

/* Neighborhood hero — shorter variant for area-specific pages */
.ssc-neighborhood-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 280px;
  padding: 60px 20px;
  text-align: center;
  background-color: var(--ssc-teal);
  background-size: cover;
  background-position: center;
}

.ssc-neighborhood-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(27, 58, 75, 0.85) 0%,
    rgba(27, 58, 75, 0.7) 100%
  );
  z-index: 1;
}

.ssc-neighborhood-hero > * {
  position: relative;
  z-index: 2;
}

.ssc-neighborhood-hero h1 {
  color: var(--ssc-white);
  font-size: 55px;
  font-weight: 700;
  margin-bottom: 10px;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6);
}

.ssc-neighborhood-hero p {
  color: rgba(255, 255, 255, 0.9);
  font-size: 18px;
  max-width: 600px;
  margin: 0 auto;
}

/* Embedded Google Map container */
.ssc-local-map {
  width: 100%;
  max-width: var(--ssc-content-max-width);
  margin: 0 auto;
  padding: 0 20px;
}

.ssc-local-map iframe {
  width: 100%;
  height: 400px;
  border: none;
  border-radius: var(--ssc-radius-sm);
  box-shadow: var(--ssc-shadow-sm);
}

.ssc-local-map figcaption {
  font-size: 13px;
  color: var(--ssc-dark-gray);
  text-align: center;
  margin-top: 10px;
}

/* ---------------------------------------------------------------------------
   KADENCE INTEGRATION — Full-width content for converted pages
   --------------------------------------------------------------------------- */

/* Hide the default Kadence page title on pages with converted content */
.page .entry-hero-container-inner,
.page .entry-header,
.page .page-hero-section,
.page .entry-hero,
.page .wp-block-kadence-hero,
.page .hero-section-overlay,
.page .kadence-page-title,
.page .site-main > .entry-header,
body.page .entry-content-wrap > header {
  display: none !important;
}

/* Remove sidebar for converted content pages */
.page .site-main {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

.page .primary-sidebar,
.page aside.widget-area {
  display: none !important;
}

/* ── Kadence full-width overrides for converted pages ──
   Kadence DOM: .site > main > .content-area > .content-container > .site-main
     > .content-wrap > article > .entry-content-wrap > .entry-content > section
   Key blockers to full-width:
     - .site has overflow:clip (clips 100vw breakout)
     - .content-container has max-width:1290px
   Fix: remove overflow clip, widen containers, use 100vw trick on sections.
*/

/* Remove overflow:clip on .site so 100vw breakout works */
.page .site.wp-site-blocks {
  overflow-x: clip;
  overflow-y: visible;
}

/* Widen Kadence content containers for pages */
.page .content-container.site-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page .content-area {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page .site-main,
.page .content-wrap {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
}

.page article.entry {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Remove Kadence default content container padding */
.page .entry-content-wrap {
  padding: 0 !important;
  max-width: 100% !important;
}

/* Remove top margin on content area — hero touches header directly */
.page .content-area {
  margin-top: 0 !important;
}

.page .entry-content.single-content {
  max-width: 100% !important;
}

/* Make all sections full-width (target correct nesting including .entry-content) */
.entry-content > .ssc-section,
.entry-content > .ssc-hero,
.entry-content > section,
.entry-content-wrap > .ssc-section,
.entry-content-wrap > .ssc-hero,
.entry-content-wrap > section {
  width: 100%;
  box-sizing: border-box;
}

/* Constrain inner content within full-width sections */
.ssc-section > .ssc-row,
.ssc-hero > .ssc-row,
.ssc-hero > div {
  max-width: var(--ssc-content-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

/* Contain bare .ssc-section blocks that lack an inner .ssc-row wrapper.
   Without this, paragraph text stretches to full viewport width (~1440px).
   Works for both <section> and <div> elements with the .ssc-section class. */
.entry-content > .ssc-section:not(:has(.ssc-row)) {
  max-width: var(--ssc-content-max-width, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--ssc-gutter, 30px);
  padding-right: var(--ssc-gutter, 30px);
}

/* Author box containment — inline styles set background/border/padding,
   but boxes stretch to full viewport width without max-width.
   !important on margins overrides the inline style="margin-top:2rem". */
.ssc-author-box {
  max-width: var(--ssc-content-max-width, 1200px);
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ===========================================================================
   26. Mobile Rendering Fixes (2025-07)
   =========================================================================== */

/* --- Fix 1: Responsive video iframes (KING 5 section empty gap) ---------- */
@media (max-width: 768px) {
  .ssc-section iframe,
  .ssc-news-feature iframe,
  .entry-content iframe,
  .wp-block-embed iframe {
    width: 100% !important;
    max-width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
  }

  /* Unwrap the padding-bottom:56.25% trick — aspect-ratio handles it */
  .ssc-video-wrapper {
    padding-bottom: 0;
    height: auto;
  }

  .ssc-video-wrapper iframe,
  .ssc-video-wrapper video {
    position: relative;
    aspect-ratio: 16 / 9;
    height: auto;
  }
}

/* --- Fix 2: Reduce excessive section padding on mobile ------------------- */
@media (max-width: 768px) {
  .ssc-section {
    padding: 40px 16px;
  }

  .ssc-section--lg {
    padding: 40px 16px;
  }

  .ssc-section--light,
  .ssc-section--white,
  .ssc-section--muted,
  .ssc-section--mid {
    padding: 40px 16px;
  }

  .ssc-section--teal,
  .ssc-section--banner {
    padding: 40px 16px;
  }

  .ssc-cta-banner {
    padding: 40px 16px;
  }

  /* Remove inner row padding on mobile — section padding handles it */
  .ssc-section > .ssc-row,
  .ssc-hero > .ssc-row,
  .ssc-hero > div {
    padding-left: 0;
    padding-right: 0;
  }
}

/* --- Fix 3: Reduce card bottom padding on mobile ------------------------- */
@media (max-width: 768px) {
  .ssc-service-card {
    padding: 28px 20px;
  }

  .ssc-value-card {
    padding: 20px 16px;
  }

  .ssc-blurb {
    padding: 18px 16px;
  }

  .ssc-testimonial {
    padding: 24px 18px;
  }
}

/* --- Fix 4: CTA-to-services gap reduction -------------------------------- */
@media (max-width: 768px) {
  .ssc-cta-banner + .ssc-section,
  .ssc-cta-banner + section,
  .ssc-section + .ssc-section {
    margin-top: 0;
  }

  /* Collapse any auto margin between adjacent sections */
  .entry-content > .ssc-section + .ssc-section,
  .entry-content > .ssc-cta-banner + .ssc-section,
  .entry-content-wrap > .ssc-section + .ssc-section,
  .entry-content-wrap > .ssc-cta-banner + .ssc-section {
    margin-top: 0;
  }
}

/* --- Fix 5: Footer logo visibility on mobile ----------------------------- */
@media (max-width: 768px) {
  .ssc-main-footer__col--brand {
    display: block !important;
    text-align: center;
  }

  .ssc-main-footer__logo {
    display: block !important;
    max-width: 180px;
    height: auto;
    margin: 0 auto 20px;
  }

  .ssc-main-footer__logo-link {
    display: inline-block !important;
    background-position: center center;
    min-width: 180px;
  }

  .ssc-footer-brand img {
    display: block !important;
    max-width: 180px;
    height: auto;
    margin: 0 auto;
  }
}

/* ---------------------------------------------------------------------------
   27. Reduced Motion & Focus Visibility
   --------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0s !important;
    scroll-behavior: auto !important;
  }
}

/* Focus-visible — visible focus ring only for keyboard navigation.
   Dual-outline technique ensures visibility on all backgrounds including orange CTAs. */
:focus-visible {
  outline: 2px solid var(--ssc-cta-orange);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px white;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--ssc-cta-orange);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px white;
}

/* ---------------------------------------------------------------------------
   28. Service Areas — Nav Dropdown Enhancement
   --------------------------------------------------------------------------- */

/*
 * The Kadence/WP nav already handles dropdown rendering for sub-menus.
 * These overrides ensure the "Service Areas" mega-dropdown with 17 items
 * is comfortable to browse without excessive scroll height.
 */

/* Wider dropdown for the Service Areas parent (17 items → 2-column grid) */
.site-header .header-navigation nav > ul > li.menu-item-has-children:has(> ul > li:nth-child(10)) > ul {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  min-width: 420px;
  padding: 8px 0;
}

/* Ensure items span the full column width */
.site-header .header-navigation nav > ul > li.menu-item-has-children:has(> ul > li:nth-child(10)) > ul > li {
  width: 100%;
}

/* Fallback for browsers without :has() — apply to any deep dropdown */
@supports not selector(:has(*)) {
  .site-header .header-navigation nav ul ul {
    min-width: 280px;
  }
}

/* ---------------------------------------------------------------------------
   29. Service Areas — Footer Section
   --------------------------------------------------------------------------- */

.ssc-service-areas-footer {
  background-color: var(--ssc-teal);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 40px 0 30px;
}

.ssc-service-areas-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 30px;
}

.ssc-service-areas-footer__heading {
  font-family: var(--ssc-font-heading);
  font-size: 20px;
  font-weight: 700;
  color: var(--ssc-gold) !important;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin: 0 0 20px;
}

.ssc-service-areas-footer__columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px 40px;
}

.ssc-service-areas-footer__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ssc-service-areas-footer__list li {
  padding: 4px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.ssc-service-areas-footer__list li:last-child {
  border-bottom: none;
}

.ssc-service-areas-footer__list a {
  color: rgba(255, 255, 255, 0.8) !important;
  text-decoration: none;
  font-size: 14px;
  display: block;
  padding: 2px 0;
  transition: color var(--ssc-transition);
}

.ssc-service-areas-footer__list a:hover {
  color: var(--ssc-gold) !important;
}

/* Responsive: 2 columns on tablet */
@media (max-width: 960px) {
  .ssc-service-areas-footer__columns {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Responsive: single column on mobile */
@media (max-width: 600px) {
  .ssc-service-areas-footer {
    padding: 30px 0 20px;
  }

  .ssc-service-areas-footer__inner {
    padding: 0 20px;
  }

  .ssc-service-areas-footer__heading {
    text-align: center;
    font-size: 18px;
  }

  .ssc-service-areas-footer__columns {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

/* Mobile nav: Service Areas sub-menu scrollable if needed */
.mobile-navigation-container nav ul ul {
  max-height: 60vh;
  overflow-y: auto;
}

/* ---------------------------------------------------------------------------
   23. Contact Page Redesign — Form-First Layout
   --------------------------------------------------------------------------- */

/* ── Compact Hero ── */
.ssc-contact-hero {
  background: var(--ssc-teal);
  color: var(--ssc-white);
  padding: 48px 30px 40px;
  text-align: center;
}

.ssc-contact-hero__title {
  color: var(--ssc-white) !important;
  font-family: var(--ssc-font-heading);
  font-size: 36px;
  font-weight: 700;
  margin: 0 0 12px;
  line-height: 1.2;
}

.ssc-contact-hero__subtitle {
  color: rgba(255, 255, 255, 0.9) !important;
  font-family: var(--ssc-font-body);
  font-size: 18px;
  line-height: 1.5;
  margin: 0 auto;
  max-width: 600px;
}

/* ── Form Card ── */
.ssc-contact-form-section {
  padding: 0 30px 40px;
  margin-top: -20px;
  position: relative;
  z-index: 2;
}

.ssc-form-card {
  background: var(--ssc-white);
  border-radius: var(--ssc-radius-lg);
  box-shadow: var(--ssc-shadow-md);
  padding: 36px 40px 40px;
  max-width: 760px;
  margin: 0 auto;
}

.ssc-form-card__heading {
  color: var(--ssc-teal) !important;
  font-family: var(--ssc-font-heading);
  font-size: 24px;
  font-weight: 600;
  margin: 0 0 24px;
  text-align: center;
}

/* Forminator form inside card — override defaults */
.ssc-form-card .forminator-custom-form {
  padding: 0 !important;
  margin: 0 !important;
}

/* Submit button — SSC teal, full-width on mobile */
.ssc-form-card .forminator-button-submit,
.ssc-form-card .forminator-custom-form .forminator-button {
  background: var(--ssc-teal) !important;
  color: var(--ssc-white) !important;
  border: none !important;
  border-radius: var(--ssc-radius-sm) !important;
  padding: 14px 36px !important;
  font-family: var(--ssc-font-heading) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  cursor: pointer;
  transition: background var(--ssc-transition), transform var(--ssc-transition);
  position: relative;
  min-height: 50px;
}

.ssc-form-card .forminator-button-submit:hover,
.ssc-form-card .forminator-custom-form .forminator-button:hover {
  background: var(--ssc-cta-orange-hover) !important;
  transform: translateY(-1px);
}

.ssc-form-card .forminator-button-submit:active,
.ssc-form-card .forminator-custom-form .forminator-button:active {
  transform: translateY(0);
}

/* Loading state — spinning indicator on submit */
.ssc-form-card .forminator-button-submit.ssc-loading,
.ssc-form-card .forminator-custom-form .forminator-button.ssc-loading {
  pointer-events: none;
  opacity: 0.85;
}

.ssc-form-card .forminator-button-submit.ssc-loading::after {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: var(--ssc-white);
  border-radius: 50%;
  margin-left: 10px;
  vertical-align: middle;
  animation: ssc-spin 0.6s linear infinite;
}

@keyframes ssc-spin {
  to { transform: rotate(360deg); }
}

/* Forminator success message — branded */
.ssc-form-card .forminator-response-message.forminator-success,
.forminator-custom-form-23480214 .forminator-response-message.forminator-success {
  background: var(--ssc-teal) !important;
  color: var(--ssc-white) !important;
  border: none !important;
  border-radius: var(--ssc-radius-md) !important;
  padding: 24px 30px !important;
  font-family: var(--ssc-font-body) !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  text-align: center;
  margin-top: 20px !important;
}

.ssc-form-card .forminator-response-message.forminator-success::before {
  content: '✓ ';
  font-size: 20px;
  font-weight: 700;
}

/* Forminator error message — visible and clear */
.ssc-form-card .forminator-response-message.forminator-error,
.forminator-custom-form-23480214 .forminator-response-message.forminator-error {
  background: #FEF2F2 !important;
  color: #991B1B !important;
  border: 1px solid #FCA5A5 !important;
  border-radius: var(--ssc-radius-md) !important;
  padding: 16px 24px !important;
  font-family: var(--ssc-font-body) !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
  margin-top: 16px !important;
}

/* Forminator field validation errors */
.ssc-form-card .forminator-error-message {
  color: #DC2626 !important;
  font-size: 13px !important;
  margin-top: 4px !important;
}

/* Field labels */
.ssc-form-card .forminator-label {
  font-family: var(--ssc-font-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--ssc-body) !important;
  margin-bottom: 6px !important;
}

/* ── Trust Signal Bar ── */
.ssc-contact-trust-bar {
  background: var(--ssc-light-gray);
  padding: 24px 30px;
  border-top: 1px solid var(--ssc-mid-gray);
  border-bottom: 1px solid var(--ssc-mid-gray);
}

.ssc-trust-row {
  gap: 0 !important;
  margin: 0 !important;
}

.ssc-trust-item {
  text-align: center;
  padding: 8px 12px !important;
}

.ssc-trust-item p {
  margin: 0 !important;
  font-family: var(--ssc-font-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--ssc-teal);
  white-space: nowrap;
}

.ssc-trust-item .ssc-trust-item__text {
  display: inline-flex;
  align-items: center;
  gap: 0;
  white-space: nowrap;
}

.ssc-trust-item strong {
  color: var(--ssc-gold);
  font-weight: 700;
}

/* ── Services Compact Grid ── */
.ssc-contact-services-overview {
  padding: var(--ssc-section-padding);
  padding-left: 30px;
  padding-right: 30px;
}

.ssc-services-compact-grid {
  gap: 24px !important;
  margin-bottom: 16px !important;
}

.ssc-service-compact {
  background: var(--ssc-white);
  border: 1px solid var(--ssc-mid-gray);
  border-radius: var(--ssc-radius-md);
  padding: 20px 24px !important;
  transition: box-shadow var(--ssc-transition), border-color var(--ssc-transition);
}

.ssc-service-compact:hover {
  box-shadow: var(--ssc-shadow-sm);
  border-color: var(--ssc-teal-mid);
}

.ssc-service-compact h3 {
  font-size: 17px !important;
  font-weight: 600;
  color: var(--ssc-teal) !important;
  margin: 0 0 8px !important;
  display: flex;
  align-items: center;
}

.ssc-service-compact p {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ssc-dark-gray);
  margin: 0 !important;
}

/* ── How It Works Steps ── */
.ssc-contact-how-it-works {
  background: var(--ssc-light-gray);
  padding: var(--ssc-section-padding);
  padding-left: 30px;
  padding-right: 30px;
}

.ssc-steps-row {
  gap: 30px !important;
}

/* Suppress the global .ssc-step::before counter inside contact page */
.ssc-contact-how-it-works .ssc-step::before {
  display: none !important;
}

.ssc-contact-how-it-works .ssc-step {
  text-align: center;
  padding: 24px 20px !important;
}

.ssc-step__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--ssc-cta-orange);
  color: var(--ssc-white) !important;
  font-family: var(--ssc-font-heading);
  font-size: 20px !important;
  font-weight: 700;
  margin: 0 auto 16px !important;
  line-height: 1;
}

.ssc-contact-how-it-works .ssc-step h4 {
  font-family: var(--ssc-font-heading);
  font-size: 18px !important;
  font-weight: 600;
  color: var(--ssc-teal) !important;
  margin: 0 0 10px !important;
}

.ssc-contact-how-it-works .ssc-step p {
  font-size: 15px;
  line-height: 1.5;
  color: var(--ssc-dark-gray);
  margin: 0 !important;
}

/* ── "Other Ways to Connect" — 2×2 Tile Grid ── */
.ssc-contact-ways {
  padding: 36px 30px 32px;
  background: var(--ssc-light-gray);
}

.ssc-contact-ways__heading {
  font-family: var(--ssc-font-heading);
  font-size: 22px;
  font-weight: 700;
  color: var(--ssc-teal) !important;
  text-align: center;
  margin: 0 0 24px;
}

.ssc-contact-grid-2x2 {
  gap: 16px !important;
  margin-bottom: 16px !important;
}

.ssc-contact-grid-2x2:last-child {
  margin-bottom: 0 !important;
}

.ssc-contact-tile {
  background: var(--ssc-white);
  border: 1px solid var(--ssc-mid-gray);
  border-radius: var(--ssc-radius-md);
  padding: 20px 24px !important;
  text-align: center;
  transition: box-shadow var(--ssc-transition), border-color var(--ssc-transition);
}

.ssc-contact-tile:hover {
  box-shadow: var(--ssc-shadow-sm);
  border-color: var(--ssc-teal-mid);
}

.ssc-contact-tile__icon {
  line-height: 1;
  margin: 0 0 10px !important;
  color: var(--ssc-teal);
}

/* ── SVG Icon System ── */
.ssc-icon {
  display: inline-block;
  width: 32px;
  height: 32px;
  vertical-align: middle;
  flex-shrink: 0;
}

/* Icon inside contact tiles — larger, block-centered */
.ssc-contact-tile__icon .ssc-icon {
  width: 36px;
  height: 36px;
  display: block;
  margin: 0 auto;
}

/* Icon inside service titles — smaller, inline with text */
.ssc-service-compact__title .ssc-icon {
  width: 22px;
  height: 22px;
  margin-right: 8px;
  position: relative;
  top: -1px;
}

/* Icon inside trust items — small, inline */
.ssc-trust-item__text .ssc-icon {
  width: 18px;
  height: 18px;
  margin-right: 6px;
  color: var(--ssc-gold);
  position: relative;
  top: -1px;
}

/* Trust-specific icon variant (shield) */
.ssc-icon--trust {
  color: var(--ssc-gold);
}

.ssc-contact-tile__label {
  font-family: var(--ssc-font-heading) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--ssc-teal) !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 6px !important;
}

.ssc-contact-tile__value {
  font-family: var(--ssc-font-body);
  font-size: 15px;
  line-height: 1.4;
  color: var(--ssc-body);
  margin: 0 !important;
}

.ssc-contact-tile__value a {
  color: var(--ssc-teal-mid);
  text-decoration: none;
  font-weight: 600;
}

.ssc-contact-tile__value a:hover {
  color: var(--ssc-teal);
  text-decoration: underline;
}

/* Keep old .ssc-contact-info-bar rules for backward compat but they're now unused */
.ssc-contact-info-bar {
  padding: 48px 30px;
  text-align: center;
}

.ssc-contact-methods {
  gap: 20px !important;
}

.ssc-contact-method {
  font-family: var(--ssc-font-body);
  font-size: 15px;
  color: var(--ssc-body);
}

.ssc-contact-method a {
  color: var(--ssc-teal-mid);
  text-decoration: none;
  font-weight: 600;
}

.ssc-contact-method a:hover {
  color: var(--ssc-teal);
  text-decoration: underline;
}

/* ── Contact Page Section Headings ── */
.ssc-contact-services-overview .ssc-section-heading,
.ssc-contact-how-it-works .ssc-section-heading,
.ssc-contact-info-bar .ssc-section-heading,
.ssc-contact-ways .ssc-contact-ways__heading {
  font-family: var(--ssc-font-heading);
  font-size: 28px;
  font-weight: 700;
  color: var(--ssc-teal) !important;
  text-align: center;
  margin: 0 0 36px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .ssc-contact-hero {
    padding: 36px 20px 32px;
  }

  .ssc-contact-hero__title {
    font-size: 28px;
  }

  .ssc-contact-hero__subtitle {
    font-size: 16px;
  }

  .ssc-contact-form-section {
    padding: 0 16px 32px;
  }

  .ssc-form-card {
    padding: 24px 20px 28px;
    border-radius: var(--ssc-radius-md);
  }

  .ssc-form-card__heading {
    font-size: 20px;
  }

  /* Full-width submit on mobile */
  .ssc-form-card .forminator-button-submit,
  .ssc-form-card .forminator-custom-form .forminator-button {
    width: 100% !important;
    text-align: center;
  }

  /* Contact tiles — stack on mobile */
  .ssc-contact-ways {
    padding: 28px 16px 24px;
  }

  .ssc-contact-ways__heading {
    font-size: 20px;
  }

  .ssc-contact-grid-2x2 {
    flex-direction: column !important;
    gap: 12px !important;
    margin-bottom: 12px !important;
  }

  .ssc-contact-tile {
    padding: 16px 20px !important;
  }

  .ssc-trust-row {
    flex-wrap: wrap !important;
  }

  .ssc-trust-item {
    flex-basis: 50% !important;
    max-width: 50% !important;
  }

  .ssc-services-compact-grid {
    flex-direction: column !important;
  }

  .ssc-steps-row {
    flex-direction: column !important;
    gap: 16px !important;
  }

  .ssc-contact-methods {
    flex-direction: column !important;
    gap: 12px !important;
  }

  .ssc-contact-services-overview .ssc-section-heading,
  .ssc-contact-how-it-works .ssc-section-heading,
  .ssc-contact-info-bar .ssc-section-heading,
  .ssc-contact-ways .ssc-contact-ways__heading {
    font-size: 24px;
  }
}

@media (max-width: 480px) {
  .ssc-contact-hero__title {
    font-size: 24px;
  }

  .ssc-trust-item {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }

  .ssc-trust-item p {
    font-size: 13px;
  }
}
