/* BLITZ Campaign — inner pages, archives and editorial reading surfaces. */

.blitz-document {
	min-height: 60vh;
	margin: 0;
}
.blitz-anchor-target { display: block; scroll-margin-top: 7rem; }

@media (max-width: 767px) {
	.blitz-diagnostic-item {
		grid-template-columns: 2.25rem minmax(0, 1fr);
		gap: var(--wp--preset--spacing--s);
	}
	.blitz-diagnostic-item__copy { font-size: var(--wp--preset--font-size--body); }
}

.blitz-inner-hero,
.blitz-archive-hero,
.blitz-404 {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4rem, 8vw, 8rem);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}

.blitz-inner-hero::after,
.blitz-archive-hero::after,
.blitz-404::after {
	content: "";
	position: absolute;
	inset: auto -10vw -1px 42%;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--accent));
	opacity: 0.75;
}

.blitz-service-hero { position: relative; overflow: hidden; }

.blitz-service-hero--growth::before {
	content: "";
	position: absolute;
	right: var(--wp--custom--gutter);
	bottom: 0;
	width: min(34vw, 420px);
	height: 2px;
	background: var(--wp--preset--color--accent);
}

.blitz-service-hero--creative .blitz-inner-hero__title {
	max-width: 12ch;
	font-stretch: 112%;
}

.blitz-service-hero--creative::before {
	content: "Creative / message / memory";
	position: absolute;
	right: var(--wp--custom--gutter);
	bottom: var(--wp--preset--spacing--l);
	color: var(--wp--preset--color--marker);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--eyebrow);
	letter-spacing: var(--wp--custom--tracking--eyebrow);
	text-transform: uppercase;
}

.blitz-service-hero--tech {
	background-image: linear-gradient(color-mix(in srgb, currentColor 8%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, currentColor 8%, transparent) 1px, transparent 1px);
	background-size: 48px 48px;
}

.blitz-service-hero--launch::before {
	content: "01 — 05";
	position: absolute;
	right: var(--wp--custom--gutter);
	top: 50%;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--display-s);
}

.blitz-breadcrumbs {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: clamp(2.5rem, 5vw, 5rem);
	font-size: var(--wp--preset--font-size--body-s);
	color: var(--wp--preset--color--paper-dim);
}

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

.blitz-breadcrumbs a:hover,
.blitz-breadcrumbs a:focus-visible {
	color: var(--wp--preset--color--accent);
}

.blitz-inner-hero__title,
.blitz-archive-hero .wp-block-query-title,
.blitz-404 .blitz-inner-hero__title {
	max-width: 13ch;
	margin: 0;
	font-size: clamp(2.75rem, 1.5rem + 5.5vw, 6.5rem);
	line-height: 0.94;
	letter-spacing: -0.035em;
}

.blitz-inner-hero__lead {
	max-width: 650px;
	margin-top: var(--wp--preset--spacing--l);
	font-size: var(--wp--preset--font-size--body-l);
	line-height: 1.55;
	color: var(--wp--preset--color--paper-dim);
}

.blitz-inner-hero .wp-block-buttons,
.blitz-404 .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--xl);
}

.blitz-inner-section,
.blitz-inner-cta {
	padding-block: var(--wp--preset--spacing--section);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
}

.blitz-inner-section--light {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
}

.blitz-inner-section--warm {
	background: var(--wp--preset--color--paper-warm);
	color: var(--wp--preset--color--ink);
}

.blitz-inner-section--light :where(h1,h2,h3,h4,h5,h6),
.blitz-inner-section--warm :where(h1,h2,h3,h4,h5,h6),
.blitz-reading-shell :where(h1,h2,h3,h4,h5,h6),
.blitz-collection-card :where(h1,h2,h3,h4,h5,h6),
.blitz-collection-foundation :where(h1,h2,h3,h4,h5,h6),
.blitz-contact-card :where(h1,h2,h3,h4,h5,h6) {
	/*
	 * Every light/white "card" surface needs to be in this list, not just
	 * full-bleed light sections. theme.json's global heading color
	 * (paper — right for the site's default dark surface) targets h1-h6
	 * directly, so it always wins over an inherited color:ink from a card's
	 * own background rule; inheritance only applies when nothing targets the
	 * element directly. Verified live: a heading inside
	 * .blitz-collection-foundation rendered off-white on a white card until
	 * it was added here.
	 */
	color: var(--wp--preset--color--ink);
}

.blitz-editorial-split {
	display: grid;
	gap: clamp(2rem, 6vw, 6rem);
	align-items: start;
}

.blitz-editorial-split h2,
.blitz-inner-section > .blitz-container > h2 {
	max-width: 13ch;
	margin-top: 0.75rem;
	font-size: var(--wp--preset--font-size--display-m);
	line-height: 1;
}

.blitz-answer {
	max-width: 680px;
	margin: 0;
	font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.75rem);
	line-height: 1.5;
}

.blitz-entry-meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 0;
	margin: var(--wp--preset--spacing--xl) 0 0;
	padding: 0;
	list-style: none;
	border-block: 1px solid color-mix(in srgb, currentColor 24%, transparent);
}
.blitz-entry-meta li { display: grid; gap: .35rem; padding: 1rem; border-right: 1px solid color-mix(in srgb, currentColor 20%, transparent); }
.blitz-entry-meta span { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--eyebrow); text-transform: uppercase; letter-spacing: .08em; color: var(--wp--preset--color--paper-dim); }
.blitz-entry-meta strong { font-size: var(--wp--preset--font-size--body); }
.blitz-editorial-disclosure { max-width: 70ch; padding-left: 1rem; border-left: 3px solid var(--wp--preset--color--marker); color: var(--wp--preset--color--paper-dim); }
.blitz-related { padding-block: var(--wp--preset--spacing--section); border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent); }
.blitz-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--l); }
.blitz-related-card { padding-top: var(--wp--preset--spacing--m); border-top: 2px solid var(--wp--preset--color--accent); }
.blitz-related-card h3 { margin-block: .5rem; }
@media (max-width: 767px) {
	.blitz-entry-meta { grid-template-columns: 1fr 1fr; }
	.blitz-related__grid { grid-template-columns: 1fr; }
}

.blitz-service-diagnostic { background: var(--wp--preset--color--ink); }

.blitz-diagnostic-list {
	display: grid;
	border-top: 1px solid color-mix(in srgb, currentColor 35%, transparent);
}

.blitz-diagnostic-item {
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	gap: var(--wp--preset--spacing--m);
	align-items: start;
	padding-block: var(--wp--preset--spacing--m);
	border-bottom: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

.blitz-diagnostic-item__num,
.blitz-diagnostic-item__copy { margin: 0; }
.blitz-diagnostic-item__num {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--eyebrow);
	color: var(--wp--preset--color--accent);
}
.blitz-diagnostic-item__copy {
	max-width: 62ch;
	font-size: var(--wp--preset--font-size--body-l);
	line-height: 1.45;
}

.blitz-service-limit {
	position: relative;
	background: var(--wp--preset--color--ink-raised);
}
.blitz-service-limit::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--wp--preset--color--marker);
}
.blitz-service-limit--growth::before { background: var(--wp--preset--color--accent); }
.blitz-service-limit .blitz-answer { color: var(--wp--preset--color--paper-dim); }

.blitz-capability-list,
.blitz-principles {
	display: grid;
	border-top: 1px solid currentColor;
}

.blitz-service-capabilities--creative .blitz-capability-row:nth-child(even) { margin-left: clamp(0rem, 7vw, 7rem); }
.blitz-service-capabilities--tech .blitz-capability-row { border-left: 2px solid var(--wp--preset--color--accent-deep); padding-left: var(--wp--preset--spacing--m); }
.blitz-service-process--launch .blitz-process-step { border-top: 3px solid var(--wp--preset--color--accent-deep); }

.blitz-capability-row {
	display: grid;
	gap: var(--wp--preset--spacing--s);
	padding-block: var(--wp--preset--spacing--l);
	border-bottom: 1px solid color-mix(in srgb, currentColor 20%, transparent);
}

.blitz-capability-row h3,
.blitz-capability-row p {
	margin: 0;
}

.blitz-capability-row h3 {
	font-size: var(--wp--preset--font-size--heading-m);
}

.blitz-capability-row p {
	max-width: 60ch;
	color: color-mix(in srgb, currentColor 72%, transparent);
}

.blitz-process {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin-top: var(--wp--preset--spacing--2xl);
	border-block: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

.blitz-process-step {
	position: relative;
	min-height: 180px;
	padding: var(--wp--preset--spacing--m);
	border-right: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

.blitz-process-step:last-child { border-right: 0; }

.blitz-process-step__num {
	margin: 0 0 3rem;
	font-size: var(--wp--preset--font-size--eyebrow);
	font-variant-numeric: tabular-nums;
	color: var(--wp--preset--color--accent-deep);
}

.blitz-process-step h3 { margin: 0; }

.blitz-integration {
	background: var(--wp--preset--color--ink-soft);
}

.blitz-integration h2 {
	text-decoration-line: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: 0.12em;
	text-underline-offset: 0.13em;
}

.blitz-faq {
	display: grid;
	gap: clamp(2rem, 7vw, 7rem);
}

.blitz-faq-item {
	margin: 0;
	padding-block: var(--wp--preset--spacing--m);
	border-top: 1px solid color-mix(in srgb, currentColor 25%, transparent);
}

.blitz-faq-item:last-child {
	border-bottom: 1px solid color-mix(in srgb, currentColor 25%, transparent);
}

.blitz-faq-item summary {
	min-height: 44px;
	cursor: pointer;
	font-size: var(--wp--preset--font-size--body-l);
	font-weight: 650;
}

.blitz-faq-item p {
	max-width: 64ch;
	margin: var(--wp--preset--spacing--s) 0 0;
}

.blitz-inner-cta {
	position: relative;
	overflow: hidden;
}

.blitz-inner-cta::before {
	content: "";
	display: block;
	width: 64px;
	height: 4px;
	margin-bottom: var(--wp--preset--spacing--l);
	background: var(--wp--preset--color--accent);
}

.blitz-inner-cta h2 {
	max-width: 13ch;
	margin-block: var(--wp--preset--spacing--s);
	font-size: var(--wp--preset--font-size--display-l);
}

.blitz-inner-cta .wp-block-buttons { margin-top: var(--wp--preset--spacing--l); }

.blitz-contact-page {
	display: grid;
	gap: clamp(2rem, 7vw, 7rem);
}

.blitz-contact-channels {
	display: grid;
	gap: var(--wp--preset--spacing--s);
}

.blitz-contact-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 112px;
	padding: var(--wp--preset--spacing--m);
	border: 1px solid color-mix(in srgb, currentColor 25%, transparent);
	background: var(--wp--preset--color--card);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: border-color var(--wp--custom--motion--fast) var(--wp--custom--motion--ease), transform var(--wp--custom--motion--fast) var(--wp--custom--motion--ease);
}

.blitz-contact-card:hover,
.blitz-contact-card:focus-visible {
	border-color: var(--wp--preset--color--accent-deep);
	transform: translateY(-2px);
}

.blitz-contact-card span {
	font-size: var(--wp--preset--font-size--eyebrow);
	text-transform: uppercase;
	letter-spacing: var(--wp--custom--tracking--eyebrow);
}

.blitz-contact-card strong {
	margin-top: 0.35rem;
	font-size: var(--wp--preset--font-size--body-l);
	overflow-wrap: anywhere;
}

.blitz-public-placeholder {
	display: flex;
	gap: var(--wp--preset--spacing--s) var(--wp--preset--spacing--m);
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: var(--wp--preset--spacing--l);
	padding: var(--wp--preset--spacing--s) var(--wp--preset--spacing--m);
	border: 1px dashed currentColor;
	font-size: var(--wp--preset--font-size--body-s);
}

.blitz-public-placeholder strong {
	font-family: var(--wp--preset--font-family--display);
	text-transform: uppercase;
	letter-spacing: var(--wp--custom--tracking--eyebrow);
}

.blitz-public-placeholder span { max-width: 62ch; }

.blitz-collection-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--l);
}

.blitz-collection-card {
	min-width: 0;
	padding: var(--wp--preset--spacing--m);
	border-top: 2px solid currentColor;
	background: var(--wp--preset--color--card);
	color: var(--wp--preset--color--ink);
}

.blitz-collection-card.is-placeholder { border-style: dashed; }
.blitz-collection-card h2 { margin-block: var(--wp--preset--spacing--s); }
.blitz-collection-card h2 a { color: inherit; text-decoration: none; }
.blitz-collection-card h2 a:hover { text-decoration: underline; text-underline-offset: 0.15em; }
.blitz-collection-card__image { width: 100%; height: auto; margin-bottom: var(--wp--preset--spacing--m); }

.blitz-collection-foundation {
	max-width: 68rem;
	padding: clamp(1.5rem, 3vw, 3rem);
	border-top: 2px solid currentColor;
	background: var(--wp--preset--color--card);
	color: var(--wp--preset--color--ink);
}
.blitz-collection-foundation h2 { max-width: 22ch; margin-block: var(--wp--preset--spacing--s); }
.blitz-collection-foundation > p:not(.blitz-eyebrow) { max-width: 58ch; }

.blitz-placeholder-media {
	display: grid;
	min-height: 260px;
	place-items: center;
	border: 1px dashed currentColor;
	font-size: var(--wp--preset--font-size--eyebrow);
	text-transform: uppercase;
	letter-spacing: var(--wp--custom--tracking--eyebrow);
}

.blitz-testimonial-placeholder {
	padding: var(--wp--preset--spacing--l);
	border: 1px dashed currentColor;
}

.blitz-archive-hero {
	padding-block: clamp(4rem, 7vw, 7rem);
}

.blitz-query .wp-block-post-template,
.blitz-query.wp-block-query .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--l);
}
/*
 * Core generates its own per-block inline CSS for the Post Template block's
 * "columns" layout — e.g. `.wp-block-post-template.is-flex-container.is-flex-
 * container.columns-3 > li { width: calc(33.3333% - <gap>) }` — using a
 * deliberately doubled class to out-specificity theme CSS. Overriding
 * `display` to grid above doesn't remove that rule; it just changes what the
 * leftover percentage resolves against — from the full flex row to this
 * item's own grid cell — so each card collapsed to roughly a third of a
 * third of the row width, and its heading (word-break: break-word) wrapped
 * almost one syllable per line. !important is the only way to reliably beat
 * a selector core boosted on purpose.
 */
.blitz-query .wp-block-post-template > li,
.blitz-query.wp-block-query .wp-block-post-template > li {
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
}

.blitz-query-card {
	height: 100%;
	padding: var(--wp--preset--spacing--m);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink) 16%, transparent);
	background: var(--wp--preset--color--card);
	color: var(--wp--preset--color--ink);
}

.blitz-query-card h2,
.blitz-query-card h2 a { color: var(--wp--preset--color--ink); }
.blitz-query-card h2 { margin-block: var(--wp--preset--spacing--s); }
.blitz-query-card .wp-block-post-featured-image { margin: calc(var(--wp--preset--spacing--m) * -1) calc(var(--wp--preset--spacing--m) * -1) var(--wp--preset--spacing--m); }
.blitz-query-card img { width: 100%; object-fit: cover; }

.blitz-article-shell { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); }
.blitz-article-head { padding-block: clamp(4rem, 8vw, 8rem); }
.blitz-article-title { max-width: 16ch; margin: 0; color: var(--wp--preset--color--ink); font-size: var(--wp--preset--font-size--display-l); }
.blitz-article-meta { margin-top: var(--wp--preset--spacing--m); color: color-mix(in srgb, currentColor 65%, transparent); }
.blitz-article-media { max-width: var(--wp--custom--container); margin-inline: auto; }
.blitz-reading-shell { padding-block: var(--wp--preset--spacing--section); }
.blitz-reading-shell :where(p,li) { max-width: 68ch; }
.blitz-reading-shell :where(h2,h3) { margin-top: 2.25em; }
.blitz-reading-shell a { color: var(--wp--preset--color--accent-deep); text-decoration: underline; text-underline-offset: 0.16em; }
.blitz-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--l); padding-block: var(--wp--preset--spacing--section-tight); border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }

@media (min-width: 860px) {
	.blitz-editorial-split { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
	.blitz-faq,
	.blitz-contact-page { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
	.blitz-capability-row { grid-template-columns: minmax(160px, 0.8fr) minmax(0, 1.4fr); gap: var(--wp--preset--spacing--l); }
	.blitz-principles { grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 1px solid currentColor; }
	.blitz-principles .blitz-capability-row { display: block; padding: var(--wp--preset--spacing--l); border-right: 1px solid currentColor; }
}

@media (max-width: 899px) {
	.blitz-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.blitz-process-step { border-bottom: 1px solid color-mix(in srgb, currentColor 22%, transparent); }
	.blitz-query .wp-block-post-template,
	.blitz-query.wp-block-query .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.blitz-collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 559px) {
	.blitz-service-hero--creative::before,
	.blitz-service-hero--launch::before { display: none; }
	.blitz-service-capabilities--creative .blitz-capability-row:nth-child(even) { margin-left: 0; }
	.blitz-inner-hero__title,
	.blitz-archive-hero .wp-block-query-title,
	.blitz-404 .blitz-inner-hero__title { font-size: clamp(2.5rem, 12vw, 4rem); }
	.blitz-process { grid-template-columns: 1fr; }
	.blitz-process-step { min-height: auto; border-right: 0; }
	.blitz-process-step__num { margin-bottom: var(--wp--preset--spacing--m); }
	.blitz-query .wp-block-post-template,
	.blitz-query.wp-block-query .wp-block-post-template { grid-template-columns: 1fr; }
	.blitz-collection-grid { grid-template-columns: 1fr; }
	.blitz-public-placeholder { display: grid; }
	.blitz-post-nav { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.blitz-contact-card { transition: none; }
	.blitz-contact-card:hover,
	.blitz-contact-card:focus-visible { transform: none; }
}
