@font-face {
  font-family: Newsreader;
  src: url('newsreader-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}

/* Identity and shared foundations. All rules stay inside the public site. */
.ss-site {
  --ss-ink: #143d31;
  --ss-ground: #f6f8f4;
  --ss-accent: #c8e58b;
  --ss-text: #294437;
  --ss-muted: #526659;
  --ss-soft: #eaf0e5;
  --ss-line: #cbd7c9;
  --ss-dark-line: #476659;
  --ss-max: 1280px;
  --ss-radius: 14px;
  --ss-ease: cubic-bezier(.16, 1, .3, 1);
  --ss-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 18 18 6M6 6h12v12' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
  --ss-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E");
  --ss-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14' fill='none' stroke='black' stroke-width='1.7'/%3E%3C/svg%3E");
  margin: 0;
  background: var(--ss-ground);
  color: var(--ss-text);
  font-family: Arial, Helvetica, system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  scrollbar-color: #7e9583 var(--ss-ground);
  caret-color: var(--ss-ink);
}
.ss-site *, .ss-site *::before, .ss-site *::after { box-sizing: border-box; }
.ss-site :where(h1,h2,h3,p,figure,ul,ol) { margin: 0; }
.ss-site :where(h1,h2,h3) { color: var(--ss-ink); }
.ss-site :where(h1,h2) {
  font-family: Newsreader, Georgia, serif;
  font-optical-sizing: auto;
  font-weight: 400;
  letter-spacing: -.03em;
  line-height: 1.08;
  text-wrap: balance;
}
.ss-site h1 { font-size: clamp(58px, 5.3vw, 76px); }
.ss-site h2 { font-size: clamp(38px, 3.8vw, 54px); }
.ss-site h3 { font-size: 22px; font-weight: 600; letter-spacing: -.015em; line-height: 1.35; }
.ss-site a { color: inherit; text-underline-offset: .23em; text-decoration-thickness: 1px; }
.ss-site :where(a,button,input,select,summary) { -webkit-tap-highlight-color: transparent; }
.ss-site :where(a,button,input,select,summary):focus-visible { outline: 3px solid #527637; outline-offset: 5px; }
.ss-site :where(button,input,select) { font: inherit; }
.ss-site :where(button,select) { cursor: pointer; }
.ss-site img { display: block; max-width: 100%; height: auto; }
.ss-site figure { min-width: 0; }
.ss-site ::selection { background: var(--ss-accent); color: var(--ss-ink); }
.ss-site ::-webkit-scrollbar { width: 12px; height: 12px; }
.ss-site ::-webkit-scrollbar-track { background: var(--ss-ground); }
.ss-site ::-webkit-scrollbar-thumb { background: #7e9583; border: 3px solid var(--ss-ground); border-radius: 8px; }
.ss-site .ss-container { width: calc(100% - 96px); max-width: var(--ss-max); margin-inline: auto; }
.ss-site .ss-main { outline: none; }
.ss-site .ss-skip-link { position: fixed; z-index: 30; top: 12px; left: 12px; padding: 14px 20px; transform: translateY(-180%); background: var(--ss-ink); color: #fff; }
.ss-site .ss-skip-link:focus { transform: translateY(0); }

/* A compact header keeps the service and its action in the first view. */
.ss-site .ss-header { position: relative; z-index: 10; background: var(--ss-ground); }
.ss-site .ss-header > .ss-container { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ss-site .ss-brand { display: inline-flex; align-items: center; gap: 11px; min-height: 48px; color: var(--ss-ink); text-decoration: none; flex-shrink: 0; }
.ss-site .ss-brand-mark { display: block; width: 34px; height: 39px; flex: none; }
.ss-site .ss-brand-copy { display: flex; flex-direction: column; gap: 2px; }
.ss-site .ss-brand-name { font-size: 24px; line-height: 1.15; font-weight: 700; letter-spacing: -.035em; }
.ss-site .ss-brand-tagline { font-size: 11px; line-height: 1.4; color: var(--ss-muted); }
.ss-site .ss-nav { display: flex; align-items: center; gap: 25px; margin-left: auto; }
.ss-site .ss-nav-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; text-decoration: none; white-space: nowrap; }
.ss-site .ss-nav-link:hover, .ss-site .ss-nav-link[aria-current='page'] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.ss-site .ss-header-cta { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 46px; padding: 11px 17px; background: var(--ss-ink); color: #fff; font-size: 14px; line-height: 1.4; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background .2s ease; }
.ss-site .ss-header-cta:hover { background: #245846; }
.ss-site :where(.ss-arrow-icon,.ss-icon) { display: inline-block; width: 21px; height: 21px; flex: 0 0 21px; vertical-align: middle; }
.ss-site .ss-menu { display: none; position: relative; margin-left: auto; }
.ss-site .ss-menu > summary { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 10px 0 10px 14px; cursor: pointer; list-style: none; font-size: 15px; color: var(--ss-ink); }
.ss-site .ss-menu > summary::-webkit-details-marker { display: none; }
.ss-site .ss-menu > summary > span { display: inline-flex; align-items: center; }
.ss-site .ss-menu > summary svg { display: block; width: 20px; height: 20px; }
.ss-site .ss-menu > summary svg path { transition: transform .2s var(--ss-ease); }
.ss-site .ss-menu > summary svg path:first-of-type { transform-origin: 10px 7px; }
.ss-site .ss-menu > summary svg path:last-of-type { transform-origin: 10px 13px; }
.ss-site .ss-menu[open] > summary svg path:first-of-type { transform: translateY(3px) rotate(45deg); }
.ss-site .ss-menu[open] > summary svg path:last-of-type { transform: translateY(-3px) rotate(-45deg); }
.ss-site .ss-menu > nav, .ss-site .ss-menu > .ss-menu-panel { position: absolute; right: 0; top: calc(100% + 12px); width: min(350px, calc(100vw - 40px)); padding: 18px; background: var(--ss-ink); color: #fff; border-radius: 12px; }
.ss-site .ss-menu a { display: flex; align-items: center; min-height: 48px; padding: 11px 12px; font-size: 16px; text-decoration: none; }
.ss-site .ss-menu a:hover { background: #245846; }
.ss-site .ss-menu .ss-header-cta { display: flex; margin-top: 12px; justify-content: space-between; background: var(--ss-accent); color: var(--ss-ink); }
.ss-site .ss-menu a:focus-visible { outline-color: var(--ss-accent); }

/* Actions share one authored arrow. Text labels stay in the document. */
.ss-site .ss-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 56px; max-width: 100%; padding: 16px 22px; border: 0; background: var(--ss-accent); color: var(--ss-ink); font-size: 16px; line-height: 1.4; font-weight: 600; text-decoration: none; transition: background .2s ease, color .2s ease; }
.ss-site .ss-button::after, .ss-site .ss-text-link::after { content: ''; display: block; width: 22px; height: 22px; flex: 0 0 22px; background: currentColor; -webkit-mask: var(--ss-arrow) center / contain no-repeat; mask: var(--ss-arrow) center / contain no-repeat; }
.ss-site .ss-button:hover { background: #b6d879; }
.ss-site .ss-button:active { background: #a6cb65; }
.ss-site .ss-text-link { display: inline-flex; align-items: center; justify-content: flex-start; gap: 13px; min-height: 44px; font-size: 16px; font-weight: 600; line-height: 1.5; text-decoration: underline; }
.ss-site .ss-text-link:hover { text-decoration-thickness: 2px; }
.ss-site .ss-text-link::after { width: 20px; height: 20px; flex-basis: 20px; }
.ss-site :where(button,input,select):disabled, .ss-site .ss-button[aria-disabled='true'] { opacity: .55; cursor: not-allowed; }

/* The hero is one grid: headline and action left, photograph right. */
.ss-site .ss-hero { display: grid; grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr); grid-template-rows: auto 1fr; column-gap: 56px; row-gap: 23px; padding-top: 32px; padding-bottom: 48px; }
.ss-site .ss-hero-layout { display: contents; }
.ss-site .ss-hero-title { grid-column: 1; grid-row: 1; align-self: end; max-width: 100%; }
.ss-site .ss-home-prevention-title span, .ss-site .ss-home-title span { display: block; }
.ss-site .ss-hero-copy { grid-column: 1; grid-row: 2; align-self: start; max-width: 530px; min-width: 0; }
.ss-site .ss-hero-copy > p { font-size: 19px; line-height: 1.55; max-width: 46ch; }
.ss-site .ss-hero-copy .ss-button { margin-top: 24px; }
.ss-site .ss-hero-copy .ss-small { margin-top: 17px; font-size: 14px; line-height: 1.55; max-width: 47ch; color: var(--ss-muted); }
.ss-site .ss-hero-photo { grid-column: 2; grid-row: 1 / span 2; width: 100%; min-width: 0; height: 440px; overflow: hidden; border-radius: var(--ss-radius); }
.ss-site .ss-hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.ss-site .ss-hero--service .ss-hero-title { max-width: 100%; }
.ss-site .ss-hero--service .ss-hero-photo img { object-position: center; }
.ss-site .ss-section { padding-block: 88px; }
.ss-site .ss-section--compact { padding-top: 48px; padding-bottom: 88px; }
.ss-site .ss-section-heading { max-width: 780px; margin-bottom: 38px; }
.ss-site .ss-section-heading p { margin-top: 20px; max-width: 65ch; }

/* The catalogue reads as eight services, not eight competing panels. */
.ss-site .ss-home-catalog { padding-top: 40px; padding-bottom: 88px; scroll-margin-top: 24px; }
.ss-site .ss-prevention-catalog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; list-style: none; padding: 0; }
.ss-site .ss-prevention-catalog > li { display: flex; flex-direction: column; align-items: flex-start; padding: 25px 0 27px; border-top: 1px solid var(--ss-line); min-width: 0; }
.ss-site .ss-prevention-catalog h3 { font-size: 23px; line-height: 1.3; font-weight: 600; letter-spacing: -.02em; }
.ss-site .ss-prevention-catalog p { margin-top: 12px; max-width: 62ch; font-size: 16px; line-height: 1.65; flex: 1; }
.ss-site .ss-prevention-catalog .ss-text-link { margin-top: 13px; font-size: 15px; }
.ss-site .ss-catalog-more { padding-top: 25px; border-top: 1px solid var(--ss-line); max-width: 100%; font-size: 16px; }
.ss-site .ss-catalog-more a { display: inline-block; padding-block: 8px; }

/* A quieter statement, followed by the actual sequence of service. */
.ss-site .ss-principle { padding-block: 76px; background: var(--ss-ink); color: var(--ss-ground); }
.ss-site .ss-principle-layout, .ss-site .ss-process-heading { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); gap: 9%; align-items: center; }
.ss-site .ss-principle h2 { color: var(--ss-ground); font-size: clamp(42px, 4.2vw, 60px); }
.ss-site .ss-principle p { max-width: 50ch; font-size: 17px; }
.ss-site .ss-principle p + p { margin-top: 20px; }
.ss-site .ss-process-heading { align-items: end; margin-bottom: 42px; }
.ss-site .ss-process-heading h2 { max-width: 630px; }
.ss-site .ss-process-heading p { max-width: 45ch; padding-bottom: 4px; }
.ss-site .ss-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px; padding-left: 23px; }
.ss-site .ss-steps li { padding-top: 19px; padding-left: 3px; border-top: 1px solid var(--ss-line); }
.ss-site .ss-steps li::marker { color: var(--ss-ink); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ss-site .ss-steps h3 { font-size: 19px; margin-bottom: 13px; }
.ss-site .ss-steps p { font-size: 15px; line-height: 1.65; }

/* Supporting electrical detail retains the existing photographic identity. */
.ss-site .ss-electrical-section { padding-bottom: 88px; }
.ss-site .ss-electrical-focus { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 5fr); gap: 10%; align-items: center; }
.ss-site .ss-electrical-photo img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--ss-radius); }
.ss-site .ss-electrical-links { display: grid; gap: 18px; margin-top: 24px; }
.ss-site .ss-electrical-links .ss-text-link { font-size: 19px; }
.ss-site .ss-electrical-links p { font-size: 16px; max-width: 52ch; margin-top: 5px; }
.ss-site .ss-electrical-detail { width: 48%; margin-top: 27px; margin-left: auto; }
.ss-site .ss-electrical-detail img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; }
.ss-site .ss-services { padding-block: 40px 88px; }
.ss-site .ss-service-list { display: grid; gap: 70px; }
.ss-site .ss-service-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: center; }
.ss-site .ss-service-row figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ss-radius); }
.ss-site .ss-service-row h3 { font-family: Newsreader, Georgia, serif; font-size: 44px; font-weight: 400; line-height: 1.1; letter-spacing: -.025em; }
.ss-site .ss-service-row p { margin-top: 18px; max-width: 55ch; }
.ss-site .ss-service-row .ss-text-link { margin-top: 17px; }
.ss-site .ss-service-row--reverse figure { grid-column: 2; grid-row: 1; }
.ss-site .ss-service-row--reverse .ss-service-copy { grid-column: 1; grid-row: 1; }

/* Service pages: clear reasons, scope and delivery, using the same rhythm. */
.ss-site .ss-intro-layout, .ss-site .ss-scope-layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: 10%; align-items: start; }
.ss-site .ss-intro-layout h2, .ss-site .ss-scope-heading h2 { max-width: 520px; }
.ss-site .ss-situations { display: grid; gap: 25px; padding: 0; list-style: none; }
.ss-site .ss-situations li + li { padding-top: 23px; border-top: 1px solid var(--ss-line); }
.ss-site .ss-situations strong { display: block; margin-bottom: 7px; font-size: 21px; line-height: 1.35; font-weight: 600; color: var(--ss-ink); }
.ss-site .ss-situations span { font-size: 16px; line-height: 1.65; }
.ss-site .ss-scope { padding-block: 76px; background: var(--ss-soft); }
.ss-site .ss-scope-heading p { margin-top: 21px; max-width: 45ch; }
.ss-site .ss-scope-list { display: grid; gap: 25px; padding-left: 22px; }
.ss-site .ss-scope-list li { padding-left: 5px; font-size: 16px; max-width: 65ch; }
.ss-site .ss-scope-list strong { display: block; margin-bottom: 7px; font-size: 20px; line-height: 1.35; font-weight: 600; color: var(--ss-ink); }
.ss-site .ss-delivery-layout { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); gap: 9%; align-items: start; }
.ss-site .ss-delivery-main h2 { max-width: 650px; }
.ss-site .ss-delivery-main > p { margin-top: 21px; max-width: 62ch; font-size: 18px; }
.ss-site .ss-delivery-main ul { display: grid; gap: 11px; padding-left: 21px; margin-top: 24px; max-width: 65ch; font-size: 16px; }
.ss-site .ss-delivery-aside { padding: 28px; border-radius: 12px; background: var(--ss-soft); }
.ss-site .ss-delivery-aside h3 { font-size: 22px; margin-bottom: 17px; }
.ss-site .ss-delivery-aside p { font-size: 15px; line-height: 1.7; }
.ss-site .ss-delivery-aside p + p { margin-top: 17px; }
.ss-site .ss-delivery-main .ss-note, .ss-site .ss-note { margin-top: 25px; max-width: 68ch; font-size: 14px; line-height: 1.6; color: var(--ss-muted); }
.ss-site .ss-service-process { padding-top: 0; }

/* Native disclosure remains usable with no JavaScript. */
.ss-site .ss-faq-section { padding-block: 76px; background: var(--ss-soft); }
.ss-site .ss-faq-layout { display: grid; grid-template-columns: minmax(0, 3.6fr) minmax(0, 6.4fr); gap: 8%; align-items: start; }
.ss-site .ss-faq-photo { width: 88%; max-width: 340px; margin-top: 54px; }
.ss-site .ss-faq-photo img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 45% center; border-radius: var(--ss-radius); }
.ss-site .ss-faq-content h2 { margin-bottom: 28px; }
.ss-site .ss-faq details { border-bottom: 1px solid #bdccba; }
.ss-site .ss-faq details:first-child { border-top: 1px solid #bdccba; }
.ss-site .ss-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 76px; padding: 21px 0; color: var(--ss-ink); font-size: 17px; font-weight: 500; line-height: 1.45; list-style: none; cursor: pointer; transition: color .2s ease; }
.ss-site .ss-faq summary::-webkit-details-marker { display: none; }
.ss-site .ss-faq summary::after { content: ''; display: block; width: 22px; height: 22px; flex: 0 0 22px; background: currentColor; -webkit-mask: var(--ss-plus) center / contain no-repeat; mask: var(--ss-plus) center / contain no-repeat; }
.ss-site .ss-faq summary:hover { color: #3b653d; }
.ss-site .ss-faq details[open] summary { font-weight: 600; }
.ss-site .ss-faq details[open] summary::after { -webkit-mask-image: var(--ss-minus); mask-image: var(--ss-minus); }
.ss-site .ss-faq details > p { padding: 0 46px 24px 0; font-size: 16px; line-height: 1.65; max-width: 72ch; }
.ss-site .ss-faq-section--service .ss-faq-layout { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: 10%; }
.ss-site .ss-faq-intro p { margin-top: 21px; max-width: 42ch; }

/* Conversion closes each page in one purposeful green surface. */
.ss-site .ss-contact { margin-block: 88px; padding: 58px 60px; background: var(--ss-ink); color: var(--ss-ground); border-radius: 16px; }
.ss-site .ss-contact-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 5fr); gap: 9%; align-items: center; }
.ss-site .ss-contact h2 { color: var(--ss-ground); font-size: clamp(38px, 3.6vw, 52px); max-width: 560px; }
.ss-site .ss-contact-copy > p { margin-top: 22px; max-width: 46ch; color: #deeadf; }
.ss-site .ss-contact-picker { min-width: 0; }
.ss-site .ss-contact-picker fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
.ss-site .ss-service-label, .ss-site .ss-contact-picker legend { display: block; padding: 0; margin-bottom: 13px; font-size: 17px; line-height: 1.5; font-weight: 600; color: #f6f8f4; }
.ss-site .ss-service-select { display: block; width: 100%; min-height: 56px; padding: 14px 40px 14px 15px; border: 1px solid #d2decf; border-radius: 0; background-color: #f6f8f4; color: var(--ss-ink); font-size: 16px; line-height: 1.5; text-overflow: ellipsis; }
.ss-site .ss-service-select:hover { border-color: var(--ss-accent); }
.ss-site .ss-picker-status { min-height: 23px; margin-top: 17px; font-size: 14px; line-height: 1.6; color: #deeadf; }
.ss-site .ss-contact-picker .ss-button { margin-top: 20px; }
.ss-site .ss-contact-picker .ss-small { margin-top: 15px; max-width: 58ch; font-size: 13px; line-height: 1.6; color: #c7d8ca; }
.ss-site .ss-simple-contact { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); gap: 8%; align-items: center; }
.ss-site .ss-simple-contact p { max-width: 45ch; margin-bottom: 24px; color: #deeadf; }
.ss-site .ss-choice-list { display: flex; flex-wrap: wrap; gap: 8px; }
.ss-site .ss-choice { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 10px 14px; background: #245846; color: #fff; font-size: 14px; cursor: pointer; }
.ss-site .ss-choice:has(input:checked) { background: var(--ss-accent); color: var(--ss-ink); }
.ss-site .ss-choice input { width: 18px; height: 18px; margin: 0; accent-color: var(--ss-ink); }
.ss-site .ss-contact :where(a,button,input,select):focus-visible { outline-color: var(--ss-accent); }
.ss-site .ss-next-service { padding-bottom: 80px; }
.ss-site .ss-next-service-inner { display: flex; justify-content: space-between; align-items: center; gap: 40px; padding-top: 30px; border-top: 1px solid var(--ss-line); }
.ss-site .ss-next-service h2 { font-size: 34px; }
.ss-site .ss-next-service p { margin-top: 11px; max-width: 65ch; font-size: 16px; }
.ss-site .ss-next-service .ss-text-link { flex-shrink: 0; }

/* The footer repeats the brand, without repeating a second hero. */
.ss-site .ss-footer { padding-block: 57px 26px; background: #102f27; color: #e6eee7; }
.ss-site .ss-footer-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 3fr); gap: 55px; align-items: start; }
.ss-site .ss-footer-brand .ss-brand { color: var(--ss-ground); }
.ss-site .ss-footer-brand .ss-brand-name { font-family: Newsreader, Georgia, serif; font-size: 57px; line-height: 1.1; font-weight: 400; letter-spacing: -.03em; }
.ss-site .ss-footer-brand > p:not(.ss-footer-note) { max-width: 38ch; margin-top: 18px; font-size: 15px; line-height: 1.65; }
.ss-site .ss-footer-note { max-width: 40ch; margin-top: 13px; font-size: 13px; line-height: 1.6; color: #c3d4c7; }
.ss-site .ss-footer-heading { margin-bottom: 12px; font-family: Arial, Helvetica, system-ui, sans-serif; font-size: 15px; font-weight: 600; letter-spacing: 0; color: var(--ss-ground); }
.ss-site .ss-footer-links { display: grid; gap: 3px; padding: 0; margin: 0; list-style: none; font-size: 14px; }
.ss-site .ss-footer-links a { display: inline-flex; align-items: center; gap: 10px; min-height: 42px; text-decoration: none; }
.ss-site .ss-footer-links a:hover { text-decoration: underline; }
.ss-site .ss-footer-links p { margin-top: 11px; max-width: 36ch; font-size: 14px; line-height: 1.6; color: #c3d4c7; }
.ss-site .ss-footer-bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-top: 43px; padding-top: 23px; border-top: 1px solid var(--ss-dark-line); font-size: 12px; line-height: 1.6; color: #c3d4c7; }
.ss-site .ss-footer :where(a,button):focus-visible, .ss-site .ss-principle :where(a,button):focus-visible { outline-color: var(--ss-accent); }

/* A single, already-visible entrance. Reduced motion removes it entirely. */
@keyframes ss-hero-arrive { from { transform: translateY(8px); } to { transform: translateY(0); } }
@media (prefers-reduced-motion: no-preference) { .ss-site .ss-hero-photo { animation: ss-hero-arrive .6s var(--ss-ease) both; } }

@media (max-width: 1120px) {
  .ss-site .ss-nav, .ss-site .ss-header > .ss-container > .ss-header-cta { display: none; }
  .ss-site .ss-menu { display: block; }
}
@media (max-width: 1000px) {
  .ss-site .ss-container { width: calc(100% - 64px); }
  .ss-site .ss-hero { column-gap: 32px; row-gap: 20px; padding-top: 25px; padding-bottom: 40px; }
  .ss-site .ss-hero h1 { font-size: clamp(44px, 5.8vw, 58px); }
  .ss-site .ss-hero--service h1 { font-size: clamp(42px, 5.5vw, 56px); }
  .ss-site .ss-hero-copy > p { font-size: 17px; }
  .ss-site .ss-hero-copy .ss-button { font-size: 14px; padding: 15px 17px; gap: 14px; min-height: 52px; }
  .ss-site .ss-hero-copy .ss-small { font-size: 13px; }
  .ss-site .ss-hero-photo { height: 410px; }
  .ss-site h2 { font-size: 42px; }
  .ss-site .ss-section { padding-block: 72px; }
  .ss-site .ss-section--compact { padding-top: 32px; padding-bottom: 72px; }
  .ss-site .ss-home-catalog { padding-top: 32px; padding-bottom: 72px; }
  .ss-site .ss-prevention-catalog { column-gap: 38px; }
  .ss-site .ss-prevention-catalog h3 { font-size: 21px; }
  .ss-site .ss-prevention-catalog .ss-text-link { font-size: 14px; }
  .ss-site .ss-principle { padding-block: 64px; }
  .ss-site .ss-principle-layout, .ss-site .ss-process-heading { gap: 7%; }
  .ss-site .ss-principle h2 { font-size: 46px; }
  .ss-site .ss-principle p { font-size: 16px; }
  .ss-site .ss-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 31px 40px; }
  .ss-site .ss-electrical-section { padding-bottom: 72px; }
  .ss-site .ss-electrical-focus { gap: 8%; align-items: start; }
  .ss-site .ss-electrical-photo { padding-top: 25px; }
  .ss-site .ss-electrical-photo img { aspect-ratio: 4 / 5; }
  .ss-site .ss-electrical-detail { width: 60%; }
  .ss-site .ss-intro-layout, .ss-site .ss-scope-layout, .ss-site .ss-delivery-layout { gap: 7%; }
  .ss-site .ss-scope, .ss-site .ss-faq-section { padding-block: 64px; }
  .ss-site .ss-situations strong { font-size: 19px; }
  .ss-site .ss-delivery-aside { padding: 23px; }
  .ss-site .ss-delivery-aside h3 { font-size: 20px; }
  .ss-site .ss-service-process { padding-top: 0; }
  .ss-site .ss-faq-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 7fr); gap: 7%; }
  .ss-site .ss-faq-photo { width: 100%; }
  .ss-site .ss-faq-section--service .ss-faq-layout { gap: 7%; }
  .ss-site .ss-contact { padding: 44px 35px; margin-block: 72px; }
  .ss-site .ss-contact-layout, .ss-site .ss-simple-contact { gap: 7%; }
  .ss-site .ss-contact h2 { font-size: 40px; }
  .ss-site .ss-contact .ss-button { font-size: 14px; padding-inline: 17px; gap: 12px; }
  .ss-site .ss-service-select { font-size: 16px; padding-right: 25px; }
  .ss-site .ss-next-service { padding-bottom: 72px; }
  .ss-site .ss-next-service-inner { flex-direction: column; align-items: flex-start; gap: 17px; }
  .ss-site .ss-footer-grid { gap: 30px; grid-template-columns: 1.2fr 1fr 1fr; }
  .ss-site .ss-footer-brand .ss-brand-name { font-size: 46px; }
}
@media (max-width: 699px) {
  .ss-site { font-size: 16px; }
  .ss-site .ss-container { width: calc(100% - 40px); }
  .ss-site .ss-header > .ss-container { min-height: 76px; gap: 18px; }
  .ss-site .ss-brand { gap: 9px; }
  .ss-site .ss-brand-mark { width: 30px; height: 35px; }
  .ss-site .ss-brand-name { font-size: 23px; }
  .ss-site .ss-brand-tagline { font-size: 10px; }
  .ss-site h2 { font-size: 36px; line-height: 1.12; letter-spacing: -.025em; }
  .ss-site .ss-hero { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto; gap: 20px; padding-top: 22px; padding-bottom: 48px; }
  .ss-site .ss-hero h1, .ss-site .ss-hero--service h1 { font-size: clamp(42px, 11.8vw, 54px); line-height: 1.04; letter-spacing: -.03em; }
  .ss-site .ss-hero-title { grid-column: 1; grid-row: 1; }
  .ss-site .ss-hero-copy { grid-column: 1; grid-row: 2; max-width: 100%; }
  .ss-site .ss-hero-copy > p { font-size: 17px; line-height: 1.55; max-width: 49ch; }
  .ss-site .ss-hero-copy .ss-button { margin-top: 22px; min-height: 54px; font-size: 15px; padding: 15px 20px; gap: 16px; }
  .ss-site .ss-hero-copy .ss-small { font-size: 13px; margin-top: 15px; max-width: 49ch; }
  .ss-site .ss-hero-photo { grid-column: 1; grid-row: 3; height: auto; margin-top: 6px; border-radius: 12px; }
  .ss-site .ss-hero-photo img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
  .ss-site .ss-section { padding-block: 58px; }
  .ss-site .ss-section--compact { padding-top: 10px; padding-bottom: 58px; }
  .ss-site .ss-section-heading { margin-bottom: 28px; }
  .ss-site .ss-section-heading p { margin-top: 17px; }
  .ss-site .ss-home-catalog { padding-top: 10px; padding-bottom: 58px; }
  .ss-site .ss-prevention-catalog { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ss-site .ss-prevention-catalog > li { padding: 23px 0 24px; }
  .ss-site .ss-prevention-catalog h3 { font-size: 22px; }
  .ss-site .ss-prevention-catalog p { font-size: 16px; margin-top: 11px; }
  .ss-site .ss-prevention-catalog .ss-text-link { font-size: 15px; margin-top: 11px; }
  .ss-site .ss-catalog-more { font-size: 15px; padding-top: 20px; }
  .ss-site .ss-catalog-more a { min-height: 44px; padding-block: 9px; }
  .ss-site .ss-principle { padding-block: 54px; }
  .ss-site .ss-principle-layout, .ss-site .ss-process-heading { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ss-site .ss-principle h2 { font-size: 40px; }
  .ss-site .ss-principle p { font-size: 16px; }
  .ss-site .ss-principle p + p { margin-top: 17px; }
  .ss-site .ss-process-heading { margin-bottom: 31px; }
  .ss-site .ss-process-heading p { padding: 0; }
  .ss-site .ss-steps { grid-template-columns: minmax(0, 1fr); gap: 25px; padding-left: 22px; }
  .ss-site .ss-steps li { padding-top: 17px; }
  .ss-site .ss-steps h3 { font-size: 20px; margin-bottom: 9px; }
  .ss-site .ss-steps p { font-size: 16px; }
  .ss-site .ss-electrical-section { padding-bottom: 58px; }
  .ss-site .ss-electrical-focus { grid-template-columns: minmax(0, 1fr); gap: 29px; }
  .ss-site .ss-electrical-photo { padding-top: 0; width: 86%; }
  .ss-site .ss-electrical-photo img { aspect-ratio: 4 / 3; }
  .ss-site .ss-electrical-links { margin-top: 19px; gap: 18px; }
  .ss-site .ss-electrical-links .ss-text-link { font-size: 19px; }
  .ss-site .ss-electrical-detail { width: 52%; margin-top: 23px; }
  .ss-site .ss-services { padding-block: 10px 58px; }
  .ss-site .ss-service-list { gap: 50px; }
  .ss-site .ss-service-row { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .ss-site .ss-service-row h3 { font-size: 36px; }
  .ss-site .ss-service-row--reverse figure, .ss-site .ss-service-row--reverse .ss-service-copy { grid-column: 1; grid-row: auto; }
  .ss-site .ss-intro-layout, .ss-site .ss-scope-layout, .ss-site .ss-delivery-layout { grid-template-columns: minmax(0, 1fr); gap: 29px; }
  .ss-site .ss-situations { gap: 21px; }
  .ss-site .ss-situations li + li { padding-top: 20px; }
  .ss-site .ss-situations strong { font-size: 20px; }
  .ss-site .ss-scope, .ss-site .ss-faq-section { padding-block: 54px; }
  .ss-site .ss-scope-heading p { margin-top: 18px; }
  .ss-site .ss-scope-list { gap: 24px; padding-left: 20px; }
  .ss-site .ss-scope-list strong { font-size: 19px; }
  .ss-site .ss-delivery-main > p { font-size: 17px; margin-top: 18px; }
  .ss-site .ss-delivery-main ul { margin-top: 20px; }
  .ss-site .ss-delivery-aside { padding: 23px; }
  .ss-site .ss-delivery-aside h3 { font-size: 21px; }
  .ss-site .ss-delivery-aside p { font-size: 15px; }
  .ss-site .ss-service-process { padding-top: 0; }
  .ss-site .ss-faq-layout, .ss-site .ss-faq-section--service .ss-faq-layout { grid-template-columns: minmax(0, 1fr); gap: 27px; }
  .ss-site .ss-faq-content { grid-row: 1; }
  .ss-site .ss-faq-photo { grid-row: 2; width: 48%; max-width: 190px; margin-top: 3px; margin-left: auto; }
  .ss-site .ss-faq-content h2 { margin-bottom: 22px; }
  .ss-site .ss-faq summary { min-height: 70px; padding-block: 19px; gap: 18px; font-size: 16px; }
  .ss-site .ss-faq details > p { padding: 0 27px 22px 0; font-size: 15px; }
  .ss-site .ss-faq-intro p { margin-top: 17px; }
  .ss-site .ss-contact { margin-block: 58px; padding: 32px 24px; border-radius: 14px; }
  .ss-site .ss-contact-layout, .ss-site .ss-simple-contact { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ss-site .ss-contact h2 { font-size: 36px; }
  .ss-site .ss-contact-copy > p { margin-top: 18px; font-size: 16px; }
  .ss-site .ss-service-label, .ss-site .ss-contact-picker legend { font-size: 16px; }
  .ss-site .ss-service-select { padding: 13px 25px 13px 12px; min-height: 54px; font-size: 16px; }
  .ss-site .ss-picker-status { font-size: 13px; margin-top: 15px; }
  .ss-site .ss-contact .ss-button { min-height: 54px; font-size: 14px; gap: 12px; padding: 15px 17px; }
  .ss-site .ss-contact-picker .ss-small { font-size: 12px; line-height: 1.65; }
  .ss-site .ss-simple-contact p { margin-bottom: 22px; font-size: 16px; }
  .ss-site .ss-next-service { padding-bottom: 58px; }
  .ss-site .ss-next-service-inner { padding-top: 25px; gap: 16px; }
  .ss-site .ss-next-service h2 { font-size: 30px; }
  .ss-site .ss-next-service p { font-size: 15px; }
  .ss-site .ss-next-service .ss-text-link { font-size: 15px; }
  .ss-site .ss-footer { padding-block: 42px 25px; }
  .ss-site .ss-footer-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ss-site .ss-footer-brand .ss-brand-name { font-size: 49px; }
  .ss-site .ss-footer-brand > p:not(.ss-footer-note) { margin-top: 14px; font-size: 15px; }
  .ss-site .ss-footer-note { margin-top: 9px; font-size: 13px; }
  .ss-site .ss-footer-heading { font-size: 16px; margin-bottom: 7px; }
  .ss-site .ss-footer-links { font-size: 14px; }
  .ss-site .ss-footer-links a { min-height: 44px; }
  .ss-site .ss-footer-links p { margin-top: 5px; max-width: 48ch; }
  .ss-site .ss-footer-bottom { margin-top: 30px; padding-top: 20px; font-size: 11px; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .ss-site *, .ss-site *::before, .ss-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}