/* Shared site rules, after Astra and Spectra's generated block styles. */
:root {
	--sc-content: 1200px;
	--sc-gutter: clamp(20px, 4vw, 56px);
	--sc-section-space: clamp(64px, 7.8vw, 112px);
	--sc-link: #756039;
}
body, .site-content, .site-footer { background: var(--wp--preset--color--paper); }
body, button, input, textarea, select, .main-header-menu, .ast-header-button-1 {
	font-family: var(--wp--preset--font-family--figtree);
}
::selection { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--ink); }
:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
input, textarea { caret-color: var(--wp--preset--color--ink); }
[id] { scroll-margin-top: 32px; }
.entry-content p { text-wrap: pretty; }
.entry-content a:not([class]), .sc-legal a { color: var(--sc-link); text-decoration: underline; text-underline-offset: .2em; }
.entry-content a:hover { text-decoration-thickness: 2px; }
.entry-content h1, .entry-content h2, .entry-content h3 { overflow-wrap: normal; }

.site-header .ast-custom-button { color: var(--wp--preset--color--ink); }
.site-header .ast-custom-button:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
body:not(.ast-theme-transparent-header) .main-header-menu .menu-link { color: var(--wp--preset--color--ink) !important; }
body:not(.ast-theme-transparent-header) .main-header-bar { background: var(--wp--preset--color--paper); }
.ast-theme-transparent-header .main-header-menu .menu-link { color: var(--wp--preset--color--paper); }
.site-header .main-header-menu .current-menu-item > .menu-link { font-weight: 600; text-decoration: none; }
.ast-mobile-menu-trigger-minimal { min-width: 44px; min-height: 44px; }
.ast-theme-transparent-header .ast-mobile-menu-trigger-minimal { color: var(--wp--preset--color--paper); }
.ast-mobile-header-content .main-header-menu .menu-link { color: var(--wp--preset--color--ink) !important; min-height: 48px; }

/* Keep every section readable before scrolling and without JavaScript. */
.sc-reveal { animation: none !important; opacity: 1; transform: none; }
.entry-content .sc-section {
	padding: var(--sc-section-space) var(--sc-gutter) !important;
	margin-block: 0;
}
.entry-content .sc-section > .uagb-container-inner-blocks-wrap {
	max-width: var(--sc-content) !important;
	width: 100%;
	margin-inline: auto;
}
.entry-content .sc-hero {
	min-height: 620px;
	padding: 160px var(--sc-gutter) 72px !important;
	background-color: var(--wp--preset--color--charcoal);
}
.entry-content .sc-hero > .uagb-container-inner-blocks-wrap {
	width: 100%; max-width: var(--sc-content) !important; margin-inline: auto; align-items: flex-start;
}
.entry-content .sc-hero .uagb-heading-text {
	font-family: var(--wp--preset--font-family--syne) !important;
	font-size: clamp(40px, 5.6vw, 80px) !important;
	max-width: 16ch; line-height: 1.06;
}
.entry-content .sc-hero .sc-lede { max-width: 46ch; font-size: clamp(18px, 1.5vw, 22px); }
.home .entry-content .sc-hero { min-height: min(900px, 94svh); }
.sc-video-toggle {
	position: absolute; z-index: 3; right: var(--sc-gutter); bottom: 24px;
	background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--paper); border-radius: 999px;
	min-height: 44px; padding: 10px 18px; font-size: 14px;
}
.entry-content .sc-section-title .uagb-heading-text { font-size: clamp(30px, 3.3vw, 44px) !important; line-height: 1.14; }
.entry-content .sc-body, .entry-content .sc-service-text { font-size: 16px; line-height: 1.65; }
.entry-content .sc-services-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; align-items: start; }
.entry-content .sc-services-row > .sc-service { width: 100%; max-width: 100% !important; min-width: 0; gap: 16px; align-items: flex-start; transform: none; }
.entry-content .sc-services-row > .sc-service > * { max-width: 100%; }
.sc-service .wp-block-uagb-image, .sc-service .wp-block-uagb-image__figure, .sc-service .wp-block-uagb-image__figure a { width: 100%; margin: 0; display: block; }
.entry-content .sc-service img { aspect-ratio: 4 / 3; height: auto; width: 100%; object-fit: cover; border-radius: var(--sc-radius-media); }
.entry-content .sc-service .sc-service-text { max-width: 36ch; }
.entry-content .sc-service h3 { margin: 0; font-size: clamp(22px, 2vw, 28px) !important; }
.entry-content .sc-service a:not(:has(img)), .entry-content .sc-link a { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--ink); font-weight: 600; text-decoration: none; }
.entry-content .wp-block-uagb-image a { text-decoration: none; }
.entry-content .sc-principles__list { gap: 32px; }
/* Spacing separates these items; cancel both legacy and block-generated borders. */
.entry-content .sc-principle { align-items: flex-start; border: 0 !important; padding-block: 0 !important; gap: 12px; }
.entry-content .sc-principle h3 { font-size: 24px !important; line-height: 1.2; }
.entry-content .sc-principle .wp-block-uagb-image { width: 100%; }
.entry-content .sc-principle img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--sc-radius-media); }
.home .entry-content .sc-principles__intro { width: 100%; max-width: 65ch; }
.home .entry-content .sc-principles__list { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.home .entry-content .sc-principle { width: 100%; max-width: 100% !important; }
.entry-content .sc-intro > .uagb-container-inner-blocks-wrap { gap: clamp(32px, 6vw, 88px); }
.entry-content .sc-intro__title, .entry-content .sc-intro__copy { min-width: 0; }
.entry-content .sc-materia > .uagb-container-inner-blocks-wrap { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 64px; }
.entry-content .sc-materia__media, .entry-content .sc-materia__copy { width: 100%; min-width: 0; }
.entry-content .sc-materia img { max-height: 560px; object-fit: cover; }

/* The CTA's outer section must not inherit the dark panel's typography. */
.entry-content .sc-section.sc-cta { background: var(--wp--preset--color--paper); border-radius: 0; color: var(--wp--preset--color--ink); }
.entry-content .sc-section.sc-cta .sc-cta-band, .entry-content > .sc-cta-band {
	width: 100%; padding: clamp(32px, 5vw, 72px) !important; gap: 24px;
}
.entry-content > .sc-cta-band { border-radius: 0; }
.sc-cta-band h2, .sc-cta-band p { color: var(--wp--preset--color--paper) !important; }
.sc-btn-gold .uagb-buttons-repeater:hover, .sc-btn-gold .wp-block-button__link:hover { background: var(--wp--preset--color--ink) !important; color: var(--wp--preset--color--paper) !important; }
.sc-actions .uagb-buttons__wrap { gap: 16px; }
.sc-actions a { white-space: normal; text-align: center; }
.home .sc-actions .uagb-buttons-repeater { color: var(--wp--preset--color--ink) !important; }
.sc-actions .uagb-button__link { color: inherit !important; }
.home .sc-actions .uagb-buttons-repeater:hover { background: var(--wp--preset--color--ink) !important; color: var(--wp--preset--color--paper) !important; }

.sc-contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: clamp(32px, 7vw, 96px); width: 100%; }
.sc-contact-details { max-width: 36ch; }
.sc-contact-details h3, .sc-form-notice h3 { font-size: 28px; }
.entry-content .sc-contact-details a { display: block; min-height: 44px; color: var(--wp--preset--color--ink); text-decoration: none; overflow-wrap: anywhere; }
.sc-contact-details p:last-child { margin-top: 24px; }
.sc-form form { max-width: none; gap: 24px; }
.sc-form form > p { margin: 0; }
.sc-form label { font-size: 16px; }
.sc-form input, .sc-form textarea { font-size: 16px; border-color: var(--wp--preset--color--ink-soft); }
.sc-form textarea { resize: vertical; min-height: 160px; }
.sc-form .sc-privacy-check { display: flex; align-items: flex-start; gap: 12px; }
.sc-form .sc-privacy-check input { width: 22px; height: 22px; flex: 0 0 22px; margin-top: 5px; accent-color: var(--wp--preset--color--ink); }
.sc-form .sc-privacy-check label { display: block; min-height: 44px; font-weight: 400; }
.sc-form button { justify-self: start; min-height: 48px; }
.sc-form button:disabled { cursor: wait; opacity: .65; }
.sc-form .sc-form-privacy { font-size: 14px; line-height: 1.6; }
.sc-form-notice { border: 1px solid var(--wp--preset--color--ink-soft); padding: 24px; margin-bottom: 24px; background: var(--wp--preset--color--stone); }
.sc-form-notice ul { margin: 0 0 0 20px; }
.sc-field-error { font-weight: 400; font-size: 15px; }
.sc-form [aria-invalid="true"] { border-width: 2px; }

.sc-project-grid { width: 100%; }
.sc-filters button { min-height: 44px; }
.sc-project-card__media { aspect-ratio: 4 / 3; }
.entry-content a.sc-project-card { text-decoration: none; }
.sc-project-card:is(:hover, :focus-visible) .sc-project-card__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.sc-project-card:focus-visible { outline-offset: 8px; }
.sc-project-count { margin-bottom: 24px; font-size: 16px; }
.sc-project-single { max-width: var(--sc-content); margin: 0 auto; padding: 72px var(--sc-gutter); }
.sc-project-single h1 { font-size: clamp(40px, 6vw, 80px); margin-block: 24px; }
.sc-project-single .sc-project-description { max-width: 70ch; margin: 48px 0; font-size: 18px; }
.sc-project-single .sc-project-cover { width: 100%; max-height: 720px; object-fit: cover; border-radius: var(--sc-radius-media); }
.sc-project-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-block: 32px 64px; }
.sc-project-gallery figure { margin: 0; }
.sc-project-gallery img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--sc-radius-media); }
.sc-project-gallery figcaption { font-size: 15px; margin-top: 12px; }
.sc-project-nav { display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; border-top: 1px solid var(--wp--preset--color--concrete); padding-top: 24px; }
.entry-content .sc-project-nav a, .sc-project-back { display: inline-flex; min-height: 44px; align-items: center; text-decoration: none; color: var(--wp--preset--color--ink); }

.entry-content .sc-legal { width: 100% !important; max-width: 760px !important; margin-inline: auto !important; padding: 64px var(--sc-gutter) 96px !important; }
.sc-legal h1 { font-family: var(--wp--preset--font-family--syne); font-size: clamp(36px, 4vw, 56px); line-height: 1.12; margin-bottom: 40px; }
.sc-legal h2 { font-family: var(--wp--preset--font-family--syne); font-size: clamp(24px, 2.4vw, 30px); line-height: 1.2; margin-top: 40px !important; margin-bottom: 16px; }
.sc-legal p, .sc-legal li { font-size: 16px; line-height: 1.75; }
.sc-legal table { min-width: 560px; }
.sc-legal .wp-block-table { overflow-x: auto; }
.sc-legal a { overflow-wrap: anywhere; }
.site-footer { border-top: 1px solid var(--wp--preset--color--concrete); }
.site-footer .site-primary-footer-wrap, .site-footer .site-below-footer-wrap { background: var(--wp--preset--color--paper); padding: 48px var(--sc-gutter); }
.site-footer .ast-footer-copyright { width: 100%; }
.sc-footer-content { max-width: var(--sc-content); margin: auto; text-align: left; }
.sc-footer-top { display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; align-items: flex-start; margin-bottom: 32px; }
.sc-footer-top strong { font-family: var(--wp--preset--font-family--syne); font-size: 28px; }
.sc-footer-top p { margin: 8px 0; }
.sc-footer-content a { display: inline-flex; min-height: 44px; align-items: center; text-decoration: none; color: var(--wp--preset--color--ink); }
.sc-footer-contact { display: flex; flex-direction: column; }
.sc-footer-links { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.sc-footer-content small { display: block; margin-top: 24px; font-size: 14px; }

/* Standalone navigation needs feedback on interaction, not permanent underlines. */
.entry-content .sc-service a:not(:has(img)):is(:hover, :focus-visible),
.entry-content .sc-link a:is(:hover, :focus-visible),
.entry-content .sc-contact-details a:is(:hover, :focus-visible),
.sc-footer-content a:is(:hover, :focus-visible),
.entry-content .sc-project-nav a:is(:hover, :focus-visible),
.sc-project-back:is(:hover, :focus-visible) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}

@media (max-width: 1024px) {
	.entry-content .sc-hero { min-height: 580px; }
	.entry-content .sc-services-row { grid-template-columns: 1fr; gap: 48px; }
	.entry-content .sc-service img { max-height: 500px; }
	.entry-content .sc-service .sc-service-text { max-width: 60ch; }
	.entry-content .sc-materia > .uagb-container-inner-blocks-wrap { gap: 32px; }
}
@media (max-width: 767px) {
	.entry-content .sc-hero { min-height: 560px; padding-top: 128px !important; padding-bottom: 72px !important; }
	.home .entry-content .sc-hero { min-height: 85svh; }
	.entry-content .sc-hero .uagb-heading-text { max-width: 14ch; font-size: clamp(36px, 9.8vw, 48px) !important; }
	.entry-content .sc-section-title .uagb-heading-text { font-size: 30px !important; }
	.entry-content .sc-intro > .uagb-container-inner-blocks-wrap, .entry-content .sc-principles > .uagb-container-inner-blocks-wrap { flex-direction: column; gap: 32px; }
	.entry-content .sc-intro__title, .entry-content .sc-intro__copy, .entry-content .sc-principles__intro, .entry-content .sc-principles__list { width: 100%; }
	.home .entry-content .sc-principles__list, .entry-content .sc-materia > .uagb-container-inner-blocks-wrap, .sc-contact-layout, .sc-project-gallery { grid-template-columns: 1fr; }
	.entry-content .sc-principle img { max-height: 300px; }
	.sc-actions, .sc-actions .uagb-buttons__wrap, .sc-actions .wp-block-uagb-buttons-child { width: 100%; }
	.sc-actions .uagb-buttons__wrap { align-items: stretch; }
	.sc-form button { width: 100%; }
	.sc-footer-top { flex-direction: column; }
	.sc-project-single { padding-top: 40px; }
}
@media (prefers-reduced-motion: reduce) {
	.sc-service, .sc-project-card__media img, .wp-block-button__link { transition: none; }
	.sc-project-card:hover .sc-project-card__media img { transform: none; }
}
