/* ==========================================================================
   Morganti Ju-Jitsu — estilos do tema
   Regra de ouro: o tema estiliza só as próprias classes (mjt-*) e o texto
   solto do editor. Nada aqui altera o visual interno dos plugins.
   ========================================================================== */

:root {
	--mjt-papel: #F3EEE4;
	--mjt-areia: #E9E1D3;
	--mjt-areia-2: #E6DED0;
	--mjt-tinta: #1A1714;
	--mjt-tinta-2: #2A2521;
	--mjt-texto: #3A342D;
	--mjt-texto-suave: #4F483F;
	--mjt-texto-mudo: #5A534A;
	--mjt-linha: #D9D0C1;
	--mjt-linha-escura: #3F3831;
	--mjt-claro: #F3EEE4;
	--mjt-claro-suave: #C9BFB0;
	--mjt-claro-mudo: #B8AE9F;
	--mjt-vermelho: #A3281C;
	--mjt-vermelho-escuro: #86201A;
	--mjt-vermelho-claro: #E07A5F;
	--mjt-verde: #1F5A3A;

	--mjt-serif: "Shippori Mincho", "Hiragino Mincho ProN", Georgia, serif;
	--mjt-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;

	--mjt-wrap: 1296px;
	--mjt-gutter: clamp(20px, 5vw, 72px);
	--mjt-section: clamp(64px, 9vw, 120px);
}

/* Compatibilidade com as cores do tema anterior (Neve) ------------------------
   Páginas feitas no editor usam as cores do Neve (fundo escuro, texto claro).
   Aqui elas são traduzidas para a nova paleta clara, mantendo o contraste. */
:root {
	--nv-primary-accent: var(--mjt-vermelho);
	--nv-secondary-accent: var(--mjt-vermelho-escuro);
	--nv-site-bg: var(--mjt-papel);
	--nv-light-bg: var(--mjt-areia);
	--nv-dark-bg: var(--mjt-areia-2);
	--nv-text-color: var(--mjt-tinta);
	--nv-text-dark-bg: var(--mjt-tinta);
	--nv-c-1: #1F5A3A;
	--nv-c-2: var(--mjt-vermelho);
}
.has-neve-link-color-color { color: var(--mjt-vermelho) !important; }
.has-neve-link-color-background-color { background-color: var(--mjt-vermelho) !important; }
.has-neve-link-hover-color-color { color: var(--mjt-vermelho-escuro) !important; }
.has-neve-link-hover-color-background-color { background-color: var(--mjt-vermelho-escuro) !important; }
.has-neve-text-color-color { color: var(--mjt-tinta) !important; }
.has-neve-text-color-background-color { background-color: var(--mjt-tinta) !important; }
.has-nv-text-dark-bg-color { color: var(--mjt-tinta) !important; }
.has-nv-text-dark-bg-background-color { background-color: var(--mjt-tinta) !important; }
.has-nv-site-bg-color { color: var(--mjt-papel) !important; }
.has-nv-site-bg-background-color { background-color: var(--mjt-papel) !important; }
.has-nv-light-bg-color { color: var(--mjt-areia) !important; }
.has-nv-light-bg-background-color { background-color: var(--mjt-areia) !important; }
.has-nv-dark-bg-color { color: var(--mjt-areia-2) !important; }
.has-nv-dark-bg-background-color { background-color: var(--mjt-areia-2) !important; }
.has-nv-c-1-color { color: #1F5A3A !important; }
.has-nv-c-1-background-color { background-color: #1F5A3A !important; }
.has-nv-c-2-color { color: var(--mjt-vermelho) !important; }
.has-nv-c-2-background-color { background-color: var(--mjt-vermelho) !important; }

/* Base --------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

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

body {
	margin: 0;
	background: var(--mjt-papel);
	color: var(--mjt-tinta);
	font-family: var(--mjt-sans);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; }

a { color: inherit; }
a:hover { color: var(--mjt-vermelho); }

:focus-visible { outline: 3px solid var(--mjt-vermelho); outline-offset: 2px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.mjt-skip {
	position: absolute;
	left: 12px; top: -60px;
	z-index: 1000;
	padding: 12px 16px;
	background: var(--mjt-tinta);
	color: var(--mjt-claro);
}
.mjt-skip:focus { top: 12px; color: var(--mjt-claro); }

/* Layout ------------------------------------------------------------------- */
.mjt-wrap {
	width: 100%;
	max-width: calc(var(--mjt-wrap) + 2 * var(--mjt-gutter));
	margin-inline: auto;
	padding-inline: var(--mjt-gutter);
}

.mjt-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	column-gap: 24px;
	row-gap: 40px;
}
.mjt-grid--center { align-items: center; }
.mjt-grid--end { align-items: end; }

/* Largura (end) e início (start) separados, para poderem ser combinados sem se anular. */
.mjt-col-4 { grid-column-end: span 4; }
.mjt-col-5 { grid-column-end: span 5; }
.mjt-col-6 { grid-column-end: span 6; }
.mjt-col-7 { grid-column-end: span 7; }
.mjt-col-8 { grid-column-end: span 8; }
.mjt-col-start-6 { grid-column-start: 6; }
.mjt-col-start-7 { grid-column-start: 7; }
.mjt-col-start-8 { grid-column-start: 8; }
.mjt-col-start-9 { grid-column-start: 9; }

.mjt-center { display: flex; justify-content: center; }

.mjt-section { padding-block: var(--mjt-section); position: relative; }
.mjt-section--tight-top { padding-top: 0; }
.mjt-section--rule { border-top: 1px solid var(--mjt-linha); border-bottom: 1px solid var(--mjt-linha); }
.mjt-section--sand { background: var(--mjt-areia); }
.mjt-section--dark { background: var(--mjt-tinta); color: var(--mjt-claro); overflow: hidden; }
.mjt-section--dark a:hover { color: var(--mjt-vermelho-claro); }

.mjt-section__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	margin-bottom: 40px;
}
.mjt-section__head .mjt-h2 { margin-bottom: 0; }

/* Tipografia --------------------------------------------------------------- */
.mjt-kicker {
	margin: 0 0 16px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--mjt-vermelho);
}
.mjt-kicker--light { color: var(--mjt-vermelho-claro); }
.mjt-kicker--white { color: #fff; }

.mjt-h2 {
	margin: 0 0 22px;
	font-family: var(--mjt-serif);
	font-weight: 700;
	font-size: clamp(32px, 3.6vw, 48px);
	line-height: 1.1;
	text-wrap: balance;
}
.mjt-h2--xl { font-size: clamp(34px, 4vw, 54px); line-height: 1.06; }

.mjt-h3 {
	margin: 0 0 12px;
	font-family: var(--mjt-serif);
	font-weight: 700;
	font-size: clamp(22px, 2vw, 28px);
	line-height: 1.2;
}

.mjt-lead {
	margin: 0 0 24px;
	font-size: clamp(17px, 1.3vw, 18px);
	line-height: 1.7;
	color: var(--mjt-texto-suave);
	max-width: 62ch;
}
.mjt-section--dark .mjt-lead { color: var(--mjt-claro-suave); }

.mjt-prose p { margin: 0 0 22px; font-size: 18px; line-height: 1.75; color: var(--mjt-texto); max-width: 68ch; }

.mjt-link { font-weight: 600; font-size: 15px; text-decoration: none; }
.mjt-link--accent { color: var(--mjt-vermelho); }
.mjt-link--light { color: var(--mjt-claro); }
.mjt-links { display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 0; }

/* Botões ------------------------------------------------------------------- */
.mjt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 22px;
	border: 1px solid transparent;
	border-radius: 2px;
	font-family: var(--mjt-sans);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}
.mjt-btn--sm { min-height: 44px; padding: 0 18px; font-size: 14px; }
.mjt-btn--lg { min-height: 56px; padding: 0 28px; font-size: 16px; }
.mjt-btn--dark { background: var(--mjt-tinta); color: var(--mjt-claro); }
.mjt-btn--dark:hover { background: var(--mjt-tinta-2); color: #fff; }
.mjt-btn--accent { background: var(--mjt-vermelho); color: #fff; }
.mjt-btn--accent:hover { background: var(--mjt-vermelho-escuro); color: #fff; }
.mjt-btn--outline { border-color: var(--mjt-tinta); color: var(--mjt-tinta); background: transparent; }
.mjt-btn--outline:hover { background: var(--mjt-tinta); color: var(--mjt-claro); }

.mjt-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }

/* Chips de estados --------------------------------------------------------- */
.mjt-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.mjt-chip {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--mjt-linha);
	border-radius: 22px;
	background: #fff;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	color: var(--mjt-tinta);
}
.mjt-chip:hover { border-color: var(--mjt-tinta); color: var(--mjt-tinta); }
.mjt-chip.is-atual { background: var(--mjt-tinta); border-color: var(--mjt-tinta); color: var(--mjt-claro); }

/* Cabeçalho ---------------------------------------------------------------- */
.mjt-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--mjt-papel);
	border-bottom: 1px solid var(--mjt-linha);
}
.admin-bar .mjt-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .mjt-header { top: 0; position: relative; } }

.mjt-header__inner {
	max-width: calc(var(--mjt-wrap) + 2 * var(--mjt-gutter));
	margin-inline: auto;
	padding-inline: var(--mjt-gutter);
	min-height: 88px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.mjt-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--mjt-tinta); flex-shrink: 0; }
.mjt-brand__logo { width: 40px; height: 40px; object-fit: contain; }
.mjt-brand__name { font-family: var(--mjt-serif); font-weight: 800; font-size: 18px; letter-spacing: 0.08em; }

.mjt-nav { display: flex; align-items: center; gap: 28px; }
.mjt-menu { list-style: none; display: flex; gap: 24px; margin: 0; padding: 0; }
.mjt-menu > li { position: relative; }
.mjt-menu a { text-decoration: none; font-size: 15px; font-weight: 500; color: var(--mjt-tinta); padding-block: 8px; display: inline-block; }
.mjt-menu a:hover,
.mjt-menu .current-menu-item > a,
.mjt-menu .current_page_item > a { color: var(--mjt-vermelho); }
.mjt-menu .current-menu-item > a,
.mjt-menu .current_page_item > a { font-weight: 700; }

/* Submenus (se o menu tiver itens filhos) */
.mjt-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 8px 0;
	position: absolute;
	top: 100%;
	left: -16px;
	min-width: 220px;
	background: #fff;
	border: 1px solid var(--mjt-linha);
	display: none;
}
.mjt-menu li:hover > .sub-menu,
.mjt-menu li:focus-within > .sub-menu { display: block; }
.mjt-menu .sub-menu a { display: block; padding: 8px 16px; }

.mjt-nav__actions { display: flex; gap: 12px; }

.mjt-menu-toggle {
	display: none;
	width: 48px; height: 48px;
	border: 0;
	background: transparent;
	color: var(--mjt-tinta);
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.mjt-menu-toggle__close { display: none; }

@media (max-width: 1180px) {
	.mjt-menu { gap: 18px; }
	.mjt-nav { gap: 20px; }
}

@media (max-width: 1080px) {
	.mjt-header__inner { min-height: 68px; }
	.mjt-brand__name { font-size: 15px; letter-spacing: 0.06em; }
	.mjt-menu-toggle { display: inline-flex; }
	.mjt-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0; right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
		padding: 16px var(--mjt-gutter) 28px;
		background: var(--mjt-papel);
		border-bottom: 1px solid var(--mjt-linha);
		max-height: calc(100vh - 68px);
		overflow-y: auto;
	}
	.mjt-header.is-aberto .mjt-nav { display: flex; }
	.mjt-header.is-aberto .mjt-menu-toggle__open { display: none; }
	.mjt-header.is-aberto .mjt-menu-toggle__close { display: inline; }
	.mjt-menu { flex-direction: column; gap: 0; }
	.mjt-menu a { display: block; padding: 14px 0; border-bottom: 1px solid var(--mjt-linha); font-size: 17px; }
	.mjt-menu .sub-menu { position: static; display: block; border: 0; background: transparent; padding: 0 0 0 16px; }
	.mjt-nav__actions { flex-direction: column; }
	.mjt-nav__actions .mjt-btn { width: 100%; min-height: 52px; }
}

/* Cabeçalho de página ------------------------------------------------------ */
.mjt-page-head { padding: clamp(56px, 7vw, 96px) 0 clamp(32px, 4vw, 56px); }
.mjt-page-head__title {
	margin: 0 0 18px;
	font-family: var(--mjt-serif);
	font-weight: 800;
	font-size: clamp(40px, 5.2vw, 72px);
	line-height: 1.04;
	text-wrap: balance;
}
.mjt-page-head__lead { margin: 0; max-width: 62ch; font-size: clamp(17px, 1.4vw, 19px); line-height: 1.6; color: var(--mjt-texto-suave); }
.mjt-page-head--split { border-bottom: 1px solid var(--mjt-linha); }
.mjt-page-head--split .mjt-grid { align-items: end; }

.mjt-toc { display: flex; flex-direction: column; font-size: 15px; font-weight: 600; }
.mjt-toc a { padding: 10px 0; border-top: 1px solid var(--mjt-linha); text-decoration: none; }

/* Conteúdo do editor e dos plugins ----------------------------------------
   .mjt-content      → coluna centralizada (páginas comuns, GS Team Members, MapPress)
   .mjt-content-full → sem limite de largura (Elementor, árvore genealógica)
   Só o texto solto (filhos diretos) recebe estilo do tema.            */
.mjt-content {
	max-width: calc(var(--mjt-wrap) + 2 * var(--mjt-gutter));
	margin-inline: auto;
	padding: 0 var(--mjt-gutter) var(--mjt-section);
}
.mjt-content-full { padding-bottom: var(--mjt-section); }
.mjt-page--sem-titulo .mjt-content-full { padding-bottom: 0; }

.mjt-content > p,
.mjt-content > ul,
.mjt-content > ol { max-width: 72ch; font-size: 18px; line-height: 1.75; color: var(--mjt-texto); }
.mjt-content > p a,
.mjt-content > ul a,
.mjt-content > ol a { color: var(--mjt-vermelho); text-decoration: underline; text-underline-offset: 3px; }
.mjt-content > h2,
.mjt-content > h3 { font-family: var(--mjt-serif); line-height: 1.15; margin: 48px 0 16px; }
.mjt-content > h2 { font-size: clamp(28px, 3vw, 40px); }
.mjt-content > h3 { font-size: clamp(22px, 2.2vw, 28px); }
.mjt-content > .alignwide { max-width: none; }
.mjt-content > .alignfull { margin-inline: calc(-1 * var(--mjt-gutter)); }

/* Página de estado e índice de instrutores */
.mjt-estados { padding-bottom: 40px; }
.mjt-estados__title { margin: 0; font-size: 15px; font-weight: 600; }
.mjt-estados .mjt-chips { margin-top: 14px; padding-bottom: 32px; border-bottom: 1px solid var(--mjt-linha); }

.mjt-aviso {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 32px;
	margin-block: 24px var(--mjt-section);
	padding-block: 40px;
	border: 1px solid var(--mjt-tinta);
	padding-inline: 40px;
	max-width: calc(var(--mjt-wrap));
}
.mjt-aviso h2 { margin: 0 0 8px; font-family: var(--mjt-serif); font-size: 26px; }
.mjt-aviso p { margin: 0; color: var(--mjt-texto-suave); max-width: 70ch; }
.mjt-aviso .mjt-btn { flex-shrink: 0; }

/* Home: hero --------------------------------------------------------------- */
.mjt-hero {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: min(680px, calc(100vh - 88px));
}
.mjt-hero__text {
	padding: clamp(56px, 7vw, 96px) clamp(32px, 4.5vw, 64px) 64px max(var(--mjt-gutter), calc((100vw - var(--mjt-wrap)) / 2));
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 8px;
}
.mjt-hero__title {
	margin: 0 0 16px;
	font-family: var(--mjt-serif);
	font-weight: 800;
	font-size: clamp(44px, 5.4vw, 78px);
	line-height: 1.04;
	text-wrap: balance;
}
.mjt-hero__lead { margin: 0 0 16px; max-width: 34em; font-size: clamp(17px, 1.4vw, 19px); line-height: 1.6; color: var(--mjt-texto-suave); }
.mjt-hero__media { position: relative; background: var(--mjt-tinta-2); min-height: 320px; }
.mjt-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; }

/* Home: números ------------------------------------------------------------ */
.mjt-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--mjt-linha);
	border-bottom: 1px solid var(--mjt-linha);
}
.mjt-stats > div { padding: 32px clamp(20px, 3.3vw, 48px); border-right: 1px solid var(--mjt-linha); }
.mjt-stats > div:first-child { padding-left: max(var(--mjt-gutter), calc((100vw - var(--mjt-wrap)) / 2)); }
.mjt-stats > div:last-child { border-right: 0; }
.mjt-stats strong { display: block; font-family: var(--mjt-serif); font-size: clamp(26px, 2.6vw, 36px); line-height: 1.15; }
.mjt-stats span { display: block; margin-top: 6px; font-size: 15px; color: var(--mjt-texto-suave); }

.mjt-kanji { width: min(300px, 70%); }

/* Home: metodologia -------------------------------------------------------- */
.mjt-metodo__kanji { position: absolute; right: -40px; top: 40px; width: 360px; opacity: 0.07; pointer-events: none; }
.mjt-metodo .mjt-wrap { position: relative; }
.mjt-pilares { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 48px; }
.mjt-pilar {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 40px;
	border: 1px solid var(--mjt-linha-escura);
	background: var(--mjt-tinta);
	color: var(--mjt-claro);
	text-decoration: none;
}
.mjt-pilar:hover { border-color: var(--mjt-claro-mudo); color: var(--mjt-claro); }
.mjt-pilar__n { font-family: var(--mjt-serif); font-size: 15px; color: var(--mjt-claro-mudo); }
.mjt-pilar h3 { margin: 0; font-family: var(--mjt-serif); font-size: clamp(26px, 2.4vw, 34px); }
.mjt-pilar p { margin: 0; color: var(--mjt-claro-suave); }
.mjt-kata {
	margin-top: 24px;
	padding: 32px 40px;
	border: 1px solid var(--mjt-linha-escura);
	background: var(--mjt-tinta);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 32px;
}
.mjt-kata h3 { margin: 0 0 6px; font-family: var(--mjt-serif); font-size: 26px; }
.mjt-kata p { margin: 0; color: var(--mjt-claro-suave); max-width: 70ch; }
.mjt-kata .mjt-link { flex-shrink: 0; }

/* Mapas do MapPress: sempre dentro da coluna, sem vazar ------------------- */
.mapp-layout { max-width: 100% !important; }
.mapp-layout .mapp-iframe,
.mapp-layout iframe { max-width: 100% !important; }
.mjt-mapa { min-width: 0; }
.mjt-mapa .mapp-layout { width: 100% !important; height: auto !important; margin: 0 !important; border: 0 !important; }
.mjt-mapa .mapp-layout iframe,
.mjt-mapa .mapp-iframe { width: 100% !important; height: 540px !important; }
.mjt-mapa__vazio {
	display: flex; align-items: center; justify-content: center;
	min-height: 420px; background: var(--mjt-areia-2); border: 1px solid var(--mjt-linha);
	font-weight: 600; text-decoration: none;
}

/* Home: linhagem ----------------------------------------------------------- */
.mjt-memoria { display: flex; flex-direction: column; gap: 12px; }
.mjt-memoria__tag { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mjt-texto-suave); }
.mjt-memoria__card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 28px;
	background: var(--mjt-tinta);
	color: var(--mjt-claro);
}
.mjt-memoria__card strong { display: block; font-family: var(--mjt-serif); font-size: 26px; }
.mjt-memoria__card span { display: block; margin-top: 4px; font-size: 14px; color: var(--mjt-claro-suave); }
.mjt-memoria__card small { font-size: 13px; color: var(--mjt-claro-mudo); }
.mjt-memoria .mjt-link { margin-top: 6px; }

/* Home: arte completa ------------------------------------------------------ */
.mjt-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 48px; }
.mjt-duo > div { padding: 32px 36px 8px 0; border-top: 2px solid var(--mjt-tinta); }
.mjt-duo p { margin: 0; font-size: 17px; line-height: 1.7; color: var(--mjt-texto-suave); max-width: 60ch; }

.mjt-idades { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.mjt-idades figure { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.mjt-idades img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.mjt-idades img.mjt-pos-top { object-position: 50% 30%; }
.mjt-idades figcaption { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: baseline; }
.mjt-idades strong { font-family: var(--mjt-serif); font-size: 24px; }
.mjt-idades small { font-size: 14px; color: var(--mjt-texto-suave); }
.mjt-idades figcaption span { grid-column: 1 / -1; font-size: 15px; line-height: 1.6; color: var(--mjt-texto-suave); }

/* Home: públicos ----------------------------------------------------------- */
.mjt-publicos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.mjt-publico { display: flex; flex-direction: column; padding: 40px; background: #fff; border: 1px solid var(--mjt-linha); }
.mjt-publico .mjt-h3 { margin-bottom: 20px; }
.mjt-publico a { padding: 12px 0; border-top: 1px solid var(--mjt-areia-2); text-decoration: none; font-size: 16px; }

/* Home: vídeos ------------------------------------------------------------- */
.mjt-videos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.mjt-video { margin: 0; }
.mjt-video__play {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	padding: 0;
	border: 0;
	background: var(--mjt-tinta);
	cursor: pointer;
	overflow: hidden;
}
.mjt-video__play img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .85; }
.mjt-video__icon {
	position: absolute;
	left: 50%; top: 50%;
	width: 76px; height: 76px;
	margin: -38px 0 0 -38px;
	border-radius: 50%;
	background: var(--mjt-vermelho);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mjt-video__play:hover .mjt-video__icon { background: var(--mjt-vermelho-escuro); }
.mjt-video iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.mjt-video figcaption { margin-top: 16px; font-size: 19px; font-weight: 600; }

/* Home: redes sociais ------------------------------------------------------ */
.mjt-social { background: var(--mjt-vermelho); color: #fff; padding-block: clamp(64px, 8vw, 96px); }
.mjt-social .mjt-lead { color: #fff; }
.mjt-social__links { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.mjt-social__btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 60px;
	padding: 0 24px;
	border: 1px solid #fff;
	border-radius: 2px;
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	text-decoration: none;
}
.mjt-social__btn > span:first-child { display: flex; align-items: center; gap: 12px; }
.mjt-social__btn:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.mjt-social__btn--solid { background: #fff; color: var(--mjt-tinta); font-weight: 700; }
.mjt-social__btn--solid:hover { background: var(--mjt-papel); color: var(--mjt-tinta); }

.mjt-social__kanji { display: flex; justify-content: center; align-items: center; }
.mjt-social__kanji img { width: auto; height: auto; max-height: 520px; max-width: 100%; }

/* Contato ------------------------------------------------------------------ */
.mjt-canais { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding-bottom: var(--mjt-section); }
.mjt-canal {
	display: flex; flex-direction: column; gap: 8px;
	padding: 36px; background: #fff; border: 1px solid var(--mjt-linha);
	text-decoration: none; color: var(--mjt-tinta);
}
.mjt-canal:hover { border-color: var(--mjt-tinta); color: var(--mjt-tinta); }
.mjt-canal__icone {
	width: 52px; height: 52px; margin-bottom: 12px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: var(--mjt-areia); color: var(--mjt-vermelho);
}
.mjt-canal__nome { font-size: 14px; font-weight: 600; color: var(--mjt-texto-mudo); }
.mjt-canal__valor { font-family: var(--mjt-serif); font-size: clamp(20px, 1.8vw, 24px); font-weight: 700; overflow-wrap: anywhere; }
.mjt-canal__acao { margin-top: auto; padding-top: 16px; font-size: 15px; font-weight: 600; color: var(--mjt-vermelho); }
.mjt-canal--destaque { background: var(--mjt-tinta); border-color: var(--mjt-tinta); color: var(--mjt-claro); }
.mjt-canal--destaque:hover { color: var(--mjt-claro); border-color: var(--mjt-vermelho); }
.mjt-canal--destaque .mjt-canal__icone { background: var(--mjt-vermelho); color: #fff; }
.mjt-canal--destaque .mjt-canal__nome { color: var(--mjt-claro-mudo); }
.mjt-canal--destaque .mjt-canal__acao { color: var(--mjt-vermelho-claro); }

.mjt-sede__mapa iframe { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; }

/* Competições -------------------------------------------------------------- */
.mjt-docs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.mjt-doc {
	position: relative; overflow: hidden;
	display: flex; flex-direction: column; gap: 12px;
	min-height: 320px; padding: 40px;
	background: var(--mjt-tinta); color: var(--mjt-claro);
	border-top: 4px solid var(--mjt-vermelho);
	text-decoration: none;
}
.mjt-doc:hover { color: var(--mjt-claro); background: var(--mjt-tinta-2); }
.mjt-doc__marca { position: absolute; right: 24px; top: 24px; width: 120px; opacity: .12; pointer-events: none; }
.mjt-doc__tag { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--mjt-vermelho-claro); }
.mjt-doc__titulo { font-family: var(--mjt-serif); font-size: clamp(28px, 2.8vw, 38px); font-weight: 700; line-height: 1.1; max-width: 14em; }
.mjt-doc__texto { color: var(--mjt-claro-suave); max-width: 44ch; }
.mjt-doc__acao { margin-top: auto; padding-top: 20px; font-weight: 600; }
.mjt-docs-extra {
	display: flex; justify-content: space-between; align-items: center; gap: 32px;
	margin-block: 24px var(--mjt-section);
	padding: 40px; border: 1px solid var(--mjt-tinta);
	max-width: var(--mjt-wrap);
}
.mjt-docs-extra p { margin: 0; color: var(--mjt-texto-suave); }

/* O Estilo ----------------------------------------------------------------- */
.mjt-historia__logo { margin-top: 16px; width: min(240px, 60%); }

.mjt-timeline {
	list-style: none;
	margin: 64px auto 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.mjt-timeline li { padding: 28px 24px 0 0; border-top: 2px solid var(--mjt-tinta); }
.mjt-timeline strong { display: block; font-family: var(--mjt-serif); font-size: 32px; }
.mjt-timeline span { display: block; margin-top: 8px; font-size: 15px; color: var(--mjt-texto-suave); }

.mjt-compare { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 48px; }
.mjt-compare__card { padding: 40px; background: #fff; border: 1px solid var(--mjt-linha); }
.mjt-compare__card--mjj { background: var(--mjt-tinta); color: var(--mjt-claro); border-color: var(--mjt-tinta); border-top: 4px solid var(--mjt-vermelho); }
.mjt-compare__tag { margin: 0 0 12px; font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mjt-texto-mudo); }
.mjt-compare__card--mjj .mjt-compare__tag { color: var(--mjt-vermelho-claro); }
.mjt-compare__card h3 { margin: 0 0 18px; font-family: var(--mjt-serif); font-size: clamp(24px, 2.2vw, 30px); }
.mjt-compare__card dl { margin: 0; }
.mjt-compare__card dt { padding-top: 14px; border-top: 1px solid var(--mjt-areia-2); font-weight: 700; }
.mjt-compare__card dd { margin: 0 0 14px; line-height: 1.6; color: var(--mjt-texto-suave); }
.mjt-compare__card--mjj dt { border-color: var(--mjt-linha-escura); }
.mjt-compare__card--mjj dd { color: var(--mjt-claro-suave); }
.mjt-compare__foot { display: flex; justify-content: space-between; align-items: center; gap: 32px; margin-top: 32px; }
.mjt-compare__foot p { margin: 0; font-size: 18px; max-width: 60ch; }

.mjt-kanji-pair { display: flex; gap: 48px; margin-top: 8px; }
.mjt-kanji-pair span { display: block; font-family: var(--mjt-serif); font-size: 56px; line-height: 1.2; }
.mjt-kanji-pair small { font-size: 14px; color: var(--mjt-claro-mudo); }

.mjt-missao {
	list-style: none;
	counter-reset: missao;
	margin: 40px 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.mjt-missao li {
	counter-increment: missao;
	padding: 32px;
	background: #fff;
	border: 1px solid var(--mjt-linha);
	font-size: 17px;
	line-height: 1.6;
}
.mjt-missao li::before {
	content: counter(missao, decimal-leading-zero);
	display: block;
	margin-bottom: 14px;
	font-family: var(--mjt-serif);
	font-size: 28px;
	font-weight: 700;
	color: var(--mjt-vermelho);
}

.mjt-lista { list-style: none; margin: 8px 0 0; padding: 0; }
.mjt-lista li { padding: 18px 0; border-top: 1px solid #CFC4B2; font-size: 17px; line-height: 1.6; }

.mjt-panel { background: #fff; border: 1px solid var(--mjt-linha); padding: 40px; }
.mjt-katas { width: 100%; border-collapse: collapse; font-size: 16px; }
.mjt-katas th,
.mjt-katas td { padding: 11px 8px 11px 0; border-top: 1px solid var(--mjt-areia-2); text-align: left; vertical-align: top; }
.mjt-katas thead th { border-top: 0; font-size: 13px; font-weight: 600; color: var(--mjt-texto-mudo); }
.mjt-katas td { color: var(--mjt-texto-suave); }
.mjt-katas td:last-child { text-align: right; padding-right: 0; }

.mjt-faixas {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 24px 16px;
}
.mjt-faixas li { display: flex; flex-direction: column; gap: 6px; }
.mjt-faixas strong { font-size: 16px; }
.mjt-faixas li > span:last-child { font-size: 14px; color: var(--mjt-texto-suave); }
.mjt-faixa { display: block; height: 22px; border: 1px solid var(--mjt-tinta); margin-bottom: 4px; }
.mjt-faixa--branca { background: #fff; }
.mjt-faixa--cinza { background: #9A9A9A; }
.mjt-faixa--amarela { background: #E8C21C; }
.mjt-faixa--laranja { background: #E07A1F; }
.mjt-faixa--vermelha { background: #B3261E; }
.mjt-faixa--azul { background: #1F4E9A; }
.mjt-faixa--verde { background: #2E7D3A; }
.mjt-faixa--roxa { background: #5B2C83; }
.mjt-faixa--marrom { background: #6B3F1F; }
.mjt-faixa--preta { background: var(--mjt-tinta); }
.mjt-faixa--vermelha-branca { background: repeating-linear-gradient(90deg, #B3261E 0 24px, #fff 24px 48px); }
.mjt-faixa--branca-vermelha { background: repeating-linear-gradient(90deg, #fff 0 24px, #B3261E 24px 48px); }

/* Exames de faixa ---------------------------------------------------------- */
.mjt-page-head .mjt-chips { margin-top: 28px; }
.mjt-checks { list-style: none; margin: 0 0 24px; padding: 0; }
.mjt-checks li { position: relative; padding: 12px 0 12px 32px; border-top: 1px solid var(--mjt-linha); font-size: 16px; line-height: 1.55; }
.mjt-checks li::before {
	content: ""; position: absolute; left: 2px; top: 18px;
	width: 14px; height: 8px;
	border-left: 2px solid var(--mjt-vermelho); border-bottom: 2px solid var(--mjt-vermelho);
	transform: rotate(-45deg);
}
.mjt-exames__video { align-self: start; position: sticky; top: 120px; }

.mjt-erros { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--mjt-linha); }
.mjt-erros thead th { padding: 16px 24px; font-size: 13px; font-weight: 600; text-align: left; color: var(--mjt-texto-mudo); border-bottom: 1px solid var(--mjt-linha); }
.mjt-erros thead th:last-child,
.mjt-erros td { text-align: right; }
.mjt-erros tbody th,
.mjt-erros td { padding: 14px 24px; border-top: 1px solid var(--mjt-areia-2); font-size: 16px; }
.mjt-erros tbody th { font-weight: 500; text-align: left; }
.mjt-erros td { color: var(--mjt-texto-suave); white-space: nowrap; }
.mjt-erros td strong { font-family: var(--mjt-serif); font-size: 24px; color: var(--mjt-tinta); margin-right: 4px; }
.mjt-erros__faixas { display: inline-flex; gap: 4px; margin-right: 14px; vertical-align: middle; }
.mjt-erros__faixas .mjt-faixa { width: 28px; height: 12px; margin: 0; }

/* Lista de posts ----------------------------------------------------------- */
.mjt-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.mjt-post-card h2 { font-family: var(--mjt-serif); font-size: 24px; line-height: 1.2; margin: 16px 0 6px; }
.mjt-post-card h2 a { text-decoration: none; }
.mjt-post-card__date { margin: 0 0 8px; font-size: 14px; color: var(--mjt-texto-mudo); }

/* Rodapé ------------------------------------------------------------------- */
.mjt-footer { background: var(--mjt-tinta); color: var(--mjt-claro-suave); padding: 80px 0 48px; font-size: 15px; }
.mjt-footer a { color: var(--mjt-claro-suave); text-decoration: none; }
.mjt-footer a:hover { color: #fff; }
.mjt-footer__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px; }
.mjt-footer__brand img { width: 88px; height: 88px; background: var(--mjt-papel); border-radius: 50%; }
.mjt-footer__brand p { margin: 16px 0 0; line-height: 1.6; }
.mjt-footer__col { display: flex; flex-direction: column; gap: 12px; }
.mjt-footer__col h2 { margin: 0 0 4px; font-family: var(--mjt-sans); font-size: 15px; font-weight: 600; color: var(--mjt-claro); }
.mjt-footer__menu { grid-column: span 4; }
.mjt-footer__menu ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 32px; }
.mjt-footer__bottom {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 24px;
	margin-top: 56px;
	padding-top: 24px;
	border-top: 1px solid var(--mjt-linha-escura);
	font-size: 13px;
	color: var(--mjt-claro-mudo);
}
.mjt-footer__social { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.mjt-footer__social a { color: var(--mjt-claro); }

/* Responsivo --------------------------------------------------------------- */
@media (max-width: 1080px) {
	.mjt-faixas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.mjt-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mjt-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
	.mjt-grid > [class*="mjt-col-"] { grid-column: 1 / -1; }
	.mjt-hero { grid-template-columns: 1fr; min-height: 0; }
	.mjt-hero__media { order: -1; aspect-ratio: 4 / 3; min-height: 0; }
	.mjt-hero__text { padding: 32px var(--mjt-gutter) 48px; }
	.mjt-actions .mjt-btn { flex: 1 1 100%; }
	.mjt-stats > div,
	.mjt-stats > div:first-child { padding: 18px 12px 18px 16px; }
	.mjt-stats span { font-size: 13px; }
	.mjt-pilares,
	.mjt-publicos,
	.mjt-videos,
	.mjt-compare,
	.mjt-duo,
	.mjt-missao,
	.mjt-posts { grid-template-columns: 1fr; }
	.mjt-pilar { padding: 28px; }
	.mjt-kata,
	.mjt-compare__foot,
	.mjt-aviso,
	.mjt-section__head { flex-direction: column; align-items: flex-start; }
	.mjt-idades { grid-template-columns: 1fr; gap: 20px; }
	.mjt-idades figure { display: grid; grid-template-columns: 120px 1fr; gap: 14px; align-items: center; }
	.mjt-idades img { aspect-ratio: 4 / 3; }
	.mjt-idades figcaption { grid-template-columns: 1fr; }
	.mjt-idades strong { font-size: 19px; }
	.mjt-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
	.mjt-metodo__kanji { width: 220px; }
	.mjt-memoria__card { padding: 22px; }
	.mjt-social__kanji { order: -1; }
	.mjt-social__kanji img { max-height: 240px; }
	.mjt-mapa .mapp-layout iframe,
	.mjt-mapa .mapp-iframe { height: 420px !important; }
	.mjt-canais,
	.mjt-docs { grid-template-columns: 1fr; }
	.mjt-canal,
	.mjt-doc { padding: 28px; }
	.mjt-doc { min-height: 0; }
	.mjt-docs-extra { flex-direction: column; align-items: flex-start; padding: 24px; margin-inline: var(--mjt-gutter); width: auto; }
	.mjt-sede__mapa iframe { aspect-ratio: 1 / 1; }
	.mjt-exames__video { position: static; }
	.mjt-erros thead th,
	.mjt-erros tbody th,
	.mjt-erros td { padding: 12px 14px; font-size: 15px; }
	.mjt-erros td strong { font-size: 20px; }
	.mjt-erros__faixas { display: flex; margin: 0 0 6px; }
	.mjt-aviso { padding-inline: 24px; margin-inline: var(--mjt-gutter); width: auto; }
	.mjt-toc { display: none; }
	.mjt-panel { padding: 24px; }
}

@media (max-width: 600px) {
	body { font-size: 16px; }
	.mjt-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mjt-stats strong { font-size: 19px; }
	.mjt-stats span { font-size: 12px; }
	.mjt-faixas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mjt-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mjt-social__btn { font-size: 15px; padding: 0 18px; }
	.mjt-katas { font-size: 14px; }
}
