/* Shared editor and public presentation. No external fonts or remote assets. */
html { scroll-padding-top: 2rem; }
body { overflow-wrap: break-word; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--elthian-focus, var(--wp--preset--color--accent)); outline-offset: 4px; }
a { text-underline-offset: .18em; }
:where(.wp-block-navigation, .wp-block-buttons) a { min-height: 24px; }
.wp-block-navigation .wp-block-navigation-item__content { padding-block: .5rem; }
.wp-block-site-title a { text-decoration: none; }
:where([class*="elthian-slot-"]) { scroll-margin-top: 2rem; }
.elthian-slot-facts, .elthian-slot-next-step { padding: var(--wp--custom--elthian--panel-padding, clamp(1.25rem, 4vw, 2.5rem)); border: var(--wp--custom--elthian--rule-width, 1px) solid var(--wp--preset--color--border, var(--wp--preset--color--muted)); border-radius: var(--wp--custom--elthian--radius, .5rem); }
.elthian-slot-facts { background: var(--wp--preset--color--surface); }
.wp-block-details { border-block-end: 1px solid var(--wp--preset--color--border, var(--wp--preset--color--muted)); padding-block: 1rem; }
.wp-block-details summary { font-weight: 600; cursor: pointer; }
.wp-block-table { overflow-x: auto; }
.wp-block-table th, .wp-block-table td { padding: .8rem; vertical-align: top; }
.wp-block-image img { max-width: 100%; height: auto; }
.elthian-site-footer { border-top: 1px solid var(--wp--preset--color--border, var(--wp--preset--color--muted)); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
@media (max-width: 480px) { .wp-block-navigation { width: 100%; } .wp-block-navigation__container { row-gap: .25rem; } }

/* Semantic tokens keep every supplied palette coherent across the whole theme. */
.elthian-panel { border: var(--wp--custom--elthian--rule-width, 1px) solid var(--wp--preset--color--border, var(--wp--preset--color--muted)); border-radius: var(--wp--custom--elthian--radius, .5rem); padding: var(--wp--custom--elthian--panel-padding, 1.5rem); }
.elthian-eyebrow { font-size: var(--wp--preset--font-size--small); font-family: var(--wp--preset--font-family--system); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.elthian-hero { padding-block: var(--wp--preset--spacing--50); }
.wp-block-table:not(.is-style-stripes) table:not(.has-border-color):not([style*="border-"]) :is(th, td, thead, tfoot) { border-color: var(--wp--preset--color--border, var(--wp--preset--color--muted)); }
:where(input, select, textarea) { color: var(--wp--preset--color--contrast); background-color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--border, var(--wp--preset--color--muted)); }

.wp-block-group.has-accent-background-color { --elthian-focus: var(--wp--preset--color--on-accent, var(--wp--preset--color--base, #ffffff)); }
.wp-block-group:is(.has-base-background-color, .has-surface-background-color) { --elthian-focus: var(--wp--preset--color--accent); }

.elthian-panel.has-accent-background-color { border-width: 0; }

/* V1 owner palettes may retain only five tokens. Preserve their saved values. */
.has-on-accent-color { color: var(--wp--preset--color--on-accent, var(--wp--preset--color--base, #ffffff)) !important; }
:where(input, textarea)::placeholder { color: var(--wp--preset--color--muted); opacity: 1; }

/* Core Search owns its layout; align its default boundaries and keyboard ring. */
.wp-block-search .wp-block-search__input:not(.has-border-color),
.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper:not(.has-border-color) { border-color: var(--wp--preset--color--border, var(--wp--preset--color--muted)); }
.wp-block-search .wp-block-search__input:focus-visible { outline: 3px solid var(--elthian-focus, var(--wp--preset--color--accent)); outline-offset: 4px; }

.wp-block-search .wp-block-search__button:not(.has-border-color) { border-width: 0; }
.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper:not(.has-background) { background-color: var(--wp--preset--color--base); }
.wp-block-table.is-style-stripes:not(.has-border-color) { border-bottom-color: var(--wp--preset--color--border, var(--wp--preset--color--muted)); }
.wp-block-table.is-style-stripes table:not(.has-background) tbody tr:nth-child(odd) { background-color: var(--wp--preset--color--surface); }

/* A mobile-only outer gutter; native root padding avoids nested doubling. */
@media (max-width: 600px) { :root { --elthian-mobile-gutter: 1.25rem; } }
