/* Global shell; WordPress owns navigation, search, logo, and their interactions. */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-block-size: 100svh;
}

.wp-site-blocks > * { margin-block-start: 0; }
.amp-site-main { flex: 1; min-inline-size: 0; padding-block: var(--wp--preset--spacing--70); }
.amp-site-main:has(.amp-section) { padding-block: 0; }
.amp-page-title { margin-block-end: var(--wp--preset--spacing--60); }

.amp-page-title-hidden .amp-site-main { padding-block-start: 0; }
.amp-page-title-hidden .amp-site-main > .wp-block-post-content { margin-block-start: 0; }
.amp-page-title-hidden .amp-page-reading { padding-block-start: 0; }

.amp-site-header {
	position: relative;
	z-index: 50;
	padding-block: 0.75rem;
	padding-inline: var(--wp--custom--layout--gutter);
	border-block-end: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 9%, transparent);
	background: var(--wp--preset--color--white);
	box-shadow: 0 8px 28px color-mix(in srgb, var(--wp--preset--color--dark) 5%, transparent);
}

.amp-header-inner.wp-block-group {
	display: grid;
	grid-template-columns: minmax(7rem, auto) minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(1rem, 2.25vw, 2.4rem);
	max-inline-size: var(--wp--style--global--wide-size);
	min-block-size: 3.75rem;
	margin-inline: auto;
}

.amp-header-inner > *,
.amp-site-brand > *,
.amp-footer-grid > *,
.amp-footer-legal > * { min-inline-size: 0; margin-block: 0; }

.amp-site-brand {
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.amp-site-brand .wp-block-site-logo { margin: 0; }
.amp-site-brand .wp-block-site-logo a { display: inline-flex; align-items: center; }
.amp-site-brand .wp-block-site-logo img {
	display: block;
	inline-size: auto;
	max-inline-size: min(9.625rem, 24vw);
	max-block-size: 3.75rem;
	object-fit: contain;
}

.amp-brand-fallback {
	font-size: var(--wp--preset--font-size--heading-small);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.amp-brand-fallback a { color: var(--wp--preset--color--primary); text-decoration: none; }
.amp-site-brand:has(.wp-block-site-logo img) .amp-brand-fallback { display: none; }

.amp-header-navigation {
	justify-self: center;
	font-size: clamp(0.9rem, 0.88rem + 0.08vw, 0.98rem);
	font-weight: 700;
	color: var(--wp--preset--color--dark);
}

.amp-header-navigation .wp-block-navigation__container {
	align-items: center;
	gap: clamp(0.3rem, 0.5vw, 0.8rem);
}

.amp-header-navigation .wp-block-navigation-item__content {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-block-size: 44px;
	padding: 0.35rem 0.55rem;
	border-radius: var(--wp--custom--radius--small);
	color: var(--wp--preset--color--dark);
	text-decoration: none;
	transition: color 160ms ease, background-color 160ms ease;
}

.amp-header-navigation .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--primary);
	background-color: color-mix(in srgb, var(--wp--preset--color--soft) 78%, white);
}

.amp-header-navigation :where(.current-menu-item > a, a[aria-current="page"]) {
	color: var(--wp--preset--color--primary);
	background-color: var(--wp--preset--color--soft);
	text-decoration: none;
}

.amp-header-navigation .wp-block-navigation__submenu-icon { margin-inline-start: 0.25rem; }
.amp-header-navigation .wp-block-navigation__submenu-container {
	min-inline-size: 13rem !important;
	padding: 0.45rem !important;
	border: 1px solid var(--wp--custom--border--color) !important;
	border-radius: var(--wp--custom--radius--medium) !important;
	background: var(--wp--preset--color--white) !important;
	box-shadow: var(--wp--preset--shadow--soft) !important;
}

.amp-header-navigation .wp-block-navigation__responsive-container-open,
.amp-header-navigation .wp-block-navigation__responsive-container-close {
	min-inline-size: 44px;
	min-block-size: 44px;
	padding: 0.55rem;
	border: 1px solid var(--wp--custom--border--color);
	border-radius: var(--wp--custom--radius--small);
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary);
	box-shadow: 0 5px 16px color-mix(in srgb, var(--wp--preset--color--dark) 5%, transparent);
}

.amp-header-navigation .wp-block-navigation__responsive-container.is-menu-open {
	padding: clamp(1.25rem, 6vw, 2.25rem) var(--wp--custom--layout--gutter);
	background: var(--wp--preset--color--white) !important;
}

.amp-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-block-start: 4rem;
}

.amp-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	inline-size: 100%;
	align-items: stretch;
	gap: 0.35rem;
}

.amp-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	inline-size: 100%;
	justify-content: flex-start;
	padding: 0.8rem 0.9rem;
	font-size: 1.05rem;
}

.amp-header-actions.wp-block-group {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.55rem;
}

.amp-header-actions .wp-block-buttons {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.amp-header-actions .wp-block-button { margin: 0; }
.amp-header-actions .wp-element-button {
	min-block-size: 44px;
	padding: 0.68rem 1rem;
	border-radius: var(--wp--custom--radius--small);
	font-size: 0.9rem;
	font-weight: 800;
	line-height: 1.2;
	white-space: nowrap;
	box-shadow: none;
}

.amp-header-actions .amp-account .wp-element-button {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--primary) 30%, var(--wp--custom--border--color));
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary);
}

.amp-header-actions .amp-account .wp-element-button:hover {
	border-color: var(--wp--preset--color--primary);
	background-color: var(--wp--preset--color--soft);
}

.amp-donate .wp-element-button {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}
.amp-donate .wp-element-button:hover { background-color: var(--wp--preset--color--accent-hover); color: var(--wp--preset--color--dark); }

.amp-join .wp-element-button {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--white);
	box-shadow: 0 8px 18px color-mix(in srgb, var(--wp--preset--color--primary) 13%, transparent);
}
.amp-join .wp-element-button:hover { background-color: var(--wp--preset--color--primary-hover); color: var(--wp--preset--color--white); }

.amp-header-search {
	position: relative;
	inline-size: 44px;
	min-block-size: 44px;
	flex: 0 0 44px;
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}

.amp-header-search .wp-block-search__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: 44px;
	min-block-size: 44px;
	margin: 0;
	padding: 0.6rem;
	border: 1px solid var(--wp--custom--border--color);
	border-radius: var(--wp--custom--radius--small);
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary);
	box-shadow: none;
}

.amp-header-search .wp-block-search__button:hover { background-color: var(--wp--preset--color--soft); }
.amp-header-search .wp-block-search__inside-wrapper { position: relative; min-block-size: 44px; }

.amp-header-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper {
	position: absolute;
	inset-inline-end: 0;
	inset-block-start: 0;
	z-index: 4;
	inline-size: min(24rem, calc(100vw - 2 * var(--wp--custom--layout--gutter)));
	max-inline-size: none;
	gap: 0.45rem;
	padding: 0.35rem;
	border: 1px solid var(--wp--custom--border--color);
	border-radius: var(--wp--custom--radius--medium);
	background-color: var(--wp--preset--color--white);
	box-shadow: var(--wp--preset--shadow--soft);
}

.amp-header-search .wp-block-search__input {
	min-block-size: 44px;
	border-radius: var(--wp--custom--radius--small);
}

.amp-site-footer {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
	padding-inline: var(--wp--custom--layout--gutter);
	background-color: var(--wp--preset--color--dark);
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--small);
}

.amp-footer-inner.wp-block-group { max-inline-size: var(--wp--style--global--wide-size); margin-inline: auto; }
.amp-site-footer :where(h2, h3, a) { color: var(--wp--preset--color--white); }
.amp-site-footer h2 { font-size: var(--wp--preset--font-size--medium); margin-block-start: 0; margin-block-end: var(--wp--preset--spacing--30); line-height: 1.35; }
.amp-site-footer a:hover { color: var(--wp--preset--color--white); text-decoration: underline; }
.amp-site-footer :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: var(--wp--preset--color--white); }
.amp-site-footer .wp-block-site-logo { display: inline-block; padding: var(--wp--preset--spacing--20); border-radius: var(--wp--custom--radius--small); background-color: var(--wp--preset--color--white); }
.amp-site-footer .wp-block-social-links:empty { display: none; }
.amp-site-footer .wp-block-social-link-anchor { min-inline-size: 44px; min-block-size: 44px; }

.amp-footer-grid.wp-block-group {
	display: grid;
	/* Four editorial columns; two on tablet and one on mobile. */
	grid-template-columns: 1.2fr repeat(3, minmax(0, 1fr));
	gap: clamp(var(--wp--preset--spacing--50), 4vw, var(--wp--preset--spacing--70));
	align-items: start;
}

.amp-footer-column.wp-block-group {
	min-inline-size: 0;
	margin-block: 0;
}

.amp-footer-column.wp-block-group > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.amp-footer-about { max-inline-size: none; }
.amp-footer-navigation .wp-block-navigation__container { gap: var(--wp--preset--spacing--20); }
.amp-footer-navigation .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-block-size: 44px; }
.amp-footer-links .wp-element-button {
	min-block-size: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--white);
	font-weight: 400;
	text-decoration: underline;
	text-align: start;
}

.amp-footer-links .wp-element-button:hover { background: none; color: var(--wp--preset--color--white); }
.amp-footer-bottom { margin-block-start: var(--wp--preset--spacing--70); padding-block-start: var(--wp--preset--spacing--50); border-block-start: 1px solid var(--wp--custom--border--on-dark); }
.amp-footer-legal.wp-block-group { gap: var(--wp--preset--spacing--40); }
.amp-footer-legal .wp-block-buttons:empty { display: none; }


/* Native Details keeps the account panel keyboard accessible without scripts. */
.amp-account-menu { position: relative; margin: 0; padding: 0; border: 0; }
.amp-account-menu > summary {
 display: flex; align-items: center; justify-content: center;
 inline-size: 44px; min-block-size: 44px; padding: 0;
 border: 1px solid var(--wp--custom--border--color);
 border-radius: var(--wp--custom--radius--small);
 color: var(--wp--preset--color--primary); background: var(--wp--preset--color--white);
 font-size: 0; cursor: pointer; list-style: none;
}
.amp-account-menu > summary::-webkit-details-marker { display: none; }
.amp-account-menu > summary::before {
 content: ''; inline-size: 23px; block-size: 23px; background: currentColor;
 mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7'%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3Cpath d='M4 22v-3a8 8 0 0116 0v3z'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
}
.amp-account-menu[open] > summary, .amp-account-menu > summary:hover { background: var(--wp--preset--color--soft); }
.amp-account-panel.wp-block-buttons {
 position: absolute; inset-inline-end: 0; inset-block-start: calc(100% + .75rem);
 inline-size: min(17rem, calc(100vw - 2 * var(--wp--custom--layout--gutter)));
 padding: var(--wp--preset--spacing--30); gap: .5rem;
 border: 1px solid var(--wp--custom--border--color);
 border-radius: var(--wp--custom--radius--medium); background: var(--wp--preset--color--white);
 box-shadow: var(--wp--preset--shadow--soft); z-index: 6;
}
.amp-account-panel .wp-block-button, .amp-account-panel .wp-element-button { inline-size: 100%; }
.amp-footer-grid .amp-footer-links .wp-element-button { text-decoration: none; }
.amp-footer-contact { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--40); margin-block-end: var(--wp--preset--spacing--40); }
.amp-footer-contact:empty { display: none; }
@media (max-width: 64rem) {
 .amp-site-header { padding-block: .6rem; }
 .amp-header-inner.wp-block-group { grid-template-columns: 44px minmax(0, 1fr) 44px; min-block-size: 44px; gap: .5rem; }
 .amp-header-navigation { grid-column: 1; grid-row: 1; }
 .amp-header-inner > .amp-site-brand { grid-column: 2; grid-row: 1; justify-content: center; }
 .amp-header-inner .wp-block-site-logo img { max-inline-size: min(8rem, 100%); max-block-size: 3rem; }
 .amp-header-actions.wp-block-group { grid-column: 3; grid-row: 1; gap: .5rem; }
 .amp-header-actions > .amp-header-cta-group { display: none; }
 .amp-header-search { display: none; }
 .amp-site-header .amp-header-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
 .amp-site-header .amp-header-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex; }
}
@media (max-width: 52rem) {
 .amp-footer-grid.wp-block-group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 44rem) {
 .amp-footer-grid.wp-block-group { grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--50); }
 .amp-footer-legal.wp-block-group { flex-direction: column; align-items: flex-start; }
 .amp-footer-navigation .wp-block-navigation__container { gap: 0; }
}

.amp-site-footer .amp-brand-fallback a { color: var(--wp--preset--color--white); }
.amp-account-panel .amp-account-logout .wp-element-button { background: var(--wp--preset--color--soft); color: var(--wp--preset--color--primary); }

/* Desktop keeps native links visible, including WordPress' page-list fallback. */
@media (min-width: 64.001rem) {
 .amp-site-header .amp-header-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block; }
 .amp-site-header .amp-header-navigation .wp-block-navigation__responsive-container-open { display: none; }
}
.amp-header-navigation .amp-mobile-menu-actions.wp-block-buttons { display: none; }
@media (max-width: 64rem) {
 .amp-header-navigation { justify-self: center; }
 .amp-header-navigation .wp-block-navigation__responsive-container.is-menu-open { padding: var(--wp--preset--spacing--40) var(--wp--custom--layout--gutter); }
 .amp-header-navigation .is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; gap: var(--wp--preset--spacing--40); }
 .amp-header-navigation .is-menu-open :where(.wp-block-navigation__container, .wp-block-page-list) { inline-size: 100%; align-items: stretch; gap: .4rem; }
 .amp-header-navigation .is-menu-open .wp-block-navigation-item { inline-size: 100%; }
 .amp-header-navigation .is-menu-open .wp-block-navigation-item__content {
  display: flex; min-block-size: 48px; padding: .75rem 1rem; line-height: 1.6;
  border: 1px solid var(--wp--custom--border--color); border-radius: var(--wp--custom--radius--small);
  background: var(--wp--preset--color--soft); color: var(--wp--preset--color--primary);
 }
 .amp-header-navigation .is-menu-open .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--white); }
 .amp-header-navigation .is-menu-open .wp-block-navigation__submenu-container { margin-block: .5rem; padding-inline-start: 1rem; }
 .amp-header-navigation .is-menu-open .wp-block-navigation__submenu-icon { min-inline-size: 44px; min-block-size: 44px; }
 .amp-header-navigation .is-menu-open .amp-mobile-menu-actions {
  display: flex; order: 2; flex-wrap: wrap; justify-content: stretch;
  inline-size: 100%; padding-block-start: var(--wp--preset--spacing--40);
  border-block-start: 1px solid var(--wp--custom--border--color); gap: .75rem;
 }
 .amp-mobile-menu-actions .wp-block-button { flex: 1 1 10rem; }
 .amp-mobile-menu-actions .wp-element-button { display: flex; justify-content: center; align-items: center; min-block-size: 48px; inline-size: 100%; }
}
