/* Mr.Sander Elementor Widgets — base styles (estrutura + defaults do design system).
   Cores, tipografia, espaçamento e demais aparências são controláveis widget a widget
   pelo painel do Elementor; este arquivo cuida apenas de estrutura/reset e alguns
   efeitos (hover, transições, reveal-on-scroll) que não têm controle dedicado. */

.msw * { box-sizing: border-box; }
.msw a { text-decoration: none; color: inherit; }
.msw .msw-mono {
	font-family: 'JetBrains Mono', monospace;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-weight: 500;
}
.msw .msw-serif {
	font-family: 'Instrument Serif', serif;
	font-style: italic;
	font-weight: 400;
}

/* Site header */
.msw-header { position: relative; z-index: 50; }
.msw-header.msw-header-sticky { position: fixed; top: 0; left: 0; right: 0; }
.msw-header-inner { margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding-left: clamp(20px,5vw,64px); padding-right: clamp(20px,5vw,64px); }
.msw-header-logo { display: inline-flex; align-items: baseline; font-weight: 700; }
.msw-header-logo img { display: block; }
.msw-header-logo-dot { font-style: normal; }
.msw-header-nav { display: flex; align-items: center; }
.msw-header-nav a { transition: color .2s ease; }
.msw-header-cta { transition: background .2s ease, color .2s ease; }
@media (max-width: 720px) {
	.msw-header-nav a:not(.msw-header-cta) { display: none; }
}

/* Site footer */
.msw-footer-inner { margin: 0 auto; display: flex; flex-wrap: wrap; gap: 12px; padding-left: clamp(20px,5vw,64px); padding-right: clamp(20px,5vw,64px); }
.msw-footer-links a { transition: color .2s ease; }

/* Hero */
.msw-hero .msw-hero-kick { display: block; margin-bottom: 20px; }
.msw-hero .msw-hero-sub { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; }
.msw-hero .msw-hero-acts { display: flex; gap: 14px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 820px) {
	.msw-hero .msw-hero-sub { grid-template-columns: 1fr; }
	.msw-hero .msw-hero-acts { justify-content: flex-start; }
}

/* Buttons */
.msw-btn {
	display: inline-flex; align-items: center; gap: 12px;
	transition: all .25s ease; cursor: pointer;
}
.msw-btn .msw-btn-arrow { transition: transform .25s ease; }
.msw-btn:hover .msw-btn-arrow { transform: translateX(4px); }

/* Section heading */
.msw-heading-sticky { position: sticky; }
@media (max-width: 820px) { .msw-heading-sticky { position: static; } }

/* Card grid */
.msw-card-grid { display: grid; gap: 16px; }
.msw-card { transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.msw-card:hover { transform: translateY(-3px); }

/* Project / case grid */
.msw-project-grid { display: grid; gap: 20px; }
.msw-project-item { display: block; }
.msw-project-thumb {
	display: flex; align-items: center; justify-content: center; text-align: center;
	overflow: hidden; position: relative;
}
.msw-project-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.msw-project-title { transition: color .25s ease; }

/* CTA band */
.msw-cta-band.msw-cta-row {
	display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap;
}
.msw-cta-band.msw-cta-stack { display: block; }

/* Numbered list */
.msw-numbered-list .msw-nlist-item {
	display: grid; grid-template-columns: 64px 1fr; gap: 24px;
}
.msw-numbered-list.msw-nlist-with-titles .msw-nlist-item { grid-template-columns: 64px 280px 1fr; }
.msw-numbered-list.msw-nlist-compact .msw-nlist-item { grid-template-columns: 56px 1fr; }
.msw-numbered-list .msw-nlist-item:hover { background: rgba(51,227,155,.04); }
@media (max-width: 820px) {
	.msw-numbered-list.msw-nlist-with-titles .msw-nlist-item { grid-template-columns: 56px 1fr; }
	.msw-numbered-list.msw-nlist-with-titles .msw-nlist-item .msw-nlist-text { grid-column: 2; }
}

/* Timeline */
.msw-timeline .msw-tl-item { display: grid; grid-template-columns: 170px 1fr; gap: 24px; }
@media (max-width: 720px) { .msw-timeline .msw-tl-item { grid-template-columns: 1fr; gap: 6px; } }

/* Info list card */
.msw-info-list li { list-style: none; }

/* Meta strip */
.msw-meta-strip { display: grid; gap: 24px; }

/* Pull quote */
.msw-pull-quote { }

/* Compare table */
.msw-compare-table { width: 100%; border-collapse: collapse; }
.msw-compare-table th, .msw-compare-table td { text-align: left; vertical-align: top; }

/* Next link banner */
.msw-next-banner a { display: block; }
.msw-next-banner h2 { transition: color .25s ease; }
.msw-next-banner a:hover h2 { color: var(--msw-next-hover-color, inherit); }

/* Logo strip */
.msw-logo-strip { display: flex; flex-wrap: wrap; align-items: center; }
.msw-logo-strip .msw-logo-item { transition: opacity .25s ease, color .25s ease; }
.msw-logo-strip img { max-height: 32px; width: auto; display: block; }

/* Contact form */
.msw-form .msw-field { display: block; }
.msw-form .msw-field label { display: block; }
.msw-form input, .msw-form select, .msw-form textarea {
	width: 100%; font-family: inherit; transition: border-color .2s ease;
}
.msw-form textarea { resize: vertical; }
.msw-form input:focus, .msw-form select:focus, .msw-form textarea:focus { outline: none; }
.msw-form-msg { display: none; margin-top: 14px; font-size: .9rem; }
.msw-form-msg.is-visible { display: block; }

/* Reveal on scroll (optional, class .msw-rv added by widgets when animation enabled) */
.msw-rv { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.msw-rv.msw-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.msw-rv { opacity: 1; transform: none; transition: none; }
}
