/* Shared interaction details for the consolidated site. */
html {
  -webkit-font-smoothing: antialiased;
}

/* Explicit editorial breaks in the hero and section titles stay intact. */
.reference-row h3,
.story-text h3 {
  text-wrap: balance;
}
.reference-row article p,
.story-text p,
.conversation-strip p:not(.lower-label),
.faq-lead,
.faq-list details p {
  text-wrap: pretty;
}

.story-photo img,
.family-photo img {
  outline: 1px solid oklch(0 0 0 / 0.1);
  outline-offset: -1px;
}

.nav-contact,
.contact-link,
.family-section .family-cta,
.faq-contact,
.end-cta,
.end-location > a,
.end-navigation > a,
.end-legal > a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.end-navigation { gap: 8px; }
.family-more summary {
  min-height: 44px;
  align-items: center;
}
.family-slideshow .slide-pause {
  min-height: 44px;
  min-width: 140px;
  background: #fffdf6;
  border: 0;
  box-shadow: 0 0 0 1px #0000001a, 0 2px 5px #0000000d;
}

:is(a, button, summary):focus-visible {
  outline: 2px solid #272821;
  outline-offset: 5px;
}
.presence a:focus-visible {
  outline-color: #f4e8b3;
}
.family-slideshow .slide-pause:focus-visible {
  outline-offset: 3px;
}

.cta,
.family-cta,
.slide-pause {
  transition: background-color 150ms ease-out, scale 150ms ease-out;
}
.cta:active,
.family-cta:active,
.slide-pause:active {
  scale: 0.96;
}
.faq-list summary,
.family-more summary {
  transition: background-color 150ms ease-out;
}
@media (hover: hover) {
  .cta:hover { background-color: #304c40; }
  .family-cta:hover { background-color: #2728210d; }
  .slide-pause:hover { background-color: #f4e8b3; }
  .faq-list summary:hover,
  .family-more summary:hover { background-color: #27282108; }
  :is(.nav-contact, .contact-link, .lower-contact, .faq-contact):hover {
    text-decoration: underline;
    text-underline-offset: 5px;
  }
}

/* A plus becomes a minus without rotating beyond the icon's box. */
.disclosure-icon {
  flex: 0 0 24px;
  align-self: start;
  margin-top: 2px;
}
.family-more summary .disclosure-icon { align-self: center; margin-top: 0; }
details[open] > summary .icon-vertical { visibility: hidden; }

@media (prefers-reduced-motion: reduce) {
  .cta, .family-cta, .slide-pause,
  .faq-list summary, .family-more summary { transition: none; }
  .cta:active, .family-cta:active, .slide-pause:active { scale: none; }
}
