:root {
	--sd-content: 760px;
	--sd-wide: 1240px;
	--sd-radius: 4px;
	--sd-shadow: 0 16px 45px rgba(0, 0, 0, .12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
img { max-width: 100%; height: auto; }

.sd-site-header {
	position: relative;
	z-index: 50;
	padding-block: .9rem;
	border-bottom: 1px solid rgba(0,0,0,.1);
	background: var(--wp--preset--color--surface);
}
.sd-site-header__inner { gap: 1.25rem; }
.sd-site-brand { display: inline-flex; align-items: center; text-decoration: none; color: inherit; min-width: 0; }
.sd-site-brand__logos { display: inline-flex; align-items: center; }
.sd-site-brand__logo { display: block; width: auto; max-height: 58px; }
.sd-site-brand__logo--mobile { display: none; }
.sd-site-brand__text { display: grid; gap: .1rem; }
.sd-site-brand__title { font-family: var(--wp--preset--font-family--display); font-size: 1.3rem; line-height: 1; }
.sd-site-brand__tagline { font-size: .76rem; opacity: .7; }
.sd-header-cta .wp-element-button { white-space: nowrap; }

.sd-main { min-height: 60vh; }
.sd-section { padding-block: clamp(3rem, 7vw, 6rem); }
.sd-section--tight { padding-block: clamp(2rem, 4vw, 3.5rem); }
.is-style-sd-card,
.is-style-sd-soft-panel,
.is-style-sd-dark-panel { padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--sd-radius); box-shadow: var(--sd-shadow); }
.is-style-sd-card { background: var(--wp--preset--color--surface); }
.is-style-sd-soft-panel { background: color-mix(in srgb, var(--wp--preset--color--accent-soft) 35%, var(--wp--preset--color--surface)); }
.is-style-sd-dark-panel { background: var(--wp--preset--color--dark); color: var(--wp--preset--color--surface); }
.is-style-sd-dark-panel :where(h1,h2,h3,h4,a) { color: inherit; }
.is-style-sd-framed-image img { border: 1px solid rgba(0,0,0,.15); box-shadow: var(--sd-shadow); }

.sd-page-shell,
.sd-single-shell { padding-block: clamp(3rem, 7vw, 6rem); }
.sd-entry-header { margin-bottom: clamp(2rem, 5vw, 4rem); }
.sd-entry-meta { font-family: var(--wp--preset--font-family--mono); font-size: .8rem; opacity: .72; }
.sd-post-navigation { margin-block: 3rem; padding-block: 1.25rem; border-block: 1px solid rgba(0,0,0,.12); }

.sd-portfolio-grid .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2.25rem);
}
.sd-portfolio-card { height: 100%; overflow: hidden; }
.sd-portfolio-card .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.sd-portfolio-card__body { padding: 1.15rem; }

.sd-site-footer { margin-top: 0; padding-block: 3rem 1.25rem; background: var(--wp--preset--color--dark); color: var(--wp--preset--color--surface); }
.sd-site-footer :where(h1,h2,h3,a) { color: inherit; }
.sd-footer-credit { font-size: .83rem; opacity: .78; }
.sd-footer-credit__line { display: flex; flex-wrap: wrap; gap: .35rem .75rem; align-items: center; }

@media (max-width: 960px) {
	.sd-portfolio-grid .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sd-header-cta { display: none; }
}
@media (max-width: 700px) {
	body { --wp--style--root--padding-left: 1rem; --wp--style--root--padding-right: 1rem; }
	.sd-site-header { padding-block: .65rem; }
	.sd-site-brand__logo { max-height: 44px; }
	.sd-site-brand__logo--desktop.has-mobile-alternative { display: none; }
	.sd-site-brand__logo--mobile { display: block; }
	.sd-site-brand__tagline { display: none; }
	.sd-site-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
	.sd-portfolio-grid .wp-block-post-template { grid-template-columns: 1fr; }
}
