/* Estilos do evento. Carregar depois de main.css; preservar a ordem das media queries. */

/* Área de patrocinadores */

.sponsors {
	margin-top: 50px;
	padding: 40px 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	text-align: center;
}

.sponsors h3 {
	color: #24314e !important;
	margin-bottom: 30px;
	font-size: 18px;
	text-transform: uppercase;
	letter-spacing: 2px;
}

.sponsors-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 35px;
}

.sponsors-list a {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 10px;
	text-decoration: none;
	transition: transform 0.25s ease, opacity 0.25s ease;
}

.sponsors-list img {
	display: block;
	width: auto;
	max-width: 180px;
	height: 75px;
	object-fit: contain;
}

.sponsors-list a:hover {
	transform: scale(1.05);
	opacity: 0.8;
}

/* Telemóveis */

@media screen and (max-width: 736px) {
	.sponsors {
		margin-top: 30px;
		padding: 30px 10px;
	}

	.sponsors-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}

	.sponsors-list img {
		max-width: 130px;
		height: 60px;
		margin: 0 auto;
	}
}

/* Ecrãs muito pequenos */

@media screen and (max-width: 400px) {
	.sponsors-list {
		grid-template-columns: 1fr;
	}
}

/* CALHETA GRANFONDO - INSCRIÇÕES */

.inscricoes-page {
	max-width: 1100px;
	margin: 0 auto;
}


/* Introdução */

.registration-intro {
	max-width: 850px;
	margin: 0 auto 3em auto;
	padding: 2em;
	text-align: center;
	background: #f5f5f5;
	border-radius: var(--radius-small);
}

.registration-intro h3 {
	margin-bottom: 0.8em;
	font-size: 1.5em;
}

.registration-intro p {
	margin-bottom: 0.5em;
}


/* Cards */

.registration-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2em;
	margin: 3em 0;
}

.registration-card {
	padding: 2.5em;
	border: solid 1px var(--color-border);
	border-radius: var(--radius-card);
	background: var(--color-white);
	box-shadow: var(--shadow-card);
}

.registration-card-header {
	margin-bottom: 2em;
	padding-bottom: 1.5em;
	border-bottom: solid 1px var(--color-border-light);
}

.registration-card-header .distance {
	display: inline-block;
	margin-bottom: 0.5em;
	font-size: 0.8em;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.registration-card-header h3 {
	margin: 0;
	font-size: 2em;
}

.registration-card-header p {
	margin: 0.3em 0 0 0;
}


/* Preços */

.registration-price {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding: 1em 0;
	border-bottom: solid 1px var(--color-border-light);
}

.registration-price span {
	font-size: 0.95em;
}

.registration-price strong {
	font-size: 1.35em;
	white-space: nowrap;
}


/* Botões */

.registration-button {
	display: block;
	width: 100%;
	margin-top: 2em;
	text-align: center;
}


/* Deadline */

.registration-deadline {
	margin: 4em auto 3em auto;
	max-width: 850px;
	text-align: center;
}

.registration-deadline h3 {
	font-size: 1.8em;
}

.registration-deadline p {
	margin-bottom: 0.7em;
}


/* CTA final */

.registration-final {
	margin-top: 3em;
	text-align: center;
}




/* Mobile */

@media screen and (max-width: 736px) {

	.registration-grid {
		grid-template-columns: 1fr;
	}

	.registration-card {
		padding: 1.8em;
	}

	.registration-card-header h3 {
		font-size: 1.7em;
	}

	.registration-price {
		align-items: flex-start;
	}

	.registration-intro {
		padding: 1.5em;
	}

}

/* -------------------------------- */
/* LISTA DE INSCRITOS */
/* -------------------------------- */



/* CONTADORES */

.registered-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1em;
	max-width: 700px;
	margin: 0 auto 3em auto;
}

.registered-stat {
	padding: 1.7em 1em;
	text-align: center;
	background: var(--color-surface);
	border-radius: var(--radius-small);
}

.registered-stat strong {
	display: block;
	font-size: 2.2em;
	line-height: 1;
	margin-bottom: 0.3em;
}

.registered-stat span {
	font-size: 0.8em;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 0.65;
}


/* PESQUISA */

.registered-controls {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1em;

	margin-bottom: 1.5em;
}

.registered-search {
	flex: 1;
}

.registered-search input {
	width: 100%;
}

.registered-filter select {
	min-width: 210px;
}


/* TABELA */

.registered-table-wrapper {
	width: 100%;
	overflow-x: auto;
}

.registered-table {
	width: 100%;
	border-collapse: collapse;
}

.registered-table th {
	padding: 1.2em 1em;
	text-align: left;
	font-size: 0.75em;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border-bottom: 2px solid var(--color-border-light);
}

.registered-table td {
	padding: 1.2em 1em;
	border-bottom: 1px solid var(--color-border-light);
}

.registered-table tbody tr {
	transition: background 0.2s ease;
}

.registered-table tbody tr:hover {
	background: #f8f8f8;
}

.rider-name {
	font-weight: 700;
}


/* BADGES */

.race-badge {
	display: inline-block;
	padding: 0.45em 0.8em;

	border-radius: 20px;

	font-size: 0.7em;
	font-weight: 700;

	letter-spacing: 0.04em;
	text-transform: uppercase;

	background: var(--color-border-light);
}


/* LOADING */

.loading-riders {
	padding: 3em !important;
	text-align: center !important;
	opacity: 0.6;
}


/* FOOTER */

.registered-footer {
	margin-top: 1.5em;
	text-align: center;

	font-size: 0.8em;
	opacity: 0.6;
}


/* MOBILE */

@media screen and (max-width: 736px) {

	.registered-stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.registered-controls {
		flex-direction: column;
		align-items: stretch;
	}

	.registered-filter select {
		width: 100%;
	}

	.registered-table {
		min-width: 700px;
	}

}

/* -------------------------------- */
/* HOME - INSCRITOS */
/* -------------------------------- */

.home-registrations {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3em;
	max-width: 900px;
	margin: 3em auto 0 auto;
	padding: 2.5em 3em;
	background: var(--color-white);
	border-radius: var(--radius-card);
	box-shadow: var(--shadow-card);
	color: var(--color-text);
}


.home-registrations-counters {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2.5em;
	padding-right: 2.5em;
	border-right: 1px solid var(--color-border);
}

.home-registrations-counter {
	min-width: 135px;
	text-align: center;
}


.home-registrations-counter span {
	display: block;
	font-size: 4em;
	font-weight: 700;
	line-height: 1;
	color: var(--color-primary);
}


.home-registrations-counter small {
	display: block;
	margin-top: 0.6em;
	font-size: 0.75em;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.6;
	color: var(--color-text);
}


.home-registrations-content {
	flex: 1;
}


.home-registrations-content h3 {
	margin-bottom: 0.5em;
	font-size: 1.7em;
	color: var(--color-text) !important;
}


.home-registrations-content p {
	margin-bottom: 1.4em;
	color: var(--color-text);
}

.home-registrations .button {
	color: var(--color-white);
}


/* MOBILE */

@media screen and (max-width: 736px) {

	.home-registrations {
		flex-direction: column;

		gap: 2em;

		padding: 2em 1.5em;

		text-align: center;
	}

	.home-registrations-counters {
		width: 100%;

		gap: 1.5em;

		padding-right: 0;
		padding-bottom: 2em;

		border-right: 0;
		border-bottom: 1px solid var(--color-border);
	}

	.home-registrations-counter {
		flex: 1;
		min-width: 0;
	}


	.home-registrations-counter span {
		font-size: 3.5em;
	}

}

/* -------------------------------- */
/* FAQ */
/* -------------------------------- */

.faq-category {
	margin-top: 3em;
	margin-bottom: 1em;

	font-size: 1.15em;
	font-weight: 700;

	letter-spacing: 0.08em;
	text-transform: uppercase;

	color: var(--color-primary);
}


.faq-item {
	margin-bottom: 0.8em;

	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);

	background: var(--color-white);

	overflow: hidden;
}


.faq-item summary {
	position: relative;

	padding: 1.3em 3.5em 1.3em 1.5em;

	font-weight: 600;
	font-size: 1.05em;

	color: var(--color-text);

	cursor: pointer;

	list-style: none;
}


.faq-item summary::-webkit-details-marker {
	display: none;
}


/* + */

.faq-item summary::after {
	content: "+";

	position: absolute;

	right: 1.5em;
	top: 50%;

	transform: translateY(-50%);

	font-size: 1.6em;
	font-weight: 400;

	color: var(--color-primary);
}


/* - quando aberto */

.faq-item[open] summary::after {
	content: "−";
}


.faq-item[open] summary {
	border-bottom: 1px solid var(--color-border-light);
}


.faq-answer {
	padding: 1.5em;

	color: var(--color-text);
}


.faq-answer p:last-child {
	margin-bottom: 0;
}


.faq-answer ul {
	margin-bottom: 1em;
}


/* MOBILE */

@media screen and (max-width: 736px) {

	.faq-item summary {
		padding: 1.2em 3em 1.2em 1.2em;
	}

	.faq-answer {
		padding: 1.2em;
	}

}

/* -------------------------------- */
/* ALUGUER DE BICICLETAS */
/* -------------------------------- */

.bike-rental-page {
	color: var(--color-text);
}


/* PARCEIRO */

.rental-partner {
	display: flex;
	align-items: center;
	gap: 3em;

	max-width: 950px;
	margin: 3em auto;

	padding: 2.5em;

	background: var(--color-surface);
	border-radius: var(--radius-card);
}


.rental-partner-logo {
	min-width: 220px;

	text-align: center;
}


.rental-partner-logo h3 {
	margin: 0;

	font-size: 2em;
	font-weight: 700;

	color: var(--color-text);
}


.rental-partner-content {
	flex: 1;
}


.rental-partner-content h3 {
	color: var(--color-text);
}


/* BIKE */

.rental-bike {
	max-width: 850px;

	margin: 4em auto;

	text-align: center;
}


.rental-label {
	display: inline-block;

	margin-bottom: 1em;

	font-size: 0.75em;
	font-weight: 700;

	letter-spacing: 0.15em;

	color: var(--color-primary);
}


.rental-bike h2 {
	margin-bottom: 0.8em;

	color: var(--color-text);
}


.rental-features {
	display: inline-block;

	margin-top: 1.5em;

	text-align: left;
}


/* PREÇOS */

.rental-prices {
	max-width: 800px;

	margin: 4em auto;

	text-align: center;
}


.rental-prices h3 {
	margin-bottom: 1.5em;

	color: var(--color-text);
}


.rental-price-grid {
	display: grid;

	grid-template-columns: repeat(3, 1fr);

	gap: 1em;
}


.rental-price-card {
	padding: 2em 1em;

	background: var(--color-white);

	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);

	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
}


.rental-price-card span {
	display: block;

	margin-bottom: 0.5em;

	font-size: 0.75em;
	font-weight: 700;

	letter-spacing: 0.08em;

	color: var(--color-text);
}


.rental-price-card strong {
	display: block;

	font-size: 2.4em;

	color: var(--color-primary);
}


.rental-price-note {
	margin-top: 1.5em;

	font-size: 0.8em;

	opacity: 0.65;
}


/* RESERVA */

.rental-booking {
	max-width: 750px;

	margin: 4em auto;

	text-align: center;
}


.rental-booking h2 {
	color: var(--color-text);
}


.external-note {
	margin-top: 1em;

	font-size: 0.8em;

	opacity: 0.65;
}


/* CONTACTOS HAPPY BIKES */

.rental-contact {
	max-width: 650px;

	margin: 4em auto 0 auto;

	padding-top: 3em;

	border-top: 1px solid var(--color-border);

	text-align: center;
}


.rental-contact h3 {
	color: var(--color-text);
}

.rental-bike-photo {
	display: block;
	width: 100%;
	max-width: 700px;
	height: auto;

	margin: 0 auto 2em auto;

	border-radius: var(--radius-card);
}


/* MOBILE */

@media screen and (max-width: 736px) {

	.rental-partner {
		flex-direction: column;

		gap: 1.5em;

		padding: 2em 1.5em;

		text-align: center;
	}


	.rental-partner-logo {
		min-width: 0;
	}


	.rental-price-grid {
		grid-template-columns: 1fr;
	}


	.rental-price-card {
		padding: 1.5em;
	}

}

/* -------------------------------- */
/* PLANO DE TREINO */
/* -------------------------------- */

.training-plan {
	display: flex;
	align-items: center;
	gap: 2.5em;

	max-width: 900px;
	margin: 3em auto;
	padding: 2.5em;

	background: var(--color-surface);

	border-radius: var(--radius-card);

	color: var(--color-text);
}


.training-plan-logo {
	width: 190px;
	flex-shrink: 0;

	display: flex;
	align-items: center;
	justify-content: center;
}


.training-plan-logo img {
	display: block;

	width: 100%;
	max-width: 180px;
	height: auto;

	object-fit: contain;
}


.training-plan-content {
	flex: 1;
}


.training-plan-label {
	display: block;

	margin-bottom: 0.7em;

	font-size: 0.75em;
	font-weight: 700;

	letter-spacing: 0.12em;
	text-transform: uppercase;

	color: var(--color-primary);
}


.training-plan-content h3 {
	margin-bottom: 0.7em;

	font-size: 1.5em;

	color: var(--color-text);
}


.training-plan-content p:last-child {
	margin-bottom: 0;
}


/* MOBILE */

@media screen and (max-width: 736px) {

	.training-plan {
		flex-direction: column;

		gap: 1.5em;

		padding: 2em 1.5em;

		text-align: center;
	}


	.training-plan-logo {
		width: 160px;
	}

}

/* -------------------------------- */
/* ALUGUER DE CARROS */
/* -------------------------------- */

.car-rental-page {
	color: var(--color-text);
}


.car-rental-info {
	max-width: 800px;

	margin: 4em auto;

	text-align: center;
}


.car-rental-info h2 {
	margin-bottom: 0.8em;

	color: var(--color-text);
}


.car-rental-features {
	display: inline-block;

	margin-top: 1.5em;

	padding-left: 1.3em;

	text-align: left;
}


.car-rental-features li {
	margin-bottom: 0.6em;
}

/* -------------------------------- */
/* EDIÇÃO DO EVENTO - HOME */
/* -------------------------------- */

.event-summary {
	margin-top: 0;
	margin-bottom: 3em;
}


.event-summary-date {
	min-width: 150px;
	text-align: center;
}


.event-summary-date span {
	display: block;

	font-size: 4.5em;
	font-weight: 700;
	line-height: 1;

	color: var(--color-primary);
}


.event-summary-date small {
	display: block;

	margin-top: 0.5em;

	font-size: 0.85em;
	font-weight: 600;

	letter-spacing: 0.1em;
	text-transform: uppercase;

	color: var(--color-text);
}


.event-summary-label {
	display: block;

	margin-bottom: 0.5em;

	font-size: 0.75em;
	font-weight: 700;

	letter-spacing: 0.12em;
	text-transform: uppercase;

	color: var(--color-primary);
}


.event-summary .home-registrations-content p {
	margin-bottom: 1em;
}


/* Mobile */

@media screen and (max-width: 736px) {

	.event-summary-date {
		min-width: 0;
	}

	.event-summary-date span {
		font-size: 4em;
	}

}
/* Classificações: reutiliza os cartões e botões do evento. */
.results-intro { max-width: 850px; margin: 0 auto; text-align: center; }
.results-grid .actions { display: flex; flex-direction: column; gap: 1em; margin: 0; }
.results-grid .actions li { display: block; padding: 0; margin: 0; }
.results-grid .button { display: block; width: 100%; }
.results-link-detail { font-size: 0.85em; }

.results-page .button { height: auto; line-height: 1.5; white-space: normal; padding: 1.2em 1.5em; }
