/*
Theme Name: Parcero Tours
Theme URI: https://parcerotourspuntacana.com
Author: Postsicionate
Author URI: https://postsicionate.com
Description: Tema de bloques propio de Parcero Tours Punta Cana. Sin constructor: plantillas nativas (FSE), CSS propio y cero JavaScript de terceros. Modelo de datos de tours servido por el núcleo postsicionate-panel (módulo Tours).
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Version: 0.4.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: parcero
*/

/* Los estilos de diseño viven en theme.json. Aquí solo lo que theme.json no expresa. */

:root {
	--p-radius: 18px;
	--p-radius-sm: 10px;
	--p-shadow: 0 10px 30px -12px rgb(0 59 140 / 35%);
	--p-ease: cubic-bezier(.2, .7, .2, 1);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

:where(a, button, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--yellow);
	outline-offset: 3px;
	border-radius: 4px;
}

/* ---------- Cabecera ---------- */
.p-header { position: sticky; top: 0; z-index: 50; backdrop-filter: saturate(1.4) blur(10px); }
.admin-bar .p-header { top: var(--wp-admin--admin-bar--height, 0); }
.p-header .wp-block-site-logo img { width: auto; max-height: 56px; }

/* ---------- Pegatina (badge con picardía) ---------- */
.p-sticker {
	display: inline-block;
	padding: .35em .8em;
	background: var(--wp--preset--color--yellow);
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: .06em;
	text-transform: uppercase;
	border-radius: 999px;
	transform: rotate(-3deg);
	box-shadow: 0 3px 0 var(--wp--preset--color--navy);
}

/* ---------- Tarjetas de tour ---------- */
.p-card {
	background: var(--wp--preset--color--white);
	border-radius: var(--p-radius);
	overflow: hidden;
	box-shadow: var(--p-shadow);
	transition: transform .35s var(--p-ease), box-shadow .35s var(--p-ease);
	height: 100%;
}
.p-card:hover { transform: translateY(-4px) rotate(-.4deg); box-shadow: 0 18px 40px -14px rgb(0 59 140 / 45%); }
.p-card .wp-block-post-featured-image { margin: 0; }
.p-card .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; }

/* ---------- Ficha de tour ---------- */
.p-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: var(--wp--preset--spacing--20); margin: 0; padding: 0; list-style: none; }
.p-facts li { background: var(--wp--preset--color--cream); border-radius: var(--p-radius-sm); padding: .8rem 1rem; }
.p-facts dt, .p-facts .p-facts__k { font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: .06em; opacity: .75; }
.p-facts .p-facts__v { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: var(--wp--preset--font-size--medium); }

.p-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.p-list li { position: relative; padding-left: 1.7rem; }
.p-list li::before { content: ""; position: absolute; left: 0; top: .45em; width: .85rem; height: .85rem; border-radius: 50%; background: var(--wp--preset--color--blue); }
.p-list--no li::before { background: transparent; border: 2px solid var(--wp--preset--color--ink-soft); }

/* Precio con forma de ticket */
.p-ticket {
	position: relative;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	border-radius: var(--p-radius);
	padding: var(--wp--preset--spacing--30);
	--hole: 14px;
	mask: radial-gradient(circle var(--hole) at 0 62%, #0000 98%, #000) left / 51% 100% no-repeat,
	      radial-gradient(circle var(--hole) at 100% 62%, #0000 98%, #000) right / 51% 100% no-repeat;
}
.p-ticket__price { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--xx-large); font-weight: 800; line-height: 1; color: var(--wp--preset--color--yellow); }

/* FAQ sin JavaScript */
.p-faq details { border-bottom: 1px solid rgb(0 59 140 / 15%); padding: 1rem 0; }
.p-faq summary { cursor: pointer; font-weight: 700; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.p-faq summary::-webkit-details-marker { display: none; }
.p-faq summary::after { content: "+"; font-family: var(--wp--preset--font-family--display); font-size: 1.4em; line-height: 1; transition: transform .25s var(--p-ease); }
.p-faq details[open] summary::after { transform: rotate(45deg); }

/* Barra de reserva fija en móvil */
.p-bookbar { display: none; }
@media (max-width: 781px) {
	.p-bookbar {
		display: flex; align-items: center; justify-content: space-between; gap: 1rem;
		position: fixed; inset: auto 0 0 0; z-index: 60;
		padding: .75rem 16px calc(.75rem + env(safe-area-inset-bottom));
		background: var(--wp--preset--color--white);
		box-shadow: 0 -8px 24px -12px rgb(0 0 0 / 30%);
	}
	body.single-tour { padding-bottom: 84px; }
}

/* Botón WhatsApp */
.p-wa { display: inline-flex; align-items: center; gap: .55em; }
.p-wa svg { width: 1.2em; height: 1.2em; flex: none; }

/* Filtros del catálogo: enlaces, no JavaScript */
.p-pills { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.p-pills a { display: inline-block; padding: .5rem 1rem; border-radius: 999px; border: 2px solid var(--wp--preset--color--navy); text-decoration: none; font-weight: 700; color: var(--wp--preset--color--navy); }
.p-pills a[aria-current="page"], .p-pills a:hover { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); }

/* Columna lateral fija en escritorio */
@media (min-width: 782px) {
	.p-sticky { position: sticky; top: 110px; }
}
.p-ticket p { margin: 0 0 .4rem; }
.p-ticket .p-ticket__label { text-transform: uppercase; letter-spacing: .08em; font-size: var(--wp--preset--font-size--x-small); opacity: .8; }
.p-ticket .p-wa { margin-top: var(--wp--preset--spacing--20); width: 100%; justify-content: center; }

/* Galería de la ficha */
.p-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .6rem; margin-block: var(--wp--preset--spacing--40); }
.p-gallery img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--p-radius-sm); }

/* Contacto del pie */
.p-contact { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .4rem; }

/* Pegatina dentro de post-terms */
.wp-block-post-terms.p-sticker a { color: inherit; text-decoration: none; }
