.epi-post,
.epi-archive,
.epi-search,
.epi-error-page {
	padding-block: var(--section-y);
}

.epi-post__header,
.epi-archive__header,
.epi-search__header {
	max-width: var(--measure-wide);
	margin: 0 auto var(--space-10);
}

.epi-post__header h1,
.epi-archive__header h1,
.epi-search__header h1,
.epi-error-page h1 {
	font-family: var(--font-display);
	font-size: var(--text-h1);
	line-height: var(--leading-tight);
}

.epi-post__featured,
.epi-post__content {
	max-width: var(--measure-wide);
	margin-inline: auto;
}

.epi-post__featured img,
.epi-post__content img,
.epi-post__content figure img {
	max-width: 100%;
	height: auto;
	border-radius: var(--radius-media);
}

.epi-post__content {
	font-size: var(--text-body-lg);
	line-height: var(--leading-body);
}

.epi-post__content > * + * {
	margin-block-start: 1.25em;
}

.epi-post__content h2,
.epi-post__content h3,
.epi-post__content h4,
.epi-post__content h5,
.epi-post__content h6 {
	font-family: var(--font-display);
	line-height: var(--leading-tight);
	margin-block: 1.6em 0.55em;
}

.epi-post__content h2 {
	font-size: var(--text-h2);
}
.epi-post__content h3 {
	font-size: var(--text-h3);
}
.epi-post__content h4 {
	font-size: var(--text-h4);
}
.epi-post__content ul,
.epi-post__content ol {
	padding-inline-start: 1.5em;
}
.epi-post__content li + li {
	margin-block-start: 0.45em;
}
.epi-post__content blockquote {
	margin-inline: 0;
	padding: var(--space-4) var(--space-6);
	border-inline-start: 3px solid var(--red-600);
	background: var(--paper-warm);
	font-family: var(--font-display);
	font-size: var(--text-h3);
}
.epi-post__content table {
	width: 100%;
	border-collapse: collapse;
}
.epi-post__content th,
.epi-post__content td {
	padding: 0.75rem;
	border: 1px solid var(--border-subtle);
	text-align: start;
}
.epi-post__content pre,
.epi-post__content iframe,
.epi-post__content video {
	max-width: 100%;
}
.epi-post__content pre {
	overflow: auto;
	padding: 1rem;
	background: var(--ink-50);
}
.epi-post__content .wp-block-embed {
	width: 100%;
}

.epi-post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: var(--space-6);
}

.epi-post-card img {
	width: 100%;
	height: auto;
}
.epi-post-card h2 {
	font-family: var(--font-display);
	font-size: var(--text-h3);
}
.epi-slot-media {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}
.sig-hero__media > .epi-slot-media,
[class*="__media"] > .epi-slot-media,
[class*="__frame"] > .epi-slot-media,
[class$="-band"] > .epi-slot-media {
	position: absolute;
	inset: 0;
	aspect-ratio: auto;
}
.epi-slot-media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Featured images fill card frames without changing the photo's proportions. */
.sig-shot__frame > a {
	display: block;
	position: absolute;
	inset: 0;
}
.sig-shot__frame img,
.prj-card__media img,
.cs-related__frame img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	object-fit: cover;
	object-position: center;
}
.sig-shot__frame .epi-slot-media,
.home-svc__media .epi-slot-media,
.prj-card__media .epi-slot-media,
.mkt-item__media .epi-slot-media,
.cre-type__media .epi-slot-media,
.env-zone__media .epi-slot-media,
.lfp-product__media .epi-slot-media {
	transition: transform var(--duration-slow) var(--ease-out);
}
.sig-shot:hover .sig-shot__frame .epi-slot-media,
.home-svc__item:hover .home-svc__media .epi-slot-media,
.prj-card:hover .prj-card__media .epi-slot-media,
.mkt-item:hover .mkt-item__media .epi-slot-media,
.cre-type:hover .cre-type__media .epi-slot-media,
.env-zone:hover .env-zone__media .epi-slot-media,
.lfp-product:hover .lfp-product__media .epi-slot-media {
	transform: scale(1.03);
}
.epi-slot-media--empty {
	display: block;
	aspect-ratio: 3 / 2;
	background: var(--ink-50);
}
.sig-footer__tagline {
	margin-top: var(--space-4);
	max-width: 34ch;
	font-size: var(--text-body-sm);
	color: rgba(255, 255, 255, 0.74);
}
.sig-section--ink h1,
.sig-section--ink h2,
.sig-section--ink h3,
.sig-section--ink h4,
.sig-section--ink h5,
.sig-section--ink h6 {
	color: var(--paper);
}

.sig-header__nav .menu,
.sig-footer ul,
.sig-header__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.sig-header__nav .menu,
.sig-header__nav .epi-nav__links {
	display: flex;
	align-items: center;
	gap: var(--space-6);
}
.sig-header__nav .menu > li,
.sig-header__nav .epi-nav__links > li {
	position: relative;
}
.sig-header__nav .sub-menu {
	display: none;
	position: absolute;
	z-index: var(--z-nav);
	top: 100%;
	left: 0;
	min-width: 250px;
	padding: var(--space-3);
	background: var(--paper);
	border: 1px solid var(--border-subtle);
	box-shadow: var(--shadow-3);
}
.sig-header__nav .menu-item-has-children:hover > .sub-menu,
.sig-header__nav .menu-item-has-children:focus-within > .sub-menu {
	display: grid;
	gap: var(--space-2);
}
.sig-header__nav .sub-menu a {
	display: block;
	padding: var(--space-2) var(--space-3);
}
.sig-header__nav a {
	color: inherit;
	text-decoration: none;
}
.sig-header__nav a:hover,
.sig-header__nav a:focus-visible {
	color: var(--red-600);
}
.sig-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--space-8);
}
.sig-footer__grid nav h2 {
	color: var(--paper);
	font-size: var(--text-h4);
}
.sig-footer__grid nav ul {
	display: grid;
	gap: var(--space-2);
}
.sig-footer__grid nav a {
	color: var(--text-inverse-secondary);
}
.sig-footer__grid nav a:hover {
	color: var(--paper);
}
.epi-drawer nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.epi-drawer nav .sub-menu {
	padding-inline-start: var(--space-5);
}
.epi-drawer nav .sub-menu a {
	display: block;
	padding: var(--space-2) 0;
	color: var(--text-inverse-secondary);
}
.epi-drawer nav .menu-item > a {
	display: block;
}
.wpcf7 .sig-form .epi-form-intro__heading {
	margin: 0;
	color: var(--text-primary);
	font-size: var(--text-h3);
	line-height: 1.2;
}
.wpcf7 .sig-form .epi-form-intro__description {
	margin: var(--space-3) 0 0;
	color: var(--text-secondary);
	font-size: var(--text-body);
	line-height: var(--leading-body);
}
.wpcf7 form .wpcf7-response-output {
	margin: var(--space-4) 0 0;
	padding: var(--space-3);
	border: 1px solid var(--border-default);
}
.wpcf7 form .wpcf7-not-valid-tip {
	display: block;
	margin-top: var(--space-1);
	color: var(--status-danger-fg);
	font-size: var(--text-body-sm);
}
.wpcf7 form .wpcf7-spinner {
	display: none;
}
.wpcf7 form .wpcf7-submit {
	cursor: pointer;
}
.wpcf7 form input[type="submit"].epi-btn {
	display: block;
	width: 100%;
	min-height: var(--tap-min);
	padding: var(--space-3) var(--space-6);
	background: var(--surface-brand);
	color: #fff;
	-webkit-text-fill-color: #fff;
	border: 1px solid transparent;
	font-weight: var(--weight-semibold);
	line-height: 1.4;
}
.wpcf7 form input[type="submit"].epi-btn:hover {
	background: var(--surface-brand-hover);
}
.wpcf7 form input[type="submit"].epi-btn:active {
	background: var(--surface-brand-active);
}
.wpcf7 form input[type="submit"].epi-btn:focus-visible {
	outline: 2px solid var(--ink-950);
	outline-offset: 3px;
}
.wpcf7 form input[aria-invalid="true"],
.wpcf7 form textarea[aria-invalid="true"],
.wpcf7 form select[aria-invalid="true"] {
	border-color: var(--status-danger-fg);
}
.sig-brand {
	display: flex;
	align-items: center;
}
.sig-brand .sig-logo {
	display: block;
	width: auto;
	max-width: min(300px, 100%);
	height: 40px;
}
.epi-icon svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.wp-block-image figcaption,
.wp-block-gallery figcaption {
	color: var(--text-muted);
	font-size: var(--text-caption);
}
.wp-block-separator {
	border-color: var(--border-subtle);
}

@media (max-width: 1023px) {
	.sig-header__nav,
	.sig-header__cta {
		display: none;
	}
}

@media (min-width: 1024px) {
	.sig-header + .epi-drawer {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* Production content rendered through the custom theme. */
.epi-production-section { padding-block: clamp(2.5rem, 6vw, 5rem); }
.epi-production-section:nth-child(even) { background: #f4f5f5; }
.epi-production-section .epi-container { display: grid; gap: 1.5rem; }
.epi-production-section h1, .epi-production-section h2, .epi-production-section h3 { line-height: 1.15; }
.epi-production-section h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); }
.epi-production-section h2 { font-size: clamp(1.8rem, 3.5vw, 3rem); }
.epi-production-section p { max-width: 75ch; }
.epi-production-section img { max-width: 100%; height: auto; }
.epi-production-gallery, .epi-production-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 2rem; }
.epi-production-card { padding: 1.5rem; border: 1px solid #ddd; background: #fff; }
.epi-production-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; margin-bottom: 1rem; }
.epi-production-card h3 { margin-bottom: .75rem; }

.epi-production-footer-contact { display: flex; flex-wrap: wrap; gap: 1.5rem; padding-top: 2rem; font-style: normal; align-items: center; }

/* Footer follows the shared four-column design. */
.sig-footer address span, .sig-footer address a { display: block; }
.sig-footer__grid nav h2 { font-size: var(--text-overline); color: rgba(255,255,255,.56); }
.sig-footer__grid nav ul { display: block; }
.sig-footer__grid nav a { color: rgba(255,255,255,.74); }
.sig-footer__grid nav a:hover { color: var(--paper); }
