/* =========================================================
   App Município — Landing page
   Cores do gradiente: mude --am-g1 e --am-g2 abaixo.
   ========================================================= */

.am-page {
	--am-g1: #FE9B48;
	--am-g2: #ED2A7C;
	--am-grad: radial-gradient(circle at 0% 0%, var(--am-g1) 0%, var(--am-g2) 91%);
	--am-ink: #303133;
	--am-muted: #5f6266;
	--am-pad-x: clamp(16px, 4vw, 56px);

	font-family: Poppins, system-ui, sans-serif;
	color: var(--am-ink);
	background: #ffffff;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	max-width: none !important;
	width: 100% !important;
	overflow-x: clip;
}
:not(.am-template) > .am-page.alignfull {
	width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}
body:has(.am-page) { overflow-x: clip; }
.am-template { display: block; width: 100%; margin: 0; padding: 0; }

/* Neutraliza margens e tipografia do tema dentro da landing */
.am-page * { margin: 0 !important; max-width: none !important; }
.am-page ul, .am-page ol { padding: 0 !important; list-style: none !important; }
.am-page li::before, .am-page li::marker { content: none !important; }
.am-page img { max-width: 100% !important; }
.am-page *,
.am-page *::before,
.am-page *::after { box-sizing: border-box; }
/* WordPress 5.6: cada grupo tem um contentor interior; fica transparente para o layout */
.am-page .wp-block-group__inner-container { display: contents !important; }
:is(.am-page, .am-hero, .am-hero-inner, .am-stats-wrap, .am-stats, .am-about-wrap, .am-screens, .am-custom, .am-feats, .am-highlight, .am-modules-wrap, .am-modules, .am-modules-list, .am-contact) > .wp-block-group__inner-container > :is(p, br, span):not([class]),
.am-page .wp-block-group__inner-container > br,
.am-page .wp-block-group__inner-container > p:empty,
.am-page .am-feat p:empty { display: none !important; }
.am-page > *,
.am-page .wp-block-group > *,
.am-page .wp-block-group__inner-container > *,
.am-page .wp-block-image,
.am-page figure { margin-block: 0 !important; margin-inline: 0 !important; max-width: none !important; }
.am-page h1, .am-page h2, .am-page h3, .am-page h4,
.am-page p, .am-page ul, .am-page li {
	font-family: inherit;
	letter-spacing: normal;
	text-transform: none;
	margin: 0 !important;
}
.am-page img { display: block !important; max-width: 100% !important; height: auto !important; }
.am-page a { text-decoration: none; }

/* Utilitários */
.am-page .am-grad-text {
	background: var(--am-grad);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.am-page .am-eyebrow {
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.28em;
	margin-bottom: 18px !important;
}

/* ---------- HERO ---------- */
.am-page .am-hero {
	background: var(--am-grad);
	color: #ffffff;
	padding: clamp(56px, 8vw, 110px) var(--am-pad-x) !important;
	overflow: hidden;
}
.am-page .am-hero-inner {
	max-width: 1200px !important;
	margin: 0 auto !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 40px !important;
}
.am-page .am-hero-text { flex: 1 1 480px !important; }
.am-page .am-hero .am-eyebrow { font-size: 13px !important; }
.am-page .am-h1 {
	font-size: clamp(48px, 7.5vw, 104px) !important;
	line-height: 1 !important;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #ffffff;
}
.am-page .am-lead {
	margin-top: 22px !important;
	font-size: clamp(18px, 2vw, 22px) !important;
	line-height: 1.5 !important;
	max-width: 520px !important;
	color: #ffffff;
}
.am-page .am-hero-buttons { margin: 36px 0 0 !important; display: flex !important; flex-wrap: wrap; gap: 12px !important; }
.am-page .am-btn-outline .wp-block-button__link {
	display: inline-flex !important;
	align-items: center;
	min-height: 48px !important;
	padding: 0 28px !important;
	border-radius: 999px;
	border: 2px solid rgba(255, 255, 255, 0.8);
	background: transparent;
	color: #ffffff;
	font-family: inherit;
	font-weight: 600;
	font-size: 15px !important;
	line-height: 1.2 !important;
	transition: background-color .2s, color .2s;
}
.am-page .am-btn-outline .wp-block-button__link:hover { background: #ffffff; color: var(--am-g2); }
.am-page .am-hero-img { flex: 0 1 380px !important; display: flex !important; justify-content: center; }
.am-page .am-hero-img img { width: 100% !important; max-width: 360px !important; }

/* ---------- NÚMEROS ---------- */
.am-page .am-stats-wrap { padding: 40px var(--am-pad-x) !important; background: #f7f7f7 !important; }
.am-page .am-stats {
	max-width: 1200px !important;
	margin: 0 auto !important;
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
}
.am-page .am-stat { padding: 48px 16px !important; text-align: center !important; }
/* !important: alguns temas forçam o tamanho dos parágrafos */
.am-page p.am-stat-num { font-size: clamp(31px, 3.2vw, 45px) !important; font-weight: 700 !important; line-height: 1.15 !important; margin-bottom: 8px !important; }
.am-page p.am-stat-label { font-size: 13px !important; line-height: 1.4 !important; font-weight: 600; letter-spacing: 0.18em; color: var(--am-muted); }

/* ---------- O QUE É ---------- */
.am-page .am-about-wrap { padding: clamp(56px, 7vw, 96px) var(--am-pad-x) 0 !important; }
.am-page .am-about {
	max-width: 1100px !important;
	margin: 0 auto !important;
	background: var(--am-grad);
	color: #ffffff;
	border-radius: 4px;
	padding: clamp(40px, 6vw, 80px) clamp(24px, 6vw, 96px) !important;
	text-align: center !important;
}
.am-page .am-about h2 { margin-bottom: 24px !important; font-size: clamp(32px, 4vw, 44px) !important; font-weight: 700; color: #ffffff; }
.am-page .am-about p:not(.am-eyebrow) { max-width: 820px !important; margin: 0 auto !important; font-size: 17px !important; line-height: 1.75 !important; color: #ffffff; }

/* Foto em parallax com o gradiente por cima, como no banner */
.am-page .am-about.am-has-photo {
	position: relative !important;
	isolation: isolate;
	background-color: #141618 !important;
	background-image: var(--am-about-img) !important;
	background-size: cover !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
	background-attachment: fixed !important;
}
.am-page .am-about.am-has-photo::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: var(--am-grad);
	opacity: var(--am-overlay-about, .85);
	z-index: -1;
	pointer-events: none;
}
/* iPhone/iPad não suportam fundo fixo: a foto fica parada dentro da caixa */
@supports (-webkit-touch-callout: none) {
	.am-page .am-about.am-has-photo { background-attachment: scroll !important; }
}
@media (prefers-reduced-motion: reduce) {
	.am-page .am-about.am-has-photo { background-attachment: scroll !important; }
}

/* ---------- ECRÃS ---------- */
.am-page .am-screens {
	max-width: 1100px !important;
	margin: 0 auto !important;
	padding: clamp(48px, 6vw, 80px) var(--am-pad-x) !important;
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(20px, 4vw, 56px) !important;
}
.am-page .am-screen { display: flex !important; flex-direction: column; align-items: center; gap: 14px !important; }
.am-page .am-screen img { width: 200px !important; border-radius: 22px; box-shadow: 0 18px 40px rgba(25, 27, 30, 0.18); }
.am-page .am-screen figcaption {
	margin: 0 !important;
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--am-muted);
	text-align: center !important;
}

/* ---------- PERSONALIZAÇÃO ---------- */
.am-page .am-custom { max-width: calc(1100px + 2 * var(--am-pad-x)) !important; margin: 0 auto !important; padding: clamp(64px, 8vw, 112px) var(--am-pad-x) !important; }
.am-page .am-section-head { text-align: center !important; margin-bottom: 56px !important; }
.am-page .am-section-head h2 { font-size: clamp(30px, 4vw, 46px) !important; line-height: 1.2 !important; font-weight: 700; color: var(--am-ink); }
.am-page .am-section-head p:not(.am-eyebrow) { margin: 14px auto 0 !important; max-width: 640px !important; font-size: 17px !important; line-height: 1.6 !important; color: var(--am-muted); }
.am-page .am-feats { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important; gap: 48px 56px !important; }
.am-page .am-feat { display: block !important; position: relative; padding-left: 72px !important; min-height: 52px !important; width: auto !important; max-width: none !important; }
.am-page .am-feat::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 52px !important;
	height: 52px !important;
	background: var(--am-grad);
	-webkit-mask: var(--am-ico) center / contain no-repeat;
	mask: var(--am-ico) center / contain no-repeat;
}
/* páginas criadas com a 1.0 têm o ícone em SVG: usa-se esse e não se desenha outro */
.am-page .am-feat svg.am-icon { position: absolute; left: 0; top: 0; width: 52px !important; height: 52px !important; }
.am-page .am-feat:has(svg.am-icon)::before { display: none !important; }
.am-page .am-feat-text { display: block !important; width: auto !important; max-width: none !important; }
.am-page .am-feat h4 { margin-bottom: 6px !important; font-size: 17px !important; font-weight: 600; color: var(--am-ink); }
.am-page .am-feat p { font-size: 16px !important; line-height: 1.65 !important; color: var(--am-muted); }

/* Fundo cinzento claro a toda a largura na secção "Personalize" */
.am-page .am-custom {
	background: #f7f7f7 !important;
	box-shadow: 0 0 0 100vmax #f7f7f7;
	clip-path: inset(0 -100vmax);
}
/* ---------- DESTAQUE ---------- */
.am-page .am-highlight {
	max-width: calc(1100px + 2 * var(--am-pad-x)) !important;
	margin: 0 auto !important;
	padding: clamp(64px, 8vw, 112px) var(--am-pad-x) !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(32px, 6vw, 88px) !important;
}
.am-page .am-highlight-media { flex: 1 1 340px !important; display: flex !important; justify-content: center; }
.am-page .am-highlight-img { position: relative; width: 300px !important; max-width: 100% !important; }
.am-page .am-highlight-img::before {
	content: "";
	position: absolute;
	inset: 40px -30px -30px 40px;
	background: var(--am-grad);
	border-radius: 28px;
}
.am-page .am-highlight-img img { position: relative; width: 100% !important; border-radius: 26px; box-shadow: 0 24px 50px rgba(25, 27, 30, 0.22); }
.am-page .am-highlight-text { flex: 1 1 420px !important; }
.am-page .am-highlight-text h2 { margin-bottom: 24px !important; font-size: clamp(32px, 4.4vw, 52px) !important; line-height: 1.15 !important; font-weight: 700; }
.am-page .am-highlight-text p { font-size: 17px !important; line-height: 1.75 !important; color: var(--am-muted); }
.am-page .am-highlight-text p + p { margin-top: 16px !important; }

/* ---------- MÓDULOS ---------- */
.am-page .am-modules-wrap { background: #f7f7f7; padding: clamp(56px, 7vw, 96px) var(--am-pad-x) !important; scroll-margin-top: 80px !important; }
.am-page .am-modules { max-width: 1200px !important; margin: 0 auto !important; display: flex !important; flex-wrap: wrap; gap: 24px !important; align-items: stretch; }
.am-page .am-modules-intro {
	flex: 1 1 340px !important;
	background: #141618;
	color: #ffffff;
	border-radius: 4px;
	padding: clamp(40px, 5vw, 64px) 40px !important;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	text-align: center !important;
	min-height: 320px !important;
}
.am-page .am-modules-intro h2 { font-size: clamp(36px, 4.4vw, 56px) !important; line-height: 1.1 !important; font-weight: 700; }
.am-page .am-modules-intro p:not(.am-eyebrow) { margin-top: 22px !important; font-size: 16px !important; line-height: 1.6 !important; color: #c9cbcf; }
.am-page .am-modules-list { flex: 999 1 560px !important; min-width: 0; display: flex !important; flex-direction: column; gap: 24px !important; }
.am-page .am-module { background: #eaeaea; border-radius: 4px; padding: clamp(28px, 4vw, 44px) !important; }
.am-page .am-module h3 { margin-bottom: 10px !important; font-size: 24px !important; font-weight: 700; }
.am-page .am-module-desc { margin-bottom: 22px !important; font-size: 16px !important; line-height: 1.6 !important; color: var(--am-muted); }
.am-page .am-chips { list-style: none; padding: 0 !important; margin: 0 !important; display: flex !important; flex-wrap: wrap; gap: 10px !important; }
.am-page .am-chips li {
	display: inline-flex !important;
	align-items: center;
	padding: 8px 14px !important;
	border-radius: 999px;
	background: #ffffff;
	border: 1px solid #e2e2e2;
	font-size: 14px !important;
	line-height: 1.3 !important;
	color: var(--am-ink);
}

/* ---------- CONTACTO ---------- */
.am-page .am-contact { background: #eaeaea; padding: clamp(64px, 8vw, 112px) var(--am-pad-x) !important; scroll-margin-top: 80px !important; }
.am-page .am-contact .am-section-head,
.am-page .am-contact .am-form,
.am-page .am-contact .am-notice { max-width: 820px !important; margin-inline: auto !important; }
.am-page .am-contact .am-section-head { margin-bottom: 40px !important; }
.am-page .am-contact .am-section-head h2 { font-size: clamp(28px, 3.6vw, 42px) !important; line-height: 1.25 !important; }
.am-page .am-contact .am-eyebrow { margin: 14px 0 0 !important; font-size: 13px !important; letter-spacing: 0.24em; color: var(--am-ink); }

.am-page .am-form { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important; gap: 22px 24px !important; }
.am-page .am-full { grid-column: 1 / -1; }
.am-page .am-sr { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.am-page .am-field { display: block !important; position: relative; }
.am-page .am-field input,
.am-page .am-field textarea {
	display: block !important;
	width: 100% !important;
	height: 52px !important;
	margin: 0 !important;
	font-family: inherit !important;
	font-weight: 400 !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	padding: 12px 20px !important;
	border: 1px solid #cfcfcf !important;
	border-radius: 12px !important;
	background: #ffffff !important;
	color: var(--am-ink) !important;
	box-shadow: none !important;
	outline: none;
}
.am-page .am-field textarea { height: 286px !important; resize: vertical; padding-top: 16px !important; }
.am-page .am-field input::placeholder,
.am-page .am-field textarea::placeholder { color: #9b9b9b; opacity: 1; }
.am-page .am-field input:focus,
.am-page .am-field textarea:focus { border-color: var(--am-g2) !important; box-shadow: 0 0 0 3px rgba(237, 42, 124, .15) !important; }
.am-page .am-checks { display: flex !important; justify-content: center; margin-top: 4px !important; }
.am-page .am-check { display: inline-flex !important; gap: 18px !important; align-items: center; font-size: 15px !important; color: var(--am-ink); cursor: pointer; }
.am-page .am-check input {
	-webkit-appearance: none;
	appearance: none;
	flex: none;
	width: 26px !important;
	height: 26px !important;
	margin: 0 !important;
	border: 1px solid #b9b9b9 !important;
	border-radius: 7px !important;
	background: #ffffff !important;
	display: grid !important;
	place-content: center;
	cursor: pointer;
}
.am-page .am-check input:checked { background: var(--am-grad) !important; border-color: transparent !important; }
.am-page .am-check input:checked::after { content: ""; width: 7px; height: 12px; border: solid #fff; border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }
.am-page .am-check input:focus-visible { outline: 2px solid var(--am-g2); outline-offset: 2px; }
.am-page .am-check a { color: var(--am-ink) !important; text-decoration: none !important; }
.am-page .am-check a:hover { color: var(--am-g2) !important; text-decoration: underline !important; }
.am-page .am-submit { display: flex !important; justify-content: center; margin-top: 8px !important; }
.am-page .am-submit button {
	min-height: 52px !important;
	padding: 0 48px !important;
	border: 0;
	border-radius: 999px;
	background: var(--am-grad);
	color: #ffffff;
	font: inherit;
	font-size: 15px !important;
	font-weight: 600;
	letter-spacing: 0.08em;
	cursor: pointer;
	transition: filter .2s;
}
.am-page .am-submit button:hover { filter: brightness(1.06); }
.am-page .am-cta { margin-top: 8px !important; }
/* páginas já criadas: o "CONTACTE-NOS!" passou para o botão */
.am-page .am-contact .am-section-head .am-eyebrow { display: none !important; }
.am-page .am-cta-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 52px !important;
	padding: 0 47px !important;
	border: 1px solid transparent !important;
	border-radius: 999px;
	/* contorno em gradiente: fundo da secção por dentro, gradiente na borda */
	background: linear-gradient(#eaeaea, #eaeaea) padding-box, var(--am-grad) border-box !important;
	color: #c4185f !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: 0.08em;
	text-decoration: none !important;
	transition: background .25s, color .25s, transform .2s;
}
.am-page .am-cta-btn:hover,
.am-page .am-cta-btn:focus-visible {
	background: var(--am-grad) padding-box, var(--am-grad) border-box !important;
	color: #ffffff !important;
	transform: translateY(-1px);
}
.am-page .am-cta-btn:focus-visible { outline: 2px solid var(--am-g2); outline-offset: 3px; }
.am-page .am-hp { position: absolute; left: -9999px; width: 1px !important; height: 1px !important; overflow: hidden; }
.am-page .am-notice { margin: 0 auto 24px !important; padding: 14px 18px !important; border-radius: 8px; font-size: 15px !important; text-align: center !important; }
.am-page .am-notice-ok { background: #e6f6ec; color: #17603a; }
.am-page .am-notice-err { background: #fde8ee; color: #9b1446; }

/* No editor o shortcode aparece como bloco: mantém-no legível */
.editor-styles-wrapper .am-page .wp-block-shortcode { max-width: 820px !important; margin-inline: auto !important; }

/* Ícones dos destaques (desenhados em CSS, com o gradiente da marca) */
.am-page .am-ico-palette { --am-ico: url("icons/palette.svg"); }
.am-page .am-ico-grid { --am-ico: url("icons/grid.svg"); }
.am-page .am-ico-bell { --am-ico: url("icons/bell.svg"); }
.am-page .am-ico-pin { --am-ico: url("icons/pin.svg"); }
.am-page .am-ico-chart { --am-ico: url("icons/chart.svg"); }
.am-page .am-ico-phone { --am-ico: url("icons/phone.svg"); }

/* ---------- Vídeo de fundo no banner ---------- */
.am-page .am-hero.am-has-video { position: relative !important; isolation: isolate; background: #141618 !important; }
.am-page .am-hero-video {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	z-index: -2;
	pointer-events: none;
}
.am-page .am-hero.am-has-video::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--am-grad);
	opacity: var(--am-overlay, .85);
	z-index: -1;
	pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
	.am-page .am-hero-video { display: none !important; }
	.am-page .am-hero.am-has-video::before { opacity: 1; }
}

/* ---------- Encostar ao menu e ao rodapé (sem as faixas brancas do tema) ----------
   O Uncode (e outros temas) envolve o conteúdo numa linha com espaço em cima e em baixo.
   Anula-se esse espaço só nos contentores que envolvem a landing e não incluem menu nem rodapé. */
:where(main, article, section, div):has(.am-page):not(:has(header, footer, nav, #masthead, .menu-wrapper, .navbar)) {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.am-page ~ p:empty,
.am-page ~ br,
p:empty:has(+ .am-page) { display: none !important; }
