/**
 * Rabita Society — page sections.
 *
 * Shared tokens live on .rabita-sec, so every section inherits one palette.
 * To recolour the site, redefine these in your own CSS once.
 */

.rabita-sec {
	--sec-green: #14503f;
	--sec-green-deep: #0c3327;
	--sec-accent: #b04e1e;
	--sec-accent-dark: #96411a;
	--sec-help: #1a5a8a;
	--sec-ink: #1a1a18;
	--sec-body: #4a4640;
	--sec-muted: #5a5751;
	--sec-line: #e4ddd0;
	--sec-tint: #f2ede3;
	--sec-ground: #faf8f3;
	--sec-slot: #e4ddd0;
	--sec-max: 1320px;
	--sec-radius: 14px;

	box-sizing: border-box;
	position: relative;
}

.rabita-sec *,
.rabita-sec *::before,
.rabita-sec *::after {
	box-sizing: border-box;
}

.rabita-sec-inner {
	max-width: var(--sec-max);
	margin: 0 auto;
	padding: 0 20px;
}

/* Photograph placeholder — deliberately obvious, never a stock image. */

.rabita-sec-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 260px;
	padding: 24px;
	background: var(--sec-slot);
	border: 1px solid #cfc5b4;
	border-radius: var(--sec-radius);
	text-align: center;
}

.rabita-sec-slot span {
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #6b6558;
	line-height: 1.6;
}

.rabita-sec-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--sec-radius);
}

/* ----------------------------------------------------------------- buttons */

.rabita-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 15px 30px;
	border-radius: 6px;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	text-align: center;
	border: 1.5px solid transparent;
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}

.rabita-btn-primary {
	background: var(--sec-accent);
	border-color: var(--sec-accent);
	color: #fff;
}

.rabita-btn-primary:hover,
.rabita-btn-primary:focus-visible {
	background: var(--sec-accent-dark);
	border-color: var(--sec-accent-dark);
	color: #fff;
}

.rabita-btn-help {
	background: #fff;
	border-color: var(--sec-help);
	color: var(--sec-help);
}

.rabita-btn-help:hover,
.rabita-btn-help:focus-visible {
	background: var(--sec-help);
	color: #fff;
}

/* -------------------------------------------------------------------- hero */

.rabita-hero {
	background: var(--sec-ground);
	padding: 72px 0;
}

.rabita-hero .rabita-sec-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
}

.rabita-hero.is-centred .rabita-sec-inner {
	grid-template-columns: minmax(0, 1fr);
	max-width: 820px;
	text-align: center;
}

.rabita-hero.is-centred .rabita-hero-actions {
	justify-content: center;
}

.rabita-hero-text {
	display: flex;
	flex-direction: column;
	gap: 22px;
	align-items: flex-start;
}

.rabita-hero.is-centred .rabita-hero-text {
	align-items: center;
}

.rabita-hero-eyebrow {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sec-accent);
}

.rabita-hero-heading {
	margin: 0;
	font-size: clamp(2rem, 4.2vw, 3.375rem);
	line-height: 1.12;
	font-weight: 700;
	color: var(--sec-green);
	letter-spacing: -0.01em;
}

.rabita-hero-lead {
	margin: 0;
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	line-height: 1.65;
	color: var(--sec-body);
	max-width: 34em;
}

.rabita-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	padding-top: 4px;
}

.rabita-hero-media {
	min-height: 420px;
	display: flex;
}

.rabita-hero-media > * {
	width: 100%;
}

/* ----------------------------------------------------------------- mission */

.rabita-mission {
	background: var(--sec-green);
	padding: 56px 0;
}

.rabita-mission .rabita-sec-inner {
	max-width: 1040px;
	text-align: center;
}

.rabita-mission-text {
	margin: 0;
	font-size: clamp(1.1875rem, 2vw, 1.5625rem);
	line-height: 1.55;
	color: #fff;
	font-weight: 400;
}

.rabita-mission-cite {
	margin: 16px 0 0;
	font-size: 0.875rem;
	color: #a8c4ba;
}

/* ------------------------------------------------------------------ mobile */

@media (max-width: 880px) {

	.rabita-hero {
		padding: 40px 0 48px;
	}

	.rabita-hero .rabita-sec-inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	/* Picture first on a phone: it establishes the place before the words. */
	.rabita-hero-media {
		order: -1;
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.rabita-sec-slot {
		min-height: 0;
	}

	.rabita-hero-text {
		gap: 16px;
	}

	.rabita-hero-actions {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
	}

	.rabita-mission {
		padding: 36px 0;
	}

	.rabita-mission .rabita-sec-inner {
		text-align: left;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rabita-btn {
		transition: none;
	}
}
