/* =========================================================
   MotoShop Brasil – estilos principais
   ========================================================= */
:root {
	--ms-primary: #e4002b;
	--ms-primary-dark: #b80022;
	--ms-dark: #111318;
	--ms-dark-2: #1c1f26;
	--ms-text: #1f2329;
	--ms-muted: #6b7280;
	--ms-border: #e5e7eb;
	--ms-bg: #f5f6f8;
	--ms-white: #ffffff;
	--ms-whatsapp: #25d366;
	--ms-whatsapp-dark: #1ebe5a;
	--ms-success: #16a34a;
	--ms-warning: #f59e0b;
	--ms-radius: 12px;
	--ms-shadow: 0 1px 2px rgba(0,0,0,.05), 0 8px 24px rgba(17,19,24,.06);
	--ms-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--ms-container: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--ms-font);
	font-size: 16px;
	line-height: 1.55;
	color: var(--ms-text);
	background: var(--ms-bg);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ms-primary); text-decoration: none; }
a:hover { color: var(--ms-primary-dark); }
h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 .5em; font-weight: 800; letter-spacing: -.01em; }
h1 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
h3 { font-size: 1.15rem; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 9999; width: auto; height: auto; clip: auto; padding: 8px 12px; background: var(--ms-dark); color: #fff; border-radius: 6px; }
.ms-container { width: 100%; max-width: var(--ms-container); margin: 0 auto; padding: 0 16px; }
.ms-muted { color: var(--ms-muted); }
.ms-narrow { max-width: 780px; }

/* ---------- Botões ---------- */
.ms-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 12px 20px; border-radius: 10px; border: 2px solid transparent;
	font-weight: 700; font-size: .95rem; line-height: 1; text-align: center;
	transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
	white-space: nowrap;
}
.ms-btn:hover { transform: translateY(-1px); }
.ms-btn:active { transform: translateY(0); }
.ms-btn-primary { background: var(--ms-primary); color: #fff; }
.ms-btn-primary:hover { background: var(--ms-primary-dark); color: #fff; }
.ms-btn-whatsapp { background: var(--ms-whatsapp); color: #fff; }
.ms-btn-whatsapp:hover { background: var(--ms-whatsapp-dark); color: #fff; }
.ms-btn-ghost { background: transparent; border-color: var(--ms-border); color: var(--ms-text); }
.ms-btn-ghost:hover { border-color: var(--ms-text); color: var(--ms-text); }
.ms-btn-light { background: #fff; color: var(--ms-dark); }
.ms-btn-light:hover { background: #f1f1f1; color: var(--ms-dark); }
.ms-btn-block { width: 100%; }
.ms-btn-icon span { display: none; }
.ms-btn-icon { padding: 12px 14px; }
.ms-btn[disabled] { opacity: .6; cursor: progress; transform: none; }
.ms-icon { flex: none; }
.ms-link-arrow { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; }

/* ---------- Topbar / Header ---------- */
.ms-topbar { background: var(--ms-dark); color: #cbd0d8; font-size: .82rem; }
.ms-topbar .ms-container { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 36px; flex-wrap: wrap; }
.ms-topbar-left, .ms-topbar-right { display: flex; gap: 18px; flex-wrap: wrap; }
.ms-topbar span, .ms-topbar a { display: inline-flex; align-items: center; gap: 6px; color: inherit; }
.ms-topbar a:hover { color: #fff; }
.ms-header { background: #fff; border-bottom: 1px solid var(--ms-border); position: sticky; top: 0; z-index: 100; }
.ms-header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: 24px; }
.ms-brand img { max-height: 56px; width: auto; }
.ms-logo-text { font-weight: 900; font-size: 1.4rem; color: var(--ms-dark); letter-spacing: -.02em; }
.ms-logo-text::first-letter { color: var(--ms-primary); }
.ms-menu-toggle { display: none; background: none; border: 0; padding: 8px; color: var(--ms-dark); }
.ms-nav { display: flex; align-items: center; gap: 24px; }
.ms-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.ms-menu li { position: relative; }
.ms-menu a { display: block; padding: 10px 14px; font-weight: 600; color: var(--ms-text); border-radius: 8px; }
.ms-menu a:hover, .ms-menu .current-menu-item > a, .ms-menu .current_page_item > a { color: var(--ms-primary); background: #fdf2f4; }
.ms-menu .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 200px; background: #fff; border: 1px solid var(--ms-border); border-radius: 10px; box-shadow: var(--ms-shadow); padding: 6px; list-style: none; margin: 0; }
.ms-menu li:hover > .sub-menu, .ms-menu li:focus-within > .sub-menu { display: block; }
.ms-nav-cta { padding: 10px 16px; }

@media (max-width: 900px) {
	.ms-menu-toggle { display: inline-flex; }
	.ms-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; flex-direction: column; align-items: stretch; padding: 12px 16px 20px; border-bottom: 1px solid var(--ms-border); box-shadow: var(--ms-shadow); gap: 12px; }
	.ms-nav.is-open { display: flex; }
	.ms-menu { flex-direction: column; }
	.ms-menu .sub-menu { position: static; display: block; border: 0; box-shadow: none; padding-left: 12px; }
	.ms-topbar-left { display: none; }
}

/* ---------- Hero ---------- */
.ms-hero {
	position: relative; color: #fff; padding: 72px 0 56px;
	background: var(--ms-dark) center/cover no-repeat;
}
.ms-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,19,24,.55) 0%, rgba(17,19,24,.85) 100%); }
.ms-hero .ms-container { position: relative; }
.ms-hero-content { max-width: 720px; margin-bottom: 32px; }
.ms-hero h1 { font-size: clamp(2rem, 4.5vw, 3.4rem); margin-bottom: .3em; }
.ms-hero p { font-size: 1.1rem; color: #d7dbe2; }
.ms-hero-search {
	display: grid; grid-template-columns: repeat(4, 1fr) auto; gap: 12px; align-items: end;
	background: #fff; padding: 16px; border-radius: var(--ms-radius); box-shadow: var(--ms-shadow); color: var(--ms-text);
}
.ms-field label { display: block; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ms-muted); margin-bottom: 6px; }
.ms-field select, .ms-field input { width: 100%; }
@media (max-width: 900px) { .ms-hero-search { grid-template-columns: 1fr 1fr; } .ms-hero-search .ms-btn { grid-column: 1 / -1; } }
@media (max-width: 520px) { .ms-hero-search { grid-template-columns: 1fr; } .ms-hero { padding: 48px 0 40px; } }

/* ---------- Form controls ---------- */
input[type="text"], input[type="search"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="date"], select, textarea {
	width: 100%; padding: 11px 12px; border: 1px solid var(--ms-border); border-radius: 8px; background: #fff; transition: border-color .15s, box-shadow .15s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--ms-primary); box-shadow: 0 0 0 3px rgba(228,0,43,.12); }
select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236b7280' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; padding-right: 34px; }
input[readonly] { background: #f3f4f6; }
.is-invalid { border-color: var(--ms-primary) !important; }
.ms-field-error { display: block; color: var(--ms-primary); font-size: .8rem; margin-top: 4px; }

/* ---------- Seções ---------- */
.ms-section { padding: 48px 0; }
.ms-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.ms-section-head h2 { margin: 0; }
.ms-grid { display: grid; gap: 20px; }
.ms-grid-2 { grid-template-columns: repeat(2, 1fr); }
.ms-grid-3 { grid-template-columns: repeat(3, 1fr); }
.ms-grid-4 { grid-template-columns: repeat(4, 1fr); }
.ms-grid-side { grid-template-columns: 1.4fr 1fr; align-items: start; }
@media (max-width: 1024px) { .ms-grid-4 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 820px) { .ms-grid-3, .ms-grid-4 { grid-template-columns: repeat(2, 1fr); } .ms-grid-2, .ms-grid-side { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .ms-grid-3, .ms-grid-4 { grid-template-columns: 1fr; } }
.ms-empty { grid-column: 1 / -1; padding: 40px; text-align: center; color: var(--ms-muted); background: #fff; border-radius: var(--ms-radius); border: 1px dashed var(--ms-border); }

.ms-categorias { padding: 20px 0 0; }
.ms-chips { display: flex; gap: 10px; flex-wrap: wrap; }
.ms-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--ms-border); color: var(--ms-text); font-weight: 600; font-size: .9rem; }
.ms-chip small { color: var(--ms-muted); }
.ms-chip:hover { border-color: var(--ms-primary); color: var(--ms-primary); }

/* ---------- Card de moto ---------- */
.ms-card {
	background: #fff; border-radius: var(--ms-radius); overflow: hidden; display: flex; flex-direction: column;
	border: 1px solid var(--ms-border); transition: transform .2s ease, box-shadow .2s ease;
}
.ms-card:hover { transform: translateY(-3px); box-shadow: var(--ms-shadow); }
.ms-card-img { position: relative; display: block; aspect-ratio: 3 / 2; background: #eef0f3; overflow: hidden; }
.ms-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ms-card:hover .ms-card-img img { transform: scale(1.04); }
.ms-noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #c3c7cf; min-height: 180px; }
.ms-card.is-vendida .ms-card-img img { filter: grayscale(1); opacity: .7; }
.ms-card-body { padding: 14px 16px 6px; flex: 1; }
.ms-card-marca { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ms-muted); }
.ms-card-title { font-size: 1.05rem; margin: 2px 0 8px; }
.ms-card-title a { color: var(--ms-text); }
.ms-card-title a:hover { color: var(--ms-primary); }
.ms-card-local { display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; color: var(--ms-muted); margin-top: 6px; }
.ms-card-actions { display: flex; gap: 8px; padding: 12px 16px 16px; }
.ms-card-actions .ms-btn-ghost { flex: 1; }

.ms-badges { position: absolute; top: 10px; left: 10px; display: flex; gap: 6px; flex-wrap: wrap; z-index: 2; }
.ms-badge { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 4px 8px; border-radius: 6px; background: var(--ms-dark); color: #fff; }
.ms-badge-vendida { background: #374151; }
.ms-badge-reservada { background: var(--ms-warning); color: #111; }
.ms-badge-nova { background: var(--ms-success); }
.ms-badge-promo { background: var(--ms-primary); }
.ms-badge-fipe { background: #2563eb; }
.ms-badge-troca { background: #7c3aed; }

.ms-specs { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .85rem; color: var(--ms-muted); }
.ms-specs li { display: inline-flex; align-items: center; gap: 5px; }
.ms-specs .ms-icon { color: #9ca3af; }

.ms-price { display: flex; flex-direction: column; gap: 2px; }
.ms-price-old { font-size: .85rem; color: var(--ms-muted); text-decoration: line-through; }
.ms-price-current { font-size: 1.45rem; font-weight: 900; color: var(--ms-dark); letter-spacing: -.02em; }
.ms-price-parcela { font-size: .8rem; color: var(--ms-muted); }
.ms-price-fipe { font-size: .78rem; color: var(--ms-muted); }
.ms-fipe-down { color: var(--ms-success); font-style: normal; font-weight: 700; }

/* ---------- Benefícios / CTAs / Marcas ---------- */
.ms-beneficios { background: #fff; border-top: 1px solid var(--ms-border); border-bottom: 1px solid var(--ms-border); }
.ms-beneficio { text-align: left; }
.ms-beneficio-icon { width: 56px; height: 56px; border-radius: 14px; display: grid; place-items: center; background: #fdf2f4; color: var(--ms-primary); margin-bottom: 14px; }
.ms-beneficio h3 { font-size: 1.05rem; }
.ms-beneficio p { color: var(--ms-muted); margin: 0; font-size: .95rem; }
.ms-marcas { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.ms-marca { background: #fff; border: 1px solid var(--ms-border); border-radius: 10px; padding: 16px; display: flex; flex-direction: column; color: var(--ms-text); }
.ms-marca:hover { border-color: var(--ms-primary); color: var(--ms-primary); }
.ms-marca small { color: var(--ms-muted); font-size: .8rem; }
@media (max-width: 1024px) { .ms-marcas { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 600px) { .ms-marcas { grid-template-columns: repeat(2, 1fr); } }
.ms-cta-card { background: #fff; border-radius: var(--ms-radius); padding: 32px; border: 1px solid var(--ms-border); }
.ms-cta-card .ms-icon { color: var(--ms-primary); margin-bottom: 12px; }
.ms-cta-card p { color: var(--ms-muted); }
.ms-cta-dark { background: var(--ms-dark); color: #fff; border-color: var(--ms-dark); }
.ms-cta-dark p { color: #c9ced6; }
.ms-cta-dark .ms-icon { color: #fff; }
.ms-loja { background: #fff; }
.ms-map iframe { width: 100%; min-height: 320px; border: 0; border-radius: var(--ms-radius); }

.ms-contato-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ms-contato-list li { display: flex; gap: 10px; align-items: flex-start; }
.ms-contato-list .ms-icon { color: var(--ms-primary); margin-top: 2px; }
.ms-contato-list a { color: inherit; }
.ms-contato-list a:hover { color: var(--ms-primary); }

/* ---------- Cabeçalho de página / breadcrumb ---------- */
.ms-page-head { padding: 28px 16px 8px; }
.ms-page-head h1 { margin-bottom: .3em; }
.ms-breadcrumb { font-size: .82rem; color: var(--ms-muted); display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.ms-breadcrumb a { color: var(--ms-muted); }
.ms-breadcrumb a:hover { color: var(--ms-primary); }
.ms-breadcrumb strong { color: var(--ms-text); font-weight: 600; }
.ms-page { padding-bottom: 56px; }
.ms-page-thumb { border-radius: var(--ms-radius); overflow: hidden; margin-bottom: 24px; }
.ms-content { background: #fff; padding: 28px; border-radius: var(--ms-radius); border: 1px solid var(--ms-border); margin-bottom: 24px; }
.ms-content > :first-child { margin-top: 0; }
.ms-content > :last-child { margin-bottom: 0; }
.ms-content img { border-radius: 8px; }
.ms-steps { display: grid; gap: 12px; margin: 20px 0; }
.ms-steps div { display: flex; gap: 14px; align-items: center; }
.ms-steps strong { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--ms-primary); color: #fff; display: grid; place-items: center; }

/* ---------- Estoque / Filtros ---------- */
.ms-estoque { display: grid; grid-template-columns: 280px 1fr; gap: 28px; padding-bottom: 56px; align-items: start; }
.ms-filtros { background: #fff; border: 1px solid var(--ms-border); border-radius: var(--ms-radius); padding: 20px; position: sticky; top: 88px; max-height: calc(100vh - 100px); overflow: auto; }
.ms-filtros-toggle { display: none; margin-bottom: 16px; }
.ms-filtros-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.ms-filtros-head h2 { font-size: 1.1rem; margin: 0; }
.ms-limpar { font-size: .85rem; }
.ms-filtro { border: 0; padding: 14px 0; margin: 0; border-top: 1px solid var(--ms-border); }
.ms-filtro legend, .ms-filtro > label { font-weight: 700; font-size: .9rem; margin-bottom: 8px; display: block; padding: 0; }
.ms-checks { display: flex; flex-direction: column; gap: 6px; }
.ms-checks label { display: flex; align-items: center; gap: 8px; font-size: .9rem; cursor: pointer; }
.ms-checks small { color: var(--ms-muted); }
.ms-scroll { max-height: 200px; overflow: auto; padding-right: 4px; }
.ms-range { display: flex; align-items: center; gap: 8px; }
.ms-range span { color: var(--ms-muted); }
.ms-switch { display: flex; align-items: center; gap: 8px; font-size: .9rem; cursor: pointer; }
.ms-resultados-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.ms-total { margin: 0; font-weight: 600; color: var(--ms-muted); }
.ms-ordem { display: flex; align-items: center; gap: 8px; font-size: .9rem; }
.ms-ordem select { width: auto; padding: 8px 32px 8px 10px; }
#ms-lista.is-loading { opacity: .5; pointer-events: none; }
.ms-pagination, .pagination, .nav-links { display: flex; gap: 6px; justify-content: center; margin-top: 28px; flex-wrap: wrap; }
.ms-page-btn, .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 8px; background: #fff; border: 1px solid var(--ms-border); color: var(--ms-text); font-weight: 600; }
.ms-page-btn.current, .page-numbers.current { background: var(--ms-primary); border-color: var(--ms-primary); color: #fff; }
.ms-page-btn.dots, .page-numbers.dots { border: 0; background: none; }
@media (max-width: 900px) {
	.ms-estoque { grid-template-columns: 1fr; }
	.ms-filtros { display: none; position: static; max-height: none; }
	.ms-filtros.is-open { display: block; }
	.ms-filtros-toggle { display: inline-flex; }
}

/* ---------- Página da moto ---------- */
.ms-single { display: grid; grid-template-columns: 1fr 380px; gap: 28px; align-items: start; padding-bottom: 40px; }
@media (max-width: 1024px) { .ms-single { grid-template-columns: 1fr; } }
.ms-sticky { position: sticky; top: 88px; }
.ms-box { background: #fff; border: 1px solid var(--ms-border); border-radius: var(--ms-radius); padding: 24px; margin-bottom: 20px; }
.ms-box h2 { font-size: 1.25rem; margin-bottom: 16px; }
.ms-box h3 { font-size: 1.05rem; }
.ms-box-preco { display: flex; flex-direction: column; gap: 10px; }
.ms-box-preco .ms-price-current { font-size: 2rem; }
.ms-box-preco .ms-btn { width: 100%; }
.ms-vendida-aviso { background: #fef3c7; color: #92400e; padding: 10px 12px; border-radius: 8px; font-size: .9rem; margin: 0; }
.ms-share { background: none; border: 0; color: var(--ms-muted); display: inline-flex; align-items: center; gap: 6px; font-size: .85rem; padding: 4px 0; }
.ms-share:hover { color: var(--ms-primary); }
.ms-ref { font-size: .75rem; color: var(--ms-muted); margin: 0; }
.ms-single-header { margin: 20px 0 24px; }
.ms-single-marca { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.ms-single-header h1 { margin: 4px 0 10px; }
.ms-single-header .ms-specs { font-size: .95rem; }

.ms-gallery { position: relative; background: #fff; border-radius: var(--ms-radius); overflow: hidden; border: 1px solid var(--ms-border); }
.ms-gallery .ms-badges { top: 14px; left: 14px; }
.ms-gallery-main { position: relative; aspect-ratio: 16 / 9; background: #0e0f12; }
.ms-gallery-slide { position: absolute; inset: 0; margin: 0; display: none; }
.ms-gallery-slide.is-active { display: block; }
.ms-gallery-slide a, .ms-gallery-slide img { width: 100%; height: 100%; }
.ms-gallery-slide img { object-fit: contain; cursor: zoom-in; }
.ms-gallery-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.9); color: var(--ms-dark); font-size: 28px; line-height: 1; display: grid; place-items: center; }
.ms-gallery-nav.prev { left: 12px; }
.ms-gallery-nav.next { right: 12px; }
.ms-gallery-count { position: absolute; right: 12px; bottom: 12px; background: rgba(0,0,0,.6); color: #fff; font-size: .8rem; padding: 4px 10px; border-radius: 999px; }
.ms-gallery-thumbs { display: flex; gap: 8px; padding: 10px; overflow-x: auto; background: #fff; }
.ms-gallery-thumbs button { flex: none; width: 92px; height: 64px; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: #eee; opacity: .7; }
.ms-gallery-thumbs button img { width: 100%; height: 100%; object-fit: cover; }
.ms-gallery-thumbs button.is-active, .ms-gallery-thumbs button:hover { opacity: 1; border-color: var(--ms-primary); }
.ms-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.92); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 24px; }
.ms-lightbox[hidden] { display: none; }
.ms-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ms-lightbox-close { position: absolute; top: 16px; right: 16px; background: none; border: 0; color: #fff; }

.ms-ficha { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 24px; margin: 0; }
.ms-ficha div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--ms-border); }
.ms-ficha dt { color: var(--ms-muted); }
.ms-ficha dd { margin: 0; font-weight: 600; text-align: right; }
@media (max-width: 600px) { .ms-ficha { grid-template-columns: 1fr; } }
.ms-opcionais { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.ms-opcionais li { display: flex; align-items: center; gap: 8px; }
.ms-opcionais .ms-icon { color: var(--ms-success); }
.ms-video { aspect-ratio: 16 / 9; }
.ms-video iframe { width: 100%; height: 100%; border: 0; border-radius: 8px; }

/* ---------- Simulador ---------- */
.ms-sim-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
@media (max-width: 720px) { .ms-sim-grid { grid-template-columns: 1fr; } }
.ms-sim-grid input[type="range"] { width: 100%; margin-top: 8px; accent-color: var(--ms-primary); padding: 0; border: 0; }
.ms-sim-parcelas { display: flex; flex-wrap: wrap; gap: 6px; }
.ms-sim-parcelas label { position: relative; }
.ms-sim-parcelas input { position: absolute; opacity: 0; inset: 0; }
.ms-sim-parcelas span { display: inline-block; padding: 8px 12px; border: 1px solid var(--ms-border); border-radius: 8px; font-weight: 600; font-size: .9rem; cursor: pointer; }
.ms-sim-parcelas input:checked + span { background: var(--ms-dark); border-color: var(--ms-dark); color: #fff; }
.ms-sim-result { display: grid; grid-template-columns: 1fr 1.4fr; gap: 20px; align-items: center; background: var(--ms-bg); border-radius: 10px; padding: 20px; }
@media (max-width: 720px) { .ms-sim-result { grid-template-columns: 1fr; } }
.ms-sim-big span { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ms-muted); font-weight: 700; }
.ms-sim-big strong { font-size: 2rem; font-weight: 900; color: var(--ms-primary); letter-spacing: -.02em; }
.ms-sim-detalhes { margin: 0; }
.ms-sim-detalhes div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dashed var(--ms-border); font-size: .9rem; }
.ms-sim-detalhes dt { color: var(--ms-muted); }
.ms-sim-detalhes dd { margin: 0; font-weight: 600; }
.ms-sim-bancos { font-size: .85rem; color: var(--ms-muted); margin: 16px 0 4px; }
.ms-sim-aviso { font-size: .75rem; color: var(--ms-muted); margin: 8px 0 0; }
.ms-sim-lead { margin-top: 16px; }
.ms-sim-lead summary { list-style: none; width: 100%; }
.ms-sim-lead summary::-webkit-details-marker { display: none; }
.ms-sim-lead[open] summary { margin-bottom: 16px; }

/* ---------- Formulários ---------- */
.ms-form-title { margin-bottom: 14px; }
.ms-form-row { margin-bottom: 12px; }
.ms-form-row label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: 5px; }
.ms-form-row small { display: block; color: var(--ms-muted); font-size: .75rem; margin-top: 4px; }
.ms-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ms-form-grid-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 520px) { .ms-form-grid, .ms-form-grid-3 { grid-template-columns: 1fr; } }
.ms-form-check label { display: flex; align-items: flex-start; gap: 8px; font-weight: 500; font-size: .88rem; cursor: pointer; }
.ms-form-check input { margin-top: 3px; flex: none; }
.ms-lgpd { color: var(--ms-muted); }
.ms-hp { position: absolute; left: -9999px; }
.ms-form-feedback { margin-top: 12px; font-size: .9rem; }
.ms-form-feedback.is-success { background: #dcfce7; color: #166534; padding: 12px; border-radius: 8px; }
.ms-form-feedback.is-error { background: #fee2e2; color: #991b1b; padding: 12px; border-radius: 8px; }
.ms-form-feedback .ms-btn { margin-top: 10px; }
.ms-searchform { display: flex; gap: 8px; max-width: 480px; }
.ms-404 { text-align: center; padding: 72px 16px 24px; }
.ms-404-search { display: flex; justify-content: center; margin-top: 24px; }

/* ---------- Rodapé ---------- */
.ms-footer { background: var(--ms-dark); color: #b7bdc7; padding: 56px 0 24px; margin-top: 24px; }
.ms-footer a { color: #e5e7eb; }
.ms-footer a:hover { color: #fff; }
.ms-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
@media (max-width: 900px) { .ms-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .ms-footer-grid { grid-template-columns: 1fr; } }
.ms-footer .widget-title { color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 16px; }
.ms-footer-brand { color: #fff; font-size: 1.5rem; }
.ms-footer-logo img { max-height: 56px; width: auto; filter: brightness(0) invert(1); }
.ms-cnpj { font-size: .8rem; }
.ms-social { display: flex; gap: 12px; margin: 12px 0; }
.ms-social a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--ms-dark-2); }
.ms-social a:hover { background: var(--ms-primary); }
.ms-footer-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ms-footer-menu small { color: var(--ms-muted); }
.ms-footer .ms-contato-list .ms-icon { color: var(--ms-primary); }
.ms-footer-bottom { border-top: 1px solid #2a2e37; margin-top: 40px; padding-top: 20px; font-size: .8rem; }
.ms-footer-bottom p { margin: 0 0 6px; }
.ms-footer-legal { color: #7c8290; }

/* ---------- WhatsApp flutuante / Cookies ---------- */
.ms-whatsapp-float {
	position: fixed; right: 20px; bottom: 20px; z-index: 900; width: 60px; height: 60px; border-radius: 50%;
	background: var(--ms-whatsapp); color: #fff; display: grid; place-items: center; box-shadow: 0 8px 24px rgba(37,211,102,.4);
	transition: transform .2s;
}
.ms-whatsapp-float:hover { transform: scale(1.08); color: #fff; }
.ms-cookie {
	position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 950; max-width: 640px; margin: 0 auto;
	background: var(--ms-dark); color: #d7dbe2; padding: 16px 20px; border-radius: var(--ms-radius); box-shadow: 0 12px 40px rgba(0,0,0,.3);
	display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; font-size: .88rem;
}
.ms-cookie[hidden] { display: none; }
.ms-cookie p { margin: 0; flex: 1 1 320px; }
.ms-cookie a { color: #fff; text-decoration: underline; }
.ms-cookie-actions { display: flex; gap: 8px; }
.ms-cookie .ms-btn-ghost { color: #fff; border-color: #4b5160; }
.ms-cookie .ms-btn { padding: 10px 14px; font-size: .85rem; }
@media (max-width: 600px) { .has-whatsapp-float .ms-cookie { bottom: 92px; } }

/* ---------- Blog ---------- */
.ms-blog { padding-bottom: 56px; }
.ms-post-card .ms-card-body p { color: var(--ms-muted); font-size: .92rem; }
.ms-comments { margin-top: 32px; }
.comment-list { list-style: none; padding: 0; }
.comment-body { background: #fff; padding: 16px; border-radius: 10px; margin-bottom: 12px; border: 1px solid var(--ms-border); }

/* ---------- Blocos do editor ---------- */
.alignwide { margin-left: calc(50% - min(50vw, 620px)); margin-right: calc(50% - min(50vw, 620px)); max-width: none; }
.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: none; width: 100vw; }
.wp-block-button__link { border-radius: 10px; }

@media print {
	.ms-topbar, .ms-header, .ms-footer, .ms-whatsapp-float, .ms-cookie, .ms-filtros, .ms-card-actions, .ms-box-preco .ms-btn, #proposta { display: none !important; }
	.ms-single { grid-template-columns: 1fr; }
}
