/* ==========================================================================
   Kaz Péi Annonces
   Jetons par défaut (le thème Kaz Péi les redéfinit ; un autre thème peut aussi).
   Règle de formes : boutons en pilule, cartes 14 px, champs 10 px.
   ========================================================================== */

:root {
	--kp-bg: #f2f5f2;
	--kp-surface: #fbfcfa;
	--kp-surface-2: #e6ece7;
	--kp-text: #16201b;
	--kp-muted: #4a5750;
	--kp-line: #d3dbd5;
	--kp-accent: #c43d1a;
	--kp-accent-fort: #a3310f;
	--kp-sur-accent: #fbfcfa;
	--kp-ok: #1d6b46;
	--kp-ok-fond: #e1f0e7;
	--kp-erreur: #a3261a;
	--kp-erreur-fond: #f8e3df;
	--kp-rayon: 14px;
	--kp-rayon-champ: 10px;
	--kp-ombre: 0 1px 2px rgb(22 32 27 / 0.06), 0 8px 24px -12px rgb(22 32 27 / 0.18);
	--kp-police-titre: system-ui, sans-serif;
	--kp-police-texte: system-ui, sans-serif;
}

@media (prefers-color-scheme: dark) {
	:root {
		--kp-bg: #101613;
		--kp-surface: #171f1b;
		--kp-surface-2: #202a25;
		--kp-text: #e8eee9;
		--kp-muted: #a7b4ad;
		--kp-line: #2c3832;
		--kp-accent: #f06a41;
		--kp-accent-fort: #ff8a64;
		--kp-sur-accent: #101613;
		--kp-ok: #7fd4a5;
		--kp-ok-fond: #173326;
		--kp-erreur: #ff9a8a;
		--kp-erreur-fond: #3a1c17;
		--kp-ombre: 0 1px 2px rgb(0 0 0 / 0.3), 0 10px 28px -14px rgb(0 0 0 / 0.6);
	}
}

/* ---------- Base ---------- */

.kp-icon {
	inline-size: 1.15em;
	block-size: 1.15em;
	flex: none;
	vertical-align: -0.2em;
}

.kp-conteneur {
	inline-size: min(100% - 32px, 1200px);
	margin-inline: auto;
}

@media (min-width: 768px) {
	.kp-conteneur { inline-size: min(100% - 64px, 1200px); }
}

.kp-page { padding-block: 24px 72px; }

.kp-pot {
	position: absolute !important;
	inset-inline-start: -9999px;
	block-size: 1px;
	overflow: hidden;
}

/* ---------- Boutons ---------- */

.kp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-block-size: 44px;
	padding: 0.65em 1.3em;
	border: 1.5px solid transparent;
	border-radius: 999px;
	font: 600 1rem/1.2 var(--kp-police-texte);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.1s;
}

.kp-btn:active { transform: translateY(1px); }

.kp-btn:focus-visible,
.kp-lien-bouton:focus-visible,
.kp-champ :is(input, select, textarea):focus-visible {
	outline: 2.5px solid var(--kp-accent);
	outline-offset: 2px;
}

.kp-btn--accent { background: var(--kp-accent); color: var(--kp-sur-accent); }
.kp-btn--accent:hover { background: var(--kp-accent-fort); color: var(--kp-sur-accent); }
.kp-btn--contour { background: transparent; border-color: currentColor; color: var(--kp-text); }
.kp-btn--contour:hover { background: var(--kp-surface-2); color: var(--kp-text); }
.kp-btn--discret { background: var(--kp-surface-2); color: var(--kp-text); }
.kp-btn--discret:hover { background: var(--kp-line); color: var(--kp-text); }
.kp-btn--clair { background: var(--kp-surface); color: var(--kp-text); box-shadow: var(--kp-ombre); }
.kp-btn--grand { min-block-size: 52px; padding-inline: 2em; font-size: 1.05rem; }
.kp-btn--plein { inline-size: 100%; }

.kp-lien-bouton {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.35em 0.2em;
	border: 0;
	background: none;
	color: var(--kp-text);
	font: 500 0.95rem/1.2 var(--kp-police-texte);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: var(--kp-line);
	cursor: pointer;
}

.kp-lien-bouton:hover { text-decoration-color: currentColor; }
.kp-lien-bouton--danger { color: var(--kp-erreur); }

.kp-lien-fleche {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	color: var(--kp-accent);
	font-weight: 600;
	text-decoration: none;
}

.kp-lien-fleche:hover .kp-icon { transform: translateX(3px); }
.kp-lien-fleche .kp-icon { transition: transform 0.2s; }

/* ---------- Messages ---------- */

.kp-notice {
	margin-block: 0 20px;
	padding: 14px 18px;
	border-radius: var(--kp-rayon-champ);
	background: var(--kp-surface-2);
	color: var(--kp-text);
}

.kp-notice p { margin: 0 0 0.4em; }
.kp-notice p:last-child { margin: 0; }
.kp-notice ul { margin: 0.3em 0 0; padding-inline-start: 1.2em; }
.kp-notice--ok { background: var(--kp-ok-fond); color: var(--kp-ok); }
.kp-notice--erreur { background: var(--kp-erreur-fond); color: var(--kp-erreur); }

/* ---------- Formulaires ---------- */

.kp-form { display: grid; gap: 22px; }
.kp-form--compact { gap: 14px; }

.kp-bloc {
	margin: 0;
	padding: 22px;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-rayon);
	background: var(--kp-surface);
	display: grid;
	gap: 16px;
	min-inline-size: 0;
}

.kp-bloc > legend {
	padding-inline: 8px;
	margin-inline-start: -8px;
	font: 700 1.2rem/1.2 var(--kp-police-titre);
	color: var(--kp-text);
}

.kp-champ { display: grid; gap: 6px; min-inline-size: 0; margin: 0; border: 0; padding: 0; }

.kp-champ > label,
.kp-champ > span,
.kp-champ > legend {
	font: 600 0.9rem/1.3 var(--kp-police-texte);
	color: var(--kp-text);
	padding: 0;
}

.kp-champ :is(input:not([type="checkbox"], [type="radio"], [type="file"]), select, textarea) {
	inline-size: 100%;
	min-block-size: 46px;
	padding: 10px 12px;
	border: 1.5px solid var(--kp-line);
	border-radius: var(--kp-rayon-champ);
	background: var(--kp-surface);
	color: var(--kp-text);
	font: 400 1rem/1.4 var(--kp-police-texte);
	box-sizing: border-box;
}

.kp-champ textarea { min-block-size: 110px; resize: vertical; }
.kp-champ :is(input, select, textarea):hover { border-color: var(--kp-muted); }
.kp-champ ::placeholder { color: var(--kp-muted); opacity: 0.8; }
.kp-champ input[type="file"] { font: inherit; color: var(--kp-text); }

.kp-aide { margin: 0; font-size: 0.875rem; line-height: 1.45; color: var(--kp-muted); }
.kp-aide a { color: inherit; }
.kp-facultatif { font-weight: 400; color: var(--kp-muted); font-size: 0.85em; }

.kp-grille-champs {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.kp-grille-champs--2 { grid-template-columns: 1fr 1fr; }
.kp-grille-champs--5 { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }

.kp-cases {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
}

.kp-case {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1.5px solid var(--kp-line);
	border-radius: var(--kp-rayon-champ);
	background: var(--kp-surface);
	cursor: pointer;
	line-height: 1.35;
}

.kp-case:has(input:checked) { border-color: var(--kp-accent); background: color-mix(in srgb, var(--kp-accent) 7%, var(--kp-surface)); }
.kp-case input { accent-color: var(--kp-accent); inline-size: 18px; block-size: 18px; flex: none; margin: 0; }
.kp-case .kp-icon { color: var(--kp-muted); }

.kp-case--ligne { align-items: flex-start; border: 0; padding: 4px 0; background: none; }
.kp-case--ligne:has(input:checked) { background: none; }
.kp-case--ligne input { margin-block-start: 2px; }
.kp-case--petit { font-size: 0.85rem; color: var(--kp-muted); }
.kp-case--obligatoire { padding: 14px; border: 1.5px dashed var(--kp-line); border-radius: var(--kp-rayon-champ); }

.kp-cases--formules { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.kp-case--carte { align-items: flex-start; padding: 14px; }
.kp-case--carte span { display: grid; gap: 4px; }
.kp-case--carte small { color: var(--kp-muted); font-size: 0.85rem; }

.kp-form__envoi { display: grid; gap: 10px; justify-items: start; }

/* Photos */
.kp-photos-actuelles,
.kp-apercu {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
}

.kp-photo {
	display: grid;
	gap: 4px;
	font-size: 0.85rem;
}

.kp-photo img {
	inline-size: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--kp-rayon-champ);
	display: block;
}

.kp-photo label { display: flex; align-items: center; gap: 6px; cursor: pointer; }

/* Périodes */
.kp-periodes { display: grid; gap: 14px; justify-items: start; }
.kp-periodes__liste { display: grid; gap: 14px; inline-size: 100%; }

.kp-periode {
	display: grid;
	gap: 12px;
	padding: 16px;
	border-radius: var(--kp-rayon-champ);
	background: var(--kp-surface-2);
}

.kp-periode__dates { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.kp-periode__prix { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
.kp-periode__retirer { justify-self: start; font-size: 0.875rem; }

/* ---------- Recherche ---------- */

.kp-recherche {
	display: grid;
	gap: 12px;
	margin-block: 0 28px;
}

.kp-recherche__champs {
	display: grid;
	gap: 12px;
	padding: 14px;
	border-radius: var(--kp-rayon);
	background: var(--kp-surface);
	border: 1px solid var(--kp-line);
	box-shadow: var(--kp-ombre);
	grid-template-columns: 1fr 1fr;
}

.kp-recherche__champs .kp-champ--lieu,
.kp-recherche__go { grid-column: 1 / -1; }

@media (min-width: 900px) {
	.kp-recherche__champs {
		grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)) minmax(0, 0.7fr) minmax(0, 1fr) auto;
		align-items: end;
	}
	.kp-recherche__champs .kp-champ--lieu,
	.kp-recherche__go { grid-column: auto; }
}

.kp-recherche--hero .kp-recherche__champs {
	grid-template-columns: 1fr 1fr;
	padding: 18px;
}

@media (min-width: 900px) {
	.kp-recherche--hero .kp-recherche__champs { grid-template-columns: 1fr 1fr; }
	.kp-recherche--hero .kp-champ--lieu,
	.kp-recherche--hero .kp-recherche__go { grid-column: 1 / -1; }
}

.kp-recherche__go { min-block-size: 46px; }

.kp-recherche__plus summary {
	cursor: pointer;
	font-weight: 600;
	color: var(--kp-text);
	inline-size: fit-content;
	padding-block: 4px;
}

.kp-recherche__plus-grille {
	display: grid;
	gap: 14px;
	margin-block-start: 12px;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.kp-champ--large { grid-column: 1 / -1; }

/* ---------- Grilles et cartes ---------- */

.kp-grille {
	display: grid;
	gap: 28px 22px;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
}

@media (min-width: 1024px) {
	.kp-grille--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.kp-carte { display: grid; gap: 12px; align-content: start; position: relative; }

.kp-carte__media {
	display: block;
	aspect-ratio: 4 / 3;
	border-radius: var(--kp-rayon);
	overflow: hidden;
	background: var(--kp-surface-2);
}

.kp-carte__media img {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.kp-carte:hover .kp-carte__media img { transform: scale(1.03); }

.kp-carte__vide {
	display: grid;
	place-items: center;
	block-size: 100%;
	color: var(--kp-muted);
	font-size: 2.5rem;
	background: repeating-linear-gradient(135deg, var(--kp-surface-2) 0 12px, color-mix(in srgb, var(--kp-surface-2) 70%, var(--kp-line)) 12px 13px);
}

.kp-carte__corps { display: grid; gap: 6px; }

.kp-carte__lieu {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	font-size: 0.875rem;
	color: var(--kp-muted);
}

.kp-carte__type::before { content: "·"; margin-inline-end: 6px; }

.kp-carte__titre {
	margin: 0;
	font: 700 1.15rem/1.25 var(--kp-police-titre);
	letter-spacing: -0.01em;
}

.kp-carte__titre a { color: var(--kp-text); text-decoration: none; }
.kp-carte__titre a::after { content: ""; position: absolute; inset: 0; border-radius: var(--kp-rayon); }
.kp-carte__titre a:focus-visible { outline: none; }
.kp-carte__titre a:focus-visible::after { outline: 2.5px solid var(--kp-accent); outline-offset: 4px; }

.kp-carte__infos {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 14px;
	margin: 0;
	font-size: 0.9rem;
	color: var(--kp-muted);
}

.kp-carte__infos span { display: inline-flex; align-items: center; gap: 5px; }
.kp-carte__badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 0; }

.kp-carte__pied {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin-block-start: 4px;
	padding-block-start: 10px;
	border-block-start: 1px solid var(--kp-line);
}

.kp-carte__prix, .kp-carte__dispo { margin: 0; }
.kp-carte__prix strong { font-size: 1.1rem; }
.kp-carte__a-partir, .kp-carte__prix span { font-size: 0.85rem; color: var(--kp-muted); }
.kp-carte__dispo { font-size: 0.85rem; color: var(--kp-ok); font-weight: 600; }
.kp-carte__mois { display: block; font-size: 0.85rem; color: var(--kp-muted); }

.kp-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--kp-surface-2);
	color: var(--kp-text);
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.5;
}

.kp-badge--verifie { background: var(--kp-ok-fond); color: var(--kp-ok); }

/* ---------- Fil d'Ariane, titres ---------- */

.kp-fil {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-block-end: 18px;
	font-size: 0.875rem;
	color: var(--kp-muted);
}

.kp-fil a { color: var(--kp-muted); }
.kp-fil a:hover { color: var(--kp-text); }

.kp-titre-section {
	margin: 0 0 20px;
	font: 700 clamp(1.35rem, 1.1rem + 1vw, 1.75rem)/1.2 var(--kp-police-titre);
	letter-spacing: -0.015em;
}

.kp-archive__entete { margin-block-end: 22px; max-inline-size: 68ch; }
.kp-archive__entete h1 { margin: 0 0 10px; font: 800 clamp(1.9rem, 1.4rem + 2vw, 2.8rem)/1.08 var(--kp-police-titre); letter-spacing: -0.025em; }
.kp-archive__intro, .kp-secteur__intro { margin: 0; color: var(--kp-muted); font-size: 1.05rem; line-height: 1.6; }
.kp-archive__compte { margin: 0 0 16px; font-weight: 600; min-block-size: 1.5em; }

.kp-puces { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; }

.kp-puces a {
	display: inline-block;
	padding: 6px 14px;
	border: 1.5px solid var(--kp-line);
	border-radius: 999px;
	color: var(--kp-text);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 500;
}

.kp-puces a:hover { border-color: var(--kp-text); }

.kp-pagination { margin-block-start: 36px; }
.kp-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }

.kp-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-inline-size: 44px;
	min-block-size: 44px;
	padding-inline: 12px;
	border-radius: 999px;
	border: 1.5px solid var(--kp-line);
	color: var(--kp-text);
	text-decoration: none;
}

.kp-pagination .page-numbers.current { background: var(--kp-text); color: var(--kp-bg); border-color: var(--kp-text); }

/* ---------- États vides, bandeaux ---------- */

.kp-vide {
	display: grid;
	justify-items: center;
	gap: 10px;
	padding: 40px 20px;
	border: 1.5px dashed var(--kp-line);
	border-radius: var(--kp-rayon);
	text-align: center;
	color: var(--kp-muted);
}

.kp-vide > .kp-icon { font-size: 2.2rem; color: var(--kp-muted); }
.kp-vide p { margin: 0; max-inline-size: 52ch; }
.kp-vide strong { color: var(--kp-text); }

.kp-vide--ligne {
	justify-items: start;
	text-align: start;
	padding: 20px 22px;
}

@media (min-width: 768px) {
	.kp-vide--ligne { grid-template-columns: 1fr auto; align-items: center; }
}

.kp-bandeau-proprio {
	display: grid;
	gap: 18px;
	margin-block-start: 56px;
	padding: 28px;
	border-radius: var(--kp-rayon);
	background: var(--kp-text);
	color: var(--kp-bg);
}

.kp-bandeau-proprio h2 { margin: 0 0 6px; font: 700 1.4rem/1.2 var(--kp-police-titre); color: inherit; }
.kp-bandeau-proprio p { margin: 0; opacity: 0.85; }

@media (min-width: 768px) {
	.kp-bandeau-proprio { grid-template-columns: 1fr auto; align-items: center; padding: 32px 36px; }
}

/* ---------- Fiche logement ---------- */

.kp-logement__entete { margin-block-end: 20px; }

.kp-logement__titre {
	margin: 0 0 12px;
	font: 800 clamp(1.8rem, 1.3rem + 2vw, 2.7rem)/1.1 var(--kp-police-titre);
	letter-spacing: -0.025em;
	max-inline-size: 30ch;
}

.kp-logement__sous {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 0 0 12px;
	color: var(--kp-muted);
}

.kp-logement__sous span { display: inline-flex; align-items: center; gap: 6px; }
.kp-logement__badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }

.kp-galerie {
	position: relative;
	display: grid;
	gap: 8px;
	margin-block-end: 36px;
	border-radius: var(--kp-rayon);
	overflow: hidden;
	grid-auto-flow: column;
	grid-auto-columns: 88%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
}

.kp-galerie__item {
	display: block;
	padding: 0;
	border: 0;
	background: var(--kp-surface-2);
	cursor: zoom-in;
	scroll-snap-align: start;
	aspect-ratio: 4 / 3;
	border-radius: var(--kp-rayon);
	overflow: hidden;
}

.kp-galerie__item img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }

.kp-galerie__toutes {
	position: absolute;
	inset-block-end: 14px;
	inset-inline-end: 14px;
	min-block-size: 38px;
	padding: 0.4em 1em;
	font-size: 0.9rem;
}

@media (min-width: 768px) {
	.kp-galerie {
		overflow: hidden;
		grid-auto-flow: row;
		grid-auto-columns: auto;
		block-size: min(62vh, 560px);
	}
	.kp-galerie__item { aspect-ratio: auto; border-radius: 0; }
	.kp-galerie--1 { grid-template-columns: 1fr; }
	.kp-galerie--2 { grid-template-columns: 2fr 1fr; }
	.kp-galerie--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
	.kp-galerie--3 .kp-galerie__item:first-child { grid-row: 1 / 3; }
	.kp-galerie--4 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
	.kp-galerie--4 .kp-galerie__item:first-child { grid-row: 1 / 3; }
	.kp-galerie--4 .kp-galerie__item:nth-child(4) { grid-column: 2 / 4; }
	.kp-galerie--5 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
	.kp-galerie--5 .kp-galerie__item:first-child { grid-row: 1 / 3; }
}

.kp-galerie--vide {
	display: grid;
	place-items: center;
	gap: 8px;
	padding: 48px 20px;
	background: var(--kp-surface-2);
	color: var(--kp-muted);
	font-size: 2rem;
	block-size: auto;
}

.kp-galerie--vide p { font-size: 1rem; margin: 0; }

.kp-visionneuse {
	inline-size: min(100vw, 1100px);
	max-inline-size: 100vw;
	block-size: 100dvh;
	max-block-size: 100dvh;
	margin: auto;
	padding: 0;
	border: 0;
	background: var(--kp-bg);
	color: var(--kp-text);
}

.kp-visionneuse::backdrop { background: rgb(10 14 12 / 0.85); }
.kp-visionneuse__liste { display: grid; gap: 12px; padding: 64px 16px 24px; }
.kp-visionneuse figure { margin: 0; }
.kp-visionneuse img { inline-size: 100%; block-size: auto; border-radius: var(--kp-rayon-champ); display: block; }

.kp-visionneuse__fermer {
	position: sticky;
	inset-block-start: 12px;
	float: inline-end;
	margin: 12px;
	display: grid;
	place-items: center;
	inline-size: 44px;
	block-size: 44px;
	border: 0;
	border-radius: 999px;
	background: var(--kp-surface);
	color: var(--kp-text);
	font-size: 1.3rem;
	cursor: pointer;
	box-shadow: var(--kp-ombre);
	z-index: 1;
}

.kp-logement__corps { display: grid; gap: 40px; }

@media (min-width: 1024px) {
	.kp-logement__corps { grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: start; }
	.kp-logement__aside { position: sticky; inset-block-start: 96px; }
}

.kp-section { padding-block: 0 32px; margin-block-end: 32px; border-block-end: 1px solid var(--kp-line); }
.kp-section:last-child { border: 0; margin: 0; }
.kp-section h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; font: 700 1.35rem/1.25 var(--kp-police-titre); letter-spacing: -0.01em; }
.kp-description { font-size: 1.05rem; line-height: 1.7; max-inline-size: 68ch; }
.kp-description p { margin: 0 0 1em; }

.kp-periodes-liste { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }

.kp-periode-carte {
	display: grid;
	gap: 4px;
	padding: 16px 18px;
	border-radius: var(--kp-rayon-champ);
	background: var(--kp-surface);
	border: 1px solid var(--kp-line);
}

.kp-periode-carte p { margin: 0; }
.kp-periode-carte__dates { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.kp-periode-carte__tarifs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; }
.kp-sep { display: inline-block; inline-size: 1px; block-size: 1em; margin-inline: 12px; background: var(--kp-line); vertical-align: middle; }
.kp-periode-carte__min, .kp-periode-carte__note { font-size: 0.9rem; color: var(--kp-muted); }

.kp-equipements {
	display: grid;
	gap: 12px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

.kp-equipements li { display: flex; align-items: center; gap: 10px; }
.kp-equipements .kp-icon { font-size: 1.3rem; color: var(--kp-accent); }

.kp-conditions { display: grid; gap: 14px; margin: 0; }
.kp-conditions > div { display: grid; gap: 2px; }

@media (min-width: 640px) {
	.kp-conditions > div { grid-template-columns: 200px 1fr; gap: 16px; }
}

.kp-conditions dt { font-weight: 700; }
.kp-conditions dd { margin: 0; color: var(--kp-muted); line-height: 1.55; }

.kp-encadre {
	padding: 22px;
	border-radius: var(--kp-rayon);
	background: var(--kp-surface-2);
	border: 0;
}

.kp-hote p { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 6px; }

.kp-reserver {
	display: grid;
	gap: 14px;
	padding: 22px;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-rayon);
	background: var(--kp-surface);
	box-shadow: var(--kp-ombre);
}

.kp-reserver__prix { margin: 0; }
.kp-reserver__prix strong { font: 800 1.6rem/1 var(--kp-police-titre); }
.kp-reserver__prix span { color: var(--kp-muted); }
.kp-reserver__mois { display: block; margin-block-start: 4px; font-size: 0.95rem; }

.kp-reserver__zero,
.kp-reserver__confiance {
	display: flex;
	gap: 8px;
	margin: 0;
	font-size: 0.9rem;
	color: var(--kp-muted);
	line-height: 1.45;
}

.kp-reserver__zero .kp-icon, .kp-reserver__confiance .kp-icon { color: var(--kp-ok); margin-block-start: 1px; }
.kp-reserver__confiance a { color: var(--kp-text); }
.kp-reserver__direct { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; }
.kp-contact__titre { margin: 0; font: 700 1.1rem/1.3 var(--kp-police-titre); }

.kp-autour { margin-block-start: 64px; }
.kp-autour > h2 { margin: 0 0 22px; font: 700 clamp(1.35rem, 1.1rem + 1vw, 1.75rem)/1.2 var(--kp-police-titre); }

.kp-article-mini {
	display: grid;
	gap: 10px;
	align-content: start;
	color: var(--kp-text);
	text-decoration: none;
}

.kp-article-mini img {
	inline-size: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--kp-rayon);
	display: block;
}

.kp-article-mini__titre { font: 700 1.1rem/1.3 var(--kp-police-titre); }
.kp-article-mini:hover .kp-article-mini__titre { text-decoration: underline; text-underline-offset: 3px; }

/* Bloc en fin d'article du blog */
.kp-proches {
	margin-block: 48px 0;
	padding-block-start: 32px;
	border-block-start: 1px solid var(--kp-line);
}

.kp-proches > h2 { margin: 0 0 20px; font: 700 1.5rem/1.2 var(--kp-police-titre); }
.kp-proches__plus { margin: 20px 0 0; }

/* ---------- Espace propriétaire ---------- */

.kp-connexion { display: grid; gap: 28px; }

@media (min-width: 900px) {
	.kp-connexion { grid-template-columns: 0.8fr 1.2fr; align-items: start; }
}

.kp-connexion__bloc {
	padding: 26px;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-rayon);
	background: var(--kp-surface);
}

.kp-connexion__bloc h2 { margin: 0 0 12px; font: 700 1.35rem/1.2 var(--kp-police-titre); }
.kp-connexion__bloc > p { color: var(--kp-muted); }

.kp-connexion #loginform { display: grid; gap: 14px; }
.kp-connexion #loginform p { margin: 0; display: grid; gap: 6px; }
.kp-connexion #loginform label { font-weight: 600; font-size: 0.9rem; }

.kp-connexion #loginform :is(input[type="text"], input[type="password"]) {
	inline-size: 100%;
	min-block-size: 46px;
	padding: 10px 12px;
	border: 1.5px solid var(--kp-line);
	border-radius: var(--kp-rayon-champ);
	background: var(--kp-surface);
	color: var(--kp-text);
	font: inherit;
	box-sizing: border-box;
}

.kp-connexion #loginform .login-remember label { display: flex; align-items: center; gap: 8px; font-weight: 400; }

.kp-connexion #loginform .button {
	min-block-size: 44px;
	padding: 0.65em 1.4em;
	border: 0;
	border-radius: 999px;
	background: var(--kp-text);
	color: var(--kp-bg);
	font: 600 1rem/1.2 var(--kp-police-texte);
	cursor: pointer;
	justify-self: start;
}

.kp-espace { display: grid; gap: 40px; }

.kp-espace__entete {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
}

.kp-espace__bonjour { margin: 0; font: 700 1.5rem/1.2 var(--kp-police-titre); }
.kp-espace__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.kp-espace__section > h2 { margin: 0 0 16px; font: 700 1.3rem/1.2 var(--kp-police-titre); }

.kp-liste-annonces, .kp-demandes { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }

.kp-annonce-ligne {
	display: grid;
	gap: 14px;
	grid-template-columns: 72px 1fr;
	padding: 14px;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-rayon);
	background: var(--kp-surface);
}

.kp-annonce-ligne__media {
	display: grid;
	place-items: center;
	inline-size: 72px;
	block-size: 72px;
	border-radius: var(--kp-rayon-champ);
	overflow: hidden;
	background: var(--kp-surface-2);
	color: var(--kp-muted);
	font-size: 1.6rem;
}

.kp-annonce-ligne__media img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.kp-annonce-ligne__texte h3 { margin: 6px 0 4px; font: 700 1.05rem/1.3 var(--kp-police-titre); }
.kp-annonce-ligne__texte p { margin: 0; font-size: 0.9rem; color: var(--kp-muted); }
.kp-annonce-ligne__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
.kp-annonce-ligne__actions form { display: contents; }

@media (min-width: 900px) {
	.kp-annonce-ligne { grid-template-columns: 72px 1fr auto; align-items: center; }
	.kp-annonce-ligne__actions { grid-column: auto; justify-content: flex-end; }
}

.kp-statut {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 700;
	background: var(--kp-surface-2);
	color: var(--kp-muted);
}

.kp-statut--ok { background: var(--kp-ok-fond); color: var(--kp-ok); }
.kp-statut--attente { background: color-mix(in srgb, var(--kp-accent) 14%, var(--kp-surface)); color: var(--kp-accent-fort); }

.kp-demande {
	display: grid;
	gap: 6px;
	padding: 16px;
	border: 1px solid var(--kp-line);
	border-radius: var(--kp-rayon);
	background: var(--kp-surface);
}

.kp-demande p { margin: 0; }
.kp-demande__entete { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.kp-demande__entete span, .kp-demande__message { color: var(--kp-muted); font-size: 0.92rem; }

.kp-parrainage {
	padding: 24px;
	border-radius: var(--kp-rayon);
	background: var(--kp-surface-2);
}

.kp-parrainage > p { margin: 0 0 12px; }
.kp-copie { display: flex; gap: 8px; margin-block-end: 10px; }

.kp-copie input {
	flex: 1;
	min-inline-size: 0;
	min-block-size: 44px;
	padding: 8px 12px;
	border: 1.5px solid var(--kp-line);
	border-radius: var(--kp-rayon-champ);
	background: var(--kp-surface);
	color: var(--kp-text);
	font: inherit;
}

.kp-encadre--info { padding: 16px 18px; font-size: 0.95rem; line-height: 1.55; }
.kp-encadre--info p { margin: 0 0 0.5em; }
.kp-encadre--info p:last-child { margin: 0; }
.kp-encadre--info a { color: var(--kp-text); font-weight: 600; }

.kp-signalement { margin-block-start: 14px; }

.kp-signalement summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	font-size: 0.9rem;
	color: var(--kp-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.kp-signalement[open] summary { margin-block-end: 14px; }
.kp-signalement .kp-form { max-inline-size: 520px; }

/* Commission : taux courant, déclaration d'une location */
.kp-taux {
	display: grid;
	gap: 10px;
	justify-items: start;
	margin-block-end: 16px;
	padding: 20px 22px;
	border-radius: var(--kp-rayon);
	background: var(--kp-surface);
	border: 1px solid var(--kp-line);
}

.kp-taux p { margin: 0; }
.kp-taux__actuel { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.kp-taux__actuel span { color: var(--kp-muted); }
.kp-taux__actuel strong { font: 800 2rem/1 var(--kp-police-titre); color: var(--kp-accent); letter-spacing: -0.03em; }
.kp-taux__du { margin: 16px 0 6px; font-size: 1.05rem; }
.kp-demande__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; }

.kp-declarer {
	padding: 24px;
	border-radius: var(--kp-rayon);
	border: 2px solid var(--kp-accent);
	background: var(--kp-surface);
}

.kp-declarer h2 { margin: 0 0 8px; font: 700 1.3rem/1.2 var(--kp-police-titre); }
.kp-declarer .kp-form { margin-block-start: 16px; max-inline-size: 720px; }

.kp-paiement {
	display: grid;
	gap: 10px;
	justify-items: start;
	margin-block: 8px 0;
	padding: 18px 20px;
	border-radius: var(--kp-rayon);
	background: var(--kp-surface-2);
}

.kp-paiement p { margin: 0; }
.kp-paiement dl { display: grid; gap: 4px; margin: 0; }
.kp-paiement dl > div { display: flex; gap: 12px; }
.kp-paiement dt { min-inline-size: 80px; color: var(--kp-muted); }
.kp-paiement dd { margin: 0; }

/* Admin : metabox en colonnes */
.kp-admin-colonnes { display: grid; gap: 0 24px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

@media (prefers-reduced-motion: reduce) {
	.kp-carte__media img, .kp-lien-fleche .kp-icon, .kp-btn { transition: none; }
	.kp-carte:hover .kp-carte__media img { transform: none; }
}
