/* ==========================================================================
   Ethos Transporte & Serviços — por cima do custom.css do template.

   Linguagem: corporativa e sóbria. Cantos quase rectos (4–6px), sem
   pílulas, sem sombras com brilho, sem cartões a saltar no hover.

   Cores do logotipo (as mesmas de config/company.php do sistema):
   - Azul-marinho #182E4F — a estrutura: títulos, barra de topo, rodapé,
     superfícies escuras. #0B2344 é o passo mais escuro.
   - Vermelho #EC1F28 — acções e destaques, com moderação. Nos botões com
     texto branco usa-se #D0141D, um passo abaixo, para contraste AA.

   Os nomes das classes mantêm o prefixo `moz-` herdado da primeira
   instalação — é só um espaço de nomes, o visitante não o vê.
   ========================================================================== */

:root {
	--default-font:    "Source Sans 3", "Segoe UI", Arial, sans-serif;
	--accent-font:     "Montserrat", "Segoe UI", Arial, sans-serif;

	--primary-color:   #0B2344;
	--secondary-color: #F7F8FA;
	--accent-color:    #D0141D;
	--text-color:      #4A5566;
	--divider-color:   #E5E7EB;

	--moz-accent:      #D0141D;   /* acção: botões, links */
	--moz-accent-2:    #EC1F28;   /* o vermelho do símbolo, sobre escuro */
	--moz-accent-soft: #FEF2F2;
	--moz-ink:         #0B2344;   /* títulos e superfícies escuras */
	--moz-ink-2:       #182E4F;   /* o azul-marinho do logotipo */
	--moz-cream:       #F7F8FA;   /* secção alternada */
	--moz-sand:        #F7F8FA;
	--moz-green:       #15803D;
	--moz-red:         #B91C1C;
	--moz-radius:      6px;
	--moz-shadow:      0 1px 2px rgba(11,35,68,.06), 0 8px 24px rgba(11,35,68,.08);
}

body { color: var(--text-color); background: #fff; font-family: var(--default-font); font-size: 17px; line-height: 1.6; }
h1, h2, h3, h4 { font-family: var(--accent-font); letter-spacing: -0.01em; color: var(--moz-ink); }
em { font-style: normal; }

/* O template põe maiúscula em cada palavra. Em português dá "Venda De
   Viaturas" — o texto já está escrito como deve ser lido. */
.main-menu ul li a, .slicknav_nav li a, .btn-default, .section-title h3,
.page-header-box ol li.breadcrumb-item, .footer-links ul li a,
.our-faqs-accordion .accordion-item .accordion-button { text-transform: none; }

/* ── Botões ────────────────────────────────────────────────────────────── */

.moz-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 24px;
	border-radius: 4px;
	font-family: var(--accent-font); font-weight: 600; font-size: 15px; line-height: 1.2;
	border: 1.5px solid transparent;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
	white-space: nowrap;
}
/* Ícones só nos botões onde dizem alguma coisa (WhatsApp, telefone). */
.moz-btn i { display: none; }
.moz-btn i.fa-whatsapp, .moz-btn i.fa-phone { display: inline-block; font-size: 16px; }
.moz-btn-primary { background: var(--moz-accent); border-color: var(--moz-accent); color: #fff; }
.moz-btn-primary:hover { background: #0A6A98; border-color: #0A6A98; color: #fff; }
.moz-btn-dark { background: var(--moz-ink); border-color: var(--moz-ink); color: #fff; }
.moz-btn-dark:hover { background: var(--moz-ink-2); border-color: var(--moz-ink-2); color: #fff; }
.moz-btn-ghost { border-color: rgba(255,255,255,.6); color: #fff; background: transparent; }
.moz-btn-ghost:hover { background: #fff; border-color: #fff; color: var(--moz-ink); }
.moz-btn-outline { border-color: #C5D0DE; color: var(--moz-ink); background: #fff; }
.moz-btn-outline:hover { border-color: var(--moz-ink); color: var(--moz-ink); }
.moz-btn-wa { background: #1E9E57; border-color: #1E9E57; color: #fff; }
.moz-btn-wa:hover { background: #178247; border-color: #178247; color: #fff; }
.moz-btn-sm { padding: 9px 16px; font-size: 14px; }
.moz-btn[disabled] { opacity: .6; cursor: wait; }

/* Cartões escuros: o botão fantasma precisa de outra cor de contorno. */
.moz-help-card .moz-btn-ghost { border-color: rgba(255,255,255,.35); }

/* ── Barra de topo e cabeçalho ─────────────────────────────────────────── */

.moz-topbar { background: var(--moz-ink); color: rgba(255,255,255,.7); font-size: 14px; }
.moz-topbar .container { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 8px; padding-bottom: 8px; }
.moz-topbar a { color: rgba(255,255,255,.85); }
.moz-topbar a:hover { color: #fff; }
.moz-topbar i { color: rgba(255,255,255,.5); margin-right: 6px; }
.moz-topbar .moz-topbar-left { display: flex; gap: 24px; flex-wrap: wrap; }
.moz-topbar .moz-topbar-right { display: flex; gap: 16px; }
.moz-topbar .moz-topbar-right i { margin: 0; color: rgba(255,255,255,.7); }
@media (max-width: 767px) { .moz-topbar .moz-topbar-hide-sm { display: none; } }

.main-header { background: #fff; border-bottom: 1px solid var(--divider-color); }
.main-header .header-sticky.active { box-shadow: 0 1px 0 var(--divider-color); }
.moz-brand-logo { height: 50px; width: auto; max-width: 280px; object-fit: contain; }
.main-menu ul li a { font-family: var(--accent-font); font-weight: 500; font-size: 15px; color: var(--moz-ink); }
.main-menu ul li.active > a, .main-menu ul li a:hover { color: var(--moz-accent) !important; }
@media (max-width: 991px) { .moz-brand-logo { height: 40px; max-width: 220px; } }

/* ── Hero ──────────────────────────────────────────────────────────────── */

.moz-hero {
	position: relative;
	min-height: 640px;
	display: flex; align-items: center;
	padding: 100px 0 170px;
	color: #fff;
	background: var(--moz-ink) url('../images/post-1.jpg') center 60% / cover no-repeat;
	overflow: hidden;
}
.moz-hero::before {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(11,35,68,.88) 0%, rgba(11,35,68,.72) 45%, rgba(11,35,68,.25) 100%);
}
.moz-hero .container { position: relative; z-index: 1; }
.moz-eyebrow {
	display: block;
	font-family: var(--accent-font);
	font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
	color: var(--moz-accent);
	margin-bottom: 12px;
}
.moz-hero .moz-eyebrow, .moz-section-dark .moz-eyebrow, .moz-eyebrow.is-light { color: #F7A1A5; }
.moz-hero h1 { color: #fff; font-size: clamp(34px, 4.4vw, 56px); line-height: 1.12; font-weight: 700; margin-bottom: 20px; max-width: 760px; }
.moz-hero h1 em { color: #fff; }
.moz-hero .lead { color: rgba(255,255,255,.85); font-size: 19px; line-height: 1.6; max-width: 600px; margin-bottom: 32px; }
.moz-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.moz-hero-badges, .moz-hero-caption { display: none; }

@media (max-width: 767px) {
	.moz-hero { min-height: 0; padding: 60px 0 140px; background-position: 60% center; }
}

/* ── Pesquisa ──────────────────────────────────────────────────────────── */

.moz-search {
	background: #fff;
	border-radius: var(--moz-radius);
	border: 1px solid var(--divider-color);
	box-shadow: 0 12px 40px rgba(18,38,74,.14);
	padding: 28px 28px 22px;
	position: relative; z-index: 3;
}
.moz-search-overlap { margin-top: -110px; }
.moz-search-head { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-bottom: 18px; flex-wrap: wrap; }
.moz-search-head h2 { font-size: 22px; font-weight: 600; margin: 0; }
.moz-search-head p { margin: 0; font-size: 15px; color: #6B7585; }
.moz-search label { display: block; font-size: 14px; font-weight: 600; color: var(--moz-ink); margin-bottom: 6px; }
.moz-search .form-control, .moz-search .form-select {
	height: 48px; border-radius: 4px; border: 1px solid #C9D3E0; background-color: #fff; font-size: 16px; color: var(--moz-ink);
}
.moz-search .form-control:focus, .moz-search .form-select:focus { border-color: var(--moz-accent); box-shadow: 0 0 0 3px rgba(24,46,79,.15); }
.moz-search .moz-row-dates { display: grid; grid-template-columns: 1fr 100px; gap: 8px; }
.moz-search .moz-btn { width: 100%; height: 48px; }
.moz-search-note { font-size: 14px; color: #6B7585; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.moz-search-note span { display: inline-flex; align-items: center; gap: 6px; }
.moz-search-note i { color: var(--moz-accent); font-size: 13px; }
.moz-search-note i.is-muted { color: #9AA4B2; }
.moz-search-error { color: var(--moz-red); font-size: 15px; font-weight: 600; margin: 12px 0 0; }

.moz-check { display: flex; align-items: center; gap: 10px; height: 48px; padding: 0 14px; border: 1px solid #C9D3E0; border-radius: 4px; background: #fff; color: var(--moz-ink); cursor: pointer; margin: 0; }
.moz-check input { width: 18px; height: 18px; accent-color: var(--moz-accent); }
.moz-search label.moz-check { display: flex; font-size: 16px; font-weight: 400; margin: 0; }

/* ── Estatísticas ──────────────────────────────────────────────────────── */

.moz-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 56px; }
.moz-stats div { padding: 4px 24px; border-left: 1px solid var(--divider-color); }
.moz-stats div:first-child { border-left: 0; padding-left: 0; }
.moz-stats strong { display: block; font-family: var(--accent-font); font-size: 36px; font-weight: 600; color: var(--moz-ink); line-height: 1.1; margin-bottom: 4px; }
.moz-stats strong sup { font-size: 20px; top: -.6em; margin-left: 1px; color: var(--moz-ink); }
.moz-stats span { font-size: 15px; color: #6B7585; }
@media (max-width: 767px) {
	.moz-stats { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
	.moz-stats div:nth-child(3) { border-left: 0; padding-left: 0; }
	.moz-stats strong { font-size: 30px; }
}

/* Os três passos do processo (ethoss.co.mz), no lugar dos números. O número
   leva o vermelho da marca: é o único acento da faixa. */
.moz-stats.ethos-steps { grid-template-columns: repeat(3, 1fr); }
.ethos-steps strong { color: var(--moz-accent-2); }
.ethos-steps b { display: block; color: var(--moz-ink); font-family: var(--accent-font); font-weight: 600; font-size: 17px; margin-bottom: 2px; }
@media (max-width: 767px) {
	.moz-stats.ethos-steps { grid-template-columns: 1fr; }
	.moz-stats.ethos-steps div { border-left: 0; padding-left: 0; }
}

/* ── Secções ───────────────────────────────────────────────────────────── */

.moz-section { padding: 96px 0; position: relative; }
.moz-section-tight { padding: 0; }
.moz-section-cream, .moz-section-sand { background: var(--moz-cream); }
.moz-section-dark { background: var(--moz-ink); color: rgba(255,255,255,.75); }
.moz-section-dark h2, .moz-section-dark h3 { color: #fff; }
.moz-section-dark p { color: rgba(255,255,255,.72); }

.moz-heading { margin-bottom: 44px; }
.moz-heading h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.2; font-weight: 700; color: var(--moz-ink); margin-bottom: 14px; }
.moz-heading h2 em, .moz-heading h2 br { color: inherit; }
.moz-heading p { font-size: 18px; line-height: 1.6; max-width: 640px; margin: 0; }
.moz-heading.text-center p { margin: 0 auto; }
.moz-heading.text-center .moz-eyebrow { text-align: center; }
.moz-section-dark .moz-heading h2 { color: #fff; }
.moz-heading-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.moz-heading.is-flush { margin-bottom: 0; }
.moz-heading-aside { max-width: 440px; margin: 0; }
.moz-heading-row > div { max-width: 880px; }
.moz-heading-row > .moz-heading-aside { padding-bottom: 6px; }

/* ── Serviços na página inicial: fotografia + texto ────────────────────── */

.ethos-service-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.ethos-service-card { display: flex; flex-direction: column; color: inherit; }
.ethos-service-card figure { margin: 0 0 18px; overflow: hidden; border-radius: 4px; aspect-ratio: 4 / 3; max-width: 100%; background: var(--moz-cream); }
.ethos-service-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.ethos-service-card:hover img { transform: scale(1.03); }
.ethos-service-card h3 { font-size: 19px; font-weight: 600; margin: 0 0 8px; }
.ethos-service-card p { font-size: 16px; margin: 0 0 12px; flex: 1; }
.ethos-service-card .moz-link { font-size: 15px; }
.ethos-service-card:hover h3 { color: var(--moz-accent); }
@media (max-width: 1199px) { .ethos-service-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .ethos-service-cards { grid-template-columns: 1fr; } }

/* ── Cartões de categoria ──────────────────────────────────────────────── */

.moz-category-card {
	background: #fff;
	border: 1px solid var(--divider-color);
	border-radius: var(--moz-radius);
	overflow: hidden;
	height: calc(100% - 28px); margin-bottom: 28px;
	display: flex; flex-direction: column;
	transition: border-color .15s ease;
}
.moz-category-card:hover { border-color: #B9C6D6; }
.moz-category-stage {
	position: relative;
	aspect-ratio: 16 / 10; max-width: 100%;
	background: var(--moz-cream);
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
	overflow: hidden;
}
.moz-category-stage img { max-height: 100%; width: auto; max-width: 100%; object-fit: contain; }
.moz-category-stage.has-photo { padding: 0; }
.moz-category-stage.has-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.moz-category-stage .moz-stage-icon, .moz-quote-visual .moz-stage-icon { display: none; }
/* Categoria sem fotografia própria: o símbolo da Ethos sobre o
   azul-marinho, em vez de um ícone genérico. */
.moz-category-stage:not(.has-photo):not(:has(img)), .moz-quote-visual:not(:has(img)) {
	background: var(--moz-ink-2) url('../images/ethos/ethos-mark.png') center / 30% auto no-repeat;
}
.moz-category-tag { display: none; }
.moz-category-body { padding: 20px 22px 4px; flex: 1; }
.moz-category-count { font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #6B7585; margin: 0 0 4px; }
.moz-category-card h3 { font-size: 20px; font-weight: 600; margin-bottom: 6px; }
.moz-category-card p { font-size: 16px; margin-bottom: 8px; }
.moz-models { color: var(--moz-ink) !important; }
.moz-models span { color: #8A94A3; }
.moz-specs { font-size: 15px !important; color: #6B7585; margin: 0 !important; }
.moz-category-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 22px 20px; margin-top: 16px; border-top: 1px solid var(--divider-color); }
.moz-price { font-family: var(--accent-font); font-size: 22px; font-weight: 600; color: var(--moz-ink); line-height: 1.1; }
.moz-price small { display: block; font-family: var(--default-font); font-size: 13px; font-weight: 400; color: #6B7585; margin-bottom: 2px; }
.moz-price span { font-family: var(--default-font); font-size: 15px; font-weight: 400; color: #6B7585; }
.moz-price-ask { font-size: 16px; color: #6B7585; }

/* ── Destaque com / sem motorista ──────────────────────────────────────── */

.moz-split-media img { width: 100%; border-radius: 4px; display: block; }
.moz-floating { display: none; }
@media (max-width: 991px) { .moz-split-media { margin-bottom: 40px; } }

.moz-checklist { list-style: none; padding: 0; margin: 22px 0 30px; display: grid; gap: 10px; }
.moz-checklist li { display: flex; gap: 12px; align-items: baseline; font-size: 17px; color: var(--text-color); }
.moz-checklist li i { flex-shrink: 0; color: var(--moz-accent); font-size: 14px; }
.moz-checklist strong { color: var(--moz-ink); font-weight: 600; }

.moz-choice { display: grid; grid-template-columns: 1fr 1fr; margin: 26px 0 30px; border: 1px solid var(--divider-color); border-radius: var(--moz-radius); background: #fff; }
.moz-choice > div { padding: 20px 22px; }
.moz-choice > div + div { border-left: 1px solid var(--divider-color); }
.moz-choice i { display: none; }
.moz-choice h3 { font-size: 17px; font-weight: 600; margin-bottom: 4px; }
.moz-choice p { font-size: 16px; margin: 0; }
@media (max-width: 575px) { .moz-choice { grid-template-columns: 1fr; } .moz-choice > div + div { border-left: 0; border-top: 1px solid var(--divider-color); } }

/* ── Galeria da frota real ─────────────────────────────────────────────── */

.moz-gallery { display: grid; grid-template-columns: 1.4fr 1fr 1fr; grid-template-rows: 240px 240px; gap: 12px; }
.moz-gallery figure { position: relative; margin: 0; border-radius: 4px; overflow: hidden; }
.moz-gallery figure:first-child { grid-row: span 2; }
.moz-gallery img { width: 100%; height: 100%; object-fit: cover; }
.moz-gallery figcaption {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 28px 16px 12px;
	background: linear-gradient(0deg, rgba(11,35,68,.75), rgba(11,35,68,0));
	color: #fff; font-size: 14px; font-weight: 600;
}
@media (max-width: 767px) {
	.moz-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 150px 150px; }
	.moz-gallery figure:first-child { grid-column: span 2; grid-row: auto; }
}

/* ── Clientes ──────────────────────────────────────────────────────────── */

.ethos-clients { display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--divider-color); border-left: 1px solid var(--divider-color); background: #fff; }
.ethos-clients figure { margin: 0; aspect-ratio: 3 / 2; max-width: 100%; display: flex; align-items: center; justify-content: center; overflow: hidden; border-right: 1px solid var(--divider-color); border-bottom: 1px solid var(--divider-color); padding: 6px 18px; }
.ethos-clients img { width: 100%; height: 100%; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .2s ease, opacity .2s ease; mix-blend-mode: multiply; }
.ethos-clients figure:hover img { filter: none; opacity: 1; }
@media (max-width: 991px) { .ethos-clients { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 575px) { .ethos-clients { grid-template-columns: repeat(3, 1fr); } .ethos-clients figure { padding: 4px 8px; } }

/* ── Sede e rede ───────────────────────────────────────────────────────── */

.moz-hq-card { background: #fff; border: 1px solid var(--divider-color); border-radius: var(--moz-radius); overflow: hidden; }
.moz-hq-card img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; display: block; }
.moz-hq-body { padding: 40px; }
.moz-hq-body h3 { font-size: 26px; font-weight: 600; margin-bottom: 20px; }
.moz-info-list { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 14px; }
.moz-info-list li { display: flex; gap: 14px; font-size: 17px; color: var(--text-color); }
.moz-info-list li i { width: 18px; flex-shrink: 0; color: var(--moz-accent); margin-top: 5px; text-align: center; }
.moz-info-list small { display: block; font-size: 14px; color: #6B7585; }
.moz-info-list a { color: var(--moz-ink); font-weight: 600; }
.moz-info-list a:hover { color: var(--moz-accent); }

.moz-cities { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.moz-cities a, .moz-cities span {
	display: inline-flex; align-items: center; gap: 6px;
	border: 1px solid #C9D3E0; border-radius: 4px;
	padding: 6px 12px; font-size: 15px; font-weight: 600; color: var(--moz-ink); background: #fff;
}
.moz-cities a:hover { border-color: var(--moz-accent); color: var(--moz-accent); }
.moz-cities .is-hq { background: var(--moz-ink); color: #fff; border-color: var(--moz-ink); }
.moz-cities i { display: none; }

.moz-branch-card {
	background: #fff; border: 1px solid var(--divider-color); border-top: 3px solid #C9D3E0; border-radius: 4px;
	padding: 24px; height: calc(100% - 24px); margin-bottom: 24px;
}
.moz-branch-card.is-hq { border-top-color: var(--moz-accent); }
.moz-branch-card h3 { font-size: 20px; font-weight: 600; margin-bottom: 2px; }
.moz-branch-card p { font-size: 16px; margin-bottom: 8px; }
.moz-branch-card p i { color: var(--moz-accent); width: 20px; }
.moz-branch-card .moz-link { display: block; margin-top: 8px; font-size: 15px; }

.moz-badge { display: inline-block; font-family: var(--default-font); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; background: var(--moz-accent-soft); color: var(--moz-accent); border-radius: 3px; padding: 2px 8px; vertical-align: middle; }
.moz-badge-dark { background: var(--moz-ink); color: #fff; }

/* ── FAQ ───────────────────────────────────────────────────────────────── */

.moz-faq { border-top: 1px solid var(--divider-color); }
.moz-faq .accordion-item { border: 0; border-bottom: 1px solid var(--divider-color); border-radius: 0 !important; background: transparent; }
.moz-faq .accordion-button { font-family: var(--accent-font); font-weight: 600; font-size: 17px; color: var(--moz-ink); padding: 20px 0; background: transparent; box-shadow: none; }
.moz-faq .accordion-button:not(.collapsed) { color: var(--moz-ink); background: transparent; box-shadow: none; }
.moz-faq .accordion-button:focus { box-shadow: none; outline: 2px solid rgba(24,46,79,.3); outline-offset: 2px; }
.moz-faq .accordion-body { padding: 0 0 22px; font-size: 17px; line-height: 1.65; background: transparent; }

.moz-help-card { background: var(--moz-ink); color: rgba(255,255,255,.8); border-radius: var(--moz-radius); padding: 32px; position: sticky; top: 120px; }
.moz-help-card h3 { color: #fff; font-size: 22px; font-weight: 600; }
.moz-help-card p { color: rgba(255,255,255,.72); }
.moz-help-card .moz-btn { width: 100%; margin-top: 10px; }
.moz-help-icon { display: none; }

/* ── Chamada final: faixa, não caixa ───────────────────────────────────── */

.moz-cta { background: var(--moz-ink-2); color: #fff; padding: 64px 0; box-shadow: 0 0 0 100vmax var(--moz-ink-2); clip-path: inset(0 -100vmax); }
.moz-section-tight { overflow-x: clip; }
.moz-cta .moz-cta-text { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "eyebrow actions" "title actions" "text actions"; column-gap: 48px; align-items: center; }
.moz-cta .moz-eyebrow { grid-area: eyebrow; }
.moz-cta h2 { grid-area: title; color: #fff; font-size: clamp(26px, 2.8vw, 34px); line-height: 1.2; margin-bottom: 10px; font-weight: 700; }
.moz-cta p { grid-area: text; color: rgba(255,255,255,.8); font-size: 18px; margin: 0; max-width: 620px; }
.moz-cta .d-flex, .moz-cta > .moz-cta-text > .moz-btn { grid-area: actions; }
.moz-cta .moz-btn-dark { background: #fff; border-color: #fff; color: var(--moz-ink); }
.moz-cta .moz-btn-dark:hover { background: var(--moz-accent-soft); border-color: var(--moz-accent-soft); }
@media (max-width: 991px) {
	.moz-cta .moz-cta-text { grid-template-columns: 1fr; grid-template-areas: "eyebrow" "title" "text" "actions"; row-gap: 0; }
	.moz-cta .d-flex, .moz-cta > .moz-cta-text > .moz-btn { margin-top: 24px; justify-self: start; }
}

/* ── Banner das páginas interiores ─────────────────────────────────────── */

.moz-page-header {
	position: relative;
	padding: 80px 0 72px;
	background: var(--moz-ink) url('../images/fleets-slider-img-1.jpg') center 55% / cover no-repeat;
	color: #fff;
	overflow: hidden;
}
.moz-page-header::before { content: ''; position: absolute; inset: 0; background: rgba(11,35,68,.78); }
.moz-page-header .container { position: relative; z-index: 1; }
.moz-page-header h1 { color: #fff; font-size: clamp(32px, 4vw, 48px); font-weight: 700; margin: 12px 0 12px; }
.moz-page-header p { color: rgba(255,255,255,.82); font-size: 19px; max-width: 640px; margin: 0; }
.moz-crumbs { display: flex; gap: 8px; font-size: 15px; color: rgba(255,255,255,.6); list-style: none; padding: 0; margin: 0; }
.moz-crumbs a { color: rgba(255,255,255,.85); }
.moz-crumbs a:hover { color: #fff; }
.moz-crumbs li + li::before { content: '/'; margin-right: 8px; color: rgba(255,255,255,.4); }

/* ── Cotação ───────────────────────────────────────────────────────────── */

.moz-quote {
	background: #fff; border: 1px solid var(--divider-color); border-radius: var(--moz-radius);
	margin-top: 28px; overflow: hidden;
	display: grid; grid-template-columns: 320px 1fr;
}
.moz-quote-visual { position: relative; background: var(--moz-cream); display: flex; align-items: center; justify-content: center; min-height: 240px; }
.moz-quote-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.moz-quote-body { padding: 28px 32px; }
.moz-quote-body h3 { margin: 0 0 6px; font-size: 24px; font-weight: 600; }
.moz-quote-price { display: grid; grid-template-columns: repeat(3, 1fr); margin: 20px 0 14px; border: 1px solid var(--divider-color); border-radius: 4px; }
.moz-quote-price > div { padding: 14px 18px; }
.moz-quote-price > div + div { border-left: 1px solid var(--divider-color); }
.moz-quote-price > div.is-total { background: var(--moz-cream); }
.moz-quote-price small { display: block; font-size: 14px; color: #6B7585; }
.moz-quote-price strong { display: block; font-family: var(--accent-font); font-size: 22px; font-weight: 600; color: var(--moz-ink); margin: 2px 0; }
.moz-quote-price span { font-size: 14px; color: #6B7585; }
@media (max-width: 991px) { .moz-quote { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .moz-quote-price { grid-template-columns: 1fr; } .moz-quote-price > div + div { border-left: 0; border-top: 1px solid var(--divider-color); } }

.moz-available, .moz-unavailable { display: flex; gap: 10px; align-items: baseline; font-weight: 600; margin: 0; }
.moz-available { color: var(--moz-green); }
.moz-unavailable { color: #7A4A0B; background: #FFF8EB; border-left: 3px solid #D9921A; padding: 12px 14px; font-weight: 400; }
.moz-fine { font-size: 14px; color: #6B7585; margin: 0; }
.moz-muted { color: #6B7585; margin: 0; }

.moz-loading { display: flex; align-items: center; gap: 12px; color: #6B7585; padding: 20px 0; }
.moz-loading span { width: 20px; height: 20px; border: 2px solid var(--divider-color); border-top-color: var(--moz-accent); border-radius: 50%; animation: moz-spin .8s linear infinite; }
@keyframes moz-spin { to { transform: rotate(360deg); } }

.moz-skeleton { height: 400px; border-radius: var(--moz-radius); background: var(--moz-cream); margin-bottom: 28px; }

/* ── Formulários de pedido ─────────────────────────────────────────────── */

.moz-form { background: #fff; border: 1px solid var(--divider-color); border-radius: var(--moz-radius); padding: 32px; }
.moz-form h3 { font-size: 24px; font-weight: 600; margin-bottom: 6px; }
.moz-form label { display: block; font-size: 15px; font-weight: 600; color: var(--moz-ink); margin-bottom: 6px; }
.moz-form .form-control, .moz-form .form-select { border-radius: 4px; min-height: 48px; border: 1px solid #C9D3E0; background: #fff; margin-bottom: 18px; font-size: 16px; }
.moz-form textarea.form-control { min-height: 120px; }
.moz-form .form-control:focus, .moz-form .form-select:focus { border-color: var(--moz-accent); box-shadow: 0 0 0 3px rgba(24,46,79,.15); }
.moz-form-privacy { font-size: 14px; color: #6B7585; margin: 14px 0 0; }

.moz-side-card { background: var(--moz-cream); border: 1px solid var(--divider-color); border-radius: var(--moz-radius); padding: 28px; }
.moz-side-card h3 { font-size: 20px; font-weight: 600; margin-bottom: 16px; }

/* O campo-armadilha: fora do ecrã para pessoas, visível para bots. Não usar
   display:none — alguns bots saltam campos escondidos assim. */
.moz-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.moz-feedback { border-radius: 4px; padding: 16px 18px; margin-top: 18px; font-size: 16px; }
.moz-feedback.is-error { background: #FEF2F2; border-left: 3px solid var(--moz-red); color: var(--moz-red); }
.moz-feedback.is-error ul { margin: 8px 0 0; padding-left: 18px; }
.moz-feedback.is-ok { background: #F0FDF4; border-left: 3px solid var(--moz-green); color: #14532D; }
.moz-success { display: flex; gap: 14px; align-items: flex-start; }
.moz-success > i { font-size: 24px; color: var(--moz-green); }
.moz-success strong { font-size: 18px; }
.moz-success p { margin: 6px 0 0; color: #14532D; }
.moz-success a { color: var(--moz-green); font-weight: 600; }

/* ── Plano B ───────────────────────────────────────────────────────────── */

.moz-offline { display: flex; gap: 14px; align-items: flex-start; background: #FFF8EB; border-left: 3px solid #D9921A; border-radius: 4px; padding: 20px 22px; color: #6B4208; }
.moz-offline > i { font-size: 20px; color: #D9921A; margin-top: 3px; }
.moz-offline p { margin: 4px 0 14px; color: #6B4208; }
.moz-offline-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

.moz-empty { color: #6B7585; text-align: center; padding: 30px 0; }
.moz-link { color: var(--moz-accent); font-weight: 600; }
.moz-link:hover { color: var(--moz-ink); text-decoration: underline; }
.moz-link i { font-size: 12px; margin-left: 4px; }

/* ── Venda de viaturas (código inerte, sem página) ─────────────────────── */

.moz-sale-notes { font-size: 15px; }
.moz-sale-placeholder { text-align: center; color: #8A94A3; }
.moz-sale-placeholder i { font-size: 56px; display: block; margin-bottom: 10px; color: #B7C7DA; }

/* ── Sobre ─────────────────────────────────────────────────────────────── */

.moz-story-media img { width: 100%; border-radius: 4px; display: block; }
@media (max-width: 991px) { .moz-story-media { margin-bottom: 36px; } }

.moz-timeline { list-style: none; padding: 0; margin: 0; border-left: 2px solid var(--divider-color); }
.moz-timeline li { position: relative; padding: 0 0 28px 28px; }
.moz-timeline li:last-child { padding-bottom: 0; }
.moz-timeline li::before { content: ''; position: absolute; left: -7px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--moz-accent); }
.moz-timeline li strong { display: block; font-family: var(--accent-font); font-size: 15px; font-weight: 600; color: var(--moz-accent); }
.moz-timeline li h3 { font-size: 19px; font-weight: 600; margin: 2px 0 4px; }
.moz-timeline li p { margin: 0; }

.moz-values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.moz-values > div { border-top: 2px solid var(--moz-ink); padding-top: 20px; }
.moz-values i { display: none; }
.moz-values h3 { font-size: 19px; font-weight: 600; margin-bottom: 8px; }
.moz-values p { font-size: 16px; margin: 0; }
.moz-values.ethos-values-3 { grid-template-columns: repeat(3, 1fr); }
.moz-values > div:first-child { border-top-color: var(--moz-accent-2); }
@media (max-width: 991px) { .moz-values { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575px) { .moz-values { grid-template-columns: 1fr; } }
@media (max-width: 991px) { .moz-values.ethos-values-3 { grid-template-columns: 1fr; } }

.ethos-policy h3 { font-size: 20px; font-weight: 600; margin-bottom: 12px; }
.ethos-policy .moz-side-card { background: #fff; }
.ethos-policy ul { padding-left: 20px; margin-bottom: 0; }
.ethos-policy li { margin-bottom: 8px; }

/* ── Serviços em página própria ────────────────────────────────────────── */

.ethos-service-row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; padding: 48px 0; border-bottom: 1px solid var(--divider-color); }
.ethos-service-row:first-child { padding-top: 0; }
.ethos-service-row:last-child { border-bottom: 0; padding-bottom: 0; }
.ethos-service-row.is-flipped .ethos-service-media { order: 2; }
.ethos-service-media img { width: 100%; border-radius: 4px; aspect-ratio: 16 / 10; max-width: 100%; object-fit: cover; display: block; }
.ethos-service-row h3 { font-size: clamp(24px, 2.4vw, 30px); font-weight: 700; margin: 0 0 14px; }
@media (max-width: 991px) { .ethos-service-row { grid-template-columns: 1fr; gap: 24px; } .ethos-service-row.is-flipped .ethos-service-media { order: 0; } }

/* ── Rodapé ────────────────────────────────────────────────────────────── */

.main-footer { background: var(--moz-ink) !important; border-radius: 0 !important; margin: 0 !important; padding-top: 72px; }
.main-footer h3 { font-family: var(--accent-font); font-size: 16px !important; font-weight: 600; color: #fff; }
.main-footer p, .main-footer li, .main-footer a { font-size: 16px; }
.moz-footer-logo { height: auto; width: 100%; max-width: 300px; object-fit: contain; }
.moz-footer-cta { display: none; }
.moz-footer-contacts ul { list-style: none; padding: 0; }
.moz-footer-contacts li { color: rgba(255,255,255,.72); margin-bottom: 10px; display: flex; gap: 12px; }
.moz-footer-contacts li i { color: rgba(255,255,255,.45); margin-top: 5px; width: 16px; }
.moz-footer-contacts a { color: rgba(255,255,255,.9); }
.moz-footer-contacts a:hover { color: #fff; }
.footer-social-links ul li a { border-radius: 4px !important; }

.moz-whatsapp-fab {
	position: fixed; right: 20px; bottom: 20px; z-index: 99;
	width: 54px; height: 54px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: #1E9E57; color: #fff;
	box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
.moz-whatsapp-fab i { font-size: 28px; }
.moz-whatsapp-fab span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.moz-whatsapp-fab:hover { background: #178247; color: #fff; }

@media (max-width: 575px) {
	.moz-section { padding: 64px 0; }
	.moz-heading { margin-bottom: 30px; }
	.moz-search { padding: 22px 18px 18px; }
	.moz-hq-body { padding: 28px 22px; }
	.moz-form { padding: 24px 20px; }
}

/* Botão do menu móvel do template: sem pílula. */
.navbar-toggle a.slicknav_btn { border-radius: 4px !important; }
