/* Tours 360 Marruecos — estilos front */
:root{
	--t360-primary: #C1440E;
	--t360-primary-dark: #9c360a;
	--t360-secondary: #0E7C7B;
	--t360-sand: #FBF4EA;
	--t360-sand-dark: #F1E4D0;
	--t360-text: #26221E;
	--t360-text-light: #6b6259;
	--t360-border: #e7ded0;
	--t360-green: #1f8a4d;
	--t360-star: #f4b400;
	--t360-radius: 12px;
	--t360-shadow: 0 4px 16px rgba(30,20,10,0.08);
}

.t360-wrap{ max-width:1200px; margin:0 auto; padding:24px 20px 60px; color:var(--t360-text); font-family: inherit; }
.t360-wrap *{ box-sizing:border-box; }
.t360-wrap a{ color:inherit; text-decoration:none; }
.t360-wrap img{ max-width:100%; height:auto; }
.t360-wrap h1, .t360-wrap h2, .t360-wrap h3{ font-family: inherit; line-height:1.25; margin:0 0 12px; word-wrap:break-word; overflow-wrap:break-word; }
@media (max-width: 600px){
	.t360-wrap{ padding:14px 14px 40px; }
}

/* El desbordamiento horizontal en móvil se soluciona en la raíz (body), nunca
   en un contenedor intermedio: si se pone overflow-x:hidden en un div a mitad
   del árbol (como .t360-wrap), los navegadores rompen "position: sticky" en
   los elementos que hay dentro (el menú de pestañas dejaría de quedarse fijo). */
body.tours360-single, body.tours360-archive{ overflow-x:hidden; }

/* Breadcrumbs */
.t360-breadcrumbs{ font-size:13px; color:var(--t360-text-light); margin-bottom:16px; }
.t360-breadcrumbs a{ color:var(--t360-secondary); }
.t360-breadcrumbs span{ margin:0 6px; }
.t360-breadcrumbs .is-active{ color:var(--t360-text); }

/* Gallery */
.t360-gallery{ display:grid; grid-template-columns: 2fr minmax(0,1fr); gap:8px; border-radius:var(--t360-radius); overflow:hidden; margin-bottom:24px; }
.t360-gallery-main img{ width:100%; height:100%; object-fit:cover; display:block; min-height:320px; }
.t360-gallery-thumbs{ display:grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap:8px; }
.t360-gallery-thumbs a{ position:relative; display:block; overflow:hidden; }
.t360-gallery-thumbs img{ width:100%; height:100%; object-fit:cover; display:block; }
.t360-more-photos{ position:absolute; inset:0; background:rgba(20,15,10,0.55); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:20px; font-weight:700; text-align:center; }
.t360-lightbox-trigger{ cursor:zoom-in; }

@media (max-width: 780px){
	.t360-gallery{ grid-template-columns: minmax(0,1fr); }
	.t360-gallery-main img{ min-height:0; height:220px; }
	.t360-gallery-thumbs{
		display:flex; grid-template-columns:none; grid-template-rows:none;
		overflow-x:auto; -webkit-overflow-scrolling:touch; gap:8px; scrollbar-width:none;
	}
	.t360-gallery-thumbs::-webkit-scrollbar{ display:none; }
	.t360-gallery-thumbs a{ flex:0 0 90px; height:70px; border-radius:8px; }
}

/* Lightbox */
.t360-lightbox{ position:fixed; inset:0; background:rgba(10,8,6,0.92); z-index:9999; display:flex; align-items:center; justify-content:center; }
.t360-lightbox[hidden]{ display:none; }
.t360-lightbox img{ max-width:90vw; max-height:85vh; border-radius:6px; }
.t360-lightbox-close, .t360-lightbox-prev, .t360-lightbox-next{ position:absolute; background:rgba(255,255,255,0.15); border:none; color:#fff; font-size:24px; width:48px; height:48px; border-radius:50%; cursor:pointer; }
.t360-lightbox-close{ top:20px; right:20px; }
.t360-lightbox-prev{ left:20px; top:50%; transform:translateY(-50%); }
.t360-lightbox-next{ right:20px; top:50%; transform:translateY(-50%); }

/* Layout single */
.t360-layout{ display:grid; grid-template-columns: minmax(0,1fr) 340px; gap:40px; align-items:start; }
.t360-layout > *{ min-width:0; } /* evita que las columnas del grid se desborden por contenido ancho (botones, títulos largos, etc.) */
@media (max-width: 900px){
	.t360-layout{ grid-template-columns: minmax(0,1fr); gap:24px; }
	.t360-sidebar{ order:-1; }
}

.t360-eyebrow{ display:inline-block; color:var(--t360-primary); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.t360-eyebrow:hover{ text-decoration:underline; }
.t360-title{ font-size: clamp(22px, 4.5vw, 32px); }
.t360-meta-row{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:8px; }
@media (max-width:600px){
	.t360-rating-pill, .t360-pill{ font-size:12px; padding:5px 8px; }
}
.t360-rating-pill{ display:inline-flex; align-items:center; gap:6px; background:var(--t360-sand); padding:6px 10px; border-radius:8px; font-weight:600; font-size:14px; }
.t360-rating-pill .t360-score{ background:var(--t360-green); color:#fff; padding:2px 6px; border-radius:4px; font-size:13px; }
.t360-pill{ background:#fff; border:1px solid var(--t360-border); padding:6px 10px; border-radius:8px; font-size:13px; }
.t360-pill--green{ color:var(--t360-green); border-color:#cdeadb; background:#f1faf4; }

.t360-stars{ display:inline-flex; gap:1px; vertical-align:middle; }
.t360-star{ width:14px; height:14px; }
.t360-star.full{ fill:var(--t360-star); }
.t360-star.half{ fill:var(--t360-star); opacity:.5; }
.t360-star.empty{ fill:#ddd; }

/* Menú de secciones (tabs-ancla) — se queda fijo arriba al hacer scroll */
.t360-tabs{
	display:flex; gap:6px; border-bottom:2px solid var(--t360-border);
	margin:24px 0 0; overflow-x:auto; background:#fff;
	position:sticky; top:0; z-index:40; scrollbar-width:none;
	-webkit-overflow-scrolling:touch;
}
.t360-tabs::-webkit-scrollbar{ display:none; }
.t360-tabs.is-stuck{ box-shadow:0 4px 12px rgba(30,20,10,0.08); }
.t360-tab{
	background:none; border:none; padding:14px 16px; font-size:15px; font-weight:600;
	color:var(--t360-text-light); cursor:pointer; border-bottom:3px solid transparent;
	white-space:nowrap; display:inline-block; scroll-margin-top:70px; flex-shrink:0;
}
.t360-tab.active{ color:var(--t360-primary); border-bottom-color:var(--t360-primary); }
.t360-tab-panel{ display:block; padding-top:32px; border-top:1px solid var(--t360-border); scroll-margin-top:60px; }
.t360-tab-panel:first-of-type{ border-top:none; }

@media (max-width:600px){
	.t360-tabs{ margin-top:14px; }
	.t360-tab{ padding:11px 12px; font-size:13px; scroll-margin-top:52px; }
	.t360-tab-panel{ padding-top:22px; scroll-margin-top:48px; }
}

/* Barra flotante de reserva en móvil (la caja lateral deja de estar sticky y se
   sustituye por esta barra fija abajo, para no tapar el menú de secciones) */
.t360-mobile-bar{ display:none; }
@media (max-width:900px){
	.t360-sidebar{ position:static !important; }
	.t360-mobile-bar{
		display:flex; align-items:center; justify-content:space-between; gap:12px;
		position:fixed; left:0; right:0; bottom:0; z-index:60;
		background:#fff; border-top:1px solid var(--t360-border);
		padding:10px 14px; box-shadow:0 -4px 16px rgba(30,20,10,0.12);
	}
	.t360-mobile-bar .t360-mb-price{ font-size:18px; font-weight:700; color:var(--t360-primary); }
	.t360-mobile-bar .t360-mb-from{ font-size:11px; color:var(--t360-text-light); display:block; }
	.t360-mobile-bar .t360-cta-button{ padding:11px 20px; font-size:14px; flex-shrink:0; width:auto; }
	.t360-single{ padding-bottom:90px; } /* deja hueco para que la barra no tape el contenido */
}

.t360-highlights{ list-style:none; margin:0 0 20px; padding:0; display:grid; grid-template-columns: 1fr 1fr; gap:8px 20px; }
.t360-highlights li{ color:var(--t360-text); font-size:15px; }
@media (max-width: 600px){ .t360-highlights{ grid-template-columns: 1fr; font-size:14px; } }

.t360-content{ font-size:16px; line-height:1.7; }
.t360-content h2{ margin-top:28px; font-size:22px; }
@media (max-width:600px){ .t360-content{ font-size:15px; } }

/* Itinerary */
.t360-itinerary{ position:relative; padding-left:8px; }
.t360-itinerary-item{ display:flex; gap:16px; margin-bottom:24px; position:relative; }
.t360-itinerary-marker{ flex:0 0 34px; height:34px; border-radius:50%; background:var(--t360-primary); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; z-index:1; }
.t360-itinerary-item:not(:last-child)::before{ content:''; position:absolute; left:17px; top:34px; bottom:-24px; width:2px; background:var(--t360-border); }
.t360-itinerary-body h3{ font-size:17px; margin-bottom:6px; }
.t360-itinerary-body p{ margin:0; color:var(--t360-text-light); line-height:1.6; }
@media (max-width:600px){
	.t360-itinerary-marker{ flex:0 0 28px; height:28px; font-size:13px; }
	.t360-itinerary-item:not(:last-child)::before{ left:14px; }
	.t360-itinerary-body h3{ font-size:15px; }
	.t360-itinerary-body p{ font-size:14px; }
}

/* Includes/excludes */
.t360-includes-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:24px; }
@media (max-width:600px){ .t360-includes-grid{ grid-template-columns:1fr; gap:16px; } }
.t360-includes ul, .t360-excludes ul{ list-style:none; padding:0; margin:0; }
.t360-includes li{ color:var(--t360-green); margin-bottom:8px; }
.t360-excludes li{ color:#b23b3b; margin-bottom:8px; }
.t360-detail-list{ list-style:none; padding:0; margin:0 0 24px; }
.t360-detail-list li{ padding:10px 0; border-bottom:1px solid var(--t360-border); font-size:15px; }
@media (max-width:600px){ .t360-detail-list li{ font-size:14px; } }

/* FAQ */
.t360-faq-title{ margin-top:28px; }
.t360-faq-item{ border-bottom:1px solid var(--t360-border); }
.t360-faq-question{ width:100%; text-align:left; background:none; border:none; padding:14px 0; font-size:15px; font-weight:600; cursor:pointer; display:flex; justify-content:space-between; align-items:center; }
.t360-faq-icon{ font-size:20px; color:var(--t360-primary); transition:transform .2s; }
.t360-faq-item.open .t360-faq-icon{ transform:rotate(45deg); }
.t360-faq-answer{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.t360-faq-item.open .t360-faq-answer{ max-height:400px; }
.t360-faq-answer p{ padding-bottom:14px; margin:0; color:var(--t360-text-light); }

/* Reviews */
.t360-reviews-summary{ display:flex; align-items:center; gap:16px; margin-bottom:24px; }
.t360-big-score{ font-size:40px; font-weight:700; color:var(--t360-green); }
.t360-review{ display:flex; gap:14px; padding:18px 0; border-bottom:1px solid var(--t360-border); }
.t360-review-avatar{ flex:0 0 42px; height:42px; border-radius:50%; background:var(--t360-secondary); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; }
.t360-review-text{ margin:8px 0; line-height:1.6; }
.t360-review-author{ font-size:13px; color:var(--t360-text-light); }
@media (max-width:600px){
	.t360-big-score{ font-size:32px; }
	.t360-review{ gap:10px; }
	.t360-review-avatar{ flex:0 0 34px; height:34px; font-size:14px; }
	.t360-review-text{ font-size:14px; }
}

/* Booking sidebar */
.t360-sidebar{ position:sticky; top:20px; }
.t360-booking-box{ border:1px solid var(--t360-border); border-radius:var(--t360-radius); padding:22px; box-shadow:var(--t360-shadow); background:#fff; }
.t360-box-old{ color:var(--t360-text-light); text-decoration:line-through; font-size:14px; margin:0; }
.t360-box-discount{ background:#ffe4d6; color:var(--t360-primary); padding:2px 6px; border-radius:4px; font-size:12px; text-decoration:none; margin-left:4px; }
.t360-box-from{ margin:6px 0 0; font-size:13px; color:var(--t360-text-light); }
.t360-box-price{ font-size:30px; font-weight:700; color:var(--t360-primary); margin:0 0 16px; }
.t360-cta-button{ display:block; text-align:center; background:var(--t360-primary); color:#fff !important; padding:14px; border-radius:8px; font-weight:700; font-size:16px; transition:background .2s; border:none; cursor:pointer; width:100%; }
.t360-cta-button:hover{ background:var(--t360-primary-dark); }

/* Modal "Solicitar información" — capa flotante como el lightbox, no navega a otra URL */
.t360-modal{ position:fixed; inset:0; background:rgba(10,8,6,0.6); z-index:9998; display:flex; align-items:center; justify-content:center; padding:20px; }
.t360-modal[hidden]{ display:none; }
.t360-modal-inner{ background:#fff; border-radius:14px; max-width:540px; width:100%; max-height:88vh; overflow-y:auto; padding:30px 26px; position:relative; box-shadow:0 20px 50px rgba(0,0,0,0.25); }
.t360-modal-close{ position:absolute; top:10px; right:14px; background:none; border:none; font-size:28px; cursor:pointer; color:var(--t360-text-light); line-height:1; }
.t360-modal-title{ margin:0 0 18px; font-size:20px; padding-right:24px; }
@media (max-width:600px){
	.t360-modal-inner{ padding:24px 18px; max-height:92vh; }
}
.t360-box-facts{ list-style:none; padding:0; margin:18px 0 0; font-size:14px; }
.t360-box-facts li{ padding:6px 0; color:var(--t360-text-light); }

/* Cards / grid */
.t360-grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:22px; }
@media (max-width:960px){ .t360-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:600px){ .t360-grid{ grid-template-columns:minmax(0,1fr); } }

.t360-card{ border:1px solid var(--t360-border); border-radius:var(--t360-radius); overflow:hidden; background:#fff; transition:box-shadow .2s, transform .2s; }
.t360-card:hover{ box-shadow:var(--t360-shadow); transform:translateY(-2px); }
.t360-card-media{ position:relative; height:190px; overflow:hidden; }
.t360-card-img{ width:100%; height:100%; object-fit:cover; display:block; }
.t360-card-img--placeholder{ width:100%; height:100%; background:linear-gradient(135deg, var(--t360-sand), var(--t360-sand-dark)); }
.t360-badge{ position:absolute; top:10px; left:10px; background:var(--t360-primary); color:#fff; font-size:11px; font-weight:700; padding:4px 8px; border-radius:5px; }
.t360-badge--free{ background:var(--t360-green); left:auto; right:10px; top:10px; }
.t360-badge--sale{ left:10px; }
.t360-card-body{ padding:16px; }
.t360-card-cat{ color:var(--t360-secondary); font-size:12px; font-weight:700; text-transform:uppercase; }
.t360-card-title{ font-size:16px; margin:6px 0; line-height:1.35; min-height:44px; }
.t360-card-duration{ font-size:13px; color:var(--t360-text-light); margin:0 0 8px; }
.t360-card-rating{ display:flex; align-items:center; gap:6px; margin-bottom:10px; font-size:13px; }
.t360-card-rating .t360-score{ background:var(--t360-green); color:#fff; padding:1px 6px; border-radius:4px; font-weight:700; font-size:12px; }
.t360-reviews-count{ color:var(--t360-text-light); }
.t360-card-price{ text-align:right; }
.t360-from{ display:block; font-size:11px; color:var(--t360-text-light); }
.t360-old-price{ text-decoration:line-through; color:var(--t360-text-light); font-size:12px; margin-right:6px; }
.t360-final-price{ font-size:20px; font-weight:700; color:var(--t360-primary); }

.t360-related{ margin-top:56px; }

/* Shortcode [tours360_categories] — tarjetas con foto + nº de tours, estilo "Principales destinos" */
.t360-cat-grid{ display:grid; grid-template-columns:repeat(var(--t360-cat-cols, 3), minmax(0,1fr)); gap:18px; }
.t360-cat-tile{ position:relative; display:block; border-radius:14px; overflow:hidden; aspect-ratio:4/3; background:var(--t360-sand); }
.t360-cat-img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.t360-cat-tile:hover .t360-cat-img{ transform:scale(1.06); }
.t360-cat-img--placeholder{ background:linear-gradient(135deg, var(--t360-sand), var(--t360-sand-dark)); }
.t360-cat-overlay{
	position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
	padding:18px; color:#fff;
	background:linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(10,8,6,0.72) 100%);
}
.t360-cat-name{ font-size:19px; font-weight:700; line-height:1.25; }
.t360-cat-count{ font-size:13px; opacity:.92; margin-top:2px; }
@media (max-width:700px){
	.t360-cat-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
	.t360-cat-name{ font-size:16px; }
	.t360-cat-overlay{ padding:12px; }
}

/* Archive */
.t360-archive-hero{ text-align:center; padding:20px 0 30px; }
.t360-archive-hero h1{ font-size: clamp(24px, 5vw, 34px); }
.t360-archive-desc{ max-width:720px; margin:0 auto; color:var(--t360-text-light); line-height:1.6; }
@media (max-width:600px){
	.t360-archive-hero{ padding:10px 0 20px; }
	.t360-archive-desc{ font-size:14px; }
}

.t360-archive-layout{ display:grid; grid-template-columns:270px minmax(0,1fr); gap:32px; align-items:start; }
.t360-archive-layout > *{ min-width:0; }
@media (max-width:860px){ .t360-archive-layout{ grid-template-columns:minmax(0,1fr); } }

/* Botón "Filtros" plegable — solo en móvil */
.t360-filters-toggle{
	display:none; width:100%; align-items:center; justify-content:space-between;
	background:#fff; border:1px solid var(--t360-border); border-radius:10px;
	padding:13px 16px; font-size:15px; font-weight:700; cursor:pointer; margin-bottom:16px;
}
.t360-filters-badge{
	background:var(--t360-primary); color:#fff; font-size:12px; font-weight:700;
	border-radius:20px; padding:2px 9px;
}
.t360-filters-close{ display:none; }

@media (max-width:860px){
	.t360-filters-toggle{ display:flex; }
	.t360-filters{
		display:none; position:fixed; inset:0; z-index:200; top:0;
		border-radius:0; overflow-y:auto; max-height:100vh; padding:20px 20px 100px;
	}
	.t360-filters.is-open{ display:block; }
	.t360-filters-close{
		display:block; background:none; border:none; font-size:26px; line-height:1;
		color:var(--t360-text-light); cursor:pointer; margin-left:auto;
	}
	.t360-filters-head{ position:sticky; top:0; background:#fff; padding-bottom:10px; z-index:2; }
	.t360-apply-btn{
		position:sticky; bottom:0; margin-top:10px;
	}
}

.t360-filters{ border:1px solid var(--t360-border); border-radius:var(--t360-radius); padding:20px; position:sticky; top:20px; background:#fff; }
.t360-filters-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.t360-filters-head h2{ font-size:18px; margin:0; }
#t360-clear-filters{ background:none; border:none; color:var(--t360-secondary); font-size:13px; cursor:pointer; text-decoration:underline; }
.t360-filter-group{ padding:16px 0; border-bottom:1px solid var(--t360-border); }
.t360-filter-group h3{ font-size:14px; margin-bottom:10px; }
.t360-checkbox, .t360-radio{ display:flex; align-items:center; gap:8px; font-size:14px; padding:5px 0; cursor:pointer; }
.t360-count{ color:var(--t360-text-light); font-size:12px; }
.t360-price-inputs{ display:flex; align-items:center; gap:8px; }
.t360-price-inputs input{ width:100%; padding:8px; border:1px solid var(--t360-border); border-radius:6px; }
.t360-apply-btn{ width:100%; margin-top:16px; background:var(--t360-primary); color:#fff; border:none; padding:12px; border-radius:8px; font-weight:700; cursor:pointer; }
.t360-apply-btn:hover{ background:var(--t360-primary-dark); }

.t360-results-bar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; flex-wrap:wrap; gap:10px; }
.t360-results-count{ font-size:14px; color:var(--t360-text-light); }
.t360-sort select{ padding:8px 10px; border-radius:6px; border:1px solid var(--t360-border); }
.t360-loading, .t360-no-results{ padding:40px; text-align:center; color:var(--t360-text-light); grid-column:1/-1; }
@media (max-width:600px){
	.t360-results-bar{ flex-direction:column; align-items:stretch; }
	.t360-sort{ display:flex; justify-content:space-between; align-items:center; }
	.t360-sort select{ flex:1; margin-left:8px; }
}

.t360-pagination{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:30px; }
.t360-page-btn{ background:#fff; border:1px solid var(--t360-border); padding:8px 16px; border-radius:8px; cursor:pointer; font-weight:600; }
.t360-page-btn:hover{ border-color:var(--t360-primary); color:var(--t360-primary); }

body.tours360-archive, body.tours360-single{ background:#fff; }
