/**
 * RAR Site Core — design tokens and component styles.
 *
 * Loaded after the Astra stylesheet. Contains only what Astra and Elementor
 * Free cannot express through their own settings UIs:
 *   - the shared token layer, so colours/spacing are defined once (SPEC.md §18)
 *   - component styles for markup emitted by this plugin's shortcodes
 *
 * Accessibility note: --rar-blue (#2D73FF) measures 4.19:1 against white, which
 * is below the WCAG 2.1 AA threshold of 4.5:1 for normal-size text. It is safe
 * for large text (>=24px, or >=18.66px bold), for icons and for background
 * fills. --rar-blue-text (#1D5FE0, 5.57:1) must be used for body-size links.
 * --rar-orange and --rar-green are both near-luminous (1.74:1 and 1.67:1
 * against white) and must always carry dark text.
 *
 * @package RAR_Site_Core
 */

:root {
	/* Brand */
	--rar-blue: #2d73ff;
	--rar-blue-text: #1d5fe0; /* AA-safe variant for body-size text */
	--rar-blue-dark: #245ebb;
	--rar-orange: #ffb72d;
	--rar-green: #04e2b8;

	/* Neutrals */
	--rar-ink: #15171a;
	--rar-body: #4a5568;
	--rar-muted: #6b7280;
	--rar-border: #e4e7ec;
	--rar-surface: #f1f2f5;
	--rar-surface-alt: #f8f8fb;
	--rar-white: #ffffff;

	/* Spacing scale */
	--rar-space-xs: 0.5rem;
	--rar-space-sm: 1rem;
	--rar-space-md: 1.5rem;
	--rar-space-lg: 2.5rem;
	--rar-space-xl: 5rem;

	/* Radius */
	--rar-radius-sm: 6px;
	--rar-radius-md: 10px;
	--rar-radius-lg: 16px;
}

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

.rar-btn {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border-radius: var(--rar-radius-sm);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.rar-btn--primary {
	background-color: var(--rar-blue);
	color: var(--rar-white);
}

.rar-btn--primary:hover,
.rar-btn--primary:focus {
	background-color: var(--rar-blue-dark);
	color: var(--rar-white);
}

/* Amber and green carry dark text — see the accessibility note above. */
.rar-btn--accent {
	background-color: var(--rar-orange);
	color: var(--rar-ink);
}

.rar-btn--accent:hover,
.rar-btn--accent:focus {
	background-color: #e8a41f;
	color: var(--rar-ink);
}

/* White button used over imagery — see the hero block below. */
.rar-btn--ghost {
	background-color: var(--rar-white);
	color: var(--rar-ink);
	box-shadow: 0 1px 3px rgba(21, 23, 26, 0.18);
}

.rar-btn--ghost:hover,
.rar-btn--ghost:focus {
	background-color: var(--rar-surface);
	color: var(--rar-ink);
}

.rar-btn--success {
	background-color: var(--rar-green);
	color: var(--rar-ink);
}

/* Visible keyboard focus for every interactive element this plugin emits. */
.rar-btn:focus-visible,
.rar-news-card__more:focus-visible,
.rar-faq__q:focus-visible {
	outline: 3px solid var(--rar-blue-text);
	outline-offset: 2px;
}

/* ---------------------------------------------------------------------------
 * News — [rar_news]
 * ------------------------------------------------------------------------- */

.rar-news {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	gap: var(--rar-space-md);
	align-items: start;
}

.rar-news__list {
	display: flex;
	flex-direction: column;
	gap: var(--rar-space-md);
}

.rar-news-card {
	background: var(--rar-white);
	border-radius: var(--rar-radius-md);
	overflow: hidden;
}

.rar-news-card--featured {
	display: flex;
	flex-direction: column;
}

.rar-news-card__media img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.rar-news-card__body {
	padding: var(--rar-space-md);
}

.rar-news-card--compact {
	padding: var(--rar-space-md);
	border: 1px solid var(--rar-border);
}

.rar-news-card__badge {
	display: inline-block;
	margin-bottom: var(--rar-space-xs);
	padding: 0.25rem 0.6rem;
	border-radius: 4px;
	background: var(--rar-orange);
	color: var(--rar-ink); /* dark text — amber fails with white */
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.rar-news-card__date {
	display: block;
	margin-bottom: var(--rar-space-xs);
	color: var(--rar-muted);
	font-size: 0.8rem;
}

.rar-news-card__title {
	margin: 0 0 var(--rar-space-xs);
	font-size: 1.15rem;
	line-height: 1.35;
	font-weight: 700;
}

.rar-news-card__title a {
	color: var(--rar-blue-text);
	text-decoration: none;
}

.rar-news-card__title a:hover,
.rar-news-card__title a:focus {
	text-decoration: underline;
}

.rar-news-card--featured .rar-news-card__title a {
	color: var(--rar-ink);
}

.rar-news-card__excerpt {
	margin: 0 0 var(--rar-space-sm);
	color: var(--rar-body);
	font-size: 0.92rem;
	line-height: 1.6;
}

.rar-news-card__more {
	color: var(--rar-blue-text);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
}

.rar-news-card__more:hover,
.rar-news-card__more:focus {
	text-decoration: underline;
}

/* ---------------------------------------------------------------------------
 * FAQ — [rar_faqs]
 * Native <details>/<summary>: keyboard and screen-reader support with no JS.
 * ------------------------------------------------------------------------- */

.rar-faqs {
	display: flex;
	flex-direction: column;
	gap: var(--rar-space-xs);
}

.rar-faq {
	border: 1px solid var(--rar-border);
	border-radius: var(--rar-radius-sm);
	background: var(--rar-white);
}

.rar-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--rar-space-sm);
	padding: 1rem 1.25rem;
	cursor: pointer;
	font-weight: 600;
	font-size: 0.98rem;
	color: var(--rar-ink);
	list-style: none;
}

.rar-faq__q::-webkit-details-marker {
	display: none;
}

/* Plus / minus affordance, matching the reference design. */
.rar-faq__q::after {
	content: "+";
	flex: 0 0 auto;
	font-size: 1.35rem;
	font-weight: 400;
	line-height: 1;
	color: var(--rar-muted);
}

.rar-faq[open] .rar-faq__q::after {
	content: "\2212";
}

.rar-faq__a {
	padding: 0 1.25rem 1.25rem;
	color: var(--rar-body);
	font-size: 0.94rem;
	line-height: 1.65;
}

/* ---------------------------------------------------------------------------
 * Comunicate de presă — single layout
 *
 * Styles the markup emitted by [rar_post_header], [rar_categorii_noutati],
 * [rar_post_hero] and [rar_comunicat_body]. The surrounding grid, the blue
 * help panel and the section headings are Elementor widgets and are styled in
 * the builder, not here — this file only owns what the shortcodes output.
 * ------------------------------------------------------------------------- */

/* Shared card shell for the sidebar panel and the release body. */
.rar-card {
	background: var(--rar-white);
	border: 1px solid var(--rar-border);
	border-radius: var(--rar-radius-lg);
	padding: var(--rar-space-md);
}

.rar-card__title {
	margin: 0 0 var(--rar-space-sm);
	color: var(--rar-ink);
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1.3;
}

/* Breadcrumb, title, standfirst — [rar_post_header] */

/* The headline runs the full container width, as in the reference design; only
 * the standfirst below is measure-limited. */

.rar-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--rar-space-xs);
	margin: 0 0 0.75rem;
	padding: 0;
	list-style: none;
}

.rar-breadcrumb__item {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	color: var(--rar-blue-text);
	font-size: 0.82rem;
	font-weight: 700;
}

.rar-breadcrumb__item + .rar-breadcrumb__item::before {
	content: "\2192";
	margin-right: var(--rar-space-xs);
	color: var(--rar-blue-text);
}

.rar-breadcrumb__item a {
	color: inherit;
	text-decoration: none;
}

.rar-breadcrumb__item a:hover,
.rar-breadcrumb__item a:focus {
	text-decoration: underline;
}

.rar-post-header__title {
	margin: 0 0 0.75rem;
	color: var(--rar-ink);
	font-size: clamp(1.75rem, 1.2rem + 2vw, 2.4rem);
	font-weight: 800;
	line-height: 1.18;
}

.rar-post-header__subtitle {
	margin: 0;
	color: var(--rar-muted);
	font-size: 0.95rem;
	line-height: 1.6;
	max-width: 52ch;
}

/* Category navigation — [rar_categorii_noutati] */

.rar-catnav__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rar-catnav__link {
	display: block;
	padding: 0.6rem 0.85rem;
	border-radius: var(--rar-radius-sm);
	color: var(--rar-ink);
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

a.rar-catnav__link:hover,
a.rar-catnav__link:focus {
	background: var(--rar-surface);
}

/* Amber wash for the current section. The fill is light enough that the ink
 * token still measures well above 4.5:1, so no colour swap is needed here. */
.rar-catnav__item.is-active .rar-catnav__link {
	background: #fff3dc;
	font-weight: 700;
}

/* Featured image with overlaid actions — [rar_post_hero] */

.rar-hero {
	position: relative;
	overflow: hidden;
	border-radius: var(--rar-radius-lg);
	background: var(--rar-surface);
}

.rar-hero--flat {
	min-height: 220px;
	background: linear-gradient(160deg, var(--rar-blue) 0%, var(--rar-blue-dark) 100%);
}

.rar-hero__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 6.5;
	object-fit: cover;
}

/* Scrim behind the buttons: the featured image is editor-supplied, so button
 * legibility cannot be left to whatever photograph is uploaded. */
.rar-hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 45%;
	background: linear-gradient(to top, rgba(21, 23, 26, 0.45), transparent);
	pointer-events: none;
}

.rar-hero__actions {
	position: absolute;
	right: var(--rar-space-md);
	bottom: var(--rar-space-md);
	left: var(--rar-space-md);
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.rar-hero__actions .rar-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--rar-space-xs);
}

/* Release body card — [rar_comunicat_body] */

.rar-release__head {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	margin-bottom: 0.6rem;
}

.rar-release__icon {
	display: grid;
	flex: 0 0 34px;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: var(--rar-radius-sm);
	background: #e8f0ff;
	color: var(--rar-blue-text);
}

.rar-release__signature {
	margin: 0;
	padding-top: 0.35rem;
	color: var(--rar-ink);
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.35;
}

/* The reference design sets this text in a pale blue-grey. --rar-body is the
 * nearest token that still clears 4.5:1 on white; do not lighten it. */
.rar-release__content {
	color: var(--rar-body);
	font-size: 0.92rem;
	line-height: 1.8;
}

.rar-release__content > :first-child {
	margin-top: 0;
}

.rar-release__content > :last-child {
	margin-bottom: 0;
}

/* Indent the body under the signature so the icon column reads as a gutter. */
@media (min-width: 768px) {
	.rar-release__content {
		padding-left: calc(34px + 0.7rem);
	}
}

/* Layout used only when Elementor is inactive — see rar_site_core_render_comunicat_layout(). */

.rar-fallback-layout {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--rar-space-lg) var(--rar-space-sm);
}

.rar-fallback-layout__grid {
	display: grid;
	grid-template-columns: 24% 1fr;
	gap: var(--rar-space-md);
	align-items: start;
	margin-top: var(--rar-space-md);
}

.rar-fallback-layout__main {
	display: flex;
	flex-direction: column;
	gap: var(--rar-space-md);
}

/* ---------------------------------------------------------------------------
 * Responsive
 * Breakpoints align with Elementor's defaults (tablet 1024, mobile 767).
 * ------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.rar-news {
		grid-template-columns: 1fr;
	}

	.rar-fallback-layout__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.rar-news-card__title {
		font-size: 1.05rem;
	}

	.rar-btn {
		display: block;
		text-align: center;
	}

	/* Below the image rather than over it: at this width the buttons would
	 * cover most of the photograph and stack awkwardly against the scrim. */
	.rar-hero__actions {
		position: static;
		padding: var(--rar-space-sm);
	}

	.rar-hero::after {
		display: none;
	}

	.rar-hero__image {
		aspect-ratio: 16 / 9;
	}

	.rar-hero__actions .rar-btn {
		flex: 1 1 100%;
		justify-content: center;
	}
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
	.rar-btn {
		transition: none;
	}
}

/* ---------------------------------------------------------------------------
 * Touch target sizing — WCAG 2.5.8 Target Size (Minimum), AA in WCAG 2.2.
 *
 * Elementor's icon-list links render at 23px tall by default, one pixel under
 * the 24x24 CSS-pixel minimum. RAR is a public authority subject to Directive
 * (EU) 2016/2102, so this is a compliance item rather than a preference.
 * Applied at all widths: pointer-based users benefit from it too.
 * ------------------------------------------------------------------------- */

.elementor-widget-icon-list .elementor-icon-list-item > a,
.elementor-widget-icon-list .elementor-icon-list-item > span {
	min-height: 24px;
	align-items: center;
}

.ast-above-header-bar a,
.rar-news-card__more,
.site-footer a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
}

/* ---------------------------------------------------------------------------
 * Footer widget titles.
 *
 * The reference design uses amber headings on the blue footer. Amber on
 * #245EBB measures 3.55:1, which fails AA for normal-size text but passes the
 * 3:1 large-text threshold. WCAG counts >=18.66px bold as large text, so the
 * size below is what keeps the design's amber accent compliant. Do not reduce
 * it without changing the colour.
 * ------------------------------------------------------------------------- */

.site-footer .widget-title,
.site-footer .widgettitle {
	font-size: 19px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

/* Standalone links inside HTML widgets (contact panel phone/email). */
.elementor-widget-html p a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
}

.rar-news-card__title a {
	display: inline-block;
	min-height: 24px;
}

/* ---------------------------------------------------------------------------
 * Archive listings — rar_site_core_render_listing()
 * Comunicate de presă and Întrebări frecvente, after the Noutăți design.
 * ------------------------------------------------------------------------- */

.rar-listing {
	max-width: 1300px;
	margin: 0 auto;
	padding: 48px 20px 72px;
}

.rar-listing__eyebrow {
	margin: 0 0 10px;
	color: var(--rar-blue-text);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.rar-listing__title {
	margin: 0 0 12px;
	color: var(--rar-ink);
	font-size: clamp(1.75rem, 1.2rem + 2vw, 2.25rem);
	font-weight: 800;
	line-height: 1.18;
}

.rar-listing__intro {
	max-width: 600px;
	margin: 0;
	color: var(--rar-body);
	font-size: 15px;
	line-height: 1.6;
}

.rar-listing__grid {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
	margin-top: 40px;
}

.rar-listing__aside {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.rar-listing__aside .rar-card {
	border-radius: var(--rar-radius-md);
}

/* Help panel. #1D5FE0 rather than the design's #2D73FF so the white body
 * text clears 4.5:1. */
.rar-help {
	padding: 24px;
	border-radius: var(--rar-radius-md);
	background: var(--rar-blue-text);
	color: var(--rar-white);
}

.rar-help__title {
	margin: 0 0 10px;
	color: var(--rar-white);
	font-size: 18px;
	font-weight: 800;
	line-height: 1.3;
}

.rar-help__text {
	margin: 0 0 16px;
	color: var(--rar-white);
	font-size: 13px;
	line-height: 1.5;
}

.rar-help__cta {
	display: block;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
}

.rar-listing__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rar-listing__item {
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 24px 0;
	border-bottom: 1px solid var(--rar-border);
}

.rar-listing__item:first-child {
	padding-top: 0;
}

.rar-listing__date {
	display: flex;
	flex: 0 0 60px;
	flex-direction: column;
}

.rar-listing__day {
	color: var(--rar-ink);
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
}

.rar-listing__month {
	color: var(--rar-muted);
	font-size: 12px;
	text-transform: uppercase;
}

.rar-listing__card {
	flex: 1;
	min-width: 0;
	padding: 20px;
	border: 1px solid var(--rar-border);
	border-radius: 8px;
	background: var(--rar-white);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.rar-listing__card:hover,
.rar-listing__card:focus-within {
	border-color: var(--rar-blue);
	box-shadow: 0 2px 10px rgba(21, 23, 26, 0.06);
}

.rar-tag {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.4;
	text-transform: uppercase;
}

.rar-tag--blue {
	background: #dce8ff;
	color: #0053ce;
}

.rar-tag--green {
	background: #cffaef;
	color: #00201c;
}

.rar-listing__card-title {
	margin: 12px 0 8px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
}

.rar-listing__card-title a {
	display: inline-block;
	min-height: 24px;
	color: var(--rar-ink);
	text-decoration: none;
}

.rar-listing__card-title a:hover,
.rar-listing__card-title a:focus {
	color: var(--rar-blue-text);
	text-decoration: underline;
}

.rar-listing__excerpt {
	margin: 0 0 10px;
	color: var(--rar-body);
	font-size: 13px;
	line-height: 1.5;
}

.rar-listing__more {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 24px;
	color: var(--rar-blue-text);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}

.rar-listing__more:hover {
	text-decoration: underline;
}

.rar-listing__empty {
	color: var(--rar-body);
}

.rar-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
}

.rar-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 8px;
	border: 1px solid var(--rar-border);
	border-radius: var(--rar-radius-sm);
	background: var(--rar-white);
	color: var(--rar-ink);
	font-weight: 600;
	text-decoration: none;
}

.rar-pagination a.page-numbers:hover,
.rar-pagination a.page-numbers:focus {
	border-color: var(--rar-blue-text);
	color: var(--rar-blue-text);
}

.rar-pagination .page-numbers.current {
	border-color: var(--rar-blue-text);
	background: var(--rar-blue-text);
	color: var(--rar-white);
}

.rar-pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
}

.rar-listing__card-title a:focus-visible,
.rar-pagination a:focus-visible,
.rar-help__cta:focus-visible {
	outline: 3px solid var(--rar-blue-text);
	outline-offset: 2px;
}

.rar-help__cta:focus-visible {
	outline-color: var(--rar-white);
}

@media (max-width: 1024px) {
	.rar-listing__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	/* The list is the page's purpose; the sidebar follows it on narrow screens. */
	.rar-listing__aside {
		order: 2;
	}
}

@media (max-width: 767px) {
	.rar-listing {
		padding: 28px 16px 48px;
	}

	.rar-listing__grid {
		margin-top: 28px;
	}

	.rar-listing__item {
		flex-direction: column;
		gap: 10px;
	}

	.rar-listing__date {
		flex-basis: auto;
		flex-direction: row;
		align-items: baseline;
		gap: 6px;
	}
}

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

/* Listing laid out in Elementor (templates/elementor/rar-listing*.json). The
 * sidebar keeps its fixed width; the list takes the rest of the row, which an
 * Elementor Free width setting cannot express without a calc(). */
.rar-listing-layout .e-con.rar-listing__aside {
	flex-shrink: 0;
}

.rar-listing-layout .e-con.rar-listing__main {
	--width: auto;
	flex: 1 1 0;
	min-width: 0;
}

@media (max-width: 1024px) {
	.rar-listing-layout .e-con.rar-listing__main {
		flex-basis: 100%;
	}
}

/* Elementor wraps shortcode output; the header's own margin is enough. */
.rar-listing-layout .rar-listing__header {
	margin: 0;
}

/* Generic single-entry fallback — rar_site_core_render_single_fallback(). */
.rar-fallback-layout__single {
	display: flex;
	flex-direction: column;
	gap: var(--rar-space-md);
	max-width: 900px;
	margin-top: var(--rar-space-md);
}

/* ---------------------------------------------------------------------------
 * Contact page — templates/elementor/rar-contact.json + the CF7 "Contact RAR"
 * form. Every selector is scoped to classes this block introduces, so nothing
 * else on the site is affected.
 * ------------------------------------------------------------------------- */

.rar-contact-intro p {
	max-width: 640px;
}

.rar-contact-details p {
	margin: 0 0 10px;
}

.rar-contact-details p:last-child {
	margin-bottom: 0;
}

.rar-contact-details a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	color: var(--rar-blue-text);
	text-decoration: none;
}

.rar-contact-details a:hover,
.rar-contact-details a:focus {
	text-decoration: underline;
}

/* The form: two fields per row, labels above their controls. */
.rar-contact-form p {
	margin: 0 0 16px;
}

.rar-contact-form .rar-cf-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 16px;
}

.rar-contact-form label {
	display: block;
	color: var(--rar-ink);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
}

.rar-contact-form .wpcf7-form-control-wrap {
	display: block;
	margin-top: 6px;
}

.rar-contact-form input[type="text"],
.rar-contact-form input[type="email"],
.rar-contact-form input[type="tel"],
.rar-contact-form select,
.rar-contact-form textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 12px;
	border: 1px solid #c2c6d7;
	border-radius: var(--rar-radius-sm);
	background: var(--rar-white);
	color: var(--rar-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.4;
}

.rar-contact-form textarea {
	height: 120px;
	resize: vertical;
}

.rar-contact-form input:focus-visible,
.rar-contact-form select:focus-visible,
.rar-contact-form textarea:focus-visible {
	outline: 3px solid var(--rar-blue-text);
	outline-offset: 1px;
	border-color: var(--rar-blue-text);
}

/* GDPR consent: checkbox and sentence on one line. */
.rar-contact-form .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.rar-contact-form .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--rar-body);
	font-weight: 400;
}

.rar-contact-form .wpcf7-acceptance input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
}

/* #1D5FE0 rather than the design's #2D73FF: white 16px bold text needs it for AA. */
.rar-contact-form .wpcf7-submit {
	display: block;
	width: 100%;
	padding: 16px;
	border: 0;
	border-radius: var(--rar-radius-sm);
	background: var(--rar-blue-text);
	color: var(--rar-white);
	cursor: pointer;
	font: inherit;
	font-size: 15px;
	font-weight: 700;
}

.rar-contact-form .wpcf7-submit:hover,
.rar-contact-form .wpcf7-submit:focus {
	background: #174fbf;
}

.rar-contact-form .wpcf7-submit:focus-visible {
	outline: 3px solid var(--rar-ink);
	outline-offset: 2px;
}

.rar-contact-form .wpcf7-submit:disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

.rar-contact-form .wpcf7-not-valid {
	border-color: var(--rar-red, #ba1a1a);
}

.rar-contact-form .wpcf7-not-valid-tip {
	margin-top: 4px;
	color: #ba1a1a;
	font-size: 12px;
	font-weight: 600;
}

.rar-contact-form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 14px;
	border-radius: var(--rar-radius-sm);
	font-size: 13px;
}

.rar-contact-form .wpcf7-spinner {
	display: block;
	margin: 10px auto 0;
}

@media (max-width: 767px) {
	.rar-contact-form .rar-cf-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}
