/* =========================================================
   Camões — Loja da Família · main.css
   Tokens espelham o tema institucional (assets/css/main.css e theme.json):
   azul #041245 predominante, dourado #FCC423 só sobre azul (não passa AA sobre branco),
   bordô #920408 como acento (até ~10% da peça). Mobile-first: a maioria das famílias entra pelo celular.
   ========================================================= */

/* Fira Sans: quando os .woff2 forem adicionados em assets/fonts/, trocar o src abaixo (a licença é aberta, SIL OFL).
   Até lá, usa a fonte instalada ou o sistema, sem gerar 404. */
@font-face {
	font-family: 'Fira Sans';
	src: local('Fira Sans'), local('FiraSans-Regular');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

:root {
	--cor-azul: #041245;
	--cor-azul-profundo: #020B2E;
	--cor-dourado: #FCC423;
	--cor-bordo: #920408;
	--cor-branco: #FFFFFF;
	--cor-grafite: #22283A;
	--cor-ardosia: #5A6072;
	--cor-nevoa: #E8E5DE;
	--cor-linho: #FAF9F6;
	--cor-tag: #F1EEE7;
	--cor-ok: #1F6B3A;

	--fonte-titulo: "garamond-premier", "EB Garamond", Georgia, "Times New Roman", serif;
	--fonte-corpo: "Fira Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

	--largura-max: 1200px;
	--raio: 4px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--fonte-corpo); color: var(--cor-grafite); background: var(--cor-branco); line-height: 1.55; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--fonte-titulo); color: var(--cor-azul); line-height: 1.15; margin: 0 0 0.5em; }
h1 { font-size: clamp(1.75rem, 5vw, 2.5rem); }
h2 { font-size: clamp(1.4rem, 4vw, 1.75rem); }
a { color: var(--cor-azul); }
:focus-visible { outline: 2px solid var(--cor-bordo); outline-offset: 2px; }

.camoes-container { max-width: var(--largura-max); margin-inline: auto; padding-inline: 1rem; }
.camoes-conteudo { padding-block: 1.5rem 3rem; min-height: 60vh; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.camoes-skip-link { position: absolute; top: -3rem; left: 1rem; background: var(--cor-azul); color: var(--cor-branco); padding: 0.75rem 1rem; z-index: 1000; }
.camoes-skip-link:focus { top: 1rem; width: auto; height: auto; clip: auto; overflow: visible; }

/* Botões (também os do WooCommerce, do login e do painel do tema) */
.camoes-btn,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce-page a.button, .woocommerce-page button.button,
.camoes-loja-form button, .single_add_to_cart_button {
	display: inline-block;
	font-family: var(--fonte-corpo);
	font-weight: 600;
	font-size: 0.9375rem;
	text-decoration: none;
	padding: 0.8rem 1.4rem;
	min-height: 44px; /* alvo de toque confortável no celular */
	border-radius: var(--raio);
	border: 2px solid var(--cor-azul);
	background: var(--cor-azul);
	color: var(--cor-branco);
	cursor: pointer;
}
.camoes-btn--primario { background: var(--cor-dourado); border-color: var(--cor-dourado); color: var(--cor-azul); }
.camoes-btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .camoes-loja-form button:hover { background: var(--cor-bordo); border-color: var(--cor-bordo); color: var(--cor-branco); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt { background: var(--cor-bordo); border-color: var(--cor-bordo); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--cor-azul); border-color: var(--cor-azul); }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: 0.5; cursor: not-allowed; }

/* Cabeçalho */
.camoes-header { background: var(--cor-azul); color: var(--cor-branco); border-bottom: 1px solid rgba(255,255,255,0.10); }
.camoes-header__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; padding-block: 0.9rem; }
.camoes-header__marca { display: flex; flex-direction: column; text-decoration: none; color: var(--cor-branco); line-height: 1.1; }
.camoes-header__logo-texto { font-family: var(--fonte-titulo); font-size: 1.6rem; font-weight: 600; }
.camoes-header__logo-legenda { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cor-dourado); }
.camoes-nav { flex: 1 1 100%; order: 3; }
.camoes-nav__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.camoes-nav a { display: inline-block; padding: 0.5rem 0; color: var(--cor-branco); text-decoration: none; font-size: 0.9375rem; }
.camoes-nav a:hover, .camoes-nav a:focus-visible { color: var(--cor-dourado); text-decoration: underline; }
.camoes-header__site { margin-left: auto; color: rgba(255,255,255,0.85); font-size: 0.8125rem; }
@media (min-width: 720px) {
	.camoes-nav { flex: 1 1 auto; order: 0; }
	.camoes-header__site { margin-left: 0; }
}

/* Rodapé */
.camoes-footer { background: var(--cor-azul-profundo); color: rgba(255,255,255,0.85); font-size: 0.875rem; }
.camoes-footer a { color: var(--cor-dourado); }
.camoes-footer__inner { display: grid; gap: 1.5rem; padding-block: 2rem; }
@media (min-width: 720px) { .camoes-footer__inner { grid-template-columns: 2fr 1fr; } }
.camoes-footer__nome { font-family: var(--fonte-titulo); font-size: 1.4rem; color: var(--cor-branco); }
.camoes-footer__titulo { font-weight: 600; color: var(--cor-branco); display: block; margin-bottom: 0.5rem; }
.camoes-footer ul { list-style: none; margin: 0; padding: 0; }
.camoes-footer li { margin-bottom: 0.35rem; }
.camoes-footer__copyright { border-top: 1px solid rgba(255,255,255,0.12); padding-block: 1rem; font-size: 0.75rem; }
.camoes-footer__copyright p { margin: 0; }

/* Formulários (entrar, lista de material, campos do WooCommerce) */
.camoes-loja-form label, .woocommerce form .form-row label { display: block; font-weight: 600; margin-bottom: 0.25rem; }
.camoes-loja-form input[type="text"], .camoes-loja-form select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea {
	width: 100%; max-width: 28rem; min-height: 44px; padding: 0.6rem 0.75rem; font: inherit;
	border: 1px solid var(--cor-ardosia); border-radius: var(--raio); background: var(--cor-branco); color: var(--cor-grafite);
}
.camoes-loja-entrar { max-width: 32rem; }
.camoes-loja-erro, .woocommerce-error { color: var(--cor-bordo); font-weight: 600; }
.camoes-loja-aviso, .woocommerce-info, .woocommerce-message { background: var(--cor-linho); border-left: 4px solid var(--cor-azul); padding: 0.85rem 1rem; margin: 0 0 1rem; list-style: none; }
.woocommerce-error { background: var(--cor-linho); border-left: 4px solid var(--cor-bordo); padding: 0.85rem 1rem; margin: 0 0 1rem; list-style: none; }
.woocommerce-message { border-left-color: var(--cor-ok); }
.camoes-loja-aluno { background: var(--cor-tag); padding: 0.6rem 0.75rem; border-radius: var(--raio); margin: 0 0 1rem; }

/* WooCommerce: vitrine */
.woocommerce ul.products { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.woocommerce ul.products li.product { border: 1px solid var(--cor-nevoa); border-radius: var(--raio); padding: 1rem; background: var(--cor-branco); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--fonte-titulo); font-size: 1.15rem; color: var(--cor-azul); }
.woocommerce .price, .woocommerce-Price-amount { color: var(--cor-azul); font-weight: 600; }
.woocommerce span.onsale { background: var(--cor-bordo); color: var(--cor-branco); padding: 0.15rem 0.5rem; border-radius: var(--raio); }
.woocommerce div.product { display: grid; gap: 1.5rem; }
@media (min-width: 720px) { .woocommerce div.product { grid-template-columns: 1fr 1fr; } .woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related { grid-column: 1 / -1; } }
.woocommerce div.product form.cart .variations select { max-width: 100%; }
.woocommerce .quantity input.qty { min-height: 44px; width: 5rem; }

/* WooCommerce: carrinho, checkout e Minha conta (tabelas legíveis no celular) */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 0.65rem 0.5rem; border-bottom: 1px solid var(--cor-nevoa); text-align: left; vertical-align: top; }
.woocommerce table.shop_table th { color: var(--cor-azul); }
@media (max-width: 719px) {
	.woocommerce table.shop_table_responsive tr { display: block; margin-bottom: 1rem; border: 1px solid var(--cor-nevoa); }
	.woocommerce table.shop_table_responsive tr td { display: block; text-align: right; border-bottom: 1px solid var(--cor-nevoa); }
	.woocommerce table.shop_table_responsive tr td::before { content: attr(data-title) ": "; float: left; font-weight: 600; color: var(--cor-azul); }
	.woocommerce table.shop_table_responsive thead { display: none; }
}
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.woocommerce-MyAccount-navigation a { display: inline-block; padding: 0.5rem 0.9rem; border: 1px solid var(--cor-nevoa); border-radius: var(--raio); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--cor-azul); color: var(--cor-branco); border-color: var(--cor-azul); }

/* Lista de Material */
.camoes-loja-tabela { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; font-size: 0.9375rem; }
.camoes-loja-tabela th, .camoes-loja-tabela td { padding: 0.55rem 0.5rem; border-bottom: 1px solid var(--cor-nevoa); text-align: left; vertical-align: top; }
.camoes-loja-tabela th { color: var(--cor-azul); }

/* Minha conta > Meus alunos */
.camoes-loja-aluno-card { border: 1px solid var(--cor-nevoa); border-radius: var(--raio); background: var(--cor-linho); padding: 1rem 1.15rem; margin: 0 0 1.25rem; }
.camoes-loja-aluno-card h3 { margin-bottom: 0.15em; }
.camoes-loja-aluno-card h4 { font-size: 1.1rem; margin: 1rem 0 0.35rem; }
.camoes-loja-matricula { color: var(--cor-ardosia); margin: 0 0 0.5rem; }
.camoes-loja-itens { list-style: none; padding: 0; margin: 0; }
.camoes-loja-itens > li { padding: 0.55rem 0; border-bottom: 1px solid var(--cor-nevoa); }
.camoes-loja-itens > li:last-child { border-bottom: 0; }
.camoes-loja-nota { color: var(--cor-ardosia); }
.camoes-loja-atalho { margin-top: 1rem; }

/* Aviso de cookies (mesmo padrão do site) */
.camoes-cookies { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 200; max-width: 640px; margin-inline: auto; background: var(--cor-azul); color: var(--cor-branco); border-radius: 6px; padding: 1.1rem 1.25rem; display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: center; }
.camoes-cookies[hidden] { display: none; }
.camoes-cookies__texto { margin: 0; font-size: 0.75rem; line-height: 1.6; flex: 1 1 260px; }
.camoes-cookies__texto a { color: var(--cor-dourado); }
.camoes-cookies__acoes { display: flex; gap: 0.75rem; }
.camoes-cookies__acoes .camoes-btn { padding: 0.55rem 1rem; font-size: 0.8125rem; min-height: 40px; }
.camoes-cookies__acoes .camoes-btn:not(.camoes-btn--primario) { background: transparent; border-color: rgba(255,255,255,0.4); }

/* Impressão: só a Lista de Material, sem cabeçalho, rodapé nem botões */
@media print {
	.camoes-header, .camoes-footer, .camoes-cookies, .no-print, .camoes-skip-link { display: none !important; }
	body { color: #000; background: #fff; }
	.camoes-conteudo { padding: 0; }
	.camoes-loja-tabela th, .camoes-loja-tabela td { border-bottom: 1px solid #999; }
	a { color: #000; text-decoration: none; }
}
