/*
Theme Name: Safix — Smiley Starfish Base
Theme URI: https://smileystarfish.co.uk/
Description: Safix site-specific GeneratePress child theme built from Smiley Starfish Base v0.5.0.
Author: Smiley Starfish Studio
Template: generatepress
Version: 0.4.1
Text Domain: safix-generatepress-child
*/

/*
 * Safix child theme v0.4.1 — Contact layout improvements;  WordPress Primary Menu ownership, no automatic page-list fallback; accessible closing CTA and verified policy footer; corrected reading contrast and intentional compact sections, original copy preserved; consolidated header and navigation ownership, GP logo width untouched — derived from Smiley Starfish Base v0.5.0
 * Reusable GeneratePress framework baseline for brochure/service websites.
 * Desktop composition, mobile navigation, responsive typography, content rails,
 * cards, forms, testimonials and closing CTAs are owned here rather than patched
 * page by page.
 */
:root {
  --ss-primary: #344934;
  --ss-primary-dark: #263b30;
  --ss-accent: #627f3b;
  --ss-accent-dark: #405a2d;
  --ss-bg: #f9faf6;
  --ss-surface: #ffffff;
  --ss-text: #26352d;
  --ss-muted: #526057;
  --ss-border: #dce5d7;
  /* Safix packaging identity: header/navigation/footer only. */
  --safix-header-brown: #68382D;
  --safix-header-ink: #fff9ef;
  --safix-header-highlight: #d5eb9b;

  --ss-container-max: 90rem;
  --ss-reading-max: 50rem;
  --ss-gutter: clamp(1.25rem, 3vw, 2.5rem);
  --ss-section-y: clamp(3.75rem, 7vw, 6.5rem);
  --ss-gap: clamp(1.25rem, 2.5vw, 2.5rem);
  --ss-radius: 1.1rem;
}

html { scroll-behavior: smooth; }

/* Native readable type throughout the site; no proprietary or external font dependency. */
body,
button,
input,
select,
textarea {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
  color: var(--ss-text);
  background: var(--ss-bg);
  font-size: 1.0625rem;
  line-height: 1.65;
}

h1,h2,h3,h4,h5,h6 {
  color: var(--ss-primary);
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.02em;
}

h1 { font-size: clamp(2.6rem, 5vw, 4.75rem); }
h2 { font-size: clamp(2rem, 3.5vw, 3rem); }
h3 { font-size: clamp(1.45rem, 2vw, 1.8rem); }

/* Page headings: one strong, readable native sans-serif family.
   Header logo remains the WordPress/GeneratePress-selected image. */
.site-branding .main-title,
.ss-section-intro > h2,
.ss-quote-cta h2,
.ss-closing-copy h2 {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 800;
  font-style: normal;
  letter-spacing: -.035em;
  line-height: 1.12;
  overflow-wrap: break-word;
}
.site-branding .main-title {font-size:clamp(2.1rem,3.3vw,2.8rem);color:var(--safix-header-ink);}
.ss-section-intro > h2 {font-size:clamp(2rem,3.3vw,3.2rem);}
.ss-quote-cta h2,.ss-closing-copy h2 {font-size:clamp(2rem,3.3vw,3.2rem);}

/* GeneratePress brochure-page shell: pages are pattern-led and full-width. */
body.page #page.grid-container,
body.page .site.grid-container {
  width: 100%;
  max-width: none;
}

body.page .site-content {
  padding: 0;
}

/* Full-bleed brochure pages must not inherit GeneratePress's 20px
   separate-container article margin between the header and first section. */
body.page .site-main {
  margin: 0;
}

body.page #primary,
body.page .content-area {
  width: 100%;
  float: none;
}

body.page .inside-article {
  padding: 0;
  background: transparent;
}

body.page .entry-content {
  margin: 0;
}

/* Global structural primitives. */
/* Standard sections use the shared rhythm; content-led image/text sections
   can opt into a shorter rail without changing the site-wide defaults. */
.ss-section {
  width: 100%;
  padding-block: var(--ss-section-y);
}
.ss-section--compact {
  padding-block: clamp(2.5rem, 4vw, 4.25rem);
}

.ss-container {
  width: min(calc(100% - (2 * var(--ss-gutter))), var(--ss-container-max));
  margin-inline: auto;
}

.ss-reading {
  width: min(100%, var(--ss-reading-max));
}

.ss-eyebrow {
  margin: 0 0 0.75rem;
  color: var(--ss-primary);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Split layout: always one centred composition inside .ss-container. */
.ss-split {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.92fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 6rem);
}

.ss-split > * { min-width: 0; }

/* Card system: equal outer heights, aligned titles/body/actions. */
.ss-card-grid {
  display: grid;
  gap: var(--ss-gap);
  align-items: stretch;
}

.ss-card-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ss-card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.ss-card {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-width: 0;
  height: 100%;
}

.ss-card__head,
.ss-card__body,
.ss-card__actions { margin: 0; }

.ss-card__title {
  min-block-size: 2.24em;
  margin: 0;
  text-wrap: balance;
}

/* Card headings should inherit the site identity, not browser-blue links. */
.ss-card__title a { color: var(--ss-primary); text-decoration: none; }
.ss-card__title a:hover { color: var(--ss-accent-dark); text-decoration: underline; text-underline-offset: .14em; }

.ss-card__body {
  align-self: stretch;
  color: var(--ss-muted);
}
.ss-card__body > :last-child,
.ss-card__actions > :last-child { margin-bottom: 0; }
.ss-card__actions { align-self: end; margin-top: 1.25rem; }

/* Buttons. These page fragments are classic HTML, not Gutenberg-parsed blocks.
   Own the button-row layout here instead of relying on wp-block-library.css. */
.wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-block: 1.1rem;
}
.wp-block-buttons > .wp-block-button.ss-button {
  flex: 0 0 auto;
  width: auto;
  margin: 0;
}
.wp-block-button.ss-button .wp-block-button__link {
  padding: 0.85rem 1.3rem;
  border: 2px solid var(--ss-accent);
  border-radius: var(--ss-radius);
  background: var(--ss-accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.9rem;
  box-sizing: border-box;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.wp-block-button.ss-button .wp-block-button__link:hover {
  border-color: var(--ss-accent-dark);
  background: var(--ss-accent-dark);
  color: #fff;
}

.wp-block-button.ss-button.is-style-outline .wp-block-button__link {
  border-color: var(--ss-primary);
  background: transparent;
  color: var(--ss-primary);
}

.wp-block-button.ss-button.is-style-outline .wp-block-button__link:hover {
  background: var(--ss-primary);
  color: #fff;
}

.wp-block-button.ss-button .wp-block-button__link:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--ss-accent);
  outline-offset: 3px;
}

/* Site shell: same horizontal frame as page content. */
.site-header {
  background: var(--safix-header-brown);
  border-bottom: 1px solid rgba(255, 249, 239, .2);
}

.site-header .inside-header {
  width: min(calc(100% - (2 * var(--ss-gutter))), var(--ss-container-max));
  max-width: none;
  margin-inline: auto;
  padding: clamp(.45rem, 1vw, .8rem) 0;
  display: flex;
  align-items: center;
  gap: clamp(.5rem, 1.1vw, 1.1rem);
}

.site-logo,
.site-branding {
  /* Desktop: the image's native/Customizer width is authoritative. */
  min-width: 0;
  max-width: 100%;
  flex: 0 1 auto;
}

.site-logo a,
.custom-logo-link,
.site-logo img,
.custom-logo,
.header-image {
  display: block;
}

.site-logo img,
.custom-logo,
.header-image {
  max-width: 100%;
  height: auto;
}

.site-description { display: none; }

/* Dropdowns retain the brown brand colour; the main menu itself lives
   transparently inside the GP site-header at every desktop width. */
.main-navigation ul ul { background: var(--safix-header-brown); }

.site-footer,
.site-info {
  background: var(--safix-header-brown);
  color: var(--safix-header-ink);
}
.site-footer a,
.site-info a { color: var(--safix-header-ink); }
.site-footer a:hover,
.site-footer a:focus-visible,
.site-info a:hover,
.site-info a:focus-visible {
  color: var(--safix-header-highlight);
  text-underline-offset: .22em;
}

/* Style the native GeneratePress navigation only. Its location belongs to
   the GP Customizer, and WordPress owns the Primary Menu contents. */
#site-navigation {
  background: transparent;
  border: 0;
  box-shadow: none;
  min-width: 0;
}
/* Alignment applies only when GP places navigation beside the site logo. */
.nav-float-right #site-navigation { margin-left: auto; }
.nav-float-left #site-navigation { margin-right: auto; }
.site-header #site-navigation .inside-navigation {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}
#site-navigation .main-nav a {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: .8rem;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: -.012em;
  color: var(--safix-header-ink);
  text-decoration: none;
  text-transform: none;
}
#site-navigation .main-nav ul li a:hover,
#site-navigation .main-nav ul li[class*="current-menu-"] > a,
#site-navigation .main-nav ul li a:focus-visible {
  background: rgba(255,249,239,.12);
  color: var(--safix-header-highlight);
}
@media (min-width: 1025px) {
  .site-header .inside-header {
    flex-wrap: nowrap;
  }
  #site-navigation .main-nav > ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .125rem;
    margin: 0;
    padding: 0;
  }
  #site-navigation .main-nav > ul > li > a {
    min-height: 2.35rem;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .45rem clamp(.3rem, .5vw, .58rem);
    border-radius: .35rem;
    white-space: normal;
  }
}
@media (max-width: 1024px) {
  #site-navigation .main-nav ul li a {
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.35;
    min-height: 2.85rem;
    padding-inline: 1rem;
    color: var(--safix-header-ink);
  }
  #site-navigation.toggled .inside-navigation {
    padding-block: .5rem;
  }
  #site-navigation .menu-toggle,
  #site-navigation .menu-toggle .gp-icon {
    color: var(--safix-header-ink);
  }
}

/* Hero: the dark forest-green field and bright product photography anchor
   the Safix palette. Type stays cream and legible; no decorative overlays. */
.ss-hero {
  background: #253c31;
  color: #fffaf0;
  padding-block: clamp(2.75rem, 5vw, 4.7rem);
  --ss-accent: #b6d879;
  --ss-accent-dark: #d0e79b;
  --ss-primary: #fffaf0;
}

.ss-hero .ss-split {
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 4.5rem);
}

/* Clear, strong title with no decorative lettering or external font load. */
.ss-hero h1 {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(3.2rem, 5.1vw, 4.75rem);
  font-weight: 800;
  font-style: normal;
  letter-spacing: -.045em;
  line-height: 1.055;
  max-width: 17ch;
  margin: 0 0 1.35rem;
  color: #fffaf0;
  overflow-wrap: normal;
  text-wrap: balance;
}

.ss-hero__lead {
  max-width: 42rem;
  margin-bottom: 0;
  color: inherit;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(1.05rem, 1.3vw, 1.17rem);
  line-height: 1.68;
}

/* Contrast belongs to the hero component, not a late override layer. */
.ss-hero .ss-eyebrow { color: #c4e18a; }
.ss-hero .ss-hero__lead { color: #e5ece2; }
.ss-hero .ss-hero__lead strong { color: #fffaf0; }
.ss-hero .wp-block-button.ss-button .wp-block-button__link {
  color: #223529;
  border-color: #b6d879;
  background: #b6d879;
}
.ss-hero .wp-block-button.ss-button .wp-block-button__link:hover {
  background: #d0e79b;
  border-color: #d0e79b;
}
.ss-hero .wp-block-button.ss-button.is-style-outline .wp-block-button__link {
  color: #fffaf0;
  border-color: rgba(255,250,240,.78);
  background: transparent;
}
.ss-hero .wp-block-button.ss-button.is-style-outline .wp-block-button__link:hover {
  color: #253c31;
  background: #fffaf0;
  border-color: #fffaf0;
}

/* Predictable hero rhythm: description, one horizontal action row, then note. */
.ss-hero .wp-block-buttons {
  margin-block: 1.25rem 0;
}
.ss-hero .wp-block-buttons + p {
  margin: .9rem 0 0;
  color: #e1e9db;
  font-size: .9rem;
  line-height: 1.5;
}

.ss-hero__media {
  min-height: clamp(20rem, 34vw, 31rem);
  display: grid;
  place-items: center;
  padding: clamp(2rem, 5vw, 4rem);
  border-radius: var(--ss-radius);
  background: var(--ss-primary);
  color: #fff;
  text-align: center;
}

.ss-hero__image {
  width: 100%;
  aspect-ratio: 4 / 3;
  align-self: center;
  margin: 0;
  overflow: hidden;
  border-radius: clamp(.95rem, 1.7vw, 1.5rem);
  border: 1px solid rgba(255,250,240,.18);
  box-shadow: 0 24px 55px rgba(6,24,15,.28);
  background: #f5b587;
}

.ss-hero__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Reusable image-led content components. */
.ss-section-lead-grid {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(22rem, 1.12fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.ss-section-lead-grid .ss-section-intro { margin-bottom: 0; }
.ss-feature-image {
  margin: 0;
  overflow: hidden;
  border-radius: var(--ss-radius);
}
.ss-feature-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.ss-media-card {
  padding: 0;
  overflow: hidden;
  grid-template-rows: auto auto 1fr auto;
}
.ss-media-card__media { margin: 0; overflow: hidden; }
.ss-media-card__media img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.ss-media-card > .ss-card__head {
  padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.5rem, 3vw, 2.25rem) 0;
}
.ss-media-card > .ss-card__body {
  padding-inline: clamp(1.5rem, 3vw, 2.25rem);
}
.ss-media-card > .ss-card__actions {
  padding: 0 clamp(1.5rem, 3vw, 2.25rem) clamp(1.5rem, 3vw, 2.25rem);
}


/* Reusable legal / policy page component. */
.ss-legal-hero {
  width: 100%;
  padding-block: clamp(2.25rem, 4vw, 3.5rem);
  background: var(--ss-bg);
}

.ss-legal-hero .ss-reading {
  width: min(100%, 72rem);
  margin-inline: auto;
}

.ss-legal-hero h1 {
  max-width: none;
  margin-bottom: .8rem;
  font-size: clamp(2.35rem, 4vw, 3.8rem);
}

.ss-legal-hero .ss-hero__lead {
  max-width: 60rem;
}

.ss-legal-content {
  width: 100%;
  padding-block: clamp(2.75rem, 5vw, 4.75rem);
}

.ss-legal-reading {
  width: min(100%, 72rem);
  margin-inline: auto;
}

.ss-legal-reading > h2 {
  margin-top: clamp(2rem, 4vw, 3.25rem);
}

.ss-legal-reading > h3 {
  margin-top: clamp(1.6rem, 3vw, 2.4rem);
}

.ss-legal-reading > :first-child {
  margin-top: 0;
}

/* Trust */
.ss-trust-strip {
  padding-block: 1.5rem;
  background: var(--ss-primary-dark);
  color: #fff;
}

.ss-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.75rem, 2vw, 1.75rem);
}

.ss-trust-strip p { margin-bottom: .25rem; color: #fff; }
.ss-trust-strip__title { font-weight: 700; }
.ss-trust-strip__detail { opacity: .82; font-size: .92rem; }

/* Section rhythm: crisp paper, soft sage, and a single deep-green editorial
   highlight for short narrative sections. Theme-only treatment; page text and
   navigation remain untouched. The selector follows existing structure rather
   than adding page-specific or corrective style blocks. */
.ss-section--surface { background: var(--ss-surface); }
.ss-section--warm { background: #e5eedf; }
.ss-section--warm:has(> .ss-container > .ss-reading) {
  background: radial-gradient(circle at 90% 10%, rgba(176, 215, 112, .15), transparent 38%),
              linear-gradient(118deg, #283f33 0%, #365445 100%);
  color: #fff9ef;
}
.ss-section--warm:has(> .ss-container > .ss-reading) :is(h2, h3, p) {
  color: #fff9ef;
}
.ss-section--warm:has(> .ss-container > .ss-reading) .ss-eyebrow {
  color: #d7ee9c;
}

.ss-section-intro {
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.ss-section-intro p:last-child { color: var(--ss-muted); }

.ss-home-card,
.ss-services__card {
  padding: clamp(1.25rem, 2.5vw, 1.85rem);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius);
  background: var(--ss-surface);
}

/* Guide navigation: the live Safix pages use heading-only service cards.
   Centre the link as one complete unit, so one- and two-line guide names share
   the same optical alignment across all five guide sections. No page CSS needed. */
.ss-card-grid--3 > .ss-services__card {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 7rem;
}
.ss-card-grid--3 > .ss-services__card > .ss-card__head {
  width: 100%;
}
.ss-card-grid--3 > .ss-services__card .ss-card__title {
  min-block-size: 0;
  margin: 0;
  line-height: 1.25;
}


.ss-step-number {
  margin: 0 0 1.4rem;
  color: var(--ss-accent-dark);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
}

.ss-home-split .ss-card:first-child {
  background: var(--ss-primary);
  border-color: var(--ss-primary);
}

.ss-home-split .ss-card:first-child h3,
.ss-home-split .ss-card:first-child p,
.ss-home-split .ss-card:first-child a { color: #fff; }

.ss-home-split .ss-card:first-child .ss-card__body { color: rgba(255,255,255,.84); }

.ss-home-proof {
  padding: clamp(2rem, 5vw, 3.5rem);
  border-left: 4px solid var(--ss-accent);
  background: #fff;
}

.ss-home-proof p { color: var(--ss-muted); }

.ss-home-areas {
  background: var(--ss-primary-dark);
  color: #fff;
}

.ss-home-areas h2,
.ss-home-areas p { color: #fff; }

/* Optional service-card accent. */
.ss-service-card { position: relative; overflow: hidden; }
.ss-service-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 0.25rem;
  background: var(--ss-accent);
}

/* Testimonials. */
.ss-testimonial-layout {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.ss-testimonial-intro p:last-child { color: var(--ss-muted); }
.ss-testimonial-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ss-gap);
}
.ss-testimonial-card {
  min-height: 15rem;
  padding: clamp(1.75rem, 3vw, 2.5rem);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius);
  background: var(--ss-surface);
  display: flex;
  flex-direction: column;
}
.ss-testimonial-mark {
  margin: 0 0 1rem;
  color: var(--ss-accent);
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  font-size: 3rem;
  line-height: 1;
}
.ss-testimonial-quote { margin: 0 0 1.25rem; color: var(--ss-text); }
.ss-testimonial-attribution {
  margin: auto 0 0;
  color: var(--ss-accent-dark);
  font-weight: 700;
}

/* Coverage + CTA closing composition. */
.ss-closing { background: var(--ss-primary-dark); color: #fff; }
.ss-closing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(20rem, .9fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: stretch;
}
.ss-closing-copy { align-self: center; }

/* Closing CTA can be authored as one copy block containing its action row.
   Expand that lone block across the grid, then align its action to the right. 
   Two-child quote/CTA layouts remain governed by the standard .ss-closing-grid. */
.ss-closing-grid > .ss-closing-copy:only-child {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.ss-closing-grid > .ss-closing-copy:only-child > :not(.wp-block-buttons) {
  grid-column: 1;
}
.ss-closing-grid > .ss-closing-copy:only-child > .wp-block-buttons {
  grid-column: 2;
  grid-row: 1 / span 3;
  margin: 0;
  align-self: center;
  justify-self: end;
}
.ss-closing .ss-closing-copy h2,
.ss-closing .ss-closing-copy p,
.ss-closing .ss-closing-copy .ss-eyebrow { color: #fff; }
.ss-closing .ss-closing-copy p {
  max-width: 46rem;
  color: rgba(255,255,255,.84);
}
/* On the dark closing section, the outline action must use light ink,
   unlike outline buttons on light sections. This is the sole component owner. */
.ss-closing .wp-block-button.ss-button.is-style-outline .wp-block-button__link {
  border-color: rgba(255,249,239,.9);
  background: transparent;
  color: #fff9ef;
}
.ss-closing .wp-block-button.ss-button.is-style-outline .wp-block-button__link:hover,
.ss-closing .wp-block-button.ss-button.is-style-outline .wp-block-button__link:focus-visible {
  border-color: #fff9ef;
  background: #fff9ef;
  color: var(--ss-primary-dark);
}
.ss-closing-cta {
  display: grid;
  align-content: center;
  align-self: center;
  width: 100%;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--ss-radius);
  background: rgba(255,255,255,.07);
  color: #fff;
}
.ss-closing-cta h2 { margin-top: 0; color: #fff; }
.ss-closing-cta p { color: rgba(255,255,255,.84); }
.ss-closing-cta .ss-eyebrow { color: #fff; }

/* Retained reusable standalone quote pattern. */
.ss-quote-cta {
  background: var(--ss-primary);
  color: #fff;
}

.ss-quote-cta h2,
.ss-quote-cta p { color: #fff; }

.ss-quote-cta .ss-reading { margin-inline: auto; text-align: center; }

.ss-quote-cta .wp-block-buttons { justify-content: center; }

.ss-quote-cta .wp-block-button.ss-button .wp-block-button__link {
  border-color: #fff;
  background: #fff;
  color: var(--ss-primary-dark);
}

.ss-quote-cta .wp-block-button.ss-button .wp-block-button__link:hover {
  border-color: var(--ss-primary-dark);
  background: var(--ss-primary-dark);
  color: #fff;
}

/* Header sizing ownership:
   GP Site Identity controls desktop logo width, responsive grid only constrains
   mobile available space, and no rule sets a fixed/max image height. */

/* Contact page: compact introduction, balanced form and photographic information rail.
   Contact layout belongs to the child theme; page HTML only supplies the content. */
.ss-contact-hero {
  padding-block: clamp(2.5rem, 4.5vw, 4rem);
  background: var(--ss-bg);
}
.ss-contact-hero .ss-reading { max-width: 61rem; }
.ss-contact-hero h1 {
  margin: 0 0 .75rem;
  font-size: clamp(2.4rem, 4.3vw, 4.2rem);
}
.ss-contact-hero .ss-hero__lead {
  max-width: 57rem;
  margin: 0;
  color: var(--ss-muted);
  font-size: clamp(1rem, 1.4vw, 1.16rem);
}
/* Every Contact options card uses equal-size action cells, independent of label length.
   One-button cards deliberately retain a single cell's width for consistency. */
.ss-contact-aside .ss-info-stack .ss-home-card .wp-block-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}
.ss-contact-aside .ss-info-stack .ss-home-card .wp-block-buttons > .wp-block-button.ss-button {
  width: 100%;
  min-width: 0;
  margin: 0;
}
.ss-contact-aside .ss-info-stack .ss-home-card .wp-block-button.ss-button .wp-block-button__link {
  width: 100%;
  min-height: 3.2rem;
  padding: .65rem .6rem;
  font-size: .9rem;
  line-height: 1.25;
  text-align: center;
}
.ss-contact-section { padding-block: clamp(2.75rem, 5vw, 5rem); }
.ss-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr);
  align-items: start;
  gap: clamp(2.25rem, 5vw, 5.25rem);
}
.ss-contact-grid > * { min-width: 0; }
.ss-contact-photo {
  margin: 0 0 clamp(1.35rem, 2.5vw, 2rem);
  overflow: hidden;
  border-radius: var(--ss-radius);
  background: var(--ss-bg);
}
.ss-contact-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}
.ss-contact-aside h2 {
  font-size: clamp(1.6rem, 2.25vw, 2.15rem);
  margin: 0 0 .65rem;
}
.ss-contact-aside p { max-width: 35rem; margin: 0 0 1.2rem; }
.ss-contact-aside__links {
  display: grid;
  border-top: 1px solid var(--ss-border);
  margin-top: clamp(1.25rem, 2.5vw, 2rem);
}
.ss-contact-aside__links a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.25rem;
  padding: .95rem 0;
  border-bottom: 1px solid var(--ss-border);
  color: var(--ss-primary);
  font-weight: 700;
  text-decoration: none;
}
.ss-contact-aside__links a:hover,
.ss-contact-aside__links a:focus-visible { text-decoration: underline; }
.ss-contact-aside__links a::after { content: '→'; flex: 0 0 auto; }
.ss-contact-form-column > .ss-eyebrow { margin-bottom: .5rem; }
.ss-contact-form-column > h2 {
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  margin: 0 0 .5rem;
}
.ss-contact-form-intro {
  margin: 0 0 1.5rem;
  max-width: 41rem;
  color: var(--ss-muted);
}
.ss-contact-form-column .ss-form-panel {
  padding: clamp(1.5rem, 3vw, 2.35rem);
}
.ss-contact-form-column .ss-form-note {
  max-width: 41rem;
  margin-top: 1.35rem;
  padding: .8rem 1.1rem;
  border-left: 3px solid var(--ss-border);
}
.ss-contact-form-column .ss-form-note p { margin: 0; }

/* Best-route text shares its section with authentic product-in-use photography.
   No duplicated page-specific style tag or extra WordPress CSS overrides. */
.ss-contact-route-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 5.5rem);
}
.ss-contact-route-grid > * { min-width: 0; }
.ss-contact-route-copy h2 { max-width: 25ch; }
.ss-contact-route-copy p { max-width: 48rem; }
.ss-contact-route-copy p:last-child { margin-bottom: 0; }
.ss-contact-route-photo {
  margin: 0;
  border-radius: var(--ss-radius);
  overflow: hidden;
  border: 1px solid var(--ss-border);
  background: var(--ss-bg);
}
.ss-contact-route-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 5 / 4;
  object-fit: cover;
}
.ss-contact-route-photo figcaption {
  padding: .65rem 1rem;
  color: var(--ss-muted);
  font-size: .9rem;
  line-height: 1.4;
  background: var(--ss-bg);
}
.ss-contact-form-column .ss-form-panel form { margin-top: 0; }
.ss-contact-form-column .sscf-form-grid,
.ss-contact-form-column .tns-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.9rem, 2vw, 1.5rem);
}
.ss-contact-form-column .sscf-form-grid > *,
.ss-contact-form-column .tns-form-grid > * { min-width: 0; }
.ss-contact-form-column .sscf-status,
.ss-contact-form-column .tns-status {
  border-left: 4px solid var(--ss-accent);
  padding: .8rem 1rem;
  margin-bottom: 1.25rem;
  background: var(--ss-bg);
  color: var(--ss-text);
}
.ss-contact-form-column .sscf-status.error,
.ss-contact-form-column .tns-status.error { border-left-color: #b84040; background: #fff6f4; }
@media (max-width: 900px) {
  .ss-contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .ss-contact-route-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .ss-contact-route-photo { max-width: 46rem; }
  .ss-contact-aside { max-width: 46rem; }
  .ss-contact-photo img { aspect-ratio: 16 / 8.5; }
}
@media (max-width: 570px) {
  .ss-contact-hero { padding-block: 2.25rem; }
  .ss-contact-aside .ss-info-stack .ss-home-card .wp-block-buttons { grid-template-columns: 1fr; }
  .ss-contact-photo img { aspect-ratio: 4 / 3; }
  .ss-contact-form-column .sscf-form-grid,
  .ss-contact-form-column .tns-form-grid { grid-template-columns: 1fr; gap: 0; }
  .ss-contact-form-column .ss-form-panel { padding: 1.15rem; }
}

/* Reusable form/content layout. */
.ss-form-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.ss-form-panel {
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--ss-border);
  border-radius: var(--ss-radius);
  background: var(--ss-surface);
}

.ss-form-panel > :first-child { margin-top: 0; }
.ss-form-panel form { margin-top: 1.5rem; }
.ss-form-panel form p { margin: 0 0 1.25rem; }

.ss-form-panel form label {
  display: block;
  margin-bottom: .45rem;
  color: var(--ss-text);
  font-weight: 700;
}

.ss-form-panel form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.ss-form-panel form textarea,
.ss-form-panel form select {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding: .8rem .9rem;
  border: 1px solid var(--ss-border);
  border-radius: calc(var(--ss-radius) * .55);
  background: #fff;
  color: var(--ss-text);
  font: inherit;
  line-height: 1.45;
}

.ss-form-panel form textarea { resize: vertical; }

.ss-form-panel form input:focus-visible,
.ss-form-panel form textarea:focus-visible,
.ss-form-panel form select:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ss-accent) 35%, transparent);
  outline-offset: 2px;
  border-color: var(--ss-accent-dark);
}

.ss-form-panel form button[type="submit"],
.ss-form-panel form input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: .8rem 1.2rem;
  border: 2px solid var(--ss-accent);
  border-radius: calc(var(--ss-radius) * .55);
  background: var(--ss-accent);
  color: #fff;
  font: inherit;
  font-weight: 800;
  line-height: 1.1;
  cursor: pointer;
}

.ss-form-panel form button[type="submit"]:hover,
.ss-form-panel form input[type="submit"]:hover {
  border-color: var(--ss-accent-dark);
  background: var(--ss-accent-dark);
}

.ss-form-panel form button[type="submit"]:focus-visible,
.ss-form-panel form input[type="submit"]:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--ss-accent) 35%, transparent);
  outline-offset: 3px;
}

.ss-info-stack {
  display: grid;
  gap: var(--ss-gap);
}

.ss-form-note {
  margin-top: 1.25rem;
  color: var(--ss-muted);
  font-size: .94rem;
}

@media (max-width: 1024px) {
  :root {
    --ss-gutter: clamp(1rem, 3.5vw, 2rem);
    --ss-section-y: clamp(3rem, 6vw, 4.75rem);
  }

  /* Compact mobile header: one logo row and one visible hamburger control. */
  .site-header .inside-header {
    width: min(calc(100% - (2 * var(--ss-gutter))), var(--ss-container-max));
    max-width: none;
    margin-inline: auto;
    padding: .7rem 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem 1rem;
  }

  /* GeneratePress sets the logo width; mobile can shrink it only to the
     available content column beside the accessible menu toggle. */
  .site-header .inside-header > .site-logo,
  .site-header .site-logo {
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 0;
    justify-self: start;
  }
  .site-header .site-logo > a,
  .site-header .custom-logo-link,
  .site-header .site-logo picture {
    display: block;
    max-width: 100%;
    margin: 0;
    padding: 0;
  }
  .site-header .site-logo img,
  .site-header img.header-image,
  .site-header .custom-logo,
  .site-header picture.is-logo-image img {
    display: block;
    max-width: 100%;
    min-width: 0;
    height: auto;
    max-height: none;
    object-fit: contain;
  }

  /* GeneratePress inline mobile-toggle: keep the header button, never the
     duplicate button rendered inside the collapsed primary navigation. */
  .mobile-menu-control-wrapper {
    width: auto !important;
    margin: 0 !important;
    justify-self: end !important;
  }

  .mobile-menu-control-wrapper .menu-toggle,
  #mobile-header .menu-toggle,
  .mobile-header-navigation .menu-toggle {
    width: 3.25rem !important;
    min-width: 3.25rem !important;
    min-height: 3.25rem !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: end !important;
    border: 1px solid rgba(255,249,239,.45) !important;
    border-radius: var(--ss-radius) !important;
    background: rgba(255,249,239,.05) !important;
    color: var(--safix-header-ink) !important;
    line-height: 1 !important;
  }

  .mobile-menu-control-wrapper .menu-toggle:hover,
  .mobile-menu-control-wrapper .menu-toggle:focus,
  #mobile-header .menu-toggle:hover,
  #mobile-header .menu-toggle:focus,
  .mobile-header-navigation .menu-toggle:hover,
  .mobile-header-navigation .menu-toggle:focus {
    background: rgba(255,249,239,.16) !important;
  }

  .mobile-menu-control-wrapper .mobile-menu,
  #mobile-header .mobile-menu,
  .mobile-header-navigation .mobile-menu {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .has-inline-mobile-toggle #site-navigation > .inside-navigation > .menu-toggle,
  .has-inline-mobile-toggle #site-navigation .menu-toggle {
    display: none !important;
  }

  .has-inline-mobile-toggle #site-navigation:not(.toggled) {
    display: none !important;
  }

  .has-inline-mobile-toggle #site-navigation.toggled {
    display: block !important;
    grid-column: 1 / -1;
    width: 100% !important;
    margin: .5rem 0 0 !important;
  }

  .has-inline-mobile-toggle #site-navigation.toggled .inside-navigation,
  .has-inline-mobile-toggle #site-navigation.toggled .main-nav {
    width: 100% !important;
  }

  /* GeneratePress Premium Mobile Header, when enabled. It already replaces the
     default site header; these rules only control its geometry. */
  #mobile-header,
  .mobile-header-navigation {
    width: 100% !important;
    background: var(--safix-header-brown) !important;
    border-bottom: 1px solid rgba(255,249,239,.2) !important;
  }

  #mobile-header .inside-navigation,
  .mobile-header-navigation .inside-navigation {
    width: min(calc(100% - (2 * var(--ss-gutter))), var(--ss-container-max));
    max-width: none !important;
    margin-inline: auto !important;
    padding: .65rem 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: .75rem 1rem !important;
  }

  #mobile-header .site-logo.mobile-header-logo,
  .mobile-header-navigation .site-logo.mobile-header-logo,
  .main-navigation .navigation-branding {
    min-width: 0;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    display: block;
    justify-self: start;
  }
  #mobile-header .site-logo.mobile-header-logo > a,
  .mobile-header-navigation .site-logo.mobile-header-logo > a,
  .main-navigation .navigation-branding > a {
    display: block;
    max-width: 100%;
    margin: 0;
    padding: 0;
  }
  #mobile-header .site-logo.mobile-header-logo img,
  .mobile-header-navigation .site-logo.mobile-header-logo img,
  .main-navigation .navigation-branding img {
    display: block;
    max-width: 100%;
    min-width: 0;
    height: auto;
    max-height: none;
    object-fit: contain;
  }

  #mobile-header.toggled .main-nav,
  .mobile-header-navigation.toggled .main-nav,
  #site-navigation.toggled .main-nav {
    width: 100%;
  }

  /* Optional Smiley Starfish mobile sticky mode. The bar is full-width; the
     logo/menu geometry stays inside the standard site gutter. */
  body.ss-mobile-header-sticky .site-header,
  body.ss-mobile-header-sticky #mobile-header,
  body.ss-mobile-header-sticky .mobile-header-navigation {
    position: sticky !important;
    top: 0;
    z-index: 9999;
  }

  body.admin-bar.ss-mobile-header-sticky .site-header,
  body.admin-bar.ss-mobile-header-sticky #mobile-header,
  body.admin-bar.ss-mobile-header-sticky .mobile-header-navigation {
    top: 32px;
  }

  /* The inner content stack uses the same breakpoint as the GP header. */
  .ss-hero .ss-split { grid-template-columns: 1fr; }
  .ss-hero h1 {
    font-size: clamp(2.7rem, 6.8vw, 4.25rem);
    line-height: 1.07;
    max-width: 100%;
  }
}

@media (max-width: 900px) {
  .ss-split,
  .ss-section-lead-grid,
  .ss-card-grid--3,
  .ss-testimonial-layout,
  .ss-testimonial-grid,
  .ss-closing-grid,
  .ss-form-layout { grid-template-columns: 1fr; }

  .ss-card-grid--2 { grid-template-columns: 1fr; }
  .ss-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* On tablet/mobile the CTA action follows its text naturally. */
  .ss-closing-grid > .ss-closing-copy:only-child { grid-template-columns: 1fr; }
  .ss-closing-grid > .ss-closing-copy:only-child > .wp-block-buttons {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
    margin-top: 1rem;
  }

  .ss-card__title { min-block-size: 0; }
  .ss-testimonial-card { min-height: 0; }

  .ss-hero .ss-split { gap: 1.75rem; }
  .ss-hero h1 { max-width: none; text-wrap: balance; }
  .ss-hero__image,
  .ss-feature-image { width: 100%; }
}

@media (max-width: 600px) {
  :root {
    --ss-gutter: 1.25rem;
    --ss-section-y: 2.75rem;
    --ss-gap: 1rem;
  }

  body {
    font-size: 1rem;
    line-height: 1.6;
  }

  h1 {
    font-size: clamp(2rem, 8.5vw, 2.35rem);
    line-height: 1.05;
    letter-spacing: -0.025em;
    overflow-wrap: normal;
    word-break: normal;
  }

  h2 {
    font-size: clamp(1.75rem, 7vw, 2.1rem);
    line-height: 1.1;
  }

  h3 {
    font-size: clamp(1.3rem, 5.5vw, 1.55rem);
    line-height: 1.18;
  }

  /* Mobile sections share the same gutter token and therefore one content rail. */
  .ss-reading,
  .ss-section-intro,
  .ss-testimonial-intro,
  .ss-closing-copy {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .ss-section { padding-block: 2.75rem; }
  .ss-section--compact { padding-block: 2rem; }

  /* The first marketing message begins promptly beneath the mobile header. */
  body.page .entry-content > .ss-section.ss-hero {
    padding-top: 1rem;
    padding-bottom: 2.25rem;
    margin-top: 0;
    margin-block-start: 0;
  }

  body.page .entry-content > .ss-section.ss-hero > .ss-container,
  body.page .entry-content > .ss-section.ss-hero .ss-split,
  body.page .entry-content > .ss-section.ss-hero .ss-split > .wp-block-group:first-child,
  body.page .entry-content > .ss-section.ss-hero .ss-eyebrow:first-child {
    padding-top: 0;
    margin-top: 0;
    margin-block-start: 0;
  }


  .ss-hero__lead,
  .ss-hero__lead.has-large-font-size {
    max-width: none;
    font-size: 1.125rem !important;
    line-height: 1.55;
  }

  .ss-eyebrow {
    margin-bottom: .6rem;
    font-size: .72rem;
    line-height: 1.4;
    letter-spacing: .12em;
  }

  .ss-hero .ss-split,
  .ss-section-lead-grid,
  .ss-testimonial-layout,
  .ss-closing-grid,
  .ss-form-layout {
    gap: 1.5rem;
  }

  .ss-hero__image,
  .ss-hero .ss-hero__image {
    aspect-ratio: 4 / 3;
    border-radius: var(--ss-radius);
  }

  .ss-section-lead-grid { margin-bottom: 2rem; }

  .ss-home-card,
  .ss-services__card,
  .ss-testimonial-card,
  .ss-form-panel,
  .ss-closing-cta {
    padding: 1.25rem;
  }

  .ss-media-card { padding: 0; }
  .ss-media-card > .ss-card__head { padding: 1.25rem 1.25rem 0; }
  .ss-media-card > .ss-card__body { padding-inline: 1.25rem; }
  .ss-media-card > .ss-card__actions { padding: 0 1.25rem 1.25rem; }

  .ss-trust-strip { padding-block: 1rem; }
  .ss-trust-grid { grid-template-columns: 1fr; gap: 0; }
  .ss-trust-grid > * {
    margin-inline: 0 !important;
    padding: .6rem 0;
    border-bottom: 1px solid rgba(255,255,255,.14);
  }

  /* One readable mobile body scale across trust, intros, cards and closing copy. */
  .ss-trust-strip__detail,
  .ss-section-intro > p:not(.ss-eyebrow),
  .ss-testimonial-intro > p:not(.ss-eyebrow),
  .ss-closing-copy > p:not(.ss-eyebrow),
  .ss-card__body p {
    font-size: 1rem;
    line-height: 1.6;
  }
  .ss-trust-grid > :last-child { border-bottom: 0; }

  .wp-block-buttons { gap: .75rem; }
  .wp-block-buttons > .wp-block-button.ss-button { flex: 1 1 100%; width: 100%; }
  .wp-block-button.ss-button .wp-block-button__link {
    box-sizing: border-box;
    width: 100%;
    min-height: 3rem;
    padding: .8rem 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  /* Keep the identity visible without letting it dominate the phone viewport. */
  .site-header .inside-header {
    padding: .55rem 0;
    gap: .6rem;
  }

  /* No additional logo rule at 600px. One mobile width owner above. */
  #mobile-header .inside-navigation,
  .mobile-header-navigation .inside-navigation {
    padding: .5rem 0 !important;
    gap: .6rem !important;
  }

  .mobile-menu-control-wrapper .menu-toggle,
  #mobile-header .menu-toggle,
  .mobile-header-navigation .menu-toggle {
    width: 3rem !important;
    min-width: 3rem !important;
    min-height: 3rem !important;
  }
  .ss-hero h1 {
    font-size: clamp(2.5rem, 10vw, 3.25rem);
    line-height: 1.09;
    margin-bottom: 1rem;
  }
  .ss-section-intro > h2,
  .ss-quote-cta h2,
  .ss-closing-copy h2 {
    font-size: clamp(1.9rem, 7.3vw, 2.6rem);
  }
}


@media (max-width: 782px) {
  body.admin-bar.ss-mobile-header-sticky .site-header,
  body.admin-bar.ss-mobile-header-sticky #mobile-header,
  body.admin-bar.ss-mobile-header-sticky .mobile-header-navigation {
    top: 46px;
  }
}



@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .wp-block-button.ss-button .wp-block-button__link { transition: none; }
}



/* Site-specific page components. No duplicate global font override. */
.ss-trust-strip,.ss-closing {background:var(--ss-primary-dark);}
.ss-home-card,.ss-services__card,.ss-contact-photo {box-shadow:0 8px 28px rgba(28,54,34,.06);}
.ss-feature-image,.ss-contact-photo {border:1px solid var(--ss-border);background:#eef2e8;}
.ss-safix-facts {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ss-gap);}
.ss-safix-facts>div {padding:clamp(1.25rem,2.5vw,2rem);border:1px solid var(--ss-border);border-radius:var(--ss-radius);background:#fff;}
.ss-safix-facts h3 {font-size:1.35rem;margin:0 0 .6rem;}
.ss-safix-facts p {margin:0;}
/* FAQ as a deliberate reading panel within the sage section. */
.ss-safix-faq {
  max-width: 64rem;
  margin-top: 1.5rem;
  padding: clamp(1.5rem, 3vw, 2.8rem);
  border: 1px solid #d1dfc8;
  border-radius: 1.2rem;
  background: #fff;
  box-shadow: 0 14px 38px rgba(30, 55, 42, .065);
}
.ss-safix-faq h3 {
  margin: 1.65rem 0 .55rem;
  padding-top: 1.5rem;
  border-top: 1px solid #dce6d4;
  font-size: 1.32rem;
}
.ss-safix-faq h3:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.ss-safix-faq p { margin: 0 0 1rem; }
.ss-safix-faq p:last-child { margin-bottom: 0; }
/* Product-proof points: turn a long plain list into a scannable, calm grid. */
.ss-safix-checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem .8rem;
  padding: 0;
  margin: 1.4rem 0;
  list-style: none;
}
.ss-safix-checks li {
  position: relative;
  padding: .55rem .75rem .55rem 2rem;
  border-left: 3px solid #a8cd70;
  border-radius: .45rem;
  background: #edf3e7;
  color: #2c4739;
  font-size: .96rem;
  font-weight: 650;
  line-height: 1.45;
}
.ss-safix-checks li::before {
  position: absolute;
  left: .65rem;
  top: .52rem;
  content: '✓';
  color: #426d36;
  font-weight: 900;
}
.ss-safix-buy-card {border:1px solid var(--ss-border);border-radius:var(--ss-radius);overflow:hidden;background:#fff;display:flex;flex-direction:column;height:100%;box-shadow:0 8px 28px rgba(65,43,33,.055);}
.ss-safix-buy-card img {width:100%;aspect-ratio:16/10;object-fit:contain;background:#eff2e9;display:block;}
.ss-safix-buy-card__copy {padding:clamp(1.25rem,2.6vw,2rem);display:flex;flex-direction:column;flex:1;}
.ss-safix-buy-card__copy h3 {margin-top:0;}
.ss-safix-buy-card__copy .wp-block-buttons {margin-top:auto;padding-top:1.3rem;}
.ss-safix-caption {margin:.6rem 0 0;color:var(--ss-muted);font-size:.9rem;}
.ss-safix-intro {font-size:1.14rem;line-height:1.6;}
.ss-safix-contact {display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(2rem,5vw,5rem);align-items:start;}
.ss-safix-contact .ss-form-panel {max-width:none;}
.ss-safix-contact>div {min-width:0;}
.ss-site-logo-note {font-size:.875rem;color:var(--ss-muted);}
@media(max-width:900px){.ss-safix-facts{grid-template-columns:1fr 1fr;}.ss-safix-contact{grid-template-columns:1fr;}}
@media(max-width:600px){.ss-safix-facts,.ss-safix-checks{grid-template-columns:1fr;}}

