*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --navy: #1C1712;
  --navy-light: #26201A;
  --navy-mid: #2B241D;
  --blue: #C99A2E;
  --blue-dark: #876318;
  --blue-light: #E4C06A;
  --amber: #C99A2E;
  --amber-dark: #B8892A;
  --white: #FFFFFF;
  --off-white: #FFFDF9;
  --light-bg: #F8F2E8;
  --text-dark: #1F1B17;
  --text-body: #2E2822;
  --text-muted: #5C544A;
  --border: #E9E0D2;
  --shadow-sm: 0 2px 8px rgba(31,27,23,0.08);
  --shadow-md: 0 8px 32px rgba(31,27,23,0.12);
  --shadow-lg: 0 16px 48px rgba(31,27,23,0.16);
  --radius: 8px;
  --radius-lg: 16px;
  --transition: 0.3s ease;
  --font-heading: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Barlow', 'Helvetica Neue', Arial, sans-serif;
  /* Semantic aliases, used in inline styles across pages */
  --surface: #26201A;
  --surface-alt: #2B241D;
  --surface-2: #171310;
  --text: #FFFFFF;
  --gray: #B8AFA3;
  --gray-dark: #5C544A;
  /* Mora Home Services skin tokens */
  --ink: #1C1712; --ink-2: #26201A; --cream: #F8F2E8; --paper: #FFFFFF; --stone: #E9E0D2; --stone-2: #D6C7AE;
  --gold: #C99A2E; --gold-soft: #E4C06A; --gold-text: #876318; --on-ink: #FBF6EE; --on-ink-muted: rgba(251,246,238,0.86);
}
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--dark { background: #1C1712; color: var(--white); }
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4 { color: var(--white); }
.section--light { background: #F8F2E8; background-image: radial-gradient(circle at 15% 50%, rgba(201,154,46,0.07) 0%, transparent 50%), radial-gradient(circle at 85% 20%, rgba(201,154,46,0.05) 0%, transparent 40%); }
.section--mid { background: #26201A; color: var(--white); }
.section--mid h1,.section--mid h2,.section--mid h3,.section--mid h4 { color: var(--white); }
.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(201,154,46,0.4); }
.btn--blue { background: #876318; color: var(--white); border-color: #876318; }
.btn--blue:hover { background: #6E5112; border-color: #6E5112; color: var(--white); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(201,154,46,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 { 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: 0.75rem 0; padding-top: calc(0.75rem + env(safe-area-inset-top)); }
.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); }
@media (max-width: 1200px) {
.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; 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 { position: relative; min-height: 600px; background: var(--navy); display: flex; align-items: center; overflow: hidden; padding: 5.75rem 0 2.5rem; }
.hero__bg-pattern { position: absolute; inset: 0; background-image: linear-gradient(rgba(201,154,46,0.03) 1px,transparent 1px), linear-gradient(90deg,rgba(201,154,46,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(201,154,46,0.12); border: 1px solid rgba(201,154,46,0.25); color: var(--blue-light); font-family: var(--font-heading); font-size: 0.9rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.4rem 1rem; border-radius: 100px; margin-bottom: 1rem; }
.hero__badge i { color: var(--amber); font-size: 0.75rem; }
.hero__title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(4.9rem,9.5vw,8rem); line-height: 0.85; color: var(--white); text-transform: uppercase; letter-spacing: -0.01em; margin-bottom: 1.1rem; }
.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.5; max-width: 600px; margin-bottom: 1.25rem; }
.hero__actions { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1.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); }
@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; }
.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); }
.service-card:hover { border-color: var(--amber); border-top-color: var(--amber); box-shadow: 0 20px 56px rgba(31,27,23,0.20), 0 0 0 1px rgba(201,154,46,0.15); transform: translateY(-6px); }
.service-card:hover::before { transform: scaleX(1); }
.service-card:hover .service-card__icon { transform: scale(1.08) rotate(-3deg); box-shadow: 0 6px 20px rgba(201,154,46,0.5); }
.service-card:hover .service-card__link { color: var(--amber); }
.why-item:hover { background: linear-gradient(160deg, #26201A 0%, #171310 100%); border-color: rgba(201,154,46,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(201,154,46,0.15); }
.why-item:hover .why-item__icon { transform: rotate(0deg) scale(1.12); box-shadow: 0 8px 28px rgba(201,154,46,0.5); }
.why-item:hover .why-item__icon i { transform: rotate(0deg); }
.about-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 5rem; align-items: center; }
.about-card { background: linear-gradient(160deg, #26201A 0%, #1C1712 55%, #171310 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(201,154,46,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; }
.area-card:hover { background: linear-gradient(160deg, #2B241D 0%, #26201A 100%); border-color: rgba(201,154,46,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(201,154,46,0.18); }
.area-card:hover i { transform: scale(1.25); }
.cta-phone:hover { color: var(--amber-dark); text-shadow: 0 0 40px rgba(201,154,46,0.45); }
.footer { background: #1C1712; padding: 3rem 0 0; border-top: 4px solid var(--amber); }
.footer, .footer__heading, .footer__col h4, .footer__col h3 { color: rgba(255,255,255,0.72); }
.footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 3.5rem; }
.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__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:hover { color: var(--white); }
.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(201,154,46,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(201,154,46,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-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 #E9E0D2; border-left: 5px solid var(--amber); box-shadow: 0 4px 20px rgba(31,27,23,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(31,27,23,0.17); }
.service-sidebar { position: sticky; top: 6rem; display: flex; flex-direction: column; gap: 1.5rem; }
.sidebar-card { background: #26201A; 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, #2B241D 0%, #2B241D 60%, #1C1712 100%); box-shadow: 0 8px 32px rgba(31,27,23,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(201,154,46,0.4) 50%, var(--amber) 100%); }
.sidebar-cta { background: linear-gradient(150deg, #2B241D 0%, #2B241D 60%, #1C1712 100%); border-radius: var(--radius-lg); padding: 1.75rem; position: relative; overflow: hidden; box-shadow: 0 8px 32px rgba(31,27,23,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(201,154,46,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-list { display: flex; flex-direction: column; gap: 0.5rem; max-width: 100%; margin: 1.5rem 0; }
.faq-item { border: 1px solid #E9E0D2; border-left: 3px solid var(--amber); border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 2px 6px rgba(31,27,23,0.05), 0 14px 32px rgba(31,27,23,0.11); transition: box-shadow var(--transition), transform var(--transition); }
.faq-item:hover { transform: translateY(-2px); box-shadow: 0 2px 6px rgba(31,27,23,0.05), 0 20px 44px rgba(31,27,23,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: #FFFDF9; }
.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(201,154,46,0.12); }
.faq-item.open .faq-question { background: #FFFDF9; 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: #FFFDF9; }
.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 #E9E0D2; }
.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 .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(201,154,46,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(201,154,46,0.2); background: rgba(255,255,255,0.1); }
.contact-info-item:hover { transform: translateY(-5px); box-shadow: 0 2px 6px rgba(31,27,23,0.05), 0 26px 52px rgba(31,27,23,0.16); }
.contact-info-item__value a:hover { color: var(--amber); }
.section--dark .contact-info-item:hover { transform: translateY(-5px); box-shadow: 0 20px 50px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.07); }
.section--dark .faq-item { background: linear-gradient(150deg,#2B241D 0%,#26201A 100%); border: 1px solid rgba(255,255,255,0.12); border-left: 3px solid var(--amber); box-shadow: 0 12px 32px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.06); }
.section--dark .faq-item:hover { box-shadow: 0 16px 42px rgba(0,0,0,0.5); }
.section--dark .faq-question { background: transparent; color: #fff; }
.section--dark .faq-question:hover { background: rgba(255,255,255,0.03); }
.section--dark .faq-item.open { border-color: var(--amber); box-shadow: 0 12px 36px rgba(201,154,46,0.10); }
.section--dark .faq-item.open .faq-question { background: rgba(201,154,46,0.07); color: #fff; }
.section--dark .faq-item.open .faq-question i { color: var(--amber); }
.section--dark .faq-answer { background: rgba(0,0,0,0.20); }
.section--dark .faq-answer__inner { color: rgba(255,255,255,0.80); }
.section--dark .service-list li:hover { box-shadow: 0 14px 38px rgba(0,0,0,0.5); }
.section--dark .service-list li a:hover { color: var(--amber); }
.section--mid .city-coverage-grid li a:hover, .section--dark .city-coverage-grid li a:hover { color: var(--amber); }
.section--mid .service-content__main a:not(.btn), .section--dark .service-content__main a:not(.btn) { color: var(--blue-light) !important; }
[style*="surface-2"] a:not(.btn) { color: var(--blue-light) !important; }
.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__divider { width: 1px; height: 30px; background: rgba(255,255,255,0.12); }
.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; }
}
.review-card:hover { transform: translateY(-4px); box-shadow: 0 14px 44px rgba(0,0,0,0.55), 0 0 0 1px rgba(201,154,46,0.25); border-color: rgba(201,154,46,0.35); }
.reviews-section--light .btn--outline { color: var(--navy); border-color: var(--navy); }
.reviews-section--light .btn--outline:hover { background: var(--navy); color: #fff; }
.section:has(.service-content) { background: linear-gradient(180deg, #FBF7F0 0%, #FFFDF9 100%); }
.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(201,154,46,0.18); }
.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:hover .why-item__icon { animation: none; }
.qq-fallback__phone a:hover { color: #876318; }
@media (max-width: 1024px) {
.footer__grid { grid-template-columns: 1fr 1fr; }
.about-grid { grid-template-columns: 1fr; gap: 2.5rem; }
.about-visual { max-width: 480px; width: 100%; margin: 0 auto; }
.service-content { grid-template-columns: 1fr; }
.service-sidebar { position: static; }
}
@media (max-width: 768px) {
.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; }
.footer__grid { grid-template-columns: 1fr; gap: 2rem; }
.footer__bottom { flex-direction: column; text-align: center; }
.hero__phone-number { font-size: clamp(1.3rem, 8vw, 2.5rem); white-space: nowrap; }
.hero__subtitle { margin-bottom: 1.25rem; }
.hero { min-height: 560px; padding-top: 4.75rem; }
}
@media (max-width: 480px) {
.section { padding: 3.5rem 0; }
}
.mobile-sticky-cta { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; display: none; background: #1C1712; border-top: 2px solid rgba(201,154,46,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: #1C1712; }
.mobile-sticky-cta__btn--call:hover { background: #B8892A; color: #1C1712; }
.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: #876318; color: #ffffff; }
.mobile-sticky-cta__btn--submit:hover { background: #6E5112; color: #ffffff; }
.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); }
@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; }
}
@media (max-width: 768px) {
.nav__menu.open { overflow-y: auto; justify-content: flex-start; padding-top: 5rem; }
}
.faq-question { padding: 1.25rem 1.5rem; }
@media (max-width: 640px) {
.breadcrumb__list li,
  .breadcrumb__list a { font-size: 0.875rem; }
.sidebar-info-row { font-size: 0.875rem; }
.reviews-strip__write { padding: 0.65rem 1.35rem; font-size: 0.88rem; }
}
@media (max-width: 480px) {
.hero { min-height: 480px; padding: 4.75rem 0 3rem; }
.hero__content { max-width: 100%; }
.hero__subtitle { max-width: 100%; }
.page-hero { padding: 4.75rem 0 3rem; }
.btn--lg { padding: 1rem 1.5rem; font-size: 1.1rem; }
.about-card__avatar { width: 140px; height: 140px; }
}
@media (max-width: 375px) {
.btn { padding: 0.75rem 1.25rem; font-size: 1rem; }
.btn--lg { padding: 0.875rem 1.25rem; font-size: 1rem; }
.hero { min-height: 440px; padding: 4.75rem 0 2.5rem; }
.about-content .section-title { font-size: 1.6rem; }
.about-card { padding: 2rem 1.25rem; }
.about-card__avatar { width: 120px; height: 120px; }
}
.qq-section {
  position: relative;
  background: linear-gradient(135deg, #1C1712 0%, #26201A 55%, #171310 100%);
  padding: 5rem 0;
  overflow: hidden;
}
@media (max-width: 768px) {
.qq-section { padding: 3rem 0; }
}
.why-item:hover {
  background: linear-gradient(160deg, #2B241D 0%, #171310 100%);
  border-color: rgba(201,154,46,0.6);
  border-top-color: var(--amber);
  box-shadow: 0 16px 48px rgba(0,0,0,0.65), 0 0 28px rgba(201,154,46,0.18);
}
.area-card:hover {
  background: linear-gradient(160deg, #2B241D 0%, #26201A 100%);
  border-color: rgba(201,154,46,0.65);
  border-top-color: var(--amber);
  box-shadow: 0 14px 40px rgba(0,0,0,0.65), 0 0 28px rgba(201,154,46,0.2);
}
.review-card:hover {
  box-shadow: 0 14px 44px rgba(0,0,0,0.5), 0 0 0 1px rgba(201,154,46,0.28);
  border-color: rgba(201,154,46,0.38);
}
.about-card {
  background: linear-gradient(160deg, #2B241D 0%, #26201A 55%, #171310 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(201,154,46,0.05);
}
.section--mid {
  background: linear-gradient(170deg, #2B241D 0%, #26201A 50%, #26201A 100%);
}
.sidebar-card {
  background: #26201A;
  border: 1px solid rgba(255,255,255,0.1);
}
.why-item__desc a:hover { color: var(--amber); text-decoration-color: rgba(201,154,46,0.5); }
.section--dark .section-eyebrow { color: var(--amber); }
.hero {
  background: linear-gradient(135deg, #1C1712 0%, #1C1712 60%, #26201A 100%);
}
.footer {
  background: linear-gradient(180deg, #1C1712 0%, #171310 100%);
  border-top: 4px solid var(--amber);
}
.section--light .city-coverage-grid li a:hover { color: var(--navy); text-decoration: underline; }
.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); }
.service-content__main .service-list li a { color: #876318; font-weight: 600; }
.service-content__main a:not(.btn) { color: #876318; }
.service-content__main .service-list li a:hover { color: var(--text-dark); }
.service-sidebar .sidebar-card a:not(.btn) { color: #E4C06A !important; font-weight: 600; }
.service-sidebar .sidebar-card a:not(.btn):hover { color: #F1D99A !important; }
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; }
.qq-card { border-top: 4px solid var(--amber); }
.about-band { background: #F8F2E8; background-image: radial-gradient(circle at 15% 50%, rgba(201,154,46,0.07) 0%, transparent 50%), radial-gradient(circle at 85% 20%, rgba(201,154,46,0.05) 0%, transparent 40%); }
.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: #876318; margin-bottom: 0.75rem; }
.about-band__title { color: var(--text-dark); font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: 1rem; }
.about-band__text p { color: var(--text-body); 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: #FFFFFF; border: 1px solid #E9E0D2; 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(--navy); line-height: 1; margin-bottom: 0.4rem; }
.about-stat-box__label { font-size: 0.82rem; color: var(--text-muted); line-height: 1.3; }
@media (max-width: 768px) {
.about-band__inner { grid-template-columns: 1fr; gap: 2rem; }
}
.qq-section { scroll-margin-top: 6rem; }
.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(201,154,46,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; }
}
.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-content__main .service-list li a,
.service-content__main a:not(.btn) { color: #876318 !important; font-weight: 600; }
.service-content__main a:not(.btn):hover { color: #6E5112 !important; }
.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; }
}
.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(201,154,46,0.14); border: 1.5px solid rgba(201,154,46,0.5); color: var(--amber); font-family: var(--font-heading); 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: var(--font-heading); 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(201,154,46,0.08); border: 1px solid rgba(201,154,46,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: var(--font-heading); font-size: 1.05rem; font-weight: 700; color: #C99A2E; 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; }
}
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 2000; background: var(--amber); color: #1C1712; padding: 0.75rem 1.25rem; font-weight: 700; border-radius: 0 0 6px 0; }
.skip-link:focus { left: 0; }
.nav__dropdown:focus-within .nav__dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
.reveal { opacity: 1 !important; transform: none !important; }
}
@media (max-width: 640px) {
.faq-answer__inner { font-size: 1.0625rem; line-height: 1.8; }
.page-hero__desc { color: rgba(255,255,255,0.85); }
.mobile-sticky-cta__btn { font-size: 15px; }
}
@media (max-width: 640px) {
.qq-call .qq-call-label { font-size: 0.9375rem; color: rgba(255,255,255,0.72); }
.qq-call .qq-call-hours { font-size: 0.9375rem; color: rgba(255,255,255,0.75); }
.qq-call .qq-call-right-sub { font-size: 0.875rem; color: rgba(255,255,255,0.78); }
.about-stat__label { font-size: 0.875rem; color: rgba(255,255,255,0.88); }
.about-card__title { font-size: 0.9375rem; }
.footer__address { font-size: 0.9375rem; color: rgba(255,255,255,0.88); }
.footer__links a { font-size: 1rem; }
.footer__copyright { font-size: 0.875rem; }
.hero__phone-label { font-size: 0.875rem; }
.about-stat-box__label { font-size: 0.875rem; }
.mhic-license { font-size: 0.875rem !important; }
}
.service-card:hover, .area-card:hover { transform: translateY(-4px); border-color: var(--amber); box-shadow: 0 10px 30px rgba(201,154,46,0.18); }
.featured-service[data-fullclick]:hover { box-shadow: 0 12px 34px rgba(201,154,46,0.16); }
.section--light .city-index__list a:hover { color: var(--navy); text-decoration: underline; }
.section--mid .city-index__list a:hover, .section--dark .city-index__list a:hover { color: var(--amber); text-decoration: underline; }
.footer__social a:hover { color: var(--white); transform: translateY(-2px); }
.nav__toggle { padding: 14px 10px; margin: -10px -6px; }
@media (max-width: 480px) {
.nav__inner { gap: 0.75rem; }
.nav__logo-img { height: 34px; }
.nav .nav__logo { padding: 0.25rem 0.5rem 0.25rem 0.3rem; }
}
@media (max-width: 375px) {
.about-card__stats { grid-template-columns: 1fr; }
.owners-card { padding: 2rem 1.25rem; }
}
.service-list li:not(:has(i)) { display: block; }
footer a { display: inline-block; padding: 0.25rem 0; }
footer a[href^="tel:"] { display: inline-flex; align-items: center; min-height: 44px; padding: 0.2rem 0; }
@media (max-width: 768px) {
.breadcrumb[style] { margin-top: 4.75rem !important; }
}
.qq-section {
 position: relative;
 background: linear-gradient(135deg, #1C1712 0%, #26201A 55%, #171310 100%);
 padding: 5rem 0;
 overflow: hidden;
 }
.qq-bg-pattern {
 position: absolute; inset: 0; pointer-events: none;
 background-image:
 radial-gradient(circle at 15% 50%, rgba(201,154,46,0.07) 0%, transparent 50%),
 radial-gradient(circle at 85% 20%, rgba(201,154,46,0.06) 0%, transparent 45%);
 }
.qq-grid {
 display: grid;
 grid-template-columns: 1fr 1.1fr;
 gap: 3.5rem;
 align-items: stretch;
 position: relative;
 z-index: 1;
 }
.qq-trust { display: flex; flex-direction: column; justify-content: space-between; }
.qq-eyebrow {
 display: inline-flex; align-items: center; gap: 0.7rem;
 font-family: var(--font-heading);
 font-size: 1.02rem; font-weight: 700; letter-spacing: 0.18em;
 text-transform: uppercase; color: var(--amber);
 margin-bottom: 1.1rem;
 }
.qq-eyebrow::before {
 content: ''; display: block;
 width: 34px; height: 2px; background: var(--amber);
 }
.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(201,154,46,0.14); border: 1.5px solid rgba(201,154,46,0.5);
 color: var(--amber); font-family: var(--font-heading);
 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: var(--font-heading); 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(201,154,46,0.08);
 border: 1px solid rgba(201,154,46,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-heading {
 font-family: var(--font-heading);
 font-size: clamp(2.4rem, 4vw, 3.2rem);
 font-weight: 800; line-height: 1.05;
 color: #fff; margin: 0 0 1.1rem; letter-spacing: -0.01em;
 }
.qq-subhead {
 font-size: 1.22rem; line-height: 1.7;
 color: rgba(255,255,255,0.92);
 margin: 0 0 1.75rem;
 }
.qq-card {
 background: #ffffff;
 border: none;
 border-radius: 16px;
 padding: 2.25rem;
 box-shadow: 0 24px 60px rgba(0,0,0,0.45);
 }
.qq-field input::placeholder,
 .qq-field textarea::placeholder { color: #5a7080; }
.qq-field input:focus,
 .qq-field textarea:focus {
 outline: none;
 border-color: var(--amber);
 background: #fffbf2;
 }
.qq-upload-zone:hover,
 .qq-upload-zone.drag-over {
 border-color: var(--amber);
 background: #fff4d6;
 }
.qq-file-item__remove:hover { color: #e55; }
.qq-add-more:hover { text-decoration: underline; }
.qq-submit:hover { background: #B8892A; transform: translateY(-1px); }
.qq-submit:active { transform: translateY(0); }
.qq-call { margin-top: 1.5rem; padding-top: 1.75rem; border-top: 1px solid rgba(255,255,255,0.12); }
.qq-call-label { font-size: 0.85rem; color: rgba(255,255,255,0.74); margin: 0 0 0.4rem; text-transform: uppercase; letter-spacing: 0.06em; }
.qq-call-number { display: block; font-family: var(--font-heading); font-size: clamp(2.2rem,4vw,3.2rem); font-weight: 800; color: var(--amber); text-decoration: none; letter-spacing: -0.01em; line-height: 1; }
.qq-call-number:hover { color: #E4C06A; }
.qq-call-hours { font-size: 0.82rem; color: rgba(255,255,255,0.7); margin: 0.45rem 0 0; }
.qq-call-right-title { font-family: var(--font-heading); font-size: 1.05rem; font-weight: 700; color: #C99A2E; 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-grid { grid-template-columns: 1fr; gap: 2.5rem; }
.qq-section { padding: 3.5rem 0; }
.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; }
}
.section--white { background: var(--white); }
.section--white h2, .section--white h3, .section--light h2, .section--light h3 { color: var(--text-dark); }
.section--dark p, .section--mid p, .section--dark li, .section--mid li { color: rgba(255,255,255,0.82); }
.section--dark a:not(.btn), .section--mid a:not(.btn) { color: var(--blue-light); }
.section-header--left { text-align: left; margin-bottom: 2rem; }
.section-title { font-size: clamp(1.9rem, 3.4vw, 2.7rem); }
.section p, .section li { font-size: 1.08rem; line-height: 1.75; }
.section p { max-width: 62ch; }
.section h3 { margin: 1.75rem 0 0.6rem; font-size: clamp(1.3rem, 2.2vw, 1.7rem); }
.section--white .section-eyebrow, .section--light .section-eyebrow { color: var(--amber); }
.policy { font-family: var(--font-heading); font-weight: 600; font-size: 1.05rem; letter-spacing: 0.02em; color: var(--text-dark); margin: 1rem 0 0; }
.section--dark .policy, .section--mid .policy { color: var(--amber); }
.small { font-size: 0.95rem; color: var(--text-muted); }
.rating { font-weight: 600; }
.hero__title-small { display: block; font-size: 0.4em; letter-spacing: 0.04em; font-weight: 700; margin-bottom: 0.3em; color: rgba(255,255,255,0.75); line-height: 1.05; }
.hero__actions .btn--outline { border-color: rgba(255,255,255,0.7); }
.hero__phone-label { text-transform: none; letter-spacing: 0; font-size: 0.85rem; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.5rem 0 1rem; }
.page-hero__note { color: var(--amber); font-family: var(--font-heading); font-weight: 600; font-size: 1.05rem; letter-spacing: 0.02em; margin: 0.5rem 0 0; }
.page-hero__note i { margin-right: 0.35rem; }
.page-hero__proof { color: rgba(255,255,255,0.75); font-size: 0.95rem; margin: 0.75rem 0 0; }
.page-hero__proof a { color: var(--white); text-decoration: underline; text-underline-offset: 0.15em; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0 0 0.5rem; }
.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.14); color: rgba(255,255,255,0.9); border-radius: 100px; padding: 0.45rem 0.95rem; font-size: 0.88rem; font-weight: 600; }
.hero-trust__chip i { color: var(--amber); font-size: 0.85rem; }
.breadcrumb + .page-hero { padding-top: 2.5rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1.5rem; }
.grid > * { min-width: 0; }
.card { background: var(--white); border: 1px solid #E9E0D2; border-top: 4px solid var(--amber); border-radius: var(--radius-lg); padding: 2rem; box-shadow: 0 4px 20px rgba(31,27,23,0.10); display: flex; flex-direction: column; transition: all var(--transition); }
.card:hover { transform: translateY(-6px); box-shadow: 0 20px 56px rgba(31,27,23,0.20); }
.card h3 { font-family: var(--font-heading); font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; font-size: 1.35rem; color: var(--text-dark); margin: 0 0 0.6rem; }
.card p { color: var(--text-body); font-size: 1rem; }
.card .more { margin-top: auto; padding-top: 1rem; font-family: var(--font-heading); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.85rem; color: var(--blue); display: inline-flex; align-items: center; gap: 0.4rem; }
.card .more::after { content: "\2192"; }
.card .more:hover { color: var(--blue-dark); }
.section--dark .card, .section--mid .card { border-color: rgba(201,154,46,0.35); border-top-color: var(--amber); }
.section--dark .card h3, .section--mid .card h3, .section--dark .card p, .section--mid .card p { color: var(--text-dark); }
.steps { list-style: none; padding: 0; margin: 1.5rem 0; counter-reset: s; max-width: 60ch; }
.steps li { counter-increment: s; position: relative; padding-left: 4rem; margin: 0 0 1.5rem; }
.steps li::before { content: counter(s); position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; background: rgba(201,154,46,0.14); border: 1.5px solid rgba(201,154,46,0.6); color: var(--amber); font-family: var(--font-heading); font-weight: 800; font-size: 1.2rem; display: flex; align-items: center; justify-content: center; }
.steps li h3 { margin: 0.25rem 0 0.4rem; font-size: 1.25rem; }
.steps li p { margin: 0; }
.service-list, .service-mini-list { list-style: none; padding: 0; margin: 1.5rem 0; display: flex; flex-direction: column; gap: 0.75rem; }
.service-list li, .service-mini-list li { display: flex; align-items: flex-start; gap: 0.875rem; background: var(--white); padding: 1rem 1.25rem; border-radius: 10px; border: 1px solid #E9E0D2; border-left: 4px solid var(--amber); box-shadow: 0 4px 16px rgba(31,27,23,0.08); color: var(--text-dark); }
.service-list li::before, .service-mini-list li::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; color: var(--amber); margin-top: 0.2rem; flex-shrink: 0; }
.service-list li a, .service-mini-list li a { color: var(--text-dark); font-weight: 600; }
.service-list li a:hover { color: var(--blue-dark); }
.towns { display: flex; flex-wrap: wrap; gap: 0.75rem; list-style: none; padding: 0; margin: 1.5rem 0 0; }
.towns li { margin: 0; }
.towns a { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--navy-light); border: 1px solid rgba(201,154,46,0.3); color: var(--white); border-radius: 10px; padding: 0.75rem 1.1rem; font-family: var(--font-heading); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; font-size: 0.95rem; transition: all var(--transition); }
.towns a::before { content: "\f3c5"; font-family: "Font Awesome 6 Free"; font-weight: 900; color: var(--amber); }
.towns a:hover { border-color: var(--amber); transform: translateY(-2px); color: var(--white); }
.section--white .towns a, .section--light .towns a { background: var(--white); color: var(--text-dark); border-color: #E9E0D2; }
.section--white .towns a:hover, .section--light .towns a:hover { color: var(--text-dark); }
.table-wrap { overflow-x: auto; margin: 1.25rem 0 1.75rem; }
table { border-collapse: collapse; width: 100%; max-width: 62rem; background: var(--white); border-radius: 10px; overflow: hidden; box-shadow: 0 4px 16px rgba(31,27,23,0.08); }
caption { text-align: left; font-family: var(--font-heading); font-weight: 700; font-size: 1.1rem; color: var(--text-dark); padding: 0.75rem 0; }
th, td { text-align: left; padding: 0.85rem 1rem; border-bottom: 1px solid #E2E8F0; vertical-align: top; font-size: 1rem; color: var(--text-body); }
thead th { background: var(--navy); color: var(--white); font-family: var(--font-heading); text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.9rem; }
tbody th { font-weight: 700; color: var(--text-dark); background: #FFFDF9; }
.quote-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1.5rem; }
.quote { background: var(--white); border: 1px solid #E9E0D2; border-top: 4px solid var(--amber); border-radius: var(--radius-lg); padding: 1.75rem; box-shadow: 0 4px 20px rgba(31,27,23,0.10); }
.quote::before { content: "\2605\2605\2605\2605\2605"; color: #FBBC05; letter-spacing: 0.1em; display: block; margin-bottom: 0.6rem; }
.quote blockquote { margin: 0; font-style: italic; color: var(--text-body); }
.quote figcaption { margin-top: 0.75rem; font-family: var(--font-heading); font-weight: 700; color: var(--text-dark); font-size: 1rem; }
.review-line { margin-top: 1.25rem; }
.photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.work-photo { margin: 0; }
.work-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.work-photo figcaption { font-size: 0.95rem; color: var(--text-muted); margin-top: 0.75rem; }
.hvac-photo img { object-fit: contain; aspect-ratio: auto; background: var(--white); }
.photo-grid .hvac-photo { grid-column: 1 / -1; }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 2.5rem; align-items: start; }
.split > * { min-width: 0; }
.proof { display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; padding: 1.5rem 0; border-top: 1px solid #E2E8F0; border-bottom: 1px solid #E2E8F0; }
.proof b { display: block; font-family: var(--font-heading); font-weight: 800; font-size: 2.2rem; color: var(--amber); line-height: 1; }
.proof span { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); }
.book-section .section-header { text-align: center; }
.book-section .section-header .section-eyebrow { justify-content: center; }
.book-section .policy, .book-section .small { text-align: center; max-width: 60ch; margin-left: auto; margin-right: auto; }
.book-section .small a { color: var(--amber); }
.faq-section .faq-list { max-width: 900px; }
.faq-section .section-header { text-align: left; }
/* GHL photo form. form_embed.js wraps the iframe and parks it at left:-9999px until the form posts an iFrameSizer message back. When that handshake never completes (Chrome 152, 2026-09-21) the card stays blank. The iframe is never allowed to hide. */
.qq-card iframe[data-form-id], .qq-card .ep-wrapper iframe { position: static !important; left: auto !important; top: auto !important; opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; display: block !important; width: 100% !important; min-height: 1400px; }
/* measured natural form heights 2026-09-21: 502px wide 1363, 270px 1448, 240px 1514, 200px 1636. The card leaves about 120px of chrome on phones. */
@media (max-width: 480px) { .qq-card iframe[data-form-id] { min-height: 1480px; } }
@media (max-width: 400px) { .qq-card iframe[data-form-id] { min-height: 1530px; } }
@media (max-width: 360px) { .qq-card iframe[data-form-id] { min-height: 1660px; } }
.qq-card .ep-iFrameContainer, .qq-card .ep-wrapper { display: block !important; width: 100% !important; }
/* About page: the owners band on a light section. The dark .about-stat styles are for the dark card only. */
.owners-band__split { margin-top: 0.5rem; }
.owners-band__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-top: 0.5rem; }
@media (max-width: 560px) { .owners-band__stats { grid-template-columns: 1fr; } }
.qq-card__fallback { margin: 0.75rem 0 0; text-align: center; font-size: 0.9rem; }
.qq-card__fallback a { color: var(--blue); }
.qq-call-hours { font-size: 0.85rem; max-width: 34ch; }
.footer__legal { font-size: 0.85rem; color: rgba(255,255,255,0.72); margin-bottom: 0.5rem; }
.footer__links li { color: rgba(255,255,255,0.65); font-size: 0.92rem; }
.section .btn { margin-right: 0.5rem; margin-bottom: 0.5rem; }
.cta-stack { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.5rem 0 0.5rem; }
@media (max-width: 900px) {
.photo-grid, .split { grid-template-columns: 1fr; }
.section { padding: 3.5rem 0; }
.section-title { font-size: clamp(1.8rem, 6vw, 2.4rem); }
}
@media (max-width: 640px) {
.page-hero__actions .btn { width: 100%; justify-content: center; }
.hero__actions { flex-wrap: wrap; }
.steps li { padding-left: 3.4rem; }
.steps li::before { width: 36px; height: 36px; font-size: 1rem; }
.card { padding: 1.5rem; }
th, td { padding: 0.7rem 0.6rem; font-size: 0.95rem; }
}
.content-title { font-family: var(--font-heading); font-weight: 700; font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.1; margin-bottom: 1rem; }
.section ul:not([class]) { list-style: none; padding: 0; margin: 1.25rem 0 1.75rem; display: flex; flex-direction: column; gap: 0.75rem; }
.section ul:not([class]) > li { display: flex; align-items: flex-start; gap: 0.875rem; background: var(--white); padding: 1rem 1.25rem; border-radius: 10px; border: 1px solid #E9E0D2; border-left: 4px solid var(--amber); box-shadow: 0 4px 16px rgba(31,27,23,0.08); color: var(--text-dark); }
.section ul:not([class]) > li::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; color: var(--amber); margin-top: 0.2rem; flex-shrink: 0; }
.section ol:not([class]) { padding-left: 1.4rem; margin: 1rem 0 1.5rem; }
.service-content { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 4rem; align-items: start; }
.service-content__main { min-width: 0; }
.service-sidebar .btn { width: 100%; justify-content: center; }
@media (max-width: 1000px) {
.service-content { grid-template-columns: 1fr; gap: 2.5rem; }
.service-sidebar { position: static; }
}
.book-section .container > p { text-align: center; margin-left: auto; margin-right: auto; }
.book-section .card .btn { margin-top: auto; }
@media (min-width: 1201px) and (max-width: 1420px) {
.nav__menu > li > a { font-size: 0.78rem; padding: 0.4rem 0.35rem; }
.nav .btn { padding: 0.75rem 1.2rem; font-size: 1rem; }
}
.service-section { padding-top: 3.5rem; }
.content-block { margin-bottom: 3.5rem; }
.content-block:last-child { margin-bottom: 0; }
.content-block .section-header--left { margin-bottom: 1.25rem; }
.content-block--dark { background: var(--navy-mid); border-radius: var(--radius-lg); padding: 2rem; }
.content-block--dark .content-title, .content-block--dark h3 { color: var(--white); }
.content-block--dark p, .content-block--dark li { color: rgba(255,255,255,0.85); }
.content-block--dark .towns a { background: var(--navy-light); color: var(--white); border-color: rgba(201,154,46,0.3); }
.content-block .faq-list { margin-top: 1rem; }
.service-list li::before, .service-mini-list li::before, .section ul:not([class]) > li::before { margin-right: 0.6rem; }
.service-content__main .content-block--dark a:not(.btn), .service-content__main .towns a, .content-block--dark .towns a { color: var(--white) !important; }
.content-block--dark a:not(.btn):not(.faq-question):hover { color: var(--amber) !important; }
.faq-question, .faq-item .faq-question { color: var(--text-dark); }
.faq-answer__inner, .faq-answer__inner p, .faq-answer__inner li, .section--mid .faq-answer__inner p, .content-block--dark .faq-answer__inner p { color: var(--text-body) !important; }
.section--light a:not(.btn):not(.towns a):not(.more), .section--white a:not(.btn):not(.towns a):not(.more), .card .more, .qq-card__fallback a, .service-content__main a:not(.btn):not(.towns a) { color: #876318 !important; }
.card .more { font-size: 0.9rem; }
.card .more:hover, .qq-card__fallback a:hover { color: #6E5112 !important; }
.work-photo figcaption, .quote figcaption, .small, .hours { color: #4B5563; }
.hero__phone-label, .page-hero__proof, .qq-call-hours { font-size: 0.9rem; }
.service-list li a, .service-mini-list li a, .content-block li a, .sidebar-areas a, .sidebar-card a:not(.btn), .qq-card__fallback a, .page-hero__proof a, .card .more, .footer__links a, .breadcrumb__list a { display: inline-block; padding: 3px 0; min-height: 24px; }
@media (max-width: 640px) {
.hero__actions { flex-wrap: wrap; gap: 0.9rem; }
.hero__phone-block { flex: 1 1 100%; }
.hero__phone-label { white-space: normal; }
.hero__actions .btn { width: auto; }
}
main, .content-block, .content-block li, .content-block p, .footer { overflow-wrap: anywhere; }
main { overflow-x: clip; }
@media (max-width: 1000px) {
.service-sidebar .sidebar-card:nth-child(n+3) { display: none; }
}
.service-content__main .towns a, .section--light .towns a, .section--white .towns a { color: var(--text-dark) !important; }
.content-block--dark .towns a, .section--dark .towns a { color: var(--white) !important; }
.service-sidebar a:not(.btn) { color: var(--blue-light) !important; }
.service-sidebar .sidebar-phone { color: var(--amber) !important; font-size: 1.5rem; }
.service-sidebar .sidebar-phone:hover { color: var(--amber-dark) !important; }
.service-list li, .service-mini-list li, .section ul:not([class]) > li { display: block; position: relative; padding-left: 2.9rem; }
.service-list li::before, .service-mini-list li::before, .section ul:not([class]) > li::before { position: absolute; left: 1.1rem; top: 1.05rem; margin: 0; }
.content-block li a, .service-list li a, .service-mini-list li a { overflow-wrap: normal; word-break: normal; max-width: 100%; }
.service-section .service-content .service-sidebar .sidebar-card a:not(.btn), .service-section .service-content .service-sidebar .sidebar-card .sidebar-areas a { color: var(--blue-light) !important; }
.service-section .service-content .service-sidebar .sidebar-card a.sidebar-phone { color: var(--amber) !important; }
.service-content--single { grid-template-columns: minmax(0, 1fr); }
.service-content--single .service-content__main { max-width: 900px; }
.service-sidebar--short .sidebar-card:nth-child(n+3) { display: none; }
.footer__copyright a, .small a, a.rating, .book-section .small a, .qq-call-number { display: inline-block; padding: 3px 0; min-height: 24px; }
.nav__menu.open { padding-bottom: 110px; justify-content: flex-start; padding-top: 5rem; }
.content-block .towns li a, .service-content__main .towns li a { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.7rem 1rem; min-height: 44px; font-size: 0.92rem; letter-spacing: 0.04em; }
.content-block--dark { padding: 1.5rem; }
@media (max-width: 640px) {
.content-block--dark { padding: 1.25rem 1rem; }
.towns { gap: 0.5rem; }
}
.section-header:not(.section-header--left) + p, .section-header:not(.section-header--left) + .proof + .review-line, .section-header:not(.section-header--left) + .proof + .review-line + p { text-align: center; margin-left: auto; margin-right: auto; }
.section-header:not(.section-header--left) + .proof { justify-content: center; }
.section-header:not(.section-header--left) + .quote-grid, .section-header:not(.section-header--left) + .photo-grid { margin-top: 0.5rem; }
.footer__legal { color: rgba(255,255,255,0.55); }
.towns--plain a::before { display: none; }
.towns--plain a { text-transform: none; letter-spacing: 0; font-family: var(--font-body); font-weight: 600; }
table { table-layout: auto; }
th, td { overflow-wrap: normal; word-break: normal; hyphens: manual; }
tbody th, thead th:first-child { min-width: 6.5em; }
@media (max-width: 640px) {
th, td { padding: 0.6rem 0.55rem; font-size: 0.92rem; }
}
@media (max-width: 768px) {
.footer__bottom .footer__legal { justify-content: center; text-align: center; }
}
.work-photo img { aspect-ratio: 1 / 1; object-position: center; }
.work-photo.work-photo--tall img { aspect-ratio: 3 / 4; object-position: center; }
.hero-image { max-width: 560px; }
.hvac-photo img { aspect-ratio: auto; }
@media (max-width: 768px) {
.breadcrumb__list li, .breadcrumb__list a { font-size: 0.95rem; }
.footer__links a, .footer__links li, .footer__address, .footer__desc { font-size: 1rem; }
.sidebar-card__sub, .sidebar-info-row, .sidebar-cta .sidebar-info-row { font-size: 0.95rem; }
.sidebar-card a:not(.btn), .sidebar-card p, .sidebar-card li { font-size: 1rem; }
.hero-trust__chip { font-size: 0.92rem; }
.qq-call-label, .qq-call-hours, .qq-call-right-sub, .qq-stat__l { font-size: 0.95rem; }
.reviews-strip__label, .reviews-strip__write { font-size: 0.95rem; }
th, td { font-size: 1rem; padding: 0.7rem 0.6rem; }
figcaption, .work-photo figcaption { font-size: 1rem; }
.footer__copyright { font-size: 0.9rem; }
}
th, td { font-size: 1rem; }
@media (max-width: 768px) {
table th, table td, .service-content__main th, .service-content__main td { font-size: 1rem !important; }
.sidebar-card p, .sidebar-card a:not(.btn):not(.sidebar-phone), .sidebar-card li { font-size: 1rem !important; }
.hero__badge, .hero__phone-label, .hero__trust-item, .hero-trust__chip, .page-hero__proof, a.more, .section-header a.more { font-size: 0.95rem !important; }
.qq-call-right-sub, .qq-call-label, .qq-call-hours { font-size: 0.95rem !important; }
.hero__proof span, .proof span, .qq-stat__l { font-size: 0.9rem !important; }
.footer__copyright, .footer__copyright a { font-size: 0.9rem !important; }
}
.owners-section .about-grid { align-items: center; }
.owners-section .about-content .more { display: inline-block; margin-top: 0.75rem; font-weight: 700; color: var(--blue-dark, #876318); }
.sidebar-card--owners .owners-mini { display: flex; gap: 0.6rem; margin-bottom: 0.85rem; }
.sidebar-card--owners .owners-mini img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: center 15%; box-shadow: 0 0 0 3px var(--amber); display: block; }
.sidebar-card--owners p { font-size: 0.95rem; line-height: 1.55; color: rgba(255,255,255,0.88); margin: 0 0 0.75rem; }
.sidebar-quote { margin: 0 0 0.75rem; padding: 0; border: 0; }
.sidebar-quote p { font-size: 0.98rem; line-height: 1.6; color: rgba(255,255,255,0.92); margin: 0 0 0.5rem; font-style: italic; }
.sidebar-quote p::before { content: '\201C'; }
.sidebar-quote p::after { content: '\201D'; }
.sidebar-quote footer { font-size: 0.9rem; color: rgba(255,255,255,0.78); }
.sidebar-quote footer strong { color: var(--white); margin-right: 0.35rem; }
.sidebar-after { margin: 0.9rem 0 0.6rem; padding-top: 0.8rem; border-top: 1px solid rgba(255,255,255,0.14); }
.sidebar-after__title { font-family: var(--font-heading); font-weight: 700; font-size: 1rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--amber); margin-bottom: 0.4rem; }
.sidebar-after ol { margin: 0; padding-left: 1.2rem; display: grid; gap: 0.3rem; }
.sidebar-after li { font-size: 0.95rem; line-height: 1.5; color: rgba(255,255,255,0.9); }
.quote--short blockquote p { color: var(--text-muted); }
.quote__stars { color: var(--amber); letter-spacing: 0.05em; font-style: normal; }
@media (max-width: 768px) {
.owners-section .owners-pair { grid-template-columns: 1fr 1fr; }
.owners-section .owners-pair .about-card__avatar { width: 110px; height: 110px; }
}
@media (max-width: 1000px) {
.service-sidebar .sidebar-card:nth-child(3) { display: block; }
.service-sidebar .sidebar-card:nth-child(n+4) { display: none; }
.service-sidebar--short .sidebar-card:nth-child(3) { display: none; }
}
.about-card { background-color: #1C1712; }
.owners-section .section-eyebrow { color: #876318; }
.owners-section .section-eyebrow::before { background: var(--amber); }
.owners-section .section-title .accent { color: #876318; }
.owners-section .about-content .more { color: #876318 !important; }
.service-section .service-content .service-sidebar .sidebar-card a.sidebar-phone { color: var(--amber) !important; }
section aside.service-sidebar .sidebar-card.sidebar-card a:not(.btn):not(.sidebar-phone), section aside.service-sidebar .sidebar-card.sidebar-card .sidebar-areas a { color: var(--blue-light) !important; }
section aside.service-sidebar .sidebar-card.sidebar-card a.sidebar-phone.sidebar-phone { color: var(--amber) !important; }
/* async web fonts: size the fallback so the swap does not shift the layout */
@font-face { font-family: 'Barlow Fallback'; src: local('Arial'); size-adjust: 96%; ascent-override: 92%; descent-override: 22%; }
@font-face { font-family: 'Barlow Condensed Fallback'; src: local('Arial Narrow'), local('Arial'); size-adjust: 82%; ascent-override: 90%; descent-override: 22%; }
:root { --font-body: 'Barlow', 'Barlow Fallback', system-ui, sans-serif; --font-heading: 'Fraunces', Georgia, 'Times New Roman', serif; }
/* build 2: brand line in the HVAC heroes, common-problems list */
.page-hero__brands { color: rgba(255,255,255,0.92); font-size: 1.05rem; font-weight: 600; margin: 0.9rem 0 1.1rem; display: flex; align-items: flex-start; gap: 0.55rem; line-height: 1.5; }
.page-hero__brands i { color: var(--amber); margin-top: 0.3rem; }
.problems { list-style: none; padding: 0; margin: 1rem 0 1.5rem; display: grid; gap: 0.75rem; }
.problems li { background: var(--white); border: 1px solid #E9E0D2; border-left: 4px solid var(--amber); border-radius: 10px; padding: 0.9rem 1.1rem; line-height: 1.55; }
.problems li strong { display: block; font-family: var(--font-heading); font-size: 1.2rem; letter-spacing: 0.01em; margin-bottom: 0.25rem; color: var(--navy); }
.problems-block .btn { margin-top: 0.25rem; }

/* ===================== Mora Home Services skin, 2026-09-22 (appended overrides) ===================== */
html { font-size: 18px; }
body { font-size: 1.05rem; line-height: 1.72; color: var(--text-body); background: var(--cream); }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); font-weight: 600; letter-spacing: -0.01em; line-height: 1.1; text-transform: none; }
h1 { font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.04; }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); line-height: 1.08; }
h3 { font-size: clamp(1.3rem, 2.2vw, 1.7rem); line-height: 1.2; }
a { color: var(--gold-text); }
a:hover { color: var(--ink); }
p { font-size: 1.05rem; }
.section { padding: 5.5rem 0; position: relative; }
.section--dark { background: var(--ink); color: var(--on-ink); }
.section--dark::before, .section--mid::before, .qq-section::before, .footer::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, #B98B2C, #E4C06A, #B98B2C); z-index: 1; }
.section--dark p, .section--mid p { color: var(--on-ink-muted); }
.section--light { background: var(--cream); background-image: none; }
.section--white { background: var(--paper); }
.section--mid { background: var(--ink-2); color: var(--on-ink); }
.section:has(.service-content) { background: var(--cream); }
.section-eyebrow, .page-hero__eyebrow, .qq-eyebrow, .about-band__eyebrow { font-family: var(--font-body); font-size: 0.94rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-text); }
.section--dark .section-eyebrow, .section--mid .section-eyebrow, .page-hero__eyebrow, .qq-eyebrow { color: var(--gold-soft); }
.section-eyebrow::before, .page-hero__eyebrow::before, .qq-eyebrow::before { background: var(--gold); height: 1px; width: 2rem; }
.section-title, .page-hero__title, .hero__title, .qq-heading, .about-band__title { font-family: var(--font-heading); font-weight: 600; text-transform: none; letter-spacing: -0.01em; }
.section-title .accent, .page-hero__title .accent, .hero__title .accent { color: var(--gold-soft); font-style: italic; font-weight: 500; }
.section--light .section-title .accent, .section--white .section-title .accent { color: var(--gold-text); }

/* buttons: flat, confident, 48px minimum */
.btn { font-family: var(--font-body); font-size: 0.95rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 1rem 1.9rem; border-radius: 8px; min-height: 48px; border-width: 2px; }
.btn--primary { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.btn--primary:hover { background: var(--gold-soft); border-color: var(--gold-soft); color: var(--ink); transform: none; box-shadow: none; }
.btn--blue { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.btn--blue:hover { background: var(--ink-2); border-color: var(--ink-2); color: var(--on-ink); transform: none; box-shadow: none; }
.btn--outline { background: transparent; color: var(--on-ink); border-color: rgba(251,246,238,0.75); }
.btn--outline:hover { background: transparent; color: var(--gold-soft); border-color: var(--gold-soft); }
.section--light .btn--outline, .section--white .btn--outline, .reviews-section--light .btn--outline { color: var(--ink); border-color: var(--ink); }
.section--light .btn--outline:hover, .section--white .btn--outline:hover, .reviews-section--light .btn--outline:hover { background: transparent; color: var(--gold-text); border-color: var(--gold); }
.btn--lg { padding: 1.1rem 2.2rem; font-size: 1rem; }
.btn i { font-size: 0.9em; }

/* nav */
.nav { background: var(--ink); box-shadow: 0 1px 0 rgba(217,180,91,0.18); padding: 0.85rem 0; padding-top: calc(0.85rem + env(safe-area-inset-top)); }
.nav .nav__logo { background: transparent; padding: 0; }
.nav__logo-img { height: 46px; }
.nav__menu > li > a { font-family: var(--font-body); font-size: 0.945rem; font-weight: 600; letter-spacing: 0.02em; color: var(--on-ink); min-height: 44px; padding: 0.4rem 0.32rem; }
@media (max-width: 1340px) { .nav__menu { display: none; } .nav__toggle { display: flex; z-index: 1001; position: relative; } .nav__menu.open { display: flex; } }
@media (min-width: 1341px) { .nav__menu > li:first-child { display: none; } .nav__actions .btn { display: none; } .nav .container { max-width: 1280px; } }
.nav__phone { font-size: 1.25rem; }
.nav__menu > li > a:hover, .nav__menu > li > a.active { color: var(--gold-soft); }
.nav__menu > li > a[style] { color: var(--gold-soft) !important; }
.nav__dropdown-menu { background: var(--ink-2); border: 1px solid rgba(217,180,91,0.25); border-radius: 12px; box-shadow: 0 24px 60px rgba(0,0,0,0.45); }
.nav__dropdown-menu a { color: var(--on-ink-muted); font-size: 0.95rem; min-height: 44px; }
.nav__dropdown-menu a:hover { color: var(--gold-soft); background: rgba(255,255,255,0.04); }
.nav__dropdown-menu a i { color: var(--gold); }
.nav__phone { font-family: var(--font-body); font-size: 1.2rem; font-weight: 700; color: var(--gold-soft); min-height: 44px; }
.nav__phone:hover { color: var(--on-ink); }
.nav__actions .btn { padding: 0.75rem 1.2rem; font-size: 0.945rem; }
.nav__menu.open { background: var(--ink); }
.nav__menu.open > li > a { font-size: 1.3rem; font-family: var(--font-heading); text-transform: none; letter-spacing: 0; font-weight: 600; }
.nav__toggle span { background: var(--on-ink); }

.nav__logo { gap: 0.7rem; }
.nav__wordmark { font-family: var(--font-heading); font-weight: 600; font-size: 1.35rem; letter-spacing: 0.04em; color: var(--on-ink); line-height: 1; white-space: nowrap; }
.nav__wordmark small { display: block; font-family: var(--font-body); font-weight: 700; font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-soft); margin-top: 3px; }
/* breadcrumb + page hero */
.breadcrumb { background: var(--ink); }
.breadcrumb__list li { font-size: 0.9rem; color: var(--on-ink-muted); }
.breadcrumb__list a { color: var(--gold-soft); }
.breadcrumb__list a:hover { color: var(--on-ink); }
.page-hero { background: linear-gradient(180deg, var(--ink) 0%, #211B15 100%); padding: 8.5rem 0 4.5rem; }
.page-hero__bg { background-image: none; }
.page-hero::after { height: 6px; background: linear-gradient(90deg, #B98B2C, #E4C06A, #B98B2C); }
.page-hero__title { font-size: clamp(2.4rem, 4.8vw, 4rem); color: var(--on-ink); line-height: 1.05; max-width: 16ch; text-wrap: balance; }
.page-hero__desc { font-size: 1.15rem; color: var(--on-ink-muted); max-width: 60ch; line-height: 1.7; }
.page-hero__note { color: var(--on-ink-muted); font-family: var(--font-body); font-weight: 500; font-size: 1.02rem; letter-spacing: 0; margin-top: 1rem; }
.page-hero__note i, .page-hero__proof i { color: var(--gold-soft); }
.page-hero__proof a { color: var(--gold-soft); font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.hero-trust { gap: 0.6rem 1.4rem; margin: 1.4rem 0 1.4rem; }
.hero-trust__chip { background: transparent; border: 0; border-radius: 0; padding: 0; font-size: 1rem; font-weight: 500; color: var(--on-ink-muted); }
.hero-trust__chip i { color: var(--gold); }

/* home hero (index) */
.hero { background: linear-gradient(180deg, var(--ink) 0%, #211B15 100%); }
.hero__bg-pattern, .hero__accent { display: none; }
.hero__amber-bar { height: 6px; background: linear-gradient(90deg, #B98B2C, #E4C06A, #B98B2C); }
.hero__badge { background: transparent; border: 0; padding: 0; color: var(--gold-soft); font-family: var(--font-body); letter-spacing: 0.14em; font-size: 0.94rem; }
.hero__title { font-size: clamp(2.8rem, 6vw, 4.6rem); line-height: 1.04; text-transform: none; color: var(--on-ink); }
.hero__subtitle { font-size: 1.2rem; color: var(--on-ink-muted); }
.hero__phone-number { font-family: var(--font-heading); font-weight: 600; color: var(--on-ink); }
.hero__phone-number:hover { color: var(--gold-soft); }
.hero__trust-item { font-size: 1rem; color: var(--on-ink-muted); }
.hero__trust-item i { color: var(--gold); }

/* content, lists, cards */
.service-content__main h2 { margin-top: 0.5rem; }
.service-content__main p { color: var(--text-body); font-size: 1.05rem; line-height: 1.75; }
.service-content__main a:not(.btn), .service-content__main .service-list li a { color: var(--gold-text) !important; }
.service-content__main a:not(.btn):hover { color: var(--ink) !important; }
.service-list li { background: var(--paper); border: 1px solid var(--stone-2); border-left: 5px solid var(--gold); border-radius: 12px; box-shadow: 0 2px 0 var(--stone-2), 0 12px 28px rgba(31,27,23,0.10); font-size: 1.02rem; color: var(--text-dark); }
.service-list li:hover { transform: translateX(3px); box-shadow: 0 2px 0 var(--stone-2), 0 18px 36px rgba(31,27,23,0.14); }
.service-list li i { color: var(--gold-text); }
.sidebar-card, .sidebar-cta, .sidebar-card--cta { background: var(--ink); border: 1px solid rgba(217,180,91,0.25); border-radius: 16px; box-shadow: 0 24px 60px rgba(0,0,0,0.28); }
.sidebar-card::before, .sidebar-cta::before, .sidebar-card--cta::before { height: 5px; background: linear-gradient(90deg, #B98B2C, #E4C06A, #B98B2C); }
.sidebar-card__title, .sidebar-cta h3 { font-family: var(--font-heading); text-transform: none; font-size: 1.35rem; font-weight: 600; letter-spacing: 0; }
.sidebar-phone { font-family: var(--font-heading); font-weight: 600; color: var(--on-ink); font-size: 1.6rem; }
.sidebar-phone:hover { color: var(--gold-soft); }
.sidebar-info-row, .sidebar-cta .sidebar-info-row, .sidebar-areas li { font-size: 1rem; }
.sidebar-info-row i, .sidebar-cta .sidebar-info-row i, .sidebar-areas li i { color: var(--gold-soft); }
.service-sidebar .sidebar-card a:not(.btn) { color: var(--gold-soft) !important; }
.service-sidebar .sidebar-card a:not(.btn):hover { color: var(--on-ink) !important; }
.service-card, .area-card, .why-item, .review-card, .contact-info-item, .featured-service { border-radius: 14px; }
.section--light .service-card, .section--white .service-card, .section--light .area-card, .section--white .area-card, .section--light .review-card, .section--white .review-card { background: var(--paper); border: 1.5px solid var(--stone-2); border-top: 5px solid var(--gold); box-shadow: 0 2px 0 var(--stone-2), 0 16px 36px rgba(31,27,23,0.14); }
.section--dark .service-card, .section--mid .service-card, .section--dark .area-card, .section--mid .area-card, .section--dark .why-item, .section--mid .why-item, .section--dark .review-card, .section--mid .review-card { background: var(--ink-2); border: 1px solid rgba(217,180,91,0.22); border-top: 5px solid var(--gold); box-shadow: 0 24px 60px rgba(0,0,0,0.35); }
.service-card:hover, .area-card:hover, .why-item:hover, .review-card:hover, .featured-service[data-fullclick]:hover { transform: translateY(-4px); border-color: var(--gold); box-shadow: 0 22px 48px rgba(31,27,23,0.22); background-image: none; }
.section--dark .service-card:hover, .section--mid .service-card:hover, .section--dark .area-card:hover, .section--mid .area-card:hover, .section--dark .why-item:hover, .section--mid .why-item:hover { background: var(--ink-2); box-shadow: 0 28px 64px rgba(0,0,0,0.45); }

/* faq: bordered card accordions, whole card clickable */
.faq-list { gap: 1rem; }
.faq-item { background: var(--paper); border: 1.5px solid var(--stone-2); border-left: 6px solid var(--gold); border-radius: 14px; box-shadow: 0 2px 0 var(--stone-2), 0 16px 36px rgba(31,27,23,0.18); }
.faq-item:hover { transform: translateY(-2px); box-shadow: 0 2px 0 var(--stone-2), 0 22px 46px rgba(31,27,23,0.24); border-color: #C9B58F; border-left-color: var(--gold); }
.faq-item.open { border-color: #C9B58F; border-left-color: var(--gold-text); box-shadow: 0 2px 0 #C9B58F, 0 24px 50px rgba(31,27,23,0.26); }
.faq-question { background: var(--paper); font-family: var(--font-heading); font-weight: 600; font-size: 1.25rem; color: var(--text-dark); padding: 1.3rem 1.5rem; min-height: 48px; }
.faq-question:hover { background: var(--paper); }
.faq-question i { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--gold); color: var(--gold-text); display: inline-flex; align-items: center; justify-content: center; font-size: 0.9rem; }
.faq-item.open .faq-question { background: linear-gradient(180deg, #FFFDF9, var(--paper)); color: var(--text-dark); border-bottom: 1px solid var(--stone); }
.faq-item.open .faq-question i { background: var(--gold); color: var(--ink); border-color: var(--gold); transform: rotate(180deg); }
.faq-answer { background: #FFFDF9; }
.faq-answer__inner { border-top: 0; font-size: 1.05rem; color: var(--text-muted); padding: 1.1rem 1.5rem 1.4rem; }
.section--dark .faq-item, .section--mid .faq-item { background: var(--ink-2); border: 1px solid rgba(217,180,91,0.28); border-left: 6px solid var(--gold); box-shadow: 0 24px 60px rgba(0,0,0,0.4); }
.section--dark .faq-question, .section--mid .faq-question { background: transparent; color: var(--on-ink); }
.section--dark .faq-question i, .section--mid .faq-question i { color: var(--gold-soft); border-color: var(--gold-soft); }
.section--dark .faq-item.open .faq-question, .section--mid .faq-item.open .faq-question { background: rgba(255,255,255,0.03); color: var(--on-ink); }
.section--dark .faq-item.open .faq-question i, .section--mid .faq-item.open .faq-question i { background: var(--gold); color: var(--ink); }
.section--dark .faq-answer, .section--mid .faq-answer { background: rgba(0,0,0,0.18); }
.section--dark .faq-answer__inner, .section--mid .faq-answer__inner { color: var(--on-ink-muted); }

/* book band: brass, between the cream content and the ink form */
.section--dark.book-section { background: linear-gradient(90deg, #B98B2C 0%, #D1A43A 50%, #B98B2C 100%); color: var(--ink); }
.section--dark.book-section::before { display: none; }
.book-section h1, .book-section h2, .book-section h3, .book-section .section-title { color: var(--ink); }
.book-section p, .section--dark.book-section p { color: rgba(28,23,18,0.85); }
.book-section .section-eyebrow, .section--dark.book-section .section-eyebrow { color: var(--ink); }
.book-section .section-eyebrow::before { background: var(--ink); }
.book-section .btn--primary { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.book-section .btn--primary:hover { background: var(--ink-2); border-color: var(--ink-2); color: var(--on-ink); }
.book-section .btn--outline { color: var(--ink); border-color: var(--ink); }
.book-section .btn--outline:hover { color: var(--ink); border-color: var(--ink); background: rgba(255,255,255,0.18); }
.book-section a:not(.btn) { color: var(--ink) !important; text-decoration: underline; text-underline-offset: 3px; }
.book-section i { color: var(--ink); }
/* photo form section */
.qq-section { background: var(--ink); }
.qq-section .qq-heading { font-family: var(--font-heading); font-weight: 600; text-transform: none; letter-spacing: -0.01em; font-size: clamp(2rem, 3.8vw, 3rem); color: var(--on-ink); }
.qq-section .qq-subhead { font-size: 1.1rem; color: var(--on-ink-muted); }
.qq-step__n { background: transparent; border: 1.5px solid var(--gold-soft); color: var(--gold-soft); font-family: var(--font-heading); font-weight: 600; width: 44px; height: 44px; }
.qq-step__body { color: var(--on-ink-muted); font-size: 1.05rem; }
.qq-step__body strong { font-family: var(--font-heading); font-weight: 600; font-size: 1.2rem; color: var(--on-ink); }
.qq-stat__n { font-family: var(--font-heading); font-weight: 600; color: var(--gold-soft); }
.qq-stat__l { color: var(--on-ink-muted); font-size: 1rem; }
.qq-call-label, .qq-call-hours, .qq-call-right-sub, .about-stat__label, .footer__formerly { font-size: 0.95rem !important; }
.qq-reassure { background: rgba(201,154,46,0.08); border-color: rgba(201,154,46,0.3); color: var(--on-ink-muted); }
.qq-reassure strong { color: var(--on-ink); }
.qq-call-number { font-family: var(--font-heading); font-weight: 600; color: var(--on-ink); }
.qq-call-number:hover { color: var(--gold-soft); }
.qq-call-label, .qq-call-hours, .qq-call-right-sub { color: var(--on-ink-muted); }
.qq-call-right-title { color: var(--gold-soft); font-family: var(--font-heading); font-weight: 600; }
.qq-card { background: var(--paper); border-top: 6px solid var(--gold); border-radius: 16px; box-shadow: 0 28px 70px rgba(0,0,0,0.45); }
.qq-card__fallback a { color: var(--gold-text) !important; display: inline-block; min-height: 44px; line-height: 44px; }

/* reviews strip */
.reviews-strip { background: var(--ink-2); border-top: 1px solid rgba(217,180,91,0.2); border-bottom: 1px solid rgba(217,180,91,0.2); }
.reviews-strip__label { font-family: var(--font-body); color: var(--on-ink-muted); font-size: 0.95rem; }
.reviews-strip__stars { color: var(--gold); }
.reviews-strip__write { background: var(--gold); color: var(--ink); font-family: var(--font-body); font-size: 0.9rem; min-height: 44px; }
.reviews-strip__write:hover { background: var(--gold-soft); transform: none; }
.reviews-strip__read { color: var(--gold-soft); min-height: 44px; display: inline-flex; align-items: center; }

/* about band + owners */
.about-band { background: var(--paper); background-image: none; }
.about-band__eyebrow { color: var(--gold-text); }
.about-stat-box { background: var(--cream); border: 1.5px solid var(--stone-2); border-top: 4px solid var(--gold); border-radius: 12px; }
.about-stat-box__num { font-family: var(--font-heading); font-weight: 600; color: var(--ink); }
.about-stat-box__label { font-size: 0.95rem; }
.about-card { background: var(--ink); box-shadow: 0 24px 60px rgba(0,0,0,0.35), 0 0 0 1px rgba(217,180,91,0.22); }
.about-card::before { background: linear-gradient(90deg, #B98B2C, #E4C06A, #B98B2C); height: 5px; }
.about-card__avatar, .owners-pair .about-card__avatar { box-shadow: 0 0 0 4px var(--gold); background: var(--ink-2); }
.about-card__name { font-family: var(--font-heading); text-transform: none; font-weight: 600; letter-spacing: 0; color: var(--on-ink); }
.about-card__title { color: var(--gold-soft); font-size: 0.95rem; }
.about-stat { background: rgba(255,255,255,0.04); border: 1px solid rgba(217,180,91,0.22); border-left: 3px solid var(--gold); }
.about-stat__number { font-family: var(--font-heading); font-weight: 600; color: var(--gold-soft); }
.about-stat__label { font-size: 0.85rem; color: var(--on-ink-muted); }
.work-photo img, .about-band img, .gallery img { border: 1px solid rgba(31,27,23,0.14); border-radius: 4px; }

/* footer */
.footer { background: var(--ink); border-top: 0; position: relative; }
.footer, .footer__heading, .footer__col h4, .footer__col h3 { color: var(--on-ink-muted); }
.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-body); font-size: 0.9rem; letter-spacing: 0.18em; color: var(--gold-soft); border-bottom: 1px solid rgba(251,246,238,0.14); }
.footer__desc, .footer__links a, .footer__links li, .footer__address { font-size: 1rem; color: var(--on-ink-muted); }
.footer__links a { min-height: 32px; display: inline-flex; align-items: center; }
.footer__links a:hover, .footer__contact a:hover { color: var(--gold-soft); }
.footer__phone { font-family: var(--font-heading); font-weight: 600; font-size: 1.5rem; color: var(--on-ink); }
.footer__phone:hover { color: var(--gold-soft); }
.footer__copyright, .footer__legal { font-size: 0.95rem; color: var(--on-ink-muted); }
.footer__copyright a { color: var(--gold-soft); }
.mhic-license { font-size: 0.9rem !important; color: var(--on-ink-muted) !important; }
.footer__social a:hover { color: var(--gold-soft); }
.footer__formerly { font-size: 0.9rem; color: rgba(251,246,238,0.6); margin: -0.6rem 0 1rem; }

/* mobile sticky bar */
.mobile-sticky-cta { background: var(--ink); border-top: 1px solid rgba(217,180,91,0.35); }
.mobile-sticky-cta__btn { font-family: var(--font-body); font-size: 17px; min-height: 48px; padding: 12px 0; letter-spacing: 0.03em; }
.mobile-sticky-cta__btn--call { background: var(--gold); color: var(--ink); }
.mobile-sticky-cta__btn--call:hover { background: var(--gold-soft); color: var(--ink); }
.mobile-sticky-cta__btn--sms { background: transparent; color: var(--on-ink); border: 2px solid rgba(251,246,238,0.75); }
.mobile-sticky-cta__btn--submit { background: var(--paper); color: var(--ink); }
.mobile-sticky-cta__btn--submit:hover { background: var(--cream); color: var(--ink); }

/* tap targets on phones: links that sit alone get 44px */
.footer__links a, .sidebar-areas a, .sidebar-card a:not(.btn), .city-coverage-grid a, .city-index__list a, .breadcrumb__list a, .service-list li a, .card .more, .qq-call-number, .rating, .reviews-strip__read, .page-hero__proof a, .qq-card__fallback a, .towns a, a.rating { min-height: 44px; display: inline-flex; align-items: center; }
.book-section .small a.rating { min-height: 44px; }
/* 17px floor for every functional label outside the logo lockup (Codex 2026-09-22, finding 7) */
.breadcrumb__list li, .breadcrumb__list a, .page-hero__eyebrow, .section-eyebrow, .qq-eyebrow, .about-band__eyebrow, .towns a, .towns li a, .sidebar-quote footer, .sidebar-quote footer *, .qq-stat__l, .qq-card__fallback, .qq-card__fallback a, .footer__col h4, .footer__col h3, .footer__copyright, .footer__copyright a, .footer__legal, .mhic-license, .reviews-strip__label, .hero-trust__chip, .qq-call-label, .qq-call-hours, .qq-call-right-sub, .about-stat__label, .footer__formerly, .card .more, .sidebar-info-row, .sidebar-areas li, th, .sidebar-card--review p, .sidebar-card--review a, .reviews-strip__write, .page-hero__proof a, .sidebar-card__sub, .sidebar-card p, .sidebar-card a, .mh-via { font-size: 0.945rem !important; }
/* the mobile call bar stays hidden until the hero has scrolled away, so it never covers a hero button (rendered 393x850: bar 775-850 over Send photos 786-861) */
.mobile-sticky-cta { transform: translateY(110%); transition: transform 0.25s ease; }
.mobile-sticky-cta.is-visible { transform: none; }
@media (prefers-reduced-motion: reduce) { .mobile-sticky-cta { transition: none; } }
/* misc */
.skip-link { background: var(--gold); color: var(--ink); }
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(--gold); outline-offset: 2px; }
.section--light .city-coverage-grid li a, .section--light .city-index__list a { color: var(--gold-text); }
.section--light .city-coverage-grid li a:hover, .section--light .city-index__list a:hover { color: var(--ink); text-decoration: underline; }
.section--mid .city-coverage-grid li a, .section--dark .city-coverage-grid li a, .section--mid .city-index__list a, .section--dark .city-index__list a, .section--mid .service-content__main a:not(.btn), .section--dark .service-content__main a:not(.btn), [style*="surface-2"] a:not(.btn) { color: var(--gold-soft) !important; }
.towns a, .towns-chip { min-height: 48px; }
@media (max-width: 768px) {
  .section { padding: 4rem 0; }
  .page-hero { padding-top: 6.5rem; }
  .page-hero__title { font-size: clamp(2.1rem, 8vw, 2.8rem); }
  .btn, .btn--lg { min-height: 48px; }
  .hero-trust__chip { font-size: 0.95rem; }
}

/* ===================== home page (mh-) ===================== */
.mh-caps { display: block; font: 700 0.945rem var(--font-body); letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-text); }
.mh-caps--soft { color: var(--gold-soft); }
.mh-h1 { font: 600 clamp(2.6rem, 6vw, 4.4rem)/1.04 var(--font-heading); margin: 1rem 0 1.2rem; max-width: 14ch; letter-spacing: -0.01em; text-wrap: balance; color: var(--on-ink); }
.mh-h1 em { font-style: italic; color: var(--gold-soft); font-weight: 500; }
.mh-h2 { font: 600 clamp(2rem, 4.2vw, 3.2rem)/1.08 var(--font-heading); margin: 0.75rem 0 1rem; letter-spacing: -0.01em; text-wrap: balance; }
.section--dark .mh-h2 { color: var(--on-ink); }
.mh-lead { max-width: 60ch; color: var(--text-muted); margin: 0 0 2.6rem; font-size: 1.1rem; }
.mh-lead--ink { color: var(--on-ink-muted); }
.mh-section { padding: 5.8rem 0; }
.mh-center { text-align: center; }
.mh-center .mh-h2 { margin-inline: auto; max-width: 20ch; }
.mh-center .mh-lead { margin-inline: auto; }
/* hero */
.mh-hero { position: relative; color: var(--on-ink); background: linear-gradient(180deg, var(--ink) 0%, #211B15 100%); padding: 7.5rem 0 5.5rem; }
.mh-hero__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 3rem; align-items: center; }
.mh-hero__p { max-width: 52ch; font-size: 1.15rem; color: var(--on-ink-muted); margin: 0 0 1.9rem; }
.mh-actions { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.mh-owlwrap { display: grid; place-items: center; position: relative; }
.mh-owlwrap::before, .mh-owlwrap::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(217,180,91,0.22); aspect-ratio: 1; width: min(520px, 50vw); }
.mh-owlwrap::after { width: min(620px, 58vw); border-color: rgba(217,180,91,0.10); }
.mh-owl { position: relative; z-index: 1; width: min(380px, 36vw); height: auto; filter: drop-shadow(0 34px 60px rgba(0,0,0,0.55)); }
/* proof band */
.mh-proof { background: linear-gradient(90deg, #B98B2C 0%, #D1A43A 50%, #B98B2C 100%); color: var(--ink); border-top: 1px solid rgba(255,255,255,0.35); border-bottom: 1px solid rgba(28,23,18,0.25); box-shadow: 0 10px 30px rgba(0,0,0,0.18); position: relative; z-index: 1; }
.mh-proof__row { display: grid; grid-template-columns: repeat(4, auto); justify-content: space-between; gap: 1rem 1.6rem; padding-block: 1.5rem; }
.mh-proof__row > div { display: flex; align-items: baseline; gap: 0.6rem; flex-wrap: wrap; }
.mh-proof__row b { font: 600 1.8rem var(--font-heading); color: var(--ink); }
.mh-proof__row span { color: var(--ink); font-size: 1.1rem; font-weight: 500; }
.mh-proof__g a { display: inline-flex; align-items: baseline; gap: 0.6rem; color: var(--ink); white-space: nowrap; min-height: 44px; }
.mh-proof__stars { font-size: 0.9rem; letter-spacing: 0.06em; color: var(--ink) !important; }
.mh-g { width: 30px; height: 30px; flex: 0 0 30px; align-self: center; background: #fff; border-radius: 50%; padding: 4px; }
/* divisions + gallery */
.mh-divs, .mh-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.4rem 2rem; }
.mh-div img, .mh-gallery img { aspect-ratio: 4 / 5; width: 100%; height: auto; object-fit: cover; border: 1px solid rgba(31,27,23,0.14); border-radius: 4px; display: block; }
.mh-gallery img { border-color: rgba(251,246,238,0.28); }
.mh-div h3 { font: 600 1.6rem/1.15 var(--font-heading); margin: 1.2rem 0 0.4rem; }
.mh-div p { margin: 0 0 0.7rem; color: var(--text-muted); font-size: 1.05rem; }
.mh-list { color: var(--text-dark); font-size: 1.02rem; line-height: 1.9; }
.mh-more { display: inline-flex; align-items: center; min-height: 48px; margin-top: 0.3rem; font: 700 0.95rem var(--font-body); letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold-text); border-bottom: 2px solid var(--gold); padding-bottom: 0; }
.mh-more--soft { color: var(--gold-soft); }
.mh-gallery figure { margin: 0; }
.mh-gallery figcaption { margin-top: 1rem; font-size: 1.02rem; color: var(--on-ink-muted); }
.mh-gallery figcaption b { display: block; color: var(--on-ink); font: 600 1.4rem/1.15 var(--font-heading); margin-bottom: 0.3rem; }
/* process */
.mh-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; }
.mh-step { background: var(--cream); border: 1px solid var(--stone); border-left: 4px solid var(--gold); border-radius: 14px; padding: 1.7rem 1.5rem 1.5rem; position: relative; }
.mh-step__n { font: 600 3rem var(--font-heading); color: var(--gold); line-height: 1; position: absolute; right: 1.3rem; top: 1rem; opacity: 0.55; }
.mh-step h3 { font: 600 1.5rem/1.2 var(--font-heading); margin: 0 0 0.45rem; max-width: 11ch; }
.mh-step p { margin: 0; color: var(--text-muted); font-size: 1.05rem; }
/* owners */
.mh-owners { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 2.6rem; align-items: center; }
.mh-faces { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.mh-faces figure { margin: 0; text-align: center; }
.mh-faces img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center 28%; border-radius: 50%; border: 5px solid var(--gold); box-shadow: 0 14px 34px rgba(0,0,0,0.35); }
.mh-faces figcaption { margin-top: 0.8rem; font-size: 1.02rem; color: var(--on-ink-muted); }
.mh-faces figcaption b { display: block; font: 600 1.3rem var(--font-heading); color: var(--on-ink); }
/* review cards */
.mh-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; margin-top: 2.4rem; }
.mh-card { background: var(--cream); color: var(--text-dark); border-radius: 14px; padding: 1.6rem 1.6rem 1.4rem; display: flex; flex-direction: column; gap: 0.9rem; border: 1.5px solid var(--stone-2); border-top: 5px solid var(--gold); box-shadow: 0 2px 0 var(--stone-2), 0 16px 36px rgba(31,27,23,0.12); }
.mh-card__top { display: flex; justify-content: space-between; align-items: center; gap: 0.7rem; flex-wrap: wrap; }
.mh-stars { color: var(--gold); letter-spacing: 0.14em; font-size: 1rem; }
.mh-via { display: inline-flex; align-items: center; gap: 0.45rem; font: 600 0.92rem var(--font-body); color: var(--text-muted); }
.mh-via .mh-g { width: 20px; height: 20px; flex-basis: 20px; padding: 0; background: transparent; }
.mh-card p { margin: 0; font: 500 1.12rem/1.55 var(--font-heading); flex: 1; color: var(--text-dark); }
.mh-card cite { font: 500 0.98rem var(--font-body); font-style: normal; color: var(--text-muted); }
.mh-card cite b { display: block; font: 700 1.05rem var(--font-body); color: var(--text-dark); margin-bottom: 0.1rem; }
/* towns */
.mh-towns-panel { background: var(--ink-2); border-radius: 18px; border: 1px solid rgba(217,180,91,0.25); border-top: 6px solid var(--gold); padding: 2.1rem 1.9rem 1.9rem; box-shadow: 0 24px 60px rgba(0,0,0,0.35); max-width: 1080px; margin: 2.2rem auto 0; }
.mh-towns { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.8rem; }
.mh-towns a { display: inline-flex; align-items: center; min-height: 52px; gap: 0.6rem; font: 600 1.08rem var(--font-body); letter-spacing: 0.02em; padding: 0.8rem 1.2rem; border-radius: 12px; background: var(--paper); border: 1px solid var(--stone); color: var(--text-dark); box-shadow: 0 6px 16px rgba(0,0,0,0.18); transition: transform 0.15s, border-color 0.15s; }
.section--dark .mh-towns a:not(.btn), .mh-towns a { color: var(--text-dark); }
.mh-towns a:hover { border-color: var(--gold); transform: translateY(-2px); color: var(--text-dark); }
.mh-towns a svg { width: 16px; height: 19px; flex: 0 0 16px; }
.mh-hours { margin: 1.7rem auto 0; max-width: 62ch; color: var(--on-ink-muted); font-size: 1.08rem; }
/* faq */
.mh-faq { max-width: 900px; margin: 2.4rem auto 0; display: grid; gap: 1rem; }
.mh-faq details { background: var(--paper); border: 1.5px solid var(--stone-2); border-left: 6px solid var(--gold); border-radius: 14px; box-shadow: 0 2px 0 var(--stone-2), 0 16px 36px rgba(31,27,23,0.18); transition: box-shadow 0.2s, transform 0.2s; overflow: hidden; }
.mh-faq details:hover { box-shadow: 0 2px 0 var(--stone-2), 0 22px 46px rgba(31,27,23,0.24); transform: translateY(-2px); border-color: #C9B58F; }
.mh-faq details[open] { box-shadow: 0 2px 0 #C9B58F, 0 24px 50px rgba(31,27,23,0.26); border-color: #C9B58F; border-left-color: var(--gold-text); }
.mh-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.1rem; padding: 1.3rem 1.5rem; font: 600 1.3rem/1.3 var(--font-heading); color: var(--text-dark); min-height: 48px; }
.mh-faq summary::-webkit-details-marker { display: none; }
.mh-faq summary::after { content: "+"; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--gold); color: var(--gold-text); display: grid; place-items: center; font: 500 1.7rem/1 var(--font-heading); transition: transform 0.2s, background 0.2s, color 0.2s; }
.mh-faq details[open] summary::after { transform: rotate(45deg); background: var(--gold); color: var(--ink); border-color: var(--gold); }
.mh-faq details[open] summary { border-bottom: 1px solid var(--stone); background: linear-gradient(180deg, #FFFDF9, var(--paper)); }
.mh-faq summary:focus-visible { outline: 2px solid var(--gold); outline-offset: -4px; border-radius: 12px; }
.mh-faq p { margin: 0; padding: 1.1rem 6.5rem 1.4rem 1.5rem; color: var(--text-muted); font-size: 1.08rem; background: #FFFDF9; }
/* book band cards (index) */
.book-section .grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin: 1.6rem 0; }
.book-section .card { background: var(--paper); border: 1px solid var(--stone-2); border-top: 5px solid var(--ink); box-shadow: 0 16px 36px rgba(0,0,0,0.18); }
.book-section .card h3 { font: 600 1.4rem var(--font-heading); color: var(--text-dark); margin-bottom: 0.5rem; text-transform: none; letter-spacing: 0; }
.book-section .card p { color: var(--text-muted); }
.book-section .policy, .book-section .small { color: rgba(28,23,18,0.85); }
@media (max-width: 900px) {
  .mh-hero { padding: 4rem 0 4.5rem; }
  .mh-hero__grid { grid-template-columns: 1fr; gap: 2rem; }
  .mh-owlwrap { order: -1; }
  .mh-owl { width: 200px; }
  .mh-owlwrap::before { width: 280px; } .mh-owlwrap::after { width: 340px; }
  .mh-proof__row { grid-template-columns: 1fr; gap: 0.6rem; padding-block: 1.2rem; }
  .mh-proof__row > div { justify-content: center; text-align: center; flex-wrap: nowrap; white-space: nowrap; }
  .mh-proof__row b { font-size: 1.55rem; } .mh-proof__row span { font-size: 1rem; }
  .mh-divs, .mh-gallery, .mh-steps, .mh-cards { grid-template-columns: 1fr; }
  .mh-owners { grid-template-columns: 1fr; gap: 2rem; }
  .mh-faq p { padding-right: 1.5rem; }
  .mh-faq summary { font-size: 1.15rem; padding: 1.1rem 1.1rem; }
  .book-section .grid { grid-template-columns: 1fr; }
}
