/* WordPress loads this file automatically for RTL locales. */
html[dir="rtl"] body {
	direction: rtl;
	font-family: "Cairo", sans-serif !important;
}

html[dir="rtl"] body * {
	font-family: "Cairo", sans-serif !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* Arabic glyphs need a taller line box than Museo Sans and must never inherit
   Latin tracking. These rules intentionally sit in the final RTL layer. */
html[dir="rtl"] h1,
html[dir="rtl"] h2,
html[dir="rtl"] h3,
html[dir="rtl"] h4,
html[dir="rtl"] h5,
html[dir="rtl"] h6,
html[dir="rtl"] .hero h1,
html[dir="rtl"] .pagehero h1,
html[dir="rtl"] .phero h1,
html[dir="rtl"] .art__t {
	line-height: 1.3 !important;
	height: auto !important;
	overflow: visible;
	padding-block: 0.08em 0.14em;
}

html[dir="rtl"] p,
html[dir="rtl"] li,
html[dir="rtl"] .para,
html[dir="rtl"] .pagehero__p,
html[dir="rtl"] .hero__p {
	line-height: 1.85;
}

/* The decorative 404 uses paragraph markup but must retain its compact display line box. */
html[dir="rtl"] .notfound__code {
	line-height: .78;
}

html[dir="rtl"] .voice__q,
html[dir="rtl"] .hagd__desc,
html[dir="rtl"] .teaser__copy,
html[dir="rtl"] .card2__copy {
	height: auto;
	max-height: none;
}

html[dir="rtl"] .voice__q,
html[dir="rtl"] .session__nav strong,
html[dir="rtl"] .insight-card__copy b,
html[dir="rtl"] .report-card__title,
html[dir="rtl"] .publication-card__title,
html[dir="rtl"] .video-card__title {
	line-height: 1.65 !important;
}

html[dir="rtl"] .insight-card,
html[dir="rtl"] .insight-card__copy {
	direction: rtl;
	text-align: right;
}

/* Audience router cards are buttons, so they do not inherit the paragraph
   alignment rules above. Keep both the Arabic reading direction and visual
   alignment on the inline-start edge of the RTL card. */
html[dir="rtl"] .router .tile,
html[dir="rtl"] .router .panel__body {
	direction: rtl;
	text-align: right;
}

html[dir="rtl"] #mcConferenceTracks,
html[dir="rtl"] #mcConferenceTracks .gal__filters,
html[dir="rtl"] #mcMouDays,
html[dir="rtl"] #mcMouDays .gal__filters,
html[dir="rtl"] .mc__grid {
	direction: rtl;
}

html[dir="rtl"] .insight-card__play {
	right: auto;
	left: 18px;
}

html[dir="rtl"] .mc__grid .mc--gallery-detail .insight-card__copy {
	padding-right: 24px;
	padding-left: 54px;
}

html[dir="rtl"] .mc__grid .mc--gallery-detail .insight-card__copy::after {
	right: auto;
	left: 22px;
	transform: scaleX(-1);
}

html[dir="rtl"] .mc__grid .mc--gallery-detail:hover .insight-card__copy::after {
	transform: translate(-3px,-3px) scaleX(-1);
}

html[dir="rtl"] .insight-lightbox__figure figcaption,
html[dir="rtl"] .insight-lightbox__thumbs {
	direction: rtl;
	text-align: right;
}

html[dir="rtl"] .insight-lightbox__close {
	right: auto;
	left: -14px;
}

html[dir="rtl"] .insight-lightbox__nav--prev {
	left: auto;
	right: 18px;
}

html[dir="rtl"] .insight-lightbox__nav--next {
	right: auto;
	left: 18px;
}

html[dir="rtl"] .insight-lightbox__nav--prev span {
	transform: rotate(45deg);
	margin: 0 0 0 5px;
}

html[dir="rtl"] .insight-lightbox__nav--next span {
	transform: rotate(-135deg);
	margin: 0 5px 0 0;
}

@media (max-width:760px) {
	html[dir="rtl"] .insight-lightbox__close { right:auto; left:10px; }
	html[dir="rtl"] .insight-lightbox__nav--prev { left:auto; right:12px; }
	html[dir="rtl"] .insight-lightbox__nav--next { right:auto; left:12px; }
}

/* Mirror the testimonial composition, not just its text. The English card
   places the portrait on the left and the copy on the right; Arabic needs the
   portrait on the right with the copy reading from the opposite column. */
html[dir="rtl"] .voice__bg img {
	display: block;
	margin-left: auto;
	margin-right: 0;
}

html[dir="rtl"] .voice__fade {
	background: linear-gradient(270deg, rgba(255,255,255,0) 18%, rgba(255,255,255,.92) 52%, #fff 68%);
}

html[dir="rtl"] .voice__body {
	margin-left: 0;
	margin-right: auto;
	padding: 56px 0 56px 56px;
	text-align: right;
}

html[dir="rtl"] .voice__mark {
	text-align: right;
	transform: scaleX(-1);
}

html[dir="rtl"] .voices .dots {
	direction: rtl;
	justify-content: flex-start;
}

html[data-theme="dark"][dir="rtl"] .voice__fade {
	background: linear-gradient(270deg, rgba(13,12,38,0) 18%, rgba(13,12,38,.9) 52%, #0D0C26 68%);
}

html[dir="rtl"] .vcar__track { direction: ltr; }
html[dir="rtl"] .vcard__b { text-align: right; }

/* Infinite tracks need an LTR coordinate system even on RTL pages. Without
   this, max-content tracks are anchored from the right and the negative
   translation moves the entire logo set outside its masked viewport. The
   animation names are swapped so Arabic retains the mirrored visual flow. */
html[dir="rtl"] .marquee,
html[dir="rtl"] .marquee__track,
html[dir="rtl"] .marquee__seq,
html[dir="rtl"] .pcar,
html[dir="rtl"] .pcar__track,
html[dir="rtl"] .p50-partner-marquee,
html[dir="rtl"] .p50-partner-marquee__track,
html[dir="rtl"] .p50-partner-marquee__set,
html[dir="rtl"] .awards__strip,
html[dir="rtl"] .strip__track {
	direction: ltr;
}

html[dir="rtl"] .marquee__track {
	animation-name: wps2026MarqueeRtl;
}

html[dir="rtl"] .pcar__track {
	animation-name: wps2026PartnerScrollRtl;
}

html[dir="rtl"] .pcar__track--reverse {
	animation-name: wps2026PartnerScrollLtr;
}

html[dir="rtl"] .p50-partner-marquee__track {
	animation-name: p50PartnerScrollRtl;
}

@keyframes p50PartnerScrollRtl {
	from { transform: translateX(-50%); }
	to { transform: translateX(0); }
}

html[dir="rtl"] .awards__strip .strip__track {
	animation-name: wps2026StripDriftRtl;
}

@keyframes wps2026MarqueeRtl {
	from { transform: translateX(-50%); }
	to { transform: translateX(0); }
}

@keyframes wps2026PartnerScrollRtl {
	from { transform: translateX(-50%); }
	to { transform: translateX(0); }
}

@keyframes wps2026PartnerScrollLtr {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@keyframes wps2026StripDriftRtl {
	from { transform: translateX(-50%); }
	to { transform: translateX(0); }
}

html[dir="rtl"] button,
html[dir="rtl"] input,
html[dir="rtl"] select,
html[dir="rtl"] textarea {
	font-family: "Cairo", sans-serif !important;
}

html[dir="rtl"] .nvi__car,
html[dir="rtl"] .ig__arrow svg,
html[dir="rtl"] .art__crumbSep {
	transform: scaleX(-1);
}

html[dir="rtl"] .nav__links,
html[dir="rtl"] .foot,
html[dir="rtl"] .hero__col,
html[dir="rtl"] .sect__head {
	text-align: start;
}

html[dir="rtl"] .faq__q {
	text-align: right;
}

html[dir="rtl"] input,
html[dir="rtl"] select,
html[dir="rtl"] textarea,
html[dir="rtl"] .gfield_label,
html[dir="rtl"] .wsel__btn,
html[dir="rtl"] .wsel__opt {
	direction: rtl;
	text-align: right !important;
}

html[dir="rtl"] body.rtl.wp-singular .gform_wrapper.gform-theme .gfield_label.gform-field-label,
html[dir="rtl"] body.rtl.wp-singular .gform_wrapper.gravity-theme .gfield_label.gform-field-label {
	letter-spacing: 0 !important;
}

html[dir="rtl"] .art__body,
html[dir="rtl"] .session__copy,
html[dir="rtl"] .pagehero__col,
html[dir="rtl"] .head--left,
html[dir="rtl"] .banner__t {
	text-align: right;
}

html[dir="rtl"] .art__body > p:first-of-type::before {
	right: clamp(24px, 3vw, 34px);
	left: auto;
}

html[dir="rtl"] .session__nav a:last-child {
	text-align: left;
}

html[dir="rtl"] .session__nav a:last-child small {
	justify-content: flex-end;
}

/* Directional UI glyphs must follow the reading direction. Keep the existing
   horizontal-arrow treatment, but mirror it (and its hover motion) in Arabic. */
html[dir="rtl"] .ar:not(.ar--down),
html[dir="rtl"] .ph-arrow-up-right,
html[dir="rtl"] .ph-arrow-right,
html[dir="rtl"] .ph-arrow-left,
html[dir="rtl"] .ph-caret-right,
html[dir="rtl"] .ph-caret-left {
	direction: ltr;
	transform: scaleX(-1) !important;
}

html[dir="rtl"] .btn:hover .ar:not(.ar--down),
html[dir="rtl"] .txtlink:hover .ar:not(.ar--down),
html[dir="rtl"] .row:hover .ar:not(.ar--down),
html[dir="rtl"] .ex__link:hover .ar:not(.ar--down),
html[dir="rtl"] .fab-reg:hover .ar:not(.ar--down),
html[dir="rtl"] .cc:hover a .ar:not(.ar--down),
html[dir="rtl"] .galsc:hover .ar:not(.ar--down),
html[dir="rtl"] .legal__other:hover .ar:not(.ar--down) {
	transform: translateX(-4px) scaleX(-1) !important;
}

html[dir="rtl"] .rpt:hover .rpt__more > .ph-arrow-up-right,
html[dir="rtl"] .art__relHead .rpt__more:hover > .ph-arrow-up-right {
	transform: translate(-2px, -2px) scaleX(-1) !important;
}

html[dir="rtl"] .glb__nav {
	transform: scaleX(-1);
}

/* The trustee track grows toward the left in RTL. JavaScript moves it in the
   matching direction; mirror only the previous/next glyphs, not the play icon. */
html[dir="rtl"] .bot__btn:not(.bot__play) svg {
	transform: scaleX(-1);
}

/* The Policing 5.0 speaker actions belong to the Arabic heading's reading
   column. The generic split header otherwise strands them on the far left. */
html[dir="rtl"] #speakers .head--split {
	flex-direction: column;
	align-items: flex-start;
	gap: 28px;
}

html[dir="rtl"] #speakers .pspk__btns {
	justify-content: flex-start;
}

/* Speaker cards on the Arabic site (14 Oct 2026): the API now sends Arabic names, titles and organisations, so the
   cards are right-to-left. Each text line takes its direction from its own content (unicode-bidi: plaintext), so a
   speaker not yet translated in the API still reads correctly in English, right-aligned with the rest. */
html[dir="rtl"] :is(.speakers, #global-leaders) .spk__grid,
html[dir="rtl"] :is(.speakers, #global-leaders) .spk,
html[dir="rtl"] :is(.speakers, #global-leaders) .spk__b {
	direction: rtl;
	text-align: right;
}

html[dir="rtl"] :is(.speakers, #global-leaders) :is(.spk__n, .spk__r, .spk__o, .spk__c) {
	direction: rtl;
	text-align: right;
	unicode-bidi: plaintext;
}

html[dir="rtl"] :is(.speakers, #global-leaders) .spk__c {
	justify-content: flex-start;
}

html[dir="rtl"] .faq__a-in li {
	padding-left: 0;
	padding-right: 16px;
}

html[dir="rtl"] .faq__a-in li::before {
	left: auto;
	right: 0;
}

@media (max-width: 760px) {
	html[dir="rtl"] .session__nav a:last-child {
		text-align: right;
	}
	html[dir="rtl"] .session__nav a:last-child small {
		justify-content: flex-start;
	}
}

@media (max-width: 840px) {
	html[dir="rtl"] .voice__body {
		padding: 44px 26px;
	}
	html[dir="rtl"] .voice__fade {
		background: rgba(255,255,255,.8);
	}
	html[data-theme="dark"][dir="rtl"] .voice__fade {
		background: rgba(13,12,38,.6);
	}
}
