/* ==========================================================
   Obsession Cleaning and Company Inc. - style.css
   Design: bold, minimal, black-and-white with full-width
   sections and big type. Brand gradient used as the accent.
   ========================================================== */

/* ---------- 1. Variables & Reset ---------- */
:root {
  --black: #000000;
  --ink: #111111;
  --white: #ffffff;
  --grey: #f2f2f2;
  --grey-mid: #6b6b6b;
  --line: #d9d9d9;
  --teal: #2db0ac;
  --blue: #3a98d4;
  --brand-gradient: linear-gradient(90deg, #2db0ac, #3a98d4);
  --max-width: 1280px;
  --header-h: 84px;
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: 72px;
}

body {
  margin: 0;
  font-family: "Outfit", "Segoe UI", system-ui, -apple-system, Helvetica, Arial, sans-serif;
  color: var(--black);
  background: var(--white);
  line-height: 1.55;
  font-size: 1rem;
}

img {
  max-width: 100%;
  height: auto;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  color: inherit;
}

h1, h2, h3, p {
  margin-top: 0;
}

h1, h2, h3 {
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.container {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 24px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--white);
  color: var(--black);
  padding: 10px 16px;
  z-index: 300;
}

.skip-link:focus {
  left: 10px;
  top: 10px;
}

:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}

/* ---------- 2. Buttons (square, bold, like a car-brand site) ---------- */
.btn {
  display: inline-block;
  padding: 14px 26px;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  border: 2px solid transparent;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.btn-large {
  padding: 18px 34px;
  font-size: 1.05rem;
}

/* White button */
.btn-light {
  background: var(--white);
  color: var(--black);
  border-color: var(--white);
}

.btn-light:hover {
  background: var(--black);
  color: var(--white);
  border-color: var(--white);
}

/* Black button */
.btn-dark {
  background: var(--black);
  color: var(--white);
  border-color: var(--black);
}

.btn-dark:hover {
  background: var(--white);
  color: var(--black);
}

/* Transparent button for dark backgrounds */
.btn-ghost {
  background: transparent;
  color: var(--white);
  border-color: var(--white);
}

.btn-ghost:hover {
  background: var(--white);
  color: var(--black);
}

/* Outlined button for light backgrounds */
.btn-outline {
  background: transparent;
  color: var(--black);
  border-color: var(--black);
}

.btn-outline:hover {
  background: var(--black);
  color: var(--white);
}

/* ---------- 3. Header ---------- */
.site-header {
  background: var(--white);
  border-bottom: 1px solid var(--line);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 32px;
  min-height: var(--header-h);
  flex-wrap: wrap;
  padding-top: 8px;
  padding-bottom: 8px;
}

.logo {
  display: block;
  line-height: 0;
}

.logo img {
  height: 68px;
  width: auto;
  display: block;
}

.header-phones {
  display: flex;
  gap: 28px;
}

.header-phones a {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  line-height: 1.2;
}

.header-phones span {
  font-size: 0.75rem;
  color: var(--grey-mid);
}

.header-phones strong {
  font-size: 1.2rem;
  font-weight: 800;
}

.header-phones a:hover strong {
  background: var(--brand-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---------- 4. Sticky secondary bar ---------- */
.subnav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(6px);
}

.subnav-inner {
  display: flex;
  align-items: baseline;
  gap: 28px;
  padding-top: 18px;
  padding-bottom: 18px;
}

.subnav-title {
  font-size: 1.05rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.subnav-links {
  display: flex;
  gap: 22px;
  flex: 1;
}

.subnav-links a {
  text-decoration: none;
  font-size: 1rem;
  line-height: 1.2;
}

.subnav-links a:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}

.subnav-actions {
  display: flex;
  gap: 10px;
  margin-left: auto;
}

.subnav .btn {
  padding: 10px 20px;
  font-size: 0.85rem;
}

/* The white button needs an outline on the white bar */
.subnav .btn-light {
  border-color: var(--black);
}

.subnav .btn-light:hover {
  background: var(--black);
  color: var(--white);
}

/* ---------- 5. Hero ---------- */
.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: calc(100vh - 140px);
  min-height: calc(100svh - 140px);
  padding: 80px 0 0;
  color: var(--white);
  overflow: hidden;
  /*
    HERO PHOTO PLACEHOLDER (keep this gradient until a suitable photo is ready):
    A future hero image should ideally be:
      - an original high-resolution file, at least about 1600 pixels wide
      - optimized as WebP or AVIF, with a JPEG fallback where practical
      - given a descriptive file name (for example cleaned-kitchen-hero.webp)
      - given accurate alt text if it is added as an <img>, or a text alternative nearby
    Then replace the "background:" line below with something like:
      background: linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.65)),
                  url("images/cleaned-kitchen-hero.webp") center / cover no-repeat;
    Do not use small images here, because they will look blurry when enlarged.
  */
  background:
    radial-gradient(ellipse at 80% 20%, rgba(58, 152, 212, 0.55), transparent 55%),
    radial-gradient(ellipse at 15% 85%, rgba(45, 176, 172, 0.5), transparent 55%),
    #05080b;
}

.hero-content {
  position: relative;
  z-index: 2;
}

.hero-kicker {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.85rem;
  font-weight: 700;
  margin-bottom: 20px;
  opacity: 0.9;
}

.hero h1 {
  font-size: clamp(2.4rem, 6vw, 5rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  max-width: 17ch;
  margin-bottom: 22px;
  color: var(--white);
}

.hero-sub {
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  max-width: 620px;
  margin-bottom: 32px;
  opacity: 0.92;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.hero-stats {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 64px;
  padding-top: 28px;
  padding-bottom: 36px;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.hero-stats strong {
  display: block;
  font-size: clamp(2rem, 5vw, 3.6rem);
  font-weight: 800;
  line-height: 1;
}

.hero-stats span {
  font-size: 0.95rem;
  opacity: 0.85;
}

.scroll-cue {
  position: absolute;
  right: 28px;
  bottom: 40px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  text-decoration: none;
  opacity: 0.85;
}

.scroll-cue span {
  font-size: 1.3rem;
}

/* ---------- 6. Regional Hubs (two big halves) ---------- */
.hubs-heading {
  padding-top: 96px;
  padding-bottom: 48px;
}

.hubs h2,
.services h2,
.why h2 {
  font-size: clamp(2.4rem, 6vw, 4.5rem);
  margin-bottom: 16px;
}

.hubs-heading p,
.services-intro {
  font-size: 1.2rem;
  color: var(--grey-mid);
  max-width: 560px;
  margin-bottom: 0;
}

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

.hub {
  display: flex;
  min-height: 520px;
  padding: 56px 24px;
}

.hub-ab {
  background: var(--black);
  color: var(--white);
  justify-content: flex-end;
}

.hub-bc {
  background: var(--grey);
  color: var(--black);
  justify-content: flex-start;
}

.hub-inner {
  width: 100%;
  max-width: 560px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.hub-label {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.8rem;
  font-weight: 700;
  margin-bottom: 14px;
}

.hub-ab .hub-label,
.hub-bc .hub-label {
  background: var(--brand-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hub h3 {
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  margin-bottom: 20px;
}

.hub p {
  font-size: 1.1rem;
}

.city-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 8px 0 32px;
}

.city-list li {
  padding: 8px 16px;
  font-size: 0.9rem;
  font-weight: 500;
  border: 1px solid currentColor;
}

.hub-inner .btn {
  margin-top: auto;
}

/* ---------- 7. Services (two static panels) ---------- */

.services-intro {
  margin-bottom: 0;
}

/*
  SERVICE CARD PHOTO PLACEHOLDERS (keep these gradients until photos are ready):
  Future card images should ideally be:
    - original high-resolution files, at least about 800 pixels wide
    - optimized as WebP or AVIF, with a JPEG fallback where practical
    - given descriptive file names (for example residential-kitchen-clean.webp)
    - described with accurate alt text, using the aria-label on each .service-media
      element or an <img alt="..."> if the markup is changed
  Example:
    .media-1 { background-image: url("images/residential-kitchen-clean.webp"); }
  Do not use small images here, because they will look blurry when enlarged.
*/
.media-1 {
  background-image: linear-gradient(135deg, #0f2b3a, #2db0ac);
}

/* ---------- About ---------- */
.about {
  padding: 110px 0;
  background: var(--grey);
}

.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}

.about h2 {
  font-size: clamp(2.4rem, 6vw, 4.5rem);
  margin-bottom: 28px;
}

.about-tagline {
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  padding-left: 20px;
  border-left: 4px solid var(--teal);
}

.about-tagline .tm,
.hero-slogan .tm {
  font-size: 0.45em;
  font-weight: 400;
  line-height: 0;
  vertical-align: super;
  margin-left: 0.1em;
}

.about-text p {
  font-size: 1.15rem;
  margin-bottom: 22px;
}

.about-text p:last-child {
  margin-bottom: 0;
}

/* ---------- 8. Why Choose Us (dark section) ---------- */
.why {
  background: var(--black);
  color: var(--white);
  padding: 110px 0;
}

.why h2 {
  margin-bottom: 64px;
  max-width: 14ch;
}

.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.why-block {
  padding-top: 24px;
  border-top: 2px solid var(--white);
}

.why-num {
  display: inline-block;
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 36px;
  background: var(--brand-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.why-block h3 {
  font-size: 2rem;
  margin-bottom: 20px;
}

.why-block li {
  position: relative;
  padding: 12px 0 12px 28px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.why-block li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.15em;
  width: 12px;
  height: 7px;
  border-left: 2px solid var(--teal);
  border-bottom: 2px solid var(--teal);
  transform: rotate(-45deg);
}

/* ---------- 9. Estimate band ---------- */
.estimate {
  padding: 96px 0;
  background: var(--grey);
}

.estimate-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 48px 24px;
  border: 1px solid var(--black);
  background: var(--white);
  max-width: calc(var(--max-width) - 48px);
}

.estimate h2 {
  font-size: clamp(1.9rem, 4vw, 3rem);
  margin-bottom: 10px;
}

.estimate p {
  margin: 0;
  color: var(--grey-mid);
  font-size: 1.1rem;
}

.estimate-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* ---------- 10. Footer ---------- */
.site-footer {
  background: var(--black);
  color: #cfcfcf;
  padding-top: 72px;
}

.footer-logo {
  display: inline-block;
  margin-bottom: 20px;
}

.footer-logo img {
  height: 84px;
  width: auto;
  display: block;
}

.site-footer h3 {
  color: var(--white);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  margin-bottom: 18px;
}

.site-footer li {
  margin-bottom: 10px;
}

.site-footer a {
  text-decoration: none;
}

.site-footer a:hover {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.footer-bottom {
  margin-top: 56px;
  padding: 22px 24px;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  font-size: 0.9rem;
}

.footer-bottom p {
  margin: 0;
}

/* ---------- 11. Responsive ---------- */
@media (max-width: 1024px) {
  .about-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .why-grid {
    grid-template-columns: 1fr;
  }

  .why-block {
    margin-bottom: 24px;
  }
}

@media (max-width: 860px) {
  .header-inner {
    justify-content: center;
    text-align: center;
  }

  .subnav-links {
    display: none;
  }

  .subnav-inner {
    justify-content: space-between;
  }

  .hubs-grid {
    grid-template-columns: 1fr;
  }

  .hub {
    min-height: 0;
    padding: 48px 24px;
  }

  .hub-ab,
  .hub-bc {
    justify-content: flex-start;
  }

  .hub-inner .btn {
    margin-top: 12px;
  }

  .scroll-cue {
    display: none;
  }
}

@media (max-width: 600px) {

  .logo img {
    height: 58px;
  }

  .header-phones {
    gap: 20px;
  }

  .header-phones strong {
    font-size: 1.05rem;
  }

  .subnav-title {
    display: none;
  }

  .subnav-actions {
    width: 100%;
    margin-left: 0;
  }

  .subnav-actions .btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
  }

  .hero {
    min-height: 0;
    padding-top: 56px;
  }

  .hero-actions .btn {
    width: 100%;
  }

  .hero-stats {
    margin-top: 40px;
    gap: 12px;
  }

  .hero-stats span {
    font-size: 0.8rem;
  }

  .hubs-heading {
    padding-top: 64px;
  }

  .services,
  .why,
  .about {
    padding: 72px 0;
  }

  .estimate {
    padding: 56px 0;
  }

  .estimate-inner {
    padding: 32px 20px;
  }

  .estimate-actions,
  .estimate-actions .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .btn {
    transition: none;
  }
}


/* ==========================================================
   Added for the detailed pages (regions, cities, services,
   legal pages, 404) and homepage updates
   ========================================================== */

/* Hero slogan (homepage) */
.hero-slogan {
  margin: 0 0 22px;
  padding-left: 16px;
  border-left: 4px solid var(--teal);
  font-size: clamp(1.2rem, 2.6vw, 1.9rem);
  font-weight: 700;
  line-height: 1.2;
}

/* Hub buttons and city links */
.hub-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: auto;
}

.hub-inner .hub-actions .btn {
  margin-top: 0;
}

.hub-ab .btn-ghost:hover {
  background: var(--white);
  color: var(--black);
}

.city-list a {
  text-decoration: none;
}

.city-list a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Service cards: linked titles and two actions */

.media-6 {
  background-image: linear-gradient(135deg, #1b2630, #2db0ac);
}

.estimate-hours {
  margin-top: 12px;
  font-weight: 500;
  color: var(--black);
}

.footer-sub {
  margin-top: 28px;
}

/* Breadcrumbs */
.breadcrumb {
  margin-bottom: 28px;
  font-size: 0.9rem;
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumb li + li::before {
  content: "/";
  margin-right: 10px;
  opacity: 0.6;
}

.breadcrumb a {
  text-underline-offset: 4px;
}

.breadcrumb a:hover {
  text-decoration: none;
}

/* Page hero for inner pages */
.page-hero {
  padding: 56px 0 64px;
  color: var(--white);
  background:
    radial-gradient(ellipse at 85% 10%, rgba(58, 152, 212, 0.5), transparent 55%),
    radial-gradient(ellipse at 10% 100%, rgba(45, 176, 172, 0.45), transparent 55%),
    #05080b;
}

.page-hero h1 {
  max-width: 20ch;
  margin-bottom: 20px;
  font-size: clamp(2.2rem, 5.6vw, 4.6rem);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -0.035em;
  color: var(--white);
}

.page-hero-small h1 {
  font-size: clamp(2rem, 4.5vw, 3.4rem);
}

.page-lead {
  max-width: 680px;
  margin-bottom: 30px;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  opacity: 0.93;
}

.page-hero .hero-kicker {
  margin-bottom: 14px;
}

/* Pages without a hero button row: no extra space under the intro text */
.page-hero-noactions .page-lead {
  margin-bottom: 0;
}

/* Inner page content */
.prose-wrap {
  max-width: 920px;
  padding-top: 64px;
  padding-bottom: 80px;
}

.prose-wrap section {
  margin-bottom: 52px;
}

.prose-wrap h2 {
  margin-bottom: 16px;
  font-size: clamp(1.6rem, 3.2vw, 2.3rem);
}

.prose-wrap p,
.prose-wrap li {
  font-size: 1.1rem;
}

.prose-wrap p a,
.faq-item p a {
  text-underline-offset: 4px;
}

.check-list li {
  position: relative;
  padding: 10px 0 10px 30px;
  border-bottom: 1px solid var(--line);
}

.check-list li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 1.1em;
  width: 12px;
  height: 7px;
  border-left: 2px solid var(--teal);
  border-bottom: 2px solid var(--teal);
  transform: rotate(-45deg);
}

.related-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.related-list a {
  display: block;
  height: 100%;
  padding: 20px 22px;
  text-decoration: none;
  border: 1px solid var(--line);
  transition: border-color 0.2s, background 0.2s;
}

.related-list a:hover {
  border-color: var(--black);
  background: var(--grey);
}

.related-list strong {
  display: block;
  margin-bottom: 6px;
  font-size: 1.15rem;
}

.related-list span {
  display: block;
  font-size: 0.98rem;
  color: var(--grey-mid);
}

.link-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.link-pills a {
  display: inline-block;
  padding: 9px 18px;
  font-weight: 500;
  text-decoration: none;
  border: 1px solid var(--black);
  transition: background 0.2s, color 0.2s;
}

.link-pills a:hover {
  background: var(--black);
  color: var(--white);
}

.link-pills .is-region a {
  font-weight: 700;
  border-width: 2px;
}

.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* Contact cards */
.contact-block {
  padding: 36px;
  background: var(--grey);
}

.contact-block h2 {
  margin-bottom: 10px;
}

.contact-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 24px;
}

.contact-card {
  padding: 20px 22px;
  background: var(--white);
  border: 1px solid var(--line);
}

.contact-card span {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--grey-mid);
}

.contact-card a {
  display: inline-block;
  margin-top: 6px;
  font-size: 1.5rem;
  font-weight: 800;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.contact-card a.email-link {
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.contact-card a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.contact-card small {
  display: block;
  margin-top: 6px;
  font-size: 0.9rem;
  color: var(--grey-mid);
}

/* FAQ */
.faq-item {
  border-bottom: 1px solid var(--line);
}

.faq-item summary {
  padding: 16px 28px 16px 0;
  font-size: 1.15rem;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  position: relative;
}

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

.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 12px;
  font-size: 1.5rem;
  font-weight: 400;
}

.faq-item[open] summary::after {
  content: "\2212";
}

.faq-item p {
  margin: 0 0 18px;
}

/* Legal pages */
.legal p,
.legal li {
  max-width: 720px;
}

.legal p a {
  overflow-wrap: anywhere;
}

.legal ul {
  list-style: disc;
  margin: 0 0 1em;
  padding-left: 1.4em;
}

.legal li {
  margin-bottom: 0.4em;
}

/* Responsive additions */
@media (max-width: 1180px) {
  .subnav-title {
    display: none;
  }
}

@media (max-width: 860px) {
  .related-list,
  .contact-cards {
    grid-template-columns: 1fr;
  }

  .contact-block {
    padding: 24px 20px;
  }
}

@media (max-width: 600px) {
  .page-hero {
    padding: 40px 0 48px;
  }

  .prose-wrap {
    padding-top: 44px;
    padding-bottom: 56px;
  }

  .page-hero .hero-actions .btn {
    width: 100%;
  }
}


/* ==========================================================
   Mobile menu (shown only where the sub-navigation links are hidden)
   ========================================================== */
.mobile-nav {
  display: none;
}

@media (max-width: 860px) {
  .mobile-nav {
    display: block;
    flex: 0 0 auto;
  }

  .mobile-nav summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--black);
    background: var(--white);
    border: 2px solid var(--black);
    cursor: pointer;
    list-style: none;
    user-select: none;
  }

  .mobile-nav summary::-webkit-details-marker {
    display: none;
  }

  .mobile-nav summary:hover,
  .mobile-nav[open] summary {
    background: var(--black);
    color: var(--white);
  }

  .burger,
  .burger::before,
  .burger::after {
    display: block;
    width: 16px;
    height: 2px;
    background: currentColor;
  }

  .burger {
    position: relative;
  }

  .burger::before,
  .burger::after {
    content: "";
    position: absolute;
    left: 0;
  }

  .burger::before {
    top: -5px;
  }

  .burger::after {
    top: 5px;
  }

  .mobile-nav[open] .burger {
    background: transparent;
  }

  .mobile-nav[open] .burger::before {
    top: 0;
    transform: rotate(45deg);
  }

  .mobile-nav[open] .burger::after {
    top: 0;
    transform: rotate(-45deg);
  }

  /* The list drops down below the sticky bar, so the estimate and call buttons stay visible */
  .mobile-nav-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: calc(100vh - 150px);
    max-height: calc(100svh - 150px);
    overflow-y: auto;
    padding: 6px 24px 14px;
    background: var(--white);
    border-bottom: 2px solid var(--black);
    box-shadow: 0 14px 24px rgba(0, 0, 0, 0.14);
  }

  .mobile-nav-list a {
    display: block;
    padding: 14px 0;
    font-size: 1.1rem;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid var(--line);
  }

  .mobile-nav-list li:last-child a {
    border-bottom: 0;
  }

  .mobile-nav-list a:hover {
    text-decoration: underline;
    text-underline-offset: 5px;
  }

  .subnav-inner {
    gap: 10px;
    padding-top: 12px;
    padding-bottom: 12px;
  }
}

@media (max-width: 860px) and (prefers-reduced-motion: no-preference) {
  .mobile-nav[open] .mobile-nav-list {
    animation: menu-in 0.18s ease-out;
  }

  @keyframes menu-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

@media (max-width: 600px) {
  .subnav-inner {
    flex-wrap: nowrap;
  }

  .subnav-actions {
    flex: 1 1 auto;
    width: auto;
    margin-left: 0;
    min-width: 0;
  }

  .subnav .btn {
    padding: 10px 8px;
    font-size: 0.8rem;
  }
}

@media (max-width: 480px) {
  .btn-extra {
    display: none;
  }

  .subnav .btn {
    padding: 10px 12px;
  }
}

@media (max-width: 360px) {
  .hero-stats {
    gap: 8px;
  }

  .hero-stats strong {
    font-size: 1.8rem;
  }

  .hero-stats span {
    font-size: 0.72rem;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 400px) {
  .estimate-actions .btn {
    padding: 16px 10px;
    font-size: 0.95rem;
    overflow-wrap: anywhere;
  }
}

/* Commercial clients strip: one row that drifts across the screen */
.clients{background:var(--white);padding:64px 0;border-top:1px solid var(--line);overflow:hidden}
.clients-title{margin:0 0 32px;text-align:center;font-size:.85rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.clients-title::after{content:"";display:block;width:40px;height:2px;background:var(--black);margin:14px auto 0}
.clients-marquee{display:flex;width:max-content;animation:clients-drift 40s linear infinite}
.clients-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap}
.clients-list li{flex:0 0 240px;width:240px;height:110px;display:flex;align-items:center;justify-content:center;padding:16px 24px;text-align:center;font-weight:600;font-size:1rem;line-height:1.25;color:var(--black)}
.client-logo{filter:grayscale(100%);display:block;max-width:100%;max-height:64px;width:auto;height:auto;object-fit:contain}
@keyframes clients-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:480px){.clients{padding:48px 0}.clients-list li{flex-basis:180px;width:180px;height:96px;font-size:.9rem}}
@media (prefers-reduced-motion:reduce){
  .clients-marquee{animation:none;width:auto;overflow-x:auto}
  .clients-clone{display:none}
}

/* Social links, Google reviews link */
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.social-links{list-style:none;margin:0;padding:0;display:flex;gap:14px}
.site-footer .social-links li{margin:0}
.social-links a{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.35);color:var(--white);transition:background-color .2s,border-color .2s,color .2s}
.site-footer .social-links a:hover{background:var(--teal);border-color:var(--teal);color:var(--black);text-decoration:none}
.social-links a:focus-visible,.site-footer a:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.footer-follow{margin-top:26px}
.reviews{background:var(--white);padding:96px 0}
.reviews-inner{text-align:center;max-width:720px}
.reviews h2{margin-bottom:16px}
.reviews p{margin:0 auto 32px;color:var(--grey-mid)}
@media (max-width:480px){.reviews{padding:64px 0}.reviews .btn{width:100%;white-space:normal}}

/* Footer phone numbers: area on its own line, number never splits */
.site-footer .footer-phone a{display:block}
.phone-area{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:#b5b5b5;margin-bottom:2px}
.phone-num{display:block;color:var(--white);font-weight:500;white-space:nowrap}

/* Client Portal link in the navigation */
.subnav-links a.portal-link{font-weight:700;border:1px solid currentColor;padding:6px 12px}
.subnav-links a.portal-link:hover{background:var(--black);border-color:var(--black);color:var(--white)}
.mobile-nav-list a.portal-link{font-weight:700}
.subnav-links{gap:18px;flex-wrap:nowrap}
.subnav-links a{white-space:nowrap}
.subnav-links a.portal-link{padding:5px 10px}
@media (min-width:861px) and (max-width:1280px){.subnav-links{gap:12px}.subnav-links a{font-size:.9rem}.subnav-title{font-size:.9rem}}
.subnav-actions .btn{white-space:nowrap}
@media (min-width:861px) and (max-width:1500px){.subnav-links{gap:14px}.subnav-links a{font-size:.9rem}.subnav-title{font-size:.9rem}.subnav-links a.portal-link{padding:4px 8px}}
@media (min-width:861px) and (max-width:1000px){.subnav-links{gap:10px}.subnav-links a{font-size:.82rem}.subnav-links a.portal-link{padding:4px 6px}}
@media (min-width:861px) and (max-width:1000px){.subnav-actions .btn{padding-left:14px;padding-right:14px;font-size:.85rem}.subnav-actions{gap:8px}}

/* Client Portal placeholder page */
.portal-hero{padding:72px 0 80px}
.portal-hero-inner{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center}
.portal-hero h1{max-width:14ch}
.portal-badge{display:flex;align-items:center;justify-content:center;width:220px;height:220px;color:var(--teal);border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.04)}
.portal-features-section{background:var(--white);padding:88px 0 40px}
.portal-features-section h2{margin-bottom:36px}
.portal-features{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.portal-feature{display:flex;flex-direction:column;gap:18px;padding:28px 24px;border:1px solid var(--line);background:var(--grey);font-weight:600;font-size:1.05rem;line-height:1.3}
.portal-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--black);color:var(--white)}
.portal-contact{background:var(--grey);padding:72px 0;margin-top:48px}
.portal-contact-inner{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.portal-contact h2{margin-bottom:12px}
.portal-contact p{margin:0;max-width:46ch}
.portal-contact-actions{display:flex;flex-direction:column;gap:12px;min-width:280px}
.portal-contact-actions .btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}
.portal-num{font-weight:500;font-size:.85rem;opacity:.85;white-space:nowrap}
@media (max-width:1000px){.portal-features{grid-template-columns:repeat(2,1fr)}.portal-contact-inner{grid-template-columns:1fr}.portal-contact-actions{min-width:0}}
@media (max-width:760px){.portal-hero{padding:48px 0 56px}.portal-hero-inner{grid-template-columns:1fr}.portal-badge{width:120px;height:120px;order:-1}.portal-badge svg{width:72px;height:72px}.portal-hero h1{max-width:none}}
@media (max-width:480px){.portal-features{grid-template-columns:1fr}.portal-features-section{padding:56px 0 24px}.portal-hero .hero-actions .btn{width:100%;justify-content:center}.portal-contact{padding:56px 0}}

/* Standard cleaning schedules on the residential page */
.schedule-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.schedule-item{padding:20px;border:1px solid var(--line);background:var(--grey);scroll-margin-top:140px}
.schedule-item h3{margin:0 0 6px;font-size:1.1rem}
.schedule-item p{margin:0}
.standard-cleaning{scroll-margin-top:140px}
@media (max-width:640px){.schedule-list{grid-template-columns:1fr}}
@media (min-width:861px) and (max-width:1000px){.subnav-links{gap:8px}.subnav-links a{font-size:.78rem}.subnav-links a.portal-link{padding:3px 5px}.subnav-actions .btn{padding-left:10px;padding-right:10px;font-size:.8rem}.subnav-inner{gap:12px}}
@media (min-width:1001px) and (max-width:1320px){.subnav-links{gap:10px}.subnav-links a{font-size:.84rem}.subnav-title{font-size:.8rem;letter-spacing:.08em}.subnav-links a.portal-link{padding:3px 6px}.subnav-actions .btn{padding-left:14px;padding-right:14px}}
.prose-wrap .check-list + p{margin-top:22px}

/* Homepage: slim phone bar and hero logo */
.site-header--slim{background:var(--white)}
.site-header--slim .header-inner{min-height:0;padding-top:6px;padding-bottom:6px;justify-content:center;gap:4px 40px}
.site-header--slim .header-phones{gap:36px;justify-content:center}
.site-header--slim .header-phones a{flex-direction:row;align-items:baseline;gap:8px}
.site-header--slim .header-phones span{font-size:.8rem}
.site-header--slim .header-phones strong{font-size:1rem}
@media (max-width:480px){.site-header--slim .header-phones{gap:18px}.site-header--slim .header-phones a{flex-direction:column;align-items:center;gap:0}.site-header--slim .header-phones span{font-size:.7rem}.site-header--slim .header-phones strong{font-size:.95rem}}
/* Homepage hero: logo, heading and spacing (no company-name kicker above the heading) */
.hero-logo-link{display:block;width:fit-content;margin:0 0 24px;line-height:0}
.hero-logo{display:block;width:clamp(200px,36vw,380px);height:auto;margin:0}
.hero{min-height:calc(100svh - 120px);padding-top:44px}
.hero h1{font-size:clamp(2.1rem,4.2vw,3.5rem);max-width:21ch;margin-bottom:16px}
.hero-sub{max-width:760px;margin-bottom:26px}
a.subnav-title{color:inherit;font-weight:700;text-decoration:none}
a.subnav-title:hover{text-decoration:underline;text-underline-offset:5px}
@media (max-width:1100px){.hero{min-height:0;padding-top:52px}}
@media (max-width:600px){.hero-logo{width:clamp(200px,62vw,260px)}.hero-logo-link{margin-bottom:20px}.hero{padding-top:32px}}

/* Client Portal holding page additions */
.portal-logo-link{display:block;width:fit-content;margin:0 0 22px;line-height:0}
.portal-logo{display:block;width:clamp(180px,24vw,300px);height:auto;margin:0}
.portal-welcome{margin:0 0 14px;font-size:clamp(1.2rem,2.6vw,1.6rem);font-weight:700;color:var(--teal)}
.portal-hero h1{max-width:16ch}
@media (max-width:760px){.portal-badge{order:0}.portal-hero-inner{gap:28px}.portal-badge{width:100px;height:100px}.portal-badge svg{width:60px;height:60px}}

/* Services: two static panels and a shared call to action */
.services{padding:110px 0;overflow:visible}
.services-head{margin-bottom:48px}
.service-panels{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.service-panel{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--white)}
.panel-media{aspect-ratio:16/9;background-size:cover;background-position:center}
.panel-body{display:flex;flex-direction:column;align-items:flex-start;flex:1;padding:36px 32px 40px}
.panel-body h3{margin:0 0 12px;font-size:clamp(1.7rem,3vw,2.2rem);letter-spacing:-.02em}
.panel-body>p{margin:0 0 24px;color:var(--grey-mid);max-width:44ch}
.panel-body .btn{margin-top:auto}
.panel-links{list-style:none;margin:0 0 32px;padding:0;width:100%;border-top:1px solid var(--line)}
.panel-links li{border-bottom:1px solid var(--line)}
.panel-links>li>a{display:block;padding:12px 0;font-weight:700}
.panel-links a{text-decoration:none}
.panel-links a:hover{text-decoration:underline;text-underline-offset:5px}
.panel-links ul{list-style:none;margin:0 0 12px 4px;padding:0 0 0 16px;border-left:2px solid var(--teal)}
.panel-links ul li{border:0}
.panel-links ul a{display:block;padding:6px 0;font-weight:500;color:var(--grey-mid)}
.panel-links ul a:hover{color:var(--black)}
.service-cta{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-top:56px;padding:36px 0 0;border-top:1px solid var(--line)}
.service-cta h3{margin:0 0 8px;font-size:clamp(1.4rem,2.6vw,1.8rem)}
.service-cta p{margin:0;color:var(--grey-mid);max-width:52ch}
.service-cta-actions{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:860px){.service-panels{grid-template-columns:1fr}}
@media (max-width:600px){.services{padding:72px 0}.panel-body{padding:28px 22px 32px}.service-cta-actions{width:100%}.service-cta-actions .btn{flex:1 1 100%;text-align:center;justify-content:center}.service-cta{margin-top:40px}}
.service-panel:last-child .panel-media{flex:1 1 auto}
@media (max-width:860px){.service-panel:last-child .panel-media{flex:0 0 auto}}

/* Homepage hero photograph: right-hand panel on wide screens, stacked below the text on tablet and phone */
.hero--photo .hero-photo{position:absolute;top:0;right:0;width:42%;height:100%;object-fit:cover;object-position:30% 50%;z-index:0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%),linear-gradient(0deg,transparent 0,#000 28%);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 30%),linear-gradient(0deg,transparent 0,#000 28%);mask-composite:intersect}
.hero--photo .hero-content{text-shadow:0 1px 16px rgba(0,0,0,.45)}
.hero--photo .hero-actions .btn{text-shadow:none}
.hero--photo .hero-sub{max-width:700px}
@media (min-width:1400px){.hero--photo .hero-sub{max-width:760px}}
@media (max-width:1100px){
  .hero--photo .hero-photo{position:static;order:1;width:calc(100% - 48px);max-width:720px;height:auto;aspect-ratio:1440/1020;margin:32px auto 0;-webkit-mask-image:none;mask-image:none;object-fit:cover;object-position:center}
  .hero--photo .hero-content{order:0}
  .hero--photo .hero-stats{order:2}
}
@media (max-width:600px){.hero--photo .hero-photo{margin-top:26px}}

/* Photographs: panels, About, service pages, Careers */
.panel-media{position:relative;overflow:hidden}
.panel-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.photo{margin:0}
.photo img{display:block;width:100%;height:auto}
.photo figcaption{margin-top:10px;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-mid)}
.about-photo{margin-top:36px;max-width:560px}
.about-photo img{aspect-ratio:4/3;object-fit:cover}
.prose-wrap .photo-main{margin:0 0 40px}
.prose-wrap .photo-main img{aspect-ratio:16/10;object-fit:cover;object-position:center 55%}
.photo-grid{display:grid;gap:16px;margin:0 0 40px}
.photo-grid-2{grid-template-columns:1fr 1fr}
.photo-grid-3{grid-template-columns:repeat(3,1fr)}
.photo-grid .photo img{aspect-ratio:4/3;object-fit:cover}
.photo-grid-tall .photo img{aspect-ratio:4/5;object-fit:cover}
/* Commercial page three-photo row (same tall treatment as Careers); crops tuned per photo */
.photo-grid-tall .photo-kitchen img{object-position:25% center}
.photo-grid-tall .photo-glass img{object-position:50% 55%}
.photo-grid-tall .photo-salon img{object-position:25% center}
.photo-float{float:right;width:min(340px,40%);margin:6px 0 20px 32px}
.photo-float img{aspect-ratio:3/4;object-fit:cover}
.prose-wrap section::after{content:"";display:block;clear:both}
@media (max-width:700px){
  .photo-grid-2{grid-template-columns:1fr}
  .photo-grid-3{grid-template-columns:1fr}
  .photo-float{float:none;width:100%;max-width:360px;margin:0 0 24px}
  .photo-grid-tall .photo img{aspect-ratio:4/3}
  .photo-grid-tall .photo-mat img{aspect-ratio:4/5}
  .photo-grid-tall .photo-kitchen img,.photo-grid-tall .photo-salon img{object-position:50% 50%}
  .photo-grid-tall .photo-glass img{object-position:50% 80%}
}

/* Brand logo links: match the logo, with a clear keyboard focus ring */
.logo{width:fit-content}
.logo:focus-visible,.hero-logo-link:focus-visible,.portal-logo-link:focus-visible,.footer-logo:focus-visible{outline:3px solid var(--teal);outline-offset:4px}

/* Soft-edge treatment for content photographs (shared; not applied to logos, icons or the desktop hero) */
:root{--photo-radius:16px;--photo-shadow:0 10px 30px rgba(0,0,0,.10)}
.photo img{border-radius:var(--photo-radius);box-shadow:var(--photo-shadow)}
.service-panel{border-radius:var(--photo-radius);box-shadow:var(--photo-shadow);overflow:hidden}
/* Hero: desktop keeps its approved fade (no shadow, no radius); the stacked tablet/phone photo uses the shared radius */
@media (max-width:1100px){.hero--photo .hero-photo{border-radius:var(--photo-radius)}}

/* ============================================================
   Homepage client reviews
   Google reviews and Facebook recommendations in a horizontally scrolling carousel (no external scripts or widgets).
   ============================================================ */
.reviews{background:var(--grey);padding:96px 0}
.reviews .reviews-head{max-width:720px;margin:0 auto 40px;text-align:center}
.reviews .reviews-head h2{margin:0 0 16px}
.reviews .reviews-intro{margin:0 auto;color:var(--grey-mid);max-width:60ch}
.review-carousel{position:relative}
.review-track{position:relative;list-style:none;margin:0 -24px;padding:12px 24px 40px;display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 24px;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.review-track::-webkit-scrollbar{display:none}
.review-track:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:16px}
.review-card{flex:0 0 calc((100% - 48px) / 3);scroll-snap-align:start;display:flex;min-width:0}
@media (max-width:1099px){.review-card{flex-basis:calc((100% - 24px) / 2)}}
@media (max-width:699px){.review-card{flex-basis:100%}}
.review-article{display:flex;flex-direction:column;width:100%;background:var(--white);border:1px solid var(--line);border-radius:var(--photo-radius,16px);box-shadow:var(--photo-shadow,0 10px 30px rgba(0,0,0,.10));padding:32px 28px 24px;position:relative;overflow:hidden}
.review-article::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--teal)}
.review-facebook .review-article::before{background:var(--blue)}
.review-source{margin:0 0 14px}
.review-label{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border:1px solid var(--ink);border-radius:999px;padding:4px 12px}
.reviews .review-rating,.reviews .review-recommends{margin:0 0 14px;min-height:24px;display:flex;align-items:center;gap:8px}
.review-stars{display:inline-flex;gap:2px;color:#b45309}
.review-stars svg{fill:currentColor}
.reviews .review-recommends{font-weight:700;color:var(--ink)}
.review-recommends svg{fill:var(--ink);flex:none}
.review-body{flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start}
.reviews .review-text p{margin:0 0 .85em;color:var(--ink);line-height:1.6;font-size:1rem;text-align:left}
.reviews .review-text p:last-child{margin-bottom:0}
.review-carousel.is-ready .review-text.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;line-clamp:7;overflow:hidden}
.review-more{margin:12px 0 0;padding:6px 0;background:none;border:0;border-bottom:2px solid var(--ink);font:inherit;font-weight:700;color:var(--ink);cursor:pointer}
.review-more:hover{border-bottom-color:var(--teal)}
.review-more:focus-visible,.review-link:focus-visible,.review-dot:focus-visible,.review-pause:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.review-meta{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.reviews .review-meta p{margin:0;text-align:left}
.reviews .review-name{font-weight:800;color:var(--ink)}
.reviews .review-date{color:var(--grey-mid);font-size:.9rem;margin-bottom:10px}
.review-link{display:inline-block;font-size:.9rem;font-weight:700;color:var(--ink);text-underline-offset:4px}
.review-link:hover{text-decoration-thickness:2px}
.reviews-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:32px}
.review-icon-link{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:48px;height:48px;border:2px solid var(--black);background:transparent;color:var(--black);text-decoration:none}
.review-icon-link svg{display:block;width:24px;height:24px}
.review-icon-link:hover,.review-icon-link:focus-visible{background:var(--black);color:var(--white)}
.review-icon-link:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
@media (max-width:480px){.reviews{padding:64px 0}.reviews .reviews-actions .btn{width:100%}.review-article{padding:24px 22px 22px}}

/* Review rotation: gentle fade between groups, small position dots and a quiet pause control */
.review-track{transition:opacity .38s ease}
.review-track.is-fading{opacity:0}
.review-controls{display:none;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 20px;margin-top:0}
.review-carousel.is-ready .review-controls{display:flex}
.review-dots{display:flex;align-items:center;gap:2px}
.review-dot{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:none;border:0;border-radius:50%;cursor:pointer}
.review-dot span{width:10px;height:10px;border-radius:50%;background:transparent;border:2px solid var(--ink);box-sizing:border-box;transition:background .25s ease,transform .25s ease}
.review-dot[aria-current="true"] span{background:var(--ink);transform:scale(1.15)}
.review-dot:hover span{background:var(--teal);border-color:var(--ink)}
.review-pause{background:none;border:0;border-bottom:1px solid var(--grey-mid);padding:2px 0;font:inherit;font-size:.85rem;color:var(--grey-mid);cursor:pointer}
.review-pause:hover{color:var(--ink);border-bottom-color:var(--ink)}
.review-carousel.is-reduced .review-pause{display:none}
@media (prefers-reduced-motion:reduce){.review-track,.review-dot span{transition:none}.review-track{scroll-behavior:auto}}

/* ============================================================
   Blog (foundation: category labels, empty state, newsletter placeholder, unpublished post template)
   ============================================================ */
.blog-section{padding:72px 0;background:var(--white)}
.blog-section--grey{background:var(--grey)}
.blog-section h2{margin:0 0 12px}
.blog-section .blog-intro{margin:0 0 32px;max-width:62ch;color:var(--grey-mid)}
.blog-label{display:inline-block;margin:0;padding:5px 14px;border:1.5px solid var(--ink);border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.3;color:var(--ink)}
.page-hero .blog-label{margin:0 0 16px;color:#fff;border-color:rgba(255,255,255,.75)}
.blog-categories{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.blog-category{position:relative;overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:var(--photo-radius,16px);box-shadow:var(--photo-shadow,0 10px 30px rgba(0,0,0,.10));padding:34px 26px 28px}
.blog-category::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--brand-gradient)}
.blog-category p{margin:14px 0 0;color:var(--grey-mid);line-height:1.6}
.blog-articles:empty{display:none}
.blog-empty{max-width:760px;margin:0 auto;padding:48px 34px;text-align:center;background:var(--white);border:1px solid var(--line);border-radius:var(--photo-radius,16px);box-shadow:var(--photo-shadow,0 10px 30px rgba(0,0,0,.10))}
.blog-empty-icon{color:var(--ink);margin-bottom:12px}
.blog-section .blog-empty-title{margin:0 0 6px;font-size:1.35rem;font-weight:800;color:var(--ink)}
.blog-section .blog-empty-text{margin:0;color:var(--grey-mid)}
.newsletter-card{max-width:900px;margin:0 auto;padding:40px 34px;text-align:center;background:var(--grey);border:1px solid var(--line);border-radius:var(--photo-radius,16px)}
.newsletter-card p{margin:0 auto 22px;max-width:56ch;color:var(--grey-mid)}
.newsletter-soon{display:inline-block;padding:14px 28px;border:2px dashed #9a9a9a;border-radius:6px;background:#e9e9e9;color:#4a4a4a;font-weight:800;letter-spacing:.03em;cursor:not-allowed;user-select:none}
.post-meta{margin:0 0 14px;color:#dbe3e6;font-size:.95rem}
.post-meta .post-author::before{content:"\00b7";margin:0 10px}
.post{max-width:760px;margin:0 auto}
.post-figure{margin:0 0 32px}
.post-figure img{display:block;width:100%;height:auto}
.post-figure figcaption{margin-top:10px;font-size:.9rem;color:var(--grey-mid)}
.post-body{font-size:1.08rem;line-height:1.75;color:var(--ink)}
.post-body h2{margin:36px 0 12px}
.post-body h3{margin:28px 0 10px}
.post-body p,.post-body ul,.post-body ol{margin:0 0 20px}
.post-body ul{list-style:disc}
.post-body ol{list-style:decimal}
.post-body ul,.post-body ol{padding-left:1.4em}
.post-body li{margin-bottom:8px}
.post-related{margin:40px 0 0;padding:26px 28px;background:var(--grey);border:1px solid var(--line);border-radius:var(--photo-radius,16px)}
.post-related h2{margin:0 0 8px;font-size:1.2rem}
.post-related p{margin:0}
.post-back{margin:36px 0 0}
.subnav-links a[aria-current="page"],.mobile-nav-list a[aria-current="page"]{font-weight:800;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
@media (max-width:860px){.blog-categories{grid-template-columns:1fr}.blog-section{padding:56px 0}}
@media (max-width:600px){.blog-empty{padding:36px 22px}.newsletter-card{padding:32px 22px}.newsletter-soon{display:block;padding:14px 16px}.post-body{font-size:1.02rem}.post-back .btn{display:block;text-align:center}}

/* ============================================================
   Homepage careers panel (text-led, sits between About and Why Choose)
   ============================================================ */
.careers-panel{background:var(--white);padding:72px 0;border-top:1px solid var(--line)}
.careers-panel-inner{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.careers-eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 16px;font-size:.85rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.careers-eyebrow::before{content:"";flex:none;width:44px;height:4px;background:var(--brand-gradient)}
.careers-panel h2{margin:0;font-size:clamp(2rem,4.4vw,3.4rem)}
.careers-panel-action p{margin:0 0 26px;font-size:1.15rem}
@media (max-width:860px){.careers-panel{padding:56px 0}.careers-panel-inner{grid-template-columns:1fr;gap:24px}.careers-panel-action p{margin-bottom:22px}}
@media (max-width:600px){.careers-panel-action .btn{display:block;width:100%}}

/* Navigation: with six main links, give them a little more room so the bar stays balanced */
@media (min-width:861px){.subnav-links{gap:26px}}
@media (min-width:1281px){.subnav-links{gap:34px}}

/* ============================================================
   Mobile navigation row: Menu, Estimate and Call us as three equal controls (phones only; desktop unchanged)
   ============================================================ */
@media (max-width:600px){
  .subnav-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}
  .subnav-inner .mobile-nav{min-width:0}
  .subnav-inner .subnav-actions{display:contents}
  .subnav-inner .mobile-nav summary,
  .subnav-inner .subnav-actions .btn{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:46px;margin:0;padding:0 6px;border:2px solid var(--black);font-size:.8rem;font-weight:700;line-height:1.2;text-align:center;white-space:nowrap}
  .subnav-inner .btn-extra{display:none}
}

/* ============================================================
   Featured commercial review (same card as the homepage reviews, shown once)
   ============================================================ */
.reviews.reviews--inline{background:transparent;padding:0}
.reviews--inline .review-card{display:flex;flex:none;max-width:760px;margin:0}

/* ============================================================
   Footer Services: full list on larger screens, two collapsed groups on phones
   ============================================================ */

/* Hero stats: four equal columns on desktop, two-by-two on phones; "Since 2016" stays on one line */
.hero-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.hero-stats strong{white-space:nowrap;font-size:clamp(.9rem,3vw,2.9rem)}
@media (min-width:861px) and (max-width:1420px){.hero-stats{padding-right:110px}}
@media (max-width:600px){
  .hero-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}
  .hero-stats strong{font-size:clamp(1.2rem,6.2vw,2.2rem)}
}

/* Commercial page: six category cards */
.prose-wrap .commercial-fit{margin-bottom:56px}
.fit-intro{max-width:720px;margin:0 0 28px}
.fit-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.fit-card{display:flex;flex-direction:column;padding:26px 24px 28px;border:1px solid var(--line);border-top:3px solid var(--teal);border-radius:12px;background:var(--white);scroll-margin-top:140px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.fit-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.10);border-color:var(--teal)}
.fit-card:target{border-color:var(--teal);box-shadow:0 0 0 3px rgba(45,176,172,.35)}
.fit-icon{flex:none;width:30px;height:30px;margin-bottom:16px;color:var(--teal)}
.prose-wrap .fit-card h3{margin:0 0 10px;font-size:1.25rem;line-height:1.25}
.prose-wrap .fit-card p{margin:0;font-size:1rem;line-height:1.6;color:#333}
@media (max-width:899px){.fit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.fit-grid{grid-template-columns:1fr;gap:16px}.fit-card{padding:22px 20px 24px}}
@media (prefers-reduced-motion:reduce){.fit-card{transition:none}.fit-card:hover{transform:none}}

/* Careers: current opportunity cards */
.prose-wrap .current-opportunities{margin-bottom:56px}
.job-intro{max-width:720px;margin:0 0 26px}
.job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.job-card{display:flex;flex-direction:column;min-width:0;padding:28px 26px 28px;border:1px solid var(--line);border-top:3px solid var(--teal);border-radius:12px;background:var(--white);box-shadow:0 8px 24px rgba(0,0,0,.06)}
.job-status{align-self:flex-start;margin:0 0 12px;padding:4px 12px;border:1px solid var(--teal);border-radius:999px;color:#0f6f6c;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.4}
.prose-wrap .job-card h3{margin:0 0 18px;font-size:clamp(1.25rem,2.4vw,1.5rem);line-height:1.25}
.job-facts{display:grid;grid-template-columns:1fr;gap:14px;margin:0 0 20px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.job-facts div{min-width:0}
.job-facts dt{margin:0 0 3px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--grey-mid)}
.job-facts dd{margin:0;font-size:1.02rem;line-height:1.4;overflow-wrap:anywhere}
.prose-wrap .job-summary{margin:0 0 16px;font-size:1.02rem}
.prose-wrap .job-req-title{margin:0 0 8px;font-size:.95rem;font-weight:700}
.prose-wrap .job-reqs{margin:0 0 16px;padding-left:22px;list-style:disc}
.prose-wrap .job-reqs li{margin:0 0 4px;font-size:1.02rem}
.prose-wrap .job-note{margin:auto 0 18px;padding-top:4px;font-weight:700;font-size:1.02rem}
.job-actions{display:flex}
.job-actions .btn{width:100%;text-align:center}
.prose-wrap .job-all{margin:24px 0 0}
@media (max-width:760px){
  .job-grid{grid-template-columns:1fr;gap:18px}
  .job-card{padding:22px 18px 24px}
}
@media (max-width:600px){.job-all .btn{display:block;width:100%;text-align:center}}

/* ---------- Footer (all pages): five always-visible columns on wide screens, then one bottom row ---------- */
.site-footer{padding-top:28px}
.footer-main{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px 32px;align-items:start;padding-bottom:18px}
.footer-col{min-width:0}
.footer-company{grid-column:span 3}
.footer-contact{grid-column:span 3}
.footer-links-col{grid-column:span 2}
.site-footer .footer-logo{display:inline-block;margin-bottom:12px}
.site-footer .footer-logo img{height:56px;width:auto}
.footer-company p{margin:0 0 14px;max-width:340px;font-size:.95rem;line-height:1.5}
.site-footer .social-links a{width:44px;height:44px}
.site-footer h3,.site-footer .footer-links-col h4{margin:0 0 8px;color:var(--white);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;line-height:1.3}
.site-footer .footer-sub{margin-top:12px}
.footer-contact ul{list-style:none;margin:0;padding:0}
.footer-contact li{margin:0 0 6px}
.footer-contact a{overflow-wrap:anywhere}
.site-footer .footer-hours li{margin:0;font-size:.95rem;line-height:1.55}
.site-footer .footer-links-col h5{margin:0 0 2px;color:var(--white);font-size:.95rem;font-weight:700;line-height:1.3}
.footer-area+.footer-area{margin-top:12px}
.footer-links,.footer-links ul{list-style:none;margin:0;padding:0}
.site-footer .footer-links li{margin:0}
.footer-links a{display:flex;align-items:center;min-height:32px;padding:0;font-size:.95rem}
.footer-links ul{margin:0 0 2px;padding-left:16px}
.footer-links ul a{font-size:.9rem}
.site-footer .footer-bottom{margin-top:0;padding:0;text-align:left;border-top:1px solid rgba(255,255,255,.15);font-size:.9rem}
.footer-bottom-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 28px}
.footer-bottom-links{display:flex;flex-wrap:wrap;gap:0 22px;list-style:none;margin:0;padding:0}
.site-footer .footer-bottom-links li{margin:0}
.footer-bottom-links a{display:inline-flex;align-items:center;min-height:44px}
.footer-bottom p{margin:0;padding:10px 0;font-size:.85rem;color:#b5b5b5}
.footer-bottom-groups{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 40px;width:100%}
.footer-policies{display:flex;flex-wrap:wrap;align-items:center;gap:0 18px}
.footer-policies-label{font-size:.9rem;font-weight:700;letter-spacing:.04em;color:#b5b5b5}
.footer-bottom-inner>p{width:100%;border-top:1px solid rgba(255,255,255,.1)}
/* Wide desktop: all five columns in one row */
@media (min-width:1260px){
  .footer-main{grid-template-columns:minmax(0,.85fr) minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,1.15fr) minmax(0,.95fr);gap:28px 24px}
  .footer-company,.footer-contact,.footer-links-col{grid-column:auto}
}
/* Tablets: two columns, Service Areas across the full width with Alberta and British Columbia side by side */
@media (max-width:900px){
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  .footer-company,.footer-contact,.footer-links-col{grid-column:auto}
  .footer-links-col:last-of-type{grid-column:1 / -1}
  .footer-areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px}
  .footer-area+.footer-area{margin-top:0}
}
/* Phones: one column */
@media (max-width:600px){
  .site-footer{padding-top:32px}
  .footer-main{grid-template-columns:1fr;gap:24px}
  .footer-areas{display:block}
  .footer-area+.footer-area{margin-top:12px}
  .footer-links a{min-height:44px}
  .footer-bottom-inner{flex-direction:column;align-items:flex-start}
  .footer-bottom-links{gap:0 20px}
  .footer-bottom-groups{flex-direction:column;align-items:flex-start;gap:0}
  .footer-policies{flex-direction:column;align-items:flex-start;gap:0;padding-top:8px;margin-top:4px;border-top:1px solid rgba(255,255,255,.1);width:100%}
  .footer-policies-label{padding-top:6px}
}

/* Meet Amanda: photo beside the story on desktop, stacked on tablet and phones */
.meet-amanda{background:var(--white);padding:96px 0}
.meet-amanda-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:64px;align-items:center}
.meet-photo{max-width:560px;width:100%}
.meet-photo img{aspect-ratio:1/1;object-fit:cover}
.meet-amanda h2{margin:0 0 24px;font-size:clamp(1.9rem,4vw,3rem);line-height:1.1}
.meet-amanda-text p{margin:0 0 20px;font-size:1.1rem}
.meet-amanda-text p:last-child{margin-bottom:0}
@media (max-width:1024px){.meet-amanda-grid{grid-template-columns:1fr;gap:32px}.meet-photo{max-width:560px}}
@media (max-width:860px){.meet-amanda{padding:64px 0}}

/* ---------- Header search icon (same bordered square as the site's buttons, 44 x 44 px) ---------- */
.subnav-actions{align-items:center}
.subnav-search{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex:none;width:44px;height:44px;border:2px solid var(--black);background:var(--white);color:var(--black);text-decoration:none}
.subnav-search:hover{background:var(--black);color:var(--white)}
.subnav-search:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.subnav-search svg{display:block}
.nav-home{margin-right:0}
@media (max-width:600px){
  .subnav-inner{grid-template-columns:repeat(3,minmax(0,1fr)) 46px}
  .subnav-inner .subnav-search{order:4;width:46px;height:46px;align-self:stretch}
  .subnav-inner:has(.nav-home){grid-template-columns:minmax(0,1.1fr) 46px 46px minmax(0,1fr) minmax(0,1fr)}
  .subnav-inner:has(.nav-home) .mobile-nav{order:1}
  .subnav-inner .nav-home{order:2;width:46px;height:46px;align-self:stretch}
  .subnav-inner:has(.nav-home) .subnav-search:not(.nav-home){order:3}
  .subnav-inner:has(.nav-home) .subnav-actions .btn-light{order:4}
  .subnav-inner:has(.nav-home) .subnav-actions .btn-call{order:5}
}

/* ---------- Search page ---------- */
.search-wrap{max-width:820px;padding-top:48px;padding-bottom:80px}
.search-form label{display:block;margin:0 0 8px;font-weight:700;font-size:1.05rem}
.search-row{display:flex;gap:10px;align-items:stretch}
.search-row input[type="search"]{flex:1 1 auto;min-width:0;min-height:48px;padding:10px 14px;border:2px solid var(--black);border-radius:0;background:var(--white);color:var(--black);font:inherit;font-size:1.05rem}
.search-row input[type="search"]:focus-visible,.search-row .btn:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.search-row .btn{min-height:48px;padding:0 26px;cursor:pointer}
.search-status{min-height:1.5em;margin:18px 0 8px;font-weight:700}
.search-status.is-error{color:#9b1c1c}
.search-results{list-style:none;margin:0;padding:0}
.search-result{padding:18px 0;border-top:1px solid var(--line)}
.search-result:last-child{border-bottom:1px solid var(--line)}
.search-result h2{margin:0 0 6px;font-size:1.25rem;line-height:1.3}
.search-result p{margin:0 0 4px}
.search-result .search-url{font-size:.9rem;color:#555;word-break:break-all}
.search-note{margin-top:16px}
@media (max-width:480px){.search-row{flex-direction:column}.search-row .btn{width:100%}}
@media (min-width:601px) and (max-width:860px){.subnav-inner{align-items:center}}

/* Very narrow phones (360px and under): menu shows the burger only so the house, search, Estimate and Call buttons all fit */
@media (max-width:360px){
  .subnav-inner:has(.nav-home){grid-template-columns:46px 46px 46px minmax(0,1fr) minmax(0,1fr)}
  .subnav-inner:has(.nav-home) .mobile-nav summary span:not(.burger){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .subnav-inner:has(.nav-home) .mobile-nav summary{padding:0}
  .subnav-inner:has(.nav-home){gap:6px}
  .subnav-inner:has(.nav-home) .subnav-actions .btn{font-size:.68rem;letter-spacing:0;padding:0 2px}
}

/* ---------- Footer: Residential and Commercial column headings are links (look identical to plain headings) ---------- */
.site-footer .footer-links-col h4 a.footer-heading-link{display:inline-block;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit;text-decoration:none;transition:color .15s ease}
.site-footer .footer-links-col h4 a.footer-heading-link:hover{color:var(--teal);text-decoration:underline;text-underline-offset:4px}
.site-footer .footer-links-col h4 a.footer-heading-link:focus-visible{color:var(--teal);text-decoration:underline;text-underline-offset:4px;outline:3px solid var(--teal);outline-offset:3px}

/* ---------- Top navigation controls: house and search icons match each other and the 44px buttons ---------- */
.subnav-search,.nav-home{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex:0 0 auto;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:2px solid var(--black);background:var(--white);color:var(--black);line-height:0;text-decoration:none}
.subnav-search:hover,.nav-home:hover{background:var(--black);color:var(--white)}
.subnav-search:focus-visible,.nav-home:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.subnav-search svg,.nav-home svg{display:block;flex:none;width:22px;height:22px;margin:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (min-width:601px){
  .subnav-actions{display:flex;align-items:center}
  .subnav-actions .btn{box-sizing:border-box;display:inline-block;height:44px;padding-top:0;padding-bottom:0;line-height:40px;vertical-align:middle}
}

/* ---------- Top navigation: Client Portal, Request an Estimate and Call us share one size and typography ---------- */
@media (min-width:861px){
  .subnav{--nav-btn-w:164px;--nav-btn-fs:.9rem}
  .subnav-actions .btn{box-sizing:border-box;display:inline-block;flex:0 0 var(--nav-btn-w);width:var(--nav-btn-w);height:44px;padding:0 8px;border-width:2px;border-style:solid;font-size:var(--nav-btn-fs);font-weight:700;line-height:40px;letter-spacing:0;text-align:center;white-space:nowrap;vertical-align:middle}
  .subnav-actions .btn-portal{background:var(--white);color:var(--black);border-color:var(--black)}
  .subnav-actions .btn-portal:hover{background:var(--black);color:var(--white);border-color:var(--black)}
  .subnav-actions .btn-portal:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
}
@media (min-width:861px) and (max-width:1500px){.subnav{--nav-btn-w:172px;--nav-btn-fs:.9rem}}
@media (min-width:861px) and (max-width:1320px){.subnav{--nav-btn-w:162px;--nav-btn-fs:.84rem}}
@media (min-width:861px) and (max-width:1000px){.subnav{--nav-btn-w:152px;--nav-btn-fs:.78rem}}
@media (min-width:861px) and (max-width:900px){.subnav{--nav-btn-w:140px}}
@media (max-width:860px){.subnav .subnav-inner .subnav-actions .btn-portal{display:none}}

/* ---------- Brand logo icon in the top navigation (plain image, not a link, no company-name text) ---------- */
.brand-icon{display:block;flex:none;width:32px;height:32px;object-fit:contain}
.brand-mini{display:none}
@media (min-width:1181px){.subnav-inner{gap:20px;align-items:center}}
@media (min-width:1181px) and (max-width:1240px){.subnav-inner{gap:16px}}
@media (min-width:1501px){.subnav{--nav-btn-w:156px}}
@media (min-width:861px) and (max-width:900px){.subnav{--nav-btn-w:132px}.subnav-actions .btn{padding-left:2px;padding-right:2px}}
@media (max-width:1180px){
  .subnav-logo{display:none}
  .site-header--slim .header-inner{position:relative}
  .brand-mini{display:block;position:absolute;left:24px;top:50%;transform:translateY(-50%);width:26px;height:26px}
}
@media (max-width:600px){
  .brand-mini{left:16px;width:30px;height:30px}
}

/* Homepage "Get Informed" prompt inside Why Choose Us */
.why-faq{margin-top:72px;padding-top:40px;border-top:2px solid var(--white)}
.why-faq h3{margin:0 0 24px;font-size:2.6rem}
@media (max-width:860px){.why-faq{margin-top:48px;padding-top:32px}.why-faq h3{font-size:2.1rem;margin-bottom:20px}}

/* FAQ page */
.faq-page{padding:56px 0 96px}
.faq-page-list{max-width:860px;border-top:1px solid var(--line)}
.faq-page .faq-item summary{transition:color .15s ease}
.faq-page .faq-item summary:hover,.faq-page .faq-item[open] summary{color:#1c7c78}
.faq-page .faq-item summary:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:4px}
.faq-page .faq-item p a{color:#1c7c78;overflow-wrap:anywhere}
.faq-page .faq-item p a:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:3px}
@media (max-width:860px){.faq-page{padding:36px 0 72px}.faq-page .faq-item summary{font-size:1.05rem}}
