/*
 * Planos públicos (/pro-valuation-360): identidade de cor por produto.
 * Paleta já usada no site (ver :root em planos/Valuation360.blade.php e index):
 *   navy #00234A (logótipo) · verde ValuNext #01D7A4 · roxo do "€" #8C3BAE.
 * O verde #01D7A4 é claro demais para texto/botões com texto branco, por isso o
 * verde de texto/botão é #007A60 (5,3:1 sobre branco); o #01D7A4 fica para faixas
 * e para o cartão navy. Todos os pares texto/fundo abaixo são >= 4,5:1.
 */
.plan--lite {
    --plan-accent: #007a60;       /* texto, preço, marcadores, botão (branco sobre ele: 5,3:1) */
    --plan-accent-strong: #005a48;
    --plan-strip: #01d7a4;
    --plan-tint: #e6f8f3;
    --plan-tint-ink: #006b55;     /* texto da etiqueta sobre o tint (5,9:1) */
    --plan-border: rgba(1, 215, 164, .55);
    --plan-focus: #00234a;
}

.plan--pro {
    --plan-accent: #01d7a4;       /* sobre o cartão navy: 8,4:1 */
    --plan-accent-strong: #00bf92;
    --plan-strip: #01d7a4;
    --plan-tint: #01d7a4;
    --plan-tint-ink: #00234a;
    --plan-border: #00234a;
    --plan-focus: #ffffff;
}

.plan--finance {
    --plan-accent: #8c3bae;       /* 6,3:1 sobre branco; branco sobre ele: 6,3:1 */
    --plan-accent-strong: #7a2f9a;
    --plan-strip: #8c3bae;
    --plan-tint: #f6eff9;
    --plan-tint-ink: #7a2f9a;     /* 6,9:1 sobre o tint */
    --plan-border: rgba(140, 59, 174, .4);
    --plan-focus: #00234a;
}

/* ---------- Cartões ---------- */
.pricing-grid { align-items: stretch; }

.pricing-grid .plan {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--plan-border);
    padding: 48px 36px 36px;
}

.pricing-grid .plan::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 6px;
    background: var(--plan-strip);
}

.pricing-grid .plan--pro {
    background: linear-gradient(160deg, #00234a 0%, #0c3768 100%);
    box-shadow: 0 18px 44px rgba(0, 35, 74, .32);
}

.pricing-grid .plan--pro::before {
    background: linear-gradient(90deg, #01d7a4, #8c3bae);
}

.pricing-grid .plan-badge {
    align-self: flex-start;
    color: var(--plan-tint-ink);
    background: var(--plan-tint);
    border-color: transparent;
    border-radius: 999px;
    padding: 5px 14px;
    margin-bottom: 22px;
}

.pricing-grid .plan--pro .plan-badge { font-weight: 800; }

.pricing-grid .plan .plan-desc { min-height: 4.65em; margin-bottom: 24px; }

.pricing-grid .plan .price-currency,
.pricing-grid .plan .price-amount { color: var(--plan-accent); }
.pricing-grid .plan--pro .price-amount { color: #fff; }
.pricing-grid .plan--pro .p360-plan-name { color: #fff; }
.pricing-grid .plan--pro .plan-desc,
.pricing-grid .plan--pro .price-period { color: #c7d3e6; }
.pricing-grid .plan--pro .plan-divider { background: rgba(255, 255, 255, .18); }
.pricing-grid .plan--pro .features li { color: #e3eaf5; }

.pricing-grid .plan .features { flex: 1 1 auto; margin-bottom: 28px; }
.pricing-grid .plan .features li .icon { color: var(--plan-accent); }

/* Botões e ligações alinhados em baixo, com a mesma altura nos 3 cartões */
.plan-actions { display: flex; flex-direction: column; gap: 4px; margin-top: auto; }

.pricing-grid .plan .btn-primary {
    background: var(--plan-accent);
    color: #fff;
    white-space: nowrap;
    min-height: 52px;
}
.pricing-grid .plan .btn-primary:hover,
.pricing-grid .plan .btn-primary:focus-visible {
    background: var(--plan-accent-strong);
    box-shadow: 0 8px 22px rgba(0, 35, 74, .22);
}
.pricing-grid .plan--pro .btn-primary { color: #00234a; font-weight: 700; }
.pricing-grid .plan--pro .btn-primary:hover,
.pricing-grid .plan--pro .btn-primary:focus-visible { color: #00234a; box-shadow: 0 8px 22px rgba(1, 215, 164, .35); }

.plan-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    color: var(--plan-accent);
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    border-radius: 6px;
}
.plan-link:hover { color: var(--plan-accent-strong); }
.pricing-grid .plan--pro .plan-link { color: #01d7a4; }
.pricing-grid .plan--pro .plan-link:hover { color: #fff; }

.pricing-grid .plan .btn:focus-visible,
.pricing-grid .plan .plan-link:focus-visible {
    outline: 3px solid var(--plan-focus);
    outline-offset: 3px;
}

/* PRO elevado em desktop: sobressai 16px para cima (conteúdo alinhado com os outros cartões,
   botões na mesma linha). Sem transform, para não desalinhar a base. */
@media (min-width: 901px) {
    .pricing-grid { padding-top: 16px; }
    .pricing-grid .plan--pro { margin-top: -16px; padding-top: 64px; box-shadow: 0 22px 50px rgba(0, 35, 74, .34); }
}

@media (max-width: 900px) {
    .pricing-grid .plan .plan-desc { min-height: 0; }
}

@media (max-width: 480px) {
    .pricing-grid .plan { padding: 40px 22px 28px; }
}

@media (prefers-reduced-motion: reduce) {
    .pricing-grid .plan,
    .pricing-grid .plan:hover,
    .pricing-grid .plan .btn { transition: none; }
    .pricing-grid .plan:hover { transform: none; }
    .pricing-grid .plan .btn-primary:hover { transform: none; }
}

/* ---------- Tabela de comparação ---------- */
.compare-scroll {
    overflow-x: auto;
    border: 1px solid rgba(0, 35, 74, .12);
    border-radius: 14px;
    background: #fff;
}
.compare-scroll:focus-visible { outline: 3px solid #00234a; outline-offset: 3px; }

.compare-scroll .compare-table { min-width: 680px; border-collapse: separate; border-spacing: 0; }

.compare-scroll .compare-table th,
.compare-scroll .compare-table td { padding: 15px 20px; border-bottom: 1px solid rgba(0, 35, 74, .08); }

.compare-scroll .compare-table thead th {
    font-size: 13px;
    letter-spacing: .08em;
    text-align: center;
    color: #fff;
    border-bottom: 0;
    padding-block: 18px;
}
.compare-scroll .compare-table thead th:first-child { background: #f3f6f9; color: #4b5568; text-align: left; }
.compare-scroll .compare-table thead th.col-lite { background: #007a60; }
.compare-scroll .compare-table thead th.col-pro { background: #00234a; }
.compare-scroll .compare-table thead th.col-finance { background: #8c3bae; }

.compare-scroll .compare-table tbody th[scope="row"] {
    text-align: left;
    text-transform: none;
    letter-spacing: 0;
    font-size: 14px;
    font-weight: 600;
    color: #00234a;
    background: #fff;
    min-width: 210px;
}
.compare-scroll .compare-table tbody tr:nth-child(even) th[scope="row"] { background: #f7f9fb; }
.compare-scroll .compare-table tbody tr:nth-child(even) td { background: #f7f9fb; }
.compare-scroll .compare-table tbody tr:last-child th,
.compare-scroll .compare-table tbody tr:last-child td { border-bottom: 0; }

.compare-scroll .compare-table tbody tr:hover td,
.compare-scroll .compare-table tbody tr:hover th { background: #eef3f8; }

/* Coluna PRO destacada em toda a altura */
.compare-scroll .compare-table td.col-pro {
    background: rgba(0, 35, 74, .06);
}
.compare-scroll .compare-table tbody tr:nth-child(even) td.col-pro { background: rgba(0, 35, 74, .09); }
.compare-scroll .compare-table tbody tr:hover td.col-pro { background: rgba(0, 35, 74, .12); }
.compare-scroll .compare-table td.col-pro { color: #1f2f46; font-weight: 500; }

/* Sim / Incluído / Não como ícones (texto acessível em .cmp-sr) */
.cmp-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    vertical-align: middle;
}
.cmp-ico svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.cmp-ico--yes { background: color-mix(in srgb, currentColor 13%, transparent); }
.col-lite .cmp-ico--yes { color: #007a60; }
.col-pro .cmp-ico--yes { color: #00234a; }
.col-finance .cmp-ico--yes { color: #8c3bae; }
.cmp-ico--no { color: #667085; width: 26px; }
.cmp-ico--no svg { width: 14px; }

.cmp-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.cmp-hint { display: none; margin: 0 0 8px; font-size: 12px; color: #4b5568; }

@media (max-width: 780px) {
    .cmp-hint { display: block; }
    .compare-scroll .compare-table tbody th[scope="row"] {
        position: sticky;
        left: 0;
        z-index: 1;
        min-width: 150px;
        box-shadow: 1px 0 0 rgba(0, 35, 74, .1);
    }
    .compare-scroll .compare-table thead th:first-child { position: sticky; left: 0; z-index: 2; }
    .compare-scroll .compare-table th,
    .compare-scroll .compare-table td { padding: 13px 14px; }
}

/* Título da secção: #7c8aa0 dava 3,5:1 (axe); #5f6b80 dá 5,4:1 */
.compare-section .section-label { color: #5f6b80; }
