/* UI system: phone-led service design, October 2026.
   Reference patterns: 716's booking hierarchy + A-1's bold photo-led sections.
   Keep these component rules together; page families share the same scale. */
:root {
  --ui-font: "Source Sans 3", "Segoe UI", Arial, sans-serif;
  --ui-ink: #193034;
  --ui-muted: #475651;
  --ui-paper: #F7F8F5;
  --ui-line: #D9E1DA;
  --ui-radius: 12px;
  --ui-shadow: 0 8px 28px rgba(25,48,52,.08);
}
body { background: #fff; font-size: 17px; }
h1, h2, .hero__copy h1, .lay-head h3.lay-head__t,
.lay2-card__t, .lay-cta__h, .lay-guarantee__h, .lay-pull {
  font-family: var(--ui-font);
  font-weight: 700;
  letter-spacing: -.025em;
}
h1, .hero__copy h1, .hero--photo .hero__copy h1 {
  font-size: clamp(34px, 3.65vw, 52px);
  line-height: 1.08;
}
h2, .lay-head h2, .lay2-sec .lay-head h2, .layout-local-story .lay-head h2,
.lay-head h3.lay-head__t, .lay-cta h2, .lay-cta__h {
  font-size: clamp(28px, 2.75vw, 40px);
  line-height: 1.15;
}
h3 { font-size: clamp(20px, 1.7vw, 24px); }
.lay-head h2::after, .lay-head h3.lay-head__t::after { width: 48px; height: 3px; margin-top: 20px; }
.lay-band, .lay2-sec { padding-top: 64px; padding-bottom: 64px; }
.lay-band--cream { background: var(--ui-paper); }
.lay-band--white { background: #fff; }
.lay-prose p, .lay-prose li, .depth-body p, .depth-body li { font-size: 17px; line-height: 1.7; }
.lay-prose h3 { margin-top: 28px; }
.lay-prose h4 { margin-top: 22px; }
.lay-prose a:not([class]), .depth-body a:not([class]) { text-decoration: underline; text-underline-offset: 3px; }

/* Strong, compact brand header. A single sticky wrapper owns the offset. */
.site-chrome { box-shadow: 0 2px 14px rgba(25,48,52,.12); }
.th-logo { flex-shrink: 0; }
.th-logo-img { width: 176px; height: 62px; object-fit: contain; }
.trust-hdr__inner { min-height: 76px; }
.trust-row { gap: 26px; }
.trust-item { font-size: 13px; }
.th-phone { min-width: 228px; padding: 10px 20px; border-radius: 7px; box-shadow: none; }
.th-phone__number { font-size: 22px; }
.th-phone__sub { font-size: 10px; letter-spacing: .025em; }
.main-nav__inner { min-height: 52px; gap: 32px; }
.main-nav__inner > a:not(.nav-book) { font-size: 14px; letter-spacing: .035em; padding: 14px 0; }
.nav-book { border-radius: 6px; }
.btn-primary, .btn-secondary, .btn-ghost-light, .coupon-card__cta, .lead-form-card .btn-book {
  border-radius: 7px;
  min-height: 48px;
  box-shadow: none;
  font-size: 17px;
  line-height: 1.25;
  white-space: normal;
  text-align: center;
}
.btn-primary:hover, .coupon-card__cta:hover, .lead-form-card .btn-book:hover {
  box-shadow: 0 5px 14px rgba(142,60,22,.18);
}
.hero__actions { gap: 12px; }
.hero__lead { font-size: 19px; line-height: 1.55; max-width: 58ch; }
.hero__inner--overlay { padding-top: 48px; padding-bottom: 48px; }
.hero--plain, .lay-guide-hero { background: var(--ui-paper); }
.hero--plain .hero__copy { padding-bottom: 0; }

/* Home opens with the service promise and photograph; booking has its own band. */
body.layout-triage:has(main.page-family-home) .hero--photo.ui-home-hero {
  min-height: 480px;
  display: flex;
  align-items: center;
  padding: 0;
}
.page-family-home .ui-home-hero .hero__inner {
  display: block;
  padding-top: 52px;
  padding-bottom: 56px;
}
.ui-home-hero .hero__copy { max-width: 660px; }
.ui-home-hero .hero__copy h1 { max-width: 21ch; }
.ui-home-hero .hero__eyebrow { color: #F4F0E7 !important; margin-bottom: 16px; letter-spacing: .13em; }
.ui-home-hero .hero__bg img { object-position: center 53%; }
body.layout-triage:has(main.page-family-home) .ui-home-hero.hero--photo .hero__bg::after {
  background: linear-gradient(90deg, rgba(15,37,40,.94), rgba(15,37,40,.82) 36%, rgba(15,37,40,.18) 80%);
}
.page-family-home .benefits { padding: 0; border-bottom: 1px solid var(--ui-line); background: #fff; }
.page-family-home .benefits__grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 0; }
.page-family-home .benefits__item {
  flex-direction: column; justify-content: center; text-align: center;
  white-space: normal; padding: 22px 12px; gap: 9px;
  border-right: 1px solid var(--ui-line);
}
.page-family-home .benefits__item:last-child { border-right: 0; }
.page-family-home .benefits__mark {
  display: grid; place-items: center; width: 36px; height: 36px;
  border-radius: 50%; background: #193034; color: #fff; font-size: 19px;
}
.page-family-home .benefits__label { font-size: 14px; line-height: 1.3; }
.page-family-home .benefits__item .g-seal { display: block; width: 40px; height: 40px; }
.ui-booking { background: var(--ui-paper); padding: 56px 0 64px; }
.ui-booking .offer-section__head { max-width: 800px; margin-bottom: 30px; }
.ui-booking .offer-form-grid { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 32px; align-items: start; }
.ui-booking .coupon-card, .ui-booking .lead-form-card { max-width: none; margin: 0; }
.ui-booking .coupon-card { align-self: center; }

/* One consistent form/card treatment across every page. */
.coupon-band { background: var(--ui-paper); padding: 44px 0; }
.form-coupon-pair { gap: 32px; align-items: center; }
.lead-form-card {
  padding: 28px; border: 1px solid var(--ui-line);
  border-radius: var(--ui-radius); box-shadow: var(--ui-shadow);
}
.lead-form-card__title { font-size: 25px; }
.lead-form-card__icon { width: 42px; height: 42px; background: #EAF0E9; }
.lead-form-card__sub { margin: 8px 0 18px; font-size: 16px; }
.lead-form-card .form-grid { gap: 12px; }
.lead-form-card .field input, .lead-form-card .field select, .lead-form-card .field textarea {
  border: 1px solid #9AA9A0; border-radius: 6px; padding: 11px 13px;
  background-color: #FCFDFB; color: #193034; min-height: 48px;
}
.lead-form-card .field select { padding-right: 36px; }
.lead-form-card .field input::placeholder { color: #59665F; opacity: 1; }
.lead-form-card .sms-fine { font-size: 13px; line-height: 1.45; margin: 8px 0 0; }
.lead-form-card .sms-fine a { display: inline; padding-block: 0; color: #3B5F4D; text-decoration: underline; }
.lead-form-card .btn-book { font-size: 18px; margin-top: 16px; padding: 13px 20px; }
.form-guarantee { padding-top: 14px; margin-top: 16px; border-top: 1px solid var(--ui-line); }
.coupon-card { border-radius: var(--ui-radius); box-shadow: var(--ui-shadow); padding: 30px; }
.coupon-card__headline { font-family: var(--ui-font); font-size: clamp(44px,5vw,64px); font-weight: 700; letter-spacing: -.035em; }
.coupon-card__desc { font-size: 22px; }
.coupon-card__lines { font-size: 16px; line-height: 1.6; }
.coupon-card__cta { padding: 14px 18px; }

/* Empty photo slots must not reserve half the page. Decorative echoes add no information. */
body[data-var] .lay2-split:has(> .lay2-side:empty) {
  grid-template-columns: minmax(0,1fr); max-width: 860px; margin-inline: auto;
}
.lay2-side:empty { display: none; }
.lay2-split:has(> .lay2-side:empty) .lay2-txt { order: 0; }
.lay2-split:has(> .lay2-side:empty) .lay-head { max-width: 800px; }
.lay2-split:has(> .lay2-side:empty) .lay-prose p { max-width: 76ch; }
.lay2-pull[aria-hidden="true"] { display: none; }
.lay2-subcard, .lay2-acc__i.lay2-subcard { padding: 20px 0; }
.lay2-subcard .lay2-acc__b { padding: 0; }
.lay2-acc { gap: 4px; }
.lay-prose ul:not([class]), .lay2-acc__b > ul:not([class]) { list-style: disc; padding-left: 24px; margin: 16px 0; }
.lay-prose ul:not([class]) > li, .lay2-acc__b > ul:not([class]) > li { margin: 8px 0; padding-left: 3px; }
body[data-var] .lay-checklist .lay-step > .lay-card { border: 0; border-radius: 0; padding: 0 0 16px; box-shadow: none; }
.lay-checklist { max-width: 860px; margin-inline: auto; }
.lay-checklist > .lay-step, .lay-checklist > li { padding-left: 24px; }
.lay-checklist p, .lay-checklist li { max-width: 76ch; }
.lay-checklist h4 { margin-top: 24px; }
.lay-decision { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
.lay-decision .lay-if, .lay-card__h { font-family: var(--ui-font); font-weight: 700; }
body[data-var] .lay-decision > .lay-card { border: 0; border-bottom: 1px solid var(--ui-line); border-radius: 0; padding: 16px 0 24px; }
.lay2-solo { max-width: 860px; }
.lay2-side img, body[data-var] .lay2-side img { border-radius: var(--ui-radius); box-shadow: none; }
.lay-pull { font-size: 25px; line-height: 1.35; }
.lay-article { grid-template-columns: 210px minmax(0,740px); gap: 40px; }
.layout-editorial-guide .lay-article p { font-size: 18px; line-height: 1.75; }
.lay-toc { top: calc(var(--chrome-height,128px) + 24px); }
.lay-faqsplit__panel { position: static; }

/* Browse services before the longer explanations. */
.service-photo-cards { padding-top: 64px; padding-bottom: 64px; }
.spc-grid { gap: 20px; }
.spc-card, .spc-card:first-child, .spc-card:last-child { border-radius: var(--ui-radius); }
.spc-card { min-height: 280px; }
.spc-card__name { font-size: 23px; }
.spc-card:not(:has(img)) { min-height: 108px; height: auto; aspect-ratio: auto; }
.spc-card:not(:has(img)) .spc-card__overlay { display: none; }
.spc-card:not(:has(img)) .spc-card__label { position: static; width: 100%; min-height: 108px; gap: 18px; padding: 24px; }
.page-family-areas-hub .spc-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.page-family-areas-hub .spc-card { min-height: 108px; height: auto; aspect-ratio: auto; background: #193034 !important; }
.page-family-areas-hub .spc-card > img, .page-family-areas-hub .spc-card > picture,
.page-family-areas-hub .spc-card__overlay { display: none; }
.page-family-areas-hub .spc-card .spc-card__label { position: static; min-height: 108px; width: 100%; padding: 24px; gap: 16px; }
.page-family-areas-hub .spc-card__name { font-size: 22px; }
.page-family-guides-hub .hero--plain { padding: 56px 0; }
.page-family-guides-hub .hero__inner { display: block; }
.page-family-guides-hub .hero__copy { max-width: 800px; margin-inline: auto; text-align: center; padding: 0; }
.page-family-guides-hub .hero__lead { margin-inline: auto; }
.page-family-guides-hub .hero__actions { justify-content: center; }
.ui-home-triage { background: var(--ui-paper); color: #193034; padding: 64px 0; }
.ui-home-triage__grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 56px; align-items: start; }
.ui-home-triage__intro h2 { max-width: 21ch; }
.ui-disclosures { border-top: 1px solid #BCCAC0; }
.ui-disclosure { border-bottom: 1px solid #BCCAC0; }
.ui-disclosure > summary { position: relative; padding: 22px 38px 22px 0; cursor: pointer; list-style: none; }
.ui-disclosure > summary::-webkit-details-marker { display: none; }
.ui-disclosure > summary::after { content: "+"; position: absolute; right: 4px; top: 18px; font-size: 28px; color: #3B5F4D; }
.ui-disclosure[open] > summary::after { content: "\2212"; }
.ui-disclosure > summary h3, .ui-disclosure > summary .lay-if { margin: 0; font-size: 22px; font-weight: 700; line-height: 1.3; color: #193034; }
.ui-disclosure__body { padding: 0 0 24px; }
.ui-disclosure__body ul { padding-left: 22px; }
.ui-disclosure__body li { padding-bottom: 8px; }
.ui-disclosure__body h4 { margin-top: 20px; }
.ui-disclosure__body p, .ui-disclosure__body li { color: #193034; }
.ui-disclosure__body a:not(.btn-primary) { color: #8E3C16; text-decoration: underline; }
.how-section, .trust-section { padding-top: 64px; padding-bottom: 64px; }
.how-section { background: #fff; }
.how-step__body h3 { font-size: 20px !important; }
.how-step__body p { font-size: 17px; }
.guide-card { border: 1px solid var(--ui-line); border-radius: var(--ui-radius); box-shadow: none; }
.guide-card h3 { font-size: 23px; }
.lay-faq { gap: 10px; }
.lay-faq details { border-radius: 8px; }
.lay-faq summary { padding-top: 20px; padding-bottom: 20px; font-size: 18px; }
.fat-footer { border-top: 5px solid #48715E; }
.fat-footer .ff-guarantee, .fat-footer .ff-guarantee strong { color: #193034 !important; }
.fat-footer__col a { line-height: 1.5; padding-top: 6px; padding-bottom: 6px; }

@media (min-width: 701px) and (max-width: 1100px) {
  .main-nav__inner > a:not(.nav-book) { display: block; }
  .main-nav__inner { gap: 24px; }
  .nav-hamburger { display: none; }
}
@media (max-width: 999px) {
  .lay-article { grid-template-columns: minmax(0,740px); }
  .ui-home-triage__grid { grid-template-columns: 1fr; gap: 28px; }
  .ui-home-triage__intro h2 { max-width: 28ch; }
  .ui-booking .offer-form-grid { grid-template-columns: minmax(0,1fr); max-width: 680px; margin-inline: auto; }
  .ui-booking .lead-form-card { order: -1; }
  .ui-booking .coupon-card { width: 100%; }
  .page-family-home .benefits__grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .page-family-home .benefits__item { border-bottom: 1px solid var(--ui-line); }
  .page-family-home .benefits__item:last-child { grid-column: span 2; }
}
@media (max-width: 700px) {
  .page-family-areas-hub .spc-grid, .lay-decision { grid-template-columns: minmax(0,1fr); }
  .page-family-guides-hub .hero--plain { padding: 36px 0; }
  .th-logo-img { width: 150px; height: 48px; }
  .trust-hdr__inner { min-height: 56px; }
  .trust-item { font-size: 11px; }
  .nav-hamburger { border-radius: 7px; }
  .main-nav__inner { gap: 0; }
  .hero__inner--overlay, .hero--with-form .hero__inner--overlay { padding-top: 36px; padding-bottom: 36px; }
  .hero__lead { font-size: 18px; margin-top: 18px; margin-bottom: 24px; }
  .hero__actions > a { flex: 1 1 145px; padding: 13px 12px; }
  body.layout-triage:has(main.page-family-home) .hero--photo.ui-home-hero { min-height: 0; }
  .page-family-home .ui-home-hero .hero__inner { padding-top: 36px; padding-bottom: 40px; }
  .ui-home-hero .hero__copy h1 { max-width: 22ch; }
  .ui-home-hero .hero__bg img { object-position: 63% center; }
  body.layout-triage:has(main.page-family-home) .ui-home-hero.hero--photo .hero__bg::after { background: rgba(15,37,40,.80); }
  .page-family-home .benefits__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .page-family-home .benefits__item { flex-direction: row; text-align: left; justify-content: flex-start; padding: 15px 8px; gap: 9px; }
  .page-family-home .benefits__item:nth-child(even) { border-right: 0; }
  .page-family-home .benefits__mark { width: 26px; height: 26px; font-size: 15px; }
  .page-family-home .benefits__label { font-size: 13px; }
  .page-family-home .benefits__item:last-child { justify-content: center; }
  .page-family-home .benefits__item .g-seal { width: 30px; height: 30px; }
  .lay-band, .lay2-sec, .ui-home-triage, .ui-booking, .how-section, .trust-section, .service-photo-cards { padding-top: 40px; padding-bottom: 40px; }
  .coupon-band { padding-top: 28px; padding-bottom: 28px; }
  .lead-form-card { padding: 22px 18px; }
  .lead-form-card__title { font-size: 22px; }
  .lead-form-card__header { gap: 10px; }
  .lead-form-card .form-grid { gap: 10px; }
  .lead-form-card .sms-fine { font-size: 13px; line-height: 1.5; }
  .coupon-card { padding: 24px; }
  .lay-head, .lay2-sec .lay-head { margin-bottom: 24px; }
  .lay2-subcard, .lay2-acc__i.lay2-subcard { padding: 18px 0; }
  .ui-disclosure > summary h3 { font-size: 21px; }
  .lay-faq summary { font-size: 17px; padding: 17px 42px 17px 16px; }
  .lay-faq .lay-faq__a { padding: 0 16px 20px; }
  .lay-faq summary::after { right: 15px; }
  .callbar { padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
}


/* Homepage composition only. Merge once after the UI polish block.
   No HTML changes, new colors, transforms or generic component overrides.
   The existing hero/proof strip and offer/guarantee components remain untouched. */

/* A single photographic service panel, with assessment as the first-step lead. */
.page-family-home .svc-photo-section__head { text-align: left; margin-bottom: 28px; }
.page-family-home .svc-photo-section__head h2 { max-width: 28ch; }
.page-family-home .spc-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  grid-template-rows: repeat(2, 220px);
  gap: 12px;
}
.page-family-home .spc-grid > .spc-card {
  min-height: 0; height: 100%; aspect-ratio: auto;
  border: 0; border-radius: 0; box-shadow: none;
}
.page-family-home .spc-grid > .spc-card:first-child { grid-row: span 2; }
.page-family-home .spc-card > picture { display: block; width: 100%; height: 100%; }
.page-family-home .spc-card__label { padding: 24px; gap: 16px; }
.page-family-home .spc-card:first-child .spc-card__name { font-size: clamp(25px, 2.3vw, 34px); }

/* An editorial sequence: one continuous rule and open numbers, not icon pills. */
.page-family-home .how-section__inner { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 72px; }
.page-family-home .how-steps { border-left: 2px solid var(--ui-line); padding-left: 28px; }
.page-family-home .how-step { gap: 20px; padding: 24px 0; }
.page-family-home .how-step:first-child { padding-top: 0; }
.page-family-home .how-step:last-child { padding-bottom: 0; }
.page-family-home .how-step__num {
  width: 42px; height: auto; align-items: flex-start;
  border-radius: 0; background: transparent; color: inherit;
  font-size: 36px; font-weight: 600; line-height: 1;
}

/* Give the human-service photos enough presence to balance the adjacent copy. */
.page-family-home .people-photos {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 16px; align-items: start;
}
.page-family-home .people-photos > div:nth-child(2) { padding-top: 48px; }
.page-family-home .people-photos > div:empty,
.page-family-home .people-photos > .span2:not(:has(img)) { display: none; }
.page-family-home .people-photos picture { display: block; }
.page-family-home .people-photos img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 0; }

@media (max-width: 900px) {
  .page-family-home .spc-grid { grid-template-rows: repeat(2, 200px); }
  .page-family-home .how-section__inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .page-family-home .people-photos { max-width: 620px; }
}
@media (max-width: 600px) {
  .page-family-home .spc-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; gap: 12px; }
  .page-family-home .spc-grid > .spc-card,
  .page-family-home .spc-grid > .spc-card:first-child { grid-row: auto; height: 220px; }
  .page-family-home .spc-card__label { padding: 20px; }
  .page-family-home .spc-card:first-child .spc-card__name { font-size: 25px; }
  .page-family-home .how-steps { padding-left: 16px; }
  .page-family-home .how-step { gap: 14px; }
  .page-family-home .how-step__num { width: 30px; font-size: 30px; }
  .page-family-home .people-photos { gap: 12px; }
  .page-family-home .people-photos > div:nth-child(2) { padding-top: 24px; }
}


/* OFFER COMPONENT INTEGRATION */
/* Bold coupon component. Append after the shared design system. */
.ui-offer-dialog { background: rgba(8,25,27,.78); backdrop-filter: blur(4px); }
.ui-offer-dialog .exit-popup { width: 760px; max-width: 100%; }
.ui-offer-dialog .coupon-card {
  display: grid; grid-template-columns: .92fr 1.15fr; padding: 0; border: 0;
  border-radius: 0; overflow: visible; background: #12262A; color: #fff;
  box-shadow: 0 28px 90px rgba(0,0,0,.4); text-align: left; position: relative;
}
.ui-offer-dialog .coupon-card::before, .ui-offer-dialog .coupon-card::after { content: none; }
.ui-offer-ticket__value {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 20px; padding: 50px 24px; background: #E8B93F; color: #12262A;
  border-right: 2px dashed rgba(18,38,42,.45);
}
.ui-offer-ticket__value::before, .ui-offer-ticket__value::after {
  content: ''; position: absolute; right: -15px; width: 28px; height: 28px; border-radius: 50%; background: #12262A;
}
.ui-offer-ticket__value::before { top: -14px; }
.ui-offer-ticket__value::after { bottom: -14px; }
.ui-offer-ticket__eyebrow { font: 800 13px/1.2 var(--ui-font,Arial,sans-serif); letter-spacing: .14em; text-transform: uppercase; border: 1px solid #12262A; padding: 9px 12px; }
.ui-offer-ticket__amount { font: 850 clamp(80px,8vw,110px)/.95 var(--ui-font,Arial,sans-serif); letter-spacing: -.07em; }
.ui-offer-ticket__amount > span { display: block; font-size: 38px; line-height: 1.1; letter-spacing: .14em; text-align: center; margin-top: 10px; }
.ui-offer-ticket__stamp { font: 750 10px/1.4 var(--ui-font,Arial,sans-serif); letter-spacing: .14em; }
.ui-offer-ticket__body { padding: 48px 34px 30px; }
.ui-offer-ticket__kicker { color: #E8B93F; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.ui-offer-ticket__body h2 { margin: 14px 0; color: #fff; font: 750 34px/1.12 var(--ui-font,Arial,sans-serif); letter-spacing: -.025em; }
.ui-offer-ticket__body > p { color: #F4F0E7; margin: 0 0 24px; font-size: 16px; line-height: 1.55; }
.ui-offer-dialog .coupon-card__cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; background: #A8431A; color: #fff; border: 1px solid #D99875; border-radius: 0; padding: 17px 18px; font-size: 16px; line-height: 1.3; text-decoration: none; }
.ui-offer-dialog .coupon-card__cta:hover { background: #8E3C16; color: #fff; }
.ui-offer-ticket__body .ui-offer-ticket__terms { margin: 18px 0 0; font-size: 12px; line-height: 1.6; color: #DEE5E0; }
.ui-offer-ticket__terms a { color: #DEE5E0; text-decoration: underline; }
.ui-offer-dialog .exit-popup__close { top: 8px; right: 8px; width: 44px; height: 44px; min-width: 44px; min-height: 44px; background: transparent; color: #fff; border: 1px solid #91A39D; border-radius: 0; }
.ui-offer-dialog a:focus-visible, .ui-offer-dialog button:focus-visible { outline: 3px solid #E8B93F; outline-offset: 4px; }
@media (max-width: 1023px) {
  .ui-offer-mobile .mobile-coupon-prompt__container {
    left: 12px; right: 12px; padding: 0 52px 0 0; gap: 0; border-radius: 0;
    display: flex; align-items: stretch; background: #12262A; border: 1px solid #E8B93F;
    max-height: min(360px,50dvh); overflow-y: auto; box-shadow: 0 8px 28px rgba(0,0,0,.24);
  }
  .ui-offer-mobile__value { width: 106px; flex: 0 0 106px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 16px 8px; background: #E8B93F; color: #12262A; font: 850 40px/.95 var(--ui-font,Arial,sans-serif); letter-spacing: -.05em; border-right: 2px dashed #7F682E; }
  .ui-offer-mobile__value > span { font-size: 16px; letter-spacing: .22em; margin-top: 6px; }
  .ui-offer-mobile .mobile-coupon-prompt__content { padding: 15px 13px; }
  .ui-offer-mobile .mobile-coupon-prompt__heading { color: #fff; font: 750 13px/1.2 var(--ui-font,Arial,sans-serif); margin: 0 0 7px; }
  .ui-offer-mobile .mobile-coupon-prompt__cta { background: none; border: 0; border-radius: 0; padding: 0; min-height: 26px; color: #E8B93F; font: 750 15px/1.3 var(--ui-font,Arial,sans-serif); text-align: left; display: inline-flex; align-items: center; gap: 8px; }
  .ui-offer-mobile .mobile-coupon-prompt__cta:hover { background: none; color: #fff; }
  .ui-offer-mobile__details { margin-top: 4px; color: #fff; }
  .ui-offer-mobile__details summary { font: 400 11px/1.5 var(--ui-font,Arial,sans-serif); color: #DEE5E0; cursor: pointer; padding: 3px 0; }
  .ui-offer-mobile__details p { margin: 8px 0 0; color: #F4F0E7; font-size: 12px; line-height: 1.55; }
  .ui-offer-mobile__details a { color: #E8B93F; text-decoration: underline; }
  .ui-offer-mobile .mobile-coupon-prompt__close { position: absolute; top: 7px; right: 6px; width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 0; border: 1px solid #91A39D !important; border-radius: 0; background: transparent !important; color: #fff !important; }
  .ui-offer-mobile a:focus-visible, .ui-offer-mobile summary:focus-visible { outline: 2px solid #E8B93F; outline-offset: 3px; }
}
@media (max-width: 360px) {
  .ui-offer-mobile__value { width: 85px; flex-basis: 85px; font-size: 34px; }
  .ui-offer-mobile .mobile-coupon-prompt__content { padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) { .ui-offer-dialog .exit-popup { animation: none; } }

/* GUARANTEE COMPONENT INTEGRATION */
/* Formal guarantee family. Append once after the existing UI polish styles. */
body a.guarantee-cert.g-certificate {
  position: relative; isolation: isolate; display: grid;
  grid-template-columns: minmax(0, 1fr) 184px; align-items: center;
  gap: 36px; width: 100%; max-width: 1040px; margin: 0 auto;
  padding: 52px 64px; border: 1px solid #aa9060; border-radius: 0;
  color: #193034 !important; text-decoration: none !important;
  background: repeating-linear-gradient(0deg, #b59b6820 0, #b59b6820 .5px, transparent .5px, transparent 4px), #fcf9ef;
  box-shadow: 0 3px 0 #e2dac5, 0 5px 0 #b9a886, 0 18px 34px #182e3014;
  overflow: visible;
}
body .g-certificate .g-certificate__frame {
  position: absolute; inset: 12px; z-index: -1; pointer-events: none;
  border: 3px double #a38b58;
  background:
    linear-gradient(#193034, #193034) 0 0 / 33px 3px no-repeat,
    linear-gradient(#193034, #193034) 0 0 / 3px 33px no-repeat,
    linear-gradient(#193034, #193034) 100% 0 / 33px 3px no-repeat,
    linear-gradient(#193034, #193034) 100% 0 / 3px 33px no-repeat,
    linear-gradient(#193034, #193034) 0 100% / 33px 3px no-repeat,
    linear-gradient(#193034, #193034) 0 100% / 3px 33px no-repeat,
    linear-gradient(#193034, #193034) 100% 100% / 33px 3px no-repeat,
    linear-gradient(#193034, #193034) 100% 100% / 3px 33px no-repeat;
}
body .g-certificate__body { display: flex; align-items: flex-start; flex-direction: column; min-width: 0; color: #193034 !important; }
body .g-certificate__eyebrow { font: 700 11px/1.4 "Source Sans 3", sans-serif; letter-spacing: .22em; text-transform: uppercase; color: #506259 !important; }
body .g-certificate__rule { display: block; width: 88px; height: 1px; background: #b39a61; margin: 21px 0 24px; position: relative; }
body .g-certificate__rule i { position: absolute; width: 7px; height: 7px; right: -2px; top: -3px; background: #a18446; transform: rotate(45deg); }
body .g-certificate__title { display: block; font: 600 clamp(30px, 3.1vw, 43px)/1.12 "Source Serif 4", Georgia, serif; letter-spacing: -.025em; max-width: 560px; color: #193034 !important; text-wrap: balance; }
body .g-certificate__pledge { display: block; margin-top: 12px; font: italic 400 clamp(20px, 2vw, 26px)/1.4 "Source Serif 4", Georgia, serif; color: #415c50 !important; }
body .g-certificate__terms { display: block; margin-top: 25px; font: 600 13px/1.4 "Source Sans 3", sans-serif; color: #704819 !important; text-underline-offset: 4px; text-decoration: underline; }
body .g-certificate__medallion { display: grid; place-items: center; padding-left: 28px; border-left: 1px solid #b8a16d80; }
body .g-certificate__medallion svg { display: block; width: 166px !important; height: 166px !important; min-width: 0; max-width: 100%; transform: none !important; filter: drop-shadow(0 3px 2px #5b451431) !important; }
body a.g-certificate:hover .g-certificate__terms { color: #193034 !important; text-decoration-thickness: 2px; }

/* The service promise is an editorial aside, not another paper certificate. */
body .trust__card.g-service-pledge {
  display: grid !important; grid-template-columns: 76px minmax(0, 1fr) !important;
  gap: 20px !important; padding: 26px 0 26px 28px !important; border: 0 !important;
  border-left: 2px solid #b89958 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important; max-width: 470px;
  color: #193034 !important;
}
body .trust__card.g-service-pledge::before, body .trust__card.g-service-pledge::after { display: none !important; }
body .trust__card.g-service-pledge .g-seal { width: 76px !important; height: 76px !important; grid-row: 1 !important; filter: none; }
body .trust__card.g-service-pledge .trust__card-body { grid-column: 2; }
body .trust__card.g-service-pledge .trust__card-head { font: 600 27px/1.15 "Source Serif 4", Georgia, serif !important; }
body .trust__card.g-service-pledge p, body .trust__card.g-service-pledge span,
body .trust__card.g-service-pledge .trust__card-head { color: #193034 !important; }
body .trust__card.g-service-pledge .trust__card-note { font-size: 16px; line-height: 1.6; margin: 10px 0; }
body .trust__card.g-service-pledge a { color: #79441e !important; text-decoration: underline; text-underline-offset: 3px; }

/* Form: quiet, compact assurance; footer: a gold-on-teal brand lockup. */
body .form-guarantee.g-assurance {
  display: flex !important; align-items: center; gap: 12px !important;
  background: none !important; border: 0 !important; border-top: 1px solid #d9dfd8 !important;
  border-radius: 0 !important; padding: 16px 0 0 !important; margin-top: 20px !important;
  box-shadow: none !important; color: #30473e !important; font-size: 12px; line-height: 1.5;
}
body .form-guarantee.g-assurance::before, body .form-guarantee.g-assurance::after,
body .ff-guarantee.g-footer-pledge::before, body .ff-guarantee.g-footer-pledge::after { display: none !important; }
body .form-guarantee.g-assurance .g-seal { width: 38px !important; height: 38px !important; min-width: 38px; filter: none !important; }
body .form-guarantee.g-assurance strong { color: #193034 !important; }
body .fat-footer .ff-guarantee.g-footer-pledge {
  display: flex !important; align-items: center; gap: 14px !important;
  padding: 15px 0 !important; margin: 14px 0 18px !important;
  background: transparent !important; border: 0 !important; border-top: 1px solid #e8b93f55 !important;
  border-bottom: 1px solid #e8b93f55 !important; border-radius: 0 !important; box-shadow: none !important;
  color: #f4f0e7 !important; font-size: 14px; line-height: 1.45;
}
body .fat-footer .ff-guarantee.g-footer-pledge .g-seal { width: 58px !important; height: 58px !important; min-width: 58px; filter: none !important; }
body .fat-footer .ff-guarantee.g-footer-pledge span,
body .fat-footer .ff-guarantee.g-footer-pledge strong { color: #f4f0e7 !important; }

@media (max-width: 700px) {
  body a.guarantee-cert.g-certificate { grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 35px 32px; text-align: center; }
  body .g-certificate__body { align-items: center; }
  body .g-certificate__title { font-size: clamp(27px, 7vw, 36px); }
  body .g-certificate__eyebrow { font-size: 10px; letter-spacing: .15em; }
  body .g-certificate__rule { margin: 17px 0 20px; }
  body .g-certificate__pledge { font-size: 21px; }
  body .g-certificate__terms { margin-top: 18px; }
  body .g-certificate__medallion { border: 0; padding: 0; }
  body .g-certificate__medallion svg { width: 108px !important; height: 108px !important; }
  body .trust__card.g-service-pledge { grid-template-columns: 60px minmax(0, 1fr) !important; gap: 16px !important; padding: 20px 0 20px 18px !important; }
  body .trust__card.g-service-pledge .g-seal { width: 60px !important; height: 60px !important; }
}

/* Keep the promise copy on the same open canvas as its adjacent seal. */
body .trust__copy { background: transparent !important; }

/* Photo-caption archetypes keep the same readable inset as page sections. */
body .lay-caption { width: calc(100% - 48px); max-width: 1160px; margin: 28px auto !important; padding: 0 !important; }
body .lay-caption__lead { max-width: 780px; }
@media (max-width: 700px) { body .lay-caption { width: calc(100% - 32px); margin: 24px auto !important; } }

/* Text-led nested service heroes use the full canvas with a centered reading measure. */
.layout-triage .page-family-city-service .hero__inner { display: block; }
.layout-triage .page-family-city-service .hero__copy { max-width: 820px; margin-inline: auto; text-align: center; }
.layout-triage .page-family-city-service .hero__lead { margin-inline: auto; }
.layout-triage .page-family-city-service .hero__actions { justify-content: center; }
