/**
 * Tecnopets — páginas internas (Servicios, Reserva, Marcas, About, Shop)
 */

/* ── Layout helpers ── */
.tp-container--narrow { max-width: 720px; }
.tp-section__title--center { text-align: center; justify-content: center; width: 100%; }
.tecnopets-page .site-main,
.tecnopets-home .site-main,
.tp-petmania-site .site-main { padding: 0; max-width: none; }

/* ── Doodles ── */
.tp-doodle--sparkle { color: var(--tp-yellow); font-size: 1.25rem; }
.tp-doodle--1 { position: absolute; top: 10%; right: 5%; }
.tp-doodle--2 { position: absolute; bottom: 15%; left: 0; }
.tp-doodle--paw-trail { display: block; text-align: right; font-size: 1.5rem; margin-top: 1rem; opacity: 0.5; }
.tp-doodle--wing { font-size: 3rem; opacity: 0.2; position: absolute; left: 2rem; margin-top: -1rem; }
.tp-doodle-bubble {
	display: inline-block;
	background: var(--tp-white);
	border: 2px solid var(--tp-navy);
	border-radius: 12px;
	padding: 0.15rem 0.5rem;
	font-size: 0.75rem;
	margin-left: 0.5rem;
	transform: rotate(-8deg);
}
.tp-doodle--arrow-left,
.tp-doodle--arrow-right {
	position: absolute;
	font-size: 3rem;
	opacity: 0.15;
	font-weight: 700;
}
.tp-doodle--arrow-left { left: -2rem; top: 40%; }
.tp-doodle--arrow-right { right: -2rem; top: 50%; }

.tp-blob {
	position: absolute;
	border-radius: 50% 40% 60% 50%;
	background: var(--tp-blue-card);
	z-index: 0;
}
.tp-blob--blue { width: 80%; height: 80%; right: 0; top: 10%; }
.tp-blob--circle { width: 100%; height: 100%; inset: 0; }

/* ── Services hero (complementos sobre tp-hero-split) ── */
.tp-badge-yelp,
.tp-badge-google {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: var(--tp-gray-50);
	padding: 0.35rem 0.75rem;
	border-radius: var(--tp-radius-pill);
	font-size: 0.8125rem;
	font-weight: 600;
	border: 1px solid var(--tp-gray-100);
}

/* ── Services lookbook (hero + bento + trust) ── */
.tp-svc-lookbook-hero {
	position: relative;
	min-height: min(88vh, 760px);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	color: #f8fafc;
	background: #0b1f33;
}

.tp-svc-lookbook-hero--compact {
	min-height: min(52vh, 440px);
}

.tp-svc-lookbook-hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 40%;
}

.tp-svc-lookbook-hero__veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(11, 31, 51, 0.12) 0%, rgba(11, 31, 51, 0.55) 48%, rgba(11, 31, 51, 0.88) 100%),
		linear-gradient(90deg, rgba(11, 31, 51, 0.45) 0%, transparent 55%);
	z-index: 1;
}

.tp-svc-lookbook-hero__inner {
	position: relative;
	z-index: 2;
	padding: 4.5rem 0 3.5rem;
}

.tp-svc-lookbook-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.22);
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 700;
	padding: 0.4rem 0.85rem;
	border-radius: var(--tp-radius-pill);
	margin-bottom: 1.1rem;
}

.tp-svc-lookbook-hero__badge svg {
	color: var(--tp-yellow);
}

body.tecnopets-ui .tp-svc-lookbook-hero h1.tp-svc-lookbook-hero__title {
	font-family: var(--tp-font-heading, 'Nunito', sans-serif);
	font-size: clamp(2.35rem, 6vw, 4.25rem);
	font-weight: 900;
	line-height: 1.05;
	letter-spacing: -0.03em;
	margin: 0 0 0.85rem;
	color: #fff;
	max-width: 14ch;
}

body.tecnopets-ui .tp-svc-lookbook-hero p.tp-svc-lookbook-hero__sub {
	margin: 0 0 1.75rem;
	font-size: clamp(1rem, 2vw, 1.2rem);
	line-height: 1.45;
	color: rgba(248, 250, 252, 0.9);
	max-width: 36rem;
}

.tp-svc-lookbook-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.tp-svc-bento {
	padding: 2.5rem 0 1.5rem;
	background: #fff;
}

.tp-svc-bento__title {
	font-family: var(--tp-font-heading, 'Nunito', sans-serif);
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	font-weight: 800;
	color: var(--tp-navy);
	margin: 0 0 1.25rem;
}

.tp-svc-bento__grid {
	display: grid;
	grid-template-columns: 1.2fr 1.2fr 1fr;
	grid-template-rows: minmax(250px, 1fr) minmax(250px, 1fr) minmax(220px, 0.9fr);
	grid-template-areas:
		"grooming grooming paseo"
		"grooming grooming guarderia"
		"hospedaje entrenamiento veterinaria";
	gap: 12px;
	min-height: 640px;
}

.tp-svc-tile--grooming { grid-area: grooming; }
.tp-svc-tile--paseo { grid-area: paseo; }
.tp-svc-tile--guarderia { grid-area: guarderia; }
.tp-svc-tile--hospedaje { grid-area: hospedaje; }
.tp-svc-tile--entrenamiento { grid-area: entrenamiento; }
.tp-svc-tile--veterinaria { grid-area: veterinaria; }

.tp-svc-tile {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 20px;
	min-height: 280px;
	color: #fff;
	text-decoration: none;
	background: var(--tp-navy);
}

.tp-svc-tile:focus-visible {
	outline: 3px solid var(--tp-yellow);
	outline-offset: 3px;
}

.tp-svc-tile img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 300ms ease;
}

.tp-svc-tile:hover img,
.tp-svc-tile:focus-visible img {
	transform: scale(1.04);
}

.tp-svc-tile__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.25rem 1.35rem;
	background: linear-gradient(180deg, transparent 35%, rgba(11, 31, 51, 0.78) 100%);
	z-index: 1;
}

.tp-svc-tile__name {
	font-family: var(--tp-font-heading, 'Nunito', sans-serif);
	font-size: clamp(1.25rem, 2vw, 1.85rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.15;
}

.tp-svc-tile__cta {
	display: inline-flex;
	margin-top: 0.35rem;
	font-size: 0.8125rem;
	font-weight: 700;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity 200ms ease, transform 200ms ease;
	color: var(--tp-yellow);
}

.tp-svc-tile:hover .tp-svc-tile__cta,
.tp-svc-tile:focus-visible .tp-svc-tile__cta {
	opacity: 1;
	transform: translateY(0);
}

.tp-svc-trust {
	padding: 1.25rem 0 2rem;
	background: #fff;
}

.tp-svc-trust__list {
	list-style: none;
	margin: 0;
	padding: 1rem 1.25rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem 2rem;
	background: var(--tp-pink-hero, #fff0f5);
	border-radius: 16px;
}

.tp-svc-trust__item {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--tp-navy);
}

.tp-svc-trust__icon {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: #fff;
	color: var(--tp-navy);
	flex-shrink: 0;
}

@media (max-width: 992px) {
	.tp-svc-bento__grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: none;
		grid-template-areas:
			"grooming grooming"
			"paseo guarderia"
			"hospedaje entrenamiento"
			"veterinaria veterinaria";
		min-height: 0;
	}
	.tp-svc-tile { min-height: 240px; }
	.tp-svc-tile--grooming { min-height: 380px; }
	.tp-svc-tile__cta { opacity: 1; transform: none; }
}

@media (max-width: 576px) {
	.tp-svc-lookbook-hero {
		min-height: 72vh;
	}
	.tp-svc-lookbook-hero__inner {
		padding: 3rem 0 2.25rem;
	}
	.tp-svc-bento__grid {
		grid-template-columns: 1fr;
		grid-template-areas:
			"grooming"
			"paseo"
			"guarderia"
			"hospedaje"
			"entrenamiento"
			"veterinaria";
		gap: 10px;
	}
	.tp-svc-tile,
	.tp-svc-tile--grooming,
	.tp-svc-tile--veterinaria {
		min-height: 220px;
	}
	.tp-svc-trust__list {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tp-svc-tile img,
	.tp-svc-tile__cta {
		transition: none;
	}
	.tp-svc-tile:hover img {
		transform: none;
	}
}

/* ── Promise ── */
.tp-promise__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: center;
}
.tp-promise__media { position: relative; max-width: 360px; margin: 0 auto; }
.tp-promise__photo {
	position: relative;
	z-index: 1;
	width: 100%;
	border-radius: 50%;
	aspect-ratio: 1;
	object-fit: cover;
}
.tp-promise__copy h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); margin: 0.5rem 0 1rem; }
.tp-promise__copy p { line-height: 1.65; color: var(--tp-gray-500); }
.tp-link-underline {
	color: var(--tp-navy);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* ── Services grid ── */
.tp-services-grid-wrap { position: relative; overflow: hidden; }
.tp-services-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1rem;
	margin-top: 2rem;
}
.tp-service-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	padding: 1.25rem 0.75rem;
	border-radius: var(--tp-radius-md);
	background: var(--tp-blue-card);
	text-decoration: none;
	color: var(--tp-navy);
	position: relative;
	transition: transform 0.2s, background 0.2s;
}
.tp-service-card:hover { transform: translateY(-3px); color: var(--tp-navy); }
.tp-service-card.is-active { background: var(--tp-yellow); }
.tp-service-card__icon {
	width: 3.5rem;
	height: 3.5rem;
	display: grid;
	place-items: center;
	font-size: 1.5rem;
	background: rgba(255, 255, 255, 0.5);
	border-radius: var(--tp-radius-md);
}
.tp-service-card__label { font-size: 0.8125rem; font-weight: 600; text-align: center; }
.tp-doodle--card { position: absolute; top: -0.5rem; right: 0.5rem; }

/* ── Why us ── */
.tp-why { position: relative; background: var(--tp-gray-50); }
.tp-why__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem 3rem;
	margin-top: 2rem;
}
.tp-why__item h3 { margin: 0 0 0.35rem; font-size: 1rem; }
.tp-why__item p { margin: 0; font-size: 0.875rem; color: var(--tp-gray-500); line-height: 1.55; }
.tp-why__paw { font-size: 0.875rem; }

/* ── Testimonials ── */
.tp-testimonial-slider {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 1rem;
	align-items: center;
	margin-top: 2rem;
}
.tp-testimonial-track { position: relative; min-height: 220px; }
.tp-testimonial-card {
	display: none;
	grid-template-columns: 200px 1fr;
	gap: 1.5rem;
	background: var(--tp-white);
	border-radius: var(--tp-radius);
	padding: 1.5rem;
	box-shadow: var(--tp-shadow-soft);
	align-items: center;
}
.tp-testimonial-card.is-active { display: grid; }
.tp-testimonial-card img {
	width: 200px;
	height: 200px;
	border-radius: var(--tp-radius-md);
	object-fit: cover;
}
.tp-testimonial-card h3 { margin: 0 0 0.5rem; font-size: 1rem; }
.tp-testimonial-card p { margin: 0 0 1rem; font-style: italic; color: var(--tp-gray-500); }
.tp-testimonial-badges { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.tp-testimonial-badges span {
	background: var(--tp-gray-50);
	padding: 0.25rem 0.6rem;
	border-radius: var(--tp-radius-pill);
	font-size: 0.75rem;
	font-weight: 600;
}
.tp-slider-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.65rem;
	height: 2.65rem;
	padding: 0;
	margin: 0;
	border-radius: 50%;
	border: 1px solid rgba(27, 42, 65, 0.14);
	background: #fff;
	color: var(--tp-navy, #1b2a41);
	font-size: 1.55rem;
	font-weight: 700;
	line-height: 0;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(27, 42, 65, 0.16);
	appearance: none;
	-webkit-appearance: none;
}
.tp-slider-btn:hover,
.tp-slider-btn:focus-visible {
	background: #fff;
	border-color: rgba(27, 42, 65, 0.28);
	color: var(--tp-navy, #1b2a41);
}

/* ── Booking form ── */
.tp-booking { position: relative; }
.tp-booking-steps {
	display: flex;
	justify-content: center;
	gap: 2rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
	font-size: 0.875rem;
	font-weight: 600;
}
.tp-booking-steps li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--tp-gray-400);
}
.tp-booking-steps li.is-active { color: var(--tp-navy); }
.tp-booking-steps li span {
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 0.75rem;
	background: var(--tp-gray-100);
}
.tp-booking-steps li.is-active span {
	background: var(--tp-yellow);
	color: var(--tp-navy);
}
.tp-booking-promo {
	background: var(--tp-blue-card);
	color: var(--tp-navy);
	text-align: center;
	padding: 0.75rem;
	border-radius: var(--tp-radius-sm) var(--tp-radius-sm) 0 0;
	font-weight: 600;
	font-size: 0.875rem;
}
.tp-booking-form {
	background: var(--tp-white);
	border: 1px solid var(--tp-gray-100);
	border-radius: 0 0 var(--tp-radius-sm) var(--tp-radius-sm);
	padding: 1.5rem;
	box-shadow: var(--tp-shadow-soft);
}
.tp-booking-form fieldset {
	border: none;
	margin: 0 0 1rem;
	padding: 0;
}
.tp-booking-form legend { font-weight: 600; margin-bottom: 0.5rem; font-size: 0.875rem; }
.tp-booking-form label { display: inline-flex; align-items: center; gap: 0.35rem; margin-right: 1rem; font-size: 0.875rem; }
.tp-booking-row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
	margin-bottom: 1rem;
}
.tp-booking-row label,
.tp-booking-form > label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.875rem; font-weight: 500; }
.tp-booking-form input,
.tp-booking-form select {
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-md);
	padding: 0.5rem 0.75rem;
	font-family: inherit;
}
.tp-btn--wide { width: 100%; margin-top: 0.5rem; }

/* ── Locations + FAQ ── */
.tp-locations__grid {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 2rem;
	align-items: start;
}
.tp-locations__col h2 { font-size: 1.25rem; margin: 0 0 1rem; }
.tp-locations__col h3 { font-size: 0.9375rem; margin: 1rem 0 0.35rem; }
.tp-locations__col p { margin: 0; color: var(--tp-gray-500); line-height: 1.55; font-size: 0.875rem; }
.tp-arch-frame {
	background: var(--tp-blue-card);
	border-radius: 50% 50% 20% 20% / 30% 30% 70% 70%;
	padding: 1rem;
	position: relative;
}
.tp-arch-frame img {
	border-radius: inherit;
	width: 320px;
	height: 380px;
	object-fit: cover;
	display: block;
}
.tp-locations details {
	border-bottom: 1px solid var(--tp-gray-100);
	padding: 0.75rem 0;
}
.tp-locations summary { cursor: pointer; font-weight: 600; font-size: 0.875rem; }
.tp-locations details p { margin: 0.5rem 0 0; font-size: 0.8125rem; color: var(--tp-gray-500); }

/* ── About hero (layout vía tp-hero-split) ── */
/* ══════════════════════════════════════════════════════════════
   UX internas — nivel experto (2026)
   ══════════════════════════════════════════════════════════════ */

/* ── Breadcrumb ── */
.tp-breadcrumb--page {
	font-size: 0.75rem;
	color: var(--tp-gray-500);
	margin-bottom: 1rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
}
.tp-breadcrumb--page a {
	color: var(--tp-gray-500);
	text-decoration: none;
	transition: color 0.15s ease;
}
.tp-breadcrumb--page a:hover { color: var(--tp-navy); }
.tp-breadcrumb__current { color: var(--tp-navy); font-weight: 600; }
.tp-breadcrumb__sep { opacity: 0.45; }

/* ── Page hero (layout vía tp-hero-split) ── */
.tp-page-hero {
	padding: 0;
	border-bottom: none;
	background: transparent;
}

.tp-page-hero--brands,
.tp-page-hero--envios,
.tp-page-hero--minimal {
	background: transparent;
}

/* ── Prose / contenido editorial ── */
.tp-page-content--prose {
	max-width: 52rem;
	margin: 0 auto;
	font-size: 1rem;
	line-height: 1.75;
	color: var(--tp-navy);
}
.tp-page-content--prose h2,
.tp-page-content--prose h3 {
	font-family: var(--tp-font-heading);
	margin: 2rem 0 0.75rem;
	line-height: 1.25;
}
.tp-page-content--prose p,
.tp-page-content--prose li { color: var(--tp-gray-500); }
.tp-page-content--prose ul,
.tp-page-content--prose ol { padding-left: 1.25rem; }
.tp-page-content--prose a {
	color: var(--tp-navy);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ── Stats band ── */
.tp-stats-band {
	background: var(--tp-navy);
	color: var(--tp-white);
	padding: 1.75rem 1.5rem;
}
.tp-stats-band__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}
.tp-stats-band__value {
	display: block;
	font-family: var(--tp-font-heading);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 900;
	line-height: 1;
	margin-bottom: 0.35rem;
	color: var(--tp-yellow);
}
.tp-stats-band__label {
	font-size: 0.8125rem;
	opacity: 0.85;
}

/* ── Contact channels ── */
.tp-contact-channels { padding-top: 2rem; padding-bottom: 1rem; }
.tp-contact-channels__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}
.tp-contact-card {
	background: var(--tp-white);
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-lg);
	padding: 1.5rem;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.tp-contact-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--tp-shadow-soft);
	border-color: rgba(27, 42, 65, 0.12);
}
.tp-contact-card--accent {
	background: linear-gradient(145deg, #e8f8ef 0%, var(--tp-white) 100%);
	border-color: rgba(37, 211, 102, 0.25);
}
.tp-contact-card__icon {
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 12px;
	background: var(--tp-gray-50) center/20px no-repeat;
	margin-bottom: 1rem;
}
.tp-contact-card__icon--whatsapp { background-color: rgba(37, 211, 102, 0.15); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='%2325D366' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347'/%3E%3C/svg%3E"); }
.tp-contact-card__icon--email { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Cpath d='M4 4h16v16H4z'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E"); }
.tp-contact-card__icon--clock { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.tp-contact-card__title { margin: 0 0 0.35rem; font-size: 0.9375rem; }
.tp-contact-card__value { margin: 0 0 1rem; color: var(--tp-gray-500); font-size: 0.9375rem; }
.tp-contact-card__link {
	font-weight: 700;
	font-size: 0.8125rem;
	color: var(--tp-navy);
	text-decoration: none;
}
.tp-contact-card__link:hover { text-decoration: underline; }

/* ── Values bento ── */
.tp-values-bento__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	margin-top: 1.5rem;
}
.tp-values-bento__card {
	background: var(--tp-gray-50);
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-lg);
	padding: 1.5rem;
	transition: transform 0.2s ease, background 0.2s ease;
}
.tp-values-bento__card:hover {
	transform: translateY(-2px);
	background: var(--tp-white);
	box-shadow: var(--tp-shadow-soft);
}
.tp-values-bento__card--wide { grid-column: span 2; }
.tp-values-bento__card h3 { margin: 0 0 0.5rem; font-size: 1.0625rem; }
.tp-values-bento__card p { margin: 0; color: var(--tp-gray-500); font-size: 0.9375rem; line-height: 1.6; }

/* ── CTA band ── */
.tp-cta-band {
	background: var(--tp-navy);
	color: var(--tp-white);
	padding: 2.5rem 1.5rem;
}
.tp-cta-band__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}
.tp-cta-band__copy h2 {
	margin: 0 0 0.35rem;
	font-size: clamp(1.35rem, 3vw, 1.75rem);
	color: var(--tp-white);
}
.tp-cta-band__copy p { margin: 0; opacity: 0.8; max-width: 32rem; }
.tp-cta-band__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.tp-btn--ghost {
	background: transparent;
	color: var(--tp-white);
	border: 2px solid rgba(255, 255, 255, 0.35);
}
.tp-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.08);
	color: var(--tp-white);
	transform: translateY(-1px);
}

/* ── Envíos cards ── */
.tp-envios-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
	margin-bottom: 2.5rem;
}
.tp-envios-card {
	background: var(--tp-white);
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-lg);
	padding: 1.75rem;
}
.tp-envios-card--accent {
	background: linear-gradient(160deg, rgba(255, 210, 74, 0.12) 0%, var(--tp-white) 100%);
	border-color: rgba(255, 210, 74, 0.35);
}
.tp-envios-card h2 { margin: 0 0 1rem; font-size: 1.25rem; }
.tp-envios-locations { list-style: none; margin: 0; padding: 0; }
.tp-envios-locations li {
	padding: 1rem 0;
	border-bottom: 1px solid var(--tp-gray-100);
}
.tp-envios-locations li:last-child { border-bottom: none; padding-bottom: 0; }
.tp-envios-locations strong { display: block; margin-bottom: 0.25rem; }
.tp-envios-locations span { display: block; color: var(--tp-gray-500); font-size: 0.9375rem; }
.tp-envios-locations em { display: block; margin-top: 0.35rem; font-size: 0.8125rem; color: var(--tp-navy); font-style: normal; font-weight: 600; }
.tp-envios-steps {
	margin: 1rem 0 0;
	padding-left: 1.25rem;
	color: var(--tp-gray-500);
	line-height: 1.7;
}

/* ── Booking UX mejorado ── */
.tp-booking__lead {
	text-align: center;
	color: var(--tp-gray-500);
	margin: -0.5rem auto 1.25rem;
	max-width: 28rem;
}
.tp-booking-pills,
.tp-booking-checks {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.tp-booking-pill,
.tp-booking-check {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.45rem 0.85rem;
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-pill);
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s;
}
.tp-booking-pill:has(input:checked),
.tp-booking-check:has(input:checked) {
	border-color: var(--tp-navy);
	background: rgba(255, 210, 74, 0.25);
}
.tp-booking-pill input,
.tp-booking-check input { accent-color: var(--tp-navy); }
.tp-booking-form input:focus,
.tp-booking-form select:focus {
	outline: 2px solid var(--tp-yellow);
	outline-offset: 2px;
	border-color: var(--tp-navy);
}
.tp-booking--compact { padding-top: 1.5rem; background: var(--tp-gray-50); }
.tp-booking--compact .tp-booking-form { box-shadow: none; }
.tp-booking--embedded { margin: 0; }
.tp-booking--embedded .tp-booking-form {
	border: none;
	box-shadow: none;
	padding: 0;
	background: transparent;
}
.tp-booking--embedded .tp-booking-promo {
	border-radius: var(--tp-radius-md);
	margin-bottom: 1rem;
}

/* ── FAQ acordeón ── */
.tp-faq details {
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-md);
	padding: 0;
	margin-bottom: 0.5rem;
	background: var(--tp-white);
	overflow: hidden;
	transition: box-shadow 0.2s ease;
}
.tp-faq details[open] {
	box-shadow: var(--tp-shadow-soft);
	border-color: rgba(27, 42, 65, 0.1);
}
.tp-locations details { border: none; border-radius: 0; margin-bottom: 0; background: transparent; box-shadow: none; }
.tp-faq summary,
.tp-locations summary {
	cursor: pointer;
	font-weight: 700;
	font-size: 0.875rem;
	padding: 0.85rem 1rem;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}
.tp-faq summary::-webkit-details-marker,
.tp-locations summary::-webkit-details-marker { display: none; }
.tp-faq summary::after,
.tp-locations summary::after {
	content: "+";
	font-size: 1.125rem;
	font-weight: 400;
	color: var(--tp-gray-400);
	transition: transform 0.2s ease;
}
.tp-faq details[open] summary::after,
.tp-locations details[open] summary::after {
	content: "−";
	color: var(--tp-navy);
}
.tp-faq details p,
.tp-locations details p {
	margin: 0;
	padding: 0 1rem 1rem;
	font-size: 0.8125rem;
	color: var(--tp-gray-500);
	line-height: 1.6;
}

/* ── Testimonials dots ── */
.tp-testimonial-card__stars {
	color: var(--tp-yellow);
	font-size: 0.875rem;
	letter-spacing: 0.05em;
	margin-bottom: 0.35rem;
}
.tp-slider-dots {
	display: flex;
	justify-content: center;
	gap: 0.4rem;
	grid-column: 1 / -1;
	margin-top: 0.5rem;
}
.tp-slider-dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	border: none;
	background: var(--tp-gray-100);
	cursor: pointer;
	padding: 0;
	transition: transform 0.15s, background 0.15s;
}
.tp-slider-dot.is-active {
	background: var(--tp-navy);
	transform: scale(1.25);
}

/* ── Service cards micro-interaction ── */
.tp-service-card {
	border: 1px solid transparent;
	box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}
.tp-service-card:hover {
	box-shadow: var(--tp-shadow-soft);
	border-color: rgba(27, 42, 65, 0.08);
}
.tp-service-card:focus-visible {
	outline: 2px solid var(--tp-yellow);
	outline-offset: 3px;
}

/* ── Brands mejorado ── */
.tp-brands-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}
.tp-brands-search input {
	width: min(100%, 320px);
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-pill);
	padding: 0.65rem 1rem 0.65rem 2.5rem;
	font-family: inherit;
	font-size: 0.875rem;
	background: var(--tp-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%239aa3b2' stroke-width='2'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 3 3'/%3E%3C/svg%3E") 0.85rem center no-repeat;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.tp-brands-search input:focus {
	outline: none;
	border-color: var(--tp-navy);
	box-shadow: 0 0 0 3px rgba(255, 210, 74, 0.35);
}
.tp-brands-toolbar__hint { margin: 0; font-size: 0.8125rem; color: var(--tp-gray-400); }
.tp-brands-alpha {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0 0 2rem;
	background: rgba(126, 200, 240, 0.92);
	padding: 0.75rem 1rem;
	border-radius: var(--tp-radius-md);
	position: sticky;
	top: 4.5rem;
	z-index: 50;
	backdrop-filter: blur(8px);
}
.tp-brands-alpha a {
	width: 2rem;
	height: 2rem;
	display: grid;
	place-items: center;
	border-radius: 6px;
	text-decoration: none;
	color: var(--tp-gray-500);
	font-weight: 600;
	font-size: 0.8125rem;
}
.tp-brands-alpha a.has-items { color: var(--tp-navy); background: rgba(255, 255, 255, 0.6); }
.tp-brands-alpha a.is-empty { opacity: 0.35; pointer-events: none; }
.tp-brands-alpha a:hover { background: var(--tp-yellow); color: var(--tp-navy); }
.tp-brands-list { columns: 3; column-gap: 2rem; }
.tp-brands-count {
	display: inline-flex;
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.35rem;
	border-radius: var(--tp-radius-pill);
	background: var(--tp-gray-100);
	font-size: 0.6875rem;
	font-weight: 700;
	margin-left: 0.35rem;
	vertical-align: middle;
}
.tp-brands-group { break-inside: avoid; margin-bottom: 1.5rem; }
.tp-brands-group h2 { font-size: 1.5rem; margin: 0 0 0.5rem; color: var(--tp-navy); }
.tp-brands-group ul { list-style: none; margin: 0; padding: 0; }
.tp-brands-group a { color: var(--tp-gray-500); text-decoration: none; font-size: 0.875rem; line-height: 1.8; }
.tp-brands-group a:hover { color: var(--tp-navy); text-decoration: underline; }
.tp-brands-group li.is-hidden { display: none; }
.tp-brands-group.is-hidden { display: none; }
.tp-brands-empty {
	text-align: center;
	color: var(--tp-gray-500);
	padding: 2rem;
	background: var(--tp-gray-50);
	border-radius: var(--tp-radius-lg);
}

/* ── Why us cards ── */
.tp-why__item {
	background: var(--tp-white);
	border-radius: var(--tp-radius-md);
	padding: 1.25rem;
	border: 1px solid var(--tp-gray-100);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tp-why__item:hover {
	transform: translateY(-2px);
	box-shadow: var(--tp-shadow-soft);
}

/* ── Contact hero legacy ── */
.tp-contact-hero { text-align: center; padding: 3rem 1rem 1rem; }
.tp-contact-hero h1 { margin: 0 0 0.5rem; }

@media (prefers-reduced-motion: reduce) {
	.tp-service-card,
	.tp-contact-card,
	.tp-values-bento__card,
	.tp-why__item { transition: none; }
}

/* ── Shop promo slider (tienda + categorías) ── */
.tp-shop-promo {
	background: var(--tp-white);
	width: 100%;
}

.tp-shop-promo__slider {
	position: relative;
	overflow: hidden;
	width: 100%;
}

.tp-shop-promo__track {
	position: relative;
	width: 100%;
}

/* Todos los slides ocupan la misma celda → altura = la del slide más alto */
.tp-shop-promo__slider--active .tp-shop-promo__track {
	display: grid;
	grid-template-areas: "stack";
	width: 100%;
}

.tp-shop-promo__slider--active .tp-shop-promo-slide {
	grid-area: stack;
	width: 100%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.35s ease, visibility 0.35s ease;
	z-index: 1;
}

.tp-shop-promo__slider--active .tp-shop-promo-slide.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 2;
}

.tp-shop-promo-slide {
	box-sizing: border-box;
	background: var(--tp-shop-promo-bg, var(--tp-blue-card));
	padding: 0.35rem 0 1.25rem;
	min-height: auto;
}

.tp-shop-promo-slide__grid {
	width: 100%;
	margin-inline: auto;
}

.tp-shop-promo-slide__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.tp-shop-promo-slide__title {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	margin: 0 0 0.75rem;
	color: var(--tp-navy);
	line-height: 1.15;
}

.tp-shop-promo-slide__sub {
	color: var(--tp-gray-500);
	margin: 0 0 1.25rem;
	max-width: 62ch;
	line-height: 1.5;
}

.tp-shop-promo-slide__visual {
	max-width: 400px;
}

.tp-shop-promo__arrow.tp-slider-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 4;
	width: 2.65rem;
	height: 2.65rem;
	border-radius: 50%;
	border: 1px solid rgba(27, 42, 65, 0.16);
	background: #fff;
	color: var(--tp-navy, #1b2a41);
	font-size: 1.55rem;
	line-height: 0;
	padding: 0;
	box-shadow: 0 6px 18px rgba(27, 42, 65, 0.16);
}

.tp-shop-promo__arrow.tp-slider-btn:hover,
.tp-shop-promo__arrow.tp-slider-btn:focus-visible {
	background: #fff;
	border-color: rgba(27, 42, 65, 0.28);
	color: var(--tp-navy, #1b2a41);
}

.tp-shop-promo__arrow--prev { left: 0.5rem; }
.tp-shop-promo__arrow--next { right: 0.5rem; }

.tp-shop-promo__dots {
	position: absolute;
	left: 50%;
	bottom: 0.85rem;
	transform: translateX(-50%);
	z-index: 4;
	margin: 0;
}

.tp-shop-promo__dots .tp-slider-dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	border: none;
	padding: 0;
	margin: 0 0.2rem;
	background: rgba(27, 42, 65, 0.25);
	cursor: pointer;
}

.tp-shop-promo__dots .tp-slider-dot.is-active {
	background: var(--tp-navy);
	transform: scale(1.15);
}

@media (max-width: 768px) {
	.tp-shop-promo-slide {
		padding: 1.1rem 1.25rem 1.5rem;
		min-height: 0;
	}

	.tp-shop-promo-slide__grid {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 1rem;
		min-height: 0;
	}

	.tp-shop-promo-slide__visual {
		max-width: 140px;
		max-height: 120px;
		min-height: 0;
		aspect-ratio: 1;
		order: 0;
	}

	.tp-shop-promo-slide__title {
		min-height: 0;
		font-size: clamp(1.25rem, 5vw, 1.65rem);
	}

	.tp-shop-promo-slide__sub {
		min-height: 0;
		margin-bottom: 0.75rem;
	}

	.tp-shop-promo__arrow.tp-slider-btn {
		width: 2.35rem;
		height: 2.35rem;
		font-size: 1.2rem;
		color: var(--tp-navy, #1b2a41);
		background: #fff;
	}

	.tp-shop-promo__arrow--prev { left: 0.35rem; }
	.tp-shop-promo__arrow--next { right: 0.35rem; }
}

.tp-shipping-bar {
	background: rgba(255, 255, 255, 0.75);
	text-align: center;
	padding: 0.65rem 1rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--tp-navy);
	border-top: 1px solid rgba(27, 42, 65, 0.06);
}

.tp-shop-archive-head {
	width: 100%;
	padding: 0 0 0.85rem;
}

.tp-shop-archive-head__title {
	font-size: clamp(1.35rem, 2.5vw, 1.75rem);
	margin: 0 0 0.35rem;
	color: var(--tp-navy);
}

.tp-shop-archive-head__desc {
	margin: 0 0 0.5rem;
	color: var(--tp-gray-500);
	font-size: 0.9rem;
	line-height: 1.5;
	max-width: 48rem;
}

.tp-shop-archive { padding-top: 2rem; }

/* Category cards: full-bleed photo lives in .tp-cat-card__img (design.css). */

/* ══════════════════════════════════════════════════════════════
   Contacto — layout integrado
   ══════════════════════════════════════════════════════════════ */
.tecnopets-page--contact {
	background: var(--tp-gray-50);
}

.tp-contact-page {
	overflow: hidden;
}

.tp-contact-page__hero {
	padding-bottom: 2.5rem;
}

.tp-contact-page__body {
	margin-top: -2rem;
	padding-bottom: 3.5rem;
	position: relative;
	z-index: 2;
}

.tp-contact-page__actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}

.tp-contact-action {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 1rem 1.1rem;
	background: var(--tp-white);
	border: 1px solid rgba(27, 42, 65, 0.08);
	border-radius: var(--tp-radius-lg);
	text-decoration: none;
	color: inherit;
	box-shadow: var(--tp-shadow-soft);
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.tp-contact-action:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 36px rgba(27, 42, 65, 0.1);
	border-color: rgba(27, 42, 65, 0.14);
	color: inherit;
}

.tp-contact-action--whatsapp {
	background: linear-gradient(135deg, rgba(37, 211, 102, 0.08) 0%, var(--tp-white) 100%);
	border-color: rgba(37, 211, 102, 0.22);
}

.tp-contact-action__icon {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 14px;
	background: var(--tp-gray-50) center/22px no-repeat;
	flex-shrink: 0;
}

.tp-contact-action__icon--whatsapp {
	background-color: rgba(37, 211, 102, 0.14);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2325D366' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347'/%3E%3C/svg%3E");
}

.tp-contact-action__icon--email {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Cpath d='M4 4h16v16H4z'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
}

.tp-contact-action__icon--clock {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.tp-contact-action__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
	flex: 1;
}

.tp-contact-action__body strong {
	font-size: 0.875rem;
	font-weight: 800;
	color: var(--tp-navy);
}

.tp-contact-action__body span {
	font-size: 0.8125rem;
	color: var(--tp-gray-500);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.tp-contact-action__arrow {
	font-size: 1.125rem;
	color: var(--tp-gray-400);
	flex-shrink: 0;
	transition: transform 0.15s ease, color 0.15s ease;
}

.tp-contact-action:hover .tp-contact-action__arrow {
	transform: translateX(3px);
	color: var(--tp-navy);
}

.tp-contact-action--static {
	cursor: default;
}

.tp-contact-action--static:hover {
	transform: none;
	box-shadow: var(--tp-shadow-soft);
	border-color: rgba(27, 42, 65, 0.08);
}

.tp-contact-page__trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.65rem 1rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.tp-contact-page__trust li {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 0.85rem;
	border-radius: var(--tp-radius-pill);
	background: rgba(126, 200, 240, 0.18);
	border: 1px solid rgba(27, 42, 65, 0.06);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--tp-navy);
}

.tp-contact-page__trust-icon {
	width: 1.1rem;
	height: 1.1rem;
	flex-shrink: 0;
	background: center/contain no-repeat;
}

.tp-contact-page__trust-icon--bolt {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Cpath d='M13 2 4 11h6l-1 9 9-11h-6l1-7z'/%3E%3C/svg%3E");
}

.tp-contact-page__trust-icon--chat {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3C/svg%3E");
}

.tp-contact-page__trust-icon--pin {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Cpath d='M12 21s6-4.35 6-10a6 6 0 1 0-12 0c0 5.65 6 10 6 10z'/%3E%3Ccircle cx='12' cy='11' r='2'/%3E%3C/svg%3E");
}

.tp-contact-unified {
	background: var(--tp-white);
	border: 1px solid rgba(27, 42, 65, 0.08);
	border-radius: var(--tp-radius-xl);
	padding: clamp(1.5rem, 2.5vw, 2.75rem);
	box-shadow: var(--tp-shadow-soft);
}

.tp-contact-unified__head {
	text-align: center;
	max-width: 36rem;
	margin: 0 auto 1.75rem;
}

.tp-contact-unified__title {
	margin: 0 0 0.5rem;
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	line-height: 1.15;
}

.tp-contact-unified__lead {
	margin: 0;
	color: var(--tp-gray-500);
	font-size: 0.9375rem;
	line-height: 1.55;
}

.tp-contact-unified__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
	gap: clamp(1.25rem, 2.5vw, 2rem);
	align-items: start;
}

.tp-contact-unified__main {
	padding: clamp(1.15rem, 2vw, 1.65rem);
	background: linear-gradient(180deg, rgba(126, 200, 240, 0.08) 0%, var(--tp-gray-50) 100%);
	border: 1px solid rgba(27, 42, 65, 0.06);
	border-radius: var(--tp-radius-lg);
}

.tp-contact-unified__form-head {
	margin-bottom: 1.15rem;
}

.tp-contact-unified__form-head h3 {
	margin: 0 0 0.35rem;
	font-size: 1.125rem;
}

.tp-contact-unified__form-head p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--tp-gray-500);
	line-height: 1.5;
}

.tp-contact-unified__wa-hint {
	margin: 1rem 0 0;
	font-size: 0.875rem;
	color: var(--tp-gray-500);
}

.tp-contact-unified__wa-hint a {
	color: var(--tp-navy);
	font-weight: 700;
	text-decoration: none;
}

.tp-contact-unified__wa-hint a:hover {
	text-decoration: underline;
}

.tp-contact-unified__aside {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	position: sticky;
	top: 1.25rem;
}

.tp-contact-unified__figure {
	margin: 0;
	border-radius: var(--tp-radius-lg);
	overflow: hidden;
	box-shadow: var(--tp-shadow-soft);
	background: var(--tp-gray-50);
}

.tp-contact-unified__figure img {
	display: block;
	width: 100%;
	height: 200px;
	object-fit: cover;
	object-position: center 40%;
}

.tp-contact-unified__figure figcaption {
	padding: 0.55rem 0.75rem;
	font-size: 0.6875rem;
	font-weight: 600;
	text-align: center;
	color: var(--tp-gray-500);
	background: var(--tp-white);
	border-top: 1px solid var(--tp-gray-100);
}

.tp-contact-unified__label {
	margin: 0 0 0.75rem;
	font-size: 0.8125rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--tp-navy);
}

.tp-contact-unified__spots,
.tp-contact-unified__faq {
	padding: 1rem;
	background: var(--tp-gray-50);
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-md);
}

.tp-contact-spot {
	display: flex;
	gap: 0.75rem;
}

.tp-contact-spot + .tp-contact-spot {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--tp-gray-100);
}

.tp-contact-spot__pin {
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--tp-white) center/14px no-repeat;
	border: 1px solid var(--tp-gray-100);
	flex-shrink: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Cpath d='M12 21s6-4.35 6-10a6 6 0 1 0-12 0c0 5.65 6 10 6 10z'/%3E%3Ccircle cx='12' cy='11' r='2'/%3E%3C/svg%3E");
}

.tp-contact-spot__tag {
	display: inline-block;
	margin-bottom: 0.2rem;
	padding: 0.12rem 0.45rem;
	border-radius: var(--tp-radius-pill);
	background: rgba(126, 200, 240, 0.35);
	font-size: 0.5625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--tp-navy);
}

.tp-contact-spot strong {
	display: block;
	margin-bottom: 0.15rem;
	font-size: 0.875rem;
	line-height: 1.3;
}

.tp-contact-spot p {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--tp-gray-500);
	line-height: 1.5;
}

.tp-contact-unified__link {
	display: inline-block;
	margin-top: 0.85rem;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--tp-navy);
	text-decoration: none;
}

.tp-contact-unified__link:hover {
	text-decoration: underline;
}

.tp-contact-page__panel {
	background: var(--tp-white);
	border: 1px solid rgba(27, 42, 65, 0.08);
	border-radius: var(--tp-radius-xl);
	padding: clamp(1.5rem, 2.5vw, 2.75rem);
	box-shadow: var(--tp-shadow-soft);
}

.tp-contact-page__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(220px, 260px) minmax(0, 1fr);
	gap: clamp(1.25rem, 2.5vw, 2rem);
	align-items: start;
}

.tp-contact-page__section-title {
	margin: 0 0 1.15rem;
	font-size: 1.125rem;
	line-height: 1.2;
}

.tp-contact-page__locations .tp-contact-page__section-title,
.tp-contact-page__faq .tp-contact-page__section-title {
	padding-bottom: 0.65rem;
	border-bottom: 2px solid var(--tp-yellow);
	display: inline-block;
}

.tp-contact-location {
	display: flex;
	gap: 0.85rem;
	padding: 1rem;
	background: var(--tp-gray-50);
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-md);
}

.tp-contact-location + .tp-contact-location {
	margin-top: 0.65rem;
}

.tp-contact-location__pin {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: var(--tp-white) center/16px no-repeat;
	border: 1px solid var(--tp-gray-100);
	flex-shrink: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%231b2a41' stroke-width='1.8'%3E%3Cpath d='M12 21s6-4.35 6-10a6 6 0 1 0-12 0c0 5.65 6 10 6 10z'/%3E%3Ccircle cx='12' cy='11' r='2'/%3E%3C/svg%3E");
}

.tp-contact-location__tag {
	display: inline-block;
	margin-bottom: 0.25rem;
	padding: 0.15rem 0.5rem;
	border-radius: var(--tp-radius-pill);
	background: rgba(126, 200, 240, 0.35);
	font-size: 0.625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--tp-navy);
}

.tp-contact-location h3 {
	margin: 0 0 0.25rem;
	font-size: 0.9375rem;
}

.tp-contact-location p {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--tp-gray-500);
	line-height: 1.55;
}

.tp-contact-page__media {
	margin: 0;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	border-radius: var(--tp-radius-xl);
	overflow: hidden;
	box-shadow: var(--tp-shadow-soft);
	background: var(--tp-gray-50);
}

.tp-contact-page__media img {
	width: 100%;
	height: 100%;
	min-height: 320px;
	object-fit: cover;
	display: block;
	flex: 1;
}

.tp-contact-page__media-caption {
	padding: 0.65rem 0.85rem;
	font-size: 0.6875rem;
	font-weight: 600;
	text-align: center;
	color: var(--tp-gray-500);
	background: var(--tp-white);
	border-top: 1px solid var(--tp-gray-100);
}

.tp-faq--contact details {
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-md);
	margin-bottom: 0.5rem;
	background: var(--tp-gray-50);
	overflow: hidden;
}

.tp-faq--contact details[open] {
	background: var(--tp-white);
	box-shadow: var(--tp-shadow-soft);
	border-color: rgba(27, 42, 65, 0.1);
}

.tp-contact-page__divider {
	height: 1px;
	margin: 2rem 0 1.75rem;
	background: linear-gradient(90deg, transparent, var(--tp-gray-100) 15%, var(--tp-gray-100) 85%, transparent);
}

.tp-contact-page__booking-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 1.5rem;
	margin-bottom: 1.25rem;
}

.tp-contact-page__booking-head p {
	margin: 0;
	color: var(--tp-gray-500);
	font-size: 0.9375rem;
	max-width: 28rem;
}

.tp-contact-page__footnote {
	margin: 1.75rem 0 0;
	padding: 1rem 1.25rem;
	text-align: center;
	font-size: 0.9375rem;
	color: var(--tp-gray-500);
	background: var(--tp-white);
	border: 1px solid var(--tp-gray-100);
	border-radius: var(--tp-radius-lg);
}

.tp-contact-page__footnote a {
	color: var(--tp-navy);
	font-weight: 700;
	text-decoration: none;
}

.tp-contact-page__footnote a:hover {
	text-decoration: underline;
}

@media (max-width: 992px) {
	.tp-promise__grid,
	.tp-locations__grid,
	.tp-envios-grid,
	.tp-contact-channels__grid,
	.tp-values-bento__grid,
	.tp-cta-band__inner { grid-template-columns: 1fr; flex-direction: column; align-items: flex-start; }
	.tp-stats-band__grid { grid-template-columns: repeat(2, 1fr); }
	.tp-values-bento__card--wide { grid-column: span 1; }
	.tp-services-grid { grid-template-columns: repeat(3, 1fr); }
	.tp-why__grid { grid-template-columns: 1fr; }
	.tp-testimonial-card { grid-template-columns: 1fr; text-align: center; }
	.tp-testimonial-card img { margin: 0 auto; }
	.tp-brands-list { columns: 2; }
	.tp-booking-row { grid-template-columns: 1fr; }
	.tp-brands-alpha { top: 0; position: relative; }
	.tp-contact-page__actions { grid-template-columns: 1fr; }
	.tp-contact-unified__layout {
		grid-template-columns: 1fr;
	}
	.tp-contact-unified__aside {
		position: static;
	}
	.tp-contact-unified__figure img {
		height: 240px;
	}
	.tp-contact-page__grid {
		grid-template-columns: 1fr;
	}
	.tp-contact-page__media {
		order: -1;
		max-width: 420px;
		margin: 0 auto;
		width: 100%;
	}
	.tp-contact-page__hero { padding-bottom: 2rem; }
	.tp-contact-page__body { margin-top: -1.5rem; }
}

@media (max-width: 576px) {
	.tp-services-grid { grid-template-columns: repeat(2, 1fr); }
	.tp-brands-list { columns: 1; }
	.tp-stats-band__grid { grid-template-columns: 1fr 1fr; }
	.tp-contact-channels__grid { grid-template-columns: 1fr; }
}

/* Tablet: páginas internas en 2 columnas, no apiladas como teléfono */
@media (min-width: 768px) and (max-width: 1199px) {
	.tp-shop-promo-slide {
		padding: 1.15rem 1.5rem 1.5rem;
		min-height: 0;
	}

	.tp-shop-promo-slide__grid {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 1.25rem;
		align-items: center;
		min-height: 0;
	}

	.tp-shop-promo-slide__visual {
		order: 0;
		max-width: 180px;
		max-height: 150px;
		min-height: 0;
		aspect-ratio: 1;
	}

	.tp-shop-promo-slide__title {
		font-size: clamp(1.75rem, 3.2vw, 2.35rem);
		min-height: 0;
	}

	.tp-shop-promo__arrow.tp-slider-btn {
		width: 2.75rem;
		height: 2.75rem;
	}

	.tp-promise__grid,
	.tp-why__grid,
	.tp-booking-row,
	.tp-contact-unified__layout,
	.tp-contact-page__grid,
	.tp-cta-band__inner {
		grid-template-columns: 1.05fr 0.95fr;
		flex-direction: row;
		align-items: center;
		gap: 1.75rem;
	}

	.tp-locations__grid,
	.tp-envios-grid,
	.tp-contact-channels__grid,
	.tp-values-bento__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.tp-stats-band__grid {
		grid-template-columns: repeat(4, 1fr);
	}

	.tp-services-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.15rem;
	}

	.tp-testimonial-card {
		grid-template-columns: 160px 1fr;
		text-align: left;
	}

	.tp-testimonial-card img {
		margin: 0;
	}

	.tp-brands-list {
		columns: 2;
	}

	.tp-contact-page__media {
		order: 0;
		max-width: none;
		margin: 0;
	}

	.tp-contact-unified__aside {
		position: static;
	}

	.tp-contact-unified__figure img {
		height: 280px;
	}

	.tp-contact-page__actions {
		grid-template-columns: 1fr 1fr;
	}

	.tp-hero-split > .tp-container.tp-hero-split__inner {
		grid-template-columns: 1.05fr 0.95fr;
		gap: 1.5rem;
	}
}

@media (min-width: 1024px) and (max-width: 1199px) {
	.tp-services-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
