/*
Theme Name:   RBC Imobiliare
Theme URI:    https://www.rbcimobiliare.ro
Description:  Modern theme for RBC Imobiliare, built on Kadence. Renders the existing `listing` and `agent` content owned by the RBC Listings plugin, so no property data had to be migrated. Includes a dedicated landing page for the property-management service.
Author:       RBC Imobiliare
Template:     kadence
Version:      1.3.0
Requires PHP: 7.4
Text Domain:  rbc-imobiliare
*/

/* -------------------------------------------------------------------------
   Design tokens
   The red is sampled from the existing logo and header so the rebrand stays
   recognisable to returning visitors.
   ---------------------------------------------------------------------- */
:root {
	--rbc-red:        #b01c28;
	--rbc-red-dark:   #8a1420;
	--rbc-red-light:  #d94452;
	--rbc-ink:        #14181f;
	--rbc-body:       #4a5260;
	/* WCAG AA: 5.22:1 on white, 4.90:1 on --rbc-bg-soft. The previous #767f8d
	   was 4.05:1 / 3.80:1 and failed on every card meta line. */
	--rbc-muted:      #656d7b;
	--rbc-line:       #e3e7ec;
	--rbc-bg-soft:    #f6f8fa;
	--rbc-white:      #ffffff;
	--rbc-gold:       #70511a;

	--rbc-radius:     14px;
	--rbc-radius-sm:  8px;
	--rbc-shadow:     0 1px 2px rgba(20, 24, 31, .06), 0 8px 24px rgba(20, 24, 31, .06);
	--rbc-shadow-lg:  0 2px 4px rgba(20, 24, 31, .06), 0 18px 48px rgba(20, 24, 31, .12);
	--rbc-transition: .22s cubic-bezier(.4, 0, .2, 1);

	--rbc-max:        1240px;
}

/* -------------------------------------------------------------------------
   Base
   ---------------------------------------------------------------------- */
body {
	color: var(--rbc-body);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 {
	color: var(--rbc-ink);
	line-height: 1.2;
	letter-spacing: -.02em;
}

.rbc-shell {
	max-width: var(--rbc-max);
	margin-inline: auto;
	padding-inline: 20px;
}

/* Two stacked sections previously put 176px between blocks of content, which
   read as the page having ended. */
.rbc-section {
	padding-block: clamp(34px, 4.2vw, 56px);
}

.rbc-section--soft {
	background: var(--rbc-bg-soft);
}

.rbc-section__head {
	max-width: 720px;
	margin: 0 auto clamp(20px, 2.4vw, 32px);
	text-align: center;
}

.rbc-section__eyebrow {
	display: inline-block;
	margin-bottom: 9px;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rbc-red);
}

.rbc-section__title {
	margin: 0 0 10px;
	font-size: clamp(1.55rem, 2.8vw, 2.15rem);
	font-weight: 800;
}

.rbc-section__lead {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--rbc-body);
}

/* -------------------------------------------------------------------------
   Buttons
   ---------------------------------------------------------------------- */
.rbc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 26px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-size: .98rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: var(--rbc-transition);
}

.rbc-btn--primary {
	background: var(--rbc-red);
	border-color: var(--rbc-red);
	color: #fff;
}

.rbc-btn--primary:hover,
.rbc-btn--primary:focus-visible {
	background: var(--rbc-red-dark);
	border-color: var(--rbc-red-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(176, 28, 40, .3);
}

.rbc-btn--ghost {
	background: transparent;
	border-color: currentColor;
	color: var(--rbc-ink);
}

.rbc-btn--ghost:hover,
.rbc-btn--ghost:focus-visible {
	background: var(--rbc-ink);
	border-color: var(--rbc-ink);
	color: #fff;
}

.rbc-btn--on-dark {
	background: #fff;
	border-color: #fff;
	color: var(--rbc-red);
}

.rbc-btn--on-dark:hover,
.rbc-btn--on-dark:focus-visible {
	background: transparent;
	color: #fff;
	transform: translateY(-2px);
}

.rbc-btn--outline-light {
	background: transparent;
	border-color: rgba(255, 255, 255, .6);
	color: #fff;
}

.rbc-btn--outline-light:hover,
.rbc-btn--outline-light:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var(--rbc-red);
}

/* The management item in the main menu renders as a button.
   `.rbc-nav-cta` is added by rbc_highlight_management_menu_item(). */
.rbc-menu .rbc-nav-cta > a {
	background: var(--rbc-red);
	color: #fff;
	font-weight: 700;
}

.rbc-menu .rbc-nav-cta > a:hover {
	background: var(--rbc-red-dark);
	color: #fff;
}

/* -------------------------------------------------------------------------
   Listing cards
   ---------------------------------------------------------------------- */
.rbc-grid {
	display: grid;
	gap: 26px;
	grid-template-columns: repeat(auto-fill, minmax(295px, 1fr));
}

.rbc-card {
	display: flex;
	flex-direction: column;
	background: var(--rbc-white);
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	overflow: hidden;
	transition: var(--rbc-transition);
}

.rbc-card:hover {
	transform: translateY(-4px);
	border-color: transparent;
	box-shadow: var(--rbc-shadow-lg);
}

.rbc-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--rbc-bg-soft);
}

.rbc-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s cubic-bezier(.4, 0, .2, 1);
}

.rbc-card:hover .rbc-card__media img {
	transform: scale(1.05);
}

.rbc-card__badges {
	position: absolute;
	inset-block-start: 12px;
	inset-inline-start: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	max-width: calc(100% - 24px);
}

.rbc-badge {
	padding: 5px 11px;
	border-radius: 999px;
	background: rgba(20, 24, 31, .82);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	backdrop-filter: blur(4px);
}

.rbc-badge--sold    { background: var(--rbc-ink); }
.rbc-badge--accent  { background: var(--rbc-red); }
.rbc-badge--gold    { background: var(--rbc-gold); }
.rbc-badge--managed { background: #1d6a4f; }

.rbc-card__price {
	position: absolute;
	inset-block-end: 12px;
	inset-inline-start: 12px;
	padding: 8px 15px;
	border-radius: var(--rbc-radius-sm);
	background: rgba(255, 255, 255, .95);
	color: var(--rbc-ink);
	font-size: 1.06rem;
	font-weight: 800;
	backdrop-filter: blur(6px);
}

.rbc-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 18px 20px 20px;
}

.rbc-card__title {
	margin: 0 0 8px;
	font-size: 1.03rem;
	font-weight: 700;
	line-height: 1.35;
}

.rbc-card__title a {
	color: var(--rbc-ink);
	text-decoration: none;
}

.rbc-card__title a:hover {
	color: var(--rbc-red);
}

.rbc-card__location {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 15px;
	font-size: .88rem;
	color: var(--rbc-muted);
}

.rbc-card__location svg {
	flex-shrink: 0;
	width: 15px;
	height: 15px;
}

.rbc-card__specs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: auto;
	padding-top: 15px;
	border-top: 1px solid var(--rbc-line);
	font-size: .85rem;
	color: var(--rbc-body);
}

.rbc-card__spec {
	display: flex;
	align-items: center;
	gap: 6px;
}

.rbc-card__spec svg {
	width: 16px;
	height: 16px;
	color: var(--rbc-muted);
}

.rbc-card__spec strong {
	color: var(--rbc-ink);
	font-weight: 700;
}

.rbc-card__code {
	margin-top: 12px;
	font-size: .76rem;
	color: var(--rbc-muted);
	letter-spacing: .04em;
}

/* -------------------------------------------------------------------------
   Empty state / pagination
   ---------------------------------------------------------------------- */
.rbc-empty {
	padding: 60px 24px;
	border: 1px dashed var(--rbc-line);
	border-radius: var(--rbc-radius);
	text-align: center;
	color: var(--rbc-muted);
}

.rbc-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 44px;
}

.rbc-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding-inline: 12px;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
	color: var(--rbc-body);
	font-weight: 600;
	text-decoration: none;
	transition: var(--rbc-transition);
}

.rbc-pagination .page-numbers:hover {
	border-color: var(--rbc-red);
	color: var(--rbc-red);
}

.rbc-pagination .page-numbers.current {
	background: var(--rbc-red);
	border-color: var(--rbc-red);
	color: #fff;
}

/* -------------------------------------------------------------------------
   Single listing
   ---------------------------------------------------------------------- */
.rbc-listing__title {
	margin: 0 0 10px;
	font-size: clamp(1.6rem, 3.2vw, 2.3rem);
	font-weight: 800;
}

.rbc-listing__layout {
	display: grid;
	gap: 40px;
	align-items: start;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 992px) {
	.rbc-listing__layout {
		grid-template-columns: minmax(0, 1fr) 340px;
	}
}


.rbc-sticky {
	position: sticky;
	top: 24px;
}

.rbc-panel {
	padding: 24px;
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	box-shadow: var(--rbc-shadow);
}

.rbc-panel + .rbc-panel {
	margin-top: 20px;
}

.rbc-agent {
	text-align: center;
}

.rbc-agent__photo {
	width: 92px;
	height: 92px;
	margin: 0 auto 14px;
	border-radius: 50%;
	object-fit: cover;
}

.rbc-agent__name {
	margin: 0 0 3px;
	font-size: 1.1rem;
	font-weight: 700;
}

.rbc-agent__role {
	margin: 0 0 16px;
	font-size: .87rem;
	color: var(--rbc-muted);
}

.rbc-agent__contact {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.rbc-agent__contact a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 14px;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
	color: var(--rbc-ink);
	font-weight: 600;
	text-decoration: none;
	transition: var(--rbc-transition);
}

.rbc-agent__contact a:hover {
	border-color: var(--rbc-red);
	background: var(--rbc-red);
	color: #fff;
}

/* -------------------------------------------------------------------------
   Property management landing page
   ---------------------------------------------------------------------- */
.rbc-mgmt-hero {
	position: relative;
	padding-block: clamp(60px, 9vw, 110px);
	background:
		linear-gradient(135deg, rgba(20, 24, 31, .93) 0%, rgba(138, 20, 32, .9) 100%),
		var(--rbc-hero-image, none) center / cover no-repeat,
		var(--rbc-ink);
	color: #fff;
	overflow: hidden;
}

.rbc-mgmt-hero__inner {
	display: grid;
	gap: 44px;
	align-items: center;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 992px) {
	.rbc-mgmt-hero__inner {
		grid-template-columns: 1.15fr .85fr;
	}
}

.rbc-mgmt-hero h1 {
	margin: 0 0 18px;
	color: #fff;
	font-size: clamp(2rem, 4.6vw, 3.3rem);
	font-weight: 800;
	line-height: 1.1;
}

.rbc-mgmt-hero__lead {
	margin: 0 0 28px;
	max-width: 46ch;
	font-size: clamp(1.02rem, 1.6vw, 1.18rem);
	line-height: 1.65;
	color: rgba(255, 255, 255, .9);
}

.rbc-mgmt-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 30px;
}

.rbc-mgmt-hero__proof {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 34px;
	padding-top: 26px;
	border-top: 1px solid rgba(255, 255, 255, .22);
}

.rbc-stat__num {
	display: block;
	font-size: clamp(1.6rem, 3vw, 2.1rem);
	font-weight: 800;
	color: #fff;
	line-height: 1.1;
}

.rbc-stat__label {
	font-size: .84rem;
	color: rgba(255, 255, 255, .75);
}

/* Price card in the hero */
.rbc-pricecard {
	padding: 30px;
	border-radius: var(--rbc-radius);
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .2);
	backdrop-filter: blur(10px);
	text-align: center;
}

.rbc-pricecard__label {
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .8);
}

.rbc-pricecard__amount {
	margin: 10px 0 4px;
	font-size: clamp(2.6rem, 5vw, 3.6rem);
	font-weight: 800;
	color: #fff;
	line-height: 1;
}

.rbc-pricecard__amount small {
	font-size: 1rem;
	font-weight: 600;
	color: rgba(255, 255, 255, .8);
}

.rbc-pricecard__note {
	margin: 0 0 22px;
	font-size: .9rem;
	color: rgba(255, 255, 255, .8);
}

.rbc-pricecard__list {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
	text-align: start;
}

.rbc-pricecard__list li {
	display: flex;
	gap: 10px;
	padding: 8px 0;
	font-size: .93rem;
	color: rgba(255, 255, 255, .92);
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.rbc-pricecard__list li:last-child {
	border-bottom: 0;
}

.rbc-pricecard__list svg {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	color: #6ee7a8;
}

/* Pain points */
.rbc-pain {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.rbc-pain__item {
	position: relative;
	padding: 26px 24px 26px 62px;
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
}

.rbc-pain__item::before {
	content: "";
	position: absolute;
	inset-block-start: 27px;
	inset-inline-start: 24px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--rbc-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E") center / 13px no-repeat;
}

.rbc-pain__item p {
	margin: 0;
	font-size: .96rem;
	line-height: 1.6;
}

/* Steps */
.rbc-steps {
	display: grid;
	gap: 24px;
	counter-reset: rbc-step;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.rbc-step {
	position: relative;
	padding-top: 56px;
}

.rbc-step::before {
	counter-increment: rbc-step;
	content: counter(rbc-step);
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--rbc-red);
	color: #fff;
	font-size: 1.05rem;
	font-weight: 800;
}

.rbc-step h3 {
	margin: 0 0 8px;
	font-size: 1.08rem;
	font-weight: 700;
}

.rbc-step p {
	margin: 0;
	font-size: .94rem;
	line-height: 1.6;
	color: var(--rbc-body);
}

/* Services grid */
.rbc-services {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
}

.rbc-service {
	padding: 28px 24px;
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	transition: var(--rbc-transition);
}

.rbc-service:hover {
	border-color: transparent;
	box-shadow: var(--rbc-shadow-lg);
	transform: translateY(-3px);
}

.rbc-service__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 16px;
	border-radius: 12px;
	background: rgba(176, 28, 40, .09);
	color: var(--rbc-red);
}

.rbc-service__icon svg {
	width: 23px;
	height: 23px;
}

.rbc-service h3 {
	margin: 0 0 8px;
	font-size: 1.05rem;
	font-weight: 700;
}

.rbc-service p {
	margin: 0;
	font-size: .93rem;
	line-height: 1.6;
	color: var(--rbc-body);
}

/* Split CTA band */
.rbc-cta-band {
	padding-block: clamp(44px, 6vw, 72px);
	background: linear-gradient(135deg, var(--rbc-ink) 0%, var(--rbc-red-dark) 100%);
	color: #fff;
}

.rbc-cta-band__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 26px;
}

.rbc-cta-band h2 {
	margin: 0 0 8px;
	color: #fff;
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	font-weight: 800;
}

.rbc-cta-band p {
	margin: 0;
	max-width: 52ch;
	color: rgba(255, 255, 255, .85);
}

.rbc-cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* Homepage management teaser */
.rbc-mgmt-teaser {
	display: grid;
	gap: 36px;
	align-items: center;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 900px) {
	.rbc-mgmt-teaser {
		grid-template-columns: 1fr 1fr;
	}
}

.rbc-mgmt-teaser__media img {
	width: 100%;
	border-radius: var(--rbc-radius);
	box-shadow: var(--rbc-shadow-lg);
}

.rbc-checklist {
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
}

.rbc-checklist li {
	display: flex;
	gap: 11px;
	padding: 7px 0;
	font-size: .98rem;
	line-height: 1.55;
}

.rbc-checklist svg {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	color: #1d6a4f;
}

/* FAQ */
.rbc-faq {
	max-width: 780px;
	margin-inline: auto;
}

.rbc-faq details {
	padding: 18px 20px;
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
}

.rbc-faq details + details {
	margin-top: 12px;
}

.rbc-faq summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--rbc-ink);
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 16px;
}

.rbc-faq summary::-webkit-details-marker {
	display: none;
}

.rbc-faq summary::after {
	content: "+";
	flex-shrink: 0;
	font-size: 1.4rem;
	line-height: 1;
	color: var(--rbc-red);
}

.rbc-faq details[open] summary::after {
	content: "−";
}

.rbc-faq details p {
	margin: 14px 0 0;
	font-size: .95rem;
	line-height: 1.65;
}

/* -------------------------------------------------------------------------
   Accessibility & motion
   ---------------------------------------------------------------------- */
:where(a, button, summary, input, select, textarea):focus-visible {
	outline: 3px solid var(--rbc-red-light);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}

	.rbc-card:hover,
	.rbc-service:hover,
	.rbc-btn:hover {
		transform: none;
	}
}

@media print {
	.rbc-mgmt-hero,
	.rbc-cta-band,
	.rbc-nav-cta {
		background: none !important;
		color: #000 !important;
	}
}

/* =========================================================================
   HEADER
   ====================================================================== */
.rbc-skip {
	position: absolute;
	left: -9999px;
	z-index: 999;
	padding: 12px 20px;
	background: var(--rbc-red);
	color: #fff;
}

.rbc-skip:focus {
	left: 12px;
	top: 12px;
}

.rbc-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	box-shadow: 0 1px 0 var(--rbc-line);
}

.rbc-topbar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 24px;
	min-height: 40px;
	padding-block: 7px;
}

.rbc-topbar__contact {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
}

.rbc-topbar__contact a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

.rbc-topbar__contact a:hover {
	color: var(--rbc-red-light);
}

.rbc-topbar__contact svg {
	width: 15px;
	height: 15px;
	opacity: .75;
}

.rbc-navbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 78px;
}

.rbc-logo {
	flex-shrink: 0;
	line-height: 0;
	text-decoration: none;
	padding: 10px;
}

.rbc-logo img {
	/* Width is the controlled dimension so the logo scales predictably in the
	   header; set from Appearance → Customize → Site Identity. */
	width: var(--rbc-logo-width, 150px);
	max-width: 100%;
	height: auto;
}

.rbc-logo__text {
	font-size: 1.35rem;
	font-weight: 800;
	color: var(--rbc-ink);
	line-height: 1.2;
}

.rbc-nav {
	display: flex;
	align-items: center;
	gap: 22px;
	margin-inline-start: auto;
}

.rbc-menu {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rbc-menu li {
	position: relative;
}

.rbc-menu a {
	display: block;
	padding: 10px 13px;
	border-radius: var(--rbc-radius-sm);
	color: var(--rbc-ink);
	font-size: .93rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: var(--rbc-transition);
}

.rbc-menu a:hover,
.rbc-menu .current-menu-item > a,
.rbc-menu .current-menu-ancestor > a {
	background: var(--rbc-bg-soft);
	color: var(--rbc-red);
}

/* Sub-menus */
.rbc-menu .sub-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 60;
	display: block;
	min-width: 232px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	box-shadow: var(--rbc-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: var(--rbc-transition);
}

.rbc-menu li:hover > .sub-menu,
.rbc-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.rbc-menu .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-inline-start: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	opacity: .55;
}

.rbc-btn--sm {
	padding: 10px 18px;
	font-size: .88rem;
}

/* Burger */
.rbc-burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
	background: #fff;
	cursor: pointer;
}

.rbc-burger span {
	display: block;
	width: 20px;
	height: 2px;
	margin-inline: auto;
	background: var(--rbc-ink);
	transition: var(--rbc-transition);
}

.rbc-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.rbc-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rbc-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1100px) {
	.rbc-burger { display: flex; }

	.rbc-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 90;
		display: none;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 12px;
		background: #fff;
		border-top: 1px solid var(--rbc-line);
		box-shadow: var(--rbc-shadow-lg);
		max-height: calc(100vh - 120px);
		overflow-y: auto;
	}

	.rbc-nav.is-open { display: flex; }

	.rbc-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.rbc-menu a { padding: 13px 12px; }

	.rbc-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		border-left: 2px solid var(--rbc-line);
		border-radius: 0;
		margin-inline-start: 12px;
		padding: 0 0 0 6px;
	}

	.rbc-menu .menu-item-has-children > a::after { float: inline-end; margin-top: 6px; }

	.rbc-nav__actions { margin-top: 12px; }
	.rbc-nav__actions .rbc-btn { width: 100%; }

	.rbc-navbar__inner { position: relative; }
}

/* =========================================================================
   SEARCH FORM
   ====================================================================== */
.rbc-search {
	background: #fff;
	border-radius: var(--rbc-radius);
	box-shadow: var(--rbc-shadow-lg);
	padding: 18px;
}

.rbc-search--bar {
	box-shadow: none;
	border: 1px solid var(--rbc-line);
	padding: 16px;
}

.rbc-search__grid {
	display: grid;
	gap: 14px;
	/* 138px, not 155px: with the ID Ofertă field the row holds seven controls,
	   and at 155px the last one wrapped to a line of its own inside the 1240px
	   shell. */
	grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
	align-items: end;
}

.rbc-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.rbc-field label,
.rbc-field__label {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--rbc-muted);
}


.rbc-field select,
.rbc-field input {
	width: 100%;
	height: 46px;
	padding: 0 12px;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
	background: #fff;
	color: var(--rbc-ink);
	/* 16px exactly: iOS Safari zooms the viewport when a focused control has a
	   smaller font, which throws the layout off mid-search. */
	font-size: 16px;
	font-family: inherit;
	transition: var(--rbc-transition);
}

.rbc-field select:focus,
.rbc-field input:focus {
	border-color: var(--rbc-red);
	outline: none;
	box-shadow: 0 0 0 3px rgba(176, 28, 40, .12);
}

.rbc-field__pair {
	display: flex;
	align-items: center;
	gap: 6px;
}

.rbc-field__pair span {
	color: var(--rbc-muted);
}

/* Two inputs and a dash share one track, so they need the tighter gutter. */
.rbc-field--price input {
	padding-inline: 8px;
}

/* type="search" so Chrome offers a clear button, but Safari's default pill
   shape and inner shadow would stand out next to the selects. */
.rbc-field--code input {
	-webkit-appearance: none;
	appearance: none;
}

.rbc-field--code input::-webkit-search-decoration {
	-webkit-appearance: none;
}

.rbc-field--submit .rbc-btn {
	width: 100%;
	height: 46px;
	padding-inline: 20px;
}

/* -------------------------------------------------------------------------
   Multi-choice filter (Zonă)

   A <details> rather than a scripted popover, so Tip proprietate, Camere and
   Zonă can still be ticked and submitted with JavaScript off. The panel is
   absolutely positioned, so opening it does not push the rest of the search
   bar down the page.

   Selectors are qualified with .rbc-field because the field rules above claim
   every `label` and `input` inside the form — unqualified, the checkboxes
   would inherit the 46px-tall full-width control shape.
   ---------------------------------------------------------------------- */
.rbc-field--multi {
	position: relative;
}

.rbc-field .rbc-multi__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	height: 46px;
	padding: 0 12px;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
	background: #fff;
	color: var(--rbc-ink);
	font-size: 16px;
	cursor: pointer;
	list-style: none;
	transition: var(--rbc-transition);
}

/* Safari draws its own disclosure triangle unless this is suppressed too. */
.rbc-field .rbc-multi__toggle::-webkit-details-marker {
	display: none;
}

.rbc-field .rbc-multi__toggle:hover {
	border-color: var(--rbc-red);
}

.rbc-field .rbc-multi__toggle:focus-visible {
	border-color: var(--rbc-red);
	outline: none;
	box-shadow: 0 0 0 3px rgba(176, 28, 40, .12);
}

.rbc-multi__value {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.rbc-multi__toggle svg {
	flex-shrink: 0;
	color: var(--rbc-muted);
	transition: var(--rbc-transition);
}

.rbc-multi[open] .rbc-multi__toggle svg {
	transform: rotate(180deg);
}

.rbc-multi__panel {
	position: absolute;
	z-index: 30;
	inset-inline-start: 0;
	/* Wider than its column: zone and property-type names do not fit a 138px
	   track. Camere overrides it — six one-character options in a 240px panel
	   read as a mistake. */
	min-width: max(100%, 240px);
	max-height: 300px;
	margin-block-start: 6px;
	padding: 8px;
	overflow-y: auto;
	overscroll-behavior: contain;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
	background: #fff;
	box-shadow: 0 18px 40px rgba(16, 20, 26, .16);
}

.rbc-field .rbc-multi__option {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 7px 9px;
	border-radius: 8px;
	color: var(--rbc-ink);
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
}

.rbc-field .rbc-multi__option:hover {
	background: rgba(176, 28, 40, .06);
}

.rbc-field .rbc-multi__option input {
	width: 17px;
	height: 17px;
	flex-shrink: 0;
	padding: 0;
	accent-color: var(--rbc-red);
	cursor: pointer;
}

.rbc-field--camere .rbc-multi__panel {
	min-width: max(100%, 132px);
}

/* On phones a filter column is roughly half the screen. Pinning the panel to
   that width would put one word per line, so it keeps a readable width and is
   capped against the viewport instead.

   Zonă is the picker that sits at the right edge of the row, so its panel is
   the one that would spill off-screen; Tip and Camere open leftwards from the
   start of the row and stay where they are. */
@media (max-width: 600px) {
	.rbc-multi__panel {
		min-width: min(280px, 78vw);
		max-height: 60vh;
	}

	.rbc-field--camere .rbc-multi__panel {
		min-width: 132px;
	}

	.rbc-field--zona .rbc-multi__panel,
	.rbc-field--tip .rbc-multi__panel {
		right: 0;
		left: auto;
	}
}

/* =========================================================================
   HOMEPAGE
   ====================================================================== */
.rbc-hero {
	position: relative;
	padding-block: clamp(46px, 6vw, 80px);
	background: linear-gradient(135deg, #171b23 0%, #2c1418 55%, var(--rbc-red-dark) 100%);
	color: #fff;
}

.rbc-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 15% 20%, rgba(255, 255, 255, .06) 0, transparent 42%),
		radial-gradient(circle at 85% 75%, rgba(217, 68, 82, .16) 0, transparent 46%);
	pointer-events: none;
}

.rbc-hero > * {
	position: relative;
	z-index: 1;
}

.rbc-hero__content {
	max-width: 680px;
	margin-bottom: 30px;
}

.rbc-hero__title {
	margin: 0 0 14px;
	color: #fff;
	font-size: clamp(1.9rem, 4.4vw, 3.1rem);
	font-weight: 800;
	line-height: 1.1;
}

.rbc-hero__lead {
	margin: 0;
	font-size: clamp(1rem, 1.6vw, 1.14rem);
	color: rgba(255, 255, 255, .85);
}

.rbc-hero__quick {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	margin-top: 22px;
	font-size: .88rem;
	color: rgba(255, 255, 255, .7);
}

.rbc-hero__quick a {
	padding: 6px 14px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 999px;
	color: #fff;
	text-decoration: none;
	transition: var(--rbc-transition);
}

.rbc-hero__quick a:hover {
	background: #fff;
	border-color: #fff;
	color: var(--rbc-red);
}

/* Category tiles */
/* Four across at desktop, so the eight tiles form two even rows. auto-fit was
   packing five onto the first row and stranding three on the second. */
.rbc-cats {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1000px) {
	.rbc-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

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

@media (max-width: 420px) {
	.rbc-cats { grid-template-columns: 1fr; }
}

.rbc-cat {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	text-decoration: none;
	transition: var(--rbc-transition);
}

.rbc-cat__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: rgba(176, 28, 40, .08);
	color: var(--rbc-red);
	transition: var(--rbc-transition);
}

.rbc-cat__icon .rbc-icon {
	width: 22px;
	height: 22px;
}

.rbc-cat:hover .rbc-cat__icon {
	background: var(--rbc-red);
	color: #fff;
}

.rbc-cat__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.rbc-cat:hover {
	border-color: var(--rbc-red);
	transform: translateY(-3px);
	box-shadow: var(--rbc-shadow);
}

.rbc-cat__label {
	font-weight: 700;
	color: var(--rbc-ink);
}

.rbc-cat__count {
	font-size: .87rem;
	color: var(--rbc-muted);
}

/* Stats card */
.rbc-stats-card {
	display: grid;
	gap: 1px;
	grid-template-columns: 1fr 1fr;
	background: var(--rbc-line);
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	overflow: hidden;
}

.rbc-stats-card__item {
	padding: 26px 22px;
	background: #fff;
	text-align: center;
}

.rbc-stats-card__num {
	display: block;
	font-size: clamp(1.7rem, 3.2vw, 2.3rem);
	font-weight: 800;
	color: var(--rbc-red);
	line-height: 1.1;
}

.rbc-stats-card__label {
	font-size: .86rem;
	color: var(--rbc-muted);
}

/* =========================================================================
   RESULTS PAGES
   ====================================================================== */
.rbc-results-head {
	padding-block: clamp(28px, 4vw, 44px);
	background: var(--rbc-bg-soft);
	border-bottom: 1px solid var(--rbc-line);
}

.rbc-results__title {
	margin: 0 0 6px;
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	font-weight: 800;
}

.rbc-results__count {
	margin: 0 0 22px;
	color: var(--rbc-muted);
}

.rbc-results__intro {
	font-size: .96rem;
	line-height: 1.65;
}

/* =========================================================================
   FOOTER
   ====================================================================== */
.rbc-footer {
	margin-top: 0;
	background: var(--rbc-ink);
	color: rgba(255, 255, 255, .72);
}

.rbc-footer__grid {
	display: grid;
	gap: 36px;
	grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
	padding-block: clamp(44px, 6vw, 64px);
}

.rbc-footer__col--brand {
	grid-column: span 1;
	max-width: 330px;
}

/* The mark is close to square, so it needs more height than a wordmark would
   to carry the same visual weight in the footer column. Painted flat white:
   the dark navy behind it swallows the logo's own charcoal lettering. */
.rbc-footer__logo {
	max-height: 76px;
	max-width: 100%;
	width: auto;
	height: auto;
	margin-bottom: 16px;
	filter: brightness(0) invert(1);
	opacity: .95;
}

.rbc-footer__brandname {
	margin: 0 0 14px;
	font-size: 1.25rem;
	font-weight: 800;
	color: #fff;
}

.rbc-footer__about {
	margin: 0 0 18px;
	font-size: .9rem;
	line-height: 1.65;
}

.rbc-footer__title {
	margin: 0 0 16px;
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
}

.rbc-footer__links,
.rbc-footer__contact,
.rbc-social {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rbc-footer__links li + li,
.rbc-footer__contact li + li {
	margin-top: 10px;
}

.rbc-footer__links a,
.rbc-footer__contact a {
	color: rgba(255, 255, 255, .72);
	font-size: .92rem;
	text-decoration: none;
	transition: var(--rbc-transition);
}

.rbc-footer__links a:hover,
.rbc-footer__contact a:hover {
	color: #fff;
}

.rbc-footer__contact li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: .92rem;
}

.rbc-footer__contact svg {
	flex-shrink: 0;
	width: 17px;
	height: 17px;
	margin-top: 2px;
	opacity: .6;
}

.rbc-social {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.rbc-social a {
	display: block;
	padding: 7px 14px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	color: rgba(255, 255, 255, .8);
	font-size: .82rem;
	text-decoration: none;
	transition: var(--rbc-transition);
}

.rbc-social a:hover {
	background: #fff;
	border-color: #fff;
	color: var(--rbc-ink);
}

.rbc-footer__bar {
	border-top: 1px solid rgba(255, 255, 255, .12);
}

.rbc-footer__bar-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	padding-block: 20px;
	font-size: .85rem;
}

.rbc-footer__bar-inner p {
	margin: 0;
}

.rbc-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rbc-footer__legal a {
	color: rgba(255, 255, 255, .72);
	text-decoration: none;
}

.rbc-footer__legal a:hover {
	color: #fff;
}

/* =========================================================================
   ICON SIZING
   An inline SVG with only a viewBox has no intrinsic size and expands to fill
   its parent. Every icon gets a hard default here; specific contexts override.
   ====================================================================== */
.rbc-icon {
	flex: 0 0 auto;
	width: 1.15em;
	height: 1.15em;
	vertical-align: -.16em;
}

.rbc-agent__contact .rbc-icon,
.rbc-footer__contact .rbc-icon,
.rbc-topbar__contact .rbc-icon,
.rbc-listing__meta .rbc-icon,
.rbc-card__location .rbc-icon,
.rbc-card__spec .rbc-icon,
.rbc-checklist .rbc-icon,
.rbc-pricecard__list .rbc-icon,
.rbc-btn .rbc-icon {
	width: 17px;
	height: 17px;
}

.rbc-service__icon .rbc-icon {
	width: 23px;
	height: 23px;
}

/* =========================================================================
   SINGLE LISTING — refinements
   ====================================================================== */
.rbc-listing__header {
	padding-block: 26px 4px;
}

.rbc-listing__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 22px;
}

.rbc-listing__location {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: .97rem;
	color: var(--rbc-muted);
}

.rbc-listing__price {
	display: inline-block;
	padding: 5px 16px;
	border-radius: 999px;
	background: rgba(176, 28, 40, .08);
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	font-weight: 800;
	color: var(--rbc-red);
	line-height: 1.35;
}

/* The price before a reduction. Smaller and muted so the current price still
   reads first, and never on a line of its own — the pair is one statement. */
.rbc-price__old {
	margin-inline-end: 8px;
	font-size: .74em;
	font-weight: 600;
	color: var(--rbc-muted);
	text-decoration-thickness: 1.5px;
	white-space: nowrap;
}

/* Specs — bordered cells instead of a background showing through the gaps,
   which left a grey block whenever the last row was not full. */
/* Flex rather than grid so a partly-filled last row stretches to the full width
   instead of leaving dead cells — listings carry anywhere from 3 to 12 specs. */
.rbc-specs {
	display: flex;
	flex-wrap: wrap;
	margin: 30px 0;
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	overflow: hidden;
}

.rbc-specs__item {
	flex: 1 1 158px;
	padding: 15px 18px;
	background: #fff;
	box-shadow:
		1px 0 0 var(--rbc-line),
		0 1px 0 var(--rbc-line);
}

.rbc-specs__label {
	display: block;
	margin-bottom: 3px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--rbc-muted);
}

.rbc-specs__value {
	font-size: 1rem;
	font-weight: 700;
	color: var(--rbc-ink);
}


/* Agent panel */
.rbc-agent__contact a {
	justify-content: flex-start;
	gap: 10px;
	padding: 12px 16px;
	font-size: .95rem;
}

.rbc-agent__photo {
	border: 3px solid var(--rbc-bg-soft);
}

/* =========================================================================
   CONTACT FORM 7
   The plugin ships almost no styling; without this the form inherits nothing
   and renders as centred, full-bleed labels.
   ====================================================================== */
.wpcf7 {
	margin-top: 18px;
	text-align: start;
}

.wpcf7 p {
	margin: 0 0 14px;
}

.wpcf7 label {
	display: block;
	margin-bottom: 6px;
	font-size: .82rem;
	font-weight: 600;
	text-align: start;
	color: var(--rbc-body);
	line-height: 1.4;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
	display: block;
	width: 100%;
	padding: 11px 13px;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
	background: #fff;
	color: var(--rbc-ink);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.45;
	transition: var(--rbc-transition);
}

.wpcf7 textarea {
	min-height: 128px;
	resize: vertical;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	border-color: var(--rbc-red);
	outline: none;
	box-shadow: 0 0 0 3px rgba(176, 28, 40, .12);
}

.wpcf7 input[type="submit"] {
	width: 100%;
	padding: 13px 24px;
	border: 2px solid var(--rbc-red);
	border-radius: 999px;
	background: var(--rbc-red);
	color: #fff;
	font-family: inherit;
	font-size: .96rem;
	font-weight: 700;
	cursor: pointer;
	transition: var(--rbc-transition);
}

.wpcf7 input[type="submit"]:hover {
	background: var(--rbc-red-dark);
	border-color: var(--rbc-red-dark);
	box-shadow: 0 8px 20px rgba(176, 28, 40, .28);
}

.wpcf7 .wpcf7-not-valid-tip {
	margin-top: 5px;
	font-size: .82rem;
	color: var(--rbc-red);
}

.wpcf7 .wpcf7-response-output {
	margin: 14px 0 0;
	padding: 11px 14px;
	border-radius: var(--rbc-radius-sm);
	border-width: 1px;
	font-size: .89rem;
}

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

.rbc-panel__form-title {
	margin: 0 0 4px;
	font-size: 1.02rem;
	font-weight: 700;
}

.rbc-panel__form-note {
	margin: 0 0 6px;
	font-size: .87rem;
	color: var(--rbc-muted);
}

/* =========================================================================
   LISTING CONTENT
   ====================================================================== */
.rbc-listing__main .entry-content {
	font-size: 1rem;
	line-height: 1.72;
}

.rbc-listing__main .entry-content h2 {
	margin-top: 32px;
	font-size: 1.3rem;
}

.rbc-listing__main .entry-content img {
	max-width: 100%;
	height: auto;
	border-radius: var(--rbc-radius-sm);
}

.rbc-listing__section-title {
	margin: 34px 0 14px;
	font-size: 1.25rem;
	font-weight: 800;
}

/* -------------------------------------------------------------------------
   MAP

   The frame keeps its height whether it holds the placeholder or the iframe,
   so swapping one for the other does not shift the rest of the page.

   `is-auto` means the script will load the map on its own as it scrolls into
   view. The button underneath it is then dead weight, and would only flash on
   screen for the instant before the tiles arrive, so it is hidden and a
   loading line takes its place.
   ---------------------------------------------------------------------- */
.rbc-map__frame {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 9;
	max-height: 420px;
	overflow: hidden;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	background:
		repeating-linear-gradient(45deg, var(--rbc-bg-soft) 0 12px, #fff 12px 24px);
}

.rbc-map__frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.rbc-map__placeholder {
	max-width: 420px;
	padding: 22px;
	text-align: center;
}

.rbc-map__address {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin: 0 0 14px;
	font-weight: 700;
	color: var(--rbc-ink);
}

.rbc-map__address .rbc-icon {
	color: var(--rbc-red);
}

.rbc-map__note {
	margin: 14px 0 0;
	font-size: .82rem;
	line-height: 1.5;
	color: var(--rbc-muted);
}

.rbc-map__frame.is-auto .rbc-map__placeholder .rbc-btn,
.rbc-map__frame.is-auto .rbc-map__note {
	display: none;
}

.rbc-map__frame.is-auto .rbc-map__placeholder::after {
	/* Escaped, not literal: the stylesheet declares no @charset of its own. */
	content: 'Se \00EE ncarc\0103  harta\2026';
	font-size: .82rem;
	color: var(--rbc-muted);
}

/* The address stays under the map instead of inside the placeholder, so the
   street — and the reminder that a zone-level pin is only approximate — is
   still readable once the tiles have covered the placeholder up. */
.rbc-map__caption {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 7px;
	margin: 12px 0 0;
	font-size: .95rem;
	color: var(--rbc-ink);
}

.rbc-map__caption .rbc-icon {
	position: relative;
	inset-block-start: 2px;
	color: var(--rbc-red);
	flex: none;
}

.rbc-map__caption-address {
	font-weight: 700;
}

.rbc-map__caption-note {
	font-size: .88rem;
	font-weight: 400;
	color: var(--rbc-muted);
}

.rbc-map__link {
	margin: 6px 0 0;
	font-size: .92rem;
}

.rbc-map__link-note {
	color: var(--rbc-muted);
}

/* -------------------------------------------------------------------------
   CREDIT CALCULATOR
   ---------------------------------------------------------------------- */
.rbc-loan__grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin-bottom: 18px;
}

/* The .rbc-field rules that shape the search bar's controls live in the search
   section and already cover these inputs. */
.rbc-loan__result {
	padding: 20px 22px;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	background: var(--rbc-bg-soft);
}

.rbc-loan__monthly {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
	margin: 0 0 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--rbc-line);
}

.rbc-loan__monthly-label {
	font-weight: 700;
	color: var(--rbc-body);
}

.rbc-loan__monthly strong {
	font-size: clamp(1.5rem, 3.4vw, 2rem);
	font-weight: 800;
	color: var(--rbc-red);
	line-height: 1.1;
}

.rbc-loan__breakdown {
	display: grid;
	gap: 10px 24px;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin: 0;
}

.rbc-loan__breakdown div {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.rbc-loan__breakdown dt {
	font-size: .8rem;
	color: var(--rbc-muted);
}

.rbc-loan__breakdown dd {
	margin: 0;
	font-weight: 700;
	color: var(--rbc-ink);
}

.rbc-loan__note {
	margin: 12px 0 0;
	font-size: .82rem;
	line-height: 1.6;
	color: var(--rbc-muted);
}

.rbc-features {
	display: grid;
	gap: 8px 22px;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.rbc-features li {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-size: .94rem;
}

.rbc-features .rbc-icon {
	width: 17px;
	height: 17px;
	margin-top: 3px;
	color: #1d6a4f;
}

/* =========================================================================
   TOP BAR — red gradient, service links
   ====================================================================== */
.rbc-topbar {
	background: linear-gradient(100deg, var(--rbc-ink) 0%, var(--rbc-red-dark) 58%, var(--rbc-red) 100%);
	color: rgba(255, 255, 255, .88);
	font-size: .84rem;
}

.rbc-topbar__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 6px;
}

.rbc-topbar__links a {
	padding: 4px 10px;
	border-radius: 999px;
	color: rgba(255, 255, 255, .9);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: var(--rbc-transition);
}

.rbc-topbar__links a:hover,
.rbc-topbar__links a:focus-visible {
	background: rgba(255, 255, 255, .16);
	color: #fff;
}

.rbc-topbar__contact a {
	color: #fff;
}

.rbc-topbar__contact a:hover {
	color: rgba(255, 255, 255, .78);
}

@media (max-width: 860px) {
	.rbc-topbar__links {
		display: none;
	}
}

/* =========================================================================
   SINGLE LISTING — page rhythm
   `main` used to carry .rbc-section, whose clamp(48px, 7vw, 88px) put ~88px of
   dead space between the header and the property title.
   ====================================================================== */
.rbc-listing {
	padding-block: 0 clamp(40px, 6vw, 72px);
}

.rbc-listing .rbc-listing__header {
	padding-block: clamp(18px, 2.4vw, 28px) 4px;
}

/* Homepage rhythm: the hero already has generous padding of its own, so the
   first section under it does not need a full gap as well. */
.rbc-hero + .rbc-section {
	padding-block-start: clamp(30px, 3.4vw, 44px);
}

/* Adjacent soft/plain sections would otherwise double their padding at the seam. */
.rbc-section + .rbc-section {
	padding-block-start: clamp(30px, 3.6vw, 48px);
}

.rbc-cta-band + .rbc-footer,
.rbc-section + .rbc-cta-band {
	margin-block-start: 0;
}

/* =========================================================================
   GALLERY — hero + short strip
   ====================================================================== */
.rbc-gallery__main {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: var(--rbc-radius);
	background: var(--rbc-bg-soft);
	cursor: zoom-in;
	overflow: hidden;
	line-height: 0;
}

.rbc-gallery__main img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform .5s cubic-bezier(.4, 0, .2, 1);
}

.rbc-gallery__main:hover img {
	transform: scale(1.03);
}

.rbc-gallery__zoom {
	position: absolute;
	inset-block-end: 14px;
	inset-inline-end: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 15px;
	border-radius: 999px;
	background: rgba(20, 24, 31, .78);
	color: #fff;
	font-size: .85rem;
	font-weight: 600;
	line-height: 1;
	backdrop-filter: blur(6px);
}

.rbc-gallery__zoom svg {
	width: 16px;
	height: 16px;
}

.rbc-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
	margin-top: 8px;
}

.rbc-gallery__thumbs button {
	position: relative;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: none;
	cursor: pointer;
	overflow: hidden;
	line-height: 0;
	transition: var(--rbc-transition);
}

.rbc-gallery__thumbs button:hover {
	transform: translateY(-2px);
}

.rbc-gallery__thumbs img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.rbc-gallery__more {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(20, 24, 31, .66);
	color: #fff;
	font-size: 1.02rem;
	font-weight: 800;
	line-height: 1;
	backdrop-filter: blur(2px);
}

/* =========================================================================
   LIGHTBOX
   ====================================================================== */
body.rbc-no-scroll {
	overflow: hidden;
}

.rbc-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	grid-template-columns: auto 1fr auto;
	grid-template-rows: auto 1fr auto;
	background: rgba(10, 12, 16, .96);
	backdrop-filter: blur(6px);
}

.rbc-lightbox.is-open {
	display: grid;
}

.rbc-lightbox__bar {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 18px;
}

.rbc-lightbox__counter {
	color: rgba(255, 255, 255, .8);
	font-size: .92rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.rbc-lightbox__close,
.rbc-lightbox__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 50%;
	background: rgba(255, 255, 255, .08);
	color: #fff;
	cursor: pointer;
	transition: var(--rbc-transition);
}

.rbc-lightbox__close:hover,
.rbc-lightbox__nav:hover {
	background: #fff;
	border-color: #fff;
	color: var(--rbc-ink);
}

.rbc-lightbox__close svg,
.rbc-lightbox__nav svg {
	width: 22px;
	height: 22px;
}

.rbc-lightbox__nav {
	align-self: center;
	margin-inline: 14px;
}

.rbc-lightbox__stage {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 0;
	padding: 4px;
}

.rbc-lightbox__stage img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: var(--rbc-radius-sm);
}

.rbc-lightbox__strip {
	grid-column: 1 / -1;
	display: flex;
	gap: 8px;
	padding: 14px 18px;
	overflow-x: auto;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.rbc-lightbox__strip button {
	flex: 0 0 auto;
	width: 84px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 8px;
	background: none;
	cursor: pointer;
	overflow: hidden;
	line-height: 0;
	opacity: .5;
	transition: var(--rbc-transition);
}

.rbc-lightbox__strip button:hover,
.rbc-lightbox__strip button[aria-current="true"] {
	opacity: 1;
	border-color: var(--rbc-red-light);
}

.rbc-lightbox__strip img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

@media (max-width: 700px) {
	.rbc-lightbox__nav {
		display: none; /* swipe instead — the arrows crowd a phone screen */
	}

	.rbc-lightbox {
		grid-template-columns: 1fr;
	}

	.rbc-lightbox__strip button {
		width: 64px;
	}
}

/* =========================================================================
   MOBILE MENU
   The burger inherited Kadence's default button palette, which rendered it as
   a blue block. These rules pin every state.
   ====================================================================== */
.rbc-header .rbc-burger,
.rbc-header .rbc-burger:hover,
.rbc-header .rbc-burger:focus,
.rbc-header .rbc-burger:active,
.rbc-header .rbc-burger[aria-expanded="true"] {
	background: transparent;
	border: 1px solid var(--rbc-line);
	border-radius: 10px;
	box-shadow: none;
	color: var(--rbc-ink);
}

.rbc-header .rbc-burger:hover {
	border-color: var(--rbc-red);
}

.rbc-header .rbc-burger[aria-expanded="true"] {
	background: var(--rbc-red);
	border-color: var(--rbc-red);
}

.rbc-header .rbc-burger[aria-expanded="true"] span {
	background: #fff;
}

@media (max-width: 1100px) {
	.rbc-navbar__inner {
		min-height: 66px;
	}

	.rbc-logo img {
		width: min(var(--rbc-logo-width, 150px), 132px);
		max-height: none;
	}

	.rbc-nav {
		padding: 8px 10px 16px;
		border-radius: 0 0 var(--rbc-radius) var(--rbc-radius);
	}

	.rbc-menu > li + li {
		border-top: 1px solid var(--rbc-line);
	}

	.rbc-menu > li > a {
		padding: 14px 12px;
		font-size: 1rem;
		font-weight: 700;
	}

	.rbc-menu .sub-menu {
		margin: 0 0 8px 12px;
		padding: 0 0 0 10px;
		border-left: 2px solid var(--rbc-red);
	}

	.rbc-menu .sub-menu a {
		padding: 10px 12px;
		font-size: .94rem;
		font-weight: 500;
		color: var(--rbc-body);
	}

	.rbc-nav__actions {
		margin-top: 14px;
		padding-top: 4px;
	}
}

/* =========================================================================
   MANAGEMENT BANNER — above the fold, desktop and mobile
   ====================================================================== */
.rbc-mgmt-banner {
	background: linear-gradient(100deg, var(--rbc-red-dark) 0%, var(--rbc-red) 100%);
	color: #fff;
}

.rbc-mgmt-banner__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	padding-block: 14px;
}

.rbc-mgmt-banner__text {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font-size: .98rem;
	line-height: 1.45;
}

.rbc-mgmt-banner__text strong {
	font-weight: 800;
}

.rbc-mgmt-banner__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: rgba(255, 255, 255, .16);
}

.rbc-mgmt-banner__icon .rbc-icon {
	width: 20px;
	height: 20px;
}

.rbc-mgmt-banner .rbc-btn {
	flex: 0 0 auto;
	padding: 11px 22px;
	font-size: .92rem;
}

@media (max-width: 700px) {
	.rbc-mgmt-banner__inner {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
		padding-block: 16px;
	}

	.rbc-mgmt-banner__text {
		flex-direction: column;
		gap: 8px;
		font-size: .94rem;
	}

	.rbc-mgmt-banner .rbc-btn {
		width: 100%;
	}
}

/* =========================================================================
   KADENCE OVERRIDES
   The child theme supplies its own header, footer and page headings, so the
   parent's equivalents are suppressed rather than styled around.
   ====================================================================== */
.entry-hero,
.page-hero-section,
#colophon,
#masthead,
.site-header,
.site-footer,
.entry-hero-container-inner {
	display: none !important;
}

.content-area,
.site-main,
#primary {
	margin: 0;
	padding: 0;
}

/* =========================================================================
   PAGE HEADER
   ====================================================================== */
.rbc-pagehead {
	padding-block: clamp(22px, 3vw, 36px);
	background: var(--rbc-bg-soft);
	border-bottom: 1px solid var(--rbc-line);
}

.rbc-pagehead__title {
	margin: 0;
	font-size: clamp(1.5rem, 3vw, 2.15rem);
	font-weight: 800;
}

.rbc-pagehead__sub {
	margin: 8px 0 0;
	max-width: 62ch;
	color: var(--rbc-muted);
}

.rbc-crumbs {
	margin-bottom: 10px;
	font-size: .84rem;
	color: var(--rbc-muted);
}

.rbc-crumbs a {
	color: var(--rbc-muted);
	text-decoration: none;
}

.rbc-crumbs a:hover {
	color: var(--rbc-red);
}

/* =========================================================================
   PAGE / PROSE
   ====================================================================== */
.rbc-page {
	padding-block: clamp(30px, 4vw, 52px);
}

.rbc-shell--narrow {
	max-width: 820px;
}

.rbc-prose {
	max-width: 78ch;
	font-size: 1rem;
	line-height: 1.72;
	color: var(--rbc-body);
}

.rbc-prose > * + * {
	margin-top: 1.05em;
}

.rbc-prose h2 {
	margin-top: 1.9em;
	font-size: clamp(1.25rem, 2.2vw, 1.6rem);
}

.rbc-prose h3 {
	margin-top: 1.6em;
	font-size: 1.15rem;
}

.rbc-prose a {
	color: var(--rbc-red);
	text-decoration: underline;
	text-underline-offset: .18em;
}

.rbc-prose a:hover {
	color: var(--rbc-red-dark);
}

.rbc-prose img {
	max-width: 100%;
	height: auto;
	border-radius: var(--rbc-radius-sm);
}

.rbc-prose ul,
.rbc-prose ol {
	padding-inline-start: 1.3em;
}

.rbc-prose li + li {
	margin-top: .4em;
}

.rbc-prose blockquote {
	margin-inline: 0;
	padding: 4px 0 4px 20px;
	border-inline-start: 3px solid var(--rbc-red);
	color: var(--rbc-ink);
	font-style: italic;
}

.rbc-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: .94rem;
}

.rbc-prose th,
.rbc-prose td {
	padding: 10px 12px;
	border: 1px solid var(--rbc-line);
	text-align: start;
}

.rbc-prose th {
	background: var(--rbc-bg-soft);
	font-weight: 700;
	color: var(--rbc-ink);
}

/* Tables and wide embeds must scroll inside the column, not the page. */
.rbc-prose > table,
.rbc-prose > .wp-block-table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
}

/* Legacy pages (the notary calculator, partner lists) contain hand-written
   forms with no classes, so style the raw elements inside prose. */
.rbc-prose input[type="text"],
.rbc-prose input[type="number"],
.rbc-prose input[type="email"],
.rbc-prose input[type="tel"],
.rbc-prose select {
	max-width: 100%;
	padding: 9px 12px;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius-sm);
	background: #fff;
	font-family: inherit;
	font-size: 16px;
	color: var(--rbc-ink);
}

.rbc-prose input:focus,
.rbc-prose select:focus {
	border-color: var(--rbc-red);
	outline: none;
	box-shadow: 0 0 0 3px rgba(176, 28, 40, .12);
}

.rbc-prose input[type="button"],
.rbc-prose input[type="submit"],
.rbc-prose button {
	padding: 12px 26px;
	border: 2px solid var(--rbc-red);
	border-radius: 999px;
	background: var(--rbc-red);
	color: #fff;
	font-family: inherit;
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	transition: var(--rbc-transition);
}

.rbc-prose input[type="button"]:hover,
.rbc-prose input[type="submit"]:hover,
.rbc-prose button:hover {
	background: var(--rbc-red-dark);
	border-color: var(--rbc-red-dark);
}

.rbc-prose input[type="radio"],
.rbc-prose input[type="checkbox"] {
	margin-inline-end: 6px;
	accent-color: var(--rbc-red);
}

/* =========================================================================
   BLOG
   ====================================================================== */
.rbc-card__kicker {
	margin: 0 0 8px;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--rbc-muted);
}

.rbc-card__excerpt {
	margin: 0 0 14px;
	font-size: .93rem;
	line-height: 1.6;
}

.rbc-card__more {
	margin: auto 0 0;
}

.rbc-card__more a {
	color: var(--rbc-red);
	font-size: .9rem;
	font-weight: 700;
	text-decoration: none;
}

.rbc-card__more a:hover {
	text-decoration: underline;
}

.rbc-post__head {
	margin-bottom: 22px;
}

.rbc-post__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 10px;
	font-size: .86rem;
	color: var(--rbc-muted);
}

.rbc-post__meta a {
	color: var(--rbc-red);
	text-decoration: none;
	font-weight: 600;
}

.rbc-post__title {
	margin: 0;
	font-size: clamp(1.6rem, 3.4vw, 2.4rem);
	font-weight: 800;
	line-height: 1.15;
}

.rbc-post__cover {
	margin: 0 0 28px;
}

.rbc-post__cover img {
	width: 100%;
	border-radius: var(--rbc-radius);
}

.rbc-postnav {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	margin-top: 44px;
	padding-top: 26px;
	border-top: 1px solid var(--rbc-line);
}

.rbc-postnav a {
	display: block;
	padding: 16px 18px;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	text-decoration: none;
	transition: var(--rbc-transition);
}

.rbc-postnav a:hover {
	border-color: var(--rbc-red);
}

.rbc-postnav span {
	display: block;
	margin-bottom: 4px;
	font-size: .78rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--rbc-muted);
}

.rbc-postnav strong {
	color: var(--rbc-ink);
	font-size: .97rem;
	line-height: 1.4;
}

.rbc-postnav--next {
	text-align: end;
}

/* =========================================================================
   TEAM
   ====================================================================== */
.rbc-team__heading {
	margin: 38px 0 18px;
	font-size: 1.3rem;
	font-weight: 800;
}

.rbc-team__heading:first-child {
	margin-top: 0;
}

.rbc-team {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}

.rbc-person {
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	overflow: hidden;
	transition: var(--rbc-transition);
}

.rbc-person:hover {
	border-color: transparent;
	box-shadow: var(--rbc-shadow-lg);
	transform: translateY(-3px);
}

.rbc-person__photo {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	background: var(--rbc-bg-soft);
	overflow: hidden;
}

.rbc-person__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rbc-person__initials {
	font-size: 2.6rem;
	font-weight: 800;
	color: var(--rbc-line);
}

.rbc-person__body {
	padding: 16px 18px 18px;
}

.rbc-person__link {
	display: block;
	line-height: 0;
}

.rbc-person__name {
	margin: 0 0 3px;
	font-size: 1.04rem;
	font-weight: 700;
}

.rbc-person__name a {
	color: inherit;
	text-decoration: none;
}

.rbc-person__name a:hover {
	color: var(--rbc-red);
}

/* -------------------------------------------------------------------------
   AGENT PAGE
   ---------------------------------------------------------------------- */
.rbc-agentpage {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 28px;
	align-items: start;
	margin-bottom: 10px;
}

.rbc-agentpage__photo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	background: var(--rbc-bg-soft);
}

.rbc-agentpage__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* The sidebar version stacks its links full-width inside a narrow panel; here
   there is a whole column, so they sit side by side and stay button-sized. */
.rbc-agentpage__contact {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 20px;
}

.rbc-agentpage__contact a {
	flex: 0 0 auto;
}

.rbc-agentpage__bio {
	max-width: 68ch;
}

/* The count sits on the same line as the heading but must not compete with
   it, so it drops to body weight and the muted colour. */
.rbc-agentpage__count {
	margin-inline-start: 10px;
	font-size: .95rem;
	font-weight: 500;
	color: var(--rbc-muted);
}

@media (max-width: 720px) {
	.rbc-agentpage {
		grid-template-columns: 1fr;
	}

	.rbc-agentpage__photo {
		max-width: 200px;
	}
}

.rbc-person__role {
	margin: 0 0 12px;
	font-size: .87rem;
	color: var(--rbc-muted);
}

.rbc-person__links {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.rbc-person__links a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .9rem;
	font-weight: 600;
	color: var(--rbc-ink);
	text-decoration: none;
}

.rbc-person__links a:hover {
	color: var(--rbc-red);
}

.rbc-person__links .rbc-icon {
	width: 16px;
	height: 16px;
	color: var(--rbc-muted);
}

@media (max-width: 640px) {
	.rbc-topbar__inner {
		justify-content: center;
	}
}

/* =========================================================================
   CONTENT SHEET
   Editorial pages sit on a white card against the soft page background and are
   centred, rather than running flush to the left of a 1240px column.
   ====================================================================== */
.rbc-page--boxed {
	background: var(--rbc-bg-soft);
}

.rbc-sheet {
	max-width: 920px;
	margin-inline: auto;
	padding: clamp(24px, 4vw, 52px);
	background: #fff;
	border: 1px solid var(--rbc-line);
	border-radius: var(--rbc-radius);
	box-shadow: var(--rbc-shadow);
}

/* Inside the sheet the measure is already constrained, so let prose fill it. */
.rbc-sheet .rbc-prose {
	max-width: none;
}

.rbc-sheet .rbc-prose > :first-child {
	margin-top: 0;
}

.rbc-sheet .rbc-prose > :last-child {
	margin-bottom: 0;
}

/* Legacy pages open with their own <h1>/<h2>; give it the same weight as a
   page heading so it does not read as body copy. */
.rbc-sheet .rbc-prose > h1:first-child,
.rbc-sheet .rbc-prose > h2:first-child {
	margin-top: 0;
	margin-bottom: .7em;
	font-size: clamp(1.5rem, 3vw, 2.05rem);
	font-weight: 800;
}

.rbc-post .rbc-post__head,
.rbc-post .rbc-post__cover {
	max-width: 920px;
	margin-inline: auto;
}

.rbc-post .rbc-post__head {
	padding-top: 6px;
}

.rbc-post .rbc-postnav {
	max-width: 920px;
	margin-inline: auto;
}

/* The notary calculator is a hand-built form: label and field sit as inline
   siblings with no wrapper, so give the rows some rhythm. */
.rbc-prose label {
	display: inline-block;
	margin-block: 4px;
}

.rbc-prose br + input,
.rbc-prose input + br {
	margin-block: 4px;
}

/* Action links inside legacy markup — the notary calculator ships
   <a class="button_calculator" href="javascript:void(0);">, which otherwise
   renders as an underlined text link. */
.rbc-prose .button_calculator,
.rbc-prose a[href^="javascript:"],
.rbc-prose a[href="#"],
.rbc-prose a[onclick] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 190px;
	margin-top: 8px;
	padding: 14px 30px;
	border: 2px solid var(--rbc-red);
	border-radius: 999px;
	background: var(--rbc-red);
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: var(--rbc-transition);
}

.rbc-prose .button_calculator:hover,
.rbc-prose a[href^="javascript:"]:hover,
.rbc-prose a[href="#"]:hover,
.rbc-prose a[onclick]:hover {
	background: var(--rbc-red-dark);
	border-color: var(--rbc-red-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(176, 28, 40, .28);
}

/* =========================================================================
   HEADER QUICK ACTIONS (mobile)
   ====================================================================== */
.rbc-navbar__quick {
	display: flex;
	align-items: center;
	gap: 8px;
}

.rbc-iconbtn {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--rbc-line);
	border-radius: 10px;
	background: #fff;
	color: var(--rbc-ink);
	text-decoration: none;
	transition: var(--rbc-transition);
}

.rbc-iconbtn:hover {
	border-color: var(--rbc-red);
	color: var(--rbc-red);
}

.rbc-iconbtn--accent {
	background: var(--rbc-red);
	border-color: var(--rbc-red);
	color: #fff;
}

.rbc-iconbtn--accent:hover {
	background: var(--rbc-red-dark);
	border-color: var(--rbc-red-dark);
	color: #fff;
}

.rbc-iconbtn .rbc-icon,
.rbc-iconbtn svg {
	width: 20px;
	height: 20px;
}

@media (max-width: 1100px) {
	/* The desktop nav is collapsed here, so surface search and call directly. */
	.rbc-iconbtn {
		display: inline-flex;
	}
}

/* =========================================================================
   SOCIALSNAP
   The plugin lays its icon list out with flex but no wrapping, so on narrow
   containers the icons overflow instead of moving to a second row.
   ====================================================================== */
#ss-floating-bar .ss-social-icons-container,
#ss-share-hub .ss-social-icons-container,
#ss-sticky-bar .ss-social-icons-container,
.ss-inline-share-wrapper .ss-social-icons-container,
.ss-on-media-wrapper .ss-social-icons-container {
	margin: 0 !important;
	padding: 0;
	list-style: none;
	flex-wrap: wrap;
}

/* =========================================================================
   MOBILE INPUT ZOOM
   Backstop for any control the rules above do not reach — plugin markup, the
   WordPress search widget, legacy forms. Under 16px, iOS Safari zooms the
   viewport on focus and does not zoom back out.
   ====================================================================== */
@media (max-width: 782px) {
	input[type="text"],
	input[type="search"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="number"],
	input[type="password"],
	input[type="date"],
	select,
	textarea {
		font-size: 16px;
	}
}


/* =========================================================================
   EXPANDABLE TEXT
   Clamped by CSS from first paint, so there is no layout shift. Whether a
   block gets a toggle at all is decided in PHP by character count — see
   rbc_expandable_text(). The toggle is a checkbox and label, so it needs no
   JavaScript and is keyboard operable.
   ====================================================================== */
.rbc-longtext,
.rbc-expandable {
	font-size: .96rem;
	line-height: 1.65;
}

.rbc-expandable__input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
}

.rbc-expandable__body {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: var(--rbc-clamp-lines, 3);
	line-clamp: var(--rbc-clamp-lines, 3);
	overflow: hidden;
}

.rbc-expandable__input:checked ~ .rbc-expandable__body {
	display: block;
	overflow: visible;
	-webkit-line-clamp: unset;
	line-clamp: unset;
}

.rbc-readmore {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	color: var(--rbc-red);
	font-size: .92rem;
	font-weight: 700;
	cursor: pointer;
	user-select: none;
	margin-bottom: 20px;
}

.rbc-readmore::before {
	content: "Citește mai mult";
}

.rbc-expandable__input:checked ~ .rbc-readmore::before {
	content: "Arată mai puțin";
}

.rbc-readmore::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform var(--rbc-transition);
}

.rbc-expandable__input:checked ~ .rbc-readmore::after {
	transform: translateY(1px) rotate(-135deg);
}

.rbc-readmore:hover {
	color: var(--rbc-red-dark);
	text-decoration: underline;
}

/* The checkbox is off-screen, so surface its focus ring on the label. */
.rbc-expandable__input:focus-visible ~ .rbc-readmore {
	outline: 3px solid var(--rbc-red-light);
	outline-offset: 3px;
	border-radius: 4px;
}
