/**
 * Pulse — DESENHOS DO PAINEL DA MARCA (v1.271) · par do marca-desenhos.js
 * ----------------------------------------------------------------------------
 * Só é carregado com um desenho escolhido (marca-desenhos.php). O painel é o
 * MESMO elemento do detalhe de sempre (.pulse-cols__detalhe — herda o sítio,
 * a margem, a entrada e o «para onde abre») com a classe .pmd-painel e um
 * modificador por desenho. Tudo usa os TOKENS da secção (--head, --ink,
 * --muted, --eyebrow, --accent, --line…), por isso acompanha o tema
 * claro/escuro e as cores das Definições do Tema sem regras próprias.
 *
 *  · Cantos por clip-path e NUNCA overflow:hidden no painel: um overflow
 *    hidden faria dele o «scrollport» e o índice/rodapé colados (sticky) não
 *    sairiam do lugar. Pela mesma razão a secção que o contém passa a
 *    overflow:clip (o mesmo corte, sem ser contentor de scroll).
 *  · --pmd-h: a «Altura do painel» das Definições do Tema (34 rem por omissão).
 *  · --pmd-sec: a cor de fundo REAL da secção, posta pelo JS — o painel é um
 *    tom acima dela, opaco (as barras coladas passam por cima do texto).
 * ========================================================================== */

section.pulse-sec:has(.pmd-painel) {
	overflow: clip;
}

.pulse-sec .pmd-oculto {
	display: none !important;
}

.pulse-sec .pmd-painel {
	--pmd-bg: color-mix(in srgb, var(--pmd-sec, var(--bg)) 92%, #fff 8%);
	--pmd-r: var(--soft-r, 18px);
	--pmd-cta-ink: #0b0b3c;
	--pmd-sel-h: clamp(24rem, calc(100svh - 9rem), var(--pmd-h, 34rem));
	container: pmd / inline-size;
	position: relative;
	box-sizing: border-box;
	max-height: none;
	color: var(--ink);
	background: var(--pmd-bg);
	border: 1px solid var(--line);
	border-radius: var(--pmd-r);
	clip-path: inset(0 round var(--pmd-r));
	text-align: left;
	font-size: calc(1rem * var(--text-scale, 1));
}

/* o teto global «Altura do painel» (max-height no .pulse-cols__detalhe, 0,2,0,
   impresso DEPOIS desta folha no <head>) não se aplica: aqui a altura é a do
   desenho (--pmd-h) e no Dossiê/Índice o painel é a seleção + o índice — com o
   teto, o recorte dos cantos (clip-path) cortava o índice ao fundo. 0,3,0. */
.pulse-sec .pulse-cols__detalhe.pmd-painel {
	max-height: none;
}

html.pulse-claro .pulse-sec .pmd-painel,
.pulse-sec.pulse-sec--bg-light .pmd-painel {
	--pmd-bg: color-mix(in srgb, var(--pmd-sec, var(--bg)) 84%, #fff 16%);
	--pmd-cta-ink: #fff;
}

.pulse-sec .pmd-painel *,
.pulse-sec .pmd-painel *::before,
.pulse-sec .pmd-painel *::after {
	box-sizing: border-box;
}

/* COM faixa: o painel tem a altura do detalhe (a «Atual melhorado» aberta
   cresce com o conteúdo, como pediu o desenho) */
.pulse-sec .pmd-painel:not(.pmd-painel--sem-faixa) {
	display: flex;
	flex-direction: column;
	height: var(--pmd-h, 34rem);
}

.pulse-sec .pmd-painel--melhorado.pmd-painel--aberto {
	height: auto;
}

.pulse-sec .pmd-palco {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

/* o «Detalhe por defeito» (a Galeria) sem a moldura própria — a moldura é o painel */
.pulse-sec .pmd-painel .pulse-cols__ddef:not([hidden]) {
	flex: 1 1 auto;
	min-height: 0;
	background: none;
	border: 0;
	border-radius: 0;
	padding: clamp(1rem, .9rem + .8cqi, 1.6rem);
}

/* ---------------------------------------------------------------------------
 * PEÇAS PARTILHADAS
 * ------------------------------------------------------------------------- */
.pulse-sec .pmd-ficha {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	outline: none;
}

.pulse-sec .pmd-ficha.is-in {
	animation: pmd-in .32s var(--ease, cubic-bezier(.2, .7, .2, 1)) both;
}

.pulse-sec .pulse-cols__detalhe--cima .pmd-ficha.is-in {
	animation-name: pmd-in-cima;
}

@keyframes pmd-in {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
}

@keyframes pmd-in-cima {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
}

.pulse-sec .pmd-hd {
	flex: none;
	display: flex;
	align-items: center;
	gap: 1.4rem;
	padding: 1.4rem clamp(1.2rem, 4cqi, 2.2rem) 1.1rem;
	border-bottom: 1px solid var(--line);
}

.pulse-sec .pmd-hd__tx {
	flex: 1;
	min-width: 0;
}

.pulse-sec .pmd-logo {
	flex: none;
	display: block;
	width: 11rem;
	height: 2.6rem;
}

.pulse-sec .pmd-logo .pmd-logo__img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left center;
	border-radius: 0;
	box-shadow: none;
	filter: brightness(0) invert(1);
	opacity: .92;
}

html.pulse-claro .pulse-sec .pmd-logo .pmd-logo__img,
.pulse-sec.pulse-sec--bg-light .pmd-logo .pmd-logo__img {
	filter: brightness(0);
	opacity: .82;
}

.pulse-sec .pmd-kick {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	margin: 0;
	font-size: calc(.72rem * var(--text-scale, 1));
	line-height: 1.3;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--eyebrow);
}

.pulse-sec .pmd-kick::before {
	content: "";
	flex: none;
	width: 1.4em;
	height: 1px;
	background: currentColor;
}

/* com a marca da etiqueta global (Definições do Tema → Etiqueta: imagem) — o
   mesmo símbolo das etiquetas do site, em vez do traço */
.pulse-sec .pmd-painel[style*="--pmd-marca"] .pmd-kick::before {
	width: 1.05em;
	height: 1.05em;
	-webkit-mask: var(--pmd-marca) center / contain no-repeat;
	mask: var(--pmd-marca) center / contain no-repeat;
}

.pulse-sec .pmd-t {
	margin: .25rem 0 0;
	padding: 0;
	font-family: inherit;
	font-weight: 400;
	font-size: calc(clamp(1.35rem, 1.1rem + 1.2cqi, 2rem) * var(--text-scale, 1) * var(--pmd-tit-e, 1)); /* v1.321: --pmd-tit-e/--pmd-txt-e = «Fichas das marcas» (Definições do Tema → Letra e texto) */
	line-height: 1.1;
	letter-spacing: -.015em;
	color: var(--head);
	text-wrap: balance;
}

.pulse-sec .pmd-s {
	margin: .25rem 0 0;
	font-size: calc(clamp(.95rem, .9rem + .3cqi, 1.1rem) * var(--text-scale, 1) * var(--pmd-txt-e, 1));
	line-height: 1.35;
	color: var(--muted);
}

.pulse-sec .pmd-lead p {
	margin: 0 0 .9em;
	font-size: calc(.97rem * var(--text-scale, 1) * var(--pmd-txt-e, 1));
	line-height: 1.65;
	color: var(--muted);
}

.pulse-sec .pmd-lead p:last-child {
	margin-bottom: 0;
}

.pulse-sec .pmd-grupos {
	display: grid;
	gap: 1.1rem;
}

.pulse-sec .pmd-cap {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0 0 .55rem;
	font-size: calc(.7rem * var(--text-scale, 1));
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--eyebrow);
}

.pulse-sec .pmd-cap::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--line);
}

.pulse-sec .pmd-chk,
.pulse-sec .pmd-tags {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pulse-sec .pmd-chk {
	display: grid;
	gap: .45rem;
}

.pulse-sec .pmd-chk li {
	display: flex;
	gap: .7rem;
	align-items: flex-start;
	margin: 0;
	padding: 0;
	font-size: calc(.93rem * var(--text-scale, 1) * var(--pmd-txt-e, 1));
	line-height: 1.45;
	color: var(--ink);
}

.pulse-sec .pmd-chk li::before {
	content: "";
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	margin-top: .15rem;
	border: 1px solid var(--line-2, var(--line));
	border-radius: 2px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2399a0f5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center / 70% no-repeat;
}

/* sobre fundo claro o visto azul-claro quase não se vê — passa a #3939b5 */
html.pulse-claro .pulse-sec .pmd-chk li::before,
.pulse-sec.pulse-sec--bg-light .pmd-chk li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233939b5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
}

.pulse-sec .pmd-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
}

.pulse-sec .pmd-tags li {
	display: inline-block;
	margin: 0;
	padding: .3rem .65rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: var(--glass);
	font-size: calc(.82rem * var(--text-scale, 1));
	line-height: 1.3;
	color: var(--ink);
}

/* a fotografia do equipamento: inteira, numa PLACA clara com a «mira» nos cantos */
.pulse-sec .pmd-fig {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 3;
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
}

.pulse-sec .pmd-fig .pmd-img {
	position: absolute;
	inset: 8%;
	width: 84%;
	max-width: none;
	height: 84%;
	object-fit: contain;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.pulse-sec .pmd-fig::after {
	content: "";
	position: absolute;
	inset: 10px;
	pointer-events: none;
	--c: 14px;
	background:
		linear-gradient(#d7d7ff, #d7d7ff) top left / var(--c) 1px no-repeat,
		linear-gradient(#d7d7ff, #d7d7ff) top left / 1px var(--c) no-repeat,
		linear-gradient(#d7d7ff, #d7d7ff) top right / var(--c) 1px no-repeat,
		linear-gradient(#d7d7ff, #d7d7ff) top right / 1px var(--c) no-repeat,
		linear-gradient(#d7d7ff, #d7d7ff) bottom left / var(--c) 1px no-repeat,
		linear-gradient(#d7d7ff, #d7d7ff) bottom left / 1px var(--c) no-repeat,
		linear-gradient(#d7d7ff, #d7d7ff) bottom right / var(--c) 1px no-repeat,
		linear-gradient(#d7d7ff, #d7d7ff) bottom right / 1px var(--c) no-repeat;
}

html.pulse-claro .pulse-sec .pmd-fig {
	border: 1px solid var(--line);
}

/* o × */
.pulse-sec .pmd-x {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	width: 2.5rem;
	height: 2.5rem;
	margin: 0;
	padding: 0;
	appearance: none;
	background: color-mix(in srgb, var(--pmd-bg) 70%, transparent);
	border: 1px solid var(--line-2, var(--line));
	border-radius: 50%;
	color: var(--head);
	font: inherit;
	cursor: pointer;
	transition: background .25s, border-color .25s, transform .25s var(--ease, ease);
}

.pulse-sec .pmd-x:hover {
	background: var(--glass-2, var(--glass));
	transform: rotate(90deg);
}

.pulse-sec .pmd-x--pill {
	width: auto;
	height: auto;
	padding: .5rem .9rem;
	border-radius: 999px;
}

.pulse-sec .pmd-x--pill:hover {
	transform: none;
}

.pulse-sec .pmd-ic {
	width: 1rem;
	height: 1rem;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* os botões do rodapé */
.pulse-sec .pmd-ft {
	flex: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem;
	padding: .85rem clamp(1.2rem, 4cqi, 2.2rem);
	border-top: 1px solid var(--line);
	background: var(--pmd-bg);
}

.pulse-sec a.pmd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .7rem 1.2rem;
	border: 1px solid var(--line-2, var(--line));
	border-radius: 999px;
	background: transparent;
	color: var(--head);
	font-size: calc(.9rem * var(--text-scale, 1));
	line-height: 1.1;
	text-decoration: none;
	transition: background .25s, border-color .25s, transform .25s var(--ease, ease), filter .25s;
}

.pulse-sec a.pmd-btn:hover {
	background: var(--glass-2, var(--glass));
	color: var(--head);
	transform: translateY(-2px);
}

.pulse-sec a.pmd-btn--cheio,
.pulse-sec a.pmd-btn--cheio:hover {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--pmd-cta-ink);
}

.pulse-sec a.pmd-btn--cheio:hover {
	filter: brightness(1.06);
}

.pulse-sec .pmd-btn .pmd-ic {
	width: .95rem;
	height: .95rem;
}

.pulse-sec .pmd-nav {
	display: flex;
	gap: .4rem;
	margin-left: auto;
}

.pulse-sec .pmd-nav__b {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: 0;
	padding: .55rem .8rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: transparent;
	color: var(--ink);
	font: inherit;
	font-size: calc(.82rem * var(--text-scale, 1));
	line-height: 1.1;
	cursor: pointer;
	transition: border-color .25s, background .25s;
}

.pulse-sec .pmd-nav__b:hover {
	border-color: var(--line-2, var(--line));
	background: var(--glass);
}

.pulse-sec .pmd-nav__t {
	max-width: 11rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pulse-sec .pmd-painel :is(a, button):focus-visible,
.pulse-sec .pmd-ficha:focus-visible {
	outline: 2px solid var(--eyebrow);
	outline-offset: 2px;
}

/* o corpo que rola (cabeçalho e rodapé ficam) */
.pulse-sec .pmd-bd {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--line-2, var(--line)) transparent;
}

.pulse-sec .pmd-tx {
	display: grid;
	gap: 1.1rem;
	align-content: start;
	min-width: 0;
}

/* ---------------------------------------------------------------------------
 * 1 · FICHA — texto | fotografia (7/5), a fotografia fica à vista ao rolar
 * ------------------------------------------------------------------------- */
.pulse-sec .pmd-ficha--ficha .pmd-bd {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 1.4rem clamp(1.4rem, 4cqi, 2.6rem);
	align-items: start;
	padding: clamp(1.2rem, 3cqi, 1.8rem) clamp(1.2rem, 4cqi, 2.2rem);
}

.pulse-sec .pmd-ficha--ficha .pmd-fig {
	position: sticky;
	top: 0;
}

/* ---------------------------------------------------------------------------
 * 4 · ATUAL MELHORADO — o painel de sempre, arrumado: as listas lado a lado,
 * a fotografia inteira, ações em baixo; cresce com o conteúdo (sem rolar)
 * ------------------------------------------------------------------------- */
.pulse-sec .pmd-painel--melhorado .pmd-ficha {
	padding: clamp(1.2rem, 3cqi, 2rem) clamp(1.2rem, 3cqi, 2rem) 0;
}

.pulse-sec .pmd-ficha--melhorado .pmd-hd {
	padding: 0 0 1rem;
}

.pulse-sec .pmd-ficha--melhorado .pmd-x {
	background: var(--pmd-sec, var(--bg));
}

.pulse-sec .pmd-ficha--melhorado .pmd-bd {
	display: grid;
	grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	gap: 1.2rem clamp(1.4rem, 4cqi, 2.6rem);
	align-items: start;
	padding: 1.2rem 0;
	overflow: visible;
}

.pulse-sec .pmd-ficha--melhorado .pmd-lead p {
	font-size: calc(1.02rem * var(--text-scale, 1) * var(--pmd-txt-e, 1));
}

.pulse-sec .pmd-grupos--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem clamp(1rem, 3cqi, 2rem);
	align-items: start;
}

.pulse-sec .pmd-ficha--melhorado .pmd-ft {
	padding: 1rem 0 1.2rem;
	background: none;
}

/* ---------------------------------------------------------------------------
 * 3 · SHOWROOM — o equipamento em palco à direita, sobre um halo de luz; o
 * texto entra por linhas à esquerda e é o único a rolar; ações em barra
 * ------------------------------------------------------------------------- */
.pulse-sec .pmd-painel--showroom {
	height: max(var(--pmd-h, 34rem), 30rem);
}

.pulse-sec .pmd-ficha--showroom {
	overflow: hidden;
}

.pulse-sec .pmd-halo {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(60% 70% at 72% 50%, color-mix(in srgb, var(--accent) 35%, transparent), transparent 70%);
}

.pulse-sec .pmd-ficha--showroom .pmd-fig--palco {
	position: absolute;
	z-index: 1;
	top: 8%;
	bottom: 16%;
	right: 4%;
	width: 42%;
	aspect-ratio: auto;
	background: none;
	border: 0;
	overflow: visible;
}

.pulse-sec .pmd-ficha--showroom .pmd-fig--palco::after {
	content: none;
}

.pulse-sec .pmd-ficha--showroom .pmd-fig--palco .pmd-img {
	inset: 0;
	width: 100%;
	height: 100%;
	filter: drop-shadow(0 40px 60px rgba(0, 0, 0, .55));
}

.pulse-sec .pmd-ficha--showroom .pmd-x--pill {
	position: absolute;
	z-index: 4;
	top: 1rem;
	right: 1rem;
}

.pulse-sec .pmd-sr {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	right: 50%;
	bottom: 4.6rem;
	display: flex;
	flex-direction: column;
	justify-content: safe center;
	gap: 1rem;
	padding: clamp(1.4rem, 4cqi, 3rem) clamp(1.4rem, 4cqi, 3rem) 1.2rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--line-2, var(--line)) transparent;
}

.pulse-sec .pmd-sr > * {
	flex-shrink: 0;
	max-width: 40rem;
}

.pulse-sec .pmd-logo--lg {
	width: 12rem;
	height: 2.8rem;
}

.pulse-sec .pmd-sr .pmd-t {
	font-size: calc(clamp(1.8rem, 1.2rem + 2.6cqi, 3.2rem) * var(--text-scale, 1) * var(--pmd-tit-e, 1));
	max-width: 18ch;
}

.pulse-sec .pmd-sr .pmd-grupos--2 .pmd-chk {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .5rem 1.2rem;
}

.pulse-sec .pmd-sr .pmd-grupos--2 {
	grid-template-columns: minmax(0, 1fr);
}

.pulse-sec .pmd-ft--barra {
	position: absolute;
	z-index: 3;
	left: 0;
	right: 0;
	bottom: 0;
	padding: .9rem clamp(1.4rem, 4cqi, 3rem);
}

.pulse-sec .pmd-ficha--showroom.is-in .pmd-sr > * {
	animation: pmd-in .55s var(--ease, ease) both;
	animation-delay: calc(var(--i, 0) * 70ms + 120ms);
}

.pulse-sec .pmd-ficha--showroom.is-in .pmd-fig--palco {
	animation: pmd-palco .8s var(--ease, ease) both;
	animation-delay: 120ms;
}

@keyframes pmd-palco {
	from {
		opacity: 0;
		transform: translateX(40px) scale(.96);
	}
}

/* ---------------------------------------------------------------------------
 * 2 · DOSSIÊ e 5 · ÍNDICE — SEM faixa: um só painel com o espaço de seleção
 * (34 rem — a «Altura do painel» — encolhendo num ecrã baixo para o painel
 * inteiro caber) e o ÍNDICE: em linha (em baixo/em cima, COLADO ao ecrã
 * enquanto o painel está à vista) ou em coluna (esquerda/direita, 17 rem)
 * ------------------------------------------------------------------------- */
.pulse-sec .pmd-painel--sem-faixa {
	display: grid;
	height: auto;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: var(--pmd-sel-h) auto;
}

.pulse-sec .pmd-sel {
	position: relative;
	grid-column: 1;
	grid-row: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.pulse-sec .pmd-sel > .pmd-ficha {
	height: 100%;
}

.pulse-sec .pmd-sel--vazio::before {
	content: "";
	flex: 1;
	background: radial-gradient(60% 70% at 50% 50%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%);
}

.pulse-sec .pmd-idx {
	grid-column: 1;
	grid-row: 2;
	position: sticky;
	bottom: 0;
	z-index: 5;
	display: flex;
	align-items: stretch;
	gap: .5rem;
	padding: .6rem .8rem;
	border-top: 1px solid var(--line);
	background: var(--pmd-bg);
}

.pulse-sec .pmd-idx-cima {
	grid-template-rows: auto var(--pmd-sel-h);
}

.pulse-sec .pmd-idx-cima .pmd-sel {
	grid-row: 2;
}

.pulse-sec .pmd-idx-cima .pmd-idx {
	grid-row: 1;
	bottom: auto;
	top: 0;
	border-top: 0;
	border-bottom: 1px solid var(--line);
}

.pulse-sec .pmd-idx-esq,
.pulse-sec .pmd-idx-dir {
	grid-template-columns: 17rem minmax(0, 1fr);
	grid-template-rows: var(--pmd-sel-h);
}

.pulse-sec .pmd-idx-dir {
	grid-template-columns: minmax(0, 1fr) 17rem;
}

.pulse-sec .pmd-idx-esq .pmd-sel {
	grid-column: 2;
	grid-row: 1;
}

.pulse-sec .pmd-idx-dir .pmd-sel {
	grid-column: 1;
	grid-row: 1;
}

.pulse-sec :is(.pmd-idx-esq, .pmd-idx-dir) .pmd-idx {
	position: static;
	grid-row: 1;
	flex-direction: column;
	padding: 1rem;
	border-top: 0;
	border-right: 1px solid var(--line);
	overflow-y: auto;
	scrollbar-width: thin;
}

.pulse-sec .pmd-idx-esq .pmd-idx {
	grid-column: 1;
}

.pulse-sec .pmd-idx-dir .pmd-idx {
	grid-column: 2;
	border-right: 0;
	border-left: 1px solid var(--line);
}

/* os botões do índice: [logótipo / tagline] | [+] */
.pulse-sec .pmd-idx__b {
	position: relative;
	flex: 1 1 0;
	min-width: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: .7rem;
	align-items: center;
	align-content: center;
	margin: 0;
	padding: .65rem .85rem;
	border: 1px solid transparent;
	border-radius: 12px;
	background: transparent;
	color: var(--muted);
	font: inherit;
	font-size: calc(.82rem * var(--text-scale, 1));
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
	transition: border-color .25s, background .25s, color .25s;
}

.pulse-sec :is(.pmd-idx-esq, .pmd-idx-dir) .pmd-idx__b {
	flex: none;
	padding: .9rem 1rem;
}

.pulse-sec .pmd-logo--idx {
	grid-column: 1;
	width: 7rem;
	max-width: 100%;
	height: 1.6rem;
	opacity: .7;
}

.pulse-sec .pmd-idx__t {
	grid-column: 1;
	margin-top: .35rem;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

.pulse-sec .pmd-idx__b::after {
	content: "+";
	grid-column: 2;
	grid-row: 1 / 3;
	align-self: center;
	display: grid;
	place-items: center;
	width: 1.5rem;
	height: 1.5rem;
	border: 1px solid var(--line-2, var(--line));
	border-radius: 50%;
	font-size: .9em;
	color: var(--head);
	transition: transform .3s var(--ease, ease), background .3s, color .3s;
}

.pulse-sec .pmd-idx__b:hover {
	background: var(--glass);
	border-color: var(--line);
	color: var(--head);
}

.pulse-sec .pmd-idx__b:hover .pmd-logo--idx,
.pulse-sec .pmd-idx__b[aria-current="true"] .pmd-logo--idx {
	opacity: 1;
}

.pulse-sec .pmd-idx__b[aria-current="true"] {
	background: var(--glass-2, var(--glass));
	border-color: var(--accent);
	color: var(--head);
}

.pulse-sec .pmd-idx__b[aria-current="true"]::after {
	transform: rotate(45deg);
	background: #fff;
	border-color: #fff;
	color: #060613;
}

html.pulse-claro .pulse-sec .pmd-idx__b[aria-current="true"]::after {
	background: var(--ink);
	border-color: var(--ink);
	color: #fff;
}

/* v1.274: o cartão sem o «+» → o botão do índice também sem ele (uma coluna só) */
.pulse-sec .pmd-idx__b.pmd-idx__b--sem-icone {
	grid-template-columns: minmax(0, 1fr);
}

.pulse-sec .pmd-idx__b--sem-icone::after {
	display: none;
}

/* Dossiê: só logótipos, ao centro, sem o «+» */
.pulse-sec .pmd-idx--logos .pmd-idx__b {
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	min-height: 3.6rem;
	padding: .8rem 1rem;
}

.pulse-sec .pmd-idx--logos .pmd-idx__b::after {
	display: none;
}

.pulse-sec .pmd-idx--logos .pmd-logo--idx {
	width: 8.5rem;
	height: 1.9rem;
}

.pulse-sec .pmd-idx--logos .pmd-logo--idx .pmd-logo__img {
	object-position: center;
}

/* v1.273: as larguras da coluna são da FAIXA Separadores (eram do desenho Dossiê) */
.pulse-sec .pmd-idx-esq.pmd-painel--fx-sep,
.pulse-sec .pmd-idx-dir.pmd-painel--fx-sep {
	grid-template-columns: 13rem minmax(0, 1fr);
}

.pulse-sec .pmd-idx-dir.pmd-painel--fx-sep {
	grid-template-columns: minmax(0, 1fr) 13rem;
}

/* a ficha do ÍNDICE: cabeçalho, corpo (texto | fotografia a 38 %, que fica à
   vista ao rolar) e rodapé — a fotografia vem depois do texto no DOM */
.pulse-sec .pmd-ficha--indice .pmd-bd {
	display: flex;
	align-items: flex-start;
	gap: 1.6rem;
	padding: 1.1rem clamp(1.2rem, 4cqi, 2rem) 1.4rem;
}

.pulse-sec .pmd-ficha--indice .pmd-bd > .pmd-fig {
	flex: 0 0 38%;
	margin: 0;
	position: sticky;
	top: 0;
}

.pulse-sec .pmd-ficha--indice .pmd-bd > .pmd-tx {
	flex: 1 1 auto;
}

/* v1.282: a fotografia na ALTURA DISPONÍVEL do corpo, como no Showroom. Com a
   proporção 4:3 fixa, a 38 % de um painel largo ficava mais alta do que o
   corpo (449 px num corpo de 356 a 1800 px) e era ELA que fazia rolar, mesmo
   com o texto a caber. Sem proporção, a caixa não pede altura nenhuma: estica à
   altura da linha — a do corpo (a da seleção, --pmd-sel-h) ou, num modal que
   cresce com o conteúdo, a do texto — e a imagem cabe lá dentro (contain, a
   regra de base). Se o texto for mais comprido do que o corpo, só ele obriga a
   rolar e a foto fica colada (sticky). Só em linha: na coluna (≤820 px) a foto
   continua no topo a 16:9. */
@container pmd (min-width: 821px) {
	.pulse-sec .pmd-ficha--indice .pmd-bd {
		align-items: stretch;
	}

	.pulse-sec .pmd-ficha--indice .pmd-bd > .pmd-fig {
		aspect-ratio: auto;
		min-height: 12rem;
	}
}

/* a ficha do DOSSIÊ: etiqueta + × em cima; fotografia | texto; rodapé */
.pulse-sec .pmd-top {
	flex: none;
	display: flex;
	align-items: center;
	gap: .8rem;
	padding: .75rem clamp(1rem, 3cqi, 1.4rem);
	border-bottom: 1px solid var(--line);
}

.pulse-sec .pmd-top .pmd-kick {
	flex: 1;
	min-width: 0;
	white-space: nowrap;
}

.pulse-sec .pmd-top .pmd-x {
	width: 2.2rem;
	height: 2.2rem;
	margin-left: auto; /* v1.274: sem a etiqueta, o × continua à direita */
}

.pulse-sec .pmd-ficha--dossie .pmd-bd {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 1.4rem clamp(1.4rem, 4cqi, 2.4rem);
	align-items: start;
	padding: 1.2rem clamp(1.2rem, 3cqi, 1.6rem) 1.4rem;
}

.pulse-sec .pmd-ficha--dossie .pmd-fig {
	position: sticky;
	top: 0;
}

.pulse-sec .pmd-ficha--dossie .pmd-t {
	margin-top: 0;
}

.pulse-sec .pmd-bd--sem-fig {
	grid-template-columns: minmax(0, 1fr) !important;
}

/* ---------------------------------------------------------------------------
 * TABLET / TELEMÓVEL (pela largura do PAINEL): o painel cresce com o conteúdo
 * (a página rola), a fotografia sobe para o topo e o rodapé fica colado ao
 * fundo do ecrã; no Dossiê/Índice o índice é uma fila de logótipos colada ao
 * topo do painel
 * ------------------------------------------------------------------------- */
@container pmd (max-width: 820px) {
	/* numa coluna só, FLEX e não grelha: na grelha o Chrome media a linha da
	   fotografia (aspect-ratio, imagem absoluta lá dentro) mais baixa do que ela
	   — 160 px para 389 — e o título/texto ficavam por baixo da foto (v1.273) */
	.pulse-sec .pmd-ficha--ficha .pmd-bd,
	.pulse-sec .pmd-ficha--melhorado .pmd-bd,
	.pulse-sec .pmd-ficha--dossie .pmd-bd {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	/* nada encolhe: o corpo é que rola (sem isto a foto, com overflow:hidden,
	   cedia altura ao texto) */
	.pulse-sec :is(.pmd-ficha--ficha, .pmd-ficha--melhorado, .pmd-ficha--dossie) .pmd-bd > * {
		flex-shrink: 0;
	}

	.pulse-sec .pmd-ficha .pmd-bd > .pmd-fig {
		position: relative;
		top: auto;
		order: -1;
		aspect-ratio: 16 / 9;
	}

	.pulse-sec .pmd-ficha--indice .pmd-bd {
		flex-direction: column;
	}

	.pulse-sec .pmd-ficha--indice .pmd-bd > .pmd-fig {
		flex: none;
		width: 100%;
	}

	.pulse-sec .pmd-grupos--2 {
		grid-template-columns: minmax(0, 1fr);
	}

	.pulse-sec .pmd-ft .pmd-nav {
		width: 100%;
		margin-left: 0;
	}

	.pulse-sec .pmd-ft .pmd-nav__b {
		flex: 1;
		justify-content: center;
	}

	.pulse-sec .pmd-nav__t {
		max-width: none;
		min-width: 0;
	}

	.pulse-sec .pmd-ficha--showroom .pmd-fig--palco {
		position: relative;
		inset: auto;
		width: auto;
		height: 15rem;
		margin: 3.6rem 1rem 0;
	}

	.pulse-sec .pmd-sr {
		position: relative;
		inset: auto;
		right: auto;
		bottom: auto;
		overflow: visible;
		justify-content: flex-start;
	}

	.pulse-sec .pmd-sr .pmd-grupos--2 .pmd-chk {
		grid-template-columns: minmax(0, 1fr);
	}

	.pulse-sec .pmd-ficha--showroom {
		overflow: visible;
	}

	.pulse-sec .pmd-ft--barra {
		position: sticky;
	}
}

@media (max-width: 1199px) {

	/* com faixa: o painel deixa de ter altura fixa — cresce com a ficha e a
	   página rola (como o detalhe de sempre em ecrã compacto) */
	.pulse-sec .pmd-painel.pmd-painel--aberto:not(.pmd-painel--sem-faixa) {
		height: auto;
	}

	.pulse-sec .pmd-painel--aberto:not(.pmd-painel--sem-faixa) .pmd-bd,
	.pulse-sec .pmd-painel--aberto:not(.pmd-painel--sem-faixa) .pmd-sr {
		overflow: visible;
	}

	.pulse-sec .pmd-painel--aberto:not(.pmd-painel--sem-faixa) .pmd-ft {
		position: sticky;
		bottom: 0;
		z-index: 3;
	}
}

/* Dossiê/Índice em ecrã estreito — @media e não @container: estas regras
   mexem no PRÓPRIO painel (a grelha), e uma consulta de contentor nunca se
   aplica ao próprio contentor; tudo o que muda junto (grelha, índice,
   seleção) fica no MESMO limiar para nunca haver um estado a meio. */
@media (max-width: 900px) {
	.pulse-sec .pmd-painel--sem-faixa,
	.pulse-sec .pmd-painel--sem-faixa:is(.pmd-idx-cima, .pmd-idx-esq, .pmd-idx-dir) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-sel {
		grid-column: 1;
		grid-row: 2;
		min-height: 16rem;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-sel > .pmd-ficha {
		height: auto;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-bd {
		overflow: visible;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-ft {
		position: sticky;
		bottom: 0;
		z-index: 3;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-idx,
	.pulse-sec .pmd-painel--sem-faixa:is(.pmd-idx-cima, .pmd-idx-esq, .pmd-idx-dir) .pmd-idx {
		grid-column: 1;
		grid-row: 1;
		position: sticky;
		top: 0;
		bottom: auto;
		flex-direction: row;
		gap: .4rem;
		padding: .6rem;
		border: 0;
		border-bottom: 1px solid var(--line);
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-idx__b {
		flex: 1 0 auto;
		min-width: 7.4rem;
		padding: .6rem .7rem;
		grid-template-columns: minmax(0, 1fr);
		justify-items: center;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-logo--idx {
		width: 6rem;
		height: 1.3rem;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-logo--idx .pmd-logo__img {
		object-position: center;
	}

	.pulse-sec .pmd-idx__t,
	.pulse-sec .pmd-idx__b::after {
		display: none;
	}
}

@container pmd (max-width: 600px) {
	.pulse-sec .pmd-hd {
		position: relative;
		flex-wrap: wrap;
		gap: .6rem 1rem;
		padding-right: 3.6rem;
	}

	.pulse-sec .pmd-hd .pmd-logo {
		flex-basis: 100%;
		width: 8.5rem;
		height: 2rem;
	}

	.pulse-sec .pmd-hd .pmd-x {
		position: absolute;
		top: 1rem;
		right: 1rem;
	}

	.pulse-sec .pmd-ficha--melhorado .pmd-hd .pmd-x {
		top: 0;
		right: 0;
	}

	/* v1.283: o padding do Atual melhorado (0 0 1rem, 0,3,0) tirava a folga da
	   direita que os outros desenhos guardam para o × — o logótipo (a linha
	   inteira) passava por baixo dele */
	.pulse-sec .pmd-ficha--melhorado .pmd-hd {
		padding-right: 3.2rem;
	}

	.pulse-sec .pmd-ft a.pmd-btn {
		flex: 1 1 auto;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-idx__b {
		min-width: 0;
		flex: 1 1 0;
		padding: .6rem .35rem;
	}

	.pulse-sec .pmd-painel--sem-faixa .pmd-logo--idx {
		width: 100%;
		height: 1.25rem;
	}
}

@media (prefers-reduced-motion: reduce) {

	.pulse-sec .pmd-ficha.is-in,
	.pulse-sec .pmd-ficha--showroom.is-in .pmd-sr > *,
	.pulse-sec .pmd-ficha--showroom.is-in .pmd-fig--palco {
		animation: none;
	}

	.pulse-sec .pmd-x:hover,
	.pulse-sec a.pmd-btn:hover {
		transform: none;
	}
}

/* ============================================================================
 * v1.273 — A FAIXA À PARTE DO DESENHO, O MODAL E AS OPÇÕES DO PAINEL
 * ----------------------------------------------------------------------------
 * O par do marca-desenhos.js v1.273 (ver o cabeçalho de lá). Tudo nasce de
 * classes que o JS só põe com uma escolha feita — sem escolha, nada disto
 * se aplica e o painel fica o da v1.271.
 * ========================================================================== */

/* ---------------------------------------------------------------------------
 * A FAIXA PARADA OU AO LADO (.pmd-lado): a faixa e o painel. Em baixo = o
 * painel por cima; em cima = por baixo; à esquerda/direita (≥ 900 px) = uma
 * coluna de 15–21 rem ao lado do painel (no tablet/telemóvel, em cima).
 * ------------------------------------------------------------------------- */
.pulse-sec .pmd-lado {
	display: flex;
	flex-direction: column;
	gap: clamp(1rem, .8rem + .8vw, 1.5rem);
}

/* o respiro do detalhe (margin do .pulse-cols__detalhe) é aqui o gap */
.pulse-sec .pmd-lado > .pmd-painel {
	order: 1;
	margin: 0;
}

.pulse-sec .pmd-lado--baixo > .pmd-painel {
	order: -1;
}

.pulse-sec .pmd-faixa {
	min-width: 0;
}

/* as setas do carrossel horizontal não têm lugar numa grelha nem na coluna */
.pulse-sec .pmd-lado .pulse-cols__seta {
	display: none;
}

@media (min-width: 900px) {

	.pulse-sec .pmd-lado--esq,
	.pulse-sec .pmd-lado--dir {
		display: grid;
		grid-template-columns: minmax(15rem, 21rem) minmax(0, 1fr);
		align-items: start;
	}

	.pulse-sec .pmd-lado--dir {
		grid-template-columns: minmax(0, 1fr) minmax(15rem, 21rem);
	}

	.pulse-sec .pmd-lado--esq > .pmd-faixa,
	.pulse-sec .pmd-lado--dir > .pmd-painel {
		grid-column: 1;
		grid-row: 1;
	}

	.pulse-sec .pmd-lado--esq > .pmd-painel,
	.pulse-sec .pmd-lado--dir > .pmd-faixa {
		grid-column: 2;
		grid-row: 1;
	}
}

/* o painel sem «Detalhe por defeito» ao lado: um brilho no lugar da galeria */
.pulse-sec .pmd-palco--vazio::before {
	content: "";
	flex: 1;
	background: radial-gradient(60% 70% at 50% 50%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%);
}

/* GRELHA / LOGÓTIPOS: os cartões todos, parados, em colunas que cabem. A
   grelha continua .pulse-cols--carrossel (é essa a «Disposição» gravada) —
   anulam-se a fila, o scroll e as larguras de cartão da faixa. O :is com a
   classe repetida dá ao seletor a força das larguras --tam/--larg da Marca
   (0,4,0), que no site mediam o cartão NA FAIXA. */
.pulse-sec .pulse-cols.pmd-grelha {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: var(--cols-gap, 1rem);
	align-items: stretch;
	overflow: visible;
}

.pulse-sec .pulse-cols.pmd-grelha > :is(*, .pulse-el-marca.pulse-acc__item.pulse-acc__item) {
	flex: none;
	width: auto;
	min-width: 0;
	max-width: none;
}

.pulse-sec .pmd-grelha .pulse-brand__tagline {
	font-size: calc(clamp(1.05rem, .95rem + .4vw, 1.35rem) * var(--text-scale, 1));
	line-height: 1.2;
}

/* LOGÓTIPOS: só o logótipo (e o +) */
.pulse-sec .pmd-grelha--logos .pulse-brand__tagline,
.pulse-sec .pmd-grelha--logos .pulse-brand__subtitle {
	display: none;
}

/* o logótipo da Marca vive ABSOLUTO por cima do título (a «faixa de
   logótipo», --marca-logo-faixa); sem título a cabeça do cartão ficava sem
   largura nem altura e o logótipo sumia — volta ao fluxo, ao centro */
.pulse-sec .pulse-cols.pmd-grelha--logos .pulse-el-marca .pulse-el-marca__head {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 2.6rem;
	padding-top: 0;
	justify-content: center;
}

.pulse-sec .pulse-cols.pmd-grelha--logos .pulse-el-marca .pulse-el-marca__head > :is(.pulse-brand__media, img.pulse-brand__logo) {
	position: static;
	transform: none;
	width: 100%;
	height: 2.3rem;
	align-items: center;
}

/* O CARROSSEL AO LADO (.pmd-vfaixa): a grelha passa a JANELA com scroll
   nativo (barra escondida) e a pista lá dentro é a faixa do site — a mesma
   classe, por isso herda as larguras de cartão e o gap. O motor do JS anda
   no eixo que esta folha lhe der. */
.pulse-sec .pulse-cols.pmd-vfaixa {
	display: block;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	cursor: grab;
}

.pulse-sec .pulse-cols.pmd-vfaixa::-webkit-scrollbar {
	display: none;
}

.pulse-sec .pulse-cols.pmd-vfaixa.is-dragging {
	cursor: grabbing;
	user-select: none;
}

@media (min-width: 900px) {

	/* À esquerda/direita: uma COLUNA da altura do painel, a deslizar para
	   cima, com as pontas a desvanecer */
	.pulse-sec :is(.pmd-lado--esq, .pmd-lado--dir) .pulse-cols.pmd-vfaixa {
		overflow-x: hidden;
		overflow-y: auto;
		height: var(--pmd-faixa-h, 34rem);
		-webkit-mask-image: linear-gradient(transparent, #000 6%, #000 94%, transparent);
		mask-image: linear-gradient(transparent, #000 6%, #000 94%, transparent);
	}

	.pulse-sec :is(.pmd-lado--esq, .pmd-lado--dir) .pmd-vfaixa > .pmd-pista {
		flex-direction: column;
		width: auto;
		height: max-content;
		gap: .75rem;
		padding-block: .4rem;
	}

	.pulse-sec :is(.pmd-lado--esq, .pmd-lado--dir) .pmd-vfaixa > .pmd-pista > :is(*, .pulse-el-marca.pulse-acc__item.pulse-acc__item) {
		width: auto;
		max-width: none;
	}

	/* a GRELHA ao lado: uma coluna só */
	.pulse-sec :is(.pmd-lado--esq, .pmd-lado--dir) .pulse-cols.pmd-grelha {
		grid-template-columns: minmax(0, 1fr);
		gap: .75rem;
	}

	.pulse-sec :is(.pmd-lado--esq, .pmd-lado--dir) :is(.pmd-vfaixa, .pmd-grelha) .pulse-brand__tagline {
		font-size: calc(1.05rem * var(--text-scale, 1));
		line-height: 1.2;
	}

	.pulse-sec :is(.pmd-lado--esq, .pmd-lado--dir) :is(.pmd-vfaixa, .pmd-grelha) .pulse-brand__subtitle {
		font-size: calc(.66rem * var(--text-scale, 1));
		letter-spacing: .1em;
	}
}

/* ---------------------------------------------------------------------------
 * O MODAL (.pmd-modal — um .pulse-sec no <body>): despe o full-bleed e o
 * respiro de secção (a base .pulse-sec) e fica uma camada fixa por cima de
 * tudo; a caixa é um .pmd-painel (vidro, borda, cantos, @container).
 * ------------------------------------------------------------------------- */
html.pmd-preso {
	overflow: hidden;
}

div.pulse-sec.pmd-modal {
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: flex;
	/* em LINHA, sempre: no telemóvel o sections.css põe as secções em coluna e
	   o align-items (colar a folha ao fundo) passava a mexer no eixo errado */
	flex-direction: row;
	align-items: center;
	justify-content: center;
	width: auto;
	max-width: none;
	margin: 0;
	padding: clamp(.75rem, 3vw, 2rem);
	background: transparent;
	overflow: hidden;
	color: var(--ink);
}

div.pulse-sec.pmd-modal[hidden] {
	display: none;
}

/* no telemóvel (≤ 820) o sections.css faz de CADA .pulse-sec um ecrã inteiro em
   coluna, centrado e ponto de snap («body:has(.pulse-sec) .pulse-sec:not(…)»,
   0,3,1) — o modal é um .pulse-sec e apanhava-o: a folha ficava a meio do ecrã
   em vez de colada ao fundo. Devolve-se a linha, o alinhamento e o snap (0,3,2) */
body:has(.pulse-sec) div.pulse-sec.pmd-modal {
	flex-direction: row;
	justify-content: center;
	scroll-snap-align: none;
	scroll-snap-stop: normal;
}

body:has(.pulse-sec) div.pulse-sec.pmd-modal.pmd-modal--gaveta {
	justify-content: flex-end;
}

div.pulse-sec.pmd-modal .pmd-modal__veu {
	position: absolute;
	inset: 0;
	background: rgba(4, 4, 13, var(--pmd-veu, .66));
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity var(--pmd-vel, .42s) var(--ease, ease);
}

html.pulse-claro div.pulse-sec.pmd-modal .pmd-modal__veu {
	background: rgba(16, 16, 74, var(--pmd-veu, .5));
}

div.pulse-sec.pmd-modal .pmd-painel.pmd-painel--modal {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: min(64rem, 100%);
	height: auto;
	max-height: min(88svh, 100%);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	box-shadow: 0 48px 110px -32px rgba(0, 0, 0, .7);
	outline: none;
	opacity: 0;
	transform: translateY(24px) scale(.98);
	transition: opacity var(--pmd-vel, .42s) var(--ease, ease), transform var(--pmd-vel, .42s) var(--ease, ease);
}

/* o desenho de cada um em modal (o estado FECHADO de onde entra) */
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-painel--showroom {
	height: min(40rem, 88svh);
	transform: scale(.96);
}

div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-painel--indice {
	width: min(62rem, 100%);
	transform: scale(.985);
}

/* 2 · Dossiê em modal: uma GAVETA à direita, da altura do ecrã */
div.pulse-sec.pmd-modal.pmd-modal--gaveta {
	justify-content: flex-end;
	align-items: stretch;
	padding: 0;
}

div.pulse-sec.pmd-modal--gaveta .pmd-painel.pmd-painel--modal {
	width: min(46rem, 100%);
	height: 100%;
	max-height: none;
	border-width: 0 0 0 1px;
	border-radius: 0;
	clip-path: none;
	transform: translateX(100%);
}

/* os separadores das marcas na gaveta */
.pulse-sec .pmd-tabs {
	flex: none;
	display: flex;
	gap: .4rem;
	padding: .6rem clamp(1rem, 3cqi, 1.4rem);
	border-bottom: 1px solid var(--line);
	overflow-x: auto;
	scrollbar-width: none;
}

.pulse-sec .pmd-tabs__b {
	flex: 1 0 auto;
	min-width: 6.5rem;
	display: grid;
	place-items: center;
	margin: 0;
	padding: .55rem .7rem;
	border: 1px solid transparent;
	border-radius: 10px;
	background: transparent;
	cursor: pointer;
	transition: border-color .25s, background .25s;
}

.pulse-sec .pmd-tabs__b:hover {
	background: var(--glass);
	border-color: var(--line);
}

.pulse-sec .pmd-tabs__b[aria-current="true"] {
	background: var(--glass-2, var(--glass));
	border-color: var(--accent);
}

.pulse-sec .pmd-tabs .pmd-logo--idx {
	width: 6.5rem;
	height: 1.4rem;
	opacity: .7;
}

.pulse-sec .pmd-tabs__b:hover .pmd-logo--idx,
.pulse-sec .pmd-tabs__b[aria-current="true"] .pmd-logo--idx {
	opacity: 1;
}

.pulse-sec .pmd-tabs .pmd-logo--idx .pmd-logo__img {
	object-position: center;
}

/* o Showroom em modal: o texto rola dentro da sua coluna (no painel estreito
   empilha e cresce — @container de sempre) */
@container pmd (min-width: 821px) {
	.pulse-sec .pmd-painel--modal .pmd-sr {
		overflow-y: auto;
	}
}

/* ---------------------------------------------------------------------------
 * «AO ABRIR» e «VELOCIDADE» — no modal (a caixa entra) e no espaço da
 * secção (a ficha entra no painel). O estado fechado de cada animação; o
 * aberto é sempre transform:none.
 * ------------------------------------------------------------------------- */
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-anim-fade { transform: none; }
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-anim-zoom { transform: scale(.82); }
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-anim-escala { transform: scale(.96); }
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-anim-baixo { transform: translateY(60px); }
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-anim-direita { transform: translateX(90px); }
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-anim-esquerda { transform: translateX(-90px); }
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-anim-cima { transform: translateY(-60px); }

div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-anim-nenhuma,
div.pulse-sec.pmd-modal:has(.pmd-anim-nenhuma) .pmd-modal__veu {
	transition: none;
}

/* ABERTO — por último e mais forte do que qualquer estado fechado acima */
div.pulse-sec.pmd-modal.is-open .pmd-modal__veu {
	opacity: 1;
}

div.pulse-sec.pmd-modal.is-open .pmd-painel.pmd-painel--modal {
	opacity: 1;
	transform: none;
}

/* no espaço da secção: a ficha entra com a animação escolhida */
.pulse-sec .pmd-painel .pmd-ficha.is-in {
	animation-duration: var(--pmd-vel, .32s);
}

.pulse-sec .pmd-painel.pmd-anim-fade .pmd-ficha.is-in { animation-name: pmd-a-fade; }
.pulse-sec .pmd-painel.pmd-anim-zoom .pmd-ficha.is-in { animation-name: pmd-a-zoom; }
.pulse-sec .pmd-painel.pmd-anim-escala .pmd-ficha.is-in { animation-name: pmd-a-escala; }
.pulse-sec .pmd-painel.pmd-anim-baixo .pmd-ficha.is-in { animation-name: pmd-a-baixo; }
.pulse-sec .pmd-painel.pmd-anim-direita .pmd-ficha.is-in { animation-name: pmd-a-direita; }
.pulse-sec .pmd-painel.pmd-anim-esquerda .pmd-ficha.is-in { animation-name: pmd-a-esquerda; }
.pulse-sec .pmd-painel.pmd-anim-cima .pmd-ficha.is-in { animation-name: pmd-a-cima; }

.pulse-sec .pmd-painel.pmd-anim-nenhuma .pmd-ficha.is-in,
.pulse-sec .pmd-painel.pmd-anim-nenhuma .pmd-ficha--showroom.is-in :is(.pmd-sr > *, .pmd-fig--palco) {
	animation: none;
}

@keyframes pmd-a-fade { from { opacity: 0; } }
@keyframes pmd-a-zoom { from { opacity: 0; transform: scale(.82); } }
@keyframes pmd-a-escala { from { opacity: 0; transform: scale(.96); } }
@keyframes pmd-a-baixo { from { opacity: 0; transform: translateY(60px); } }
@keyframes pmd-a-direita { from { opacity: 0; transform: translateX(90px); } }
@keyframes pmd-a-esquerda { from { opacity: 0; transform: translateX(-90px); } }
@keyframes pmd-a-cima { from { opacity: 0; transform: translateY(-60px); } }

/* ---------------------------------------------------------------------------
 * LARGURA e ALTURA MÁX. (% do ecrã no modal; no espaço da secção, a largura
 * é % da secção e a altura % do ecrã — só em ecrã largo, onde o painel tem
 * altura fixa; no estreito ele cresce com a ficha, como sempre). Os CANTOS
 * são a --pmd-r posta pelo JS (o painel e a caixa já a usam).
 * ------------------------------------------------------------------------- */
div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-com-w {
	width: min(calc(var(--pmd-w) * 1vw), 100%);
}

div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-com-h {
	max-height: min(calc(var(--pmd-hn) * 1svh), 100%);
}

div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-painel--showroom.pmd-com-h {
	height: min(calc(var(--pmd-hn) * 1svh), 100%);
}

.pulse-sec .pmd-painel.pmd-com-w:not(.pmd-painel--modal) {
	width: calc(var(--pmd-w) * 1%);
	margin-inline: auto;
}

@media (min-width: 1200px) {

	.pulse-sec .pmd-painel.pmd-com-h:not(.pmd-painel--modal):not(.pmd-painel--sem-faixa) {
		height: calc(var(--pmd-hn) * 1svh);
	}

	.pulse-sec .pmd-painel--sem-faixa.pmd-com-h {
		--pmd-sel-h: calc(var(--pmd-hn) * 1svh);
	}
}

/* ---------------------------------------------------------------------------
 * «FUNDO DO PAINEL E DO MODAL» — os fundos de secção do tema (as cores das
 * Definições: --bg, --bg2…--bg6; o «Claro» é o painel claro fixo). O texto
 * acompanha: o Claro no tema escuro leva as tintas do painel claro do site
 * (título #10102e, texto #4a4a63, etiqueta = destaque); o Navy no tema claro
 * repõe as tintas do escuro (como o tema.css faz na secção Navy).
 * ------------------------------------------------------------------------- */
html .pulse-sec .pmd-painel.pmd-fd-none { --pmd-bg: var(--bg); }
html .pulse-sec .pmd-painel.pmd-fd-light { --pmd-bg: #f5f5fb; }
html .pulse-sec .pmd-painel.pmd-fd-soft { --pmd-bg: var(--bg3); }
html .pulse-sec .pmd-painel.pmd-fd-dark { --pmd-bg: var(--bg2); }
html .pulse-sec .pmd-painel.pmd-fd-deep { --pmd-bg: var(--bg4, #04040d); }
html .pulse-sec .pmd-painel.pmd-fd-navy { --pmd-bg: var(--bg5, #10104a); }
html .pulse-sec .pmd-painel.pmd-fd-accent { --pmd-bg: var(--bg6, #161a54); }

html:not(.pulse-claro) .pulse-sec .pmd-painel.pmd-fd-light {
	--head: #10102e;
	--ink: #4a4a63;
	--muted: rgba(74, 74, 99, .86);
	/* o «Destaque» do tema escuro é um lilás claro — sobre o painel claro
	   a etiqueta e o «Pedir proposta» sumiam: o azul da marca, como no tema claro */
	--accent: #3939b5;
	--eyebrow: #3939b5;
	--line: rgba(16, 16, 46, .14);
	--line-2: rgba(16, 16, 46, .3);
	--glass: rgba(16, 16, 46, .05);
	--glass-2: rgba(16, 16, 46, .09);
	--pmd-cta-ink: #fff;
	color: var(--ink);
}

html:not(.pulse-claro) .pulse-sec .pmd-fd-light .pmd-logo .pmd-logo__img {
	filter: brightness(0);
	opacity: .82;
}

html:not(.pulse-claro) .pulse-sec .pmd-fd-light .pmd-chk li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233939b5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
}

html.pulse-claro .pulse-sec .pmd-painel.pmd-fd-navy {
	--head: #fff;
	--ink: #eef0fb;
	--muted: rgba(238, 240, 251, .66);
	--eyebrow: #99a0f5;
	--line: rgba(255, 255, 255, .12);
	--line-2: rgba(255, 255, 255, .3);
	--glass: rgba(255, 255, 255, .05);
	--glass-2: rgba(255, 255, 255, .09);
	--pmd-cta-ink: #10104a;
	color: var(--ink);
}

html.pulse-claro .pulse-sec .pmd-fd-navy .pmd-logo .pmd-logo__img {
	filter: brightness(0) invert(1);
	opacity: .92;
}

html.pulse-claro .pulse-sec .pmd-fd-navy .pmd-chk li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2399a0f5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------------------------
 * TELEMÓVEL: o modal é uma FOLHA que sobe do fundo, à largura toda (a gaveta
 * do Dossiê também); o Showroom em ecrã estreito empilha e cresce.
 * ------------------------------------------------------------------------- */
@media (max-width: 820px) {
	div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-painel--showroom,
	div.pulse-sec.pmd-modal .pmd-painel--modal.pmd-painel--showroom.pmd-com-h {
		height: auto;
	}
}

@media (max-width: 600px) {
	div.pulse-sec.pmd-modal,
	div.pulse-sec.pmd-modal.pmd-modal--gaveta,
	body:has(.pulse-sec) div.pulse-sec.pmd-modal.pmd-modal--gaveta {
		align-items: flex-end;
		justify-content: center;
		padding: 0;
	}

	div.pulse-sec.pmd-modal .pmd-painel.pmd-painel--modal,
	div.pulse-sec.pmd-modal .pmd-painel.pmd-painel--modal.pmd-com-w,
	div.pulse-sec.pmd-modal--gaveta .pmd-painel.pmd-painel--modal {
		width: 100%;
		height: auto;
		max-height: 94svh;
		border-width: 1px 1px 0;
		border-radius: var(--pmd-r, 18px) var(--pmd-r, 18px) 0 0;
		clip-path: inset(0 round var(--pmd-r, 18px) var(--pmd-r, 18px) 0 0);
	}

	div.pulse-sec.pmd-modal .pmd-painel--modal:not([class*="pmd-anim-"]) {
		transform: translateY(100%);
	}
}

/* ---------------------------------------------------------------------------
 * MOVIMENTO REDUZIDO: nada desliza (o JS também já abre sem esperar)
 * ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {

	div.pulse-sec.pmd-modal .pmd-painel.pmd-painel--modal,
	div.pulse-sec.pmd-modal .pmd-modal__veu {
		transition: none;
	}

	.pulse-sec .pmd-painel .pmd-ficha.is-in {
		animation: none;
	}
}

/* ---------------------------------------------------------------------------
 * v1.283 · LOGÓTIPO DA MARCA NO CANTO (Definições do Tema → Detalhe do
 * carrossel → «Logótipo da marca», ou o Colunas). A Ficha, o Atual melhorado
 * e o Índice já o têm no canto (o cabeçalho); aqui os dois que não o tinham:
 * ------------------------------------------------------------------------- */
/* Showroom: sai da coluna de texto (centrada na vertical — ficava a meio) para
   o canto de cima, à esquerda, à altura do × que está no da direita */
.pulse-sec .pmd-ficha--showroom .pmd-logo--canto {
	position: absolute;
	z-index: 4;
	top: 1rem;
	left: clamp(1.4rem, 4cqi, 3rem);
}

@container pmd (min-width: 821px) {
	/* a coluna começa por baixo do logótipo (num texto comprido não lhe passa por cima) */
	.pulse-sec .pmd-ficha--showroom.pmd-ficha--logo-canto .pmd-sr {
		padding-top: calc(3.8rem + clamp(.8rem, 2cqi, 1.4rem));
	}
}

@container pmd (max-width: 820px) {
	/* empilhado: no espaço por cima da fotografia, à esquerda do × */
	.pulse-sec .pmd-ficha--showroom .pmd-logo--canto {
		top: .9rem;
		left: 1rem;
		width: 9rem;
		height: 2rem;
	}
}

/* Dossiê: na barra de cima, antes da etiqueta */
.pulse-sec .pmd-top .pmd-logo--top {
	width: 8.5rem;
	height: 1.9rem;
}
