/*
Theme Name: Nitidus Prisma
Theme URI: https://www.nitidusprisma.com.br
Author: Nitidus Prisma
Author URI: https://www.nitidusprisma.com.br
Description: Tema institucional responsivo para a Nitidus Prisma – Desenvolvimento Humano.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: nitidus-prisma
*/

:root {
      --azul: #071b33;
      --azul-2: #0d2d52;
      --dourado: #c7a24a;
      --dourado-claro: #e4c978;
      --off: #f7f3ec;
      --branco: #ffffff;
      --texto: #1f2933;
      --cinza: #65727f;
      --borda: rgba(199, 162, 74, 0.28);
      --sombra: 0 24px 70px rgba(7, 27, 51, 0.14);
      --radius: 26px;
    }

    * { box-sizing: border-box; }

    html { scroll-behavior: smooth; }

    body {
      margin: 0;
      font-family: "Segoe UI", Roboto, Arial, sans-serif;
      color: var(--texto);
      background: var(--off);
      line-height: 1.65;
    }

    a { color: inherit; text-decoration: none; }

    .np-site {
      overflow: hidden;
      background:
        radial-gradient(circle at top left, rgba(199, 162, 74, 0.16), transparent 34rem),
        radial-gradient(circle at 88% 8%, rgba(255,255,255,0.86), transparent 27rem),
        var(--off);
    }

    .np-container {
      width: min(1160px, calc(100% - 40px));
      margin: 0 auto;
    }

    .np-header {
      position: sticky;
      top: 0;
      z-index: 20;
      backdrop-filter: blur(18px);
      background: rgba(247, 243, 236, 0.82);
      border-bottom: 1px solid rgba(199, 162, 74, 0.18);
    }

    .np-nav {
      min-height: 78px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }

    .np-brand {
      display: flex;
      align-items: center;
      gap: 14px;
      font-weight: 700;
      letter-spacing: 0.18em;
      color: var(--azul);
      text-transform: uppercase;
    }

    .np-symbol {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: linear-gradient(145deg, var(--dourado), var(--dourado-claro));
      color: var(--azul);
      font-size: 27px;
      box-shadow: 0 12px 30px rgba(199,162,74,0.28);
    }

    .np-brand small {
      display: block;
      letter-spacing: 0.18em;
      color: var(--dourado);
      font-size: 0.68rem;
      margin-top: -4px;
    }

    .np-menu {
      display: flex;
      align-items: center;
      gap: 22px;
      color: var(--azul);
      font-size: 0.93rem;
      font-weight: 600;
    }

    .np-menu a { opacity: 0.86; }
    .np-menu a:hover { color: var(--dourado); opacity: 1; }

    .np-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      min-height: 48px;
      padding: 13px 22px;
      border-radius: 999px;
      font-weight: 700;
      border: 1px solid transparent;
      transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
      cursor: pointer;
    }

    .np-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 18px 36px rgba(7, 27, 51, 0.18);
    }

    .np-btn-primary {
      background: linear-gradient(135deg, var(--dourado), var(--dourado-claro));
      color: var(--azul);
    }

    .np-btn-secondary {
      border-color: rgba(199, 162, 74, 0.45);
      color: var(--azul);
      background: rgba(255,255,255,0.62);
    }

    .np-hero {
      padding: 92px 0 72px;
      position: relative;
    }

    .np-hero-grid {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 54px;
      align-items: center;
    }

    .np-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 8px 14px;
      border-radius: 999px;
      background: rgba(255,255,255,0.72);
      border: 1px solid var(--borda);
      color: var(--azul);
      font-weight: 700;
      font-size: 0.84rem;
      letter-spacing: .06em;
      text-transform: uppercase;
    }

    .np-eyebrow:before {
      content: "";
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--dourado);
      box-shadow: 0 0 0 6px rgba(199,162,74,0.15);
    }

    h1, h2, h3 {
      margin: 0;
      color: var(--azul);
      line-height: 1.1;
      letter-spacing: -0.035em;
    }

    h1 {
      font-size: clamp(2.8rem, 7vw, 5.9rem);
      margin-top: 24px;
      max-width: 860px;
    }

    .np-hero p {
      margin: 24px 0 0;
      color: #43505d;
      font-size: clamp(1.05rem, 2vw, 1.32rem);
      max-width: 720px;
    }

    .np-hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 14px;
      margin-top: 34px;
    }

    .np-hero-card {
      border: 1px solid var(--borda);
      background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,255,255,0.56));
      border-radius: 34px;
      padding: 28px;
      box-shadow: var(--sombra);
      position: relative;
    }

    .np-prisma {
      min-height: 430px;
      border-radius: 28px;
      background:
        linear-gradient(145deg, rgba(7,27,51,0.97), rgba(13,45,82,0.91)),
        radial-gradient(circle at top, rgba(228,201,120,0.25), transparent 18rem);
      padding: 34px;
      color: var(--branco);
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .np-prisma:after {
      content: "";
      position: absolute;
      inset: auto -18% -30% auto;
      width: 320px;
      height: 320px;
      border-radius: 50%;
      background: rgba(199,162,74,0.18);
      filter: blur(4px);
    }

    .np-prisma-mark {
      font-size: 5.6rem;
      line-height: 1;
      color: var(--dourado-claro);
      font-weight: 300;
    }

    .np-prisma h3 {
      color: var(--branco);
      font-size: 2.1rem;
      margin-top: 18px;
    }

    .np-prisma p {
      color: rgba(255,255,255,0.76);
      font-size: 1rem;
    }

    .np-pills {
      display: grid;
      gap: 10px;
      margin-top: 24px;
      position: relative;
      z-index: 2;
    }

    .np-pill {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 13px 16px;
      border-radius: 18px;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.12);
      color: rgba(255,255,255,0.92);
    }

    .np-section { padding: 82px 0; }

    .np-section-alt {
      background: rgba(255,255,255,0.48);
      border-top: 1px solid rgba(199,162,74,0.15);
      border-bottom: 1px solid rgba(199,162,74,0.15);
    }

    .np-section-head {
      max-width: 790px;
      margin-bottom: 36px;
    }

    .np-section-head.center {
      text-align: center;
      margin-left: auto;
      margin-right: auto;
    }

    .np-section-head h2 {
      font-size: clamp(2rem, 4vw, 3.4rem);
      margin-top: 14px;
    }

    .np-section-head p {
      margin: 16px 0 0;
      color: var(--cinza);
      font-size: 1.08rem;
    }

    .np-grid-2 {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 26px;
      align-items: stretch;
    }

    .np-grid-3 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }

    .np-grid-4 {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 18px;
    }

    .np-card {
      background: rgba(255,255,255,0.75);
      border: 1px solid var(--borda);
      border-radius: var(--radius);
      padding: 28px;
      box-shadow: 0 18px 54px rgba(7, 27, 51, 0.08);
    }

    .np-card h3 {
      font-size: 1.42rem;
      margin-bottom: 10px;
    }

    .np-card p, .np-card li { color: var(--cinza); }

    .np-icon {
      width: 50px;
      height: 50px;
      display: grid;
      place-items: center;
      border-radius: 16px;
      background: rgba(199,162,74,0.13);
      color: var(--dourado);
      font-size: 1.4rem;
      margin-bottom: 16px;
    }

    .np-list {
      padding: 0;
      margin: 0;
      list-style: none;
      display: grid;
      gap: 14px;
    }

    .np-list li {
      display: flex;
      gap: 12px;
      align-items: flex-start;
    }

    .np-list li:before {
      content: "✓";
      color: var(--dourado);
      font-weight: 900;
      margin-top: 1px;
    }

    .np-about-mentor {
      display: grid;
      grid-template-columns: 0.75fr 1.25fr;
      gap: 28px;
      align-items: stretch;
    }

    .np-photo-box {
      border-radius: 32px;
      min-height: 430px;
      background:
        linear-gradient(145deg, rgba(7,27,51,0.88), rgba(13,45,82,0.78)),
        radial-gradient(circle at 55% 35%, rgba(228,201,120,0.35), transparent 16rem);
      display: grid;
      place-items: center;
      color: var(--branco);
      text-align: center;
      padding: 30px;
      border: 1px solid var(--borda);
      box-shadow: var(--sombra);
    }

    .np-photo-placeholder {
      width: 210px;
      height: 210px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(228,201,120,0.42);
      color: var(--dourado-claro);
      font-size: 4.8rem;
      margin: 0 auto 20px;
    }

    .np-comparison {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 22px;
    }

    .np-before { border-left: 4px solid #9aa4af; }
    .np-after { border-left: 4px solid var(--dourado); }

    .np-program {
      position: relative;
      overflow: hidden;
    }

    .np-program.featured {
      background: linear-gradient(180deg, rgba(7,27,51,0.98), rgba(13,45,82,0.94));
      color: var(--branco);
      border-color: rgba(228,201,120,0.46);
    }

    .np-program.featured h3,
    .np-program.featured .np-price,
    .np-program.featured strong { color: var(--branco); }

    .np-program.featured p,
    .np-program.featured li { color: rgba(255,255,255,0.76); }

    .np-badge {
      display: inline-block;
      padding: 7px 12px;
      border-radius: 999px;
      background: rgba(199,162,74,0.12);
      color: var(--dourado);
      font-weight: 800;
      font-size: 0.82rem;
      margin-bottom: 14px;
    }

    .np-price {
      font-size: 2.25rem;
      font-weight: 900;
      color: var(--azul);
      margin: 18px 0 4px;
      letter-spacing: -0.04em;
    }

    .np-old-price {
      text-decoration: line-through;
      color: #8793a0;
      font-weight: 600;
    }

    .np-testimonial {
      min-height: 230px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .np-testimonial p {
      font-size: 1.04rem;
      color: #42505e;
      margin: 0;
    }

    .np-testimonial strong {
      color: var(--azul);
      margin-top: 20px;
      display: block;
    }

    .np-final {
      padding: 86px 0;
      background:
        linear-gradient(135deg, rgba(7,27,51,0.98), rgba(13,45,82,0.92)),
        radial-gradient(circle at 20% 20%, rgba(199,162,74,0.22), transparent 20rem);
      color: var(--branco);
      text-align: center;
    }

    .np-final h2 {
      color: var(--branco);
      font-size: clamp(2rem, 5vw, 4rem);
      max-width: 920px;
      margin: 0 auto;
    }

    .np-final p {
      color: rgba(255,255,255,0.74);
      max-width: 720px;
      margin: 22px auto 0;
      font-size: 1.14rem;
    }

    .np-contact-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 18px;
      margin-top: 34px;
    }

    .np-contact-item {
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.13);
      border-radius: 22px;
      padding: 20px;
      color: rgba(255,255,255,0.84);
      word-break: break-word;
    }

    .np-contact-item strong {
      display: block;
      color: var(--dourado-claro);
      margin-bottom: 6px;
    }

    .np-footer {
      padding: 28px 0;
      background: var(--azul);
      color: rgba(255,255,255,0.72);
      text-align: center;
      font-size: 0.92rem;
    }

    .np-float-whatsapp {
      position: fixed;
      right: 22px;
      bottom: 22px;
      width: 62px;
      height: 62px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: #25d366;
      color: #fff;
      font-size: 1.8rem;
      box-shadow: 0 18px 40px rgba(0,0,0,0.22);
      z-index: 30;
      transition: transform .25s ease;
    }

    .np-float-whatsapp:hover { transform: scale(1.06); }

    .np-reveal {
      animation: npFadeUp .8s ease both;
    }

    @keyframes npFadeUp {
      from { opacity: 0; transform: translateY(24px); }
      to { opacity: 1; transform: translateY(0); }
    }

    @media (max-width: 980px) {
      .np-menu { display: none; }
      .np-hero-grid, .np-about-mentor, .np-grid-2, .np-grid-3, .np-grid-4, .np-contact-grid {
        grid-template-columns: 1fr;
      }
      .np-hero { padding-top: 62px; }
      .np-prisma { min-height: 360px; }
      .np-comparison { grid-template-columns: 1fr; }
    }

    @media (max-width: 620px) {
      .np-container { width: min(100% - 26px, 1160px); }
      .np-nav { min-height: 68px; }
      .np-brand { letter-spacing: .11em; font-size: .9rem; }
      .np-symbol { width: 42px; height: 42px; }
      .np-section { padding: 58px 0; }
      .np-card, .np-hero-card { padding: 22px; border-radius: 22px; }
      .np-hero-actions .np-btn { width: 100%; }
      h1 { font-size: 2.65rem; }
      .np-float-whatsapp { width: 56px; height: 56px; right: 16px; bottom: 16px; }
    }
