/*
Theme Name: Cohen Capital
Theme URI: https://www.coheninvest.com/
Author: Creative Mint
Author URI: https://creativemint.com/
Description: Ollie child theme for Cohen Capital, built from the 2026 Adobe XD redesign.
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 8.1
Version: 1.1.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: ollie
Text Domain: cohen
*/

/* Tokens
---------------------------------------------------------------------------- */
:root {
	/* 45° corner cut on photos and cards, ~97px at the 1920px design width. */
	--cohen-cut: clamp(1.75rem, 4.7vw, 6rem);
	--cohen-header-height: clamp(4.25rem, 6.25vw, 7.5rem);
	--cohen-frame-color: var(--wp--preset--color--border-dark);
}

/* Shared utilities and block styles
---------------------------------------------------------------------------- */
.cohen-center,
.cohen-center.wp-block-heading {
	text-align: center;
}

/* Clipped top-right corner (Image / Featured Image / Cover "Clipped Corner"). */
.is-style-chamfer img,
.wp-block-cover.is-style-chamfer,
.is-style-chamfer.wp-block-post-featured-image img {
	clip-path: polygon(0 0, calc(100% - var(--cohen-cut)) 0, 100% var(--cohen-cut), 100% 100%, 0 100%);
}

/* Thin outline box with a clipped corner (Group / Column "Outline Frame"). */
.is-style-frame {
	position: relative;
}

.is-style-frame::after {
	content: "";
	position: absolute;
	inset: var(--cohen-frame-inset, 0);
	z-index: 2;
	pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0.1,0.1 91,0.1 99.9,16 99.9,99.9 0.1,99.9' fill='none' stroke='%23707070' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}

/* Name headings: Antonio Light, not uppercase (team names, "More About"). */
.wp-block-heading.is-style-name,
.wp-block-post-title.is-style-name {
	font-weight: 300;
	letter-spacing: 0;
	line-height: 1.05;
	text-transform: none;
}

.wp-block-post-title.is-style-name a {
	color: inherit;
	text-decoration: none;
}

/* Small bold label headings ("Designations and Licenses"). */
.wp-block-heading.is-style-eyebrow {
	margin-bottom: 0.75rem;
	color: var(--wp--preset--color--secondary);
	font-family: var(--wp--preset--font-family--primary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.5;
}

/* Antonio uppercase statement used in the split heroes. */
p.is-style-display {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 200;
	letter-spacing: 0.02em;
	line-height: 1.38;
	text-transform: uppercase;
}

/* Outlined light button (form submit, carousel arrows). */
.wp-block-button.is-style-outline-light .wp-block-button__link {
	border: 1px solid currentColor;
	background: transparent;
	color: var(--wp--preset--color--base);
}

.cohen-quote {
	color: var(--wp--preset--color--gold);
	font-weight: 600;
	line-height: 1.45;
}

.cohen-lead {
	line-height: 1.3;
}

.cohen-back-link a {
	color: var(--wp--preset--color--main);
	text-decoration: none;
}

.cohen-back-link a:hover,
.cohen-back-link a:focus-visible {
	text-decoration: underline;
}

.cohen-footnotes {
	line-height: 1.45;
}

.cohen-footnotes p {
	margin-block: 0 0.75em;
}

/* Scroll reveal (assets/js/reveal.js); html.cohen-motion is set in the head. */
.cohen-reveal-target {
	transition: opacity 0.9s ease-out, transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.cohen-motion .cohen-reveal-target:not(.is-revealed) {
	opacity: 0;
	transform: translateY(1.5rem);
}

/* Cover photos fill their block, so fade them without the lift. */
.cohen-motion .wp-block-cover__image-background.cohen-reveal-target:not(.is-revealed) {
	transform: none;
}

/* Header
---------------------------------------------------------------------------- */
/* Sticky on the template part itself: it is a direct child of the page, so it
   can stay pinned for the whole scroll. */
.site-header {
	position: sticky;
	top: 0;
	z-index: 20;
}

.admin-bar .site-header {
	top: var(--wp-admin--admin-bar--height, 0px);
}

/* The admin bar scrolls away on small screens. */
@media (max-width: 600px) {
	.admin-bar .site-header {
		top: 0;
	}
}

html {
	scroll-padding-top: var(--cohen-header-height);
}

.cohen-header__inner {
	min-height: var(--cohen-header-height);
}

.cohen-header .cohen-logo {
	display: flex;
	align-items: center;
	margin: 0;
}

.cohen-header .cohen-logo img {
	width: clamp(150px, 13vw, 200px) !important;
	height: auto;
}

.cohen-header__nav {
	align-items: stretch;
}

.cohen-primary-nav,
.cohen-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open),
.cohen-primary-nav .wp-block-navigation__responsive-close,
.cohen-primary-nav .wp-block-navigation__responsive-dialog,
.cohen-primary-nav .wp-block-navigation__responsive-container-content,
.cohen-primary-nav .wp-block-navigation__container {
	align-items: stretch;
	align-self: stretch;
	height: 100%;
}

.cohen-primary-nav .wp-block-navigation-item {
	align-items: stretch;
}

.cohen-primary-nav .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	padding-inline: clamp(0.9rem, 1.6vw, 2rem);
	text-decoration: none !important;
	transition: background-color 0.2s ease;
}

.cohen-primary-nav .wp-block-navigation-item__content:hover,
.cohen-primary-nav .wp-block-navigation-item__content:focus-visible,
.cohen-primary-nav .current-menu-item > .wp-block-navigation-item__content {
	background-color: var(--wp--preset--color--tertiary);
}

.cohen-header__login {
	align-self: center;
}

.cohen-login .wp-block-button__link {
	white-space: nowrap;
}

@media (max-width: 599px) {
	.cohen-primary-nav .wp-block-navigation__responsive-container-open {
		align-self: center;
	}

	.cohen-header__nav {
		gap: 1rem;
	}

	.cohen-login .wp-block-button__link {
		padding: 0.6em 0.8em;
		font-size: 0.75rem;
	}
}

/* Services dropdown (Ollie Menu Designer, parts/services-menu.html). */
.cohen-primary-nav .wp-block-ollie-mega-menu__menu-container {
	/* Nav items are full-height flex rows, so anchor the panel to their bottom edge. */
	top: 100%;
	box-shadow: 0 18px 40px rgb(0 0 0 / 0.12);
}

.cohen-services-menu {
	border-top: 1px solid var(--wp--preset--color--border-light);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.cohen-services-menu .wp-block-heading {
	margin: 0 0 var(--wp--preset--spacing--small);
}

.cohen-services-menu__grid {
	gap: 0.5rem;
}

.cohen-services-menu__item {
	position: relative;
	display: flex;
	align-items: flex-start;
	min-height: 7rem;
	padding: 1rem;
	transition: filter 0.2s ease;
}

.cohen-services-menu__item .wp-block-heading {
	margin: 0;
	color: inherit;
	font-weight: 200;
	line-height: 1.1;
}

.cohen-services-menu__item a {
	color: inherit;
	text-decoration: none;
}

.cohen-services-menu__item a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.cohen-services-menu__item:hover,
.cohen-services-menu__item:focus-within {
	filter: brightness(1.12);
}

/* Mobile overlay menu. */
.cohen-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--large);
}

.cohen-primary-nav .is-menu-open .wp-block-navigation-item__content {
	padding: 0.75rem 0;
	font-size: var(--wp--preset--font-size--medium);
}

.cohen-primary-nav .is-menu-open .wp-block-navigation-item__content:hover,
.cohen-primary-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content {
	background: none;
	text-decoration: underline;
}

/* Home: photo collage hero
---------------------------------------------------------------------------- */
/* Positions come from the 1920 × 2680 XD artboard, converted to percentages. */
.cohen-collage {
	position: relative;
	/* Clip doesn't contain margins like hidden does, so without flow-root Safari let
	   the sticky frame's bottom margin collapse through and leave a gap below. */
	display: flow-root;
	/* clip, not hidden: hidden makes a scroll container and the frame couldn't stick. */
	overflow: clip;
	aspect-ratio: 1920 / 2680;
	margin-block: 0;
}

.cohen-collage > .wp-block-image,
.cohen-collage__frame {
	position: absolute;
	margin: 0;
}

.cohen-collage > .wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cohen-collage__item--1 { left: 38.75%; top: 1.6%; width: 22.55%; aspect-ratio: 433 / 262; z-index: 1; }
.cohen-collage__item--2 { left: 0; top: 9.48%; width: 11.3%; aspect-ratio: 217 / 782; }
.cohen-collage__item--3 { left: 88.44%; top: 13.5%; width: 11.72%; aspect-ratio: 225 / 619; }
.cohen-collage__item--4 { left: 35.16%; top: 27.24%; width: 18.49%; aspect-ratio: 355 / 856; }
.cohen-collage__item--5 { left: 62.08%; top: 31.23%; width: 20.47%; aspect-ratio: 393 / 306; }
.cohen-collage__item--6 { left: 62.08%; top: 47.95%; width: 33.9%; aspect-ratio: 651 / 459; }
.cohen-collage__item--7 { left: 8.07%; top: 48.25%; width: 18.49%; aspect-ratio: 355 / 293; }
.cohen-collage__item--8 { left: 3.33%; top: 61.68%; width: 27.08%; aspect-ratio: 520 / 678; z-index: 1; }
.cohen-collage__item--9 { left: 81.25%; top: 67.57%; width: 18.75%; aspect-ratio: 360 / 669; }
.cohen-collage__item--10 { left: 38.65%; top: 73.54%; width: 30.83%; aspect-ratio: 592 / 677; }
.cohen-collage__item--11 { left: 0; top: 77.46%; width: 15.05%; aspect-ratio: 289 / 470; }

.cohen-collage__frame {
	left: 13.44%;
	top: 9.48%;
	width: 72.9%;
	height: 20.34%;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 3;
}

.cohen-collage__title.wp-block-heading {
	margin: 0;
	font-size: clamp(3.5rem, 11.8vw, 16.25rem);
	letter-spacing: 0.01em;
	white-space: nowrap;
}

/* The frame pins in the middle of the screen while the photos scroll up past it.
   It sits in flow (the collage's first child) at its artboard spot: 9.48% of the
   collage height is 13.23% of its width, and the frame is 28.39% of the width
   tall. The bottom margin releases it before the last row of photos. */
@media (min-width: 782px) {
	.cohen-collage__frame {
		position: sticky;
		left: auto;
		top: max(var(--cohen-header-height), calc((100svh + var(--cohen-header-height) - 28.39vw) / 2));
		height: auto;
		aspect-ratio: 72.9 / 28.39;
		margin: 13.23% 0 32% 13.44%;
	}

	/* Photos drift at slightly different speeds as they pass, for depth. */
	@media (prefers-reduced-motion: no-preference) {
		@supports (animation-timeline: view()) {
			.cohen-collage > .wp-block-image {
				animation: cohen-drift linear both;
				animation-timeline: view();
			}

			.cohen-collage__item--1,
			.cohen-collage__item--6,
			.cohen-collage__item--11 { --cohen-drift: 2.5rem; }
			.cohen-collage__item--2,
			.cohen-collage__item--5,
			.cohen-collage__item--9 { --cohen-drift: 5rem; }
			.cohen-collage__item--3,
			.cohen-collage__item--7,
			.cohen-collage__item--10 { --cohen-drift: 3.5rem; }
			.cohen-collage__item--4,
			.cohen-collage__item--8 { --cohen-drift: 6.5rem; }
		}
	}
}

@keyframes cohen-drift {
	from { translate: 0 var(--cohen-drift, 3rem); }
	to { translate: 0 calc(var(--cohen-drift, 3rem) * -1); }
}

/* Phones: a staggered six-column grid that mixes large and small photos, as on
   desktop. Items 2, 3 and 9 are hidden on small screens with Block Visibility. */
@media (max-width: 781px) {
	.cohen-collage {
		display: grid;
		grid-template-columns: repeat(6, 1fr);
		grid-auto-flow: row dense;
		align-items: start;
		gap: var(--wp--preset--spacing--small);
		aspect-ratio: auto;
		padding: var(--wp--preset--spacing--medium) var(--wp--preset--spacing--medium) var(--wp--preset--spacing--large);
	}

	.cohen-collage > .wp-block-image {
		position: static;
		width: auto;
		height: auto;
	}

	.cohen-collage > .wp-block-image img {
		aspect-ratio: auto !important;
	}

	.cohen-collage__frame {
		position: relative;
		inset: auto;
		width: auto;
		height: auto;
	}

	.cohen-collage__item--1 { order: -2; grid-column: 1 / -1; aspect-ratio: 16 / 9 !important; }
	.cohen-collage__frame { order: -1; grid-column: 1 / -1; padding: var(--wp--preset--spacing--medium) 0; }
	/* Large portrait beside a small landscape set low. */
	.cohen-collage__item--4 { grid-column: 1 / 5; aspect-ratio: 4 / 5 !important; }
	.cohen-collage__item--5 { grid-column: 5 / 7; align-self: end; aspect-ratio: 3 / 4 !important; }
	/* Wide photo, indented from the left. */
	.cohen-collage__item--6 { grid-column: 2 / 7; aspect-ratio: 3 / 2 !important; }
	/* Two small squares stacked beside a tall photo. */
	.cohen-collage__item--7 { grid-column: 1 / 3; aspect-ratio: 1 !important; }
	.cohen-collage__item--8 { grid-column: 3 / 7; grid-row: span 2; aspect-ratio: 4 / 5 !important; }
	.cohen-collage__item--11 { grid-column: 1 / 3; aspect-ratio: 3 / 4 !important; }
	.cohen-collage__item--10 { order: 1; grid-column: 1 / -1; aspect-ratio: 16 / 10 !important; }
}

/* Home: The Power of More
---------------------------------------------------------------------------- */
.cohen-power .wp-block-cover__image-background {
	filter: grayscale(1);
}

/* Screen the photo back behind a flat sage tint, as on the Team and Services
   heroes, so the copy reads cleanly. */
.cohen-power .wp-block-cover__background {
	opacity: 0.85;
}

.cohen-power .wp-block-heading {
	margin: 0;
	color: var(--wp--preset--color--base);
}

.cohen-power p {
	line-height: 1.2;
}

/* Team cards: grid (/team/) and carousel (home)
---------------------------------------------------------------------------- */
.cohen-team-cards .wp-block-post-featured-image,
.cohen-team-card .wp-block-post-featured-image {
	margin-bottom: var(--wp--preset--spacing--small);
}

/* Headshots size to their column, not the viewport, so the corner cut follows the
   photo width (24%, as in the design) and stays the same shape at every size. */
.cohen-team-cards .wp-block-post-featured-image.is-style-chamfer,
.cohen-team-card .wp-block-post-featured-image.is-style-chamfer {
	container-type: inline-size;
}

.cohen-team-cards .wp-block-post-featured-image.is-style-chamfer img,
.cohen-team-card .wp-block-post-featured-image.is-style-chamfer img {
	--cohen-cut: 24cqw;
}

.cohen-team-cards .wp-block-post-featured-image img,
.cohen-team-card .wp-block-post-featured-image img {
	filter: grayscale(1);
	transition: filter 0.35s ease;
}

.cohen-team-cards li:hover .wp-block-post-featured-image img,
.cohen-team-cards li:focus-within .wp-block-post-featured-image img,
.cohen-team-card:hover .wp-block-post-featured-image img,
.cohen-team-card:focus-within .wp-block-post-featured-image img {
	filter: none;
}

.cohen-team-cards .wp-block-post-title,
.cohen-team-card .wp-block-post-title {
	margin-block: 0 0.6rem;
}

.cohen-team-card__credentials,
.cohen-team-card__role {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}

/* An empty credentials line keeps roles aligned across a row. */
.cohen-team-card__credentials:empty {
	min-height: 1.5em;
}

.cohen-team-teaser .wp-block-heading {
	margin-bottom: var(--wp--preset--spacing--large);
}

/* Home team carousel (Switchback Carousel). Slides bleed past the content edge, as in
   the design; the full-width carousel clips them at the screen. */
.cohen-team-carousel {
	overflow-x: clip;
}

.cohen-team-carousel__controls {
	margin-top: var(--wp--preset--spacing--medium) !important;
}

.cohen-team-carousel__controls .switchback-controls__button {
	height: 1.5rem;
}

/* Home: three pillar cards
---------------------------------------------------------------------------- */
.cohen-card {
	display: flex;
	flex-direction: column;
	position: relative;
}

.cohen-card .wp-block-image {
	margin: 0;
}

.cohen-card__body,
.cohen-service-card__body {
	position: static;
}

.cohen-card__body {
	flex: 1;
	margin-top: 0 !important;
	text-align: center;
}

.cohen-card__body .wp-block-heading {
	margin-bottom: var(--wp--preset--spacing--small);
}

.cohen-card__body .wp-block-heading a {
	color: inherit;
	text-decoration: none;
}

/* The heading link covers the whole card. */
.cohen-card__body .wp-block-heading a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.cohen-card:hover img {
	opacity: 0.9;
}

/* "Achieve More" contact band + Contact page
---------------------------------------------------------------------------- */
.cohen-cta .wp-block-heading,
.cohen-contact .wp-block-heading {
	margin-top: 0;
	color: var(--wp--preset--color--base);
}

.cohen-cta__image {
	margin-top: var(--wp--preset--spacing--medium);
}

/* The heading sits in the photo's column; lift both onto a grid so the form
   lines up with the top of the photo rather than the heading. */
@media (min-width: 782px) {
	.wp-block-columns.cohen-cta__columns {
		display: grid;
		grid-template-columns: 45% 45%;
		row-gap: 0;
	}

	.cohen-cta__columns > .wp-block-column:first-child {
		display: contents;
	}

	.cohen-cta__columns > .wp-block-column:first-child > .wp-block-heading {
		grid-area: 1 / 1;
	}

	.cohen-cta__columns > .wp-block-column:first-child > .cohen-cta__image {
		grid-area: 2 / 1;
	}

	.cohen-cta__columns > .wp-block-column:last-child {
		grid-area: 2 / 2;
		margin-top: var(--wp--preset--spacing--medium);
	}
}

.cohen-contact {
	position: relative;
	overflow: hidden;
}

/* Oversized, faint logo mark behind the contact details. */
.cohen-contact::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: min(33vw, 630px);
	height: 100%;
	background: url("assets/images/icon-white.webp") no-repeat left center / contain;
	opacity: 0.1;
	pointer-events: none;
}

.cohen-contact > * {
	position: relative;
}

.cohen-contact a {
	color: inherit;
}

.cohen-contact__address {
	line-height: 1.6;
}

.cohen-contact__skyline {
	max-width: none;
	margin-block: 0 !important;
}

.cohen-contact__skyline img {
	display: block;
	width: 100%;
	max-height: 751px;
}

/* Ninja Forms (opinionated styles are turned off by the seed script). */
.cohen-form .nf-form-content {
	max-width: none;
	padding: 0;
}

.cohen-form .nf-form-fields-required,
.cohen-form .nf-before-form-content {
	display: none;
}

.cohen-form .nf-field-container {
	margin-bottom: 0.625rem;
}

.cohen-form .nf-field-element input:not([type="button"]):not([type="submit"]),
.cohen-form .nf-field-element textarea {
	width: 100%;
	height: auto;
	padding: 0.7rem 0.9rem;
	border: 0;
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.01em;
}

.cohen-form .nf-field-element textarea {
	min-height: 11rem;
	resize: vertical;
}

.cohen-form .nf-field-element input::placeholder,
.cohen-form .nf-field-element textarea::placeholder {
	color: var(--wp--preset--color--main);
	opacity: 1;
}

.cohen-form .nf-field-element input:focus-visible,
.cohen-form .nf-field-element textarea:focus-visible {
	outline: 2px solid var(--wp--preset--color--main-accent);
	outline-offset: 2px;
}

.cohen-form .submit-container {
	margin-top: 0.4rem;
}

.cohen-form .nf-field-element input[type="submit"],
.cohen-form .nf-field-element input[type="button"] {
	min-width: 9.5rem;
	padding: 0.65rem 1.5rem;
	border: 1px solid var(--wp--preset--color--base);
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--base);
	cursor: pointer;
	font: inherit;
	font-size: var(--wp--preset--font-size--medium);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.cohen-form .nf-field-element input[type="submit"]:hover,
.cohen-form .nf-field-element input[type="submit"]:focus-visible {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
}

.cohen-form .nf-error-msg,
.cohen-form .ninja-forms-req-symbol {
	color: #ffd3d3;
}

.cohen-form .nf-error .ninja-forms-field {
	outline: 2px solid #ffd3d3;
}

.cohen-form .nf-response-msg {
	font-size: var(--wp--preset--font-size--medium);
}

/* Team + Services split hero
---------------------------------------------------------------------------- */
.cohen-split-hero {
	gap: 0 !important;
	margin-block: 0 !important;
}

.cohen-split-hero .wp-block-column {
	min-width: 0;
}

.cohen-split-hero__media {
	height: 100%;
	min-height: clamp(18rem, 30vw, 36rem);
	padding: var(--wp--preset--spacing--x-large);
}

.cohen-split-hero__media .wp-block-cover__image-background {
	filter: grayscale(1);
}

.cohen-split-hero__title.wp-block-heading {
	text-align: center;
}

.cohen-split-hero__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-self: stretch !important;
	padding: var(--wp--preset--spacing--x-large) clamp(1.5rem, 6vw, 7rem);
}

.cohen-split-hero__panel p.is-style-display {
	font-size: clamp(1.125rem, 1.9vw, 2.5rem);
}

.cohen-split-hero__panel p {
	margin: 0;
}

@media (max-width: 781px) {
	.cohen-split-hero__media {
		min-height: 16rem;
	}
}

/* Services landing: service cards
---------------------------------------------------------------------------- */
.cohen-service-cards {
	gap: var(--wp--preset--spacing--small) !important;
}

.cohen-service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 0 1 calc((100% - 2 * var(--wp--preset--spacing--small)) / 3);
	min-width: min(100%, 17rem);
}

.cohen-service-card > .wp-block-image {
	margin: 0;
}

.cohen-service-card__body {
	flex: 1;
	margin-top: 0 !important;
	text-align: center;
}

.cohen-service-card__icon {
	margin: 0 auto var(--wp--preset--spacing--small) !important;
	opacity: 0.7;
}

.cohen-service-card__icon .icon-container {
	width: clamp(1.75rem, 2.4vw, 2.875rem) !important;
}

.cohen-service-card__body .wp-block-heading {
	margin: 0;
	line-height: 1.15;
}

.cohen-service-card__body .wp-block-heading a {
	color: inherit;
	text-decoration: none;
}

.cohen-service-card__body .wp-block-heading a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.cohen-service-card:hover img,
.cohen-service-card:focus-within img {
	opacity: 0.9;
}

/* Service detail pages
---------------------------------------------------------------------------- */
.cohen-service-header {
	gap: 0 !important;
	margin-block: 0 !important;
	min-height: clamp(7rem, 13vw, 15.6rem);
}

.cohen-service-header__media .wp-block-image,
.cohen-service-header__media .wp-block-image img {
	height: 100%;
	margin: 0;
}

.cohen-service-header__media .wp-block-image img {
	width: 100%;
	object-fit: cover;
}

.cohen-service-header__band {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-self: stretch !important;
	padding: var(--wp--preset--spacing--medium) var(--wp--preset--spacing--large);
}

.cohen-service-header__band .wp-block-heading {
	margin: 0;
	font-weight: 200;
}

@media (max-width: 781px) {
	.cohen-service-header__media {
		flex-basis: 28% !important;
	}
}

/* Plus/minus accordion (Details "Plus Toggle"). */
.cohen-accordion {
	margin-top: var(--wp--preset--spacing--large);
	border-top: 1px solid var(--wp--preset--color--border-light);
}

.wp-block-details.is-style-plus {
	margin: 0;
	padding-block: var(--wp--preset--spacing--small);
}

.wp-block-details.is-style-plus summary {
	position: relative;
	padding: 0.35rem 0 0.35rem 1.75em;
	color: var(--wp--preset--color--primary-alt);
	cursor: pointer;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 800;
	line-height: 1.3;
	list-style: none;
	text-transform: uppercase;
}

.wp-block-details.is-style-plus summary::-webkit-details-marker {
	display: none;
}

.wp-block-details.is-style-plus summary::before,
.wp-block-details.is-style-plus summary::after {
	content: "";
	position: absolute;
	left: 0.1em;
	top: calc(0.35rem + 0.65em);
	width: 0.8em;
	height: 1px;
	background: var(--wp--preset--color--main);
	transition: transform 0.2s ease;
}

.wp-block-details.is-style-plus summary::after {
	transform: rotate(90deg);
}

.wp-block-details.is-style-plus[open] summary::after {
	transform: rotate(0deg);
}

.wp-block-details.is-style-plus summary:hover,
.wp-block-details.is-style-plus summary:focus-visible {
	color: var(--wp--preset--color--primary);
}

.wp-block-details.is-style-plus > :not(summary) {
	margin-top: var(--wp--preset--spacing--small);
}

.wp-block-details.is-style-plus > :last-child {
	margin-bottom: var(--wp--preset--spacing--small);
}

.cohen-note {
	line-height: 1.45;
}

.cohen-accordion + .cohen-back-link {
	margin-top: var(--wp--preset--spacing--medium);
}

/* About
---------------------------------------------------------------------------- */
.cohen-about__row {
	gap: 0 !important;
}

.cohen-about__copy {
	display: flex;
	align-items: center;
}

.cohen-about__copy .wp-block-heading {
	margin-bottom: var(--wp--preset--spacing--medium);
}

.cohen-about__media .wp-block-image,
.cohen-about__media .wp-block-image img {
	height: 100%;
	margin: 0;
}

.cohen-about__media .wp-block-image img {
	width: 100%;
	min-height: 22rem;
	object-fit: cover;
}

/* Matched by file name, so a replacement photo falls back to centred. */
.cohen-about__media img[src*="/cyclist"] {
	object-position: 32% 50%;
}

.cohen-about__media img[src*="/mountain-road-wagon"] {
	object-position: 69% 50%;
}

/* The outline frame spills over the seam between copy and photo. */
.cohen-about__media--right {
	--cohen-frame-inset: 9.3% 14.6% 9.3% -13.5%;
}

.cohen-about__media--left {
	--cohen-frame-inset: 9.3% -13.5% 9.3% 14.6%;
}

/* Keep copy clear of the frame's overhang (13.5% of a half-width column), and
   hold it inside the wide content area so it stays near the middle of the
   page while the tint and photo keep bleeding to the window edges. Percentage
   padding resolves against the full-width row. */
@media (min-width: 782px) {
	.cohen-about__copy {
		justify-content: center;
	}

	.cohen-about__row--image-first .cohen-about__copy {
		padding-left: calc(6.75vw + var(--wp--preset--spacing--medium)) !important;
		padding-right: max(var(--wp--preset--spacing--x-large), calc(50% - var(--wp--style--global--wide-size) / 2)) !important;
	}

	.cohen-about__row--text-first .cohen-about__copy {
		padding-right: calc(6.75vw + var(--wp--preset--spacing--medium)) !important;
		padding-left: max(var(--wp--preset--spacing--x-large), calc(50% - var(--wp--style--global--wide-size) / 2)) !important;
	}
}

@media (max-width: 781px) {
	.cohen-about__row--image-first {
		flex-direction: column-reverse;
	}

	.cohen-about__media {
		--cohen-frame-inset: 6% !important;
	}
}

/* Team member profile
---------------------------------------------------------------------------- */
.cohen-bio__header {
	padding-bottom: var(--wp--preset--spacing--medium);
	border-bottom: 1px solid var(--wp--preset--color--primary);
}

.cohen-bio__header .wp-block-post-title {
	margin: 0 0 0.75rem;
}

.cohen-bio__credentials,
.cohen-bio__role {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
}

.cohen-bio__main > .cohen-quote {
	margin-top: var(--wp--preset--spacing--medium);
	margin-bottom: var(--wp--preset--spacing--medium);
}

.cohen-bio__facts {
	margin-top: var(--wp--preset--spacing--large);
	font-size: var(--wp--preset--font-size--small);
}

.cohen-bio__facts p {
	margin-block: 0 0.75em;
}

.cohen-bio__facts sup,
.cohen-footnotes sup {
	font-size: 0.65em;
}

/* Field blocks render nothing when empty; collapse the band that holds them too. */
.cohen-bio__more:not(:has(.wp-block-heading, p, .wp-block-cohen-team-field)) {
	display: none;
}

.cohen-bio__facts {
	gap: var(--wp--preset--spacing--medium);
}

.cohen-bio__facts:not(:has(.wp-block-cohen-team-field)) {
	display: none;
}

.wp-block-cohen-team-field > :first-child {
	margin-top: 0;
}

.wp-block-cohen-team-field > :last-child {
	margin-bottom: 0;
}

.cohen-bio__text p {
	margin-block: 0 1em;
}

/* Circular icon links from Enable Navigation Icons; labels stay for screen readers. */
/* Profile contact icons: slate-blue rings with filled glyphs. The colour is
   the Navigation block's text colour (template), which the links inherit.
   The gap goes on the nav and on each list, because core starts a new list
   around a link that renders nothing (an empty LinkedIn URL). */
.cohen-icon-nav,
.cohen-icon-nav .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--medium);
}

.cohen-icon-nav .wp-block-navigation-item__content {
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width: 3.125rem;
	height: 3.125rem;
	border: 1px solid currentcolor;
	border-radius: 50%;
	--icon-size: 1.375rem;
	--icon-spacing: 0;
	transition: background-color 0.15s ease-out;
}

.cohen-icon-nav .wp-block-navigation-item__content:hover,
.cohen-icon-nav .wp-block-navigation-item__content:focus-visible {
	background: currentcolor;
}

/* On the icon's wrapper: Enable Navigation Icons sets the svg itself to currentcolor. */
.cohen-icon-nav .wp-block-navigation-item__content:hover .wp-block-navigation-item__icon,
.cohen-icon-nav .wp-block-navigation-item__content:focus-visible .wp-block-navigation-item__icon {
	color: var(--wp--preset--color--base);
}

.cohen-icon-nav .wp-block-navigation-item__icon {
	display: flex;
	margin: 0;
}

.cohen-icon-nav .wp-block-navigation-item__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Headshot sits over a Chicago backdrop that bleeds off the right edge. */
.cohen-bio__media {
	position: relative;
	min-height: clamp(20rem, 32vw, 36rem);
}

.cohen-bio__backdrop {
	position: absolute;
	top: calc(var(--wp--preset--spacing--x-large) * -1);
	left: 30%;
	right: calc(var(--wp--style--root--padding-right) * -1 - (100vw - min(100vw, var(--wp--style--global--wide-size))) / 2);
	height: clamp(18rem, 30vw, 36rem);
	margin: 0;
	opacity: 0.2;
}

.cohen-bio__backdrop img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cohen-bio__headshot {
	position: relative;
	width: min(100%, 62%);
	margin-top: clamp(0rem, 1.5vw, 1.5rem);
}

@media (max-width: 781px) {
	.cohen-bio > .wp-block-columns {
		flex-direction: column-reverse;
	}

	.cohen-bio__media {
		min-height: 0;
	}

	.cohen-bio__backdrop {
		top: 0;
		left: 45%;
		right: calc(var(--wp--style--root--padding-right) * -1);
		height: 70%;
	}

	.cohen-bio__headshot {
		margin-top: var(--wp--preset--spacing--large);
	}

	.cohen-bio__headshot {
		width: 60%;
	}
}

/* Text pages (FAQ, Disclosures)
---------------------------------------------------------------------------- */
.cohen-title-band .wp-block-heading {
	margin: 0;
}

.cohen-legal-heading.wp-block-heading {
	margin-top: var(--wp--preset--spacing--large);
	font-weight: 300;
}

/* Footer
---------------------------------------------------------------------------- */
.cohen-footer {
	margin-top: 0;
}

.cohen-footer .cohen-logo {
	margin: 0;
}

.cohen-footer__address {
	margin: 0;
	line-height: 1.35;
	letter-spacing: 0.02em;
}

.cohen-footer__address a {
	text-decoration: none;
}

.cohen-footer-nav {
	font-size: var(--wp--preset--font-size--small);
}

.cohen-footer-nav a:hover,
.cohen-footer-nav a:focus-visible {
	text-decoration: underline;
}

.cohen-footer__bottom p {
	margin: 0;
}

.cohen-footer__bottom a {
	text-decoration: none;
}

/* Legal links are a Navigation block; undo the uppercase nav styling. */
.cohen-footer__legal,
.cohen-footer__legal .wp-block-navigation-item__content {
	color: var(--wp--preset--color--main-accent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	letter-spacing: 0.02em;
	text-transform: none;
}

.cohen-footer__bottom a:hover,
.cohen-footer__bottom a:focus-visible {
	color: var(--wp--preset--color--base);
	text-decoration: underline;
}

@media (max-width: 781px) {
	.cohen-footer-nav .wp-block-navigation__container {
		justify-content: flex-start;
		gap: 0.75rem 1.5rem;
	}

	.cohen-footer__legal {
		gap: 0.5rem 1.25rem !important;
	}
}

/* Main content sits flush against header and footer. */
.site-content > .wp-block-post-content > :first-child {
	margin-top: 0;
}

.site-content > .wp-block-post-content > :last-child {
	margin-bottom: 0;
}

.wp-site-blocks > footer {
	margin-top: 0;
}
