/* =================================================================
   SOLL · Sistema de Design
   Ficheiro central de estilos. Alterar aqui muda o site inteiro.
   Identidade: gradiente azul -> roxo -> rosa, tipografia Inter.
   ================================================================= */

:root {
	/* Marca */
	--soll-grad: linear-gradient(135deg, #4f46e5 0%, #9333ea 50%, #ec4899 100%);
	--soll-brand: #7c3aed;
	--soll-brand-dark: #6d28d9;

	/* Neutros */
	--soll-ink: #0f172a;        /* texto principal */
	--soll-body: #334155;       /* texto corrido */
	--soll-muted: #6b7280;      /* texto secundário */
	--soll-surface: #ffffff;
	--soll-surface-2: #f8fafc;
	--soll-border: #e5e7eb;

	/* Estado */
	--soll-ring: rgba(124, 58, 237, 0.25);

	/* Forma */
	--soll-radius: 14px;
	--soll-radius-lg: 18px;
	--soll-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
	--soll-shadow-lg: 0 20px 50px rgba(15, 23, 42, 0.18);
}

/* ---------- Base ---------- */
body {
	font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--soll-ink);
	padding-top: 72px;           /* compensa a navbar fixa */
	-webkit-font-smoothing: antialiased;
}

p { line-height: 1.75; }

/* Texto com gradiente da marca */
.soll-gradient-text {
	background: var(--soll-grad);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* ---------- Botões da marca ---------- */
.btn-soll {
	background: var(--soll-grad);
	background-size: 140% 140%;
	background-position: 0% 50%;
	border: none;
	color: #fff;
	font-weight: 600;
	border-radius: 10px;
	padding: 10px 26px;
	transition: background-position 0.4s ease, box-shadow 0.2s ease, transform 0.05s ease;
}
.btn-soll:hover {
	color: #fff;
	background-position: 100% 50%;
	box-shadow: 0 8px 22px rgba(124, 58, 237, 0.4);
}
.btn-soll:active { transform: translateY(1px); }

.btn-soll-sm { padding: 6px 18px; border-radius: 8px; }

/* ---------- Navbar ---------- */
.navbar-soll {
	background: rgba(15, 23, 42, 0.92);
	backdrop-filter: saturate(180%) blur(10px);
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.18);
}
.navbar-soll .navbar-brand {
	font-weight: 700;
	letter-spacing: 0.3px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.navbar-soll .nav-link {
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: color 0.15s ease;
}
.navbar-soll .nav-link:hover,
.navbar-soll .nav-link.active { color: #c4b5fd !important; }
.navbar-soll .dropdown-menu { border: none; box-shadow: var(--soll-shadow); border-radius: var(--soll-radius); }

/* ---------- Carrossel ---------- */
.soll-carousel { border-radius: var(--soll-radius-lg); overflow: hidden; box-shadow: var(--soll-shadow-lg); }
.soll-carousel .carousel-item img {
	height: 480px;
	width: 100%;
	object-fit: cover;
}
.soll-carousel .carousel-item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15,23,42,0.05) 0%, rgba(15,23,42,0.55) 100%);
}
.soll-carousel .carousel-caption {
	z-index: 2;
	bottom: 3rem;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
}
.soll-carousel .carousel-caption h2 {
	font-weight: 700;
	font-size: clamp(1.3rem, 3vw, 2.2rem);
}

/* ---------- Cartões / Conteúdo ---------- */
.soll-card {
	border: none;
	border-radius: var(--soll-radius-lg);
	background: var(--soll-surface-2);
	box-shadow: var(--soll-shadow);
}
.soll-card p { color: var(--soll-body); }

.soll-section-title { font-weight: 800; }

/* Logótipos de parceiros */
.soll-partners img {
	max-height: 64px;
	width: auto;
	filter: grayscale(100%);
	opacity: 0.75;
	transition: filter 0.25s ease, opacity 0.25s ease;
}
.soll-partners img:hover { filter: grayscale(0); opacity: 1; }

/* ---------- Footer ---------- */
.soll-footer {
	background: var(--soll-ink);
	color: #cbd5e1;
}

/* ---------- Secção de destaque / Lead ---------- */
.soll-lead {
	font-size: 1.15rem;
	color: var(--soll-body);
	line-height: 1.8;
}
.soll-eyebrow {
	display: inline-block;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-bottom: 0.5rem;
}

/* ---------- Cartões-pilar com ícone ---------- */
.soll-feature {
	height: 100%;
	background: var(--soll-surface);
	border: 1px solid var(--soll-border);
	border-radius: var(--soll-radius-lg);
	padding: 28px 26px;
	box-shadow: var(--soll-shadow);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.soll-feature:hover {
	transform: translateY(-6px);
	box-shadow: var(--soll-shadow-lg);
}
.soll-feature-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--soll-grad);
	color: #fff;
	font-size: 1.6rem;
	margin-bottom: 16px;
	box-shadow: 0 8px 18px rgba(124, 58, 237, 0.3);
}
.soll-feature h3 {
	font-size: 1.1rem;
	font-weight: 700;
	margin-bottom: 8px;
}
.soll-feature p {
	color: var(--soll-muted);
	font-size: 0.95rem;
	margin: 0;
}

/* ---------- Faixa de destaque (gradiente) ---------- */
.soll-band {
	background: var(--soll-grad);
	color: #fff;
	border-radius: var(--soll-radius-lg);
	padding: 40px;
	box-shadow: var(--soll-shadow-lg);
}
.soll-band .soll-eyebrow { color: rgba(255,255,255,0.85); }

/* Faixa de destaque full-width (de ponta a ponta), acima do footer */
.soll-band-full {
	background: var(--soll-grad);
	color: #fff;
	padding: 72px 0;
	position: relative;
	overflow: hidden;
	box-shadow: inset 0 8px 24px rgba(0,0,0,0.12);
}
.soll-band-full .bi-quote {
	font-size: 3rem;
	opacity: 0.55;
	line-height: 1;
}
.soll-band-full .soll-band-text {
	font-size: clamp(1.4rem, 3vw, 2.1rem);
	font-weight: 700;
	line-height: 1.4;
	max-width: 900px;
	margin: 0.5rem auto 0;
	text-shadow: 0 2px 16px rgba(0,0,0,0.18);
}
/* Brilho decorativo subtil */
.soll-band-full::before {
	content: "";
	position: absolute;
	top: -40%;
	right: -10%;
	width: 420px;
	height: 420px;
	background: radial-gradient(circle, rgba(255,255,255,0.18), transparent 70%);
	pointer-events: none;
}

@media (max-width: 575.98px) {
	.soll-band-full { padding: 48px 0; }
}

/* Animação subtil de entrada */
.soll-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.soll-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Responsivo (telemóveis e tablets) ---------- */

/* Tablet */
@media (max-width: 991.98px) {
	.soll-carousel .carousel-item img { height: 380px; }
}

/* Telemóvel */
@media (max-width: 575.98px) {
	body { padding-top: 64px; }
	.soll-carousel { border-radius: var(--soll-radius); }
	.soll-carousel .carousel-item img { height: 260px; }
	.soll-carousel .carousel-caption { bottom: 1rem; }
	.soll-carousel .carousel-caption h2 { font-size: 1.05rem; margin-bottom: 0.25rem; }
	.soll-carousel .carousel-caption .btn-soll { padding: 7px 18px; font-size: 0.9rem; }
	/* Esconde a barra de indicadores em ecrãs muito pequenos para não tapar o texto */
	.soll-carousel .carousel-indicators { margin-bottom: 0.25rem; }
	.soll-partners img { max-height: 48px; }
}

/* Garante que imagens nunca rebentam o layout */
img { max-width: 100%; }

/* ---------- Formulários (campos) ---------- */
.soll-input {
	width: 100%;
	padding: 12px 14px;
	font-size: 0.95rem;
	color: var(--soll-ink);
	background: var(--soll-surface-2);
	border: 1.5px solid var(--soll-border);
	border-radius: 10px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.soll-input:focus {
	outline: none;
	background: #fff;
	border-color: var(--soll-brand);
	box-shadow: 0 0 0 4px var(--soll-ring);
}
