/*
 * Rottnest theme stylesheet.
 * I font del tema sono gestiti localmente e caricati via FTP nella cartella assets/fonts.
 */

@font-face {
	font-family: 'Rubik';
	src: url('../fonts/Rubik/Rubik-Italic-VariableFont_wght.woff2') format('woff2-variations'),
		url('../fonts/Rubik/Rubik-Italic-VariableFont_wght.ttf') format('truetype');
	font-weight: 100 900;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Rubik';
	src: url('../fonts/Rubik/Rubik-VariableFont_wght.woff2') format('woff2-variations'),
		url('../fonts/Rubik/Rubik-VariableFont_wght.ttf') format('truetype');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

html,
body {
	font-family: "Rubik", sans-serif;
	font-optical-sizing: auto;
	font-weight: 600;
	font-style: normal;
	margin: 0;
	padding: 0;
	max-width: 100%;
	overflow-x: clip;
	scrollbar-gutter: stable;
	background: white !important
}

/* --- 2. DESIGN TOKENS (Palette Brand) ---------------------------------- */
:root {
	/* Colori primari da Brand Identity */
	--sc-primary: #134485;
	/* Blu Sud Calce - Accent principale (CTA, header, titoli) */
	--sc-primary-dark: #0d3266;
	/* Variante scura per hover/active */
	--sc-secondary: #a5b5de;
	/* Azzurro polvere - Supporto, sfondi soft, badge */
	--sc-secondary-light: #eef1f9;
	/* Tint chiarissimo del secondario, per sfondi sezione */
	--sc-white: #ffffff;

	/* Colori funzionali derivati (neutri, per testo/bordi — NON del brief ma necessari per leggibilità) */
	--sc-text: #1c2b3d;
	/* Testo principale, quasi-nero blu per coerenza cromatica */
	--sc-text-muted: #5b6b82;
	/* Testo secondario */
	--sc-border: #dde3f0;
	/* Bordi soft coerenti col secondario */
	--sc-success: #1f8a4c;
	/* Per badge "Promo/Sconto" */
	--sc-bg-light: #f7f9fc;
	/* Sfondo alternato sezioni */

	/* Tipografia */
	--sc-font-heading: "Rubik", sans-serif;
	--sc-font-body: "Rubik", sans-serif;

	/* Radius & Shadow coerenti in tutto il sito */
	--sc-radius: 0.75rem;
	--sc-shadow-sm: 0 2px 10px rgba(19, 68, 133, 0.06);
	--sc-shadow-md: 0 10px 30px rgba(19, 68, 133, 0.12);

	--bs-primary: var(--sc-primary);
	--bs-primary-rgb: 19, 68, 133;
	--bs-secondary: var(--sc-secondary);
	--bs-link-color: var(--sc-primary);
	--bs-link-hover-color: var(--sc-primary-dark);
	--bs-body-font-family: var(--sc-font-body);
	--bs-body-color: var(--sc-text);
}

/* --- 3. RESET / BASE ---------------------------------------------------- */
html.theme-sc {
	scroll-behavior: smooth;
}

html.theme-sc body {
	font-family: var(--sc-font-body);
	color: var(--sc-text);
	background-color: var(--sc-white);
	overflow-x: hidden;
}

html.theme-sc h1,
html.theme-sc h2,
html.theme-sc h3,
html.theme-sc h4,
html.theme-sc h5,
html.theme-sc h6,
html.theme-sc .font-heading {
	font-family: var(--sc-font-heading);
	font-weight: 700;
	color: var(--sc-text);
	letter-spacing: -0.01em;
}

/* Accento tipografico moderno: parte del titolo in gradiente brand invece del solito blocco piatto */
html.theme-sc .sc-text-accent {
	background: linear-gradient(100deg, var(--sc-secondary) 0%, #ffffff 60%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

html.theme-sc .section-eyebrow {
	display: inline-block;
	font-family: var(--sc-font-heading);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sc-primary);
	background: var(--sc-secondary-light);
	padding: 0.35rem 0.9rem;
	border-radius: 50px;
	margin-bottom: 1rem;
}

/* Focus visibile per accessibilità (tastiera) su tutti gli elementi interattivi */
html.theme-sc a:focus-visible,
html.theme-sc button:focus-visible,
html.theme-sc input:focus-visible,
html.theme-sc textarea:focus-visible {
	outline: 3px solid var(--sc-secondary);
	outline-offset: 2px;
}

/* Rispetto preferenze utente per animazioni ridotte */
@media (prefers-reduced-motion: reduce) {
	html.theme-sc {
		scroll-behavior: auto;
	}

	html.theme-sc *,
	html.theme-sc *::before,
	html.theme-sc *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

html.theme-sc .btn {
	font-family: var(--sc-font-heading);
	font-weight: 600;
	border-radius: var(--sc-radius);
	padding: 0.75rem 1.75rem;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

html.theme-sc .btn-primary {
	background-color: var(--sc-primary);
	border-color: var(--sc-primary);
	color: var(--sc-white);
}

html.theme-sc .btn-primary:hover,
html.theme-sc .btn-primary:focus {
	background-color: var(--sc-primary-dark);
	border-color: var(--sc-primary-dark);
	transform: translateY(-2px);
	box-shadow: var(--sc-shadow-md);
	color: var(--sc-white);
}

html.theme-sc .btn-secondary {
	background-color: var(--sc-secondary);
	border-color: var(--sc-secondary);
	color: var(--sc-primary);
}

html.theme-sc .btn-secondary:hover,
html.theme-sc .btn-secondary:focus {
	background-color: var(--sc-secondary);
	filter: brightness(0.95);
	color: var(--sc-primary-dark);
	transform: translateY(-2px);
}

html.theme-sc .btn-outline-primary {
	color: var(--sc-primary);
	border-color: var(--sc-primary);
}

html.theme-sc .btn-outline-primary:hover,
html.theme-sc .btn-outline-primary:focus {
	background-color: var(--sc-primary);
	border-color: var(--sc-primary);
	color: var(--sc-white);
}

html.theme-sc .btn-outline-light {
	color: var(--sc-white);
	border-color: rgba(255, 255, 255, 0.6);
}

html.theme-sc .btn-outline-light:hover {
	background-color: var(--sc-white);
	color: var(--sc-primary);
}

/* CTA "Richiedi Preventivo" — variante speciale per l'header */
html.theme-sc .btn-cta-header {
	background-color: var(--sc-primary);
	color: var(--sc-white) !important;
	border-radius: 50px;
	padding: 0.6rem 1.4rem;
	font-size: 0.95rem;
	white-space: nowrap;
	box-shadow: var(--sc-shadow-sm);
}

html.theme-sc .btn-cta-header:hover {
	background-color: var(--sc-primary-dark);
	transform: translateY(-1px);
	color: var(--sc-white) !important;
}

/* --- 5. OVERRIDE LINK ----------------------------------------------------- */
html.theme-sc a {
	color: var(--sc-primary);
	text-decoration: none;
	transition: color 0.2s ease;
}

html.theme-sc a:hover {
	color: var(--sc-primary-dark);
}

/* --- 6. HEADER / NAVBAR --------------------------------------------------- */
html.theme-sc .sc-header {
	background-color: rgba(255, 255, 255, 0.85);
	backdrop-filter: saturate(180%) blur(10px);
	-webkit-backdrop-filter: saturate(180%) blur(10px);
	box-shadow: 0 1px 0 rgba(19, 68, 133, 0.06);
	padding-top: 0.6rem;
	padding-bottom: 0.6rem;
	transition: padding 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

html.theme-sc .sc-header .navbar-brand img {
	height: 52px;
	width: auto;
	transition: height 0.3s ease;
}

/* Riduzione header on-scroll (gestita via JS aggiungendo .sc-header--scrolled) */
html.theme-sc .sc-header.sc-header--scrolled {
	padding-top: 0.3rem;
	padding-bottom: 0.3rem;
	box-shadow: 0 4px 20px rgba(19, 68, 133, 0.14);
}

html.theme-sc .sc-header.sc-header--scrolled .navbar-brand img {
	height: 40px;
}

html.theme-sc .sc-header .nav-link {
	font-family: var(--sc-font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--sc-text);
	padding: 0.5rem 1rem !important;
	position: relative;
}

html.theme-sc .sc-header .nav-link:hover,
html.theme-sc .sc-header .nav-link.active {
	color: var(--sc-primary);
}

html.theme-sc .sc-header .nav-link.active::after {
	content: "";
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: 0.15rem;
	height: 3px;
	background: var(--sc-primary);
	border-radius: 3px;
}

html.theme-sc .sc-topbar {
	background-color: var(--sc-primary);
	color: var(--sc-white);
	font-size: 0.85rem;
}

html.theme-sc .sc-topbar a {
	color: var(--sc-white);
	opacity: 0.9;
}

html.theme-sc .sc-topbar a:hover {
	opacity: 1;
	color: var(--sc-secondary);
}

/* Pagina contatti: form coerente con card, input e CTA del progetto. */
html.theme-sc .site-page--contatti .site-contact-form {
	width: 100%;
}

html.theme-sc .site-page--contatti .site-contact-form-label {
	display: inline-block;
	margin-bottom: 0.45rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--sc-text);
}

html.theme-sc .site-page--contatti .site-contact-form-control {
	min-height: 48px;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	background-color: var(--sc-white);
	color: var(--sc-text);
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

html.theme-sc .site-page--contatti textarea.site-contact-form-control {
	min-height: 140px;
	resize: vertical;
}

html.theme-sc .site-page--contatti .site-contact-form-control:focus {
	border-color: var(--sc-primary);
	box-shadow: 0 0 0 0.2rem rgba(19, 68, 133, 0.14);
}

html.theme-sc .site-page--contatti .site-contact-form-check {
	padding-top: 0.25rem;
}

html.theme-sc .site-page--contatti .site-contact-form-check-label {
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--sc-text-muted);
}

html.theme-sc .site-page--contatti .site-contact-form-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
}

/* Le icone del contenuto Contatti sono volutamente più compatte. */
html.theme-sc .site-page--contatti svg {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
}

/* --- 7. HERO -------------------------------------------------------------- */
html.theme-sc .sc-hero {
	position: relative;
	background: linear-gradient(120deg, var(--sc-primary) 0%, var(--sc-primary-dark) 100%);
	color: var(--sc-white);
	overflow: hidden;
	padding-top: 6rem;
	padding-bottom: 7rem;
}

html.theme-sc .sc-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 85% 20%, rgba(165, 181, 222, 0.35) 0%, transparent 45%),
		radial-gradient(circle at 10% 90%, rgba(165, 181, 222, 0.2) 0%, transparent 40%);
	pointer-events: none;
}

html.theme-sc .sc-hero h1 {
	color: var(--sc-white);
	font-size: clamp(2.2rem, 4vw, 3.4rem);
	line-height: 1.15;
}

html.theme-sc .sc-hero .lead {
	color: rgba(255, 255, 255, 0.88);
	font-size: 1.15rem;
	max-width: 560px;
}

html.theme-sc .sc-hero .sc-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: var(--sc-white);
	border-radius: 50px;
	padding: 0.4rem 1rem;
	font-size: 0.85rem;
	font-weight: 600;
	backdrop-filter: blur(4px);
}

/* Wave divider sotto l'hero per staccare in modo elegante dalla sezione sotto */
html.theme-sc .sc-hero-wave {
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	line-height: 0;
}

/* --- 8. CARD CATEGORIE / SERVIZI ------------------------------------------ */
html.theme-sc .sc-card {
	background: var(--sc-white);
	border: 1px solid var(--sc-border);
	border-radius: var(--sc-radius);
	padding: 2rem 1.5rem;
	height: 100%;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

html.theme-sc .sc-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--sc-shadow-md);
	border-color: var(--sc-secondary);
}

html.theme-sc .sc-card .sc-icon-wrap {
	width: 64px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--sc-secondary-light);
	color: var(--sc-primary);
	border-radius: 1rem;
	margin-bottom: 1.25rem;
	font-size: 1.6rem;
	transition: background-color 0.25s ease, color 0.25s ease;
}

html.theme-sc .sc-card:hover .sc-icon-wrap {
	background: var(--sc-primary);
	color: var(--sc-white);
}

html.theme-sc .sc-card .sc-card-link {
	font-weight: 700;
	font-family: var(--sc-font-heading);
	font-size: 0.9rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

html.theme-sc .sc-card .sc-card-link svg {
	transition: transform 0.2s ease;
}

html.theme-sc .sc-card:hover .sc-card-link svg {
	transform: translateX(4px);
}

/* --- 9. UTILITY SEZIONI --------------------------------------------------- */
html.theme-sc .sc-section {
	padding: 5rem 0;
}

html.theme-sc .sc-section--bg {
	background-color: var(--sc-bg-light);
}

html.theme-sc .sc-section--primary {
	background-color: var(--sc-primary);
	color: var(--sc-white);
}

/* --- 10. FOOTER ------------------------------------------------------------ */
html.theme-sc .sc-footer {
	background-color: #0d2038;
	/* blu ancora più scuro per profondità, coerente con --sc-primary-dark */
	color: rgba(255, 255, 255, 0.75);
}

html.theme-sc .sc-footer h5 {
	color: var(--sc-white);
	font-size: 1.05rem;
	margin-bottom: 1.25rem;
}

html.theme-sc .sc-footer a {
	color: rgba(255, 255, 255, 0.7);
}

html.theme-sc .sc-footer a:hover {
	color: var(--sc-secondary);
}

html.theme-sc .sc-footer hr {
	border-color: rgba(255, 255, 255, 0.15);
}

html.theme-sc .sc-footer .sc-footer-bottom {
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.55);
}

html.theme-sc .sc-social-icon {
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.08);
	border-radius: 50%;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

html.theme-sc .sc-social-icon:hover {
	background: var(--sc-primary);
	transform: translateY(-3px);
}

/* --- 11. BACK TO TOP -------------------------------------------------------- */
html.theme-sc .sc-back-to-top {
	position: fixed;
	bottom: 1.5rem;
	right: 1.5rem;
	width: 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--sc-primary);
	color: var(--sc-white);
	border-radius: 50%;
	box-shadow: var(--sc-shadow-md);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: all 0.3s ease;
	z-index: 999;
}

html.theme-sc .sc-back-to-top.show {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

html.theme-sc .sc-back-to-top:hover {
	background: var(--sc-primary-dark);
	color: var(--sc-white);
}

/* Regole specifiche della pagina categorie */
/* Stili specifici di questa pagina: righe categoria alternate (immagine/testo) */
html.theme-sc .sc-cat-row {
	scroll-margin-top: 110px;
}

/* per non nascondere il titolo sotto l'header sticky quando si arriva da un'ancora */
html.theme-sc .sc-cat-img {
	border-radius: var(--sc-radius);
	box-shadow: var(--sc-shadow-md);
	width: 100%;
	height: 340px;
	object-fit: cover;
}

html.theme-sc .sc-cat-number {
	font-family: var(--sc-font-heading);
	font-weight: 800;
	font-size: 3.5rem;
	color: var(--sc-secondary);
	line-height: 1;
	opacity: 0.9;
}

html.theme-sc .sc-tag-list .badge {
	background: var(--sc-secondary-light);
	color: var(--sc-primary);
	font-weight: 600;
	font-size: 0.8rem;
	padding: 0.5em 0.9em;
	margin: 0 0.35rem 0.35rem 0;
	border-radius: 50px;
}

/* Tema alternativo, isolato alle pagine theme-app */
html.theme-app {
	--app-primary: #134485;
	--app-secondry: #a5b5de;
	--app-secondary: var(--app-secondry);
	--app-primary-rgb: 19, 68, 133;
	--app-secondry-rgb: 165, 181, 222;
	--app-dark: #101828;
	--app-muted: #667085;
	--app-light: #f4f7fc;
	--app-white: #ffffff;
	--app-border: #e5ebf5;
	--app-radius: 1.5rem;
	--app-radius-lg: 2rem;
	--app-shadow: 0 1.5rem 4rem rgba(16, 24, 40, .10);
	--app-shadow-soft: 0 .75rem 2rem rgba(16, 24, 40, .075);
}

html.theme-app * {
	box-sizing: border-box;
}

html.theme-app {
	scroll-behavior: smooth;
}

html.theme-app body {
	margin: 0;
	font-family: "Rubik", sans-serif;
	color: var(--app-dark);
	background:
		radial-gradient(circle at 8% 8%, rgba(var(--app-secondry-rgb), .18), transparent 26rem),
		radial-gradient(circle at 100% 18%, rgba(var(--app-primary-rgb), .08), transparent 28rem),
		#fff;
	overflow-x: hidden;
}

html.theme-app img {
	max-width: 100%;
	height: auto;
}

html.theme-app a {
	color: var(--app-primary);
}

html.theme-app a:hover {
	color: #0d2f5d;
}

html.theme-app .text-app-primary {
	color: var(--app-primary) !important;
}

html.theme-app .text-app-secondry,
html.theme-app .text-app-secondary {
	color: var(--app-secondry) !important;
}

html.theme-app .text-app-muted {
	color: var(--app-muted) !important;
}

html.theme-app .bg-app-primary {
	background-color: var(--app-primary) !important;
}

html.theme-app .bg-app-secondry,
html.theme-app .bg-app-secondary {
	background-color: var(--app-secondry) !important;
}

html.theme-app .bg-app-light {
	background-color: var(--app-light) !important;
}

html.theme-app .border-app {
	border-color: var(--app-border) !important;
}

html.theme-app .topbar {
	background: var(--app-primary);
	color: rgba(255, 255, 255, .86);
	font-size: .92rem;
}

html.theme-app .topbar a {
	color: rgba(255, 255, 255, .92);
	text-decoration: none;
}

html.theme-app .topbar a:hover {
	color: #fff;
}

html.theme-app .navbar-app {
	background: rgba(255, 255, 255, .94);
	border-bottom: 1px solid rgba(229, 235, 245, .85);
	backdrop-filter: blur(16px);
}

html.theme-app .navbar-brand {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	color: var(--app-primary) !important;
	font-weight: 900;
	letter-spacing: -.035em;
}

html.theme-app .brand-mark {
	width: 2.6rem;
	height: 2.6rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 1rem;
	color: #fff;
	background:
		linear-gradient(135deg, var(--app-primary), #0e3264),
		var(--app-primary);
	box-shadow: 0 .75rem 1.5rem rgba(var(--app-primary-rgb), .20);
}

html.theme-app .navbar .nav-link {
	color: var(--app-dark);
	font-weight: 750;
	font-size: .95rem;
	border-radius: 999px;
	padding-inline: .85rem !important;
}

html.theme-app .navbar .nav-link.active,
html.theme-app .navbar .nav-link:hover {
	color: var(--app-primary);
	background: rgba(var(--app-primary-rgb), .06);
}

html.theme-app .btn {
	--bs-btn-padding-y: .86rem;
	--bs-btn-padding-x: 1.2rem;
	--bs-btn-border-radius: 999px;
	font-weight: 800;
	letter-spacing: -.01em;
}

html.theme-app .btn-app-primary {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--app-primary);
	--bs-btn-border-color: var(--app-primary);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #0d2f5d;
	--bs-btn-hover-border-color: #0d2f5d;
	box-shadow: 0 .85rem 1.8rem rgba(var(--app-primary-rgb), .22);
}

html.theme-app .btn-app-secondry,
html.theme-app .btn-app-secondary {
	--bs-btn-color: var(--app-primary);
	--bs-btn-bg: var(--app-secondry);
	--bs-btn-border-color: var(--app-secondry);
	--bs-btn-hover-color: var(--app-primary);
	--bs-btn-hover-bg: #93a6d7;
	--bs-btn-hover-border-color: #93a6d7;
}

html.theme-app .btn-app-outline {
	--bs-btn-color: var(--app-primary);
	--bs-btn-border-color: rgba(var(--app-primary-rgb), .22);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: var(--app-primary);
	--bs-btn-hover-border-color: var(--app-primary);
}

html.theme-app .hero {
	position: relative;
	overflow: hidden;
	padding: 7rem 0 5rem;
	color: #fff;
	background:
		linear-gradient(135deg, rgba(var(--app-primary-rgb), .98), rgba(13, 47, 93, .92)),
		radial-gradient(circle at 84% 20%, rgba(var(--app-secondry-rgb), .45), transparent 22rem);
}

html.theme-app .hero::before,
html.theme-app .hero::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

html.theme-app .hero::before {
	width: 27rem;
	height: 27rem;
	right: -9rem;
	top: -9rem;
	background: rgba(var(--app-secondry-rgb), .20);
}

html.theme-app .hero::after {
	width: 18rem;
	height: 18rem;
	left: -7rem;
	bottom: -8rem;
	background: rgba(255, 255, 255, .08);
}

html.theme-app .hero .container {
	position: relative;
	z-index: 2;
}

html.theme-app .hero-title {
	font-weight: 950;
	letter-spacing: -.055em;
	line-height: .98;
}

html.theme-app .hero-lead {
	max-width: 60rem;
	color: rgba(255, 255, 255, .78);
}

html.theme-app .eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	color: var(--app-secondry);
	font-size: .78rem;
	font-weight: 900;
	letter-spacing: .14em;
	text-transform: uppercase;
}

html.theme-app .section-padding {
	padding: 5.5rem 0;
}

html.theme-app .section-title {
	font-weight: 950;
	letter-spacing: -.045em;
	line-height: 1.02;
}

html.theme-app .section-lead {
	color: var(--app-muted);
	font-size: 1.08rem;
}

html.theme-app .glass-card {
	border: 1px solid rgba(255, 255, 255, .18);
	background: rgba(255, 255, 255, .12);
	backdrop-filter: blur(16px);
	box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .18);
	border-radius: var(--app-radius-lg);
}

html.theme-app .card-app {
	height: 100%;
	border: 1px solid var(--app-border);
	border-radius: var(--app-radius);
	background: rgba(255, 255, 255, .94);
	box-shadow: var(--app-shadow-soft);
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
	overflow: hidden;
}

html.theme-app .card-app:hover {
	transform: translateY(-6px);
	border-color: rgba(var(--app-primary-rgb), .22);
	box-shadow: var(--app-shadow);
}

html.theme-app .card-app .card-body {
	padding: 1.75rem;
}

html.theme-app .icon-box {
	width: 3.35rem;
	height: 3.35rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 1.1rem;
	font-size: 1.42rem;
	color: var(--app-primary);
	background: rgba(var(--app-secondry-rgb), .46);
	margin-bottom: 1.15rem;
}

html.theme-app .stat-card {
	border-radius: var(--app-radius);
	background: #fff;
	border: 1px solid var(--app-border);
	box-shadow: var(--app-shadow-soft);
	padding: 1.4rem;
}

html.theme-app .visual-panel {
	min-height: 420px;
	border-radius: var(--app-radius-lg);
	background:
		linear-gradient(135deg, rgba(var(--app-primary-rgb), .93), rgba(13, 47, 93, .78)),
		repeating-linear-gradient(45deg, rgba(255, 255, 255, .12) 0 1px, transparent 1px 14px);
	position: relative;
	overflow: hidden;
	box-shadow: var(--app-shadow);
}

html.theme-app .visual-panel::before {
	content: "";
	position: absolute;
	width: 18rem;
	height: 18rem;
	border-radius: 50%;
	right: -5rem;
	bottom: -5rem;
	background: rgba(var(--app-secondry-rgb), .34);
}

html.theme-app .visual-panel .visual-content {
	position: relative;
	z-index: 2;
}

html.theme-app .service-link {
	text-decoration: none;
	color: inherit;
	display: block;
	height: 100%;
}

html.theme-app .service-link .arrow {
	width: 2.25rem;
	height: 2.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: rgba(var(--app-primary-rgb), .08);
	color: var(--app-primary);
	transition: transform .2s ease, background .2s ease;
}

html.theme-app .service-link:hover .arrow {
	transform: translateX(4px);
	color: #fff;
	background: var(--app-primary);
}

html.theme-app .cta-band {
	border-radius: var(--app-radius-lg);
	padding: 3rem;
	color: #fff;
	background:
		radial-gradient(circle at right top, rgba(var(--app-secondry-rgb), .36), transparent 24rem),
		linear-gradient(135deg, var(--app-primary), #0e3264);
	box-shadow: var(--app-shadow);
	overflow: hidden;
}

html.theme-app .breadcrumb-app {
	--bs-breadcrumb-divider-color: rgba(255, 255, 255, .55);
	color: rgba(255, 255, 255, .68);
}

html.theme-app .breadcrumb-app a {
	color: rgba(255, 255, 255, .86);
	text-decoration: none;
}

html.theme-app .breadcrumb-app .active {
	color: rgba(255, 255, 255, .68);
}

html.theme-app .check-list {
	display: grid;
	gap: .85rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

html.theme-app .check-list li {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	color: var(--app-muted);
}

html.theme-app .check-list svg {
	color: var(--app-primary);
	margin-top: .16rem;
}

html.theme-app .form-control,
html.theme-app .form-select {
	border-color: var(--app-border);
	border-radius: 1rem;
	padding: .9rem 1rem;
}

html.theme-app .form-control:focus,
html.theme-app .form-select:focus {
	border-color: rgba(var(--app-primary-rgb), .5);
	box-shadow: 0 0 0 .25rem rgba(var(--app-primary-rgb), .12);
}

html.theme-app .footer {
	color: rgba(255, 255, 255, .72);
	background: #071a33;
}

html.theme-app .footer a {
	color: rgba(255, 255, 255, .82);
	text-decoration: none;
}

html.theme-app .footer a:hover {
	color: #fff;
}

html.theme-app .footer .footer-title {
	color: #fff;
	font-weight: 900;
}

html.theme-app .floating-whatsapp {
	position: fixed;
	right: 1.15rem;
	bottom: 1.15rem;
	z-index: 1030;
	width: 3.35rem;
	height: 3.35rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	color: #fff;
	background: #25d366;
	box-shadow: 0 .9rem 2rem rgba(37, 211, 102, .32);
	text-decoration: none;
}

html.theme-app .floating-whatsapp:hover {
	color: #fff;
	transform: translateY(-2px);
}

@media (max-width: 991.98px) {
	html.theme-app .hero {
		padding: 5.75rem 0 3.75rem;
	}

	html.theme-app .section-padding {
		padding: 4rem 0;
	}

	html.theme-app .cta-band {
		padding: 2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html.theme-app {
		scroll-behavior: auto;
	}

	html.theme-app .card-app,
	html.theme-app .floating-whatsapp,
	html.theme-app .service-link .arrow {
		transition: none;
	}
}
