/* ==========================================================================
   oikos Lausanne · pages pratiques
   - Partenaires (oikos-p-*)
   - Contact (oikos-c-*)
   - Mentions légales (oikos-ml*)
   - Page introuvable, 404 (oikos-introuvable*)
   ========================================================================== */

/* --------------------------------------------------------------------------
   Partenaires
   -------------------------------------------------------------------------- */

.oikos-p-intro__colonnes,
.oikos-c-intro__colonnes,
.oikos-introuvable__colonnes {
	gap: clamp(2rem, 5vw, 5rem) !important;
}

.oikos-p-intro .wp-block-buttons,
.oikos-introuvable .wp-block-buttons {
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.oikos-p-intro__photo .wp-block-image,
.oikos-c-intro__photo .wp-block-image,
.oikos-introuvable__photo .wp-block-image {
	margin: 0;
}

.oikos-p-intro__photo img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

@media (max-width: 781px) {
	.oikos-p-intro__photo,
	.oikos-introuvable__photo {
		margin-inline: 6% 10%;
	}
}

/* Sponsors : une ligne par marque, logo en couleur à gauche. */
.oikos-sponsors {
	margin-top: clamp(2rem, 4vw, 3rem) !important;
	border-top: 1px solid var(--o-ligne-forte);
}

.oikos-sponsor {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"logo"
		"titre"
		"texte"
		"lien";
	gap: 0.6rem;
	margin: 0 !important;
	padding-block: clamp(1.75rem, 3.5vw, 2.75rem);
	border-bottom: 1px solid var(--o-ligne-forte);
}

.oikos-sponsor > * {
	margin: 0 !important;
}

.oikos-sponsor__logo {
	grid-area: logo;
	margin-bottom: 0.6rem !important;
}

.oikos-sponsor > .wp-block-heading {
	grid-area: titre;
	font-size: var(--wp--preset--font-size--grand);
}

.oikos-sponsor > p:not(.oikos-lien) {
	grid-area: texte;
	max-width: 40rem;
	color: var(--o-texte-doux);
}

.oikos-sponsor > .oikos-lien {
	grid-area: lien;
}

.oikos-sponsor__logo img {
	display: block;
	width: auto;
	height: 3.5rem;
	max-width: 13rem;
	object-fit: contain;
	object-position: left center;
	border-radius: 0;
}

.oikos-sponsor__logo--unil img { height: 4.6rem; }
.oikos-sponsor__logo--patagonia img { height: 2.5rem; }
.oikos-sponsor__logo--nest img { height: 3.3rem; }
.oikos-sponsor__logo--paleta img { height: 5.6rem; }

@media (min-width: 900px) {
	.oikos-sponsor {
		grid-template-columns: 15rem minmax(0, 1fr) auto;
		grid-template-areas:
			"logo titre lien"
			"logo texte lien";
		column-gap: clamp(1.5rem, 4vw, 3.5rem);
		row-gap: 0.4rem;
		align-items: start;
	}
	.oikos-sponsor__logo {
		align-self: center;
		margin-bottom: 0 !important;
	}
	.oikos-sponsor > .oikos-lien {
		align-self: center;
		text-align: right;
	}
}

/* Soutenir : les trois formules, du plus petit au plus grand, comme un arbre qui devient une planète. */
.oikos-p-soutenir__colonnes {
	gap: clamp(2.5rem, 6vw, 6rem) !important;
}

.oikos-p-formules__titre {
	margin-top: clamp(2.5rem, 5vw, 3.5rem) !important;
	font-size: var(--wp--preset--font-size--moyen);
}

.oikos-p-formules {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	border-top: 2px solid var(--o-nuit);
	max-width: 36rem;
}

.oikos-p-formules > li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding-block: 0.7rem 0.55rem;
	border-bottom: 1px solid var(--o-ligne-forte);
	font-size: var(--wp--preset--font-size--moyen);
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.oikos-p-formules > li strong {
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--o-nuit);
}

.oikos-p-formules > li:nth-child(1) strong { font-size: 1.6em; }
.oikos-p-formules > li:nth-child(2) strong { font-size: clamp(1.9em, 7vw, 2.35em); }
.oikos-p-formules > li:nth-child(3) strong { font-size: clamp(2.3em, 9vw, 3.4em); }

.oikos-p-formules > li::after {
	content: "";
	order: -1;
	flex: none;
	width: 0.55em;
	height: 0.55em;
	border-radius: 50%;
	background: var(--o-accent);
	align-self: center;
}

.oikos-p-formules > li:nth-child(2)::after { width: 0.75em; height: 0.75em; }
.oikos-p-formules > li:nth-child(3)::after { width: 1em; height: 1em; }

.oikos-p-formules > li strong {
	margin-right: auto;
}

.oikos-p-soutenir__offre > .wp-block-heading:first-child {
	margin-top: 0.4rem;
	font-size: var(--wp--preset--font-size--moyen);
}

.oikos-p-soutenir__offre .is-style-pastilles > li {
	margin-block: 0.75rem;
}

/* Appel final : l'équipe Finance */
.oikos-p-appel h2 {
	font-size: var(--wp--preset--font-size--titre);
	line-height: 1;
}

.oikos-p-appel .wp-block-buttons {
	margin-top: 2rem;
}

.oikos-p-appel__email {
	margin-top: 1.5rem !important;
	font-size: var(--wp--preset--font-size--petit);
	color: var(--o-blanc);
	overflow-wrap: anywhere;
}

.oikos-p-appel__email a {
	color: var(--o-blanc);
	font-weight: 600;
}

.oikos-p-appel__email a:hover {
	color: var(--o-blanc);
	text-decoration-thickness: 0.14em;
}

.oikos-p-appel .wp-block-image.is-style-cercle img {
	aspect-ratio: 1;
	border-radius: 50%;
	object-fit: cover;
	object-position: center;
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */

.oikos-c-intro__photo img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* L'adresse e-mail en très grand, sur toute la largeur. */
.oikos-c-email {
	margin-top: clamp(2.5rem, 6vw, 4.5rem) !important;
	font-size: clamp(0.95rem, 3.9vw, 3.4rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.03em;
	overflow-wrap: anywhere;
}

.oikos-c-email a {
	color: var(--o-nuit);
	text-decoration-color: var(--o-bleu);
	text-decoration-thickness: 0.07em;
	text-underline-offset: 0.16em;
}

.oikos-c-email a:hover {
	color: var(--o-bleu-texte);
	text-decoration-color: currentColor;
}

.oikos-c-coordonnees {
	margin-top: clamp(1.5rem, 3vw, 2.5rem) !important;
	border-top: 1px solid var(--o-ligne-forte);
}

.oikos-c-ligne {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.4rem;
	margin: 0 !important;
	padding-block: clamp(1.25rem, 2.5vw, 1.75rem);
	border-bottom: 1px solid var(--o-ligne-forte);
}

.oikos-c-ligne > * {
	margin: 0 !important;
}

.oikos-c-ligne h3 {
	font-size: var(--wp--preset--font-size--moyen);
	letter-spacing: -0.01em;
}

.oikos-c-ligne p {
	font-size: var(--wp--preset--font-size--moyen);
	line-height: 1.5;
}

.oikos-c-ligne a {
	color: var(--o-nuit);
	font-weight: 600;
	text-decoration-color: var(--o-bleu);
	text-decoration-thickness: 0.12em;
	overflow-wrap: anywhere;
}

.oikos-c-ligne a:hover {
	color: var(--o-bleu-texte);
}

@media (min-width: 782px) {
	.oikos-c-ligne {
		grid-template-columns: 16rem minmax(0, 1fr);
		column-gap: clamp(1.5rem, 4vw, 3.5rem);
		align-items: baseline;
	}
}

.oikos-c-formulaire__colonnes {
	gap: clamp(2rem, 5vw, 5rem) !important;
}

/* --------------------------------------------------------------------------
   Mentions légales
   -------------------------------------------------------------------------- */

.oikos-ml__colonnes {
	gap: clamp(2rem, 6vw, 6rem) !important;
}

.oikos-ml__sommaire > * {
	margin-block: 0;
}

.oikos-ml__sommaire-titre {
	font-weight: 600;
	color: var(--o-texte-doux);
}

.oikos-ml__liens {
	list-style: none;
	padding: 0;
	margin-top: 0.75rem !important;
	border-top: 1px solid var(--o-ligne-forte);
}

.oikos-ml__liens > li {
	margin: 0;
	border-bottom: 1px solid var(--o-ligne-forte);
}

.oikos-ml__liens a {
	display: block;
	padding-block: 0.7rem;
	color: var(--o-nuit);
	font-weight: 600;
	text-decoration: none;
}

.oikos-ml__liens a:hover {
	color: var(--o-bleu-texte);
}

@media (min-width: 782px) {
	.oikos-ml__sommaire {
		position: sticky;
		top: calc(var(--o-entete-h) + 2rem);
		align-self: flex-start;
	}
}

.oikos-ml__texte > h2 {
	margin: clamp(2.5rem, 5vw, 3.5rem) 0 1.1rem;
	font-size: var(--wp--preset--font-size--grand);
	scroll-margin-top: calc(var(--o-entete-h) + 1.5rem);
}

.oikos-ml__texte > h2:first-child {
	margin-top: 0;
}

.oikos-ml__texte > p {
	max-width: 42rem;
	margin-block: 0 1rem;
}

.oikos-ml__texte a {
	color: var(--o-nuit);
	font-weight: 600;
	text-decoration-color: var(--o-bleu);
	text-decoration-thickness: 0.12em;
	overflow-wrap: anywhere;
}

.oikos-ml__texte a:hover {
	color: var(--o-bleu-texte);
}

/* --------------------------------------------------------------------------
   Page introuvable (404)
   -------------------------------------------------------------------------- */

.oikos-introuvable h1 {
	max-width: 13ch;
}

.oikos-introuvable__photo img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.oikos-introuvable__suite {
	gap: clamp(2rem, 5vw, 5rem) !important;
}

.oikos-introuvable__suite .oikos-recherche {
	margin-top: 1.5rem;
}

.oikos-introuvable__pages {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: clamp(1.5rem, 3vw, 2.5rem);
	border-top: 1px solid var(--o-ligne-forte);
}

@media (min-width: 600px) {
	.oikos-introuvable__pages {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.oikos-introuvable__pages > li {
	margin: 0;
	border-bottom: 1px solid var(--o-ligne-forte);
}

.oikos-introuvable__pages a {
	display: block;
	padding-block: 1rem;
	color: var(--o-nuit);
	font-size: var(--wp--preset--font-size--grand);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.15;
	text-decoration: none;
}

.oikos-introuvable__pages a:hover {
	color: var(--o-bleu-texte);
	text-decoration: underline;
	text-decoration-thickness: 0.08em;
}
