/* Body layouts: an introduction and photo, then independent reading sections. */
.story-layout { max-width: 1160px; margin-inline: auto; }
.story-layout__lead { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(28px,4vw,56px); align-items: center; }
.story-layout__intro { min-width: 0; }
.story-layout__lead:not(:has(.story-layout__intro p)) { display: flex; flex-direction: column; align-items: stretch; gap: 24px; max-width: 900px; margin-inline: auto; }
.story-layout__lead:not(:has(.story-layout__intro p)) .story-layout__media img { aspect-ratio: 2.6; max-height: 330px; }
.story-layout__intro .lay-head { margin-bottom: 20px; }
.story-layout__intro h2 { font-size: clamp(28px,2.5vw,38px); line-height: 1.2; }
.story-layout__intro .lay-prose { max-width: none; }
.story-layout__media { min-width: 0; }
.story-layout__media picture, .story-photo picture { display: block; }
body .story-layout__media img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; box-shadow: 0 16px 36px #19303415; }
.story-layout__body { max-width: 900px; margin: 44px auto 0; }
.story-layout__body .lay2-acc { display: block; }
body .story-layout__body .lay2-subcard { padding: 26px 0; }
.story-layout__body .lay2-subcard > h3 { font: 700 25px/1.3 var(--ui-font); margin: 0 0 16px; }
.story-layout__body .lay2-acc__b { max-width: none; }
.story-layout__body .lay2-acc__b p { max-width: none; }
.story-photo { margin: 0; }
body .story-photo--interlude { margin: 24px 0 34px; }
body .story-photo--interlude img { display: block; width: 100%; height: auto; max-height: 390px; aspect-ratio: 2.2; object-fit: cover; border-radius: 8px; margin: 0; }
.story-layout--long .story-layout__lead { display: flex; flex-direction: column-reverse; align-items: stretch; }
.story-layout--long .story-layout__intro { max-width: 900px; margin-inline: auto; }
body .story-layout--long .story-layout__media img { aspect-ratio: 2.8; max-height: 390px; }

/* Restore the library photograph assigned to each formerly hidden service hero.
   Triage has a calm split composition; comparison/emergency use a photo scrim. */
body.layout-triage .page-family-city-service .hero--photo,
body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero--photo {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: stretch; padding: 0; min-height: 0; background: #f4f2eb;
}
body.layout-triage .page-family-city-service .hero__bg,
body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__bg { display: block; position: relative; inset: auto; grid-column: 2; grid-row: 1; min-height: 400px; }
body.layout-triage .page-family-city-service .hero__bg::after,
body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__bg::after { display: none; }
body.layout-triage .page-family-city-service .hero__bg img,
body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.layout-triage .page-family-city-service .hero__inner,
body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__inner { grid-row: 1; grid-column: 1; display: block; align-self: center; width: 100%; max-width: 650px; justify-self: end; margin: 0; padding: 44px 48px 48px 24px; }
body.layout-triage .page-family-city-service .hero__copy,
body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__copy { text-align: left; max-width: none; }
body.layout-triage .page-family-city-service .hero__actions,
body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__actions { justify-content: flex-start; }
body.layout-comparison .page-family-city-service .hero__bg,
body.layout-emergency-first .page-family-city-service .hero__bg,
body.layout-comparison :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__bg,
body.layout-emergency-first :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__bg { display: block; }
body.layout-comparison .page-family-city-service .hero__bg::after,
body.layout-emergency-first .page-family-city-service .hero__bg::after,
body.layout-comparison :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__bg::after,
body.layout-emergency-first :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__bg::after { opacity: 1; background: linear-gradient(90deg,#10282deb,#10282d9c); }
body.layout-comparison .page-family-city-service .hero__copy h1,
body.layout-comparison .page-family-city-service .hero__lead,
body.layout-comparison .page-family-city-service .hero__eyebrow,
body.layout-emergency-first .page-family-city-service .hero__copy h1,
body.layout-emergency-first .page-family-city-service .hero__lead,
body.layout-emergency-first .page-family-city-service .hero__eyebrow { color: #fff !important; }

/* Uneven paragraph lengths should not force every neighboring card to stretch. */
body .lay-decision, body .lay-grid { align-items: start; }
body .lay-card { min-height: 0; }
body .lay-quote { max-width: 900px; margin-inline: auto; }
body .lay2-solo { max-width: 900px; margin-inline: auto; }
body .lay-pull[aria-hidden="true"] { display: none; }
body .lay2-stats[aria-hidden="true"], body .lay2-card:has(.lead-form-echo) { display: none; }
body .lay-head:has(> .depth-body) { max-width: 900px; margin-inline: auto; }
body .lay-head > .depth-body, body .lay-head > .depth-body p { max-width: none; }
body .story-layout--long .story-layout__media img[src*="people-"],
body .story-photo--interlude img[src*="people-"], body .story-photo--interlude img[src*="guarantee-handover"] { object-position: center top; }
body .story-layout--long .story-layout__media img,
body .story-photo--interlude img { object-position: center top; }
body .lay-step > .lay-card { padding: 24px !important; box-shadow: none; }
body .lay-step:has(> .lay-card > h3:only-child) { display: none; }
body .lay-timeline { max-width: 900px; }
body .lay-timeline .lay-rail { padding-left: 38px; gap: 16px; }
body .lay-timeline .lay-rail::before { left: 10px; transform: none; width: 2px; background: #9caf9f; }
body[data-var] .lay-timeline .lay-rail > .lay-step,
body[data-var] .lay-timeline .lay-rail > li { width: 100%; margin-left: 0 !important; margin-right: 0 !important; padding: 0 0 12px !important; }
body[data-var] .lay-timeline .lay-rail .lay-rail__node { left: -36px !important; right: auto !important; top: 26px; width: 18px; height: 18px; border-width: 3px; }
body .lay-timeline .lay-card { border-radius: 0; border: 0; border-bottom: 1px solid #bdcdc3; background: transparent; }
body .lay-timeline .lay-card p { max-width: none; }
body .lay-grid--3:has(> .lay-card:last-child:nth-child(3)) { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; }
body .lay-grid--3 > .lay-card:last-child:nth-child(3) { grid-column: 1/-1; }
body .lay-grid--3 > .lay-card { padding: 24px 0; border: 0; border-bottom: 1px solid #bdcdc3; box-shadow: none; border-radius: 0; background: transparent; }
body .page-family-guide-article .fact-layout { display: block; max-width: 900px; margin-inline: auto; }
body .page-family-guide-article .fact-media:has(.photo-frame:empty):not(:has(img)) { display: none; }
body .page-family-guide-article .fact-layout :is(ol,ul) { display: block; }
body .page-family-guide-article .facts-grid { display: block; }
body .page-family-guide-article .facts-grid > * { max-width: none; margin-bottom: 20px; }
body .page-family-guide-article > .sec { padding-block: 48px; }
body .page-family-guide-article .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
body .page-family-guide-article .hero-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; border-radius: 6px; background: #8e3c16; color: #fff; font-weight: 700; }
body .lay-story:not(:has(img)) { grid-template-columns: minmax(0,900px); justify-content: center; }
body .lay-story:not(:has(img)) > div:empty { display: none; }
body .lay-story { align-items: center; }
body .lay-story img { aspect-ratio: 4/3; object-fit: cover; }
body .lay-wrap--narrow { max-width: 960px; }
body .lay-wrap--narrow .lay-prose p, body .lay-wrap--narrow .depth-body p { max-width: none; }
body .lay2-terms { display: block; max-width: 900px; margin-inline: auto; }
body .lay2-terms > .lay2-terms__i { padding: 20px 0; border-bottom: 1px solid #d5dfd9; }
body .lay2-terms p { max-width: none; }
body :is(.lay-band--cream,.lay-band--white) :is(.lay-answers,.lay-decision) > .lay-card { padding: 24px 0; box-shadow: none; background: transparent; border: 0; border-bottom: 1px solid #bdcdc3; border-radius: 0; }
body :is(.lay-answers,.lay-decision) > .lay-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (min-width: 1100px) {
  .story-layout__body .lay2-acc__b { font-size: 18px; line-height: 1.75; }
}
@media (max-width: 850px) {
  body .lay-grid--3:has(> .lay-card:last-child:nth-child(3)) { grid-template-columns: 1fr; }
  .story-layout__lead { grid-template-columns: 1fr; gap: 26px; }
  .story-layout__media { max-width: 650px; width: 100%; margin-inline: auto; }
  body .story-layout__media img { aspect-ratio: 3/2; max-height: 380px; }
  body .story-layout--long .story-layout__media img { aspect-ratio: 3/2; max-height: 380px; }
  .story-layout__body { margin-top: 24px; }
  .story-layout__body .lay2-subcard > h3 { font-size: 23px; }
  body .story-photo--interlude img { aspect-ratio: 1.5; max-height: 340px; }
  body.layout-triage .page-family-city-service .hero--photo,
  body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero--photo { grid-template-columns: 1fr; }
  body.layout-triage .page-family-city-service .hero__bg,
  body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__bg { grid-column: 1; grid-row: 2; min-height: 0; height: 240px; }
  body.layout-triage .page-family-city-service .hero__inner,
  body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__inner { grid-column: 1; grid-row: 1; max-width: none; padding: 36px 24px; }
}
@media (max-width: 500px) {
  .story-layout__intro h2 { font-size: 28px; }
  body .story-layout__body .lay2-subcard { padding: 22px 0; }
  body .story-photo--interlude { margin-block: 16px 24px; }
  body.layout-triage .page-family-city-service .hero__inner,
  body.layout-triage :is(.page-family-svc-assessment,.page-family-svc-remediation,.page-family-svc-drying) .hero__inner { padding: 30px 16px; }
}

/* Keep source markers and photographic subjects within their reading frames. */
body .page-family-guide-article .facts-grid ul { padding-inline-start: 22px; }
body .page-family-guide-article .fact-media { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-bottom: 24px; }
body .page-family-guide-article .fact-media img { width: 100%; height: 240px; object-fit: cover; border-radius: 8px; }
body .story-layout__lead:not(:has(.story-layout__intro p)) .story-layout__media img { object-position: center top; }
@media(max-width:850px) {
 body .story-layout__lead:not(:has(.story-layout__intro p)) .story-layout__media img { aspect-ratio: 3/2; max-height: 380px; }
 body .page-family-guide-article .fact-media img { height: 160px; }
}
