/*
 * Annuaire Unifié - Styles CSS
 * Regroupe les styles originaux de annuaire-bateaux-recherche (YACHT/NETWORK)
 * et annuaire-maritime-recherche (CHARTER)
 */

	/* Annuaire maritime - fiche single (Pods Template "template1", post 1817) */
	/* ------ VARIABLES ET RESET ------ */
	:root {
		--color-primary: #162d55;
		--color-accent: #0039a6;
		--color-light: #f8f9fa;
		--color-dark: #000;
		--color-border: #e5e5e5;
		--color-text-secondary: #999;
		--spacing-sm: 1rem;
		--spacing-md: 2rem;
		--spacing-lg: 3rem;
		--spacing-xl: 4rem;
		--radius-md: 12px;
		--radius-lg: 24px;
		--shadow-subtle: 0 2px 8px rgba(0, 0, 0, 0.06);
		--shadow-med: 0 4px 16px rgba(0, 0, 0, 0.08);
	}

	/* ===== TABS ===== */
	.entry-content.wp-block-post-content:has(.ab-tabs-container) {
		width: 100%;
	}

	.ab-tabs-container {
		width: 100%;
		position: relative;
		z-index: 1000;
	}

	.ab-recherche button,
	.ab-tabs-nav button,
	.am-recherche button {
		outline-style: none;
	}

	.ab-tabs-nav {
		display: flex;
		justify-content: center;
		gap: .5rem;
		background: transparent;
		padding: 0 1rem;
	}

	.ab-tab-btn {
		padding: 1rem 0;
		border: none;
		background-color: rgba(255, 255, 255, 0.6);
		cursor: pointer;
		font-weight: 600;
		color: #666;
		font-size: 0.95rem;
		padding: .5rem 2rem;
		border-radius: 0.375rem 0.375rem 0 0;
		
	}

	.ab-tab-btn:hover {
		color: #162d55;
	}
	.ab-tab-btn:focus {
		border-color:transparent !important;
	 	border-width: 0px !important;
	}

	.ab-tab-btn.ab-tab-active {
		color: #111;
		background-color: #fff;
	}

	.ab-tabs-content {
		width: 100%;
	}

	.ab-tab-pane {
		display: none;
		width: 100%;
		box-sizing: border-box;
	}

	.ab-tab-pane.ab-tab-active {
		display: block;
	}

	.ab-network-placeholder {
		width: 100%;
		box-sizing: border-box;
		padding: 3rem 1rem;
		text-align: center;
		color: #999;
		font-size: 1rem;
	}
	.ab-network-placeholder p {
		text-align: center;
	}

	/* ===== MAIN LAYOUT ===== */
	.ab-recherche {
		width: 100%;
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		padding: 0;
	}

	.ab-search-section {
		max-width: 1440px;
		margin: 0 auto;
		background: white;
		padding: 2rem 1rem;
		border-radius: 0.375rem;
	}

	.ab-search-container {
		width: 100%;
		display: flex;
		justify-content: center;
	}

	.ab-search-inputs {
		/* display: grid; */
		/* grid-template-columns: 1fr; */
		display: flex;
		gap: 1rem;
		margin-bottom: 2rem;
	}

	@media (min-width: 768px) {
		.ab-search-inputs {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (min-width: 1024px) {
		.ab-search-inputs {
			grid-template-columns: repeat(4, 1fr);
		}
	}

	/* ===== INPUTS ===== */
	.ab-input-group {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
	}

	.ab-input-wrapper {
		position: relative;
	}

	.ab-input {
		width: 100%;
		padding: .5rem;
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
	}

	.ab-input-wrapper {
		position: relative;
	}

	.ab-input {
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
		font-size: .8rem;
		font-family: inherit;
		box-sizing: border-box;
	}

	.ab-input::placeholder {
		color: #162d55;
		font-size: 0.875rem;
	}

	.ab-input:focus {
		outline: none;
		ring-color: #162d55;
		border-color: #162d55;
	}

	.ab-search-icon {
		position: absolute;
		right: 0.75rem;
		top: 50%;
		transform: translateY(-50%);
		width: 1.25rem;
		height: 1.25rem;
		color: #9ca3af;
	}


	.ab-filters-container {
		display: flex;
		flex-direction: column;
	}
	.ab-filters-container-inner {
		display: flex;
		gap: 1rem;
		/* flex-direction: column; */
	}


	/* ===== CUSTOM SELECT ===== */
	.ab-select-wrapper {
		position: relative;
	}

	.ab-select-native {
		display: none;
	}

	.ab-select-trigger {
		display: block;
		padding: 0.5rem;
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
		background: white;
		cursor: pointer;
		user-select: none;
		padding-right: 1.75rem;
		color: #162d55;
		font-size: 0.875rem;
	}

	.ab-select-trigger--currency {
		padding-bottom: .75rem;
		padding-top: 0rem;
		border:0;
	}

	.ab-select-trigger::after {
		content: '›';
		position: absolute;
		right: 0.5rem;
		top: 50%;
		transform: translateY(-50%) rotate(90deg);
		font-size: 1.5rem;
		color: #162d55;
		line-height: 1;
		transition: transform 0.2s;
	}

	.ab-select-trigger.ab-select-trigger--currency::after {
		right: 0.3rem;
    	top: 32%;
	}


	.ab-select-trigger.active::after {
		transform: translateY(-50%) rotate(-90deg);
	}

	.ab-select-trigger.ab-no-arrow::after {
		display: none;
	}

	.ab-select-options {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: white;
		border: 1px solid #d1d5db;
		border-top: none;
		border-radius: 0 0 0.375rem 0.375rem;
		max-height: 200px;
		overflow-y: auto;
		z-index: 10;
		display: none;
		list-style: none;
		margin: 0;
		padding: 0;
		box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	}

	.ab-select-options.open {
		display: block;
	}

	.ab-select-option {
		padding: 0.5rem;
		cursor: pointer;
		font-size: 0.875rem;
		border-bottom: 1px solid #eee;
	}

	.ab-select-option:hover {
		background: #f3f4f6;
	}

	.ab-select-option.selected {
		background: #162d55;
		color: white;
	}

	/* ===== FILTER BOXES ===== */
	.ab-filter-box {
		padding: .6rem;
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
		background: white;
	}

	.ab-filter-header {
		display:flex;
		align-items: center;
		justify-content: space-between;
	}

	.ab-filter-label {
		display: block;
		text-align: center;
		font-size: 0.875rem;
		font-weight: 600;
		margin-bottom: 0.75rem;
		color: #162d55;
	}

	.ab-filter-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 0.5rem;
	}

	/* ===== NUMBER INPUTS ===== */
	.ab-number-group {
		display: flex;
		gap: 0.5rem;
	}

	.ab-number-input {
		position: relative;
		flex: 1;
		display: flex;
		align-items: stretch;
	}

	.ab-number-input input {
		flex: 1;
		padding: 0.5rem;
		padding-right: 1.75rem;
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
		font-size: 0.875rem;
		font-family: inherit;
	}

	.ab-number-input input::placeholder {
		color: #162d55;
		opacity: 0.7;
	}

	.ab-number-input input:focus {
		outline: none;
		border-color: #162d55;
	}

	.ab-number-input input[type="number"]::-webkit-outer-spin-button,
	.ab-number-input input[type="number"]::-webkit-inner-spin-button {
		-webkit-appearance: none;
		margin: 0;
	}

	.ab-number-input input[type="number"] {
		-moz-appearance: textfield;
	}

	.ab-spinners {
		position: absolute;
		right: 0.25rem;
		top: 0;
		bottom: 0;
		display: flex;
		flex-direction: column;
	}

	.ab-spinner-btn {
		flex: 1;
		padding: 0 0.5rem;
		border: none;
		background: none;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		user-select: none;
	}

	.ab-spinner-btn::before {
		content: '';
		position: absolute;
		width: 6px;
		height: 6px;
		border-top: 1px solid #162d55;
		border-right: 1px solid #162d55;
		transform: translateY(5px) rotate(-45deg);
		left: 4px;
	}

	.ab-spinner-btn::after {
		content: '';
		position: absolute;
		width: 6px;
		height: 6px;
		border-bottom: 1px solid #162d55;
		border-right: 1px solid #162d55;
		transform: translateY(-6px) rotate(45deg);
		right: 5px;
	}

	.ab-spinner-btn[data-action="decrement"]::before {
		display: none;
	}

	.ab-spinner-btn[data-action="increment"]::after {
		display: none;
	}

	.ab-spinner-btn:hover::before,
	.ab-spinner-btn:hover::after {
		border-color: #0d1929;
	}

	/* ===== BUTTON ===== */
	.ab-button-container {
		display: flex;
		justify-content: center;
		margin-top: 1rem;
	}

	.ab-search-btn {
		padding: 0.75rem 3rem;
		background-color: #162d55;
		color: white;
		font-weight: bold;
		border: none;
		border-radius: 9999px;
		cursor: pointer;
		font-size: 1rem;
		transition: opacity 0.2s;
		margin-left: -250px;
	}

	.ab-search-btn:hover {
		opacity: 0.9;
	}

	/* ===== FEATURED SLIDER ===== */
	.ab-featured-section {
		background: #dbd8d2;
		padding: 1rem 1rem 0;
	}

	.ab-featured-title {
		font-size: 1.875rem;
		font-weight: 300;
		color: #162d55;
		margin: 0 0 1rem;
		text-align: center;
		padding: 1.5rem 0;
		letter-spacing: .04rem;
	}

	.ab-featured-slider-wrapper {
		display: flex;
		align-items: center;
		gap: 1rem;
		max-width: 1440px;
		margin: 0 auto;
	}

	.ab-featured-slider {
		flex: 1;
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1.5rem;
	}

	.ab-featured-nav {
		flex-shrink: 0;
		width: 2.5rem;
		height: 2.5rem;
		border: none;
		border-radius: 50%;
		background: white;
		color: #162d55;
		font-size: 1.5rem;
		line-height: 1;
		cursor: pointer;
		box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
		transition: background 0.2s;
	}

	.ab-featured-nav:hover:not(:disabled) {
		background: #f3f4f6;
	}

	.ab-featured-nav:disabled {
		opacity: 0.35;
		cursor: default;
	}

	.ab-featured-dots {
		display: flex;
		justify-content: center;
		gap: 0.5rem;
		margin: 1rem 0;
		
	}

	.ab-featured-dot {
		width: 0.6rem;
		height: 0.6rem;
		border-radius: 50%;
		border: none;
		background-color: #ffffff;
		cursor: pointer;
		padding: 0;
	}

	.ab-featured-dot.active {
		background: #162d55;
	}

	@media (max-width: 1100px) {
		.ab-featured-slider {
			grid-template-columns: repeat(3, 1fr);
		}
	}

	@media (max-width: 900px) {
		.ab-featured-slider {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (max-width: 600px) {
		.ab-featured-slider {
			grid-template-columns: 1fr;
		}
	}

	/* ===== RESULTS SECTION ===== */
	.ab-results-section {
		background: #dbd8d2;
		padding: 1rem 1rem;
		scroll-margin-top: 2rem;
	}

	.ab-results-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.ab-results-title {
		font-size: 1.875rem;
		font-weight: 300;
		color: #162d55;
		margin: 0;
		text-align: center;
	}

	.ab-filter-btn {
		/* display: flex;
		align-items: center; */
		/* gap: 0.5rem; */
		position: absolute;
		right: 0;
		padding: 0.5rem 1rem;
		background: white;
		border: none;
		border-radius: 9999px;
		cursor: pointer;
		font-weight: 500;
		color: #374151;
	}

	.ab-filter-btn:hover {
		background: #f3f4f6;
	}

	.ab-sort-icon {
		width: 1.25rem;
		height: 1.25rem;
	}

	.ab-message {
		text-align: center;
		color: #666;
		font-size: 0.9rem;
		margin-bottom: 1rem;
	}

	.ab-results-grid {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
		gap: 1.5rem;
	}

	/* ===== YACHT CARD ===== */
	.ab-yacht-card {
		background: white;
		border-radius: 0.5rem;
		overflow: hidden;
		box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
		transition: box-shadow 0.2s;
	}

	.ab-yacht-card:hover {
		box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
	}


	.ab-yacht-image {
		width: 100%;
		height: 12rem;
		background: #d1d5db;
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: hidden;
		position: relative;
	}

	.ab-yacht-image img {
		width: 100%;
		height: 100%;
		display: block;
		object-fit: cover;
		transition: transform 0.3s ease;
	}

	.ab-yacht-card:hover .ab-yacht-image img {
		transform: scale(1.04);
	}

	.ab-featured-badge {
		position: absolute;
		top: 0.5rem;
		right: 0.5rem;
		background: #eb3c06;
		color: #FFF;
		padding: 0.4rem 0.8rem;
		border-radius: 6px;
		font-size: 0.55rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.5px;
	}

	.ab-yacht-body {
		padding: 1.5rem;
		text-align: left;
		text-align: center;
	}

	.ab-yacht-title {
		font-size: .9rem;
		font-weight: 600;
		margin: 0 0 0.5rem;
		color: #162d55;
	}

	.ab-yacht-price {
		font-size: 1rem;
		font-weight: bold;
		color: #857f7f;
		margin: 0 0 .5rem;
		font-family: arial;
		text-align: center;
	}

	/* Sélecteur de devise auto-injecté par js/currency.js (fiche bateau, archive
	   par type, grille "Yachts for sale" d'un contact) */
	.ab-currency-switcher {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 0.5rem;
		margin-bottom: 1rem;
	}

	.ab-currency-switcher label {
		font-size: 0.875rem;
		font-weight: 600;
		color: #162d55;
	}

	.ab-currency-native-select {
		padding: 0.4rem 0.6rem;
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
		background: white;
		color: #162d55;
		font-size: 0.875rem;
		cursor: pointer;
	}

	.ab-yacht-location {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		color: #666;
		margin-bottom: 1.5rem;
		font-size: 0.875rem;
	}

	.ab-yacht-location svg {
		width: 1.25rem;
		height: 1.25rem;
		flex-shrink: 0;
	}

	.ab-yacht-btn {
		width: 100%;
		padding: 0.5rem 2rem;
		background: #162d55;
		color: white;
		border: none;
		border-radius: 9999px;
		font-weight: bold;
		cursor: pointer;
		text-decoration: none;
		font-size: 0.875rem;
		white-space: nowrap;
	}

	.ab-yacht-btn:hover {
		background: #294473;
	}

	/* ===== PAGINATION ===== */
	.ab-pagination {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 0.5rem;
		margin-top: 2rem;
		flex-wrap: wrap;
	}

	.ab-pagination button,
	.ab-pagination a,
	.ab-pagination span {
		padding: 0.5rem 0.75rem;
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
		background: white;
		cursor: pointer;
		font-size: 0.875rem;
		transition: all 0.2s;
		text-decoration: none;
	}

	.ab-pagination button,
	.ab-pagination a {
		color: #162d55;
	}

	.ab-pagination button:hover:not(:disabled),
	.ab-pagination a:hover {
		background: #f3f4f6;
		border-color: #162d55;
	}

	.ab-pagination button:disabled {
		opacity: 0.5;
		cursor: not-allowed;
	}

	.ab-pagination .active,
	.ab-pagination .current {
		background: #162d55;
		color: white;
		border-color: #162d55;
	}

	/* ===== RESET BUTTON ===== */
	.ab-reset-btn {
		padding: 0.4rem 0.55rem;
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
		background: white;
		color: #162d55;
		cursor: pointer;
		font-size: 1rem;
		/* font-weight: bold; */
		transition: all 0.2s;
		min-width: 40px;
		height: 37px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.ab-reset-btn:hover {
		background: #f3f4f6;
		border-color: #162d55;
		color: #162d55;
	}

	/* ===== ARCHIVE TYPE DE BATEAU (Pods Template taxonomie type_de_bateau) ===== */
	.ab-type-archive {
		max-width: 1440px;
		margin: 0 auto;
		padding: 3rem 2rem;
	}

	.ab-type-archive-title {
		font-size: 2.5rem;
		font-weight: 700;
		color: #1d1d1b;
		margin: 0 0 2rem;
		letter-spacing: -0.5px;
	}

	.ab-type-archive-intro {
		display: grid;
		grid-template-columns: 2fr 1fr;
		gap: 3rem;
		align-items: start;
		margin-bottom: 3.5rem;
	}

	.ab-type-archive-image {
		aspect-ratio: 4 / 3;
		background: #f1eeec;
		border-radius: 0.5rem;
		overflow: hidden;
	}

	.ab-type-archive-image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	.ab-type-archive-description {
		font-size: 1rem;
		line-height: 1.7;
		color: #333;
	}

	.ab-type-archive-description p:first-child {
		margin-top: 0;
	}

	/* Grille de bateaux du type consulté (voir includes/pods-template-helpers.php
	   / includes/shortcodes/bateaux.php) : mêmes classes .ab-results-grid /
	   .ab-yacht-card que la grille de résultats de la page d'accueil, mais figée
	   à 4 colonnes sur cette page pour coller au visuel du template. */
	.ab-type-archive .ab-results-grid {
		grid-template-columns: repeat(4, 1fr);
	}

	@media (max-width: 1024px) {
		.ab-type-archive .ab-results-grid {
			/* grid-template-columns: repeat(3, 1fr); */
		}
	}

	@media (max-width: 768px) {
		.ab-search-inputs {
			/* grid-template-columns: 1fr; */
		}

		.ab-results-grid {
			grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
		}

		.ab-type-archive-intro {
			grid-template-columns: 1fr;
		}

		.ab-type-archive .ab-results-grid {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (max-width: 480px) {
		.ab-type-archive .ab-results-grid {
			grid-template-columns: 1fr;
		}
	}

/* ===== CHARTER TAB (Maritime) ===== */
	.am-recherche {
		width: 100%;
		box-sizing: border-box;
		font-size: 1rem;
		text-align: left;
	}

	.am-search-section {
		width: 100%;
		box-sizing: border-box;
		background: #c0c4d2;
		padding: 2.5rem 2rem;
	}

	.am-search-title {
		max-width: 1024px;
		margin: 0 auto 1.5rem;
		font-size: 1.5rem;
		font-weight: 700;
		color: #162d55;
		text-align: center;
	}

	.am-search-inputs {
		max-width: 1024px;
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: start;
		gap: 1.25em;
	}
	.am-search-inputs .am-bloc {
		flex: 1 1 280px;
		max-width: 320px;
	}
	@media (max-width: 760px) {
		.am-search-inputs .am-bloc { flex: 1 1 100%; max-width: 100%; }
	}
	.am-recherche .am-bloc { position: relative; }
	.am-recherche .am-input-wrapper {
		position: relative;
	}
	.am-recherche input,
	.am-recherche .am-filtre-bouton {
		width: 100%; padding: .5rem; box-sizing: border-box;
		font: inherit; font-size: 1rem; text-align: left;
		border: 1px solid #d1d5db;
		border-radius: 0.375rem;
	}
	.am-recherche input {
		color: #162d55;
	}
	.am-recherche input.am-input {
		padding-right: 2.6rem;
	}
	.am-recherche input::placeholder {
		color: #162d55;
		font-size: 1rem;
	}
	.am-recherche input:focus {
		outline: none;
		border-color: #162d55;
	}
	.am-search-icon {
		position: absolute;
		right: 0.75rem;
		top: 50%;
		transform: translateY(-50%);
		width: 1.25rem;
		height: 1.25rem;
		color: #9ca3af;
		pointer-events: none;
	}

	.am-recherche .am-filtre-bouton {
		background: #fff; border: 1px solid #d1d5db;
		cursor: pointer; color: #162d55;
		padding: .5rem;
	}
	.am-recherche .am-filtre-bouton::after {  float: right; color: #162d55; }

	.am-recherche .am-overlay {
		list-style: none; margin: 0; padding: 0;
		border: 1px solid #d1d5db; border-top: none; border-radius: 0 0 0.375rem 0.375rem;
		background: #fff; position: absolute; width: 100%; z-index: 100;
		max-height: 420px; overflow-y: auto;
		box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	}
	.am-recherche .am-overlay li { border-bottom: 1px solid #eee; }
	.am-recherche .am-overlay li:last-child { border-bottom: none; }

	/* Zone de résultats : pleine largeur sous la section de recherche, ferrée à gauche */
	.am-recherche .am-resultats-zone {
		max-width: 1024px;
		margin: 0 auto;
		padding: 1.5rem 2rem;
		text-align: left;
		width: 100%;
		box-sizing: border-box;
	}
	#am-resultats {
		list-style: none; margin: .5em 0 0; padding: 0;
		border: 1px solid #d1d5db; border-radius: 0.375rem;
	}
	#am-resultats li { border-bottom: 1px solid #eee; }
	#am-resultats li:last-child { border-bottom: none; }

	.am-recherche .am-overlay a,
	#am-resultats a,
	.am-recherche .am-option {
		display: block; padding: .5rem; text-decoration: none;
		color: inherit; cursor: pointer; text-align: left;
		font-size: 0.875rem;
	}
	.am-recherche .am-overlay a:hover,
	.am-recherche .am-overlay a:focus,
	#am-resultats a:hover,
	#am-resultats a:focus,
	.am-recherche .am-option:hover,
	.am-recherche .am-option:focus { background: #f3f4f6; }

	/* Ligne de résultat en trois colonnes de largeur égale */
	#am-resultats a {
		display: flex;
		align-items: center;
		gap: 1rem;
	}
	#am-resultats .am-col {
		flex: 1 1 0;
		min-width: 0;
	}
	#am-resultats .am-col-contact {
		display: flex;
		align-items: center;
	}
	#am-resultats .am-col-type {
		color: #6b7280;
	}
	#am-resultats .am-col-cta {
		display: flex;
		justify-content: flex-end;
	}
	#am-resultats .am-send-btn {
		display: inline-flex;
		align-items: center;
		gap: .4em;
		padding: .35em .8em;
		border: 1px solid #d1d5db;
		border-radius: 999px;
		color: #6b7280;
		font-size: 0.8125rem;
		white-space: nowrap;
	}
	#am-resultats .am-send-btn svg {
		width: 1em;
		height: 1em;
		flex-shrink: 0;
	}

	.am-recherche .am-detail { font-size: 0.875em; color: #6b7280; }
	.am-recherche .am-compte { font-size: 0.875em; color: #9ca3af; }
	.am-recherche .am-option-reset { color: #9ca3af; font-size: 0.875em; }
	.am-recherche .am-option.selected {
		background: #162d55;
		color: white;
	}
	.am-recherche .am-flag {
		height: 14px; width: auto; margin-right: .5em;
		vertical-align: baseline; border: 1px solid rgba(0,0,0,.1);
		border-radius: 2px;
	}

	/* ===== CARD CHARTER (image plein cadre + overlay au survol) ===== */
	.card-charter {
		position: relative;
		
	}

	.card-charter .wp-block-image {
		position: relative;
		margin: 0;
		overflow: hidden;
		border-radius: 11px;
		border: 8px solid white;
	}

	.card-charter .wp-block-image img {
		display: block;
		width: 100%;
		max-height: 350px;
		aspect-ratio: 4 / 5;
		object-fit: cover;
		transition: transform .5s ease;
	}

	.card-charter .wp-block-image::after {
		content: "";
		position: absolute;
		inset: 0;
		background: rgba(0, 0, 0, .15);
		transition: background .4s ease;
	}

	.card-charter:hover .wp-block-image img {
		transform: scale(1.08);
	}

	.card-charter:hover .wp-block-image::after {
		background: rgba(0, 0, 0, .45);
	}

	.card-charter > p {
		position: absolute;
		left: 0;
		right: 0;
		z-index: 2;
		margin: 0;
		text-align: center;
	}

	.card-charter > p:first-of-type {
		top: 50%;
		transform: translateY(-50%);
		text-shadow: 0 2px 6px rgba(0, 0, 0, .35);
		text-align: center;
	}

	.card-charter > p:last-of-type {
		bottom: 1.5rem;
	}

	.card-charter > p:last-of-type a {
		display: inline-flex;
		align-items: center;
		gap: .4em;
		color: #fff;
		text-decoration: none;
		letter-spacing: .04em;
		font-size: .8125rem;
		border-bottom: 1px solid rgba(255, 255, 255, .7);
		padding-bottom: 2px;
		transition: gap .3s ease;
	}

	.card-charter > p:last-of-type a::after {
		content: "";
		width: 6px;
		height: 6px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(-45deg);
	}

	.card-charter:hover > p:last-of-type a {
		gap: .65em;
	}

	/* ===== CARD LAST ARTICLES (bloc Derniers articles) ===== */
	.card-last-articles li {
		display: flex;
		flex-direction: column;
		align-items: center;
		background: #fff;
		border-radius: 16px;
		box-shadow: 0 6px 20px rgba(0, 0, 0, .1);
		overflow: hidden;
		padding-bottom: 1.5rem;
		list-style: none;
	}

	.card-last-articles .wp-block-latest-posts__featured-image {
		width: 100%;
		margin: 0 0 1.25rem;
		overflow: hidden;
	}

	.card-last-articles .wp-block-latest-posts__featured-image img {
		display: block;
		width: 100%;
		max-width: none;
		max-height: none;
		height: auto;
		aspect-ratio: 16 / 10;
		object-fit: cover;
		transition: transform .5s ease;
	}

	.card-last-articles li:hover .wp-block-latest-posts__featured-image img {
		transform: scale(1.08);
	}

	.card-last-articles .wp-block-latest-posts__post-title {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: .9rem;
		padding: 0 1.25rem;
		text-align: center;
		text-decoration: none;
		color: #182848;
		font-weight: 700;
		font-size: 1.1rem;
		line-height: 1.3;
	}

	/* Le bouton "Read More" est un pseudo-élément du lien du titre :
	   il hérite donc du même href et reste cliquable, sans devoir
	   dupliquer un lien dans le HTML généré par le bloc. */
	.card-last-articles .wp-block-latest-posts__post-title::after {
		content: "Read More";
		display: inline-block;
		background: #182848;
		color: #fff;
		font-size: .8rem;
		font-weight: 600;
		letter-spacing: .02em;
		padding: .6rem 1.75rem;
		border-radius: 9999px;
		transition: opacity .2s ease;
	}

	.card-last-articles .wp-block-latest-posts__post-title:hover::after {
		opacity: .85;
	}

	.card-last-articles .wp-block-latest-posts__post-author,
	.card-last-articles .wp-block-latest-posts__post-date {
		display: none;
	}
	#am-message { font-size: 0.875em; color: #6b7280; margin: .5em 0 0; }


	/* template Bateaux - Annuaire Unifié */

	.ab-fiche-bateau {
		--ab-fiche-primary: #162d55;
		--ab-fiche-accent: #0d1c38;
		--ab-fiche-light: #f8f9fa;
		--ab-fiche-border: #e5e5e5;
		--ab-fiche-text-secondary: #6b7280;
		--ab-fiche-radius: 12px;
		--ab-fiche-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	}
	
	.ab-fiche-bateau-header--hero {
		width: 100%;
		height: 440px;
		overflow: hidden;
		margin-bottom: 2.5rem;
	}
	.ab-fiche-bateau-header {
		background: #141c35;
	}

	.ab-fiche-bateau-header--hero img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	.ab-fiche-bateau-container {
		max-width: 1200px;
		margin: 0 auto;
		padding: 0 2rem 3rem;
	}

	.ab-fiche-bateau-top {
		display: grid;
		grid-template-columns: 3fr 1fr;
		gap: 4rem;
		align-items: start;
		margin-bottom: 2.5rem;
	}

	.ab-fiche-bateau-model {
		font-size: 2.5rem;
		font-weight: 700;
		color: #1d1d1b;
		margin: 0 0 0.5rem;
		letter-spacing: -0.5px;
		line-height: 1.15;
	}

	.ab-fiche-bateau-model-underline {
		width: 90px;
		height: 10px;
		background: #d8d9db;
	}

	.ab-fiche-bateau-broker {
		display: flex;
		align-items: center;
		gap: 1rem;
		justify-self: end;
	}

	.ab-fiche-bateau-broker img {
		width: 90px;
		height: 90px;
		border-radius: 50%;
		object-fit: cover;
		display: block;
	}

	.ab-fiche-bateau-broker-info {
		display: flex;
		flex-direction: column;
		gap: 0.15rem;
	}

	.ab-fiche-bateau-broker-name {
		font-size: 1.1rem;
		font-weight: 600;
		color: #1d1d1b;
		margin: 0;
	}

	.ab-fiche-bateau-broker-type {
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 0.5px;
		text-transform: uppercase;
		color: var(--ab-fiche-text-secondary);
		margin: 0;
	}

	.ab-fiche-bateau-specs {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.ab-fiche-bateau-specs li {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 1rem;
		padding: 0.85rem 0;
		border-bottom: 1px solid var(--ab-fiche-border);
	}

	.ab-fiche-bateau-specs-label {
		color: var(--ab-fiche-text-secondary);
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 1rem;
		white-space: nowrap;
		flex:1;
	}

	.ab-fiche-bateau-specs-value {
		font-weight: 400;
		color: var(--ab-fiche-primary);
		text-align: left;
		flex:1;

	}
	.ab-fiche-bateau-specs-value.ab-fiche-bateau-specs-value-exergue {
		font-weight: 700;
		font-family: Arial, sans-serif;
		color: var(--ab-fiche-primary);
		font-size: 1.2rem;

	}

	.ab-fiche-bateau-form .wpcf7-form {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
	}
	.ab-fiche-bateau-form .wpcf7-form p {
		padding: 0;
		margin:0;
	}

	.ab-fiche-bateau-form input[type="text"],
	.ab-fiche-bateau-form input[type="email"],
	.ab-fiche-bateau-form input[type="tel"],
	.ab-fiche-bateau-form textarea {
		width: 100%;
		padding: 0.9rem 1.5rem;
		border: 1px solid #e2e2e2;
		border-radius: 5px;
		font-size: 0.95rem;
		margin-bottom: .5rem;
		font-family: inherit;
		color: #333;
		box-sizing: border-box;
		transition: border-color 0.2s ease;
	}

	.ab-fiche-bateau-form input[type="text"]::placeholder,
	.ab-fiche-bateau-form input[type="email"]::placeholder,
	.ab-fiche-bateau-form input[type="tel"]::placeholder,
	.ab-fiche-bateau-form textarea::placeholder {
		color: #b7b7b7;
	}

	.ab-fiche-bateau-form input[type="text"]:focus,
	.ab-fiche-bateau-form input[type="email"]:focus,
	.ab-fiche-bateau-form input[type="tel"]:focus,
	.ab-fiche-bateau-form textarea:focus {
		outline: none;
		border-color: var(--ab-fiche-primary);
	}

	.ab-fiche-bateau-form textarea {
		height: 100px;
		resize: vertical;
	}

	.ab-fiche-bateau-form input[type="submit"] {
		align-self: flex-start;
		padding: 0.85rem 2rem;
		background: var(--ab-fiche-primary);
		color: #fff;
		border: none;
		border-radius: 50px;
		font-weight: 600;
		letter-spacing: 0.5px;
		cursor: pointer;
		transition: background 0.3s ease;
	}

	.ab-fiche-bateau-form input[type="submit"]:hover {
		background: var(--ab-fiche-accent);
	}

	.ab-fiche-bateau-form .wpcf7-not-valid-tip {
		color: #c0392b;
		font-size: 0.8rem;
	}

	.ab-fiche-bateau-form .wpcf7-response-output {
		margin: 0;
		border-radius: 8px;
		padding: 0.75rem 1rem;
		font-size: 0.9rem;
	}

	.ab-fiche-bateau-specs-box {
		background: var(--ab-fiche-light);
		border-radius: var(--ab-fiche-radius);
		padding: 2rem;
		margin-bottom: 2.5rem;
	}
	.ab-fiche-bateau-specs-box--white {
		background: #fff;

		box-shadow: var(--ab-fiche-shadow);

	}

	#ab-fiche-bateau-engine-specs {
		scroll-margin-top: 2rem;
		margin-top: 3rem;
	}

	.ab-fiche-bateau-engine-link {
		display: inline-flex;
		align-items: center;
		gap: 0.4rem;
		margin-top: 2.25rem;
		color: var(--ab-fiche-text-secondary);
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 0.8rem;
		text-decoration: none;
		cursor: pointer;
	}

	.ab-fiche-bateau-engine-link:hover {
		color: var(--ab-fiche-primary);
	}

	.ab-fiche-bateau-specs-title {
		font-size: 1.4rem;
		font-weight: 700;
		letter-spacing: 1px;
		color: #1d1d1b;
		margin: 0 0 1.25rem;
	}

	.ab-fiche-bateau-accordion {
		background: #fff;
		border-radius: 8px;
		margin-bottom: 1rem;
		box-shadow: var(--ab-fiche-shadow);
		overflow: hidden;
	}

	.ab-fiche-bateau-accordion summary {
		cursor: pointer;
		padding: 1.1rem 1.5rem;
		font-weight: 700;
		letter-spacing: 0.5px;
		color: var(--ab-fiche-primary);
		list-style: none;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.ab-fiche-bateau-accordion summary::-webkit-details-marker {
		display: none;
	}

	.ab-fiche-bateau-accordion summary::after {
		content: '›';
		rotate: -90deg;
		transition: transform 0.2s ease;
	}
	.ab-fiche-bateau-accordion summary:focus {
		outline-style:none;
	}

	.ab-fiche-bateau-accordion[open] summary::after {
		transform: rotate(180deg);
	}

	.ab-fiche-bateau-accordion-content {
		padding: 0 1.5rem 1.5rem;
		color: #444;
		line-height: 1.7;
	}

	.ab-fiche-bateau-equip-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 0.2rem 2rem;
	}

	.ab-fiche-bateau-equip-item {
		display: flex;
		align-items: center;
		gap: 0.6rem;
		font-weight: 400;
		color: #1d1d1b;
		font-size: .85rem;


	}

	.ab-fiche-bateau-equip-check {
		color: var(--ab-fiche-primary);
		font-weight: 700;
		width: 1.2em;
		display: inline-block;
	}

	.ab-fiche-bateau-gallery .gallery {
		display: grid !important;
		grid-template-columns: repeat(3, 1fr) !important;
		gap: 1rem !important;
	}

	.ab-fiche-bateau-gallery .gallery-item {
		width: auto !important;
		margin: 0 !important;
		float: none !important;
	}

	.ab-fiche-bateau-gallery .gallery-item img {
		width: 100% !important;
		height: 100% !important;
		aspect-ratio: 4 / 3;
		object-fit: cover;
		border-radius: 0;
		display: block;
	}

	.ab-fiche-bateau-gallery .gallery-caption {
		display: none;
	}

	.ab-fiche-bateau-gallery .gallery-item a {
		cursor: zoom-in;
	}

	.ab-fiche-bateau-lightbox {
		display: none;
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.9);
		z-index: 9999;
		align-items: center;
		justify-content: center;
	}

	.ab-fiche-bateau-lightbox.is-open {
		display: flex;
	}

	.ab-fiche-bateau-lightbox-img {
		max-width: 88vw;
		max-height: 85vh;
		object-fit: contain;
		border-radius: 4px;
		box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
	}

	.ab-fiche-bateau-lightbox-close,
	.ab-fiche-bateau-lightbox-prev,
	.ab-fiche-bateau-lightbox-next {
		position: absolute;
		background: none;
		border: none;
		color: #fff;
		cursor: pointer;
		line-height: 1;
		padding: 0.5rem 1rem;
	}

	.ab-fiche-bateau-lightbox-close {
		top: 1.25rem;
		right: 1.5rem;
		font-size: 2rem;
	}

	.ab-fiche-bateau-lightbox-prev,
	.ab-fiche-bateau-lightbox-next {
		top: 50%;
		transform: translateY(-50%);
		font-size: 3rem;
	}

	.ab-fiche-bateau-lightbox-prev {
		left: 1rem;
	}

	.ab-fiche-bateau-lightbox-next {
		right: 1rem;
	}

	@media (max-width: 768px) {
		.card-charter .wp-block-image {
			margin-bottom: 2rem;
		}
		.card-charter > p:last-of-type {
    		bottom: 4.5rem;
		}
		.wp-block-latest-posts.is-grid li {
			margin: 0 1.25em 1.25em 1.25rem;
			width: 100%;
		}

		.ab-fiche-bateau-top {
			grid-template-columns: 1fr;
			gap: 1.5rem;
		}

		.ab-fiche-bateau-broker {
			justify-self: start;
		}

		.ab-fiche-bateau-equip-grid,
		.ab-fiche-bateau-gallery .gallery {
			grid-template-columns: repeat(2, 1fr) !important;
		}

		.ab-fiche-bateau-header--hero {
			height: 260px;
		}

	}

	/* ------ CONTENEUR PRINCIPAL ------ */
	.annuaire-hero {
		background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
		padding: var(--spacing-xl) var(--spacing-lg);
		margin-bottom: var(--spacing-xl);
		border-bottom: 1px solid var(--color-border);
	}

	.annuaire-container {
		max-width: 1200px;
		margin: 0 auto;
		display: grid;
		grid-template-columns: auto 1fr minmax(300px, 360px);
		gap: var(--spacing-lg);
		align-items: flex-start;
	}

	/* ------ COLONNE PHOTO ------ */
	.annuaire-photo-section {
		flex-shrink: 0;
	}

	.annuaire-photo-wrapper {
		position: relative;
		width: 200px;
		height: 200px;
		border-radius: 32px;
		overflow: hidden;
		box-shadow: var(--shadow-med);
		background: var(--color-light);
	}

	.annuaire-photo-wrapper img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	.annuaire-photo-placeholder {
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.annuaire-photo-placeholder svg {
		width: 40%;
		height: auto;
		color: #c7cbd1;
	}

	/* ------ COLONNE INFO ------ */
	.annuaire-info-section {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
	}

	.annuaire-name {
		font-size: 2.5rem;
		font-weight: 700;
		color: var(--color-dark);
		margin: 0 0 0.5rem 0;
		line-height: 1.2;
		letter-spacing: -0.5px;
	}

	.annuaire-subtitle {
		font-size: 1.2rem;
		color: var(--color-dark);
		margin: 0 0 0.75rem 0;
		font-weight: 400;
	}

	.annuaire-role {
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 0.5px;
		text-transform: uppercase;
		color: var(--color-text-secondary);
		margin: 0 0 0.35rem 0;
	}

	.annuaire-listing-count {
		font-size: 0.875rem;
		color: var(--color-text-secondary);
		margin: 0;
		
	}
	.annuaire-listing-count:last-of-type {
		margin-bottom: 1rem;
	}

	.annuaire-listing-count strong {
		/*color: var(--color-dark);*/
		font-weight: 400;
	}

	.annuaire-bio {
		font-size: 1rem;
		line-height: 1.7;
		color: #555;
		max-width: 640px;
		margin: 0 0 var(--spacing-lg) 0;
	}

	.annuaire-bio p {
		margin: 0 0 1em 0;
	}

	.annuaire-bio p:last-child {
		margin-bottom: 0;
	}

	/* ------ INFORMATIONS DE CONTACT ------ */
	.annuaire-contact-info {
		display: none;
		flex-direction: column;
		gap: 0.75rem;
		margin-bottom: var(--spacing-md);
		padding-bottom: var(--spacing-md);
		border-bottom: 1px solid var(--color-border);
	}

	.annuaire-contact-item {
		display: flex;
		align-items: center;
		gap: 0.75rem;
		font-size: 0.95rem;
		color: #555;
	}

	.annuaire-contact-icon {
		width: 16px;
		height: 16px;
		color: var(--color-primary);
		flex-shrink: 0;
	}

	.annuaire-contact-label {
		font-weight: 500;
		min-width: 80px;
		color: var(--color-text-secondary);
	}

	.annuaire-contact-value {
		color: var(--color-dark);
	}

	.annuaire-contact-value a {
		color: var(--color-primary);
		text-decoration: none;
		transition: color 0.3s ease;
	}

	.annuaire-contact-value a:hover {
		color: var(--color-accent);
		text-decoration: underline;
	}

	

	/* ------ COLONNE FORMULAIRE ------ */
	.annuaire-form-section {
		background: white;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-md);
		box-shadow: var(--shadow-subtle);
		padding: var(--spacing-md);
	}

	.annuaire-form-title {
		font-size: 1.125rem;
		font-weight: 700;
		color: var(--color-dark);
		margin: 0 0 var(--spacing-sm) 0;
	}

	.annuaire-form-section .wpcf7-form {
		display: flex;
		flex-direction: column;
	}

	.annuaire-form-section .wpcf7-form p {
		padding: 0;
		margin: 0;
	}

	.annuaire-form-section .wpcf7-form p + p {
		margin-top: 0.75rem;
	}

	.annuaire-form-section .wpcf7-form-control-wrap {
		display: block;
		margin-bottom: 10px;
	}

	.annuaire-form-section .wpcf7-form-control-wrap:last-of-type {
		margin-bottom: 0;
	}

	.annuaire-form-section .wpcf7-form p br {
		display: none;
	}

	.annuaire-form-section input[type="text"],
	.annuaire-form-section input[type="email"],
	.annuaire-form-section input[type="tel"],
	.annuaire-form-section textarea {
		width: 100%;
		padding: 0.75rem 1rem;
		border: 1px solid var(--color-border);
		border-radius: 8px;
		font-size: 0.9rem;
		font-family: inherit;
		color: var(--color-dark);
		box-sizing: border-box;
		transition: border-color 0.2s ease;
	}

	.annuaire-form-section input[type="text"]::placeholder,
	.annuaire-form-section input[type="email"]::placeholder,
	.annuaire-form-section input[type="tel"]::placeholder,
	.annuaire-form-section textarea::placeholder {
		color: #b7b7b7;
	}

	.annuaire-form-section input[type="text"]:focus,
	.annuaire-form-section input[type="email"]:focus,
	.annuaire-form-section input[type="tel"]:focus,
	.annuaire-form-section textarea:focus {
		outline: none;
		border-color: var(--color-primary);
	}

	.annuaire-form-section textarea {
		height: 90px;
		resize: vertical;
	}

	.annuaire-form-section input[type="submit"] {
		align-self: flex-start;
		padding: 0.85rem 1.75rem 0.85rem 3.25rem;
		background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%236b7280' d='M77.433,30.738c-0.311-0.539-0.92-0.833-1.537-0.733L23.63,38.382c-0.55,0.089-1.006,0.475-1.184,1.002c-0.179,0.527-0.05,1.11,0.335,1.514l11.241,11.799v15.817c0,0.629,0.392,1.19,0.981,1.407c0.17,0.063,0.345,0.093,0.519,0.093c0.431,0,0.852-0.187,1.142-0.527l6.305-7.398l4.249,4.46c0.283,0.298,0.677,0.466,1.086,0.466c0.019,0,0.038,0,0.057-0.001c0.43-0.017,0.832-0.217,1.104-0.55l27.829-34.029C77.688,31.954,77.743,31.278,77.433,30.738z M66.651,34.525l-31.08,15.45l-8.651-9.081L66.651,34.525z M37.022,64.441v-8.595l3.866,4.058L37.022,64.441z M48.218,63.25l-10.48-11.002l32.821-16.316L48.218,63.25z'/%3E%3C/svg%3E") no-repeat 1rem center;
		background-size: 32px 32px;
		color: #6b7280;
		border: 1px solid var(--color-border);
		border-radius: 5px;
		font-size: 1rem;
		font-weight: 600;
		cursor: pointer;
		transition: all 0.3s ease;
	}

	.annuaire-form-section input[type="submit"]:hover {
		background-color: #f9fafb;
		border-color: #b7bdc6;
	}

	.annuaire-form-section .wpcf7-not-valid-tip {
		color: #c0392b;
		font-size: 0.8rem;
	}

	.annuaire-form-section .wpcf7-response-output {
		margin: 0;
		border-radius: 8px;
		padding: 0.75rem 1rem;
		font-size: 0.85rem;
	}

	/* ------ FOOTER CONTAINER ------ */
	.annuaire-footer-container {
		margin-top: var(--spacing-xl);
		/* padding: var(--spacing-xl) 0; */
		/* border-top: 1px solid var(--color-border); */
		max-width: 1200px;
		margin-left: auto;
		margin-right: auto;
		width: 100%;
		clear: both;
	}

	/* ------ YACHTS DU CONTACT (mêmes classes que la grille de l'accueil) ------ */
	.annuaire-yachts-section {
		margin-bottom: var(--spacing-xl);
	}

	.annuaire-yachts-title {
		font-size: 1.5rem;
		font-weight: 700;
		color: var(--color-dark);
		margin: 0 0 var(--spacing-md) 0;
	}

	.ab-results-grid {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
		gap: 1.5rem;
	}

	.ab-yacht-card {
		background: white;
		border-radius: 0.5rem;
		overflow: hidden;
		box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
		transition: box-shadow 0.2s;
	}

	.ab-yacht-card:hover {
		box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
	}

	.ab-yacht-image {
		width: 100%;
		height: 12rem;
		background: #d1d5db;
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: hidden;
		position: relative;
	}

	

	.ab-yacht-body {
		padding: 1.5rem;
		text-align: center;
	}

	.ab-yacht-title {
		font-size: 0.9rem;
		font-weight: 600;
		margin: 0 0 0.5rem;
		color: var(--color-dark);
	}

	.ab-yacht-price {
		font-size: 1rem;
		font-weight: bold;
		color: #857f7f;
		margin: 0 0 0.5rem;
		font-family: Arial, sans-serif;
	}

	.ab-yacht-location {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		color: #666;
		margin-bottom: 1.5rem;
		font-size: 0.875rem;
	}

	.ab-yacht-location svg {
		width: 1.25rem;
		height: 1.25rem;
		flex-shrink: 0;
	}

	.ab-yacht-btn {
		display: inline-block;
		width: 100%;
		padding: 0.5rem 2rem;
		background: var(--color-primary);
		color: white;
		border: none;
		border-radius: 9999px;
		font-weight: bold;
		cursor: pointer;
		text-decoration: none;
		font-size: 0.875rem;
		white-space: nowrap;
		box-sizing: border-box;
	}

	.ab-yacht-btn:hover {
		background: var(--color-accent);
	}

	/* ------ LOGO EN BAS ------ */
	.annuaire-footer-branding {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-md);
	}

	.annuaire-logo {
		width: 140px;
		height: auto;
		opacity: 1;
		transition: opacity 0.3s ease;
	}

	.annuaire-logo:hover {
		opacity: 0.8;
	}

	.annuaire-footer-contact {
		font-size: 1rem;
		color: var(--color-text-secondary);
		font-weight: 500;
	}

	/* ------ RESPONSIVE TABLETTE ------ */
	@media (max-width: 992px) {
		.annuaire-container {
			grid-template-columns: auto 1fr;
		}

		.annuaire-form-section {
			grid-column: 1 / -1;
		}
	}

	/* ------ RESPONSIVE MOBILE ------ */
	@media (max-width: 768px) {
		.annuaire-hero {
			padding: var(--spacing-lg) var(--spacing-md);
			margin-bottom: var(--spacing-lg);
		}

		.annuaire-container {
			grid-template-columns: 1fr;
			gap: var(--spacing-md);
		}

		.annuaire-photo-wrapper {
			width: 200px;
			height: 280px;
			margin: 0 auto;
		}

		.annuaire-info-section {
			text-align: center;
		}

		.annuaire-name {
			font-size: 2.5rem !important;
		}

		.annuaire-subtitle {
			margin-bottom: 0.5rem;
		}

		.annuaire-listing-count:last-of-type
		 {
			margin-bottom: 1rem;
		}

	

		.annuaire-form-section {
			grid-column: auto;
		}

		.ab-results-grid {
			grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
		}

		.annuaire-footer-branding {
			text-align: center;
		}

		.annuaire-logo {
			width: 120px;
			margin: 0 auto;
		}

		.annuaire-footer-contact {
			text-align: center;
		}
	}

	@media (max-width: 480px) {
		.annuaire-hero {
			padding: var(--spacing-md) var(--spacing-sm);
		}

		.annuaire-name {
			font-size: 1.5rem;
		}

		.annuaire-subtitle {
			font-size: 0.9rem;
		}

	}

	/* ===== FIX SAFARI : boutons WP natifs (ex. "More destinations") qui
	   passent en texte vertical caractère par caractère. Safari calcule mal
	   la largeur intrinsèque d'un lien texte dans un conteneur flex
	   (.wp-block-buttons), sans ce correctif il rétrécit le bouton jusqu'à
	   forcer un retour à la ligne sur chaque caractère. ===== */
	.wp-block-buttons .wp-block-button {
		flex: none;
	}

	.wp-block-buttons .wp-block-button__link {
		display: inline-block;
		white-space: nowrap;
		width: max-content;
	}

	/* Le réglage de largeur du bouton dans l'éditeur (25% / 50% / 75% / 100%)
	   ajoute une classe wp-block-button__width-* et une règle native WP plus
	   spécifique que celle ci-dessus, qui fige le wrapper à cette largeur ET
	   force le lien à width:100% dedans. Il faut neutraliser les deux
	   ensemble, sinon le lien déborde du wrapper de façon asymétrique et le
	   bouton n'est plus centré. */
	.wp-block-buttons .wp-block-button[class*="wp-block-button__width-"] {
		width: max-content !important;
		max-width: 100%;
	}

	.wp-block-buttons .wp-block-button[class*="wp-block-button__width-"] .wp-block-button__link {
		width: max-content !important;
		max-width: 100%;
	}

	/* ===== FILTRE PAR ÉQUIPEMENTS TECHNIQUES [annuaire_bateaux_filtres_equipements] =====
	   Colonne de filtres à gauche, résultats (.ab-results-grid / .ab-yacht-card,
	   partagés avec includes/shortcodes/bateaux.php) à droite. */
	.abe-filtres {
		max-width: 1440px;
		margin: 0 auto;
		padding: 2rem 1rem;
		display: grid;
		grid-template-columns: 260px 1fr;
		gap: 2rem;
		align-items: start;
		box-sizing: border-box;
	}

	/* Colonne de gauche : encart des filtres actifs + sidebar, sticky ensemble
	   pour que l'encart reste juste au-dessus des filtres au défilement. */
	.abe-sidebar-col {
		display: flex;
		flex-direction: column;
		gap: 1rem;
		position: sticky;
		top: 1rem;
		box-sizing: border-box;
		max-height: calc(100vh - 2rem);
		overflow-y: auto;
		scrollbar-width: thin;
		scrollbar-color: var(--color-primary) transparent;
	}

	.abe-sidebar-col::-webkit-scrollbar {
		width: 4px;
	}

	.abe-sidebar-col::-webkit-scrollbar-track {
		background: transparent;
	}

	.abe-sidebar-col::-webkit-scrollbar-thumb {
		background-color: var(--color-primary);
		border-radius: 4px;
	}

	.abe-sidebar {
		background: white;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-md);
		padding: 1.5rem;
		box-sizing: border-box;
	}

	/* Encart listant les filtres actifs (pastilles), positionné juste au-dessus
	   de la sidebar et sticky avec elle (voir .abe-sidebar-col). */
	.abe-filtres-actifs {
		background: white;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-md);
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
		padding: 0.85rem 1rem;
		box-sizing: border-box;
		flex-shrink: 0;
	}

	.abe-filtres-actifs-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem;
		margin-bottom: 0.6rem;
	}

	.abe-filtres-actifs-titre {
		font-size: 0.78rem;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.03em;
		color: var(--color-primary);
	}

	.abe-erase-btn {
		width: auto;
		min-width: auto;
		height: auto;
		padding: 0.35rem 0.65rem;
		font-size: 0.72rem;
		font-weight: 600;
		white-space: nowrap;
	}

	/* Pastilles des filtres actifs (checkboxes cochées, champs remplis, plages
	   renseignées...), générées par js/equipements.js :: afficherPills(). */
	.abe-pills {
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem;
		margin-bottom: 1rem;
	}

	.abe-pill {
		display: inline-flex;
		align-items: center;
		gap: 0.4rem;
		background: #dbeafe;
		color: #162d55;
		border-radius: 9999px;
		padding: 0.3rem 0.4rem 0.3rem 0.75rem;
		font-size: 0.78rem;
		font-weight: 500;
		max-width: 100%;
	}

	.abe-pill-texte {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.abe-pill-remove {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		width: 1.1rem;
		height: 1.1rem;
		border: none;
		border-radius: 50%;
		background: rgba(0, 57, 166, 0.15);
		color: var(--color-accent);
		cursor: pointer;
		font-size: 0.85rem;
		line-height: 1;
		padding: 0;
	}

	.abe-pill-remove:hover {
		background: rgba(0, 57, 166, 0.3);
	}

	/* Chaque groupe de filtres ("Plus de champs", groupes d'équipements, "Engine")
	   est un <details>/<summary> natif : repliable sans JS supplémentaire. */
	.abe-groupe {
		border-top: 1px solid var(--color-border);
		padding-top: 1rem;
		margin-top: 1rem;
	}

	.abe-groupe:first-of-type {
		border-top: none;
		padding-top: 0;
		margin-top: 0;
	}

	.abe-groupe-titre {
		font-size: 0.95rem;
		font-weight: 600;
		color: var(--color-primary);
		cursor: pointer;
		list-style: none;
	}

	.abe-groupe-titre::-webkit-details-marker {
		display: none;
	}

	.abe-groupe-titre::before {
		content: '▸';
		display: inline-block;
		margin-right: 0.5rem;
		transition: transform 0.15s;
		color: var(--color-accent);
	}

	.abe-groupe[open] > .abe-groupe-titre::before {
		transform: rotate(90deg);
	}

	.abe-groupe .abe-champs-groupe,
	.abe-groupe .abe-checkbox-list {
		margin-top: 1rem;
	}

	.abe-champs-groupe {
		display: flex;
		flex-direction: column;
		gap: 0.85rem;
	}

	.abe-champ {
		position: relative;
	}

	.abe-champ label {
		display: block;
		font-size: 0.8rem;
		font-weight: 600;
		color: #666;
		margin-bottom: 0.3rem;
	}

	.abe-champ-plage {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.5rem;
	}

	/* Dropdown d'autocomplétion (3+ caractères) sous un champ texte, voir
	   js/equipements.js :: initAutocomplete. */
	.abe-autocomplete {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 20;
		margin: 0;
		padding: 0;
		list-style: none;
		background: white;
		border: 1px solid #d1d5db;
		border-top: none;
		border-radius: 0 0 0.375rem 0.375rem;
		max-height: 200px;
		overflow-y: auto;
		box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	}

	.abe-autocomplete-option {
		padding: 0.5rem 0.75rem;
		font-size: 0.85rem;
		cursor: pointer;
	}

	.abe-autocomplete-option:hover {
		background: #f3f4f6;
	}

	.abe-autocomplete-empty {
		cursor: default;
		color: #9ca3af;
		font-style: italic;
	}

	.abe-autocomplete-empty:hover {
		background: transparent;
	}

	.abe-autocomplete-reset {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.5rem;
		background: #f3f4f6;
		color: #4b5563;
		font-weight: 600;
		border-bottom: 1px solid var(--color-border);
	}

	.abe-autocomplete-reset:hover {
		background: #e5e7eb;
	}

	.abe-autocomplete-reset-croix {
		flex-shrink: 0;
		color: #6b7280;
	}

	.abe-sidebar-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		margin-bottom: 1rem;
	}

	.abe-sidebar-title {
		font-size: 1.1rem;
		font-weight: 600;
		color: var(--color-primary);
		margin: 0;
	}

	.abe-checkbox-list {
		list-style: none;
		margin: 0;
		padding: 0;
		display: flex;
		flex-direction: column;
		gap: 0.85rem;
	}

	.abe-checkbox-item label {
		display: flex;
		align-items: center;
		gap: 0.6rem;
		font-size: 0.9rem;
		color: #333;
		cursor: pointer;
	}

	.abe-checkbox-item input[type="checkbox"] {
		width: 1.1rem;
		height: 1.1rem;
		accent-color: var(--color-accent);
		cursor: pointer;
		flex-shrink: 0;
	}

	.abe-results-section {
		min-width: 0;
	}

	/* Rangée d'en-tête de .abe-results-section : filtres actifs (2/3) puis,
	   à sa suite, #ab-message et .ab-currency-switcher (celui-ci auto-injecté
	   juste après #ab-message par js/currency.js). */
	.abe-results-header-row {
		display: flex;
		align-items: flex-start;
		gap: 1rem;
		margin-bottom: 1rem;
	}

	.abe-results-header-row .abe-filtres-actifs {
		flex: 0 0 66.6667%;
		max-width: 66.6667%;
	}

	/* Colonne de droite : nombre de résultats (#ab-message) au-dessus du
	   sélecteur de devise (.ab-currency-switcher, auto-injecté juste après
	   #ab-message par js/currency.js). */
	.abe-results-header-row .abe-results-summary-col {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
		flex: 1 1 0;
	}

	.abe-results-header-row .abe-results-summary-col .ab-message {
		font-size: 1.25rem;
		font-weight: 700;
		color: var(--color-primary);
		margin-bottom: 0;
	}

	.abe-results-header-row .abe-results-summary-col .ab-currency-switcher {
		margin-bottom: 0;
	}

	@media (max-width: 900px) {
		.abe-filtres {
			grid-template-columns: 1fr;
		}

		.abe-sidebar-col {
			position: static;
			max-height: none;
			overflow-y: visible;
		}

		.abe-checkbox-list {
			flex-direction: row;
			flex-wrap: wrap;
			gap: 0.5rem 1.25rem;
		}

		.abe-results-header-row {
			flex-direction: column;
		}

		.abe-results-header-row .abe-filtres-actifs {
			flex-basis: auto;
			max-width: 100%;
		}
	}

	@media (max-width: 480px) {
		.abe-filtres {
			padding: 1.5rem 1rem;
		}
	}
