/* ==========================================================================
   RAK theme — supplementary styles (things theme.json can't express cleanly)
   ========================================================================== */

:root {
	--rak-navy: #0E2435;
	--rak-accent: #0099ff;       /* brand accent — non-text UI (rules, active dots) */
	--rak-link: #0a72c4;          /* darker blue for interactive TEXT (>=4.5:1 on white) */
	--rak-teal: #154e69;
}

/* Visible keyboard focus for all links/buttons (WCAG 2.4.7). */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible, input:focus-visible, textarea:focus-visible {
	outline: 2px solid var(--rak-link);
	outline-offset: 2px;
	border-radius: 2px;
}

/* --- Header ------------------------------------------------------------- */
.rak-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid var(--wp--preset--color--gray-light);
	backdrop-filter: saturate(180%) blur(8px);
	background: rgba(255, 255, 255, 0.85) !important;
}
/* Contained header bar: keep the logo + nav within a centered max-width band so
   they don't drift apart on wide screens. (The default constrained layout would
   otherwise cap this row at the 780px contentSize — too narrow.) */
.rak-header__inner { width: 100%; }
.rak-header.is-layout-constrained > .rak-header__inner { max-width: 1280px !important; }

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

/* Brand logo (SVG lockup) — header + footer */
.rak-logo { display: inline-flex; align-items: center; line-height: 0; }
.rak-logo img { display: block; height: 64px; width: auto; }
.rak-footer-logo { display: inline-flex; line-height: 0; }
.rak-footer-logo img { display: block; height: 104px; width: auto; }
@media (max-width: 600px) { .rak-logo img { height: 52px; } }

/* --- Custom responsive navigation (pure CSS, no JS) -------------------- */
.rak-navwrap { display: flex; align-items: center; }
.rak-nav { display: flex; align-items: center; gap: 2rem; }
.rak-nav a {
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	font-weight: 500;
	font-size: 0.9375rem;
	white-space: nowrap;
}
.rak-nav a:hover { color: var(--rak-link); }
.rak-nav .rak-cta {
	background: var(--wp--preset--color--contrast);
	color: #fff;
	border-radius: 999px;
	padding: 0.65rem 1.4rem;
	font-weight: 600;
	font-size: 0.875rem;
}
.rak-nav .rak-cta:hover { background: var(--rak-accent); color: #fff; }

/* Practice Areas dropdown (hover/focus, pure CSS) */
.rak-nav .rak-has-sub { position: relative; display: inline-flex; align-items: center; }
.rak-nav .rak-sub-toggle { display: inline-flex; align-items: center; gap: .35rem; }
.rak-caret { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; transition: transform .15s ease; }
.rak-nav .rak-has-sub:hover .rak-caret, .rak-nav .rak-has-sub:focus-within .rak-caret { transform: rotate(180deg); }
.rak-has-sub::after { content: ""; position: absolute; top: 100%; left: -1rem; right: -1rem; height: 18px; }   /* hover bridge */
.rak-subnav {
	position: absolute;
	top: calc(100% + 14px);
	left: 50%;
	transform: translateX(-50%) translateY(6px);
	min-width: 250px;
	display: flex;
	flex-direction: column;
	gap: 1px;
	background: #fff;
	border: 1px solid #e2e8ec;
	border-radius: 14px;
	box-shadow: 0 18px 44px -22px rgba(0, 30, 44, .5);
	padding: .45rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity .15s ease, transform .15s ease;
	z-index: 60;
}
.rak-nav .rak-has-sub:hover .rak-subnav,
.rak-nav .rak-has-sub:focus-within .rak-subnav {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}
.rak-subnav a {
	display: block;
	white-space: nowrap;
	padding: .55rem .85rem;
	border-radius: 8px;
	font-size: .9rem;
	font-weight: 500;
}
.rak-subnav a:hover { background: #eef4f7; color: var(--rak-accent); }

/* Attorneys mega-dropdown: A–Z jump + live name search (like irell.com) */
.rak-mega {
	position: absolute;
	top: calc(100% + 14px);
	left: 0;
	width: 340px;
	background: #fff;
	border: 1px solid #e2e8ec;
	border-radius: 14px;
	box-shadow: 0 18px 44px -22px rgba(0, 30, 44, .5);
	padding: 1rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .15s ease, transform .15s ease;
	z-index: 60;
}
.rak-nav .rak-has-mega:hover .rak-mega,
.rak-nav .rak-has-mega:focus-within .rak-mega { opacity: 1; visibility: visible; transform: translateY(0); }
.rak-mega .rak-az { display: flex; flex-wrap: wrap; gap: .12rem; margin-bottom: .85rem; }
.rak-mega .rak-az a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.6rem; height: 1.6rem; padding: 0; border-radius: 7px;
	font-size: .82rem; font-weight: 600; color: var(--rak-link);
}
.rak-mega .rak-az a:hover { background: #eef4f7; color: var(--rak-link); }
.rak-mega .rak-az a.is-empty { color: #cdd6dc; pointer-events: none; cursor: default; }
.rak-mega-search { position: relative; }
.rak-mega .rak-search-icon { position: absolute; left: 1rem; top: 1.42rem; transform: translateY(-50%); width: 18px; height: 18px; color: #9aa6ad; pointer-events: none; }
.rak-nav-atty-input {
	width: 100%; box-sizing: border-box; height: 2.85rem;
	border: 1px solid #dedede; border-radius: 999px; padding: 0 1rem 0 2.7rem;
	font: inherit; font-size: .95rem; font-weight: 400; color: #0E2435; background: #fff;
}
.rak-nav-atty-input::placeholder { color: #9aa6ad; opacity: 1; }
.rak-mega .rak-nav-suggest { list-style: none; margin: .55rem 0 0; padding: 0; max-height: 300px; overflow-y: auto; }
.rak-mega .rak-nav-suggest[hidden] { display: none; }
.rak-mega .rak-nav-suggest li { margin: 0; padding: 0; }
.rak-mega .rak-nav-suggest a { display: flex; align-items: center; gap: .7rem; padding: .4rem .5rem; border-radius: 10px; text-decoration: none; color: #0E2435; line-height: 1.25; white-space: normal; font-weight: 400; }
.rak-mega .rak-nav-suggest a:hover, .rak-mega .rak-nav-suggest a.is-active { background: #eef4f7; }
.rak-mega .rak-nav-suggest img { width: 32px; height: 40px; object-fit: cover; object-position: top center; border-radius: 6px; flex: 0 0 auto; background: #f0f0f0; }
.rak-mega .rak-sg-name { display: block; font-size: .92rem; color: #0E2435; }
.rak-mega .rak-sg-name b { font-weight: 700; }
.rak-mega .rak-sg-role { display: block; font-size: .76rem; color: #6a7a82; margin-top: 1px; }
.rak-mega .rak-mega-viewall { display: inline-block; margin-top: .85rem; font-size: .85rem; font-weight: 600; color: var(--rak-accent); }

.rak-burger { display: none; }

@media (max-width: 860px) {
	.rak-burger {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		cursor: pointer;
		margin: -6px -8px -6px 0;       /* enlarge tap target without shifting layout */
		-webkit-tap-highlight-color: transparent;
	}
	.rak-burger span {
		display: block;
		width: 24px;
		height: 2px;
		background: var(--wp--preset--color--contrast);
		border-radius: 2px;
		transition: transform .2s ease, opacity .2s ease;
	}
	.rak-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		min-height: 100vh;                       /* full-height overlay so it covers the page */
		overflow-y: auto;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		background: var(--wp--preset--color--contrast);
		border-top: 1px solid rgba(255, 255, 255, .14);
		padding: 0.25rem 1.5rem 2rem;
	}
	.rak-nav a {
		color: #fff;
		font-size: 1.05rem;
		padding: 0.95rem 0;
		border-bottom: 1px solid rgba(255, 255, 255, .12);
	}
	.rak-nav a:hover { color: var(--wp--preset--color--light-blue); }
	.rak-nav .rak-cta {
		background: var(--wp--preset--color--light-blue);
		color: var(--wp--preset--color--contrast);
		text-align: center;
		border-bottom: none;
		margin-top: 1.25rem;
		padding: 1rem;
		font-size: 1.15rem;
		font-weight: 700;
	}
	/* Practice Areas submenu: shown as an indented static list in the overlay */
	.rak-nav .rak-has-sub { display: block; }
	.rak-nav .rak-sub-toggle { justify-content: space-between; }
	.rak-caret { display: none; }
	.rak-subnav,
	.rak-nav .rak-has-sub:hover .rak-subnav,
	.rak-nav .rak-has-sub:focus-within .rak-subnav {
		position: static;
		transform: none;   /* defeat the desktop hover transform on touch */
		opacity: 1;
		visibility: visible;
		min-width: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
		border-radius: 0;
		padding: 0 0 0 1rem;
		gap: 0;
	}
	.rak-subnav a {
		color: rgba(255, 255, 255, .82);
		font-size: .98rem;
		padding: .8rem 0;
		border-radius: 0;
		border-bottom: 1px solid rgba(255, 255, 255, .1);
	}
	.rak-subnav a:hover { background: transparent; color: var(--wp--preset--color--light-blue); }

	/* Attorneys mega-dropdown: indented static block inside the mobile overlay */
	.rak-mega,
	.rak-nav .rak-has-mega:hover .rak-mega,
	.rak-nav .rak-has-mega:focus-within .rak-mega {
		position: static; transform: none; opacity: 1; visibility: visible;
		width: auto; background: transparent; border: 0; box-shadow: none; border-radius: 0;
		padding: .5rem 0 1rem 1rem;
	}
	.rak-mega .rak-az { gap: .3rem; }
	.rak-mega .rak-az a { width: 2.1rem; height: 2.1rem; color: var(--wp--preset--color--light-blue); border-bottom: 0; padding: 0; }
	.rak-mega .rak-az a.is-empty { color: rgba(255, 255, 255, .3); }
	.rak-nav-atty-input { font-size: 1rem; color: #0E2435; padding: 0 1rem 0 2.7rem; border-bottom: 1px solid #dedede; }
	.rak-mega .rak-nav-suggest { background: #fff; border-radius: 12px; padding: .4rem; margin-top: .5rem; }
	.rak-mega .rak-nav-suggest a { color: #0E2435; border-bottom: 0; padding: .45rem .5rem; font-size: .95rem; }
	.rak-mega .rak-mega-viewall { color: var(--wp--preset--color--light-blue); border-bottom: 0; padding: 0; margin-top: 1rem; }

	/* checkbox-hack open/close */
	.rak-nav-toggle:checked ~ .rak-nav { display: flex; }
	.rak-nav-toggle:checked ~ .rak-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.rak-nav-toggle:checked ~ .rak-burger span:nth-child(2) { opacity: 0; }
	.rak-nav-toggle:checked ~ .rak-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* --- Buttons ------------------------------------------------------------ */
.wp-block-button__link {
	transition: background-color .15s ease, color .15s ease, transform .15s ease;
}
.wp-block-button__link:hover { transform: translateY(-1px); }

/* --- Hero --------------------------------------------------------------- */
.rak-hero {
	position: relative;
	overflow: hidden;
}
.rak-hero h1,
.rak-hero h2 { letter-spacing: -0.03em; }

/* --- Generic section rhythm -------------------------------------------- */
.rak-section { padding-block: clamp(3rem, 6vw, 6rem); }

/* --- Cards (attorneys / practice areas / press) ------------------------- */
.rak-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--gray-light);
	border-radius: 14px;
	overflow: hidden;
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
	height: 100%;
	position: relative;
}
/* Practice cards: whole card is clickable via the title's stretched link */
.rak-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.rak-card:hover {
	box-shadow: 0 18px 40px -24px rgba(0, 30, 44, 0.45);
	transform: translateY(-3px);
	border-color: var(--wp--preset--color--pale-blue);
}
.rak-card a { text-decoration: none; }
.rak-card img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
.rak-card__body { padding: 1.1rem 1.25rem 1.4rem; }
.rak-card__role { color: var(--wp--preset--color--tertiary); font-size: .8125rem; }

/* Attorney grid headshots specifically */
.rak-attorney-grid .wp-block-post-featured-image img { aspect-ratio: 3 / 4; object-fit: cover; border-radius: 12px; }

/* --- Attorney directory (search + practice-area filter + grid) ----------- */
.rak-atty-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
	margin-bottom: 2.25rem;
}
.rak-search {
	position: relative;
	flex: 1 1 320px;
	max-width: 440px;
	display: flex;
}
/* search field and dropdown share identical sizing so they line up exactly */
.rak-search-input,
.rak-pa-filter {
	height: 3.25rem;
	box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--gray-light);
	border-radius: 999px;
	font: inherit;
	font-size: 1rem;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
	background-color: #fff;
}
.rak-search-input {
	width: 100%;
	padding: 0 1.25rem 0 3rem;       /* left room for the icon */
}
.rak-search-icon {
	position: absolute;
	left: 1.15rem;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	color: #9aa6ad;                 /* greyed icon */
	pointer-events: none;
}
.rak-search-input::placeholder { color: #9aa6ad; opacity: 1; }   /* greyed placeholder */
.rak-search-input:focus { outline: 2px solid var(--wp--preset--color--primary); border-color: transparent; }
.rak-pa-filter {
	flex: 0 1 320px;
	padding: 0 2.75rem 0 1.25rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23356379' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.15rem center;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.rak-pa-filter:focus { outline: 2px solid var(--wp--preset--color--primary); border-color: transparent; }

/* As many cards per row as fit; reflows fluidly with the window width. */
.rak-attorney-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
	gap: 1.25rem;
}
.rak-attorney-grid .rak-card { min-width: 0;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--wp--preset--color--gray-light);
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.rak-attorney-grid .rak-card:hover {
	box-shadow: 0 18px 40px -24px rgba(0, 30, 44, 0.45);
	transform: translateY(-3px);
	border-color: var(--wp--preset--color--pale-blue);
}
.rak-card__img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: top center;
}
.rak-card__body { padding: 0.7rem 0.85rem 0.95rem; }
.rak-card__name {
	display: block;
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--wp--preset--color--contrast);
	line-height: 1.25;
}
.rak-card__role {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--tertiary);
}
.rak-card__role { display: none; }   /* names only on the directory */
.rak-no-results { color: var(--wp--preset--color--tertiary); padding: 2rem 0; }

@media (max-width: 640px) { .rak-pa-filter, .rak-search { flex-basis: 100%; max-width: none; } }

/* --- Practice-area / press list rows ------------------------------------ */
.rak-list-row {
	border-top: 1px solid var(--wp--preset--color--gray-light);
	padding-block: 1.25rem;
}

/* --- Single attorney bio header (title + groups + contact) -------------- */
.rak-bio-header { margin: 0.25rem 0 1.5rem; }
.rak-bio-role {
	margin: 0 0 0.5rem;
	font-weight: 700;
	font-size: 1.35rem;
	color: var(--wp--preset--color--contrast);
}
.rak-bio-groups { margin: 0 0 0.5rem; font-size: 1.0625rem; line-height: 1.55; }
.rak-bio-groups a { color: var(--wp--preset--color--secondary); text-decoration: none; }
.rak-bio-groups a:hover { color: var(--wp--preset--color--primary); }
.rak-bio-sep { color: var(--wp--preset--color--gray); }
.rak-bio-location { margin: 0 0 1rem; font-size: 1.0625rem; color: var(--wp--preset--color--secondary); }
.rak-bio-contact { display: flex; flex-direction: column; gap: 0.25rem; font-size: 1.0625rem; }
.rak-bio-contact a { word-break: break-word; text-decoration: none; }
.rak-bio-contact a:hover { color: var(--wp--preset--color--primary); }
.rak-bio-phone { color: var(--wp--preset--color--secondary); }   /* match email color */
/* Sidebar sections: Practice Areas / Admissions / Education (fr.com-style) */
.rak-bio-section { margin-top: 1.6rem; }
.rak-bio-label {
	margin: 0 0 .55rem;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast);
}
.rak-bio-list { list-style: none; margin: 0; padding: 0; }
.rak-bio-list li { margin: 0 0 .45rem; font-size: 1.0625rem; line-height: 1.4; color: var(--wp--preset--color--contrast); }
.rak-bio-list a { color: var(--wp--preset--color--secondary); text-decoration: none; }
/* Education schools share the Practice Areas link color for contrast with the label. */
.rak-bio-section--education .rak-bio-list li { color: var(--wp--preset--color--secondary); }
/* Honors / activities under a school (Order of the Coif, journal, awards): indented + smaller. */
.rak-bio-list .rak-bio-subitem { margin-left: .95rem; font-size: .9375rem; opacity: .85; }
.rak-bio-list a:hover { color: var(--wp--preset--color--primary); }

/* --- Single attorney action buttons (vCard / PDF / Print / Share) ------- */
.rak-bio-actions {
	display: flex;
	gap: 0.6rem;
	margin-top: 1.4rem;
	flex-wrap: wrap;
}
.rak-act {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--wp--preset--color--gray-light);
	border-radius: 50%;
	background: #fff;
	color: var(--wp--preset--color--secondary);
	cursor: pointer;
	padding: 0;
	transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.rak-act:hover {
	background: var(--wp--preset--color--contrast);
	color: #fff;
	border-color: transparent;
	transform: translateY(-1px);
}
.rak-act.rak-copied { background: var(--wp--preset--color--secondary); color: #fff; border-color: transparent; }
.rak-act svg { display: block; }

/* --- Print / Save-as-PDF -----------------------------------------------------
   The Print and PDF buttons both call window.print(); these rules reproduce the
   DESKTOP two-column bio (name on top, photo + contact left, bio right), hide the
   site chrome and the "All attorneys" link, and size the type for a clean
   letter-sized document. Native print = crisp vector text, correct layout. */
@media print {
	/* Hide everything except the bio: header, footer, action buttons, back-link. */
	.rak-header, .rak-footer, .rak-bio-actions,
	.rak-burger, .rak-navwrap, .skip-link, .rak-banner-wrap { display: none !important; }
	main > .wp-block-group:last-child { display: none !important; }   /* "← All attorneys" */

	html, body { background: #fff !important; margin: 0 !important; }
	@page { margin: 14mm; }

	main { max-width: 100% !important; margin: 0 !important; padding: 0 !important; }
	main .wp-block-post-title,
	main .rak-attorney-header { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }

	/* Keep the two-column desktop layout (don't let the mobile stack take over). */
	.rak-attorney-header { display: flex !important; flex-direction: row !important; gap: 1.4rem !important; align-items: flex-start !important; }
	.rak-attorney-header .wp-block-column { min-width: 0 !important; }
	.rak-attorney-header .wp-block-column:first-child { flex: 0 0 33% !important; width: 33% !important; }
	.rak-attorney-header .wp-block-column:last-child  { flex: 1 1 auto !important; width: auto !important; }
	.rak-attorney-header .wp-block-post-featured-image,
	.rak-attorney-header .wp-block-post-featured-image img { max-width: 100% !important; width: 100% !important; }
	.rak-attorney-header .wp-block-post-featured-image img { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

	/* Page-sized typography. */
	.wp-block-post-title { font-size: 26px !important; line-height: 1.12 !important; margin: 0 0 .7rem !important; }
	.rak-bio-role { font-size: 13px !important; margin: 0 0 .25rem !important; }
	.rak-bio-groups, .rak-bio-location, .rak-bio-contact, .rak-bio-contact a { font-size: 11.5px !important; line-height: 1.45 !important; }
	.rak-bio-section { margin-top: .85rem !important; }
	.rak-bio-label { font-size: 10.5px !important; letter-spacing: .1em !important; margin: 0 0 .3rem !important; }
	.rak-bio-list li { font-size: 11.5px !important; line-height: 1.35 !important; margin: 0 0 .25rem !important; }
	.rak-bio-list .rak-bio-subitem { font-size: 10px !important; margin-left: .7rem !important; }
	.wp-block-post-content,
	.wp-block-post-content p,
	.wp-block-post-content li { font-size: 13px !important; line-height: 1.5 !important; }
	.wp-block-post-content p { margin: 0 0 .55rem !important; }
	.wp-block-post-content h3 { font-size: 15px !important; margin: .85rem 0 .35rem !important; }
	/* Don't let a page break slice through a heading or a list item. */
	.wp-block-post-content h3,
	.wp-block-post-content li,
	.rak-attorney-header .wp-block-column:first-child { break-inside: avoid; page-break-inside: avoid; }
	a { color: inherit !important; text-decoration: none !important; }
}

/* Attorney name auto-links in body copy. */
.rak-name-link { color: var(--wp--preset--color--secondary); text-decoration: none; font-weight: 600; }
.rak-name-link:hover, .rak-name-link:focus-visible { color: var(--rak-link); text-decoration: underline; }

/* --- Slim Chambers recognition band (IP, Media pages) ------------------ */
.rak-rec { width: 100%; background: #eef3f7; border-top: 1px solid #dfe7ee; border-bottom: 1px solid #dfe7ee; }
.rak-rec__inner { max-width: 1280px; margin: 0 auto; padding: 1rem 2rem; display: flex; align-items: center; justify-content: space-between; gap: 1.75rem; }
.rak-rec__quote { color: var(--wp--preset--color--contrast); font-size: clamp(.98rem, .9rem + .45vw, 1.2rem); font-style: italic; font-weight: 600; line-height: 1.4; margin: 0; }
.rak-rec__quote a { color: inherit; text-decoration: none; transition: color .2s; }
.rak-rec__quote a:hover, .rak-rec__quote a:focus-visible { color: var(--wp--preset--color--secondary); text-decoration: underline; text-underline-offset: 3px; }
.rak-rec__mark { flex: 0 0 auto; white-space: nowrap; font-family: Georgia, 'Times New Roman', 'Times', serif; font-size: clamp(.95rem, .85rem + .35vw, 1.1rem); font-weight: 700; color: var(--wp--preset--color--contrast); text-decoration: none; transition: color .2s; }
.rak-rec__mark:hover, .rak-rec__mark:focus-visible { color: var(--wp--preset--color--secondary); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 781px) {
	.rak-rec__inner { flex-direction: column; align-items: flex-start; gap: .85rem; }
}

/* --- Trial-win rotating banner (Patent Litigation) ---------------------
   Light, airy band; the trial photo bleeds in from the right with a feathered
   (mask-faded) edge — no hard rectangle. Headline slides in from the left on
   each rotation (same motion as the page's top banner). */
.rak-vbanner { position: relative; width: 100%; overflow: hidden; margin-block: 3.5rem 0;
	min-height: clamp(340px, 36vw, 460px);
	background: linear-gradient(135deg, #edf2f6 0%, #f6f9fb 58%, #e9f0f5 100%); }
/* soft accent glow behind the photo for depth (no busy pattern) */
.rak-vbanner::before { content: ""; position: absolute; top: -25%; right: -8%; width: 60%; height: 150%;
	background: radial-gradient(closest-side, rgba(0,153,255,.10), transparent 72%); pointer-events: none; }
.rak-vbanner__inner { position: relative; z-index: 2; max-width: 1280px; margin: 0 auto;
	min-height: inherit; padding: clamp(2.5rem, 5vw, 4rem) 2rem;
	display: flex; align-items: center; gap: clamp(1.5rem, 4vw, 3rem); }
.rak-vbanner__text { flex: 1 1 44%; min-width: 0; }
/* Photo: full frame shown (no crop, no feather), floating with a soft shadow. */
.rak-vbanner__media { position: relative; flex: 1 1 56%; align-self: stretch; min-width: 0; }
.rak-vbanner__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; opacity: 0; transition: opacity .9s ease; filter: drop-shadow(0 16px 30px rgba(14,36,53,.28)); }
.rak-vbanner__media img.is-active { opacity: 1; }
.rak-vbanner__eyebrow { color: var(--wp--preset--color--tertiary); font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 1.1rem; }
.rak-vbanner__slides { position: relative; min-height: clamp(8.5rem, 17vw, 10.75rem); }
.rak-vbanner__slide { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.rak-vbanner__slide.is-active { opacity: 1; pointer-events: auto; }
.rak-vbanner__headline { font-size: clamp(1.55rem, 1.1rem + 1.8vw, 2.5rem); font-weight: 800; line-height: 1.1; letter-spacing: -.01em; margin: 0 0 .85rem; }
.rak-vbanner__headline a { color: var(--wp--preset--color--contrast); text-decoration: none; transition: color .2s; }
.rak-vbanner__headline a:hover, .rak-vbanner__headline a:focus-visible { color: var(--rak-secondary, #154e69); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.rak-vbanner__caption { color: var(--wp--preset--color--tertiary); font-size: .95rem; line-height: 1.5; margin: 0; }
.rak-vbanner__rule { display: block; height: 4px; width: 60px; background: var(--rak-accent, #0099ff); margin-top: .5rem; border-radius: 2px; }
/* Slide-in-from-left on activation (matches the top banner), staggered. */
.rak-vbanner__slide.is-active .rak-vbanner__headline { animation: rak-slide-in .7s cubic-bezier(.22,.61,.36,1) both; }
.rak-vbanner__slide.is-active .rak-vbanner__caption  { animation: rak-slide-in .7s cubic-bezier(.22,.61,.36,1) .12s both; }
.rak-vbanner__dots { position: relative; z-index: 2; display: flex; gap: .5rem; margin-top: 1.1rem; }
.rak-vbanner__dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: rgba(14,36,53,.55); cursor: pointer; transition: background .3s, transform .3s; }
.rak-vbanner__dots button:hover { background: rgba(14,36,53,.75); }
.rak-vbanner__dots button.is-active { background: var(--rak-link); transform: scale(1.3); }
/* Pause/play control for the auto-rotation (WCAG 2.2.2). */
.rak-vbanner__pause { position: relative; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; margin-left: .6rem; padding: 0; border: 1px solid rgba(14,36,53,.3); border-radius: 50%; background: transparent; color: var(--wp--preset--color--contrast); cursor: pointer; transition: background .2s, border-color .2s; vertical-align: middle; }
.rak-vbanner__pause:hover { background: rgba(14,36,53,.07); border-color: rgba(14,36,53,.5); }
.rak-vbanner__pause svg { width: 12px; height: 12px; display: block; }
.rak-vbanner__pause .rak-ico-play { display: none; }
.rak-vbanner__pause[aria-pressed="true"] .rak-ico-pause { display: none; }
.rak-vbanner__pause[aria-pressed="true"] .rak-ico-play { display: block; }
.rak-vbanner__controls { display: flex; align-items: center; margin-top: 1.1rem; }
.rak-vbanner__controls .rak-vbanner__dots { margin-top: 0; }
@media (max-width: 781px) {
	.rak-vbanner { min-height: 0; margin-block-start: 3rem; }
	.rak-vbanner__media { position: relative; flex: none; width: 100%; height: 320px; margin-top: .5rem; }
	.rak-vbanner__inner { flex-direction: column; align-items: stretch; gap: 1.5rem; padding-top: 2.25rem; }
	.rak-vbanner__slides { min-height: 6.5rem; }
}
@media (prefers-reduced-motion: reduce) {
	.rak-vbanner__media img { transition: none; }
	.rak-vbanner__slide.is-active .rak-vbanner__headline,
	.rak-vbanner__slide.is-active .rak-vbanner__caption { animation: none; }
}

/* Reveal-on-scroll: fade + rise; reduced-motion safe. */
.rak-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); will-change: opacity, transform; }
.rak-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.rak-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* --- Single attorney layout -------------------------------------------- */
.rak-attorney-photo { margin: 0 0 1.25rem; }
.rak-attorney-header .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 16px;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}
/* The bio columns carry is-not-stacked-on-mobile so the PRINT sheet stays
   two-column; this screen-only rule restores the stacked layout on phones. */
@media screen and (max-width: 781px) {
	.rak-attorney-header { display: block !important; }
	.rak-attorney-header > .wp-block-column { width: 100% !important; flex-basis: 100% !important; }
	.rak-attorney-header > .wp-block-column:first-child { margin-bottom: 1.5rem; }
}
.rak-attorney-meta a { word-break: break-word; }

/* --- Body copy width & readability ------------------------------------- */
.entry-content p,
.wp-block-post-content p { max-width: 70ch; }
/* Centered paragraphs must also center their (capped-width) block, else the
   text centers within a left-anchored box and looks off vs. full-width headings. */
.entry-content p.has-text-align-center,
.wp-block-post-content p.has-text-align-center { margin-left: auto; margin-right: auto; }

/* --- Footer ------------------------------------------------------------- */
.rak-footer a { text-decoration: none; opacity: .9; color: var(--wp--preset--color--base); }
.rak-footer a:hover { opacity: 1; color: var(--wp--preset--color--light-blue); }
.rak-office-link:hover, .rak-office-link:focus-visible { text-decoration: underline; }
.rak-footer__top { gap: 2rem; }
/* Contained footer band (mirror the header): cap the rows at a centered
   max-width so the footer doesn't stretch full-width on wide screens. The
   columns flow naturally within the band (brand, offices, contact) rather than
   being pushed to the edges. */
.rak-footer.is-layout-constrained > .rak-footer__top,
.rak-footer.is-layout-constrained > .wp-block-separator,
.rak-footer.is-layout-constrained > p { max-width: 1280px !important; }

/* --- Headings: never split words mid-character --------------------------- */
.wp-block-heading,
.wp-block-post-title,
.wp-block-post-title a {
	overflow-wrap: break-word;
	word-break: normal;
	-webkit-hyphens: none;
	hyphens: none;
}
.rak-card .wp-block-post-title {
	font-size: clamp(1.15rem, 1rem + 0.5vw, 1.35rem);
	line-height: 1.2;
	margin-bottom: 0.4rem;
}

/* --- Home section widths (override the 780px content cap) ---------------- */
.rak-news > *,
.rak-practice > * {
	max-width: 1200px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Clickable section headings (In the News / Practice Areas) */
.rak-section-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.rak-section-title a:hover { color: var(--wp--preset--color--primary); }
.rak-news__more a { color: var(--wp--preset--color--secondary); text-decoration: none; }
.rak-news__more a:hover { color: var(--wp--preset--color--primary); }

/* --- In the news (press) ------------------------------------------------- */
.rak-news__head a { text-decoration: none; color: var(--wp--preset--color--secondary); }
.rak-news__head a:hover { color: var(--wp--preset--color--primary); }
/* Equal-height news cards: each card fills its grid row regardless of title length */
.rak-news .wp-block-post-template > li { display: flex; }
.rak-press-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--gray-light);
	border-radius: 14px;
	padding: 1rem 1.15rem;
	width: 100%;
	align-items: center;
	transition: box-shadow .2s ease, border-color .2s ease;
}
.rak-press-card:hover {
	box-shadow: 0 14px 34px -22px rgba(0,30,44,.4);
	border-color: var(--wp--preset--color--pale-blue);
}
.rak-press-card .wp-block-post-featured-image {
	flex: 0 0 auto;
	margin: 0;
}
.rak-press-card .wp-block-post-featured-image img {
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}
.rak-press-card .wp-block-post-title { margin: 0 0 .3rem; }
.rak-press-card .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.rak-press-card .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }
.rak-press-card .wp-block-post-excerpt { margin: 0; }
.rak-press-card .wp-block-post-excerpt__excerpt { display: none; }      /* show only the Read more link */
.rak-press-card .wp-block-post-excerpt__more-link {
	display: inline-block;
	color: var(--wp--preset--color--secondary);
	font-weight: 600;
	font-size: .85rem;
	text-decoration: underline;
}
.rak-press-card .wp-block-post-excerpt__more-link:hover { color: var(--wp--preset--color--primary); }

/* --- Let's talk / Contact -------------------------------------------------*/
.rak-contact { padding: 0 !important; }
.rak-contact__inner {
	box-sizing: border-box;
	max-width: 1120px;
	margin: 3rem auto 4rem;
	background: #eaf5fa;
	border-radius: 22px;
	overflow: hidden;
}
.rak-contact__inner * { box-sizing: border-box; }
.rak-contact__inner p { max-width: none; }   /* override the 70ch body-copy cap */
.rak-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.rak-form-notice { max-width: 860px; margin: 2.5rem auto 0; padding: 0.9rem 1.1rem; border-radius: 12px; font-weight: 600; text-align: center; }
.rak-form-notice--ok { background: #d8efe0; color: #11633b; }
.rak-form-notice--err { background: #f6dcdc; color: #8a2b2b; }
.rak-contact-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);   /* minmax(0,…) prevents grid blowout */
	gap: 1.25rem 2.5rem;
	max-width: 860px;
	margin: 0 auto;
	padding: 2.75rem 2.5rem;
	align-items: stretch;
}
.rak-contact-col { display: flex; flex-direction: column; gap: 1.1rem; min-width: 0; }
.rak-contact-form label {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	font-size: .95rem;
	color: var(--wp--preset--color--contrast);
	min-width: 0;
}
.rak-field-row { display: flex; gap: 1.25rem; }
.rak-field-row label { flex: 1 1 0; min-width: 0; }
.rak-contact-form input,
.rak-contact-form textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	border: 1px solid #c5d8e2;
	background: #ffffff;
	border-radius: 12px;
	padding: .85rem 1rem;
	font: inherit;
	color: var(--wp--preset--color--contrast);
}
.rak-contact-form textarea { min-height: 150px; resize: vertical; }
.rak-contact-col:last-child { gap: 1rem; }   /* message column: textarea + submit */
.rak-contact-form input:focus,
.rak-contact-form textarea:focus { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 0; border-color: transparent; }
.rak-submit-row { display: flex; justify-content: flex-end; }
.rak-contact-form button {
	border: 1px solid #8fb8c8;
	background: transparent;
	color: var(--wp--preset--color--tertiary);
	font-weight: 600;
	border-radius: 999px;
	padding: .7rem 2.25rem;
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}
.rak-contact-form button:hover { background: var(--wp--preset--color--contrast); color: #fff; border-color: transparent; }
@media (max-width: 781px) {
	.rak-contact__inner { margin-left: 1.25rem; margin-right: 1.25rem; }
	.rak-contact-form { grid-template-columns: 1fr; }
}

/* --- Misc --------------------------------------------------------------- */
.has-navy-background-color { background-color: var(--rak-navy); }
figure.wp-block-image img { border-radius: 12px; }

/* Footer column nav links match the "Contact" heading (light blue, weight 600) */
.rak-footer .wp-block-navigation a,
.rak-footer .wp-block-navigation a:hover { color: var(--wp--preset--color--light-blue); }
.rak-footer .wp-block-navigation { font-weight: 600; }

/* Hero intro paragraph: use the hero's content width (not the 70ch body cap) so its
   left edge lines up with the heading instead of sitting centered/indented. */
.rak-hero p { max-width: 1000px; }

/* Patent page jury-verdict form images */
.rak-verdict { margin: 1.75rem auto; }
.rak-verdict img { border: 1px solid #e2e8ec; border-radius: 8px; box-shadow: 0 14px 34px -22px rgba(0, 30, 44, .45); background: #fff; }




/* --- Practice-area graphic banner (navy + PCB circuitry) ----------------- */
/* Sit flush under the header (remove the default block-gap above the banner). */
.wp-site-blocks > .rak-banner-wrap { margin-block-start: 0; }
.rak-banner { position: relative; width: 100%; overflow: hidden; background: linear-gradient(120deg, #0b1e2e 0%, #102a3e 55%, #143247 100%); }
.rak-banner__circ { position: absolute; inset: 0; background: url(banner-circuit.svg) right center / cover no-repeat; opacity: .9; }
/* Per-practice motif graphics (patent uses the default circuit above). */
.rak-banner--intellectual-property .rak-banner__circ { background-image: url(banner-ip.svg); }
.rak-banner--mergers-acquisitions .rak-banner__circ { background-image: url(banner-ma.svg); }
.rak-banner--media-entertainment-and-copyright-litigation .rak-banner__circ { background-image: url(banner-media.svg); }
.rak-banner--real-estate-transactions-and-litigation .rak-banner__circ { background-image: url(banner-realestate.svg); }
.rak-banner--complex-business-litigation .rak-banner__circ { background-image: url(banner-litigation.svg); }
.rak-banner--story .rak-banner__circ { background-image: url(banner-story.svg); opacity: .9; }
.rak-banner__fade { position: absolute; inset: 0; background: linear-gradient(90deg, #0b1e2e 14%, rgba(11,30,46,.85) 34%, rgba(11,30,46,0) 62%); }
.rak-banner__inner { position: relative; max-width: 1280px; margin: 0 auto; padding: 4rem 2rem; overflow: hidden; }
.rak-banner__kicker { color: #7fc4ec; font-size: 1.6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 .85rem; max-width: 720px; }
.rak-banner__title { color: #fff; font-size: clamp(1.9rem, 4.2vw, 3.4rem); font-weight: 800; line-height: 1.06; letter-spacing: -.01em; margin: 0; max-width: 620px; }
.rak-banner__rule { display: block; height: 4px; width: 64px; background: var(--rak-accent); margin-top: 1.3rem; border-radius: 2px; }
/* RAK Story banner: quoted headline (linked) + Daily Journal attribution. */
.rak-banner__title--quote { max-width: 760px; font-style: italic; }
.rak-banner__title--quote a { color: #fff; text-decoration: none; transition: color .2s; }
.rak-banner__title--quote a:hover, .rak-banner__title--quote a:focus-visible { color: #9ed4ee; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.rak-story-attr { display: flex; align-items: center; gap: .85rem; margin: 1.3rem 0 0; }
.rak-story-attr__label { color: rgba(255,255,255,.6); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.rak-story-attr__logo { display: block; height: 30px; width: auto; }
.rak-banner--story .rak-banner__rule { display: none; }
@media (max-width: 600px) { .rak-banner__inner { padding: 2.4rem 1.5rem; } .rak-banner__kicker { font-size: 1.15rem; } }
/* The banner is the page header on these pages — hide the duplicate in-content title. */
.rak-has-banner main .wp-block-post-title { display: none; }

/* Slide-in-from-left on load (Irell-style), staggered; respects reduced-motion. */
@keyframes rak-slide-in { from { opacity: 0; transform: translateX(-48px); } to { opacity: 1; transform: translateX(0); } }
.rak-banner__kicker { animation: rak-slide-in .6s cubic-bezier(.22,.61,.36,1) both; }
.rak-banner__title  { animation: rak-slide-in .7s cubic-bezier(.22,.61,.36,1) .12s both; }
.rak-banner__rule   { animation: rak-slide-in .7s cubic-bezier(.22,.61,.36,1) .24s both; }
.rak-story-attr     { animation: rak-slide-in .7s cubic-bezier(.22,.61,.36,1) .26s both; }
@media (prefers-reduced-motion: reduce) {
	.rak-banner__kicker, .rak-banner__title, .rak-banner__rule, .rak-story-attr { animation: none; }
}

/* --- Two-column banners (News + Attorneys): text left, aside right -------- */
.rak-banner--news .rak-banner__circ      { background-image: url(banner-news.svg); }
.rak-banner--attorneys .rak-banner__circ { background-image: url(banner-ip.svg); }
/* Keep more navy across the full width so the right-hand aside stays legible. */
.rak-banner--two-col .rak-banner__fade { background: linear-gradient(90deg, #0b1e2e 26%, rgba(11,30,46,.74) 64%, rgba(11,30,46,.5) 100%); }
.rak-banner--two-col .rak-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 3.5rem; }
.rak-banner--two-col .rak-banner__main  { flex: 1 1 auto; min-width: 0; }
.rak-banner--two-col .rak-banner__title { max-width: 560px; }
.rak-banner__aside { position: relative; flex: 0 0 auto; width: 44%; max-width: 560px; animation: rak-banner-rise .7s cubic-bezier(.22,.61,.36,1) .3s both; }
/* "Featured in" eyebrow above the logo wall. */
.rak-banner__featured { color: #7fc4ec; font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 1.25rem; }
/* Press-logo wall — uniform white treatment on the navy field. */
.rak-banner__logos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem 2rem; align-items: center; }
.rak-banner__logos img { max-width: 100%; max-height: 30px; width: auto; height: auto; justify-self: center; filter: brightness(0) invert(1); opacity: .9; }
/* Attorneys supporting lede. */
.rak-banner__lede { color: rgba(255,255,255,.86); font-size: 1.075rem; line-height: 1.62; margin: 0; }
@keyframes rak-banner-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 860px) {
	.rak-banner--two-col .rak-banner__inner { flex-direction: column; align-items: flex-start; gap: 2.25rem; }
	.rak-banner__aside { width: 100%; max-width: none; }
	.rak-banner__logos { gap: 1.25rem 1.75rem; }
}
@media (prefers-reduced-motion: reduce) { .rak-banner__aside { animation: none; } }
