/*
 * Lingtronic - identidade visual (fase S2, aprovada a 14 nov 2026).
 *
 * Paleta: grafite #16202A, azul #0A5CC2, ambar #F5A524, cinza texto #5B6670,
 * fundo #F6F7F8. Letras: Space Grotesk (titulos) e Inter (texto), alojadas
 * no proprio tema (assets/fonts, licenca SIL OFL 1.1).
 *
 * Funciona por cima do Astra: redefine as cores globais do Astra
 * (--ast-global-color-*) e acrescenta cartoes, botoes, cabecalho e rodape.
 * Para voltar ao aspeto anterior basta deixar de carregar este ficheiro.
 */

/* ---------- Letras ---------- */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/space-grotesk-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("../fonts/space-grotesk-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Cores (por cima das cores globais do Astra) ---------- */
:root:root {
	--lt-ink: #16202A;
	--lt-text: #2B3640;
	--lt-muted: #5B6670;
	--lt-blue: #0A5CC2;
	--lt-blue-dark: #084A9C;
	--lt-blue-soft: #E8F0FB;
	--lt-amber: #F5A524;
	--lt-amber-soft: #FDF0D9;
	--lt-bg: #F6F7F8;
	--lt-surface: #FFFFFF;
	--lt-line: #E2E6EA;
	--lt-line-strong: #D3D9DF;
	--lt-radius: 16px;
	--lt-radius-sm: 10px;
	--lt-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--lt-font-head: "Space Grotesk", "Inter", system-ui, sans-serif;

	--ast-global-color-0: var(--lt-blue);
	--ast-global-color-1: var(--lt-blue-dark);
	--ast-global-color-2: var(--lt-ink);
	--ast-global-color-3: var(--lt-text);
	--ast-global-color-4: var(--lt-bg);
	--ast-global-color-5: var(--lt-surface);
	--ast-global-color-6: #EEF1F3;
	--ast-global-color-7: var(--lt-ink);
	--ast-global-color-8: #0E141A;
}

/* ---------- Base ---------- */
body,
button,
input,
select,
textarea,
.ast-button,
.ast-custom-button {
	font-family: var(--lt-font);
}

body {
	color: var(--lt-text);
	background-color: var(--lt-bg);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.site-title,
.woocommerce-loop-product__title,
.product_title,
.uagb-heading-text {
	font-family: var(--lt-font-head);
	color: var(--lt-ink);
	letter-spacing: -0.01em;
}

h1, .entry-title { font-weight: 700; }
h2, h3 { font-weight: 600; }

a { color: var(--lt-blue); }
a:hover, a:focus { color: var(--lt-blue-dark); }

:focus-visible {
	outline: 2px solid var(--lt-blue);
	outline-offset: 2px;
}

/* ---------- Botoes ---------- */
.ast-button,
.button,
input[type="submit"],
input[type="button"],
.wp-block-button__link,
.uagb-buttons-repeater,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	font-family: var(--lt-font);
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	border-radius: var(--lt-radius-sm);
}

.woocommerce div.product form.cart .button,
.woocommerce .single_add_to_cart_button {
	text-transform: none;
	letter-spacing: 0;
	font-size: 16px;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce-page .single_add_to_cart_button {
	background-color: var(--lt-blue);
	color: #FFFFFF;
	border-color: var(--lt-blue);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover {
	background-color: var(--lt-blue-dark);
	border-color: var(--lt-blue-dark);
}

/* Campos de formulario */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="url"],
select,
textarea {
	border: 1px solid var(--lt-line-strong);
	border-radius: var(--lt-radius-sm);
	background-color: var(--lt-surface);
	color: var(--lt-ink);
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--lt-blue);
	box-shadow: 0 0 0 3px var(--lt-blue-soft);
}

/* ---------- Cabecalho ---------- */
.site-header .ast-primary-header-bar,
.site-header .main-header-bar {
	background-color: var(--lt-surface);
	border-bottom: 1px solid var(--lt-line);
	box-shadow: none;
}

.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link {
	font-family: var(--lt-font);
	font-size: 15px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	color: var(--lt-ink);
}

.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link:hover,
.ast-builder-menu-1 .main-header-menu > .current-menu-item > .menu-link,
.ast-builder-menu-1 .main-header-menu > .current_page_item > .menu-link {
	color: var(--lt-blue);
}

/* Menu numa so linha no computador (as bandeiras ja nao caem para baixo). */
.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link {
	white-space: nowrap;
	padding-left: 0.9em;
	padding-right: 0.9em;
}

.ast-builder-menu-1 .sub-menu {
	border: 1px solid var(--lt-line);
	border-radius: 12px;
	box-shadow: 0 12px 32px rgba(22, 32, 42, 0.12);
	overflow: hidden;
}

/* Contador do carrinho em ambar */
.ast-site-header-cart .ast-cart-menu-wrap .count,
.ast-site-header-cart .ast-addon-cart-wrap .count,
.ast-header-woo-cart .ast-count-text {
	color: var(--lt-ink);
}
.ast-site-header-cart .ast-cart-menu-wrap .count,
.ast-site-header-cart .ast-cart-menu-wrap .count:after,
.astra-icon .ast-count-text,
.ast-header-woo-cart .ast-site-header-cart .ast-addon-cart-wrap .ast-count-text {
	background-color: var(--lt-amber);
	border-color: var(--lt-amber);
	color: var(--lt-ink);
}

/* Titulo das paginas (barra cinzenta do Astra) */
.ast-archive-entry-banner,
.ast-single-entry-banner {
	background-color: var(--lt-bg);
}

/* ---------- Cartoes: artigos do blog ---------- */
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single:not(.ast-related-post),
.ast-separate-container .comments-area,
.ast-separate-container .ast-author-box {
	border-radius: var(--lt-radius);
}

.ast-separate-container .ast-article-post {
	border: 1px solid var(--lt-line);
}

.ast-blog-layout-4-grid .ast-article-inner,
.ast-blog-layout-6-grid .ast-article-inner,
.ast-related-post {
	border-radius: var(--lt-radius);
	overflow: hidden;
}

.ast-related-post .ast-related-post-content,
.ast-related-posts-wrapper .ast-related-post {
	background-color: var(--lt-surface);
	border: 1px solid var(--lt-line);
	border-radius: var(--lt-radius);
}

.ast-related-post-title,
.ast-related-posts-title {
	font-family: var(--lt-font-head);
}

.entry-meta,
.entry-meta * ,
.ast-related-post .entry-meta {
	color: var(--lt-muted);
}

/* ---------- Loja: grelha de produtos ---------- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background-color: var(--lt-surface);
	border: 1px solid var(--lt-line);
	border-radius: var(--lt-radius);
	overflow: hidden;
	padding: 0 0 18px;
	text-align: left;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
	border-color: var(--lt-line-strong);
	box-shadow: 0 10px 28px rgba(22, 32, 42, 0.08);
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap,
.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap {
	background-color: #FFFFFF;
	border-bottom: 1px solid #EEF1F3;
	margin-bottom: 14px;
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img,
.woocommerce-page ul.products li.product .astra-shop-thumbnail-wrap img {
	aspect-ratio: 1;
	object-fit: contain;
	margin: 0;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap,
.woocommerce-page ul.products li.product .astra-shop-summary-wrap {
	padding: 0 18px;
}

.woocommerce ul.products li.product .ast-woo-product-category {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--lt-muted);
	opacity: 1;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--lt-ink);
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--lt-font-head);
	font-weight: 700;
	color: var(--lt-ink);
}

.woocommerce ul.products li.product .price {
	font-size: 17px;
}

.woocommerce ul.products li.product .button {
	margin-top: 10px;
}

/* Etiqueta de promocao */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	background-color: var(--lt-amber);
	color: var(--lt-ink);
	border-radius: 999px;
	font-weight: 600;
}

/* Barra lateral da loja como cartao */
.woocommerce .widget-area .ast-woo-sidebar-widget,
.woocommerce-page .widget-area .ast-woo-sidebar-widget {
	font-size: 15px;
}

.woocommerce .widget-area .widget-title,
.woocommerce .widget-area .wp-block-heading,
.woocommerce-page .widget-area .widget-title {
	font-family: var(--lt-font-head);
	font-size: 18px;
	font-weight: 600;
	color: var(--lt-ink);
}

.woocommerce-result-count,
.woocommerce-ordering select {
	font-size: 14px;
	color: var(--lt-muted);
}

/* Paginacao */
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--lt-line);
	border-radius: var(--lt-radius-sm);
	background-color: var(--lt-surface);
	color: var(--lt-ink);
	margin: 0 4px;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background-color: var(--lt-ink);
	border-color: var(--lt-ink);
	color: #FFFFFF;
}

/* ---------- Loja: pagina da loja e categorias (S4, inc/shop.php) ---------- */
.lt-shop-intro {
	clear: both;
	max-width: 680px;
	margin: 0 0 24px;
	font-size: 17px;
	line-height: 1.6;
	color: var(--lt-muted);
}

.lt-shop-cats {
	clear: both;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
	margin: 0 0 28px;
}

.lt-shop-cat {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 16px;
	background: var(--lt-surface);
	border: 1px solid var(--lt-line);
	border-radius: var(--lt-radius);
	color: var(--lt-ink);
	text-decoration: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lt-shop-cat:hover,
.lt-shop-cat:focus {
	color: var(--lt-ink);
	border-color: var(--lt-line-strong);
	box-shadow: 0 10px 28px rgba(22, 32, 42, 0.08);
}

.lt-shop-cat__img {
	flex: none;
	width: 88px;
	height: 88px;
	border-radius: 12px;
	overflow: hidden;
	background: #FFFFFF;
	border: 1px solid #EEF1F3;
}

.lt-shop-cat__img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	margin: 0;
}

.lt-shop-cat__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.lt-shop-cat__title {
	font-family: var(--lt-font-head);
	font-size: 19px;
	font-weight: 600;
}

.lt-shop-cat__text {
	font-size: 14px;
	line-height: 1.45;
	color: var(--lt-muted);
}

.lt-shop-cat__count {
	font-size: 14px;
	font-weight: 600;
	color: var(--lt-blue);
}

.lt-chips {
	clear: both;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 20px;
}

.lt-chip-filter {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid var(--lt-line-strong);
	border-radius: 999px;
	background: var(--lt-surface);
	color: var(--lt-ink);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}

.lt-chip-filter:hover,
.lt-chip-filter:focus {
	border-color: var(--lt-ink);
	color: var(--lt-ink);
}

.lt-chip-filter.is-active {
	background: var(--lt-ink);
	border-color: var(--lt-ink);
	color: #FFFFFF;
	font-weight: 600;
}

/* Grelha: 4 colunas no computador, 2 no telemovel.
   Seletores mais fortes do que os do Astra (.ast-container .woocommerce ul.products:not(...)). */
html body.archive.woocommerce ul.products.products:not(.elementor-grid),
html body.post-type-archive-product ul.products.products:not(.elementor-grid) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 20px;
	margin: 0 0 32px;
	clear: both;
}

.woocommerce.archive ul.products::before,
.woocommerce.archive ul.products::after,
.post-type-archive-product ul.products::before,
.post-type-archive-product ul.products::after {
	display: none;
}

html body.archive.woocommerce ul.products li.product.product,
html body.post-type-archive-product ul.products li.product.product {
	width: auto;
	margin: 0;
	float: none;
	display: flex;
	flex-direction: column;
}

.woocommerce.archive ul.products li.product .astra-shop-summary-wrap,
.post-type-archive-product ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	flex: 1;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap .button {
	align-self: flex-start;
	margin-top: auto;
	padding: 10px 14px;
	font-size: 14px;
	line-height: 1.2;
	background-color: var(--lt-blue);
	border-color: var(--lt-blue);
	color: #FFFFFF;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap .button:hover {
	background-color: var(--lt-blue-dark);
	border-color: var(--lt-blue-dark);
	color: #FFFFFF;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap .price {
	margin-bottom: 12px;
}

@media (max-width: 600px) {
	html body.archive.woocommerce ul.products.products:not(.elementor-grid),
	html body.post-type-archive-product ul.products.products:not(.elementor-grid) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.woocommerce ul.products li.product .astra-shop-summary-wrap {
		padding: 0 12px;
	}

	.lt-shop-cat__img {
		width: 64px;
		height: 64px;
	}
}

/* ---------- Loja: pagina de produto ---------- */
.woocommerce div.product .product_title {
	font-size: 34px;
	line-height: 1.15;
}

.woocommerce div.product .woocommerce-product-gallery__image img {
	border-radius: var(--lt-radius);
	border: 1px solid var(--lt-line);
	background-color: #FFFFFF;
}

.woocommerce div.product form.cart .variations select {
	min-height: 44px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-weight: 600;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--lt-blue);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active:before {
	background-color: var(--lt-blue);
}

.related.products > h2,
.upsells.products > h2 {
	font-size: 26px;
}

/* ---------- Avisos do WooCommerce ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--lt-radius-sm);
	border-top-color: var(--lt-blue);
}

/* ---------- Rodape ---------- */
.site-footer,
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap {
	background-color: var(--lt-ink);
	color: #C9D1D9;
}

.site-footer .site-below-footer-wrap {
	border-top: 1px solid #2C3742;
}

.site-footer a,
.site-footer .ast-footer-social-wrap .ast-builder-social-element,
.site-footer .widget-title {
	color: #E6EAEE;
}

.site-footer a:hover {
	color: var(--lt-amber);
}

.site-footer .ast-footer-social-wrap .ast-builder-social-element svg {
	fill: currentColor;
}

.site-footer .widget,
.site-footer .ast-footer-copyright,
.site-footer .ast-header-html {
	font-size: 14px;
	color: #C9D1D9;
}

/* Widgets do rodape (S1): marca + colunas de ligacoes */
.site-footer .lt-footer-brand p,
.site-footer .lt-footer-links p {
	margin: 0 0 10px;
	line-height: 1.6;
}

.site-footer .lt-footer-name {
	font-family: var(--lt-font-head);
	font-size: 22px;
	font-weight: 700;
	color: #FFFFFF;
}

.site-footer .lt-footer-title {
	font-weight: 600;
	color: #FFFFFF;
}

.site-footer .lt-footer-links ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer .lt-footer-links li {
	margin: 0 0 8px;
}

.site-footer .lt-footer-links a,
.site-footer .lt-footer-brand a {
	color: #C9D1D9;
	text-decoration: none;
}

.site-footer .lt-footer-links a:hover,
.site-footer .lt-footer-brand a:hover {
	color: var(--lt-amber);
}

/* "Powered By Lingtronic" (HTML 1 do rodape do Astra) fica escondido. */
.site-footer .ast-footer-html-1 {
	display: none;
}

/* Item "A minha conta" do menu como icone no computador (o texto continua
   a ser lido pelos leitores de ecra). Classe lt-menu-conta no item do menu. */
@media (min-width: 922px) {
	.ast-builder-menu-1 .main-header-menu > .lt-menu-conta > .menu-link {
		font-size: 0;
		min-width: 44px;
		justify-content: center;
	}

	.ast-builder-menu-1 .main-header-menu > .lt-menu-conta > .menu-link::before {
		content: "";
		display: inline-block;
		width: 20px;
		height: 20px;
		background-color: currentColor;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%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 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E") center / contain no-repeat;
	}
}

/* ---------- Ajudas a leitura do blog (inc/reading-aids.php) ---------- */
.lt-next {
	border-radius: var(--lt-radius);
}
