.af-imp {
  --af-imp-primary: #006343;
  --af-imp-ink: #272321;
  --af-imp-muted: #716a65;
  --af-imp-border: #ded9d5;
  --af-imp-surface: #f7f5f3;
  --af-imp-white: #fff;
  --af-imp-shadow: 0 18px 50px rgba(42, 34, 29, .09);
  color: var(--af-imp-ink);
  font: inherit;
  line-height: 1.6;
  margin-inline: auto;
  max-width: 1280px;
  padding-inline: clamp(.75rem, 2.5vw, 1.5rem);
}

.af-imp *, .af-imp *::before, .af-imp *::after { box-sizing: border-box; }
.af-imp, .af-imp * { font-family: inherit !important; }
.af-imp h1, .af-imp h2, .af-imp h3, .af-imp h4, .af-imp h5, .af-imp h6, .af-imp-tabs__tab, .af-imp-card__name { font-family: Philosopher, Georgia, serif !important; }
.af-imp a { color: var(--af-imp-primary); }
.af-imp img { max-width: 100%; }
.af-imp-sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.af-imp__header { margin: 0 auto clamp(1.5rem, 4vw, 3rem); max-width: 860px; text-align: center; }
.af-imp__header h1 { font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.12; margin: 0 0 .75rem; text-wrap: balance; }
.af-imp__intro { color: var(--af-imp-muted); margin-inline: auto; max-width: 760px; }

.af-imp-filters { margin-bottom: clamp(1.75rem, 4vw, 3rem); }
.af-imp-search-panel {
  background: #f7f5f3;
  border: 1px solid var(--af-imp-border);
  border-radius: .9rem;
  box-shadow: 0 14px 40px rgba(42, 34, 29, .06);
  color: var(--af-imp-ink);
  padding: clamp(1.15rem, 3vw, 2rem);
}
.af-imp-search-panel > label { display: block; font-size: clamp(1rem, 2vw, 1.18rem); font-weight: 750; margin-bottom: .7rem; }
.af-imp-search-panel__row { align-items: stretch; display: flex; gap: .65rem; }
.af-imp-search-panel__row input { flex: 1 1 auto; min-width: 0; }
.af-imp-search-panel__row .af-imp-button { flex: 0 0 auto; min-width: 8.5rem; }
.af-imp-advanced { border-top: 1px solid var(--af-imp-border); margin-top: 1rem; padding-top: .85rem; }
.af-imp-advanced summary { cursor: pointer; display: inline-flex; font-weight: 700; list-style-position: inside; padding: .25rem 0; }
.af-imp-advanced summary::marker { font-size: .82em; }
.af-imp-advanced__fields { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: 1rem; }
.af-imp-filters__clear { color: var(--af-imp-primary) !important; display: inline-block; font-weight: 650; margin-top: .85rem; text-underline-offset: .2em; }

.af-imp-form {
  background: var(--af-imp-surface);
  border: 1px solid var(--af-imp-border);
  border-radius: .8rem;
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: clamp(1rem, 3vw, 1.6rem);
}
.af-imp-field, .af-imp-form label { display: grid; font-weight: 650; gap: .35rem; }
.af-imp input, .af-imp select, .af-imp textarea {
  background: var(--af-imp-white);
  border: 1px solid #a9a19b;
  border-radius: .4rem;
  color: var(--af-imp-ink);
  font: inherit;
  min-height: 3rem;
  padding: .6rem .75rem;
  width: 100%;
}
.af-imp textarea { resize: vertical; }
.af-imp input:focus, .af-imp select:focus, .af-imp textarea:focus {
  border-color: var(--af-imp-primary);
  outline: 3px solid rgba(95, 81, 72, .22);
  outline: 3px solid color-mix(in srgb, var(--af-imp-primary) 28%, transparent);
  outline-offset: 1px;
}
.af-imp-button {
  align-items: center;
  background: var(--af-imp-white);
  border: 1px solid var(--af-imp-primary);
  border-radius: .7rem;
  color: var(--af-imp-primary) !important;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 750;
  justify-content: center;
  min-height: 3rem;
  padding: .62rem 1.15rem;
  text-decoration: none;
  transition: filter .2s ease, transform .2s ease;
}
.af-imp-button:hover { background: var(--af-imp-surface); filter: none; transform: translateY(-1px); }
.af-imp-button:focus-visible, .af-imp-card__link:focus-visible, .af-imp-action:focus-visible { outline: 3px solid color-mix(in srgb, var(--af-imp-primary) 35%, transparent); outline-offset: 3px; }
.af-imp-button--search { background: var(--af-imp-white); border-color: var(--af-imp-primary); color: var(--af-imp-primary) !important; }
.af-imp-button--secondary { background: transparent; color: var(--af-imp-primary) !important; }

.af-imp-grid { display: grid; gap: clamp(1rem, 2.3vw, 1.6rem); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.af-imp-card {
  background: var(--af-imp-white);
  border: 1px solid var(--af-imp-border);
  border-radius: .35rem;
  box-shadow: 0 8px 24px rgba(42, 34, 29, .045);
  min-width: 0;
  overflow: hidden;
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.af-imp-card:hover { border-color: color-mix(in srgb, var(--af-imp-primary) 42%, var(--af-imp-border)); box-shadow: var(--af-imp-shadow); transform: translateY(-4px); }
.af-imp-card__link { color: inherit !important; display: grid; grid-template-rows: auto 1fr; height: 100%; text-decoration: none; }
.af-imp-card__photo {
  aspect-ratio: 4 / 5;
  background: linear-gradient(145deg, #eeeae7, #d9d3ce);
  display: block;
  filter: grayscale(.82) saturate(.72);
  height: auto;
  object-fit: cover;
  transition: filter .3s ease, transform .35s ease;
  width: 100%;
}
.af-imp-card:hover .af-imp-card__photo { filter: grayscale(.18) saturate(.92); transform: scale(1.015); }
.af-imp-card__photo--placeholder { min-height: 250px; position: relative; }
.af-imp-card__photo--placeholder::after { border: 1px solid rgba(95, 81, 72, .3); border-radius: 50% 50% 42% 58%; content: ""; height: 54px; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%) rotate(35deg); width: 38px; }
.af-imp-card__body { align-items: center; display: flex; flex-direction: column; gap: .35rem; min-height: 205px; padding: 1.05rem 1rem 1.15rem; text-align: center; }
.af-imp-card__name { font-size: clamp(1.08rem, 1.7vw, 1.28rem); font-weight: 650; line-height: 1.25; text-wrap: balance; }
.af-imp-card__name-lines { color: var(--af-imp-muted); font-family: Philosopher, Georgia, serif !important; font-size: 1rem; font-style: italic; line-height: 1.3; margin: -.35rem 0 .75rem; }
.af-imp-card__name-lines p { margin: 0; }
.af-imp-card__age { border-bottom: 1px solid var(--af-imp-border); font-weight: 800; margin-top: .8rem; padding: 0 .5rem .7rem; width: 100%; }
.af-imp-card__place { color: var(--af-imp-muted); font-size: .75rem; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; }
.af-imp-card__date { color: var(--af-imp-muted); font-size: .85rem; }
.af-imp-card__cta { color: var(--af-imp-primary); font-size: .88rem; font-weight: 750; margin-top: auto; padding-top: .65rem; }
.af-imp--compact .af-imp-grid, .af-imp-module--compact .af-imp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.af-imp--compact .af-imp-card__link, .af-imp-module--compact .af-imp-card__link { grid-template-columns: 120px 1fr; grid-template-rows: 1fr; }
.af-imp--compact .af-imp-card__photo, .af-imp-module--compact .af-imp-card__photo { aspect-ratio: auto; height: 100%; min-height: 155px; }
.af-imp--compact .af-imp-card__body, .af-imp-module--compact .af-imp-card__body { align-items: flex-start; min-height: 155px; text-align: left; }
.af-imp--editorial .af-imp-card { border-width: 0 0 1px; border-radius: 0; box-shadow: none; }
.af-imp--classic .af-imp-card { border: 3px double var(--af-imp-border); }
.af-imp--blocks .af-imp-card { border: 0; box-shadow: var(--af-imp-shadow); }
.af-imp-pagination { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; margin: 2.5rem 0; }
.af-imp-pagination a, .af-imp-pagination span { align-items: center; border: 1px solid var(--af-imp-border); border-radius: .35rem; display: inline-flex; justify-content: center; min-height: 2.6rem; min-width: 2.6rem; padding: .25rem; text-decoration: none; }
.af-imp-pagination [aria-current="page"] { background: color-mix(in srgb, var(--af-imp-primary) 9%, var(--af-imp-white)); border-color: var(--af-imp-primary); color: var(--af-imp-primary); }
.af-imp-empty { background: var(--af-imp-surface); border: 1px solid var(--af-imp-border); border-radius: .7rem; padding: 2rem; text-align: center; }

.af-imp-detail { max-width: 1180px; }
.af-imp-detail-heading { margin: 0 auto 1.5rem; max-width: 800px; text-align: center; }
.af-imp-detail-heading h1 { font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1.08; margin: .2rem 0 .4rem; text-wrap: balance; }
.af-imp-detail-heading__age { font-size: 1.08rem; font-weight: 750; margin: .35rem 0; }
.af-imp-epigraph { margin: 0 auto 1.25rem; max-width: 680px; text-align: center; }
.af-imp-epigraph > a { background: var(--af-imp-surface); border: 1px solid var(--af-imp-border); box-shadow: var(--af-imp-shadow); display: block; padding: clamp(.35rem, 1.3vw, .8rem); }
.af-imp-epigraph__image { display: block; height: auto; margin-inline: auto; width: 100%; }
.af-imp-epigraph__document { background: var(--af-imp-surface); border: 1px solid var(--af-imp-border); box-shadow: var(--af-imp-shadow); display: block; height: min(82vh, 920px); width: 100%; }
.af-imp-epigraph figcaption { color: var(--af-imp-muted); font-size: .88rem; margin-top: .65rem; }
.af-imp-epigraph figcaption a { text-underline-offset: .2em; }
.af-imp-epigraph--generated { max-width: 640px; }
.af-imp-epigraph-sheet {
  background: var(--af-imp-white);
  border: 4px double color-mix(in srgb, var(--af-imp-primary) 45%, var(--af-imp-border));
  box-shadow: var(--af-imp-shadow);
  color: var(--af-imp-ink);
  min-height: 820px;
  padding: clamp(1.35rem, 5vw, 3rem);
  position: relative;
  text-align: center;
}
.af-imp-epigraph-sheet::before { border: 1px solid color-mix(in srgb, var(--af-imp-primary) 16%, transparent); content: ""; inset: .55rem; pointer-events: none; position: absolute; }
.af-imp-epigraph-sheet__top { align-items: center; display: grid; gap: 1rem; grid-template-columns: minmax(92px, 130px) 1fr minmax(92px, 130px); margin-bottom: clamp(1.5rem, 4vw, 2.4rem); min-height: 150px; }
.af-imp-epigraph-sheet__photo { aspect-ratio: 4 / 5; border: 1px solid var(--af-imp-border); filter: grayscale(.25) saturate(.85); height: auto; object-fit: cover; width: 100%; }
.af-imp-epigraph-sheet__ornament { height: 92px; justify-self: center; position: relative; width: 62px; }
.af-imp-epigraph-sheet__ornament::before { background: var(--af-imp-primary); content: ""; height: 88px; left: 50%; opacity: .65; position: absolute; top: 1px; transform: rotate(8deg); width: 1px; }
.af-imp-epigraph-sheet__ornament::after { border: 1px solid var(--af-imp-primary); border-radius: 70% 15% 70% 15%; box-shadow: 19px 23px 0 -1px var(--af-imp-white), 19px 23px 0 0 var(--af-imp-primary), -8px 47px 0 -1px var(--af-imp-white), -8px 47px 0 0 var(--af-imp-primary); content: ""; height: 20px; left: 9px; opacity: .55; position: absolute; top: 12px; transform: rotate(24deg); width: 31px; }
.af-imp-epigraph-sheet__meta { color: var(--af-imp-muted); font-size: .82rem; line-height: 1.45; margin: 0; text-align: right; }
.af-imp-epigraph-sheet .af-imp-opening { font-size: .98rem; margin: 0 auto 1rem; max-width: 480px; }
.af-imp-epigraph-sheet h1 { font-size: clamp(2.25rem, 7vw, 4.25rem); line-height: 1.02; margin: .35rem 0 .7rem; text-wrap: balance; }
.af-imp-epigraph-sheet .af-imp-name-line { font-size: 1rem; }
.af-imp-epigraph-sheet__age { font-size: 1.1rem; font-weight: 800; margin: 1rem 0; }
.af-imp-epigraph-sheet blockquote { border: 0; color: var(--af-imp-muted); font-style: italic; margin: 1.25rem auto; max-width: 470px; padding: 0; }
.af-imp-epigraph-sheet__text { font-size: .98rem; margin: 1.25rem auto; max-width: 510px; }
.af-imp-epigraph-sheet__text > :first-child, .af-imp-epigraph-sheet__closing > :first-child { margin-top: 0; }
.af-imp-epigraph-sheet__text > :last-child, .af-imp-epigraph-sheet__closing > :last-child { margin-bottom: 0; }
.af-imp-epigraph-sheet .af-imp-events { border-block: 1px solid var(--af-imp-border); gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin: 1.5rem auto; padding: 1rem 0; }
.af-imp-epigraph-sheet .af-imp-event { background: transparent; border: 0; border-radius: 0; font-size: .86rem; padding: .35rem; }
.af-imp-epigraph-sheet .af-imp-event h3 { color: var(--af-imp-primary); font-size: .82rem; letter-spacing: .06em; margin-bottom: .4rem; text-transform: uppercase; }
.af-imp-epigraph-sheet__closing { color: var(--af-imp-muted); font-size: .9rem; font-style: italic; margin: 1.4rem auto 0; max-width: 480px; }
.af-imp-obituary {
  align-items: center;
  background: var(--af-imp-surface);
  border: 1px solid var(--af-imp-border);
  border-radius: .8rem;
  display: grid;
  gap: clamp(1.5rem, 5vw, 4rem);
  grid-template-columns: minmax(230px, 38%) 1fr;
  margin: 0 auto 1.5rem;
  max-width: 980px;
  overflow: hidden;
  padding: clamp(.8rem, 2.5vw, 1.5rem);
}
.af-imp-obituary--without-photo { grid-template-columns: 1fr; max-width: 780px; text-align: center; }
.af-imp-obituary__photo { aspect-ratio: 4 / 5; border-radius: .35rem; filter: grayscale(.55) saturate(.8); height: auto; object-fit: cover; width: 100%; }
.af-imp-obituary h1 { font-size: clamp(2.2rem, 6vw, 4.5rem); line-height: 1.02; margin: .25rem 0 .75rem; text-wrap: balance; }
.af-imp-kicker { color: var(--af-imp-primary); font-family: Philosopher, Georgia, serif !important; font-size: clamp(1.55rem, 3vw, 2rem); font-weight: 400; letter-spacing: .01em; line-height: 1.2; margin: 0 0 .65rem; text-align: left; }
.af-imp-detail-name-lines { margin: -.45rem 0 .9rem; }
.af-imp-detail-name-lines .af-imp-name-line { color: var(--af-imp-muted); font-family: Philosopher, Georgia, serif !important; font-size: clamp(1.15rem, 2vw, 1.35rem); font-style: italic; line-height: 1.3; margin: .1rem 0; }
.af-imp-name-line, .af-imp-obituary__meta { color: var(--af-imp-muted); font-size: 1.05rem; margin: .2rem 0; }
.af-imp-obituary blockquote { border-left: 3px solid var(--af-imp-primary); font-style: italic; margin: 1.2rem 0 0; padding-left: 1rem; }
.af-imp-actions { display: grid; gap: .65rem; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); margin: 1.25rem auto 2.25rem; max-width: 920px; }
.af-imp-action { align-items: center; background: var(--af-imp-white); border: 1px solid var(--af-imp-primary); border-radius: 0; color: var(--af-imp-primary); cursor: pointer; display: inline-flex; font: inherit; font-size: .92rem; font-weight: 750; justify-content: center; min-height: 3rem; padding: .55rem .8rem; text-align: center; text-decoration: none; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.af-imp-action:hover, .af-imp-action[aria-pressed="true"] { background: var(--af-imp-surface); color: var(--af-imp-primary); transform: translateY(-1px); }
.af-imp-obituary__text, .af-imp-obituary__closing { font-size: 1.08rem; margin: 2rem auto; max-width: 840px; text-align: center; }
.af-imp-events { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin: 2rem auto; max-width: 1080px; }
.af-imp-event, .af-imp-section { border: 1px solid var(--af-imp-border); border-radius: .7rem; padding: clamp(1.1rem, 3vw, 1.65rem); }
.af-imp-event { background: var(--af-imp-surface); text-align: left; }
.af-imp-event h3, .af-imp-section h2 { margin-top: 0; }
.af-imp-event p { margin: .25rem 0; }
.af-imp-event__place a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
.af-imp-funeral-home-presence { background: var(--af-imp-surface); border: 1px solid var(--af-imp-border); border-radius: .7rem; margin: 0; max-width: none; padding: clamp(1.2rem, 3vw, 1.75rem); text-align: left; }
.af-imp-funeral-home-presence h2 { border-bottom: 1px solid var(--af-imp-border); color: var(--af-imp-primary); font-size: clamp(1.65rem, 3vw, 2rem); font-weight: 400; line-height: 1.2; margin: 0 0 1.1rem; padding-bottom: .55rem; }
.af-imp-funeral-home-presence p { margin: .35rem 0; }
.af-imp-funeral-home-presence__resting { color: var(--af-imp-ink); font-size: 1.05rem; }
.af-imp-funeral-home-presence__contacts { margin-top: .8rem !important; }
.af-imp-funeral-home-presence__contacts a { color: var(--af-imp-primary); font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.af-imp-section { margin: 1.5rem auto; max-width: 1080px; }
.af-imp-social { text-align: center; }
.af-imp-social__links { display: flex; flex-wrap: wrap; gap: .7rem; justify-content: center; }
.af-imp-social__links a { border: 1px solid var(--af-imp-border); border-radius: 999px; min-width: 7rem; padding: .38rem .8rem; text-decoration: none; }
.af-imp-service-tabs { margin: 2rem auto; max-width: 1080px; }
.af-imp-tabs__list { display: flex; gap: .65rem; overflow-x: auto; padding-bottom: .75rem; scrollbar-width: thin; }
.af-imp-tabs__tab { background: var(--af-imp-white); border: 1px solid var(--af-imp-primary); border-radius: .7rem; color: var(--af-imp-primary); cursor: pointer; flex: 1 0 max-content; font: inherit; font-weight: 750; min-height: 3.25rem; padding: .65rem 1rem; }
.af-imp-tabs__tab[aria-selected="true"] { background: color-mix(in srgb, var(--af-imp-primary) 9%, var(--af-imp-white)); border-color: var(--af-imp-primary); color: var(--af-imp-primary); }
.af-imp-tabs__tab:focus-visible { outline: 3px solid color-mix(in srgb, var(--af-imp-primary) 30%, transparent); outline-offset: -3px; }
.af-imp-service-tabs .af-imp-tab-panel { border-radius: .7rem; margin: 0; max-width: none; min-height: 300px; }
.af-imp-tabs--ready .af-imp-tab-panel[hidden] { display: none; }
.af-imp-messages { display: grid; gap: .8rem; margin-bottom: 1.5rem; }
.af-imp-message { background: var(--af-imp-surface); border-left: 3px solid var(--af-imp-primary); margin: 0; padding: 2rem 2.15rem; position: relative; }
.af-imp-message::before, .af-imp-message::after { color: var(--af-imp-primary); font-family: Georgia, serif !important; font-size: 2.4rem; font-weight: 700; line-height: 1; opacity: .7; position: absolute; }
.af-imp-message::before { content: "“"; left: .65rem; top: .45rem; }
.af-imp-message::after { bottom: .15rem; content: "”"; right: .65rem; }
.af-imp-message > p { font-style: italic; }
.af-imp-message footer { color: var(--af-imp-muted); font-weight: 700; }
.af-imp-form__grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.af-imp-check { align-items: flex-start; display: flex !important; font-weight: 400 !important; grid-template-columns: auto 1fr; }
.af-imp-check input { flex: 0 0 auto; min-height: auto; width: auto; }
.af-imp-hp { left: -10000px !important; position: absolute !important; }
.af-imp-form[aria-busy="true"] { opacity: .7; pointer-events: none; }
.af-imp-form__status:empty { display: none; }
.af-imp-form__status[data-state="error"], .af-imp-error { color: #a12622; }
.af-imp-flower-countdown { background: #f6fbf6; border: 1px solid #d8e6d8; border-radius: .55rem; color: #276035; padding: .85rem 1rem; }
.af-imp-flower-delivery-options { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
.af-imp-flower-delivery-choice { background: var(--af-imp-white); border: 1px solid var(--af-imp-primary); border-radius: .7rem; color: var(--af-imp-primary); cursor: pointer; font: inherit; font-weight: 750; padding: .7rem .9rem; }
.af-imp-flower-delivery-choice.is-active { background: color-mix(in srgb, var(--af-imp-primary) 9%, var(--af-imp-white)); color: var(--af-imp-primary); }
.af-imp-stripe-card { border: 1px solid var(--af-imp-border); border-radius: .4rem; margin: 1rem 0; padding: .85rem; }
.af-imp-photo-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin-bottom: 1.5rem; }
.af-imp-photo-grid figure { margin: 0; }
.af-imp-photo-grid__open { background: none; border: 0; cursor: zoom-in; display: block; padding: 0; width: 100%; }
.af-imp [data-af-imp-photo-open] { cursor: zoom-in; }
.af-imp-photo-grid img { aspect-ratio: 1; border-radius: .4rem; display: block; object-fit: cover; width: 100%; }
.af-imp-photo-grid figcaption { color: var(--af-imp-muted); font-size: .82rem; line-height: 1.35; padding-top: .35rem; }
.af-imp-photo-modal { align-items: center; display: grid; inset: 0; justify-items: center; padding: clamp(1rem, 4vw, 3rem); position: fixed; z-index: 1000; }
.af-imp-photo-modal[hidden] { display: none; }
.af-imp-photo-modal__backdrop { background: rgba(20, 17, 15, .78); border: 0; inset: 0; position: absolute; width: 100%; }
.af-imp-photo-modal__dialog { background: var(--af-imp-white); border-radius: .6rem; box-shadow: var(--af-imp-shadow); max-height: 92vh; overflow: auto; padding: .75rem; position: relative; width: min(920px, 100%); z-index: 1; }
.af-imp-photo-modal__dialog img { display: block; height: auto; margin: 0 auto; max-height: calc(92vh - 5rem); max-width: 100%; object-fit: contain; width: auto; }
.af-imp-photo-modal__dialog p { color: var(--af-imp-muted); margin: .6rem .25rem .1rem; text-align: center; }
.af-imp-photo-modal__dialog p:empty { display: none; }
.af-imp-photo-modal__close { align-items: center; background: var(--af-imp-white); border: 1px solid var(--af-imp-primary); border-radius: 50%; color: var(--af-imp-primary); cursor: pointer; display: flex; font-size: 1.25rem; height: 2rem; justify-content: center; position: absolute; right: 1.1rem; top: 1.1rem; width: 2rem; z-index: 2; }
.af-imp-help, .af-imp-powered, .af-imp-company { color: var(--af-imp-muted); font-size: .92rem; }
.af-imp-powered, .af-imp-company { text-align: center; }

/* Result cards: information hierarchy and actions follow the Fabello-style reference. */
[data-af-imp-component="announcements"] .af-imp-card { border-radius: 1.1rem; display: flex; flex-direction: column; }
[data-af-imp-component="announcements"] .af-imp-card__media { background: var(--af-imp-surface); color: inherit; display: block; overflow: hidden; text-decoration: none; }
[data-af-imp-component="announcements"] .af-imp-card__photo { aspect-ratio: 4 / 5; filter: grayscale(.12) saturate(.88); }
[data-af-imp-component="announcements"] .af-imp-card__body { align-items: stretch; flex: 1 1 auto; gap: 0; min-height: 0; padding: 1.35rem 1.35rem 1.1rem; text-align: left; }
[data-af-imp-component="announcements"] .af-imp-card__place { align-items: center; color: var(--af-imp-primary); display: flex; font-size: .82rem; font-weight: 800; gap: .35rem; letter-spacing: .08em; margin: 0 0 .75rem; }
[data-af-imp-component="announcements"] .af-imp-card__place svg { fill: currentColor; flex: 0 0 auto; height: 1rem; width: 1rem; }
[data-af-imp-component="announcements"] .af-imp-card__name { font-size: clamp(1.2rem, 1.8vw, 1.42rem); margin: 0 0 .75rem; text-transform: uppercase; }
[data-af-imp-component="announcements"] .af-imp-card__name a { color: var(--af-imp-ink); text-decoration: none; }
[data-af-imp-component="announcements"] .af-imp-card__age { align-items: center; border-bottom: 1px solid var(--af-imp-border); display: flex; font-size: .98rem; font-weight: 400; justify-content: space-between; margin: 0; padding: 0 0 .7rem; width: 100%; }
[data-af-imp-component="announcements"] .af-imp-card__services { display: grid; gap: .7rem; margin-top: 1.1rem; min-height: 4.9rem; }
[data-af-imp-component="announcements"] .af-imp-card__services p { align-items: flex-start; display: grid; font-size: .9rem; gap: .55rem; grid-template-columns: 1rem 1fr; line-height: 1.45; margin: 0; }
[data-af-imp-component="announcements"] .af-imp-card__services a { color: inherit; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: .15em; }
[data-af-imp-component="announcements"] .af-imp-card__service-icon { color: var(--af-imp-primary); font-size: 1rem; font-weight: 800; text-align: center; }
[data-af-imp-component="announcements"] .af-imp-card__footer { background: color-mix(in srgb, var(--af-imp-primary) 7%, var(--af-imp-white)); border-top: 1px solid var(--af-imp-border); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: auto; }
[data-af-imp-component="announcements"] .af-imp-card__footer a { align-items: center; color: var(--af-imp-ink); display: flex; font-size: .8rem; font-weight: 800; justify-content: center; letter-spacing: .035em; min-height: 4.5rem; padding: .75rem; text-align: center; text-decoration: none; text-transform: uppercase; }
[data-af-imp-component="announcements"] .af-imp-card__footer a + a { border-left: 1px solid var(--af-imp-border); color: var(--af-imp-primary); }
[data-af-imp-component="announcements"] .af-imp-card__footer a:hover { background: color-mix(in srgb, var(--af-imp-primary) 10%, transparent); }

/* Announcement header: epigraph/actions on the left, obituary copy on the right. */
.af-imp-detail-hero { align-items: start; display: grid; gap: clamp(2rem, 5vw, 4.25rem); grid-template-columns: minmax(255px, 32%) minmax(0, 1fr); margin: 0 auto 2.5rem; max-width: 1080px; }
.af-imp-detail-hero--without-epigraph { grid-template-columns: minmax(220px, 28%) minmax(0, 1fr); }
.af-imp-detail-hero__media { min-width: 0; }
.af-imp-detail-content > .af-imp-kicker { margin: 0 auto 1.1rem; max-width: 1080px; width: 100%; }
.af-imp-detail-hero__content { color: var(--af-imp-ink); min-width: 0; }
.af-imp-detail-hero__content h1 { font-size: clamp(2.5rem, 6vw, 4.6rem); line-height: 1; margin: .2rem 0 1rem; text-wrap: balance; }
.af-imp-detail-hero__content .af-imp-opening { color: var(--af-imp-ink); font-style: italic; margin-bottom: .25rem; }
.af-imp-detail-hero__content .af-imp-opening * { color: inherit !important; }
.af-imp-detail-hero__content blockquote { border: 0; font-style: italic; margin: 1.2rem 0; padding: 0; }
.af-imp-detail-hero .af-imp-epigraph { margin: 0; max-width: none; }
.af-imp-detail-hero .af-imp-epigraph > a { border-radius: 1.6rem; overflow: hidden; padding: clamp(.45rem, 1vw, .75rem); }
.af-imp-detail-hero .af-imp-epigraph__image { border-radius: 1.15rem; }
.af-imp-person-summary { align-items: center; display: flex; gap: 1rem; margin: .75rem 0 1rem; }
.af-imp-person-summary img { aspect-ratio: 4 / 5; border-radius: .2rem; height: 92px; object-fit: cover; width: 74px; }
.af-imp-person-summary__photo-link { display: block; flex: 0 0 auto; }
.af-imp-person-summary__photo-link img { display: block; transition: box-shadow .2s ease, transform .2s ease; }
.af-imp-person-summary__photo-link:hover img { box-shadow: 0 8px 22px rgba(42, 34, 29, .18); transform: translateY(-1px); }
.af-imp-person-summary--without-photo { min-height: 0; }
.af-imp-person-summary .af-imp-detail-heading__age { margin: 0; }
.af-imp-detail-hero .af-imp-obituary__text { color: var(--af-imp-ink); font-size: 1rem; line-height: 1.4; margin: 1rem 0; max-width: none; text-align: left; }
.af-imp-detail-hero .af-imp-obituary__text * { color: inherit !important; }
.af-imp-detail-hero .af-imp-obituary__text p { margin: 0 0 .45rem; }
.af-imp-detail-hero .af-imp-obituary__text p:empty { display: none; }
.af-imp-detail-hero .af-imp-obituary__meta { font-size: .92rem; margin-top: 1rem; }
.af-imp-detail-hero .af-imp-actions { gap: 1rem; grid-template-columns: 1fr; margin: 1.5rem 0 0; max-width: none; }
.af-imp-action { gap: .5rem; }
.af-imp-action svg { fill: currentColor; flex: 0 0 auto; height: 1.05rem; width: 1.05rem; }
.af-imp-action[aria-pressed="true"] { background: var(--af-imp-white); color: var(--af-imp-primary); transform: none; }
.af-imp-action:hover { background: var(--af-imp-surface); color: var(--af-imp-primary); transform: translateY(-1px); }
.af-imp-detail-content > .af-imp-events { margin-top: 1.25rem; }
.af-imp-obituary__closing { color: var(--af-imp-ink); }
.af-imp-obituary__closing * { color: inherit !important; }
.af-imp-messages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.af-imp-message { font-size: .88rem; line-height: 1.55; }

.af-imp-streaming { max-width: 960px; }
.af-imp-streaming__player { background: #111; border-radius: .6rem; overflow: hidden; position: relative; }
.af-imp-streaming__player iframe, .af-imp-streaming__player video { aspect-ratio: 16 / 9; border: 0; display: block; height: auto; width: 100%; }
.af-imp-streaming__player p { background: var(--af-imp-white); margin: 0; padding: .6rem; }
.af-imp-streaming__poster { align-items: center; background-color: #25211f; background-position: center; background-size: cover; border-radius: .6rem; color: var(--af-imp-white); display: flex; justify-content: center; min-height: min(56vw, 520px); padding: 2rem; position: relative; text-align: center; }
.af-imp-streaming__poster::before { background: rgba(0, 0, 0, .45); border-radius: inherit; content: ""; inset: 0; position: absolute; }
.af-imp-streaming__poster p { font-size: 1.3rem; font-weight: 700; position: relative; }
.af-imp-streaming__locked { background: var(--af-imp-surface); border-radius: .6rem; margin-inline: auto; max-width: 520px; padding: 2rem; }

@media (max-width: 1020px) {
  .af-imp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .af-imp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .af-imp-obituary { grid-template-columns: minmax(180px, 36%) 1fr; }
  .af-imp-detail-hero, .af-imp-detail-hero--without-epigraph { grid-template-columns: minmax(220px, 38%) minmax(0, 1fr); }
}

@media (max-width: 580px) {
  .af-imp { padding-inline: .5rem; }
  .af-imp-search-panel__row { align-items: stretch; flex-direction: column; }
  .af-imp-search-panel__row .af-imp-button { width: 100%; }
  .af-imp-advanced__fields, .af-imp-grid, .af-imp-form__grid, .af-imp-obituary { grid-template-columns: 1fr; }
  .af-imp--compact .af-imp-grid, .af-imp-module--compact .af-imp-grid { grid-template-columns: 1fr; }
  .af-imp-obituary { text-align: center; }
  .af-imp-obituary__photo { margin-inline: auto; max-width: 300px; }
  .af-imp-obituary blockquote { text-align: left; }
  .af-imp-actions { grid-template-columns: 1fr; }
  .af-imp-detail-hero, .af-imp-detail-hero--without-epigraph { grid-template-columns: 1fr; }
  .af-imp-detail-hero__media { margin-inline: auto; max-width: 360px; padding-top: 0; width: 100%; }
  .af-imp-detail-hero__content h1 { font-size: clamp(2.35rem, 13vw, 3.75rem); }
  .af-imp-messages { grid-template-columns: 1fr; }
  .af-imp-card__body { min-height: 185px; }
  .af-imp-epigraph-sheet { min-height: 0; padding: 1.5rem 1.1rem; }
  .af-imp-epigraph-sheet__top { grid-template-columns: 90px 1fr; min-height: 112px; }
  .af-imp-epigraph-sheet__ornament { display: none; }
  .af-imp-epigraph-sheet__meta { font-size: .76rem; }
  .af-imp-tabs__tab { flex-grow: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .af-imp * { scroll-behavior: auto !important; transition: none !important; }
}
