/* Narrow integration rules; approved Concept A foundations remain unchanged. */
.topic-description p { margin: 0; }
.resource-grid .topic-card { border: 0; }
.article-hero .topic-image { position: relative; aspect-ratio: 16 / 8; }
.article-hero .topic-image img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; aspect-ratio: auto; object-fit: cover; }
.reading-copy > section { margin-block: 40px; }
.reading-copy > section:first-child { margin-top: 0; }
.native-pagination { display: flex; gap: 20px; justify-content: center; margin: 48px 0; }
.native-pagination:empty { display: none; }
.topic-grid > #dle-content { display: contents; }
.trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.request-status { max-width: 65ch; min-height: 3em; }
.field-error { display: block; color: #8a351f; min-height: 1.5em; font-size: 14px; }
.form-panel .field [aria-invalid="true"] { border: 1px solid #879487; box-shadow: none; }
.editorial-system .form-panel .field :is(input,select,textarea):focus {
 outline: 2px solid var(--accent,#254f40); outline-offset: 2px; box-shadow: none;
}
.form-panel { max-width: 850px; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.field-wide { grid-column: 1 / -1; }
.field label { display: block; margin-bottom: 8px; }
.field input,.field select,.field textarea { width: 100%; max-width: 100%; min-height: 48px; font: inherit; font-size: 16px; color: var(--ink,#233d34); background: transparent; border: 1px solid #879487; border-radius: 0; padding: 12px; }
.field select { white-space: normal; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; }
.brand span { display: inline; }
.site-footer [data-organization-contact] a { display: block; }
@media (max-width:760px) { .form-grid { grid-template-columns: 1fr; } .topic-grid > #dle-content { display: contents; } }

/* Visitor-facing navigation and spacing, layered over the approved foundations. */
[hidden] { display: none !important; }
.inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.inline-actions > a { flex: 0 1 auto; }
.editorial-system .site-nav a[aria-current] { text-decoration: none; }
.site-nav a[aria-current]::after, .site-nav a[data-current-section]::after { transform: scaleX(1); }
.site-nav a:focus-visible, .services-toggle:focus-visible, .footer-service-group summary:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.services-menu { position: relative; }
.services-menu-heading { display: flex; align-items: center; gap: 2px; }
.services-toggle { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; padding: 0; color: inherit; background: transparent; border: 0; cursor: pointer; }
.services-toggle svg { transition: transform .2s ease; }
.services-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.services-submenu { position: absolute; top: calc(100% + 12px); left: -24px; width: 320px; padding: 16px 24px; border: 1px solid var(--line,#d3d6c9); background: var(--paper,#f7f5ef); z-index: 30; }
.site-nav .services-submenu a { display: flex; align-items: center; min-height: 48px; padding: 10px 0; white-space: normal; font-size: 15px; line-height: 1.5; }
.site-nav .services-submenu a::after { bottom: 7px; }
.contact-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: clamp(40px,7vw,100px); }
[data-organization-contact] { display: grid; gap: 24px; }
.contact-item { min-width: 0; }
.contact-label { display: block; margin-bottom: 6px; font-size: 12px; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
[data-organization-contact] a { display: inline-block; max-width: 100%; overflow-wrap: anywhere; line-height: 1.65; }
[data-organization-contact] address { font-style: normal; line-height: 1.65; }
.contact-info h2 { margin-bottom: 36px; }
.contact-info .fine-print { margin-top: 32px; max-width: 46ch; }
.contact-grid .form-panel { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; width: 100%; padding: clamp(28px,3vw,48px); }
.contact-grid .form-panel h2, .contact-grid .form-panel p { margin: 0; }
.contact-grid .form-panel h2 { line-height: 1.12; }
.contact-grid .form-panel .button { margin: 8px 0 0; }
.breadcrumbs { display: block; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; padding: 0; margin: 0; list-style: none; }
.breadcrumbs li { display: inline-flex; align-items: baseline; gap: 12px; min-width: 0; max-width: 100%; margin: 0; line-height: 1.65; }
.breadcrumbs li + li::before { content: none; }
.breadcrumb-separator { flex: 0 0 auto; color: var(--muted,#5d6b60); }
.breadcrumbs a, .breadcrumbs [aria-current] { min-width: 0; overflow-wrap: anywhere; }
.policy-directory { padding: 0; list-style: none; display: grid; gap: 20px; margin: 40px 0; }
.footer-top { grid-template-columns: 1.15fr 1fr 1.1fr; align-items: start; gap: 64px; }
.footer-heading { font-family: var(--sans,Arial,sans-serif); font-size: 12px; font-weight: 600; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 24px; }
.footer-top nav > a { display: block; width: fit-content; }
.site-footer .contact-label { opacity: .7; }
.site-footer [data-organization-contact] a { display: inline-block; margin: 0; }
.page-shell, .section, .header-inner, .hero-category-links { max-width: 1600px; }
.site-footer { padding-inline: 0; }
.footer-inner { max-width: 1600px; margin-inline: auto; padding-inline: var(--gutter); }
.footer-top { max-width: none; margin: 0; grid-template-columns: 1fr 1fr 1.25fr 1.1fr; gap: 48px; }
.footer-bottom { max-width: none; margin: 0; align-items: flex-start; gap: 24px; }
.footer-categories a { display: block; width: fit-content; line-height: 1.6; margin-bottom: 12px; }
.footer-top nav > a { font-size: 14px; line-height: 1.6; margin-bottom: 10px; }
.footer-bottom nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 24px; max-width: 75%; }
@media (min-width:761px) and (max-width:1100px) {
 .site-nav { gap: 16px; }
 .site-nav > a, .services-menu-heading > a { font-size: 14px; }
 .header-inner { gap: 16px; }
 .header-cta { font-size: 12px; padding-inline: 14px; }
 .footer-top { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
}
@media (max-width:760px) {
 .inline-actions { gap: 16px; }
 .site-nav .services-menu { width: 100%; }
 .services-menu-heading { justify-content: space-between; }
 .site-nav .services-menu-heading > a { flex: 1; }
 .site-nav a[data-current-section] { font-weight: 600; }
 .services-submenu { position: static; width: 100%; margin: 8px 0; padding: 8px 0 8px 18px; border: 0; border-left: 1px solid var(--line,#d3d6c9); background: transparent; }
 .site-nav .services-submenu a { font-size: 15px; }
 .contact-grid { grid-template-columns: minmax(0,1fr); gap: 48px; }
 .contact-grid .form-panel { gap: 24px; padding: 28px 24px; }
 .contact-info h2 { margin-bottom: 28px; }
 .breadcrumbs ol { gap: 6px 10px; }
 .breadcrumbs li { gap: 10px; font-size: 13px; }
 .footer-top { grid-template-columns: minmax(0,1fr); gap: 40px; }
 .footer-bottom { flex-direction: column; padding-top: 28px; }
 .footer-bottom nav { justify-content: flex-start; max-width: 100%; gap: 16px 24px; }
}
@media (prefers-reduced-motion:reduce) { .services-toggle svg { transition: none; } }

/* Protected management reuses the selected design without changing public layouts. */
.inquiry-management h3 { margin-block: 32px 20px; overflow-wrap: anywhere; }
.inquiry-details { display: grid; grid-template-columns: minmax(120px,.7fr) minmax(0,1.3fr); gap: 16px 24px; margin-block: 32px; }
.inquiry-details dt { font-size: 13px; color: var(--muted); }
.inquiry-details dd { margin: 0; overflow-wrap: anywhere; }
.inquiry-list { list-style: none; padding: 0; }
.inquiry-list > li { padding-block: 24px; border-bottom: 1px solid var(--line); }
.inquiry-list p { font-size: 13px; margin-top: 12px; }
#consultation-request { margin-top: 28px; }
#consultation-request > .fine-print { margin-block: 24px; }
.consent-field { margin-block: 24px; }
.policy-consent { display: flex; align-items: flex-start; gap: 12px; }
.form-panel .policy-consent input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; min-height: 20px; margin: 4px 0 0; padding: 0; accent-color: var(--accent,#254f40); cursor: pointer; }
.policy-consent label { margin: 0; font-size: 14px; line-height: 1.7; cursor: pointer; }
.policy-consent a { text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:760px) { .inquiry-details { grid-template-columns: minmax(0,1fr); gap: 6px; } .inquiry-details dd { margin-bottom: 20px; } }

/* Restrained reveals never move layout or gate access to content. */
.page-heading h1,.section-heading h2,.intro h2,.contact-info h2,.reading-copy section h2 {
 transition: opacity .5s ease, transform .5s ease;
}
.reveal-pending { opacity: .12; transform: translateY(12px); }
@media (prefers-reduced-motion:reduce) {
 .reveal-pending { opacity: 1; transform: none; }
 .editorial-system *, .editorial-system *::before, .editorial-system *::after {
  animation: none !important; transition: none !important; scroll-behavior: auto !important;
 }
}
@media print { .reveal-pending { opacity: 1; transform: none; } }

/* Owner-authorized portrait introduction; all rules stay within this section. */
.owner-introduction.section { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: center; gap: clamp(32px,6vw,88px); padding-block: clamp(48px,6vw,80px); border-top: 1px solid var(--line); }
.owner-introduction-photo { margin: 0; min-width: 0; }
.owner-introduction-photo img { display: block; width: 100%; height: auto; aspect-ratio: 900 / 715; object-fit: cover; }
.owner-introduction-copy { min-width: 0; max-width: 55ch; }
.owner-introduction-copy .eyebrow { margin-bottom: 20px; }
.owner-introduction-copy h2 { font-size: clamp(32px,3.3vw,48px); line-height: 1.12; margin: 0 0 24px; }
.owner-introduction-copy > p:not(.eyebrow):not(.owner-introduction-name) { font-size: 16px; line-height: 1.8; margin: 0 0 16px; color: var(--muted); }
.owner-introduction-copy .owner-introduction-name { margin: 24px 0 16px; font-size: 16px; line-height: 1.6; font-weight: 600; }
.owner-introduction-name span { display: block; font-size: 12px; font-weight: 400; color: var(--muted); }
.owner-introduction-copy .text-link { margin-top: 8px; }
@media (max-width:760px) {
 .owner-introduction.section { grid-template-columns: minmax(0,1fr); gap: 28px; padding-block: 48px; }
 .owner-introduction-photo { width: 100%; max-width: 480px; }
 .owner-introduction-copy h2 { font-size: clamp(32px,7vw,42px); }
 .owner-introduction-copy > p:not(.eyebrow):not(.owner-introduction-name) { font-size: 15px; }
}
