/* Base and components. Central values live in tokens.css. */
* { box-sizing: border-box; }
html { scroll-padding-block-start: calc(var(--agape-header-height) + var(--agape-admin-offset) + var(--agape-space-4)); }
body { margin: 0; min-block-size: 100svh; display: flex; flex-direction: column; background: var(--agape-warm); color: var(--agape-ink); font-family: var(--agape-font-sans); font-size: var(--agape-type-base); line-height: var(--agape-leading-body); -webkit-font-smoothing: antialiased; }
a { color: var(--agape-teal); text-underline-offset: var(--agape-space-1); }
a:hover { color: var(--agape-navy); }
img, video { max-inline-size: 100%; block-size: auto; }
iframe { max-inline-size: 100%; }
svg { display: block; flex-shrink: 0; }
input, select, textarea, button { font: inherit; max-inline-size: 100%; }
input, select, textarea { border: var(--agape-border-width) solid var(--agape-line); border-radius: var(--agape-radius-sm); padding: var(--agape-space-3); color: var(--agape-ink); background: var(--agape-white); }
button, input[type="submit"] { cursor: pointer; }
:focus-visible { outline: var(--agape-focus-width) solid var(--agape-blue); outline-offset: var(--agape-focus-offset); }
h1, h2, h3, h4 { color: var(--agape-navy); line-height: var(--agape-leading-heading); letter-spacing: var(--agape-tracking-heading); font-weight: var(--agape-weight-semibold); text-wrap: balance; overflow-wrap: anywhere; }
h1 { font-size: var(--agape-type-h1); margin-block: 0 var(--agape-space-10); }
h2 { font-size: var(--agape-type-h2); margin-block: var(--agape-space-12) var(--agape-space-5); }
h3 { font-size: var(--agape-type-h3); margin-block: var(--agape-space-8) var(--agape-space-4); }
p { margin-block: 0 var(--agape-space-5); }
.container { inline-size: min(var(--agape-container-width), calc(100% - 2 * var(--agape-gutter))); margin-inline: auto; }
.content-section { flex: 1; padding-block: var(--agape-section-space); min-inline-size: 0; }
.content-card { margin-block-end: var(--agape-space-10); }
.content-card:last-child { margin-block-end: 0; }
.entry-content, .entry-summary { overflow-wrap: anywhere; }
.entry-content > :not(.alignwide):not(.alignfull) { max-inline-size: var(--agape-content-width); }
.entry-content > :first-child { margin-block-start: 0; }
.entry-content table { display: block; max-inline-size: 100%; overflow-x: auto; }
.entry-content blockquote { margin-inline: 0; padding-inline-start: var(--agape-space-6); border-inline-start: var(--agape-focus-width) solid var(--agape-teal); color: var(--agape-navy); font-size: var(--agape-type-lg); }
.entry-content .wp-block-separator { color: var(--agape-line); margin-block: var(--agape-space-10); }
:where(.agape-button, .wp-element-button, .wp-block-button__link, input[type="submit"]), a.agape-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--agape-space-2); min-block-size: var(--agape-touch-target); padding: var(--agape-space-3) var(--agape-space-6); border: var(--agape-border-width) solid var(--agape-teal); border-radius: var(--agape-radius-sm); background: var(--agape-teal); color: var(--agape-white); font-size: var(--agape-type-base); font-weight: var(--agape-weight-semibold); line-height: var(--agape-leading-ui); text-decoration: none; transition: background-color var(--agape-duration-fast) var(--agape-ease), border-color var(--agape-duration-fast) var(--agape-ease); }
:where(.agape-button, .wp-element-button, .wp-block-button__link, input[type="submit"]):hover, a.agape-button:hover { background: var(--agape-navy); border-color: var(--agape-navy); color: var(--agape-white); }
.agape-button--outline, a.agape-button--outline, .is-style-outline .wp-block-button__link { background: transparent; color: var(--agape-teal); }
.skip-link { position: fixed; inset-block-start: calc(var(--agape-admin-offset) + var(--agape-space-2)); inset-inline-start: var(--agape-space-4); transform: translateY(-200%); padding: var(--agape-space-3) var(--agape-space-5); border-radius: var(--agape-radius-sm); background: var(--agape-white); color: var(--agape-navy); z-index: var(--agape-layer-skip); box-shadow: var(--agape-shadow-menu); }
.skip-link:focus { transform: translateY(0); }

/* Header: a stable 80 px row including while sticky. */
.site-header { position: sticky; inset-block-start: var(--agape-admin-offset); z-index: var(--agape-layer-header); background: var(--agape-white); border-block-end: var(--agape-border-width) solid var(--agape-line); box-shadow: var(--agape-shadow-header); }
.header-layout { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: var(--agape-space-8); min-block-size: calc(var(--agape-header-height) - var(--agape-border-width)); }
.header-panel { display: contents; }
.header-panel[hidden], .menu-toggle[hidden] { display: none; }
.site-brand { min-inline-size: 0; }
.brand-link, .site-brand .custom-logo-link { display: inline-flex; align-items: center; gap: var(--agape-space-3); color: var(--agape-navy); text-decoration: none; vertical-align: middle; }
.brand-mark { inline-size: var(--agape-brand-mark-size); block-size: var(--agape-brand-mark-size); color: var(--agape-teal); }
.brand-wordmark { display: flex; flex-direction: column; gap: var(--agape-space-1); font-size: var(--agape-type-lg); font-weight: var(--agape-weight-bold); line-height: 1; letter-spacing: var(--agape-tracking-label); }
.brand-wordmark span:last-child { font-size: var(--agape-type-xs); font-weight: var(--agape-weight-medium); letter-spacing: 0.19em; }
.site-brand .custom-logo { inline-size: auto; max-inline-size: 11.5rem; max-block-size: var(--agape-space-12); object-fit: contain; }
.primary-navigation { justify-self: center; min-inline-size: 0; }
.navigation-list { padding: 0; margin: 0; list-style: none; }
.primary-menu { display: flex; align-items: center; gap: var(--agape-nav-gap); }
.primary-menu a { position: relative; display: inline-flex; align-items: center; min-block-size: var(--agape-touch-target); padding-block: var(--agape-space-2); color: var(--agape-ink); font-size: var(--agape-type-sm); font-weight: var(--agape-weight-medium); line-height: var(--agape-leading-ui); white-space: nowrap; text-decoration: none; transition: color var(--agape-duration-fast) var(--agape-ease); }
.primary-menu a::after { content: ""; position: absolute; inset-inline: 0; inset-block-end: var(--agape-space-1); block-size: 2px; background: var(--agape-teal); transform: scaleX(0); transform-origin: left; transition: transform var(--agape-duration-fast) var(--agape-ease); }
.primary-menu a:hover, .primary-menu .current-menu-item > a, .primary-menu .current_page_item > a { color: var(--agape-teal); }
.primary-menu a:hover::after, .primary-menu a:focus-visible::after, .primary-menu .current-menu-item > a::after, .primary-menu .current_page_item > a::after { transform: scaleX(1); }
.menu-toggle { display: none; align-items: center; justify-content: center; gap: var(--agape-space-2); min-block-size: var(--agape-touch-target); padding: var(--agape-space-2) var(--agape-space-3); border: var(--agape-border-width) solid var(--agape-line); border-radius: var(--agape-radius-sm); background: var(--agape-white); color: var(--agape-navy); font-size: var(--agape-type-sm); line-height: var(--agape-leading-ui); }
.menu-toggle:hover, .menu-toggle[aria-expanded="true"] { background: var(--agape-soft-teal); border-color: var(--agape-teal); }
.menu-toggle svg { inline-size: var(--agape-icon-size); block-size: var(--agape-icon-size); }
.menu-toggle__close { display: none; }
.is-menu-open .menu-toggle__open { display: none; }
.is-menu-open .menu-toggle__close { display: block; }

/* Native disclosure: only available language variants become links. */
.language-switcher { position: relative; justify-self: end; font-size: var(--agape-type-sm); line-height: var(--agape-leading-ui); }
.language-switcher__trigger { display: flex; align-items: center; justify-content: center; gap: var(--agape-space-2); min-block-size: var(--agape-touch-target); padding: var(--agape-space-2) var(--agape-space-3); border: var(--agape-border-width) solid var(--agape-line); border-radius: var(--agape-radius-pill); color: var(--agape-navy); font-weight: var(--agape-weight-semibold); cursor: pointer; list-style: none; transition: border-color var(--agape-duration-fast) var(--agape-ease), background-color var(--agape-duration-fast) var(--agape-ease); }
.language-switcher__trigger::-webkit-details-marker { display: none; }
.language-switcher__trigger::marker { content: ""; }
.language-switcher__trigger:hover, .language-switcher[open] .language-switcher__trigger { background: var(--agape-soft-teal); border-color: var(--agape-teal); }
.language-switcher__trigger svg { inline-size: var(--agape-icon-size); block-size: var(--agape-icon-size); }
.language-switcher__chevron { transition: transform var(--agape-duration-fast) var(--agape-ease); }
.language-switcher[open] .language-switcher__chevron { transform: rotate(180deg); }
.language-switcher__menu { position: absolute; inset-block-start: calc(100% + var(--agape-space-3)); inset-inline-end: 0; z-index: var(--agape-layer-menu); inline-size: var(--agape-language-width); max-inline-size: calc(100vw - 2 * var(--agape-gutter)); padding: var(--agape-space-2); margin: 0; list-style: none; border: var(--agape-border-width) solid var(--agape-line); border-radius: var(--agape-radius-md); background: var(--agape-white); box-shadow: var(--agape-shadow-menu); }
.language-switcher__menu li > :where(a, span) { display: flex; flex-direction: column; gap: var(--agape-space-1); min-block-size: var(--agape-touch-target); padding: var(--agape-space-3); border-radius: var(--agape-radius-sm); color: var(--agape-ink); text-decoration: none; }
.language-switcher__menu li.is-current > :where(a, span) { background: var(--agape-soft-teal); color: var(--agape-teal); }
.language-switcher__menu a:hover { background: var(--agape-warm); }
.language-switcher__name { font-weight: var(--agape-weight-medium); }
.language-switcher__state { color: var(--agape-muted); font-size: var(--agape-type-xs); font-weight: 400; }
.language-switcher__label, .screen-reader-text { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Footer: an editorial grid with separate legal and copyright areas. */
.site-footer { margin-block-start: auto; background: var(--agape-navy); color: var(--agape-white); font-size: var(--agape-type-base); }
.footer-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 0.7fr); gap: var(--agape-space-12); padding-block: var(--agape-space-16) var(--agape-space-12); }
.footer-brand .brand-link { color: var(--agape-white); }
.footer-brand .brand-mark { color: var(--agape-turquoise); }
.footer-brand .brand-wordmark { font-size: var(--agape-type-xl); }
.footer-brand .brand-wordmark span:last-child { font-size: var(--agape-type-sm); }
.footer-brand p { max-inline-size: 27rem; color: var(--agape-footer-muted); margin-block: var(--agape-space-6) 0; }
.site-footer h2, .site-footer h3 { color: var(--agape-white); font-size: var(--agape-type-sm); font-weight: var(--agape-weight-semibold); letter-spacing: var(--agape-tracking-label); line-height: var(--agape-leading-ui); margin-block: 0 var(--agape-space-5); }
.site-footer .navigation-list { display: grid; grid-template-columns: 1fr; gap: var(--agape-space-1); }
.site-footer .footer-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--agape-space-4); }
.site-footer a:not(.brand-link) { display: inline-flex; align-items: center; min-block-size: var(--agape-touch-target); padding-block: var(--agape-space-2); color: var(--agape-footer-muted); text-decoration: none; line-height: var(--agape-leading-ui); transition: color var(--agape-duration-fast) var(--agape-ease); }
.site-footer a:not(.brand-link):hover { color: var(--agape-white); text-decoration: underline; }
.site-footer :focus-visible { outline-color: var(--agape-turquoise); }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--agape-space-4); padding-block: var(--agape-space-5); border-block-start: var(--agape-border-width) solid var(--agape-footer-line); color: var(--agape-footer-muted); font-size: var(--agape-type-sm); }
.footer-bottom p { margin: 0; }
:root:has(body.admin-bar), .admin-bar { --agape-admin-offset: 32px; }
.admin-bar #wpadminbar { position: fixed; }

@media (max-width: 1100px) {
	/* Expanded fallback navigation must scroll away rather than cover anchor targets. */
	.site-header:not(.is-enhanced) { position: static; }
	.header-layout { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--agape-space-4); }
	.site-brand { display: flex; align-items: center; min-block-size: calc(var(--agape-header-height) - var(--agape-border-width)); }
	.is-enhanced .menu-toggle { display: inline-flex; justify-self: end; }
	.header-panel { display: block; grid-column: 1 / -1; padding-block: var(--agape-space-4) var(--agape-space-6); border-block-start: var(--agape-border-width) solid var(--agape-line); max-block-size: calc(100dvh - var(--agape-header-height) - var(--agape-admin-offset)); overflow-y: auto; }
	.is-menu-open .header-panel { animation: agape-panel-in var(--agape-duration-panel) var(--agape-ease); }
	.primary-menu { display: grid; gap: var(--agape-space-1); }
	.primary-navigation { justify-self: stretch; inline-size: 100%; }
	.primary-menu a { display: flex; min-block-size: var(--agape-touch-target); padding: var(--agape-space-3); border-radius: var(--agape-radius-sm); font-size: var(--agape-type-base); white-space: normal; }
	.primary-menu a::after { content: none; }
	.primary-menu .current-menu-item > a, .primary-menu .current_page_item > a, .primary-menu a:hover { background: var(--agape-soft-teal); }
	.language-switcher { justify-self: stretch; inline-size: 100%; margin-block-start: var(--agape-space-4); padding-block-start: var(--agape-space-4); border-block-start: var(--agape-border-width) solid var(--agape-line); }
	.language-switcher__trigger { justify-content: flex-start; inline-size: fit-content; }
	.language-switcher__menu { position: static; inline-size: 100%; max-inline-size: none; margin-block-start: var(--agape-space-3); box-shadow: none; }
	.footer-layout { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--agape-space-10); }
	.footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 782px) { :root:has(body.admin-bar), .admin-bar { --agape-admin-offset: 46px; } }
@media (max-width: 600px) {
	.footer-layout { grid-template-columns: minmax(0, 1fr); padding-block: var(--agape-space-12); gap: var(--agape-space-8); }
	.footer-brand { grid-column: auto; }
	.footer-bottom { align-items: flex-start; flex-direction: column; }
	.brand-wordmark { font-size: var(--agape-type-base); }
	.brand-wordmark span:last-child { font-size: var(--agape-type-xs); }
}
@keyframes agape-panel-in { from { opacity: 0; transform: translateY(calc(-1 * var(--agape-space-2))); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
	:root { --agape-duration-fast: 0ms; --agape-duration-panel: 0ms; }
	.is-menu-open .header-panel { animation: none; }
}
