/*
Theme Name: Alam Al-Forsa
Theme URI: https://alamalfors.odoo.com/
Author: Alam Al-Forsa
Description: منصة عالم الفرص — قالب ووردبريس للفرص العقارية والتجارية والخدمية. RTL, Arabic-first, built from the official mockup with the brand navy/blue palette taken from alamalfors.odoo.com.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: alamalforas
Tags: rtl-language-support, custom-menu, featured-images, translation-ready, real-estate
*/

/* =========================================================================
   Design tokens — brand palette from alamalfors.odoo.com
   --o-color-1 #1c4c80 (navy)  --o-color-2 #a3d1e6 (light blue)
   --o-color-3 #F6FAFD (light) --o-color-5 #040A10 (near-black)
   ====================================================================== */
:root {
	--c-brand:        #1c4c80; /* primary navy */
	--c-brand-dark:   #143a63; /* darker navy (gradients) */
	--c-brand-deep:   #0f2d4d; /* deepest navy */
	--c-brand-light:  #a3d1e6; /* light blue accents */
	--c-accent:       #d4a94a; /* gold CTA accent */
	--c-accent-ink:   #1b1204; /* text on gold */
	--c-accent-2:     #3f9fcb; /* secondary blue (rent badges) */

	--c-bg:           #f4f7fb; /* cool page background */
	--c-surface:      #ffffff; /* cards / panels */
	--c-surface-2:    #eef3f8; /* subtle panels */
	--c-ink:          #10233a; /* headings */
	--c-ink-soft:     #5a6b7b; /* muted text */
	--c-on-dark:      #eef4f9; /* text on navy */
	--c-on-dark-soft: #b9cad8; /* muted text on navy */
	--c-line:         #dbe4ee; /* borders */

	--radius:      16px;
	--radius-sm:   10px;
	--radius-pill: 999px;
	--shadow:      0 8px 24px rgba(16, 35, 58, 0.08);
	--shadow-lg:   0 20px 60px rgba(16, 35, 58, 0.18);
	--container:   1200px;
	--gap:         24px;
	--font:        'Tajawal', 'Segoe UI', Tahoma, sans-serif;
}

/* =========================================================================
   Base / reset
   ====================================================================== */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.aaf {
	margin: 0;
	direction: rtl;
	text-align: right;
	font-family: var(--font);
	color: var(--c-ink);
	background: var(--c-bg);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

.aaf img { max-width: 100%; height: auto; display: block; }

.aaf a { color: inherit; text-decoration: none; }
.aaf a:hover { color: var(--c-brand); }

.aaf h1, .aaf h2, .aaf h3, .aaf h4 { margin: 0 0 .4em; line-height: 1.25; color: var(--c-ink); }
.aaf p { margin: 0 0 1em; }

.aaf-container {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: 24px;
}

.aaf-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Buttons */
.aaf-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 26px;
	border-radius: var(--radius-sm);
	font-weight: 700;
	font-size: 14.5px;
	border: none;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
	white-space: nowrap;
}
.aaf-btn:hover { transform: translateY(-1px); }
.aaf-btn--accent { background: var(--c-accent); color: var(--c-accent-ink); }
.aaf-btn--accent:hover { color: var(--c-accent-ink); box-shadow: 0 8px 20px rgba(212,169,74,.35); }
.aaf-btn--brand { background: var(--c-brand); color: var(--c-on-dark); }
.aaf-btn--brand:hover { color: var(--c-on-dark); background: var(--c-brand-dark); }
.aaf-btn--ghost { background: transparent; border: 1.5px solid var(--c-brand); color: var(--c-brand); }
.aaf-btn--ghost:hover { background: var(--c-brand); color: #fff; }
.aaf-pill { border-radius: var(--radius-pill) !important; }

.custom-logo-link img {
	max-width:73px;
}

/* Brand logo mark (rotated diamond, from mockup) */
.aaf-logo { display: inline-flex; align-items: center; gap: 12px; }
.aaf-logo__mark {
	width: 40px; height: 40px;
	border-radius: 11px;
	background: var(--c-accent);
	display: flex; align-items: center; justify-content: center;
	transform: rotate(45deg);
	flex-shrink: 0;
}
.aaf-logo__mark i {
	width: 14px; height: 14px;
	border-radius: 3px;
	background: var(--c-brand);
	transform: rotate(-45deg);
	display: block;
}
.aaf-logo__text { display: flex; flex-direction: column; line-height: 1.2; }
.aaf-logo__name { font-size: 21px; font-weight: 800; color: var(--c-on-dark); }
.aaf-logo__sub  { font-size: 10px; color: var(--c-accent); letter-spacing: 1px; font-weight: 500; }

/* =========================================================================
   Header
   ====================================================================== */
.aaf-header {
	background: var(--c-brand);
	position: sticky;
	top: 0;
	z-index: 50;
}
.aaf-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	height: 84px;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: 24px;
}
.aaf-nav__list {
	display: flex;
	align-items: center;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.aaf-nav__list a {
	font-size: 14.5px;
	font-weight: 500;
	color: var(--c-on-dark);
	white-space: nowrap;
}
.aaf-nav__list a:hover,
.aaf-nav__list .current-menu-item > a,
.aaf-nav__list .current_page_item > a {
	color: var(--c-accent);
	font-weight: 700;
}
.aaf-header__cta { flex-shrink: 0; }

/* Mobile nav toggle */
.aaf-burger {
	display: none;
	flex-direction: column;
	gap: 5px;
	width: 26px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 4px 0;
}
.aaf-burger span { height: 2px; border-radius: 2px; background: var(--c-accent); display: block; }

/* =========================================================================
   Hero
   ====================================================================== */
.aaf-hero {
	background: linear-gradient(135deg, var(--c-brand), var(--c-brand-dark));
	padding: 72px 0 120px;
}
.aaf-hero__inner {
	display: grid;
	grid-template-columns: 1fr; /* video full width, text underneath */
	gap: 40px;
}
.aaf-hero__content { text-align: center; }
.aaf-hero__actions {
	margin-top: 24px;
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	justify-content: center;
}
.aaf-hero__eyebrow {
	display: inline-block;
	padding: 7px 16px;
	border-radius: var(--radius-pill);
	background: rgba(163, 209, 230, .16);
	color: var(--c-accent);
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 22px;
}
.aaf .aaf-hero__title { font-size: 52px; font-weight: 800; color: var(--c-on-dark); line-height: 1.18; margin: 0 0 20px; }
.aaf-hero__lead  { font-size: 17px; line-height: 1.9; color: var(--c-on-dark-soft); max-width: 620px; margin-inline: auto; }
.aaf-hero__media {
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 20px;
	overflow: hidden;
	border: 1px solid rgba(238, 244, 249, .18);
	background: repeating-linear-gradient(135deg, #23557f, #23557f 12px, var(--c-brand-dark) 12px, var(--c-brand-dark) 24px);
	display: flex; align-items: center; justify-content: center;
}
.aaf-hero__media span { color: var(--c-on-dark-soft); font-size: 13px; }
.aaf-hero__media img { width: 100%; height: 100%; object-fit: cover; }

/* Search card overlapping hero */
.aaf-search {
	margin-top: -72px;
	position: relative;
	z-index: 2;
}
.aaf-search__card {
	background: var(--c-surface);
	border-radius: 20px;
	box-shadow: var(--shadow-lg);
	padding: 28px 32px;
}
.aaf-search__tabs { display: flex; gap: 8px; margin-bottom: 22px; flex-wrap: wrap; }
.aaf-search__tab {
	padding: 9px 20px;
	border-radius: var(--radius-sm);
	background: transparent;
	color: var(--c-ink-soft);
	font-weight: 700;
	font-size: 14.5px;
	cursor: pointer;
	border: 1px solid var(--c-line);
}
.aaf-search__tab.is-active { background: var(--c-brand); color: var(--c-on-dark); border-color: var(--c-brand); }
.aaf-search__row {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr auto;
	gap: 16px;
	align-items: center;
}
.aaf-search__field {
	border: 1px solid var(--c-line);
	border-radius: var(--radius-sm);
	padding: 12px 16px;
	font-size: 14px;
	color: var(--c-ink);
	background: #fff;
	width: 100%;
	font-family: inherit;
}

/* =========================================================================
   Hero video slider (lazy — off-screen videos load on click)
   ====================================================================== */
.aaf-vslider { position: relative; padding: 0; }
/* The slider variant sizes itself from the viewport so the dots can sit
   below the video instead of on top of its control bar. */
.aaf-hero__media.aaf-vslider {
	aspect-ratio: auto;
	display: block;
	overflow: visible;
	border: none;
	background: none;
}
.aaf-vslider__viewport {
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 20px;
}
.aaf-hero__media.aaf-vslider .aaf-vslider__viewport {
	aspect-ratio: 16 / 9;
	height: auto;
	border: 1px solid rgba(238, 244, 249, .18);
	background: #000;
}
.aaf-vslider__track {
	display: flex;
	height: 100%;
	transition: transform .45s cubic-bezier(.22, .61, .36, 1);
	will-change: transform;
}
.aaf-vslide {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	background: #08182b;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* contain, not cover — show the full frame instead of a cropped zoom */
.aaf-vslide__video { width: 100%; height: 100%; object-fit: contain; display: block; background: #000; }

.aaf-vslider__btn {
	position: absolute;
	top: calc(50% - 11px); /* center on the video, not video + dots row */
	transform: translateY(-50%);
	width: 42px; height: 42px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, .92);
	color: var(--c-brand);
	font-size: 20px;
	cursor: pointer;
	z-index: 3;
	display: flex; align-items: center; justify-content: center;
	transition: background .15s ease, color .15s ease;
}
.aaf-vslider__btn:hover { background: var(--c-accent); color: var(--c-accent-ink); }
.aaf-vslider__btn--prev { right: 12px; } /* RTL: previous sits on the right */
.aaf-vslider__btn--next { left: 12px; }

/* Dots sit under the video so they never cover the player's control bar */
.aaf-vslider__dots {
	margin-top: 14px;
	display: flex; gap: 7px; justify-content: center;
}
.aaf-vslider__dot {
	width: 8px; height: 8px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, .55);
	cursor: pointer;
	padding: 0;
	transition: width .2s ease, background .2s ease;
}
.aaf-vslider__dot.is-active { background: var(--c-accent); width: 22px; border-radius: 4px; }

/* Click-to-play video facade (band / other sections) */
.aaf-videofacade { position: relative; cursor: pointer; }
.aaf-videofacade__play {
	position: absolute; inset: 0; margin: auto;
	width: 66px; height: 66px;
	border-radius: 50%;
	background: var(--c-accent);
	color: var(--c-accent-ink);
	display: flex; align-items: center; justify-content: center;
	font-size: 24px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .3);
	transition: transform .15s ease;
	padding-inline-start: 4px;
}
.aaf-videofacade:hover .aaf-videofacade__play { transform: scale(1.08); }
.aaf-videofacade__label {
	position: absolute; bottom: 14px; left: 0; right: 0;
	text-align: center; color: var(--c-on-dark-soft); font-size: 13px;
}
.aaf-videofacade video { width: 100%; height: 100%; object-fit: cover; display: block; }
.aaf-videofacade.is-playing { cursor: default; }

/* Keep the hero video slider visible on phones (hero image was hidden) */
@media (max-width: 860px) {
	.aaf-hero__media.aaf-vslider { display: block; }
}

/* =========================================================================
   Sections
   ====================================================================== */
.aaf-section { padding: 64px 0; }
.aaf-section--tight { padding: 40px 0; }
.aaf-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 28px;
	flex-wrap: wrap;
}
.aaf-section__title { font-size: 26px; font-weight: 800; margin: 0; }
.aaf-section__sub   { font-size: 14px; color: var(--c-ink-soft); margin: 6px 0 0; }

/* Category tiles */
.aaf-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.aaf-tile {
	background: var(--c-surface);
	border-radius: var(--radius);
	padding: 28px 24px;
	box-shadow: var(--shadow);
	display: flex;
	flex-direction: column;
	gap: 14px;
	transition: transform .15s ease, box-shadow .15s ease;
}
.aaf-tile:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(16,35,58,.12); }
.aaf-tile__icon {
	width: 44px; height: 44px;
	border-radius: 12px;
	background: rgba(28, 76, 128, .08);
	display: flex; align-items: center; justify-content: center;
}
.aaf-tile__icon i { width: 16px; height: 16px; background: var(--c-brand); border-radius: 4px; display: block; }
.aaf-tile:nth-child(1) .aaf-tile__icon i { border-radius: 50%; }
.aaf-tile:nth-child(3) .aaf-tile__icon i { border-radius: 50% 0; }
.aaf-tile__title { font-size: 18px; font-weight: 700; margin: 0; }
.aaf-tile__desc  { font-size: 14px; line-height: 1.7; color: var(--c-ink-soft); margin: 0; }

/* =========================================================================
   Cards
   ====================================================================== */
.aaf-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }

.aaf-card {
	background: var(--c-surface);
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: var(--shadow);
	display: flex;
	flex-direction: column;
	transition: transform .15s ease, box-shadow .15s ease;
}
.aaf-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(16,35,58,.12); }
.aaf-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	display: flex; align-items: center; justify-content: center;
	background: repeating-linear-gradient(135deg, #e6edf5, #e6edf5 10px, #dbe4ee 10px, #dbe4ee 20px);
}
.aaf-card__img { width: 100%; height: 100%; object-fit: cover; }
.aaf-card__placeholder { color: #8a97a6; font-size: 12px; }
.aaf-badge {
	position: absolute;
	top: 12px; right: 12px;
	background: var(--c-brand);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 5px 12px;
	border-radius: var(--radius-pill);
}
.aaf-badge--alt { background: var(--c-accent-2); }
.aaf-card__body { padding: 18px 20px; display: flex; flex-direction: column; flex: 1; }
.aaf-card__price { font-size: 18px; font-weight: 700; color: var(--c-accent-2); margin-bottom: 8px; }
.aaf-card__title { font-size: 16px; font-weight: 700; margin: 0 0 6px; }
.aaf-card__title a:hover { color: var(--c-brand); }
.aaf-card__meta  { font-size: 13.5px; color: var(--c-ink-soft); margin-bottom: 14px; }
.aaf-card__footer {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 14px;
	border-top: 1px solid var(--c-surface-2);
}
.aaf-card__agent { font-size: 13px; color: var(--c-ink-soft); }
.aaf-card__more  { font-size: 13.5px; font-weight: 700; color: var(--c-brand); }

/* =========================================================================
   Slider (home page — one per post type)
   ====================================================================== */
.aaf-slider { position: relative; }
.aaf-slider__viewport { overflow: hidden; }
.aaf-slider__track {
	display: flex;
	gap: var(--gap);
	transition: transform .45s cubic-bezier(.22,.61,.36,1);
	will-change: transform;
}
.aaf-slider__track > .aaf-card {
	flex: 0 0 calc((100% - (var(--gap) * 2)) / 3);
	min-width: 0;
}
.aaf-slider__nav {
	display: flex;
	gap: 8px;
}
.aaf-slider__btn {
	width: 42px; height: 42px;
	border-radius: 50%;
	border: 1px solid var(--c-line);
	background: var(--c-surface);
	color: var(--c-brand);
	font-size: 18px;
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	transition: background .15s ease, color .15s ease, opacity .15s ease;
}
.aaf-slider__btn:hover { background: var(--c-brand); color: #fff; }
.aaf-slider__btn[disabled] { opacity: .4; cursor: default; }
.aaf-slider__btn[disabled]:hover { background: var(--c-surface); color: var(--c-brand); }
.aaf-slider__empty {
	background: var(--c-surface);
	border: 1px dashed var(--c-line);
	border-radius: var(--radius);
	padding: 40px;
	text-align: center;
	color: var(--c-ink-soft);
}

/* =========================================================================
   Inline horizontal ad banner (between home sections — leaderboard)
   ====================================================================== */
.aaf-adbanner { margin: 10px auto; }
.aaf-adbanner__label {
	display: block;
	text-align: center;
	font-size: 10px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--c-ink-soft);
	margin-bottom: 6px;
}
.aaf-adbanner__slot {
	display: block;
	width: 100%;
	max-width: 970px;
	height: 120px;
	margin: 0 auto;
	border-radius: 14px;
	overflow: hidden;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	box-shadow: var(--shadow);
}
.aaf-adbanner__slot img { width: 100%; height: 100%; object-fit: cover; }
.aaf-adbanner__ph {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	height: 100%;
	text-align: center;
	color: var(--c-ink-soft);
	background: repeating-linear-gradient(45deg, #eef3f8, #eef3f8 12px, #e4ecf4 12px, #e4ecf4 20px);
}
.aaf-adbanner__ph strong { color: var(--c-brand); font-size: 15px; }
.aaf-adbanner__cta {
	background: var(--c-accent);
	color: var(--c-accent-ink);
	font-weight: 700;
	font-size: 13px;
	padding: 8px 16px;
	border-radius: var(--radius-pill);
}
@media (max-width: 600px) {
	.aaf-adbanner__slot { height: 90px; }
	.aaf-adbanner__ph { flex-direction: column; gap: 8px; }
}

/* =========================================================================
   Bands: About / TV, Partners, Fund
   ====================================================================== */
.aaf-band {
	background: var(--c-brand);
	border-radius: 20px;
	padding: 52px;
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 48px;
	align-items: center;
	color: var(--c-on-dark);
}
.aaf-band__media {
	aspect-ratio: 1 / 1;
	border-radius: 16px;
	border: 1px solid rgba(238,244,249,.18);
	background: repeating-linear-gradient(135deg, #23557f, #23557f 12px, var(--c-brand-dark) 12px, var(--c-brand-dark) 24px);
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
}
.aaf-band__media span { color: var(--c-on-dark-soft); font-size: 13px; }
.aaf-band__media img { width: 100%; height: 100%; object-fit: cover; }
.aaf-band h2 { color: var(--c-on-dark); font-size: 26px; font-weight: 800; margin-bottom: 16px; }
.aaf-band p  { color: var(--c-on-dark-soft); font-size: 15.5px; line-height: 1.9; margin-bottom: 24px; }

.aaf-partners__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.aaf-partner {
	aspect-ratio: 2 / 1;
	border-radius: 12px;
	border: 1px dashed var(--c-line);
	background: var(--c-surface);
	display: flex; align-items: center; justify-content: center;
	color: #9aa7b4;
	font-size: 11px;
	overflow: hidden;
}
.aaf-partner img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.aaf-partners__actions { margin-top: 24px; display: flex; gap: 16px; flex-wrap: wrap; }

.aaf-fund {
	background: var(--c-accent);
	border-radius: 20px;
	padding: 44px 52px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
}
.aaf-fund h2 { color: var(--c-accent-ink); font-size: 24px; font-weight: 800; margin-bottom: 10px; }
.aaf-fund p  { color: #3a2e10; font-size: 15px; line-height: 1.8; max-width: 560px; margin: 0; }

/* =========================================================================
   Archive / listing pages
   ====================================================================== */
.aaf-page-head {
	background: var(--c-brand);
	padding: 44px 0;
	color: var(--c-on-dark);
}
.aaf-page-head__crumb { font-size: 13px; color: var(--c-accent); margin-bottom: 10px; }
.aaf .aaf-page-head__title { font-size: 34px; font-weight: 800; color: var(--c-on-dark); margin: 0; }
.aaf-page-head__lead  { font-size: 14.5px; color: var(--c-on-dark-soft); margin-top: 8px; }

.aaf-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}
.aaf-chips { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
.aaf-chip {
	padding: 10px 20px;
	border-radius: var(--radius-pill);
	background: transparent;
	color: var(--c-ink-soft);
	font-weight: 700;
	font-size: 13.5px;
	border: 1px solid var(--c-line);
}
.aaf-chip.is-active,
.aaf-chip:hover { background: var(--c-brand); color: #fff; border-color: var(--c-brand); }

.aaf-count { font-size: 14px; color: var(--c-ink-soft); }

/* Pagination */
.aaf-pagination { display: flex; justify-content: center; gap: 10px; margin-top: 40px; flex-wrap: wrap; }
.aaf-pagination .page-numbers {
	min-width: 40px; height: 40px;
	padding: 0 12px;
	border-radius: var(--radius-sm);
	background: var(--c-surface);
	color: var(--c-ink-soft);
	display: inline-flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 14px;
	box-shadow: var(--shadow);
}
.aaf-pagination .page-numbers.current,
.aaf-pagination a.page-numbers:hover { background: var(--c-brand); color: #fff; }

/* =========================================================================
   Single opportunity
   ====================================================================== */
.aaf-single { padding: 48px 0; }
.aaf-single__grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 40px; align-items: start; }
.aaf-single__media {
	border-radius: var(--radius);
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: repeating-linear-gradient(135deg, #e6edf5, #e6edf5 10px, #dbe4ee 10px, #dbe4ee 20px);
	display: flex; align-items: center; justify-content: center;
	color: #8a97a6;
	margin-bottom: 28px;
}
.aaf-single__media img { width: 100%; height: 100%; object-fit: cover; }
.aaf-single__content { font-size: 16px; line-height: 1.9; color: #33434f; }
.aaf-single__content h2 { font-size: 22px; margin-top: 1.4em; }
.aaf-aside {
	background: var(--c-surface);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 26px;
	position: sticky;
	top: 108px;
}
.aaf-aside__price { font-size: 24px; font-weight: 800; color: var(--c-accent-2); margin-bottom: 4px; }
.aaf-facts { list-style: none; margin: 18px 0; padding: 0; }
.aaf-facts li {
	display: flex; justify-content: space-between; gap: 12px;
	padding: 11px 0;
	border-bottom: 1px solid var(--c-surface-2);
	font-size: 14.5px;
}
.aaf-facts li span:first-child { color: var(--c-ink-soft); }
.aaf-facts li span:last-child { font-weight: 700; }

/* =========================================================================
   Ad rails / generic panels
   ====================================================================== */
.aaf-ad {
	border-radius: 14px;
	border: 1px dashed var(--c-line);
	background: repeating-linear-gradient(45deg, #e9eef5, #e9eef5 10px, #dfe6ef 10px, #dfe6ef 20px);
	display: flex; align-items: center; justify-content: center;
	color: #8493a2; font-size: 12px;
	min-height: 96px;
}

/* =========================================================================
   Side advertising rails (skyscraper, one per side — old-school ad slots)
   Shown only when the viewport is wide enough to hold them beside the
   1200px content column without overlap.
   ====================================================================== */
.aaf-siderail { display: none; }

.aaf-siderail__label {
	display: block;
	text-align: center;
	font-size: 10px;
	letter-spacing: 1px;
	color: var(--c-ink-soft);
	text-transform: uppercase;
	margin-bottom: 6px;
}
.aaf-siderail__slot {
	display: block;
	border-radius: 12px;
	overflow: hidden;
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	box-shadow: var(--shadow);
}
.aaf-siderail__slot img { width: 100%; height: 100%; object-fit: cover; }
.aaf-siderail__ph {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 100%;
	padding: 20px 16px;
	text-align: center;
	color: var(--c-ink-soft);
	background: repeating-linear-gradient(45deg, #eef3f8, #eef3f8 10px, #e4ecf4 10px, #e4ecf4 20px);
}
.aaf-siderail__ph strong { color: var(--c-brand); font-size: 15px; }
.aaf-siderail__cta {
	margin-top: 6px;
	color: var(--c-accent-ink);
	background: var(--c-accent);
	font-weight: 700;
	font-size: 12.5px;
	padding: 8px 14px;
	border-radius: var(--radius-pill);
}

/* Tablet and up: show both rails and reserve side space on the content
   containers so the fixed rails never cover the text. Hidden on phones. */
@media (min-width: 768px) {
	.aaf-siderail {
		display: block;
		position: fixed;
		top: 50%;
		transform: translateY(-50%);
		z-index: 40;
	}
	.aaf-siderail--right { right: 12px; }
	.aaf-siderail--left  { left: 12px; }
	.aaf-siderail__slot { width: 96px; height: 420px; }
	.aaf-siderail__label { font-size: 9px; }
	.aaf-siderail__ph { padding: 12px 8px; gap: 8px; }
	.aaf-siderail__ph strong { font-size: 12px; }
	.aaf-siderail__cta { font-size: 10.5px; padding: 6px 10px; }
	/* reserve 96 + 12 gap + 16 breathing room */
	.aaf-container,
	.aaf-header__inner { padding-inline: 124px; }
}

@media (min-width: 1024px) {
	.aaf-siderail--right { right: 16px; }
	.aaf-siderail--left  { left: 16px; }
	.aaf-siderail__slot { width: 120px; height: 520px; }
	.aaf-siderail__ph strong { font-size: 13px; }
	.aaf-container,
	.aaf-header__inner { padding-inline: 152px; }
}

@media (min-width: 1200px) {
	.aaf-siderail__slot { width: 160px; height: 600px; }
	.aaf-siderail__label { font-size: 10px; }
	.aaf-siderail__ph { padding: 20px 16px; gap: 10px; }
	.aaf-siderail__ph strong { font-size: 15px; }
	.aaf-siderail__cta { font-size: 12.5px; padding: 8px 14px; }
	.aaf-container,
	.aaf-header__inner { padding-inline: 192px; }
}

/* Wide screens: the natural gutter already clears the rails — give the
   content its full width back. */
@media (min-width: 1560px) {
	.aaf-container,
	.aaf-header__inner { padding-inline: 24px; }
}

/* =========================================================================
   Footer
   ====================================================================== */
.aaf-footer {
	background: var(--c-brand);
	color: var(--c-on-dark);
	padding: 64px 0 28px;
	margin-top: 64px;
}
.aaf-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; }
.aaf-footer__about p { font-size: 14px; line-height: 1.9; color: #b9c9d6; max-width: 280px; margin: 16px 0 20px; }
.aaf-footer__col h3 { font-size: 14px; font-weight: 700; color: var(--c-accent); margin-bottom: 18px; }
.aaf-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.aaf-footer__col a, .aaf-footer__col li { font-size: 14px; color: #e2ebf2; }
.aaf-footer__col a:hover { color: var(--c-accent); }
.aaf-social { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.aaf-social__link {
	width: 38px; height: 38px;
	border-radius: 50%;
	background: var(--c-surface-2);
	border: 1px solid var(--c-line);
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--c-brand);
	transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.aaf-social__link:hover { transform: translateY(-2px); color: #fff; }
.aaf-social__link svg { display: block; }
/* Per-platform hover colours */
.aaf-social--facebook:hover { background: #1877f2; border-color: #1877f2; }
.aaf-social--youtube:hover  { background: #ff0000; border-color: #ff0000; }
.aaf-social--tiktok:hover   { background: #010101; border-color: #010101; }
.aaf-social--whatsapp:hover { background: #25d366; border-color: #25d366; }
.aaf-social--website:hover  { background: var(--c-brand); border-color: var(--c-brand); }
/* Dark footer context */
.aaf-footer .aaf-social__link {
	background: rgba(238, 244, 249, .08);
	border-color: rgba(238, 244, 249, .16);
	color: var(--c-on-dark);
}
.aaf-footer__bottom {
	margin-top: 48px;
	padding-top: 22px;
	border-top: 1px solid rgba(238,244,249,.12);
	display: flex; align-items: center; justify-content: space-between;
	flex-wrap: wrap; gap: 10px;
	font-size: 13px; color: #8fa6bb;
}

/* Menus rendered by wp_nav_menu in footer columns */
.aaf-footer__col .menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }

/* =========================================================================
   About page building blocks (story / vision / values / promo / team)
   ====================================================================== */
.aaf-prose--wide { max-width: 900px; }
.aaf-lead { font-size: 19px; font-weight: 500; color: var(--c-ink); line-height: 1.9; }
.aaf-prose h2 { font-size: 24px; margin-top: 1.7em; color: var(--c-brand); }
.aaf-prose h3 { font-size: 19px; margin-top: 1.3em; }
.aaf-prose ul { padding-inline-start: 1.2em; }
.aaf-prose ul li { margin-bottom: .5em; }

.aaf-callout {
	background: var(--c-brand);
	color: var(--c-on-dark);
	border-radius: var(--radius);
	padding: 34px 36px;
	margin: 34px 0;
	text-align: center;
}
.aaf-callout__eyebrow {
	display: inline-block;
	color: var(--c-accent);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .5px;
	margin-bottom: 12px;
}
.aaf-callout p { font-size: 22px; font-weight: 800; color: var(--c-on-dark); margin: 0; line-height: 1.6; }
.aaf-callout--accent { background: var(--c-accent); }
.aaf-callout--accent p { color: var(--c-accent-ink); }
.aaf-callout--accent .aaf-callout__eyebrow { color: var(--c-brand); }

.aaf-duo {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
	margin: 28px 0;
}
.aaf-duo__card {
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	padding: 28px;
	box-shadow: var(--shadow);
}
.aaf-duo__card h3 { margin-top: 0; color: var(--c-brand); }
.aaf-duo__card p:last-child { margin-bottom: 0; }

.aaf-values { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0; }
.aaf-values span {
	background: var(--c-surface-2);
	border: 1px solid var(--c-line);
	color: var(--c-brand);
	font-weight: 700;
	padding: 10px 20px;
	border-radius: var(--radius-pill);
	font-size: 14.5px;
}

.aaf-promo {
	background: linear-gradient(135deg, var(--c-brand), var(--c-brand-dark));
	color: var(--c-on-dark);
	border-radius: var(--radius);
	padding: 36px;
	margin: 28px 0;
}
.aaf-promo p { color: var(--c-on-dark-soft); font-size: 16px; margin: 0 0 12px; line-height: 1.9; }
.aaf-promo p:last-child { margin-bottom: 0; }
.aaf-promo strong { color: var(--c-accent); font-weight: 700; }

.aaf-team { list-style: none; padding: 0; margin: 20px 0; }
.aaf-team li {
	background: var(--c-surface);
	border: 1px solid var(--c-line);
	border-radius: var(--radius-sm);
	padding: 16px 20px;
	margin-bottom: 12px;
	font-size: 15px;
	line-height: 1.8;
}
.aaf-team li strong { color: var(--c-brand); display: block; margin-bottom: 2px; }

/* =========================================================================
   WP content / comments basics
   ====================================================================== */
.aaf-prose { max-width: 760px; margin-inline: auto; font-size: 16px; line-height: 1.9; }
.aaf-prose img { border-radius: var(--radius); margin: 1.4em 0; }
.aaf .wp-caption { max-width: 100%; }
.aaf .aligncenter { margin-inline: auto; }
.aaf .aligncenter { text-align: center; }

/* =========================================================================
   Responsive
   ====================================================================== */
@media (max-width: 1024px) {
	.aaf-hero__title { font-size: 42px; }
	.aaf-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
	.aaf-partners__grid { grid-template-columns: repeat(4, 1fr); }
	.aaf-single__grid { grid-template-columns: 1fr; }
	.aaf-aside { position: static; }
}

@media (max-width: 860px) {
	.aaf-header__inner { height: 64px; }
	.aaf-nav {
		position: fixed;
		inset: 64px 0 auto 0;
		background: var(--c-brand-dark);
		max-height: 0;
		overflow: hidden;
		transition: max-height .3s ease;
	}
	.aaf-nav.is-open { max-height: 80vh; }
	.aaf-nav__list { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 24px; }
	.aaf-nav__list li { border-bottom: 1px solid rgba(238,244,249,.08); }
	.aaf-nav__list a { display: block; padding: 14px 0; }
	.aaf-burger { display: flex; }
	.aaf-header__cta { display: none; }

	.aaf-hero { padding: 44px 0 90px; }
	.aaf-hero__inner { grid-template-columns: 1fr; gap: 28px; }
	.aaf-hero__title { font-size: 30px; }
	.aaf-hero__media { display: none; }

	.aaf-search__row { grid-template-columns: 1fr; }
	.aaf-search__card { padding: 18px; }

	.aaf-tiles { grid-template-columns: 1fr; }
	.aaf-grid { grid-template-columns: 1fr; }
	.aaf-slider__track > .aaf-card { flex-basis: 100%; }

	.aaf-band { grid-template-columns: 1fr; padding: 32px; }
	.aaf-fund { flex-direction: column; align-items: flex-start; padding: 28px; }
	.aaf-partners__grid { grid-template-columns: repeat(2, 1fr); }
	.aaf-footer__grid { grid-template-columns: 1fr; }
	.aaf-section { padding: 44px 0; }
	.aaf-page-head__title { font-size: 26px; }
}

@media (min-width: 861px) {
	.aaf-nav { display: block !important; }
}
