/* ==========================================================================
   Site4 — page « Appels d'offres » (maquette Figma node 43:2096)
   S'appuie sur projets.css (fil d'Ariane, introduction, bandeau de contact).
   ========================================================================== */

.page-appels {
	margin: 56.85px auto 104.2px;
}

/* ---------- Introduction ---------- */

.pp-intro--appels .pp-intro__head {
	max-width: 560px;
}

.pp-intro--appels .pp-intro__title {
	font-size: 61.648px;
	line-height: 67.813px;
	letter-spacing: -2.4659px;
}

.pp-intro--appels .pp-intro__aside {
	width: 308.24px;
}

.ao-intro__muted {
	padding-top: 13.7px;
	font-size: 13.7px;
	line-height: 23.974px;
	color: var(--pp-muted);
}

/* ---------- Documents à télécharger ---------- */

.ao-docs {
	padding: 29.97px;
	border: 0.856px solid #e1e8f2;
	border-radius: 13.7px;
	background: #edf2f8;
}

.ao-docs__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.ao-docs__title {
	padding-top: 8.56px;
	font-size: 27.399px;
	font-weight: 500;
	line-height: 34.249px;
	letter-spacing: -0.5994px;
}

.ao-docs__format {
	display: flex;
	align-items: center;
	gap: 5.99px;
	font-size: 10.275px;
	line-height: 16.44px;
	color: var(--pp-muted);
	white-space: nowrap;
}

.ao-docs__format img {
	width: 15.41px;
	height: 15.41px;
	padding: 1.28px;
}

.ao-docs__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18.84px;
	margin-top: 21.41px;
}

.ao-doc {
	display: flex;
	flex-direction: column;
	padding: 23.12px;
	border: 0.856px solid #e1e7ef;
	border-radius: 10.275px;
	background: #fff;
	box-shadow: 0 6.85px 8.56px rgba(16, 34, 59, 0.09);
}

.ao-doc__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.ao-doc__icon {
	display: grid;
	place-items: center;
	width: 40.24px;
	height: 44.52px;
	border: 0.856px solid #e2eaf5;
	border-radius: 8.56px;
	background: #f0f4fb;
}

.ao-doc__icon img {
	max-width: 15.41px;
	max-height: 15.41px;
}

.ao-doc__num {
	font-size: 10.275px;
	line-height: 16.44px;
	letter-spacing: 1.1987px;
	color: #9ca8b7;
}

.ao-doc__title {
	padding-top: 20.55px;
	font-size: 18.837px;
	font-weight: 500;
	line-height: 26.372px;
	letter-spacing: -0.5137px;
}

.ao-doc__text {
	padding-top: 8.56px;
	font-size: 13.7px;
	line-height: 23.974px;
	color: var(--pp-muted);
}

.ao-doc__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 46.57px;
	margin-top: 21.41px;
	padding: 12.84px 15.41px;
	border: 0.856px solid var(--pp-blue);
	border-radius: 5.99px;
	background: #fff;
	font-size: 11.987px;
	line-height: 19.18px;
	color: var(--pp-blue);
	transition: background-color 0.25s, color 0.25s;
}

.ao-doc__button img {
	width: 15.41px;
	height: 15.41px;
	padding: 1.28px;
}

a.ao-doc__button:hover {
	background: #f0f4fb;
}

/* Pas encore de fichier : même apparence, non cliquable */
.ao-doc__button.is-unavailable {
	cursor: default;
}

.ao-doc__meta {
	padding-top: 11.13px;
	font-size: 10.275px;
	line-height: 16.44px;
	color: #8a96a7;
}

/* ---------- Tableau ---------- */

.ao-list {
	padding: 55.65px 0;
	scroll-margin-top: 24px;
}

.ao-list__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.ao-list__title {
	padding-top: 10.27px;
	font-size: 27.399px;
	font-weight: 500;
	line-height: 34.249px;
	letter-spacing: -1.0275px;
}

.ao-search {
	display: flex;
	align-items: center;
	gap: 8.56px;
	flex: none;
	width: 291.12px;
	padding: 10.28px 13.7px;
	border: 0.856px solid var(--pp-line);
	border-radius: 25.69px;
	background: #fff;
	transition: border-color 0.25s, box-shadow 0.25s;
}

.ao-search:focus-within {
	border-color: var(--pp-blue);
	box-shadow: 0 0 0 3px rgba(27, 76, 156, 0.1);
}

.ao-search img {
	width: 15.41px;
	height: 15.41px;
	padding: 1.28px;
	flex: none;
}

.ao-search input {
	flex: 1;
	min-width: 0;
	height: 19.17px;
	padding: 0;
	border: 0;
	outline: 0;
	background: transparent;
	font-size: 11.987px;
	color: var(--pp-ink);
}

.ao-search input::placeholder {
	color: rgba(21, 34, 54, 0.5);
}

.ao-search input::-webkit-search-cancel-button {
	cursor: pointer;
}

/* Le tableau défile horizontalement sur petit écran */
.ao-table {
	margin-top: 20.55px;
	overflow-x: auto;
	border: 0.856px solid #e1e7ed;
	border-radius: 10.275px;
	background: #fff;
}

.ao-table table {
	width: 100%;
	min-width: 899px;
	border-collapse: collapse;
	table-layout: fixed;
}

.ao-table th,
.ao-table td {
	text-align: start;
	vertical-align: middle;
}

.ao-table th {
	height: 50px;
	padding: 0 15.41px;
	background: #f1f4f8;
	font-size: 11.987px;
	font-weight: 400;
	line-height: 19.18px;
	letter-spacing: 0.4281px;
	color: #5c6a7d;
}

.ao-table td {
	height: 88.35px;
	padding: 21.41px 15.41px;
	border-top: 0.856px solid #eef1f4;
	font-size: 11.987px;
	line-height: 19.18px;
}

.ao-table tr[hidden] {
	display: none;
}

.ao-ref {
	font-weight: 500;
	color: var(--pp-blue);
}

.ao-table td.ao-object {
	font-size: 13.7px;
	font-weight: 500;
	line-height: 23.974px;
}

.ao-commune {
	color: var(--pp-muted);
	white-space: nowrap;
}

.ao-commune img {
	display: inline-block;
	width: 10.28px;
	height: 10.28px;
	margin-inline-end: 5.99px;
	padding: 0.43px 1.29px;
	vertical-align: -1px;
}

.ao-muted {
	color: #8a96a7;
}

.ao-status {
	display: inline-flex;
	align-items: center;
	height: 28.42px;
	padding: 5.14px 8.56px;
	border: 0.856px solid #dfe6f0;
	border-radius: 21.41px;
	background: #f2f5fa;
	font-size: 10.275px;
	line-height: 16.44px;
	color: #64748b;
	white-space: nowrap;
}

.ao-status--ouvert {
	border-color: #c9e8d4;
	background: #edf8f1;
	color: #1f7a45;
}

.ao-status--attribue {
	border-color: #cbd8eb;
	background: #eef3fb;
	color: var(--pp-blue);
}

.ao-status--annule {
	border-color: #f1d3cf;
	background: #fcf1ef;
	color: #b4433a;
}

.ao-file {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--pp-blue);
}

.ao-file:hover {
	text-decoration: underline;
}

.ao-file img {
	width: 12.84px;
	height: 12.84px;
}

.ao-empty td {
	height: auto;
	padding: 32px 15.41px;
	color: var(--pp-muted);
	text-align: center;
}

/* ---------- Bandeau de contact : titre en graisse normale ---------- */

.pp-cta--regular .pp-cta__title {
	font-weight: 400;
}

/* ==========================================================================
   Tablette
   ========================================================================== */

@media (max-width: 1023px) {
	.pp-intro--appels .pp-intro__aside {
		width: auto;
		max-width: 420px;
	}
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 767px) {
	.page-appels {
		margin: 24px auto 56px;
	}

	.pp-intro--appels .pp-intro__title {
		font-size: 40px;
		line-height: 46px;
		letter-spacing: -1.6px;
	}

	.ao-docs {
		padding: 20px;
	}

	.ao-docs__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.ao-docs__grid {
		grid-template-columns: 1fr;
	}

	.ao-list {
		padding: 40px 0;
	}

	.ao-list__head {
		flex-direction: column;
		align-items: stretch;
		gap: 16px;
	}

	.ao-search {
		width: auto;
	}
}

/* ==========================================================================
   Animations (réservées aux visiteurs qui n'ont pas demandé à les réduire)
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {
	.ao-doc {
		transition: transform 0.45s var(--ease-out), box-shadow 0.45s;
	}

	.ao-doc:hover {
		box-shadow: 0 14px 28px rgba(16, 34, 59, 0.12);
		transform: translateY(-4px);
	}

	.ao-doc__button img {
		transition: transform 0.35s var(--ease-out);
	}

	a.ao-doc__button:hover img {
		transform: translateY(2px);
	}

	.ao-table tbody tr {
		transition: background-color 0.2s;
	}

	.ao-table tbody tr:not(.ao-empty):hover {
		background: #f8fafc;
	}

	/* Lignes qui réapparaissent pendant la recherche */
	.ao-table tr.is-entering {
		animation: site4-fade 0.35s var(--ease-out);
	}
}
