/*
 * Abigail Studio — theme styles.
 * Tokens (colors, fonts, sizes, spacing) live in theme.json and are used here
 * through the --wp--preset--* custom properties. Change them there.
 */

:root {
	--abi-gutter: clamp(1.25rem, 4vw, 3.375rem);
	--abi-wide: 80.625rem;
	--abi-section: var(--wp--preset--spacing--70);
	--abi-line: var(--wp--preset--color--line);
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-wrap: break-word; }
img { max-width: 100%; height: auto; }
em { font-style: italic; }

/* Focus: always visible, on light and dark */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--burgundy); padding: 0.75rem 1rem; z-index: 100000; }

/* ---------- Layout ---------- */
.abi-main { margin: 0; }
.abi-main > .wp-block-post-content > *,
.abi-main > * { margin-block: 0; }
.abi-wrap { box-sizing: border-box; width: 100%; max-width: calc(var(--abi-wide) + 2 * var(--abi-gutter)); margin-inline: auto; padding-inline: var(--abi-gutter); }
.abi-wrap > * + * { margin-block-start: 1.25rem; }
.abi-section { padding-block: var(--abi-section); background: var(--wp--preset--color--cream); }
.abi-paper { background: var(--wp--preset--color--paper); }
.abi-blush { background: var(--wp--preset--color--blush); }
.abi-dark { background: var(--wp--preset--color--burgundy); color: var(--wp--preset--color--cream); }
.abi-dark a { color: inherit; }
.abi-optional:not(:has(.asc-block)) { display: none; }
.abi-prose { box-sizing: border-box; max-width: calc(46rem + 2 * var(--abi-gutter)); margin-inline: auto; padding-inline: var(--abi-gutter); }
.abi-prose > * + * { margin-block-start: 1.25rem; }
.abi-prose h2 { margin-block-start: 3rem; }

/* ---------- Type ---------- */
.abi-eyebrow,
.asc-eyebrow,
.asc-feature__eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1.4; margin: 0;
}
.abi-eyebrow::before,
.asc-eyebrow::before { content: ""; display: inline-block; width: 2rem; height: 1px; background: currentColor; vertical-align: middle; margin-inline-end: 1.25rem; }
.abi-eyebrow.is-plain::before { content: none; }
.abi-display { font-size: var(--wp--preset--font-size--xx-large); line-height: 0.94; letter-spacing: -0.045em; margin: 0.75rem 0 0; text-wrap: balance; }
.abi-display.is-hero { font-size: var(--wp--preset--font-size--huge); line-height: 0.9; }
.abi-display em { color: var(--wp--preset--color--plum); }
.abi-dark .abi-display em { color: var(--wp--preset--color--rose); }
.abi-lede { font-size: var(--wp--preset--font-size--large); line-height: 1.65; max-width: 38rem; }
.abi-muted { color: var(--wp--preset--color--muted); }
.abi-dark .abi-muted { color: inherit; opacity: 0.92; }
.abi-small { font-size: var(--wp--preset--font-size--small); }

/* ---------- Buttons and links ---------- */
.wp-block-button__link,
.asc-button { display: inline-flex; align-items: center; gap: 0.75rem; min-height: 2.75rem; box-sizing: border-box; text-decoration: none; border: 1px solid transparent; transition: background-color 0.2s ease, color 0.2s ease; }
.wp-block-button__link::after,
.asc-button::after,
.abi-link a::after,
.asc-link::after { content: "\2197"; font-family: var(--wp--preset--font-family--body); }
.wp-block-button__link:hover,
.asc-button:hover { background: var(--wp--preset--color--burgundy-deep); color: var(--wp--preset--color--cream); }
.abi-btn-light .wp-block-button__link,
.abi-dark .asc-button { background: var(--wp--preset--color--cream); color: var(--wp--preset--color--burgundy); }
.abi-btn-light .wp-block-button__link:hover,
.abi-dark .asc-button:hover { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--burgundy-deep); }
.abi-link a,
.asc-link { display: inline-flex; gap: 1.5rem; align-items: baseline; padding-block: 0.625rem; font-size: 0.9375rem; font-weight: 600; color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.abi-link a:hover,
.asc-link:hover { color: var(--wp--preset--color--plum); }
.abi-dark .abi-link a:hover { color: var(--wp--preset--color--rose); }
.abi-link { margin: 0; }

/* ---------- Header ---------- */
.abi-header { background: var(--wp--preset--color--cream); border-bottom: 1px solid var(--abi-line); }
.abi-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.125rem; }
.abi-header__inner > * { margin: 0; }
.abi-brand { display: flex; align-items: center; gap: 1.25rem; min-width: 0; }
.abi-brand > * { margin: 0; }
.abi-brand .wp-block-site-title { font-family: var(--wp--preset--font-family--display); font-size: 1.625rem; font-weight: 400; letter-spacing: -0.04em; line-height: 1.1; }
.abi-brand .wp-block-site-title a { color: var(--wp--preset--color--charcoal); text-decoration: none; }
.abi-brand .wp-block-site-tagline { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; padding-inline-start: 1.25rem; border-inline-start: 1px solid var(--wp--preset--color--muted); line-height: 1.3; }
.abi-nav { font-size: 0.9375rem; font-weight: 500; }
.abi-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--charcoal); padding-block: 0.5rem; }
.abi-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--plum); }
.abi-nav .abi-nav-cta > .wp-block-navigation-item__content { background: var(--wp--preset--color--burgundy); color: var(--wp--preset--color--cream); border-radius: 999px; padding: 0.875rem 1.5rem; }
.abi-nav .abi-nav-cta > .wp-block-navigation-item__content::after { content: "\2197"; margin-inline-start: 0.75rem; }
.abi-nav .abi-nav-cta > .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--burgundy-deep); color: var(--wp--preset--color--cream); }
.abi-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--cream); color: var(--wp--preset--color--charcoal); padding: 1.5rem var(--abi-gutter); }
.abi-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.25rem; font-family: var(--wp--preset--font-family--display); font-size: 2rem; }
.abi-nav .wp-block-navigation__responsive-container-open,
.abi-nav .wp-block-navigation__responsive-container-close { min-width: 2.75rem; min-height: 2.75rem; justify-content: center; align-items: center; }
@media (max-width: 781px) { .abi-brand .wp-block-site-tagline { display: none; } }

/* ---------- Hero ---------- */
.abi-hero { padding-block: clamp(3.5rem, 8vw, 6rem) 0; background: radial-gradient(120% 90% at 78% 30%, #6a3a4e 0%, var(--wp--preset--color--burgundy) 45%, var(--wp--preset--color--burgundy-deep) 100%); }
.abi-hero__grid { display: grid; gap: 3rem; align-items: center; }
.abi-hero__grid > * { margin: 0; min-width: 0; }
.abi-hero__text > * + * { margin-block-start: 1.75rem; }
.abi-hero .abi-lede { max-width: 27rem; font-size: 1.125rem; }
.abi-hero .wp-block-buttons { gap: 1.75rem; align-items: center; }
.abi-hero__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; margin-block-start: clamp(2.5rem, 6vw, 4rem); padding-block: 1.5rem; }
.abi-hero__meta p { margin: 0; font-size: 0.6875rem; letter-spacing: 0.2em; text-transform: uppercase; }
@media (min-width: 900px) { .abi-hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); } }
@media (min-width: 1200px) { .abi-display.is-hero em { white-space: nowrap; } }

.abi-ticker { list-style: none; margin: 0; padding: 0.875rem var(--abi-gutter); display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem 2.5rem; background: #e9d5d6; color: var(--wp--preset--color--charcoal); font-family: var(--wp--preset--font-family--display); font-size: 1.125rem; }
.abi-ticker li { display: flex; align-items: center; gap: 2.5rem; }
.abi-ticker li + li::before { content: "\00B7"; color: var(--wp--preset--color--plum); }

/* ---------- Section heads ---------- */
.abi-head { display: grid; gap: 1.5rem 3rem; align-items: end; margin-block-end: clamp(2.5rem, 6vw, 4.5rem); }
.abi-head > * { margin: 0; min-width: 0; }
.abi-head p:not(.abi-eyebrow) { max-width: 21rem; }
@media (min-width: 900px) { .abi-head { grid-template-columns: minmax(0, 1fr) auto; } }

.abi-split { display: grid; gap: 2rem 4rem; }
.abi-split > * { margin: 0; min-width: 0; }
.abi-split > * > * + * { margin-block-start: 1.25rem; }
@media (min-width: 900px) { .abi-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } .abi-split.is-even { grid-template-columns: 1fr 1fr; } }

.abi-pair { display: grid; gap: 1.5rem; margin-block-start: 3rem; }
.abi-pair > * { margin: 0; padding-block-start: 1.25rem; border-top: 1px solid var(--abi-line); }
.abi-pair h3 { font-family: var(--wp--preset--font-family--body); font-size: 0.9375rem; font-weight: 600; letter-spacing: 0; color: var(--wp--preset--color--plum); margin: 0 0 0.375rem; line-height: 1.4; }
.abi-pair p { margin: 0; font-size: 0.9375rem; }
@media (min-width: 600px) { .abi-pair { grid-template-columns: 1fr 1fr; } }

.abi-rule { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; margin-block-start: clamp(3rem, 7vw, 5rem); padding-block-start: 1.5rem; border-top: 1px solid var(--abi-line); font-size: 0.875rem; }
.abi-rule p { margin: 0; }

/* ---------- Services rows ---------- */
.abi-services { border-top: 1px solid rgba(248, 245, 238, 0.25); }
.abi-service { display: grid; gap: 0.5rem 2rem; align-items: center; padding: 1.75rem 0; margin: 0; border-bottom: 1px solid rgba(248, 245, 238, 0.25); position: relative; transition: background-color 0.2s ease, padding 0.2s ease; }
.abi-service > * { margin: 0; }
.abi-service__num { font-size: 0.75rem; letter-spacing: 0.08em; }
.abi-service h3 { font-size: clamp(1.75rem, 3.6vw, 3rem); letter-spacing: -0.035em; }
.abi-service h3 a { color: inherit; text-decoration: none; }
.abi-service h3 a::after { content: ""; position: absolute; inset: 0; }
.abi-service h3 a:focus-visible { outline: none; }
.abi-service:has(a:focus-visible) { outline: 2px solid var(--wp--preset--color--cream); outline-offset: 2px; }
.abi-service p:last-child { font-size: 0.9375rem; max-width: 30rem; }
.abi-service:hover { background: rgba(248, 245, 238, 0.07); }
@media (min-width: 900px) {
	.abi-service { grid-template-columns: 5rem minmax(0, 6fr) minmax(0, 5fr) 2rem; padding-inline: 0; }
	.abi-service::after { content: "\2197"; font-size: 1.75rem; justify-self: end; }
	.abi-service:hover { padding-inline: 1.25rem; }
}
.abi-section.is-light .abi-services,
.abi-section.is-light .abi-service { border-color: var(--abi-line); }
.abi-section.is-light .abi-service:hover { background: rgba(86, 43, 62, 0.05); }

/* ---------- Steps ---------- */
.abi-steps { display: grid; gap: 1.25rem; margin-block-start: 3.5rem; }
.abi-step { margin: 0; background: var(--wp--preset--color--paper); padding: 2rem 2.125rem 2.25rem; border-radius: 3px; }
.abi-step > * { margin: 0; }
.abi-step__num { font-family: var(--wp--preset--font-family--display); font-size: 3.5rem; line-height: 1; color: #a8707f; margin-block-end: 3.5rem; }
.abi-step h3 { font-size: 2rem; margin-block-end: 0.5rem; }
.abi-step p:last-child { font-size: 0.875rem; color: var(--wp--preset--color--muted); }
@media (min-width: 782px) { .abi-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Closing call to action ---------- */
.abi-cta .abi-display,
.asc-cta h2 { font-size: var(--wp--preset--font-size--huge); line-height: 0.9; letter-spacing: -0.045em; }
.abi-cta .abi-wrap > * + * { margin-block-start: 2rem; }
.asc-cta { box-sizing: border-box; max-width: calc(var(--abi-wide) + 2 * var(--abi-gutter)); margin-inline: auto; padding: var(--abi-section) var(--abi-gutter); }
.asc-cta h2 { margin: 0 0 2rem; max-width: 12em; text-wrap: balance; }
.asc-cta p { max-width: 34rem; font-size: 1.0625rem; }
.asc-block:has(> .asc-cta) { background: var(--wp--preset--color--burgundy); color: var(--wp--preset--color--cream); }
.asc-block:has(> .asc-cta) .asc-button { background: var(--wp--preset--color--cream); color: var(--wp--preset--color--burgundy); text-decoration: none; padding: 0.875rem 1.5rem; border-radius: 999px; font-weight: 500; }

/* ---------- Footer ---------- */
.abi-footer { background: var(--wp--preset--color--burgundy); color: var(--wp--preset--color--cream); font-size: 0.8125rem; }
.abi-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem 2rem; padding-block: 1.75rem; border-top: 1px solid rgba(248, 245, 238, 0.25); }
.abi-footer__inner > * { margin: 0; }
.abi-footer a { color: inherit; text-decoration: none; padding-block: 0.5rem; display: inline-block; }
.abi-footer a:hover { text-decoration: underline; }
.abi-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.5rem; }

/* ---------- Page head (inner pages) ---------- */
.abi-pagehead { padding-block: clamp(3.5rem, 8vw, 6.5rem) clamp(2.5rem, 6vw, 4.5rem); }
.abi-pagehead .wp-block-post-title,
.abi-pagehead .wp-block-query-title { font-size: var(--wp--preset--font-size--xx-large); line-height: 0.96; letter-spacing: -0.045em; margin: 0.75rem 0 0; text-wrap: balance; }
.abi-pagehead .abi-lede { margin-block-start: 1.75rem; }
.abi-body { padding-block: 0 var(--abi-section); }

/* ---------- Plugin: feature rows ---------- */
.asc-features { gap: clamp(4rem, 9vw, 7.5rem); }
.asc-feature__eyebrow { color: var(--wp--preset--color--plum); }
.asc-feature__title { font-size: clamp(2.75rem, 6vw, 5rem); letter-spacing: -0.045em; line-height: 0.98; margin: 1.25rem 0 1.5rem; }
.asc-feature__summary { color: var(--wp--preset--color--muted); max-width: 30rem; margin: 0; }
.asc-pills { margin: 1.5rem 0; }
.asc-pills li { border-color: #8d8a85; color: var(--wp--preset--color--charcoal); padding: 0.3125rem 0.875rem; }
.asc-feature__more { margin: 0; }
.asc-feature__media { background: linear-gradient(135deg, #e3d3d6, #cdb9bf); padding: clamp(1.25rem, 4vw, 3.25rem); border-radius: 4px; }
.asc-feature:nth-child(even) .asc-feature__media { background: linear-gradient(135deg, #dfe3da, #c9d1c6); }
.asc-feature__media img { box-shadow: 0 1.25rem 2.5rem rgba(42, 38, 38, 0.22); }
@media (min-width: 900px) {
	.asc-feature { grid-template-columns: minmax(0, 4fr) minmax(0, 5fr); gap: clamp(3rem, 7vw, 6.5rem); }
	.asc-feature:nth-child(even) { grid-template-columns: minmax(0, 5fr) minmax(0, 4fr); }
}

/* ---------- Plugin: stack, cards, testimonial ---------- */
.asc-stack__slide { border-radius: 4px; border: 3px solid rgba(254, 253, 249, 0.85); box-sizing: border-box; }
.asc-cards { gap: 3rem 2rem; }
.asc-card__media,
.abi-cardmedia { background: var(--wp--preset--color--blush); border-radius: 3px; aspect-ratio: 16 / 9; overflow: hidden; margin: 0; }
.abi-cardmedia img { width: 100%; height: 100%; object-fit: contain; display: block; }
.asc-card__title,
.abi-card .wp-block-post-title { font-size: 2rem; letter-spacing: -0.035em; margin: 1.25rem 0 0.375rem; }
.asc-card__title a,
.abi-card .wp-block-post-title a { color: var(--wp--preset--color--charcoal); text-decoration: none; }
.asc-card__title a:hover,
.abi-card .wp-block-post-title a:hover { color: var(--wp--preset--color--plum); }
.asc-card__meta { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--plum); }
.asc-card__excerpt,
.abi-card .wp-block-post-excerpt { color: var(--wp--preset--color--muted); font-size: 0.9375rem; }
.abi-card .wp-block-post-excerpt p { margin: 0; }
.abi-grid { gap: 3.5rem 2rem; }
.abi-card .wp-block-post-date { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--plum); margin-block-start: 1.25rem; }
.abi-card > * { margin-block: 0; }

.asc-testimonials { margin-block-start: 1.5rem; gap: 4rem; }
.asc-testimonial blockquote { border: 0; padding: 0; }
.asc-testimonial blockquote p { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.25rem, 6.2vw, 5.75rem); line-height: 1; letter-spacing: -0.045em; margin: 0; text-wrap: balance; }
.asc-testimonial blockquote p::before { content: "\201C"; }
.asc-testimonial blockquote p::after { content: "\201D"; }
.asc-testimonial blockquote p + p { margin-block-start: 0.5em; }
.asc-testimonial figcaption { margin-block-start: clamp(2rem, 5vw, 3.5rem); padding-block-start: 1.5rem; border-top: 1px solid var(--abi-line); font-size: 0.875rem; }
.asc-testimonial__name { font-weight: 500; }
.asc-testimonial__role::before { content: "\00B7\00A0"; }
.asc-testimonial__link { font-size: 0.875rem; margin: 0.5rem 0 0; }
.asc-section--results .asc-testimonial blockquote p { font-size: clamp(1.75rem, 3.6vw, 3rem); }

/* ---------- Case study ---------- */
.abi-casehero { padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.abi-casehero .wp-block-post-title { font-size: var(--wp--preset--font-size--xx-large); line-height: 0.96; letter-spacing: -0.045em; margin: 1rem 0 0; max-width: 16em; text-wrap: balance; }
.abi-casehero .asc-summary { font-size: var(--wp--preset--font-size--large); max-width: 40rem; margin-block-start: 2rem; }
.abi-casehero .asc-summary p { margin: 0 0 1rem; }
/* Case-study hero: text on the left, cover slide on the right (stacked on small screens). */
.abi-casehero .wp-block-abigail-case-study-cover { margin-block-start: 2.5rem; }
.abi-casehero .asc-cover { margin: 0; }
.abi-casehero .asc-cover__image { border-radius: 3px; box-shadow: 0 1.5rem 3rem rgba(20, 8, 13, 0.45); }
.abi-casehero .asc-cover figcaption { display: none; }
@media (min-width: 900px) {
	.abi-casehero > .abi-wrap:has(.wp-block-abigail-case-study-cover) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(2rem, 5vw, 4.5rem); grid-template-rows: auto auto 1fr auto; }
	.abi-casehero > .abi-wrap:has(.wp-block-abigail-case-study-cover) > * { grid-column: 1; }
	.abi-casehero > .abi-wrap > .wp-block-abigail-case-study-cover { grid-column: 2; grid-row: 1 / 4; align-self: center; margin-block-start: 0; }
	.abi-casehero > .abi-wrap:has(.wp-block-abigail-case-study-cover) > .wp-block-abigail-case-study-facts { grid-column: 1 / -1; }
}
.abi-casehero .asc-facts { margin: 3rem 0 0; padding-block-start: 2rem; border-top: 1px solid rgba(248, 245, 238, 0.25); }
/* Facts read as one packed credits row: each fact is only as wide as it needs
   to be, so short values such as "2024" leave no gaps and nothing is orphaned. */
.asc-facts { display: flex; flex-wrap: wrap; column-gap: clamp(1.75rem, 3.2vw, 3.25rem); row-gap: 1.5rem; }
.asc-fact { min-width: 0; max-width: 20rem; }
.asc-fact dt { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; opacity: 0.9; margin-block-end: 0.3rem; }
.asc-fact dd { font-size: 1rem; line-height: 1.45; }
.abi-case .asc-cover { margin: 0 0 clamp(3rem, 7vw, 5rem); background: linear-gradient(135deg, #e3d3d6, #cdb9bf); padding: clamp(1rem, 4vw, 3.5rem); border-radius: 4px; }
.abi-case .asc-cover__image { box-shadow: 0 1.25rem 2.5rem rgba(42, 38, 38, 0.22); }
.abi-case .asc-cover figcaption,
.asc-gallery figcaption { color: var(--wp--preset--color--muted); }
.asc-section { margin: clamp(3.5rem, 8vw, 6rem) 0 0; }
.abi-case .abi-wrap > :first-child .asc-section, .abi-case .abi-wrap > .asc-section:first-child { margin-block-start: 0; }
.asc-section > h2 { font-size: clamp(2.5rem, 5vw, 4.25rem); letter-spacing: -0.045em; line-height: 1; margin: 0 0 2.5rem; padding-block-start: 2rem; border-top: 1px solid var(--abi-line); }
.asc-subsection h3 { font-family: var(--wp--preset--font-family--body); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--wp--preset--color--plum); margin: 0 0 0.75rem; line-height: 1.4; }
.asc-subsection p { margin: 0 0 1rem; }
.asc-subsection ul { padding-inline-start: 1.25rem; margin: 0; }
.asc-gallery { gap: clamp(1.25rem, 2.5vw, 2rem); align-items: start; }
@media (min-width: 700px) { .asc-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.asc-gallery__item img { border: 1px solid var(--abi-line); box-sizing: border-box; }
@media (min-width: 900px) {
	.asc-section--challenge,
	.asc-section--approach,
	.asc-section--highlights,
	.asc-section--client,
	.asc-section--before-after,
	.asc-section--video,
	.asc-section--results { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: 4rem; border-top: 1px solid var(--abi-line); padding-block-start: 2rem; }
	.asc-section--challenge > h2,
	.asc-section--approach > h2,
	.asc-section--highlights > h2,
	.asc-section--client > h2,
	.asc-section--before-after > h2,
	.asc-section--video > h2,
	.asc-section--results > h2 { border: 0; padding: 0; grid-row: 1 / span 20; }
	.asc-section--challenge > :not(h2),
	.asc-section--approach > :not(h2),
	.asc-section--highlights > :not(h2),
	.asc-section--client > :not(h2),
	.asc-section--before-after > :not(h2),
	.asc-section--video > :not(h2),
	.asc-section--results > :not(h2) { grid-column: 2; margin-block-start: 0; }
}

/* ---------- Plugin: inquiry form ---------- */
.asc-form { max-width: 54rem; display: grid; gap: 0 1.25rem; }
.asc-form > * { grid-column: 1 / -1; }
.asc-form__field label { font-size: 0.875rem; }
.asc-form__req { color: var(--wp--preset--color--muted); }
.asc-form input:not([type="hidden"]),
.asc-form select,
.asc-form textarea { background: #fff; border: 1px solid #8a817c; border-radius: 2px; min-height: 3.25rem; padding: 0.75rem 1rem; }
.asc-form__field.has-error input,
.asc-form__field.has-error select,
.asc-form__field.has-error textarea { border-color: #9b1c1c; }
.asc-form__error { color: #9b1c1c; font-size: 0.875rem; }
.asc-form .asc-button { background: var(--wp--preset--color--burgundy); color: var(--wp--preset--color--cream); border-radius: 0; padding: 1rem 1.75rem; font-weight: 600; font-size: 1rem; font-family: inherit; }
.asc-form .asc-button:hover { background: var(--wp--preset--color--burgundy-deep); }
.asc-notice { background: var(--wp--preset--color--paper); border-width: 1px; max-width: 54rem; box-sizing: border-box; }
.asc-notice--error { border-color: #9b1c1c; }
.asc-notice--error a { color: #9b1c1c; }
.asc-notice--success { border-color: var(--wp--preset--color--burgundy); font-size: var(--wp--preset--font-size--large); }
@media (min-width: 700px) {
	.asc-form { grid-template-columns: 1fr 1fr; }
	.asc-form > .asc-form__field:has(#asc-field-name),
	.asc-form > .asc-form__field:has(#asc-field-email),
	.asc-form > .asc-form__field:has(#asc-field-company),
	.asc-form > .asc-form__field:has(#asc-field-project_type),
	.asc-form > .asc-form__field:has(#asc-field-slide_count),
	.asc-form > .asc-form__field:has(#asc-field-deadline) { grid-column: auto; }
}

/* ---------- Blog and misc ---------- */
.abi-postmeta { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.abi-postmeta > * { margin: 0; }
.abi-featured { margin: 0 0 3rem; }
.abi-featured img { width: 100%; border-radius: 3px; }
.wp-block-query-pagination { margin-block-start: 4rem; padding-block-start: 1.5rem; border-top: 1px solid var(--abi-line); font-size: 0.9375rem; }
.wp-block-query-pagination a { padding: 0.5rem 0.25rem; display: inline-block; }
.wp-block-search__input { border: 1px solid #8a817c; min-height: 3rem; padding: 0.5rem 1rem; background: #fff; border-radius: 2px; font: inherit; }
.wp-block-search__button { margin-inline-start: 0.5rem; }
.wp-block-post-navigation-link { font-size: 0.9375rem; }
.abi-postnav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-block-start: 4rem; padding-block-start: 1.5rem; border-top: 1px solid var(--abi-line); }

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

/* Late additions */
.wp-site-blocks > * + * { margin-block-start: 0; }
.abi-btn-text .wp-block-button__link { background: transparent; color: inherit; border-radius: 0; padding: 0.5rem 0; border: 0; border-bottom: 1px solid currentColor; font-size: 0.9375rem; font-weight: 600; min-height: 0; }
.abi-btn-text .wp-block-button__link:hover { background: transparent; color: var(--wp--preset--color--rose); }
.abi-section:not(.abi-dark) .abi-btn-text .wp-block-button__link:hover { color: var(--wp--preset--color--plum); }
@media (max-width: 699px) {
	.abi-ticker { gap: 0.125rem 1.25rem; font-size: 1rem; }
	.abi-ticker li { gap: 1.25rem; }
	.abi-ticker li + li::before { content: none; }
}
.abi-service:not(:has(a))::after { content: none; }
.abi-service:not(:has(a)):hover { background: transparent; padding-inline: 0; }

/* ---------- Video feature (pasted into a case study's body) ---------- */
.video-feature { margin: 0 0 clamp(1rem, 3vw, 2rem); border-top: 1px solid var(--abi-line); padding-block-start: 2rem; }
.abi-casebody > .video-feature:first-child { border-top: 0; padding-block-start: 0; }
.video-feature__title { font-size: clamp(2.5rem, 5vw, 4.25rem); letter-spacing: -0.045em; line-height: 1; margin: 0 0 2.5rem; text-wrap: balance; }
.video-feature__embed { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 4px; background: var(--wp--preset--color--charcoal); box-shadow: 0 1.25rem 2.5rem rgba(42, 38, 38, 0.22); }
.video-feature__embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-feature__note { margin: 1.5rem 0 0; padding: 1rem 1.25rem; border-left: 2px solid var(--wp--preset--color--plum); background: var(--wp--preset--color--blush); font-size: 0.9375rem; }
.video-feature__note strong { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--wp--preset--color--plum); margin-inline-end: 0.5rem; }
.video-feature__link { margin: 1.25rem 0 0; }
.video-feature__link a { display: inline-flex; gap: 1.5rem; align-items: baseline; padding-block: 0.625rem; font-size: 0.9375rem; font-weight: 600; color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.video-feature__link a::after { content: "\2197"; }
.video-feature__link a:hover { color: var(--wp--preset--color--plum); }
@media (min-width: 900px) {
	.video-feature { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: 4rem; }
	.video-feature__title { grid-row: 1 / span 5; margin: 0; }
	.video-feature > :not(.video-feature__title) { grid-column: 2; }
	.video-feature__embed + .video-feature__note { margin-block-start: 1.5rem; }
}

/* ---------- Project highlights ---------- */
.asc-highlights ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.asc-highlights li { position: relative; padding-inline-start: 2.25rem; font-size: var(--wp--preset--font-size--medium); line-height: 1.45; }
.asc-highlights li::before { content: ""; position: absolute; left: 0; top: 0.65em; width: 1.25rem; height: 1px; background: var(--wp--preset--color--plum); }

/* ---------- Before and after ---------- */
.asc-ba__intro { margin-block-end: 2.5rem; }
.asc-ba { display: grid; gap: 2rem; }
.asc-ba__part { padding: clamp(1.25rem, 2.5vw, 1.75rem); background: var(--wp--preset--color--paper); border: 1px solid var(--abi-line); border-radius: 3px; }
.asc-ba__part h3 { font-family: var(--wp--preset--font-family--body); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--wp--preset--color--plum); margin: 0 0 0.75rem; line-height: 1.4; }
.asc-ba__part p { margin: 0 0 1rem; }
.asc-ba__part ul { padding-inline-start: 1.25rem; margin: 0; }
.asc-ba__part li + li { margin-block-start: 0.375rem; }

/* ---------- Video ---------- */
.asc-video__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 3px; background: var(--wp--preset--color--charcoal); box-shadow: 0 1.25rem 2.5rem rgba(42, 38, 38, 0.22); }
.asc-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.asc-video__note { margin-block-start: 1.5rem; padding: 1rem 1.25rem; border-left: 2px solid var(--wp--preset--color--plum); background: var(--wp--preset--color--blush); font-size: 0.9375rem; }
.asc-video__note p { margin: 0; }
.asc-video__link { margin: 1.25rem 0 0; }
.asc-video__link a { display: inline-flex; gap: 1.5rem; align-items: baseline; padding-block: 0.625rem; font-size: 0.9375rem; font-weight: 600; color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.asc-video__link a::after { content: "\2197"; }
.asc-video__link a:hover { color: var(--wp--preset--color--plum); }
.asc-subsection--outcome-summary { font-size: var(--wp--preset--font-size--medium); }
