/* ==========================================================================
   Academia RubisGás — design v3 (set. 2026)
   Camada final sobre app.css: cabeçalho compacto e dinâmico, barra inferior
   tipo app no telemóvel, gradientes, tipografia com versaletes, botões e
   cartões com mais presença, animações de entrada.
   ========================================================================== */

:root {
	--v3-grad-primaria: linear-gradient(135deg, #04755e 0%, #03604d 45%, #024a3b 100%);
	--v3-grad-hero:
		radial-gradient(900px 480px at 85% -10%, rgba(58, 154, 126, .55), transparent 60%),
		radial-gradient(700px 420px at -5% 110%, rgba(220, 219, 34, .18), transparent 60%),
		linear-gradient(135deg, #012c24 0%, #023b30 40%, #03604d 100%);
	--v3-chama: linear-gradient(90deg, #f8c800 0%, #e87020 55%, #e03028 100%);
	--v3-sombra-1: 0 1px 2px rgba(2, 59, 48, .06), 0 4px 14px rgba(2, 59, 48, .06);
	--v3-sombra-2: 0 2px 6px rgba(2, 59, 48, .08), 0 14px 34px rgba(2, 59, 48, .12);
	--v3-sombra-3: 0 10px 40px rgba(2, 59, 48, .18);
	--v3-raio: 16px;
	--v3-ease: cubic-bezier(.2, .8, .2, 1);
	--v3-appbar-h: 72px;
}

/* ---------- Sem faixa branca entre o cabeçalho e o conteúdo ---------- */
.wp-site-blocks > main,
.wp-site-blocks > header + * { margin-block-start: 0 !important; }
.wp-site-blocks > footer { margin-block-start: 0 !important; }

/* ---------- Tipografia ---------- */
body { font-feature-settings: "kern", "liga"; text-rendering: optimizeLegibility; }
h1, h2, h3, .wp-block-heading { letter-spacing: -.012em; }
.isqf-hero-titulo { font-size: clamp(2.25rem, 1.4rem + 3.2vw, 3.6rem) !important; line-height: 1.08 !important; font-weight: 700 !important; }
.isqf-sec-titulo { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.25rem) !important; }

/* Versaletes para rótulos, destaques e pequenas chamadas (a cor nunca é a única pista). */
.isqf-kicker, .isqf-hero-kicker, .isqf-tile-label, .isqf-curso-proxima-label, .isqf-estado,
.isqf-badge, .isqf-card-mes, .isqf-contactos-info h3, .isqf-footer h3, .isqf-link-interesse,
.isqf-curso-semdata a, .isqf-painel-rotulo, .isqf-sem-edicoes, .isqf-opcional {
	font-variant-caps: all-small-caps;
	letter-spacing: .08em;
	text-transform: none !important;
	font-feature-settings: "smcp", "c2sc";
}
.isqf-kicker, .isqf-hero-kicker { font-size: 1rem !important; font-weight: 700; display: inline-flex; align-items: center; gap: 10px; }
.isqf-kicker::before, .isqf-hero-kicker::before { content: ""; width: 28px; height: 3px; border-radius: 3px; background: var(--v3-chama); flex: none; }

/* Números alinhados (datas, preços, horas). */
.isqf-card-data, .isqf-edicao-preco, .isqf-card-meta, .isqf-curso-proxima strong, .isqf-tile-valor { font-variant-numeric: tabular-nums lining-nums; }

/* ---------- Cabeçalho (app bar) ---------- */
.wp-site-blocks > header {
	position: sticky; top: 0; z-index: 50;
	transition: transform .35s var(--v3-ease);
}
body.admin-bar .wp-site-blocks > header { top: 32px; }
.wp-site-blocks > header.is-hidden { transform: translateY(-110%); }
.isqf-appbar {
	position: relative !important; top: auto !important;
	padding-top: 0 !important; padding-bottom: 0 !important;
	background: rgba(255, 255, 255, .86) !important;
	-webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px);
	border-bottom: 1px solid rgba(2, 59, 48, .08);
	transition: transform .35s var(--v3-ease), box-shadow .25s var(--v3-ease);
}
.isqf-appbar .isqf-wrap { min-height: var(--v3-appbar-h); flex-wrap: nowrap !important; }
/* O ficheiro do logótipo tem ~19% de margem transparente em cima e em baixo: a imagem cresce e as
   margens negativas recuperam essa folga, para o desenho visível ter ~47px sem aumentar a barra. */
.isqf-appbar .wp-block-site-logo img { width: auto !important; height: 76px !important; margin: -14px 0 !important; }
.is-scrolled .isqf-appbar, .isqf-appbar.is-scrolled { box-shadow: var(--v3-sombra-1); }

/* Ligações do menu com sublinhado animado. */
.isqf-appbar .wp-block-navigation-item__content { position: relative; padding: 8px 2px !important; font-weight: 600; }
.isqf-appbar .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 3px; border-radius: 3px;
	background: var(--v3-chama); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--v3-ease);
}
.isqf-appbar .wp-block-navigation-item__content:hover::after,
.isqf-appbar .current-menu-item > .wp-block-navigation-item__content::after,
.isqf-appbar [aria-current="page"]::after { transform: scaleX(1); }
.isqf-appbar .wp-block-navigation-item__content:hover { text-decoration: none !important; }
.isqf-appbar .is-menu-open .wp-block-navigation-item__content::after { display: none; }

.isqf-appbar-tel a {
	background: var(--v3-grad-primaria) !important; color: #fff !important;
	box-shadow: 0 6px 16px rgba(3, 96, 77, .25); padding: 10px 18px !important; font-weight: 700;
	transition: transform .2s var(--v3-ease), box-shadow .2s var(--v3-ease);
}
.isqf-appbar-tel a:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(3, 96, 77, .3); text-decoration: none; }

/* ---------- Hero ---------- */
.isqf-hero { background: var(--v3-grad-hero) !important; position: relative; overflow: hidden; }
.isqf-hero::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--v3-chama); opacity: .95;
}
.isqf-hero .isqf-wrap > * { animation: v3-sobe .7s var(--v3-ease) both; }
.isqf-hero .isqf-wrap > *:nth-child(2) { animation-delay: .08s; }
.isqf-hero .isqf-wrap > *:nth-child(3) { animation-delay: .16s; }
.isqf-hero .isqf-wrap > *:nth-child(4) { animation-delay: .24s; }
.isqf-hero .isqf-wrap > *:nth-child(n+5) { animation-delay: .32s; }
.isqf-hero-kicker, .isqf-hero-kicker a { color: rgba(255, 255, 255, .92) !important; }
.isqf-hero-resumo { font-size: 1.15rem !important; color: rgba(255, 255, 255, .9); max-width: 60ch; }
@keyframes v3-sobe { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- Botões ---------- */
.wp-element-button, .wp-block-button__link, .isqf-btn, .single_add_to_cart_button, .woocommerce a.button, .woocommerce button.button {
	border-radius: 999px !important; font-weight: 700 !important; letter-spacing: .01em;
	transition: transform .2s var(--v3-ease), box-shadow .2s var(--v3-ease), background .2s var(--v3-ease), color .2s !important;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link, .isqf-btn:not(.isqf-btn-sec), .single_add_to_cart_button, .isqf-interesse-form button {
	background: var(--v3-grad-primaria) !important; color: #fff !important; border: 0 !important;
	box-shadow: 0 8px 20px rgba(3, 96, 77, .24);
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover, .isqf-btn:not(.isqf-btn-sec):hover, .single_add_to_cart_button:hover, .isqf-interesse-form button:hover {
	transform: translateY(-2px); box-shadow: 0 12px 28px rgba(3, 96, 77, .32);
}
/* Seta que avança no hover (botões de ação). */
.wp-block-button:not(.is-style-outline) .wp-block-button__link::after, .isqf-btn:not(.isqf-btn-sec)::after {
	content: "→"; display: inline-block; margin-left: .5em; transition: transform .2s var(--v3-ease);
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover::after, .isqf-btn:not(.isqf-btn-sec):hover::after { transform: translateX(4px); }
.isqf-btn-sec, .wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid currentColor !important; background: transparent !important;
}
.isqf-btn-sec:hover { background: var(--wp--preset--color--primaria-tonal) !important; }
/* Hero: botão principal amarelo com brilho. */
.isqf-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: linear-gradient(135deg, #e8e75a, #dcdb22) !important; color: #1a202c !important;
	box-shadow: 0 10px 28px rgba(220, 219, 34, .35);
}
.isqf-hero .wp-block-button.is-style-outline .wp-block-button__link { color: #fff !important; border-color: rgba(255, 255, 255, .55) !important; }
.isqf-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, .1) !important; border-color: #fff !important; }

/* ---------- Cartões ---------- */
.isqf-edicao-card, .isqf-curso-card, .isqf-card, .isqf-colunas-cartoes .isqf-card, .isqf-contacto, .isqf-ficha-wrap {
	border-radius: var(--v3-raio) !important; border: 1px solid rgba(2, 59, 48, .07) !important; box-shadow: var(--v3-sombra-1) !important;
}
.isqf-edicao-card, .isqf-curso-card, .isqf-colunas-cartoes .isqf-card { position: relative; transition: transform .3s var(--v3-ease), box-shadow .3s var(--v3-ease); }
.isqf-edicao-card::before, .isqf-curso-card::before, .isqf-colunas-cartoes .isqf-card::before {
	content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1.5px;
	background: linear-gradient(135deg, #3a9a7e, #dcdb22 60%, #e87020);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
	opacity: 0; transition: opacity .3s var(--v3-ease); pointer-events: none;
}
.isqf-edicao-card:hover, .isqf-curso-card:hover, .isqf-colunas-cartoes .isqf-card:hover { transform: translateY(-4px); box-shadow: var(--v3-sombra-2) !important; }
.isqf-edicao-card:hover::before, .isqf-curso-card:hover::before, .isqf-colunas-cartoes .isqf-card:hover::before { opacity: 1; }

/* Data da edição em bloco de cor (antes: tonal). */
.isqf-card-data { background: var(--v3-grad-primaria) !important; color: #fff !important; box-shadow: 0 6px 16px rgba(3, 96, 77, .22); }
.isqf-card-ano { color: rgba(255, 255, 255, .75) !important; }
.isqf-estado-esgotada .isqf-card-data { background: #d9dedc !important; color: #4a5568 !important; box-shadow: none; }
.isqf-estado-esgotada .isqf-card-ano { color: #4a5568 !important; }

/* Próxima edição no catálogo com faixa de chama. */
.isqf-curso-proxima { position: relative; overflow: hidden; }
.isqf-curso-proxima::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--v3-chama); }
.isqf-curso-proxima--vazia::before { display: none; }

/* ---------- Secções com fundo alternado ---------- */
.isqf-sec-tint {
	background: radial-gradient(900px 400px at 100% 0%, rgba(58, 154, 126, .08), transparent 60%), linear-gradient(180deg, #f6f9f8, #fff) !important;
}

/* ---------- Curso e edição: mesma escala de letra no corpo e na lateral ---------- */
.isqf-layout-side, .isqf-layout-side p, .isqf-layout-side li, .isqf-painel, .isqf-painel p,
.isqf-produto .summary, .isqf-produto .summary p, .isqf-ficha-grid, .isqf-tile-valor {
	font-size: var(--wp--preset--font-size--medium) !important; line-height: 1.55;
}
.isqf-tile-label { font-size: .95rem !important; color: var(--wp--preset--color--texto-2) !important; }
.isqf-painel .isqf-edicao-preco, .isqf-produto .summary .price { font-size: 1.6rem !important; }

/* Painel do curso: preço com presença. */
.isqf-painel-preco { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 14px 0 4px; border-top: 1px solid rgba(2, 59, 48, .08); }
.isqf-painel-preco > span { font-variant-caps: all-small-caps; letter-spacing: .08em; font-weight: 700; color: var(--wp--preset--color--texto-2); }
.isqf-painel-preco .woocommerce-Price-amount { font-family: var(--wp--preset--font-family--jost); font-size: 2rem; font-weight: 700; color: var(--wp--preset--color--primaria); line-height: 1; }
.isqf-painel-preco small { flex-basis: 100%; font-size: .9rem; color: var(--wp--preset--color--texto-2); }
.isqf-painel { border-top: 4px solid transparent; border-image: var(--v3-chama) 1; }
/* Títulos dentro de cartões de conteúdo (ex.: Programa) na escala do cartão. */
.isqf-card h3, .isqf-layout-main h3 { font-size: 1.3rem !important; margin-top: 1.4em; }

/* ---------- Animações de entrada ---------- */
.isqf-reveal { opacity: 0; transform: translateY(18px) scale(.985); filter: blur(2px); }
.isqf-reveal.is-in { opacity: 1; transform: none; filter: none; transition: opacity .6s var(--v3-ease), transform .6s var(--v3-ease), filter .6s var(--v3-ease); }

@media (prefers-reduced-motion: reduce) {
	.isqf-hero .isqf-wrap > * { animation: none !important; }
	.wp-site-blocks > header, .isqf-tabbar { transition: none !important; }
	.isqf-reveal { opacity: 1 !important; transform: none !important; filter: none !important; }
}

/* ---------- Telemóvel: cabeçalho simples em cima + barra de navegação em baixo ---------- */
.isqf-tabbar { display: none; }
@media (max-width: 781px) {
	:root { --v3-appbar-h: 60px; }
	.wp-site-blocks > header { position: relative; top: auto !important; transform: none !important; }
	.isqf-appbar .wp-block-site-logo img { height: 66px !important; margin: -12px 0 !important; }
	/* A barra inferior substitui menu, conta e carrinho no topo; fica o telefone. */
	.isqf-appbar .wp-block-navigation, .isqf-appbar .wc-block-customer-account, .isqf-appbar .wp-block-woocommerce-mini-cart { display: none !important; }
	.isqf-tabbar {
		display: grid; grid-template-columns: repeat(5, 1fr);
		position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 60;
		background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px);
		border: 1px solid rgba(2, 59, 48, .1); border-radius: 22px; box-shadow: var(--v3-sombra-3);
		transition: transform .35s var(--v3-ease), opacity .35s var(--v3-ease);
	}
	.isqf-tabbar.is-hidden { transform: translateY(calc(100% + 20px)); opacity: 0; }
	.isqf-tabbar a {
		display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
		min-height: 60px; font-size: .72rem; font-weight: 700; color: var(--wp--preset--color--texto-2); text-decoration: none; position: relative;
	}
	.isqf-tabbar a svg { width: 22px; height: 22px; }
	.isqf-tabbar a[aria-current="page"] { color: var(--wp--preset--color--primaria); }
	.isqf-tabbar a[aria-current="page"]::before { content: ""; position: absolute; top: 6px; width: 36px; height: 30px; border-radius: 12px; background: var(--wp--preset--color--primaria-tonal); z-index: -1; }
	.isqf-tabbar-badge { position: absolute; top: 8px; left: 55%; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #e03028; color: #fff; font-size: .7rem; line-height: 18px; text-align: center; }
	body { padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
	/* Telefone no topo: botão redondo de 44px (só o ícone, abaixo de 400px o texto sai). */
	.isqf-appbar-tel a { padding: 0 14px !important; min-height: 44px; box-shadow: 0 4px 12px rgba(3, 96, 77, .22); }
}

@media (max-width: 400px) {
	.isqf-appbar-tel a { width: 44px !important; height: 44px !important; padding: 0 !important; box-sizing: border-box; }
}

/* Página da edição: título no hero; no cartão de inscrição fica o preço. */
.isqf-hero-edicao .isqf-hero-titulo { font-size: clamp(1.8rem, 1.2rem + 2.2vw, 2.8rem) !important; max-width: 30ch; }
.isqf-produto .summary .product_title { display: none; }
.isqf-produto .summary .price { font-family: var(--wp--preset--font-family--jost); color: var(--wp--preset--color--primaria) !important; margin-top: 0 !important; }

/* ---------- Tabelas no conteúdo (incl. as do site antigo, só com border="1") ---------- */
.wp-block-post-content table, .isqf-layout-main table, .entry-content table, .wp-block-table table {
	width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid rgba(2, 59, 48, .12) !important;
	border-radius: 12px; overflow: hidden; margin: 1.2em 0; font-size: 1rem; font-variant-numeric: tabular-nums;
}
.wp-block-post-content table th, .isqf-layout-main table th, .entry-content table th, .wp-block-table table th,
.wp-block-post-content table tr:first-child td:only-child {
	background: var(--wp--preset--color--primaria-tonal); color: var(--wp--preset--color--primaria);
	font-weight: 700; font-variant-caps: all-small-caps; letter-spacing: .06em; text-align: left;
}
.wp-block-post-content table th, .wp-block-post-content table td, .isqf-layout-main table th, .isqf-layout-main table td,
.entry-content table th, .entry-content table td, .wp-block-table table th, .wp-block-table table td {
	padding: 10px 14px; border: 0 !important; border-bottom: 1px solid rgba(2, 59, 48, .08) !important; vertical-align: top;
}
.wp-block-post-content table tr:last-child td, .isqf-layout-main table tr:last-child td { border-bottom: 0 !important; }
.wp-block-post-content table tbody tr:nth-child(even) td, .isqf-layout-main table tbody tr:nth-child(even) td { background: #f7faf9; }
@media (max-width: 781px) {
	/* Tabelas largas deslizam na horizontal em vez de alargarem a página. */
	.wp-block-post-content table, .isqf-layout-main table, .entry-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; font-size: .92rem; }
	/* O carrinho sai da barra inferior e volta ao cabeçalho. */
	.isqf-appbar .wp-block-woocommerce-mini-cart { display: flex !important; }
}
