/* RolliPolli – Kapcsolat szekciók (Elementor) */

.rpct-section {
	--rpct-brand: #da3831;
	--rpct-ink: #055078;
	--rpct-sun: #ffbf2d;
	--rpct-cream: #fdf7ef;
	--rpct-cream-deep: #f8ecdd;
	--rpct-muted: rgba(5, 80, 120, 0.72);
	--rpct-line: rgba(5, 80, 120, 0.12);
	font-family: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
	color: var(--rolli-text, #4f606d); /* általános törzsszöveg (címsorok külön ink) */
	padding: 96px 0;
}

.rpct-section--tight { padding: 48px 0; }
.rpct-hero { background: var(--rpct-cream-deep); }

.rpct-container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 20px;
}

@media (min-width: 640px) { .rpct-container { padding: 0 32px; } }

/* Címsorok */
.rpct-heading {
	font-family: "Fraunces", Georgia, serif;
	font-weight: 600;
	color: #004a6b;
	margin: 0 0 8px;
	font-size: 48px;
	line-height: 1.05;
}
.rpct-heading--xl { font-size: 68px; line-height: 71px; }
.rpct-heading--sm { font-size: 26px; line-height: 1.2; }

@media (max-width: 900px) {
	.rpct-heading--xl { font-size: 42px; line-height: 1.08; }
	.rpct-heading { font-size: 34px; }
	.rpct-section { padding: 64px 0; }
}
/* Mobilon a 34px-es --sm címsor egy hosszú összetett szava (pl.
   „tömegközlekedéssel") az ikon+padding mellett túlcsordul → kisebb méret + szótörés. */
@media (max-width: 640px) {
	.rpct-heading.rpct-heading--sm { font-size: 24px; overflow-wrap: break-word; }
}

.rpct-mark { position: relative; white-space: nowrap; }
.rpct-mark--underline {
	background-image: linear-gradient(to top, var(--rpct-sun) 0, var(--rpct-sun) 0.32em, transparent 0.32em);
	background-repeat: no-repeat;
	padding: 0 0.05em;
}
.rpct-mark--color { color: var(--rpct-brand); }
.rpct-mark--sun { color: var(--rpct-sun); }

.rpct-section p { font-size: 18px; line-height: 29px; margin: 0 0 8px; }
.rpct-lead { font-size: 20px; line-height: 32px; color: var(--rpct-muted); max-width: 46rem; margin-inline: auto; }
.rpct-muted { color: var(--rpct-muted); }

.rpct-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--rpct-line);
	padding: 8px 16px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rpct-brand);
	margin-bottom: 20px;
}

/* Kártyák */
.rpct-card {
	background: #fff;
	border: 1px solid var(--rpct-line);
	border-radius: 28px;
	box-shadow: 0 24px 48px -32px rgba(5, 80, 120, 0.45);
	padding: 32px;
}
@media (min-width: 640px) { .rpct-card { padding: 40px; } }

/* Egy oszlopos verem: explicit minmax(0,1fr), különben az implicit `auto` oszlop a
   kártya min-content-jére (~455px) hízik és túlcsordul a keskeny konténeren (mobil). */
.rpct-stack { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-content: start; }
.rpct-card { min-width: 0; }
.rpct-contact-grid { display: grid; gap: 48px; }
@media (min-width: 1024px) { .rpct-contact-grid { grid-template-columns: 1fr 1.4fr; gap: 64px; } }
/* Az Elementor post-56.css MEDIA-QUERY NÉLKÜL, magas specificitással 2 oszlopot
   erőltet a .rpct-contact-grid-re (1fr 1.4fr) → mobilon/tableten túlcsordul.
   !important-tal kényszerítjük az 1 oszlopot 1024px alatt. minmax(0,1fr), hogy a
   sáv a tartalom min-content-je (kártya-padding) alá is zsugorodhasson (különben
   ~455px marad); + min-width:0 a grid-gyerekeken, hogy tudjanak keskenyedni. */
@media (max-width: 1023px) {
	.rpct-contact-grid { grid-template-columns: minmax(0, 1fr) !important; }
	.rpct-contact-grid > * { min-width: 0; }
	.rpct-stack { min-width: 0; }
}
.rpct-info-value, .rpct-info-value a { overflow-wrap: anywhere; }

/* Ikoncsempe */
.rpct-tile {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	border-radius: 16px;
	background: var(--rpct-cream);
	color: var(--rpct-brand);
}
.rpct-icon { display: inline-flex; }
.rpct-icon svg { width: 20px; height: 20px; fill: currentColor; }
.rpct-icon i { font-size: 20px; }

/* Elérhetőségi sorok */
.rpct-info-rows { display: grid; gap: 20px; margin-top: 24px; }
.rpct-info-row { display: flex; gap: 16px; align-items: flex-start; }
.rpct-info-label {
	font-size: 13px !important;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--rpct-muted);
	margin: 0 0 2px !important;
}
.rpct-info-value { font-weight: 600; margin: 0 !important; }
.rpct-info-value a { color: var(--rpct-ink); text-decoration: none; }
.rpct-info-value a:hover { color: var(--rpct-brand); }

.rpct-socials { display: flex; gap: 12px; margin-top: 24px; }
.rpct-social {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: 1px solid var(--rpct-line);
	color: var(--rpct-ink);
	transition: all 0.2s ease;
}
.rpct-social:hover { background: var(--rpct-brand); color: #fff; border-color: transparent; }

/* Gombok */
.rpct-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: 999px;
	padding: 14px 24px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.rpct-btn--block { display: flex; width: 100%; margin-top: 24px; }
.rpct-btn--primary { background: var(--rpct-brand); color: #fff; box-shadow: 0 10px 24px -8px rgba(218, 56, 49, 0.55); }
.rpct-btn--sun { background: var(--rpct-sun); color: var(--rpct-ink); box-shadow: 0 10px 24px -8px rgba(255, 191, 45, 0.6); }
.rpct-btn--ghost { background: rgba(255, 255, 255, 0.6); border: 1px solid var(--rpct-line); color: var(--rpct-ink); }
.rpct-btn:hover { transform: translateY(-2px); }

/* Megközelítés */
.rpct-card-head { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.rpct-card-head .rpct-heading { margin: 0; }
.rpct-dot-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.rpct-dot-list li { display: flex; gap: 12px; align-items: baseline; font-size: 18px; line-height: 29px; }
.rpct-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--rpct-sun); flex: 0 0 auto; }
.rpct-parking { display: flex; gap: 16px; align-items: flex-start; }
.rpct-parking .rpct-heading { margin-bottom: 4px; }

/* Térkép */
.rpct-map-card { padding: 12px; overflow: hidden; }
.rpct-map-frame { position: relative; border-radius: 20px; overflow: hidden; min-height: 560px; }
/* !important: a post-56.css magas specificitással min-height:560px-et köt a térképre. */
@media (max-width: 767px) { .rpct-map-frame { min-height: 360px !important; } }
.rpct-map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.rpct-map-caption { margin-top: 12px; font-size: 14px !important; color: var(--rpct-muted); text-align: center; }

/* Kártyarács */
.rpct-cards { display: grid; gap: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) { .rpct-cards { grid-template-columns: 1fr !important; } }
.rpct-linkcard { display: flex; flex-direction: column; gap: 12px; }
.rpct-linkcard .rpct-btn--block { margin-top: auto; }

/* Hero */
.rpct-hero-inner { max-width: 56rem; }
.rpct-hero-media { margin-top: 40px; padding: 12px; }
.rpct-hero-media img { display: block; width: 100%; height: auto; border-radius: 20px; }
