/*!
Theme Name:        Protética Dente — Kadence Child
Theme URI:         https://www.proteticadente.com.br
Description:       Child theme do Kadence para o Instituto Protética Dente. Stack do MVP conforme ADR-043.
Author:            Baruk Connect (Wellington Barros)
Author URI:        https://www.proteticadente.com.br
Template:          kadence
Version:           0.1.0
Requires at least: 6.0
Requires PHP:      8.2
License:           Proprietary
Text Domain:       protetica
*/

/* ============================================================================
   DESIGN TOKENS — paleta institucional Protética Dente (ADR-037)
   ========================================================================= */
:root {
    --pd-blue-dark:  #003366;
    --pd-blue:       #0077CC;
    --pd-blue-light: #2A78D5;
    --pd-black:      #0A0A0A;
    --pd-white:      #FFFFFF;
    --pd-bg:         #F4F6F9;
    --pd-text:       #333333;
    --pd-ash:        #9CA3AF;

    --pd-font-display: 'Anton', Impact, 'Arial Narrow', sans-serif;
    --pd-font-body:    'Inter', -apple-system, 'Segoe UI', Roboto, sans-serif;

    --pd-radius-sm: 6px;
    --pd-radius-md: 12px;

    --pd-shadow-sm: 0 1px 2px rgba(0, 51, 102, 0.06);
    --pd-shadow-md: 0 4px 12px rgba(0, 51, 102, 0.10);
}

/* ============================================================================
   FONTES SELF-HOSTED (ADR-028)
   Arquivos em assets/fonts/. Baixar de Google Fonts → converter para woff2.
   ========================================================================= */
@font-face {
    font-family: 'Anton';
    src: url('assets/fonts/Anton-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('assets/fonts/Inter-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('assets/fonts/Inter-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('assets/fonts/Inter-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('assets/fonts/Inter-ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

/* ============================================================================
   ESTILOS GLOBAIS MÍNIMOS
   ========================================================================= */
body {
    font-family: var(--pd-font-body);
    color: var(--pd-text);
    background: var(--pd-white);
}

h1, h2, .pd-display {
    font-family: var(--pd-font-display);
    font-weight: 400;
    letter-spacing: 0.01em;
}

/* ============================================================================
   DESIGN SYSTEM — LANDING PAGES (mobile first)
   Classes pd-* aplicadas pelo LP Engine (scripts/lib/lp-renderers.php).
   Tokens extras + escala tipográfica + chrome do template single-landing_page.
   ========================================================================= */
:root {
    --pd-whatsapp:   #25D366;
    --pd-whatsapp-d: #1da851;
    --pd-blue-deep:  #00264d;
    --pd-line:       #e2e8f0;
    --pd-radius-lg:  20px;
    --pd-shadow-lg:  0 16px 48px rgba(0, 38, 77, 0.16);
    --pd-maxw:       1200px;
    --pd-maxw-text:  760px;

    /* === UI POLISH SYSTEM v1.0 — tokens canônicos ===
       Documentação: UI_POLISH_SYSTEM.md (raiz do projeto) */

    /* Typography scale — fluid (clamp) */
    --pd-text-xs:    0.78rem;
    --pd-text-sm:    0.875rem;
    --pd-text-base:  1rem;
    --pd-text-md:    1.125rem;
    --pd-text-lg:    1.25rem;
    --pd-h4:         clamp(1.05rem, 1.6vw, 1.22rem);
    --pd-h3:         clamp(1.18rem, 2vw, 1.5rem);
    --pd-h2:         clamp(1.5rem, 3vw, 2rem);
    --pd-h1:         clamp(1.85rem, 4vw, 2.65rem);
    --pd-display:    clamp(2.2rem, 5.5vw, 3.5rem);

    /* Line-heights */
    --pd-lh-tight:    1.18;
    --pd-lh-heading:  1.28;
    --pd-lh-body:     1.65;
    --pd-lh-spacious: 1.78;

    /* Spacing system — 8-point grid */
    --pd-space-1:  4px;
    --pd-space-2:  8px;
    --pd-space-3:  12px;
    --pd-space-4:  16px;
    --pd-space-5:  24px;
    --pd-space-6:  32px;
    --pd-space-7:  40px;
    --pd-space-8:  56px;
    --pd-space-9:  72px;
    --pd-space-10: 96px;
    --pd-space-11: 128px;

    /* Containers */
    --pd-container-text:    720px;
    --pd-container-content: 1080px;
    --pd-container-wide:    1200px;
    --pd-container-max:     1440px;

    /* Horizontal padding por viewport */
    --pd-pad-x-mobile:  24px;
    --pd-pad-x-tablet:  32px;
    --pd-pad-x-desktop: 48px;

    /* Card tokens */
    --pd-card-padding:        28px;
    --pd-card-padding-tight:  20px;
    --pd-card-gap-internal:   var(--pd-space-4);
    --pd-card-shadow-hover:   var(--pd-shadow-md);

    /* CTA tokens */
    --pd-btn-padding-y:    12px;
    --pd-btn-padding-x:    24px;
    --pd-btn-radius:       999px;
    --pd-btn-font-size:    var(--pd-text-base);
    --pd-btn-font-weight:  600;
    --pd-btn-transition:   all 0.18s ease;

    /* Transitions */
    --pd-transition-fast:   0.18s ease;
    --pd-transition-base:   0.25s ease;
    --pd-transition-slow:   0.35s ease;

    /* Breakpoints (referência — não usáveis em @media, apenas docs) */
    --pd-bp-sm:   480px;
    --pd-bp-md:   768px;
    --pd-bp-lg:   1024px;
    --pd-bp-xl:   1280px;
}

/* ---- Reset leve do contexto da LP ---- */
body.pd-lp {
    margin: 0;
    background: var(--pd-white);
    -webkit-font-smoothing: antialiased;
}
/* Conteúdo: imagens fluidas. NÃO afeta o chrome (logos) nem o bg do core/cover. */
body.pd-lp .pd-lp-main img:not(.wp-block-cover__image-background) {
    max-width: 100%;
    height: auto;
    display: block;
}
body.pd-lp .pd-lp-main { overflow-x: hidden; }

/* ---- HEADER minimalista da LP (template single-landing_page.php) ---- */
body.pd-lp .pd-lp-header {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 20px;
    background: var(--pd-white);
    border-bottom: 1px solid var(--pd-line);
    box-shadow: var(--pd-shadow-sm);
}
body.pd-lp .pd-lp-logo { display: inline-flex; }
body.pd-lp .pd-lp-logo img {
    height: 40px;
    width: auto;
    max-width: 220px;
    display: block;
}
.pd-lp-header-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--pd-font-body);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    color: var(--pd-white);
    background: var(--pd-whatsapp);
    padding: 10px 18px;
    border-radius: var(--pd-radius-sm);
    transition: background .2s ease;
}
.pd-lp-header-cta:hover { background: var(--pd-whatsapp-d); }

/* ---- FOOTER da LP ---- */
body.pd-lp .pd-lp-footer {
    background: var(--pd-blue-deep);
    color: rgba(255,255,255,0.82);
    padding: 48px 20px 32px;
    text-align: center;
    font-size: 0.9rem;
    line-height: 1.7;
}
body.pd-lp .pd-lp-footer img {
    height: 50px;
    width: auto;
    max-width: 240px;
    margin: 0 auto 20px;
    display: block;
}
.pd-lp-footer a { color: var(--pd-white); text-decoration: none; font-weight: 600; }
.pd-lp-footer .pd-lp-footer-sep { color: rgba(255,255,255,0.3); margin: 0 8px; }
.pd-lp-footer small { display: block; margin-top: 18px; color: rgba(255,255,255,0.5); font-size: 0.78rem; }

/* ============================================================================
   SEÇÕES — base e ritmo vertical
   ========================================================================= */
.pd-section {
    padding: 56px 20px;
}
.pd-section > *,
.pd-section .wp-block-cover__inner-container > * {
    max-width: var(--pd-maxw);
    margin-left: auto;
    margin-right: auto;
}
.pd-section h2 {
    font-family: var(--pd-font-display);
    font-size: clamp(1.7rem, 5vw, 2.6rem);
    line-height: 1.12;
    color: var(--pd-blue-dark);
    margin: 0 0 8px;
    text-align: center;
}
.pd-section h3 {
    font-family: var(--pd-font-body);
    font-weight: 700;
    color: var(--pd-blue-dark);
}
.pd-section p { line-height: 1.7; }
.pd-section .pd-section-intro {
    max-width: var(--pd-maxw-text);
    text-align: center;
    color: #414b54;
    font-size: 1.08rem;
    margin: 0 auto 28px;
}
/* Alternância de fundo entre seções */
.pd-section--para-quem,
.pd-section--instrutor,
.pd-section--faq { background: var(--pd-bg); }
.pd-section--processo { background: var(--pd-blue-deep); }
.pd-section--processo h2,
.pd-section--processo .pd-section-intro { color: var(--pd-white); }
.pd-section--processo .pd-section-intro { color: rgba(255,255,255,0.8); }

/* Listas (para-quem, aprendizado, estrutura) */
.pd-section .wp-block-list {
    max-width: var(--pd-maxw-text);
    list-style: none;
    padding: 0;
    margin: 0 auto;
    display: grid;
    gap: 12px;
}
.pd-section .wp-block-list li {
    position: relative;
    padding: 14px 16px 14px 46px;
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-sm);
    box-shadow: var(--pd-shadow-sm);
}
.pd-section .wp-block-list li::before {
    content: "";
    position: absolute;
    left: 16px; top: 50%;
    width: 16px; height: 16px;
    margin-top: -8px;
    border-radius: 50%;
    background: var(--pd-blue);
    box-shadow: inset 0 0 0 3px var(--pd-white), 0 0 0 1px var(--pd-blue);
}

/* Imagens de apoio */
.pd-image {
    border-radius: var(--pd-radius-md);
    overflow: hidden;
    box-shadow: var(--pd-shadow-md);
    margin: 0 auto 28px;
    max-width: 760px;
}
.pd-image img { width: 100%; }

/* ============================================================================
   HERO (core/cover)
   ========================================================================= */
.pd-section--hero {
    text-align: center;
    padding: 0;
}
.pd-section--hero .wp-block-cover__inner-container {
    padding: 96px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.pd-section--hero .pd-pre-headline {
    color: #bcd6f0;
    font-weight: 700;
    letter-spacing: 0.12em;
    font-size: 0.8rem;
    text-transform: uppercase;
    margin: 0 0 10px;
}
.pd-section--hero .pd-hero-headline {
    font-family: var(--pd-font-display);
    color: var(--pd-white);
    font-size: clamp(2.4rem, 8vw, 4.6rem);
    line-height: 1.04;
    margin: 0 0 14px;
    text-shadow: 0 2px 24px rgba(0,0,0,0.25);
}
.pd-section--hero .pd-hero-subheadline {
    color: #ffffff;
    font-size: clamp(1rem, 2.4vw, 1.22rem);
    max-width: 640px;
    margin: 0 auto 26px;
    text-shadow: 0 1px 14px rgba(0, 0, 0, 0.55);
}
.pd-section--hero .pd-pre-headline {
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

/* ============================================================================
   BOTÕES — fortes
   ========================================================================= */
.wp-block-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
    margin-top: 8px;
}
.wp-block-button__link {
    font-family: var(--pd-font-body);
    font-weight: 700;
    font-size: 1rem;
    padding: 16px 30px;
    border-radius: var(--pd-radius-sm);
    text-decoration: none;
    display: inline-block;
    transition: transform .15s ease, box-shadow .15s ease, background .2s ease;
    line-height: 1.2;
}
/* fill = azul institucional sólido */
.wp-block-button.is-style-fill .wp-block-button__link {
    background: var(--pd-blue);
    color: var(--pd-white);
    box-shadow: 0 8px 20px rgba(0, 119, 204, 0.35);
}
.wp-block-button.is-style-fill .wp-block-button__link:hover {
    background: var(--pd-blue-light);
    transform: translateY(-2px);
}
/* outline */
.wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent;
    color: var(--pd-white);
    border: 2px solid rgba(255,255,255,0.7);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: rgba(255,255,255,0.12);
    border-color: var(--pd-white);
}
/* fora do hero (LP + institucional) e seções escuras, o outline fica azul.
   Lista de exceções precisa cobrir TODAS as seções com fundo escuro/cover
   onde o botão outline deve permanecer branco — caso contrário o texto
   azul-escuro fica invisível sobre o overlay.
   Usa [class*="is-style-outline"] para casar tanto .is-style-outline
   quanto a variante .is-style-outline--1 que o Kadence injeta. */
.pd-section:not(.pd-section--hero):not(.pd-section--hero-institucional):not(.pd-section--processo):not(.pd-section--cta-final)
    .wp-block-button[class*="is-style-outline"] .wp-block-button__link {
    color: var(--pd-blue-dark);
    border-color: var(--pd-blue);
}

/* Hero institucional — outline branco sobre overlay azul-escuro.
   Mesmo padrão [class*="is-style-outline"] + !important para vencer
   a variante Kadence --1/--2 e o inline color. */
body.pd-institutional .pd-section--hero-institucional .wp-block-button[class*="is-style-outline"] > a,
body.pd-institutional .pd-section--hero-institucional .wp-block-button[class*="is-style-outline"] > a.wp-block-button__link,
body.pd-institutional .pd-section--hero-institucional .wp-block-buttons .wp-block-button[class*="is-style-outline"] .wp-block-button__link {
    background: transparent !important;
    color: var(--pd-white) !important;
    border: 2px solid rgba(255, 255, 255, 0.7) !important;
}
body.pd-institutional .pd-section--hero-institucional .wp-block-button[class*="is-style-outline"] > a:hover,
body.pd-institutional .pd-section--hero-institucional .wp-block-button[class*="is-style-outline"] > a.wp-block-button__link:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: var(--pd-white) !important;
}
/* WhatsApp */
.wp-block-button.pd-btn-whatsapp .wp-block-button__link {
    background: var(--pd-whatsapp) !important;
    color: var(--pd-white) !important;
    border-color: var(--pd-whatsapp) !important;
    box-shadow: 0 8px 20px rgba(37, 211, 102, 0.35);
}
.wp-block-button.pd-btn-whatsapp .wp-block-button__link:hover {
    background: var(--pd-whatsapp-d) !important;
    transform: translateY(-2px);
}

/* ============================================================================
   PROCESSO — cards numerados
   ========================================================================= */
.pd-section--processo .pd-step {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: var(--pd-radius-md);
    padding: 24px 22px;
    margin: 0 auto 14px;
    max-width: var(--pd-maxw-text);
}
.pd-section--processo .pd-step-number {
    font-family: var(--pd-font-display);
    font-size: 2.2rem;
    color: var(--pd-blue-light);
    margin: 0 0 4px;
    line-height: 1;
}
.pd-section--processo .pd-step-title { color: var(--pd-white); margin: 0 0 6px; font-size: 1.15rem; }
.pd-section--processo .pd-step p { color: rgba(255,255,255,0.78); margin: 0; }

/* ============================================================================
   DIFERENCIAIS — cards
   ========================================================================= */
.pd-section--diferenciais .pd-card {
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    padding: 26px 22px;
    box-shadow: var(--pd-shadow-sm);
    border-top: 4px solid var(--pd-blue);
    margin-bottom: 14px;
}
.pd-section--diferenciais .pd-card-title { margin: 0 0 8px; font-size: 1.12rem; }
.pd-section--diferenciais .pd-card p { margin: 0; color: #55606b; }

/* ============================================================================
   INSTRUTOR
   ========================================================================= */
.pd-section--instrutor { text-align: center; }
.pd-section--instrutor .pd-instructor-name {
    color: var(--pd-blue);
    font-size: 1.3rem;
    margin: 18px 0 6px;
}
.pd-section--instrutor p { max-width: var(--pd-maxw-text); margin-left: auto; margin-right: auto; }

/* ============================================================================
   ESTRUTURA — ficha técnica
   ========================================================================= */
.pd-section--estrutura .wp-block-list li {
    padding-left: 16px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.pd-section--estrutura .wp-block-list li::before { display: none; }
.pd-section--estrutura .wp-block-list li strong { color: var(--pd-blue-dark); }

/* ============================================================================
   FAQ — accordion (core/details)
   ========================================================================= */
.pd-section--faq .wp-block-details {
    max-width: var(--pd-maxw-text);
    margin: 0 auto 12px;
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-sm);
    box-shadow: var(--pd-shadow-sm);
    padding: 4px 20px;
}
.pd-section--faq .wp-block-details summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--pd-blue-dark);
    padding: 16px 0;
    list-style: none;
    position: relative;
    padding-right: 28px;
}
.pd-section--faq .wp-block-details summary::-webkit-details-marker { display: none; }
.pd-section--faq .wp-block-details summary::after {
    content: "+";
    position: absolute;
    right: 0; top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
    color: var(--pd-blue);
    font-family: var(--pd-font-body);
}
.pd-section--faq .wp-block-details[open] summary::after { content: "–"; }
.pd-section--faq .wp-block-details p { margin: 0 0 16px; color: #55606b; }

/* ============================================================================
   CTA FINAL
   ========================================================================= */
.pd-section--cta-final {
    background: linear-gradient(135deg, var(--pd-blue-dark), var(--pd-blue));
    text-align: center;
}
.pd-section--cta-final h2 { color: var(--pd-white); }
.pd-section--cta-final .pd-section-intro { color: rgba(255,255,255,0.88); }
/* Specificity override — body.pd-institutional .pd-section .pd-section-intro
   (linha 1421) força #3a4651 (cinza escuro) que fica ilegível sobre o gradient
   azul do cta-final. Subimos a especificidade aqui para garantir branco legível. */
body.pd-institutional .pd-section.pd-section--cta-final .pd-section-intro,
body.pd-institutional .pd-section--cta-final .pd-section-intro,
body.pd-institutional .pd-section--cta-final p.pd-section-intro {
    color: rgba(255,255,255,0.95) !important;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.18);
}

/* CTA outline branco premium em fundo azul (cta-final) — discreto, sofisticado, legível.
   Seletores múltiplos para sobrescrever Kadence is-style-outline--2 (inline color). */
.pd-section--cta-final .wp-block-button[class*="is-style-outline"] > a,
.pd-section--cta-final .wp-block-button[class*="is-style-outline"] > a.wp-block-button__link,
.pd-section--cta-final .wp-block-buttons .wp-block-button[class*="is-style-outline"] .wp-block-button__link {
    background: transparent !important;
    background-color: transparent !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,0.7) !important;
    border-color: rgba(255,255,255,0.7) !important;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.pd-section--cta-final .wp-block-button[class*="is-style-outline"] > a:hover,
.pd-section--cta-final .wp-block-button[class*="is-style-outline"] > a.wp-block-button__link:hover {
    background: rgba(255,255,255,0.1) !important;
    background-color: rgba(255,255,255,0.1) !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
}
.pd-section--cta-final .pd-form-placeholder {
    margin-top: 22px;
    font-size: 0.82rem;
    color: rgba(255,255,255,0.55);
    font-style: italic;
}

/* Formulário de captação (Fluent Forms) embutido no CTA final */
.pd-section--cta-final .pd-lead-form {
    max-width: 480px;
    margin: 30px auto 0;
    background: var(--pd-white);
    border-radius: var(--pd-radius-md);
    padding: 30px 26px;
    box-shadow: var(--pd-shadow-lg);
    text-align: left;
}
.pd-section--cta-final .pd-lead-form label {
    color: var(--pd-blue-dark);
    font-weight: 600;
    font-size: 0.92rem;
}
.pd-section--cta-final .pd-lead-form input[type="text"],
.pd-section--cta-final .pd-lead-form input[type="email"],
.pd-section--cta-final .pd-lead-form input[type="tel"] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-sm);
    font-size: 1rem;
    font-family: var(--pd-font-body);
    box-sizing: border-box;
}
.pd-section--cta-final .pd-lead-form input:focus {
    outline: none;
    border-color: var(--pd-blue);
    box-shadow: 0 0 0 3px rgba(0,119,204,0.12);
}
.pd-section--cta-final .pd-lead-form .ff-btn-submit,
.pd-section--cta-final .pd-lead-form button[type="submit"] {
    width: 100%;
    background: var(--pd-blue);
    color: #fff;
    font-weight: 700;
    padding: 15px;
    border: none;
    border-radius: var(--pd-radius-sm);
    font-size: 1.02rem;
    cursor: pointer;
    transition: background .2s ease;
}
.pd-section--cta-final .pd-lead-form .ff-btn-submit:hover,
.pd-section--cta-final .pd-lead-form button[type="submit"]:hover {
    background: var(--pd-blue-light);
}
.pd-section--cta-final .pd-lead-form .ff-message-success {
    color: var(--pd-blue-dark);
    font-weight: 600;
}
.pd-section--cta-final .pd-lead-form .ff-el-group { margin-bottom: 16px; }

/* ============================================================================
   GRID — processo (steps) e diferenciais (cards)
   ========================================================================= */
.pd-grid {
    display: grid;
    gap: 16px;
    max-width: var(--pd-maxw);
    margin: 0 auto;
}
.pd-grid .pd-step,
.pd-grid .pd-card { margin-bottom: 0; }

/* ============================================================================
   BREAKPOINTS
   ========================================================================= */
@media (min-width: 768px) {
    .pd-section { padding: 84px 32px; }
    .pd-section h2 { margin-bottom: 12px; }
    .pd-section--hero .wp-block-cover__inner-container { padding: 140px 32px; }

    .pd-grid--steps { grid-template-columns: repeat(2, 1fr); }
    .pd-grid--cards { grid-template-columns: repeat(2, 1fr); }

    .pd-section--estrutura .wp-block-list { max-width: 560px; }
}

@media (min-width: 1024px) {
    .pd-grid--steps { grid-template-columns: repeat(4, 1fr); }
    .pd-grid--cards { grid-template-columns: repeat(3, 1fr); }
    .pd-grid--steps .pd-step { padding: 28px 22px; }
}

/* ============================================================================
   REFINO VISUAL — GO-LIVE (v0.3.x)
   Foto do instrutor · CTA mais forte · botão flutuante de WhatsApp (mobile)
   ========================================================================= */

/* --- Avatar do instrutor (seção "Quem conduz o curso") --- */
.pd-section--instrutor .pd-instructor-photo {
    width: 180px;
    height: 180px;
    margin: 8px auto 4px;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 38, 77, 0.22);
    border: 4px solid var(--pd-white);
}
.pd-section--instrutor .pd-instructor-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.pd-section--instrutor .pd-instructor-name { margin-top: 14px; }

/* --- CTA mais forte (botão primário preenchido) --- */
.wp-block-button.is-style-fill .wp-block-button__link {
    font-size: 1.06rem;
    padding: 18px 38px;
    letter-spacing: 0.005em;
    box-shadow: 0 10px 26px rgba(0, 119, 204, 0.42);
}
/* No hero e no CTA final o botão primário é o herói da página */
.pd-section--hero .wp-block-button.is-style-fill .wp-block-button__link,
.pd-section--cta-final .wp-block-button.is-style-fill .wp-block-button__link {
    font-size: 1.14rem;
    padding: 20px 44px;
}
.wp-block-button.pd-btn-whatsapp .wp-block-button__link {
    padding: 18px 34px;
}

/* --- Botão flutuante de WhatsApp (mobile) — alta conversão, baixo custo --- */
.pd-wa-float {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 90;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--pd-whatsapp);
    color: #fff;
    font-family: var(--pd-font-body);
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
    padding: 14px 20px;
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.45);
    transition: transform .15s ease, background .2s ease;
}
.pd-wa-float:hover { background: var(--pd-whatsapp-d); transform: translateY(-2px); }
.pd-wa-float svg { width: 22px; height: 22px; fill: currentColor; }
/* Em telas grandes o botão flutuante é dispensável (o header já tem CTA fixo) */
@media (min-width: 900px) {
    .pd-wa-float { display: none; }
}

/* ============================================================================
   HUB INSTITUCIONAL v0.5 — chrome premium + responsividade corrigida
   Aplicado quando body.pd-institutional (template-institutional.php).
   Carrega DEPOIS dos CSS Kadence (kadence-global, header, content, footer).
   ========================================================================= */
body.pd-institutional {
    margin: 0;
    background: var(--pd-white);
    -webkit-font-smoothing: antialiased;
    font-family: var(--pd-font-body);
    color: var(--pd-text);
}
body.pd-institutional .pd-hub-main img:not(.wp-block-cover__image-background) {
    max-width: 100%;
    height: auto;
    display: block;
}
body.pd-institutional .pd-hub-main { overflow-x: hidden; }

/* ============================================================================
   REGRA GLOBAL ANTI-DISTORÇÃO — aplicada em TODO o projeto
   Nenhuma imagem pode esticar. Ou recorta (cover) ou cabe inteira (contain).
   ========================================================================= */
.wp-block-cover__image-background,
.wp-block-cover video.wp-block-cover__video-background {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center;
}
/* Imagens em cards e blocos institucionais nunca esticam */
.pd-card img,
.pd-section img:not(.wp-block-cover__image-background) {
    max-width: 100%;
    height: auto;
}

/* CRÍTICO: força tamanho de SVG dentro de qualquer .pd-icon — vence Kadence/Gutenberg */
body.pd-institutional svg.pd-icon,
body.pd-institutional .pd-hub-social svg,
body.pd-institutional .pd-hub-header-cta svg,
body.pd-institutional .pd-wa-float svg {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
    display: block !important;
    flex-shrink: 0 !important;
}

/* --- HEADER premium --- */
body.pd-institutional .pd-hub-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: var(--pd-white);
    border-bottom: 1px solid var(--pd-line);
    box-shadow: var(--pd-shadow-sm);
}
body.pd-institutional .pd-hub-header-inner {
    max-width: var(--pd-maxw);
    margin: 0 auto;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
body.pd-institutional .pd-hub-logo {
    display: inline-flex;
    flex-shrink: 0;
}
body.pd-institutional .pd-hub-logo img {
    height: 56px !important;
    width: auto !important;
    max-width: 220px !important;
    display: block;
}
body.pd-institutional .pd-hub-nav { display: none; }
body.pd-institutional .pd-hub-nav-list {
    list-style: none;
    display: flex;
    gap: 32px;
    margin: 0;
    padding: 0;
}
body.pd-institutional .pd-hub-nav-list a {
    color: var(--pd-blue-dark);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.96rem;
    transition: color .15s ease;
    padding: 6px 0;
    border-bottom: 2px solid transparent;
}
body.pd-institutional .pd-hub-nav-list a:hover {
    color: var(--pd-blue);
    border-bottom-color: var(--pd-blue);
}
body.pd-institutional .pd-hub-nav-list .current-menu-item a,
body.pd-institutional .pd-hub-nav-list .current_page_item a {
    color: var(--pd-blue);
    border-bottom-color: var(--pd-blue);
}
body.pd-institutional .pd-hub-header-right {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}
body.pd-institutional .pd-hub-header-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--pd-font-body);
    font-weight: 700;
    font-size: 0.86rem;
    text-decoration: none;
    color: var(--pd-white);
    background: var(--pd-whatsapp);
    padding: 10px 16px;
    border-radius: var(--pd-radius-sm);
    transition: background .2s ease;
    white-space: nowrap;
}
body.pd-institutional .pd-hub-header-cta:hover { background: var(--pd-whatsapp-d); }
body.pd-institutional .pd-hub-header-cta span { display: none; }

@media (min-width: 640px) {
    body.pd-institutional .pd-hub-header-cta span { display: inline; }
}
@media (min-width: 900px) {
    body.pd-institutional .pd-hub-nav { display: block; }
}

/* --- Ícones sociais (header + footer) --- */
body.pd-institutional .pd-hub-social {
    list-style: none !important;
    display: flex !important;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
}
body.pd-institutional .pd-hub-social li {
    list-style: none !important;
    margin: 0;
    padding: 0;
}
body.pd-institutional .pd-hub-social li::before { content: none !important; }
body.pd-institutional .pd-hub-social a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    border-radius: 50% !important;
    color: var(--pd-blue-dark);
    text-decoration: none;
    transition: color .15s ease, background .15s ease, transform .15s ease;
    padding: 0 !important;
    line-height: 1 !important;
}
body.pd-institutional .pd-hub-social--header { display: none !important; }
@media (min-width: 1024px) {
    body.pd-institutional .pd-hub-social--header { display: flex !important; }
}
body.pd-institutional .pd-hub-social--header a {
    color: var(--pd-ash);
    background: transparent;
}
body.pd-institutional .pd-hub-social--header a:hover {
    color: var(--pd-blue);
    background: rgba(0, 119, 204, 0.08);
    transform: translateY(-1px);
}

body.pd-institutional .pd-hub-social--footer {
    margin-top: 16px;
    gap: 10px;
}
body.pd-institutional .pd-hub-social--footer a {
    color: rgba(255,255,255,0.78);
    background: rgba(255,255,255,0.08);
}
body.pd-institutional .pd-hub-social--footer a:hover {
    color: var(--pd-white);
    background: rgba(255,255,255,0.16);
    transform: translateY(-1px);
}
.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap; border: 0;
}

/* --- FOOTER premium --- */
body.pd-institutional .pd-hub-footer {
    background: var(--pd-blue-deep);
    color: rgba(255,255,255,0.78);
    padding: 64px 20px 28px;
}
body.pd-institutional .pd-hub-footer-inner {
    max-width: var(--pd-maxw);
    margin: 0 auto;
    display: grid;
    gap: 40px;
    grid-template-columns: 1fr;
}
body.pd-institutional .pd-hub-footer-col h4 {
    color: var(--pd-white);
    font-family: var(--pd-font-body);
    font-weight: 700;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 16px;
}
body.pd-institutional .pd-hub-footer-col ul {
    list-style: none !important;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
body.pd-institutional .pd-hub-footer-col ul li {
    list-style: none !important;
    margin: 0;
    padding: 0;
}
body.pd-institutional .pd-hub-footer-col ul li::before { content: none !important; }
body.pd-institutional .pd-hub-footer-col a {
    color: rgba(255,255,255,0.78);
    text-decoration: none;
    font-size: 0.92rem;
    transition: color .15s ease;
}
body.pd-institutional .pd-hub-footer-col a:hover { color: var(--pd-white); }
body.pd-institutional .pd-hub-footer-brand img {
    height: 60px !important;
    width: auto !important;
    max-width: 240px !important;
    margin: 0 0 18px;
    display: block;
}
body.pd-institutional .pd-hub-footer-brand p {
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0 0 14px;
}
body.pd-institutional .pd-hub-footer-brand {
    text-align: center;
}
body.pd-institutional .pd-hub-footer-brand img {
    margin-left: auto !important;
    margin-right: auto !important;
}
body.pd-institutional .pd-hub-footer-address {
    font-style: normal;
    font-size: 0.92rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.78);
    margin: 0 auto 20px;
    display: block;
    text-align: center;
}
body.pd-institutional .pd-hub-social--footer {
    justify-content: center;
}
@media (min-width: 768px) {
    body.pd-institutional .pd-hub-footer-brand {
        text-align: left;
    }
    body.pd-institutional .pd-hub-footer-brand img {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    body.pd-institutional .pd-hub-footer-address {
        text-align: left;
        margin-left: 0;
        margin-right: 0;
    }
    body.pd-institutional .pd-hub-social--footer {
        justify-content: flex-start;
    }
}
body.pd-institutional .pd-hub-footer-bottom {
    max-width: var(--pd-maxw);
    margin: 40px auto 0;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,0.12);
    text-align: center;
}
body.pd-institutional .pd-hub-footer-bottom small {
    color: rgba(255,255,255,0.5);
    font-size: 0.78rem;
}

@media (min-width: 768px) {
    body.pd-institutional .pd-hub-footer-inner {
        grid-template-columns: 2fr 1fr 1fr 1fr;
        gap: 48px;
    }
}

/* ============================================================================
   HERO INSTITUCIONAL — refinamento premium v0.5
   ========================================================================= */
/* Hero full-dobra: preenche viewport menos altura do header sticky (≈92px).
   Aplica em /cursos/ E em todas as páginas pd-institutional. */
body.pd-institutional .pd-section--hero-institucional {
    min-height: calc(100svh - 92px);
    padding: 0 !important;
    position: relative;
    overflow: hidden;
}
body.pd-institutional .pd-section--hero-institucional.wp-block-cover {
    min-height: calc(100svh - 92px) !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative;
    overflow: hidden;
}
body.pd-institutional .pd-section--hero-institucional .wp-block-cover__inner-container,
body.pd-institutional .pd-section--hero-institucional > .wp-block-group__inner-container {
    padding: clamp(48px, 7vh, 96px) 24px !important;
    max-width: 960px !important;
    text-align: center;
    width: 100%;
    position: relative;
    z-index: 2;
}
/* Quando logado no WP, admin bar (32px) ocupa espaço — desconta */
body.admin-bar.pd-institutional .pd-section--hero-institucional,
body.admin-bar.pd-institutional .pd-section--hero-institucional.wp-block-cover {
    min-height: calc(100svh - 92px - 32px) !important;
}
/* Overlay mais escuro para legibilidade premium */
body.pd-institutional .pd-section--hero-institucional .wp-block-cover__background {
    opacity: 0.75 !important;
    position: absolute !important;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 1;
}
/* CRÍTICO: imagem de fundo cobre o cover SEM DISTORÇÃO.
   width/height 100% + object-fit cover = recorta inteligente, nunca estica. */
body.pd-institutional .pd-section--hero-institucional .wp-block-cover__image-background,
body.pd-institutional .pd-section--hero-institucional img.wp-block-cover__image-background {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center 35% !important;
    z-index: 0;
    display: block;
}
body.pd-institutional .pd-section--hero-institucional .pd-pre-headline {
    color: #cee0f4 !important;
    font-weight: 700;
    letter-spacing: 0.14em;
    font-size: 0.78rem;
    text-transform: uppercase;
    margin: 0 0 18px !important;
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
body.pd-institutional .pd-section--hero-institucional .pd-hero-headline,
body.pd-institutional .pd-section--hero-institucional .pd-hero-institucional-headline {
    font-family: var(--pd-font-display);
    color: var(--pd-white);
    font-size: clamp(2rem, 5.5vw, 3.8rem);
    line-height: 1.08;
    margin: 0 0 20px !important;
    text-shadow: 0 4px 24px rgba(0,0,0,0.4);
    letter-spacing: -0.005em;
}
body.pd-institutional .pd-section--hero-institucional .pd-hero-subheadline {
    color: rgba(255,255,255,0.94);
    font-size: clamp(1.02rem, 2vw, 1.22rem);
    line-height: 1.55;
    max-width: 700px;
    margin: 0 auto 32px !important;
    text-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
body.pd-institutional .pd-section--hero-institucional .wp-block-buttons {
    margin-top: 8px;
}

@media (min-width: 768px) {
    body.pd-institutional .pd-section--hero-institucional .wp-block-cover__inner-container {
        padding: clamp(64px, 9vh, 140px) 32px !important;
    }
}
/* min-height calc(100svh) já cobre todas as breakpoints sem precisar override */

@media (min-width: 768px) {
    .pd-hub-footer-inner {
        grid-template-columns: 2fr 1fr 1fr 1fr;
        gap: 40px;
    }
}

/* ============================================================================
   HUB — seções específicas da Home
   ========================================================================= */

/* HERO institucional (sem core/cover — gradiente) */
.pd-section--hero-institucional {
    background: linear-gradient(135deg, var(--pd-blue-deep) 0%, var(--pd-blue-dark) 60%, var(--pd-blue) 100%);
    text-align: center;
    padding: 56px 20px;
    color: var(--pd-white);
}
.pd-section--hero-institucional .pd-pre-headline {
    color: #bcd6f0;
    font-weight: 700;
    letter-spacing: 0.12em;
    font-size: 0.8rem;
    text-transform: uppercase;
    margin: 0 0 14px;
}
.pd-section--hero-institucional .pd-hero-institucional-headline {
    font-family: var(--pd-font-display);
    color: var(--pd-white);
    font-size: clamp(2.4rem, 7vw, 4.2rem);
    line-height: 1.05;
    margin: 0 0 18px;
    text-align: center;
}
.pd-section--hero-institucional .pd-hero-subheadline {
    color: rgba(255,255,255,0.92);
    font-size: clamp(1rem, 2.4vw, 1.22rem);
    max-width: 680px;
    margin: 0 auto 28px;
}

/* AUTORIDADE */
.pd-section--autoridade { background: var(--pd-white); text-align: center; }
.pd-section--autoridade .pd-card--pillar {
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    padding: 28px 24px;
    box-shadow: var(--pd-shadow-sm);
    text-align: left;
    border-top: 4px solid var(--pd-blue);
    margin-bottom: 14px;
}
.pd-section--autoridade .pd-card-title { margin: 0 0 10px; color: var(--pd-blue-dark); }
.pd-section--autoridade .pd-card p { margin: 0; color: #55606b; }

/* LINHAS (4 verticais) */
.pd-section--linhas { background: var(--pd-bg); }
.pd-section--linhas .pd-card--linha {
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    padding: 28px 24px;
    box-shadow: var(--pd-shadow-sm);
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 14px;
    transition: transform .2s ease, box-shadow .2s ease;
}
.pd-section--linhas .pd-card--linha:hover {
    transform: translateY(-3px);
    box-shadow: var(--pd-shadow-md);
}
.pd-section--linhas .pd-card-title--linha {
    margin: 0;
    color: var(--pd-blue-dark);
    font-size: 1.3rem;
    font-family: var(--pd-font-display);
    letter-spacing: 0.005em;
}
.pd-section--linhas .pd-card p { margin: 0; color: #55606b; flex: 1; }
.pd-section--linhas .pd-card .wp-block-buttons { justify-content: flex-start; margin-top: 4px; }
.pd-section--linhas .pd-card .wp-block-button__link { font-size: 0.9rem; padding: 12px 22px; }

/* CURSOS DESTAQUE */
.pd-section--cursos-destaque { background: var(--pd-white); }
.pd-section--cursos-destaque .pd-card--curso {
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    padding: 28px 24px;
    box-shadow: var(--pd-shadow-sm);
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
}
.pd-section--cursos-destaque .pd-card-badge {
    display: inline-block;
    padding: 4px 10px;
    background: var(--pd-blue);
    color: var(--pd-white);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border-radius: 999px;
    align-self: flex-start;
    margin: 0;
}
.pd-section--cursos-destaque .pd-card-title--curso {
    margin: 4px 0 0;
    color: var(--pd-blue-dark);
    font-size: 1.18rem;
}
.pd-section--cursos-destaque .pd-card p { margin: 0; color: #55606b; flex: 1; }
.pd-section--cursos-destaque .pd-card .wp-block-buttons { justify-content: flex-start; margin-top: 6px; }
.pd-section--cursos-destaque .pd-card .wp-block-button__link { font-size: 0.92rem; padding: 12px 22px; }

/* BLOG RECENTES */
.pd-section--blog-recentes { background: var(--pd-bg); }
.pd-section--blog-recentes .pd-card--post {
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    box-shadow: var(--pd-shadow-sm);
    margin-bottom: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .18s ease, box-shadow .18s ease;
}
.pd-section--blog-recentes .pd-card--post:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(0, 51, 102, 0.12);
}
.pd-section--blog-recentes .pd-card--post-com-imagem > .pd-card-figure--post + * {
    padding-top: 22px;
}
.pd-section--blog-recentes .pd-card--post > *:not(.pd-card-figure--post) {
    padding-left: 22px;
    padding-right: 22px;
}
.pd-section--blog-recentes .pd-card--post > *:last-child {
    padding-bottom: 26px;
}
.pd-section--blog-recentes .pd-card-figure--post {
    margin: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: linear-gradient(135deg, var(--pd-blue-deep) 0%, var(--pd-blue-dark) 60%, var(--pd-blue) 100%);
}
.pd-section--blog-recentes .pd-card-figure--post a {
    display: block;
    width: 100%;
    height: 100%;
}
.pd-section--blog-recentes .pd-card-figure--post .pd-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}
.pd-section--blog-recentes .pd-card--post:hover .pd-card-figure--post .pd-card-img {
    transform: scale(1.04);
}
.pd-section--blog-recentes .pd-card-figure--placeholder {
    background:
        radial-gradient(circle at 30% 20%, rgba(255,255,255,0.12) 0%, transparent 55%),
        linear-gradient(135deg, var(--pd-blue-deep) 0%, var(--pd-blue-dark) 60%, var(--pd-blue) 100%);
}
.pd-section--blog-recentes .pd-card-title--post {
    margin: 0 0 10px;
    color: var(--pd-blue-dark);
    font-size: 1.1rem;
    line-height: 1.3;
}
.pd-section--blog-recentes .pd-card p { color: #55606b; }
.pd-section--blog-recentes .pd-card .wp-block-buttons { justify-content: flex-start; margin-top: 6px; }
.pd-section--blog-recentes .pd-card .wp-block-button__link { font-size: 0.92rem; padding: 12px 22px; }
.pd-section--blog-recentes > .wp-block-buttons { margin-top: 18px; justify-content: center; }

/* DEPOIMENTOS HOME */
.pd-section--depoimentos-home { background: var(--pd-white); }
.pd-section--depoimentos-home .pd-testimonial {
    max-width: var(--pd-maxw-text);
    margin: 0 auto 14px;
    padding: 22px 26px;
    background: var(--pd-bg);
    border-left: 4px solid var(--pd-blue);
    border-radius: var(--pd-radius-sm);
}
.pd-section--depoimentos-home .pd-testimonial p { margin: 0 0 10px; font-style: italic; color: var(--pd-text); }
.pd-section--depoimentos-home .pd-testimonial cite { color: var(--pd-blue-dark); font-weight: 600; font-style: normal; }

/* GRID variants */
.pd-grid--pillars { grid-template-columns: 1fr; }
.pd-grid--linhas  { grid-template-columns: 1fr; }
.pd-grid--cursos  { grid-template-columns: 1fr; }
.pd-grid--posts   { grid-template-columns: 1fr; }

@media (min-width: 768px) {
    .pd-grid--pillars { grid-template-columns: repeat(3, 1fr); }
    .pd-grid--linhas  { grid-template-columns: repeat(2, 1fr); }
    .pd-grid--cursos  { grid-template-columns: repeat(2, 1fr); }
    .pd-grid--posts   { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
    .pd-grid--linhas  { grid-template-columns: repeat(4, 1fr); }
    .pd-grid--cursos  { grid-template-columns: repeat(4, 1fr); }
}

/* CTA final na home (sem formulário — só CTAs) */
body.pd-institutional .pd-section--cta-final .pd-form-placeholder,
body.pd-institutional .pd-section--cta-final .pd-lead-form {
    display: none;
}

/* ============================================================================
   CATÁLOGO — /cursos/ agrupado por linhas
   ========================================================================= */
.pd-section--catalogo {
    background: var(--pd-white);
}
.pd-section--catalogo .pd-linha-bloco {
    margin: 0 auto 56px;
    padding: 0;
    max-width: var(--pd-maxw);
}
.pd-section--catalogo .pd-linha-bloco:last-child { margin-bottom: 0; }
.pd-section--catalogo .pd-linha-title {
    text-align: left;
    color: var(--pd-blue-dark);
    border-bottom: 3px solid var(--pd-blue);
    padding-bottom: 10px;
    margin-bottom: 12px;
    max-width: var(--pd-maxw);
}
.pd-section--catalogo .pd-linha-intro {
    color: #55606b;
    max-width: var(--pd-maxw-text);
    margin: 0 0 28px;
    font-size: 1.02rem;
    text-align: left;
}
.pd-section--catalogo .pd-card--curso {
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    padding: 26px 22px;
    box-shadow: var(--pd-shadow-sm);
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
}
.pd-section--catalogo .pd-card-title--curso {
    margin: 0;
    color: var(--pd-blue-dark);
    font-size: 1.16rem;
    font-family: var(--pd-font-body);
    font-weight: 700;
}
.pd-section--catalogo .pd-curso-meta {
    margin: 0;
    font-size: 0.82rem;
    color: var(--pd-blue);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.pd-section--catalogo .pd-card p { margin: 0; color: #55606b; }
.pd-section--catalogo .pd-curso-status {
    margin: 0;
    font-size: 0.86rem;
    font-style: italic;
    color: #6c7884;
}
.pd-section--catalogo .pd-card .wp-block-buttons {
    justify-content: flex-start;
    margin-top: auto;
    padding-top: 8px;
}
.pd-section--catalogo .pd-card .wp-block-button__link {
    font-size: 0.92rem;
    padding: 12px 22px;
}
.pd-grid--catalogo { grid-template-columns: 1fr; }
@media (min-width: 768px) {
    .pd-grid--catalogo { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    .pd-grid--catalogo { grid-template-columns: repeat(3, 1fr); }
}

/* ============================================================================
   MANIFESTO — narrativa institucional (sobre, mentoria, posicionamento)
   Tipografia mais arejada, texto centrado em legibilidade.
   ========================================================================= */
.pd-section--manifesto {
    background: var(--pd-bg);
    padding: 88px 20px;
}
.pd-section--manifesto h2 {
    max-width: var(--pd-maxw-text);
    margin: 0 auto 36px;
    color: var(--pd-blue-dark);
    text-align: center;
}
.pd-section--manifesto .pd-manifesto-paragraph {
    max-width: var(--pd-maxw-text);
    margin: 0 auto 22px;
    font-size: 1.08rem;
    line-height: 1.75;
    color: #2c3942;
    text-align: left;
}
.pd-section--manifesto .pd-manifesto-paragraph:last-child {
    margin-bottom: 0;
}
@media (min-width: 768px) {
    .pd-section--manifesto { padding: 120px 32px; }
    .pd-section--manifesto .pd-manifesto-paragraph {
        font-size: 1.14rem;
    }
}

/* ============================================================================
   REFINAMENTO PREMIUM v0.5.1 — spacing, hierarquia, cards mais arejados
   ========================================================================= */

/* Seções institucionais respiram mais */
body.pd-institutional .pd-section {
    padding: 80px 24px;
}
@media (min-width: 768px) {
    body.pd-institutional .pd-section { padding: 110px 32px; }
}
@media (min-width: 1200px) {
    body.pd-institutional .pd-section { padding: 130px 40px; }
}

/* Headlines de seção com mais peso premium */
body.pd-institutional .pd-section h2 {
    font-size: clamp(1.85rem, 4.2vw, 2.8rem);
    line-height: 1.12;
    letter-spacing: -0.005em;
    margin: 0 0 14px;
}
body.pd-institutional .pd-section .pd-section-intro {
    font-size: 1.08rem;
    line-height: 1.65;
    max-width: 680px;
    margin: 0 auto 44px;
    color: #3a4651;
}

/* Cards das LINHAS (Fluxo Digital, Cerâmica, etc.) com mais corpo */
body.pd-institutional .pd-section--linhas .pd-card--linha,
body.pd-institutional .pd-section--cursos-destaque .pd-card--curso,
body.pd-institutional .pd-section--autoridade .pd-card--pillar {
    padding: 36px 30px;
    border-radius: var(--pd-radius-md);
    gap: 14px;
    box-shadow: 0 2px 8px rgba(0, 38, 77, 0.05);
    transition: transform .25s ease, box-shadow .25s ease;
}
body.pd-institutional .pd-section--linhas .pd-card--linha:hover,
body.pd-institutional .pd-section--cursos-destaque .pd-card--curso:hover,
body.pd-institutional .pd-section--autoridade .pd-card--pillar:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 36px rgba(0, 38, 77, 0.12);
}

/* Title nos cards com presença */
body.pd-institutional .pd-card-title--linha,
body.pd-institutional .pd-card-title--curso {
    font-size: 1.3rem !important;
    font-family: var(--pd-font-display) !important;
    color: var(--pd-blue-dark) !important;
    margin: 4px 0 6px !important;
    letter-spacing: 0.002em;
}

/* Card autoridade (Cinco anos...) */
body.pd-institutional .pd-section--autoridade .pd-card--pillar {
    border-top-width: 5px;
}
body.pd-institutional .pd-section--autoridade .pd-card-title {
    font-size: 1.14rem !important;
    margin: 6px 0 10px !important;
    color: var(--pd-blue-dark);
}

/* Diferenciais com mesma escala */
body.pd-institutional .pd-section--diferenciais .pd-card {
    padding: 32px 28px;
    border-top-width: 5px;
}
body.pd-institutional .pd-section--diferenciais .pd-card-title {
    font-size: 1.14rem;
    margin: 4px 0 10px;
}

/* Grids com mais respiro entre cards */
body.pd-institutional .pd-section .pd-grid {
    gap: 22px;
}
@media (min-width: 768px) {
    body.pd-institutional .pd-section .pd-grid { gap: 26px; }
}

/* FAQ + estrutura com max-width melhor */
body.pd-institutional .pd-section--faq .wp-block-details,
body.pd-institutional .pd-section--estrutura .wp-block-list,
body.pd-institutional .pd-section--depoimentos-home .pd-testimonial {
    max-width: 820px;
}

/* CTA final mais grandioso */
body.pd-institutional .pd-section--cta-final {
    padding: 100px 24px;
    background: linear-gradient(135deg, #001b38, var(--pd-blue-dark), var(--pd-blue));
}
body.pd-institutional .pd-section--cta-final h2 {
    font-size: clamp(1.7rem, 4.5vw, 2.6rem);
    color: var(--pd-white);
    margin-bottom: 14px;
}
@media (min-width: 768px) {
    body.pd-institutional .pd-section--cta-final { padding: 130px 32px; }
}

/* ============================================================================
   /contato/ — canais + mapa + texto-legal
   ========================================================================= */
body.pd-institutional .pd-section--canais-contato { background: var(--pd-bg); }
body.pd-institutional .pd-section--canais-contato .pd-card--canal {
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    padding: 36px 28px;
    box-shadow: var(--pd-shadow-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    margin-bottom: 14px;
}
body.pd-institutional .pd-canal-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(0, 119, 204, 0.10);
    color: var(--pd-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
}
body.pd-institutional .pd-canal-icon svg {
    width: 28px !important;
    height: 28px !important;
}
body.pd-institutional .pd-card-title--canal {
    margin: 0;
    color: var(--pd-blue-dark);
    font-size: 1.18rem;
    font-family: var(--pd-font-body);
    font-weight: 700;
}
body.pd-institutional .pd-canal-subtitle {
    margin: 0;
    color: #6c7884;
    font-size: 0.88rem;
    font-style: italic;
}
body.pd-institutional .pd-canal-value {
    margin: 4px 0 8px;
    color: var(--pd-text);
    font-weight: 600;
    font-size: 0.96rem;
}
body.pd-institutional .pd-grid--canais { grid-template-columns: 1fr; }
@media (min-width: 768px) {
    body.pd-institutional .pd-grid--canais { grid-template-columns: repeat(3, 1fr); }
}

/* Mapa Google */
body.pd-institutional .pd-section--mapa-google { background: var(--pd-white); text-align: center; }
body.pd-institutional .pd-mapa-address {
    max-width: 600px;
    margin: 0 auto 24px !important;
    color: #55606b;
    font-size: 0.96rem;
}
body.pd-institutional .pd-mapa-wrap {
    max-width: var(--pd-maxw);
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    border-radius: var(--pd-radius-md);
    overflow: hidden;
    box-shadow: var(--pd-shadow-md);
}
body.pd-institutional .pd-mapa-wrap iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* ============================================================================
   Páginas legais — texto-legal
   ========================================================================= */
body.pd-institutional .pd-section--texto-legal { background: var(--pd-white); }
body.pd-institutional .pd-section--texto-legal h2 {
    text-align: left;
    max-width: var(--pd-maxw-text);
    margin: 0 auto 16px;
    color: var(--pd-blue-dark);
}
body.pd-institutional .pd-legal-update {
    max-width: var(--pd-maxw-text);
    margin: 0 auto 28px;
    font-size: 0.86rem;
    color: #6c7884;
    font-style: italic;
    text-align: left;
}
body.pd-institutional .pd-legal-heading {
    max-width: var(--pd-maxw-text);
    margin: 32px auto 12px !important;
    color: var(--pd-blue-dark);
    font-size: 1.18rem;
    text-align: left;
}
body.pd-institutional .pd-legal-paragraph {
    max-width: var(--pd-maxw-text);
    margin: 0 auto 16px !important;
    color: #2c3942;
    line-height: 1.72;
    text-align: left;
}
body.pd-institutional .pd-section--texto-legal .wp-block-list {
    max-width: var(--pd-maxw-text);
    margin: 0 auto 18px !important;
    text-align: left;
}

/* ============================================================================
   CPT instrutor — single-instrutor.php
   ========================================================================= */
body.pd-instrutor-single .pd-section--instrutor-hero {
    background: linear-gradient(135deg, #001b38, var(--pd-blue-dark), var(--pd-blue));
    color: var(--pd-white);
    padding: 80px 24px;
}
body.pd-instrutor-single .pd-instrutor-hero-inner {
    max-width: var(--pd-maxw);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center;
    text-align: center;
}
body.pd-instrutor-single .pd-instrutor-photo-wrap {
    margin: 0 auto;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.25);
    border: 5px solid var(--pd-white);
}
body.pd-instrutor-single .pd-instrutor-photo {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 30%;
    display: block;
}
body.pd-instrutor-single .pd-instrutor-intro .pd-pre-headline {
    color: #bcd6f0;
    letter-spacing: 0.14em;
    font-size: 0.78rem;
    text-transform: uppercase;
    font-weight: 700;
    margin: 0 0 14px;
}
body.pd-instrutor-single .pd-instrutor-intro h1 {
    color: var(--pd-white);
    font-size: clamp(2rem, 5vw, 3.4rem);
    line-height: 1.1;
    margin: 0 0 12px;
}
body.pd-instrutor-single .pd-instrutor-role {
    font-size: 1.1rem;
    color: rgba(255,255,255,0.88);
    margin: 0;
}
body.pd-instrutor-single .pd-section--instrutor-bio {
    background: var(--pd-white);
    padding: 80px 24px;
}
body.pd-instrutor-single .pd-instrutor-bio-content {
    max-width: var(--pd-maxw-text);
    margin: 0 auto;
}
body.pd-instrutor-single .pd-instrutor-bio-content h2 {
    color: var(--pd-blue-dark);
    margin: 0 0 18px;
    text-align: left;
}
body.pd-instrutor-single .pd-instrutor-bio-content p {
    color: #2c3942;
    font-size: 1.06rem;
    line-height: 1.72;
    margin: 0 0 16px;
}
body.pd-instrutor-single .pd-section--instrutor-areas {
    background: var(--pd-bg);
    padding: 64px 24px;
    text-align: center;
}
body.pd-instrutor-single .pd-section--instrutor-areas h2 {
    color: var(--pd-blue-dark);
    margin: 0 0 24px;
}
body.pd-instrutor-single .pd-instrutor-areas-list {
    list-style: none !important;
    padding: 0;
    margin: 0 auto;
    max-width: 640px;
    display: grid;
    gap: 12px;
}
body.pd-instrutor-single .pd-instrutor-areas-list li {
    background: var(--pd-white);
    padding: 14px 22px;
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-sm);
    box-shadow: var(--pd-shadow-sm);
    color: var(--pd-blue-dark);
    font-weight: 600;
    list-style: none !important;
}
body.pd-instrutor-single .pd-instrutor-areas-list li::before { content: none !important; }

@media (min-width: 768px) {
    body.pd-instrutor-single .pd-section--instrutor-hero {
        padding: 120px 32px;
    }
    body.pd-instrutor-single .pd-instrutor-hero-inner {
        grid-template-columns: 260px 1fr;
        text-align: left;
        gap: 48px;
    }
    body.pd-instrutor-single .pd-instrutor-photo-wrap {
        margin: 0;
        width: 260px;
        height: 260px;
    }
    body.pd-instrutor-single .pd-section--instrutor-bio {
        padding: 100px 32px;
    }
}

/* ============================================================================
   BLOG — archive + single (v0.6.0)
   ========================================================================= */

/* Hero do archive */
body.pd-blog-archive .pd-section--blog-hero {
    background: linear-gradient(135deg, #001b38, var(--pd-blue-dark), var(--pd-blue));
    color: var(--pd-white);
    padding: 100px 24px;
    text-align: center;
}
body.pd-blog-archive .pd-blog-hero-inner {
    max-width: 820px;
    margin: 0 auto;
}
body.pd-blog-archive .pd-section--blog-hero .pd-pre-headline {
    color: #bcd6f0;
    margin: 0 0 18px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.78rem;
    font-weight: 700;
}
body.pd-blog-archive .pd-section--blog-hero .pd-hero-headline,
body.pd-blog-archive .pd-section--blog-hero .pd-hero-institucional-headline {
    color: var(--pd-white);
    font-size: clamp(2rem, 4.8vw, 3.2rem);
    line-height: 1.1;
    margin: 0 0 20px;
}
body.pd-blog-archive .pd-section--blog-hero .pd-hero-subheadline {
    color: rgba(255,255,255,0.92);
    font-size: clamp(1rem, 2vw, 1.18rem);
    line-height: 1.55;
    max-width: 680px;
    margin: 0 auto;
}

/* Grid de posts */
body.pd-institutional .pd-blog-grid {
    max-width: var(--pd-maxw);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
}
@media (min-width: 768px) {
    body.pd-institutional .pd-blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
    body.pd-institutional .pd-blog-grid { grid-template-columns: repeat(3, 1fr); }
}

body.pd-institutional .pd-blog-card {
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 38, 77, 0.05);
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}
body.pd-institutional .pd-blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 36px rgba(0, 38, 77, 0.12);
}
body.pd-institutional .pd-blog-card-thumb {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--pd-bg);
}
body.pd-institutional .pd-blog-card-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center;
    display: block;
}
/* ============================================================================
   GRID DE 4 ITENS — 2x2 no desktop (não 3+1)
   Quando um grid tem EXATAMENTE 4 cards filhos, vira 2 colunas em vez de 3
   ou 4. Aplica em pillars/diferenciais/cards genéricos. NÃO afeta
   pd-grid--linhas (4 linhas de formação = sempre 4 colunas em desktop) nem
   pd-grid--cursos/catálogo (números variáveis sempre 3-4 cols).
   ========================================================================= */
@media (min-width: 768px) {
    body.pd-institutional .pd-grid--pillars:has(> :nth-child(4):last-child),
    body.pd-institutional .pd-grid--diferenciais:has(> :nth-child(4):last-child),
    body.pd-institutional .pd-grid--depoimentos:has(> :nth-child(4):last-child),
    body.pd-institutional .pd-grid--cards:not(.pd-grid--linhas):not(.pd-grid--cursos):not(.pd-grid--catalogo):not(.pd-grid--posts):has(> :nth-child(4):last-child) {
        grid-template-columns: repeat(2, 1fr) !important;
        max-width: 920px;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* Fallback placeholder — gradient azul institucional quando post não tem featured_image.
   Evita placeholder broken/genérico do WP no archive do blog. */
body.pd-institutional .pd-blog-card-thumb--placeholder {
    background: linear-gradient(135deg, var(--pd-blue-deep) 0%, var(--pd-blue-dark) 60%, var(--pd-blue) 100%);
    position: relative;
}
body.pd-institutional .pd-blog-card-thumb--placeholder::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.08) 0%, transparent 70%);
}
body.pd-institutional .pd-blog-card-body {
    padding: 24px 22px 26px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}
body.pd-institutional .pd-blog-card-cat {
    display: inline-block;
    align-self: flex-start;
    background: rgba(0, 119, 204, 0.08);
    color: var(--pd-blue);
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
body.pd-institutional .pd-blog-card-title {
    margin: 4px 0 4px;
    font-family: var(--pd-font-body);
    font-weight: 700;
    font-size: 1.18rem;
    line-height: 1.3;
    color: var(--pd-blue-dark);
}
body.pd-institutional .pd-blog-card-title a {
    color: inherit;
    text-decoration: none;
    transition: color .15s ease;
}
body.pd-institutional .pd-blog-card-title a:hover { color: var(--pd-blue); }
body.pd-institutional .pd-blog-card-excerpt {
    margin: 0;
    color: #55606b;
    font-size: 0.95rem;
    line-height: 1.55;
    flex: 1;
}
body.pd-institutional .pd-blog-card-link {
    color: var(--pd-blue);
    font-weight: 600;
    font-size: 0.92rem;
    text-decoration: none;
    margin-top: 4px;
    transition: color .15s ease;
}
body.pd-institutional .pd-blog-card-link:hover { color: var(--pd-blue-dark); }

/* Paginação */
body.pd-institutional .pd-blog-pagination {
    max-width: var(--pd-maxw);
    margin: 56px auto 0;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}
body.pd-institutional .pd-blog-pagination .page-numbers {
    padding: 10px 16px;
    border-radius: var(--pd-radius-sm);
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    color: var(--pd-blue-dark);
    text-decoration: none;
    font-weight: 600;
    transition: background .15s ease;
}
body.pd-institutional .pd-blog-pagination .page-numbers:hover,
body.pd-institutional .pd-blog-pagination .page-numbers.current {
    background: var(--pd-blue);
    color: var(--pd-white);
    border-color: var(--pd-blue);
}

/* ============================================================================
   BLOG SINGLE
   ========================================================================= */
body.pd-blog-single .pd-blog-article { background: var(--pd-white); }

body.pd-blog-single .pd-section--blog-single-hero {
    background: var(--pd-bg);
    padding: 80px 24px 40px;
    text-align: center;
}
body.pd-blog-single .pd-blog-single-hero-inner {
    max-width: 820px;
    margin: 0 auto 28px;
}
body.pd-blog-single .pd-blog-single-cat {
    display: inline-block;
    background: var(--pd-blue);
    color: var(--pd-white);
    padding: 5px 14px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    margin: 0 0 18px;
    transition: background .15s ease;
}
body.pd-blog-single .pd-blog-single-cat:hover { background: var(--pd-blue-dark); }
body.pd-blog-single .pd-blog-single-title {
    font-family: var(--pd-font-display);
    color: var(--pd-blue-dark);
    font-size: clamp(1.8rem, 4.5vw, 2.8rem);
    line-height: 1.1;
    margin: 0 0 16px;
    letter-spacing: -0.005em;
}
body.pd-blog-single .pd-blog-single-meta {
    color: #6c7884;
    font-size: 0.92rem;
    margin: 0;
}
body.pd-blog-single .pd-blog-single-sep {
    color: var(--pd-line);
    margin: 0 6px;
}
body.pd-blog-single .pd-blog-single-thumb-wrap {
    max-width: 1080px;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    border-radius: var(--pd-radius-md);
    overflow: hidden;
    box-shadow: var(--pd-shadow-md);
}
body.pd-blog-single .pd-blog-single-thumb {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 35%;
    display: block;
}

body.pd-blog-single .pd-section--blog-single-body {
    background: var(--pd-white);
    padding: 60px 24px 80px;
}
body.pd-blog-single .pd-blog-single-content {
    max-width: 720px;
    margin: 0 auto;
    color: #2c3942;
    font-size: 1.08rem;
    line-height: 1.78;
}
body.pd-blog-single .pd-blog-single-content > * {
    margin: 0 0 22px;
}
body.pd-blog-single .pd-blog-single-content h2 {
    font-family: var(--pd-font-display);
    color: var(--pd-blue-dark);
    font-size: 1.7rem;
    line-height: 1.25;
    margin: 48px 0 16px;
    letter-spacing: -0.002em;
}
body.pd-blog-single .pd-blog-single-content h3 {
    font-family: var(--pd-font-body);
    color: var(--pd-blue-dark);
    font-size: 1.22rem;
    font-weight: 700;
    margin: 32px 0 12px;
}
body.pd-blog-single .pd-blog-single-content p { margin: 0 0 22px; }
body.pd-blog-single .pd-blog-single-content ul,
body.pd-blog-single .pd-blog-single-content ol {
    margin: 0 0 22px;
    padding-left: 1.4em;
}
body.pd-blog-single .pd-blog-single-content li { margin-bottom: 8px; }
body.pd-blog-single .pd-blog-single-content blockquote {
    border-left: 4px solid var(--pd-blue);
    margin: 32px 0;
    padding: 4px 0 4px 24px;
    color: #3a4651;
    font-style: italic;
    font-size: 1.12rem;
    background: var(--pd-bg);
    padding: 18px 24px;
    border-radius: 0 var(--pd-radius-sm) var(--pd-radius-sm) 0;
}
body.pd-blog-single .pd-blog-single-content a {
    color: var(--pd-blue);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color .15s ease;
}
body.pd-blog-single .pd-blog-single-content a:hover { color: var(--pd-blue-dark); }
body.pd-blog-single .pd-blog-single-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--pd-radius-md);
    margin: 28px auto;
    display: block;
}

/* CTA pós-artigo */
body.pd-blog-single .pd-section--blog-single-cta {
    background: linear-gradient(135deg, #001b38, var(--pd-blue-dark), var(--pd-blue));
    color: var(--pd-white);
    padding: 80px 24px;
    text-align: center;
}
body.pd-blog-single .pd-blog-single-cta-inner {
    max-width: 720px;
    margin: 0 auto;
}
body.pd-blog-single .pd-section--blog-single-cta h2 {
    color: var(--pd-white);
    font-size: clamp(1.6rem, 3.8vw, 2.2rem);
    margin: 0 0 16px;
}
body.pd-blog-single .pd-section--blog-single-cta p {
    color: rgba(255,255,255,0.92);
    margin: 0 0 28px;
    font-size: 1.06rem;
}

/* Posts relacionados */
body.pd-blog-single .pd-section--blog-single-related {
    background: var(--pd-bg);
    padding: 80px 24px;
}
body.pd-blog-single .pd-section--blog-single-related h2 {
    text-align: center;
    color: var(--pd-blue-dark);
    margin: 0 0 36px;
}

/* Catálogo cursos — linha visual mais clara */
body.pd-institutional .pd-section--catalogo .pd-linha-bloco {
    margin: 0 auto 72px;
}
body.pd-institutional .pd-section--catalogo .pd-linha-title {
    font-size: 1.7rem;
    padding-bottom: 14px;
    margin-bottom: 16px;
}
body.pd-institutional .pd-section--catalogo .pd-card--curso {
    padding: 30px 26px;
}

/* === TIPOGRAFIA PREMIUM (v0.7.0) ===
   Desktop: justify + hyphens auto → leitura editorial sofisticada
   Mobile : left + sem hyphens → legibilidade sem rios e sem palavras quebradas
   Aplicado em corpo de blog single + .pd-prose (renderers de texto longo). */
@media (min-width: 768px) {
    body.pd-blog-single .pd-blog-single-content p,
    .pd-prose p,
    .pd-prose li {
        text-align: justify;
        hyphens: auto;
        -webkit-hyphens: auto;
        -ms-hyphens: auto;
        text-justify: inter-word;
        word-spacing: -0.01em;
        overflow-wrap: break-word;
    }
}
@media (max-width: 767.98px) {
    body.pd-blog-single .pd-blog-single-content p,
    .pd-prose p,
    .pd-prose li {
        text-align: left;
        hyphens: none;
        -webkit-hyphens: none;
    }
}
/* Nunca justificar: headings, callouts, blockquotes, links isolados, listas curtas de CTA */
body.pd-blog-single .pd-blog-single-content h2,
body.pd-blog-single .pd-blog-single-content h3,
body.pd-blog-single .pd-blog-single-content blockquote,
.pd-prose h2,
.pd-prose h3,
.pd-prose blockquote {
    text-align: left !important;
    hyphens: none !important;
}

/* === UI POLISH v0.8.0 — refinamento premium (2026-05-16) ===
   1) Blog cards: títulos menores e em fonte body (não display Anton)
   2) Hero do blog archive: H1 menor, mais respiro vertical
   3) Mapa /contato: aspect-ratio mais baixa (21:9) — não mais 16:9
   4) Cards de curso com imagem (catálogo /cursos/): figure top + conteúdo bottom
*/

/* 1) Blog cards: título contido (forçar contra Kadence display) */
body.pd-blog-archive .pd-blog-card-title,
body.pd-institutional .pd-blog-card-title {
    font-family: var(--pd-font-body) !important;
    font-weight: 700 !important;
    font-size: 1.12rem !important;
    line-height: 1.32 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--pd-blue-dark);
    margin: 8px 0 10px;
}
body.pd-blog-archive .pd-blog-card-title a,
body.pd-institutional .pd-blog-card-title a {
    color: inherit;
    text-decoration: none;
}

/* 2) Blog hero — H1 mais contido, respiro reduzido */
body.pd-blog-archive .pd-section--blog-hero {
    padding: 56px 24px 64px !important;
}
body.pd-blog-archive .pd-section--blog-hero h1 {
    font-size: clamp(1.8rem, 3.4vw, 2.6rem) !important;
    line-height: 1.18 !important;
    max-width: 820px !important;
    margin: 0 auto 14px !important;
}

/* 3) Mapa /contato — mais baixo, sem dominar viewport */
body.pd-institutional .pd-mapa-wrap {
    aspect-ratio: 21 / 9 !important;
    max-height: 360px !important;
}

/* 4) Card de curso com imagem — definição canônica única no bloco
   "CARD DE CURSO OFICIAL — editorial técnico premium" (mais abaixo).
   O bloco duplicado que existia aqui foi consolidado lá para evitar
   drift visual entre dois conjuntos de regras concorrentes. */

/* === BREADCRUMBS INSTITUCIONAIS (v0.9.5) === */
.pd-hub-breadcrumbs {
    background: var(--pd-white);
    border-bottom: 1px solid var(--pd-line);
    padding: 14px var(--pd-pad-x-mobile);
    font-size: var(--pd-text-sm);
}
@media (min-width: 768px) {
    .pd-hub-breadcrumbs { padding: 14px var(--pd-pad-x-tablet); }
}
@media (min-width: 1024px) {
    .pd-hub-breadcrumbs { padding: 14px var(--pd-pad-x-desktop); }
}
.pd-hub-breadcrumbs-list {
    max-width: var(--pd-container-wide);
    margin: 0 auto;
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
}
.pd-hub-breadcrumb-item {
    display: inline-flex;
    align-items: center;
    color: var(--pd-ash);
}
.pd-hub-breadcrumb-item a {
    color: var(--pd-blue);
    text-decoration: none;
    transition: color 0.18s ease;
}
.pd-hub-breadcrumb-item a:hover {
    color: var(--pd-blue-dark);
    text-decoration: underline;
}
.pd-hub-breadcrumb-item--current span {
    color: var(--pd-text);
    font-weight: 500;
}
.pd-hub-breadcrumb-sep {
    margin: 0 8px;
    color: var(--pd-line);
}

/* === DEPOIMENTOS PAGE (v0.9.4) — premium institucional ===
   Cards com avatar circular + quote + nome + Instagram handle + curso. */
body.pd-institutional .pd-section--depoimentos-grid {
    background: var(--pd-white);
    padding: var(--pd-space-10) var(--pd-pad-x-mobile);
}
body.pd-institutional .pd-section--depoimentos-grid > .wp-block-group__inner-container,
body.pd-institutional .pd-section--depoimentos-grid > .pd-section-inner {
    max-width: var(--pd-container-content);
    margin: 0 auto;
}
body.pd-institutional .pd-section--depoimentos-grid h2 {
    text-align: center;
    color: var(--pd-blue-dark);
    margin: 0 auto 12px;
    font-family: var(--pd-font-display);
    font-size: var(--pd-h2);
    letter-spacing: -0.005em;
}
body.pd-institutional .pd-section--depoimentos-grid .pd-section-intro {
    text-align: center;
    max-width: 580px;
    margin: 0 auto var(--pd-space-7);
    color: var(--pd-ash);
}
body.pd-institutional .pd-grid--testimonials {
    display: grid;
    gap: var(--pd-space-5);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    body.pd-institutional .pd-grid--testimonials {
        grid-template-columns: repeat(3, 1fr);
    }
}
body.pd-institutional .pd-card--testimonial {
    background: var(--pd-bg);
    border-radius: var(--pd-radius-md);
    padding: 36px 28px 28px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border: 1px solid var(--pd-line);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
body.pd-institutional .pd-card--testimonial:hover {
    transform: translateY(-2px);
    box-shadow: var(--pd-shadow-md);
}
body.pd-institutional .pd-testimonial-avatar {
    width: 108px;
    height: 108px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid var(--pd-white);
    box-shadow: var(--pd-shadow-sm);
    margin: 0 auto 20px;
    flex: 0 0 auto;
}
body.pd-institutional .pd-testimonial-avatar img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
}
body.pd-institutional .pd-testimonial-quote {
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 0 18px !important;
    font-size: var(--pd-text-md);
    line-height: 1.5;
    color: var(--pd-text);
    font-style: normal;
    quotes: '\201C' '\201D';
}
body.pd-institutional .pd-testimonial-quote::before {
    content: open-quote;
    color: var(--pd-blue);
    font-family: var(--pd-font-display);
    font-size: 2.2rem;
    line-height: 0.5;
    display: block;
    margin-bottom: 4px;
}
body.pd-institutional .pd-testimonial-quote p {
    margin: 0 !important;
}
body.pd-institutional .pd-testimonial-name {
    margin: 0 0 4px !important;
    color: var(--pd-blue-dark);
    font-size: var(--pd-text-base);
}
body.pd-institutional .pd-testimonial-insta {
    margin: 0 0 8px !important;
    font-size: var(--pd-text-sm);
}
body.pd-institutional .pd-testimonial-insta a {
    color: var(--pd-blue);
    text-decoration: none;
    transition: color 0.18s ease;
}
body.pd-institutional .pd-testimonial-insta a:hover {
    color: var(--pd-blue-dark);
    text-decoration: underline;
}
body.pd-institutional .pd-testimonial-course {
    margin: 0 !important;
    font-size: var(--pd-text-xs);
    color: var(--pd-ash);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Imagem destaque institucional */
body.pd-institutional .pd-section--imagem-destaque {
    background: var(--pd-bg);
    padding: var(--pd-space-9) var(--pd-pad-x-mobile);
}
body.pd-institutional .pd-imagem-destaque {
    max-width: var(--pd-container-wide);
    margin: 0 auto;
    padding: 0;
}
body.pd-institutional .pd-imagem-destaque-img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: var(--pd-radius-md);
    box-shadow: var(--pd-shadow-md);
    display: block;
}
body.pd-institutional .pd-imagem-destaque-caption {
    text-align: center;
    color: var(--pd-ash);
    font-size: var(--pd-text-sm);
    margin-top: 12px;
    font-style: italic;
}

/* === MOBILE HAMBURGER NAV (v0.9.0) ===
   Botão hamburger escondido em desktop, visível em mobile.
   Overlay full-screen com lista vertical + WhatsApp CTA. */

/* Botão hamburger — hidden por default (desktop) */
.pd-hub-burger {
    display: none;
    background: none;
    border: 0;
    padding: 12px;
    margin-left: 8px;
    cursor: pointer;
    width: 44px;
    height: 44px;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    transition: opacity 0.18s ease;
}
.pd-hub-burger:hover { opacity: 0.7; }
.pd-hub-burger-line {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--pd-blue-dark);
    border-radius: 2px;
    transition: transform 0.25s ease, opacity 0.18s ease;
    transform-origin: center;
}
/* Burger animado em X quando ativo */
.pd-hub-burger.is-active .pd-hub-burger-line:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}
.pd-hub-burger.is-active .pd-hub-burger-line:nth-child(2) {
    opacity: 0;
}
.pd-hub-burger.is-active .pd-hub-burger-line:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* Overlay mobile */
.pd-hub-mobile-nav {
    position: fixed;
    inset: 0;
    background: rgba(0, 38, 77, 0.96);
    z-index: 9998;
    overflow-y: auto;
    opacity: 0;
    transition: opacity 0.28s ease;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
.pd-hub-mobile-nav.is-open {
    opacity: 1;
}
.pd-hub-mobile-nav-inner {
    max-width: 480px;
    margin: 0 auto;
    padding: 96px 32px 48px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-height: 100vh;
    box-sizing: border-box;
}
.pd-hub-mobile-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.pd-hub-mobile-nav-list li {
    margin: 0;
}
.pd-hub-mobile-nav-list a {
    display: block;
    padding: 16px 20px;
    border-radius: var(--pd-radius-md);
    color: var(--pd-white);
    font-family: var(--pd-font-display);
    font-size: 1.6rem;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    transition: background 0.18s ease;
}
.pd-hub-mobile-nav-list a:hover,
.pd-hub-mobile-nav-list a:focus {
    background: rgba(255, 255, 255, 0.08);
    outline: none;
}
.pd-hub-mobile-nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 24px;
    background: var(--pd-whatsapp);
    color: var(--pd-white);
    border-radius: var(--pd-btn-radius);
    font-family: var(--pd-font-body);
    font-size: var(--pd-text-base);
    font-weight: 700;
    text-decoration: none;
    transition: background 0.18s ease;
    margin-top: 8px;
}
.pd-hub-mobile-nav-cta:hover {
    background: var(--pd-whatsapp-d);
}
.pd-hub-mobile-nav-cta svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}
.pd-hub-social--mobile {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: flex;
    justify-content: center;
    gap: 18px;
}
.pd-hub-social--mobile li { margin: 0; }
.pd-hub-social--mobile a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: var(--pd-white);
    transition: background 0.18s ease;
}
.pd-hub-social--mobile a:hover { background: rgba(255, 255, 255, 0.18); }
.pd-hub-social--mobile svg {
    width: 20px !important;
    height: 20px !important;
    fill: currentColor;
}

/* Body lock quando menu aberto — evita scroll por baixo */
body.pd-hub-mobile-nav-open {
    overflow: hidden;
    touch-action: none;
}
/* Header fica acima do overlay para o burger continuar clicável (fechar com X) */
body.pd-hub-mobile-nav-open .pd-hub-header {
    position: relative;
    z-index: 9999;
}
.pd-hub-header { position: relative; z-index: 100; }

/* Responsive: hamburger só em mobile, esconde nav desktop */
@media (max-width: 767.98px) {
    .pd-hub-burger { display: inline-flex; }
    .pd-hub-nav,
    .pd-hub-header-right .pd-hub-social,
    .pd-hub-header-cta span {
        display: none !important;
    }
    /* WhatsApp do header vira só ícone em mobile (sem o "Falar no WhatsApp") */
    .pd-hub-header-cta {
        padding: 10px 14px !important;
    }
}
/* Em desktop, mobile-nav some completamente */
@media (min-width: 768px) {
    .pd-hub-mobile-nav { display: none !important; }
}

/* 5) Card badge "Especializações em destaque" — corrigir bolas azuis vazias
   Bug raiz 1: cards são flex-column e o badge herdou `flex: 1 1 0%` do
   Kadence wp-block-group, expandindo verticalmente até virar um balão
   azul gigante. Solução: forçar flex:0 0 auto + align-self:flex-start.
   Bug raiz 2: o badge é um <p>; regras de parágrafo do card pintavam o
   texto de cinza (#55606B) sobre o fundo azul — pílula parecia vazia.
   Solução: forçar color branco com !important (contraste WCAG AA). */
body.pd-institutional .pd-section--cursos-destaque .pd-card-badge,
.pd-section--cursos-destaque .pd-card-badge {
    display: inline-block !important;
    width: auto !important;
    max-width: max-content !important;
    height: auto !important;
    padding: 5px 14px !important;
    border-radius: 999px !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    line-height: 1.3;
    color: var(--pd-white) !important;
}

/* ============================================================================
   CARD DE CURSO OFICIAL — editorial técnico premium (Bloco B+E, 2026-05-21)
   Anatomia única (VISUAL_STANDARD §4): foto 4:3 no topo + bloco branco abaixo.
   Aplica-se a TODO card com a classe .pd-card--curso-com-imagem —
   Especializações e Quatro Linhas (Home) + catálogo /cursos.
   ========================================================================= */
body.pd-institutional .pd-card--curso-com-imagem {
    padding: 0 !important;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--pd-white);
    border: 1px solid var(--pd-line);
    border-radius: var(--pd-radius-md);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    transition: transform .25s ease-out, box-shadow .25s ease-out;
}
body.pd-institutional .pd-card--curso-com-imagem:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* Figura — quadrada (1:1, capas oficiais 1024×1024 entregues em media/).
   Todas as capas têm a mesma proporção — cover sem letterbox, sem crop perdido. */
body.pd-institutional .pd-card-figure--curso {
    margin: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--pd-blue-dark);
    position: relative;
}
body.pd-institutional .pd-card-figure--curso .pd-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .35s ease-out;
}
body.pd-institutional .pd-card--curso-com-imagem:hover .pd-card-img {
    transform: scale(1.03);
}
@media (max-width: 767.98px) {
    body.pd-institutional .pd-card-figure--curso { aspect-ratio: 1 / 1; }
}

/* Bloco de conteúdo — padding premium; CTA fixo no rodapé */
body.pd-institutional .pd-card--curso-com-imagem > *:not(.pd-card-figure--curso):not(figure) {
    padding-left: 26px;
    padding-right: 26px;
}
body.pd-institutional .pd-card--curso-com-imagem > .pd-card-badge {
    margin: 22px 0 0 26px !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
}
body.pd-institutional .pd-card--curso-com-imagem .pd-card-title--curso {
    margin-top: 14px !important;
}
body.pd-institutional .pd-card--curso-com-imagem > p {
    margin-top: 8px;
    color: var(--pd-text);
}
body.pd-institutional .pd-card--curso-com-imagem > .wp-block-buttons {
    padding-top: 18px;
    padding-bottom: 26px;
    margin-top: auto;
}

/* Status da turma (catálogo /cursos) — pílula de apoio acima do CTA */
body.pd-institutional .pd-card--curso-com-imagem .pd-curso-status {
    color: var(--pd-blue);
    font-size: 0.88rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 4px;
}

/* ============================================================================
   CARD DE CATÁLOGO — comercial-premium híbrido (curadoria 2026-05-22)
   Anatomia: capa 4:3 · pílula de status no topo · título grande · 1 linha · CTA.
   O posicionamento da pílula (margem/padding lateral) já vem das regras globais
   .pd-card--curso-com-imagem > .pd-card-badge. Aqui definimos só o visual.
   ========================================================================= */
body.pd-institutional .pd-section--catalogo .pd-card-badge {
    display: inline-block;
    width: auto;
    max-width: max-content;
    align-self: flex-start;
    flex: 0 0 auto;
    padding-top: 5px;
    padding-bottom: 5px;
    background: var(--pd-blue);
    color: var(--pd-white) !important;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.3;
    border-radius: 999px;
}

/* Título do card de catálogo com mais presença comercial */
body.pd-institutional .pd-section--catalogo .pd-card--curso-com-imagem .pd-card-title--curso {
    font-size: 1.34rem !important;
    line-height: 1.22;
    margin-top: 12px !important;
}

/* Resumo: leitura rápida — uma frase, sem virar parágrafo */
body.pd-institutional .pd-section--catalogo .pd-card--curso-com-imagem > p {
    font-size: 0.98rem;
    line-height: 1.5;
}

/* ============================================================================
   GALERIA CARROSSEL — Home: "Por dentro dos nossos cursos"
   Vanilla, leve, sem libs externas (pd-gallery-carousel.js).
   ========================================================================= */
.pd-section--galeria-carrossel {
    background: var(--pd-bg);
    padding-top: 56px;
    padding-bottom: 56px;
}
.pd-section--galeria-carrossel h2 { text-align: center; }
.pd-section--galeria-carrossel .pd-section-intro {
    text-align: center;
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
}
.pd-section--galeria-carrossel > .wp-block-buttons { margin-top: 24px; justify-content: center; }

.pd-gallery-carousel {
    position: relative;
    margin: 32px auto 0;
    max-width: 1120px;
    width: 100%;
}
.pd-gallery-viewport {
    overflow: hidden;
    border-radius: var(--pd-radius-md);
    box-shadow: 0 14px 40px rgba(0, 51, 102, 0.18);
    background: #000;
}
.pd-gallery-track {
    display: flex;
    width: 100%;
    transition: transform .55s cubic-bezier(.22,.61,.36,1);
    will-change: transform;
}
.pd-gallery-slide {
    flex: 0 0 100%;
    margin: 0;
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--pd-blue-deep);
}
.pd-gallery-slide .pd-gallery-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pd-gallery-caption {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 18px 24px;
    color: #fff;
    font-size: 0.95rem;
    background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 100%);
    margin: 0;
    text-shadow: 0 2px 8px rgba(0,0,0,0.55);
}
.pd-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 0;
    background: rgba(255,255,255,0.92);
    color: var(--pd-blue-dark);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18);
    transition: background .18s ease, transform .18s ease;
    display: grid;
    place-items: center;
    padding: 0 0 4px;
}
.pd-gallery-nav:hover { background: #fff; transform: translateY(-50%) scale(1.06); }
.pd-gallery-nav:focus-visible { outline: 2px solid var(--pd-blue); outline-offset: 2px; }
.pd-gallery-prev { left: 12px; }
.pd-gallery-next { right: 12px; }
.pd-gallery-dots {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 16px;
}
.pd-gallery-dot {
    width: 10px; height: 10px;
    border-radius: 999px;
    border: 0;
    background: rgba(0, 51, 102, 0.24);
    cursor: pointer;
    transition: background .18s ease, transform .18s ease, width .18s ease;
    padding: 0;
}
.pd-gallery-dot.is-active {
    background: var(--pd-blue);
    width: 28px;
}
.pd-gallery-dot:focus-visible { outline: 2px solid var(--pd-blue); outline-offset: 2px; }

@media (max-width: 640px) {
    .pd-gallery-nav { width: 38px; height: 38px; font-size: 1.4rem; }
    .pd-gallery-prev { left: 6px; }
    .pd-gallery-next { right: 6px; }
    .pd-gallery-caption { font-size: 0.85rem; padding: 14px 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .pd-gallery-track { transition: none; }
}

/* ============================================================================
   DEPOIMENTOS CARROSSEL — variante premium do pd-gallery-carousel
   Mesma mecânica de JS (autoplay/swipe/dots), visual de card centralizado
   sobre fundo branco em vez de "foto cheia".
   ========================================================================= */
.pd-section--depoimentos-carrossel {
    background: var(--pd-bg);
    padding-top: 56px;
    padding-bottom: 56px;
}
.pd-section--depoimentos-carrossel h2 { text-align: center; }
.pd-section--depoimentos-carrossel .pd-section-intro {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 28px;
}

.pd-gallery-carousel--testimonial {
    max-width: 920px;
}
.pd-gallery-carousel--testimonial .pd-gallery-viewport {
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    overflow: hidden;
}
.pd-gallery-slide--testimonial {
    aspect-ratio: auto;
    background: transparent;
    padding: 16px 56px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pd-testimonial-card {
    background: var(--pd-white);
    border-radius: var(--pd-radius-md);
    box-shadow: 0 18px 42px rgba(0, 51, 102, 0.10);
    padding: 38px 36px 30px;
    text-align: center;
    max-width: 720px;
    width: 100%;
    margin: 0 auto;
    border-top: 4px solid var(--pd-blue);
}
.pd-testimonial-card-avatar {
    width: 96px;
    height: 96px;
    margin: 0 auto 18px;
    border-radius: 999px;
    overflow: hidden;
    border: 3px solid var(--pd-blue);
    box-shadow: 0 6px 18px rgba(0, 51, 102, 0.18);
    background: var(--pd-bg);
}
.pd-testimonial-card-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pd-testimonial-card-quote {
    margin: 0 0 18px;
    padding: 0;
    border: 0;
    font-family: var(--pd-font-body);
    font-size: clamp(1rem, 1.6vw, 1.18rem);
    line-height: 1.55;
    color: var(--pd-text);
    font-style: italic;
    text-align: center;
}
.pd-testimonial-card-name {
    margin: 0 0 6px;
    color: var(--pd-blue-dark);
    font-size: 1.05rem;
}
.pd-testimonial-card-insta {
    display: inline-block;
    color: var(--pd-blue);
    text-decoration: none;
    font-size: 0.95rem;
    margin-bottom: 6px;
    transition: color .18s ease;
}
.pd-testimonial-card-insta:hover { color: var(--pd-blue-dark); text-decoration: underline; }
.pd-testimonial-card-course {
    margin: 4px 0 0;
    color: #55606b;
    font-size: 0.88rem;
    font-style: italic;
}

/* Setas claras para o fundo claro do carrossel de depoimentos */
.pd-gallery-carousel--testimonial .pd-gallery-nav {
    background: rgba(0, 51, 102, 0.08);
    color: var(--pd-blue-dark);
    box-shadow: 0 2px 10px rgba(0, 51, 102, 0.12);
}
.pd-gallery-carousel--testimonial .pd-gallery-nav:hover {
    background: rgba(0, 51, 102, 0.16);
}

@media (max-width: 640px) {
    .pd-gallery-slide--testimonial { padding: 8px 32px; }
    .pd-testimonial-card { padding: 28px 22px 24px; }
    .pd-testimonial-card-avatar { width: 80px; height: 80px; }
    .pd-testimonial-card-quote { font-size: 0.98rem; }
}

/* ============================================================================
   PÁGINA /galeria/ — múltiplos blocos pd-gallery-carousel
   Cada bloco renderizado por render_galeria_carrossel ganha background
   alternado para criar ritmo visual e separação clara.
   ========================================================================= */
body.pd-institutional .pd-section--galeria-carrossel + .pd-section--galeria-carrossel {
    margin-top: 0;
    padding-top: 64px;
}
body.pd-institutional .pd-section--galeria-carrossel:nth-of-type(odd) {
    background: var(--pd-white);
}
body.pd-institutional .pd-section--galeria-carrossel:nth-of-type(even) {
    background: var(--pd-bg);
}

/* ============================================================================
   TIPOGRAFIA GLOBAL — regra permanente do projeto
   Documentado em docs/01-architecture/VISUAL_TYPOGRAPHY_RULES.md
   Desktop: parágrafos justificados (premium reading).
   Mobile: left (justify quebra leitura em telas estreitas).
   Títulos: centralizados quando dentro de seções padrão.
   ========================================================================= */
@media (min-width: 768px) {
    body.pd-institutional .pd-section p:not(.pd-pre-headline):not(.pd-hero-subheadline):not(.pd-section-intro):not(.pd-card-badge):not(.pd-testimonial-card-name):not(.pd-testimonial-card-course):not(.pd-blog-card-cat):not(.pd-blog-card-excerpt) {
        text-align: justify;
        text-justify: inter-word;
        hyphens: auto;
        -webkit-hyphens: auto;
    }
    /* Hero/intro/cards continuam centralizados/left — justify só em parágrafos longos */
}

/* Centralização forte de títulos em seções padrão (já aplicada por classe;
   esse bloco garante que NÃO seja sobrescrita por Kadence inline). */
body.pd-institutional .pd-section > h2,
body.pd-institutional .pd-section > .wp-block-heading {
    text-align: center;
}
