*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy: #0D1B2A;
  --navy-light: #162233;
  --navy-mid: #1A2D42;
  --blue: #3B9EE0;
  --blue-dark: #2980C4;
  --blue-light: #6BB8EC;
  --amber: #F5A623;
  --amber-dark: #E09010;
  --white: #FFFFFF;
  --off-white: #F8FAFB;
  --light-bg: #F2F5F8;
  --text-dark: #0D1B2A;
  --text-body: #374151;
  --text-muted: #6B7280;
  --border: #E2E8F0;
  --shadow-sm: 0 2px 8px rgba(13,27,42,0.08);
  --shadow-md: 0 8px 32px rgba(13,27,42,0.12);
  --shadow-lg: 0 16px 48px rgba(13,27,42,0.16);
  --radius: 8px;
  --radius-lg: 16px;
  --transition: 0.3s ease;
  --font-heading: 'Barlow Condensed', sans-serif;
  --font-body: 'Barlow', sans-serif;
  /* Semantic aliases, used in inline styles across pages */
  --surface: #162233;
  --surface-alt: #1A2D42;
  --surface-2: #0F1E2E;
  --text: #FFFFFF;
  --gray: #9CA3AF;
  --gray-dark: #6B7280;
}

html { scroll-behavior: smooth; }
body { font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.75; color: var(--text-body); background: var(--navy); -webkit-font-smoothing: antialiased; }

h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); line-height: 1.1; color: var(--text-dark); font-weight: 700; }
h1 { font-size: clamp(2.5rem,6vw,4.5rem); }
h2 { font-size: clamp(2rem,4vw,3rem); }
h3 { font-size: clamp(1.4rem,2.5vw,2rem); }
p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }
a { color: var(--blue); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--blue-dark); }
ul { list-style: none; }
img { max-width: 100%; height: auto; display: block; }

.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.section { padding: 5rem 0; }
.section--sm { padding: 3rem 0; }
.section--dark { background: #060E18; color: var(--white); }
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4 { color: var(--white); }
.section--light { background: #EEF2F7; background-image: radial-gradient(circle at 15% 50%, rgba(59,158,224,0.07) 0%, transparent 50%), radial-gradient(circle at 85% 20%, rgba(245,166,35,0.05) 0%, transparent 40%); }
.section--mid { background: #1A2D42; color: var(--white); }
.section--mid h1,.section--mid h2,.section--mid h3,.section--mid h4 { color: var(--white); }
/* White cards sit inside dark/mid sections; keep their titles dark so they never go white-on-white */
.section--dark .service-card__title,.section--mid .service-card__title { color: var(--text-dark); }
.section--mid .section-eyebrow { color: var(--amber); }
.section--mid .section-desc { color: rgba(255,255,255,0.75); }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.875rem 2rem; border-radius: var(--radius); font-family: var(--font-heading); font-size: 1.1rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; cursor: pointer; border: 2px solid transparent; transition: all var(--transition); white-space: nowrap; text-decoration: none; }
.btn--primary { background: var(--amber); color: var(--navy); border-color: var(--amber); }
.btn--primary:hover { background: var(--amber-dark); border-color: var(--amber-dark); color: var(--navy); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(245,166,35,0.4); }
.btn--blue { background: #1C6EA8; color: var(--white); border-color: #1C6EA8; }
.btn--blue:hover { background: #155A86; border-color: #155A86; color: var(--white); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(59,158,224,0.4); }
.btn--outline { background: transparent; color: var(--white); border-color: var(--white); }
.btn--outline:hover { background: var(--white); color: var(--navy); }
.btn--lg { padding: 1.125rem 2.5rem; font-size: 1.25rem; }

/* Nav */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: var(--navy); box-shadow: 0 2px 16px rgba(0,0,0,0.25); transition: background var(--transition), box-shadow var(--transition), padding var(--transition); padding: 1.25rem 0; padding-top: calc(1.25rem + env(safe-area-inset-top)); }
.nav.scrolled { background: var(--navy); box-shadow: 0 2px 24px rgba(0,0,0,0.4); padding: 0.75rem 0; }
.nav__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.nav__logo { display: flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.nav .nav__logo { background: #000; padding: 0.3rem 0.75rem 0.3rem 0.4rem; border-radius: 6px; }
.nav__logo-img { height: 44px; width: auto; display: block; }
.nav__menu { display: flex; align-items: center; gap: 0.1rem; list-style: none; }
.nav__menu > li > a { font-family: var(--font-heading); font-size: 0.85rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: rgba(255,255,255,0.85); padding: 0.4rem 0.5rem; border-radius: 4px; transition: all var(--transition); text-decoration: none; display: flex; align-items: center; gap: 0.3rem; white-space: nowrap; }
.nav__menu > li > a:hover,.nav__menu > li > a.active { color: var(--amber); }
.nav__dropdown { position: relative; }
.nav__dropdown-menu { position: absolute; top: calc(100% + 0.5rem); left: 0; background: var(--navy); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--radius); padding: 0.5rem; min-width: 240px; box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: all var(--transition); list-style: none; }
.nav__dropdown:hover .nav__dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav__dropdown-menu a { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.75rem; font-size: 0.85rem; border-radius: 4px; color: rgba(255,255,255,0.75); transition: all var(--transition); }
.nav__dropdown-menu a:hover { color: var(--amber); background: rgba(255,255,255,0.06); }
.nav__dropdown-menu a i { color: var(--blue); width: 14px; font-size: 0.8rem; }
.nav__actions { display: flex; align-items: center; gap: 1.25rem; flex-shrink: 0; }
.nav__phone { font-family: var(--font-heading); font-weight: 700; font-size: 1.1rem; color: var(--amber); text-decoration: none; letter-spacing: 0.02em; transition: color var(--transition); display: flex; align-items: center; gap: 0.4rem; }
.nav__phone:hover { color: var(--amber-dark); }
.nav__toggle { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; background: none; border: none; }
.nav__toggle span { display: block; width: 24px; height: 2px; background: var(--white); border-radius: 2px; transition: all var(--transition); }
.nav__toggle.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.nav__toggle.open span:nth-child(2) { opacity: 0; }
.nav__toggle.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }
/* Hamburger takes over below 1200px where the full one-line nav would not fit */
@media (max-width: 1200px) {
  .nav__menu { display: none; }
  .nav__toggle { display: flex; z-index: 1001; position: relative; }
}
/* Opened mobile/tablet menu overlay (applies whenever the hamburger opens it) */
.nav__menu.open { display: flex; flex-direction: column; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--navy); align-items: center; justify-content: center; gap: 0.5rem; z-index: 999; padding: 2rem; overflow-y: auto; }
.nav__menu.open > li > a { font-size: 1.4rem; padding: 0.75rem 1.5rem; }
.nav__menu.open .nav__dropdown-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; background: transparent; padding: 0 0 0 1.5rem; }

/* Hero */
.hero { position: relative; min-height: 680px; background: var(--navy); display: flex; align-items: center; overflow: hidden; padding: 8rem 0 5rem; }
.hero__bg-pattern { position: absolute; inset: 0; background-image: linear-gradient(rgba(59,158,224,0.03) 1px,transparent 1px), linear-gradient(90deg,rgba(59,158,224,0.03) 1px,transparent 1px); background-size: 60px 60px; }
.hero__accent { position: absolute; right: -5%; top: 0; bottom: 0; width: 50%; background: linear-gradient(135deg,var(--navy-mid) 0%,transparent 60%); clip-path: polygon(15% 0,100% 0,100% 100%,0% 100%); }
.hero__amber-bar { position: absolute; left: 0; bottom: 0; width: 100%; height: 4px; background: linear-gradient(90deg,var(--amber) 0%,transparent 100%); }
.hero__content { position: relative; z-index: 2; max-width: 900px; }
.hero__badge { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(59,158,224,0.12); border: 1px solid rgba(59,158,224,0.25); color: var(--blue-light); font-family: var(--font-heading); font-size: 0.82rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.4rem 1rem; border-radius: 100px; margin-bottom: 1.5rem; }
.hero__badge i { color: var(--amber); font-size: 0.75rem; }
.hero__title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(4.5rem,9vw,7.5rem); line-height: 0.9; color: var(--white); text-transform: uppercase; letter-spacing: -0.01em; margin-bottom: 1.5rem; }
.hero__title .accent { color: var(--amber); }
.hero__title .accent-blue { color: var(--blue); }
.hero__subtitle { font-size: 1.22rem; color: rgba(255,255,255,0.75); line-height: 1.65; max-width: 600px; margin-bottom: 2.5rem; }
.hero__actions { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 2.5rem; }
.hero__phone-block { flex: 1; display: flex; flex-direction: column; }
.hero__phone-label { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255,255,255,0.65); margin: 0; white-space: nowrap; }
.hero__phone-number { font-family: var(--font-heading); font-weight: 800; font-size: clamp(1.6rem,2.5vw,2rem); color: var(--amber); text-decoration: none; letter-spacing: 0.02em; line-height: 1; transition: color var(--transition); }
.hero__phone-number:hover { color: var(--amber-dark); }
/* Desktop: square the phone block to the Call Now button height (number top aligns to button top, availability bottom aligns to button bottom) and enlarge the number so it is not dwarfed. Mobile layout untouched. The Call Now button is not modified. */
@media (min-width: 769px) { .hero__actions { align-items: stretch; } .hero__phone-block { justify-content: space-between; padding: 0.15rem 0; } .hero__phone-number { font-size: clamp(2rem, 3vw, 2.6rem); } }
.hero__trust { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.hero__trust-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.88rem; color: rgba(255,255,255,0.72); }
.hero__trust-item i { color: var(--blue); font-size: 0.82rem; }

/* Trust Bar */
.trust-bar { background: var(--navy-mid); border-top: 3px solid var(--amber); padding: 2.5rem 0; }
.trust-bar__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; text-align: center; }
.trust-bar__item { padding: 1rem; border-right: 1px solid rgba(255,255,255,0.08); }
.trust-bar__item:last-child { border-right: none; }
.trust-bar__number { font-family: var(--font-heading); font-weight: 800; font-size: 3rem; color: var(--amber); line-height: 1; margin-bottom: 0.25rem; }
.trust-bar__label { font-size: 0.82rem; color: rgba(255,255,255,0.65); text-transform: uppercase; letter-spacing: 0.06em; }

/* Section Headers */
.section-header { margin-bottom: 3.5rem; text-align: center; }
.section-eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; font-family: var(--font-heading); font-size: 0.95rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--amber); margin-bottom: 0.75rem; }
.section-eyebrow::before { content: ''; width: 2rem; height: 3px; background: var(--amber); flex-shrink: 0; border-radius: 2px; }
.section--dark .section-eyebrow { color: var(--blue-light); }
.section-title { font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; letter-spacing: 0.01em; margin-bottom: 1rem; }
.section-title .accent { color: var(--amber); }
.section-title .accent-blue { color: var(--blue); }
.section-desc { font-size: 1.08rem; color: var(--text-muted); max-width: 580px; margin: 0 auto; line-height: 1.7; }
.section--dark .section-desc { color: rgba(255,255,255,0.72); }

/* Services Grid */
.services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.guides-grid { grid-template-columns: repeat(2,1fr); }
.service-card { background: var(--white); border: 1px solid #C8DDEF; border-top: 4px solid var(--amber); border-radius: var(--radius-lg); padding: 2rem; text-decoration: none; transition: all var(--transition); display: block; position: relative; overflow: hidden; box-shadow: 0 4px 20px rgba(13,27,42,0.10); }
.service-card::before { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,var(--amber),transparent); transform: scaleX(0); transition: transform var(--transition); }
.service-card:hover { border-color: var(--amber); border-top-color: var(--amber); box-shadow: 0 20px 56px rgba(13,27,42,0.20), 0 0 0 1px rgba(245,166,35,0.15); transform: translateY(-6px); }
.service-card:hover::before { transform: scaleX(1); }
.service-card__icon { width: 56px; height: 56px; background: linear-gradient(135deg, var(--amber), var(--amber-dark)); border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 1.25rem; transition: all var(--transition); box-shadow: 0 4px 12px rgba(245,166,35,0.3); }
.service-card__icon i { font-size: 1.4rem; color: var(--navy); }
.service-card:hover .service-card__icon { transform: scale(1.08) rotate(-3deg); box-shadow: 0 6px 20px rgba(245,166,35,0.5); }
.service-card__title { font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; color: var(--text-dark); text-transform: uppercase; margin-bottom: 0.75rem; line-height: 1.2; }
.service-card__desc { font-size: 0.93rem; color: var(--text-muted); line-height: 1.65; margin-bottom: 1.25rem; }
.service-card__link { font-family: var(--font-heading); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); display: inline-flex; align-items: center; gap: 0.4rem; transition: color var(--transition); }
.service-card:hover .service-card__link { color: var(--amber); }

/* Featured Service */
.featured-service { background: linear-gradient(140deg, #1B2E45 0%, #0D1B2C 55%, #080F18 100%); border: 1px solid rgba(245,166,35,0.25); border-top: 3px solid var(--amber); box-shadow: 0 24px 72px rgba(0,0,0,0.7), 0 0 80px rgba(245,166,35,0.07); border-radius: var(--radius-lg); padding: 4rem; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; position: relative; overflow: hidden; }
.featured-service::before { content: ''; position: absolute; top: -80px; right: -80px; width: 420px; height: 420px; background: radial-gradient(circle, rgba(245,166,35,0.11) 0%, transparent 65%); pointer-events: none; }
.featured-service::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg,var(--amber),transparent); }
.featured-service__badge { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(245,166,35,0.12); border: 1px solid rgba(245,166,35,0.28); color: var(--amber); font-family: var(--font-heading); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.4rem 0.875rem; border-radius: 100px; margin-bottom: 1.5rem; }
.featured-service__title { color: var(--white); font-size: clamp(1.8rem,3vw,2.5rem); margin-bottom: 1.25rem; }
.featured-service__desc { color: rgba(255,255,255,0.72); font-size: 1.03rem; line-height: 1.7; margin-bottom: 2rem; }
.featured-service__list { list-style: none; display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 2.5rem; }
.featured-service__list li { display: flex; align-items: flex-start; gap: 0.75rem; color: rgba(255,255,255,0.82); font-size: 0.95rem; }
.featured-service__list li i { color: var(--amber); margin-top: 0.2rem; flex-shrink: 0; }
/* Bath Scope Card */
.bath-scope-card { width: 100%; background: linear-gradient(160deg, #0F1E2E 0%, #0A1520 100%); border-radius: var(--radius-lg); border: 1px solid rgba(245,166,35,0.25); box-shadow: 0 8px 40px rgba(0,0,0,0.5); padding: 2rem; overflow: hidden; position: relative; }
.bath-scope-card::before { content: ''; position: absolute; top: -50px; right: -50px; width: 200px; height: 200px; background: radial-gradient(circle, rgba(245,166,35,0.07) 0%, transparent 70%); pointer-events: none; }
.bath-scope-card__header { display: flex; align-items: center; gap: 1.25rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.08); margin-bottom: 0.5rem; }
.bath-scope-card__icon-group { display: flex; gap: 0.625rem; background: rgba(245,166,35,0.1); border: 1px solid rgba(245,166,35,0.2); border-radius: 12px; padding: 0.875rem 1.125rem; flex-shrink: 0; }
.bath-scope-card__icon-group i { font-size: 1.4rem; color: var(--amber); }
.bath-scope-card__eyebrow { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.7); margin-bottom: 0.25rem; }
.bath-scope-card__headline { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; color: var(--white); }
.bath-phases { display: flex; flex-direction: column; }
.bath-phase { display: flex; gap: 1.125rem; align-items: flex-start; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.bath-phase:last-child { border-bottom: none; }
.bath-phase__num { font-family: var(--font-heading); font-size: 1.6rem; font-weight: 800; color: rgba(245,166,35,0.5); line-height: 1; flex-shrink: 0; width: 2.25rem; text-align: right; padding-top: 0.1rem; }
.bath-phase__title { font-family: var(--font-heading); font-size: 0.92rem; font-weight: 700; color: var(--amber); margin-bottom: 0.3rem; }
.bath-phase__desc { font-size: 0.83rem; color: rgba(255,255,255,0.8); line-height: 1.55; }
.bath-scope-card__guarantee { display: flex; align-items: center; gap: 1rem; background: rgba(245,166,35,0.07); border: 1px solid rgba(245,166,35,0.2); border-radius: 10px; padding: 1rem 1.25rem; margin-top: 1.25rem; }
.bath-scope-card__guarantee i { font-size: 1.4rem; color: var(--amber); flex-shrink: 0; }
.bath-guarantee__label { font-family: var(--font-heading); font-size: 0.85rem; font-weight: 700; color: var(--white); margin-bottom: 0.2rem; }
.bath-guarantee__text { font-size: 0.8rem; color: rgba(255,255,255,0.58); line-height: 1.4; }

/* Why Grid */
.why-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; }
.why-item { text-align: center; padding: 2rem; background: linear-gradient(160deg, #1A2D42 0%, #0D1B2A 100%); border: 1px solid rgba(245,166,35,0.4); border-top: 4px solid var(--amber); border-radius: var(--radius-lg); box-shadow: 0 8px 32px rgba(0,0,0,0.55), 0 0 0 1px rgba(245,166,35,0.1); transition: all var(--transition); }
.why-item:hover { background: linear-gradient(160deg, #111F2E 0%, #080F1A 100%); border-color: rgba(245,166,35,0.6); border-top-color: var(--amber); transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0,0,0,0.75), 0 0 24px rgba(245,166,35,0.15); }
.why-item__icon { width: 68px; height: 68px; background: linear-gradient(135deg,var(--amber),var(--amber-dark)); border-radius: 14px; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.25rem; transform: rotate(4deg); transition: all var(--transition); box-shadow: 0 4px 16px rgba(245,166,35,0.3); }
.why-item__icon i { font-size: 1.55rem; color: var(--navy); transform: rotate(-4deg); transition: transform var(--transition); }
.why-item:hover .why-item__icon { transform: rotate(0deg) scale(1.12); box-shadow: 0 8px 28px rgba(245,166,35,0.5); }
.why-item:hover .why-item__icon i { transform: rotate(0deg); }
.why-item__title { font-family: var(--font-heading); font-weight: 700; font-size: 1.15rem; text-transform: uppercase; color: var(--white); margin-bottom: 0.75rem; }
.why-item__desc { font-size: 0.93rem; color: rgba(255,255,255,0.72); line-height: 1.7; }

/* About */
.about-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 5rem; align-items: center; }
.about-card { background: linear-gradient(160deg, #162336 0%, #0D1B2A 55%, #0A1620 100%); border-radius: var(--radius-lg); padding: 3rem 2rem; text-align: center; position: relative; overflow: hidden; box-shadow: 0 8px 40px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.06); }
.about-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg,var(--amber),transparent); }
.about-card__avatar { width: 200px; height: 200px; border-radius: 50%; margin: 0 auto 1.5rem; box-shadow: 0 0 0 5px var(--amber), 0 8px 32px rgba(245,166,35,0.45); overflow: hidden; background: var(--navy-mid); flex-shrink: 0; display: block; }
.about-card__avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; display: block; }
.about-card__name { font-family: var(--font-heading); font-size: 1.8rem; font-weight: 800; color: var(--white); text-transform: uppercase; margin-bottom: 0.2rem; }
.about-card__title { font-size: 0.82rem; color: var(--blue-light); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1.75rem; }
.about-card__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 0.875rem; text-align: left; }
.about-stat { background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.14); border-left: 3px solid var(--amber); border-radius: 8px; padding: 0.875rem; }
.about-stat__number { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 800; color: var(--amber); line-height: 1; margin-bottom: 0.2rem; }
.about-stat__label { font-size: 0.72rem; color: rgba(255,255,255,0.72); text-transform: uppercase; letter-spacing: 0.05em; }
.about-content h2 { margin-bottom: 1.25rem; }
.about-content p { margin-bottom: 1.25rem; color: rgba(255,255,255,0.82); }
.about-list { display: flex; flex-direction: column; gap: 0.75rem; margin: 1.5rem 0 2rem; list-style: none; }
.about-list li { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.95rem; color: rgba(255,255,255,0.82); }
.about-list li i { color: var(--amber); margin-top: 0.2rem; flex-shrink: 0; }

/* Service Areas */
.areas-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.area-card { background: linear-gradient(160deg, #1A2D42 0%, #0D1B2A 100%); border: 1px solid rgba(245,166,35,0.3); border-top: 4px solid var(--amber); border-radius: var(--radius); padding: 1.5rem 1rem; text-align: center; transition: all var(--transition); cursor: default; box-shadow: 0 8px 28px rgba(0,0,0,0.65), 0 0 0 1px rgba(245,166,35,0.06); }
.area-card:hover { background: linear-gradient(160deg, #1F3550 0%, #111F2E 100%); border-color: rgba(245,166,35,0.65); border-top-color: var(--amber); transform: translateY(-3px); box-shadow: 0 14px 40px rgba(0,0,0,0.7), 0 0 24px rgba(245,166,35,0.18); }
.area-card i { color: var(--amber); font-size: 1.05rem; margin-bottom: 0.6rem; display: block; transition: transform var(--transition); }
.area-card__name { font-family: var(--font-heading); font-weight: 700; font-size: 1rem; color: var(--white); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.25rem; }
.area-card__state { font-size: 0.78rem; color: rgba(245,166,35,0.8); text-transform: none; letter-spacing: 0; }
a.area-card { text-decoration: none; color: inherit; }
.area-card--primary { background: rgba(245,166,35,0.12); border-color: rgba(245,166,35,0.6); box-shadow: 0 4px 16px rgba(0,0,0,0.5), 0 0 32px rgba(245,166,35,0.28); cursor: default; }
.area-card--primary .area-card__name { color: var(--amber); }
.area-card--primary .area-card__state { font-size: 0.68rem; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.1em; }
.area-card:hover i { transform: scale(1.25); }

/* CTA Section */
.cta-section { background: linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%); padding: 5rem 0; text-align: center; position: relative; overflow: hidden; }
.cta-section::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(245,166,35,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(245,166,35,0.025) 1px,transparent 1px); background-size: 40px 40px; }
.cta-section__inner { position: relative; }
.cta-section h2 { color: var(--white); font-size: clamp(2rem,5vw,3.5rem); margin-bottom: 1rem; }
.cta-section p { color: rgba(255,255,255,0.72); font-size: 1.08rem; max-width: 480px; margin: 0 auto 2.5rem; }
.cta-phone { display: block; font-family: var(--font-heading); font-weight: 800; font-size: clamp(2.5rem,6vw,4rem); color: var(--amber); text-decoration: none; letter-spacing: 0.02em; line-height: 1; margin-bottom: 0.5rem; transition: color var(--transition); }
.cta-phone:hover { color: var(--amber-dark); text-shadow: 0 0 40px rgba(245,166,35,0.45); }
.cta-phone-sub { font-size: 0.85rem; color: rgba(255,255,255,0.65); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 2rem; }

/* Footer */
.footer { background: #070F18; padding: 5rem 0 0; border-top: 4px solid var(--amber); }
.footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 3.5rem; }
.footer__logo { max-width: 120px; margin-bottom: 1rem; }
.footer__desc { font-size: 0.93rem; color: rgba(255,255,255,0.85); line-height: 1.75; margin: 1.1rem 0 1.5rem; }
.footer__phone { display: flex; align-items: center; gap: 0.5rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.35rem; color: var(--amber); text-decoration: none; margin-bottom: 0.5rem; transition: color var(--transition); }
.footer__phone:hover { color: var(--amber-dark); }
.footer__address { font-size: 0.88rem; color: rgba(255,255,255,0.82); line-height: 1.7; }
.footer__col h4, .footer__col h3,
.footer__brand h4, .footer__brand h3,
.footer__links h4, .footer__links h3,
.footer__contact h4, .footer__contact h3 { font-family: var(--font-heading); font-weight: 700; font-size: 0.95rem; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255,255,255,0.95); margin-bottom: 1.25rem; padding-bottom: 0.6rem; border-bottom: 1px solid rgba(255,255,255,0.15); }
.footer__links { display: flex; flex-direction: column; gap: 0.75rem; list-style: none; }
.footer__links a { font-size: 0.93rem; color: rgba(255,255,255,0.82); text-decoration: none; transition: color var(--transition); }
.footer__links a:hover { color: var(--amber); }
.footer__links li { font-size: 0.93rem; color: rgba(255,255,255,0.82); }
.footer__hours { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; margin: 0.75rem 0; }
.footer__hours li { font-size: 0.88rem; color: rgba(255,255,255,0.82); }
.footer__credentials { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; margin: 0.5rem 0; }
.footer__credentials li { font-size: 0.88rem; color: rgba(255,255,255,0.82); }
.footer__contact p,
.footer__contact a { font-size: 0.93rem; color: rgba(255,255,255,0.82); }
.footer__contact a:hover { color: var(--amber); }
.footer__bottom { border-top: 1px solid rgba(255,255,255,0.1); padding: 1.75rem 0; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.footer__copyright { font-size: 0.83rem; color: rgba(255,255,255,0.78); }
.footer__copyright a { color: var(--amber); text-decoration: none; }
.mhic-license { font-size: 0.78rem !important; color: rgba(255,255,255,0.72) !important; }
.footer__legal { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; list-style: none; }
.footer__legal a { font-size: 0.83rem; color: rgba(255,255,255,0.78); text-decoration: none; transition: color var(--transition); }
.footer__legal a:hover { color: var(--white); }

/* Page Hero */
.page-hero { background: var(--navy); padding: 8rem 0 4rem; position: relative; overflow: hidden; }
.breadcrumb + .page-hero, .breadcrumb + main > .page-hero:first-child { padding-top: 2.5rem; }
.page-hero__bg { position: absolute; inset: 0; background-image: linear-gradient(rgba(59,158,224,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(59,158,224,0.03) 1px,transparent 1px); background-size: 60px 60px; }
.page-hero::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,var(--amber),transparent); }
.page-hero__content { position: relative; z-index: 2; }
.page-hero__eyebrow { font-family: var(--font-heading); font-size: 0.95rem; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--amber); margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.6rem; }
.page-hero__eyebrow::before { content: ''; width: 1rem; height: 2px; background: var(--amber); }
.page-hero__title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(2.5rem,5vw,4rem); color: var(--white); text-transform: uppercase; line-height: 1; margin-bottom: 1.25rem; }
.page-hero__title .accent { color: var(--amber); }
.page-hero__desc { font-size: 1.08rem; color: rgba(255,255,255,0.75); max-width: 580px; line-height: 1.7; margin-bottom: 2rem; }

/* Service Page Layout */
.service-content { display: grid; grid-template-columns: 1fr 320px; gap: 4rem; align-items: start; }
.service-content__main { min-width: 0; }
.service-content__main h2 { margin-bottom: 1rem; }
.service-content__main p { color: var(--text-body); line-height: 1.8; margin-bottom: 1.25rem; }
.service-list { display: flex; flex-direction: column; gap: 0.75rem; margin: 1.5rem 0; list-style: none; }
.service-list li { display: flex; align-items: flex-start; gap: 0.875rem; font-size: 1.02rem; color: var(--text-dark); background: var(--white); padding: 1rem 1.25rem; border-radius: 10px; border: 1px solid #BDD0E3; border-left: 5px solid var(--amber); box-shadow: 0 4px 20px rgba(13,27,42,0.13); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.service-list li:hover { transform: translateX(3px); box-shadow: 0 8px 28px rgba(13,27,42,0.17); }
.service-list li i { color: var(--amber); margin-top: 0.15rem; flex-shrink: 0; font-size: 1rem; }
.service-sidebar { position: sticky; top: 6rem; display: flex; flex-direction: column; gap: 1.5rem; }
.sidebar-card { background: #162233; border-radius: var(--radius-lg); padding: 1.75rem; position: relative; overflow: hidden; }
.sidebar-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg,var(--amber),transparent); }
.sidebar-card--cta { background: linear-gradient(150deg, #1C4068 0%, #0D2640 60%, #0D1B2A 100%); box-shadow: 0 8px 32px rgba(13,27,42,0.35), inset 0 1px 0 rgba(255,255,255,0.06); }
.sidebar-card--cta::before { height: 4px; background: linear-gradient(90deg, var(--amber) 0%, rgba(59,158,224,0.4) 50%, var(--amber) 100%); }
/* .sidebar-cta is used on standalone service pages, matches .sidebar-card--cta */
.sidebar-cta { background: linear-gradient(150deg, #1C4068 0%, #0D2640 60%, #0D1B2A 100%); border-radius: var(--radius-lg); padding: 1.75rem; position: relative; overflow: hidden; box-shadow: 0 8px 32px rgba(13,27,42,0.35), inset 0 1px 0 rgba(255,255,255,0.06); }
.sidebar-cta::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--amber) 0%, rgba(59,158,224,0.4) 50%, var(--amber) 100%); }
.sidebar-cta h3 { font-family: var(--font-heading); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; color: var(--white); margin-bottom: 1rem; }
.sidebar-cta .btn { width: 100%; justify-content: center; margin-bottom: 0.5rem; }
.sidebar-cta .sidebar-info-row { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: rgba(255,255,255,0.9); margin-bottom: 0.35rem; }
.sidebar-cta .sidebar-info-row i { color: var(--blue-light); font-size: 0.68rem; flex-shrink: 0; }
.sidebar-cta p { font-size: 0.88rem; color: rgba(255,255,255,0.82); line-height: 1.5; }
.sidebar-card__title { font-family: var(--font-heading); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; color: var(--white); margin-bottom: 0.4rem; }
.sidebar-card__sub { font-size: 0.875rem; color: rgba(255,255,255,0.88); margin-bottom: 0.75rem; }
.sidebar-info-rows { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 1.1rem; }
.sidebar-info-row { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: rgba(255,255,255,0.9); }
.sidebar-info-row i { color: var(--blue-light); font-size: 0.68rem; flex-shrink: 0; }
.sidebar-phone { display: flex; align-items: center; gap: 0.5rem; font-family: var(--font-heading); font-weight: 800; font-size: 1.5rem; color: var(--amber); text-decoration: none; transition: color var(--transition); margin-bottom: 1rem; }
.sidebar-phone:hover { color: var(--amber-dark); }
.sidebar-card .btn { width: 100%; justify-content: center; margin-top: 0.5rem; }
.sidebar-areas { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
.sidebar-areas li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.92rem; color: rgba(255,255,255,0.92); }
.sidebar-areas li i { color: var(--blue-light); font-size: 0.72rem; }

/* FAQ */
.faq-list { display: flex; flex-direction: column; gap: 0.5rem; max-width: 100%; margin: 1.5rem 0; }
.faq-item { border: 1px solid #BDD0E3; border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 3px 14px rgba(13,27,42,0.10); transition: box-shadow var(--transition); }
.faq-item:hover { box-shadow: 0 6px 24px rgba(13,27,42,0.15); }
.faq-question { width: 100%; text-align: left; padding: 1.125rem 1.5rem; background: var(--white); border: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.1rem; color: var(--text-dark); transition: background var(--transition); }
.faq-question:hover { background: #F4F9FF; }
.faq-question i { color: var(--amber); transition: transform var(--transition); flex-shrink: 0; font-size: 0.9rem; }
.faq-item.open { border-color: var(--blue); box-shadow: 0 4px 24px rgba(59,158,224,0.12); }
.faq-item.open .faq-question { background: #F0F7FF; color: var(--navy); }
.faq-item.open .faq-question i { transform: rotate(180deg); color: var(--blue); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; background: #F8FBFF; }
.faq-item.open .faq-answer { max-height: 500px; }
.faq-answer__inner { padding: 1rem 1.5rem 1.25rem; font-size: 0.95rem; color: var(--text-body); line-height: 1.8; border-top: 1px solid #D6E4F0; }

/* Breadcrumb */
.breadcrumb { padding: 0.625rem 0; background: var(--navy); }
.breadcrumb__list { display: flex; align-items: center; gap: 0.4rem; list-style: none; flex-wrap: wrap; }
.breadcrumb__list li { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; color: rgba(255,255,255,0.60); }
.breadcrumb__list li::after { content: '/'; color: rgba(255,255,255,0.15); }
.breadcrumb__list li:last-child::after { display: none; }
.breadcrumb__list a { color: var(--blue-light); text-decoration: none; transition: color var(--transition); }
.breadcrumb__list a:hover { color: var(--amber); }
.breadcrumb__list li:last-child { color: rgba(255,255,255,0.82); font-weight: 500; }

/* Contact Form */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.contact-form { background: linear-gradient(150deg, #1A3352 0%, #0F2438 55%, #091828 100%); border: 1px solid rgba(59,158,224,0.18); border-radius: var(--radius-lg); padding: 2.5rem; box-shadow: 0 8px 40px rgba(13,27,42,0.4), inset 0 1px 0 rgba(255,255,255,0.06); position: relative; overflow: hidden; }
.contact-form::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--amber) 0%, rgba(59,158,224,0.4) 50%, var(--amber) 100%); }
.contact-form h3 { font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; text-transform: uppercase; margin-bottom: 1.75rem; color: var(--white); }
.form-group { margin-bottom: 1.25rem; }
.form-group label { display: block; font-family: var(--font-heading); font-weight: 600; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-dark); margin-bottom: 0.5rem; }
.contact-form .form-group label { color: rgba(255,255,255,0.75); }
.form-group input,.form-group select,.form-group textarea { width: 100%; padding: 0.875rem 1rem; border: 1px solid #BDD4EE; border-radius: var(--radius); font-family: var(--font-body); font-size: 0.95rem; color: var(--text-dark); background: var(--white); transition: border-color var(--transition), box-shadow var(--transition); outline: none; }
.contact-form .form-group input,.contact-form .form-group select,.contact-form .form-group textarea { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.25); color: var(--white); }
.contact-form .form-group input::placeholder,.contact-form .form-group textarea::placeholder { color: rgba(255,255,255,0.3); }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(59,158,224,0.15); }
.contact-form .form-group input:focus,.contact-form .form-group select:focus,.contact-form .form-group textarea:focus { border-color: var(--amber); box-shadow: 0 0 0 3px rgba(245,166,35,0.2); background: rgba(255,255,255,0.1); }
.contact-form .form-group select option { background: #0F2438; color: var(--white); }
.form-group textarea { resize: vertical; min-height: 120px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.contact-info { display: flex; flex-direction: column; gap: 1.25rem; }
.contact-info-item { display: flex; align-items: flex-start; gap: 1rem; padding: 1.25rem 1.5rem; background: var(--white); border-radius: var(--radius-lg); border: 1px solid #D6E4F0; border-left: 4px solid var(--blue); box-shadow: 0 2px 14px rgba(13,27,42,0.06); }
.contact-info-item__icon { width: 44px; height: 44px; background: linear-gradient(135deg, #3B9EE0 0%, #1A6FAB 100%); border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-info-item__icon i { color: var(--white); font-size: 1rem; }
.contact-info-item__label { font-family: var(--font-heading); font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); margin-bottom: 0.25rem; }
.contact-info-item__value { font-family: var(--font-heading); font-weight: 700; font-size: 1.15rem; color: var(--text-dark); }
.contact-info-item__value a { color: var(--blue); text-decoration: none; }
.contact-info-item__value a:hover { color: var(--amber); }
.contact-info-item__sub { font-size: 0.83rem; color: var(--text-muted); margin-top: 0.2rem; }

/* Google Reviews Strip */
.reviews-strip { background: var(--navy); border-top: 1px solid rgba(255,255,255,0.07); border-bottom: 1px solid rgba(255,255,255,0.07); padding: 1.75rem 0; }
.reviews-strip__inner { display: flex; align-items: center; gap: 1.75rem; justify-content: center; flex-wrap: wrap; }
.reviews-strip__google { display: flex; align-items: center; gap: 0.65rem; }
.reviews-strip__google i { font-size: 1.4rem; }
.reviews-strip__label { font-family: var(--font-heading); font-weight: 700; font-size: 0.88rem; color: rgba(255,255,255,0.72); text-transform: uppercase; letter-spacing: 0.07em; }
.reviews-strip__stars { color: #FBBC05; font-size: 1.2rem; letter-spacing: 0.04em; line-height: 1; }
.reviews-strip__score { font-family: var(--font-heading); font-weight: 800; font-size: 1.4rem; color: var(--white); }
.reviews-strip__count { font-size: 0.88rem; color: rgba(255,255,255,0.62); }
.reviews-strip__divider { width: 1px; height: 30px; background: rgba(255,255,255,0.12); }
.reviews-strip__read { font-size: 0.9rem; color: var(--blue-light); text-decoration: none; font-weight: 600; transition: color var(--transition); }
.reviews-strip__read:hover { color: var(--white); }
.reviews-strip__write { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 1.35rem; background: var(--amber); color: var(--navy); font-family: var(--font-heading); font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.07em; text-decoration: none; border-radius: var(--radius); transition: background var(--transition), transform var(--transition); }
.reviews-strip__write:hover { background: var(--amber-dark); transform: translateY(-1px); }
@media (max-width: 768px) { .reviews-strip__divider { display: none; } .reviews-strip__inner { gap: 1rem; } }

/* Reviews section */
.reviews-section { background: linear-gradient(180deg, #0A1826 0%, #0D1B2A 50%, #0A1620 100%); padding: 5rem 0; }
.reviews-section__header { text-align: center; margin-bottom: 3rem; }
.reviews-section__header .section-eyebrow { display: inline-flex; margin-bottom: 0.75rem; }
.reviews-section__header h2 { color: var(--white); margin-bottom: 0.5rem; }
.reviews-section__header p { color: rgba(255,255,255,0.65); font-size: 0.95rem; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.review-card { background: linear-gradient(145deg, #1E3450 0%, #162840 100%); border: 1px solid rgba(245,166,35,0.2); border-top: 3px solid var(--amber); border-radius: var(--radius-lg); padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); position: relative; overflow: hidden; box-shadow: 0 6px 24px rgba(0,0,0,0.5), 0 0 0 1px rgba(245,166,35,0.06); }
.review-card::before { content: '\201C'; position: absolute; top: 0.5rem; right: 1rem; font-size: 4rem; color: rgba(245,166,35,0.12); font-family: Georgia, serif; line-height: 1; }
.review-card:hover { transform: translateY(-4px); box-shadow: 0 14px 44px rgba(0,0,0,0.55), 0 0 0 1px rgba(245,166,35,0.25); border-color: rgba(245,166,35,0.35); }
.review-card__header { display: flex; align-items: center; gap: 0.85rem; }
.review-card__avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--amber), var(--amber-dark)); display: flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-weight: 800; font-size: 1rem; color: var(--navy); flex-shrink: 0; }
.review-card__meta { flex: 1; min-width: 0; }
.review-card__name { font-family: var(--font-heading); font-weight: 700; font-size: 0.95rem; color: var(--white); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.review-card__date { font-size: 0.78rem; color: rgba(255,255,255,0.72); }
.review-card__stars { color: #FBBC05; font-size: 0.9rem; letter-spacing: 0.06em; }
.review-card__text { font-size: 0.9rem; line-height: 1.65; color: rgba(255,255,255,0.88); flex: 1; }
.review-card__source { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.75rem; font-family: var(--font-heading); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding: 0.3rem 0.7rem; border-radius: 4px; align-self: flex-start; }
.review-card__source--google { background: rgba(66,133,244,0.15); color: #6BA3F5; border: 1px solid rgba(66,133,244,0.2); }
.review-card__source--housecall { background: rgba(245,166,35,0.1); color: var(--amber); border: 1px solid rgba(245,166,35,0.2); }
.review-card__source--angi { background: rgba(0,181,145,0.1); color: #00C49A; border: 1px solid rgba(0,181,145,0.2); }
.review-card__source--website { background: rgba(59,158,224,0.12); color: var(--blue-light); border: 1px solid rgba(59,158,224,0.2); }
.reviews-section__footer { text-align: center; margin-top: 2.5rem; }
@media (max-width: 1024px) { .reviews-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  .reviews-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 1rem; padding-bottom: 0.5rem; }
  .reviews-grid::-webkit-scrollbar { display: none; }
  .review-card { flex: 0 0 82%; scroll-snap-align: start; min-width: 0; }
}
.reviews-strip-section { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.08); }
.reviews-strip-section__label { font-family: var(--font-heading); font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,0.55); margin-bottom: 1rem; }
.reviews-strip-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
.review-strip { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); border-radius: var(--radius); padding: 0.65rem 0.9rem; display: flex; align-items: center; gap: 0.75rem; }
.review-strip__avatar { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, var(--amber), var(--amber-dark)); display: flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-weight: 800; font-size: 0.75rem; color: var(--navy); flex-shrink: 0; }
.review-strip__meta { flex: 1; min-width: 0; }
.review-strip__name { font-family: var(--font-heading); font-weight: 700; font-size: 0.85rem; color: var(--white); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.review-strip__date { font-size: 0.7rem; color: rgba(255,255,255,0.72); }
.review-strip__stars { color: #FBBC05; font-size: 0.78rem; flex-shrink: 0; letter-spacing: 0.04em; }
@media (max-width: 640px) { .reviews-strip-grid { grid-template-columns: 1fr; } }

.review-featured { background: linear-gradient(135deg, #1A3050 0%, #0F2238 60%, #0A1826 100%); border: 1px solid rgba(245,166,35,0.35); border-left: 5px solid var(--amber); border-radius: var(--radius-lg); padding: 2.5rem 3rem; margin-bottom: 2.5rem; position: relative; overflow: hidden; box-shadow: 0 8px 40px rgba(0,0,0,0.5); }
.review-featured::before { content: '\201C'; position: absolute; top: -1.5rem; left: 1.75rem; font-size: 10rem; color: rgba(245,166,35,0.09); font-family: Georgia, serif; line-height: 1; pointer-events: none; }
.review-featured__eyebrow { font-family: var(--font-heading); font-weight: 700; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--amber); margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem; }
.review-featured__eyebrow::before { content: ''; display: inline-block; width: 20px; height: 2px; background: var(--amber); }
.review-featured__text { font-size: 1.18rem; line-height: 1.75; color: rgba(255,255,255,0.92); font-style: italic; margin-bottom: 1.75rem; position: relative; z-index: 1; }
.review-featured__footer { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.review-featured__avatar { width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(135deg, var(--amber), var(--amber-dark)); display: flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-weight: 800; font-size: 1.1rem; color: var(--navy); flex-shrink: 0; }
.review-featured__info { flex: 1; }
.review-featured__name { font-family: var(--font-heading); font-weight: 700; font-size: 1rem; color: var(--white); }
.review-featured__meta { font-size: 0.8rem; color: rgba(255,255,255,0.62); margin-top: 0.2rem; }
.review-featured__stars { color: #FBBC05; font-size: 1.05rem; letter-spacing: 0.06em; margin-left: auto; }
@media (max-width: 640px) { .review-featured { padding: 1.75rem 1.5rem; } .review-featured__text { font-size: 1rem; } .review-featured__stars { margin-left: 0; } }

/* Service/areas page tinted backgrounds */
.section:has(.service-content) { background: linear-gradient(180deg, #EEF5FF 0%, #F5F9FF 100%); }
/* Explicitly exclude dark/mid so their backgrounds are never overridden */
.section:has(.services-grid):not(.section--light):not(.section--dark):not(.section--mid) { background: linear-gradient(180deg, #EEF5FF 0%, #F5F9FF 100%); }
.section--light:has(.services-grid) { background: linear-gradient(180deg, #EEF5FF 0%, #F5F9FF 100%); }

/* Service cards on dark/mid sections: white cards pop against dark background */
.section--dark .service-card,
.section--mid .service-card { box-shadow: 0 6px 28px rgba(0,0,0,0.4), 0 0 0 1px rgba(245,166,35,0.08); }
.section--dark .service-card:hover,
.section--mid .service-card:hover { box-shadow: 0 20px 56px rgba(0,0,0,0.5), 0 0 0 1px rgba(245,166,35,0.18); }

/* Utilities */
.text-center { text-align: center; }
.text-amber { color: var(--amber); }
.text-blue { color: var(--blue); }
.text-white { color: var(--white); }
.mt-2 { margin-top: 2rem; }
.mt-3 { margin-top: 3rem; }
.mb-0 { margin-bottom: 0; }

/* Animations */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.4s ease, transform 0.4s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }

@keyframes icon-float {
  0%, 100% { transform: rotate(4deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-5px); }
}
.why-item__icon { animation: icon-float 4s ease-in-out infinite; }
.why-item:hover .why-item__icon { animation: none; }

/* qq-card two-column layout (faq, credentials, specialty pages) */
.qq-card--two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.qq-card__title { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; margin: 0 0 0.75rem; color: #ffffff; }
.qq-card__desc { font-size: 1rem; color: rgba(255,255,255,0.75); margin: 0 0 1.25rem; line-height: 1.65; }
.qq-card__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.qq-card__list li { display: flex; align-items: center; gap: 0.6rem; font-size: 0.95rem; color: rgba(255,255,255,0.85); }
.qq-card__list li i { color: var(--amber); font-size: 0.85rem; flex-shrink: 0; }

/* qq-card fallback, shows contact info while Tally iframe loads */
.qq-fallback { padding: 1.25rem 0 1rem; border-bottom: 1px solid #e8edf2; margin-bottom: 1.25rem; }
.qq-fallback__label { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #5a7080; margin: 0 0 0.35rem; }
.qq-fallback__phone { margin: 0 0 0.35rem; }
.qq-fallback__phone a { font-family: 'Barlow Condensed', sans-serif; font-size: 1.6rem; font-weight: 800; color: #0D1B2A; text-decoration: none; letter-spacing: -0.01em; }
.qq-fallback__phone a:hover { color: #c49200; }
.qq-fallback__sub { font-size: 0.85rem; color: #5a7080; margin: 0; }

/* Tally iframe, let dynamicHeight=1 control the height naturally */
iframe[data-tally-src],
iframe[src*="tally.so"] { width: 100%; border: none; display: block; }

/* qq-card__form: white card so form is always legible on dark backgrounds */
.qq-card__form { overflow: visible; background: #ffffff; border-radius: 14px; padding: 1.75rem; box-shadow: 0 16px 48px rgba(0,0,0,0.35); }

/* Responsive */
@media (max-width: 1024px) {
  .services-grid { grid-template-columns: repeat(2,1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .areas-grid { grid-template-columns: repeat(3,1fr); }
  .about-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .about-visual { max-width: 480px; width: 100%; margin: 0 auto; }
  .featured-service { grid-template-columns: 1fr; gap: 2rem; padding: 2.5rem; }
  .service-content { grid-template-columns: 1fr; }
  .service-sidebar { position: static; }
  .contact-grid { grid-template-columns: 1fr; gap: 3rem; }
}
@media (max-width: 768px) {
  .qq-card--two-col { grid-template-columns: 1fr; gap: 2rem; }
  .nav__menu { display: none; }
  .nav__toggle { display: flex; z-index: 1001; position: relative; }
  .nav__menu.open { display: flex; flex-direction: column; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--navy); align-items: center; justify-content: center; gap: 0.5rem; z-index: 999; padding: 2rem; }
  .nav__menu.open > li > a { font-size: 1.4rem; padding: 0.75rem 1.5rem; }
  .nav__menu.open .nav__dropdown-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; background: transparent; padding: 0 0 0 1.5rem; }
  .nav__actions { display: none; }
  .trust-bar__grid { grid-template-columns: repeat(2,1fr); }
  .trust-bar__item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
  .trust-bar__item:nth-child(3),.trust-bar__item:nth-child(4) { border-bottom: none; }
  .services-grid { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: 1fr; }
  .areas-grid { grid-template-columns: repeat(2,1fr); }
  .footer__grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer__bottom { flex-direction: column; text-align: center; }
  .featured-service { padding: 2rem 1.5rem; }
  .hero__phone-number { font-size: clamp(1.3rem, 8vw, 2.5rem); white-space: nowrap; }
  .hero__subtitle { margin-bottom: 1.25rem; }
  .form-row { grid-template-columns: 1fr; }
  .hero { min-height: 560px; padding-top: 7rem; }
}
@media (max-width: 480px) {
  .section { padding: 3.5rem 0; }
}

/* Mobile sticky CTA bar, single row: Call Us | Text Us | Submit */
.mobile-sticky-cta { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; display: none; background: #0D1B2A; border-top: 2px solid rgba(59,158,224,0.4); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); padding: 8px 10px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
@media (max-width: 767px) { .mobile-sticky-cta { display: block; } body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); } }
.mobile-sticky-cta__row { display: flex; align-items: stretch; gap: 6px; width: 100%; }
.mobile-sticky-cta__btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 11px 0; font-family: var(--font-heading); font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; line-height: 1; border-radius: 8px; transition: background 0.15s; min-height: 44px; }
.mobile-sticky-cta__btn--call { background: var(--amber); color: #0D1B2A; }
.mobile-sticky-cta__btn--call:hover { background: #e6951a; color: #0D1B2A; }
.mobile-sticky-cta__btn--sms { background: rgba(255,255,255,0.1); color: #ffffff; border: 1px solid rgba(255,255,255,0.22); }
.mobile-sticky-cta__btn--sms:hover { background: rgba(255,255,255,0.18); }
.mobile-sticky-cta__btn--submit { background: #1a6fab; color: #ffffff; }
.mobile-sticky-cta__btn--submit:hover { background: #155a8f; color: #ffffff; }

/* Bathroom showcase: match parent background on mobile to prevent color seam */
@media (max-width: 1024px) {
  .bath-scope-card { background: rgba(255,255,255,0.04); }
}

/* About section on light background, ensure right column text is readable */
.section--light .about-content .section-title { color: var(--text-dark); }
.section--light .about-content p { color: var(--text-body); }
.section--light .about-list li { color: var(--text-body); }

/* About cards: full width on phones, centered */
@media (max-width: 768px) {
  .about-visual { max-width: 100%; }
  .about-card { padding: 1.75rem 1.25rem; }
  .about-card__avatar { width: 150px; height: 150px; }
  .about-card__name { font-size: 1.6rem; }
  .about-card__stats { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .about-stat__number { font-size: 1.35rem; }
  .about-stat__label { font-size: 0.68rem; }
  .about-content { text-align: left; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MOBILE OPTIMIZATION v2, full audit fixes
   ═══════════════════════════════════════════════════════════════════════════ */

/* Nav: prevent menu items overflowing on short phones */
@media (max-width: 768px) {
  .nav__menu.open { overflow-y: auto; justify-content: flex-start; padding-top: 5rem; }
}

/* Form inputs: minimum 44px touch target height */
.form-group input,
.form-group select,
.form-group textarea { padding: 0.9375rem 1rem; }

/* FAQ question: comfortable 48px touch target */
.faq-question { padding: 1.25rem 1.5rem; }

/* 640px: typography and small button fixes */
@media (max-width: 640px) {
  .breadcrumb__list li,
  .breadcrumb__list a { font-size: 0.875rem; }
  .sidebar-info-row { font-size: 0.875rem; }
  .review-card__text { font-size: 0.95rem; }
  .review-strip__date { font-size: 0.78rem; }
  .reviews-strip__write { padding: 0.65rem 1.35rem; font-size: 0.88rem; }
}

/* 480px: layout, grid, and spacing fixes */
@media (max-width: 480px) {
  /* Hero */
  .hero { min-height: 480px; padding: 7.5rem 0 3rem; }
  .hero__content { max-width: 100%; }
  .hero__subtitle { max-width: 100%; }

  /* Page hero */
  .page-hero { padding: 6rem 0 3rem; }

  /* Featured service */
  .featured-service { padding: 1.5rem; gap: 1.5rem; }

  /* Contact form */
  .contact-form { padding: 1.5rem; }

  /* Service cards */
  .service-card { padding: 1.25rem; }

  /* Areas grid: single column */
  .areas-grid { grid-template-columns: 1fr; }

  /* btn--lg: smaller padding */
  .btn--lg { padding: 1rem 1.5rem; font-size: 1.1rem; }

  /* About card avatar */
  .about-card__avatar { width: 140px; height: 140px; }

  /* qq two-col gap reduction */
  .qq-card--two-col { gap: 2rem; }

  /* Form row gap */
  .form-row { gap: 0.75rem; }

  /* Review strip: single column already handled, but boost readability */
  .review-card__text { font-size: 1rem; }
}

/* 375px: very small phones, aggressive breathing room */
@media (max-width: 375px) {
  .container { padding: 0 1rem; }
  .section { padding: 3rem 0; }
  .btn { padding: 0.75rem 1.25rem; font-size: 1rem; }
  .btn--lg { padding: 0.875rem 1.25rem; font-size: 1rem; }
  .hero { min-height: 440px; padding: 7rem 0 2.5rem; }
  .about-content .section-title { font-size: 1.6rem; }
  .page-hero { padding: 5.5rem 0 2.5rem; }
  .contact-form { padding: 1.25rem; }
  .about-card { padding: 2rem 1.25rem; }
  .about-card__avatar { width: 120px; height: 120px; }
  .service-card { padding: 1rem; }
  .featured-service { padding: 1.25rem; gap: 1.25rem; }
  .trust-bar__number { font-size: 2.25rem; }
}

/* qq-section: project submission quick-quote section background */
.qq-section {
  position: relative;
  background: linear-gradient(135deg, #0D1B2A 0%, #122035 55%, #0a1520 100%);
  padding: 5rem 0;
  overflow: hidden;
}
@media (max-width: 768px) {
  .qq-section { padding: 3rem 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   COLOR SCHEME v25, improved visual hierarchy and card contrast
   ═══════════════════════════════════════════════════════════════════════════ */

/* why-items: warmer, more distinct from flat navy background */
.why-item {
  background: linear-gradient(160deg, #1F3555 0%, #0E1D2E 100%);
  border: 1px solid rgba(245,166,35,0.45);
  border-top: 4px solid var(--amber);
  box-shadow: 0 8px 32px rgba(0,0,0,0.5), 0 0 0 1px rgba(245,166,35,0.08);
}
.why-item:hover {
  background: linear-gradient(160deg, #172E4A 0%, #0B1828 100%);
  border-color: rgba(245,166,35,0.6);
  border-top-color: var(--amber);
  box-shadow: 0 16px 48px rgba(0,0,0,0.65), 0 0 28px rgba(245,166,35,0.18);
}

/* area-cards: more distinct from section background */
.area-card {
  background: linear-gradient(160deg, #1C3050 0%, #0F1E30 100%);
  border: 1px solid rgba(245,166,35,0.35);
  border-top: 4px solid var(--amber);
  box-shadow: 0 6px 24px rgba(0,0,0,0.55), 0 0 0 1px rgba(245,166,35,0.06);
}
.area-card:hover {
  background: linear-gradient(160deg, #223858 0%, #142030 100%);
  border-color: rgba(245,166,35,0.65);
  border-top-color: var(--amber);
  box-shadow: 0 14px 40px rgba(0,0,0,0.65), 0 0 28px rgba(245,166,35,0.2);
}
.area-card--primary {
  background: rgba(245,166,35,0.12);
  border: 1px solid rgba(245,166,35,0.6);
  border-top: 4px solid var(--amber);
  box-shadow: 0 4px 16px rgba(0,0,0,0.5), 0 0 36px rgba(245,166,35,0.28);
}

/* review-cards: dark fill keeps text readable; a crisp light border + gold top
   + strong shadow define the card so it does not blend into the section */
.review-card {
  background: linear-gradient(145deg, #1E3350 0%, #162840 100%);
  border: 1px solid rgba(255,255,255,0.16);
  border-top: 3px solid var(--amber);
  box-shadow: 0 12px 34px rgba(0,0,0,0.6), 0 0 0 1px rgba(245,166,35,0.1);
}
.review-card:hover {
  box-shadow: 0 14px 44px rgba(0,0,0,0.5), 0 0 0 1px rgba(245,166,35,0.28);
  border-color: rgba(245,166,35,0.38);
}

/* about-card: warmer ambient glow */
.about-card {
  background: linear-gradient(160deg, #1A2C40 0%, #0F1E2E 55%, #0B1825 100%);
  box-shadow: 0 12px 50px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.07), 0 0 60px rgba(245,166,35,0.05);
}

/* section--mid: slightly more visual depth */
.section--mid {
  background: linear-gradient(170deg, #1C3050 0%, #1A2D42 50%, #142438 100%);
}

/* reviews-section: deeper contrast for card legibility */
.reviews-section {
  background: linear-gradient(180deg, #0C1E30 0%, #0F2238 40%, #0A1826 100%);
}

/* sidebar-card: distinct from surrounding dark areas */
.sidebar-card {
  background: #192C40;
  border: 1px solid rgba(255,255,255,0.1);
}

/* featured-service: stronger amber ambient presence */
.featured-service {
  background: linear-gradient(140deg, #1E3550 0%, #102030 55%, #0A1220 100%);
  border: 1px solid rgba(245,166,35,0.3);
  box-shadow: 0 24px 72px rgba(0,0,0,0.65), 0 0 100px rgba(245,166,35,0.08);
}

/* trust-bar: subtle amber warmth in gradient */
.trust-bar {
  background: linear-gradient(135deg, #192C42 0%, #1A2D42 100%);
  border-top: 3px solid var(--amber);
  border-bottom: 1px solid rgba(245,166,35,0.12);
}

/* Links inside dark cards (why-item on --mid, about page service cards) */
.why-item__desc a { color: var(--blue-light); text-decoration: underline; text-decoration-color: rgba(107,184,236,0.35); }
.why-item__desc a:hover { color: var(--amber); text-decoration-color: rgba(245,166,35,0.5); }

/* section--dark: service card titles and desc stay dark (card is white), already correct */
/* section--dark section-title accent stays amber, already correct */
.section--dark .section-title .accent { color: var(--amber); }
.section--dark .section-eyebrow { color: var(--amber); }

/* hero: slightly richer background gradient */
.hero {
  background: linear-gradient(135deg, #0A1828 0%, #0D1B2A 60%, #0F2035 100%);
}

/* footer: deeper black anchor with amber top border */
.footer {
  background: linear-gradient(180deg, #060E18 0%, #04090F 100%);
  border-top: 4px solid var(--amber);
}

/* Light section contrast improvements */
/* City coverage grid links: amber fails contrast on light bg, use accessible blue */
.section--light .city-coverage-grid li a { color: #1A6FAB; }
.section--light .city-coverage-grid li a:hover { color: var(--navy); text-decoration: underline; }
/* ZIP badges: flip from dark-on-light to light card for visual consistency */
.section--light .zip-badge { background: #FFFFFF; color: #374151; border: 1px solid #BDD0E3; }
/* Sidebar info row text readable on light background (near-me pages) */
.section--light .sidebar-info-row:not(.sidebar-cta .sidebar-info-row):not(.sidebar-card--cta .sidebar-info-row) { color: var(--text-muted); }
.section--light .sidebar-info-row:not(.sidebar-cta .sidebar-info-row):not(.sidebar-card--cta .sidebar-info-row) i { color: var(--blue-dark); }

/* ---- owner-review contrast fixes (readable links on dark + light cards) ---- */
.service-content__main .service-list li a { color: #1A6FAB; font-weight: 600; }
.service-content__main a:not(.btn) { color: #1A6FAB; }
.service-content__main .service-list li a:hover { color: var(--text-dark); }
.service-sidebar .sidebar-card a:not(.btn) { color: #8FCBF2 !important; font-weight: 600; }
.service-sidebar .sidebar-card a:not(.btn):hover { color: #BFE3FB !important; }

/* Keyboard focus indicator (a11y) */
a:focus-visible, button:focus-visible, .btn:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, .faq-question:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; border-radius: 3px; }
/* form card: branded gold accent so it is not a stark white slab */
.qq-card { border-top: 4px solid var(--amber); }

/* Invisible photo-ready hero slot: shows nothing until an <img src> is set */
.page-hero__media { display: none; }
.page-hero__photo { width: 100%; height: auto; border-radius: 16px; box-shadow: 0 30px 70px rgba(0,0,0,0.5); display: block; }
@media (min-width: 900px) {
  .page-hero:has(.page-hero__media img[src]:not([src=""])) .container,
  .page-hero.has-photo .container { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 3.5rem; align-items: center; }
  .page-hero:has(.page-hero__media img[src]:not([src=""])) .page-hero__media,
  .page-hero.has-photo .page-hero__media { display: block; }
}

/* Company "Who You Are Hiring" trust band (every service page) */
.about-band { background: linear-gradient(160deg, #16263a 0%, #0d1b2a 100%); }
.about-band__inner { display: grid; grid-template-columns: 1.25fr 1fr; gap: 3.5rem; align-items: center; }
.about-band__eyebrow { display: inline-block; font-family: var(--font-heading); font-size: 0.95rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--amber); margin-bottom: 0.75rem; }
.about-band__title { color: #fff; font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: 1rem; }
.about-band__text p { color: rgba(255,255,255,0.86); font-size: 1.05rem; line-height: 1.7; margin: 0; }
.about-band__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.about-stat-box { background: rgba(255,255,255,0.04); border: 1px solid rgba(245,166,35,0.25); border-top: 3px solid var(--amber); border-radius: 10px; padding: 1.25rem 1rem; text-align: center; }
.about-stat-box__num { font-family: var(--font-heading); font-size: 1.7rem; font-weight: 800; color: var(--amber); line-height: 1; margin-bottom: 0.4rem; }
.about-stat-box__label { font-size: 0.82rem; color: rgba(255,255,255,0.82); line-height: 1.3; }
@media (max-width: 768px) { .about-band__inner { grid-template-columns: 1fr; gap: 2rem; } }
.qq-section { scroll-margin-top: 6rem; }

/* Unified owners card (Jacob + Jay side by side, shared company stats) */
.owners-card { padding: 2.5rem 2rem; }
.owners-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: start; }
.owners-pair .owner { position: relative; padding: 0 0.5rem; }
.owners-pair .owner:first-child::after { content: ''; position: absolute; top: 6%; bottom: 6%; right: -0.75rem; width: 1px; background: rgba(255,255,255,0.12); }
.owners-pair .about-card__avatar { width: 132px; height: 132px; margin-bottom: 1rem; box-shadow: 0 0 0 4px var(--amber), 0 8px 24px rgba(245,166,35,0.4); }
.owners-pair .about-card__name { font-size: 1.4rem; }
.owners-pair .about-card__title { margin-bottom: 0; }
.owners-stats { margin-top: 1.25rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,0.10); }
.owners-pair .about-card__avatar img[alt^="Jay Mora"] { transform: scale(1.14); transform-origin: center 26%; }
@media (max-width: 768px) {
  .owners-pair { grid-template-columns: 1fr; gap: 1.75rem; }
  .owners-pair .owner:first-child::after { display: none; }
  .owners-pair .owner:first-child { border-bottom: 1px solid rgba(255,255,255,0.12); padding-bottom: 1.75rem; }
  .owners-pair .about-card__avatar { width: 120px; height: 120px; }
}

/* Services page: sticky desktop "Tell Us About Your Project" CTA card */
/* Slim floating "Tell us about your project" card. Vertically centered on the right.
   Shows only at >=1536px so it sits in the side gutter and never overlaps the 1200px content. */
.services-cta-card { position: fixed; right: 18px; bottom: 10vh; width: 158px; z-index: 90; background: linear-gradient(165deg, #1a2c44 0%, #122036 55%, #0c1828 100%); border: 1px solid rgba(245,166,35,0.4); border-top: 4px solid var(--amber); border-radius: 14px; padding: 1rem 0.85rem 0.8rem; box-shadow: 0 16px 44px rgba(0,0,0,0.55); text-align: center; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease; }
.services-cta-card.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.services-cta-card__icon { width: 36px; height: 36px; margin: 0 auto 0.55rem; border-radius: 9px; background: var(--amber); display: flex; align-items: center; justify-content: center; color: #0A1620; font-size: 0.95rem; }
.services-cta-card__title { font-family: var(--font-heading); font-weight: 700; font-size: 1.08rem; line-height: 1.2; color: #fff; margin: 0 0 0.85rem; }
.services-cta-card__btn { display: block; width: 100%; text-align: center; justify-content: center; padding: 0.62rem 0.5rem; font-size: 1rem; letter-spacing: 0.02em; }
@media (max-width: 1535px) { .services-cta-card { display: none; } }

/* === Templated page readability + layout fixes (uniformity pass) === */
/* Dark inline info bands (var(--surface-2)) had dark-on-dark text: force readable light */
[style*="--surface-2"] { color: #e3ebf3; }
[style*="--surface-2"] p, [style*="--surface-2"] strong, [style*="--surface-2"] li { color: #e3ebf3 !important; }
[style*="--surface-2"] strong { color: #ffffff !important; }
/* Dark sidebar cards: force readable text, overriding low-contrast inline muted */
.service-content__sidebar .sidebar-cta p,
.service-content__sidebar [style*="text-muted"],
.service-sidebar .sidebar-card p[style*="text-muted"] { color: rgba(255,255,255,0.82) !important; }
/* Service link lists on the light main content: dark navy, readable on white (not light blue/amber) */
.service-content__main .service-list li a,
.service-content__main a:not(.btn) { color: #134a73 !important; font-weight: 600; }
.service-content__main a:not(.btn):hover { color: #0c3454 !important; }

/* === Hero trust strip + dual actions (every page opens with orientation) === */
.hero-trust { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1.5rem 0 1.25rem; }
.hero-trust__chip { display: inline-flex; align-items: center; gap: 0.45rem; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.16); border-radius: 999px; padding: 0.4rem 0.9rem; font-size: 0.85rem; font-weight: 600; color: rgba(255,255,255,0.92); }
.hero-trust__chip i { color: var(--amber); font-size: 0.8rem; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: 0.25rem; }
@media (max-width: 600px) { .hero-trust__chip { font-size: 0.76rem; padding: 0.35rem 0.7rem; } .page-hero__actions .btn { width: 100%; justify-content: center; } }

/* ===== Quote panel (qq) uniform rollout 2026-06-29 (centralized, overrides inline) ===== */
.qq-trust { display: flex; flex-direction: column; justify-content: space-between; }
.qq-section .qq-grid { align-items: stretch; }
.qq-section .qq-eyebrow { font-size: 1.02rem; letter-spacing: 0.18em; gap: 0.7rem; margin-bottom: 1.1rem; }
.qq-section .qq-eyebrow::before { width: 34px; }
.qq-section .qq-subhead { font-size: 1.22rem; line-height: 1.7; color: rgba(255,255,255,0.92); margin: 0 0 1.75rem; }
.qq-steps { display: flex; flex-direction: column; gap: 1.3rem; margin: 0 0 1.9rem; }
.qq-step { display: flex; gap: 1.05rem; align-items: flex-start; }
.qq-step__n { flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; background: rgba(245,166,35,0.14); border: 1.5px solid rgba(245,166,35,0.5); color: var(--amber); font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.2rem; display: flex; align-items: center; justify-content: center; line-height: 1; }
.qq-step__body { color: rgba(255,255,255,0.84); font-size: 1.06rem; line-height: 1.55; }
.qq-step__body strong { display: block; color: #fff; font-weight: 700; font-size: 1.2rem; margin-bottom: 0.2rem; letter-spacing: 0.005em; }
.qq-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 0.75rem; margin: 0 0 1.6rem; padding: 1.1rem 0; border-top: 1px solid rgba(255,255,255,0.1); border-bottom: 1px solid rgba(255,255,255,0.1); }
.qq-stat { display: flex; flex-direction: column; gap: 0.15rem; }
.qq-stat__n { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.8rem; color: var(--amber); line-height: 1; }
.qq-stat__l { font-size: 0.92rem; color: rgba(255,255,255,0.68); line-height: 1.25; }
.qq-reassure { display: flex; align-items: flex-start; gap: 0.8rem; background: rgba(245,166,35,0.08); border: 1px solid rgba(245,166,35,0.24); border-radius: 11px; padding: 1.05rem 1.2rem; color: rgba(255,255,255,0.88); font-size: 1.05rem; line-height: 1.5; }
.qq-reassure i { color: var(--amber); font-size: 1.2rem; margin-top: 0.15rem; flex-shrink: 0; }
.qq-reassure strong { color: #fff; font-weight: 700; }
.qq-section .qq-call { margin-top: 1.5rem; }
.qq-call-right-title { font-family: 'Barlow Condensed', sans-serif; font-size: 1.05rem; font-weight: 700; color: #3B9EE0; margin: 0 0 0.2rem; line-height: 1.3; letter-spacing: 0.02em; }
.qq-call-right-sub { font-size: 0.78rem; color: rgba(255,255,255,0.55); margin: 0; letter-spacing: 0.04em; text-transform: uppercase; }
@media (min-width: 801px) { .qq-call-divider, .qq-call-right { display: none; } }
@media (max-width: 800px) {
 .qq-section .qq-call { display: flex; align-items: center; gap: 0; }
 .qq-call-left { flex: 1.35; min-width: 0; padding-right: 1.1rem; }
 .qq-call-left .qq-call-number { font-size: clamp(1.1rem, 5vw, 1.55rem); }
 .qq-call-divider { display: block; width: 1px; background: rgba(255,255,255,0.22); align-self: stretch; flex-shrink: 0; }
 .qq-call-right { display: flex; flex-direction: column; justify-content: center; flex: 1; min-width: 0; padding-left: 1.1rem; }
}
