/* aw-inst — home.css — Landing "Pós-graduação em Direito Médico"
   ---------------------------------------------------------------------------
   Portado de um bundle de design (componente reativo React/dc-runtime) para
   o contrato do plugin: PHP server-side + CSS/JS vanilla, sem build.

   A MAIOR PARTE do visual vive em estilos inline dentro das seções
   (paginas/home/NN-*.php) — preservados verbatim do design para fidelidade
   pixel-a-pixel. Aqui ficam só as coisas que NÃO podem ser inline:
     • base da página (escopada em .aw-inst-pagina-home)
     • @property / @keyframes / animações
     • classes utilitárias .pdm-* (namespace único = isolado do tema/Elementor)
     • grids responsivos (bento / nums / dif / depoimentos) + media queries
     • drawer mobile + pillars do hero + colunas de depoimentos
     • estados :hover (convertidos das diretivas style-hover do design)

   Animações só com transform/opacity (PERFORMANCE.md §4). Reduced-motion no fim. */

/* ============================ BASE ============================ */
html { scroll-behavior: smooth; }
/* canvas full-width: zera a margem do body (só carrega em páginas da landing) */
body { margin: 0; }
body.aw-inst-canvas { background: #F6F3EC; }
.aw-inst-pagina-home {
	font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	color: #0B1622;
	background: #F6F3EC;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	line-height: 1.5;
}
.aw-inst-pagina-home *,
.aw-inst-pagina-home *::before,
.aw-inst-pagina-home *::after { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
.aw-inst-pagina-home a { text-decoration: none; }
.aw-inst-pagina-home img { max-width: 100%; }
.aw-inst-pagina-home button { font-family: inherit; }
/* o <main> do core não deve introduzir espaçamento entre as seções */
.aw-inst-pagina-home .aw-inst-main { display: block; }

/* ============================ KEYFRAMES / @property ============================ */
@property --pdm-angle { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes pdm-rot     { to { --pdm-angle: 360deg; } }
@keyframes pdm-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes pdm-float   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-11px); } }
@keyframes pdm-grid    { from { transform: translateY(0); } to { transform: translateY(64px); } }
@keyframes pdm-pulse   { 0%,100% { opacity: .45; } 50% { opacity: .85; } }
@keyframes pdm-up      { from { opacity: 0; translate: 0 28px; } to { opacity: 1; translate: 0 0; } }
@keyframes pdm-rise    { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes pdm-vscroll { from { transform: translateY(0); } to { transform: translateY(-50%); } }
@keyframes pdm-wapulse   { 0% { box-shadow: 0 12px 28px rgba(0,0,0,.3),0 0 0 0 rgba(37,211,102,.55); } 70% { box-shadow: 0 12px 28px rgba(0,0,0,.3),0 0 0 22px rgba(37,211,102,0); } 100% { box-shadow: 0 12px 28px rgba(0,0,0,.3),0 0 0 0 rgba(37,211,102,0); } }
@keyframes pdm-wapulse-m { 0% { box-shadow: 0 8px 20px rgba(37,211,102,.5),0 0 0 0 rgba(37,211,102,.5); } 70% { box-shadow: 0 8px 20px rgba(37,211,102,.5),0 0 0 15px rgba(37,211,102,0); } 100% { box-shadow: 0 8px 20px rgba(37,211,102,.5),0 0 0 0 rgba(37,211,102,0); } }

/* ============================ COMPONENT CLASSES ============================ */
/* conic-gradient girando atrás do CTA do hero */
.pdm-ring { background: conic-gradient(from var(--pdm-angle),rgba(193,154,61,0) 0%,#C19A3D 16%,#F07A12 30%,rgba(193,154,61,0) 52%,rgba(193,154,61,0) 100%); animation: pdm-rot 4.5s linear infinite; border-radius: 999px; padding: 2px; display: inline-flex; }
/* grade retrô em perspectiva (fundo do hero) */
.pdm-retro { position: absolute; inset: 0; overflow: hidden; perspective: 220px; opacity: .6; pointer-events: none; }
.pdm-retro > div { position: absolute; inset: 0; transform: rotateX(62deg); }
.pdm-retro > div > div { position: absolute; inset: 0; height: 340vh; width: 600vw; margin-left: -200%; transform-origin: 100% 0 0; background-image: linear-gradient(to right,rgba(193,154,61,.20) 1px,transparent 0),linear-gradient(to bottom,rgba(193,154,61,.20) 1px,transparent 0); background-size: 64px 64px; animation: pdm-grid 16s linear infinite; }
/* grids */
.pdm-bento { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.pdm-bento > .sp2 { grid-column: span 2; }
.pdm-nums { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.pdm-nums > .sp2 { grid-column: span 2; grid-row: span 2; }
.pdm-dif { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.pdm-dif > .w2 { grid-column: span 2; }
@media (max-width: 860px) {
	.pdm-bento { grid-template-columns: repeat(2,1fr); }
	.pdm-bento > .sp2 { grid-column: span 2; }
	.pdm-nums { grid-template-columns: repeat(2,1fr); }
	.pdm-nums > .sp2 { grid-column: span 2; grid-row: auto; }
	.pdm-dif { grid-template-columns: repeat(2,1fr); }
	.pdm-dif > .w2 { grid-column: span 2; }
}
@media (max-width: 520px) {
	.pdm-bento, .pdm-nums, .pdm-dif { grid-template-columns: 1fr; }
	.pdm-bento > .sp2, .pdm-nums > .sp2, .pdm-dif > .w2 { grid-column: auto; grid-row: auto; }
}
/* drawer mobile */
.pdm-drawer-scrim { position: fixed; inset: 0; z-index: 70; background: rgba(8,16,28,.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; pointer-events: none; }
/* sem box-shadow quando fechado: o painel fica fora da tela (translateX 105%) e
   sua sombra vazaria pela borda direita do site inteiro. Só com o drawer aberto. */
.pdm-drawer-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 71; width: min(86vw,360px); background: linear-gradient(165deg,#0C1D34,#16304F); border-left: 1px solid rgba(193,154,61,.28); display: flex; flex-direction: column; transform: translateX(105%); }
body.pdm-drawer-open .pdm-drawer-scrim { opacity: 1; pointer-events: auto; }
body.pdm-drawer-open .pdm-drawer-panel { transform: translateX(0); box-shadow: -24px 0 60px rgba(0,0,0,.5); }
/* desktop vs mobile toggles */
.pdm-desk { display: flex; }
.pdm-mob { display: none; }
@media (max-width: 880px) {
	.pdm-desk { display: none !important; }
	.pdm-mob { display: flex !important; }
	.aw-inst-pagina-home .pdm-page-pad { padding-bottom: 100px; }
}
/* entrance / scroll reveal */
.pdm-hero-fu { animation: pdm-up .85s cubic-bezier(.22,1,.36,1) both; }
.pdm-bento > *, .pdm-stagger > * { animation: pdm-up .7s cubic-bezier(.22,1,.36,1) both; animation-timeline: view(); animation-range: entry 2% cover 34%; }
/* hero skyline pillars */
.pdm-pillars { position: absolute; left: 0; right: 0; bottom: 0; height: 150px; display: flex; align-items: flex-end; gap: 2px; pointer-events: none; }
.pdm-pillars > i { flex: 1; background: #091627; transform-origin: bottom; animation: pdm-rise .95s cubic-bezier(.22,1,.36,1) both; box-shadow: inset 0 1px 0 rgba(193,154,61,.22); }
/* testimonials columns (marquee vertical) */
.pdm-tcols { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.pdm-tmask { position: relative; overflow: hidden; height: 560px; -webkit-mask-image: linear-gradient(180deg,transparent,#000 11%,#000 89%,transparent); mask-image: linear-gradient(180deg,transparent,#000 11%,#000 89%,transparent); }
.pdm-tcol { display: flex; flex-direction: column; gap: 18px; animation: pdm-vscroll linear infinite; will-change: transform; }
.pdm-tcols:hover .pdm-tcol { animation-play-state: paused; }
@media (max-width: 860px) { .pdm-tcols { grid-template-columns: repeat(2,1fr); } .pdm-tcols > .pdm-tmask:nth-child(3) { display: none; } }
@media (max-width: 560px) { .pdm-tcols { grid-template-columns: 1fr; } .pdm-tcols > .pdm-tmask:nth-child(2) { display: none; } .pdm-tmask { height: 480px; } }
/* whatsapp floating pulse */
.pdm-wa-float  { animation: pdm-wapulse 2.2s cubic-bezier(.66,0,0,1) infinite; }
.pdm-wa-floatm { animation: pdm-wapulse-m 2.2s cubic-bezier(.66,0,0,1) infinite; }

/* ============================ LOGOS (Anhanguera) ============================ */
/* aw_inst_img() não aceita altura inline; controlamos por classe. width:auto
   mantém a proporção a partir do width/height intrínsecos (2100x483). */
.aw-inst-pagina-home .pdm-anh { height: 16px; width: auto; display: block; }
.aw-inst-pagina-home .pdm-anh-foot { height: 26px; width: auto; display: block; }

/* ============================ HOVER STATES ============================ */
/* convertidos das diretivas style-hover do design. A classe .pdm-hv adiciona a
   transição; a variação define o efeito. Aplicadas no markup das seções. */
.pdm-hv { transition: transform .22s ease, box-shadow .22s ease, filter .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.pdm-hv-white:hover  { color: #fff; }
.pdm-hv-bright:hover { filter: brightness(1.08); }
.pdm-hv-dim:hover    { filter: brightness(.96); }
.pdm-hv-lift5:hover  { box-shadow: 0 18px 40px rgba(16,36,63,.13); transform: translateY(-5px); }
.pdm-hv-lift4:hover  { box-shadow: 0 16px 36px rgba(16,36,63,.12); transform: translateY(-4px); }
.pdm-hv-lift3:hover  { box-shadow: 0 16px 34px rgba(16,36,63,.1);  transform: translateY(-3px); }
.pdm-hv-up5:hover    { transform: translateY(-5px); }
.pdm-hv-up3:hover    { transform: translateY(-3px); }
.pdm-hv-scale:hover  { transform: scale(1.07); }
.pdm-hv-sh:hover     { box-shadow: 0 10px 26px rgba(16,36,63,.08); }
.pdm-hv-w14:hover    { background: rgba(255,255,255,.14); }
.pdm-hv-w06:hover    { background: rgba(255,255,255,.06); }
.pdm-hv-gold:hover   { background: #C19A3D; color: #0B1622; border-color: #C19A3D; }

/* ============================ INTERAÇÕES (controladas pelo home.js) ============================ */
/* underline ativo do menu (scroll-spy) — o dot já tem estilo inline no markup */
.aw-inst-pagina-home .pdm-navdot { opacity: 0; transition: opacity .25s ease; }
.aw-inst-pagina-home .pdm-navlink.is-active .pdm-navdot { opacity: 1; }
/* glow do item ativo no bottom-nav mobile */
.aw-inst-pagina-home .pdm-bnav-dot { opacity: 0; transition: opacity .25s ease; }
.aw-inst-pagina-home .pdm-navlink.is-active .pdm-bnav-dot { opacity: 1; }
/* acordeões (grade + FAQ): grid-template-rows 0fr->1fr anima a altura sem JS de layout */
.aw-inst-pagina-home [data-acc] .pdm-acc-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .32s ease; }
.aw-inst-pagina-home [data-acc] .pdm-acc-body > .pdm-acc-inner { overflow: hidden; min-height: 0; }
.aw-inst-pagina-home [data-acc].is-open .pdm-acc-body { grid-template-rows: 1fr; }
.aw-inst-pagina-home [data-acc] .pdm-acc-chev { transition: transform .3s ease; }
.aw-inst-pagina-home [data-acc].is-open .pdm-acc-chev { transform: rotate(180deg); }

/* ============================ REDUCED MOTION ============================ */
@media (prefers-reduced-motion: reduce) {
	.pdm-tcol { animation: none; }
	.pdm-hero-fu, .pdm-bento > *, .pdm-stagger > * { animation: none; opacity: 1; translate: none; }
	.pdm-pillars > i { animation: none; }
	.pdm-wa-float, .pdm-wa-floatm { animation: none; }
	.pdm-retro > div > div, .pdm-ring { animation: none; }
	html { scroll-behavior: auto; }
}
