/* Listing detail layout. Scoped to the detail page; no global component overrides. */
.sd-detail .page-heading { margin-bottom: 32px; max-width: none; width: 100%; }
.sd-detail-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.sd-detail-heading-text { flex: 1; min-width: 0; }
.sd-detail-heading h1 { font-size: clamp(28px, 3.3vw, 44px); line-height: 1.18; margin: 0 0 14px; overflow-wrap: anywhere; }
.sd-detail-heading .sd-detail-title-link { color: var(--ink); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 5px; }
.sd-detail-heading .sd-detail-title-link:hover, .sd-detail-heading .sd-detail-title-link:focus-visible { color: var(--blue); text-decoration-color: currentColor; }
.sd-detail-categories { font-size: 15px; line-height: 1.6; }
.sd-detail-visit { flex: 0 0 220px; display: flex; flex-direction: column; align-items: stretch; gap: 12px; margin-left: auto; }
.sd-detail-visit .button { min-height: 50px; font-size: 16px; }
.sd-detail-domain { text-align: center; overflow-wrap: anywhere; font-size: 14px; line-height: 1.5; }
.sd-detail-card { padding: 30px; background: var(--paper, #fff); border: 1px solid var(--line); border-radius: var(--radius, 8px); margin-bottom: 24px; }
.sd-detail-section + .sd-detail-section { border-top: 1px solid var(--line); margin-top: 30px; padding-top: 28px; }
.sd-detail-section h2 { font-size: 23px; line-height: 1.35; margin: 0 0 20px; font-weight: 500; }
.sd-detail-description { font-size: 17px; line-height: 1.8; overflow-wrap: anywhere; }
.sd-detail-description p:last-child { margin-bottom: 0; }
.sd-detail-description img { max-width: 100%; height: auto; }
.sd-detail-contact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.sd-detail-contact.has-two-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sd-detail-contact-item { display: flex; gap: 14px; min-width: 0; overflow-wrap: anywhere; }
.sd-detail-contact-item > svg { width: 26px; height: 26px; color: var(--blue); margin-top: 3px; }
.sd-detail-contact.has-two-fields .sd-detail-contact-item + .sd-detail-contact-item { border-left: 1px solid var(--line); padding-left: 28px; }
.sd-detail-contact h3 { font-size: 16px; font-weight: 500; margin: 0 0 7px; }
.sd-detail-contact address, .sd-detail-contact p { font-size: 16px; line-height: 1.7; font-style: normal; margin: 0; }
.sd-detail-pages { list-style: none; padding: 0; margin: 0; }
.sd-detail-pages li + li { margin: 0; border-top: 1px solid var(--line); }
.sd-detail-pages a { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 0; min-height: 48px; font-size: 17px; }
.sd-detail-pages a span { min-width: 0; overflow-wrap: anywhere; }
.sd-detail-pages li:first-child a { padding-top: 4px; }
.sd-detail-pages li:last-child a { padding-bottom: 4px; }
.sd-detail .sd-detail-extras { margin-top: 24px; }
@media (max-width: 700px) {
 .sd-detail-heading { flex-direction: column; align-items: stretch; gap: 22px; }
 .sd-detail-visit { flex-basis: auto; max-width: 100%; margin-left: 0; }
 .sd-detail-visit .button { align-self: flex-start; }
 .sd-detail-domain { text-align: left; }
 .sd-detail-card { padding: 22px; }
 .sd-detail-contact.has-two-fields { grid-template-columns: minmax(0, 1fr); }
 .sd-detail-contact.has-two-fields .sd-detail-contact-item + .sd-detail-contact-item { border-left: 0; padding-left: 0; }
 .sd-detail-section h2 { font-size: 21px; }
}
