/* =========================================================================
 * REDESIGN LAYER
 *
 * The approved redesign (uaenotarypublic-redesign.html), applied over the
 * existing component CSS. Values are taken from the mockup rather than
 * approximated.
 *
 * Why a layer over the existing child theme rather than the ground-up custom
 * theme the spec describes: every URL, all page content, the SEO metadata,
 * schema, internal linking, quality gate and form handling live in
 * theme-independent mu-plugins. Restyling reaches the same visual result while
 * the spec's own non-negotiables in section 7 - zero URL changes, preserved
 * metadata, preserved internal links - hold by construction rather than by
 * careful migration. The remaining template work is listed in
 * docs/redesign-notes.md.
 *
 * Loaded after style.css, so it wins on equal specificity.
 * ====================================================================== */

/* -------------------------------------------------------------------------
 * Base
 *
 * Kadence sets the body font and page background from its own Customizer
 * options, which theme.json cannot override. Declaring them here is what
 * actually moves the site onto Archivo and the paper ground.
 * ---------------------------------------------------------------------- */

body {
	font-family: var(--uaenp-body);
	background: var(--uaenp-paper);
	color: var(--uaenp-ink-solid);
	font-size: 16px;
	line-height: 1.6;
}

.entry-content p,
.entry-content li {
	color: var(--uaenp-ink-soft);
}

h1, h2, h3, h4, h5, h6,
.entry-title {
	font-family: var(--uaenp-display);
	color: var(--uaenp-ink-solid);
	letter-spacing: -0.01em;
}

h1, .entry-title { font-weight: 500; }
h2 { font-weight: 500; }
h3, h4 { font-weight: 600; }

a { color: var(--uaenp-brass-dark); }
a:hover, a:focus-visible { color: var(--uaenp-ink-solid); }

:focus-visible {
	outline: 2px solid var(--uaenp-brass);
	outline-offset: 2px;
}

/* A thin brass rule introduces each major section on inner pages. */
.entry-content.entry-content > h2 {
	padding-block-start: 1.4rem;
	border-block-start: 2px solid var(--uaenp-brass);
	margin-block-start: 3rem;
}

/* -------------------------------------------------------------------------
 * Top bar
 * ---------------------------------------------------------------------- */

.uaenp-topbar {
	background: var(--uaenp-ink-solid);
	color: #cfd8e3;
	font-size: 13px;
}

.uaenp-topbar__inner {
	max-width: var(--uaenp-wrap);
	margin-inline: auto;
	padding: 0 24px;
	min-height: 38px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.uaenp-topbar span {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/*
 * The email link is the only interactive control in the strip, and it is a
 * standalone one - it is not a link inside a sentence, so WCAG 2.5.8's inline
 * exemption does not cover it. Measured at 175x14 on a phone it failed the
 * 24x24 minimum on height.
 *
 * Fixed with padding and min-height on the anchor rather than by enlarging the
 * text: the hit area grows to 32px while the type stays at 13px, and because
 * .uaenp-topbar__inner is already min-height 38px with centred items, the strip
 * itself does not get any taller.
 */
.uaenp-topbar a {
	color: var(--uaenp-brass-soft);
	font-weight: 600;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding-inline: 0.5rem;
	/* Cancels the padding visually so the strip's alignment is unchanged. */
	margin-inline: -0.5rem;
	border-radius: 4px;
}

.uaenp-topbar a:hover { text-decoration: underline; }

.uaenp-topbar a:focus-visible {
	outline: 2px solid var(--uaenp-brass-soft);
	outline-offset: 1px;
	text-decoration: underline;
}

@media (max-width: 600px) {
	/* The address goes first on a phone; the email is the actionable half. */
	.uaenp-topbar__address { display: none; }
	.uaenp-topbar__inner { justify-content: center; }
}

/* -------------------------------------------------------------------------
 * Brand mark
 * ---------------------------------------------------------------------- */

.uaenp-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.uaenp-brand svg { width: 44px; height: 44px; flex: none; }

.uaenp-brand__name {
	font-family: var(--uaenp-display);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.1;
	color: var(--uaenp-ink-solid);
}

.uaenp-brand__name small {
	display: block;
	font-family: var(--uaenp-mono);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	/* Was --uaenp-brass (#a8823c): 3.25:1 on the paper background, which fails
	   AA for 10px text. --uaenp-brass-dark measures 5.27:1 on the same ground
	   and is the token already used for body links. Measured 2026-09-06. */
	color: var(--uaenp-brass-dark);
	font-weight: 500;
	margin-block-start: 3px;
}

/* -------------------------------------------------------------------------
 * Header and navigation
 * ---------------------------------------------------------------------- */

#masthead,
.site-header-wrap,
.site-header-row {
	background: var(--uaenp-paper);
}

#masthead { border-block-end: 1px solid var(--uaenp-line); }

.header-navigation .menu-item > a {
	font-family: var(--uaenp-body);
	font-size: 14.5px;
	font-weight: 500;
	color: var(--uaenp-ink-soft);
	border-block-end: 2px solid transparent;
}

.header-navigation .menu-item > a:hover,
.header-navigation .current-menu-item > a,
.header-navigation .current-menu-ancestor > a {
	color: var(--uaenp-ink-solid);
	border-block-end-color: var(--uaenp-brass);
}

.header-navigation ul ul.sub-menu {
	border-block-start: 2px solid var(--uaenp-brass);
	background: var(--uaenp-white);
	box-shadow: var(--uaenp-shadow);
}

/*
 * Twelve top-level items plus the wider brand lockup wrapped the menu onto a
 * second line. Tightening the tracking and gap fits it back on one row down to
 * the point where Kadence swaps in the mobile menu, rather than dropping items
 * or shrinking the brand.
 */
@media (min-width: 1025px) {
	.header-navigation .menu > .menu-item > a {
		font-size: 13px;
		padding-inline: 0;
		letter-spacing: -0.01em;
		white-space: nowrap;
	}

	/*
	 * Measured, not guessed. At 13px the twelve labels occupy 859px inside a
	 * fixed 965px track; 10px gaps brought the total to 969px, four pixels over,
	 * and the row wrapped. 8px leaves ~18px of headroom, which is enough for the
	 * font to render slightly wider on another platform without the header
	 * silently breaking into two lines again.
	 */
	.header-navigation .menu > .menu-item {
		margin-inline-end: 8px;
	}

	.header-navigation .menu > .menu-item:last-child {
		margin-inline-end: 0;
	}
}

/*
 * Below 1400px the descriptor is the widest part of the lockup and the space
 * is worth more to the menu. The brand name and mark carry the identity on
 * their own.
 */
@media (min-width: 1025px) and (max-width: 1399px) {
	.uaenp-brand__name small { display: none; }
}

/*
 * The page-title band.
 *
 * Kadence paints this container its own pale blue, which is the one surface on
 * the page that never picked up the new palette and read as a leftover from the
 * previous design directly under the new header.
 */
.entry-hero-container-inner {
	background: var(--uaenp-paper-deep);
	border-block-end: 1px solid var(--uaenp-line);
}

.entry-hero .entry-title {
	font-family: var(--uaenp-display);
	font-weight: 500;
	color: var(--uaenp-ink-solid);
}

/* The breadcrumb trail sits in this band and should read as a utility label. */
.entry-hero .rank-math-breadcrumb,
.entry-hero .rank-math-breadcrumb a {
	font-family: var(--uaenp-mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--uaenp-slate);
}

.entry-hero .rank-math-breadcrumb a { color: var(--uaenp-brass-dark); }

/* -------------------------------------------------------------------------
 * Eyebrow
 * ---------------------------------------------------------------------- */

.uaenp-eyebrow {
	font-family: var(--uaenp-mono);
	font-size: 11.5px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--uaenp-brass-dark);
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 10px;
	margin-block-end: 16px;
}

.uaenp-eyebrow::before {
	content: "";
	width: 28px;
	height: 1px;
	background: var(--uaenp-brass);
	flex: none;
}

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

.uaenp-button,
button.uaenp-button,
.wp-block-button__link {
	font-family: var(--uaenp-body);
	font-weight: 600;
	font-size: 14.5px;
	padding: 12px 22px;
	border-radius: 6px;
	border: 1px solid var(--uaenp-brass);
	background: var(--uaenp-brass);
	color: #fff;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.uaenp-button:hover,
button.uaenp-button:hover,
.wp-block-button__link:hover {
	background: var(--uaenp-brass-dark);
	border-color: var(--uaenp-brass-dark);
	color: #fff;
}

/* -------------------------------------------------------------------------
 * Enquiry card
 * ---------------------------------------------------------------------- */

.uaenp-enquiry {
	background: var(--uaenp-white);
	border: 1px solid var(--uaenp-line);
	border-radius: var(--uaenp-radius);
	box-shadow: var(--uaenp-shadow);
	color: var(--uaenp-ink-solid);
	padding: 0;
	overflow: hidden;
}

.uaenp-enquiry__heading {
	font-family: var(--uaenp-display);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--uaenp-ink-solid);
	margin: 0;
	padding: 24px 28px 0;
}

.uaenp-enquiry__intro {
	font-size: 13.5px;
	color: var(--uaenp-slate);
	margin: 6px 0 0;
	padding: 0 28px 18px;
	border-block-end: 1px dashed var(--uaenp-line);
}

.uaenp-enquiry__form { padding: 24px 28px 28px; }

.uaenp-enquiry .uaenp-field label {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--uaenp-ink-soft);
	text-transform: none;
	letter-spacing: 0;
}

.uaenp-enquiry .req { color: var(--uaenp-wax); }

.uaenp-enquiry input[type="text"],
.uaenp-enquiry input[type="email"],
.uaenp-enquiry input[type="tel"],
.uaenp-enquiry select,
.uaenp-enquiry textarea {
	font-family: var(--uaenp-body);
	font-size: 14.5px;
	padding: 11px 13px;
	border: 1px solid var(--uaenp-line);
	border-radius: 6px;
	background: var(--uaenp-paper);
	color: var(--uaenp-ink-solid);
	width: 100%;
}

.uaenp-enquiry input:focus,
.uaenp-enquiry select:focus,
.uaenp-enquiry textarea:focus {
	border-color: var(--uaenp-brass);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(168, 130, 60, 0.14);
	outline: none;
}


/*
 * "What do you need done?" shares the intake grid with the paired name/mobile
 * and email/document rows, but its option labels are full phrases rather than
 * single words, so a half-width track truncates them behind the select arrow.
 * It spans instead - and drops the standalone --wide top margin, which would
 * otherwise double up with the grid gap.
 */
.uaenp-enquiry__grid > .uaenp-field--wide {
	grid-column: 1 / -1;
	margin-block-start: 0;
}

.uaenp-enquiry .uaenp-field__hint { color: var(--uaenp-slate); }

.uaenp-enquiry__privacy {
	font-size: 12px;
	color: var(--uaenp-slate);
	text-align: center;
}

.uaenp-enquiry__privacy a { color: var(--uaenp-brass-dark); }

.uaenp-enquiry__notice--ok {
	background: var(--uaenp-paper-deep);
	border-inline-start: 3px solid var(--uaenp-brass);
	color: var(--uaenp-ink-solid);
}

/* The reference chip, top-right of the card. */
.uaenp-enquiry__ref {
	font-family: var(--uaenp-mono);
	font-size: 10.5px;
	color: var(--uaenp-brass-dark);
	letter-spacing: 0.14em;
	border: 1px solid var(--uaenp-line);
	border-radius: 4px;
	padding: 5px 8px;
	float: right;
	margin: 24px 28px 0 0;
}

/* -------------------------------------------------------------------------
 * Answer block
 * ---------------------------------------------------------------------- */

.uaenp-answer {
	background: var(--uaenp-paper-deep);
	border-inline-start: 3px solid var(--uaenp-brass);
	border-radius: var(--uaenp-radius);
}

/*
 * The lede sits above the banner and outside the two columns, so it needs its
 * own measure. Left-aligned to the same edge as the main column below, rather
 * than centred, so the page has one consistent left margin from the heading
 * down.
 */
/*
 * The lede spans the full content width.
 *
 * It sits above the banner and outside the two columns, so a 50rem cap left
 * roughly 490px of empty paper beside it at the top of every page - the first
 * thing a visitor sees. A standfirst is the one block where full width is
 * right: it is three or four lines of tinted callout, not a column of prose, so
 * the long-measure problem that justifies the 50rem cap below does not apply.
 * Generous padding keeps the text off the edges.
 */
.entry-content.entry-content > .uaenp-answer {
	max-width: none;
	margin-inline: 0;
	padding: 1.75rem 2.25rem;
}

.entry-content.entry-content > .uaenp-answer p {
	font-size: 1.125rem;
	line-height: 1.65;
}

.uaenp-answer p {
	color: var(--uaenp-ink-solid);
	font-size: 17.5px;
	line-height: 1.6;
}

/* -------------------------------------------------------------------------
 * Tables
 * ---------------------------------------------------------------------- */

.entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.entry-content table th,
.entry-content table td {
	text-align: start;
	padding: 0.7rem 0.9rem;
	border-block-end: 1px solid var(--uaenp-line);
	vertical-align: top;
}

.entry-content table thead th,
.uaenp-facts thead th {
	background: var(--uaenp-paper-deep);
	font-family: var(--uaenp-mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--uaenp-ink-solid);
	font-weight: 500;
}

/* -------------------------------------------------------------------------
 * FAQ accordion
 * ---------------------------------------------------------------------- */

.entry-content details:not(.uaenp-toc-mobile) { border-block-end: 1px solid var(--uaenp-line); }

.entry-content details:not(.uaenp-toc-mobile) > summary {
	cursor: pointer;
	list-style: none;
	padding: 22px 8px;
	font-weight: 600;
	font-size: 16.5px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}

.entry-content details:not(.uaenp-toc-mobile) > summary::-webkit-details-marker { display: none; }

.entry-content details:not(.uaenp-toc-mobile) > summary::after {
	content: "+";
	font-family: var(--uaenp-display);
	font-size: 24px;
	color: var(--uaenp-brass);
	flex: none;
	transition: transform 0.2s ease;
}

.entry-content details:not(.uaenp-toc-mobile)[open] > summary::after { transform: rotate(45deg); }

/* -------------------------------------------------------------------------
 * Related pages, as a chip row
 * ---------------------------------------------------------------------- */

.uaenp-related__heading {
	font-family: var(--uaenp-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--uaenp-brass-dark);
	font-weight: 500;
}

.uaenp-related__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.uaenp-related__list li {
	padding-inline-start: 0;
	margin: 0;
}

.uaenp-related__list li::before { display: none; }

.uaenp-related__list a {
	display: inline-block;
	font-size: 13.5px;
	font-weight: 600;
	border: 1px solid var(--uaenp-line);
	border-radius: 100px;
	padding: 9px 18px;
	background: var(--uaenp-paper);
	color: var(--uaenp-ink-soft);
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.uaenp-related__list a:hover,
.uaenp-related__list a:focus-visible {
	border-color: var(--uaenp-brass);
	color: var(--uaenp-brass-dark);
	border-block-end-color: var(--uaenp-brass);
}

/* -------------------------------------------------------------------------
 * Byline
 * ---------------------------------------------------------------------- */

.uaenp-byline {
	font-family: var(--uaenp-mono);
	font-size: 11.5px;
	letter-spacing: 0.08em;
	color: var(--uaenp-slate);
	text-transform: uppercase;
	border-block-start: 1px solid var(--uaenp-line);
	padding-block-start: 18px;
}

.uaenp-byline strong { color: var(--uaenp-ink-solid); font-weight: 500; }

/* -------------------------------------------------------------------------
 * CTA band
 * ---------------------------------------------------------------------- */

.uaenp-cta {
	background: var(--uaenp-wax);
	color: #fff;
	text-align: center;
	border-radius: 0;
}

.uaenp-cta h2,
.uaenp-cta h3 {
	color: #fff;
	font-family: var(--uaenp-display);
	font-weight: 500;
	border-block-start: none;
	padding-block-start: 0;
	margin-block-start: 0;
}

.uaenp-cta p { color: #f2d9d4; }
.uaenp-cta a:not(.wp-block-button__link) { color: #fff; }

/* -------------------------------------------------------------------------
 * Provider panel
 * ---------------------------------------------------------------------- */

.uaenp-provider {
	background: var(--uaenp-paper-deep);
	border: 1px solid var(--uaenp-line);
	border-inline-start: 3px solid var(--uaenp-brass);
}

.uaenp-provider__label {
	font-family: var(--uaenp-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--uaenp-brass-dark);
}

.uaenp-provider__name { font-family: var(--uaenp-display); }

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

.uaenp-footer-meta {
	background: var(--uaenp-ink-solid);
	color: #9fb0c2;
	font-size: 14px;
	border-block-start: none;

	/*
	 * The base stylesheet sets 2.5rem 1.25rem here. It stacked on top of the
	 * inner wrapper's own padding, adding 80px of empty band that nothing in
	 * the redesign layer overrode - a quarter of the footer's height spent on
	 * nothing. Spacing belongs to the inner wrapper alone.
	 */
	padding: 0;
}

/*
 * Measured at 860px before this pass - taller than the viewport it sits under,
 * so on a laptop the last thing a visitor saw was a wall of secondary links.
 * Every number below is chosen to buy height back: the identity block lost its
 * seal and strapline, the columns went from five links to four, the regulatory
 * heading went, and copyright merged into the policy row.
 */
.uaenp-footer-meta__inner {
	max-width: var(--uaenp-wrap);
	margin-inline: auto;
	padding: 20px 24px 12px;
}

/* Five equal tracks: identity, then four link groups. */
.uaenp-footer-top {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 18px 24px;
	padding-block-end: 16px;
}

.uaenp-footer-brand__name {
	font-family: var(--uaenp-display);
	font-size: 17px;
	letter-spacing: 0.01em;
	color: #eef2f6;
	margin: 0 0 10px;
}

.uaenp-footer-brand__address {
	font-style: normal;
	font-size: 12.5px;
	line-height: 1.65;
	color: #9fb0c2;
	margin: 0;
}

/* ---- Link columns ---- */

.uaenp-footer-cols {
	display: contents;
}

.uaenp-footer-col__title {
	font-family: var(--uaenp-mono);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--uaenp-brass-soft);
	margin: 0 0 9px;
	padding: 0;
	border: 0;
	line-height: 1.2;
}

.uaenp-footer-col__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.uaenp-footer-col__list a {
	font-size: 13px;
	line-height: 1.35;
	color: #c3cedb;
	text-decoration: none;
}

.uaenp-footer-meta a { color: #c3cedb; }
.uaenp-footer-meta a:hover { color: #fff; text-decoration: underline; }

/* ---- Social row ---- */

.uaenp-footer-social {
	list-style: none;
	display: flex;
	gap: 8px;
	margin: 14px 0 0;
	padding: 0;
}

/*
 * 34px rather than the icon's own 17px. Smaller than the 40px it was, but still
 * clear of the 24px WCAG target minimum - these sit at the bottom of a long
 * page where a thumb is doing the aiming.
 */
.uaenp-footer-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid var(--uaenp-line-ink);
	border-radius: 50%;
	color: #9fb0c2;
	transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.uaenp-footer-social__link:hover,
.uaenp-footer-social__link:focus-visible {
	color: var(--uaenp-ink-solid);
	background: var(--uaenp-brass-soft);
	border-color: var(--uaenp-brass-soft);
	text-decoration: none;
}

/* ---- Regulatory statement ---- */

/*
 * Full width at 11px rather than columned. The block's height is set by its
 * word count, not its layout, and one wide run of fine print costs three lines
 * where two or three narrow columns cost four or five.
 */
.uaenp-footer-legal {
	font-size: 10.5px;
	line-height: 1.6;
	color: #8b9cae;
	margin: 0;
	padding-block: 10px;
	border-block: 1px solid var(--uaenp-line-ink);
}

/* ---- Closing row: copyright + policies ---- */

.uaenp-footer-base {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	padding-block-start: 11px;
}

.uaenp-footer-base__copy {
	font-size: 12px;
	color: #7d8fa3;
	margin: 0;
}

.uaenp-footer-policies {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	margin: 0;
	padding: 0;
}

.uaenp-footer-policies a {
	font-size: 12px;
	color: #8b9cae;
	text-decoration: none;
}

/*
 * Kadence's own bottom bar is suppressed. It rendered a second copyright line
 * inside its own 118px band - a lot of dark pixels for eight words already
 * shown in the row above.
 */
.site-footer .site-bottom-footer-wrap {
	display: none;
}

@media (max-width: 1080px) {
	.uaenp-footer-top {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 26px 24px;
	}
}

@media (max-width: 720px) {
	.uaenp-footer-top {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.uaenp-footer-meta__inner {
		padding: 32px 20px 20px;
	}

	.uaenp-footer-col__list a {
		display: inline-block;
		padding-block: 2px;
	}
}

@media (max-width: 420px) {
	.uaenp-footer-top {
		grid-template-columns: 1fr;
	}
}

/* -------------------------------------------------------------------------
 * Two-column layout
 *
 * The prose keeps a readable measure and sits left; the width that used to be
 * empty gutter on both sides becomes a sidebar. Measured before the change: 105
 * of 109 blocks were 704px wide in a 1178px container, so 474px of every line
 * of the page was blank.
 * ---------------------------------------------------------------------- */

.entry-content.entry-content > .uaenp-layout {
	max-width: none;
	margin-inline: 0;
}

@media (min-width: 1080px) {
	.uaenp-layout {
		display: grid;
		/*
		 * The prose takes as much of the 1290px container as a readable measure
		 * allows, and the sidebar takes a fixed column on the right. 800 + 48 +
		 * 352 = 1200 of 1290, and space-between puts the remainder in the middle
		 * gutter so both columns sit on the container edges.
		 */
		grid-template-columns: minmax(0, 44rem) 25rem;
		justify-content: space-between;
		gap: 3rem;

		/*
		 * Stretch, not start.
		 *
		 * With align-items: start the aside collapsed to the height of its own
		 * content - 752px against a 5,965px article - so the sticky sidebar
		 * stopped scrolling with the reader after the first screen and left an
		 * empty column beside 87% of the page. A sticky child can only travel as
		 * far as its containing block, so the containing block has to be the
		 * full height of the row.
		 */
		align-items: stretch;
	}
}

/* The measure now belongs to the column, so the blocks inside simply fill it. */
.uaenp-layout__main > * {
	max-width: none;
	margin-inline: 0;
}

/* Structural blocks still span the main column edge to edge. */
.uaenp-layout__main > .uaenp-cta {
	margin-inline: 0;
}

.uaenp-aside-sticky {
	display: grid;
	gap: 1.75rem;
}

@media (min-width: 1080px) {
	/*
	 * The sticky block is capped to the viewport and laid out as a column, so
	 * the call to action is always on screen while scrolling.
	 *
	 * Previously the contents list and the CTA were simply stacked: the block
	 * ran to ~750px, and on a typical laptop viewport that put the button below
	 * the fold for the whole page. The list is the part that can afford to
	 * scroll, so it takes the flexible track and the CTA keeps its full height.
	 */
	.uaenp-aside-sticky {
		position: sticky;
		top: 6rem;
		display: flex;
		flex-direction: column;
		gap: 1.5rem;
		max-height: calc(100vh - 7.5rem);
	}

	.uaenp-toc {
		display: flex;
		flex-direction: column;
		/* min-height:0 lets a flex item shrink below its content size; without
		   it the list refuses to scroll and pushes the CTA out again. */
		min-height: 0;
		overflow: hidden;
	}

	.uaenp-toc__list {
		max-height: none;
		min-height: 4rem;
		overflow-y: auto;
		/* Room for the scrollbar so the last few labels are not clipped. */
		padding-inline-end: 0.5rem;
	}

	.uaenp-aside-cta {
		flex: none;
	}
}

/*
 * Stacked on a phone, the sidebar lands after the article.
 *
 * A closing call to action there is well placed - the reader has finished and
 * is deciding what to do. A twenty-two item contents list is not: it indexes a
 * page they have already scrolled past, and it would sit between the article
 * and the footer as a wall of links. The enquiry form is already at the top of
 * every page, so nothing is lost by dropping the list at this width.
 */
@media (max-width: 1079px) {
	.uaenp-toc { display: none; }

	.uaenp-layout__aside {
		margin-block-start: 2.5rem;
	}
}

/* ---------- contents list, mobile accordion ---------- */

/*
 * The counterpart to hiding .uaenp-toc above: below 1080px the sidebar list is
 * gone, and this takes over. Above 1080px the sidebar is doing the job and this
 * would be a duplicate set of links, so it is removed from the layout entirely
 * rather than merely hidden.
 */
.uaenp-toc-mobile { display: none; }

@media (max-width: 1079px) {
	/*
	 * box-sizing is set explicitly because these elements inherit content-box
	 * here, not the border-box most of the theme assumes. Left alone, the
	 * summary's min-height:56px applied to the content box and the 0.9rem
	 * padding was added on top, so the collapsed bar measured 85px instead of
	 * 56px - a third taller than intended, on the one control whose whole job is
	 * to stay small until it is wanted.
	 */
	.uaenp-toc-mobile,
	.uaenp-toc-mobile * {
		box-sizing: border-box;
	}

	.uaenp-toc-mobile {
		display: block;
		margin-block: 0 2rem;
		border: 1px solid var(--uaenp-line);
		border-inline-start: 3px solid var(--uaenp-brass);
		border-radius: var(--uaenp-radius);
		background: var(--uaenp-paper-deep);
	}

	.uaenp-toc-mobile__summary {
		/* A comfortable target for a thumb: 56px tall across the full width. */
		min-height: 56px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		padding: 0.9rem 1.1rem;
		cursor: pointer;
		list-style: none;
		font-family: var(--uaenp-body);
	}

	/* Safari draws its own disclosure triangle through a pseudo-element. */
	.uaenp-toc-mobile__summary::-webkit-details-marker { display: none; }

	.uaenp-toc-mobile__summary:focus-visible {
		outline: 2px solid var(--uaenp-brass-dark);
		outline-offset: -2px;
		border-radius: var(--uaenp-radius);
	}

	/*
	 * Both halves stay on one line. Left to wrap, "Article contents" broke onto
	 * two lines at 320px and the collapsed bar measured 100px tall - against the
	 * point of a control that is supposed to cost one row until it is opened.
	 * Measured at 320px the two labels plus the gap need ~224px inside a 285px
	 * track, so nowrap fits with room to spare.
	 */
	.uaenp-toc-mobile__label {
		font-size: 14px;
		font-weight: 600;
		color: var(--uaenp-ink-solid);
		letter-spacing: 0.01em;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.uaenp-toc-mobile__count {
		font-family: var(--uaenp-mono);
		font-size: 11px;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--uaenp-brass-dark);
		white-space: nowrap;
	}

	/* The chevron is decorative; the summary already announces its own state. */
	.uaenp-toc-mobile__count::after {
		content: "";
		display: inline-block;
		width: 0.45em;
		height: 0.45em;
		margin-inline-start: 0.6em;
		border-inline-end: 2px solid currentColor;
		border-block-end: 2px solid currentColor;
		transform: translateY(-0.15em) rotate(45deg);
		transition: transform 150ms ease;
	}

	.uaenp-toc-mobile[open] .uaenp-toc-mobile__count::after {
		transform: translateY(0.1em) rotate(-135deg);
	}

	.uaenp-toc-mobile__list {
		list-style: none;
		margin: 0;
		padding: 0 1.1rem 0.9rem;
		display: grid;
		gap: 0.25rem;
		border-block-start: 1px solid var(--uaenp-line);
		padding-block-start: 0.75rem;
	}

	.uaenp-toc-mobile__list li { margin: 0; }

	.uaenp-toc-mobile__list a {
		display: flex;
		align-items: center;
		/* 44px: these are the primary navigation controls of a long article. */
		min-height: 44px;
		padding: 0.35rem 0.5rem;
		font-size: 15px;
		line-height: 1.35;
		color: var(--uaenp-ink-soft);
		text-decoration: none;
		border-radius: 4px;
	}

	.uaenp-toc-mobile__list a:hover,
	.uaenp-toc-mobile__list a:focus-visible {
		color: var(--uaenp-ink-solid);
		background: var(--uaenp-paper);
		text-decoration: underline;
	}

	/*
	 * Jumping to a section must not land the heading underneath the sticky
	 * header, which would look like the link went to the wrong place.
	 */
	.entry-content h2[id] { scroll-margin-block-start: 5rem; }
}

/*
 * Smooth scrolling is a nicety, so it is opt-out by default rather than
 * opt-in-and-forgotten: the transition and the scroll are both disabled when
 * the reader has asked for reduced motion, and neither is required for the
 * links to work.
 */
.uaenp-toc-mobile__count::after { transition: none; }

@media (prefers-reduced-motion: no-preference) {
	.uaenp-toc-mobile__count::after { transition: transform 150ms ease; }
	html:has(.uaenp-toc-mobile) { scroll-behavior: smooth; }
}

/* ---------- contents list ---------- */

.uaenp-toc {
	border-block-start: 2px solid var(--uaenp-brass);
	padding-block-start: 1.1rem;
}

.uaenp-toc__heading {
	font-family: var(--uaenp-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--uaenp-brass-dark);
	font-weight: 500;
	margin: 0 0 0.9rem;
	border-block-start: none;
	padding-block-start: 0;
}

.uaenp-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
	/* A very long page would otherwise produce a contents list taller than the
	   viewport, which cannot be sticky and useful at the same time. */
	max-height: 60vh;
	overflow-y: auto;
}

.uaenp-toc__list li { margin: 0; }

.uaenp-toc__list a {
	font-size: 13.5px;
	line-height: 1.4;
	color: var(--uaenp-ink-soft);
	text-decoration: none;
	display: block;
	padding-inline-start: 0.75rem;
	border-inline-start: 2px solid var(--uaenp-line);
}

.uaenp-toc__list a:hover,
.uaenp-toc__list a:focus-visible {
	color: var(--uaenp-ink-solid);
	border-inline-start-color: var(--uaenp-brass);
}

/* ---------- sidebar CTA ---------- */

.uaenp-aside-cta {
	background: var(--uaenp-paper-deep);
	border: 1px solid var(--uaenp-line);
	border-radius: var(--uaenp-radius);
	padding: 1.4rem 1.5rem;
}

.uaenp-aside-cta__label {
	font-family: var(--uaenp-display);
	font-size: 17px;
	font-weight: 600;
	color: var(--uaenp-ink-solid);
	margin: 0 0 0.5rem;
	line-height: 1.25;
}

.uaenp-aside-cta__text {
	font-size: 13.5px;
	color: var(--uaenp-slate);
	margin: 0 0 1.1rem;
}

.uaenp-aside-cta__button {
	display: block;
	text-align: center;
	text-decoration: none;
	font-size: 14px;
}

/* Headings inside the sidebar are labels, not article sections. */
.uaenp-layout__aside h2 {
	border-block-start: none;
	padding-block-start: 0;
	margin-block-start: 0;
}

/* -------------------------------------------------------------------------
 * Seal watermark
 * ---------------------------------------------------------------------- */

.uaenp-seal-watermark {
	position: absolute;
	inset-inline-end: -140px;
	/*
	 * Anchored to the top, not the middle. Centring it on a positioned ancestor
	 * that is 13,000px tall put the mark somewhere around the sixth screen of
	 * the page, where it read as a stray graphic rather than part of the hero.
	 */
	top: 0;
	width: 560px;
	height: 560px;
	opacity: 0.05;
	pointer-events: none;
	z-index: 0;
}

.uaenp-seal-watermark svg {
	width: 100%;
	height: 100%;
	animation: uaenp-seal-spin 90s linear infinite;
}

@keyframes uaenp-seal-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
	.uaenp-seal-watermark svg { animation: none; }
}

@media (max-width: 620px) {
	.uaenp-seal-watermark { display: none; }
}

.entry-hero,
.entry-content { position: relative; }

.uaenp-banner,
.uaenp-answer { position: relative; z-index: 1; }

/* -------------------------------------------------------------------------
 * Reading typography
 *
 * Measured on the homepage before this pass: body copy at 16px running 778px
 * wide, which is about 97 characters a line. The comfortable range is 60-80;
 * past roughly 90 the eye loses its place returning to the left margin, and on
 * pages this long that is felt as fatigue rather than noticed as a fault.
 *
 * Two changes together, rather than either alone. Raising the type to 17px cuts
 * the character count without touching the layout, and narrowing the main
 * column to 44rem takes it the rest of the way to about 85. Narrowing alone
 * would have hit the target but left a 200px dead strip between the column and
 * the sidebar - the same wasted space this layout was built to remove - so the
 * sidebar takes the width instead and the CTA card gets room it can use.
 *
 * Selectors are doubled (.entry-content.entry-content) because Kadence styles
 * headings at (0,1,1) and a single class would lose the cascade.
 * ---------------------------------------------------------------------- */

.entry-content.entry-content p,
.entry-content.entry-content li {
	font-size: 17px;
	line-height: 1.65;
}

/*
 * The old scale ran H2 28 / H3 24 - a ratio of 1.17, close enough that a reader
 * skimming for structure could not tell a section from a subsection at a
 * glance. Pulling H3 down to 21px restores a visible step at each level.
 */
.entry-content.entry-content h2 {
	font-size: 30px;
	line-height: 1.25;
	letter-spacing: -0.01em;
}

.entry-content.entry-content h3 {
	font-size: 21px;
	line-height: 1.35;
}

.entry-content.entry-content h4 {
	font-size: 17.5px;
	line-height: 1.4;
}

/*
 * The lede keeps the full width it was given deliberately, but at 18px so it
 * reads as a standfirst rather than an unusually wide paragraph of body copy.
 */
.entry-content.entry-content > .uaenp-answer p,
.entry-content.entry-content > .uaenp-answer {
	font-size: 18px;
	line-height: 1.6;
}

/* -------------------------------------------------------------------------
 * Service grid
 *
 * The hub pages run to 106 blocks of which 68 are paragraphs. This is the one
 * block on the page a visitor can scan rather than read, so it earns real
 * contrast: cards on the paper-deep ground, a brass rule that fills on hover,
 * and enough padding that each card reads as an object rather than a table row.
 * ---------------------------------------------------------------------- */

.entry-content.entry-content .uaenp-svcgrid {
	margin-block: 2.75rem;
}

.entry-content.entry-content .uaenp-svcgrid__title {
	font-family: var(--uaenp-mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--uaenp-brass-dark);
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
}

.uaenp-svcgrid__list {
	list-style: none;
	margin: 0;
	padding: 1px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 0;
}

/*
 * Each card draws its own hairline as an outset shadow, and adjacent cards
 * overlap theirs, so every divider stays 1px with no doubling where cards meet.
 *
 * The earlier version painted a line-coloured background behind a 1px grid gap,
 * which was fine until the item count stopped filling the last row - the empty
 * cell then showed as a stray box. auto-fit gives two, three or four columns
 * depending on the viewport, so some width will always leave a gap; a shadow
 * belongs to a card that exists and an empty cell simply draws nothing.
 */
.uaenp-svcgrid__item {
	margin: 0;
	background: var(--uaenp-paper);
	box-shadow: 0 0 0 1px var(--uaenp-line);
}

.uaenp-svcgrid__link {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	height: 100%;
	padding: 1.1rem 1.2rem 1.2rem;
	text-decoration: none;
	border-block-start: 2px solid transparent;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.uaenp-svcgrid__link:hover,
.uaenp-svcgrid__link:focus-visible {
	background: #fff;
	border-block-start-color: var(--uaenp-brass);
	text-decoration: none;
}

.uaenp-svcgrid__name {
	font-family: var(--uaenp-display);
	font-size: 16.5px;
	line-height: 1.25;
	color: var(--uaenp-ink-solid);
}

.uaenp-svcgrid__desc {
	font-size: 13px;
	line-height: 1.5;
	color: var(--uaenp-slate);
}

/* -------------------------------------------------------------------------
 * Section rhythm
 *
 * Twenty-one H2 sections running one after another with nothing between them
 * read as a single undifferentiated column - the headings are larger text, not
 * a visible boundary. A hairline rule and real space above each one turns the
 * page into a stack of sections a reader can navigate by eye.
 *
 * :not(:first-child) keeps the rule off the opening heading, where it would
 * draw a line immediately under the banner for no reason.
 * ---------------------------------------------------------------------- */

.entry-content.entry-content h2:not(:first-child) {
	margin-block-start: 3.25rem;
	padding-block-start: 1.6rem;
	border-block-start: 1px solid var(--uaenp-line);
}

/* The grid supplies its own spacing and sits between two sections already. */
.entry-content.entry-content .uaenp-svcgrid__title {
	margin-block-start: 0;
	padding-block-start: 0;
	border-block-start: 0;
}

/*
 * FAQ answers sit under H3s in long runs. A little more air above each question
 * than below its answer groups the pair, so a reader scanning for their own
 * question sees eight blocks rather than sixteen alternating lines.
 */
.entry-content.entry-content h3 {
	margin-block-start: 2.25rem;
}

/* -------------------------------------------------------------------------
 * Vertical rhythm, tightened
 *
 * Measured on the homepage: the main column ran 13,038px, of which 4,300px -
 * a full third - was margin. Paragraphs carried 32px below each one against a
 * 28px line-height, so every gap was larger than a line of the text it
 * separated. That reads as drift rather than as air, and it is what makes a
 * page of this length feel endless.
 *
 * The numbers below keep the hierarchy intact - a section break is still
 * clearly bigger than a paragraph break - while giving back roughly 1,300px.
 * ---------------------------------------------------------------------- */

.entry-content.entry-content p {
	margin-block-end: 1.25rem;
}

.entry-content.entry-content h2:not(:first-child) {
	margin-block-start: 2.5rem;
	padding-block-start: 1.15rem;
}

.entry-content.entry-content h3 {
	margin-block-start: 1.6rem;
	margin-block-end: 0.6rem;
}

.entry-content.entry-content ul,
.entry-content.entry-content ol {
	margin-block: 1.25rem;
}

.entry-content.entry-content li {
	margin-block-end: 0.35rem;
}

/* -------------------------------------------------------------------------
 * Byline
 *
 * The doubled body-copy selector added earlier (.entry-content.entry-content p)
 * outranked the byline's own rule at (0,1,0), so it was rendering at 17px -
 * body-copy size - in uppercase mono, wrapping to three lines and 107px. This
 * rule matches that specificity and takes it back.
 *
 * Sentence case rather than uppercase: at this length the caps were the reason
 * it wrapped, and small caps of a long job title are harder to read than the
 * plain words.
 * ---------------------------------------------------------------------- */

.entry-content.entry-content .uaenp-byline {
	font-family: var(--uaenp-mono);
	font-size: 11px;
	line-height: 1.5;
	letter-spacing: 0.02em;
	text-transform: none;
	color: var(--uaenp-slate);
	margin-block: 0;
	padding-block-start: 12px;
}

/* -------------------------------------------------------------------------
 * Enquiry card, tightened
 *
 * The hero measured 1,038px - close to one and a half viewports before a
 * visitor reaches any prose. The form sets that height and the image column
 * stretches to match it, so trimming the field rhythm shortens both.
 *
 * Control padding stays at 10px rather than dropping further: these are the
 * inputs the whole page exists to get filled in, and a cramped field is a
 * worse trade than a slightly taller card.
 * ---------------------------------------------------------------------- */

.uaenp-enquiry input[type="text"],
.uaenp-enquiry input[type="email"],
.uaenp-enquiry input[type="tel"],
.uaenp-enquiry select,
.uaenp-enquiry textarea {
	padding: 10px 12px;
}

.uaenp-enquiry .uaenp-field {
	margin-block-end: 0.7rem;
}

.uaenp-enquiry .uaenp-enquiry__grid {
	gap: 0.7rem;
}

.uaenp-enquiry .uaenp-field--wide {
	margin-block-start: 0;
}

/* -------------------------------------------------------------------------
 * FAQ accordion
 *
 * Twelve questions as twelve rows rather than 1,956px of open answers. The
 * marker is drawn rather than left to the browser default, which is a small
 * triangle inconsistent across engines and easy to miss at this size.
 * ---------------------------------------------------------------------- */

.entry-content.entry-content .uaenp-faq-item {
	border-block-end: 1px solid var(--uaenp-line);
	margin: 0;
}

.entry-content.entry-content .uaenp-faq-item:first-of-type {
	border-block-start: 1px solid var(--uaenp-line);
}

.uaenp-faq-item__q {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	cursor: pointer;
	list-style: none;
	padding: 0.85rem 0;
	font-family: var(--uaenp-display);
	font-size: 16px;
	line-height: 1.4;
	color: var(--uaenp-ink-solid);
}

/* Safari still paints its own triangle without this. */
.uaenp-faq-item__q::-webkit-details-marker {
	display: none;
}

.uaenp-faq-item__q::after {
	content: "+";
	flex: none;
	font-family: var(--uaenp-mono);
	font-size: 18px;
	line-height: 1.2;
	color: var(--uaenp-brass-dark);
	transition: transform 0.15s ease;
}

.uaenp-faq-item[open] > .uaenp-faq-item__q::after {
	content: "\2212";
}

.uaenp-faq-item__q:hover,
.uaenp-faq-item__q:focus-visible {
	color: var(--uaenp-brass-dark);
}

.entry-content.entry-content .uaenp-faq-item__a {
	padding-block-end: 0.85rem;
}

.entry-content.entry-content .uaenp-faq-item__a > *:last-child {
	margin-block-end: 0;
}

/*
 * Someone printing the page, or searching it with the browser's own find, is
 * not served by hidden answers - print opens every panel.
 */
@media print {
	.uaenp-faq-item > .uaenp-faq-item__a {
		display: block !important;
	}
}


/* -------------------------------------------------------------------------
 * Mobile reading order
 *
 * A script in uaenp-byline.php lifts the enquiry form to the top of the article
 * on phones and drops the hero image to the end, giving H1 → form → content →
 * image. These rules dress the two pieces once they have moved.
 *
 * The order rule is the no-JavaScript fallback: if the script never runs, the
 * form and image stay inside the banner and the form at least comes first.
 * ---------------------------------------------------------------------- */

@media (max-width: 900px) {
	.uaenp-banner--split > .uaenp-banner__aside {
		order: -1;
	}

	/*
	 * Hoisted out of the banner it loses the banner's bottom margin, and as the
	 * first thing under the title it wants a little air above it.
	 */
	.entry-content.entry-content > .uaenp-banner__aside--hoisted {
		margin-block: 1.25rem 2rem;
	}

	/*
	 * Demoted to the foot of the article. Kept to the same proportion it had in
	 * the banner so it reads as a closing image rather than a stray asset.
	 */
	.entry-content.entry-content > .uaenp-banner__media--demoted {
		margin-block-start: 2rem;
	}

	.uaenp-banner__media--demoted .uaenp-hero__img {
		aspect-ratio: 16 / 9;
		max-height: 260px;
	}

	/*
	 * With both children gone the banner is an empty box that would still draw
	 * its own margin. Collapse it rather than leave a gap where it used to be.
	 */
	.uaenp-banner--split:empty {
		display: none;
	}
}

/* -------------------------------------------------------------------------
 * Contrast corrections — WCAG 2.2 AA
 *
 * Measured with axe-core 4.10.2 against the live homepage. Every failure below
 * was in a shared component, so each fix repairs the whole site rather than one
 * page — which is why they are here and not patched per template.
 *
 *   #uaenp-file      1.08  paper text on white. Effectively invisible.
 *   button[submit]   3.54  white on --uaenp-brass. Needs 4.5 at 14.5px.
 *   .uaenp-enquiry__ref
 *                    4.46  --uaenp-brass-dark on white. Just short of 4.5,
 *                          despite the token being commented "AA-safe" - it
 *                          never was, and the comment made it look checked.
 *   small (hints)    3.25  --uaenp-brass on paper at 10px.
 *
 * The accent itself (--uaenp-brass) is unchanged. It stays correct for rules,
 * borders and focus rings, where the requirement is 3:1 for non-text or none at
 * all. Only text and text-bearing backgrounds move to the darker value.
 * ---------------------------------------------------------------------- */

:root {
	/*
	 * 5.74 on white, 5.27 on paper, 4.86 on paper-deep - passes AA for normal
	 * text on all three surfaces the site uses. #94722f measured 4.46 / 4.09.
	 * #8a6a2b was tried first and cleared white and paper but failed the
	 * paper-deep callout at 4.26, where the authority citations sit.
	 */
	--uaenp-brass-dark: #806128;

	/* White text on brass needs the same treatment: 5.74 against #fff. */
	--uaenp-brass-cta: #806128;
}

.uaenp-button,
button.uaenp-button,
.wp-block-button__link {
	background: var(--uaenp-brass-cta);
	border-color: var(--uaenp-brass-cta);
}

/* Hover must stay distinguishable and still pass, so it darkens further. */
.uaenp-button:hover,
button.uaenp-button:hover,
.wp-block-button__link:hover {
	background: #705422;
	border-color: #705422;
}

/*
 * The file input inherited the paper colour on a white field. Given a real text
 * colour it becomes readable; the selector button keeps the CTA brass so it
 * still reads as an action.
 */
.uaenp-enquiry .uaenp-field--file input[type="file"],
.uaenp-enquiry input[type="file"] {
	color: var(--uaenp-ink-solid);
}

.uaenp-enquiry input[type="file"]::file-selector-button {
	background: var(--uaenp-brass-cta);
	color: #fff;
}

/* Small print carrying the accent colour: 10px at 3.25 was never readable. */
.uaenp-enquiry small,
.uaenp-enquiry .uaenp-field__hint,
.entry-content.entry-content small {
	color: var(--uaenp-slate);
}

/* -------------------------------------------------------------------------
 * Tap targets in the header
 *
 * Measured at a real 390px viewport on 2026-09-06: the drawer toggle was
 * 37x31, the brand link 241x31 and the top-bar email link 193x32. All three
 * clear WCAG 2.2 AA (2.5.8 asks for 24x24), so none of this is a conformance
 * failure - it is the 44px comfort target from 2.5.5 AAA, and the toggle is
 * the one that matters, being the only way into the menu on a phone.
 *
 * Padding rather than height, so the header band does not grow: the toggle
 * already sits in a taller row and simply was not claiming it.
 * ---------------------------------------------------------------------- */

@media (max-width: 1024px) {

	.site-header .menu-toggle-open,
	.site-header .drawer-toggle {
		min-width: 44px;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.uaenp-topbar a[href^="mailto:"],
	.uaenp-topbar a[href^="tel:"],
	.uaenp-topbar a[href*="wa.me"] {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* -------------------------------------------------------------------------
 * Google Preferred Sources - top-of-content row
 *
 * A single line: label plus Google's control, sharing one row on desktop and
 * wrapping on narrow screens. No heading, no card, no border box around the
 * control - it must not read as a badge or an accreditation mark.
 *
 * min-height on the slot is 40px, which is the exact height Google renders,
 * so nothing below it moves when the control appears.
 *
 * Label colour is --uaenp-brass-dark: 5.27:1 on the paper background, past AA
 * at this size. Do not switch it to --uaenp-brass, which measures 3.25:1.
 * ---------------------------------------------------------------------- */

.uaenp-prefsrc-top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 16px;
	margin: 0 0 20px;
	padding: 10px 0;
	border-block: 1px solid var(--uaenp-line);
}

/* Specificity note: the content column carries
   ".entry-content.entry-content p" at (0,2,1), which beat a single class and
   forced this label back to 17px body ink. Matched here with the same doubled
   class so the label keeps its own size and colour. */
.uaenp-prefsrc-top .uaenp-prefsrc-top__label,
.entry-content.entry-content .uaenp-prefsrc-top__label {
	margin: 0;
	font-family: var(--uaenp-mono);
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--uaenp-brass-dark);
}

.uaenp-prefsrc-top__slot {
	display: flex;
	align-items: center;
	min-height: 40px;
	max-width: 100%;
	overflow-x: auto;
}

.uaenp-prefsrc-top__slot > div {
	max-width: 100%;
}

@media (max-width: 600px) {

	.uaenp-prefsrc-top {
		gap: 4px 12px;
		margin-bottom: 16px;
		padding: 8px 0;
	}
}


/* ===========================================================================
 * ENQUIRY PANEL - SHORTCODE CONTEXT
 * In the banner the panel fills a column. Placed in the page by shortcode it
 * needs to read as a self-contained card: bounded width, real padding, and a
 * two/three column field layout instead of one tall stack.
 * ======================================================================== */

.uaenp-enquiry--shortcode {
	position: relative;
	max-width: 760px;
	margin-inline: auto;
	padding: 1.75rem 2rem 1.5rem;
	background: #fff;
	border: 1px solid var(--uaenp-sand, #d9d4c8);
	border-radius: var(--uaenp-radius, 10px);
	box-shadow: 0 1px 2px rgba(16, 29, 46, .05), 0 10px 28px rgba(16, 29, 46, .06);
}

.uaenp-enquiry--shortcode .uaenp-enquiry__ref {
	position: absolute;
	top: 1.125rem;
	right: 1.5rem;
	margin: 0;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__heading {
	margin: 0 0 .375rem;
	font-size: 1.4375rem;
	line-height: 1.2;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__intro {
	margin: 0 0 1.25rem;
	max-width: 60ch;
	font-size: .9375rem;
	line-height: 1.5;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__form {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	column-gap: .75rem;
	row-gap: .625rem;
	align-items: end;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__form > input[type="hidden"] { display: none; }

.uaenp-enquiry--shortcode .uaenp-enquiry__form > * { grid-column: 1 / -1; margin: 0; }

.uaenp-enquiry--shortcode .uaenp-enquiry__grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	column-gap: .75rem;
	row-gap: .625rem;
	margin: 0;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__grid > .uaenp-field:nth-child(1),
.uaenp-enquiry--shortcode .uaenp-enquiry__grid > .uaenp-field:nth-child(2),
.uaenp-enquiry--shortcode .uaenp-enquiry__grid > .uaenp-field:nth-child(3) { grid-column: span 2; }

.uaenp-enquiry--shortcode .uaenp-enquiry__grid > .uaenp-field:nth-child(4),
.uaenp-enquiry--shortcode .uaenp-enquiry__grid > .uaenp-field:nth-child(5) { grid-column: span 3; }

.uaenp-enquiry--shortcode .uaenp-enquiry__action { display: contents; }

.uaenp-enquiry--shortcode .uaenp-enquiry__form > p.uaenp-field--wide:nth-of-type(1) { grid-column: 1 / -1; }
.uaenp-enquiry--shortcode .uaenp-enquiry__form > p.uaenp-field--wide:nth-of-type(2) { grid-column: span 4; }
.uaenp-enquiry--shortcode .uaenp-field--captcha { grid-column: span 2; }

.uaenp-enquiry--shortcode .uaenp-enquiry__privacy {
	grid-column: span 4;
	align-self: center;
	margin: .625rem 0 0;
	font-size: .78125rem;
	line-height: 1.45;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__submit {
	grid-column: span 2;
	justify-self: end;
	align-self: center;
	margin: .625rem 0 0;
}

.uaenp-enquiry--shortcode .uaenp-field label { margin-bottom: .1875rem; font-size: .8125rem; }

.uaenp-enquiry--shortcode .uaenp-field input,
.uaenp-enquiry--shortcode .uaenp-field select { min-height: 42px; padding-block: .4375rem; }

.uaenp-enquiry--shortcode .uaenp-field textarea { min-height: 64px; padding-block: .4375rem; }

.uaenp-enquiry--shortcode .uaenp-field--file input { min-height: 42px; padding: .375rem; font-size: .8125rem; }

.uaenp-enquiry--shortcode .uaenp-field__hint { display: block; margin-top: .1875rem; font-size: .75rem; line-height: 1.4; }

.uaenp-enquiry--shortcode .uaenp-button { min-height: 44px; white-space: nowrap; }

@media (max-width: 768px) {
	.uaenp-enquiry--shortcode { padding: 1.25rem; }

	.uaenp-enquiry--shortcode .uaenp-enquiry__form,
	.uaenp-enquiry--shortcode .uaenp-enquiry__grid { grid-template-columns: 1fr; }

	.uaenp-enquiry--shortcode .uaenp-enquiry__form > *,
	.uaenp-enquiry--shortcode .uaenp-enquiry__grid > .uaenp-field,
	.uaenp-enquiry--shortcode .uaenp-field--captcha,
	.uaenp-enquiry--shortcode .uaenp-enquiry__privacy,
	.uaenp-enquiry--shortcode .uaenp-enquiry__submit {
		grid-column: 1 / -1;
		justify-self: stretch;
	}

	.uaenp-enquiry--shortcode .uaenp-button { width: 100%; }
	.uaenp-enquiry--shortcode .uaenp-enquiry__ref { display: none; }
}

/* Enquiry card - final trim. */
.uaenp-enquiry--shortcode .uaenp-enquiry__heading {
	margin-top: 0;
	margin-bottom: .25rem;
	font-size: 1.375rem;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__intro {
	margin-bottom: 1rem;
	max-width: 56ch;
	font-size: .875rem;
	line-height: 1.45;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__form,
.uaenp-enquiry--shortcode .uaenp-enquiry__grid {
	row-gap: .5rem;
}

.uaenp-enquiry--shortcode .uaenp-field label {
	margin-bottom: .125rem;
	font-size: .78125rem;
	line-height: 1.3;
}

.uaenp-enquiry--shortcode .uaenp-field input,
.uaenp-enquiry--shortcode .uaenp-field select,
.uaenp-enquiry--shortcode .uaenp-field--file input {
	min-height: 40px;
	padding-block: .375rem;
}

.uaenp-enquiry--shortcode .uaenp-field textarea {
	min-height: 56px;
}

.uaenp-enquiry--shortcode .uaenp-field__hint {
	font-size: .71875rem;
	margin-top: .125rem;
}

/* The privacy note reads before the button, but the button follows it in the
 * markup. Ordering the two grid items puts the note left and the action right. */
.uaenp-enquiry--shortcode .uaenp-enquiry__privacy {
	order: 1;
	margin-top: .5rem;
	text-align: left;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__submit {
	order: 2;
	margin-top: .5rem;
}

@media (max-width: 768px) {
	.uaenp-enquiry--shortcode .uaenp-enquiry__privacy { order: 2; }
	.uaenp-enquiry--shortcode .uaenp-enquiry__submit { order: 1; }
}

/* The entry-content paragraph rule is doubled up for specificity, so the card
 * has to match it to set its own scale. */
.entry-content .uaenp-enquiry--shortcode .uaenp-enquiry__intro {
	font-size: .875rem;
	line-height: 1.45;
	max-width: 56ch;
	margin: 0 0 1rem;
}

.entry-content .uaenp-enquiry--shortcode .uaenp-enquiry__privacy {
	font-size: .78125rem;
	line-height: 1.45;
	margin: .5rem 0 0;
}

.entry-content .uaenp-enquiry--shortcode .uaenp-field label {
	font-size: .78125rem;
	line-height: 1.3;
	margin-bottom: .125rem;
}

.entry-content .uaenp-enquiry--shortcode .uaenp-field__hint {
	font-size: .71875rem;
	line-height: 1.4;
	margin-top: .125rem;
}

.entry-content .uaenp-enquiry--shortcode .uaenp-enquiry__heading {
	margin-top: 0;
	margin-bottom: .25rem;
}

/* ===========================================================================
 * ENQUIRY CARD - COMPACT
 * Six visible controls. The description and the attachment sit behind an
 * optional disclosure so the panel is roughly a third of its former height.
 * ======================================================================== */

.uaenp-enquiry--shortcode {
	max-width: 720px;
	padding: 1.25rem 1.5rem 1.125rem;
}

.entry-content .uaenp-enquiry--shortcode .uaenp-enquiry__heading {
	font-size: 1.1875rem;
	margin: 0 0 .1875rem;
}

.entry-content .uaenp-enquiry--shortcode .uaenp-enquiry__intro {
	font-size: .8125rem;
	line-height: 1.4;
	max-width: 62ch;
	margin: 0 0 .875rem;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__ref { top: .875rem; right: 1rem; }

.uaenp-enquiry--shortcode .uaenp-enquiry__form,
.uaenp-enquiry--shortcode .uaenp-enquiry__grid { row-gap: .4375rem; column-gap: .625rem; }

/* Row 2 becomes document type | required service */
.uaenp-enquiry--shortcode .uaenp-enquiry__grid > .uaenp-field:nth-child(4),
.uaenp-enquiry--shortcode .uaenp-enquiry__grid > .uaenp-field:nth-child(5) { grid-column: span 3; }

.entry-content .uaenp-enquiry--shortcode .uaenp-field label {
	font-size: .75rem;
	margin-bottom: .0625rem;
}

.uaenp-enquiry--shortcode .uaenp-field input,
.uaenp-enquiry--shortcode .uaenp-field select { min-height: 38px; padding-block: .3125rem; }

/* The optional disclosure */
.uaenp-enquiry--shortcode .uaenp-enquiry__more { grid-column: 1 / -1; margin: .25rem 0 0; }

.uaenp-enquiry--shortcode .uaenp-enquiry__more-summary {
	cursor: pointer;
	font-size: .8125rem;
	padding: .3125rem 0;
	color: var(--uaenp-ink, #5a6b7e);
	list-style: none;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__more-summary::-webkit-details-marker { display: none; }

.uaenp-enquiry--shortcode .uaenp-enquiry__more-summary::before {
	content: "+";
	display: inline-block;
	width: 1.1em;
	font-weight: 700;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__more[open] .uaenp-enquiry__more-summary::before { content: "\2212"; }

.uaenp-enquiry--shortcode .uaenp-enquiry__more-summary:focus-visible {
	outline: 2px solid var(--uaenp-ink, #5a6b7e);
	outline-offset: 2px;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__more-body {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	column-gap: .625rem;
	row-gap: .4375rem;
	padding-top: .5rem;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__more-body > p.uaenp-field--wide:nth-of-type(1) { grid-column: 1 / -1; }
.uaenp-enquiry--shortcode .uaenp-enquiry__more-body > p.uaenp-field--wide:nth-of-type(2) { grid-column: 1 / -1; }
.uaenp-enquiry--shortcode .uaenp-field textarea { min-height: 52px; }

/* Action row: security check | privacy | send */
.uaenp-enquiry--shortcode .uaenp-field--captcha { grid-column: span 2; }
.uaenp-enquiry--shortcode .uaenp-enquiry__privacy { grid-column: span 2; order: 1; margin: .375rem 0 0; font-size: .71875rem; }
.entry-content .uaenp-enquiry--shortcode .uaenp-enquiry__privacy { font-size: .71875rem; line-height: 1.4; margin: .375rem 0 0; }
.uaenp-enquiry--shortcode .uaenp-enquiry__submit { grid-column: span 2; order: 2; margin: .375rem 0 0; }
.uaenp-enquiry--shortcode .uaenp-button { min-height: 40px; padding: .5rem 1.125rem; font-size: .875rem; }

@media (max-width: 768px) {
	.uaenp-enquiry--shortcode .uaenp-enquiry__more-body { grid-template-columns: 1fr; }
	.uaenp-enquiry--shortcode .uaenp-enquiry__more-body > p { grid-column: 1 / -1; }
}

/* Enquiry card - final compaction. */
.entry-content .uaenp-enquiry--shortcode .uaenp-enquiry__intro {
	max-width: 78ch;
	margin-bottom: .75rem;
}

/* The theme already appends a marker; drop the duplicate. */
.uaenp-enquiry--shortcode .uaenp-enquiry__more-summary::before { content: none; }

.uaenp-enquiry--shortcode .uaenp-enquiry__more { margin: .125rem 0 0; }

.uaenp-enquiry--shortcode .uaenp-enquiry__more-summary {
	padding: .25rem 0;
	line-height: 1.3;
}

.uaenp-enquiry--shortcode .uaenp-enquiry__grid { grid-auto-rows: min-content; }

.entry-content .uaenp-enquiry--shortcode .uaenp-field label { font-size: .71875rem; line-height: 1.25; }

.uaenp-enquiry--shortcode .uaenp-field input,
.uaenp-enquiry--shortcode .uaenp-field select { min-height: 36px; padding-block: .25rem; font-size: .875rem; }

.uaenp-enquiry--shortcode .uaenp-enquiry__form,
.uaenp-enquiry--shortcode .uaenp-enquiry__grid { row-gap: .375rem; }

.entry-content .uaenp-enquiry--shortcode .uaenp-enquiry__privacy { margin: .25rem 0 0; }
.uaenp-enquiry--shortcode .uaenp-enquiry__submit { margin: .25rem 0 0; }
.uaenp-enquiry--shortcode .uaenp-button { min-height: 38px; }

/* ===========================================================================
 * SERVICE FINDER - BALANCED GRID
 * Nine cards across five columns left a ragged 5 + 4 split. Three columns
 * divide evenly, and the heading is a section heading rather than a label.
 * ======================================================================== */

.uaenp-svcgrid { margin-block: 3.5rem; }

.entry-content .uaenp-svcgrid .uaenp-svcgrid__title {
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	margin: 0 0 .5rem;
	color: var(--uaenp-midnight, #101d2e);
}

.uaenp-svcgrid__intro {
	margin: 0 0 1.5rem;
	max-width: 62ch;
}

.uaenp-svcgrid__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	align-items: stretch;
	list-style: none;
	margin: 0;
	padding: 0;
}

.uaenp-svcgrid__item { display: flex; }

.uaenp-svcgrid__item > a {
	display: flex;
	flex-direction: column;
	gap: .3125rem;
	width: 100%;
	min-height: 100%;
	padding: 1.375rem 1.5rem;
	background: #fff;
	border: 1px solid var(--uaenp-sand, #d9d4c8);
	border-radius: var(--uaenp-radius, 10px);
	text-decoration: none;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.uaenp-svcgrid__item > a:hover {
	border-color: #8b6f2e;
	box-shadow: 0 6px 20px rgba(16, 29, 46, .08);
	transform: translateY(-2px);
}

.uaenp-svcgrid__item > a:focus-visible {
	outline: 3px solid #8b6f2e;
	outline-offset: 2px;
}

.uaenp-svcgrid__name {
	font-weight: 600;
	font-size: 1.0625rem;
	line-height: 1.3;
	color: var(--uaenp-midnight, #101d2e);
}

.entry-content .uaenp-svcgrid__desc {
	font-size: .875rem;
	line-height: 1.5;
	color: var(--uaenp-ink, #5a6b7e);
}

@media (prefers-reduced-motion: reduce) {
	.uaenp-svcgrid__item > a { transition: none; }
	.uaenp-svcgrid__item > a:hover { transform: none; }
}

@media (max-width: 1023px) {
	.uaenp-svcgrid__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* Nine cards over two columns leaves one over: let it run full width. */
	.uaenp-svcgrid__item:last-child { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
	.uaenp-svcgrid__list { grid-template-columns: 1fr; gap: .75rem; }
	.uaenp-svcgrid__item:last-child { grid-column: auto; }
	.uaenp-svcgrid__item > a { padding: 1.125rem 1.25rem; }
	.uaenp-svcgrid { margin-block: 2.25rem; }
}

/* ===========================================================================
 * HOMEPAGE READING RHYTHM
 * ======================================================================== */

.home .uaenp-layout__main > p,
.home .uaenp-layout__main > ul,
.home .uaenp-layout__main > ol { max-width: 74ch; }

.home .uaenp-layout__main > h2 {
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	line-height: 1.2;
	margin-top: 3.5rem;
	margin-bottom: .75rem;
}

.home .uaenp-layout__main > h3 { margin-top: 2rem; }

/* The property-POA caution reads as a callout, not another paragraph. */
.home .uaenp-layout__main > p.uaenp-facts {
	max-width: none;
	background: #f7f5f0;
	border-left: 4px solid #8b6f2e;
	border-radius: 0 8px 8px 0;
	padding: 1rem 1.25rem;
	margin: 1.5rem 0;
	font-size: .9375rem;
	line-height: 1.55;
}

@media (max-width: 768px) {
	.home .uaenp-layout__main > h2 { margin-top: 2.375rem; }
	.home .uaenp-layout__main > p.uaenp-facts { padding: .875rem 1rem; }
}


/* ============================================================
   Practical tools / lead magnets
   ============================================================ */

.entry-content .uaenp-tools,
.uaenp-tools {
	margin: 48px 0;
	padding: 32px 28px;
	background: var(--uaenp-paper-deep, #efece4);
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: var(--uaenp-radius, 10px);
}

.entry-content .uaenp-tools__title,
.uaenp-tools__title {
	margin: 0 0 10px;
	font-family: var(--uaenp-display, Georgia, serif);
	font-size: 32px;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--uaenp-ink-solid, #101d2e);
	text-transform: none;
}

.entry-content .uaenp-tools__intro,
.uaenp-tools__intro {
	margin: 0 0 24px;
	max-width: 62ch;
	font-size: 17px;
	line-height: 1.6;
	color: var(--uaenp-ink-soft, #26374b);
}

.uaenp-tools__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
}

.uaenp-tool {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 24px 22px;
	background: var(--uaenp-white, #fff);
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-top: 3px solid var(--uaenp-brass, #a8823c);
	border-radius: var(--uaenp-radius, 10px);
}

.entry-content .uaenp-tool__title,
.uaenp-tool__title {
	margin: 0 0 10px;
	font-family: var(--uaenp-display, Georgia, serif);
	font-size: 20px;
	line-height: 1.3;
	color: var(--uaenp-ink-solid, #101d2e);
	text-transform: none;
	letter-spacing: 0;
}

.entry-content .uaenp-tool__text,
.uaenp-tool__text {
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--uaenp-ink, #5a6b7e);
}

.entry-content .uaenp-tool__cta,
.uaenp-tool__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: auto;
	min-height: 44px;
	padding: 11px 20px;
	border: 1px solid var(--uaenp-brass-dark, #806128);
	border-radius: 6px;
	background: var(--uaenp-brass-dark, #806128);
	color: #fff;
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.entry-content .uaenp-tool__cta:hover,
.entry-content .uaenp-tool__cta:focus,
.uaenp-tool__cta:hover,
.uaenp-tool__cta:focus {
	background: var(--uaenp-ink-solid, #101d2e);
	border-color: var(--uaenp-ink-solid, #101d2e);
	color: #fff;
	text-decoration: none;
}

.uaenp-tool__cta:focus-visible {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 2px;
}

/* ---------- Route checker ---------- */

.uaenp-tool--checker:has(.uaenp-checker:not([hidden])),
.uaenp-tool--checker.is-expanded {
	grid-column: 1 / -1;
}

.uaenp-checker {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--uaenp-line, #d9d4c8);
}

.uaenp-checker[hidden] {
	display: none;
}

.entry-content .uaenp-checker__count,
.uaenp-checker__count {
	margin: 0 0 4px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--uaenp-brass-dark, #806128);
}

.entry-content .uaenp-checker__q,
.uaenp-checker__q {
	margin: 0 0 14px;
	font-family: var(--uaenp-display, Georgia, serif);
	font-size: 19px;
	line-height: 1.35;
	color: var(--uaenp-ink-solid, #101d2e);
}

.uaenp-checker__opts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.uaenp-checker__opt {
	min-height: 44px;
	padding: 10px 16px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 6px;
	background: var(--uaenp-paper, #f7f5f0);
	color: var(--uaenp-ink-solid, #101d2e);
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 15px;
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.uaenp-checker__opt:hover {
	background: #fff;
	border-color: var(--uaenp-brass, #a8823c);
}

.uaenp-checker__opt:focus-visible {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 2px;
}

.uaenp-checker__opt.is-chosen {
	background: var(--uaenp-ink-solid, #101d2e);
	border-color: var(--uaenp-ink-solid, #101d2e);
	color: #fff;
}

.uaenp-checker__result {
	max-width: 78ch;
}

.uaenp-checker__result:focus {
	outline: none;
}

.uaenp-checker__result:focus-visible {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 4px;
}

.entry-content .uaenp-checker__result p,
.uaenp-checker__result p {
	margin: 0 0 14px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--uaenp-ink-soft, #26374b);
}

.entry-content .uaenp-checker__label,
.uaenp-checker__label {
	display: inline-block;
	margin: 0 0 12px;
	padding: 4px 10px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 4px;
	background: var(--uaenp-paper, #f7f5f0);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--uaenp-ink-soft, #26374b);
}

.entry-content .uaenp-checker__caveat,
.uaenp-checker__caveat {
	margin: 16px 0;
	padding: 14px 16px;
	border-left: 3px solid var(--uaenp-brass, #a8823c);
	background: var(--uaenp-paper, #f7f5f0);
	font-size: 15px;
	line-height: 1.6;
	color: var(--uaenp-ink-solid, #101d2e);
}

.uaenp-checker__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.entry-content .uaenp-checker__cta,
.uaenp-checker__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 11px 20px;
	border: 1px solid var(--uaenp-brass-dark, #806128);
	border-radius: 6px;
	background: var(--uaenp-brass-dark, #806128);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.entry-content .uaenp-checker__cta:hover,
.uaenp-checker__cta:hover {
	background: var(--uaenp-ink-solid, #101d2e);
	border-color: var(--uaenp-ink-solid, #101d2e);
	color: #fff;
}

.uaenp-checker__restart {
	min-height: 44px;
	padding: 11px 18px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 6px;
	background: transparent;
	color: var(--uaenp-ink-solid, #101d2e);
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 15px;
	cursor: pointer;
}

.uaenp-checker__restart:hover {
	border-color: var(--uaenp-brass, #a8823c);
}

.uaenp-checker__cta:focus-visible,
.uaenp-checker__restart:focus-visible {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 2px;
}

@media (max-width: 1023px) {
	.uaenp-tools__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.entry-content .uaenp-tools,
	.uaenp-tools {
		margin: 32px 0;
		padding: 24px 18px;
	}

	.entry-content .uaenp-tools__title,
	.uaenp-tools__title {
		font-size: 26px;
	}

	.uaenp-tools__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.uaenp-checker__opts {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (prefers-reduced-motion: reduce) {
	.uaenp-tool__cta,
	.uaenp-checker__opt {
		transition: none;
	}
}


/* ============================================================
   Front-page hero
   ============================================================ */

.home .uaenp-seal-watermark {
	display: none !important;
}

.uaenp-fphero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
	gap: 40px;
	align-items: center;
	margin: 0 0 48px;
	padding: 0;
}

.uaenp-fphero__content {
	min-width: 0;
}

.entry-content .uaenp-fphero__badge,
.uaenp-fphero__badge {
	display: inline-block;
	margin: 0 0 14px;
	padding: 6px 14px;
	border: 1px solid var(--uaenp-brass, #a8823c);
	border-radius: 999px;
	background: transparent;
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--uaenp-brass-dark, #806128);
}

/* The lede keeps its own class but loses the heavy beige panel. */
.uaenp-fphero .uaenp-answer {
	margin: 0 0 22px;
	padding: 0;
	max-width: 60ch;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.entry-content .uaenp-fphero .uaenp-answer p,
.uaenp-fphero .uaenp-answer p {
	margin: 0;
	font-size: 19px;
	line-height: 1.55;
	color: var(--uaenp-ink-soft, #26374b);
}

.uaenp-fphero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 20px;
}

.entry-content .uaenp-fphero__cta,
.uaenp-fphero__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 26px;
	border: 1px solid var(--uaenp-brass-dark, #806128);
	border-radius: 6px;
	background: var(--uaenp-brass-dark, #806128);
	color: #fff;
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.entry-content .uaenp-fphero__cta:hover,
.uaenp-fphero__cta:hover {
	background: var(--uaenp-ink-solid, #101d2e);
	border-color: var(--uaenp-ink-solid, #101d2e);
	color: #fff;
}

.entry-content .uaenp-fphero__cta--ghost,
.uaenp-fphero__cta--ghost {
	background: transparent;
	border-color: var(--uaenp-ink-solid, #101d2e);
	color: var(--uaenp-ink-solid, #101d2e);
}

.entry-content .uaenp-fphero__cta--ghost:hover,
.uaenp-fphero__cta--ghost:hover {
	background: var(--uaenp-ink-solid, #101d2e);
	color: #fff;
}

.uaenp-fphero__cta:focus-visible {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 3px;
}

.entry-content .uaenp-fphero__disclosure,
.uaenp-fphero__disclosure {
	margin: 0 0 18px;
	max-width: 62ch;
	padding: 12px 16px;
	border-left: 3px solid var(--uaenp-line, #d9d4c8);
	background: var(--uaenp-paper-deep, #efece4);
	font-size: 14px;
	line-height: 1.55;
	color: var(--uaenp-ink-soft, #26374b);
}

.entry-content .uaenp-fphero__trust,
.uaenp-fphero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry-content .uaenp-fphero__trust li,
.uaenp-fphero__trust li {
	position: relative;
	margin: 0;
	padding-left: 18px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--uaenp-ink, #5a6b7e);
	list-style: none;
}

.uaenp-fphero__trust li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--uaenp-brass, #a8823c);
}

.uaenp-fphero__media {
	min-width: 0;
}

.uaenp-fphero__media .uaenp-banner {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

.uaenp-fphero__media .uaenp-banner__media {
	margin: 0;
	border-radius: var(--uaenp-radius, 10px);
	overflow: hidden;
}

.uaenp-fphero__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--uaenp-radius, 10px);
}

@media (max-width: 899px) {
	.uaenp-fphero {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
		margin-bottom: 36px;
	}

	.entry-content .uaenp-fphero .uaenp-answer p,
	.uaenp-fphero .uaenp-answer p {
		font-size: 17px;
	}

	.uaenp-fphero__actions {
		gap: 10px;
	}

	.entry-content .uaenp-fphero__cta,
	.uaenp-fphero__cta {
		flex: 1 1 100%;
	}
}

@media (max-width: 479px) {
	.uaenp-fphero__media {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.uaenp-fphero__cta {
		transition: none;
	}
}


/* The page title band reads as the top of the hero, so it shares the hero's
   left alignment instead of sitting centred above it. */
.home .hero-container h1,
.home .entry-hero-container-inner h1 {
	text-align: left;
	max-width: none;
}

@media (max-width: 767px) {
	.home .hero-container h1,
	.home .entry-hero-container-inner h1 {
		font-size: 30px;
		line-height: 1.2;
	}
}


.entry-content .uaenp-svcgrid__intro,
.uaenp-svcgrid__intro {
	margin: 0 0 20px;
	max-width: 70ch;
	font-size: 16px;
	line-height: 1.6;
	color: var(--uaenp-ink, #5a6b7e);
}


/* Every finder card is the same height, across rows as well as within one. */
.uaenp-svcgrid__list {
	grid-auto-rows: 1fr;
}


/* ============================================================
   Enquiry form: errors, conditional questions, file upload
   ============================================================ */

.uaenp-enquiry__errors {
	grid-column: 1 / -1;
	margin: 0 0 14px;
	padding: 14px 16px;
	border: 1px solid #8c2f23;
	border-left-width: 4px;
	border-radius: 6px;
	background: #fdf4f2;
}

.uaenp-enquiry__errors:focus {
	outline: none;
}

.uaenp-enquiry__errors:focus-visible {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 2px;
}

.entry-content .uaenp-enquiry__errors-title,
.uaenp-enquiry__errors-title {
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	color: #7a2a1f;
}

.uaenp-enquiry__errors ul {
	margin: 0;
	padding-left: 18px;
}

.entry-content .uaenp-enquiry__errors li,
.uaenp-enquiry__errors li {
	margin: 0 0 3px;
	font-size: 14px;
	line-height: 1.45;
}

.uaenp-enquiry__errors a {
	color: #7a2a1f;
}

.entry-content .uaenp-enquiry__reqnote,
.uaenp-enquiry__reqnote {
	grid-column: 1 / -1;
	margin: 0 0 10px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--uaenp-ink, #5a6b7e);
}

.entry-content .uaenp-enquiry__expect,
.uaenp-enquiry__expect {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--uaenp-ink, #5a6b7e);
}

/* Field-level errors are text plus a border, never colour alone. */
.uaenp-field__error {
	display: block;
	margin-top: 5px;
	font-size: 13px;
	line-height: 1.4;
	font-weight: 600;
	color: #7a2a1f;
}

.uaenp-field__error::before {
	content: "\26A0\FE0E  ";
}

.uaenp-field.has-error input,
.uaenp-field.has-error select,
.uaenp-field.has-error textarea {
	border-color: #8c2f23;
	box-shadow: inset 0 0 0 1px #8c2f23;
}

/* Conditional questions */
.uaenp-enquiry__cond {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0 0 12px;
}

.uaenp-enquiry__cond[hidden] {
	display: none;
}

.uaenp-cond[hidden] {
	display: none;
}

/* File upload */
.uaenp-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 6px;
	padding: 14px;
	border: 1px dashed var(--uaenp-line, #d9d4c8);
	border-radius: 8px;
	background: var(--uaenp-paper, #f7f5f0);
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.uaenp-file.is-dragover {
	border-color: var(--uaenp-brass, #a8823c);
	border-style: solid;
	background: #fff;
}

.uaenp-file__input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.uaenp-file__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--uaenp-ink-solid, #101d2e);
	border-radius: 6px;
	background: #fff;
	color: var(--uaenp-ink-solid, #101d2e);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
}

.uaenp-file__button:hover {
	background: var(--uaenp-ink-solid, #101d2e);
	color: #fff;
}

.uaenp-file__input:focus-visible + .uaenp-file__button {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 2px;
}

.uaenp-file__drag {
	font-size: 13px;
	color: var(--uaenp-ink, #5a6b7e);
}

.uaenp-file__selected {
	flex: 1 1 100%;
	font-size: 13px;
	font-weight: 600;
	color: var(--uaenp-ink-solid, #101d2e);
	word-break: break-word;
}

.uaenp-file__selected:empty {
	display: none;
}

.uaenp-file__remove {
	min-height: 36px;
	padding: 7px 14px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 6px;
	background: transparent;
	color: var(--uaenp-ink-solid, #101d2e);
	font-size: 13px;
	cursor: pointer;
}

.uaenp-file__remove:hover {
	border-color: #8c2f23;
	color: #7a2a1f;
}

.entry-content .uaenp-file__label,
.uaenp-file__label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--uaenp-ink-solid, #101d2e);
}

@media (max-width: 599px) {
	.uaenp-enquiry__cond {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.uaenp-file {
		transition: none;
	}
}


/* The native control stays reachable but out of sight; the label is the
   visible button. Specificity has to beat the form's own input sizing. */
.uaenp-enquiry .uaenp-file input.uaenp-file__input,
.entry-content .uaenp-file input.uaenp-file__input {
	position: absolute;
	width: 1px;
	height: 1px;
	min-height: 0;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.uaenp-enquiry .uaenp-file label.uaenp-file__button,
.entry-content .uaenp-file label.uaenp-file__button {
	display: inline-flex;
	width: auto;
	min-height: 44px;
	height: auto;
	margin: 0;
	font-size: 14px;
	text-transform: none;
	letter-spacing: 0;
}


.uaenp-enquiry__more-body .uaenp-field--wide,
.uaenp-enquiry__more-body .uaenp-field--file,
.uaenp-enquiry__grid .uaenp-field--wide {
	grid-column: 1 / -1;
}

.uaenp-enquiry .uaenp-field--file {
	margin: 0;
}


.uaenp-enquiry__more-body .uaenp-enquiry__cond {
	grid-column: 1 / -1;
}

.uaenp-enquiry .uaenp-file label.uaenp-file__button,
.entry-content .uaenp-file label.uaenp-file__button {
	padding: 0 18px;
	line-height: 44px;
}


/* ============================================================
   Scannable homepage components
   ============================================================ */

.uaenp-features,
.uaenp-compare,
.uaenp-gtk,
.uaenp-sources {
	margin: 48px 0;
}

.entry-content .uaenp-features__title,
.entry-content .uaenp-compare__title,
.entry-content .uaenp-gtk__title,
.entry-content .uaenp-sources__title {
	margin: 0 0 10px;
}

.entry-content .uaenp-features__intro,
.entry-content .uaenp-compare__intro,
.entry-content .uaenp-sources__intro,
.uaenp-features__intro,
.uaenp-compare__intro,
.uaenp-sources__intro {
	margin: 0 0 22px;
	max-width: 72ch;
	font-size: 16px;
	line-height: 1.6;
	color: var(--uaenp-ink, #5a6b7e);
}

/* ---------- 2 x 2 feature grid ---------- */

.uaenp-features__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
}

.uaenp-feature {
	margin: 0;
	padding: 24px 22px;
	background: var(--uaenp-white, #fff);
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-left: 3px solid var(--uaenp-brass, #a8823c);
	border-radius: var(--uaenp-radius, 10px);
}

.entry-content .uaenp-feature__title,
.uaenp-feature__title {
	margin: 0 0 8px;
	font-family: var(--uaenp-display, Georgia, serif);
	font-size: 20px;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
}

.entry-content .uaenp-feature__title a,
.uaenp-feature__title a {
	color: var(--uaenp-ink-solid, #101d2e);
	text-decoration: none;
}

.entry-content .uaenp-feature__title a:hover,
.uaenp-feature__title a:hover {
	color: var(--uaenp-brass-dark, #806128);
	text-decoration: underline;
}

.uaenp-feature__title a:focus-visible {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 3px;
}

.entry-content .uaenp-feature__text,
.uaenp-feature__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--uaenp-ink, #5a6b7e);
}

/* ---------- Comparison panel ---------- */

.uaenp-compare__scroll {
	overflow-x: auto;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: var(--uaenp-radius, 10px);
	background: var(--uaenp-white, #fff);
}

.uaenp-compare__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.55;
}

.uaenp-compare__table th,
.uaenp-compare__table td {
	padding: 14px 16px;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--uaenp-line, #d9d4c8);
}

.uaenp-compare__table thead th {
	background: var(--uaenp-paper-deep, #efece4);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--uaenp-ink-solid, #101d2e);
	white-space: nowrap;
}

.uaenp-compare__table tbody th {
	width: 20%;
	min-width: 150px;
	font-weight: 700;
	color: var(--uaenp-ink-solid, #101d2e);
}

.uaenp-compare__table tbody td {
	color: var(--uaenp-ink, #5a6b7e);
}

.uaenp-compare__table tr:last-child th,
.uaenp-compare__table tr:last-child td {
	border-bottom: 0;
}

.entry-content .uaenp-compare__note,
.uaenp-compare__note {
	margin: 14px 0 0;
	padding: 12px 16px;
	border-left: 3px solid var(--uaenp-brass, #a8823c);
	background: var(--uaenp-paper-deep, #efece4);
	font-size: 15px;
	line-height: 1.6;
	color: var(--uaenp-ink-solid, #101d2e);
}

/* ---------- Good to know ---------- */

.uaenp-gtk__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: stretch;
}

.uaenp-gtk__box {
	padding: 22px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: var(--uaenp-radius, 10px);
	background: var(--uaenp-white, #fff);
}

.uaenp-gtk__box--authority {
	background: var(--uaenp-paper-deep, #efece4);
}

.entry-content .uaenp-gtk__boxtitle,
.uaenp-gtk__boxtitle {
	margin: 0 0 12px;
	font-family: var(--uaenp-display, Georgia, serif);
	font-size: 18px;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: var(--uaenp-ink-solid, #101d2e);
}

.entry-content .uaenp-gtk__box ul,
.uaenp-gtk__box ul {
	margin: 0;
	padding-left: 20px;
}

.entry-content .uaenp-gtk__box li,
.uaenp-gtk__box li {
	margin: 0 0 7px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--uaenp-ink, #5a6b7e);
}

.entry-content .uaenp-gtk__note,
.uaenp-gtk__note {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--uaenp-ink, #5a6b7e);
}

/* ---------- Electronic-route flow ---------- */

.uaenp-flow {
	margin: 24px 0;
	padding: 22px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: var(--uaenp-radius, 10px);
	background: var(--uaenp-paper-deep, #efece4);
}

.entry-content .uaenp-flow__lead,
.uaenp-flow__lead {
	margin: 0 0 14px;
	font-size: 16px;
	line-height: 1.6;
	color: var(--uaenp-ink-solid, #101d2e);
}

.entry-content .uaenp-flow__note,
.uaenp-flow__note {
	margin: 14px 0 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.55;
	color: var(--uaenp-ink-solid, #101d2e);
}

/* ---------- Official sources ---------- */

.uaenp-sources {
	padding: 26px 24px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: var(--uaenp-radius, 10px);
	background: var(--uaenp-white, #fff);
}

.entry-content .uaenp-sources__list,
.uaenp-sources__list {
	margin: 0;
	padding-left: 20px;
}

.entry-content .uaenp-sources__list li,
.uaenp-sources__list li {
	margin: 0 0 10px;
	font-size: 15px;
	line-height: 1.55;
}

.uaenp-sources__body {
	display: block;
	font-size: 13px;
	color: var(--uaenp-ink, #5a6b7e);
}

@media (max-width: 767px) {
	.uaenp-features__grid,
	.uaenp-gtk__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.uaenp-features,
	.uaenp-compare,
	.uaenp-gtk,
	.uaenp-sources {
		margin: 32px 0;
	}
}


/* ============================================================
   Long-form rhythm: numbered process cards and two-column checklist
   ============================================================ */

.entry-content ol.uaenp-steps,
ol.uaenp-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 24px 0;
	padding: 0;
	list-style: none;
	counter-reset: uaenp-step;
}

.entry-content ol.uaenp-steps > li,
ol.uaenp-steps > li {
	position: relative;
	margin: 0;
	padding: 24px 22px 22px 22px;
	background: var(--uaenp-white, #fff);
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: var(--uaenp-radius, 10px);
	font-size: 15px;
	line-height: 1.6;
	color: var(--uaenp-ink, #5a6b7e);
	list-style: none;
	counter-increment: uaenp-step;
}

.entry-content ol.uaenp-steps > li::marker,
ol.uaenp-steps > li::marker {
	content: none;
}

ol.uaenp-steps > li::before {
	content: counter(uaenp-step);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: var(--uaenp-ink-solid, #101d2e);
	color: #fff;
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
}

.entry-content ol.uaenp-steps > li strong,
ol.uaenp-steps > li strong {
	display: block;
	margin-bottom: 4px;
	color: var(--uaenp-ink-solid, #101d2e);
}

.entry-content ul.uaenp-checklist,
ul.uaenp-checklist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 28px;
	margin: 20px 0;
	padding: 0;
	list-style: none;
}

.entry-content ul.uaenp-checklist > li,
ul.uaenp-checklist > li {
	position: relative;
	margin: 0;
	padding: 8px 0 8px 28px;
	border-bottom: 1px solid var(--uaenp-line, #d9d4c8);
	font-size: 15px;
	line-height: 1.55;
	color: var(--uaenp-ink-soft, #26374b);
	list-style: none;
}

ul.uaenp-checklist > li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 1.05em;
	width: 10px;
	height: 6px;
	border-left: 2px solid var(--uaenp-brass-dark, #806128);
	border-bottom: 2px solid var(--uaenp-brass-dark, #806128);
	transform: rotate(-45deg);
}

/* Caution callout used for the property power-of-attorney warning. */
.entry-content .uaenp-caution,
.uaenp-caution {
	margin: 24px 0;
	padding: 18px 20px 18px 22px;
	border: 1px solid #d8c9a4;
	border-left: 4px solid #8c2f23;
	border-radius: var(--uaenp-radius, 10px);
	background: #fdfaf3;
	font-size: 16px;
	line-height: 1.65;
	color: var(--uaenp-ink-solid, #101d2e);
}

.entry-content .uaenp-caution strong,
.uaenp-caution strong {
	color: #7a2a1f;
}

@media (max-width: 899px) {
	.entry-content ol.uaenp-steps,
	ol.uaenp-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.entry-content ol.uaenp-steps,
	ol.uaenp-steps,
	.entry-content ul.uaenp-checklist,
	ul.uaenp-checklist {
		grid-template-columns: minmax(0, 1fr);
	}
}


/* Structural lists carry their own grid and need the full container width. */
.uaenp-layout__main > ol.uaenp-steps,
.uaenp-layout__main > ul.uaenp-checklist,
.entry-content ol.uaenp-steps,
.entry-content ul.uaenp-checklist {
	max-width: none;
	margin-inline: 0;
}


/* ------------------------------------------------------------------
   Mobile hero order. The primary call to action has to arrive before
   the disclosure and the trust strip; the secondary one follows them,
   which keeps the first tap inside the opening screen on a 320px phone.
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
	.uaenp-fphero__content {
		display: flex;
		flex-direction: column;
	}

	.entry-content .uaenp-fphero__badge,
	.uaenp-fphero__badge {
		order: 1;
		align-self: flex-start;
		padding: 5px 11px;
		font-size: 11px;
		letter-spacing: 0.04em;
	}

	.uaenp-fphero .uaenp-answer {
		order: 2;
	}

	.uaenp-fphero__actions {
		display: contents;
	}

	.entry-content .uaenp-fphero__cta,
	.uaenp-fphero__cta {
		order: 3;
		flex: 0 0 auto;
		width: 100%;
		margin: 0 0 18px;
	}

	.entry-content .uaenp-fphero__disclosure,
	.uaenp-fphero__disclosure {
		order: 4;
	}

	.entry-content .uaenp-fphero__trust,
	.uaenp-fphero__trust {
		order: 5;
	}

	.entry-content .uaenp-fphero__cta--ghost,
	.uaenp-fphero__cta--ghost {
		order: 6;
		margin: 18px 0 0;
	}
}

@media (max-width: 479px) {
	.uaenp-fphero .uaenp-answer p {
		font-size: 16px;
		line-height: 1.5;
	}
}


/* ------------------------------------------------------------------
   Type scale for the new components.

   style.css sets .entry-content.entry-content p { font-size: 17px },
   which is a doubled-class selector and outranks a single-class rule.
   Component paragraphs therefore need the same doubled prefix or they
   silently render at body size - which is what pushed the hero badge
   onto three lines at 320px.
   ------------------------------------------------------------------ */

.entry-content.entry-content .uaenp-fphero__badge {
	font-size: 12px;
	line-height: 1.2;
}

.entry-content.entry-content .uaenp-fphero__disclosure {
	font-size: 14px;
	line-height: 1.55;
}

.entry-content.entry-content .uaenp-fphero__trust li {
	font-size: 14px;
	line-height: 1.5;
}

.entry-content.entry-content .uaenp-tools__intro,
.entry-content.entry-content .uaenp-svcgrid__intro,
.entry-content.entry-content .uaenp-features__intro,
.entry-content.entry-content .uaenp-compare__intro,
.entry-content.entry-content .uaenp-sources__intro {
	font-size: 16px;
	line-height: 1.6;
}

.entry-content.entry-content .uaenp-tool__text,
.entry-content.entry-content .uaenp-feature__text,
.entry-content.entry-content .uaenp-gtk__box li,
.entry-content.entry-content .uaenp-sources__list li {
	font-size: 15px;
	line-height: 1.6;
}

.entry-content.entry-content .uaenp-compare__note,
.entry-content.entry-content .uaenp-flow__note {
	font-size: 15px;
	line-height: 1.6;
}

.entry-content.entry-content .uaenp-flow__lead {
	font-size: 16px;
	line-height: 1.6;
}

.entry-content.entry-content .uaenp-gtk__note,
.entry-content.entry-content .uaenp-sources__body {
	font-size: 14px;
	line-height: 1.55;
}

.entry-content.entry-content .uaenp-checker__count {
	font-size: 13px;
}

.entry-content.entry-content .uaenp-checker__q {
	font-size: 19px;
}

.entry-content.entry-content .uaenp-checker__result p {
	font-size: 16px;
	line-height: 1.65;
}

.entry-content.entry-content .uaenp-checker__caveat {
	font-size: 15px;
}

.entry-content.entry-content ol.uaenp-steps > li,
.entry-content.entry-content ul.uaenp-checklist > li {
	font-size: 15px;
	line-height: 1.6;
}

@media (max-width: 767px) {
	.entry-content.entry-content .uaenp-fphero__badge {
		font-size: 11px;
		letter-spacing: 0.04em;
	}
}

@media (max-width: 479px) {
	.entry-content.entry-content .uaenp-fphero .uaenp-answer p {
		font-size: 16px;
		line-height: 1.5;
	}
}


/* ------------------------------------------------------------------
   Enquiry form, simplified.

   Fewer decorative elements, wider and taller fields, one clear line
   of instruction. The overall height stays compact because the space
   the larger fields need is paid for by removing the reference chip
   and tightening the surrounding copy.
   ------------------------------------------------------------------ */

.uaenp-enquiry .uaenp-enquiry__ref {
	display: none;
}

.uaenp-enquiry__grid {
	row-gap: 12px;
	column-gap: 12px;
}

.uaenp-enquiry .uaenp-field label,
.entry-content.entry-content .uaenp-enquiry .uaenp-field label,
.uaenp-enquiry .uaenp-file__label {
	display: block;
	margin: 0 0 5px;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--uaenp-ink-soft, #26374b);
}

.uaenp-enquiry .uaenp-field input[type="text"],
.uaenp-enquiry .uaenp-field input[type="tel"],
.uaenp-enquiry .uaenp-field input[type="email"],
.uaenp-enquiry .uaenp-field select,
.uaenp-enquiry .uaenp-field textarea,
.uaenp-enquiry .uaenp-cond input[type="text"],
.uaenp-enquiry .uaenp-cond select {
	width: 100%;
	min-height: 44px;
	padding: 10px 13px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 8px;
	background: var(--uaenp-white, #fff);
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 15px;
	line-height: 1.4;
	color: var(--uaenp-ink-solid, #101d2e);
	box-shadow: none;
}

.uaenp-enquiry .uaenp-field textarea {
	min-height: 76px;
	padding-top: 11px;
}

.uaenp-enquiry .uaenp-field input:focus,
.uaenp-enquiry .uaenp-field select:focus,
.uaenp-enquiry .uaenp-field textarea:focus {
	border-color: var(--uaenp-ink-solid, #101d2e);
	outline: 2px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 1px;
}

.uaenp-enquiry .uaenp-field--captcha input {
	max-width: 120px;
}

.uaenp-enquiry .uaenp-button {
	min-height: 48px;
	padding: 12px 28px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 600;
}

.entry-content.entry-content .uaenp-enquiry__intro {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.55;
}

.entry-content.entry-content .uaenp-enquiry__privacy {
	margin: 10px 0 0;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--uaenp-ink, #5a6b7e);
}

.uaenp-enquiry .uaenp-field__hint {
	display: block;
	margin-top: 5px;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--uaenp-ink, #5a6b7e);
}


/* Nine cards in two columns leaves a single card on the last row. It spans
   both columns instead of sitting alone beside an empty grid cell. */
@media (min-width: 600px) and (max-width: 1023px) {
	.uaenp-svcgrid__list > .uaenp-svcgrid__item:nth-child(9) {
		grid-column: 1 / -1;
	}

	.uaenp-tools__grid > .uaenp-tool:nth-child(3) {
		grid-column: 1 / -1;
	}
}


/* ============================================================
   HOME: reading column + sticky enquiry rail
   Supersedes the earlier single-column hero. Later rules of the
   same specificity win, so this block is authoritative.
   ============================================================ */

.entry-content.entry-content > .uaenp-home {
	max-width: none;
	margin-inline: 0;
}

.uaenp-home {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.uaenp-home__hero { order: 1; }
.uaenp-home__rail { order: 2; }
.uaenp-home__body { order: 3; }

.uaenp-home__hero,
.uaenp-home__body,
.uaenp-home__rail {
	min-width: 0;
}

/* ---------- Opening block ---------- */

.uaenp-home__hero.uaenp-fphero {
	display: block;
	margin: 0 0 28px;
	padding: 0;
}

.entry-content.entry-content .uaenp-fphero__h1 {
	margin: 10px 0 16px;
	/*
	 * 25ch, not 20ch. The ch unit is the width of the font's zero, so this
	 * box changes size when the display face changes. At 20ch the heading sat
	 * on one line in Fraunces; after the move to Source Serif 4 the same rule
	 * measured 495px and broke "- UAE" onto a line of its own. Measured: the
	 * heading needs 607px and the column offers 782px, so 25ch restores the
	 * single line without letting the text run the full width.
	 */
	max-width: 25ch;
	font-family: var(--uaenp-display, Georgia, serif);
	font-size: clamp(30px, 4.2vw, 46px);
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--uaenp-ink-solid, #101d2e);
	text-align: left;
}

.entry-content.entry-content .uaenp-fphero__badge {
	display: inline-block;
	margin: 0;
	padding: 6px 13px;
	border: 1px solid var(--uaenp-brass, #a8823c);
	border-radius: 999px;
	background: transparent;
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--uaenp-brass-dark, #806128);
}

.uaenp-fphero .uaenp-answer,
.uaenp-home__hero .uaenp-answer {
	margin: 0 0 20px;
	padding: 0;
	max-width: 62ch;
	background: none;
	border: 0;
	box-shadow: none;
}

.entry-content.entry-content .uaenp-home__hero .uaenp-answer p {
	margin: 0;
	font-size: 18px;
	line-height: 1.6;
	color: var(--uaenp-ink-soft, #26374b);
}

.uaenp-fphero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 18px;
}

.entry-content.entry-content .uaenp-fphero__disclosure {
	margin: 0;
	max-width: 66ch;
	padding: 12px 16px;
	border-left: 3px solid var(--uaenp-line, #d9d4c8);
	background: var(--uaenp-paper-deep, #efece4);
	font-size: 14px;
	line-height: 1.55;
	color: var(--uaenp-ink-soft, #26374b);
}

/* ---------- Body column ---------- */

.entry-content.entry-content .uaenp-fphero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.entry-content.entry-content .uaenp-fphero__trust li {
	position: relative;
	margin: 0;
	padding-left: 18px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--uaenp-ink, #5a6b7e);
	list-style: none;
}

.uaenp-fphero__trust li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--uaenp-brass, #a8823c);
}

.uaenp-home__figure {
	margin: 0 0 32px;
}

.uaenp-home__figure .uaenp-banner {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

.uaenp-home__figure .uaenp-banner__media {
	margin: 0;
	min-height: 0;
	border-radius: var(--uaenp-radius, 10px);
	overflow: hidden;
}

.uaenp-home__figure .uaenp-hero__img {
	display: block;
	width: 100%;
	height: auto;
	max-height: none;
	min-height: 0;
	aspect-ratio: 21 / 8;
	object-fit: cover;
	object-position: center 40%;
	border-radius: var(--uaenp-radius, 10px);
}

/* ---------- Two columns and sticky rail ---------- */

@media (min-width: 1180px) {
	.uaenp-home {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 340px;
		column-gap: 32px;
		row-gap: 0;
	}

	.uaenp-home__hero {
		grid-column: 1;
		grid-row: 1;
	}

	.uaenp-home__body {
		grid-column: 1;
		grid-row: 2;
	}

	.uaenp-home__rail {
		grid-column: 2;
		grid-row: 1 / span 2;
		align-self: stretch;
		height: auto;
	}

	.uaenp-home__railinner {
		position: sticky;
		top: 32px;
	}
}

@media (min-width: 1400px) {
	.uaenp-home {
		grid-template-columns: minmax(0, 1fr) 360px;
		column-gap: 36px;
	}
}

@media (max-width: 1179px) {
	.uaenp-home__railinner {
		position: static;
	}

	.uaenp-home__rail {
		margin: 0 0 32px;
	}
}


/* ============================================================
   Rail enquiry card
   ============================================================ */

.uaenp-enquiry--rail {
	display: block;
	height: auto;
	min-height: 0;
	max-width: none;
	margin: 0;
	padding: 24px 22px 22px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-top: 3px solid var(--uaenp-brass, #a8823c);
	border-radius: 12px;
	background: var(--uaenp-white, #fff);
	box-shadow: 0 18px 44px -30px rgba(16, 29, 46, 0.35);
}

.entry-content.entry-content .uaenp-enquiry__eyebrow {
	margin: 0 0 6px;
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--uaenp-brass-dark, #806128);
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__heading {
	margin: 0 0 6px;
	font-family: var(--uaenp-display, Georgia, serif);
	font-size: 22px;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	color: var(--uaenp-ink-solid, #101d2e);
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__intro {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--uaenp-ink, #5a6b7e);
}

.uaenp-enquiry--rail .uaenp-enquiry__form {
	display: block;
	padding: 0;
	background: none;
	border: 0;
}

.uaenp-enquiry--rail .uaenp-enquiry__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 12px;
	row-gap: 12px;
	margin: 0;
}

.uaenp-enquiry--rail .uaenp-field {
	margin: 0;
}

.uaenp-enquiry--rail .uaenp-field--wide,
.uaenp-enquiry--rail .uaenp-enquiry__errors,
.uaenp-enquiry--rail .uaenp-enquiry__submit {
	grid-column: 1 / -1;
}

.uaenp-enquiry--rail .uaenp-field--captcha {
	grid-column: 1;
}

.uaenp-enquiry--rail .uaenp-enquiry__submit {
	grid-column: 1 / -1;
	margin: 2px 0 0;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-field label,
.uaenp-enquiry--rail .uaenp-file__label {
	display: block;
	margin: 0 0 5px;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--uaenp-ink-soft, #26374b);
}

.uaenp-enquiry--rail .req {
	color: var(--uaenp-brass-dark, #806128);
}

.uaenp-enquiry--rail .uaenp-field input[type="text"],
.uaenp-enquiry--rail .uaenp-field input[type="tel"],
.uaenp-enquiry--rail .uaenp-field input[type="email"],
.uaenp-enquiry--rail .uaenp-field textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 8px;
	background: var(--uaenp-paper, #f7f5f0);
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 15px;
	line-height: 1.4;
	color: var(--uaenp-ink-solid, #101d2e);
	box-shadow: none;
}

.uaenp-enquiry--rail .uaenp-field textarea {
	min-height: 88px;
	max-height: 160px;
	padding-top: 10px;
	resize: vertical;
}

.uaenp-enquiry--rail .uaenp-field--captcha input {
	max-width: 110px;
}

.uaenp-enquiry--rail .uaenp-field input:focus,
.uaenp-enquiry--rail .uaenp-field textarea:focus {
	background: #fff;
	border-color: var(--uaenp-ink-solid, #101d2e);
	outline: 2px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 1px;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-field__hint {
	display: block;
	margin-top: 5px;
	font-size: 12px;
	line-height: 1.45;
	color: var(--uaenp-ink, #5a6b7e);
}

.uaenp-enquiry--rail .uaenp-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 10px;
	border: 1px dashed var(--uaenp-line, #d9d4c8);
	border-radius: 8px;
	background: var(--uaenp-paper, #f7f5f0);
}

.uaenp-enquiry--rail .uaenp-file__button {
	min-height: 40px;
	padding: 0 14px;
	line-height: 40px;
	font-size: 13px;
}

.uaenp-enquiry--rail .uaenp-file__drag {
	font-size: 12px;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-button {
	width: 100%;
	min-height: 48px;
	padding: 12px 20px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 600;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__privacy {
	margin: 12px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--uaenp-ink, #5a6b7e);
}

.uaenp-enquiry--rail .uaenp-enquiry__notice {
	margin: 0 0 12px;
	padding: 10px 12px;
	border-radius: 8px;
	font-size: 13.5px;
	line-height: 1.5;
}

@media (max-width: 1179px) {
	.uaenp-enquiry--rail {
		max-width: 720px;
		margin-inline: auto;
		padding: 22px 20px 20px;
	}
}

@media (max-width: 599px) {
	.uaenp-enquiry--rail {
		padding: 20px 18px 18px;
	}

	.uaenp-enquiry--rail .uaenp-enquiry__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.uaenp-enquiry--rail .uaenp-field--captcha {
		grid-column: 1 / -1;
	}
}

/* ============================================================
   Honeypot: out of flow entirely, zero box, never focusable
   ============================================================ */

.uaenp-hp,
.uaenp-enquiry .uaenp-hp {
	position: absolute !important;
	left: -10000px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	white-space: nowrap !important;
}

.uaenp-hp input,
.uaenp-enquiry .uaenp-hp input.uaenp-hp__input {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}


/* The 720px inline card padded its own children; the rail card supplies its
   padding once, on the card itself. */
.entry-content.entry-content .uaenp-enquiry--rail > *,
.uaenp-enquiry--rail > * {
	padding-left: 0;
	padding-right: 0;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__eyebrow,
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__heading,
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__intro,
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__privacy,
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__notice {
	padding-top: 0;
	padding-bottom: 0;
	max-width: none;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__heading {
	font-size: 21px;
	line-height: 1.2;
	margin-bottom: 5px;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__intro {
	font-size: 13.5px;
	line-height: 1.45;
	margin-bottom: 12px;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-field__hint {
	font-size: 11.5px;
	line-height: 1.4;
	margin-top: 4px;
}

.uaenp-enquiry--rail .uaenp-field textarea {
	min-height: 84px;
}

/* Security check and submit share the last row. */
.uaenp-enquiry--rail .uaenp-field--captcha {
	grid-column: 1;
}

.uaenp-enquiry--rail .uaenp-enquiry__submit {
	grid-column: 2;
	align-self: end;
	margin: 0;
}

.uaenp-enquiry--rail .uaenp-file {
	padding: 8px 10px;
	gap: 6px;
}

.uaenp-enquiry--rail .uaenp-file__drag {
	font-size: 11.5px;
	line-height: 1.3;
	color: var(--uaenp-ink, #5a6b7e);
}

@media (max-width: 599px) {
	.uaenp-enquiry--rail .uaenp-enquiry__submit {
		grid-column: 1 / -1;
	}
}


/* .entry-content.entry-content > p sets an 18px bottom margin that survives a
   single-class reset, so each grid row was inheriting margin plus row-gap. */
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-field,
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__submit,
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__errors {
	margin: 0;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-field label,
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-file__label {
	margin-bottom: 4px;
	font-size: 12px;
	line-height: 1.3;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__privacy {
	margin-top: 10px;
	font-size: 11.5px;
	line-height: 1.45;
}

.uaenp-enquiry--rail {
	padding: 22px 20px 20px;
}

.uaenp-enquiry--rail .uaenp-file {
	padding: 7px 9px;
	gap: 8px;
	flex-wrap: nowrap;
	align-items: center;
}

.uaenp-enquiry--rail .uaenp-file__button {
	flex: 0 0 auto;
	min-height: 38px;
	line-height: 38px;
	padding: 0 12px;
}

.uaenp-enquiry--rail .uaenp-file__drag {
	flex: 1 1 auto;
	min-width: 0;
}

.uaenp-enquiry--rail .uaenp-file__selected {
	flex: 1 1 100%;
	font-size: 11.5px;
}


/* ============================================================
   Consent: slim, non-blocking bottom bar
   The plugin already runs in opt-in mode, so non-essential
   categories are denied until a visitor chooses. This only
   changes the presentation: a corner card becomes a low bar
   with three equally weighted choices, and the persistent
   floating tab is replaced by a footer link.
   ============================================================ */

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
	left: 0;
	right: 0;
	bottom: 0;
	top: auto;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 14px 20px;
	border: 0;
	border-top: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 0;
	background: var(--uaenp-white, #fff);
	box-shadow: 0 -10px 30px -22px rgba(16, 29, 46, 0.45);
	transform: none;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-header {
	margin: 0 0 4px;
	padding: 0;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-title {
	font-size: 15px;
	line-height: 1.3;
	margin: 0;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-close {
	display: none;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-body {
	padding: 0;
	margin: 0;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-message {
	margin: 0 0 10px;
	font-size: 13px;
	line-height: 1.5;
	max-width: 96ch;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
}

/* All three choices carry the same size and weight: no dark pattern. */
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-accept,
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-deny,
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-view-preferences,
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-save-preferences {
	flex: 0 0 auto;
	min-width: 150px;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--uaenp-ink-solid, #101d2e);
	border-radius: 6px;
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-accept {
	background: var(--uaenp-ink-solid, #101d2e);
	color: #fff;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-deny,
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-view-preferences {
	background: #fff;
	color: var(--uaenp-ink-solid, #101d2e);
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn:focus-visible {
	outline: 3px solid var(--uaenp-brass-dark, #806128);
	outline-offset: 2px;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-links {
	margin: 10px 0 0;
	font-size: 12.5px;
}

/* The floating tab is replaced by a footer link. */
#cmplz-manage-consent,
.cmplz-manage-consent.manage-consent-1 {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.uaenp-cookie-prefs {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.uaenp-cookie-prefs:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

@media (max-width: 599px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
		padding: 14px 16px;
		max-height: 60vh;
		overflow-y: auto;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-accept,
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-deny,
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn.cmplz-view-preferences {
		flex: 1 1 100%;
		min-width: 0;
	}
}


/* Slim bar: message left, three equal choices right. */
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"head head"
		"body btns"
		"links links";
	align-items: center;
	column-gap: 28px;
	row-gap: 6px;
	max-height: 80vh;
	overflow-y: auto;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-header { grid-area: head; }
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-body { grid-area: body; }
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-buttons { grid-area: btns; }
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-documents { grid-area: links; }

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-buttons {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 10px;
	width: auto;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn {
	width: auto !important;
	flex: 0 0 auto;
	min-width: 140px;
	margin: 0 !important;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-message {
	margin: 0;
	max-width: 92ch;
}

/* When the preferences panel opens the bar becomes a single column so the
   category toggles have room. */
#cmplz-cookiebanner-container .cmplz-cookiebanner:has(.cmplz-categories[style*="block"]) {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "head" "body" "btns" "links";
}

#cmplz-cookiebanner-container .cmplz-cookiebanner:has(.cmplz-categories[style*="block"]) .cmplz-buttons {
	justify-content: flex-start;
}

@media (max-width: 899px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "head" "body" "btns" "links";
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-buttons {
		justify-content: stretch;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn {
		flex: 1 1 auto;
		min-width: 0;
	}
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-title,
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-header {
	text-align: left;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-documents ul {
	display: flex;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
	justify-content: flex-start;
}


/* On phones the supporting image sits between the form and the service
   finder, which is exactly where it costs the most and adds the least.
   It returns from tablet width upward. */
@media (max-width: 767px) {
	.uaenp-home__figure {
		display: none;
	}
}

/* Spacing rhythm for the reading column. */
.uaenp-home__body > .uaenp-fphero__trust {
	margin-bottom: 24px;
}

@media (max-width: 767px) {
	.uaenp-home__hero.uaenp-fphero {
		margin-bottom: 22px;
	}

	.uaenp-home__rail {
		margin-bottom: 28px;
	}

	.entry-content.entry-content .uaenp-fphero__h1 {
		font-size: clamp(27px, 7.6vw, 34px);
		margin: 8px 0 12px;
		max-width: none;
	}

	.entry-content.entry-content .uaenp-home__hero .uaenp-answer p {
		font-size: 16px;
		line-height: 1.55;
	}

	.entry-content.entry-content .uaenp-fphero__cta {
		flex: 1 1 100%;
	}
}


/* ------------------------------------------------------------------
   Single-column order.

   The hero unwraps so its parts can be ordered against the form: the
   brief's sequence is H1, opening sentence, provider disclosure, then
   the form itself. The two calls to action follow the form, because a
   button that scrolls to a form sitting directly above it is noise.
   ------------------------------------------------------------------ */
@media (max-width: 1179px) {
	.uaenp-home__hero.uaenp-fphero {
		display: contents;
	}

	.entry-content.entry-content .uaenp-fphero__badge { order: 1; margin: 0 0 10px; }
	.entry-content.entry-content .uaenp-fphero__h1    { order: 2; margin: 0 0 12px; }
	.uaenp-home .uaenp-answer                          { order: 3; margin: 0 0 16px; }
	.entry-content.entry-content .uaenp-fphero__disclosure { order: 4; margin: 0 0 22px; }
	.uaenp-home__rail                                  { order: 5; margin: 0 0 24px; }
	.uaenp-fphero__actions                             { order: 6; margin: 0 0 28px; }
	.uaenp-home__body                                  { order: 7; }
}


/* At the narrower of the two desktop steps the rail is 340px, so the card
   runs a little taller. A slightly smaller offset keeps the whole card,
   submit button included, inside a 768px-high viewport. */
@media (min-width: 1180px) and (max-width: 1399px) {
	.uaenp-home__railinner {
		top: 24px;
	}
}


/* At the narrower of the two desktop steps the rail is 340px, so the card
   runs a little taller. A smaller offset keeps the whole card, submit button
   included, inside a 768px-high viewport. */
@media (min-width: 1180px) and (max-width: 1399px) {
	.uaenp-home__railinner {
		top: 24px;
	}
}


/* ============================================================
   FAQ accordions
   Native <details>, one clean column, restrained navy/cream/gold.
   Everything below is presentation only: with scripting off the
   accordions still open and close.
   ============================================================ */

.entry-content.entry-content .uaenp-faq-item,
details.uaenp-faq-item {
	margin: 0 0 10px;
	padding: 0;
	max-width: 100%;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 9px;
	background: var(--uaenp-white, #fff);
	overflow: visible;
}

details.uaenp-faq-item[open] {
	border-color: var(--uaenp-brass, #a8823c);
	background: var(--uaenp-paper, #f7f5f0);
}

.entry-content.entry-content .uaenp-faq-item__q,
.uaenp-faq-item__q {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 60px;
	margin: 0;
	padding: 14px 52px 14px 18px;
	position: relative;
	border: 0;
	border-radius: 9px;
	background: none;
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--uaenp-ink-solid, #101d2e);
	cursor: pointer;
	list-style: none;
	text-transform: none;
	letter-spacing: 0;
}

.uaenp-faq-item__q::-webkit-details-marker {
	display: none;
}

.uaenp-faq-item__q::before {
	content: none;
}

/* Plus that becomes a minus. Two bars, so it reads at any font size. */
.uaenp-faq-item__q::after {
	content: "";
	position: absolute;
	right: 18px;
	top: 50%;
	width: 15px;
	height: 15px;
	margin-top: -7px;
	background:
		linear-gradient(var(--uaenp-brass-dark, #806128), var(--uaenp-brass-dark, #806128)) center / 15px 2px no-repeat,
		linear-gradient(var(--uaenp-brass-dark, #806128), var(--uaenp-brass-dark, #806128)) center / 2px 15px no-repeat;
	transition: transform 0.15s ease;
}

details.uaenp-faq-item[open] > .uaenp-faq-item__q::after {
	background:
		linear-gradient(var(--uaenp-brass-dark, #806128), var(--uaenp-brass-dark, #806128)) center / 15px 2px no-repeat;
}

.uaenp-faq-item__q:hover {
	background: var(--uaenp-paper, #f7f5f0);
}

details.uaenp-faq-item[open] > .uaenp-faq-item__q:hover {
	background: none;
}

.uaenp-faq-item__q:focus-visible {
	outline: 3px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: -3px;
	border-radius: 9px;
}

.uaenp-faq-item__a {
	padding: 0 52px 16px 18px;
	overflow: visible;
}

.entry-content.entry-content .uaenp-faq-item__a p,
.uaenp-faq-item__a p {
	margin: 0 0 12px;
	max-width: 74ch;
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--uaenp-ink-soft, #26374b);
}

.entry-content.entry-content .uaenp-faq-item__a p:last-child,
.uaenp-faq-item__a p:last-child {
	margin-bottom: 0;
}

.entry-content.entry-content .uaenp-faq-item__a ul,
.entry-content.entry-content .uaenp-faq-item__a ol {
	margin: 0 0 12px;
	padding-left: 20px;
}

.entry-content.entry-content .uaenp-faq-item__a li {
	margin: 0 0 6px;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--uaenp-ink-soft, #26374b);
}

/* No stray space above or below the group. */
.uaenp-layout__main > .uaenp-faq-item:last-of-type {
	margin-bottom: 0;
}

@media (max-width: 599px) {
	.entry-content.entry-content .uaenp-faq-item__q,
	.uaenp-faq-item__q {
		min-height: 56px;
		padding: 13px 46px 13px 15px;
		font-size: 15.5px;
	}

	.uaenp-faq-item__q::after {
		right: 15px;
	}

	.uaenp-faq-item__a {
		padding: 0 15px 15px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.uaenp-faq-item__q::after {
		transition: none;
	}
}


/* The summary's min-height was applying to the content box, so 60px + 28px of
   padding produced a 90px row. Border-box makes the stated height the row. */
.entry-content.entry-content .uaenp-faq-item__q,
.uaenp-faq-item__q {
	box-sizing: border-box;
	min-height: 62px;
	padding: 12px 52px 12px 18px;
}

@media (max-width: 599px) {
	.entry-content.entry-content .uaenp-faq-item__q,
	.uaenp-faq-item__q {
		min-height: 58px;
		padding: 11px 46px 11px 15px;
	}
}


/* ============================================================
   Consent banner: the dismissed state must win, always.

   The earlier rules restyled ".cmplz-cookiebanner" unconditionally, which
   re-asserted display, opacity and visibility over the plugin's own
   dismissed state and left a decided banner painted on screen. Every rule
   above is now scoped to .cmplz-show:not(.cmplz-dismissed), and the rule
   below removes a decided banner from layout and from the accessibility
   tree entirely.
   ============================================================ */

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-dismissed,
#cmplz-cookiebanner-container .cmplz-cookiebanner:not(.cmplz-show) {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
	height: 0 !important;
	min-height: 0 !important;
	max-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
}


/* A short message keeps the bar at bar height rather than card height. */
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
	padding: 12px 20px;
	row-gap: 4px;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-title {
	font-size: 14px;
	line-height: 1.3;
	margin: 0;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-message {
	font-size: 13px;
	line-height: 1.45;
	max-width: 80ch;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn {
	min-height: 40px;
	min-width: 124px;
	padding: 8px 16px;
	font-size: 13.5px;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-documents {
	margin: 0;
	font-size: 12px;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-documents ul {
	gap: 14px;
}

/* Preference toggles only need room once the visitor opens them. */
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-categories {
	margin-top: 8px;
}

@media (max-width: 899px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
		padding: 12px 16px;
		row-gap: 8px;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn {
		min-height: 44px;
	}
}


/* Bar height: the message carries the whole notice, so the plugin's separate
   title row is redundant. Message and choices share one row; the policy links
   sit on a short second row. That is the difference between a 126px card and
   an 88px bar. */
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
	grid-template-areas:
		"body btns"
		"links links";
	align-items: center;
	row-gap: 2px;
	padding: 12px 20px;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-header {
	display: none;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-documents {
	font-size: 11.5px;
	line-height: 1.4;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-documents ul li {
	margin: 0;
}

/* With preferences open the toggles need the full width and the title back. */
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed):has(.cmplz-categories[style*="block"]) {
	grid-template-areas: "head" "body" "btns" "links";
	align-items: start;
	row-gap: 8px;
	max-height: 70vh;
	overflow-y: auto;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed):has(.cmplz-categories[style*="block"]) .cmplz-header {
	display: block;
}

@media (max-width: 899px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
		grid-template-areas: "body" "btns" "links";
		row-gap: 8px;
		align-items: start;
	}
}


/* The theme declares the footer padding with !important, so the consent
   reservation has to match that weight. The value itself is set inline by
   the consent script and removed the moment a choice is made. */
footer[data-uaenp-consent-pad],
.site-footer[data-uaenp-consent-pad] {
	padding-bottom: var(--uaenp-consent-pad, 0) !important;
}


/* ============================================================
   Rail card, compacted.
   Same fields, same 44px targets: the height comes off labels,
   gaps, the upload row and the duplicated helper text.
   ============================================================ */

.uaenp-enquiry--rail {
	padding: 20px 18px 18px;
}

.uaenp-enquiry--rail .uaenp-enquiry__grid {
	row-gap: 11px;
	column-gap: 11px;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-field label,
.entry-content.entry-content .uaenp-enquiry--rail .uaenp-file__label {
	margin-bottom: 3px;
	font-size: 12px;
	line-height: 1.25;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__intro {
	margin-bottom: 10px;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__heading {
	margin-bottom: 4px;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-field__hint {
	margin-top: 3px;
	font-size: 11px;
	line-height: 1.35;
}

.uaenp-enquiry--rail .uaenp-file {
	padding: 6px 8px;
}

.uaenp-enquiry--rail .uaenp-file__button {
	min-height: 44px;
	line-height: 44px;
	padding: 0 12px;
}

.entry-content.entry-content .uaenp-enquiry--rail .uaenp-enquiry__privacy {
	margin-top: 9px;
	font-size: 11px;
	line-height: 1.4;
}

.uaenp-enquiry--rail .uaenp-field textarea {
	min-height: 78px;
}


/* ============================================================
   Section rhythm: 44-56px desktop, 30-40px mobile.
   Previously several components carried 48px top and bottom,
   which compounds into a lot of page over eight of them.
   ============================================================ */

.uaenp-features,
.uaenp-compare,
.uaenp-gtk,
.uaenp-sources,
.uaenp-tools {
	margin-top: 44px;
	margin-bottom: 44px;
}

.entry-content.entry-content .uaenp-layout__main > h2 {
	margin-block-start: 48px;
}

.entry-content.entry-content .uaenp-layout__main > h2:first-of-type {
	margin-block-start: 0;
}

.uaenp-svcgrid {
	margin-top: 0;
	margin-bottom: 44px;
}

@media (max-width: 767px) {
	.uaenp-features,
	.uaenp-compare,
	.uaenp-gtk,
	.uaenp-sources,
	.uaenp-tools,
	.uaenp-svcgrid {
		margin-top: 32px;
		margin-bottom: 32px;
	}

	.entry-content.entry-content .uaenp-layout__main > h2 {
		margin-block-start: 34px;
	}
}


/* The theme rotates its own summary marker 45deg when the item opens, which
   turned the minus bar into a slash. The indicator is drawn here, so it must
   not inherit that rotation. */
.uaenp-faq-item__q::after,
details.uaenp-faq-item[open] > .uaenp-faq-item__q::after {
	transform: none !important;
	rotate: none;
	content: "" !important;
}


/* Mobile: three stacked 44px buttons made the bar 283px tall. One row of three
   keeps every target at 44px and the whole bar inside a phone's lower third. */
@media (max-width: 899px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
		padding: 10px 14px;
		row-gap: 7px;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-message {
		font-size: 12.5px;
		line-height: 1.4;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-buttons {
		display: flex !important;
		flex-wrap: nowrap;
		gap: 7px;
		width: 100%;
		justify-content: stretch;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn {
		flex: 1 1 0;
		min-width: 0;
		min-height: 44px;
		padding: 6px 4px;
		font-size: 12.5px;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-documents {
		font-size: 11px;
	}
}


/* Flex on this container was not taking; a three-column grid is unambiguous. */
@media (max-width: 899px) {
	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-buttons {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 7px !important;
		width: 100% !important;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-btn {
		width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
	}
}


/* ============================================================
   Inner-page form variants
   The rail card's treatment, shared by the inline, contact and
   banner variants. Only width and stickiness differ.
   ============================================================ */

.uaenp-enquiry--banner,
.uaenp-enquiry--inline,
.uaenp-enquiry--contact {
	display: block;
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 22px 20px 20px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-top: 3px solid var(--uaenp-brass, #a8823c);
	border-radius: 12px;
	background: var(--uaenp-white, #fff);
	box-shadow: 0 18px 44px -30px rgba(16, 29, 46, 0.35);
}

.uaenp-enquiry--contact {
	max-width: 640px;
}

.uaenp-enquiry--inline {
	max-width: 720px;
	margin: 32px 0;
}

.entry-content.entry-content .uaenp-enquiry--banner > *,
.entry-content.entry-content .uaenp-enquiry--inline > *,
.entry-content.entry-content .uaenp-enquiry--contact > * {
	padding-left: 0;
	padding-right: 0;
	max-width: none;
}

.entry-content.entry-content .uaenp-enquiry--banner .uaenp-enquiry__heading,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-enquiry__heading,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-enquiry__heading {
	margin: 0 0 4px;
	padding: 0;
	font-family: var(--uaenp-display, Georgia, serif);
	font-size: 21px;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	color: var(--uaenp-ink-solid, #101d2e);
}

.entry-content.entry-content .uaenp-enquiry--banner .uaenp-enquiry__intro,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-enquiry__intro,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-enquiry__intro {
	margin: 0 0 12px;
	padding: 0;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--uaenp-ink, #5a6b7e);
}

.uaenp-enquiry--banner .uaenp-enquiry__form,
.uaenp-enquiry--inline .uaenp-enquiry__form,
.uaenp-enquiry--contact .uaenp-enquiry__form {
	display: block;
	padding: 0;
	border: 0;
	background: none;
}

.uaenp-enquiry--banner .uaenp-enquiry__grid,
.uaenp-enquiry--inline .uaenp-enquiry__grid,
.uaenp-enquiry--contact .uaenp-enquiry__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 11px;
	row-gap: 11px;
	margin: 0;
}

.entry-content.entry-content .uaenp-enquiry--banner .uaenp-field,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-field,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-field,
.entry-content.entry-content .uaenp-enquiry--banner .uaenp-enquiry__submit,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-enquiry__submit,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-enquiry__submit,
.entry-content.entry-content .uaenp-enquiry--banner .uaenp-enquiry__errors,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-enquiry__errors,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-enquiry__errors {
	margin: 0;
}

.uaenp-enquiry--banner .uaenp-field--wide,
.uaenp-enquiry--inline .uaenp-field--wide,
.uaenp-enquiry--contact .uaenp-field--wide,
.uaenp-enquiry--banner .uaenp-enquiry__errors,
.uaenp-enquiry--inline .uaenp-enquiry__errors,
.uaenp-enquiry--contact .uaenp-enquiry__errors {
	grid-column: 1 / -1;
}

.uaenp-enquiry--banner .uaenp-field--captcha,
.uaenp-enquiry--inline .uaenp-field--captcha,
.uaenp-enquiry--contact .uaenp-field--captcha {
	grid-column: 1;
}

.uaenp-enquiry--banner .uaenp-enquiry__submit,
.uaenp-enquiry--inline .uaenp-enquiry__submit,
.uaenp-enquiry--contact .uaenp-enquiry__submit {
	grid-column: 2;
	align-self: end;
}

.entry-content.entry-content .uaenp-enquiry--banner .uaenp-field label,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-field label,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-field label,
.uaenp-enquiry--banner .uaenp-file__label,
.uaenp-enquiry--inline .uaenp-file__label,
.uaenp-enquiry--contact .uaenp-file__label {
	display: block;
	margin: 0 0 3px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--uaenp-ink-soft, #26374b);
}

.uaenp-enquiry--banner .uaenp-field input[type="text"],
.uaenp-enquiry--banner .uaenp-field input[type="tel"],
.uaenp-enquiry--banner .uaenp-field input[type="email"],
.uaenp-enquiry--banner .uaenp-field textarea,
.uaenp-enquiry--inline .uaenp-field input[type="text"],
.uaenp-enquiry--inline .uaenp-field input[type="tel"],
.uaenp-enquiry--inline .uaenp-field input[type="email"],
.uaenp-enquiry--inline .uaenp-field textarea,
.uaenp-enquiry--contact .uaenp-field input[type="text"],
.uaenp-enquiry--contact .uaenp-field input[type="tel"],
.uaenp-enquiry--contact .uaenp-field input[type="email"],
.uaenp-enquiry--contact .uaenp-field textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid var(--uaenp-line, #d9d4c8);
	border-radius: 8px;
	background: var(--uaenp-paper, #f7f5f0);
	font-family: var(--uaenp-body, system-ui, sans-serif);
	font-size: 15px;
	line-height: 1.4;
	color: var(--uaenp-ink-solid, #101d2e);
	box-shadow: none;
}

.uaenp-enquiry--banner .uaenp-field textarea,
.uaenp-enquiry--inline .uaenp-field textarea,
.uaenp-enquiry--contact .uaenp-field textarea {
	min-height: 78px;
	max-height: 170px;
	resize: vertical;
}

.uaenp-enquiry--banner .uaenp-field--captcha input,
.uaenp-enquiry--inline .uaenp-field--captcha input,
.uaenp-enquiry--contact .uaenp-field--captcha input {
	max-width: 110px;
}

.uaenp-enquiry--banner .uaenp-field input:focus,
.uaenp-enquiry--banner .uaenp-field textarea:focus,
.uaenp-enquiry--inline .uaenp-field input:focus,
.uaenp-enquiry--inline .uaenp-field textarea:focus,
.uaenp-enquiry--contact .uaenp-field input:focus,
.uaenp-enquiry--contact .uaenp-field textarea:focus {
	background: #fff;
	border-color: var(--uaenp-ink-solid, #101d2e);
	outline: 2px solid var(--uaenp-ink-solid, #101d2e);
	outline-offset: 1px;
}

.entry-content.entry-content .uaenp-enquiry--banner .uaenp-field__hint,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-field__hint,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-field__hint {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	line-height: 1.35;
	color: var(--uaenp-ink, #5a6b7e);
}

.uaenp-enquiry--banner .uaenp-file,
.uaenp-enquiry--inline .uaenp-file,
.uaenp-enquiry--contact .uaenp-file {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 6px 8px;
	border: 1px dashed var(--uaenp-line, #d9d4c8);
	border-radius: 8px;
	background: var(--uaenp-paper, #f7f5f0);
}

.entry-content.entry-content .uaenp-enquiry--banner .uaenp-button,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-button,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-button {
	width: 100%;
	min-height: 48px;
	padding: 12px 20px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 600;
}

.entry-content.entry-content .uaenp-enquiry--banner .uaenp-enquiry__privacy,
.entry-content.entry-content .uaenp-enquiry--inline .uaenp-enquiry__privacy,
.entry-content.entry-content .uaenp-enquiry--contact .uaenp-enquiry__privacy {
	margin: 9px 0 0;
	padding: 0;
	font-size: 11px;
	line-height: 1.4;
	color: var(--uaenp-ink, #5a6b7e);
}

@media (max-width: 599px) {
	.uaenp-enquiry--banner,
	.uaenp-enquiry--inline,
	.uaenp-enquiry--contact {
		padding: 20px 18px 18px;
	}

	.uaenp-enquiry--banner .uaenp-enquiry__grid,
	.uaenp-enquiry--inline .uaenp-enquiry__grid,
	.uaenp-enquiry--contact .uaenp-enquiry__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.uaenp-enquiry--banner .uaenp-field--captcha,
	.uaenp-enquiry--inline .uaenp-field--captcha,
	.uaenp-enquiry--contact .uaenp-field--captcha,
	.uaenp-enquiry--banner .uaenp-enquiry__submit,
	.uaenp-enquiry--inline .uaenp-enquiry__submit,
	.uaenp-enquiry--contact .uaenp-enquiry__submit {
		grid-column: 1 / -1;
	}
}

/* ==========================================================================
   WhatsApp contact route
   ==========================================================================
   A plain link styled three ways: a floating circle, a footer text link and
   an in-content button. Nothing here animates and nothing pulses -- the
   control is a route, not an interruption, and on a legal-services site an
   attention-grabbing widget reads as a chat-bot rather than as a firm.
   -------------------------------------------------------------------------- */

.uaenp-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect( 0, 0, 0, 0 );
	white-space: nowrap;
	border: 0;
}

.uaenp-wa {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-decoration: none;
	transition: background-color 120ms ease, color 120ms ease, box-shadow 120ms ease;
}

.uaenp-wa .uaenp-wa__icon {
	flex: 0 0 auto;
}

.uaenp-wa:focus-visible {
	outline: 3px solid var( --uaenp-wax, #b8912f );
	outline-offset: 3px;
}

/* ---- Floating control ----------------------------------------------------
   Bottom-right, 56px so the tap target clears the 48px minimum with room
   for the ring, and lifted by the height the consent bar is currently
   reserving. --uaenp-consent-h is published by the consent module and is
   0px whenever the bar is not showing, so the calc holds in both states.
   -------------------------------------------------------------------------- */

.uaenp-wa-float {
	position: fixed;
	right: 18px;
	bottom: calc( 18px + var( --uaenp-consent-h, 0px ) );
	z-index: 900;
	line-height: 0;
}

.uaenp-wa-float .uaenp-wa {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #1da851;
	color: #fff;
	box-shadow: 0 4px 14px rgba( 0, 0, 0, .28 );
}

.uaenp-wa-float .uaenp-wa .uaenp-wa__icon {
	width: 28px;
	height: 28px;
}

.uaenp-wa-float .uaenp-wa:hover {
	background: #17853f;
	color: #fff;
}

.uaenp-wa-float .uaenp-wa:focus-visible {
	outline-color: #fff;
	box-shadow: 0 0 0 6px rgba( 29, 168, 81, .45 );
}

/* Printed pages get a URL, not a floating circle. */
@media print {
	.uaenp-wa-float {
		display: none;
	}
}

/* ---- Footer link ---------------------------------------------------------
   Sits with the address rather than with the policy links: it is a way to
   reach the practice, not a legal notice.
   -------------------------------------------------------------------------- */

.uaenp-footer-brand__address .uaenp-wa--footer {
	display: inline-flex;
	margin-left: 14px;
	color: inherit;
	font-size: 15px;
}

.uaenp-footer-brand__address .uaenp-wa--footer .uaenp-wa__icon {
	width: 18px;
	height: 18px;
	color: #25d366;
}

.uaenp-footer-brand__address .uaenp-wa--footer .uaenp-wa__label {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.uaenp-footer-brand__address .uaenp-wa--footer:hover .uaenp-wa__label {
	text-decoration: none;
}

/* ---- In-content button ---------------------------------------------------
   The companion to a form CTA. Outlined rather than solid so it reads as
   the second choice next to the primary submit and never competes with it.
   -------------------------------------------------------------------------- */

.uaenp-wa.uaenp-wa--button {
	min-height: 48px;
	padding: 12px 20px;
	border: 1.5px solid #1da851;
	border-radius: 10px;
	background: #fff;
	color: #14622f;
	font-size: 16px;
	font-weight: 600;
}

.uaenp-wa.uaenp-wa--button .uaenp-wa__icon {
	width: 20px;
	height: 20px;
	color: #1da851;
}

.uaenp-wa.uaenp-wa--button:hover {
	background: #f2fbf5;
	color: #0f4d24;
}

/* ---- Small screens -------------------------------------------------------
   The circle shrinks to 52px -- still past the 48px minimum -- and tucks
   closer to the edge so it clears the thumb zone of a submit button rather
   than sitting on top of it.
   -------------------------------------------------------------------------- */

@media ( max-width: 600px ) {

	.uaenp-wa-float {
		right: 12px;
		bottom: calc( 12px + var( --uaenp-consent-h, 0px ) );
	}

	.uaenp-wa-float .uaenp-wa {
		width: 52px;
		height: 52px;
	}

	.uaenp-footer-brand__address .uaenp-wa--footer {
		display: flex;
		margin: 10px 0 0;
	}
}

/* ---- Narrow-phone consent bar ---------------------------------------------
   The banner is a grid, and at 320px its own column sizing squeezed the
   message into 216px -- five lines of text where the bar had room for four,
   which pushed the whole bar to 180px against a 170px budget. Forcing one
   full-width column on phones gives the message the full inner width back
   and returns the bar to the same height it has at 375px.
   -------------------------------------------------------------------------- */

@media ( max-width: 600px ) {

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) {
		grid-template-columns: 1fr !important;
	}

	#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-show:not(.cmplz-dismissed) .cmplz-body {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* ---- Footer WhatsApp tap target ------------------------------------------
   A footer text link is 25px tall, which is fine for a mouse and short of
   the 44px a thumb needs. On touch widths the link keeps its text size and
   gains the height around it.
   -------------------------------------------------------------------------- */

@media ( max-width: 600px ) {

	.uaenp-footer-brand__address .uaenp-wa--footer {
		min-height: 44px;
		align-items: center;
	}
}
