@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap');

.to-listing {
	--to-green-900: #064e3b;
	--to-green-800: #065f46;
	--to-green-700: #047857;
	--to-green-600: #059669;
	--to-green-50: #ecfdf5;
	--to-stone-900: #1c1917;
	--to-stone-600: #57534e;
	--to-stone-400: #a8a29e;
	--to-stone-200: #e7e5e4;
	--to-stone-50: #fafaf9;
	--to-amber-50: #fffbeb;
	--to-amber-200: #fde68a;
	--to-amber-800: #92400e;

	max-width: 1200px;
	margin: 0 auto;
	padding: 24px 16px 48px;
	color: var(--to-stone-900);
	background: var(--to-stone-50);
	font-family: 'Inter', -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.to-listing h1,
.to-listing h2 {
	font-family: 'Fraunces', Georgia, "Times New Roman", serif;
	font-weight: 600;
	margin: 0 0 8px;
}
.to-listing h2 { color: var(--to-green-800); font-size: 19px; }

/* Galerie */
.to-gallery { width: 100%; }
.to-gallery--full-bleed {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

/* Bandeau de photos visibles (type Homey) : plusieurs photos affichées
   côte à côte, recadrées pour remplir leur case (comme un aperçu), les
   flèches font défiler le bandeau. Cliquer sur une photo ouvre le
   diaporama plein écran avec les images entières (.to-lightbox). */
.to-gallery-strip-wrap {
	position: relative;
	width: 100%;
}
.to-gallery-strip {
	display: flex;
	width: 100%;
	height: clamp(280px, 42vw, 500px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.to-gallery-strip::-webkit-scrollbar { display: none; }
.to-gallery-strip-item {
	position: relative;
	flex: 0 0 100%;
	scroll-snap-align: start;
	border: none;
	padding: 0;
	margin: 0;
	cursor: zoom-in;
	background: #16241d;
}
@media (min-width: 900px) {
	.to-gallery-strip-item { flex: 0 0 33.3334%; }
}
.to-gallery-strip-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.to-gallery-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: none;
	background: #fff;
	color: var(--to-stone-600);
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
	z-index: 2;
	font-size: 16px;
}
.to-gallery-nav--prev { left: 16px; }
.to-gallery-nav--next { right: 16px; }
.to-gallery-count {
	position: absolute;
	right: 16px;
	bottom: 16px;
	background: var(--to-green-800);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	padding: 8px 16px;
	border-radius: 999px;
	white-space: nowrap;
	border: none;
	cursor: pointer;
	font-family: inherit;
	z-index: 2;
}
@media (max-width: 640px) {
	.to-gallery-nav { width: 38px; height: 38px; }
	.to-gallery-count { right: 12px; bottom: 12px; }
}

/* Grille de photos dans le corps de l'annonce, sous la description
/* Grille de photos dans le corps de l'annonce, sous la description
   (8 vignettes max, la dernière affiche "+N" s'il y a plus de photos). */
.to-photo-grid-section { margin: 0 0 28px; }
.to-photo-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}
.to-photo-grid-tile {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	border: none;
	padding: 0;
	margin: 0;
	overflow: hidden;
	border-radius: 10px;
	cursor: zoom-in;
	background: var(--to-stone-100, #f5f5f4);
}
.to-photo-grid-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}
.to-photo-grid-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(6, 32, 24, 0);
	color: #fff;
	opacity: 0;
	transition: opacity .2s ease, background-color .2s ease;
}
.to-photo-grid-overlay svg { width: 26px; height: 26px; }
.to-photo-grid-tile:hover .to-photo-grid-overlay,
.to-photo-grid-tile:focus-visible .to-photo-grid-overlay {
	opacity: 1;
	background: rgba(6, 32, 24, 0.35);
}
.to-photo-grid-tile:hover img { transform: scale(1.05); }
.to-photo-grid-more {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(6, 32, 24, 0.55);
	color: #fff;
	font-size: 22px;
	font-weight: 700;
	font-family: 'Fraunces', Georgia, serif;
}
@media (max-width: 780px) {
	.to-photo-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Lightbox plein écran (diaporama) — images entières, jamais recadrées.
   Fonctionne au clavier (Échap), à la souris (croix + clic hors champ)
   et au tactile (balayage gauche/droite, cf. to-listing.js). */
.to-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(10, 14, 12, 0.96);
	display: flex;
	align-items: center;
	justify-content: center;
}
.to-lightbox[hidden] { display: none; }
.to-lightbox-stage {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.to-lightbox-item {
	position: absolute;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	margin: 0;
	padding: 40px 72px;
	box-sizing: border-box;
}
.to-lightbox-item.is-active { display: flex; }
.to-lightbox-item img {
	max-width: 100%;
	max-height: calc(100% - 40px);
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 4px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.to-lightbox-item figcaption {
	margin-top: 14px;
	color: #fff;
	font-size: 13px;
	opacity: 0.85;
	text-align: center;
}
.to-lightbox-close {
	position: absolute;
	top: 18px;
	right: 20px;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: none;
	background: rgba(255,255,255,0.12);
	color: #fff;
	font-size: 18px;
	cursor: pointer;
	z-index: 3;
}
.to-lightbox-close:hover { background: rgba(255,255,255,0.22); }
.to-lightbox-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 48px;
	border-radius: 999px;
	border: none;
	background: rgba(255,255,255,0.12);
	color: #fff;
	font-size: 20px;
	cursor: pointer;
	z-index: 3;
}
.to-lightbox-nav:hover { background: rgba(255,255,255,0.22); }
.to-lightbox-nav--prev { left: 16px; }
.to-lightbox-nav--next { right: 16px; }
.to-lightbox-counter {
	position: absolute;
	bottom: 18px;
	left: 50%;
	transform: translateX(-50%);
	color: #fff;
	font-size: 12.5px;
	background: rgba(255,255,255,0.12);
	padding: 6px 14px;
	border-radius: 999px;
	z-index: 3;
}
@media (max-width: 640px) {
	.to-lightbox-item { padding: 24px 16px; }
	.to-lightbox-nav { width: 40px; height: 40px; font-size: 16px; }
	.to-lightbox-close { width: 40px; height: 40px; }
}

/* Layout */
.to-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	margin-top: 32px;
}
@media (min-width: 992px) {
	.to-layout {
		grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
		align-items: start;
	}
}
.to-main { min-width: 0; }

.to-title { font-size: 30px; }
.to-subtitle { color: var(--to-stone-600); font-size: 14px; margin: 0 0 16px; }
.to-header { margin-bottom: 28px; }
.to-facts {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
	padding: 0;
	margin: 0;
	font-size: 14px;
	color: var(--to-stone-600);
}
.to-facts li { display: flex; align-items: center; gap: 6px; }
.to-fact-icon { font-size: 16px; color: var(--to-green-700); display: inline-flex; }
.to-fact-icon svg { display: block; }

.to-host-actions { margin-top: 18px; }

.to-card {
	background: #fff;
	border: 1px solid var(--to-stone-200);
	border-radius: 16px;
	padding: 24px;
	margin-bottom: 24px;
}
.to-description p { font-size: 14.5px; line-height: 1.7; color: var(--to-stone-700, #44403c); margin: 0; }

.to-contest--premium {
	display: flex;
	align-items: center;
	gap: 24px;
	text-align: left;
	background: linear-gradient(120deg, #fdf6ec 0%, #fbead0 45%, var(--to-green-50) 100%);
	border: 1px solid #f3e2c2;
	border-radius: 18px;
	padding: 28px;
	margin-bottom: 24px;
}
.to-contest-badge {
	flex: 0 0 72px;
	width: 72px;
	height: 72px;
	border-radius: 999px;
	background: linear-gradient(145deg, #fde68a, #d97706);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 20px -6px rgba(217,119,6,0.5);
}
.to-contest-body { flex: 1 1 auto; }
.to-contest-body h2 { color: #7c4a12; font-size: 19px; }
.to-contest-body p { color: #8a6534; font-size: 14px; margin: 0 0 8px; max-width: 520px; }
.to-contest-dates { font-size: 12px; color: #a9772f; margin-bottom: 14px !important; }
.to-contest-deco {
	position: relative;
	flex: 0 0 auto;
	display: none;
	color: var(--to-green-700);
	opacity: 0.85;
}
@media (min-width: 780px) {
	.to-contest-deco { display: block; }
}
.to-contest-sparkle { position: absolute; color: #f59e0b; }
.to-contest-sparkle--1 { top: -10px; right: -6px; }
.to-contest-sparkle--2 { bottom: -6px; left: -10px; }
@media (max-width: 640px) {
	.to-contest--premium { flex-direction: column; text-align: center; }
	.to-contest-body p { max-width: none; }
}

.to-host { display: flex; align-items: flex-start; gap: 16px; }
.to-host-avatar {
	flex: 0 0 96px;
	width: 96px;
	height: 96px;
	border-radius: 999px;
	background: var(--to-green-50);
	color: var(--to-green-800);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 32px;
	font-weight: 600;
	overflow: hidden;
}
.to-host-avatar--photo { padding: 0; background: var(--to-stone-200); }
.to-host-avatar--photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 999px; }
.to-host-name { font-weight: 600; margin: 0; }
.to-host-bio { font-size: 14px; color: var(--to-stone-600); margin: 4px 0; }
.to-host-meta { font-size: 12px; color: var(--to-stone-400); margin: 0; }
.to-pill {
	margin-left: 8px;
	background: var(--to-green-50);
	color: var(--to-green-700);
	font-size: 11px;
	font-weight: 600;
	padding: 2px 10px;
	border-radius: 999px;
}

.to-ratings { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 640px) {
	.to-ratings { grid-template-columns: 1fr 1fr; column-gap: 32px; }
}
.to-rating-row { display: flex; justify-content: space-between; font-size: 14px; }
.to-rating-track { height: 6px; border-radius: 999px; background: var(--to-stone-200); margin-top: 4px; }
.to-rating-fill { height: 6px; border-radius: 999px; background: var(--to-green-600); }

.to-amenities {
	display: grid;
	grid-template-columns: repeat(var(--to-amenities-columns, 6), minmax(0, 1fr));
	gap: 10px;
}
.to-amenities.is-expanded {
	grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
}
.to-amenity {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 0;
	background: var(--to-green-50);
	border: 1px solid #d8f0e3;
	border-radius: 10px;
	padding: 12px 6px;
	text-align: center;
	font-size: 11px;
	color: var(--to-stone-700, var(--to-stone-600));
}
.to-amenity span:last-child {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}
.to-amenity[hidden] { display: none; }
.to-amenities.is-expanded .to-amenity span:last-child { white-space: normal; }
.to-amenity--highlight { background: #eff6ff; border-color: #bfdbfe; }
.to-amenity--highlight .to-amenity-icon { color: #1d4ed8; }
.to-amenity--highlight span:last-child { color: #1e40af; font-weight: 600; }
.to-amenity-icon { font-size: 24px; line-height: 1; color: var(--to-green-700); display: inline-flex; }
.to-amenity-icon svg { display: block; }
.to-amenity--toggle {
	background: var(--to-green-700);
	border-color: var(--to-green-700);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: 0 4px 12px -4px rgba(6, 95, 70, 0.45);
}
.to-amenity--toggle:hover { background: var(--to-green-800); border-color: var(--to-green-800); }
@media (max-width: 640px) {
	.to-amenities:not(.is-expanded) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.to-amenity--toggle .to-amenity-chevron { transition: transform .15s ease; }
.to-amenity--toggle.is-open .to-amenity-chevron { transform: rotate(180deg); }
@media (min-width: 640px) {
	.to-amenities.is-expanded { flex-wrap: wrap; overflow-x: visible; }
}

.to-reviews-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 24px;
}
@media (min-width: 640px) {
	.to-reviews-grid { grid-template-columns: 1fr 1fr; }
}
.to-reviews-grid .to-card { margin-bottom: 0; }
.to-google-rating-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.to-google-brand { font-size: 13px; font-weight: 700; color: var(--to-stone-600); margin: 0; }
.to-google-score { font-size: 30px; font-family: 'Fraunces', Georgia, serif; color: var(--to-stone-900); margin: 4px 0 0; }
.to-google-stars { color: #f59e0b; letter-spacing: 2px; margin: 2px 0 4px; }
.to-google-count { font-size: 12px; color: var(--to-stone-600); margin: 0; }
.to-google-see-all {
	display: inline-block;
	margin-top: 10px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--to-green-800);
	text-decoration: none;
}
.to-google-see-all:hover { text-decoration: underline; }
.to-featured-review-card .to-featured-review-head { display: flex; align-items: center; gap: 10px; margin: 6px 0 2px; }
.to-featured-review-avatar { width: 48px; height: 48px; border-radius: 999px; object-fit: cover; flex: 0 0 auto; }
.to-featured-review-avatar--fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--to-green-800);
	color: #fff;
	font-weight: 700;
	font-family: 'Fraunces', Georgia, serif;
}
.to-featured-review-author { font-weight: 600; font-size: 14px; margin: 0; }
.to-featured-review-date { font-weight: 400; color: var(--to-stone-400); font-size: 12px; margin: 2px 0 0; }
.to-featured-review-text { font-size: 13px; color: var(--to-stone-600); margin: 4px 0 0; font-style: italic; line-height: 1.5; }

.to-house-rules { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; counter-reset: to-house-rule; }
.to-house-rules li {
	font-size: 13.5px;
	color: var(--to-stone-600);
	padding-left: 30px;
	position: relative;
	line-height: 1.5;
	min-height: 20px;
	counter-increment: to-house-rule;
}
.to-house-rules li::before {
	content: counter(to-house-rule);
	position: absolute;
	left: 0;
	top: 0;
	width: 20px;
	height: 20px;
	border-radius: 999px;
	background: var(--to-green-600);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.to-address-line { font-size: 13px; color: var(--to-stone-600); margin: 0 0 12px; }

.to-form-row { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 12px; }
@media (min-width: 640px) {
	.to-form-row { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
}
.to-form label { display: block; font-size: 12px; color: var(--to-stone-600); }
.to-form input, .to-form textarea, .to-form select, .to-sidebar select, .to-sidebar input {
	width: 100%;
	margin-top: 4px;
	padding: 9px 10px;
	border: 1px solid var(--to-stone-200);
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	box-sizing: border-box;
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
}
.to-form select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%2357534e' stroke-width='1.5' fill='none' fill-rule='evenodd'/></svg>");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 30px;
}
.to-form-full { display: block; margin-bottom: 12px; }
.to-form-captcha { display: block; margin-bottom: 12px; max-width: 240px; }
.to-warning {
	font-size: 12px;
	color: var(--to-amber-800);
	background: var(--to-amber-50);
	border: 1px solid var(--to-amber-200);
	border-radius: 10px;
	padding: 10px 12px;
}
.to-feedback { padding: 10px 12px; border-radius: 8px; font-size: 14px; }
.to-feedback--success { background: var(--to-green-50); color: var(--to-green-800); }
.to-feedback--error { background: #fef2f2; color: #991b1b; }

.to-listing .to-btn {
	display: inline-block;
	text-align: center;
	border-radius: 999px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	border: 1px solid transparent;
}
.to-listing .to-btn--primary { background: var(--to-green-800); color: #fff; }
.to-listing .to-btn--primary:hover { background: var(--to-green-900); color: #fff; }
.to-listing .to-btn--outline { background: #fff; color: var(--to-green-700); border-color: var(--to-green-700); }
.to-listing .to-btn--outline:hover { background: var(--to-green-50); }
.to-listing .to-btn--full { display: block; width: 100%; box-sizing: border-box; }

.to-listing .to-btn--ota { display: flex; align-items: center; justify-content: center; gap: 10px; }
.to-btn-ota-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 6px;
	font-family: Georgia, serif;
	font-weight: 700;
	font-size: 13px;
	flex: 0 0 auto;
}
.to-btn-ota-logo:empty { display: none; }
.to-btn-ota-logo--round { border-radius: 999px; }
.to-btn-ota-logo svg { width: 14px; height: 14px; fill: currentColor; stroke: none; }
.to-btn-ota-logo-img { width: 16px; height: 16px; object-fit: contain; display: block; }

.to-listing .to-btn--booking { background: #003580; color: #fff; border-color: #003580; }
.to-listing .to-btn--booking:hover { background: #002a66; color: #fff; }
.to-listing .to-btn--booking .to-btn-ota-logo { background: #febb02; color: #003580; }

.to-listing .to-btn--airbnb { background: #ff385c; color: #fff; border-color: #ff385c; }
.to-listing .to-btn--airbnb:hover { background: #e31c5f; color: #fff; }
.to-listing .to-btn--airbnb .to-btn-ota-logo { background: #fff; }

.to-listing .to-btn--website { background: var(--to-stone-900); color: #fff; border-color: var(--to-stone-900); }
.to-listing .to-btn--website:hover { background: #000; color: #fff; }
.to-listing .to-btn--website .to-btn-ota-logo { color: #fff; }

/* Sidebar — reste fixe à l'écran (sticky) tant que le contenu central
   défile, mais ne défile plus jamais elle-même (sidebar allégée). */
.to-sidebar {
	position: sticky;
	top: 24px;
	align-self: start;
}
.to-sidebar-card {
	background: #fff;
	border: 1px solid var(--to-stone-200);
	border-radius: 16px;
	padding: 24px;
	margin-bottom: 20px;
}
.to-sidebar-card.to-ticket {
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.to-claim-cta-card {
	background: var(--to-green-50);
	border-color: #a7f3d0;
	text-align: center;
}
.to-claim-cta-card h3 { font-size: 15px; margin: 0 0 6px; }
.to-claim-cta-card p { font-size: 13px; color: var(--to-stone-600); margin: 0 0 14px; }
.to-ticket--pending {
	text-align: center;
	padding: 40px 24px;
}
.to-pending-title {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--to-stone-900);
	margin: 0 0 20px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.to-ticket--pending .to-phone-btn { margin-top: 0; }
.to-sidebar-card h3 { font-family: Georgia, serif; font-size: 15px; margin: 0 0 8px; }
.to-sidebar-card p { font-size: 13px; color: var(--to-stone-600); margin: 0 0 12px; }
.to-eyebrow { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--to-green-700); margin: 0; }
.to-sidebar-card .to-eyebrow--premium {
	display: block;
	background: linear-gradient(135deg, var(--to-green-700), var(--to-green-800));
	color: #fff;
	margin: -24px -24px 16px;
	padding: 12px 24px;
	border-radius: 16px 16px 0 0;
	letter-spacing: 0.06em;
	text-align: center;
}
.to-date-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.to-date-row label, .to-guests-select { font-size: 12px; color: var(--to-stone-600); }
.to-guests-select { display: block; margin-top: 12px; }

.to-rates { margin-top: 20px; font-size: 14px; }
.to-rate-row { display: flex; justify-content: space-between; padding: 3px 0; color: var(--to-stone-600); }

.to-perforation {
	position: relative;
	height: 1px;
	border-top: 2px dashed var(--to-stone-200);
	margin: 20px -12px;
}
.to-perforation::before, .to-perforation::after {
	content: "";
	position: absolute;
	top: -10px;
	width: 20px;
	height: 20px;
	border-radius: 999px;
	background: var(--to-stone-50);
}
.to-perforation::before { left: -10px; }
.to-perforation::after { right: -10px; }

.to-total-box { background: var(--to-green-50); border-radius: 12px; padding: 16px; margin-bottom: 16px; }
.to-total-box[hidden] { display: none; }
.to-total-row { display: flex; justify-content: space-between; align-items: baseline; }
.to-total-row strong { font-size: 18px; color: var(--to-green-900); font-family: Georgia, serif; }
.to-total-note { font-size: 12px; color: var(--to-green-700); margin: 4px 0 0; }

.to-or {
	text-align: center;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--to-stone-400);
	margin: 28px 0 14px;
	padding-top: 20px;
	border-top: 1px solid var(--to-stone-200);
}

.to-phone-btn { margin-top: 12px; }
.to-phone-note {
	text-align: center;
	font-size: 11px;
	color: var(--to-stone-400);
	margin: 6px 0 0;
}
.to-phone-note.is-revealed { color: var(--to-green-700); font-weight: 600; font-size: 13px; }

.to-promo-box { background: var(--to-green-50); border-color: #a7f3d0; }
.to-promo-box h3, .to-promo-box p { color: var(--to-green-900); }
.to-promo-box h3, .to-host-cta h3 {
	font-size: 15px;
	line-height: 1.3;
	margin-bottom: 8px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.to-promo-box-icon { display: inline-flex; flex: 0 0 auto; color: #f59e0b; }
.to-promo-box-icon svg { width: 16px; height: 16px; }
.to-promo-box--photo {
	background-size: 115%;
	background-repeat: no-repeat;
	background-position: center;
	background-color: #064e3b;
	border-color: transparent;
}
.to-promo-box--photo h3, .to-promo-box--photo p { color: #fff; }
.to-promo-box--photo .to-promo-note { color: rgba(255,255,255,0.75); }
.to-promo-form { display: flex; flex-direction: column; gap: 8px; }
.to-promo-form input {
	padding: 8px 10px;
	border: 1px solid var(--to-stone-200);
	border-radius: 8px;
	font-size: 14px;
	box-sizing: border-box;
}
.to-promo-note { font-size: 11px; color: var(--to-green-700); margin: 8px 0 0; text-align: center; }

/* La carte Promo vit désormais dans le corps principal (plus large que
   l'ancienne colonne de sidebar) : fond en cover plutôt qu'agrandi à 115%,
   formulaire sur une ligne plutôt qu'empilé. */
.to-card.to-promo-box--photo { background-size: cover; }
.to-card .to-promo-form { flex-direction: row; max-width: 460px; }
.to-card .to-promo-form input { flex: 1 1 auto; }
.to-card .to-promo-note { text-align: left; }

.to-host-cta { background: var(--to-green-900); border-color: var(--to-green-900); }
.to-host-cta h3, .to-host-cta p { color: #fff; }
.to-host-cta p { opacity: 0.85; }
.to-host-cta .to-btn--primary { background: #fff; color: var(--to-green-900); }
.to-host-cta .to-btn--primary:hover { background: var(--to-green-50); color: var(--to-green-900); }

.to-host-cta--photo {
	display: block;
	position: relative;
	text-decoration: none;
	background-size: 105%;
	background-repeat: no-repeat;
	background-position: center;
	background-color: #064e3b;
	min-height: 190px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}
.to-host-cta-text { position: relative; }
.to-host-cta--photo .to-btn {
	display: inline-block;
	margin: 4px 0 10px;
}

.to-report-box { background: #fef2f2; border-color: #fecaca; }
.to-report-box h3 { color: #991b1b; display: flex; align-items: center; gap: 8px; }
.to-report-alert-icon { color: #dc2626; flex: 0 0 auto; display: inline-flex; }
.to-report-box p { color: #b45309; }
.to-listing .to-btn--danger { background: #fff; color: #991b1b; border-color: #fca5a5; }
.to-listing .to-btn--danger:hover { background: #fef2f2; }

.to-alert {
	font-size: 12px;
	color: var(--to-amber-800);
	background: var(--to-amber-50);
	border: 1px solid var(--to-amber-200);
	border-radius: 10px;
	padding: 10px 12px;
}
.to-alert--tight { margin-top: 10px; }

.to-request-panel h3 { font-size: 15px; margin: 0 0 12px; font-family: Georgia, serif; }
.to-request-panel label { display: block; font-size: 12px; color: var(--to-stone-600); margin-bottom: 10px; }
.to-request-panel input, .to-request-panel textarea {
	width: 100%;
	margin-top: 4px;
	padding: 8px 10px;
	border: 1px solid var(--to-stone-200);
	border-radius: 8px;
	font-size: 14px;
	box-sizing: border-box;
}
.to-form-full { display: block; }

.to-footer {
	text-align: center;
	margin-top: 32px;
	padding-top: 16px;
	border-top: 1px solid var(--to-stone-200);
	font-size: 12px;
}
.to-footer a { color: var(--to-stone-400); text-decoration: none; }
.to-footer a:hover { color: var(--to-green-700); }

.to-empty { text-align: center; color: var(--to-stone-600); padding: 48px 0; }

/* Venir chez nous */
.to-directions-grid { display: grid; grid-template-columns: 1fr; gap: 24px; margin-bottom: 24px; }
@media (min-width: 640px) {
	.to-directions-grid { grid-template-columns: 1fr 1fr; }
	.to-directions-grid--single { grid-template-columns: 1fr; }
	.to-directions-grid--single .to-map { aspect-ratio: 16/6; }
}
.to-directions-grid .to-card { margin-bottom: 0; display: flex; flex-direction: column; }
.to-map { border-radius: 12px; overflow: hidden; aspect-ratio: 4/3; margin-bottom: 14px; }
.to-map iframe { width: 100%; height: 100%; border: 0; }
.to-transport-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; flex: 1 1 auto; }
.to-transport-item { display: flex; align-items: flex-start; gap: 12px; }
.to-transport-icon { display: inline-flex; flex: 0 0 auto; color: var(--to-green-700); }
.to-transport-icon svg { width: 22px; height: 22px; display: block; }
.to-transport-item strong { display: block; font-size: 13px; }
.to-transport-item p { margin: 2px 0 0; font-size: 13px; color: var(--to-stone-600); }

/* FAQ */
.to-faq-list { border-top: 1px solid var(--to-stone-200); }
.to-faq-item { border-bottom: 1px solid var(--to-stone-200); }
.to-faq-question {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: none;
	border: none;
	text-align: left;
	padding: 14px 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--to-stone-900);
	cursor: pointer;
}
.to-faq-question span { color: var(--to-stone-400); transition: transform .15s ease; }
.to-faq-question.is-open span { transform: rotate(180deg); }
.to-faq-answer { padding: 0 0 16px; font-size: 13px; color: var(--to-stone-600); }
/* Bloque le scroll de la page derrière le diaporama plein écran. */
html.to-lightbox-open,
html.to-lightbox-open body { overflow: hidden; }

/* "À propos de votre hôte" — fond vert clair, remonté en haut de fiche */
.to-card--host-tint { background: var(--to-green-50, #ecfdf5); border-color: #d8f0e3; }

/* Carte actions (favoris / signaler / partage), sous la carte réservation */
.to-listing-actions { display: flex; flex-direction: column; gap: 10px; }
.to-btn--favorite, .to-btn--report { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.to-btn--favorite svg { width: 16px; height: 16px; }
.to-btn--favorite.is-active { background: #fef2f2; border-color: #fca5a5; color: #b91c1c; }
.to-btn--favorite.is-active svg { fill: #dc2626; stroke: #dc2626; }

.to-share-label { font-size: 12px; font-weight: 600; color: var(--to-stone-600); margin: 4px 0 0; text-align: center; }
.to-share-row { display: flex; justify-content: center; gap: 10px; }
.to-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	color: #fff;
	transition: transform .15s ease, filter .15s ease;
}
.to-share-btn:hover { transform: translateY(-2px); filter: brightness(1.08); }
.to-share-btn--facebook { background: #1877F2; }
.to-share-btn--pinterest { background: #E60023; }
.to-share-btn--linkedin { background: #0A66C2; }

/* Règles de la maison — 4 règles fixes, fond identique à l'alerte
   "virement suspect" (sujet important, même traitement visuel). */
.to-house-rules-card {
	background: var(--to-amber-50);
	border-color: var(--to-amber-200);
}
.to-house-rules-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 24px;
}
.to-house-rule {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--to-amber-800);
}
.to-house-rule-icon {
	display: inline-flex;
	flex: 0 0 auto;
	color: var(--to-amber-800);
}
.to-house-rule-icon svg { width: 20px; height: 20px; }
@media (max-width: 560px) {
	.to-house-rules-grid { grid-template-columns: 1fr; }
}

/* Bloc vidéo — cadre décoratif "téléphone en mode paysage" : l'écran
   accueille la vidéo YouTube (16:9), les boutons latéraux (haut/bas de
   volume, lecture) rappellent la façade d'un smartphone à l'horizontale.
   Les vraies commandes de lecture restent celles, natives, du lecteur
   YouTube intégré dans l'écran. */
.to-video-section { margin: 0 0 28px; }
.to-video-section h2 { font-family: 'Fraunces', Georgia, serif; font-size: 19px; margin: 0 0 14px; color: var(--to-green-800); }
.to-phone-frame {
	position: relative;
	max-width: 760px;
	margin: 0 auto;
	background: linear-gradient(160deg, #2b2b2e, #111113);
	border-radius: 26px;
	padding: 14px 46px 14px 14px;
	box-shadow:
		0 1px 2px rgba(0,0,0,0.3),
		0 20px 40px -16px rgba(0,0,0,0.45);
}
.to-phone-screen {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 14px;
	overflow: hidden;
	background: #000;
}
.to-phone-screen iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.to-phone-camera {
	position: absolute;
	top: 50%;
	left: 5px;
	transform: translateY(-50%);
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: #000;
	box-shadow: 0 0 0 2px #3a3a3d inset;
}
/* Boutons latéraux (façade, décoratifs) — le vrai play/pause/volume reste
   celui du lecteur YouTube natif, à l'intérieur de l'écran. */
.to-phone-buttons {
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.to-phone-frame-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	background: linear-gradient(160deg, #4a4a4e, #232326);
	color: #d4d4d8;
	font-size: 13px;
	font-weight: 700;
	box-shadow: 0 1px 2px rgba(0,0,0,0.4), inset 0 1px 1px rgba(255,255,255,0.08);
}
.to-phone-frame-btn--play { width: 26px; height: 26px; background: linear-gradient(160deg, var(--to-green-600), var(--to-green-800)); color: #fff; }
@media (max-width: 640px) {
	.to-phone-frame { padding: 10px 34px 10px 10px; border-radius: 20px; }
	.to-phone-frame-btn { width: 18px; height: 18px; font-size: 11px; }
	.to-phone-frame-btn--play { width: 22px; height: 22px; }
}

/* ------------------------------------------------------------------
 * Noter un établissement (espace voyageur)
 * ------------------------------------------------------------------ */
.to-review-page {
	--to-review-green-900: #064e3b;
	--to-review-green-800: #065f46;
	--to-review-green-700: #047857;
	--to-review-green-50: #ecfdf5;
	--to-review-stone-600: #57534e;
	--to-review-stone-200: #e7e5e4;
}

.to-review-intro-card {
	background: var(--to-review-green-50);
	border: 1px solid #a7f3d0;
	border-radius: 16px;
	padding: 24px 26px;
	margin-bottom: 20px;
}
.to-review-intro-card h3 { margin: 0 0 8px; font-size: 17px; color: var(--to-review-green-900); font-family: 'Fraunces', Georgia, serif; }
.to-review-intro-card p { margin: 0 0 16px; font-size: 13.5px; color: var(--to-review-stone-600); line-height: 1.6; }

.to-review-mock-sliders { display: flex; flex-direction: column; gap: 8px; }
.to-review-mock-row { display: grid; grid-template-columns: 140px 1fr 44px; align-items: center; gap: 10px; }
.to-review-mock-label { font-size: 12.5px; color: var(--to-review-green-900); font-weight: 600; }
.to-review-mock-track { background: #fff; border-radius: 999px; height: 7px; overflow: hidden; }
.to-review-mock-fill { display: block; height: 100%; background: var(--to-review-green-700); border-radius: 999px; }
.to-review-mock-value { font-size: 12px; font-weight: 700; color: var(--to-review-green-900); text-align: right; }

.to-review-card {
	background: #fff;
	border: 1px solid var(--to-review-stone-200);
	border-radius: 16px;
	padding: 24px 26px;
	margin-bottom: 20px;
}
.to-review-card h3 { margin: 0 0 14px; font-size: 16px; font-family: 'Fraunces', Georgia, serif; }
.to-review-card--info { background: var(--to-review-green-50); border-color: #a7f3d0; }
.to-review-card--info p { font-size: 13.5px; color: var(--to-review-stone-600); }
.to-review-card--success { background: var(--to-review-green-50); border-color: #a7f3d0; }

.to-review-advantages { margin: 0 0 18px; padding-left: 20px; font-size: 13.5px; color: var(--to-review-stone-600); }
.to-review-advantages li { margin-bottom: 4px; }

.to-review-search-card { max-width: 640px; }
.to-review-search-form label { display: block; font-size: 13px; font-weight: 600; color: var(--to-review-stone-600); margin-bottom: 8px; }
.to-review-search-bar {
	display: flex;
	align-items: stretch;
	gap: 0;
	border: 1px solid var(--to-review-stone-200);
	border-radius: 999px;
	overflow: hidden;
	background: #fff;
}
.to-review-search-bar input[type="text"] {
	flex: 1 1 auto;
	border: none;
	padding: 12px 18px;
	font-size: 14px;
	background: transparent;
}
.to-review-search-bar input[type="text"]:focus { outline: none; }
.to-review-search-bar .to-review-btn {
	border-radius: 0;
	padding: 12px 24px;
	flex: 0 0 auto;
}

.to-review-referral-form { max-width: 480px; }
.to-review-referral-form label {
	display: flex;
	flex-direction: column;
	gap: 5px;
	font-size: 13px;
	font-weight: 600;
	color: var(--to-review-stone-600);
}
.to-review-referral-form input[type="email"] {
	padding: 10px 13px;
	border: 1px solid var(--to-review-stone-200);
	border-radius: 8px;
	font-size: 14px;
}
.to-review-help { font-size: 12.5px; color: #78716c; margin: 6px 0 12px; }

.to-review-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px;
	border-radius: 999px;
	font-size: 13.5px;
	font-weight: 600;
	text-decoration: none;
	border: none;
	cursor: pointer;
	white-space: nowrap;
}
.to-review-btn--primary { background: var(--to-review-green-800); color: #fff; }
.to-review-btn--primary:hover { background: var(--to-review-green-900); }
.to-review-btn--outline { background: #fff; color: var(--to-review-green-800); border: 1px solid var(--to-review-green-800); }
.to-review-btn--outline:hover { background: var(--to-review-green-50); }

.to-review-results { margin-top: 18px; }
.to-review-fallback-link { margin-top: 14px; font-size: 13px; }
.to-review-fallback-link a { color: var(--to-review-green-700); }

.to-review-slider-row {
	display: grid;
	grid-template-columns: 170px 1fr 56px;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}
.to-review-slider-row label { font-size: 13.5px; font-weight: 600; color: var(--to-review-stone-600); }
.to-review-slider { width: 100%; accent-color: var(--to-review-green-700); }
.to-review-slider-output { font-size: 13px; font-weight: 700; color: var(--to-review-green-900); text-align: right; }

.to-review-comment-label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--to-review-stone-600);
	margin: 18px 0 20px;
}
.to-review-optional { font-weight: 400; color: #a8a29e; }
.to-review-comment-label textarea {
	border: 1px solid var(--to-review-stone-200);
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 13.5px;
	font-family: inherit;
	resize: vertical;
}

@media (max-width: 640px) {
	.to-review-mock-row { grid-template-columns: 100px 1fr 40px; }
	.to-review-slider-row { grid-template-columns: 1fr; gap: 6px; }
	.to-review-slider-output { text-align: left; }
}
