/* One disclosure control on the public site and in the cabinet.
   Native details/summary keeps keyboard support and the announced open state. */
.local-disclosure {
    --disclosure-title-size: var(--type-control);
    min-width: 0;
}

.local-disclosure > .local-disclosure__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    box-sizing: border-box;
    width: 100%;
    min-height: 64px;
    margin: 0;
    padding: 14px 18px;
    border: 1px solid var(--line-control);
    border-radius: var(--radius-control);
    background: var(--surface);
    color: var(--ink);
    font: 600 var(--disclosure-title-size)/1.4 var(--font-body);
    text-align: left;
    list-style: none;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.local-disclosure > .local-disclosure__summary::marker { content: ""; }
.local-disclosure > .local-disclosure__summary::-webkit-details-marker { display: none; }
.local-disclosure > .local-disclosure__summary::before,
.local-disclosure > .local-disclosure__summary::after { content: none; }

.local-disclosure__title {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}

.local-disclosure__state {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    min-height: 34px;
    width: 116px;
    box-sizing: border-box;
    padding: 5px 9px;
    border: 1px solid var(--line);
    border-radius: var(--radius-detail);
    background: var(--blue);
    color: var(--text);
    font: 550 var(--type-caption)/1.35 var(--font-body);
    white-space: nowrap;
    pointer-events: none;
}

.local-disclosure__icon {
    position: relative;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
}

.local-disclosure__icon::before,
.local-disclosure__icon::after {
    content: "";
    position: absolute;
    border-radius: 1px;
    background: currentColor;
}

.local-disclosure__icon::before { left: 3px; top: 8px; width: 12px; height: 2px; }
.local-disclosure__icon::after { left: 8px; top: 3px; width: 2px; height: 12px; }
.local-disclosure > summary .local-disclosure__opened { display: none; }
.local-disclosure[open] > summary .local-disclosure__closed { display: none; }
.local-disclosure[open] > summary .local-disclosure__opened { display: inline; }
.local-disclosure[open] > summary .local-disclosure__icon::after { opacity: 0; }
.local-disclosure[open] > summary { background: var(--blue); }
.local-disclosure[open] > summary .local-disclosure__state { background: var(--surface); }
.local-disclosure__body { min-width: 0; padding: 16px 4px 4px; }

.local-disclosure > summary:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 3px;
}

@media (hover: hover) {
    .local-disclosure > summary:hover {
        background: var(--blue);
        box-shadow: 0 2px 8px rgb(24 37 44 / .06);
    }
    .local-disclosure > summary:hover .local-disclosure__state {
        border-color: var(--accent-border);
        background: var(--surface);
    }
}

@media (prefers-reduced-motion: no-preference) {
    .local-disclosure > summary { transition: background-color 150ms var(--ease-feedback), box-shadow 150ms var(--ease-feedback); }
    .local-disclosure__state { transition: background-color 150ms var(--ease-feedback), border-color 150ms var(--ease-feedback), transform 150ms var(--ease-feedback); }
    .local-disclosure > summary:active .local-disclosure__state { transform: scale(.96); }
}

/* Context controls density; the interaction and state indicator stay the same. */
.local-toc.local-disclosure { padding: 0; border: 0; background: transparent; }
.local-toc > .local-disclosure__body { padding: 16px 12px 0; }
.local-payment-details > .local-disclosure { --disclosure-title-size: var(--type-subheading); margin-top: 16px; }
.local-payment-details .local-disclosure__body .local-payment-copy { padding-bottom: 8px; }
.cms .field-section.local-disclosure,
.cms .field-section.local-disclosure[open] { padding: 0; border: 0; }
.cms .field-section .local-disclosure__title { display: flex; align-items: center; gap: 12px; }
.cms .local-disclosure .field-index { flex-shrink: 0; }
.cms .local-disclosure__body { padding: 20px 16px 4px; }

@media (max-width: 640px) {
    .local-disclosure > .local-disclosure__summary { gap: 10px; padding: 13px 12px; }
    .local-disclosure__state { width: 110px; padding: 5px 7px; gap: 3px; }
    .local-payment-details > .local-disclosure { --disclosure-title-size: var(--type-body); }
    .local-disclosure__body { padding-inline: 0; }
    .cms .field-section .local-disclosure__title { gap: 8px; }
}

@media (forced-colors: active) {
    .local-disclosure > summary, .local-disclosure__state { border-color: ButtonText; }
    .local-disclosure > summary:focus-visible { outline-color: Highlight; }
}
