/*
Theme Name: ASAFEVOYAGE Lite
Theme URI: https://example.com/asafevoyage-lite
Author: Projeto Simplificado
Author URI: https://example.com
Description: Tema WordPress leve com Hero Banner em vídeo e seções enriquecidas (Destaques, Frota, Itinerários, Equipa, Sobre Nós) + animações suaves e melhorias de navegação.
Version: 0.5.31
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: asafevoyage-lite
Tags: minimal, clean, responsive
*/

/* Reset e base mínima */
html, body {margin:0; padding:0;}
html {scroll-behavior:smooth;}
:root {
	--color-bg:#0d0d0f;
	--color-surface:#141417;
	--color-surface-alt:#1d1d22;
	--color-accent:#d4af37; /* gold luxo */
	--color-accent-hover:#c19a2f;
	--color-text:#e9e9ec;
	--color-text-muted:#a5a7ad;
	--radius-sm:4px;
	--radius-md:8px;
	--shadow-sm:0 2px 4px rgba(0,0,0,.4);
	--shadow-md:0 6px 18px -4px rgba(0,0,0,.6);
	--transition:0.35s cubic-bezier(.4,.18,.2,1);
	--font-base:'Poppins', Arial, sans-serif;
	--font-display:'Playfair Display', serif;
}
body {font-family: var(--font-base); line-height:1.5; color:var(--color-text); background:var(--color-bg); -webkit-font-smoothing:antialiased;}
a {color:var(--color-accent); text-decoration:none; transition:color .25s;}
a:hover {color:var(--color-accent-hover); text-decoration:none;}

/* Keyboard focus ring for accessibility */
:focus-visible { outline: 3px solid rgba(212,175,55,.95); outline-offset:3px; border-radius:6px; }
button:focus-visible, a:focus-visible { outline: 3px solid rgba(212,175,55,.95); outline-offset:3px; border-radius:6px; }
/* Slightly larger ring for primary interactive elements */
.nav-toggle:focus-visible, .theme-toggle:focus-visible { outline: 3px solid rgba(212,175,55,1); outline-offset:4px; border-radius:8px; }

/* Layout simples */
.site-header {padding:3px 0; background:rgba(13,13,15,.85); backdrop-filter:blur(8px); position:sticky; top:0; z-index:50; transition:var(--transition);} 
.site-header.scrolled {box-shadow:0 4px 12px -2px rgba(0,0,0,.6); background:rgba(13,13,15,.92);}
.site-header .branding {font-size:1.6rem; font-weight:600; font-family:var(--font-display); letter-spacing:.5px;}
.site-logo img {height:48px; display:block; width:auto; filter:drop-shadow(0 2px 4px rgba(0,0,0,.6));}
.site-logo img {transition:height .3s ease;}
@media (min-width: 761px){
	.site-logo img {height:100px;}
}
@media (max-width: 760px){
	.site-logo img {height:90px;}
}
.site-footer {padding:40px 0; background:#0b0b0d; color:var(--color-text-muted); margin-top:40px; border-top:1px solid #1e1e23;}
.container {max-width:1180px; margin:0 auto; padding:0 32px;}
/* Light mode header/footer overrides */
body[data-theme="light"] .site-header {background:#ffffff; backdrop-filter:none; box-shadow:0 2px 6px rgba(0,0,0,.08);}
body[data-theme="light"] .site-header.scrolled {background:#ffffff; box-shadow:0 4px 14px -4px rgba(0,0,0,.18);}
/* Light mode: branding + nav links (desktop) in black for better contrast */
body[data-theme="light"] .site-header .branding {color:#000000;}
@media (min-width:761px){
	body[data-theme="light"] .primary-nav a {color:#000000;}
	body[data-theme="light"] .primary-nav a:hover {color:var(--color-accent);} 
}
body[data-theme="light"] .primary-nav a:hover {color:var(--color-accent);} 
body[data-theme="light"] .nav-toggle {border-color:rgba(0,0,0,.18); color:#222325;}
body[data-theme="light"] .nav-toggle .bars span {background:#222325;}
body[data-theme="light"] .site-footer {background:#ffffff; color:#5b5e63; border-top:1px solid rgba(0,0,0,.12);} 
body[data-theme="light"] .site-footer a {color:#222325;}
body[data-theme="light"] .site-footer a:hover {color:var(--color-accent);} 
body[data-theme="light"] .site-footer .social-links a {background:none; color:var(--color-accent); border-color:var(--color-accent);} 
body[data-theme="light"] .site-footer .social-links a:hover {background:none; color:var(--color-accent-hover); border-color:var(--color-accent-hover);} 
/* Optional: adjust testimonial dots and subtle surfaces in light */
body[data-theme="light"] .testimonial-dot {background:#dcdce0; border-color:#bcbfc4;}
body[data-theme="light"] .testimonial-arrow {background:#ffffff; color:#222325; border-color:rgba(0,0,0,.12);} 
body[data-theme="light"] .testimonial-arrow:hover {background:var(--color-accent); color:#111;} 
/* Ensure cards readability on light if needed later
body[data-theme="light"] .card, 
body[data-theme="light"] .highlight-item, 
body[data-theme="light"] .fleet-vehicles .vehicle, 
body[data-theme="light"] .itinerary-item, 
body[data-theme="light"] .team-member, 
body[data-theme="light"] .testimonial-card {color:#222325;} */
/* Light mode: clarear cards de features e demais blocos para legibilidade */
body[data-theme="light"] .card,
body[data-theme="light"] .highlight-item,
body[data-theme="light"] .fleet-vehicles .vehicle,
body[data-theme="light"] .itinerary-item,
body[data-theme="light"] .team-member,
body[data-theme="light"] .testimonial-card,
body[data-theme="light"] .about-features li,
body[data-theme="light"] .service-item,
body[data-theme="light"] .service-toggle,
body[data-theme="light"] .service-toggle[aria-expanded="true"],
body[data-theme="light"] .reservation-form input,
body[data-theme="light"] .reservation-form textarea,
body[data-theme="light"] .reservation-form button,
body[data-theme="light"] .lux-card-lift {
	background:#ffffff;
	color:#222325;
	border:1px solid rgba(212,175,55,.55); /* dourado suave */
	box-shadow:0 2px 6px rgba(0,0,0,.08);
}
/* Hover em light mantém estética luxuosa com leve destaque */
body[data-theme="light"] .card:hover,
body[data-theme="light"] .highlight-item:hover,
body[data-theme="light"] .fleet-vehicles .vehicle:hover,
body[data-theme="light"] .itinerary-item:hover,
body[data-theme="light"] .team-member:hover,
body[data-theme="light"] .testimonial-card:hover,
body[data-theme="light"] .about-features li:hover,
body[data-theme="light"] .service-item:hover,
body[data-theme="light"] .reservation-form button:hover {
	transform:translateY(-4px);
	box-shadow:0 6px 18px -4px rgba(0,0,0,.16);
	border-color:rgba(212,175,55,.8);
}
/* Ícone dentro do .about-features li em light: fundo dourado claro com contraste */
body[data-theme="light"] .about-features .feature-icon {
	background:linear-gradient(120deg,var(--color-accent) 0%, #f7e7b5 85%);
	color:#111;
	box-shadow:0 2px 6px -2px rgba(0,0,0,.25);
}
/* Garantir que o gradiente escuro é removido dos itens de features no light mode */
body[data-theme="light"] .about-features li {background:#ffffff;}
/* Texto secundário dentro das cards em light (detalhes) */
body[data-theme="light"] .vehicle-details,
body[data-theme="light"] .itinerary-details,
body[data-theme="light"] .testimonial-role,
body[data-theme="light"] .about-intro p,
body[data-theme="light"] .itinerary-item .itinerary-details,
body[data-theme="light"] .team-member p,
body[data-theme="light"] .card p {color:#5b5e63;}

/* Hero Banner */
.hero-banner {
	position:relative;
	width:100%;
	overflow:hidden;
	display:flex;
	align-items:center;
	justify-content:center;
	border-bottom:1px solid #1e1e23;
	/* Occupy the full viewport height minus the header (kept in --site-header-offset by JS).
	   This ensures the header remains visible and the video fills the rest of the screen. */
	height: calc(100vh - var(--site-header-offset, 0px) - env(safe-area-inset-top, 0px));
	/* legacy WebKit fallback */
	height: calc(100vh - var(--site-header-offset, 0px) - constant(safe-area-inset-top));
}
.hero-banner img {position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.hero-banner video.hero-video {
	/* Keep the video in normal flow so we can size it responsively.
	   Removed absolute positioning to allow the video to determine
	   the banner height. On desktop we cap it to 92vh via media query below. */
	position:static; /* removed absolute positioning */
	width:100%;
	height:auto; /* let aspect-ratio determine height unless overridden */
	max-height:92vh; /* safe default fallback */
	object-fit:cover; /* preserves aspect while filling container (may crop edges) */
	z-index:0;
	background:#000;
	display:block;
}
/* Altura reduzida no mobile: forçar hero para 35vh para não ocupar demasiado e mostrar conteúdo abaixo rapidamente */
@media (max-width:760px){
	.hero-banner {height:35vh !important; min-height:35vh !important;}
	.hero-banner video.hero-video {height:100%; max-height:35vh;}
}
.hero-banner video.hero-video::-webkit-media-controls {display:none !important;}
.hero-banner::before {content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.65) 100%); z-index:1; pointer-events:none;}
.hero-banner .hero-text {
	position:relative; /* allow normal flow over the video element */
	z-index:2;
	text-align:center;
	color:#fff;
	padding:8% 6%;
	max-width:90%;
	box-sizing:border-box;
	display:flex;
	align-items:center;
	justify-content:center;
}
.hero-banner .hero-title {font-size:3rem; margin:0 0 12px; text-shadow:0 6px 18px rgba(0,0,0,.55); font-family:var(--font-display); font-weight:600; letter-spacing:.5px; line-height:1.05;}

/* Conteúdo padrão */
main {padding:0px 0;}
main h2 {margin-top:0; font-size:2rem;}

/* Footer simples */
.site-footer {text-align:center; font-size:.9rem;}

/* Navegação */
.primary-nav {margin-top:10px;}
.primary-nav .menu, .primary-nav ul {list-style:none; padding:0; margin:0; display:flex; gap:18px; flex-wrap:wrap;}
.primary-nav a {color:var(--color-text); font-size:.75rem; text-transform:uppercase; letter-spacing:.15em; font-weight:600; position:relative; padding:6px 4px;}
.nav-toggle {display:none;} /* escondido em desktop */
.primary-nav .nav-close { position:absolute; top:12px; right:12px; background:transparent; border:1px solid rgba(255,255,255,0.06); color:var(--color-text); width:52px; height:52px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .22s var(--lux-timing), box-shadow .22s var(--lux-timing), background .22s var(--lux-timing); z-index:160; }
.primary-nav .nav-close svg { width:20px; height:20px; display:block; transition: transform .18s var(--lux-timing), stroke .22s var(--lux-timing); transform-origin:center center; }
.primary-nav .nav-close:hover { background:linear-gradient(180deg, rgba(212,175,55,0.08), rgba(212,175,55,0.04)); color:var(--color-accent); transform:translateY(-2px); box-shadow:0 8px 20px -8px rgba(212,175,55,0.14); border-color:rgba(212,175,55,0.12); }
.primary-nav .nav-close:hover svg { transform:scale(1.07) rotate(0.01deg); }
.primary-nav .nav-close:focus-visible { outline:3px solid rgba(212,175,55,0.95); outline-offset:3px; }
.primary-nav .nav-close { box-sizing: border-box; border-width:1px; }
.primary-nav .nav-close:focus-visible { /* emulate thicker border without layout shift */
	box-shadow: inset 0 0 0 2px #111, 0 8px 20px -8px rgba(212,175,55,0.14);
	transform: translateY(-2px);
}
.primary-nav .nav-close svg g { transition: stroke-width .22s var(--lux-timing); }
.primary-nav a::after {content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--color-accent); transition:var(--transition);}
.primary-nav a:hover {color:var(--color-accent);}
.primary-nav a:hover::after {width:100%;}

/* Seções gerais */
.section {padding:72px 0; border-top:1px solid #1e1e23; position:relative;}
.section:first-of-type {border-top:none;}
.section h2 {margin:0 0 32px; font-size:2.2rem; font-family:var(--font-display); font-weight:600; letter-spacing:.5px; background:var(--lux-heading-gradient); -webkit-background-clip:text; background-clip:text; color:transparent;}
/* Light mode heading readability boost */
body[data-theme="light"] .section h2 {text-shadow:0 1px 2px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.06);}
.cards {display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.lux-card-base {background:var(--color-surface); padding:18px; border-radius:var(--radius-md); box-shadow:var(--shadow-sm); border:1px solid #1e1e23; position:relative; transition:var(--transition);} 
.lux-card-base:hover {transform:translateY(-4px); box-shadow:var(--shadow-md);} 
.lux-card-base:focus-visible {outline:2px solid var(--color-accent); outline-offset:3px; box-shadow:0 0 0 4px rgba(212,175,55,.25);} 
.card, .highlight-item, .fleet-vehicles .vehicle, .itinerary-item, .team-member, .testimonial-card, .service-item {background:var(--color-surface); padding:18px; border-radius:var(--radius-md); box-shadow:var(--shadow-sm); border:1px solid #1e1e23; position:relative; transition:var(--transition);} 
/* Hover elevação base */
.card:hover, .highlight-item:hover, .fleet-vehicles .vehicle:hover, .itinerary-item:hover, .team-member:hover, .testimonial-card:hover, .service-item:hover {transform:translateY(-4px); box-shadow:var(--shadow-md);} 
/* Progressive enhancement: se o navegador suportar :has() aplica sombra apenas quando há wrapper media (refina highlight) */
@supports(selector(.highlight-item:has(.highlight-media-wrap))) {
	.highlight-item:has(.highlight-media-wrap):hover {box-shadow:var(--shadow-md);}
}
.card h3 {margin:0 0 10px; font-size:1.1rem;} 
/* Variante lux gradiente (apenas dark) */
.lux-card-lift {background:linear-gradient(145deg,rgba(20,20,24,.92) 0%, rgba(28,28,32,.92) 100%); border:1px solid #222228;} 
.lux-card-lift:hover {border-color:var(--color-accent);} 
.highlight-items {display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.highlight-item {text-align:center; background:var(--color-surface); padding:18px; border-radius:var(--radius-md); box-shadow:var(--shadow-sm); border:1px solid #1e1e23; transition:var(--transition);}
.highlight-item:hover {transform:translateY(-4px); box-shadow:var(--shadow-md);}

/* Card CTA affordance: shows on hover (desktop) and always visible on mobile */
.card-cta { position:absolute; right:18px; bottom:18px; background:rgba(0,0,0,0.08); color:var(--color-text); padding:8px 12px; border-radius:999px; font-size:.9rem; font-weight:700; letter-spacing:.12em; display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,0.06); transition:transform .18s var(--lux-timing), opacity .18s var(--lux-timing); opacity:1; transform:none; z-index:10; }
.card-cta .cta-text { color:inherit; }

/* Make CTA visible on hover or focus-within for desktop */
@media (min-width: 761px){
	.lux-card-base { position:relative; }
	/* Desktop ajuste: manter CTA visível para permitir clique imediato; remover ocultação no :hover */
	/* .lux-card-base:hover .card-cta, .lux-card-base:focus-within .card-cta { opacity:0; transform:translateY(6px); pointer-events:none; } */
}

/* On mobile always show CTA (touch affordance) */
@media (max-width: 760px){
	.card-cta { opacity:1; transform:none; background:linear-gradient(90deg, rgba(212,175,55,0.12), rgba(212,175,55,0.06)); color:#111; border-color:rgba(0,0,0,0.06); }
}

/* When a card is programmatically opened (mobile click), show details and hide CTA */
.lux-card-base.is-open .card-cta,
.card.is-open .card-cta,
.highlight-item.is-open .card-cta,
.fleet-vehicles .vehicle.is-open .card-cta,
.itinerary-item.is-open .card-cta,
.team-member.is-open .card-cta,
.testimonial-card.is-open .card-cta { opacity:0; transform:translateY(6px); pointer-events:none; }

/* Generic reveal-on-open: when a card has .is-open make its details visible (mirrors :hover behavior) */
.lux-card-base.is-open .vehicle-details,
.lux-card-base.is-open .itinerary-details,
.lux-card-base.is-open .team-bio,
.lux-card-base.is-open .highlight-desc,
.card.is-open .vehicle-details,
.card.is-open .itinerary-details,
.card.is-open .team-bio,
.card.is-open .highlight-desc,
.fleet-vehicles .vehicle.is-open .vehicle-details,
.itinerary-item.is-open .itinerary-details,
.team-member.is-open p,
.highlight-item.is-open .highlight-desc {
	max-height: 220px !important;
	opacity: 1 !important;
}

/* Inner close button shown when a card is open (mobile friendly) */
.card-inner-close {
	position: absolute;
	top: 10px;
	right: 10px;
	background: transparent;
	border: 1px solid rgba(255,255,255,0.06);
	color: var(--color-text);
	width: 40px;
	height: 40px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 30;
	transition: transform .16s var(--lux-timing), background .16s var(--lux-timing);
}
.card-inner-close svg { width:18px; height:18px; display:block; stroke:currentColor; }
.lux-card-base.is-open .card-inner-close { opacity:1; pointer-events:auto; }
.card-inner-close:hover { background: linear-gradient(180deg, rgba(212,175,55,0.08), rgba(212,175,55,0.04)); color:var(--color-accent); transform:translateY(-2px); }
.lux-card-base .card-inner-close { opacity:0; pointer-events:none; }
/* Fleet: make hover/focus border match luxury accent (like other cards) */
.fleet-vehicles .vehicle:hover,
.fleet-vehicles .vehicle:focus-within {
	border-color: var(--color-accent);
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
}
.fleet-vehicles .vehicle:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px rgba(212,175,55,.12);
}

/* Brief vehicle quick description (moved from inline styles) */
.vehicle-quick {
	color: var(--color-text-muted);
	margin-top: 6px;
	font-size: .95rem;
}

/* Hide the nav close affordance on wider screens (desktop) where the nav is visible */
@media (min-width: 761px) {
	.primary-nav .nav-close { display: none; }
}
.highlight-image {width:100%; height:160px; object-fit:cover; border-radius:4px; margin-bottom:10px;}
.highlight-media-wrap {position:relative; overflow:hidden; border-radius:8px;}
.highlight-image {display:block; width:100%; height:180px; object-fit:cover; aspect-ratio:16/10;}
.highlight-media-wrap::after {content:""; position:absolute; top:0; left:-60%; width:50%; height:100%; background:linear-gradient(115deg, rgba(255,255,255,0.0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0.0) 100%); transform:skewX(-25deg); opacity:0; pointer-events:none;}
.highlight-item:hover .highlight-media-wrap::after {animation:highlightShine 1.2s ease forwards;}
@keyframes highlightShine {0% {left:-60%; opacity:0;} 15% {opacity:.25;} 50% {left:120%; opacity:.35;} 100% {left:130%; opacity:0;}}
.highlight-item:hover .highlight-image {transform:scale(1.04); filter:brightness(1.05) saturate(1.08);} 
.highlight-image {transition:transform .9s cubic-bezier(.16,.7,.3,1), filter .7s ease;}
.fleet-vehicles {display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.fleet-vehicles .vehicle {background:var(--color-surface); padding:18px; border-radius:var(--radius-md); box-shadow:var(--shadow-sm); border:1px solid #1e1e23; transition:var(--transition);}
.fleet-vehicles .vehicle:hover {transform:translateY(-4px); box-shadow:var(--shadow-md);}
.vehicle-image {width:100%; height:180px; object-fit:cover; border-radius:4px; margin-bottom:10px;}
.vehicle-details {margin-top:10px; font-size:.75rem; line-height:1.4; color:var(--color-text-muted); max-height:0; overflow:hidden; transition:max-height .8s cubic-bezier(.34,.2,.2,1), opacity .6s ease; opacity:0;}
.vehicle:hover .vehicle-details, .vehicle:focus .vehicle-details {max-height:220px; opacity:1;}
.itineraries-list {display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.itinerary-item {background:var(--color-surface); padding:18px; border-radius:var(--radius-md); box-shadow:var(--shadow-sm); border:1px solid #1e1e23; transition:var(--transition);}
.itinerary-item:hover {transform:translateY(-4px); box-shadow:var(--shadow-md);}
.itinerary-image {width:100%; height:180px; object-fit:cover; border-radius:4px; margin-bottom:10px;}
.itinerary-details {margin-top:10px; font-size:.75rem; line-height:1.4; color:var(--color-text-muted); max-height:0; overflow:hidden; transition:max-height .8s cubic-bezier(.34,.2,.2,1), opacity .6s ease; opacity:0;}
.itinerary-item:hover .itinerary-details, .itinerary-item:focus .itinerary-details {max-height:220px; opacity:1;}
.social-links a {display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:var(--color-surface); color:var(--color-accent); font-size:0; position:relative; box-shadow:var(--shadow-sm); transition:var(--transition); border:1px solid #1e1e23;}
.social-links a:hover {background:var(--color-accent); color:#111; transform:translateY(-3px); box-shadow:var(--shadow-md);} 
.social-links a svg {width:20px; height:20px;}
.sr-only {position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
.service-box:hover {transform:translateY(-4px); box-shadow:var(--shadow-md);}
.team-members {display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.team-member {background:var(--color-surface); padding:18px; border-radius:var(--radius-md); text-align:center; box-shadow:var(--shadow-sm); border:1px solid #1e1e23; transition:var(--transition);}
.team-member:hover {transform:translateY(-4px); box-shadow:var(--shadow-md);}
.team-photo {width:100%; height:140px; object-fit:contain; border-radius:50%; margin-bottom:12px;}
.team-media-wrap {position:relative; overflow:hidden; border-radius:50%; width:160px; height:160px; margin:0 auto 12px;}
.team-photo {display:block; width:100%; height:100%; object-fit:cover; border-radius:50%;}
.fleet-list {list-style:none; padding:0; margin:0; display:flex; gap:15px; flex-wrap:wrap;}
.fleet-list li {background:#f0f0f0; padding:10px 14px; border-radius:4px; font-size:.9rem;}
.testimonials-section blockquote {margin:0; background:var(--color-surface); padding:32px; border-left:4px solid var(--color-accent); font-style:italic; border-radius:0 var(--radius-md) var(--radius-md) 0; box-shadow:var(--shadow-sm);}
.testimonials-section cite {display:block; margin-top:10px; font-style:normal; font-weight:bold;}

/* Testimonials (multi-card) */
.testimonials-grid {display:grid; gap:28px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); position:relative; overflow:hidden;}
.testimonial-card {background:var(--color-surface); padding:24px; border-radius:var(--radius-md); position:relative; box-shadow:var(--shadow-sm); border:1px solid #1e1e23; display:flex; flex-direction:column; gap:14px; transition:var(--transition);}
.services-full-accordion .service-item {transition:var(--transition);}
.services-full-accordion .service-item + .service-item {margin-top:4px;}
.service-toggle {all:unset; display:flex; width:100%; cursor:pointer; align-items:center; justify-content:space-between; padding:16px 20px; font-weight:600; font-size:.95rem; letter-spacing:.5px; font-family:var(--font-base);}
.service-toggle:focus {outline:2px solid var(--color-accent); outline-offset:2px;}
.service-toggle:focus-visible {outline:2px solid var(--color-accent); outline-offset:3px; box-shadow:0 0 0 4px rgba(212,175,55,.2);} 
.service-toggle[aria-expanded="true"] {background:var(--color-surface-alt);}
.service-toggle[aria-expanded="true"] .service-indicator {transform:rotate(180deg);} 
.service-indicator {transition:var(--transition); font-size:1.2rem; margin-right:20px;} /* espaço para não colar à borda direita */
.service-indicator {display:flex; align-items:center; justify-content:center; width:32px; margin-left:12px;}
.service-toggle .service-title {flex:1;}
.service-toggle {gap:6px;}
.service-indicator svg {display:block;}
.service-indicator .icon-minus {display:none;}
.service-toggle[aria-expanded="true"] .service-indicator .icon-plus {display:none;}
.service-toggle[aria-expanded="true"] .service-indicator .icon-minus {display:block;}
.service-panel {max-height:0; overflow:hidden; padding:0 20px; transition:max-height .5s ease, opacity .4s ease; opacity:0;}
.service-panel-inner {animation:accordionFade .4s ease;}
.service-panel-inner {padding:0 0 18px;}
.service-toggle[aria-expanded="true"] + .service-panel {opacity:1;}
@media (prefers-reduced-motion: reduce) {.service-panel {transition:none;}}
@keyframes accordionFade {from {opacity:0; transform:translateY(-6px);} to {opacity:1; transform:translateY(0);} }

/* Testimonials slider base */
.testimonials-track {display:flex; width:100%; transition:transform .7s cubic-bezier(.4,.18,.2,1); will-change:transform; /* width updated dynamically via JS */}
.testimonials-track .testimonial-card {flex:0 0 auto; opacity:.35; transform:scale(.94); transition:opacity .5s ease, transform .5s ease; /* width (flex-basis) injected inline by JS */}
.testimonials-track .testimonial-card.active {opacity:1; transform:scale(1);} 
.testimonial-slider-controls {display:flex; gap:12px; justify-content:center; margin-top:28px;}
.testimonial-slider-controls {align-items:center;}
.testimonial-dots-wrapper {display:flex; gap:12px;}
.testimonial-arrow {background:var(--color-surface); color:var(--color-text); border:1px solid #2d2d33; width:42px; height:42px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; font-size:22px; line-height:1; box-shadow:var(--shadow-sm); transition:var(--transition);}
.testimonial-arrow:hover {background:var(--color-accent); color:#111; transform:translateY(-3px); box-shadow:var(--shadow-md);} 
.testimonial-arrow:focus {outline:2px solid var(--color-accent); outline-offset:2px;}
.testimonial-arrow:focus-visible {outline:2px solid var(--color-accent); outline-offset:2px; box-shadow:0 0 0 4px rgba(212,175,55,.25);} 
.testimonial-arrow.prev {order:0;}
.testimonial-dots-wrapper {order:1;}
.testimonial-arrow.next {order:2;}
.testimonial-dot {width:12px; height:12px; border-radius:50%; background:#333; border:1px solid #555; cursor:pointer; transition:var(--transition);} 
.testimonial-dot.active {background:var(--color-accent); border-color:var(--color-accent);} 
.testimonial-dot:focus-visible {outline:2px solid var(--color-accent); outline-offset:3px; box-shadow:0 0 0 4px rgba(212,175,55,.25);} 
.testimonial-dot {position:relative; overflow:hidden;}
.testimonial-dot .dot-progress {position:absolute; left:0; top:0; height:100%; width:0%; background:linear-gradient(90deg,var(--color-accent) 0%,#f7e7b5 100%); border-radius:inherit;}
.testimonial-card:hover {transform:translateY(-4px); box-shadow:var(--shadow-md);}
.testimonial-header {display:flex; align-items:center; gap:14px;}
.testimonial-avatar {width:64px; height:64px; border-radius:50%; object-fit:cover; border:2px solid var(--color-accent);}
.testimonial-name {font-weight:600; font-size:1rem; margin:0;}
.testimonial-role {font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--color-text-muted); margin:0;}
.testimonial-text {font-size:.9rem; line-height:1.5; margin:0; color:var(--color-text);}
.testimonial-quote {position:absolute; top:12px; right:18px; font-size:44px; line-height:1; color:rgba(212,175,55,.18); font-family:var(--font-display); pointer-events:none;}

/* Contact icons */
.contact-icon {display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; background:var(--color-surface); border:1px solid #1e1e23; border-radius:4px; margin-right:8px; color:var(--color-accent); box-shadow:var(--shadow-sm);}
.contact-icon svg {width:14px; height:14px;}

/* Formulário */
.reservation-form {max-width:480px;}
.reservation-section .container {display:flex; flex-direction:column; align-items:center;}
.reservation-section form.reservation-form {margin:0 auto;}
.reservation-form .form-row {margin-bottom:15px;}
.reservation-form input, .reservation-form textarea {width:100%; padding:12px 14px; border:1px solid #2d2d33; background:#18181c; border-radius:var(--radius-sm); font-family:inherit; color:var(--color-text);}
.reservation-form input:focus, .reservation-form textarea:focus {outline:none; border-color:var(--color-accent); box-shadow:0 0 0 3px rgba(212,175,55,.25);} 
.reservation-form button {margin-top:5px; background:var(--color-surface); color:var(--color-text); padding:12px 24px; border-radius:var(--radius-sm); border:1px solid #2d2d33; font-weight:600; letter-spacing:.5px; cursor:pointer; transition:var(--transition);} 
.reservation-form button:hover {background:var(--color-accent); color:#111; transform:translateY(-2px); box-shadow:var(--shadow-sm);} 
.reservation-form button:focus {outline:2px solid var(--color-accent); outline-offset:2px;}

/* Contacto */
.contact-section p {margin:0; font-size:.95rem;}
.contact-section a {color:var(--color-accent);}
.contact-section a:hover {text-decoration:none; color:var(--color-accent-hover);} 
/* Footer contact links override to white base */
.site-footer .footer-block a {color:#fff;}
.site-footer .footer-block a:hover {color:var(--color-accent);} 
/* Force override if other styles cascade */
.site-footer a {color:#fff;}
.site-footer a:hover {color:var(--color-accent);} 
/* Footer social icons: base icon color accent (gold), no dark background box */
.site-footer .social-links a {background:none; color:var(--color-accent); border:1px solid var(--color-accent);}
/* Hover mantém ícone dourado; apenas leve mudança opcional de opacidade/borda sem fundo amarelo */
.site-footer .social-links a:hover {background:none; color:var(--color-accent); border-color:var(--color-accent-hover); transform:translateY(-3px); box-shadow:var(--shadow-md);} 

/* Responsivo básico */
/* Animations / reveals */
.reveal {opacity:0; transform:translateY(32px); transition:opacity .8s ease, transform .8s ease;}
.reveal.reveal-active {opacity:1; transform:translateY(0);} 
.reveal.media-reveal {opacity:0; transform:translateY(32px) scale(.96);}
.reveal.media-reveal.reveal-active {transform:translateY(0) scale(1);} 
.testimonial-card.reveal {will-change:transform, opacity;}
.testimonial-card.reveal.reveal-active {transition:opacity .8s ease, transform .9s cubic-bezier(.16,.7,.3,1);} 
.hero-banner .hero-text {animation:fadeInHero 1.1s ease .2s both;}
@keyframes fadeInHero {from {opacity:0; transform:translateY(24px);} to {opacity:1; transform:translateY(0);} }

/* Light theme adjustments (attenuate overlays) */
body[data-theme="light"] .about-media-overlay,
body[data-theme="light"] .vehicle-media-wrap .about-media-overlay,
body[data-theme="light"] .highlight-media-wrap .about-media-overlay,
body[data-theme="light"] .team-media-wrap .about-media-overlay {
	background:linear-gradient(145deg,rgba(0,0,0,.18) 0%, rgba(0,0,0,.38) 65%);
}
body[data-theme="light"] .testimonial-card {background:var(--color-surface-alt);} 

/* The header is sticky and in light theme it has its own height; remove main's top padding
	and the hero-banner border to make the video sit flush under the header. */
body[data-theme="light"] main {padding-top: 0;}
body[data-theme="light"] .hero-banner {border-bottom: none;}

/* Media queries refinados */
@media (max-width: 992px) {
	/* On medium screens prefer a lower min-height but allow video to define final size */
	.hero-banner {min-height:360px; height:auto;}
	.hero-banner .hero-title {font-size:2.4rem; margin-bottom:16px;}
	.primary-nav a {font-size:.7rem;}
}
/* Desktop: ensure hero video fits within viewport height without requiring scroll
   We subtract the sticky header height via the --site-header-offset variable which
   is kept in sync by JS. This prevents the header from overlapping the hero and
   ensures the video is fully visible. */
@media (min-width: 993px) {
	/* On large viewports keep a reasonable min-height while preserving the
	   header-subtracted full-viewport behaviour */
	.hero-banner { min-height: 520px; }

	/* Desktop: make the banner content center vertically and set video height to 92vh */
	.hero-banner {
		/* let the banner size to the video's height (92vh) */
		height: auto; /* clear the full-viewport calc so video height drives layout */
		display:block;
	}

	.hero-banner video.hero-video {
		/* On desktop cap the video height to 92vh so it occupies most of the viewport */
		max-height:92vh;
		height:92vh;
		width:100%;
		display:block;
	}

	/* Ensure hero text is centered in the middle of the video area */
	.hero-banner .hero-text {
		position: absolute; /* place text above the video */
		z-index: 2;
		inset: 0; /* stretch over the banner/video */
		display: flex;
		align-items: center; /* vertical center */
		justify-content: center; /* horizontal center */
		padding: 0 6%;
		pointer-events: auto;
	}
}
@media (max-width: 760px) {
	.container {padding:0 20px;}
	/* Mobile: hide large hero title to avoid overlapping the video and keep UI clean */
	.hero-banner .hero-title { display: none !important; }
	/* Reduzir efeito de hover para performance em dispositivos móveis */
	.card:hover, .highlight-item:hover, .fleet-vehicles .vehicle:hover, .itinerary-item:hover, .team-member:hover, .testimonial-card:hover, .service-item:hover {box-shadow:var(--shadow-sm); transform:translateY(-2px);} 
	/* Let the video determine the banner height on small screens to avoid an empty bar */
	/* Keep the header-subtracted full viewport behaviour on mobile as well
	   so the video always occupies the remaining screen under the header. */
	.hero-banner { min-height:0; }
	/* Keep the video filling the whole banner area */
	.hero-banner video.hero-video { object-fit:cover; width:100%; height:100%; }
	/* Place hero text relative to the video size and keep it readable */
	.hero-banner .hero-text {position:absolute; inset:auto 0 20% 0; padding:6% 6%;}
	.hero-banner .hero-title {font-size:2rem; margin-bottom:14px;}
	.section {padding:56px 0;}
	.highlight-items, .fleet-vehicles, .itineraries-list, .team-members, .testimonials-grid, .cards {grid-template-columns:1fr;}
	.site-header {padding:3px 0;}
	/* Hamburger nav (compact) - visually stronger in both themes */
	.nav-toggle {display:inline-flex; position:relative; z-index:120; background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(0,0,0,0.06)); border:1px solid rgba(212,175,55,0.12); color:var(--color-text); padding:8px 12px; border-radius:10px; cursor:pointer; font-size:.75rem; letter-spacing:.08em; text-transform:none; font-weight:700; gap:8px; align-items:center; box-shadow:0 6px 18px -8px rgba(0,0,0,.6);}
	.nav-toggle .bars {width:22px; height:14px; position:relative; display:inline-block;}
	.nav-toggle .bars span {position:absolute; left:0; width:100%; height:3px; background:var(--color-text); border-radius:2px; transition:var(--transition);} 
	.nav-toggle .bars span:nth-child(1){top:0;}
	.nav-toggle .bars span:nth-child(2){top:5px;}
	.nav-toggle .bars span:nth-child(3){top:10px;}
	/* Mobile off-canvas: make width responsive and respect safe-area; larger touch targets */
	.primary-nav {position:fixed; top:0; right:0; height:100vh; width:min(92vw, 320px); max-width:92vw; background:rgba(20,20,24,.96); backdrop-filter:blur(10px); padding:calc(var(--site-header-offset,80px) + 20px) 24px 40px; transform:translateX(110%); transition:var(--transition); box-shadow:-4px 0 12px -2px rgba(0,0,0,.6); display:flex; flex-direction:column; align-items:flex-start; gap:20px;}
	.primary-nav {z-index:115;}
	/* Prevent partial reveal on horizontal swipe: ensure off-canvas fully hidden and no horizontal scroll bounce */
	.primary-nav {will-change:transform; touch-action:pan-y; overscroll-behavior-x:none; overscroll-behavior-y:contain;}
	.primary-nav.open {transform:translateX(0); z-index:125;} 
	/* Prevent the page from being pulled horizontally which could reveal the off-canvas nav */
	html, body { overscroll-behavior-x: none; }
	.primary-nav .menu {flex-direction:column; gap:18px;}
	/* Increase link hit area on mobile */
	.primary-nav a {font-size:0.95rem; padding:12px 6px; display:inline-block;}
	/* Ensure nav covers safe-area bottom on iOS */
	.primary-nav {padding-bottom: calc(40px + env(safe-area-inset-bottom));}
	/* Light theme on mobile: make off-canvas nav background white and links dark for readability */
	body[data-theme="light"] .primary-nav {
		/* Slight translucency so the content behind is faintly visible; gentle backdrop blur for elegance */
		background: rgba(255,255,255,0.88); /* slightly see-through */
		color: var(--color-text);
		backdrop-filter: blur(6px) saturate(1.02);
		-webkit-backdrop-filter: blur(6px) saturate(1.02);
		border-left: 1px solid rgba(0,0,0,0.06);
	}
	body[data-theme="light"] .primary-nav a { color: #222325; }
	body[data-theme="light"] .primary-nav a::after { background: var(--color-accent); }
	/* Close button in light theme: black border and dark icon for contrast */
	body[data-theme="light"] .primary-nav .nav-close { border-color: #111; color: #111; }
	/* Overlay for nav */
	.nav-overlay {position:fixed; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity .35s ease; z-index:110;}
	/* In light mode reduce overlay darkness so the page behind the off-canvas panel remains visible */
	body[data-theme="light"] .nav-overlay { background: rgba(255,255,255,0.06); backdrop-filter: blur(4px) saturate(1.02); -webkit-backdrop-filter: blur(4px) saturate(1.02); }
	.nav-overlay.visible {opacity:1; pointer-events:auto;}
	.nav-open .nav-overlay {opacity:1;}
	body.nav-open {overflow:hidden; touch-action:none;}

	/* Mobile: keep header fixed to top and account for safe-area insets (iPhone notch, etc.) */
	.site-header {
		position: fixed;
		top: env(safe-area-inset-top);
		left: 0;
		right: 0;
		width: 100%;
		z-index: 130; /* above most elements but allow primary-nav to layer when opened */
		backdrop-filter: blur(8px);
	}

	/* Ensure page content isn't hidden under the fixed header on small screens.
	   Use a safe default header offset; adjust the 80px if your header is taller. */
	main { padding-top: calc(80px + env(safe-area-inset-top)); }

	/* Light theme also needs the offset when header is fixed on mobile */
	body[data-theme="light"] main { padding-top: calc(53px + env(safe-area-inset-top)); }

	/* When the off-canvas nav opens, make sure it can appear above the header */
	.primary-nav.open { z-index: 140; }
	.nav-toggle.active .bars span:nth-child(1){transform:translateY(5px) rotate(45deg);}
	.nav-toggle.active .bars span:nth-child(2){opacity:0;}
	.nav-toggle.active .bars span:nth-child(3){transform:translateY(-5px) rotate(-45deg);}
	.about-image {max-height:280px; width:100%; object-fit:cover; border-radius:8px;}
	/* Testemunhos slider: centralizar e reduzir cards em mobile */
	.testimonials-grid.slider-enabled {overflow:hidden;}
	.testimonials-track {justify-content:flex-start;}
		.testimonials-track .testimonial-card {transform:scale(.94);} /* basis set inline */
	.testimonials-track .testimonial-card.active {transform:scale(1);}
	.testimonial-card {padding:20px;}
	.testimonial-text {font-size:.85rem;}
	.testimonial-avatar {width:56px; height:56px;}
	.testimonial-quote {font-size:36px; right:12px; top:8px;}
}
@media (max-width:500px) {
	.hero-banner .hero-title {font-size:1.7rem; margin-bottom:12px;}
	/* Further reductions para ecrãs muito pequenos */
	.testimonials-track .testimonial-card {transform:scale(.94);} /* keep scale for inactive on very small screens */
	.testimonial-card {padding:18px;}
	.testimonial-avatar {width:52px; height:52px;}
	.testimonial-text {font-size:.8rem;}
	.testimonial-quote {font-size:32px;}
}

/* Defensive fallback: on small screens ensure testimonial cards never exceed 20% width
	 Use !important to override inline flex-basis set by JS when viewport is mobile. */
/* Mobile testimonial widget: enforce multi-card small width (15%) */
@media (max-width:760px){
	.testimonial-widget .testimonial-card,
	.testimonials-track .testimonial-card,
	.testimonials-grid .testimonial-card { max-width:15% !important; flex:0 0 15% !important; box-sizing:border-box; }
}
/* Desktop testimonial widget: enforce 20% card width (up to 5 visible) */
@media (min-width:1000px){
	.testimonial-widget .testimonial-card { max-width:20% !important; flex:0 0 20% !important; }
}

/* Compact styles for the new Elementor-like testimonial widget */
.testimonial-widget {position:relative; overflow:hidden;}
.testimonial-widget .slides {transition:transform .6s cubic-bezier(.4,.18,.2,1); will-change:transform;}
.testimonial-widget .testimonial-card {box-sizing:border-box; padding:20px; margin:0;}
.testimonial-widget .testimonial-controls {display:flex; gap:12px; align-items:center; justify-content:center; margin-top:20px;}
.testimonial-prev, .testimonial-next {background:var(--color-surface); color:var(--color-text); border:1px solid #2d2d33; width:52px; height:52px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; font-size:22px;}
.testimonial-prev:hover, .testimonial-next:hover {background:var(--color-accent); color:#111; transform:translateY(-3px);} 
.testimonial-play {display:none !important;} /* removed from markup; keep style hidden if leftover */
.testimonial-dots {display:flex; gap:10px;}
.testimonial-dot {width:12px; height:12px; border-radius:50%; background:#333; border:1px solid #555;}
.testimonial-dot.active {background:var(--color-accent); border-color:var(--color-accent);} 
.testimonial-widget .testimonial-card.active {opacity:1; transform:translateY(0);}
.testimonial-widget .testimonial-card {opacity:.6; transform:translateY(6px); transition:opacity .4s ease, transform .4s ease;}

@media (max-width:760px){
 	.testimonial-widget .testimonial-controls {margin-top:14px;}
 	.testimonial-prev, .testimonial-next {width:44px; height:44px;}
 	.testimonial-card {min-height:200px;}
}

	/* About (lux redesign) */
	.about-lux {display:grid; gap:56px; align-items:center; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); position:relative;}
	.about-lux::before {content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 30%, rgba(212,175,55,.08), transparent 60%), radial-gradient(circle at 85% 70%, rgba(247,231,181,.06), transparent 65%); pointer-events:none; z-index:0;}
	.about-content {position:relative; z-index:1; display:flex; flex-direction:column; gap:28px;}
	.about-header {position:relative; padding-top:20px;}
	.about-title {margin:0 0 4px; font-size:2.4rem; line-height:1.15; font-family:var(--font-display); letter-spacing:.5px; font-weight:600; background:var(--lux-heading-gradient); -webkit-background-clip:text; background-clip:text; color:transparent;}
body[data-theme="light"] .about-title {text-shadow:0 1px 2px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.05);}
	.about-title-accent {width:72px; height:6px; background:linear-gradient(90deg,var(--color-accent) 0%,#f7e7b5 100%); border-radius:10px; box-shadow:0 0 0 1px rgba(247,231,181,.4), 0 4px 12px -3px rgba(0,0,0,.6);}
	.about-intro p {margin:0 0 14px; font-size:1rem; line-height:1.6; color:var(--color-text-muted);}
	.about-intro p + p {margin-top:4px;}
	.about-features {list-style:none; margin:10px 0 0; padding:0; display:grid; gap:14px;}
	.about-features li {display:flex; align-items:flex-start; gap:12px; font-size:.95rem; background:linear-gradient(135deg,rgba(20,20,24,.9) 0%, rgba(30,30,36,.9) 100%); padding:12px 16px; border:1px solid #222228; border-radius:var(--radius-md); position:relative; box-shadow:var(--shadow-sm); transition:var(--transition);} 
	.about-features li:hover {transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--color-accent);}
	.feature-icon {display:inline-flex; width:26px; height:26px; align-items:center; justify-content:center; background:linear-gradient(130deg,var(--color-accent) 0%,#f7e7b5 100%); color:#111; font-weight:600; border-radius:50%; font-size:.9rem; box-shadow:0 2px 6px -2px rgba(0,0,0,.7);}
	.about-visual {position:relative; z-index:1;}
	.about-figure {margin:0; position:relative;}
	.about-media-wrap {position:relative; border-radius:18px; overflow:hidden; isolation:isolate;}
	.about-image {display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; filter:saturate(1.05) contrast(1.08) brightness(.95); transition:transform 1.2s cubic-bezier(.16,.7,.3,1), filter .8s ease;}
	.about-media-overlay {content:""; position:absolute; inset:0; background:linear-gradient(145deg,rgba(0,0,0,.3) 0%, rgba(0,0,0,.55) 65%); z-index:1; pointer-events:none; mix-blend-mode:multiply;}
	.about-media-frame {position:absolute; inset:0; border:1px solid rgba(212,175,55,.35); border-radius:18px; z-index:2; box-shadow:inset 0 0 0 1px rgba(247,231,181,.25), 0 8px 24px -10px rgba(0,0,0,.7);} 
	.about-media-wrap::after {content:""; position:absolute; left:18px; top:18px; right:18px; bottom:18px; border:1px solid rgba(212,175,55,.18); border-radius:14px; z-index:2; pointer-events:none;}
	.about-media-wrap:hover .about-image {transform:scale(1.04); filter:saturate(1.15) contrast(1.12) brightness(.98);}
	.about-caption {margin-top:14px; font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; color:var(--color-text-muted); text-align:center;}
	@media (max-width: 760px) {
		.about-lux {gap:42px;}
		.about-title {font-size:2.1rem;}
		.about-features {grid-template-columns:1fr;}
		.about-media-wrap {border-radius:14px;}
		.about-media-frame {border-radius:14px;}
	}
	@media (min-width:1200px){
		.about-lux {grid-template-columns:minmax(460px,1fr) minmax(460px,1fr);}
		.about-content {padding-right:12px;padding-bottom:12px;}
	}

/* Back to Top Button */
.back-to-top {position:fixed; right:22px; bottom:24px; width:48px; height:48px; border-radius:50%; border:1px solid #2a2a30; background:rgba(20,20,24,.85); backdrop-filter:blur(6px); color:var(--color-accent); font-size:22px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 4px 16px -4px rgba(0,0,0,.7); opacity:0; transform:translateY(14px) scale(.9); pointer-events:none; transition:opacity .45s ease, transform .45s cubic-bezier(.4,.18,.2,1), background .3s ease, color .3s ease; z-index:120;}
.back-to-top.visible {opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}
/* Subtle fade-in helper: toggled by JS to emphasize entry without changing layout */
.back-to-top.fade-in {animation:backToTopFade .38s ease both;}
@keyframes backToTopFade {from {opacity:0; transform:translateY(10px) scale(.96);} to {opacity:1; transform:translateY(0) scale(1);}}
.back-to-top:hover {background:var(--color-accent); color:#111; transform:translateY(-3px) scale(1.04);} 
.back-to-top:focus {outline:2px solid var(--color-accent); outline-offset:2px;}
.back-to-top:active {transform:translateY(1px) scale(.96);} 
/* Oculta discretamente quando a rolagem continua para baixo */
.back-to-top.scroll-hide {opacity:.4; transform:translateY(18px) scale(.88);}
.back-to-top.scroll-hide:hover {opacity:1; transform:translateY(-3px) scale(1.04);} 
@media (prefers-reduced-motion: reduce){ 
	.back-to-top {transition:none;} 
  .back-to-top.fade-in {animation:none !important;}
	.lux-card-base, .card, .highlight-item, .fleet-vehicles .vehicle, .itinerary-item, .team-member, .testimonial-card, .service-item {transition:none;}
	.card:hover, .highlight-item:hover, .fleet-vehicles .vehicle:hover, .itinerary-item:hover, .team-member:hover, .testimonial-card:hover, .service-item:hover {transform:none; box-shadow:var(--shadow-sm);} 
}
body[data-theme="light"] .back-to-top {background:rgba(255,255,255,.8); color:#111; border-color:rgba(0,0,0,.12);} 
body[data-theme="light"] .back-to-top:hover {background:var(--color-accent); color:#111;}
@media (max-width:500px){
	.back-to-top {right:16px; bottom:18px; width:42px; height:42px; font-size:20px;}
}
@media (max-width:380px){
	.back-to-top {right:12px; bottom:14px; width:38px; height:38px; font-size:18px;}
}

