/*
Theme Name: Hello Elementor Child · Ortoclinic
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child (o tema filho oficial do Hello Elementor, versão 2.0.0) com o código próprio do site da Ortoclinic: tipo Profissionais, Dados da clínica, campos das matérias e páginas, schema, llms.txt e API da agenda. O layout fica todo no Elementor.
Author: Melt Comunicação, a partir do Hello Elementor Child do Elementor Team
Author URI: https://meltcomunicacao.com.br/
Template: hello-elementor
Version: 1.0.19
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/*
 * Estilos ficam nas variáveis, classes e estilos padrão do Elementor.
 * Use este arquivo só para o que o Elementor não alcança.
 */

/* ---------- Links ---------- */

/* Links sem sublinhado em nenhum estado (o reset do Hello Elementor sublinha os que ficam fora do Elementor). */
a,
a:visited,
a:hover,
a:focus,
a:active {
	text-decoration: none;
}

/* ---------- Matérias ---------- */

/* Matéria sem vídeo ou sem médico citado: esconde o bloco correspondente do modelo (classes vêm de inc/campos-materias.php). */
.oc-sem-video .oc-bloco-video,
.oc-sem-medico .oc-bloco-medico {
	display: none !important;
}

/* Texto da matéria: o conteúdo do post, dentro do bloco com a classe oc-conteudo-materia. */
.oc-conteudo-materia p,
.oc-conteudo-materia li {
	margin: 0 0 20px;
	font-size: 16px;
	line-height: 1.75;
	color: var(--texto-corpo, #3d5a61);
}

.oc-conteudo-materia > :last-child {
	margin-bottom: 0;
}

.oc-conteudo-materia h2,
.oc-conteudo-materia h3 {
	margin: 32px 0 12px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--texto-titulo, #17434c);
}

.oc-conteudo-materia blockquote {
	margin: 28px 0;
	padding: 4px 0 4px 20px;
	border-left: 3px solid var(--icone-destaque, #82c2cc);
}

.oc-conteudo-materia blockquote p {
	margin: 0;
	font-size: 18px;
	line-height: 1.65;
	font-style: italic;
	color: var(--texto-titulo, #17434c);
}

.oc-conteudo-materia figure {
	margin: 28px 0;
}

.oc-conteudo-materia img {
	max-width: 100%;
	height: auto;
	border-radius: 22px;
}

.oc-conteudo-materia figcaption {
	margin-top: 8px;
	font-size: 13px;
	color: var(--texto-suave, #5e7479);
}

.oc-conteudo-materia .oc-nota {
	padding: 16px 20px;
	border-radius: 16px;
	background: var(--fundo-tinta, #eaf5f7);
	color: var(--texto-titulo, #17434c);
}

/* ---------- Janela de currículo do profissional ---------- */

/* Texto do cadastro do profissional, colocado pelo assets/curriculo.js no bloco oc-cv-lista do popup. */
.oc-cv-lista ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.oc-cv-lista li {
	position: relative;
	padding: 8px 0 8px 18px;
	border-top: 1px solid var(--borda-sutil, #e8f0f2);
	font-size: 14px;
	line-height: 1.5;
	color: var(--texto-corpo, #3d5a61);
}

.oc-cv-lista li::before {
	content: "";
	position: absolute;
	top: 15.5px;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--icone-destaque, #82c2cc);
}

.oc-cv-lista p {
	margin: 0 0 12px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--texto-corpo, #3d5a61);
}

/* ---------- Popup "Escolher WhatsApp" ---------- */

/* Sem o WhatsApp 2 em Dados da clínica, a segunda linha do popup some (classe no body vem de inc/dados-da-clinica.php). */
.oc-sem-whatsapp-2 .oc-whatsapp-2 {
	display: none !important;
}

/* ---------- Carrossel automático (classe oc-carrossel-auto, ver inc/carrossel.php) ---------- */

.oc-carrossel-auto {
	overflow: hidden;
}

.oc-carrossel-trilho {
	display: flex;
	flex-shrink: 0;
	gap: inherit;
	width: max-content;
	animation: oc-carrossel var(--oc-carrossel-tempo, 40s) linear infinite;
}

.oc-carrossel-auto:hover .oc-carrossel-trilho {
	animation-play-state: paused;
}

@keyframes oc-carrossel {
	to {
		transform: translateX(calc(-50% - var(--oc-carrossel-meio-espaco, 0px)));
	}
}

@media (prefers-reduced-motion: reduce) {
	.oc-carrossel-auto {
		overflow-x: auto;
	}

	.oc-carrossel-trilho {
		animation: none;
	}
}

/* ---------- Perguntas frequentes (componente "Perguntas frequentes") ---------- */

/* Ícone de abrir e fechar: anel com "+"; aberta, a pergunta ganha o círculo teal com "−" e uma sombra. */
.oc-faq-cabecalho {
	list-style: none;
}

.oc-faq-cabecalho::-webkit-details-marker {
	display: none;
}

.oc-faq-item .oc-faq-cabecalho .e-accordion-item-icon-base {
	position: relative;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	border: 1.5px solid var(--icone-anel, #9fcfd8);
	border-radius: 50%;
	transform: none !important;
}

.oc-faq-item .oc-faq-cabecalho .e-accordion-item-icon-base::before,
.oc-faq-item .oc-faq-cabecalho .e-accordion-item-icon-base::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 11px;
	height: 1.5px;
	background: var(--icone-cor, #247281);
	transform: translate(-50%, -50%);
}

.oc-faq-item .oc-faq-cabecalho .e-accordion-item-icon-base::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.oc-faq-item[open] {
	box-shadow: 0 14px 32px rgba(23, 67, 76, 0.1);
}

.oc-faq-item[open] .oc-faq-cabecalho .e-accordion-item-icon-base {
	border-color: var(--icone-cor, #247281);
	background: var(--icone-cor, #247281);
}

.oc-faq-item[open] .oc-faq-cabecalho .e-accordion-item-icon-base::before {
	background: #fff;
}

.oc-faq-item[open] .oc-faq-cabecalho .e-accordion-item-icon-base::after {
	display: none;
}

/* ---------- Corpo clínico: carrossel com setas e filtro por área (assets/equipe.js) ---------- */

.oc-carrossel-manual {
	scrollbar-width: none;
}

.oc-carrossel-manual::-webkit-scrollbar {
	display: none;
}

a[href="#anterior"][aria-disabled="true"],
a[href="#proximo"][aria-disabled="true"] {
	opacity: 0.4;
	pointer-events: none;
}

/* Na fileira da Home (classe oc-sem-selo) o cartão não mostra o selo "Currículo"; a seta do cartão abre o currículo. */
.oc-sem-selo .oc-pro-selo {
	display: none;
}

/* Mídias: a grade de matérias pula a primeira, que já aparece no destaque "Mais recente" (classe oc-sem-primeiro no layout do loop). */
.oc-sem-primeiro > :first-child {
	display: none;
}

/* ---------- Política de privacidade: conteúdo da página, editado no WordPress (blocos com as classes abaixo) ---------- */

.oc-politica {
	box-sizing: border-box;
	width: 100%;
	max-width: 1264px;
	margin: 0 auto;
	padding: 80px 24px;
	display: grid;
	grid-template-columns: 256px minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}

.oc-politica-sumario {
	position: sticky;
	top: 104px;
	padding: 20px;
	border: 1px solid var(--borda-padrao, #e1ecee);
	border-radius: 18px;
}

.oc-politica-sumario > p {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 600;
	color: var(--texto-suave, #5e7479);
}

.oc-politica-sumario ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.oc-politica-sumario a {
	display: block;
	padding: 8px 12px;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--texto-titulo, #17434c);
}

.oc-politica-sumario a:hover {
	background: var(--fundo-sutil, #f4f9fa);
}

.oc-politica-texto {
	max-width: 800px;
	color: var(--texto-corpo, #3d5a61);
}

.oc-politica-texto h2 {
	margin: 56px 0 16px;
	font-size: 28px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.035em;
	color: var(--texto-titulo, #17434c);
	scroll-margin-top: 104px;
}

.oc-politica-texto h2:first-child {
	margin-top: 0;
}

.oc-politica-texto h3 {
	margin: 28px 0 8px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--texto-titulo, #17434c);
}

.oc-politica-texto h4 {
	margin: 20px 0 6px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0;
	color: var(--texto-titulo, #17434c);
}

.oc-politica-texto p,
.oc-politica-texto li {
	font-size: 16px;
	line-height: 1.6;
}

.oc-politica-texto p {
	margin: 0 0 14px;
}

.oc-politica-texto ul,
.oc-politica-texto ol {
	margin: 0 0 16px;
	padding-left: 24px;
}

.oc-politica-texto li + li {
	margin-top: 6px;
}

.oc-politica-texto a {
	color: var(--texto-marca, #247281);
	font-weight: 600;
}

@media (max-width: 767px) {
	.oc-politica {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
		padding: 40px 20px 48px;
	}

	.oc-politica-sumario {
		position: static;
	}

	.oc-politica-texto h2 {
		font-size: 24px;
		margin-top: 40px;
	}
}

/* ---------- Aviso de cookies (Pressidium) ---------- */

/* Mesma fonte do site no aviso e na janela de preferências. */
.pressidium-cc-theme {
	--cc-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
