/* Afortis "Residence in Latvia" hub — self-contained styles (namespaced .arh-*). */

.arh {
	--arh-navy: #3a2a62;
	--arh-violet: #523f8a;
	--arh-muted-violet: #9674b5;
	--arh-ink: #262424;
	--arh-sec: #606060;
	--arh-muted: #968f8f;
	--arh-page: #f5f4f9;
	--arh-white: #ffffff;
	--arh-line: rgba(150, 116, 181, 0.3);
	--arh-wrap: 1280px;
	--arh-pad: 50px;
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	color: var(--arh-ink);
	line-height: 1.5;
	box-sizing: border-box;
}
.arh *, .arh *::before, .arh *::after { box-sizing: inherit; }
.arh img { max-width: 100%; }

.arh-wrap { max-width: var(--arh-wrap); margin: 0 auto; padding-left: var(--arh-pad); padding-right: var(--arh-pad); }

/* ---- shared type ---- */
.arh-eyebrow { font-size: 14px; line-height: 1.2; text-transform: uppercase; letter-spacing: .02em; color: var(--arh-muted-violet); margin: 0 0 20px; }
.arh .arh-h2 { font-family: "Arsenal", Georgia, serif; font-weight: 400; font-size: 44px !important; line-height: 1.05; color: var(--arh-ink); margin: 0 0 24px; }
.arh-accent { color: var(--arh-violet); }
.arh-ic { flex: 0 0 auto; }

/* ---- buttons ---- */
.arh-btn-row { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; }
.arh-btn { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; line-height: 1.2; text-decoration: none; padding: 15px 30px; border: 1px solid transparent; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.arh-btn span { display: inline-block; }
.arh-btn-primary { background: var(--arh-navy); color: #fff; }
.arh-btn-primary:hover { background: var(--arh-violet); color: #fff; }
.arh-btn-outline { background: transparent; color: var(--arh-ink); border-color: var(--arh-violet); }
.arh-btn-outline:hover { background: var(--arh-violet); color: #fff; }
.arh-btn:focus-visible { outline: 3px solid var(--arh-muted-violet); outline-offset: 2px; }

/* ================= Hero ================= */
.arh-hero { background: #fff; padding: 40px 0 60px; }
.arh-hero-grid { display: grid; grid-template-columns: 585px 1fr; gap: 50px; align-items: center; }
.arh-hero-media { min-height: 430px; background: linear-gradient(135deg, #d9d2e8, #b7a9d6); background-size: cover; background-position: center; }
.arh-crumbs { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--arh-muted); margin: 0 0 24px; }
.arh-crumbs a { color: var(--arh-muted); text-decoration: none; }
.arh-crumbs a:hover { color: var(--arh-violet); }
.arh-crumbs .arh-ic { width: 12px; height: 12px; }
.arh .arh-hero-h1 { font-family: "Arsenal", Georgia, serif; font-weight: 400; font-size: 52px !important; line-height: 1.02; margin: 0 0 20px; color: var(--arh-ink); }
.arh-hero-intro { font-size: 16px; color: var(--arh-sec); margin: 0 0 30px; max-width: 460px; }

/* ============ Choose Your Program (filter + grid) ============ */
.arh-choose { background: var(--arh-page); padding: 60px 0; }
.arh-filter { position: relative; border-top: 1px solid var(--arh-line); padding-top: 30px; }
.arh-filter-groups { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; }
.arh-fgroup { border: 0; margin: 0; padding: 0; min-inline-size: 0; }
.arh-fgroup-title { font-family: "Arsenal", Georgia, serif; font-weight: 400; font-size: 18px; color: var(--arh-sec); padding: 0; margin: 0 0 16px; }
.arh-check { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; cursor: pointer; font-size: 13px; color: var(--arh-sec); }
.arh-check-input { position: absolute; opacity: 0; width: 0; height: 0; }
.arh-check-box { flex: 0 0 auto; width: 15px; height: 15px; border: 1px solid var(--arh-sec); background: transparent; position: relative; transition: border-color .12s, background-color .12s; }
.arh-check-input:checked + .arh-check-box { border-color: var(--arh-violet); background: var(--arh-violet); }
.arh-check-input:checked + .arh-check-box::after { content: ""; position: absolute; left: 4px; top: 1px; width: 5px; height: 9px; border: solid #fff; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
.arh-check-input:checked ~ .arh-check-label { color: var(--arh-violet); }
.arh-check-input:focus-visible + .arh-check-box { outline: 3px solid var(--arh-muted-violet); outline-offset: 2px; }
.arh-check:hover .arh-check-box { border-color: var(--arh-violet); }

/* mobile-only filter toggle */
.arh-filter-toggle { display: none; align-items: center; gap: 6px; font-size: 13px; color: var(--arh-navy); background: transparent; border: 1px solid var(--arh-violet); padding: 10px 20px; cursor: pointer; margin-bottom: 20px; }
.arh-filter-toggle .arh-ic { width: 16px; height: 16px; }

.arh-filter-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--arh-line); margin-top: 30px; padding-top: 16px; }
.arh-filter-summary { font-size: 14px; color: var(--arh-sec); margin: 0; }
.arh-reset { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--arh-sec); background: transparent; border: 0; cursor: pointer; padding: 5px 0; }
.arh-reset:hover { color: var(--arh-violet); }
.arh-reset .arh-ic { width: 16px; height: 16px; }

.arh-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 10px; margin-top: 20px; }
.arh-card { background: #fff; padding: 40px 30px; display: flex; flex-direction: column; gap: 20px; }
.arh-card[hidden] { display: none; }
.arh-card-head { border-bottom: 1px solid var(--arh-line); padding-bottom: 20px; min-height: 84px; }
.arh .arh-card-title { font-family: "Arsenal", Georgia, serif; font-weight: 400; font-size: 24px !important; line-height: 1.1; color: var(--arh-navy); margin: 0 0 10px; }
.arh-card-desc { font-size: 13px; color: var(--arh-sec); margin: 0; }
.arh-card-body { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.arh-card-meta { display: grid; grid-template-columns: auto auto; gap: 10px 30px; align-items: start; }
.arh-meta { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--arh-sec); }
.arh-meta .arh-ic { color: var(--arh-violet); width: 20px; height: 20px; }
.arh-meta-aud { grid-column: 2; grid-row: 1 / span 2; align-items: flex-start; max-width: 160px; }
.arh-meta-aud .arh-ic { margin-top: 1px; }
.arh-card-link { display: inline-flex; align-items: center; gap: 5px; font-size: 16px; color: var(--arh-violet); text-decoration: none; white-space: nowrap; }
.arh-card-link .arh-ic { width: 16px; height: 16px; }
.arh-card-link:hover { color: var(--arh-navy); text-decoration: underline; }

.arh-empty { text-align: center; background: #fff; padding: 60px 30px; margin-top: 20px; }
.arh .arh-empty-title { font-family: "Arsenal", Georgia, serif; font-weight: 400; font-size: 28px !important; color: var(--arh-navy); margin: 0 0 12px; }
.arh-empty-body { font-size: 15px; color: var(--arh-sec); max-width: 460px; margin: 0 auto 24px; }
.arh-empty .arh-btn-row { justify-content: center; }

/* ============ Select a Program (goal table + quiz CTA) ============ */
.arh-select { background: #fff; padding: 60px 0; }
.arh-select-grid { display: grid; grid-template-columns: 1fr 387px; gap: 60px; align-items: start; }
.arh-select-intro { font-size: 16px; color: var(--arh-sec); margin: 0 0 20px; }
.arh-goals { background: var(--arh-page); padding: 20px 30px; }
.arh-goals-head { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; padding: 20px 0; font-family: "Arsenal", Georgia, serif; font-size: 24px; color: var(--arh-violet); }
.arh-goal-row { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; border-top: 1px solid var(--arh-line); padding: 30px 0; }
.arh-goal-label { font-family: "Arsenal", Georgia, serif; font-size: 18px; line-height: 1.1; color: var(--arh-ink); }
.arh-goal-progs { display: flex; flex-direction: column; gap: 10px; }
/* every recommended programme is a real link -> all violet (design 2743:8922), not just the first row */
.arh-goal-prog { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; color: var(--arh-violet); text-decoration: none; }
.arh-goal-prog:hover span { text-decoration: underline; }
.arh-goal-prog .arh-ic { width: 18px; height: 18px; color: var(--arh-violet); }
.arh-goal-prog:hover { color: var(--arh-violet); }
.arh-select-aside { position: sticky; top: 20px; }
.arh-select-photo { height: 300px; background: linear-gradient(135deg, #d9d2e8, #b7a9d6); background-size: cover; background-position: center; margin-bottom: 20px; }
.arh-select-lead { font-size: 16px; color: var(--arh-sec); margin: 0 0 20px; }

/* ============ Why Clients Choose ============ */
.arh-why { background: var(--arh-page); padding: 60px 0; }
.arh-why-grid { display: grid; grid-template-columns: 420px 1fr; gap: 50px; align-items: start; }
.arh-why-lead { font-size: 16px; color: var(--arh-sec); margin: 0 0 24px; }
.arh-why-photo { height: 240px; background: linear-gradient(135deg, #d9d2e8, #b7a9d6); background-size: cover; background-position: center; margin-bottom: 24px; }
.arh-why-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.arh-why-card { background: #fff; padding: 30px; }
.arh .arh-why-card-title { font-family: "Arsenal", Georgia, serif; font-weight: 400; font-size: 20px !important; color: var(--arh-navy); margin: 0 0 10px; }
.arh-why-card-body { font-size: 14px; color: var(--arh-sec); margin: 0; }

/* ============ FAQ (site-standard: two-column + plus/x toggle, matches .afortis-faq) ============ */
.arh-faq { background: #fff; padding: 60px 0; }
.arh-faq .arh-wrap { display: flex; align-items: flex-start; gap: 40px; }
.arh-faq-head { flex: 0 0 40%; max-width: 40%; }
.arh-faq-head .arh-eyebrow { margin-bottom: 14px; }
.arh-faq-list { flex: 1 1 auto; max-width: 684px; border-top: 1px solid var(--arh-line); }
.arh-faq-item { border-bottom: 1px solid var(--arh-line); }
.arh-faq-q { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; cursor: pointer; list-style: none; padding: 24px 0; font-family: "Arsenal", Georgia, serif; font-weight: 400; font-size: 24px; line-height: 1.1; color: var(--arh-ink); transition: color .15s; }
.arh-faq-q::-webkit-details-marker { display: none; }
.arh-faq-q:hover { color: var(--arh-violet); }
/* plus icon (rotates 45deg -> x when the item opens) */
.arh-faq-q .arh-ic { width: 26px; height: 26px; flex: 0 0 auto; margin-top: 2px; color: var(--arh-violet); transition: transform .2s; }
.arh-faq-item[open] .arh-faq-q .arh-ic { transform: rotate(45deg); }
.arh-faq-item[open] .arh-faq-q { color: var(--arh-violet); }
.arh-faq-a { padding: 0 0 24px; max-width: 640px; }
.arh-faq-a p { font-size: 16px; line-height: 1.4; color: var(--arh-sec); margin: 0; }

/* ============ Form ============ */
.arh-form { background: var(--arh-page); padding: 60px 0; }
.arh-form-intro { font-size: 16px; color: var(--arh-sec); margin: 0 0 30px; max-width: 640px; }
.arh-form-mount { max-width: 760px; }

/* ================= Responsive ================= */
@media (max-width: 1024px) {
	.arh { --arh-pad: 32px; }
	.arh-hero-grid { grid-template-columns: 1fr; }
	.arh-hero-media { min-height: 260px; }
	.arh .arh-hero-h1 { font-size: 40px !important; }
	.arh-select-grid { grid-template-columns: 1fr; }
	.arh-why-grid { grid-template-columns: 1fr; }
	.arh-select-aside { position: static; }
}
@media (max-width: 760px) {
	.arh { --arh-pad: 20px; }
	.arh .arh-h2 { font-size: 32px !important; }
	.arh .arh-hero-h1 { font-size: 34px !important; }
	.arh-eyebrow { margin-bottom: 14px; }
	.arh-hero, .arh-choose, .arh-select, .arh-why, .arh-faq, .arh-form { padding: 40px 0; }
	/* FAQ: stack the two columns on mobile */
	.arh-faq .arh-wrap { flex-direction: column; gap: 20px; }
	.arh-faq-head, .arh-faq-list { flex: 1 1 auto; max-width: 100%; }
	.arh-faq-q { font-size: 20px; }
	.arh-filter-toggle { display: inline-flex; }
	.arh-filter-groups { display: none; grid-template-columns: 1fr; gap: 20px; }
	.arh.arh-filter-open .arh-filter-groups { display: grid; }
	.arh-filter { border-top: 0; padding-top: 0; }
	.arh-grid { grid-template-columns: 1fr; }
	.arh-card-body { flex-direction: column; align-items: flex-start; gap: 16px; }
	.arh-goals-head { gap: 20px; font-size: 18px; }
	.arh-goal-row { gap: 20px; }
	.arh-why-cards { grid-template-columns: 1fr; }
	.arh-goals { padding: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	.arh-btn, .arh-check-box, .arh-faq-q .arh-ic { transition: none; }
}

/* ---- Avada content-top band: the hidden page-title-bar exposes #main's top padding as a
   ~61px lilac strip above the hero. Zero it on the two hub pages. ---- */
.page-id-2155 #main, .page-id-1487 #main { padding-top: 0; }
/* NB: the CTA strip + Reach-Out form are the site's GLOBAL chrome elements ([fusion_global]
   5464/5465 + 5458/5459), rendered by the shortcode. The page body is a BARE [afortis_residence_hub]
   (no wrapping [fusion_builder_container]) — exactly like the licence/bank hubs — so Avada resolves
   those globals to site-width (1331.2px, centred) instead of a 104% full-bleed row. No hub-local
   form-width CSS needed; it now matches every other page's contact section. ---- */
