/* ==========================================================================
   Astoria27 — theme styles
   Black stage, Astoria yellow, the diamond and the rule line.
   ========================================================================== */

:root {
	--a27-yellow: var(--wp--preset--color--yellow, #e2cd00);
	--a27-bright: var(--wp--preset--color--yellow-bright, #f5df16);
	--a27-base: var(--wp--preset--color--base, #07080a);
	--a27-ink: var(--wp--preset--color--ink, #111318);
	--a27-graphite: var(--wp--preset--color--graphite, #1c1f26);
	--a27-line: var(--wp--preset--color--line, #2c3039);
	--a27-muted: var(--wp--preset--color--muted, #a9aeb9);
	--a27-light: var(--wp--preset--color--light, #f4f3ef);
	--a27-rule: 6px;
	--a27-diamond: 14px;
	--a27-ease: cubic-bezier(.2, .7, .2, 1);
	--a27-header-h: 88px;
	--a27-wide: var(--wp--style--global--wide-size, 1240px);
	--a27-gutter: var(--wp--style--root--padding-left, clamp(1rem, 4vw, 2.5rem));
	--a27-angle: polygon(3.5% 0, 100% 0, 96.5% 100%, 0 100%);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
::selection { background: var(--a27-yellow); color: #000; }
:focus-visible { outline: 2px solid var(--a27-yellow); outline-offset: 3px; }
img { height: auto; }

/* Remove the default block gap between header / main / footer */
.wp-site-blocks > * { margin-block-start: 0; }
.a27-main > * { margin-block-start: 0; }

p { color: #d6d9df; }
strong { color: #fff; }
.has-text-align-center { text-align: center; }

/* ---------- Diamond & eyebrow ---------------------------------------------------------- */

.a27-eyebrow,
.a27-eyebrow a {
	font-family: var(--wp--preset--font-family--display);
	font-size: .78rem !important;
	font-weight: 800;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--a27-yellow) !important;
	text-decoration: none;
}
.a27-eyebrow { display: flex; align-items: center; gap: .75em; margin-bottom: .25rem; }
.a27-eyebrow.has-text-align-center { justify-content: center; }
.a27-eyebrow::before {
	content: "";
	flex: none;
	width: .6em;
	height: .6em;
	background: var(--a27-yellow);
	transform: rotate(45deg);
}
.wp-block-post-terms.a27-eyebrow::before { margin-right: .1em; }
.wp-block-post-terms.a27-eyebrow .wp-block-post-terms__separator { color: var(--a27-muted); }

/* ---------- Header ------------------------------------------------------------------------ */

.a27-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(7, 8, 10, .82);
	-webkit-backdrop-filter: saturate(140%) blur(14px);
	backdrop-filter: saturate(140%) blur(14px);
	border-bottom: 1px solid rgba(255, 255, 255, .06);
	transition: background .3s var(--a27-ease), box-shadow .3s var(--a27-ease);
}
.admin-bar .a27-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .a27-header { top: 0; } }
.a27-header.is-scrolled { background: rgba(0, 0, 0, .94); box-shadow: 0 10px 30px rgba(0, 0, 0, .45); }
.a27-header::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	height: 2px;
	width: var(--a27-progress, 0%);
	background: var(--a27-yellow);
	transition: width .1s linear;
}
.a27-header__bar { min-height: var(--a27-header-h); gap: 2rem; }
.a27-logo img, .a27-header .wp-block-site-logo img { width: 150px; height: auto; display: block; }
.a27-footer .a27-logo img, .a27-footer .wp-block-site-logo img { width: 170px; }
.a27-logo--fallback { display: inline-block; }

.a27-nav .wp-block-navigation__container { gap: clamp(1rem, 2.2vw, 2.25rem); align-items: center; }
.a27-nav .wp-block-navigation-item__content { color: #fff; padding: .5rem 0; position: relative; }
.a27-nav .wp-block-navigation-item__content:hover { text-decoration: none; color: var(--a27-yellow); }
.a27-nav > .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--a27-yellow);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s var(--a27-ease);
}
.a27-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.a27-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1) !important; }
.a27-nav .wp-block-navigation__submenu-icon { color: var(--a27-yellow); }

.a27-nav .wp-block-navigation__submenu-container {
	background: #0c0d10 !important;
	border: 1px solid var(--a27-line) !important;
	border-top: 3px solid var(--a27-yellow) !important;
	min-width: 230px !important;
	padding: .5rem 0;
	box-shadow: 0 24px 50px rgba(0, 0, 0, .5);
}
.a27-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .6rem 1.25rem !important;
	font-size: .76rem;
	letter-spacing: .1em;
}
.a27-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(226, 205, 0, .08); }

.a27-nav .a27-nav-cta > .wp-block-navigation-item__content {
	background: var(--a27-yellow);
	color: #000 !important;
	padding: .8rem 1.6rem !important;
	font-weight: 800;
	transition: background .25s, transform .25s var(--a27-ease);
}
.a27-nav .a27-nav-cta > .wp-block-navigation-item__content:hover { background: #fff; transform: translateY(-1px); }
.a27-nav .a27-nav-cta > .wp-block-navigation-item__content::after { display: none; }

/* Mobile overlay */
.a27-nav .wp-block-navigation__responsive-container-open svg,
.a27-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; fill: #fff; }
.a27-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--a27-base) !important;
	padding: 1.5rem var(--a27-gutter) 3rem;
}
.a27-nav .wp-block-navigation__responsive-container.is-menu-open::before {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: var(--a27-rule);
	background: var(--a27-yellow);
}
.a27-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; }
.a27-nav .is-menu-open .wp-block-navigation__container { gap: .4rem !important; align-items: flex-start !important; }
.a27-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.35rem; letter-spacing: .04em; padding: .35rem 0 !important; }
.a27-nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 .5rem 1rem !important; background: transparent !important; }
.a27-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; color: var(--a27-muted); }
.a27-nav .is-menu-open .a27-nav-cta { margin-top: 1rem; }

/* ---------- Heroes -------------------------------------------------------------------------- */

.a27-hero,
.a27-page-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: min(78vh, 760px);
	padding-top: clamp(6rem, 14vh, 9rem) !important;
	padding-bottom: clamp(4rem, 10vh, 7rem) !important;
	background-color: #000;
	background-size: cover;
	background-position: 50% 50%;
	border-bottom: var(--a27-rule) solid var(--a27-yellow);
	overflow: visible;
}
.a27-hero.is-home { min-height: calc(100vh - var(--a27-header-h)); min-height: calc(100svh - var(--a27-header-h)); }
.a27-hero.is-short { min-height: min(56vh, 560px); }

/* Overlay: heavy on the left for legibility, fading to the stage black at the bottom */
.a27-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .65) 45%, rgba(0, 0, 0, .25) 100%),
		linear-gradient(0deg, rgba(0, 0, 0, .85) 0%, rgba(0, 0, 0, 0) 55%);
}
.a27-hero--plain {
	background:
		radial-gradient(1200px 500px at 85% -10%, rgba(226, 205, 0, .16), transparent 60%),
		radial-gradient(800px 400px at -10% 120%, rgba(226, 205, 0, .07), transparent 60%),
		#050607;
}
.a27-hero--plain::before {
	background-image:
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: linear-gradient(180deg, transparent, #000 40%, #000 70%, transparent);
}

/* The signature diamond sitting on the yellow rule */
.a27-hero::after,
.a27-page-hero::after {
	content: "";
	position: absolute;
	left: max(var(--a27-gutter), calc((100% - var(--a27-wide)) / 2));
	bottom: calc(var(--a27-rule) / -2);
	width: 46px;
	height: 46px;
	background: var(--a27-yellow);
	transform: translate(0, 50%) rotate(45deg);
	z-index: 3;
	box-shadow: 0 0 0 8px var(--a27-base);
}

.a27-hero > .a27-hero__inner,
.a27-page-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--a27-wide) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.a27-hero__inner > *,
.a27-page-hero .wp-block-cover__inner-container > * { max-width: 920px !important; margin-left: 0 !important; margin-right: 0 !important; }
.a27-hero__title { text-wrap: balance; margin-top: .5rem !important; }
.a27-hero__title--post,
.a27-page-hero .wp-block-post-title { font-size: clamp(2.1rem, 4.6vw, 4rem) !important; line-height: 1.05; }
.a27-hero__lead {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	font-size: clamp(1.25rem, 2.3vw, 2rem) !important;
	line-height: 1.3;
	color: #fff;
	max-width: 720px !important;
	text-wrap: pretty;
}
.a27-hero .wp-block-buttons { margin-top: 2rem; }
.a27-hero.is-home .a27-hero__title { font-size: clamp(3rem, 8.5vw, 7.5rem); }

/* Cover-based heroes (page/post templates) */
.a27-page-hero.wp-block-cover { padding-left: var(--a27-gutter); padding-right: var(--a27-gutter); align-items: flex-end; }
.a27-page-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(0, 0, 0, .92), rgba(0, 0, 0, .55)) !important; opacity: 1 !important; }
.a27-meta, .a27-meta a { color: var(--a27-muted); font-size: .9rem; }

/* Entrance animation */
@media (prefers-reduced-motion: no-preference) {
	.a27-hero__inner > *, .a27-page-hero .wp-block-cover__inner-container > * {
		animation: a27-rise .9s var(--a27-ease) both;
	}
	.a27-hero__inner > :nth-child(2), .a27-page-hero .wp-block-cover__inner-container > :nth-child(2) { animation-delay: .08s; }
	.a27-hero__inner > :nth-child(3), .a27-page-hero .wp-block-cover__inner-container > :nth-child(3) { animation-delay: .16s; }
	.a27-hero__inner > :nth-child(4) { animation-delay: .24s; }
	.a27-hero.is-home { animation: a27-zoom 14s ease-out both; background-size: 112%; }
}
@keyframes a27-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes a27-zoom { from { background-size: 122%; } to { background-size: 108%; } }
@media (max-width: 900px) { .a27-hero.is-home { animation: none; background-size: cover; } }

/* ---------- Sections ------------------------------------------------------------------------ */

.a27-section {
	position: relative;
	padding-top: var(--wp--preset--spacing--70) !important;
	padding-bottom: var(--wp--preset--spacing--70) !important;
}
.a27-section.is-dark { background: var(--a27-base); }
.a27-section.is-ink { background: var(--a27-ink); }
.a27-section.is-ink + .a27-section.is-dark,
.a27-section.is-dark + .a27-section.is-ink { border-top: 1px solid rgba(255, 255, 255, .05); }
.a27-section.is-light { background: var(--a27-light); color: #111; padding-top: var(--wp--preset--spacing--60) !important; padding-bottom: var(--wp--preset--spacing--60) !important; }
.a27-section.is-light p { color: #333; }
.a27-rule-top { border-top: var(--a27-rule) solid var(--a27-yellow) !important; }
.a27-section > .wp-block-heading { text-wrap: balance; }
/* Section intro copy lines up with the wide grid's left edge */
.a27-section:not(.a27-prose) > :not(.alignwide):not(.alignfull):not(.has-text-align-center) {
	margin-left: max(0px, calc((100% - var(--a27-wide)) / 2)) !important;
}
.a27-section:not(.a27-prose) > h2.wp-block-heading { max-width: 960px; }
.a27-eyebrow + .wp-block-heading { margin-top: .6rem !important; }
.a27-section > h2.wp-block-heading { margin-bottom: 2.5rem; }
.a27-section > .a27-eyebrow + h2.wp-block-heading { margin-top: .6rem; }
.a27-display { color: var(--a27-yellow) !important; font-weight: 800 !important; letter-spacing: -.02em; line-height: 1.02 !important; font-size: clamp(2.3rem, 4.5vw, 3.6rem) !important; }
.a27-lead { font-size: var(--wp--preset--font-size--large) !important; color: #fff; line-height: 1.6; }

.a27-section .wp-block-columns { gap: clamp(2rem, 5vw, 5rem); }
.a27-section .wp-block-columns + .wp-block-columns,
.a27-section .wp-block-group + .wp-block-columns,
.a27-section .wp-block-columns + .wp-block-group { margin-top: var(--wp--preset--spacing--60); }
.a27-section h2.wp-block-heading,
.a27-section h3.wp-block-heading { margin-top: 1.5em; }
.a27-section .wp-block-column > :first-child,
.a27-card > :first-child,
.a27-section > :first-child { margin-top: 0; }

/* Diamond bullets for content lists */
.a27-section ul.wp-block-list:not(.a27-footer__links),
.a27-prose ul.wp-block-list,
.is-style-a27-diamonds { list-style: none; padding-left: 0; }
.a27-section ul.wp-block-list:not(.a27-footer__links) > li,
.a27-prose ul.wp-block-list > li,
.is-style-a27-diamonds > li { position: relative; padding-left: 1.6em; margin-bottom: .55em; color: #d6d9df; }
.a27-section ul.wp-block-list:not(.a27-footer__links) > li::before,
.a27-prose ul.wp-block-list > li::before,
.is-style-a27-diamonds > li::before {
	content: "";
	position: absolute;
	left: .15em;
	top: .62em;
	width: .5em;
	height: .5em;
	background: var(--a27-yellow);
	transform: rotate(45deg);
}
.a27-section ol.wp-block-list > li::marker { color: var(--a27-yellow); font-weight: 700; }
.a27-two-col { columns: 2 16rem; column-gap: 2.5rem; }
.a27-two-col > li { break-inside: avoid; }

/* ---------- Stats --------------------------------------------------------------------------- */

.a27-stats { margin-top: var(--wp--preset--spacing--60) !important; gap: 0 !important; border-top: 1px solid var(--a27-line); }
.a27-stat { padding: 2rem 1.5rem 0 0; border-right: 1px solid var(--a27-line); }
.a27-stat:last-child { border-right: 0; }
.a27-stat + .a27-stat { padding-left: 1.75rem; }
.a27-stat__num { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(2.4rem, 4.6vw, 3.6rem) !important; line-height: 1; color: var(--a27-yellow); margin: 0; letter-spacing: -.02em; }
.a27-stat__label { color: var(--a27-muted); text-transform: uppercase; letter-spacing: .14em; font-size: .75rem !important; margin-top: .75rem !important; font-weight: 600; }
@media (max-width: 700px) {
	.a27-stat { border-right: 0; border-bottom: 1px solid var(--a27-line); padding: 1.5rem 0 !important; }
}

/* ---------- Image band (yellow rule top & bottom, like the original) ----------------------- */

.a27-band {
	position: relative;
	isolation: isolate;
	background-color: #000;
	background-size: cover;
	background-position: center;
	border-top: var(--a27-rule) solid var(--a27-yellow);
	border-bottom: var(--a27-rule) solid var(--a27-yellow);
	padding-top: var(--wp--preset--spacing--70) !important;
	padding-bottom: var(--wp--preset--spacing--70) !important;
	text-align: center;
}
.a27-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0, 0, 0, .74); }
.a27-band--tall { min-height: 62vh; background-attachment: fixed; }
.a27-band--tall::before { background: linear-gradient(180deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, .1) 50%, rgba(0, 0, 0, .45)); }
@media (hover: none), (max-width: 900px) { .a27-band--tall { background-attachment: scroll; min-height: 42vh; } }
.a27-band__inner { max-width: 860px !important; margin-inline: auto !important; }
.a27-band__inner h2 { font-size: clamp(1.9rem, 3.6vw, 3rem); text-wrap: balance; }
.a27-band__inner p { color: #e9ebef; font-size: 1.1rem; }
.a27-band .wp-block-buttons { justify-content: center; }
.a27-band__inner > .wp-block-heading + .wp-block-heading { margin-top: 2.5rem; }

/* When a band is followed by a features grid inside the same section */
.a27-band .a27-card-grid { text-align: left; }

/* ---------- Cards ---------------------------------------------------------------------------- */

.a27-card-grid { margin-top: 2.5rem !important; }
.a27-card {
	position: relative;
	background: linear-gradient(160deg, var(--a27-graphite) 0%, #13151a 100%);
	border: 1px solid var(--a27-line);
	padding: clamp(1.5rem, 2.5vw, 2.25rem) !important;
	transition: transform .4s var(--a27-ease), border-color .3s, box-shadow .4s var(--a27-ease);
	overflow: hidden;
}
.a27-card::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: var(--a27-yellow);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .5s var(--a27-ease);
}
.a27-card:hover { transform: translateY(-4px); border-color: rgba(226, 205, 0, .45); box-shadow: 0 24px 60px rgba(0, 0, 0, .45); }
.a27-card:hover::after { transform: scaleX(1); }
.a27-card > * { max-width: none !important; }
.a27-card h3.wp-block-heading { font-size: 1.35rem; margin-top: 0; margin-bottom: .9rem; }
.a27-card h3 a { color: #fff; }
.a27-card h3 a:hover { color: var(--a27-yellow); text-decoration: none; }
.a27-card p { font-size: .97rem; }
.a27-card ul.wp-block-list > li { font-size: .95rem; }
.a27-card__num { font-family: var(--wp--preset--font-family--display); color: var(--a27-yellow); font-weight: 800; letter-spacing: .2em; font-size: .8rem !important; margin: 1.5rem 0 .25rem !important; }
.a27-card--service { padding: 0 !important; background: transparent; border: 0; }
.a27-card--service:hover { box-shadow: none; }
.a27-card--service::after { display: none; }
.a27-card--service > :not(figure) { padding-inline: .25rem; }
.a27-card--service figure { margin: 0 0 .5rem; }
.a27-card--link { --a27-card-pad: clamp(1.5rem, 2.5vw, 2.25rem); }
.a27-card--link figure { margin: calc(-1 * var(--a27-card-pad)) calc(-1 * var(--a27-card-pad)) 1.5rem !important; }
.a27-card--link .wp-block-image.is-style-a27-angled img { clip-path: none; aspect-ratio: 16 / 10; }
.a27-card--link .is-style-a27-angled::before { display: none; }

/* ---------- Angled image frame (nod to the slanted frames of the original About page) ------ */

.is-style-a27-angled { position: relative; isolation: isolate; }
.wp-block-image.is-style-a27-angled img,
.wp-block-post-featured-image.is-style-a27-angled img,
.wp-block-post-featured-image.is-style-a27-angled a { clip-path: var(--a27-angle); }
.wp-block-image.is-style-a27-angled img,
.wp-block-post-featured-image.is-style-a27-angled img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform .8s var(--a27-ease), filter .5s;
	filter: saturate(.9);
}
.is-style-a27-angled::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--a27-yellow);
	clip-path: var(--a27-angle);
	transform: translate(10px, 10px);
	opacity: 0;
	transition: opacity .4s, transform .5s var(--a27-ease);
}
.is-style-a27-angled:hover::before { opacity: 1; transform: translate(12px, 12px); }
.is-style-a27-angled:hover img { filter: saturate(1.05); }
.wp-block-image.is-style-a27-angled { overflow: visible; }
.a27-split .wp-block-image.is-style-a27-angled img { aspect-ratio: 4 / 3; }
.a27-split .wp-block-image.is-style-a27-angled::before { opacity: 1; transform: translate(14px, 14px); background: linear-gradient(135deg, var(--a27-yellow), rgba(226, 205, 0, .2)); }

.a27-image-row { gap: clamp(.75rem, 1.5vw, 1.25rem) !important; margin-bottom: var(--wp--preset--spacing--60) !important; }
.a27-image-row .wp-block-image img { aspect-ratio: 4 / 5 !important; }
@media (max-width: 780px) { .a27-image-row { grid-template-columns: 1fr !important; } .a27-image-row .wp-block-image img { aspect-ratio: 16 / 10 !important; } }

/* ---------- Logos ---------------------------------------------------------------------------- */

.a27-logos { padding-top: var(--wp--preset--spacing--50) !important; padding-bottom: var(--wp--preset--spacing--50) !important; overflow: hidden; }
.a27-logo-wall { gap: clamp(1rem, 3vw, 2.5rem) clamp(1rem, 3vw, 3rem) !important; align-items: center; margin-top: 1.5rem !important; }
.a27-logo-wall .wp-block-image { margin: 0; display: flex; justify-content: center; }
.a27-logo-wall .wp-block-image img {
	max-height: 90px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	filter: grayscale(1);
	opacity: .78;
	mix-blend-mode: multiply;
	transition: filter .4s, opacity .4s, transform .4s var(--a27-ease);
}
.a27-logo-wall .wp-block-image:hover img { filter: none; opacity: 1; transform: scale(1.05); }
.a27-venues { grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)) !important; }
.a27-venues .wp-block-image img { max-height: 110px; filter: grayscale(.4); opacity: .95; }

/* Marquee (JS duplicates the logos; static grid otherwise) */
.a27-marquee.is-marquee {
	display: flex !important;
	flex-wrap: nowrap;
	width: max-content;
	gap: 0 !important;
	animation: a27-marquee var(--a27-marquee-duration, 60s) linear infinite;
}
.a27-marquee.is-marquee .wp-block-image { flex: none; width: clamp(130px, 13vw, 190px); padding: 0 clamp(.75rem, 1.5vw, 1.5rem); }
.a27-logos:hover .a27-marquee.is-marquee { animation-play-state: paused; }
.a27-marquee.is-marquee { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.a27-logos { position: relative; }
.a27-logos:has(.is-marquee)::before,
.a27-logos:has(.is-marquee)::after { content: ""; position: absolute; top: 0; bottom: 0; width: 12vw; z-index: 2; pointer-events: none; }
.a27-logos:has(.is-marquee)::before { left: 0; background: linear-gradient(90deg, var(--a27-light), transparent); }
.a27-logos:has(.is-marquee)::after { right: 0; background: linear-gradient(-90deg, var(--a27-light), transparent); }
@keyframes a27-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .a27-marquee.is-marquee { animation: none; flex-wrap: wrap; width: auto; justify-content: center; } }

/* ---------- Quotes & testimonials ------------------------------------------------------------- */

.wp-block-quote { margin: 2rem 0; }
.wp-block-quote p { font-size: 1.08rem; color: #e8eaee; }
.wp-block-quote cite {
	display: block;
	margin-top: 1rem;
	font-style: normal;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: .82rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--a27-yellow);
}

.a27-quote-card {
	position: relative;
	background: var(--a27-graphite);
	border: 1px solid var(--a27-line);
	padding: clamp(1.5rem, 2.5vw, 2.25rem) !important;
	margin: 0 0 1.5rem;
}
.a27-quote-card > * { max-width: none !important; }
.a27-quote-card::before {
	content: "\201C";
	position: absolute;
	top: .4rem;
	right: 1.25rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 6rem;
	line-height: 1;
	color: var(--a27-yellow);
	opacity: .35;
}
.is-style-a27-testimonial { border-left: 0 !important; padding-left: 0 !important; margin: 0 !important; }
.is-style-a27-testimonial p { font-size: 1rem; line-height: 1.7; }
.a27-quote-logo { margin: 0 0 1.25rem !important; }
.a27-quote-logo img { max-height: 64px; width: auto; background: #fff; padding: 8px; }
.is-style-a27-white-logo img { background: transparent; filter: brightness(0) invert(1); max-height: 80px; padding: 0; }
.a27-band .a27-quote-logo { display: flex; justify-content: center; }

.is-style-a27-large {
	border: 0 !important;
	padding: 0 !important;
	text-align: center;
	max-width: 900px !important;
	margin: var(--wp--preset--spacing--50) auto !important;
}
.is-style-a27-large p {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: clamp(1.4rem, 2.6vw, 2.15rem) !important;
	line-height: 1.35;
	color: #fff;
	text-wrap: balance;
}
.is-style-a27-large p::before { content: "\201C"; color: var(--a27-yellow); }
.is-style-a27-large p:last-of-type::after { content: "\201D"; color: var(--a27-yellow); }
.a27-band .is-style-a27-large p { font-size: clamp(1.1rem, 1.8vw, 1.45rem) !important; }

.a27-masonry { columns: 3 22rem; column-gap: 1.5rem; margin-top: 2.5rem !important; }
.a27-masonry > .a27-quote-card { break-inside: avoid; display: inline-block; width: 100%; }

/* ---------- Case studies & post grids -------------------------------------------------------- */

.a27-case-grid .wp-block-post-template,
.a27-post-grid .wp-block-post-template { gap: clamp(1.25rem, 2.5vw, 2.25rem); }
.a27-case-grid .wp-block-post-template > li { display: flex; flex-direction: column; gap: .4rem; }
.a27-case-grid .wp-block-post-featured-image { margin-bottom: 1rem; }
.a27-case-grid .wp-block-post-featured-image img { aspect-ratio: 4 / 3; }
.a27-case-grid .wp-block-post-title { font-size: 1.35rem; margin: 0; line-height: 1.25; }
.a27-case-grid .wp-block-post-title a,
.a27-post-grid .wp-block-post-title a { color: #fff; transition: color .2s; }
.a27-case-grid .wp-block-post-title a:hover,
.a27-post-grid .wp-block-post-title a:hover { color: var(--a27-yellow); text-decoration: none; }
.a27-case-grid .wp-block-post-terms.a27-eyebrow { font-size: .7rem !important; }

.a27-post-card { height: 100%; background: var(--a27-ink); border: 1px solid var(--a27-line); display: flex; flex-direction: column; transition: transform .4s var(--a27-ease), border-color .3s; }
.a27-post-card:hover { transform: translateY(-4px); border-color: rgba(226, 205, 0, .45); }
.a27-post-card__media { margin: 0 !important; overflow: hidden; background: linear-gradient(135deg, #1a1d23, #0b0c0f); position: relative; aspect-ratio: 16 / 10; }
.a27-post-card__media img { transition: transform .8s var(--a27-ease); }
.a27-post-card:hover .a27-post-card__media img { transform: scale(1.05); }
.a27-post-card__media:not(:has(img))::after {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../images/astoria-mark.png") center / 34% no-repeat;
	opacity: .14;
}
.a27-post-card__body { padding: 1.5rem 1.6rem 1.75rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.a27-post-card__body > * { margin: 0 !important; }
.a27-post-card .wp-block-post-title { font-size: 1.25rem; line-height: 1.3; }
.a27-post-card .wp-block-post-excerpt__excerpt { font-size: .93rem; color: var(--a27-muted); }
.a27-post-card .wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: .6rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: .75rem;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.a27-post-card .wp-block-post-excerpt__more-link::after { content: " \2192"; }
.wp-block-query-pagination { margin-top: 3rem !important; gap: .5rem; font-family: var(--wp--preset--font-family--display); font-weight: 700; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { padding: .4rem .8rem; border: 1px solid var(--a27-line); color: #fff; }
.wp-block-query-pagination .current { background: var(--a27-yellow); color: #000; border-color: var(--a27-yellow); }

/* Case study detail boxes */
.a27-details { gap: 0 !important; border: 1px solid var(--a27-line); margin-bottom: var(--wp--preset--spacing--50) !important; }
.a27-detail { padding: 1.5rem 1.75rem !important; border-right: 1px solid var(--a27-line); }
.a27-detail:last-child { border-right: 0; }
.a27-detail > * { margin: 0 !important; }
.a27-detail p:not(.a27-eyebrow) { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1.15rem; color: #fff; margin-top: .5rem !important; }
@media (max-width: 700px) { .a27-detail { border-right: 0; border-bottom: 1px solid var(--a27-line); } }

/* Galleries */
.is-style-a27-gallery { gap: 12px !important; margin-top: var(--wp--preset--spacing--50) !important; }
.is-style-a27-gallery .wp-block-image { overflow: hidden; }
.is-style-a27-gallery .wp-block-image img { transition: transform .8s var(--a27-ease); }
.is-style-a27-gallery .wp-block-image:hover img { transform: scale(1.04); }
.a27-prose .is-style-a27-gallery { max-width: var(--a27-wide) !important; }

/* ---------- Long-form content (posts, case studies, default pages) ---------------------------- */

.a27-prose .wp-block-post-content > * + * { margin-top: 1.25em; }
.a27-prose .wp-block-post-content > h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); margin-top: 2.2em; }
.a27-prose .wp-block-post-content > h3 { font-size: clamp(1.3rem, 2vw, 1.6rem); margin-top: 2em; }
.a27-prose .wp-block-post-content > p:first-child,
.a27-prose p.lead { font-size: 1.2rem; color: #fff; }
.a27-prose .wp-block-post-content > .wp-block-image img { width: 100%; }
.a27-prose .wp-block-post-content > .a27-details { max-width: var(--a27-wide) !important; }
.a27-case .wp-block-post-content > .is-style-a27-large { max-width: 980px !important; }
.a27-prose table { width: 100%; border-collapse: collapse; }
.a27-prose th, .a27-prose td { border: 1px solid var(--a27-line); padding: .6rem .8rem; text-align: left; }

.a27-post-cta {
	margin-top: var(--wp--preset--spacing--60) !important;
	padding: 2rem 2.25rem !important;
	background: var(--a27-graphite);
	border-left: 4px solid var(--a27-yellow);
}
.a27-post-cta h3 { margin-top: 0; }
.a27-post-nav { margin-top: 1.5rem !important; font-size: .95rem; }
.a27-post-nav a { color: #fff; }
.a27-post-nav .post-navigation-link__label { display: block; font-family: var(--wp--preset--font-family--display); color: var(--a27-yellow); font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }

/* ---------- Buttons --------------------------------------------------------------------------- */

.wp-element-button, .wp-block-button__link { transition: background .25s, color .25s, transform .25s var(--a27-ease), box-shadow .25s; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(226, 205, 0, .18); text-decoration: none; }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 2px solid rgba(255, 255, 255, .7);
	padding: calc(.95rem - 2px) calc(1.9rem - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--a27-yellow); color: var(--a27-yellow); box-shadow: none; }
.wp-block-buttons { gap: .9rem; }

/* ---------- Columns that pair an image with text ------------------------------------------- */

.a27-split + .a27-split { margin-top: var(--wp--preset--spacing--60) !important; }
@media (min-width: 782px) {
	.a27-split:nth-of-type(even) { flex-direction: row-reverse; }
}

/* ---------- Contact ------------------------------------------------------------------------- */

.a27-office { border-top: 1px solid var(--a27-line); padding-top: 1.25rem !important; margin-top: 1.75rem !important; }
.a27-office > * { margin: .25rem 0 0 !important; max-width: none !important; }
.a27-office a { color: #fff; }
.a27-form-card {
	background: #fff;
	color: #111;
	padding: clamp(1.5rem, 3vw, 2.75rem) !important;
	border-top: var(--a27-rule) solid var(--a27-yellow);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
}
.a27-form-card > * { max-width: none !important; }
.a27-form-card h2 { color: #000; font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin-top: 0; }
.a27-form-card p { color: #444; }
.a27-form { display: grid; gap: 1.1rem; }
.a27-form > * { margin: 0 !important; }
.a27-form__fallback { font-size: .85rem; margin-top: 1rem; }
.a27-form-card .a27-form__fallback a { color: #000; text-decoration: underline; }
.a27-form__row--split { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 600px) { .a27-form__row--split { grid-template-columns: 1fr; } }
.a27-form__field { display: grid; gap: .35rem; min-width: 0; }
.a27-form label { font-family: var(--wp--preset--font-family--body); font-size: .85rem; font-weight: 600; color: #222; }
.a27-form__req { color: #b3261e; }
.a27-form input,
.a27-form select,
.a27-form textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #cfd3da;
	border-radius: 0;
	padding: .7rem .8rem;
	font: inherit;
	font-size: 1rem;
	color: #111;
	background: #f7f7f5;
	transition: border-color .2s, box-shadow .2s;
}
.a27-form textarea { resize: vertical; min-height: 8rem; }
.a27-form input:focus,
.a27-form select:focus,
.a27-form textarea:focus { border-color: #000; box-shadow: 0 0 0 3px rgba(226, 205, 0, .45); outline: 0; }
.a27-form-card .a27-form__note { font-size: .95rem; color: #444; }
.a27-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.a27-form__message:empty { display: none; }
.a27-form-card .a27-form__message { padding: .8rem 1rem; font-weight: 600; color: #111; }
.a27-form__message.is-error { background: #fdecea; border-left: 4px solid #b3261e; }
.a27-form__message.is-success { background: #fffbd6; border-left: 4px solid var(--a27-yellow); }
.a27-form__submit {
	justify-self: start;
	background: var(--a27-yellow);
	color: #000;
	border: 0;
	border-radius: 0;
	padding: 1rem 2.4rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
}
.a27-form__submit:hover,
.a27-form__submit:focus-visible { background: #000; color: #fff; }
.a27-form__submit:disabled { opacity: .6; cursor: wait; }

/* ---------- Footer -------------------------------------------------------------------------- */

.a27-footer { background: #000; }
.a27-footer > * { margin-block-start: 0 !important; }
.a27-cta {
	position: relative;
	border-top: var(--a27-rule) solid var(--a27-yellow);
	padding-top: var(--wp--preset--spacing--70) !important;
	padding-bottom: var(--wp--preset--spacing--70) !important;
	background:
		radial-gradient(900px 380px at 50% 0%, rgba(226, 205, 0, .14), transparent 70%),
		#000;
}
.a27-cta::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: 40px;
	height: 40px;
	background: var(--a27-yellow);
	transform: translate(-50%, -50%) rotate(45deg);
	box-shadow: 0 0 0 8px #000;
}
.a27-cta__title { font-size: clamp(2.2rem, 5vw, 4.25rem) !important; font-weight: 800 !important; max-width: 980px !important; text-wrap: balance; }

.a27-offices { gap: 0 !important; border-top: var(--a27-rule) solid var(--a27-yellow); border-bottom: var(--a27-rule) solid var(--a27-yellow); }
.a27-office-card {
	position: relative;
	isolation: isolate;
	min-height: 340px;
	padding: clamp(2.5rem, 5vw, 4rem) var(--a27-gutter) !important;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	background-size: cover;
	background-position: center;
	overflow: hidden;
}
.a27-office-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0, 0, 0, .62); transition: background .5s; }
.a27-office-card:hover::before { background: rgba(0, 0, 0, .45); }
.a27-office-card + .a27-office-card { border-left: 1px solid rgba(255, 255, 255, .12); }
.a27-office-card h3 { font-size: clamp(2rem, 3.6vw, 3rem); font-weight: 800; margin: 0 0 .75rem; }
.a27-office-card__phones { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.4rem, 3vw, 2.4rem) !important; line-height: 1.35; font-weight: 500; }
.a27-office-card__phones a { color: #fff; }
.a27-office-card__phones a:hover { color: var(--a27-yellow); text-decoration: none; }
.a27-office-card__addr { color: #d0d3d9; font-size: .9rem; letter-spacing: .06em; margin-top: 1rem !important; }

.a27-footer__main { padding-top: var(--wp--preset--spacing--60) !important; padding-bottom: 1.5rem !important; }
.a27-footer__main .wp-block-columns { gap: 2.5rem; }
.a27-footer__about { color: var(--a27-muted); font-size: .92rem; max-width: 34ch; }
.a27-footer__heading { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: .76rem !important; letter-spacing: .2em; text-transform: uppercase; color: #fff; }
.a27-footer__links { list-style: none; padding: 0; margin: 0; }
.a27-footer__links li { margin: .45rem 0; }
.a27-footer__links a, .a27-footer__contact a { color: var(--a27-muted); font-size: .93rem; }
.a27-footer__links a:hover, .a27-footer__contact a:hover { color: var(--a27-yellow); }
.a27-footer__contact { color: var(--a27-muted); font-size: .93rem; line-height: 1.9; }
.a27-social { gap: .6rem !important; margin-top: 1.5rem !important; }
.a27-social .wp-social-link { border: 1px solid var(--a27-line); border-radius: 0 !important; transition: background .25s, border-color .25s; }
.a27-social .wp-social-link a { padding: .55rem !important; }
.a27-social .wp-social-link:hover { background: var(--a27-yellow); border-color: var(--a27-yellow); }
.a27-social .wp-social-link:hover svg { fill: #000; color: #000; }
.a27-footer__bar { border-top: 1px solid var(--a27-line); margin-top: var(--wp--preset--spacing--50) !important; padding-top: 1.5rem; }
.a27-footer__bar p { font-size: .8rem; color: #7d828c; margin: 0; }

/* ---------- Search / misc ------------------------------------------------------------------- */

.a27-search .wp-block-search__input { background: #fff; border: 0; border-radius: 0; padding: .9rem 1rem; font-size: 1rem; }
.a27-search .wp-block-search__button { margin-left: 0; }
.a27-video { position: relative; aspect-ratio: 16 / 9; }
.a27-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Scroll reveal -------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
	.js .a27-reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--a27-ease), transform .9s var(--a27-ease); transition-delay: var(--a27-delay, 0s); }
	.js .a27-reveal.is-visible { opacity: 1; transform: none; }
}

/* ---------- Responsive ----------------------------------------------------------------------- */

@media (max-width: 781px) {
	.a27-section { padding-top: var(--wp--preset--spacing--60) !important; padding-bottom: var(--wp--preset--spacing--60) !important; }
	.a27-hero::after, .a27-page-hero::after { width: 32px; height: 32px; }
	.a27-split .wp-block-image.is-style-a27-angled::before { transform: translate(8px, 8px); }
	.a27-office-card + .a27-office-card { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .12); }
	.a27-card-grid { grid-template-columns: 1fr !important; }
}
@media (min-width: 600px) and (max-width: 1000px) {
	.a27-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* ---------- Editor niceties ------------------------------------------------------------------ */

.editor-styles-wrapper .a27-reveal { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .a27-header { position: relative; }

/* ---------- Refinements ---------------------------------------------------------------------- */

.a27-page-hero.wp-block-cover { overflow: visible; }
.a27-page-hero.wp-block-cover:not(:has(.wp-block-cover__image-background)) {
	background:
		radial-gradient(1100px 480px at 85% -10%, rgba(226, 205, 0, .15), transparent 60%),
		#050607;
}
.a27-hero__lead.is-long { font-size: clamp(1.1rem, 1.6vw, 1.4rem) !important; line-height: 1.5; max-width: 760px !important; }

/* Post terms keep their commas tight */
.wp-block-post-terms.a27-eyebrow { display: block; }
.wp-block-post-terms.a27-eyebrow::before { display: inline-block; margin-right: .7em; vertical-align: .1em; }
.wp-block-post-terms.a27-eyebrow .wp-block-post-terms__separator { margin-right: .35em; }

/* Testimonial citations: name on its own line */
.wp-block-quote cite strong { display: block; color: #fff; }

/* Tables (blog comparisons) */
.wp-block-table { margin: 2rem 0; overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.wp-block-table th { background: var(--a27-graphite); color: #fff; font-family: var(--wp--preset--font-family--display); font-weight: 700; text-align: left; border-bottom: 2px solid var(--a27-yellow) !important; }
.wp-block-table th, .wp-block-table td { border: 1px solid var(--a27-line); padding: .75rem 1rem; vertical-align: top; color: #d6d9df; }
.wp-block-table tbody tr:nth-child(even) td { background: rgba(255, 255, 255, .025); }
