/* ==========================================================================
   Croos Theme – Home (Royal Tours) page
   ========================================================================== */

/* ---------- Tokens ---------- */
:root {
	--amber-50: #fffbeb;
	--amber-100: #fef3c7;
	--amber-200: #fde68a;
	--amber-400: #fbbf24;
	--amber-500: #f59e0b;
	--amber-600: #d97706;
	--amber-700: #b45309;
	--amber-900: #78350f;
	--teal-50: #f0fdfa;
	--teal-100: #ccfbf1;
	--teal-400: #2dd4bf;
	--teal-500: #14b8a6;
	--teal-600: #0d9488;
	--teal-700: #0f766e;
	--teal-900: #134e4a;
	--gray-50: #f9fafb;
	--gray-100: #f3f4f6;
	--gray-200: #e5e7eb;
	--gray-300: #d1d5db;
	--gray-400: #9ca3af;
	--gray-500: #6b7280;
	--gray-600: #4b5563;
	--gray-700: #374151;
	--gray-800: #1f2937;
	--gray-900: #111827;
	--green-50: #f0fdf4;
	--green-100: #dcfce7;
	--green-500: #22c55e;
	--green-600: #16a34a;
	--green-700: #15803d;
	--red-50: #fef2f2;
	--red-600: #dc2626;
	--red-700: #b91c1c;
	--white: #fff;
	--ink: #0a0a0a;

	--grad-amber: linear-gradient(90deg, var(--amber-500), var(--amber-600));
	--grad-amber-hover: linear-gradient(90deg, var(--amber-600), var(--amber-700));
	--grad-teal: linear-gradient(90deg, var(--teal-500), var(--teal-600));

	--font: system-ui, -apple-system, "Segoe UI", "Noto Sans", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
	--radius-sm: 0.375rem;
	--radius: 0.75rem;
	--radius-lg: 1rem;
	--radius-xl: 1.5rem;
	--shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
	--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
	--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
	--header-h: 72px;
	--ease: cubic-bezier(0.4, 0, 0.2, 1);
}

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

html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }

body.rt-page {
	margin: 0;
	font-family: var(--font);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}

/* Resets use :where() so component classes always win. */
:where(.rt-page) :where(h1, h2, h3, h4, p, figure, blockquote, dl, dd) { margin: 0; }
:where(.rt-page) :where(h1, h2, h3, h4) { font-weight: 500; line-height: 1.25; }
:where(.rt-page) :where(ul[role="list"]) { list-style: none; margin: 0; padding: 0; }
:where(.rt-page) :where(img) { display: block; max-width: 100%; height: auto; }
:where(.rt-page) :where(a) { color: inherit; text-decoration: none; }
:where(.rt-page) :where(address) { font-style: normal; }
:where(.rt-page) :where(button) { font: inherit; cursor: pointer; }

.icon { width: 1rem; height: 1rem; flex-shrink: 0; }
.icon--star { fill: var(--amber-400); color: var(--amber-400); }
.icon--lg { width: 2rem; height: 2rem; }

.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: 1rem;
	top: -3rem;
	z-index: 100;
	padding: 0.5rem 1rem;
	background: var(--amber-500);
	color: var(--white);
	border-radius: var(--radius-sm);
	transition: top 0.2s;
}
.skip-link:focus { top: 1rem; }

:focus-visible { outline: 3px solid color-mix(in srgb, var(--amber-500) 60%, transparent); outline-offset: 2px; }

.container {
	width: 100%;
	margin-inline: auto;
	padding-inline: 1rem;
}
@media (min-width: 640px)  { .container { max-width: 640px; } }
@media (min-width: 768px)  { .container { max-width: 768px; } }
@media (min-width: 1024px) { .container { max-width: 1024px; } }
@media (min-width: 1280px) { .container { max-width: 1280px; } }

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	white-space: nowrap;
	font-weight: 500;
	font-size: 0.875rem;
	line-height: 1.25rem;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	transition: all 0.2s var(--ease);
}
.btn .icon { width: 1rem; height: 1rem; }
.btn--sm { height: 2.25rem; padding: 0.5rem 1rem; }
.btn--md { padding: 0.75rem 2rem; font-size: 1rem; font-weight: 400; }
.btn--lg {
	height: 3rem;
	padding: 0 2rem;
	font-size: 1.125rem;
	border-radius: 999px;
}
.btn--lg .icon { width: 1.25rem; height: 1.25rem; }
.btn--round { border-radius: 999px; }
.btn--block { width: 100%; }
.btn--lg-square { height: 3rem; font-size: 1.125rem; }
.btn--lg-square .icon { width: 1.25rem; height: 1.25rem; }

.btn--primary { background: var(--grad-amber); color: var(--white); }
.btn--primary:hover { background: var(--grad-amber-hover); }
.btn--lg.btn--primary { box-shadow: var(--shadow-xl); }
.btn--lg.btn--primary:hover { box-shadow: var(--shadow-2xl); }

.btn--outline { background: var(--white); border-color: var(--amber-500); color: var(--amber-600); }
.btn--outline:hover { background: var(--amber-50); }

.btn--white { background: var(--white); color: var(--amber-600); }
.btn--white:hover { background: var(--amber-50); }

.btn--white-green { background: var(--white); color: var(--green-600); }
.btn--white-green:hover { background: var(--green-50); }

/* ---------- Shared section bits ---------- */
.section { padding-block: 6rem; }
.section--tint-teal { background: linear-gradient(180deg, var(--white), rgb(240 253 250 / 0.3)); }
.section--tint-amber { background: linear-gradient(180deg, var(--white), rgb(255 251 235 / 0.3), var(--white)); }
.section--tint-gray { background: linear-gradient(180deg, var(--gray-50), var(--white)); overflow: hidden; }

.section-head { text-align: center; margin-bottom: 4rem; }
.tours .section-head { margin-bottom: 3rem; }

.pill {
	display: inline-block;
	padding: 0.5rem 1rem;
	margin-bottom: 1.5rem;
	border-radius: 999px;
	font-size: 0.875rem;
	color: var(--white);
}
.pill--amber { background: var(--grad-amber); }
.pill--teal { background: var(--grad-teal); }

.section-title {
	font-size: 2.25rem;
	line-height: 1.2;
	margin-bottom: 1rem;
}
.section-lead {
	max-width: 48rem;
	margin-inline: auto;
	font-size: 1.25rem;
	line-height: 1.4;
	color: var(--gray-600);
}
@media (min-width: 768px) {
	.section-title { font-size: 3rem; }
}

.text-gradient {
	background: linear-gradient(90deg, var(--amber-400), var(--amber-600));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

@keyframes pulse { 50% { opacity: 0.5; } }
.pulse-dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--amber-400);
	animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* ---------- Header ---------- */
.site-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 50;
	padding-block: 1rem;
	background: rgb(255 255 255 / 0.95);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	transition: all 0.3s var(--ease);
}
.site-header.is-scrolled {
	padding-block: 0.75rem;
	background: var(--white);
	box-shadow: var(--shadow);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.brand {
	display: inline-flex;
	align-items: center;
	max-width: min(55vw, 18rem);
	color: var(--gray-900);
	transition: color 0.2s;
}
.brand:hover { color: var(--amber-600); }
.brand__name {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.brand--footer { margin-bottom: 1rem; }
.brand--footer { color: var(--white); }
.brand--footer:hover { color: var(--amber-400); }
.brand--footer .brand__name { font-size: 1.125rem; }

/* Mobile nav (default) */
.nav-toggle {
	display: inline-flex;
	padding: 0.5rem;
	border: 0;
	background: none;
	color: var(--gray-700);
}
.nav-toggle:hover { color: var(--amber-600); }
.nav-toggle .icon { width: 1.5rem; height: 1.5rem; }
.nav-toggle__close,
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }

.primary-nav {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	display: none;
	flex-direction: column;
	gap: 1rem;
	padding: 1rem;
	background: var(--white);
	border-top: 1px solid var(--gray-100);
	box-shadow: var(--shadow);
}
.primary-nav.is-open { display: flex; }
.primary-nav__list {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.primary-nav__list a {
	position: relative;
	display: block;
	padding: 0.5rem 0;
	color: var(--gray-700);
	transition: color 0.2s;
}
.primary-nav__list a:hover,
.primary-nav__list .current-menu-item > a { color: var(--amber-600); }
.primary-nav__actions { display: flex; flex-direction: column; gap: 0.75rem; }

@media (min-width: 1024px) {
	.nav-toggle { display: none; }
	.primary-nav,
	.primary-nav.is-open {
		position: static;
		display: flex;
		flex: 1;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		padding: 0;
		margin-left: 2rem;
		background: none;
		border: 0;
		box-shadow: none;
	}
	.primary-nav__list { flex-direction: row; gap: 2rem; margin-inline: auto; }
	.primary-nav__list a { padding: 0; }
	.primary-nav__list a::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 0;
		height: 2px;
		background: var(--amber-600);
		transition: width 0.3s var(--ease);
	}
	.primary-nav__list a:hover::after,
	.primary-nav__list .current-menu-item > a::after { width: 100%; }
	.primary-nav__actions { flex-direction: row; }
}

/* ---------- Hero ---------- */
.hero {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	overflow: hidden;
	color: var(--white);
}
.hero__media,
.hero__overlay { position: absolute; inset: 0; }
.hero__image { width: 100%; height: 100%; object-fit: cover; }
.hero__overlay {
	background: linear-gradient(135deg, rgb(19 78 74 / 0.7), rgb(120 53 15 / 0.5), rgb(0 0 0 / 0.6));
}

.hero__content {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	padding-block: calc(var(--header-h) + 2rem) 6rem;
}
.hero__body { max-width: 56rem; }

.hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	margin-bottom: 1.5rem;
	font-size: 0.875rem;
	background: rgb(245 158 11 / 0.2);
	border: 1px solid rgb(251 191 36 / 0.3);
	border-radius: 999px;
	backdrop-filter: blur(4px);
}

.hero__title {
	margin-bottom: 1.5rem;
	font-size: 3rem;
	line-height: 1.25;
}
.hero__title { font-weight: 400; }
.hero__lead {
	max-width: 42rem;
	margin-bottom: 2.5rem;
	font-size: 1.25rem;
	line-height: 1.4;
	color: var(--gray-100);
}
@media (min-width: 768px) {
	.hero__title { font-size: 4.5rem; }
	.hero__lead { font-size: 1.5rem; }
}
@media (min-width: 1024px) {
	.hero__title { font-size: 6rem; }
}

.hero__actions { display: flex; flex-direction: column; gap: 1rem; }
@media (min-width: 640px) { .hero__actions { flex-direction: row; } }

.hero__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	margin-top: 4rem;
}
.hero__stat {
	display: flex;
	flex-direction: column-reverse;
}
.hero__stat + .hero__stat {
	padding-left: 2rem;
	border-left: 1px solid rgb(255 255 255 / 0.2);
}
.hero__stat dd { margin-bottom: 0.25rem; font-size: 1.875rem; line-height: 1.2; color: var(--amber-400); }
.hero__stat dt { font-size: 0.875rem; color: var(--gray-300); }
@media (min-width: 768px) { .hero__stat dd { font-size: 2.25rem; } }

.hero__scroll {
	position: absolute;
	z-index: 2;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	color: var(--white);
	animation: bounce 2s infinite;
}
.hero__scroll .icon { width: 2rem; height: 2rem; }
@keyframes bounce {
	0%, 100% { transform: translate(-50%, 0); }
	50% { transform: translate(-50%, 10px); }
}

/* ---------- About ---------- */
.about__grid {
	display: grid;
	gap: 4rem;
	align-items: center;
}
@media (min-width: 1024px) { .about__grid { grid-template-columns: 1fr 1fr; } }

.about__media { position: relative; }
.about__image {
	width: 100%;
	height: 500px;
	object-fit: cover;
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-2xl);
}
.about__award {
	position: absolute;
	right: -0.5rem;
	bottom: -2rem;
	max-width: 20rem;
	padding: 1.5rem;
	font-size: 0.875rem;
	color: var(--gray-600);
	background: var(--white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-xl);
}
@media (min-width: 768px) { .about__award { right: -2rem; } }
.about__award-icon { display: block; margin-bottom: 0.5rem; font-size: 2.25rem; line-height: 1; }

.about__body .section-title { margin-bottom: 1.5rem; }
.about__text {
	margin-bottom: 1.5rem;
	font-size: 1.125rem;
	line-height: 1.625;
	color: var(--gray-600);
}
.about__text:last-of-type { margin-bottom: 2rem; }

.about__features { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .about__features { grid-template-columns: 1fr 1fr; } }

.feature { display: flex; gap: 1rem; }
.feature__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	color: var(--white);
	background: linear-gradient(135deg, var(--teal-400), var(--teal-600));
	border-radius: var(--radius);
}
.feature__icon .icon { width: 1.5rem; height: 1.5rem; }
.feature__title { margin-bottom: 0.25rem; font-size: 1rem; }
.feature__text { font-size: 0.875rem; color: var(--gray-600); }

/* ---------- Tours ---------- */
.tours { background: var(--white); }

.tour-grid { display: grid; gap: 2rem; }
@media (min-width: 768px)  { .tour-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .tour-grid { grid-template-columns: repeat(3, 1fr); } }

.tour-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--white);
	border: 1px solid var(--gray-200);
	border-radius: var(--radius);
	transition: box-shadow 0.3s var(--ease);
}
.tour-card:hover { box-shadow: var(--shadow-2xl); }

.tour-card__media { position: relative; height: 16rem; overflow: hidden; margin: 0; }
.tour-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgb(0 0 0 / 0.6), transparent 50%);
	opacity: 0;
	transition: opacity 0.2s;
}
.tour-card:hover .tour-card__media::after { opacity: 1; }
.tour-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s var(--ease);
}
.tour-card:hover .tour-card__image { transform: scale(1.1); }

.tour-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.5rem;
}
.tour-card__package-type { align-self: flex-start; margin-bottom: 0.75rem; }
.tour-card__title {
	margin-bottom: 0.75rem;
	font-size: 1.25rem;
	transition: color 0.2s;
}
.tour-card:hover .tour-card__title { color: var(--amber-600); }
.tour-card__desc {
	margin-bottom: 1rem;
	font-size: 0.875rem;
	line-height: 1.625;
	color: var(--gray-600);
}
.tour-card__meta {
	display: grid;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
	font-size: 0.875rem;
	color: var(--gray-600);
}
.tour-card__meta li { display: flex; align-items: center; gap: 0.5rem; }
.tour-card__meta .icon { color: var(--amber-500); }

.tour-card__footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-top: auto;
	padding-top: 1rem;
	border-top: 1px solid var(--gray-200);
}
/* ---------- Why ---------- */
.why__grid {
	display: grid;
	gap: 2rem;
	margin-bottom: 4rem;
}
@media (min-width: 768px)  { .why__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .why__grid { grid-template-columns: repeat(3, 1fr); } }

.why-card {
	position: relative;
	padding: 2rem;
	background: var(--white);
	border: 1px solid var(--gray-100);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
	transition: box-shadow 0.3s var(--ease), background 0.3s;
}
.why-card:hover {
	box-shadow: var(--shadow-2xl);
	background: linear-gradient(135deg, rgb(245 158 11 / 0.05), rgb(20 184 166 / 0.05)), var(--white);
}
.why-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	margin-bottom: 1.5rem;
	color: var(--white);
	border-radius: var(--radius-lg);
	transition: transform 0.2s var(--ease);
}
.why-card:hover .why-card__icon { transform: scale(1.1); }
.why-card__icon .icon { width: 2rem; height: 2rem; }
.why-card__icon--amber  { background: linear-gradient(135deg, #f59e0b, #d97706); }
.why-card__icon--pink   { background: linear-gradient(135deg, #ec4899, #e11d48); }
.why-card__icon--blue   { background: linear-gradient(135deg, #3b82f6, #2563eb); }
.why-card__icon--purple { background: linear-gradient(135deg, #a855f7, #9333ea); }
.why-card__icon--green  { background: linear-gradient(135deg, #22c55e, #16a34a); }
.why-card__icon--teal   { background: linear-gradient(135deg, #14b8a6, #0d9488); }
.why-card__title { margin-bottom: 0.75rem; font-size: 1.25rem; transition: color 0.2s; }
.why-card:hover .why-card__title { color: var(--amber-600); }
.why-card__text { line-height: 1.625; color: var(--gray-600); }

.trust-banner {
	padding: 3rem 1.5rem;
	text-align: center;
	color: var(--white);
	background: linear-gradient(90deg, var(--teal-600), var(--amber-600));
	border-radius: var(--radius-xl);
}
@media (min-width: 768px) { .trust-banner { padding: 3rem; } }
.trust-banner__title { margin-bottom: 1.5rem; font-size: 1.875rem; }
@media (min-width: 768px) { .trust-banner__title { font-size: 2.25rem; } }
.trust-banner__list { display: grid; gap: 2rem; }
@media (min-width: 768px) { .trust-banner__list { grid-template-columns: repeat(4, 1fr); } }
.trust-banner__list li { display: flex; flex-direction: column; }
.trust-banner__icon { margin-bottom: 0.5rem; font-size: 2.25rem; line-height: 1.2; }
@media (min-width: 768px) { .trust-banner__icon { font-size: 3rem; } }
.trust-banner__list strong { margin-bottom: 0.25rem; font-size: 1.5rem; font-weight: 400; }
.trust-banner__list span:last-child { color: var(--teal-100); }

/* ---------- Testimonials ---------- */
.testimonials__grid {
	display: grid;
	gap: 2rem;
	margin-bottom: 3rem;
}
@media (min-width: 768px)  { .testimonials__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .testimonials__grid { grid-template-columns: repeat(3, 1fr); } }

.testimonial {
	height: 100%;
	padding: 1.5rem;
	background: var(--white);
	border: 1px solid var(--gray-200);
	border-radius: var(--radius);
	transition: box-shadow 0.3s;
}
.testimonial:hover { box-shadow: var(--shadow-xl); }
.testimonial__head { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.testimonial__avatar {
	width: 3.5rem;
	height: 3.5rem;
	object-fit: cover;
	border-radius: 50%;
	box-shadow: 0 0 0 2px var(--amber-400);
}
.testimonial__who { flex: 1; }
.testimonial__stars { display: flex; gap: 0.25rem; margin-bottom: 0.25rem; }
.testimonial__name { font-size: 1rem; }
.testimonial__location { font-size: 0.875rem; color: var(--gray-500); }
.testimonial__quote-icon { width: 2rem; height: 2rem; color: var(--amber-200); }
.testimonial__quote {
	line-height: 1.625;
	color: var(--gray-700);
}

.cta-band {
	display: flex;
	justify-content: center;
	padding: 2rem 1rem;
	color: var(--white);
	background: var(--grad-amber);
	border-radius: var(--radius-xl);
}
.cta-band .btn { white-space: normal; text-align: center; }

/* ---------- Contact ---------- */
.contact__grid {
	display: grid;
	gap: 2rem;
	max-width: 80rem;
	margin-inline: auto;
}
@media (min-width: 1024px) {
	.contact__grid { grid-template-columns: 2fr 1fr; align-items: start; }
}

.card {
	padding: 1.5rem;
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow-xl);
}
.card--teal  { color: var(--white); background: linear-gradient(135deg, var(--teal-600), var(--teal-700)); }
.card--green { color: var(--white); background: linear-gradient(135deg, var(--green-500), var(--green-600)); }
.card--amber { color: var(--white); background: linear-gradient(135deg, var(--amber-500), var(--amber-600)); }
.card--center { text-align: center; }

.card__title { margin-bottom: 1rem; font-size: 1.25rem; }
.card__title--icon { display: flex; align-items: center; gap: 0.75rem; }
.card__title--sm { margin-bottom: 0.5rem; font-size: 1rem; }
.card--amber .card__title { margin-bottom: 0.5rem; }
.card__text { margin-bottom: 1rem; }
.card--green .card__text { color: var(--green-100); }
.card__text--sm { font-size: 0.875rem; color: var(--amber-100); }
.card__text--muted { margin: 0; font-size: 0.875rem; color: var(--gray-600); }
.card__big { font-size: 1.875rem; line-height: 2.25rem; }
.card__emoji { display: block; margin-bottom: 0.5rem; font-size: 2.25rem; line-height: 1.2; }

.contact__aside { display: grid; gap: 1.5rem; }

.contact__form-card { padding: 2rem; }
.contact__form-title { margin-bottom: 1.5rem; font-size: 1.5rem; }

.contact__map-title { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; font-size: 1.25rem; }
.contact__map-title .icon { width: 1.25rem; height: 1.25rem; color: var(--teal-600); }
.contact__map-frame { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-sm); }
.contact__map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

@media (min-width: 1024px) {
	.contact__form-card { grid-column: 1; grid-row: 1; }
	.contact__aside     { grid-column: 2; grid-row: 1 / span 2; }
	.contact__map       { grid-column: 1; grid-row: 2; }
	.contact__map-frame { aspect-ratio: 16 / 9; }
}

.inquiry-form { display: grid; gap: 1.5rem; }
.form-row { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .form-row { grid-template-columns: 1fr 1fr; } }
.field { display: grid; gap: 0.5rem; }
.field label { font-size: 0.875rem; font-weight: 500; line-height: 1; }
.field input,
.field textarea,
.newsletter__form input {
	width: 100%;
	min-width: 0;
	padding: 0.25rem 0.75rem;
	font: inherit;
	font-size: 0.875rem;
	color: inherit;
	background: #f3f3f5;
	border: 1px solid var(--gray-300);
	border-radius: var(--radius-sm);
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.field input { height: 2.25rem; }
.field textarea { min-height: 4rem; padding-block: 0.5rem; resize: vertical; }
.field input:focus,
.field textarea:focus {
	border-color: var(--amber-500);
	box-shadow: 0 0 0 3px rgb(245 158 11 / 0.3);
}
.field input::placeholder,
.field textarea::placeholder { color: #717182; }

.field input[aria-invalid="true"],
.field select[aria-invalid="true"],
.field textarea[aria-invalid="true"] { border-color: var(--red-600); }
.field-error { margin: 0; font-size: 0.8125rem; line-height: 1.4; color: var(--red-600); }

.form-status { font-size: 0.875rem; color: var(--teal-600); }
.form-status:empty { display: none; }
.form-status.is-error { padding: 0.75rem 1rem; background: var(--red-50); border-radius: var(--radius-sm); color: var(--red-700); }
.form-status.is-success { padding: 0.75rem 1rem; background: var(--green-50); border-radius: var(--radius-sm); color: var(--green-700); }

/* Spam honeypot: hidden from people, still filled in by bots. */
.croos-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.contact-list { display: grid; gap: 1rem; }
.contact-list__item { display: flex; align-items: flex-start; gap: 0.75rem; }
.contact-list__item .icon { width: 1.25rem; height: 1.25rem; margin-top: 0.25rem; }
.contact-list__item span { display: flex; flex-direction: column; gap: 0.25rem; }
.contact-list__item small { font-size: 0.875rem; color: var(--teal-100); }
.contact-list a:hover { text-decoration: underline; }

/* ---------- Footer ---------- */
.site-footer {
	color: var(--white);
	background: linear-gradient(180deg, var(--gray-900), #000);
}

.newsletter { border-bottom: 1px solid var(--gray-800); }
.newsletter__inner { max-width: 56rem; padding-block: 3rem; text-align: center; }
.newsletter__title { margin-bottom: 1rem; font-size: 1.875rem; }
.newsletter__text { margin-bottom: 1.5rem; color: var(--gray-400); }
.newsletter__form {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	gap: 0.75rem;
	max-width: 28rem;
	margin-inline: auto;
}
@media (min-width: 640px) { .newsletter__form { flex-direction: row; } }
.newsletter__form input {
	flex: 1;
	height: 2.25rem;
	color: var(--white);
	background: rgb(255 255 255 / 0.1);
	border-color: rgb(255 255 255 / 0.2);
}
.newsletter__form input::placeholder { color: var(--gray-400); }
.newsletter__form input:focus { border-color: var(--amber-500); }
.newsletter__form .form-status { flex-basis: 100%; color: var(--amber-400); }

.site-footer__main { padding-block: 3rem; }
.site-footer__grid {
	display: grid;
	gap: 2rem;
	margin-bottom: 3rem;
}
@media (min-width: 768px)  { .site-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: repeat(4, 1fr); } }

.site-footer__about { margin-bottom: 1rem; font-size: 0.875rem; color: var(--gray-400); }
.social { display: flex; gap: 0.75rem; }
.social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	background: rgb(255 255 255 / 0.1);
	border-radius: 50%;
	transition: background 0.2s;
}
.social a:hover { background: var(--amber-500); }
.social .icon { width: 1.25rem; height: 1.25rem; }

.site-footer__heading { margin-bottom: 1rem; font-size: 1rem; color: var(--amber-500); }
.site-footer__links { display: grid; gap: 0.5rem; font-size: 0.875rem; color: var(--gray-400); }
.site-footer__links a,
.site-footer__contact a,
.site-footer__legal a { transition: color 0.2s; }
.site-footer__links a:hover,
.site-footer__contact a:hover,
.site-footer__legal a:hover { color: var(--amber-400); }

.site-footer__contact { display: grid; gap: 0.75rem; font-size: 0.875rem; color: var(--gray-400); }
.site-footer__contact p { display: flex; align-items: center; gap: 0.5rem; }
.site-footer__contact p:first-child { align-items: flex-start; }
.site-footer__contact .icon { width: 1.25rem; height: 1.25rem; color: var(--amber-500); }
.site-footer__license {
	margin-top: 1rem;
	padding-top: 1rem;
	font-size: 0.75rem;
	color: var(--gray-500);
	border-top: 1px solid var(--gray-800);
}

.site-footer__bottom {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 2rem;
	font-size: 0.875rem;
	color: var(--gray-400);
	border-top: 1px solid var(--gray-800);
}
@media (min-width: 768px) { .site-footer__bottom { flex-direction: row; } }
.site-footer__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; }

.whatsapp-float {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 60;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	color: var(--white);
	background: #25d366;
	border-radius: 50%;
	box-shadow: var(--shadow-xl);
	transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.whatsapp-float:hover {
	color: var(--white);
	background: #1da851;
	transform: translateY(-2px);
}
.whatsapp-float:focus-visible { outline-color: var(--white); }
.whatsapp-float svg { width: 1.75rem; height: 2rem; }
@media (min-width: 768px) {
	.whatsapp-float { right: 2rem; bottom: 2rem; }
}

/* ---------- Reveal on scroll ---------- */
.js [data-reveal] {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
}
.js [data-reveal].is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
	.js [data-reveal] { opacity: 1; transform: none; }
}
