/* Theme structure. Design tokens come from theme.json. */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; overflow-wrap: break-word; }
img { max-width: 100%; height: auto; }
figure { margin-inline: 0; }
a { text-underline-offset: .2em; }
a:hover { text-decoration-thickness: .15em; }
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid var(--wp--preset--color--primary); outline-offset: 4px; }
button, input, textarea, select { font: inherit; }
input:not([type=checkbox]):not([type=radio]), textarea, select { max-width: 100%; padding: .65rem; border: 1px solid var(--wp--preset--color--muted); border-radius: var(--wp--custom--radius--small); }
button, input[type=submit] { cursor: pointer; }
button, input[type=submit], .nav-cta > a { padding: .65rem 1rem; color: var(--wp--preset--color--base); background: var(--wp--preset--color--primary); border: 0; border-radius: var(--wp--custom--radius--small); }
.site-shell { width: min(calc(100% - 2 * var(--wp--preset--spacing--40)), var(--wp--style--global--wide-size)); margin-inline: auto; }
.site-header { border-bottom: 1px solid var(--wp--preset--color--border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-block: 1.25rem; }
.site-name { font-weight: 750; font-size: 1.4rem; text-decoration: none; color: inherit; }
.custom-logo-link { display: inline-block; }
.custom-logo { display: block; width: auto; max-width: 15rem; max-height: 5rem; }
.primary-navigation { width: 100%; }
.primary-menu, .footer-menu { padding: 0; margin: 0; list-style: none; }
.primary-menu a, .footer-menu a { display: inline-block; padding: .6rem .3rem; }
.primary-menu .nav-cta > a, .footer-menu .nav-cta > a { padding: .65rem 1rem; }
.primary-menu .sub-menu { list-style: none; padding-inline-start: 1.25rem; }
.primary-menu [aria-current=page] { font-weight: 750; text-decoration-thickness: .15em; }
.site-main { padding-block: var(--wp--preset--spacing--60); min-height: 55vh; }
.entry-header, .entry-featured, .entry-navigation, .comments-area, .page-links, .entry-content > :where(:not(.alignfull)) { width: min(calc(100% - 2 * var(--wp--preset--spacing--40)), var(--wp--style--global--content-size)); margin-inline: auto; }
.entry-content > .alignwide { width: min(calc(100% - 2 * var(--wp--preset--spacing--40)), var(--wp--style--global--wide-size)); }
.entry-content > .alignfull { width: 100%; }
.entry-content > * + * { margin-block-start: var(--wp--preset--spacing--40); }
.entry-content::after { content: ""; display: table; clear: both; }
.alignleft { float: left; margin-inline-end: 1.5rem; }
.alignright { float: right; margin-inline-start: 1.5rem; }
.aligncenter { margin-inline: auto; }
.post-grid, .footer-grid { display: grid; gap: var(--wp--preset--spacing--50); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.post-card, .is-style-ym-card { padding: var(--wp--preset--spacing--40); border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius--card); background: var(--wp--preset--color--base); }
.post-card h2 { font-size: var(--wp--preset--font-size--large); }
.post-card time { color: var(--wp--preset--color--muted); font-size: .9rem; }
.card-image { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.site-footer { background: var(--wp--preset--color--surface); padding-block: var(--wp--preset--spacing--50); }
.copyright { border-top: 1px solid var(--wp--preset--color--border); padding-top: 1.5rem; margin-top: 2rem; font-size: .9rem; }
.footer-widget-title { font-size: 1.2rem; }
.navigation { margin-block: 2rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; }
.comment-list { padding-inline-start: 1.5rem; }
.comment-list .children { padding-inline-start: 1rem; }
.comment-body { margin-block: 1.5rem; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); width: 1px; height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; white-space: nowrap; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; width: auto; height: auto; margin: 0; padding: 1rem; background: #fff; color: #142b40; left: 1rem; top: 1rem; z-index: 100000; }
@media (min-width: 48rem) {
	.header-inner { align-items: flex-start; }
	.primary-navigation { width: auto; }
	.primary-menu { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1.25rem; }
}
/* Submenus are deliberately visible, including without JS. */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}
