/**
Theme Name: SDS Base
Theme URI: https://sdsinternational.com/
Author: SDS International
Author URI: https://sdsinternational.com/
Description: A deliberately lean, accessibility-focused WordPress foundation for SDS sites and SDS Site Core.
Version: 0.1.5
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sds-base
Tags: custom-logo, custom-menu, featured-images, translation-ready, block-styles, wide-blocks
*/

:root {
	--sds-color-brand: #155eef;
	--sds-color-brand-hover: #1d4ed8;
	--sds-color-heading: #172033;
	--sds-color-text: #536070;
	--sds-color-background: #ffffff;
	--sds-color-background-secondary: #f8fafc;
	--sds-color-background-alt: #0b1220;
	--sds-color-border: #d8e0ea;
	--sds-color-supporting: #738197;
	--sds-content-width: 1200px;
	--sds-narrow-width: 760px;
	--sds-header-height: 72px;
	--sds-radius: 6px;
	--sds-radius-card: 10px;
	--sds-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";

	/* Temporary legacy palette bridge for block content saved while Astra was active. */
	--ast-global-color-0: var(--sds-color-brand);
	--ast-global-color-1: var(--sds-color-brand-hover);
	--ast-global-color-2: var(--sds-color-heading);
	--ast-global-color-3: var(--sds-color-text);
	--ast-global-color-4: var(--sds-color-background);
	--ast-global-color-5: var(--sds-color-background-secondary);
	--ast-global-color-6: var(--sds-color-background-alt);
	--ast-global-color-7: var(--sds-color-border);
	--ast-global-color-8: var(--sds-color-supporting);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--sds-color-background);
	color: var(--sds-color-text);
	font-family: var(--sds-font-sans);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
}

figure {
	margin: 0;
}

a {
	color: var(--sds-color-brand);
	text-decoration-thickness: .08em;
	text-underline-offset: .14em;
}

a:hover {
	color: var(--sds-color-brand-hover);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 3px solid var(--sds-color-brand);
	outline-offset: 3px;
}

button,
input,
textarea,
select {
	font: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-top: 0;
	color: var(--sds-color-heading);
	font-weight: 700;
	letter-spacing: -.02em;
}

h1 { font-size: 48px; line-height: 1.2; }
h2 { font-size: 36px; line-height: 1.3; }
h3 { font-size: 26px; line-height: 1.3; }
h4 { font-size: 22px; line-height: 1.2; }
h5 { font-size: 18px; line-height: 1.2; }
h6 { font-size: 16px; line-height: 1.25; }

p {
	margin-top: 0;
	margin-bottom: 1.2em;
}

ul,
ol {
	padding-inline-start: 1.35em;
}

hr {
	border: 0;
	border-top: 1px solid var(--sds-color-border);
}

blockquote {
	margin: 1.5em 0;
	padding-inline-start: 1.25em;
	border-inline-start: 4px solid var(--sds-color-brand);
	color: var(--sds-color-heading);
}

code,
kbd,
samp,
pre {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

pre {
	overflow: auto;
	padding: 18px;
	border: 1px solid var(--sds-color-border);
	border-radius: var(--sds-radius);
	background: var(--sds-color-background-secondary);
}

.screen-reader-text,
.sds-skip-link:not(:focus) {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.sds-skip-link:focus {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 100000;
	padding: 10px 14px;
	border-radius: var(--sds-radius);
	background: var(--sds-color-background);
	color: var(--sds-color-heading);
	font-weight: 600;
	text-decoration: none;
}

.sds-site {
	min-height: 100vh;
}

/* Header */
.sds-site-header {
	position: relative;
	z-index: 100;
	border-bottom: 1px solid var(--sds-color-border);
	background: var(--sds-color-background);
}

.sds-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(calc(100% - 48px), var(--sds-content-width));
	min-height: var(--sds-header-height);
	margin-inline: auto;
	gap: 28px;
}

.sds-branding {
	display: flex;
	align-items: center;
	min-width: 0;
	padding-block: 1em;
}

.sds-site-logo,
.sds-site-title {
	display: inline-flex;
	align-items: center;
	flex: 0 1 auto;
	max-width: 300px;
	color: var(--sds-color-heading);
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

.sds-site-logo img {
	display: block;
	width: 300px;
	max-width: 100%;
	height: auto;
}

.sds-primary-navigation {
	margin-inline-start: auto;
}

.sds-primary-menu,
.sds-primary-menu ul,
.sds-mobile-menu,
.sds-mobile-menu ul,
.sds-footer-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sds-primary-menu {
	display: flex;
	align-items: stretch;
}

.sds-primary-menu > li {
	position: relative;
}

.sds-primary-menu > li > a {
	display: flex;
	align-items: center;
	min-height: var(--sds-header-height);
	padding-inline: 14px;
	color: var(--sds-color-heading);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}

.sds-primary-menu a:hover,
.sds-primary-menu .current-menu-item > a,
.sds-primary-menu .current-menu-ancestor > a {
	color: var(--sds-color-brand);
}

.sds-primary-menu .sub-menu {
	position: absolute;
	top: calc(100% - 1px);
	left: 0;
	min-width: 220px;
	padding-block: 6px;
	visibility: hidden;
	opacity: 0;
	transform: translateY(4px);
	border: 1px solid var(--sds-color-border);
	border-radius: var(--sds-radius);
	background: var(--sds-color-background);
	box-shadow: 0 10px 28px rgba(11, 18, 32, .10);
	transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
}

.sds-primary-menu li:hover > .sub-menu,
.sds-primary-menu li:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
}

.sds-primary-menu .sub-menu a {
	display: block;
	padding: 9px 14px;
	color: var(--sds-color-heading);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}

.sds-primary-menu .sub-menu .sub-menu {
	top: -7px;
	left: calc(100% + 4px);
}

.sds-mobile-navigation {
	display: none;
	position: relative;
	margin-inline-start: auto;
}

.sds-mobile-menu-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 7px 9px;
	cursor: pointer;
	border: 1px solid var(--sds-color-border);
	border-radius: 2px;
	color: var(--sds-color-heading);
	font-size: 14px;
	font-weight: 600;
	list-style: none;
}

.sds-mobile-menu-toggle::-webkit-details-marker {
	display: none;
}

.sds-menu-icon {
	display: grid;
	gap: 3px;
	width: 18px;
}

.sds-menu-icon span {
	display: block;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
}

.sds-mobile-menu-panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	width: min(340px, calc(100vw - 32px));
	max-height: calc(100vh - 100px);
	overflow: auto;
	padding: 10px;
	border: 1px solid var(--sds-color-border);
	border-radius: var(--sds-radius);
	background: var(--sds-color-background);
	box-shadow: 0 14px 36px rgba(11, 18, 32, .14);
}

.sds-mobile-menu a {
	display: block;
	padding: 10px 12px;
	border-radius: 4px;
	color: var(--sds-color-heading);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}

.sds-mobile-menu a:hover,
.sds-mobile-menu .current-menu-item > a,
.sds-mobile-menu .current-menu-ancestor > a {
	background: var(--sds-color-background-secondary);
	color: var(--sds-color-brand);
}

.sds-mobile-menu .sub-menu {
	margin-inline-start: 12px;
	padding-inline-start: 10px;
	border-inline-start: 1px solid var(--sds-color-border);
}

/* Standard content */
.sds-standard-main {
	width: min(calc(100% - 48px), var(--sds-content-width));
	margin-inline: auto;
	padding-block: 56px 72px;
}

.sds-entry-header,
.sds-archive-header,
.sds-comments,
.sds-empty-state {
	width: min(100%, var(--sds-narrow-width));
	margin-inline: auto;
}

.sds-entry-title,
.sds-archive-header h1,
.sds-empty-state h1 {
	margin-bottom: 18px;
}

.sds-entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: -6px;
	margin-bottom: 28px;
	color: var(--sds-color-supporting);
	font-size: 13px;
	font-weight: 600;
}

.entry-content {
	width: 100%;
}

.entry-content > :where(:not(.alignwide):not(.alignfull)) {
	max-width: var(--sds-narrow-width);
	margin-inline: auto;
}

.entry-content > .alignwide {
	max-width: var(--sds-content-width);
	margin-inline: auto;
}

.entry-content > .alignfull {
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	margin-inline-start: -50vw;
	margin-inline-end: -50vw;
}

.entry-content::after {
	display: table;
	clear: both;
	content: "";
}

.entry-content a:not(.wp-element-button):not(.wp-block-button__link) {
	text-decoration: underline;
}

.wp-element-button,
.wp-block-button__link,
.sds-button,
.sds-search-submit,
button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 13px 24px;
	border: 0;
	border-radius: var(--sds-radius);
	background: var(--sds-color-brand);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.wp-element-button:hover,
.wp-block-button__link:hover,
.sds-button:hover,
.sds-search-submit:hover,
button[type="submit"]:hover {
	background: var(--sds-color-brand-hover);
	color: #fff;
}

.sds-featured-image {
	width: min(100%, var(--sds-narrow-width));
	margin: 0 auto 32px;
	overflow: hidden;
	border-radius: var(--sds-radius-card);
}


/* SDS International front page
 *
 * The homepage remains normal Gutenberg content. These rules recreate the
 * accepted SDS layout without importing Astra's general-purpose frontend CSS.
 */
.sds-front-page-main,
.sds-front-page-entry,
.sds-front-page-content {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.sds-front-page-content > :where(:not(.alignwide):not(.alignfull)),
.sds-front-page-content > .alignwide,
.sds-front-page-content > .alignfull {
	position: static;
	left: auto;
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

/* Top-level homepage groups remain full width. Their saved Gutenberg
 * constrained-layout settings own the 1200px inner grid and WordPress centers
 * that grid naturally. SDS Base must not replace those margins with a
 * left-anchored approximation. */
.sds-front-page-content > .wp-block-group.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	margin-inline: auto !important;
}

.sds-front-page-content .wp-block-columns {
	box-sizing: border-box;
}

.sds-front-page-content .wp-block-column {
	min-width: 0;
}

.sds-front-page-content :where(h1, h2, h3, h4, h5, h6) {
	color: #000;
}

/* Groups carrying a legacy Astra border color must not allow that border
 * color to become the inherited text color under a different theme. */
.sds-front-page-content .wp-block-group.has-border-color {
	color: var(--sds-color-text) !important;
}

/* Hero */
.sds-front-page-content .sds-hero-columns {
	align-items: center;
	gap: 48px;
	margin-block: 0;
}

.sds-front-page-content .sds-hero-columns > .wp-block-column:first-child > :last-child,
.sds-front-page-content .sds-hero-columns > .wp-block-column:last-child > :last-child,
.sds-front-page-content .sds-hero-columns .wp-block-group > :last-child {
	margin-bottom: 0;
}

.sds-front-page-content .sds-hero-columns h1 {
	margin-bottom: 22px;
	color: #000;
}

.sds-front-page-content .sds-hero-columns .wp-block-buttons {
	gap: 18px;
	margin-top: 22px;
}

.sds-front-page-content .sds-hero-columns > .wp-block-column:last-child > .wp-block-group {
	box-shadow: 0 1px 2px rgba(11, 18, 32, .02);
}

.sds-front-page-content .sds-hero-columns > .wp-block-column:last-child > .wp-block-group > .wp-block-group {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.sds-front-page-content .sds-hero-columns > .wp-block-column:last-child > .wp-block-group > .wp-block-group p {
	margin: 0;
}

/* Buttons. Core's outline style is intentionally normalized here so the
 * migrated homepage does not depend on Astra's button rules. */
.sds-front-page-content .wp-block-button.is-style-outline > .wp-block-button__link,
.sds-front-page-content .wp-block-button.is-style-outline > .wp-element-button {
	border: 1px solid var(--sds-color-border);
	background: var(--sds-color-background);
	color: var(--sds-color-brand);
}

.sds-front-page-content .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.sds-front-page-content .wp-block-button.is-style-outline > .wp-element-button:hover {
	border-color: var(--sds-color-brand-hover);
	background: var(--sds-color-background-secondary);
	color: var(--sds-color-brand-hover);
}

/* Principles */
.sds-front-page-content .sds-principles-grid {
	gap: 48px;
	margin-block: 0;
}

.sds-front-page-content .sds-principles-grid :where(h2, h3) {
	margin-bottom: 16px;
	font-size: 26px;
	line-height: 1.3;
}

.sds-front-page-content .sds-principles-grid p {
	margin-bottom: 0;
}

/* Featured plugin cards */
.sds-front-page-content .sds-plugin-grid {
	gap: 24px;
	margin-top: 30px;
	margin-bottom: 0;
}

.sds-front-page-content .sds-plugin-grid > .wp-block-column {
	display: flex;
}

.sds-front-page-content .sds-plugin-card {
	display: flex;
	align-items: stretch;
	text-align: left;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 20px;
	width: 100%;
	min-height: 100%;
	color: var(--sds-color-text);
	box-shadow: 0 1px 2px rgba(11, 18, 32, .02);
}

.sds-front-page-content .sds-plugin-card > * {
	width: 100%;
	margin-block: 0;
	margin-inline: 0 !important;
	text-align: left;
}

.sds-front-page-content .sds-plugin-card > :last-child {
	margin-top: auto;
}

/* The documentation/support pair is the only top-level homepage group without
 * its own background color. Give that section the spacing Astra previously
 * supplied around the two cards. */
.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) {
	padding: 56px 24px;
}

.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns {
	display: flex;
	gap: 24px;
	margin-block: 0;
}

.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns > .wp-block-column {
	display: flex;
}

.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns > .wp-block-column > .wp-block-group {
	width: 100%;
	min-height: 100%;
}

.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns > .wp-block-column > .wp-block-group > * {
	width: 100%;
	margin-inline: 0 !important;
	text-align: left;
}

/* The migration normalizes the two resource-card section headings from H3 to
 * H2 for a sequential document outline. Keep their accepted H3-sized visual
 * treatment so semantics do not change the design. */
.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns > .wp-block-column > .wp-block-group > h2.wp-block-heading {
	font-size: 26px;
	line-height: 1.3;
}

/* Trust callout */
.sds-front-page-content > .has-ast-global-color-6-background-color {
	padding: 60px 24px;
}

.sds-front-page-content > .has-ast-global-color-6-background-color > .wp-block-heading {
	margin-bottom: 20px;
}

.sds-front-page-content > .has-ast-global-color-6-background-color > p {
	max-width: 980px;
	margin-bottom: 22px;
}

.sds-front-page-content > .has-ast-global-color-6-background-color .wp-block-buttons {
	gap: 20px;
}

.sds-front-page-content > .has-ast-global-color-6-background-color .wp-block-button.is-style-outline > .wp-block-button__link,
.sds-front-page-content > .has-ast-global-color-6-background-color .wp-block-button.is-style-outline > .wp-element-button {
	border-color: #fff;
	background: #fff;
	color: var(--sds-color-brand);
}

.sds-front-page-content > .has-ast-global-color-6-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.sds-front-page-content > .has-ast-global-color-6-background-color .wp-block-button.is-style-outline > .wp-element-button:hover {
	border-color: #fff;
	background: var(--sds-color-background-secondary);
	color: var(--sds-color-brand-hover);
}

/* The homepage CTA meets the footer directly; do not manufacture a theme-level
 * spacer between the two dark sections. */
.sds-front-page-main {
	margin-bottom: 0;
}

/* Footer */
.sds-site-footer {
	background: var(--sds-color-background-alt);
	color: var(--sds-color-border);
}

.sds-footer-primary {
	padding-block: 56px 48px;
}

.sds-footer-grid,
.sds-footer-bottom-inner {
	width: min(calc(100% - 48px), var(--sds-content-width));
	margin-inline: auto;
}

.sds-footer-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 28px;
	align-items: start;
}

.sds-footer-intro,
.sds-footer-column,
.sds-site-footer .widget {
	min-width: 0;
	font-size: 15px;
}

.sds-footer-intro p:first-child {
	color: #f8fafc;
	font-size: 16px;
}

.sds-footer-intro p:last-child,
.sds-site-footer .widget > :last-child {
	margin-bottom: 0;
}

.sds-site-footer .widget-title,
.sds-footer-column > .widget > h2.wp-block-heading,
.sds-footer-column > .widget > h3.wp-block-heading {
	margin-bottom: 14px;
	color: #f8fafc;
	font-size: 16px;
	line-height: 1.3;
	letter-spacing: 0;
}

.sds-site-footer ul,
.sds-site-footer ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sds-site-footer li + li {
	margin-top: 7px;
}

.sds-site-footer a {
	color: var(--sds-color-border);
	text-decoration: none;
}

.sds-site-footer a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: .16em;
}

.sds-footer-bottom {
	border-top: 1px solid var(--sds-color-text);
}

.sds-footer-bottom-inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	min-height: 60px;
	gap: 24px;
}

.sds-footer-copyright {
	margin: 0;
	font-size: 14px;
	line-height: 2;
}

.sds-footer-menu {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 22px;
	font-size: 14px;
}

/* Legacy Astra palette classes retained only to preserve already-saved block content during migration. */
.has-ast-global-color-0-color { color: var(--sds-color-brand) !important; }
.has-ast-global-color-1-color { color: var(--sds-color-brand-hover) !important; }
.has-ast-global-color-2-color { color: var(--sds-color-heading) !important; }
.has-ast-global-color-3-color { color: var(--sds-color-text) !important; }
.has-ast-global-color-4-color { color: var(--sds-color-background) !important; }
.has-ast-global-color-5-color { color: var(--sds-color-background-secondary) !important; }
.has-ast-global-color-6-color { color: var(--sds-color-background-alt) !important; }
.has-ast-global-color-7-color { color: var(--sds-color-border) !important; }
.has-ast-global-color-8-color { color: var(--sds-color-supporting) !important; }
.has-ast-global-color-0-background-color { background-color: var(--sds-color-brand) !important; }
.has-ast-global-color-1-background-color { background-color: var(--sds-color-brand-hover) !important; }
.has-ast-global-color-2-background-color { background-color: var(--sds-color-heading) !important; }
.has-ast-global-color-3-background-color { background-color: var(--sds-color-text) !important; }
.has-ast-global-color-4-background-color { background-color: var(--sds-color-background) !important; }
.has-ast-global-color-5-background-color { background-color: var(--sds-color-background-secondary) !important; }
.has-ast-global-color-6-background-color { background-color: var(--sds-color-background-alt) !important; }
.has-ast-global-color-7-background-color { background-color: var(--sds-color-border) !important; }
.has-ast-global-color-8-background-color { background-color: var(--sds-color-supporting) !important; }
.has-ast-global-color-0-border-color { border-color: var(--sds-color-brand) !important; }
.has-ast-global-color-1-border-color { border-color: var(--sds-color-brand-hover) !important; }
.has-ast-global-color-2-border-color { border-color: var(--sds-color-heading) !important; }
.has-ast-global-color-3-border-color { border-color: var(--sds-color-text) !important; }
.has-ast-global-color-4-border-color { border-color: var(--sds-color-background) !important; }
.has-ast-global-color-5-border-color { border-color: var(--sds-color-background-secondary) !important; }
.has-ast-global-color-6-border-color { border-color: var(--sds-color-background-alt) !important; }
.has-ast-global-color-7-border-color { border-color: var(--sds-color-border) !important; }
.has-ast-global-color-8-border-color { border-color: var(--sds-color-supporting) !important; }

@media (max-width: 921px) {
	:root {
		--sds-header-height: 68px;
	}

	body {
		font-size: 16px;
	}

	h1 { font-size: 42px; }
	h2 { font-size: 32px; }
	h3 { font-size: 24px; }
	h4 { font-size: 20px; }

	.sds-front-page-content .sds-principles-grid :where(h2, h3),
	.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns > .wp-block-column > .wp-block-group > h2.wp-block-heading {
		font-size: 24px;
	}

	.sds-header-inner {
		width: min(calc(100% - 48px), var(--sds-content-width));
	}

	.sds-site-logo img {
		width: 260px;
		max-width: 100%;
	}

	.sds-primary-navigation {
		display: none;
	}

	.sds-mobile-navigation {
		display: block;
	}

	.sds-standard-main {
		padding-block: 48px 60px;
	}

	.sds-footer-primary {
		padding: 40px 24px;
	}

	.sds-footer-grid,
	.sds-footer-bottom-inner {
		width: min(100%, var(--sds-content-width));
	}

	.sds-footer-grid {
		grid-template-columns: 1fr;
		gap: 26px;
	}

	.sds-footer-bottom-inner {
		grid-template-columns: 1fr;
		justify-items: center;
		min-height: 0;
		padding-block: 16px;
		text-align: center;
	}

	.sds-footer-menu {
		flex-direction: column;
		justify-content: center;
		gap: 8px;
	}

	.sds-footer-copyright {
		font-size: 16px;
	}
}

@media (max-width: 544px) {
	:root {
		--sds-header-height: 64px;
	}

	h1 { font-size: 36px; }
	h2 { font-size: 28px; }
	h3 { font-size: 22px; }
	h4 { font-size: 20px; }

	.sds-front-page-content .sds-principles-grid :where(h2, h3),
	.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns > .wp-block-column > .wp-block-group > h2.wp-block-heading {
		font-size: 22px;
	}

	.sds-header-inner,
	.sds-standard-main,
	.sds-footer-grid,
	.sds-footer-bottom-inner {
		width: min(calc(100% - 32px), var(--sds-content-width));
	}

	.sds-header-inner,
	.sds-footer-grid,
	.sds-footer-bottom-inner {
		margin-inline: auto;
	}

	.sds-site-logo img {
		width: 220px;
		max-width: 100%;
	}

	.sds-menu-label {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		padding: 0 !important;
		margin: -1px !important;
		overflow: hidden !important;
		clip: rect(0, 0, 0, 0) !important;
		white-space: nowrap !important;
		border: 0 !important;
	}

	.sds-standard-main {
		padding-block: 36px 48px;
	}

	.sds-footer-primary {
		padding: 32px 24px;
	}

	.sds-footer-copyright {
		font-size: 13px;
	}

}


/* Homepage responsive behavior is explicit rather than inherited from a page
 * builder or a general-purpose theme. */
@media (max-width: 921px) {
	.sds-front-page-content .sds-hero-columns,
	.sds-front-page-content .sds-principles-grid,
	.sds-front-page-content .sds-plugin-grid,
	.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns {
		gap: 24px;
	}
}

@media (max-width: 781px) {
	.sds-front-page-content .sds-hero-columns,
	.sds-front-page-content .sds-principles-grid,
	.sds-front-page-content .sds-plugin-grid,
	.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns {
		display: flex;
		flex-direction: column;
	}

	.sds-front-page-content .sds-hero-columns > .wp-block-column,
	.sds-front-page-content .sds-principles-grid > .wp-block-column,
	.sds-front-page-content .sds-plugin-grid > .wp-block-column,
	.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) > .wp-block-columns > .wp-block-column {
		width: 100%;
		flex-basis: 100% !important;
	}

	.sds-front-page-content .sds-hero-columns {
		align-items: stretch;
	}

	.sds-front-page-content .sds-hero-columns > .wp-block-column:last-child {
		margin-top: 8px;
	}

	.sds-front-page-content .sds-principles-grid {
		gap: 28px;
	}

	.sds-front-page-content .sds-plugin-grid {
		gap: 18px;
	}
}

@media (max-width: 544px) {
	.sds-front-page-content > .wp-block-group {
		--wp--style--root--padding-right: 24px;
		--wp--style--root--padding-left: 24px;
	}

	.sds-front-page-content .sds-hero-columns .wp-block-buttons {
		gap: 12px;
	}

	.sds-front-page-content .sds-hero-columns > .wp-block-column:last-child > .wp-block-group > .wp-block-group {
		gap: 12px;
	}

	.sds-front-page-content .sds-hero-columns > .wp-block-column:last-child > .wp-block-group > .wp-block-group p:last-child {
		text-align: right;
	}

	.sds-front-page-content > .wp-block-group.has-ast-global-color-5-background-color + .wp-block-group:not(.has-background) {
		padding: 32px 24px;
	}

	.sds-front-page-content > .has-ast-global-color-6-background-color {
		padding: 40px 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
