/* ==========================================================================
   SILVA — component styles
   Tokens (colours, fonts, sizes, spacing) are defined in theme.json and used
   here only through the --wp--preset--* custom properties.
   ========================================================================== */

:root {
	--silva-content-left: max(0px, calc((100% - var(--wp--style--global--content-size)) / 2));
	--silva-ease: cubic-bezier(.2, .7, .2, 1);
	--silva-gold-on-dark: #C9A06A;
	--silva-line-on-dark: rgba(255, 255, 255, .14);
	--silva-header-logo: 156px;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
:where(img) { height: auto; }
:target { scroll-margin-top: 1rem; }

/* Sections inside page content sit edge to edge with no gaps */
.wp-site-blocks > *,
.silva-sections > *,
.silva-main > * { margin-block-start: 0 !important; margin-block-end: 0; }

/* --------------------------------------------------------------------------
   Typography helpers
   ----------------------------------------------------------------------- */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--label) !important;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.4;
	color: var(--wp--preset--color--accent);
	margin-block-end: 0;
}
.is-style-eyebrow + * { margin-block-start: .9rem; }

.is-style-text-link { font-size: var(--wp--preset--font-size--label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.is-style-text-link a {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: .3rem;
	transition: color .2s var(--silva-ease);
}
.is-style-text-link a:hover { color: var(--wp--preset--color--contrast); }

body .silva-measure, body .silva-lead { max-width: 46rem; margin-left: var(--silva-content-left) !important; }
.silva-lead { color: var(--wp--preset--color--body); }

/* --------------------------------------------------------------------------
   Buttons
   ----------------------------------------------------------------------- */
.wp-block-button__link { transition: background-color .2s var(--silva-ease), color .2s var(--silva-ease), border-color .2s var(--silva-ease); }
.wp-block-button.is-style-light .wp-block-button__link {
	background: var(--wp--preset--color--cream);
	border-color: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--contrast);
}
.wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); color: var(--wp--preset--color--contrast); }
.wp-block-button.is-style-outline-light .wp-block-button__link {
	background: transparent;
	border-color: rgba(255, 255, 255, .55);
	color: var(--wp--preset--color--white);
}
.wp-block-button.is-style-outline-light .wp-block-button__link:hover { background: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); color: var(--wp--preset--color--contrast); }
:where(.wp-block-button__link):focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px; }

/* --------------------------------------------------------------------------
   Header
   ----------------------------------------------------------------------- */
.silva-header__inner { gap: 1.5rem; }
.silva-logo { display: block; line-height: 0; flex-shrink: 0; }
.silva-logo img { width: var(--silva-header-logo); max-width: none; height: auto; }

.silva-header--solid { border-bottom: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--contrast); }
.silva-header--overlay { color: var(--wp--preset--color--white); }

.silva-site-header.is-overlay { position: absolute; inset: 0 0 auto 0; z-index: 30; }
.admin-bar .silva-site-header.is-overlay { top: var(--wp-admin--admin-bar--height, 32px); }

.silva-header .wp-block-navigation { color: inherit; }
.silva-header .wp-block-navigation-item__content { padding-block: .35rem; transition: opacity .2s var(--silva-ease), color .2s var(--silva-ease); }
.silva-header--solid .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }
.silva-header--overlay .wp-block-navigation-item__content:hover { opacity: .7; }
.silva-header .current-menu-item > .wp-block-navigation-item__content,
.silva-header--solid .wp-block-navigation-item__content[aria-current] { color: var(--wp--preset--color--accent); }

.silva-header__cta .wp-block-button__link { padding: .8rem 1.25rem; white-space: nowrap; }

/* The navigation is set to "always" collapse; show it inline on wide screens. */
@media (min-width: 1140px) {
	.silva-header .wp-block-navigation__responsive-container-open.always-shown { display: none; }
	.silva-header .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) {
		display: block;
		position: relative;
		width: 100%;
		z-index: auto;
		background-color: inherit;
	}
	.silva-header .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
	.silva-header .wp-block-navigation__responsive-container:not(.is-menu-open) .silva-nav-contact { display: none; }
}
@media (max-width: 781px) {
	:root { --silva-header-logo: 124px; }
	.silva-header .silva-header__cta { display: none; }
}
.silva-header .wp-block-navigation__responsive-container-open,
.silva-header .wp-block-navigation__responsive-container-close { color: inherit; }
.silva-header .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }

/* Mobile / tablet overlay menu */
.silva-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 2rem clamp(1.25rem, 5vw, 4.5rem);
}
.silva-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; }
.silva-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.4rem !important; }
.silva-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.75rem;
	letter-spacing: -0.01em;
	text-transform: none;
	font-weight: 300;
}
.silva-header .wp-block-navigation__responsive-container.is-menu-open .silva-nav-contact .wp-block-navigation-item__content { color: var(--silva-gold-on-dark); }

/* --------------------------------------------------------------------------
   Hero
   ----------------------------------------------------------------------- */
.silva-hero .wp-block-cover__inner-container { max-width: var(--wp--style--global--content-size); }
.silva-hero .is-style-eyebrow { color: var(--silva-gold-on-dark); }
body .silva-hero__title { font-size: clamp(2.375rem, 5vw, 4.25rem) !important; font-weight: 300; letter-spacing: -0.03em; max-width: 19ch; text-wrap: balance; margin-left: var(--silva-content-left) !important; line-height: 1.05; }
body .silva-hero__text { max-width: 36rem; margin-left: var(--silva-content-left) !important; color: rgba(255, 255, 255, .86); }
.silva-hero .wp-block-cover__image-background { object-position: 50% 55%; }

/* --------------------------------------------------------------------------
   Project cards + grids
   ----------------------------------------------------------------------- */
.silva-project-grid .wp-block-post-template { margin-top: var(--wp--preset--spacing--40); }
.is-style-project-card .wp-block-post-featured-image { overflow: hidden; background: var(--wp--preset--color--base-alt); }
.is-style-project-card .wp-block-post-featured-image img { transition: transform .9s var(--silva-ease); }
.is-style-project-card:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.is-style-project-card .is-style-eyebrow { margin-top: .4rem; }
.is-style-project-card .wp-block-post-title { margin-top: .2rem !important; }
.is-style-project-card .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }
.is-style-project-card .wp-block-post-excerpt { margin-top: .1rem; }
.is-style-project-card .wp-block-post-excerpt__excerpt { margin: 0; }

/* Category filter pills */
.silva-filters ul { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; margin: var(--wp--preset--spacing--40) 0 0; padding: 0; }
.silva-filters a {
	display: inline-block;
	padding: .6rem 1.15rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-size: .6875rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1.2;
	transition: border-color .2s var(--silva-ease), background-color .2s var(--silva-ease), color .2s var(--silva-ease);
}
.silva-filters a:hover { border-color: var(--wp--preset--color--contrast); }
.silva-filters a[aria-current] { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--white); }

.wp-block-query-pagination { font-size: var(--wp--preset--font-size--small); gap: 1rem; }

/* --------------------------------------------------------------------------
   Process (dark band)
   ----------------------------------------------------------------------- */
.silva-steps { margin: 0; }
.silva-step { padding-inline: 2rem; border-left: 1px solid var(--silva-line-on-dark); }
.silva-step:first-child { padding-left: 0; border-left: 0; }
.silva-step__num { font-family: var(--wp--preset--font-family--heading); font-weight: 300; font-size: 2.25rem; letter-spacing: -0.02em; line-height: 1; color: var(--silva-gold-on-dark); margin: 0; }
.silva-step__title {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--label) !important;
	font-weight: 600 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase;
	color: var(--wp--preset--color--white) !important;
	margin-top: 1.4rem !important;
}
.silva-step__title + p { margin-top: .5rem; }
@media (max-width: 781px) {
	.silva-step, .silva-step:first-child { padding: 1.5rem 0 0; border-left: 0; border-top: 1px solid var(--silva-line-on-dark); }
	.silva-step:first-child { border-top: 0; padding-top: 0; }
}

/* --------------------------------------------------------------------------
   Materials swatches
   ----------------------------------------------------------------------- */
body .silva-swatches { max-width: 44rem; margin-left: var(--silva-content-left) !important; }
.silva-swatch__chip { aspect-ratio: 1 / 1; width: 100%; box-shadow: inset 0 0 0 1px rgba(16, 16, 20, .07); }
.silva-swatch__name { font-size: .8125rem; font-weight: 500; color: var(--wp--preset--color--contrast); margin-top: .75rem !important; line-height: 1.35; }
.silva-swatch__desc { font-size: .75rem; color: var(--wp--preset--color--muted); margin-top: .15rem !important; line-height: 1.4; }

/* --------------------------------------------------------------------------
   Single project
   ----------------------------------------------------------------------- */
.silva-project-hero img { width: 100%; object-fit: cover; }
.silva-project-content .wp-block-gallery { margin-block: 0; }
/* Editorial masonry: keeps each photo's own proportions */
@media (min-width: 600px) {
	.silva-project-content .wp-block-gallery.has-nested-images:not(.is-cropped) { display: block; column-count: 2; column-gap: 1rem; }
	.silva-project-content .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image { width: 100% !important; margin: 0 0 1rem !important; break-inside: avoid; display: block; }
}
.silva-details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: var(--wp--preset--spacing--50);
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--line);
}
.silva-details ul { list-style: none; padding: 0; margin: 1rem 0 0; }
.silva-details li { padding: .7rem 0; border-bottom: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--contrast); }

/* --------------------------------------------------------------------------
   Footer
   ----------------------------------------------------------------------- */
.silva-footer__logo { text-align: center; margin: 0; line-height: 0; }
.silva-footer__logo img { width: 190px; height: auto; }
body .silva-footer__lead { max-width: 34rem; margin-left: var(--silva-content-left) !important; }
.silva-footer__rule { border-color: var(--silva-line-on-dark) !important; background: var(--silva-line-on-dark) !important; color: var(--silva-line-on-dark) !important; opacity: 1; }
.silva-footer__bar { gap: 1rem 2rem; }
.silva-footer__bar p { margin: 0; }
.silva-footer__nav ul { display: flex; flex-wrap: wrap; gap: .75rem 2rem; list-style: none; margin: 0; padding: 0; }
.silva-footer__nav a { color: var(--wp--preset--color--white); text-decoration: none; font-size: var(--wp--preset--font-size--label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.silva-footer__nav a:hover { color: var(--silva-gold-on-dark); }

/* --------------------------------------------------------------------------
   Content pages
   ----------------------------------------------------------------------- */
.silva-page-content > * + h2 { margin-top: var(--wp--preset--spacing--50); }

/* --------------------------------------------------------------------------
   Accessibility / motion
   ----------------------------------------------------------------------- */
a:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Card titles: light weight, tight tracking */
.is-style-project-card .wp-block-post-title { font-weight: 400; letter-spacing: -0.015em; }
h1, h2, h3 { text-wrap: balance; }
