/* ==========================================================================
   Sousènsi — base do manual de identidade visual (material/miv/miv.pdf)
   Tokens, texto, títulos, botões e componentes usados em mais de uma página.
   Sobrepõe o tema Luchiana, o Elementor e os snippets; todas as regras começam por
   body.sd (classe do tema, inc/assets.php).
   - Tipografia (págs. 14-16): títulos em General Sans Light com um trecho de destaque em
     Trirong itálico (<em>); rótulos, botões e etiquetas em General Sans Medium, caixa alta
     e espaçados; texto corrido em General Sans.
   - Componentes (págs. 30-37): botões, selos e etiquetas em pílula.
   ========================================================================== */

/* -------------------------------------------------------------- tokens */

body.sd {
	/* Paleta institucional (págs. 10-11) */
	--sd-ink: #31261d;          /* Marrom: única cor de texto */
	--sd-ink-soft: #6b6661;     /* textos de apoio */
	--sd-paper: #f7f7f5;        /* Off-white: fundo */
	--sd-white: #ffffff;
	--sd-mist: #e9edf1;         /* botão desabilitado */
	--sd-sky: #a4b3c3;          /* Azul claro: painéis */
	--sd-blue: #6f87a1;         /* Azul: logo e ícones */
	--sd-blue-deep: #56718b;    /* Azul profundo: botões e rodapé (5,1:1 com branco) */
	--sd-clay: #bb6747;         /* Terracota: pontos de contraste */
	--sd-line: #dedbd5;

	/* Escala tipográfica (razão ~1,25) */
	--sd-step--1: 0.8125rem;    /* 13 */
	--sd-step-0: 1rem;          /* 16 */
	--sd-step-1: 1.25rem;       /* 20 */
	--sd-step-2: clamp(1.375rem, 1.2rem + 0.6vw, 1.625rem);
	--sd-step-3: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem);
	--sd-step-4: clamp(2.125rem, 1.6rem + 2vw, 3rem);
	--sd-step-5: clamp(2.125rem, 1.45rem + 2.7vw, 3.625rem);   /* título do hero */

	--sd-ease: cubic-bezier(.2, .6, .2, 1);

	/* Famílias e pesos */
	--sd-text: "General Sans", system-ui, sans-serif;
	--sd-display: var(--sd-text);   /* títulos na sans; a serifa fica para os destaques */
	--sd-accent: "Trirong", Georgia, serif;
	--sd-display-weight: 300;       /* títulos */
	--sd-accent-weight: 300;        /* complementos leves */
	--sd-text-weight: 400;          /* texto corrido */
	--sd-light-weight: 400;         /* subtítulos e textos leves */
	--sd-display-tracking: 0;

	/* Rótulos em caixa alta e pílulas */
	--sd-caps-size: 0.6875rem;
	--sd-caps-tracking: 0.12em;
	--sd-pill: 999px;

	/* Variáveis do próprio tema Luchiana */
	--font-header: var(--sd-display);
	--font-text: var(--sd-text);
	--text-color: var(--sd-ink);
	--accent-color: var(--sd-blue-deep);
	--button-color: var(--sd-blue-deep);
	--background-color: var(--sd-paper);
	--font-letter-spacing: 0;
}

/* Cores globais do Elementor (kit 18) alinhadas à paleta */
body.sd.elementor-kit-18 {
	--e-global-color-primary: var(--sd-ink);
	--e-global-color-secondary: var(--sd-paper);
	--e-global-color-text: var(--sd-ink);
	--e-global-color-accent: var(--sd-blue-deep);
	--e-global-color-f2cd568: var(--sd-ink);        /* "marrom" */
	--e-global-color-baa7cec: var(--sd-blue);       /* "Azul sousensi" */
	--e-global-color-b804304: var(--sd-blue-deep);  /* "Azul profundo" */
	--e-global-color-79816fc: var(--sd-paper);      /* "Soft white" */
	--e-global-color-b762ac0: var(--sd-paper);      /* "Off-white" */
}

/* -------------------------------------------------------------- texto */

body.sd {
	font-family: var(--sd-text);
	font-weight: var(--sd-text-weight);
	font-size: var(--sd-step-0);
	line-height: 1.65;
	color: var(--sd-ink);
	background-color: var(--sd-paper);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Todo texto corrido no sans da marca, sem itálico sintético nem espaçamentos avulsos */
body.sd p,
body.sd li,
body.sd .elementor-widget-text-editor,
body.sd .elementor-widget-text-editor *,
body.sd .elementor-icon-list-text,
body.sd .c-ip-slider__text,
body.sd .woocommerce-product-details__short-description {
	font-family: var(--sd-text) !important;
	font-style: normal !important;
	letter-spacing: 0 !important;
	color: inherit;
}

/* O tema define a fonte dos links de forma fixa; links herdam do contexto */
body.sd a { font-family: inherit; }

/* Plugins: preço dos cards de reels, acordeões de FAQ, "Limpar" das variações */
body.sd .ecr-product-card-one__price,
body.sd .reset_variations {
	font-family: var(--sd-text) !important;
	letter-spacing: 0 !important;
}
body.sd .c-ip-accordion__header {
	font-family: var(--sd-text) !important;
	font-weight: 500 !important;
	font-style: normal !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

body.sd .elementor-widget-text-editor {
	font-size: var(--sd-step-0) !important;
	line-height: 1.7 !important;
	color: var(--sd-ink) !important;
}

/* -------------------------------------------------------------- títulos */

/* A família de cada título vem do conteúdo ("Trirong" e "Inter", apelidos das fontes do tema,
   fonts.css). Aqui só se normaliza o que deixava o visual carregado: caixa-alta, espaçamento e cor. */
body.sd h1, body.sd h2, body.sd h3, body.sd h4,
body.sd .elementor-heading-title,
body.sd .c-ip-heading__inner {
	letter-spacing: var(--sd-display-tracking) !important;
	text-transform: none !important;
	font-style: normal !important;
	color: var(--sd-ink) !important;
}

/* Títulos que sempre usam a família de display, com peso e entrelinha de display */
body.sd .c-ip-slider__title,
body.sd .c-product__title,
body.sd .woocommerce-loop-product__title {
	font-family: var(--sd-display) !important;
	font-weight: var(--sd-display-weight) !important;
	letter-spacing: var(--sd-display-tracking) !important;
	text-transform: none !important;
	font-style: normal !important;
	color: var(--sd-ink) !important;
	line-height: 1.15 !important;
}

body.sd .elementor-heading-title,
body.sd .c-ip-heading__inner { font-weight: var(--sd-display-weight); }

/* Títulos grandes levemente fechados, como no manual */
body.sd h1,
body.sd h2,
body.sd h3,
body.sd .elementor-heading-title,
body.sd .c-product__title,
body.sd .c-ip-slider__title-inner { letter-spacing: -0.01em !important; }

/* Destaque do título (<em>): Trirong itálico, na cor do texto */
body.sd em,
body.sd .elementor-heading-title em,
body.sd .c-ip-heading__inner em,
body.sd .c-ip-slider__title-inner em {
	font-family: var(--sd-accent) !important;
	font-style: italic !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	color: inherit;
}

/* Parágrafos escritos em widgets de título com texto justificado: alinhados à esquerda
   (justificado abre "rios" entre palavras, sobretudo no celular) e com linhas confortáveis */
body.sd .c-ip-heading--justify,
body.sd .c-ip-heading--mobile-justify,
body.sd .c-ip-heading--justify .c-ip-heading__inner,
body.sd .c-ip-heading--mobile-justify .c-ip-heading__inner {
	text-align: left !important;
	line-height: 1.75 !important;
}
body.sd .c-ip-heading--justify .c-ip-heading__inner { display: block; max-width: 68ch; }

/* Tamanhos: o conteúdo usa widgets de título também para parágrafos e assinaturas,
   então NÃO há regra genérica de tamanho por h1/h2/h3. Cada widget mantém o tamanho
   definido no Elementor; só elementos revisados um a um recebem tamanho da escala. */

/* Títulos pequenos ("Biocellular"): complemento leve do título principal */
body.sd .c-ip-heading--small .c-ip-heading__inner {
	font-size: var(--sd-step-1) !important;
	font-weight: var(--sd-accent-weight) !important;
	letter-spacing: 0.01em !important;
	color: var(--sd-ink-soft) !important;
}

/* Conteúdo gravado em minúsculas dependia do caixa-alta: garante a inicial maiúscula */
body.sd .c-ip-heading__inner { display: inline-block; }
body.sd .c-ip-heading__inner::first-letter { text-transform: uppercase; }

/* Links dentro de títulos ("Descubra os produtos") */
body.sd .elementor-heading-title a {
	font-family: var(--sd-text) !important;
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}

/* -------------------------------------------------------------- botões em pílula */

body.sd .c-button,
body.sd .button,
body.sd button.button,
body.sd .elementor-button,
body.sd .single_add_to_cart_button,
body.sd .wc-proceed-to-checkout .checkout-button,
body.sd #place_order,
body.sd input[type="submit"],
body.sd .wpcf7-submit {
	font-family: var(--sd-text) !important;
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	font-style: normal !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	/* Sem forçar display: plugins escondem botões fora de contexto (ex.: "Salvar alterações"
	   do Fluid Checkout) e um display !important aqui os faria reaparecer. A altura vem do
	   padding vertical, que centraliza o texto com qualquer display. */
	min-height: 0 !important;
	height: auto !important;
	line-height: 1.3 !important;
	padding: 15px 30px !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border-radius: var(--sd-pill) !important;
	background-color: var(--sd-blue-deep) !important;
	border: 1px solid var(--sd-blue-deep) !important;
	color: var(--sd-white) !important;
	transition: background-color .25s var(--sd-ease), color .25s var(--sd-ease), border-color .25s var(--sd-ease);
}
body.sd .c-button:hover,
body.sd .button:hover,
body.sd .elementor-button:hover,
body.sd .single_add_to_cart_button:hover {
	background-color: var(--sd-ink) !important;
	border-color: var(--sd-ink) !important;
}
body.sd .c-button *,
body.sd .button * { font: inherit !important; letter-spacing: inherit !important; text-transform: uppercase !important; }

/* Contorno fino */
body.sd .c-button--outline {
	background-color: transparent !important;
	border-color: currentColor !important;
	color: var(--sd-ink) !important;
}
body.sd .c-button--outline:hover { background-color: var(--sd-ink) !important; color: var(--sd-white) !important; border-color: var(--sd-ink) !important; }

body.sd :focus-visible {
	outline: 2px solid var(--sd-blue-deep) !important;
	outline-offset: 3px;
}

/* -------------------------------------------------------------- garantias de compra
   Lista com ícone fino, título e texto de apoio (widget HTML na home e no rodapé) */

body.sd .sd-trust {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 32px 0;
	list-style: none;
	border-block: 1px solid var(--sd-line);
}
body.sd .sd-trust li { margin: 0; }
body.sd .sd-trust li,
body.sd .sd-trust a {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	color: inherit;
	text-decoration: none;
}
body.sd .sd-trust svg { flex: none; color: var(--sd-blue); margin-top: 1px; }
body.sd .sd-trust svg,
body.sd .sd-trust svg * { fill: none !important; stroke: currentColor !important; }
body.sd .sd-trust span {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--sd-ink-soft);
}
body.sd .sd-trust strong { font-size: 0.9375rem; font-weight: 500; color: var(--sd-ink); }
body.sd .sd-trust a:hover strong { text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1024px) {
	body.sd .sd-trust { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
}
@media (max-width: 767px) {
	body.sd .sd-trust { grid-template-columns: 1fr; gap: 20px; padding: 28px 0; }
}

@media (prefers-reduced-motion: reduce) {
	body.sd *, body.sd *::after { transition: none !important; }
}
