/* FROZENTECH Salón 3D v4.0.0 — sin dependencias. Solo se carga en las
   páginas que muestran un salón o una ficha de equipo. */

.fts3d { max-width: 1100px; margin: 0 auto; padding: 0 12px 32px; font-family: inherit; }
.fts3d-title { font-size: 1.8rem; line-height: 1.2; margin: 0 0 8px; }
.fts3d-desc { margin: 0 0 16px; color: #444; }
.fts3d-hint { font-size: .9rem; color: #666; margin: 10px 2px 0; }
.fts3d-note { font-size: .9rem; color: #666; margin: 16px 2px 0; }

/* Carrusel con todas las referencias del salón. */
.fts3d-carousel {
	overflow: hidden;
	border-radius: 14px;
	touch-action: pan-y;
}
.fts3d-track {
	display: flex;
	gap: 14px;
	transition: transform .5s ease;
}
.fts3d-slide {
	flex: 0 0 260px;
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 12px;
	overflow: hidden;
	padding-bottom: 12px;
}
.fts3d-slide-img { display: block; background: #fff; }
.fts3d-slide-img img { display: block; width: 100%; height: 180px; object-fit: contain; }
.fts3d-slide-title { font-size: 1rem; line-height: 1.3; margin: 10px 12px 2px; }
.fts3d-slide-title a { color: #222; text-decoration: none; }
.fts3d-slide-measures { font-size: .88rem; color: #555; margin: 0 12px 4px; }
.fts3d-slide-price { font-weight: 800; color: #1a7f37; margin: 4px 12px; }
.fts3d-slide-price .fts3d-before { font-size: .9rem; font-weight: 400; color: #888; text-decoration: line-through; margin-left: 8px; }
.fts3d-slide-actions { margin: 8px 12px 0; display: flex; gap: 12px; }
.fts3d-slide-view { color: #1a7f37; font-weight: 700; font-size: .9rem; }
.fts3d-slide-wa { font-size: .9rem; color: #1a7f37; }

/* Botones para adelantar o retroceder. */
.fts3d-controls {
	display: flex; gap: 12px; align-items: center; justify-content: center;
	margin-top: 14px;
}
.fts3d-controls button {
	background: #fff;
	border: 2px solid #1a7f37;
	color: #1a7f37;
	border-radius: 8px;
	padding: 10px 18px;
	min-height: 44px;
	font-weight: 700; font-size: .95rem;
	cursor: pointer;
}
.fts3d-controls button:active { background: #1a7f37; color: #fff; }
.fts3d-counter { font-weight: 700; color: #555; min-width: 64px; text-align: center; }

/* Galería y ficha del equipo. */
.fts3d-equipo { max-width: 760px; margin: 0 auto; padding: 0 12px 32px; }
.fts3d-back { margin: 0 0 14px; }
.fts3d-back a { color: #1a7f37; font-weight: 700; text-decoration: none; }
.fts3d-gallery-main { display: block; width: 100%; max-height: 420px; object-fit: contain; background: #fff; border: 1px solid #eee; border-radius: 10px; }
.fts3d-gallery-thumbs { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.fts3d-gallery-thumbs button { border: 2px solid transparent; border-radius: 8px; padding: 0; background: #f6f6f6; cursor: pointer; }
.fts3d-gallery-thumbs button.active { border-color: #1a7f37; }
.fts3d-gallery-thumbs img { display: block; width: 72px; height: 54px; object-fit: contain; border-radius: 6px; }
.fts3d-modal-title { font-size: 1.4rem; margin: 16px 0 4px; }
.fts3d-modal-measures { color: #444; margin: 0 0 4px; }
.fts3d-modal-code { color: #666; font-size: .9rem; margin: 0 0 4px; }
.fts3d-modal-price { font-size: 1.4rem; font-weight: 800; color: #1a7f37; margin: 8px 0 4px; }
.fts3d-modal-price .fts3d-before { font-size: .95rem; font-weight: 400; color: #888; text-decoration: line-through; margin-left: 8px; }
.fts3d-modal-specs { color: #444; margin: 0 0 14px; }
.fts3d-desc-list { margin: 0 0 16px; padding-left: 20px; color: #333; }
.fts3d-desc-list li { margin: 3px 0; line-height: 1.45; }
.fts3d-modal-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.fts3d-btn {
	display: inline-block; padding: 10px 16px; border-radius: 8px;
	background: #1a7f37; color: #fff; text-decoration: none; font-weight: 700;
	border: 0; cursor: pointer; font-size: .95rem;
}
.fts3d-btn:hover { background: #14652c; color: #fff; }
.fts3d-btn-equipo { background: #fff; color: #1a7f37; border: 2px solid #1a7f37; }
.fts3d-btn-equipo:hover { background: #eef7f0; color: #14652c; }

/* Lista completa del salón. */
.fts3d-list-title { font-size: 1.25rem; margin: 28px 0 10px; }
.fts3d-list { list-style: none; margin: 0; padding: 0; }
.fts3d-list-item {
	display: flex; gap: 12px; align-items: flex-start;
	padding: 12px 0; border-top: 1px solid #eee;
}
.fts3d-list-thumb { border: 1px solid #e2e2e2; border-radius: 8px; padding: 0; background: #f6f6f6; cursor: pointer; flex: 0 0 84px; display: block; }
.fts3d-list-thumb img { display: block; width: 84px; height: 64px; object-fit: contain; border-radius: 7px; }
.fts3d-list-info { flex: 1; min-width: 0; }
.fts3d-list-info strong { display: block; line-height: 1.3; }
.fts3d-list-measures, .fts3d-list-specs { display: block; font-size: .88rem; color: #555; margin-top: 2px; }
.fts3d-list-side { text-align: right; flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.fts3d-list-price { font-weight: 800; color: #1a7f37; }
.fts3d-list-view { color: #1a7f37; font-weight: 700; font-size: .9rem; }
.fts3d-list-wa { font-size: .9rem; color: #1a7f37; }

/* Índice de salones. */
.fts3d-index { max-width: 1100px; margin: 0 auto; padding: 0 12px 32px; }
.fts3d-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-top: 16px; }
.fts3d-card { border: 1px solid #e2e2e2; border-radius: 14px; overflow: hidden; background: #fff; }
.fts3d-card img { display: block; width: 100%; height: 200px; object-fit: contain; background: #f6f6f6; }
.fts3d-card h3 { margin: 14px 16px 4px; }
.fts3d-card p { margin: 0 16px 14px; color: #444; font-size: .95rem; }
.fts3d-card .fts3d-btn { margin: 0 16px 16px; }

@media (max-width: 640px) {
	.fts3d-slide { flex-basis: 78%; }
	.fts3d-controls button { padding: 10px 12px; font-size: .9rem; }
	.fts3d-list-item { flex-wrap: wrap; }
	.fts3d-list-side { flex-direction: row; align-items: center; gap: 10px; flex-wrap: wrap; }
}
