/*
 Theme Name: Astra Child
 Theme URI: https://transfer24.online/
 Description: Tema hijo de Astra para Transfer24.
 Author: Transfer24
 Template: astra
 Version: 1.1
*/

/* Hallmark · macrostructure: Service Ledger · tone: composed travel ops · anchor hue: blue */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	overflow-x: clip;
}

body {
	margin: 0;
	background: var(--color-paper);
	color: var(--color-ink);
	font-family: var(--font-body);
	line-height: 1.6;
}

a {
	color: inherit;
}

.t24-wrap {
	width: min(100% - 32px, 1160px);
	margin-inline: auto;
}

.home .site-content .ast-container,
.home .site-main,
.page-template-front-page .site-content .ast-container,
.page-template-front-page .site-main {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.home .entry-content,
.page-template-front-page .entry-content {
	margin: 0;
}

.t24-home {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: var(--color-paper);
}

.t24-hero {
	padding: clamp(56px, 8vw, 112px) 0 clamp(40px, 6vw, 72px);
	background:
		linear-gradient(120deg, var(--color-paper) 0%, var(--color-paper-soft) 58%, var(--color-sky) 100%);
	border-bottom: 1px solid var(--color-rule);
}

.t24-hero__grid,
.t24-service-grid,
.t24-about__grid,
.t24-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
}

.t24-kicker {
	margin: 0 0 var(--space-sm);
	color: var(--color-accent);
	font-size: var(--text-sm);
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.t24-hero h1,
.t24-section h2 {
	margin: 0;
	color: var(--color-ink-strong);
	font-family: var(--font-display);
	font-style: normal;
	font-weight: 760;
	line-height: 0.98;
	letter-spacing: 0;
	overflow-wrap: anywhere;
}

.t24-hero h1 {
	max-width: 760px;
	font-size: clamp(48px, 7vw, 86px);
}

.t24-section h2 {
	font-size: clamp(34px, 4.6vw, 58px);
}

.t24-lead,
.t24-section p {
	color: var(--color-muted);
	font-size: var(--text-md);
}

.t24-lead {
	max-width: 660px;
	margin: var(--space-md) 0 0;
	font-size: clamp(18px, 2vw, 22px);
}

.t24-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin-top: var(--space-lg);
}

.t24-button,
.btn-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 var(--space-md);
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	transition: transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
	cursor: pointer;
}

.t24-button:hover,
.btn-cta:hover {
	transform: translateY(-2px);
	text-decoration: none;
}

.t24-button:focus-visible,
.btn-cta:focus-visible,
.t24-field input:focus-visible,
.t24-field select:focus-visible,
.t24-field textarea:focus-visible,
.t24-text-link:focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 3px;
}

.t24-button--primary,
.btn-cta {
	background: var(--color-accent);
	color: var(--color-on-accent);
}

.t24-button--primary:hover,
.btn-cta:hover {
	background: var(--color-accent-strong);
	color: var(--color-on-accent);
}

.t24-button--secondary {
	background: var(--color-paper);
	border-color: var(--color-rule-strong);
	color: var(--color-ink-strong);
}

.t24-button--dark {
	background: var(--color-ink-strong);
	color: var(--color-paper);
}

.t24-route-panel,
.t24-form,
.auto-card,
.related-links {
	background: var(--color-panel);
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-panel);
}

.t24-route-panel {
	padding: clamp(20px, 4vw, 32px);
}

.t24-route-panel__top {
	display: flex;
	justify-content: space-between;
	gap: var(--space-md);
	padding-bottom: var(--space-md);
	border-bottom: 1px solid var(--color-rule);
	color: var(--color-muted);
	font-size: var(--text-sm);
}

.t24-route-panel__top strong {
	color: var(--color-ink-strong);
	font-size: var(--text-lg);
}

.t24-route {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr);
	gap: var(--space-sm);
	align-items: center;
	margin: var(--space-xl) 0;
	color: var(--color-ink-strong);
	font-weight: 800;
}

.t24-route i {
	display: block;
	height: 2px;
	background: var(--color-accent);
	position: relative;
}

.t24-route i::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--color-accent);
	border-right: 2px solid var(--color-accent);
	transform: translateY(-50%) rotate(45deg);
}

.t24-mini-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-sm);
}

.t24-mini-grid div {
	padding: var(--space-md);
	background: var(--color-paper-soft);
	border-radius: var(--radius-sm);
}

.t24-mini-grid strong,
.t24-mini-grid span {
	display: block;
}

.t24-mini-grid strong {
	color: var(--color-ink-strong);
}

.t24-mini-grid span {
	color: var(--color-muted);
	font-size: var(--text-sm);
}

.t24-section {
	padding: clamp(52px, 7vw, 92px) 0;
	border-bottom: 1px solid var(--color-rule);
}

.t24-section--split {
	background: var(--color-panel);
}

.t24-text-link {
	display: inline-flex;
	margin-top: var(--space-md);
	color: var(--color-accent);
	font-weight: 800;
	text-decoration: none;
}

.t24-text-link:hover {
	color: var(--color-accent-strong);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.t24-checklist {
	display: grid;
	gap: var(--space-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.t24-checklist li {
	padding: var(--space-md);
	background: var(--color-paper-soft);
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-sm);
	color: var(--color-ink);
}

.t24-rental {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr) auto;
	gap: var(--space-lg);
	align-items: center;
}

.t24-about {
	background: var(--color-ink-strong);
	color: var(--color-paper);
}

.t24-about h2,
.t24-about .t24-kicker {
	color: var(--color-paper);
}

.t24-about p {
	color: var(--color-paper-muted);
}

.t24-about__copy p:first-child {
	margin-top: 0;
}

.t24-contact {
	background: var(--color-paper-soft);
}

.t24-contact__grid {
	align-items: start;
}

.t24-form {
	display: grid;
	gap: var(--space-md);
	padding: clamp(20px, 4vw, 32px);
}

.t24-field {
	display: grid;
	gap: 6px;
	color: var(--color-ink-strong);
	font-weight: 760;
}

.t24-field input,
.t24-field select,
.t24-field textarea {
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1px solid var(--color-rule-strong);
	border-radius: var(--radius-xs);
	background: var(--color-paper);
	color: var(--color-ink);
	font: inherit;
}

.t24-field textarea {
	resize: vertical;
}

.t24-hp {
	position: absolute;
	left: -9999px;
}

.t24-form__status {
	margin: 0;
	color: var(--color-success);
	font-weight: 800;
}

.t24-form__status--error {
	color: var(--color-error);
}

.auto-archive,
.single-auto {
	width: min(100% - 32px, 1120px);
	margin: 0 auto;
	padding: var(--space-xl) 0;
}

.auto-archive .page-header {
	margin-bottom: var(--space-lg);
}

.auto-archive-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--space-md);
	margin: var(--space-lg) 0;
}

.auto-card {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	padding: var(--space-md);
}

.auto-card .auto-thumb img,
.single-auto .auto-featured-image img {
	width: 100%;
	border-radius: var(--radius-sm);
}

.auto-title {
	margin: 0;
	font-size: var(--text-lg);
	line-height: 1.2;
}

.auto-title a {
	color: var(--color-ink-strong);
	text-decoration: none;
}

.auto-title a:hover {
	color: var(--color-accent);
}

.auto-excerpt,
.single-auto .entry-content {
	color: var(--color-muted);
}

.auto-card .auto-cta {
	margin-top: auto;
}

.auto-cta,
.cta-box {
	margin: var(--space-md) 0;
}

.single-auto .entry-content h2 {
	color: var(--color-ink-strong);
	font-size: var(--text-xl);
}

.related-links {
	padding: var(--space-md);
	margin: var(--space-xl) 0;
}

.related-links h2 {
	margin-top: 0;
}

.pagination {
	margin: var(--space-xl) 0;
	text-align: center;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	margin: 4px;
	border: 1px solid var(--color-rule);
	border-radius: var(--radius-xs);
	color: var(--color-ink);
	text-decoration: none;
}

.pagination .page-numbers.current,
.pagination .page-numbers:hover {
	background: var(--color-accent);
	color: var(--color-on-accent);
	border-color: var(--color-accent);
}

@media (max-width: 900px) {
	.t24-hero__grid,
	.t24-service-grid,
	.t24-about__grid,
	.t24-contact__grid,
	.t24-rental {
		grid-template-columns: 1fr;
	}

	.t24-rental {
		align-items: start;
	}
}

@media (max-width: 560px) {
	.t24-actions,
	.t24-button,
	.btn-cta {
		width: 100%;
	}

	.t24-route,
	.t24-mini-grid {
		grid-template-columns: 1fr;
	}

	.t24-route i {
		width: 2px;
		height: 32px;
		margin-inline: auto;
	}

	.t24-route i::after {
		right: 50%;
		top: auto;
		bottom: 0;
		transform: translateX(50%) rotate(135deg);
	}
}

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