/**
 * Global base layer for Elgamal theme — tokens + restrained resets.
 * Block/section chrome lands in later phases; keep this file lean.
 * tokens.css is enqueued separately as a dependency of this stylesheet.
 */

html {
	box-sizing: border-box;
	scroll-behavior: smooth;
	overflow-x: clip;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body {
	margin: 0 !important;
	overflow-x: clip;
	color: var(--elgamal-color-ink);
	background: var(--elgamal-color-white);
	font-family: var(--elgamal-font-current, var(--elgamal-font-sans));
	font-size: var(--elgamal-text-body);
	line-height: var(--elgamal-leading-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Links — override _s purple :visited that destroys CTA contrast (a:visited 0,1,1). */
a {
	color: var(--elgamal-link);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

a:visited {
	color: var(--elgamal-link);
}

a:hover,
a:focus-visible {
	color: var(--elgamal-link-hover);
}

a:active {
	color: var(--elgamal-color-ink);
}

a:focus-visible {
	outline: 2px solid var(--elgamal-color-focus);
	outline-offset: 3px;
}

/*
 * Button-like anchors: :visited must keep designed fg/bg (WCAG).
 * Attribute + class beats a:visited.
 */
a[class*='__btn'],
a[class*='__cta'],
a.elgamal-site-header__cta,
a.elgamal-site-header__lang,
a.elgamal-nav-overlay__cta,
a.elgamal-booking-wizard__btn,
a.elgamal-empty__btn {
	text-decoration: none;
	cursor: pointer;
}

a[class*='__btn']:visited,
a[class*='__cta']:visited,
a.elgamal-site-header__cta:visited,
a.elgamal-nav-overlay__cta:visited,
a.elgamal-booking-wizard__btn:visited {
	color: inherit;
}

/* Solid primary CTAs — explicit states for clarity + contrast */
a[class*='__btn--primary'],
a.elgamal-cta-band__btn,
a.elgamal-site-header__cta,
a.elgamal-nav-overlay__cta,
a.elgamal-iso-certificate__btn {
	background-color: var(--elgamal-btn-bg);
	color: var(--elgamal-btn-fg) !important;
}

a[class*='__btn--primary']:visited,
a.elgamal-cta-band__btn:visited,
a.elgamal-site-header__cta:visited,
a.elgamal-nav-overlay__cta:visited,
a.elgamal-iso-certificate__btn:visited {
	background-color: var(--elgamal-btn-bg);
	color: var(--elgamal-btn-fg) !important;
}

a[class*='__btn--primary']:hover,
a[class*='__btn--primary']:focus-visible,
a.elgamal-cta-band__btn:hover,
a.elgamal-cta-band__btn:focus-visible,
a.elgamal-site-header__cta:hover,
a.elgamal-site-header__cta:focus-visible,
a.elgamal-nav-overlay__cta:hover,
a.elgamal-nav-overlay__cta:focus-visible,
a.elgamal-iso-certificate__btn:hover,
a.elgamal-iso-certificate__btn:focus-visible {
	background-color: var(--elgamal-btn-bg-hover);
	color: var(--elgamal-btn-fg) !important;
}

a[class*='__btn--primary']:active,
a.elgamal-cta-band__btn:active,
a.elgamal-site-header__cta:active,
a.elgamal-nav-overlay__cta:active,
a.elgamal-iso-certificate__btn:active {
	background-color: var(--elgamal-btn-bg-active);
	color: var(--elgamal-btn-fg) !important;
}

/* Ghost / outline CTAs on light surfaces */
a.elgamal-split-intro__cta:visited,
a.elgamal-hero-video__btn--secondary:visited,
a[class*='__btn--ghost']:visited,
a[class*='__btn--secondary']:visited {
	color: inherit;
}

.entry-content.elgamal-prose,
.page-content.elgamal-prose {
	margin-top: 0;
}

/* Kill underscore default page content top margin that stacks under sticky header. */
.site-main--has-hero .page-content,
.site-main--has-hero .entry-content,
.site-main--front .entry-content {
	margin-top: 0;
}

img,
video {
	max-width: 100%;
	height: auto;
	display: block;
}

/* CLS: reserve media boxes; cover fit for hero/loop videos matches source. */
img[loading="lazy"] {
	content-visibility: auto;
}

.elgamal-hero-video__media video,
.elgamal-cta-band__media video {
	object-fit: cover;
	object-position: center;
	width: 100%;
	height: 100%;
}

/* Video-feature uses oversized/parallax framing — do not force height:100%. */
.elgamal-video-feature video {
	object-fit: cover;
	object-position: center;
}

/* JS-enhanced motion: keep content visible if scripts fail. */
html:not(.elgamal-js) [data-hero-line],
html:not(.elgamal-js) [data-hero-fade] {
	opacity: 1;
	transform: none;
}

.elgamal-reduced-motion [data-elgamal-motion] * {
	animation: none !important;
	transition: none !important;
}

.elgamal-media-cover {
	object-fit: var(--elgamal-media-fit);
	object-position: var(--elgamal-media-position);
	width: 100%;
	height: 100%;
}

.elgamal-container,
.elgamal-shell {
	width: min(100% - (var(--elgamal-gutter-inline) * 2), var(--elgamal-max-width));
	margin-inline: auto;
}

/* Shared title + description band: flush to shell edges, no floating mid-gap. */
.elgamal-section-head {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.85fr);
	gap: clamp(20px, 3vw, 48px);
	align-items: end;
	margin-bottom: clamp(36px, 5vw, 56px);
}

.elgamal-section-head__main {
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-width: 0;
}

.elgamal-section-head__desc {
	margin: 0;
	font-size: 16px;
	line-height: 1.8;
	color: var(--elgamal-color-body, #4f4a42);
	text-wrap: pretty;
	max-width: 42ch;
	justify-self: end;
}

@media (max-width: 781px) {
	.elgamal-section-head {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.elgamal-section-head__desc {
		justify-self: start;
		max-width: none;
	}
}

.elgamal-label {
	color: var(--elgamal-color-label-gold);
	letter-spacing: var(--elgamal-letter-spacing-label);
	text-transform: uppercase;
	font-size: 0.75rem;
}

.elgamal-divider {
	border: 0;
	border-top: 1px solid var(--elgamal-color-divider);
}

/* Placeholder for Phase 09 temp media — neutral surface, no hotlinked stock. */
.elgamal-media-placeholder {
	background: var(--elgamal-color-pale);
	color: var(--elgamal-color-muted);
	display: grid;
	place-items: center;
	min-height: 12rem;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}
