/* INNOVA – Melhorias do site */

.innova-local {
	margin: .75em 0 0;
	font-size: 1rem;
	letter-spacing: .02em;
	opacity: .85;
}

/* Botões fixos */
.innova-fixos {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 9998;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.innova-fixo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	color: #fff;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
	transition: transform .15s ease;
}
.innova-fixo:hover,
.innova-fixo:focus-visible {
	transform: scale(1.06);
	color: #fff;
}
.innova-fixo--wa { background: #25d366; }
.innova-fixo--tel { background: #1f1f1f; display: none; }
@media (max-width: 767px) {
	.innova-fixo--tel { display: flex; }
	.innova-fixos { right: 14px; bottom: 14px; }
}

/* Rodapé legal */
.innova-legal {
	background: #0d0d0d;
	color: #8a8a8a;
	font-size: 11px;
	line-height: 1.5;
	text-align: center;
	padding: 10px 16px 12px;
	border-top: 1px solid rgba(255, 255, 255, .06);
}
.innova-legal p { margin: 0 auto 2px; max-width: 1100px; }
.innova-legal a { color: #b5b5b5; text-decoration: none; }
.innova-legal a:hover, .innova-legal a:focus-visible { color: #fff; text-decoration: underline; }
@media (max-width: 767px) {
	.innova-legal { padding-bottom: 84px; } /* espaço para os botões fixos */
}

/* Contactos: Ligar / WhatsApp / horário */
.innova-tel { color: inherit; text-decoration: none; }
.innova-acoes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin-top: 10px;
}
.innova-acao {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px;
	color: #fff;
	font-size: 13px;
	line-height: 1.2;
	text-decoration: none;
	transition: background .15s ease, border-color .15s ease;
}
.innova-acao:hover, .innova-acao:focus-visible { background: rgba(255, 255, 255, .1); color: #fff; }
.innova-acao--wa { border-color: #25d366; }
.innova-acao--wa:hover, .innova-acao--wa:focus-visible { background: #25d366; }
.innova-horario { flex-basis: 100%; font-size: 13px; opacity: .65; }

/* Formulário */
.innova-consent {
	display: flex !important;
	align-items: flex-start;
	gap: 8px;
	margin: 12px 0;
	font-size: 14px;
	line-height: 1.45;
	text-align: left;
}
.innova-consent input { margin-top: 3px; flex: 0 0 auto; width: auto !important; }
.innova-consent a { text-decoration: underline; }
.innova-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
}
.innova-aviso { margin: 10px 0 0; font-size: 14px; }
.innova-aviso:empty { display: none; }
.innova-aviso--ok { color: #1e7a3c; font-weight: 600; }
.innova-aviso--erro { color: #b3261e; }

/* Formulário do shortcode [innova_formulario] */
.innova-form { display: grid; gap: 14px; max-width: 560px; }
.innova-form label { display: grid; gap: 6px; font-size: 14px; }
.innova-form input,
.innova-form select,
.innova-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font: inherit;
}
.innova-form button {
	justify-self: start;
	padding: 14px 26px;
	border: 0;
	border-radius: 6px;
	background: #111;
	color: #fff;
	font: inherit;
	cursor: pointer;
}
.innova-form button[disabled] { opacity: .6; cursor: wait; }

/* Botão "Pedir orçamento" */
.innova-cta {
	position: fixed;
	left: 50%;
	bottom: 22px;
	z-index: 9997;
	transform: translate(-50%, 140%);
	padding: 14px 26px;
	border-radius: 999px;
	background: #fff;
	color: #111 !important;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .01em;
	text-decoration: none !important;
	box-shadow: 0 8px 28px rgba(0, 0, 0, .3);
	opacity: 0;
	pointer-events: none;
	transition: transform .3s ease, opacity .3s ease;
}
.innova-cta--on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
@media (max-width: 767px) {
	.innova-cta { left: 14px; right: 88px; bottom: 14px; transform: translateY(140%); text-align: center; padding: 14px 16px; font-size: 14px; }
	.innova-cta--on { transform: translateY(0); }
}

/* Legendas das fotos */
.innova-legenda {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 28px 14px 10px;
	background: linear-gradient(transparent, rgba(0, 0, 0, .72));
	color: #fff;
	font-size: 13px;
	line-height: 1.35;
	pointer-events: none;
}

/* Secções novas */
.innova-sec { padding: clamp(56px, 8vw, 110px) 20px; }
.innova-sec__in { max-width: 1100px; margin: 0 auto; }
.innova-sec__pre { margin: 0 0 10px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; opacity: .6; }
.innova-sec h2 { margin: 0 0 14px; }
.innova-sec__txt { max-width: 640px; margin: 0 0 28px; opacity: .8; }

/* Comparador render / obra */
.innova-ba { position: relative; overflow: hidden; border-radius: 6px; aspect-ratio: 16 / 10; background: #222; }
.innova-ba img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.innova-ba__topo { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.innova-ba__linha { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.15); pointer-events: none; }
.innova-ba__linha::after { content: "⟷"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 42px; height: 42px; border-radius: 50%; background: #fff; color: #111; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.innova-ba input[type="range"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; }
.innova-ba__rot { position: absolute; top: 14px; padding: 5px 10px; border-radius: 999px; background: rgba(0,0,0,.55); color: #fff; font-size: 12px; pointer-events: none; }
.innova-ba__rot--e { left: 14px; }
.innova-ba__rot--d { right: 14px; }

/* Testemunhos */
.innova-escondido { display: none !important; }
.innova-depos { margin-top: 28px; }
.innova-google { margin: 0 0 22px; font-size: 15px; }
.innova-google a { color: inherit; text-decoration: underline; }
.innova-estrelas { color: #f2b01e; letter-spacing: 2px; margin-right: 6px; }
.innova-depos__grelha { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 18px; }
.innova-depo { margin: 0; padding: 24px; border: 1px solid rgba(127,127,127,.25); border-radius: 8px; display: flex; flex-direction: column; gap: 12px; }
.innova-depo blockquote { margin: 0; padding: 0; border: 0; font-size: 15px; line-height: 1.6; }
.innova-depo blockquote p { margin: 0; }
.innova-depo figcaption { margin-top: auto; font-size: 14px; }
.innova-depo figcaption strong { display: block; }
.innova-depo figcaption span { opacity: .65; font-size: 13px; }

/* Equipa */
.innova-equipa { display: flex; gap: 22px; align-items: center; max-width: 720px; margin: 36px 0 0; }
.innova-equipa img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.innova-equipa p { margin: 0 0 6px; }
.innova-equipa__nome { font-weight: 700; font-size: 18px; }
.innova-equipa__cargo { opacity: .65; font-size: 14px; }
@media (max-width: 560px) { .innova-equipa { flex-direction: column; align-items: flex-start; } }

/* Vídeos 3D: carrossel */
.innova-videos .innova-sec__in { position: relative; }
.innova-videos__grelha {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 48px) / 4);
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 4px;
}
.innova-videos__grelha::-webkit-scrollbar { display: none; }
.innova-video { margin: 0; scroll-snap-align: start; min-width: 0; }
.innova-video video { display: block; width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 10px; background: #222; }
.innova-video figcaption { margin-top: 10px; font-size: 14px; line-height: 1.35; opacity: .8; }
.innova-videos__nav { position: absolute; right: 0; top: 0; display: flex; gap: 8px; }
.innova-videos__seta {
	width: 44px; height: 44px; border-radius: 50%;
	border: 1px solid rgba(127, 127, 127, .4); background: transparent; color: inherit;
	font-size: 24px; line-height: 1; cursor: pointer;
}
.innova-videos__seta:hover, .innova-videos__seta:focus-visible { background: rgba(127, 127, 127, .15); }
@media (max-width: 900px) {
	.innova-videos__grelha { grid-auto-columns: 44%; }
	.innova-videos__nav { display: none; }
}
@media (max-width: 560px) {
	.innova-videos__grelha { grid-auto-columns: 72%; }
}

/* Selo Scoring */
.innova-selo { display: flex; align-items: center; gap: 16px; margin: 0 0 24px; }
.innova-selo img { width: 120px; height: auto; flex: 0 0 auto; }
.innova-selo p { margin: 0; font-size: 15px; line-height: 1.4; }
.innova-selo strong { display: block; }
.innova-selo span { font-size: 13px; opacity: .65; }
@media (min-width: 900px) {
	.innova-depos__grelha { grid-template-columns: 1.3fr 1fr 1fr; }
	.innova-depo:first-child { grid-row: span 2; }
	.innova-depo:first-child blockquote { font-size: 17px; }
}

/* Telemóvel: nada do plugin pode alargar a página */
.innova-sec, .innova-depos, .innova-equipa, .innova-selo, .innova-acoes {
	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
}
.innova-sec *, .innova-depos *, .innova-equipa * { box-sizing: border-box; }
.innova-sec { width: 100%; }
.innova-sec img, .innova-sec video, .innova-depos img { max-width: 100%; }
@media (max-width: 767px) {
	.innova-sec { padding: 56px 16px; }
	.innova-sec h2 { font-size: clamp(26px, 7vw, 34px); line-height: 1.15; }
	.innova-depo { padding: 20px; }
	.innova-selo img { width: 92px; }
	.innova-ba { aspect-ratio: 4 / 5; }
	.innova-local { font-size: .95rem; }
}
@media (max-width: 767px) {
	html, body { overflow-x: clip; }
}

/* ---------------------------------------------------------------
 * v1.5: estilos blindados contra os estilos de botões do tema
 * ------------------------------------------------------------- */
a.innova-cta,
a.innova-cta:visited {
	all: unset;
	position: fixed !important;
	z-index: 9997 !important;
	left: 50% !important;
	right: auto !important;
	bottom: 22px !important;
	width: auto !important;
	max-width: calc(100vw - 120px) !important;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 11px 20px !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, .96) !important;
	color: #141414 !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: .02em !important;
	text-transform: none !important;
	white-space: nowrap !important;
	cursor: pointer !important;
	box-shadow: 0 6px 24px rgba(0, 0, 0, .28) !important;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transform: translate(-50%, 160%) !important;
	opacity: 0 !important;
	pointer-events: none !important;
	transition: transform .35s ease, opacity .35s ease, background .2s ease !important;
}
a.innova-cta::after { content: "→"; font-weight: 400; }
a.innova-cta.innova-cta--on { transform: translate(-50%, 0) !important; opacity: 1 !important; pointer-events: auto !important; }
a.innova-cta:hover, a.innova-cta:focus-visible { background: #fff !important; }
@media (max-width: 767px) {
	a.innova-cta, a.innova-cta:visited {
		left: 14px !important;
		bottom: 18px !important;
		padding: 10px 16px !important;
		font-size: 13px !important;
		transform: translateY(160%) !important;
	}
	a.innova-cta.innova-cta--on { transform: translateY(0) !important; }
}

.innova-fixo, .innova-fixo:visited { box-sizing: border-box !important; padding: 0 !important; border: 0 !important; text-decoration: none !important; }
.innova-fixo { width: 52px !important; height: 52px !important; }
@media (max-width: 767px) { .innova-fixo { width: 48px !important; height: 48px !important; } }

a.innova-acao, a.innova-acao:visited {
	background: transparent !important;
	color: #fff !important;
	width: auto !important;
	min-height: 0 !important;
	padding: 6px 14px !important;
	font-size: 13px !important;
	text-transform: none !important;
	box-shadow: none !important;
}
a.innova-acao--wa:hover { background: #25d366 !important; }

button.innova-videos__seta {
	all: unset;
	box-sizing: border-box !important;
	width: 42px !important; height: 42px !important;
	border-radius: 50% !important;
	border: 1px solid rgba(127, 127, 127, .45) !important;
	background: transparent !important;
	color: inherit !important;
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	font-size: 22px !important; line-height: 1 !important;
	cursor: pointer !important;
	transition: background .2s ease !important;
}
button.innova-videos__seta:hover, button.innova-videos__seta:focus-visible { background: rgba(127, 127, 127, .18) !important; }

/* Polimento */
.innova-video video { transition: transform .4s ease, box-shadow .4s ease; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }
@media (hover: hover) { .innova-video:hover video { transform: translateY(-4px); } }
.innova-depo { background: rgba(127, 127, 127, .05); transition: border-color .2s ease; }
.innova-depo:hover { border-color: rgba(127, 127, 127, .45); }
.innova-sec__pre { color: inherit; }

/* Consentimento em linha própria, por cima do botão */
[data-innova-form] .innova-consent { width: 100%; flex-basis: 100%; grid-column: 1 / -1; margin: 18px 0 14px !important; }
[data-innova-form] .innova-aviso { width: 100%; flex-basis: 100%; grid-column: 1 / -1; }
