/*
Theme Name: france-prestige-travel
Text Domain: france-prestige-travel
Description: Thème sur mesure France Prestige Travel — premium, multilingue, responsive, orienté devis et B2B.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
WPVibe: yes
*/

/* This file holds the WordPress theme header (above) plus truly global
 * rules only. Tailwind handles everything else.
 *
 * - Design tokens live in theme.css's @theme block.
 * - Prose + form styles live in presets.css.
 * - Layout, color, typography utilities come from Tailwind v4.
 *
 * Do NOT add component classes here (.btn-primary, .card, etc.). Use
 * Tailwind utilities in templates instead.
 */

html {
	scroll-behavior: smooth;
}

/* Keep mandatory image attribution visible without competing with the design. */
.fpt-photo-credit {
	display: inline-block;
	font-size: 7px !important;
	line-height: 1.1 !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	opacity: .55;
	max-width: 110px;
}

.fpt-photo-credit a {
	color: inherit;
	font-size: inherit !important;
	text-decoration: none;
}

/* WPVibe draft — safe first-wave layout corrections. */
.fpt-legal-grid--contact-only {
	grid-template-columns: minmax(0, 1fr);
	max-width: 760px;
}

html,
body {
	max-width: 100%;
	overflow-x: clip;
}

.fpt-destination-card__link {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	color: inherit;
	text-decoration: none;
}

.fpt-destination-card::after {
	z-index: 1;
	pointer-events: none;
}

.fpt-destination-card__copy {
		left: 20px !important;
		right: 20px !important;
		bottom: 18px !important;
		padding: 12px 15px 14px !important;
		background: rgba(3, 18, 29, .76) !important;
		border-left: 2px solid #cfba86;
		box-sizing: border-box;
		text-shadow: 0 2px 12px rgba(0,0,0,.8);
	z-index: 2;
}

.fpt-destination-card > .fpt-photo-credit {
	z-index: 3;
	right: 10px;
	bottom: 8px;
	max-width: 150px;
}

.fpt-destination-card__copy span {
		color: #f3dfaa !important;
		opacity: 1 !important;
		font-weight: 700 !important;
	}
	.fpt-destination-card__copy h3 {
		color: #ffffff !important;
		opacity: 1 !important;
		font-weight: 700 !important;
		font-size: clamp(2.25rem, 9vw, 3rem) !important;
		line-height: .95 !important;
		-webkit-text-fill-color: #ffffff !important;
			text-shadow: 0 3px 18px #000, 0 1px 3px #000 !important;
	}

.fpt-airport-grid,
.fpt-airport-card,
.fpt-airport-card__body,
.fpt-guide-grid,
.fpt-guide-card,
.fpt-page-hero__copy {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.fpt-airport-card .fpt-button {
	box-sizing: border-box;
	white-space: normal;
	text-align: center;
	line-height: 1.35;
	padding-block: 12px;
}

.fpt-airport-card { text-decoration:none; color:inherit; cursor:pointer; }

.fpt-page-hero h1,
.fpt-airport-card h3 {
	overflow-wrap: anywhere;
}

@media (max-width: 860px) {
	.fpt-airport-grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.fpt-airport-card {
		grid-template-columns: minmax(180px, 42%) minmax(0, 1fr);
		width: 100%;
	}
}

@media (max-width: 600px) {
	.fpt-airport-card {
		display: block;
		width: 100%;
	}
	.fpt-airport-card > img {
		width: 100%;
		height: 190px;
		object-fit: cover;
		pointer-events: none;
	}
	.fpt-airport-card__body {
		position: relative;
		z-index: 2;
	}
	.fpt-airport-card .fpt-button {
		position: relative;
		z-index: 5;
		pointer-events: auto !important;
		touch-action: manipulation;
	}
	.fpt-page-hero--visual .fpt-page-hero__media {
		min-height: 0;
		height: auto;
		overflow: visible;
	}
	.fpt-page-hero--visual .fpt-page-hero__media img {
		width: 100%;
		height: auto;
		min-height: 0;
		object-fit: contain;
		object-position: center;
	}
	.fpt-destination-card > .fpt-photo-credit {
		max-width: 120px;
	}
}
