/* ================= Hero Tours ================= */
.xtr-hero {position:relative;margin:0 0 2.25rem 0;padding:2.5rem 1.25rem;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);overflow:hidden;}
.xtr-hero:before {content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(59,130,246,.18),transparent 55%);pointer-events:none;}
.xtr-hero-inner {max-width:1150px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;}
.xtr-hero-title {margin:0;font-size:2rem;line-height:1.15;font-weight:700;color:#0f172a;letter-spacing:-0.5px;}
.xtr-hero-desc {margin:0;font-size:1rem;max-width:760px;color:#475569;line-height:1.5;}
.xtr-hero-actions {display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:.5rem;}
.xtr-btn {--btn-bg:#fff;--btn-color:#1f2937;--btn-border:#cbd5e1;position:relative;display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;font-weight:600;padding:.7rem 1.05rem;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);border-radius:10px;line-height:1;transition:all .22s ease;text-decoration:none;}
.xtr-btn-primary {--btn-bg:#2563eb;--btn-color:#fff;--btn-border:#2563eb;box-shadow:0 2px 4px rgba(37,99,235,.3),0 1px 2px rgba(0,0,0,.08);}
.xtr-btn-primary:hover {background:#1d4ed8;border-color:#1d4ed8;color:#fff;}
.xtr-btn-outline {background:rgba(255,255,255,.65);backdrop-filter:blur(6px);}
.xtr-btn-outline:hover {background:#fff;}
.xtr-hero-icons {list-style:none;display:flex;gap:1rem;margin:1rem 0 0 0;padding:0;flex-wrap:wrap;justify-content:center;}
.xtr-hero-icon-wrap {--ic-size:60px;display:inline-flex;width:var(--ic-size);height:var(--ic-size);align-items:center;justify-content:center;border-radius:18px;background:linear-gradient(135deg,#ffffff,#f1f5f9);box-shadow:0 4px 14px -3px rgba(0,0,0,.07),0 2px 4px rgba(0,0,0,.05);font-size:1.5rem;color:#2563eb;position:relative;overflow:hidden;}
.xtr-hero-icon-wrap:before {content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(255,255,255,.1));pointer-events:none;}
.xtr-hero-icon i {transition:transform .35s ease;}
.xtr-hero-icon-wrap:hover i {transform:scale(1.14) rotate(-6deg);} 

@media (max-width: 640px){
	.xtr-hero {padding:1.75rem 1rem;border-radius:16px;}
	.xtr-hero-title {font-size:1.55rem;}
	.xtr-hero-desc {font-size:.85rem;}
	.xtr-hero-icon-wrap {--ic-size:50px;font-size:1.2rem;border-radius:14px;}
	.xtr-btn {padding:.6rem .85rem;font-size:.78rem;border-radius:8px;}
	.xtr-hero-icons {gap:.75rem;}
}
/* XTravel Tours - Estilos principales */

/* Grid de tours - Base responsive */
.xtravel-tours-grid {display:grid;gap:1.5rem;margin-bottom:2rem;grid-template-columns:repeat(2,1fr);} /* móvil 2 */
@media (min-width: 900px){
  .xtravel-tours-grid {grid-template-columns:repeat(4,1fr);} /* desktop 4 */
}

/* Tarjetas de tours */
.xtravel-tour-item {
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0,0,0,0.1);
	transition: all 0.3s ease;
	position: relative;
}

.xtravel-tour-item:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

/* Imágenes de tours */
.xtravel-tour-thumb {
	position: relative;
	overflow: hidden;
	height: 220px;
}

.xtravel-tour-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.xtravel-tour-thumb .thumb-fallback {display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#f1f5f9;color:#64748b;font-size:2.2rem;}

.xtravel-tour-item:hover .xtravel-tour-thumb img {
	transform: scale(1.05);
}

/* Badge de precio */
.tour-price-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	background: rgba(0,0,0,0.8);
	color: white;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 0.875rem;
	font-weight: 600;
}

/* Badge de duración */
.tour-duration-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: #3b82f6;
	color: white;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 0.75rem;
	font-weight: 500;
}

/* Badge de categoría sobre imagen */
.tour-cat-badge {position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,0.55);color:#fff;padding:4px 10px;border-radius:20px;font-size:0.68rem;font-weight:600;backdrop-filter:blur(2px);line-height:1;letter-spacing:.5px;}

/* Feature badges de colores (minimalista y vivo) */
.tour-feature-badge {display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;padding:0;background:var(--tf-color,#e2e8f0);color:#334155;box-shadow:0 1px 2px rgba(0,0,0,.08);position:relative;isolation:isolate;border:1px solid rgba(0,0,0,0.04);}
.tour-feature-badge i {font-size:0.9rem;line-height:1;}
.tour-feature-badge:before {content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(145deg,rgba(255,255,255,.65),rgba(255,255,255,.15));mix-blend-mode:normal;pointer-events:none;}
.tour-features {gap:0.5rem;flex-wrap:nowrap;overflow:hidden;} /* una sola fila de 4 */

/* Contenido de la tarjeta */
.xtravel-tour-content {
	padding: 1.25rem;
}

.xtravel-tour-title {font-size:1.125rem;line-height:1.35;margin:0 0 0.75rem 0;font-weight:600;color:#1f2937;word-break:break-word;}
.xtravel-tour-title.title-small {font-size:1rem;}
.xtravel-tour-title.title-xsmall {font-size:0.9rem;}
.xtravel-tour-title .tour-cat-icon {margin-right:6px; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; background:#f1f5f9; color:#0f172a; border-radius:6px; font-size:0.75rem; position:relative; top:-1px;}
.xtravel-tour-title .tour-cat-icon i {font-size:0.9rem;}
.xtravel-tour-excerpt {
	color: #6b7280;
	font-size: 0.875rem;
	line-height: 1.5;
	margin-bottom: 1rem;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}


/* Características del tour */
.tour-features {
	display: flex;
	gap: 1rem;
	margin-bottom: 1rem;
	flex-wrap: wrap;
}

.tour-feature {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.75rem;
	color: #6b7280;
}

.tour-feature i {
	font-size: 0.875rem;
	color: #9ca3af;
}

/* Footer de la tarjeta */
.tour-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
}

.tour-price-block { display:flex; flex-direction:column; gap:2px; }
.tour-actions { display:flex; align-items:center; gap:0.5rem; }
.tour-btn-favorite { cursor:pointer; display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid #d1d5db; background:#fff; border-radius:8px; transition:all .2s ease; color:#6b7280; }
.tour-btn-favorite:hover { color:#ef4444; border-color:#ef4444; }
.tour-btn-favorite.favorited { background:#fee2e2; color:#dc2626; border-color:#fca5a5; }

/* Rating */
.tour-rating { display:flex; align-items:center; gap:4px; margin:0 0 0.75rem 0; font-size:0.875rem; }
.tour-rating i { color:#f472b6; font-size:0.95rem; }
.tour-rating .heart-empty { color:#d1d5db; }
.tour-rating .heart-half { color:#fb7185; }
.tour-rating .rating-value { font-weight:600; font-size:0.75rem; color:#6b7280; margin-left:2px; }

.tour-price {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1f2937;
}

.tour-price-label {
	font-size: 0.75rem;
	color: #6b7280;
	display: block;
}

/* Botones */
.tour-btn-primary {
	background: #3b82f6;
	color: white;
	padding: 0.5rem 1rem;
	border-radius: 8px;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.2s ease;
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
}

.tour-btn-primary:hover {
	background: #2563eb;
	color: white;
	text-decoration: none;
}

.tour-btn-secondary {
	background: transparent;
	color: #6b7280;
	border: 1px solid #d1d5db;
	padding: 0.5rem;
	border-radius: 8px;
	transition: all 0.2s ease;
	cursor: pointer;
}

.tour-btn-secondary:hover {
	color: #ef4444;
	border-color: #ef4444;
}

/* Estados de favoritos */
.tour-favorite.favorited {
	color: #ef4444 !important;
}

/* Loading states */
.tours-loading {
	opacity: 0.6;
	pointer-events: none;
}

.tours-loading::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 20px;
	margin: -10px;
	border: 2px solid #f3f3f3;
	border-top: 2px solid #3b82f6;
	border-radius: 50%;
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* Responsive adjustments */
@media (max-width: 640px) {
	.xtravel-tours-grid { grid-template-columns: repeat(2,1fr); gap:0.75rem; }
	.xtravel-tour-item { border-radius:10px; }
	.xtravel-tour-thumb { height:160px; }
	.xtravel-tour-content { padding:0.75rem 0.6rem; }
	.xtravel-tour-title { margin-bottom:0.5rem; font-size:0.95rem; }
	.xtravel-tour-title.title-small { font-size:0.9rem; }
	.xtravel-tour-title.title-xsmall { font-size:0.82rem; }
	.xtravel-tour-excerpt { font-size:0.7rem; -webkit-line-clamp:4; line-clamp:4; }
	.tour-rating { margin-bottom:0.5rem; }
	.tour-price { font-size:1.1rem; }
	.tour-btn-primary { padding:0.45rem 0.6rem; font-size:0.7rem; }
	.tour-btn-favorite { width:32px; height:32px; }
	.tour-feature-badge { width:28px; height:28px; border-radius:8px; }
	.tour-feature-badge i { font-size:0.78rem; }
	.tour-card-footer { gap:0.5rem; }
}

/* Filtros y modales */
.tours-filter-section {
	background: #f9fafb;
	padding: 1.5rem;
	border-radius: 12px;
	margin-bottom: 2rem;
}

.tours-filter-title {
	font-size: 1.125rem;
	font-weight: 600;
	color: #1f2937;
	margin-bottom: 1rem;
}

/* Notificaciones */
.tour-notification {
	position: fixed;
	top: 1rem;
	right: 1rem;
	z-index: 1000;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	color: white;
	font-size: 0.875rem;
	font-weight: 500;
	transform: translateX(100%);
	opacity: 0;
	transition: all 0.3s ease;
}

.tour-notification.show {
	transform: translateX(0);
	opacity: 1;
}

.tour-notification.success { background: #10b981; }
.tour-notification.error { background: #ef4444; }
.tour-notification.info { background: #3b82f6; }

/* Animaciones */
.tour-item-enter {
	opacity: 0;
	transform: translateY(20px);
}

.tour-item-enter-active {
	opacity: 1;
	transform: translateY(0);
	transition: all 0.3s ease;
}
.text-truncate-2 {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.text-truncate-3 {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Heading genérico del módulo */
.xtr-heading {
	font-size: 1.75rem;
	line-height: 1.2;
	margin: 0 0 1.5rem 0;
	font-weight: 700;
	color: #1f2937;
}

/* Mensajes estándar */
.xtr-message {padding:0.75rem 1rem;border-radius:8px;font-size:0.875rem;line-height:1.4;margin:0 0 1rem 0;font-weight:500;}
.xtr-message-info {background:#eff6ff;color:#1e3a8a;border:1px solid #bfdbfe;}
.xtr-message-warning {background:#fef9c3;color:#854d0e;border:1px solid #fde68a;}
.xtr-message-error {background:#fee2e2;color:#991b1b;border:1px solid #fecaca;}
.xtr-message-success {background:#dcfce7;color:#166534;border:1px solid #bbf7d0;}

@media (min-width: 768px){
	.xtr-heading { font-size: 2rem; }
}

/* Empty state (cuando no hay tours) */
.xtr-empty {margin:1rem 0 2rem 0;}
.xtr-empty-inner {border:1px dashed #cbd5e1;background:#f8fafc;border-radius:14px;padding:1.25rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;}
.xtr-empty-icon {width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#ffffff,#f1f5f9);display:flex;align-items:center;justify-content:center;color:#0ea5e9;box-shadow:0 2px 8px rgba(0,0,0,.06);} 
.xtr-empty-icon i {font-size:1.3rem;}
.xtr-empty-title {margin:.25rem 0 0 0;font-size:1.15rem;line-height:1.25;font-weight:700;color:#0f172a;}
.xtr-empty-desc {margin:0;color:#475569;font-size:.92rem;max-width:680px;}
/* Acciones/CTA del empty */
.xtr-empty-helper{margin:.25rem 0 0 0;color:#475569;font-size:.9rem;}
.xtr-empty-actions{margin-top:.5rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center;}
.xtr-btn-whatsapp{--btn-bg:#22c55e;--btn-color:#fff;--btn-border:#16a34a;background:var(--btn-bg);border-color:var(--btn-border);color:var(--btn-color);} 
.xtr-btn-whatsapp:hover{background:#16a34a;border-color:#15803d;color:#fff;}
.xtr-empty-wa-note{font-size:.8rem;color:#334155;margin-top:.15rem;}

/* (Eliminado) Estilos de soporte/modal no usados: #xtr-support-btn, #reserva-modal, .hidden, .overflow-hidden */
.xgrid-pairs{display:grid;grid-template-columns:1fr;gap:12px;}
@media (min-width:640px){.xgrid-pairs{grid-template-columns:1fr 1fr;gap:16px;}}

/* Labels e inputs */
.xtravel-label{display:block;color:#0f172a;}
.xtravel-label-text{display:flex;align-items:center;gap:8px;font-size:.92rem;font-weight:600;color:#0f172a;margin:0 0 6px 0;}
.xtravel-field{position:relative;}
.xtravel-input,.xtravel-textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:.65rem 2.2rem .65rem .8rem;font-size:.92rem;color:#0f172a;background:#fff;transition:border-color .2s ease, box-shadow .2s ease;}
.xtravel-input:focus,.xtravel-textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15);} 
.xtravel-textarea{min-height:110px;resize:vertical;}
.xtravel-field .icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:1rem;pointer-events:none;}
.xtravel-checkbox{width:16px;height:16px;border:1px solid #cbd5e1;border-radius:4px;}
.xtravel-link{color:#2563eb;text-decoration:none;border-bottom:1px solid transparent;}
.xtravel-link:hover{border-bottom-color:#2563eb;}

/* Botón enviar */
.xtravel-submit{background:#2563eb;color:#fff;border:none;border-radius:10px;padding:.65rem 1rem;font-weight:600;cursor:pointer;transition:background .2s ease;}
.xtravel-submit:hover{background:#1d4ed8;}

/* Indicador de envío */
#xtravel-form-indicator{display:block;}
#xtravel-form-indicator.hidden{display:none !important;}
#xtravel-form-indicator .inline-block{display:inline-block;}

/* Responsivo modal */
@media (max-width: 420px){
	#reserva-modal .xtravel-modal-card{width:calc(100vw - 20px);border-radius:12px;padding:12px;}
	#reserva-modal #reserva-modal-title{font-size:1rem;}
	.xtravel-input,.xtravel-textarea{font-size:.9rem;}
}

/* Estados de respuesta del formulario */
#xtravel-form-response .xtr-alert{border:1px solid transparent;border-radius:10px;padding:.6rem .8rem;font-size:.9rem;}
#xtravel-form-response .xtr-alert-success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46;}
#xtravel-form-response .xtr-alert-error{background:#fef2f2;border-color:#fecaca;color:#991b1b;}

