/**
 * SEO landing pages, contact page, breadcrumbs.
 */

/* Inner pages: white page field (matches projects archive + breadcrumbs bar). */
body.tw-carpentry-inner {
	background: var(--tw-color-surface, #ffffff);
	--tw-frame-inset: clamp(14px, 2.2vw, 28px);
	--tw-hero-radius: clamp(28px, 4.5vw, 42px);
	--tw-hero-inner-radius: max(0px, calc(var(--tw-hero-radius) - var(--tw-frame-inset)));
	--tw-hero-pad: clamp(1.35rem, 5vw, 3.25rem);
	--tw-hero-pad-x: max(var(--tw-hero-pad), env(safe-area-inset-left, 0px));
	--tw-hero-pad-x-end: max(var(--tw-hero-pad), env(safe-area-inset-right, 0px));
	--tw-page-pad-top: clamp(3rem, 7vw, 5.5rem);
	--tw-header-frame-inset: clamp(16px, 2.4vw, 32px);
	--tw-top-bar-pad-y: clamp(0.8rem, 2vw, 1.1rem);
	--tw-inner-header-bar-height: clamp(3.35rem, 7.5vw, 4.5rem);
	--tw-inner-header-offset: calc(
		var(--tw-header-frame-inset) + (var(--tw-top-bar-pad-y) * 2) + var(--tw-inner-header-bar-height)
	);
	--tw-breadcrumbs-offset: calc(var(--tw-inner-header-offset) + clamp(0.65rem, 1.8vw, 1.15rem));
	position: relative;
}

body.tw-carpentry-inner #primary.site-main {
	background: var(--tw-color-surface, #ffffff);
	margin: 0;
	padding: 0;
}

body.tw-carpentry-inner #primary.site-main > .tw-archive-projects:first-child {
	margin-top: 0;
}

/* Inner pages — floating header over content (same shell as insight articles) */
body.tw-carpentry-inner .tw-site-top-bar.site-header {
	position: absolute;
	top: var(--tw-header-frame-inset);
	left: var(--tw-header-frame-inset);
	right: var(--tw-header-frame-inset);
	z-index: 40;
	margin: 0;
}

/* Single insight — half-viewport photo hero */
body.tw-has-photo-hero.tw-carpentry-inner {
	--tw-insight-hero-min: 50vh;
}

@supports (height: 100svh) {
	body.tw-has-photo-hero.tw-carpentry-inner {
		--tw-insight-hero-min: 50svh;
	}
}

body.tw-has-photo-hero.tw-carpentry-inner #primary.site-main {
	padding-top: 0;
}

/* Breadcrumbs bar — thin strip below photo hero */
body.tw-has-photo-hero .tw-breadcrumbs-bar--below-hero {
	position: relative;
	z-index: 5;
	margin: 0;
	padding: 0;
	background: linear-gradient(180deg, #ececee 0%, #e6e8ec 100%);
	border-block: 1px solid rgba(26, 26, 26, 0.07);
	box-sizing: border-box;
	font-family: "Manrope", var(--tw-font-sans, system-ui, sans-serif);
}

body.tw-has-photo-hero .tw-breadcrumbs-bar--below-hero .tw-breadcrumbs-bar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(0.75rem, 2vw, 1.5rem);
	min-height: clamp(2.15rem, 4.2vw, 2.65rem);
	padding-block: clamp(0.35rem, 0.9vw, 0.5rem);
	padding-inline:
		calc(var(--tw-frame-inset, 14px) + var(--tw-hero-pad-x, 1.35rem))
		calc(var(--tw-frame-inset, 14px) + var(--tw-hero-pad-x-end, 1.35rem));
}

body.tw-has-photo-hero .tw-breadcrumbs-bar--below-hero .tw-breadcrumbs-bar__trail {
	flex: 1 1 auto;
	min-width: 0;
}

body.tw-has-photo-hero .tw-breadcrumbs-bar--below-hero .tw-breadcrumbs {
	margin-bottom: 0;
	font-size: clamp(0.72rem, 1.05vw, 0.84rem);
	color: var(--tw-color-muted, #656a72);
}

body.tw-has-photo-hero .tw-breadcrumbs-bar__graphic {
	--tw-whyus-draw-duration: 1.55s;
	--tw-whyus-dot-duration: 0.65s;
	--tw-whyus-delay-scale: 0.58;
	flex: 0 0 auto;
	width: clamp(6.5rem, 14vw, 9.75rem);
	height: clamp(1.65rem, 3vw, 2.15rem);
	color: rgba(26, 26, 26, 0.32);
	overflow: hidden;
	pointer-events: none;
}

body.tw-has-photo-hero .tw-breadcrumbs-bar__graphic .tw-whyus-graphic__svg {
	display: block;
	width: 100%;
	height: auto;
	transform: translateY(24%);
}

/* Inner pages without photo hero — breadcrumbs below floating header */
body.tw-carpentry-inner:not(.tw-has-photo-hero) .tw-breadcrumbs-bar {
	position: relative;
	z-index: 35;
	background: var(--tw-color-surface, #ffffff);
	color: var(--tw-color-text, #1a1a1a);
	margin-top: var(--tw-breadcrumbs-offset);
	padding-block: clamp(0.5rem, 1.25vw, 0.75rem) 0;
	padding-inline:
		calc(var(--tw-frame-inset) + var(--tw-hero-pad-x))
		calc(var(--tw-frame-inset) + var(--tw-hero-pad-x-end));
	box-sizing: border-box;
	font-family: "Manrope", var(--tw-font-sans, system-ui, sans-serif);
}

/* Photo hero pages — dark floating header over hero image */
body.tw-carpentry-inner:not(.tw-has-photo-hero) .tw-site-top-bar__bg,
body.tw-carpentry-inner:not(.tw-has-photo-hero) .tw-site-top-bar__overlay {
	opacity: 0;
}

body.tw-carpentry-inner:not(.tw-has-photo-hero) .tw-site-top-bar__shell {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

body.tw-carpentry-inner:not(.tw-has-photo-hero) .tw-site-top-bar .tw-logo-animated--on-dark {
	--tw-logo-anim-color: #16181c;
}

body.tw-carpentry-inner:not(.tw-has-photo-hero) .tw-site-top-bar .tw-primary-menu-toggle {
	color: var(--tw-color-text, #1a1a1a);
}

body.tw-carpentry-inner .tw-breadcrumbs-bar__inner {
	width: 100%;
	max-width: none;
	margin: 0 auto;
}

body.tw-carpentry-inner .tw-breadcrumbs-bar .tw-breadcrumbs {
	margin-bottom: 0;
}

/* Inner shell top rhythm below breadcrumbs bar */
body.tw-has-photo-hero .tw-archive-projects > .tw-archive-projects__inner:first-child,
body.tw-has-photo-hero .tw-single-project > .tw-archive-projects__inner:first-child {
	padding-top: clamp(1.5rem, 3.5vw, 2.5rem);
}

body.tw-carpentry-inner:not(.tw-has-photo-hero) .tw-archive-projects > .tw-archive-projects__inner:first-child {
	padding-top: clamp(1rem, 2.5vw, 1.75rem);
}

body.tw-carpentry-inner:not(.tw-has-photo-hero) .tw-single-project {
	padding-top: clamp(0.5rem, 1.5vw, 1rem);
}

body.tw-has-photo-hero .tw-inner-page,
body.tw-has-photo-hero .tw-error-404 {
	padding-top: clamp(2rem, 5vw, 3.5rem);
}

.tw-breadcrumbs {
	margin-bottom: 1.5rem;
	font-size: 0.875rem;
}

.tw-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tw-breadcrumbs__item:not(:last-child)::after {
	content: '/';
	margin-left: 0.5rem;
	opacity: 0.45;
}

.tw-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

.tw-breadcrumbs a:hover {
	text-decoration: underline;
}

.tw-landing__content--below-archive-header {
	max-width: 42rem;
	margin-bottom: clamp(1.5rem, 3vw, 2rem);
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--tw-color-text, #1a1a1a);
}

.tw-photo-hero__actions {
	margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

/* Split hero: subtitle above title, copy left, image right */
.tw-page-hero-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 42%);
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
	margin-bottom: clamp(1.75rem, 4vw, 2.5rem);
}

.tw-page-hero-split__content {
	min-width: 0;
}

.tw-page-hero-split__content .tw-page-hero-split__actions {
	margin-top: clamp(1rem, 2.2vw, 1.35rem);
}

.tw-page-hero-split__content .tw-archive-projects__intro {
	margin-bottom: 0;
}

.tw-archive-projects--about .tw-page-hero-split {
	margin-bottom: 0;
}

.tw-archive-projects--about .tw-page-hero-split__actions .tw-hero-btn--muted {
	background: rgba(77, 77, 77, 0.06);
	border: 1px solid rgba(77, 77, 77, 0.14);
	color: var(--tw-heading-color, #1a1a1a);
}

.tw-archive-projects--about .tw-page-hero-split__actions .tw-hero-btn--muted:hover,
.tw-archive-projects--about .tw-page-hero-split__actions .tw-hero-btn--muted:focus-visible {
	background: rgba(77, 77, 77, 0.1);
	color: var(--tw-heading-color, #1a1a1a);
}

.tw-page-hero-split__media {
	margin: 0;
	min-width: 0;
	border-radius: var(--tw-bento-radius, 12px);
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(77, 77, 77, 0.12);
	aspect-ratio: 4 / 3;
	background: rgba(77, 77, 77, 0.06);
}

.tw-page-hero-split__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}

.tw-archive-projects--service-single .tw-landing__content--below-archive-header {
	max-width: none;
}

/* Contact band then projects slider (service + single project pages). */
.tw-contact-section-band {
	margin-top: clamp(2rem, 5vw, 3.5rem);
	width: 100%;
	box-sizing: border-box;
}

.tw-archive-projects--about .tw-home-section--testimonials,
.tw-archive-projects--about .tw-home-section--clients {
	margin-top: clamp(2rem, 5vw, 3.5rem);
}

.tw-archive-projects--about .tw-home-section--clients + .tw-contact-section-band {
	margin-top: clamp(2rem, 5vw, 3.5rem);
}

.tw-archive-projects > .tw-home-section--testimonials,
.tw-archive-projects > .tw-home-section--clients,
.tw-archive-projects > .tw-contact-section-band {
	padding-inline:
		calc(var(--tw-frame-inset) + var(--tw-hero-pad-x))
		calc(var(--tw-frame-inset) + var(--tw-hero-pad-x-end));
	box-sizing: border-box;
}

.tw-archive-projects--service-single .tw-archive-projects__inner > .tw-contact-section-band {
	margin-top: clamp(1.25rem, 3vw, 2rem);
}

.tw-single-project__contact {
	width: 100%;
	min-width: 0;
	margin-top: clamp(1.25rem, 3vw, 2rem);
	padding-inline:
		calc(var(--tw-frame-inset) + var(--tw-hero-pad-x))
		calc(var(--tw-frame-inset) + var(--tw-hero-pad-x-end));
	box-sizing: border-box;
}

.tw-single-project__contact .tw-contact-section-band {
	margin-top: 0;
	width: 100%;
}

.tw-contact-section-band + .tw-projects-carousel-band {
	margin-top: clamp(1.25rem, 3vw, 2rem);
}

.tw-single-project + .tw-projects-carousel-band {
	margin-top: clamp(2rem, 5vw, 3.5rem);
}

.tw-archive-projects--services-hub > .tw-projects-carousel-band {
	margin-top: clamp(2rem, 5vw, 3.5rem);
}

.tw-contact-section-band__hero {
	position: relative;
	display: block;
	width: 100%;
	min-height: 0;
	border-radius: var(--tw-bento-radius, 12px);
	overflow: hidden;
	isolation: isolate;
}

/* Content-sized band — not full viewport height like the homepage hero. */
.tw-contact-section-band__hero.tw-hero-home {
	width: 100%;
	max-width: 100%;
	height: auto;
	min-height: 0;
	max-height: none;
	border: none;
	background: transparent;
}

.tw-contact-section-band__body,
.tw-contact-section-band__form {
	background: transparent;
}

.tw-contact-section-band__hero .tw-hero-home__bg,
.tw-contact-section-band__hero .tw-hero-home__overlay {
	border-radius: var(--tw-bento-radius, 12px);
}

.tw-contact-section-band__hero .tw-hero-home__bg {
	transform: none;
}

.tw-contact-section-band__hero .tw-hero-home__overlay {
	opacity: var(--tw-hero-photo-overlay-opacity, 0.88);
}

.tw-contact-section-band__bg--fallback {
	background: linear-gradient(
		125deg,
		rgba(30, 30, 30, 0.98) 0%,
		rgba(77, 77, 77, 0.94) 48%,
		rgba(40, 40, 40, 0.96) 100%
	);
}

.tw-contact-section-band__hero .tw-hero-home__inner {
	flex: 0 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: clamp(2.5rem, 6vw, 4rem) clamp(1.35rem, 3.5vw, 2.5rem);
	overflow: visible;
}

/* Hero/image band is full width; copy + form stay in a centred column */
.tw-contact-section-band__body {
	width: 100%;
	max-width: 40rem;
	margin: 0 auto;
	box-sizing: border-box;
}

.tw-contact-section-band .tw-hero-kicker.tw-contact-overlay__kicker {
	color: rgba(255, 255, 255, 0.78);
}

.tw-contact-section-band .tw-hero-kicker__line {
	background: var(--tw-kicker-line-color-on-dark, rgba(255, 255, 255, 0.35));
}

.tw-contact-section-band .tw-hero-kicker.tw-contact-overlay__kicker {
	margin-bottom: clamp(0.35rem, 1vw, 0.5rem);
}

.tw-contact-section-band .tw-contact-overlay__title.tw-hero-title {
	color: #fff;
	text-align: left;
	margin-bottom: clamp(0.35rem, 1vw, 0.55rem);
}

.tw-contact-section-band .tw-contact-overlay__intro {
	text-align: left;
	margin-bottom: clamp(0.5rem, 1.2vw, 0.75rem);
}

.tw-contact-section-band__form {
	margin: 0 auto;
	width: 100%;
	max-width: 40rem;
}

.tw-contact-section-band__form .tw-contact-overlay__fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.75rem, 2vw, 1.1rem);
	margin-top: 0;
}

.tw-contact-section-band__form .tw-contact-overlay__field--full {
	grid-column: 1 / -1;
}

@media (max-width: 599px) {
	.tw-contact-section-band__form .tw-contact-overlay__fields {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.tw-page-hero-split {
		grid-template-columns: 1fr;
	}

	.tw-page-hero-split__media {
		max-width: 28rem;
	}
}

.tw-landing__title {
	margin: 0 0 1rem;
	color: var(--tw-heading-color, #1a1a1a);
	font-size: clamp(2rem, 5dvw, 60px);
	line-height: 0.95;
	letter-spacing: 0.02em;
}

.tw-landing__lede {
	max-width: 42rem;
	margin: clamp(0.75rem, 1.6vw, 1.05rem) 0 clamp(1.5rem, 3vw, 2rem);
	font-size: 1.05rem;
	line-height: 1.6;
	color: var(--tw-color-muted, #5c5c5c);
}

.tw-landing__content {
	font-size: 1.0625rem;
	line-height: 1.65;
	margin-bottom: 2rem;
}

.tw-landing__content p {
	margin: 0 0 1rem;
}

/* /services/ hub — bento inside .tw-archive-projects__inner */
.tw-archive-projects--services-hub .tw-landing-services-grid {
	margin-top: clamp(1.5rem, 3.5vw, 2.5rem);
}

/* Hub page hero already has “What we offer” / Services — hide duplicate bento heading */
.tw-archive-projects--services-hub .tw-landing-services-grid .tw-home-section__header--features {
	display: none;
}

.tw-archive-projects--services-hub .tw-landing-services-grid .tw-home-section__inner {
	padding: 0;
}

.tw-archive-projects--services-hub .tw-archive-projects__inner > .tw-landing__cta {
	margin-top: clamp(2rem, 4vw, 3rem);
}

.tw-archive-projects--services-hub .tw-landing__cta .tw-hero-btn--muted {
	background: rgba(77, 77, 77, 0.06);
	border: 1px solid rgba(77, 77, 77, 0.14);
	color: var(--tw-heading-color, #1a1a1a);
}

.tw-archive-projects--services-hub .tw-landing__cta .tw-hero-btn--muted:hover,
.tw-archive-projects--services-hub .tw-landing__cta .tw-hero-btn--muted:focus-visible {
	background: rgba(77, 77, 77, 0.1);
	color: var(--tw-heading-color, #1a1a1a);
}

.tw-landing-grid {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	display: grid;
	gap: 0.75rem;
}

@media (min-width: 600px) {
	.tw-landing-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.tw-landing-grid__item a {
	display: block;
	padding: 0.85rem 1rem;
	background: #fff;
	border-radius: 0.5rem;
	text-decoration: none;
	color: inherit;
	font-weight: 600;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.tw-landing-grid__item a:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.tw-landing__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
}

.tw-landing-related {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.tw-landing-related__title {
	font-size: 1.25rem;
	margin: 0 0 1rem;
}

.tw-contact-page-form {
	margin: clamp(1rem, 2.5vw, 1.5rem) auto 0;
	padding-block: 0;
	width: 100%;
	max-width: 40rem;
	box-sizing: border-box;
}

.tw-contact-page-form .tw-contact-overlay__fields {
	display: grid;
	gap: 1rem;
	margin-top: 0;
}

.tw-contact-page-form .tw-contact-overlay__form {
	width: 100%;
	max-width: 40rem;
	margin: 0 auto;
}

.tw-archive-projects__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: clamp(2rem, 5vw, 3rem) 0 clamp(1.25rem, 3vw, 1.75rem);
}

.tw-archive-projects__filter {
	padding: 0.4rem 0.85rem;
	border-radius: 999px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	background: transparent;
	font: inherit;
	font-family: inherit;
	color: var(--tw-color-text, #1a1a1a);
	-webkit-text-fill-color: currentColor;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

.tw-archive-projects__filter.is-active,
.tw-archive-projects__filter:hover,
.tw-archive-projects__filter:focus-visible {
	background: var(--tw-hero-btn-accent);
	color: #fff;
	-webkit-text-fill-color: currentColor;
	border-color: var(--tw-hero-btn-accent);
}

.tw-archive-project-card.is-filtered-out {
	display: none !important;
}

.tw-archive-projects__back {
	margin-top: 2rem;
}

.tw-archive-projects__back a {
	font-weight: 600;
}
