/* Base */
:root {
	--bg: #f6f8ff;
	--card: #ffffff;
	--card-2: #f1f5ff;
	--text: #1f2642;
	--muted: #5f6c8a;
	--primary: #ff7b29; /* laranja vibrante */
	--primary-700: #e56f22;
	--border: #d6dbf0;
	--success: #28c76f;
}

* { box-sizing: border-box; }
html {
	scroll-padding-top: 120px; /* compensa altura do header fixo ao fazer scroll para âncoras */
}
html, body { margin: 0; padding: 0; }
body {
	background: var(--bg);
	color: var(--text);
	font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
	line-height: 1.5;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; border-radius: 8px; }

.container { width: min(1100px, 92%); margin: 0 auto; }

/* Header */
.site-header {
	position: sticky; top: 0; z-index: 10;
	background: rgba(255,255,255,0.92); backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--border);
	box-shadow: 0 8px 24px rgba(31,38,66,0.08);
}
.header-inner {
	display: flex; align-items: center; justify-content: space-between;
	padding: 18px 0;
	gap: 24px;
}
.logo { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; font-size: 20px; letter-spacing: 0.3px; }
.logo-img { height: 82px; width: auto; display: block; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 1, 1); border: 0; }
.nav { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.nav a {
	color: var(--muted);
	padding: 8px 16px;
	border-radius: 999px;
	border: 1px solid transparent;
	background: rgba(255,255,255,0.6);
	transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.nav a:hover {
	color: var(--text);
	background: transparent;
	border-color: var(--border);
	transform: translateY(-1px);
}
.nav a[aria-current="page"] {
	color: var(--text); font-weight: 600;
	background: transparent;
	border-color: var(--border);
	box-shadow: none;
}

/* Hero */
.hero {
	position: relative;
	padding: 110px 0 130px;
	background: var(--bg);
	overflow: hidden;
}
.hero::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(255, 255, 255, 0.75);
	z-index: 0;
}
/* Hero Animations */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.hero-inner { 
	position: relative; 
	text-align: center; 
	z-index: 1; 
	display: grid; 
	gap: 18px; 
	justify-items: center; 
}
.hero h1 { 
	margin: 0; 
	font-size: clamp(40px, 6.5vw, 68px); 
	letter-spacing: 0.2px; 
	font-weight: 800;
	animation: fadeInUp 0.8s ease-out;
}
.hero p { 
	margin: 0 auto; 
	color: var(--muted); 
	width: min(640px, 92%); 
	font-size: 18px;
	animation: fadeInUp 0.8s ease-out 0.2s both;
}
.hero-tag {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 6px 14px; border-radius: 999px; font-size: 14px; letter-spacing: .3px;
	background: rgba(255,255,255,0.9); border: 1px solid rgba(255,123,41,0.25); color: var(--primary);
	text-transform: uppercase;
	box-shadow: 0 4px 14px rgba(255,123,41,0.15);
}
.hero-points { 
	display: flex; 
	flex-wrap: wrap; 
	gap: 10px; 
	justify-content: center;
	animation: fadeInUp 0.8s ease-out 0.4s both;
}
.hero-points span {
	background: rgba(255,255,255,0.8); 
	border: 1px solid rgba(255,123,41,0.18);
	padding: 8px 14px; 
	border-radius: 999px; 
	font-size: 14px; 
	color: var(--muted);
	box-shadow: 0 4px 12px rgba(31,38,66,0.08);
	animation: fadeIn 0.6s ease-out both;
}
.hero-points span:nth-child(1) {
	animation-delay: 0.5s;
}
.hero-points span:nth-child(2) {
	animation-delay: 0.6s;
}
.hero-points span:nth-child(3) {
	animation-delay: 0.7s;
}
.hero-cta { 
	display: flex; 
	gap: 12px; 
	justify-content: center; 
	margin-top: 4px;
	animation: fadeInUp 0.8s ease-out 0.8s both;
}

/* Sections simple spacing */
.sobre, .catalogo-home, .faqs, .regras, .contactos { padding: 40px 0; }
.sobre h2, .catalogo-home h2, .faqs h2, .regras h2, .contactos h2 {
	font-size: clamp(22px, 3.4vw, 32px);
	margin: 0 0 16px;
}

/* Buttons */
.btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: 8px; padding: 12px 16px; border-radius: 10px;
	background: var(--card); border: 1px solid var(--border); color: var(--text);
	transition: transform .04s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.btn:hover { transform: translateY(-1px); border-color: rgba(255,123,41,0.4); box-shadow: 0 8px 18px rgba(255,123,41,0.18); }
.btn-primary { background: var(--primary); border-color: transparent; color: white; }
.btn-primary:hover { background: var(--primary-700); }
.btn-ghost { background: transparent; border: 1px solid var(--border); }

/* Sections */
.highlights { padding: 40px 0 64px; }
.benefits { padding: 16px 0 64px; }
.benefits-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.benefit { background: var(--card); border: 1px solid var(--border); padding: 18px; border-radius: 12px; box-shadow: 0 6px 18px rgba(31,38,66,0.05); }
.section-cta { margin-top: 16px; text-align: center; }

/* Grid & Cards */
.grid { display: grid; gap: 16px; }
.cards { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.card {
	background: var(--card);
	border: 1px solid var(--border);
	border-radius: 14px; overflow: hidden;
	display: flex; flex-direction: column;
	box-shadow: 0 8px 22px rgba(31,38,66,0.08);
	transition: transform .2s ease, box-shadow .2s ease;
}
.card .meta .meta-block-item {
    /* Força o elemento a comportar-se como um bloco, quebrando a linha */
    display: block; 
}
.card img { aspect-ratio: 16/10; object-fit: cover; }
.card-body { padding: 14px; display: grid; gap: 8px; }
.card h3 { margin: 0; font-size: 18px; letter-spacing: .2px; }
.card p { margin: 0; color: var(--muted); font-size: 14px; }
.card .meta { display: flex; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 12px; }
.card .row { display: flex; align-items: center; justify-content: space-between; }
.price { font-size: 14px; font-weight: 800; color: var(--primary); }
.price-label { font-size: 12px; color: var(--muted); }
.price-note { font-size: 12px; color: var(--muted); }
.card .actions { display: flex; gap: 10px; margin-top: 6px; }
.card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(31,38,66,0.14); }
.card:hover img { transform: scale(1.04); }
.card img { transition: transform .25s ease; }

/* FAQ & Rules */
.faq-list { display: grid; gap: 12px; } /* legacy */
.faq h3 { margin: 0 0 4px; font-size: 16px; } /* legacy */
.faq-accordion { display: grid; gap: 10px; }
.faq-item { border: 1px solid var(--border); border-radius: 12px; background: var(--card); overflow: hidden; }
.faq-item summary {
	display: flex; align-items: center; justify-content: space-between;
	list-style: none; cursor: pointer; padding: 14px 16px; font-weight: 600;
	gap: 12px;
	background: rgba(255,255,255,0.92);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item span:first-child { color: var(--text); }
.faq-item .caret { transition: transform .2s ease; color: var(--primary); font-size: 18px; }
.faq-item[open] .caret { transform: rotate(180deg); }
.faq-item[open] summary { border-bottom: 1px solid rgba(31,38,66,0.15); }
.faq-content {
	padding: 1px 15px 2px;
	color: var(--muted);
	margin: 0;
	border-left: 4px solid var(--primary);
}
.rules { margin: 0; padding-left: 18px; color: var(--muted); } /* legacy */
.rules-grid { 
	display: grid; 
	gap: 14px; 
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); 
}
.rule-card {
	display: flex; 
	gap: 12px; 
	align-items: flex-start;
	background: var(--card); 
	border: 1px solid var(--border);
	padding: 16px; 
	border-radius: 14px; 
	box-shadow: 0 6px 16px rgba(31,38,66,0.08);
	opacity: 0;
	animation: fadeInUp 0.6s ease-out both;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.rule-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(31,38,66,0.12);
}
.rule-card:nth-child(1) {
	animation-delay: 0.1s;
}
.rule-card:nth-child(2) {
	animation-delay: 0.2s;
}
.rule-card:nth-child(3) {
	animation-delay: 0.3s;
}
.rule-card:nth-child(4) {
	animation-delay: 0.4s;
}
.rule-card:nth-child(5) {
	animation-delay: 0.5s;
}
.rule-card:nth-child(6) {
	animation-delay: 0.6s;
}
.rule-icon {
	font-size: 22px; 
	line-height: 1; 
	background: transparent;
	padding: 4px; 
	display: grid; 
	place-items: center;
	animation: fadeIn 0.5s ease-out 0.3s both;
}
.rule-card p { 
	margin: 0; 
	color: var(--muted);
	animation: fadeIn 0.5s ease-out 0.4s both;
}

/* Filters */
.filters { margin: 12px 0 18px; }
.filters-row { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
label span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 6px; }
input[type="search"], input[type="text"], input[type="email"], input[type="tel"], input[type="date"], select, textarea {
	width: 100%; padding: 10px 12px; color: var(--text); background: var(--card-2);
	border: 1px solid var(--border); border-radius: 10px; outline: none;
}

/* Detail */
.breadcrumb { display: flex; gap: 8px; color: var(--muted); margin: 16px 0; }
.detail { display: grid; gap: 20px; grid-template-columns: 1.2fr 1fr; }
.gallery-container { display: grid; gap: 12px; }
.gallery-main {
	position: relative;
	width: 100%;
	aspect-ratio: 16/10;
	border-radius: 14px;
	overflow: hidden;
	background: var(--card);
	border: 1px solid var(--border);
}
.gallery-main #nome {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0;
	padding: 16px 20px;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7), transparent);
	color: white;
	font-size: clamp(20px, 4vw, 28px);
	z-index: 10;
}
.gallery-main-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.gallery-thumbs {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 8px;
}
.gallery-thumbs img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 8px;
	cursor: pointer;
	border: 2px solid transparent;
	transition: border-color .2s ease, opacity .2s ease;
	background: var(--card);
}
.gallery-thumbs img:hover {
	border-color: var(--primary);
	opacity: 0.9;
}
.gallery-thumbs img.active {
	border-color: var(--primary);
	opacity: 1;
}
.gallery-main-image {
	cursor: pointer;
	transition: transform .2s ease;
}
.gallery-main-image:hover {
	transform: scale(1.02);
}

/* Lightbox */
.lightbox {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.9);
	z-index: 1000;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.lightbox.active {
	display: flex;
}
.lightbox-close {
	position: absolute;
	top: 20px;
	right: 30px;
	color: white;
	font-size: 40px;
	font-weight: bold;
	cursor: pointer;
	z-index: 1001;
	line-height: 1;
	transition: transform .2s ease;
}
.lightbox-close:hover {
	transform: scale(1.2);
}
.lightbox-img {
	max-width: 90%;
	max-height: 90%;
	object-fit: contain;
	border-radius: 8px;
}
.gallery { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; }
.gallery img { height: 200px; object-fit: cover; }
.detail-info { display: grid; gap: 14px; align-content: start; align-self: start; }
.specs { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; color: var(--muted); }
.price-box {
	display: flex; justify-content: space-between; align-items: flex-start;
	background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 14px;
	gap: 16px;
	flex-wrap: wrap;
}
.cta-vertical { display: grid; gap: 10px; }
#cta-whatsapp { width: fit-content; }

/* Contact */
.contact-grid { display: grid; gap: 20px; grid-template-columns: 1fr 0.9fr; align-items: start; }
.contact-info-wrapper { display: grid; gap: 16px; }
.contact-info { background: var(--card); border: 1px solid var(--border); padding: 16px; border-radius: 12px; display: grid; gap: 12px; box-shadow: 0 6px 18px rgba(31,38,66,0.06); }
.contact-info p { margin: 0; }
.contact-info a { color: var(--primary); }
.contact-form { background: var(--card); border: 1px solid var(--border); padding: 16px; border-radius: 12px; display: grid; gap: 12px; box-shadow: 0 6px 18px rgba(31,38,66,0.06); }
.contact-grid #contact-form-home {
	align-self: end;
	justify-self: stretch;
}
.info-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.form-note { color: var(--muted); font-size: 12px; }
.map-card {
	flex: 1;
	min-height: 400px;
	border: 1px solid var(--border);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 10px 24px rgba(31,38,66,0.12);
	background: var(--card);
}
.map-card iframe { width: 100%; height: 100%; min-height: 400px; display: block; }

/* Footer */
.site-footer { border-top: 1px solid var(--border); margin-top: 40px; background: rgba(255,255,255,0.8); }
.footer-inner { display: flex; align-items: center; justify-content: center; padding: 16px 0; color: var(--muted); }

/* Responsive */
@media (max-width: 920px) {
	.detail { grid-template-columns: 1fr; }
	.gallery { grid-template-columns: 1fr 1fr; }
	.contact-grid { grid-template-columns: 1fr; }
	.gallery-thumbs { grid-template-columns: repeat(5, 1fr); }
	.map-card { min-height: 300px; }
	.map-card iframe { min-height: 300px; }
	.hero h1 { font-size: clamp(32px, 8vw, 56px); }
	.hero p { font-size: 16px; }
	.price-box {
		flex-direction: column;
		align-items: stretch;
	}
	.cta-vertical {
		width: 100%;
	}
}

@media (max-width: 720px) {
	html { scroll-padding-top: 160px; }
	.header-inner {
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 16px;
		padding: 14px 0;
	}
	.nav {
		justify-content: center;
		flex-wrap: wrap;
		gap: 8px;
	}
	.nav a {
		padding: 6px 12px;
		font-size: 13px;
	}
	.logo-img { height: 68px; }
	.hero {
		padding: 70px 0 90px;
	}
	.hero h1 { font-size: clamp(28px, 7vw, 48px); }
	.hero p { font-size: 15px; width: 95%; }
	.hero-points {
		flex-direction: column;
		align-items: center;
		gap: 8px;
	}
	.hero-points span {
		font-size: 13px;
		padding: 6px 12px;
	}
	.sobre, .catalogo-home, .faqs, .regras, .contactos {
		padding: 32px 0;
	}
	.sobre h2, .catalogo-home h2, .faqs h2, .regras h2, .contactos h2 {
		font-size: clamp(20px, 5vw, 28px);
	}
	.cards { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
	.rules-grid { grid-template-columns: 1fr; }
	.contact-info-wrapper { gap: 12px; }
	.contact-info, .contact-form { padding: 14px; }
	.detail { gap: 20px; }
	.detail-info h1 { font-size: clamp(24px, 6vw, 32px); }
	.gallery-thumbs { grid-template-columns: repeat(5, 1fr); }
	.price-box { padding: 14px; }
}

@media (max-width: 540px) {
	html { scroll-padding-top: 150px; }
	.container { width: 95%; }
	.header-inner {
		padding: 12px 0;
		gap: 12px;
	}
	.logo-img { height: 56px; }
	.nav {
		gap: 6px;
		width: 100%;
		justify-content: center;
	}
	.nav a {
		padding: 6px 10px;
		font-size: 12px;
	}
	.hero {
		padding: 60px 0 80px;
	}
	.hero h1 {
		font-size: clamp(24px, 8vw, 40px);
		margin-bottom: 8px;
	}
	.hero p {
		font-size: 14px;
		margin-bottom: 16px;
	}
	.hero-points {
		gap: 6px;
		width: 100%;
	}
	.hero-points span {
		font-size: 12px;
		padding: 5px 10px;
	}
	.hero-cta {
		flex-direction: column;
		width: 100%;
	}
	.hero-cta .btn {
		width: 100%;
		justify-content: center;
	}
	.sobre, .catalogo-home, .faqs, .regras, .contactos {
		padding: 24px 0;
	}
	.sobre h2, .catalogo-home h2, .faqs h2, .regras h2, .contactos h2 {
		font-size: clamp(20px, 6vw, 26px);
		margin-bottom: 12px;
	}
	.cards {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.card-body { padding: 12px; }
	.card h3 { font-size: 16px; }
	.card p { font-size: 13px; }
	.price { font-size: 20px; }
	.faq-item summary {
		padding: 10px 12px;
		font-size: 14px;
	}
	.faq-content {
		padding: 8px 12px 10px;
		font-size: 14px;
	}
	.rules-grid { gap: 10px; }
	.rule-card {
		padding: 12px;
		flex-direction: column;
		gap: 8px;
	}
	.rule-icon {
		font-size: 20px;
		padding: 4px;
		background: transparent;
	}
	.rule-card p { font-size: 13px; }
	.contact-grid { gap: 16px; }
	.contact-info-wrapper { gap: 10px; }
	.contact-info, .contact-form {
		padding: 12px;
		gap: 10px;
	}
	.contact-info p, .contact-form label {
		font-size: 14px;
	}
	.map-card {
		min-height: 250px;
	}
	.map-card iframe {
		min-height: 250px;
	}
	.gallery { grid-template-columns: 1fr; }
	.gallery-container { gap: 10px; }
	.gallery-main {
		aspect-ratio: 4/3;
		border-radius: 12px;
	}
	.gallery-thumbs {
		grid-template-columns: repeat(4, 1fr);
		gap: 6px;
	}
	.gallery-thumbs img {
		border-width: 1px;
	}
	.detail { gap: 16px; }
	.detail-info { gap: 12px; }
	.detail-info h1 {
		font-size: clamp(22px, 6vw, 32px);
		margin-bottom: 8px;
	}
	.detail-info p {
		font-size: 14px;
		line-height: 1.6;
	}
	.specs {
		gap: 8px;
		font-size: 14px;
	}
	.specs li {
		padding: 8px 0;
	}
	.specs strong {
		font-size: 13px;
	}
	.price-box {
		flex-direction: column;
		gap: 12px;
		align-items: stretch;
		padding: 12px;
	}
	.price-label {
		font-size: 11px;
	}
	.price {
		font-size: 24px;
	}
	.price-note {
		font-size: 11px;
		margin-top: 4px;
	}
	.cta-vertical {
		width: 100%;
		gap: 8px;
	}
	.cta-vertical .btn {
		width: 100%;
		justify-content: center;
		padding: 12px 16px;
	}
	#cta-whatsapp {
		width: fit-content;
		font-size: 14px;
	}
	.breadcrumb {
		font-size: 13px;
		margin: 12px 0;
		flex-wrap: wrap;
	}
	.footer-inner {
		flex-direction: column;
		gap: 8px;
		text-align: center;
		padding: 12px 0;
		font-size: 13px;
	}
	.lightbox-close {
		top: 10px;
		right: 15px;
		font-size: 32px;
	}
	.lightbox-img {
		max-width: 95%;
		max-height: 85%;
	}
}


