/*
Theme Name: iPreFab'27
Theme URI: https://iprefab27.pt
Author: Boutik
Author URI: https://boutik.pt
Description: Tema de blocos para o 1.º Encontro Luso-Brasileiro de Pré-fabricação em Betão (iPreFab'27). Fiel ao design web-v1 (prancheta de 1920 px). Sem plugins: oradores, patrocinadores e definições do evento incluídos no tema.
Version: 1.3.13
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: Proprietary
Text Domain: iprefab27
*/

/* ==========================================================================
   Medidas do design (prancheta 1920 px). As medidas escalam com o ecrã
   (vw) e têm mínimos para ecrãs pequenos; a 1920 px são as do ficheiro .ai.
   ========================================================================== */
:root {
	--ip-logo-w: clamp(180px, 20.833vw, 300px);
	--ip-header-h: calc(var(--ip-g) + var(--ip-logo-w) * 40 / 239.652 - 1px);
	--ip-azul: #14334f;
	--ip-texto: #15344f;
	--ip-amarelo: #ffdd00;
	--ip-branco: #fff;
	--ip-cinza: #8999a7;

	--ip-g: clamp(8px, 1.875vw, 36px);
	--ip-pad: clamp(10px, 1.875vw, 36px);
	--ip-frame: 1800px;
	--ip-col-ratio: 0.6439;
	--ip-head-top: clamp(22px, 2.97vw, 57px);
	--ip-ease: cubic-bezier(0.2, 0.7, 0.2, 1);

	--ip-fs-hero: clamp(34px, 3.281vw, 63px);
	--ip-fs-h2: clamp(30px, 3.021vw, 58px);
	--ip-fs-h3: clamp(24px, 1.667vw, 32px);
	--ip-fs-pat: clamp(22px, 1.5625vw, 30px);
	--ip-fs-foot: clamp(24px, 1.771vw, 34px);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	font-optical-sizing: none;
	font-variation-settings: "opsz" 12;
	background: var(--ip-azul);
	font-size: 16px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

:where(h1, h2, h3, h4) { margin: 0; }
:where(.ip-sec, .ip-footer, .ip-header) p { margin: 0; }

:focus-visible { outline: 2px solid var(--ip-amarelo); outline-offset: 3px; }
.is-branco :focus-visible { outline-color: var(--ip-texto); }

mark.has-inline-color { padding: 0; white-space: nowrap; }
.ip-nowrap { white-space: nowrap; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link.screen-reader-text:focus {
	background: var(--ip-amarelo); color: var(--ip-azul);
	clip: auto; clip-path: none; height: auto; width: auto;
	padding: 0.75rem 1rem; top: 0.5rem; left: 0.5rem; z-index: 100000; font-weight: 700;
}

/* ==========================================================================
   Superfícies
   ========================================================================== */
.is-azul {
	--ip-bg: var(--ip-azul);
	--ip-line: rgba(137, 153, 167, 0.42);
	--ip-line-btn: rgba(137, 153, 167, 0.55);
	background-color: var(--ip-azul);
	color: var(--ip-branco);
}
.is-branco {
	--ip-bg: var(--ip-branco);
	--ip-line: rgba(137, 153, 167, 0.42);
	--ip-line-btn: var(--ip-cinza);
	background-color: var(--ip-branco);
	color: var(--ip-texto);
}
.is-amarelo {
	--ip-bg: var(--ip-amarelo);
	background-color: var(--ip-amarelo) !important;
	color: var(--ip-texto);
}

.wp-site-blocks { background: var(--ip-azul); }
.wp-site-blocks > *,
.ip-main > *,
.ip-main > .wp-block-post-content > * { margin-block: 0; }

/* ==========================================================================
   Grelha: moldura (1800) e coluna central (1159)
   ========================================================================== */
.ip-sec, .ip-band { padding-top: var(--ip-g); }
.ip-sec--logos + .ip-sec { padding-top: 0; }
.ip-sec--logos + .ip-sec > .ip-frame { border-top: 0; }

.ip-frame {
	width: calc(100% - 2 * var(--ip-g));
	margin-inline: auto;
	border-block: 1px solid var(--ip-line);
	box-sizing: border-box;
}
.ip-col {
	width: clamp(min(100%, 960px), calc(100% * var(--ip-col-ratio)), 1159px);
	margin-inline: auto;
	border-inline: 1px solid var(--ip-line);
	box-sizing: border-box;
}
.ip-frame > *, .ip-col > * { margin-top: 0 !important; margin-bottom: 0 !important; }

@media (max-width: 1100px) {
	.ip-frame { border-inline: 1px solid var(--ip-line); }
	.ip-col { width: 100%; border-inline: 0; }
}

/* Cabeça de secção: etiqueta + título */
.ip-head {
	padding: var(--ip-head-top) var(--ip-pad) var(--ip-pad);
	display: flex;
	flex-direction: column;
	gap: clamp(18px, 1.77vw, 34px);
}
.ip-head > * { margin: 0 !important; }
.ip-head:has(+ *) { border-bottom: 1px solid var(--ip-line); }
.ip-head:only-child { padding-bottom: clamp(24px, 3.125vw, 60px); }
.ip-head h2 {
	font-size: var(--ip-fs-h2);
	font-weight: 700;
	line-height: 1.19;
	letter-spacing: -0.006em;
}
.ip-head__texto { font-size: 16px; line-height: 1.2; margin-top: clamp(6px, 1.3vw, 25px) !important; }
@media (max-width: 900px) { .ip-head h2 br, .ip-hero__titulo br { display: none; } }

/* Etiqueta com barra amarela (o texto é escrito tal como deve aparecer) */
.ip-eyebrow {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.11em;
	line-height: 1.2;
}
.ip-eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 47px;
	height: 13px;
	background: var(--ip-amarelo);
}
.ip-eyebrow a { color: inherit; text-decoration: none; }

/* ==========================================================================
   Cabeçalho
   ========================================================================== */
.ip-site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	background: var(--ip-azul);
}

.ip-header { padding-top: var(--ip-g); }
.ip-header__bar {
	width: calc(100% - 2 * var(--ip-g));
	margin-inline: auto;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	border-block: 1px solid var(--ip-line);
	box-sizing: border-box;
}
.ip-header__bar > * { margin: 0 !important; }
.ip-header__logo { flex: 0 0 auto; margin-block: -2px -1px !important; }
.ip-header__logo a { display: block; }
.ip-header__logo img { display: block; width: var(--ip-logo-w); height: auto; }

/* Botão MENU (célula com linha à esquerda, 220 px) */
.ip-nav { flex: 0 0 auto; display: flex; }
.ip-nav .wp-block-navigation__responsive-container-open {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: clamp(120px, 11.458vw, 220px);
	height: 100%;
	padding: 0;
	border: 0;
	border-left: 1px solid var(--ip-line);
	font-family: inherit;
	font-size: clamp(15px, 0.9375vw, 18px);
	font-weight: 700 !important;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ip-branco);
	background: transparent;
	cursor: pointer;
}
.ip-nav .wp-block-navigation__responsive-container-open::after {
	content: "";
	flex: 0 0 25px;
	height: 19px;
	background: var(--ip-amarelo);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 19'%3E%3Cpath d='M0 0h21v3H0zM4 8h21v3H4zM0 16h21v3H0z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 19'%3E%3Cpath d='M0 0h21v3H0zM4 8h21v3H4zM0 16h21v3H0z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ip-nav .wp-block-navigation__responsive-container-open:hover { color: var(--ip-amarelo); }
.ip-nav .wp-block-navigation__responsive-container-open svg { display: none; }

/* Painel do menu */
.ip-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--ip-g);
	padding-top: calc(var(--ip-g) + var(--wp-admin--admin-bar--height, 0px));
}
.ip-nav .wp-block-navigation__responsive-container-close {
	display: flex; align-items: center; gap: 16px;
	height: 44px; padding: 0;
	top: 11px;
	right: calc(var(--ip-g) + clamp(12px, 3.2vw, 62px));
	font-family: inherit;
	font-size: clamp(15px, 0.9375vw, 18px);
	font-weight: 700 !important;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ip-branco);
	background: transparent;
	border: 0;
	cursor: pointer;
}
.ip-nav .wp-block-navigation__responsive-container-close::after {
	content: "";
	width: 19px; height: 19px;
	background: var(--ip-amarelo);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19'%3E%3Cpath d='M2.1 0 19 16.9 16.9 19 0 2.1zM16.9 0 19 2.1 2.1 19 0 16.9z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19'%3E%3Cpath d='M2.1 0 19 16.9 16.9 19 0 2.1zM16.9 0 19 2.1 2.1 19 0 16.9z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ip-nav .wp-block-navigation__responsive-container-close:hover { color: var(--ip-amarelo); }
.ip-nav .wp-block-navigation__responsive-container-close svg { display: none; }
.ip-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: clamp(64px, 8vw, 140px);
	align-items: flex-start;
	width: min(1159px, 100%);
	margin-inline: auto;
}
.ip-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0; width: 100%; align-items: stretch;
}
.ip-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid rgba(137, 153, 167, 0.42);
}
.ip-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	width: 100%;
	padding-block: clamp(14px, 1.2vw, 22px);
	font-size: var(--ip-fs-h2);
	font-weight: 600;
	line-height: 1.19;
	text-decoration: none;
}
.ip-nav .wp-block-navigation-item__content:hover,
.ip-nav .wp-block-navigation-item__content[aria-current] { color: var(--ip-amarelo); }

/* ==========================================================================
   Hero: fotografia 1800 x 894
   ========================================================================== */
.ip-hero.wp-block-cover {
	width: calc(100% - 2 * var(--ip-g));
	margin-inline: auto;
	/* Cabeçalho + hero + espaço inferior = altura visível do browser */
	height: calc(100vh - var(--ip-header-h, 80px) - 2 * var(--ip-g) - var(--wp-admin--admin-bar--height, 0px));
	height: calc(100svh - var(--ip-header-h, 80px) - 2 * var(--ip-g) - var(--wp-admin--admin-bar--height, 0px));
	min-height: 480px;
	padding: clamp(14px, 2.97vw, 57px) clamp(10px, 2.865vw, 55px) var(--ip-pad);
	align-items: stretch;
	box-sizing: border-box;
}
.ip-hero .wp-block-cover__background {
	/* Overlay: azul escuro para transparente, 40% de opacidade no total */
	background: linear-gradient(90deg, var(--ip-azul) 0%, rgba(20, 51, 79, 0) 100%) !important;
	opacity: 0.4 !important;
	mix-blend-mode: multiply;
}
.ip-hero .wp-block-cover__inner-container {
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 32px;
	color: var(--ip-branco);
}
.ip-hero .wp-block-cover__inner-container > * { margin: 0 !important; }
.ip-hero__topo { display: flex; flex-direction: column; gap: clamp(20px, 2.34vw, 45px); }
.ip-hero__topo > * { margin: 0 !important; }
.ip-hero__titulo { font-size: var(--ip-fs-hero); font-weight: 800; line-height: 1.206; letter-spacing: -0.003em; }

/* Módulos de data e local */
.ip-hero__info { display: flex; flex-direction: column; align-items: flex-start; }
.ip-hero__info > * { margin: 0 !important; }
.ip-mod {
	--ip-mod-h: 46px;
	--ip-mod-i: 68px;
	font-size: 20px;
	line-height: 1.2;
	border: 1px solid rgba(255, 255, 255, 0.9);
	box-sizing: border-box;
}
.ip-mod strong { color: var(--ip-amarelo); font-weight: 700; }
.ip-mod--data {
	position: relative;
	display: flex;
	align-items: center;
	height: var(--ip-mod-h);
	padding: 0 20px 0 calc(var(--ip-mod-i) + 20px);
	border-bottom: 0;
}
.ip-mod--data::before {
	content: "";
	position: absolute; left: 0; top: 0; bottom: 0;
	width: var(--ip-mod-i);
	background: var(--ip-amarelo);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 53 35'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.6' d='M21.5 12.5h13v9h-13zM18.5 15v9.5h13M24.5 10v4M31.5 10v4M21.5 15.5h13'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 53 35'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.6' d='M21.5 12.5h13v9h-13zM18.5 15v9.5h13M24.5 10v4M31.5 10v4M21.5 15.5h13'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.ip-mod--data::after {
	content: "";
	position: absolute; left: var(--ip-mod-i); top: 0; bottom: 0; width: 1px;
	background: rgba(255, 255, 255, 0.9);
}
.ip-mod--local { padding: 8px 20px 9px 21px; white-space: nowrap; }
@media (max-width: 600px) {
	.ip-mod { --ip-mod-h: 40px; --ip-mod-i: 60px; font-size: 17px; }
	.ip-mod--data { padding-left: calc(var(--ip-mod-i) + 16px); }
	.ip-mod--local { padding: 7px 16px 8px 17px; }
}


@media (max-width: 900px) {
	.ip-hero.wp-block-cover { min-height: 480px; }
	.ip-hero .wp-block-cover__image-background { object-position: 72% 55% !important; }
	.ip-mod { background: rgba(20, 51, 79, 0.55); }
}

/* ==========================================================================
   Faixa de logótipos
   ========================================================================== */
.ip-sec--logos .ip-col { border-inline-color: transparent; }
.ip-logostrip {
	display: grid;
	grid-template-columns: minmax(0, 845fr) minmax(0, 254fr);
	padding: clamp(12px, 0.91vw, 17.5px) var(--ip-pad) clamp(20px, 2.525vw, 48.5px);
}
.ip-logostrip > * { margin: 0 !important; }
.ip-logostrip__grupo { display: flex; flex-direction: column; gap: clamp(20px, 1.8vw, 34px); }
.ip-logostrip__grupo > * { margin: 0 !important; }
.ip-logostrip__label { font-size: 13px; line-height: 1.2; }
.ip-logostrip__logos { display: flex; align-items: center; gap: clamp(32px, 5.83vw, 112px); }
.ip-logostrip__logos figure { margin: 0 !important; }
.ip-logostrip__logos img, .ip-footer__parceiros img { display: block; height: auto; }
.ip-logostrip .ip-logo-gpbe img { width: clamp(96px, 7.45vw, 143px); }
.ip-logostrip .ip-logo-abcic img { width: clamp(132px, 10.21vw, 196px); }
.ip-logostrip .ip-logo-anipb img { width: clamp(130px, 10.16vw, 195px); }
.ip-logostrip a { display: block; transition: opacity 0.2s; }
.ip-logostrip a:hover { opacity: 0.75; }
@media (max-width: 700px) {
	.ip-logostrip { grid-template-columns: 1fr; gap: 32px; }
	.ip-logostrip__logos { flex-wrap: wrap; }
}

/* ==========================================================================
   Cartões (386 x 378 na prancheta)
   ========================================================================== */
.ip-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: var(--ip-line);
}
.ip-cards > * { margin: 0 !important; background-color: var(--ip-bg); }
.ip-card {
	aspect-ratio: 386 / 378;
	padding: var(--ip-pad) var(--ip-pad) var(--ip-pad);
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	background-color: var(--ip-bg);
}
.ip-card > * { margin: 0 !important; }
.ip-card h3 { font-size: var(--ip-fs-h3); font-weight: 700; line-height: 1.2; }
.ip-card h3 + p { margin-top: clamp(12px, 0.9vw, 17px) !important; }
.ip-card p { font-size: 16px; line-height: 1.2; }
.ip-card .ip-link { margin-top: 19px !important; }
.ip-card .ip-link a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ip-card > .wp-block-buttons { margin-top: auto !important; padding-top: 12px; }
.ip-span-2 { grid-column: span 2; }
.ip-span-3 { grid-column: 1 / -1; aspect-ratio: auto; }
.ip-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ip-cards--2 > .ip-card { aspect-ratio: auto; }
.ip-card-img { margin: 0 !important; position: relative; overflow: hidden; min-height: 16rem; }
.ip-card-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 98% 50%; display: block; }

@media (min-width: 901px) and (max-width: 1100px) {
	.ip-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ip-card { aspect-ratio: auto; min-height: 300px; }
	.ip-cards > .ip-card:nth-child(3) { grid-column: 1 / -1; min-height: 220px; }
	.ip-cards > .ip-span-2 { grid-column: auto; }
}
@media (max-width: 900px) {
	.ip-cards, .ip-cards--2 { grid-template-columns: 1fr; }
	.ip-card { aspect-ratio: auto; }
	.ip-span-2, .ip-span-3 { grid-column: auto; }
	.ip-card-img { aspect-ratio: 16 / 9; min-height: 0; }
}

/* ==========================================================================
   Botões
   ========================================================================== */
.wp-block-buttons { margin: 0; }
.wp-block-button__link { text-decoration: none; border-radius: 0; }

/* "Saber Mais": caixa da seta (53 x 35) + caixa do texto */
.wp-block-button.is-style-seta .wp-block-button__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	height: 36px;
	box-sizing: border-box;
	padding: 0 17px 0 calc(53px + 16px);
	background: transparent;
	color: inherit;
	border: 1px solid var(--ip-line-btn);
	font-size: 16px;
	font-weight: 400;
	line-height: 1;
	transition: background-color 0.2s var(--ip-ease), color 0.2s var(--ip-ease), border-color 0.2s var(--ip-ease);
}
.wp-block-button.is-style-seta .wp-block-button__link::before {
	content: "";
	position: absolute; left: 0; top: 0; bottom: 0; width: 52px;
	background: var(--ip-amarelo);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 34'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.4' d='M20.5 22.5l10.5-10.5M22.5 11.5h9v9'/%3E%3C/svg%3E") center / 52px 34px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 34'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.4' d='M20.5 22.5l10.5-10.5M22.5 11.5h9v9'/%3E%3C/svg%3E") center / 52px 34px no-repeat;
	transition: background-color 0.2s var(--ip-ease);
}
.wp-block-button.is-style-seta .wp-block-button__link::after {
	content: "";
	position: absolute; left: 52px; top: 0; bottom: 0; width: 1px;
	background: var(--ip-line-btn);
}
.wp-block-button.is-style-seta .wp-block-button__link:hover {
	background: var(--ip-amarelo);
	color: var(--ip-texto);
	border-color: var(--ip-amarelo);
}
.wp-block-button.is-style-seta .wp-block-button__link:hover::before { background: var(--ip-texto); }
.wp-block-button.is-style-seta .wp-block-button__link:hover::after { background: rgba(21, 52, 79, 0.3); }
.is-amarelo .wp-block-button.is-style-seta .wp-block-button__link { --ip-line-btn: var(--ip-cinza); }
.is-amarelo .wp-block-button.is-style-seta .wp-block-button__link::before { background: var(--ip-texto); }
.is-amarelo .wp-block-button.is-style-seta .wp-block-button__link:hover { background: var(--ip-texto); color: var(--ip-amarelo); border-color: var(--ip-texto); }
.is-amarelo .wp-block-button.is-style-seta .wp-block-button__link:hover::before { background: var(--ip-amarelo); }

/* Botão cheio (uso livre pelo cliente) */
.wp-block-button:not(.is-style-seta) .wp-block-button__link {
	background: var(--ip-amarelo);
	color: var(--ip-texto);
	border: 1px solid var(--ip-amarelo);
	padding: 9px 17px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
}

/* ==========================================================================
   Faixas de fotografia (1800 x 580), com o meio sobre cada cor
   ========================================================================== */
.ip-band { margin: 0 !important; }
.ip-band--azul-branco { background: linear-gradient(180deg, var(--ip-azul) 0 calc(50% + var(--ip-g) / 2), var(--ip-branco) calc(50% + var(--ip-g) / 2) 100%); }
.ip-band--branco-azul { background: linear-gradient(180deg, var(--ip-branco) 0 calc(50% + var(--ip-g) / 2), var(--ip-azul) calc(50% + var(--ip-g) / 2) 100%); }
.ip-band--azul-azul { background: var(--ip-azul); }
.ip-band--branco-branco { background: var(--ip-branco); }
.ip-band__img {
	width: calc(100% - 2 * var(--ip-g));
	margin: 0 auto !important;
	aspect-ratio: 1800 / 580;
	overflow: hidden;
	background: #efefef;
}
.ip-band__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 700px) { .ip-band__img { aspect-ratio: 16 / 9; } }

/* ==========================================================================
   Dividido em duas metades (inscrições, patrocinadores)
   ========================================================================== */
.ip-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ip-split > * { margin: 0 !important; }
.ip-split__img { position: relative; overflow: hidden; min-height: 22rem; border-right: 1px solid var(--ip-line); }
.ip-split--inverso .ip-split__img { border-right: 0; border-left: 1px solid var(--ip-line); }
.ip-split__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ip-split__body { display: flex; flex-direction: column; }
.ip-split__body > * { margin: 0 !important; }
.ip-split__notas { padding: var(--ip-pad) var(--ip-pad) 0; font-size: 16px; line-height: 1.2; }
.ip-split__botao { padding: var(--ip-pad); }
@media (max-width: 900px) {
	.ip-split { grid-template-columns: 1fr; }
	.ip-split__img { aspect-ratio: 16 / 9; min-height: 0; border: 0 !important; border-bottom: 1px solid var(--ip-line) !important; }
	.ip-split--inverso .ip-split__img { order: -1; }
}

/* ==========================================================================
   Tabela de inscrições (linhas de 60 px)
   ========================================================================== */
.wp-block-table.is-style-iprefab { margin: 0; overflow-x: auto; }
.wp-block-table.is-style-iprefab table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.2; }
.wp-block-table.is-style-iprefab th,
.wp-block-table.is-style-iprefab td {
	height: 60px;
	box-sizing: border-box;
	padding: 0 12px 0 0;
	border: 0;
	border-bottom: 1px solid var(--ip-line);
	text-align: left;
	vertical-align: middle;
	font-weight: 400;
}
.wp-block-table.is-style-iprefab tr > :first-child { padding-left: var(--ip-pad); width: 55.4%; }
.wp-block-table.is-style-iprefab tr > :last-child { padding-right: var(--ip-pad); }
.wp-block-table.is-style-iprefab tr > :nth-child(2) { width: 25.2%; }
.wp-block-table.is-style-iprefab thead { border: 0; }
.wp-block-table.is-style-iprefab thead th { font-weight: 600; white-space: nowrap; }
.is-azul .wp-block-table.is-style-iprefab thead th { color: var(--ip-amarelo); }
.ip-card--tabela { aspect-ratio: auto; padding: 0; }
.ip-card--tabela .wp-block-table.is-style-iprefab th,
.ip-card--tabela .wp-block-table.is-style-iprefab td { height: auto; padding-block: 9px; }
.ip-card--tabela .wp-block-table.is-style-iprefab tr > :first-child { width: 22%; padding-left: var(--ip-pad); }
.ip-card--tabela tbody th { font-weight: 700; }


/* ==========================================================================
   Patrocinadores
   ========================================================================== */
.ip-escaloes__titulo {
	font-size: var(--ip-fs-pat);
	font-weight: 800;
	line-height: 1.2;
	color: var(--ip-amarelo);
	padding: clamp(14px, 1.12vw, 21.5px) var(--ip-pad) clamp(14px, 1.7vw, 32px);
	border-bottom: 1px solid var(--ip-line);
}
.ip-escalao-linha {
	padding: 8.5px var(--ip-pad) 15px;
	border-bottom: 1px solid var(--ip-line);
	font-size: 16px;
	line-height: 1.2;
}
.ip-escalao-linha > * { margin: 0 !important; }
.ip-escalao-linha:last-child { border-bottom: 0; }
.ip-escalao-linha__nome { display: flex; justify-content: space-between; gap: 16px; text-transform: uppercase; }
.ip-escalao-linha__nome strong { font-weight: 700; }
.ip-escalao-linha--todos { padding-top: clamp(14px, 1.25vw, 24px); padding-bottom: var(--ip-pad); }
.ip-escalao-linha--todos .wp-block-buttons { margin-top: 24px !important; }

.ip-patro-lista { border-top: 1px solid var(--ip-line); padding: var(--ip-pad); }
.ip-patro-lista:not(:has(.ip-patrocinadores, .ip-vazio)) { display: none; }
.ip-patrocinadores { display: grid; gap: 2rem; }
.ip-escalao__titulo { font-size: 16px; font-weight: 700; letter-spacing: 0.12em; color: var(--ip-amarelo); margin: 0 0 1rem; text-transform: uppercase; }
.ip-logos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.ip-logos li { background: var(--ip-branco); display: grid; place-items: center; padding: 20px; width: 176px; aspect-ratio: 3 / 2; box-sizing: border-box; }
.ip-logos li > a { display: grid; place-items: center; width: 100%; height: 100%; }
.ip-escalao--ouro .ip-logos li { width: 240px; }
.ip-escalao--prata .ip-logos li { width: 208px; }
.ip-logos img { max-width: 100%; max-height: 72px; width: auto; height: auto; object-fit: contain; }
.ip-logos__nome { color: var(--ip-texto); font-weight: 700; text-align: center; }
.ip-vazio { margin: 0; font-size: 16px; }
@media (max-width: 600px) { .ip-logos li, .ip-escalao--ouro .ip-logos li, .ip-escalao--prata .ip-logos li { width: calc(50% - 6px); } }

/* ==========================================================================
   Oradores (página Programa)
   ========================================================================== */
.ip-card--oradores { aspect-ratio: auto; }
.ip-oradores {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: clamp(24px, 2.6vw, 40px);
}
.ip-orador { display: flex; flex-direction: column; gap: 6px; }
.ip-orador > * { margin: 0; }
.ip-orador__foto { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; display: block; margin-bottom: 12px !important; }
.ip-orador__foto--vazia { border: 1px solid var(--ip-line); }
.ip-orador__nome { font-size: 22px; font-weight: 700; line-height: 1.2; }
.ip-orador__cargo { font-size: 16px; line-height: 1.2; opacity: 0.85; }
.ip-orador__palestra { font-size: 16px; line-height: 1.2; font-weight: 600; }

/* ==========================================================================
   Páginas interiores
   ========================================================================== */
.ip-sec--titulo .ip-head { border-bottom: 0; padding-bottom: clamp(20px, 2.1vw, 40px); }
.ip-sec--titulo .wp-block-post-title { font-size: var(--ip-fs-hero); font-weight: 700; line-height: 1.2; }
.ip-numero { aspect-ratio: auto; }
.ip-numero__valor { font-size: var(--ip-fs-h2); font-weight: 700; line-height: 1.1; }
.ip-numero__valor + p { margin-top: 8px !important; }
.ip-entidade figure { margin: 0 0 20px !important; }
.ip-entidade figure img { height: 56px; width: auto; display: block; }
.ip-label { font-size: 16px; font-weight: 700; letter-spacing: 0.06em; line-height: 1.2; }
.is-azul .ip-label { color: var(--ip-amarelo); }
.ip-small { font-size: 14px; line-height: 1.3; }
.ip-intro { font-size: 18px; line-height: 1.35; max-width: 52ch; }
.ip-lista { list-style: none; padding: 0; margin: 0; }
.ip-lista li { padding-left: 20px; position: relative; line-height: 1.2; }
.ip-lista li + li { margin-top: 8px; }
.ip-lista li::before { content: ""; position: absolute; left: 0; top: 0.35em; width: 8px; height: 8px; background: var(--ip-amarelo); }
.ip-lista--nomes { font-size: 18px; }
.ip-lista--nomes li { padding-block: 12px; border-bottom: 1px solid var(--ip-line); margin: 0 !important; }
.ip-lista--nomes li::before { top: 1.05em; }
.ip-card--rodape, .ip-mapa { aspect-ratio: auto; }
.ip-mapa { padding: 0; }
.ip-mapa iframe { display: block; width: 100%; height: clamp(18rem, 32vw, 30rem); border: 0; }
.ip-mapa p { padding: 14px var(--ip-pad); }
.ip-page-content > :not(.ip-sec):not(.ip-band) {
	max-width: 760px;
	margin-inline: auto !important;
	padding-inline: var(--ip-g);
	box-sizing: content-box;
}
.ip-page-content:has(> :not(.ip-sec):not(.ip-band)) { background: var(--ip-branco); color: var(--ip-texto); padding-block: var(--ip-g); }

/* ==========================================================================
   Rodapé
   ========================================================================== */
.ip-footer { padding-top: var(--ip-g); }
.ip-footer > * { margin-block: 0 !important; }
.ip-footer__top {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 32px;
	padding-block: var(--ip-g);
	border-bottom: 0;
}
.ip-footer__top > * { margin: 0 !important; }
.ip-footer__logo img { width: clamp(180px, 20.833vw, 400px); height: auto; display: block; }
.ip-footer__parceiros { display: flex; align-items: center; gap: 32px clamp(32px, 5.8vw, 111px); flex-wrap: wrap; }
.ip-footer__parceiros figure { margin: 0 !important; }
.ip-footer__parceiros .ip-logo-gpbe img { width: clamp(84px, 5.94vw, 114px); }
.ip-footer__parceiros .ip-logo-abcic img { width: clamp(110px, 8.28vw, 159px); }
.ip-footer__parceiros .ip-logo-anipb img { width: clamp(110px, 8.13vw, 156px); }

.ip-footer__cols { display: grid; grid-template-columns: 1fr 1fr; }
.ip-footer__cols > * { margin: 0 !important; }
.ip-footer__col {
	padding: var(--ip-pad);
	font-size: 16px;
	line-height: 1.2;
}
.ip-footer__col + .ip-footer__col { border-left: 1px solid var(--ip-line); }
.ip-footer__col > * { margin: 0 !important; }
.ip-footer__col .ip-eyebrow { margin-bottom: clamp(24px, 1.72vw, 33px) !important; }
.ip-footer__titulo { font-size: var(--ip-fs-foot); font-weight: 800; line-height: 1.2; }
.ip-footer__titulo + .ip-footer__bloco { margin-top: clamp(28px, 2.3vw, 44px) !important; }
.ip-footer__bloco + .ip-footer__bloco { margin-top: 19px !important; }
.ip-footer__bloco strong { display: block; margin-bottom: 6px; color: var(--ip-amarelo); font-weight: 700; text-transform: uppercase; }
.ip-footer a { color: inherit; text-decoration: none; }
.ip-footer a:hover { text-decoration: underline; }
.ip-linkedin { position: relative; }
.ip-linkedin a::after {
	content: "";
	position: absolute; right: 0; bottom: -2px;
	width: 34px; height: 34px;
	background: var(--ip-amarelo);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath fill-rule='evenodd' d='M5 0h24a5 5 0 0 1 5 5v24a5 5 0 0 1-5 5H5a5 5 0 0 1-5-5V5a5 5 0 0 1 5-5zm2.5 13v15h4.7V13zm2.35-7.5a2.7 2.7 0 1 0 0 5.4 2.7 2.7 0 0 0 0-5.4zM15 13v15h4.7v-7.8c0-2 .5-3.6 2.8-3.6 2.2 0 2.3 2 2.3 3.7V28h4.7v-8.6c0-4.2-.9-6.8-5.6-6.8-2.3 0-3.7 1.2-4.3 2.4V13z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath fill-rule='evenodd' d='M5 0h24a5 5 0 0 1 5 5v24a5 5 0 0 1-5 5H5a5 5 0 0 1-5-5V5a5 5 0 0 1 5-5zm2.5 13v15h4.7V13zm2.35-7.5a2.7 2.7 0 1 0 0 5.4 2.7 2.7 0 0 0 0-5.4zM15 13v15h4.7v-7.8c0-2 .5-3.6 2.8-3.6 2.2 0 2.3 2 2.3 3.7V28h4.7v-8.6c0-4.2-.9-6.8-5.6-6.8-2.3 0-3.7 1.2-4.3 2.4V13z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ip-linkedin:has(a[hidden]) { display: none; }

.ip-footer__base {
	border-top: 0;
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 32px;
	padding-block: var(--ip-pad);
	font-size: 14px;
	line-height: 1.2;
	border-bottom: 0;
}
.ip-footer__base > * { margin: 0 !important; }

@media (max-width: 700px) {
	.ip-footer__cols { grid-template-columns: 1fr; }
	.ip-footer__col { padding-left: var(--ip-pad); }
	.ip-footer__col + .ip-footer__col { border-left: 0; border-top: 1px solid var(--ip-line); }
	.ip-footer__top { flex-direction: column; align-items: flex-start; }
}

/* ==========================================================================
   Movimento reduzido, impressão e editor
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
@media print {
	.ip-site-header { position: static; box-shadow: none; }
	.ip-nav, .ip-band, .wp-block-buttons, .ip-mapa iframe { display: none !important; }
	.is-azul { background: #fff !important; color: #000 !important; }
}
.wp-block-image a:focus-visible { outline-offset: 6px; }
.editor-styles-wrapper .ip-site-header { position: relative; top: 0; }
.editor-styles-wrapper .ip-hero.wp-block-cover { aspect-ratio: auto; min-height: 560px; }
