:root{
    --facet-blue:#0a18d6;        /* azul principal */
    --facet-blue-deep:#0712a8;   /* azul escuro */
    --facet-blue-darker:#050d80;
    --facet-yellow:#ffc400;      /* amarelo */
    --facet-yellow-soft:#ffd23d;
    --yellow-a:#f3b23e;          /* degradê amarelo - cor 1 */
    --yellow-b:#fae04b;          /* degradê amarelo - cor 2 */
    --facet-sky:#2f9bf0;         /* azul claro / títulos */
    --facet-ink:#0c1023;
    --facet-gray:#b9bcc4;
    --facet-light:#f3f4f7;
    --shadow-soft:0 18px 40px -18px rgba(10,24,214,.45);
    --shadow-card:0 22px 45px -25px rgba(7,18,168,.55);
    --radius:22px;
    --nav-h:74px;
    --font-display:'Montserrat',sans-serif;
    --font-body:'Plus Jakarta Sans',system-ui,sans-serif;
  }

  *{ -webkit-tap-highlight-color:transparent; box-sizing:border-box; }
  html,body{ margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:var(--font-body);
    color:var(--facet-ink);
    overflow-x:hidden;
    background:#fff;
  }
  ::selection{ background:var(--facet-yellow); color:var(--facet-blue-deep); }

  h1,h2,h3,.display-font{ font-family:var(--font-display); }

  .section-title{
    font-family:var(--font-display);
    font-style:italic;
    font-weight:900;
    letter-spacing:-.01em;
    text-transform:uppercase;
    line-height:1;
  }

  /* ============ TOPBAR offset ============ */
  .topbar{ z-index:1031; transition:transform .35s ease; }
  .topbar.hide{ transform:translateY(-100%); }

  /* ============ NAVBAR ============ */
  .facet-nav{
    background:#fff;
    transition:top .35s ease, min-height .35s ease, box-shadow .35s ease;
    min-height:var(--nav-h);
    box-shadow:0 1px 0 rgba(12,16,35,.06);
    top:var(--tb-h,34px);            /* fica abaixo da topbar */
    z-index:1030;
  }
  .facet-nav.scrolled{
    box-shadow:0 12px 30px -18px rgba(12,16,35,.35);
    min-height:64px;
    top:0;                            /* topbar recolhe ao rolar */
  }
  /* Logo em SVG */
  .brand-img{
    height:46px; width:auto; display:block;
    transition:height .35s ease;
  }
  .facet-nav.scrolled .brand-img{ height:40px; }
  .footer-logo{
    height:80px; width:auto; display:block;
    /* a logo é azul/amarela; sobre o azul do rodapé deixamos um respiro claro */
     padding:8px 12px; border-radius:12px;
  }
  @media (max-width:575.98px){
    .brand-img{ height:40px; }
  }
  .facet-nav .nav-link{
    font-weight:700;
    font-size:.82rem;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--facet-blue-deep)!important;
    position:relative;
    margin:0 .15rem;
    padding:.5rem .65rem!important;
  }
  .facet-nav .nav-link::after{
    content:"";position:absolute;left:.65rem;right:.65rem;bottom:.25rem;height:2.5px;
    background:var(--facet-yellow);border-radius:3px;transform:scaleX(0);transform-origin:left;
    transition:transform .28s ease;
  }
  .facet-nav .nav-link:hover::after,.facet-nav .nav-link.active::after{ transform:scaleX(1); }
  .btn-estude{
    background:var(--facet-yellow);
    color:var(--facet-blue-deep);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
    font-size:.82rem;
    border-radius:50px;
    padding:.6rem 1.4rem;
    border:0;
    box-shadow:0 10px 22px -10px rgba(255,196,0,.9);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .btn-estude:hover{ transform:translateY(-2px); box-shadow:0 16px 26px -10px rgba(255,196,0,.95); color:var(--facet-blue-deep); }
  .navbar-toggler{ border:0; padding:.3rem; }
  .navbar-toggler:focus{ box-shadow:none; }

  /* Dropdown */
  .facet-nav .dropdown-toggle::after{ margin-left:.35rem; vertical-align:middle; }
  .facet-dropdown{
    border:0;border-radius:16px;padding:.5rem;margin-top:.6rem;min-width:230px;
    box-shadow:0 22px 45px -20px rgba(7,18,168,.45);
    animation:ddIn .22s ease;
  }
  @keyframes ddIn{ from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:none;} }
  .facet-dropdown .dropdown-item{
    font-weight:700;font-size:.82rem;letter-spacing:.02em;color:var(--facet-blue-deep);
    border-radius:10px;padding:.6rem .8rem;display:flex;align-items:center;gap:.6rem;transition:all .18s ease;
  }
  .facet-dropdown .dropdown-item i{ color:var(--facet-blue); font-size:1rem; width:18px; text-align:center; }
  .facet-dropdown .dropdown-item:hover,
  .facet-dropdown .dropdown-item:focus{ background:var(--facet-yellow); color:var(--facet-blue-deep); }
  .facet-dropdown .dropdown-item:hover i{ color:var(--facet-blue-deep); }
  .facet-dropdown .dropdown-divider{ margin:.4rem .3rem; opacity:.12; }

  /* ============ HERO SLIDER ============ */
  .hero{
    position:relative;
    width:100%;
    line-height:0;
  }

  /* Toda a cadeia Bootstrap deve ser 100% da largura */
  .hero .carousel,
  .hero .carousel-inner,
  .hero .carousel-item{
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
  }
  /* Fade: opacidade suave, sem translação que varia a altura */
  .hero .carousel-item{
    transition:opacity .8s ease;
  }
  /* Itens inativos ficam absolutamente posicionados — altura do carousel
     sempre igual ao item ativo, sem salto de layout */
  .hero .carousel-item:not(.active){
    position:absolute;
    top:0;left:0;
    width:100%;
  }

  /* Link wrapper */
  .hero-slide-link{
    display:block;
    width:100%;
    line-height:0;
  }

  /* <picture>: inline por padrão — forçar bloco full-width */
  .hero-slide-picture{
    display:block;
    width:100%;
    margin:0;
    padding:0;
    line-height:0;
  }

  /* <img>: largura total, altura ditada pela proporção real da imagem */
  .hero-slide-img{
    display:block;
    width:100%;
    height:auto;
    margin:0;
    padding:0;
    vertical-align:top;     /* evita espaço fantasma abaixo da imagem */
  }

  /* Placeholder quando não há imagem cadastrada */
  .hero-slide-placeholder{
    display:block;
    width:100%;
    aspect-ratio:16/7;
    background:linear-gradient(135deg, var(--facet-blue) 0%, var(--facet-blue-deep) 55%, var(--facet-blue-darker) 100%);
  }
  /* Placeholder de imagem — troque o background-image para a foto real */
  .img-ph{
    background:linear-gradient(135deg,#c9cdd6,#aeb2bd);
    color:#fff;
    display:flex;align-items:center;justify-content:center;
    font-family:var(--font-display);font-weight:800;letter-spacing:.2em;
    text-transform:uppercase;font-size:.95rem;
    position:relative;
  }
  .img-ph::after{
    content:"";position:absolute;inset:0;
    background:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 14px,transparent 14px 28px);
  }
  .hero-slide .slide-caption{
    position:relative;z-index:2;text-align:center;color:#fff;padding:1.5rem;max-width:760px;
  }
  .hero-slide .slide-caption .eyebrow{
    display:inline-block;background:var(--facet-yellow);color:var(--facet-blue-deep);
    font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;
    padding:.35rem .9rem;border-radius:50px;margin-bottom:1rem;
  }
  .hero-slide h2{
    font-style:italic;font-weight:900;text-transform:uppercase;
    font-size:clamp(1.9rem,5vw,3.6rem);line-height:1;text-shadow:0 10px 30px rgba(0,0,0,.25);
  }
  .hero .carousel-indicators [data-bs-target]{ width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.55); }
  .hero .carousel-indicators .active{ background:var(--facet-yellow);width:26px;border-radius:6px; }
  .hero .carousel-control-prev,.hero .carousel-control-next{ width:7%; opacity:.85; }

  /* ============ FAIXA AMARELA / CURSOS ============ */
  .courses-band{
    background:linear-gradient(45deg, var(--yellow-a) 0%, var(--yellow-b) 100%);
    position:relative;padding:3rem 0 4rem;
  }
  .picker-card{
    background:#fff;border-radius:28px;
    box-shadow:0 30px 60px -30px rgba(7,18,168,.5);
    padding:2rem clamp(1.2rem,4vw,2.6rem);
    margin-top:-5rem;position:relative;z-index:10;
  }
  .picker-label{
    font-family:var(--font-display);font-style:italic;font-weight:900;
    color:var(--facet-blue-deep);text-transform:uppercase;line-height:1.05;
    font-size:clamp(1.3rem,3vw,1.7rem);
  }
  .form-select-facet{
    border:2px solid #e7e8ee;border-radius:14px;padding:.95rem 1.1rem;
    font-weight:600;color:var(--facet-blue-deep);font-size:1.05rem;
    background-color:#f6f7fa;
  }
  .form-select-facet:focus{ border-color:var(--facet-blue); box-shadow:0 0 0 .25rem rgba(10,24,214,.15); }

  .seg-filter{
    display:inline-flex;background:var(--facet-blue);border-radius:50px;padding:.4rem;
    box-shadow:var(--shadow-card);flex-wrap:wrap;justify-content:center;gap:.25rem;
  }
  .seg-filter button{
    border:0;background:transparent;color:#fff;font-weight:800;text-transform:uppercase;
    letter-spacing:.04em;font-size:.8rem;padding:.55rem 1.15rem;border-radius:50px;transition:all .25s ease;
  }
  .seg-filter button.active{ background:var(--facet-yellow); color:var(--facet-blue-deep); }
  .seg-filter button:not(.active):hover{ background:rgba(255,255,255,.14); }

  /* Carrossel de cursos (scroll horizontal) */
  .courses-track{
    display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;
    padding:.5rem .25rem 1rem;scroll-behavior:smooth;
    scrollbar-width:none;
  }
  .courses-track::-webkit-scrollbar{ display:none; }
  .course-card{
    flex:0 0 auto;width:min(220px,72vw);scroll-snap-align:start;
    background:#fff;border-radius:var(--radius);overflow:hidden;
    box-shadow:var(--shadow-card);transition:transform .3s ease, box-shadow .3s ease;
    display:flex;flex-direction:column;height:320px;
  }
  .course-card > a{
    display:flex !important;flex-direction:column;height:100%;
  }
  .course-card:hover{ transform:translateY(-8px); box-shadow:0 30px 50px -22px rgba(7,18,168,.6); }
  .course-card .ph-top{ height:160px;flex-shrink:0; }
  .course-card .meta{
    background:linear-gradient(160deg, var(--facet-blue) 0%, var(--facet-blue-deep) 100%);color:#fff;padding:1rem 1rem 1.2rem;text-align:center;flex:1;
    display:flex;flex-direction:column;justify-content:center;overflow:hidden;
  }
  .course-card .meta .tag{
    font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.85;margin-bottom:.2rem;flex-shrink:0;
  }
  .course-card .meta .name{
    font-family:var(--font-display);font-weight:800;text-transform:uppercase;
    color:var(--facet-yellow);font-size:1.05rem;line-height:1.1;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  }
  .course-card .meta .go{
    margin-top:.7rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
    color:#fff;opacity:.9;display:inline-flex;align-items:center;gap:.3rem;justify-content:center;
  }
  .track-btn{
    width:48px;height:48px;border-radius:50%;border:0;background:var(--facet-blue);color:#fff;
    display:grid;place-items:center;font-size:1.3rem;box-shadow:var(--shadow-card);transition:transform .2s ease,background .2s ease;
  }
  .track-btn:hover{ background:var(--facet-blue-deep); transform:scale(1.08); }
  .track-btn:disabled{ opacity:.35; cursor:not-allowed; transform:none; }

  /* ============ SOBRE A FACET ============ */
  .about-img{
    border-radius:26px;overflow:hidden;box-shadow:var(--shadow-soft);
    height:100%;min-height:300px;
  }
  .about-text p{ color:#3a3f52; line-height:1.75; }
  .link-more{
    font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--facet-blue);
    text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;
  }
  .link-more:hover{ color:var(--facet-blue-deep); }
  .link-more i{ transition:transform .25s ease; }
  .link-more:hover i{ transform:translateX(5px); }

  /* ============ GALERIA ============ */
  .gallery-item{
    position:relative;border-radius:18px;overflow:hidden;cursor:pointer;height:180px;
    box-shadow:0 14px 30px -18px rgba(12,16,35,.4);
  }
  .gallery-item .img-ph{ width:100%;height:100%; }
  .gallery-item .overlay{
    position:absolute;inset:0;background:linear-gradient(to top,rgba(7,18,168,.85),rgba(7,18,168,0) 55%);
    opacity:0;transition:opacity .35s ease;display:flex;align-items:flex-end;padding:1rem;color:#fff;
  }
  .gallery-item .overlay .zoom{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.6);
    width:54px;height:54px;border-radius:50%;background:var(--facet-yellow);color:var(--facet-blue-deep);
    display:grid;place-items:center;font-size:1.4rem;transition:transform .35s ease;
  }
  .gallery-item:hover .overlay{ opacity:1; }
  .gallery-item:hover .overlay .zoom{ transform:translate(-50%,-50%) scale(1); }
  .gallery-item .cap{ font-weight:700;font-size:.85rem;position:relative;z-index:2; }

  /* ============ PORTAIS ============ */
  .portal-band{
    background:var(--facet-ink);padding:1.1rem;text-align:center;
  }
  .portal-pill{
    display:inline-flex;gap:.4rem;align-items:center;flex-wrap:wrap;justify-content:center;
    font-family:var(--font-display);font-style:italic;font-weight:900;text-transform:uppercase;
    font-size:clamp(1.1rem,3vw,1.5rem);
  }
  .portal-pill a{ color:var(--facet-yellow);text-decoration:none;transition:opacity .2s ease;padding:.2rem .4rem; }
  .portal-pill a:hover{ opacity:.7; }
  .portal-pill .sep{ color:#fff;opacity:.4;font-weight:400; }

  /* ============ BANNERS ============ */
  .banner-card{
    background:linear-gradient(140deg, var(--facet-blue) 0%, var(--facet-blue-deep) 100%);border-radius:22px;padding:2rem 1.5rem;color:#fff;text-decoration:none;
    display:flex;flex-direction:column;justify-content:center;min-height:170px;position:relative;overflow:hidden;
    transition:transform .3s ease, box-shadow .3s ease;box-shadow:var(--shadow-card);
  }
  .banner-card::before{
    content:"";position:absolute;right:-30px;bottom:-30px;width:130px;height:130px;border-radius:50%;
    background:rgba(255,255,255,.08);transition:transform .4s ease;
  }
  .banner-card:hover{ transform:translateY(-6px); box-shadow:0 30px 50px -22px rgba(7,18,168,.7); color:#fff; }
  .banner-card:hover::before{ transform:scale(1.6); }
  .banner-card .b-icon{ font-size:2rem;color:var(--facet-yellow);margin-bottom:.7rem; }
  .banner-card h5{ font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:1.15rem;margin:0;line-height:1.1; }
  .banner-card .arrow{ position:absolute;top:1.2rem;right:1.4rem;font-size:1.1rem;opacity:.6; }

  /* ============ FOOTER ============ */
  .facet-footer{ background:linear-gradient(160deg, var(--facet-blue) 0%, var(--facet-blue-deep) 70%, var(--facet-blue-darker) 100%); color:#fff; }
  .facet-footer a{ color:rgba(255,255,255,.82);text-decoration:none;transition:color .2s ease; }
  .facet-footer a:hover{ color:var(--facet-yellow); }
  .footer-title{
    font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:.95rem;
    letter-spacing:.03em;margin-bottom:1.1rem;color:var(--facet-yellow);
  }
  .footer-list{ list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem;font-size:.92rem; }
  .footer-list li i{ color:var(--facet-yellow);margin-right:.45rem; }
  .footer-social a{
    width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.1);display:grid;place-items:center;
    font-size:1.1rem;transition:all .25s ease;
  }
  .footer-social a:hover{ background:var(--facet-yellow);color:var(--facet-blue-deep); }
  .footer-big{
    font-family:var(--font-display);font-style:italic;font-weight:900;text-transform:uppercase;
    color:var(--facet-sky);font-size:clamp(2rem,7vw,4rem);line-height:1;opacity:.9;
  }
  .footer-bottom{ background:var(--facet-blue-darker);font-size:.82rem; }

  /* ============ TOP BAR (avisos) ============ */
  .topbar{
    background:var(--facet-blue-deep);color:#fff;font-size:.8rem;font-weight:600;
    letter-spacing:.02em;overflow:hidden;
  }
  .topbar .container{ display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.45rem;padding-bottom:.45rem; }
  .topbar .tb-left{ display:flex;align-items:center;gap:.5rem;min-width:0; }
  .topbar .tb-badge{ background:var(--facet-yellow);color:var(--facet-blue-deep);font-weight:800;text-transform:uppercase;font-size:.66rem;padding:.15rem .55rem;border-radius:50px;white-space:nowrap; }
  .topbar .tb-msg{ white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
  .topbar a.tb-cta{ color:var(--facet-yellow);font-weight:800;text-decoration:none;white-space:nowrap; }
  .topbar a.tb-cta:hover{ text-decoration:underline; }
  .topbar .tb-contacts{ display:flex;gap:1.2rem; }
  .topbar .tb-contacts a{ color:rgba(255,255,255,.85);text-decoration:none; }
  .topbar .tb-contacts a:hover{ color:var(--facet-yellow); }

  /* ============ FAIXA VESTIBULAR ============ */
  .vestibular-band{
    background:
      radial-gradient(700px 400px at 85% 20%, rgba(47,155,240,.30), transparent 60%),
      linear-gradient(120deg, var(--facet-blue) 0%, var(--facet-blue-deep) 60%, var(--facet-blue-darker) 100%);
    color:#fff;position:relative;overflow:hidden;
  }
  .vestibular-band::after{
    content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;
    background:radial-gradient(circle,rgba(255,196,0,.28),transparent 70%);
  }
  .vest-tag{ display:inline-block;background:var(--facet-yellow);color:var(--facet-blue-deep);font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;padding:.35rem .9rem;border-radius:50px;margin-bottom:.8rem; }
  .vest-title{ font-family:var(--font-display);font-style:italic;font-weight:900;text-transform:uppercase;font-size:clamp(1.6rem,4vw,2.6rem);line-height:1; }
  .vest-meta{ display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1rem; }
  .vest-meta .vm{ display:flex;align-items:center;gap:.5rem;font-weight:600; }
  .vest-meta .vm i{ color:var(--facet-yellow);font-size:1.3rem; }
  .btn-vest{ background:var(--facet-yellow);color:var(--facet-blue-deep);font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:50px;padding:.9rem 2rem;border:0;box-shadow:0 14px 28px -12px rgba(255,196,0,.9);transition:transform .2s ease; }
  .btn-vest:hover{ transform:translateY(-3px);color:var(--facet-blue-deep); }
  .btn-vest-ghost{ background:transparent;color:#fff;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border:2px solid rgba(255,255,255,.5);border-radius:50px;padding:.85rem 1.8rem;transition:all .2s ease; }
  .btn-vest-ghost:hover{ background:#fff;color:var(--facet-blue-deep);border-color:#fff; }

  /* ============ FORMAS DE INGRESSO ============ */
  .ingresso-card{
    background:#fff;border:2px solid #eef0f5;border-radius:18px;padding:1.5rem;height:100%;text-align:center;transition:all .3s ease;
  }
  .ingresso-card:hover{ border-color:var(--facet-yellow);transform:translateY(-6px);box-shadow:var(--shadow-card); }
  .ingresso-card .ic{ width:62px;height:62px;border-radius:16px;background:var(--facet-blue);color:var(--facet-yellow);display:grid;place-items:center;font-size:1.6rem;margin:0 auto 1rem; }
  .ingresso-card h6{ font-family:var(--font-display);font-weight:800;text-transform:uppercase;color:var(--facet-blue-deep);font-size:1rem; }
  .ingresso-card p{ font-size:.88rem;color:#5a6072;margin:0; }

  /* ============ DIFERENCIAIS ============ */
  .diff-section{ background:var(--facet-light); }
  .diff-card{ background:#fff;border-radius:20px;padding:2rem 1.5rem;height:100%;box-shadow:0 16px 34px -24px rgba(12,16,35,.4);transition:transform .3s ease;position:relative;overflow:hidden; }
  .diff-card:hover{ transform:translateY(-8px); }
  .diff-card .dc-icon{ font-size:2.2rem;color:var(--facet-blue);margin-bottom:.9rem; }
  .diff-card h5{ font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:1.05rem;color:var(--facet-blue-deep); }
  .diff-card p{ font-size:.9rem;color:#5a6072;margin:0; }
  .diff-card::before{ content:"";position:absolute;left:0;top:0;height:5px;width:0;background:var(--facet-yellow);transition:width .35s ease; }
  .diff-card:hover::before{ width:100%; }

  /* ============ NÚMEROS ============ */
  .stats-band{ background:radial-gradient(600px 400px at 15% 0%, rgba(47,155,240,.22), transparent 60%), linear-gradient(120deg,var(--facet-blue) 0%,var(--facet-blue-deep) 60%,var(--facet-blue-darker) 100%);color:#fff;position:relative;overflow:hidden; }
  .stats-band::before{ content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.03) 0 18px,transparent 18px 36px);pointer-events:none; }
  .stat-item{ text-align:center;position:relative;z-index:2; }
  .stat-item .num{ font-family:var(--font-display);font-style:italic;font-weight:900;font-size:clamp(2.4rem,6vw,3.6rem);line-height:1;color:var(--facet-yellow); }
  .stat-item .lbl{ font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;opacity:.92;margin-top:.4rem; }

  /* ============ DEPOIMENTOS ============ */
  .depo-card{ background:#fff;border-radius:20px;padding:2rem;box-shadow:var(--shadow-card);margin:.5rem;height:100%; }
  .depo-card .quote{ font-size:1.8rem;color:var(--facet-yellow);line-height:1; }
  .depo-card p{ color:#3a3f52;font-style:italic;line-height:1.7;margin:.6rem 0 1.2rem; }
  .depo-person{ display:flex;align-items:center;gap:.8rem; }
  .depo-person .av{ width:48px;height:48px;border-radius:50%;background:var(--facet-blue);color:var(--facet-yellow);display:grid;place-items:center;font-weight:800;font-family:var(--font-display); }
  .depo-person .nm{ font-weight:800;color:var(--facet-blue-deep);font-size:.95rem;line-height:1.1; }
  .depo-person .rl{ font-size:.78rem;color:#7a8092; }

  /* ============ NOTÍCIAS ============ */
  .news-card{ background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 16px 34px -24px rgba(12,16,35,.4);height:100%;transition:transform .3s ease;display:flex;flex-direction:column;text-decoration:none; }
  .news-card:hover{ transform:translateY(-8px);box-shadow:var(--shadow-card); }
  .news-card .news-img{ height:180px; }
  .news-card .news-body{ padding:1.3rem;display:flex;flex-direction:column;flex:1; }
  .news-card .news-date{ font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--facet-blue);display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem; }
  .news-card h5{ font-family:var(--font-display);font-weight:800;color:var(--facet-ink);font-size:1.05rem;line-height:1.2; }
  .news-card p{ font-size:.88rem;color:#5a6072;flex:1; }
  .news-card .rd{ font-weight:800;text-transform:uppercase;font-size:.74rem;letter-spacing:.05em;color:var(--facet-blue);display:inline-flex;align-items:center;gap:.35rem; }

  /* ============ FAQ ============ */
  .faq .accordion-item{ border:0;border-radius:16px!important;overflow:hidden;margin-bottom:.8rem;box-shadow:0 10px 26px -20px rgba(12,16,35,.5); }
  .faq .accordion-button{ font-family:var(--font-display);font-weight:700;color:var(--facet-blue-deep);background:#fff;font-size:1rem; }
  .faq .accordion-button:not(.collapsed){ background:var(--facet-blue);color:#fff; }
  .faq .accordion-button:focus{ box-shadow:none; }
  .faq .accordion-button:not(.collapsed)::after{ filter:brightness(0) invert(1); }
  .faq .accordion-body{ color:#5a6072;font-size:.92rem;line-height:1.7; }

  /* ============ WHATSAPP FLUTUANTE ============ */
  .wa-float{ position:fixed;left:18px;bottom:18px;z-index:60;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;font-size:1.9rem;box-shadow:0 14px 30px -8px rgba(37,211,102,.7);transition:transform .25s ease;animation:waPulse 2.5s infinite; }
  .wa-float:hover{ transform:scale(1.1);color:#fff; }
  @keyframes waPulse{ 0%{box-shadow:0 0 0 0 rgba(37,211,102,.5);} 70%{box-shadow:0 0 0 16px rgba(37,211,102,0);} 100%{box-shadow:0 0 0 0 rgba(37,211,102,0);} }

  /* ============ LGPD ============ */
  .cookie-bar{ position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:70;max-width:680px;width:calc(100% - 32px);background:#fff;border-radius:18px;box-shadow:0 24px 50px -18px rgba(12,16,35,.45);padding:1.1rem 1.3rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;border:1px solid #eef0f5; }
  .cookie-bar p{ margin:0;font-size:.85rem;color:#5a6072;flex:1;min-width:200px; }
  .cookie-bar .btn-cookie{ background:var(--facet-blue);color:#fff;font-weight:700;border:0;border-radius:50px;padding:.6rem 1.4rem;font-size:.85rem; }
  .cookie-bar .btn-cookie:hover{ background:var(--facet-blue-deep); }

  /* ============ REVEAL ============ */
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:none; }

  /* ============ BACK TO TOP ============ */
  #toTop{
    position:fixed;right:18px;bottom:18px;z-index:60;width:48px;height:48px;border-radius:50%;
    background:var(--facet-yellow);color:var(--facet-blue-deep);border:0;display:grid;place-items:center;
    font-size:1.3rem;box-shadow:0 14px 26px -12px rgba(0,0,0,.5);opacity:0;visibility:hidden;
    transition:all .3s ease;
  }
  #toTop.show{ opacity:1;visibility:visible; }

  @media (max-width:991.98px){
    .facet-nav .navbar-nav{ padding:1rem 0; gap:.2rem; }
    .facet-nav .nav-link::after{ display:none; }
    .btn-estude{ margin-top:.6rem; width:100%; }
  }

/* ============================================================
   PÁGINA SINGLE (detalhe do curso)
   ============================================================ */
.course-hero{
  background:linear-gradient(135deg, var(--facet-blue) 0%, var(--facet-blue-deep) 100%);
  position:relative; color:#fff; text-align:center;
}
.course-hero .ch-inner{ padding:2.4rem 1rem; }
.course-hero h1{
  font-family:var(--font-display);font-style:italic;font-weight:900;text-transform:uppercase;
  font-size:clamp(1.7rem,5vw,3rem);line-height:1;margin:0;letter-spacing:-.01em;
}
.course-hero .ch-bar{ height:10px;background:linear-gradient(45deg,var(--yellow-a),var(--yellow-b)); }
.course-hero .breadcrumb{ justify-content:center;margin-top:.8rem;margin-bottom:0; }
.course-hero .breadcrumb a{ color:rgba(255,255,255,.8);text-decoration:none;font-size:.82rem;font-weight:600; }
.course-hero .breadcrumb a:hover{ color:var(--facet-yellow); }
.course-hero .breadcrumb-item+.breadcrumb-item::before{ color:rgba(255,255,255,.5); }
.course-hero .breadcrumb-item.active{ color:var(--facet-yellow);font-size:.82rem;font-weight:700; }

/* coluna da imagem + card coordenador */
.course-figure{ position:relative; }
.course-figure .main-img{
  border-radius:26px;overflow:hidden;min-height:380px;box-shadow:var(--shadow-soft);
}
.coord-card{
  position:absolute;left:18px;bottom:-30px;width:160px;border-radius:18px;overflow:hidden;
  box-shadow:var(--shadow-card);background:#fff;
}
.coord-card .coord-img{ height:120px; }
.coord-card .coord-name{
  background:linear-gradient(160deg,var(--facet-blue),var(--facet-blue-deep));color:var(--facet-yellow);
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:.78rem;line-height:1.1;
  text-align:center;padding:.7rem .5rem;
}
@media (max-width:575.98px){
  .course-figure .main-img{ min-height:280px; }
  .coord-card{ width:130px;left:12px;bottom:-24px; }
}

.course-desc p{ color:#3a3f52;line-height:1.75;margin-bottom:1rem; }

/* botões grandes de CTA */
.btn-matricula{
  display:inline-block;width:100%;text-align:center;text-decoration:none;
  background:linear-gradient(45deg,var(--yellow-a),var(--yellow-b));color:var(--facet-blue-deep);
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(1rem,2.5vw,1.3rem);padding:1rem 1.4rem;border:0;border-radius:16px;
  box-shadow:0 16px 30px -14px rgba(243,178,62,.9);transition:transform .2s ease, box-shadow .2s ease;
}
.btn-matricula:hover{ transform:translateY(-3px);color:var(--facet-blue-deep);box-shadow:0 22px 36px -14px rgba(243,178,62,.95); }
.btn-matricula-blue{
  display:inline-block;text-decoration:none;
  background:linear-gradient(140deg,var(--facet-blue),var(--facet-blue-deep));color:#fff;
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;
  font-size:clamp(1rem,2.5vw,1.25rem);padding:1rem 2.4rem;border:0;border-radius:16px;
  box-shadow:var(--shadow-card);transition:transform .2s ease;
}
.btn-matricula-blue:hover{ transform:translateY(-3px);color:#fff; }
.btn-grade{
  display:inline-block;text-decoration:none;background:transparent;color:var(--facet-blue);
  border:2px solid var(--facet-blue);border-radius:50px;font-weight:800;text-transform:uppercase;
  letter-spacing:.04em;font-size:.85rem;padding:.8rem 2rem;transition:all .2s ease;
}
.btn-grade:hover{ background:var(--facet-blue);color:#fff; }

/* título de seção com a barrinha (igual aos do mock) */
.titulo-secao{
  font-family:var(--font-display);font-style:italic;font-weight:900;text-transform:uppercase;
  color:var(--facet-blue);font-size:clamp(1.4rem,4vw,2rem);line-height:1;
}
.titulo-secao.center{ text-align:center; }

/* bloco com borda lateral (mercado / detalhes) */
.info-block{ padding-left:1.2rem;border-left:3px solid #e7e8ee; }
.info-block h4{
  font-family:var(--font-display);font-style:italic;font-weight:900;text-transform:uppercase;
  color:var(--facet-blue);font-size:clamp(1.1rem,3vw,1.4rem);margin-bottom:1rem;
}
.info-block p{ color:#3a3f52;line-height:1.7;font-size:.92rem; }
.detail-row{ display:flex;gap:.6rem;font-size:.92rem;margin-bottom:.55rem;color:#3a3f52; }
.detail-row .k{ font-weight:800;color:var(--facet-blue-deep);min-width:130px;flex-shrink:0; }

/* ============ CARD DE PROFESSOR ============ */
.prof-card{ width:min(180px,66vw)!important; } /* card um pouco menor que de curso */

/* Foto quadrada 1:1 */
.prof-img-wrap{
  width:100%;aspect-ratio:1/1;overflow:hidden;position:relative;
  background:var(--facet-light);
}
.prof-img-wrap .prof-img{
  width:100%;height:100%;object-fit:cover;object-position:top center;display:block;
}
.prof-img-wrap .prof-img-ph{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:3rem;color:var(--facet-gray);background:var(--facet-light);
}

/* Badge de currículo */
.prof-curriculo-badge{
  position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;
  background:var(--facet-yellow);color:var(--facet-blue-deep);
  display:grid;place-items:center;font-size:.85rem;
  box-shadow:0 4px 10px rgba(0,0,0,.2);
}

/* Texto abaixo da imagem */
.prof-meta{
  padding:.75rem .8rem .9rem;background:#fff;
  display:flex;flex-direction:column;gap:.15rem;text-align:center;
  border-top:3px solid var(--facet-yellow);
}
.prof-meta .prof-name{
  font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  color:var(--facet-blue-deep);font-size:.82rem;line-height:1.1;
}
.prof-meta .prof-role{
  font-size:.72rem;color:var(--facet-gray);font-weight:600;letter-spacing:.02em;
}

/* Remove o .meta padrão do course-card quando for prof-card */
.prof-card .meta{ display:none; }
.prof-card .ph-top{ display:none; }

.divider-soft{ height:1px;background:#e7e8ee;border:0;margin:0; }

/* ============ MATRIZ CURRICULAR ============ */
.matriz-curricular{
  background:var(--facet-light);border-radius:22px;padding:2rem clamp(1rem,4vw,2.5rem) 2.5rem;
  border:1px solid #e7e8ee;
}
.matriz-content table{
  width:100%;border-collapse:collapse;font-size:.92rem;margin-bottom:1rem;
}
.matriz-content th{
  background:var(--facet-blue);color:#fff;font-family:var(--font-display);font-weight:700;
  text-transform:uppercase;font-size:.78rem;letter-spacing:.04em;
  padding:.7rem 1rem;text-align:left;
}
.matriz-content td{
  padding:.6rem 1rem;border-bottom:1px solid #e7e8ee;color:#3a3f52;line-height:1.5;
}
.matriz-content tr:nth-child(even) td{ background:rgba(10,24,214,.03); }
.matriz-content tr:hover td{ background:rgba(255,196,0,.1); }
.matriz-content h3,.matriz-content h4{
  font-family:var(--font-display);font-weight:800;color:var(--facet-blue-deep);
  text-transform:uppercase;margin:1.5rem 0 .6rem;
}
.matriz-content p{ color:#3a3f52;line-height:1.7;margin-bottom:.8rem; }
@media(max-width:575.98px){
  .matriz-content table{ display:block;overflow-x:auto;-webkit-overflow-scrolling:touch; }
}

/* Chevron animado no botão de grade */
.btn-grade[aria-expanded="true"] .matriz-chevron{ transform:rotate(180deg); }
.matriz-chevron{ transition:transform .3s ease;display:inline-block; }


/* ============ CTA DUPLO DO CURSO ============ */
.curso-cta-wrap{
  display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;
}
.curso-cta-wrap .btn-matricula{
  flex:1 1 auto;min-width:160px;
}
.btn-valor-cta{
  flex:1 1 auto;min-width:160px;
  display:inline-flex;align-items:center;justify-content:center;
  padding:.85rem 2rem;
  background:transparent;
  border:2px solid var(--facet-blue);
  color:var(--facet-blue);
  font-family:var(--font-display);
  font-weight:800;
  font-size:.95rem;
  letter-spacing:.02em;
  border-radius:var(--radius);
  cursor:pointer;
  transition:background .2s,color .2s,transform .18s;
}
.btn-valor-cta:hover{
  background:var(--facet-blue);
  color:#fff;
  transform:translateY(-2px);
}

/* ============ LEAD MODAL ============ */
.lead-modal-content{
  border:none;
  border-radius:24px;
  padding:2.5rem clamp(1.5rem,5vw,2.5rem) 2rem;
  position:relative;
  box-shadow:0 30px 70px -20px rgba(10,24,214,.35);
}
.lead-modal-close{
  position:absolute;top:1rem;right:1.2rem;
  background:none;border:none;font-size:1.15rem;
  color:var(--facet-gray);cursor:pointer;
  transition:color .2s;line-height:1;
}
.lead-modal-close:hover{ color:var(--facet-blue-deep); }
.lead-modal-eyebrow{
  display:inline-block;
  background:var(--facet-yellow);
  color:var(--facet-blue-deep);
  font-family:var(--font-display);
  font-weight:800;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:.25rem .75rem;
  border-radius:50px;
  margin-bottom:.75rem;
}
.lead-modal-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:1.45rem;
  color:var(--facet-blue-deep);
  line-height:1.15;
  margin-bottom:.4rem;
}
.lead-modal-title span{ color:var(--facet-blue); }
.lead-modal-sub{
  font-size:.88rem;
  color:var(--facet-gray);
  margin-bottom:1.5rem;
  line-height:1.5;
}
.lead-modal-form{ display:flex;flex-direction:column;gap:1rem; }
.lead-field{ display:flex;flex-direction:column;gap:.3rem; }
.lead-field label{
  font-weight:700;font-size:.82rem;color:var(--facet-blue-deep);
}
.lead-field input{
  padding:.7rem 1rem;
  border:1.5px solid #d6d8e7;
  border-radius:12px;
  font-family:var(--font-body);
  font-size:.92rem;
  color:var(--facet-ink);
  transition:border-color .2s,box-shadow .2s;
  outline:none;
}
.lead-field input:focus{
  border-color:var(--facet-blue);
  box-shadow:0 0 0 3px rgba(10,24,214,.12);
}
.lead-submit-btn{
  margin-top:.25rem;
  background:var(--facet-blue);
  color:#fff;
  border:none;
  border-radius:var(--radius);
  padding:.9rem 1.5rem;
  font-family:var(--font-display);
  font-weight:800;
  font-size:.95rem;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .2s,transform .18s;
  display:flex;align-items:center;justify-content:center;
}
.lead-submit-btn:hover:not(:disabled){
  background:var(--facet-blue-deep);
  transform:translateY(-2px);
}
.lead-submit-btn:disabled{ opacity:.7;cursor:not-allowed; }
.lead-modal-privacy{
  font-size:.74rem;color:var(--facet-gray);text-align:center;margin:0;
}
.lead-success{
  text-align:center;padding:1.5rem 0;
}
.lead-success .bi-check-circle-fill{
  font-size:3rem;color:#22c55e;display:block;margin-bottom:.75rem;
}
.lead-success h4{
  font-family:var(--font-display);font-weight:800;
  color:var(--facet-blue-deep);margin-bottom:.4rem;
}
.lead-success p{ font-size:.9rem;color:var(--facet-gray); }

/* ============ AUTH / LOGIN PAGE ============ */
.auth-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg, var(--facet-blue) 0%, var(--facet-blue-deeper,#040a60) 100%);
  padding:2rem 1rem;
}
.auth-card-wrap{
  width:100%;
  max-width:420px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2rem;
}
.auth-logo img{ filter:brightness(0) invert(1); }
.auth-card{
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  padding:2.5rem 2rem;
  width:100%;
}
.auth-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:1.5rem;
  color:var(--facet-blue-deep);
  text-align:center;
  margin-bottom:.3rem;
}
.auth-sub{
  font-size:.9rem;
  color:var(--facet-gray);
  text-align:center;
  margin-bottom:1.5rem;
}
.auth-error{
  background:#fee2e2;
  color:#b91c1c;
  border-radius:10px;
  padding:.75rem 1rem;
  font-size:.9rem;
  font-weight:600;
  text-align:center;
  margin-bottom:1.2rem;
}
/* WordPress login form fields */
.auth-card #loginform p{ margin-bottom:1rem; }
.auth-card #loginform label{
  display:block;
  font-size:.82rem;
  font-weight:700;
  color:var(--facet-blue-deep);
  margin-bottom:.35rem;
  letter-spacing:.02em;
}
.auth-card #loginform input[type="text"],
.auth-card #loginform input[type="password"]{
  width:100%;
  padding:.7rem 1rem;
  border:1.5px solid #dde0ea;
  border-radius:10px;
  font-family:var(--font-body);
  font-size:.95rem;
  color:var(--facet-ink);
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
  background:#fff;
}
.auth-card #loginform input[type="text"]:focus,
.auth-card #loginform input[type="password"]:focus{
  border-color:var(--facet-blue);
  box-shadow:0 0 0 3px rgba(10,24,214,.12);
}
.auth-card #loginform input[type="submit"]{
  width:100%;
  background:var(--facet-yellow);
  color:var(--facet-blue-deep);
  font-family:var(--font-display);
  font-weight:800;
  font-size:1rem;
  border:0;
  border-radius:50px;
  padding:.8rem 1rem;
  cursor:pointer;
  transition:background .2s ease, transform .15s ease;
  margin-top:.5rem;
}
.auth-card #loginform input[type="submit"]:hover{
  background:var(--facet-yellow-soft);
  transform:translateY(-1px);
}
.auth-card #loginform .forgetmenot{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.85rem;
  color:var(--facet-gray);
  margin-top:-.25rem;
}
.auth-card #loginform .forgetmenot input[type="checkbox"]{
  width:16px;height:16px;accent-color:var(--facet-blue);cursor:pointer;
}
.auth-forgot{
  text-align:center;
  margin-top:1.25rem;
  font-size:.88rem;
}
.auth-forgot a{
  color:var(--facet-blue);
  font-weight:600;
  text-decoration:none;
}
.auth-forgot a:hover{ text-decoration:underline; }
.auth-footer-note{
  text-align:center;
  font-size:.78rem;
  color:var(--facet-gray);
  margin-top:1.5rem;
  margin-bottom:0;
}
.auth-back{
  color:rgba(255,255,255,.7);
  font-size:.85rem;
  text-decoration:none;
  margin-top:.5rem;
  transition:color .2s ease;
}
.auth-back:hover{ color:#fff; }

/* ============ PÁGINA INSTITUCIONAL ============ */

/* Hero */
.inst-hero{
  background:linear-gradient(135deg, var(--facet-blue) 0%, var(--facet-blue-deeper,#040a60) 100%);
  color:#fff;
  padding:5rem 0 3.5rem;
  margin-top:0;
}
.inst-breadcrumb{
  font-size:.82rem;
  opacity:.75;
  margin-bottom:1rem;
  display:flex;
  gap:.5rem;
  align-items:center;
}
.inst-breadcrumb a{ color:#fff;text-decoration:none; }
.inst-breadcrumb a:hover{ text-decoration:underline; }
.inst-hero-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2.2rem,5vw,3.5rem);
  line-height:1;
  margin-bottom:.5rem;
  text-transform:uppercase;
  letter-spacing:-.01em;
}
.inst-hero-sub{
  font-size:1rem;
  opacity:.8;
  margin:0;
  font-family:var(--font-display);
  letter-spacing:.04em;
  text-transform:uppercase;
}

/* Sections */
.inst-section{ padding:5rem 0; }
.inst-section--gray{ background:var(--facet-light); }
.inst-eyebrow{
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--facet-blue);
  margin-bottom:.6rem;
  display:block;
}
.inst-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  color:var(--facet-blue-deep);
  margin-bottom:1.5rem;
  line-height:1.1;
}

/* Quote card */
.inst-quote-card{
  background:var(--facet-blue);
  color:#fff;
  border-radius:var(--radius);
  padding:2rem 1.75rem 1.75rem;
  position:relative;
}
.inst-quote-mark{
  font-family:Georgia,serif;
  font-size:5rem;
  line-height:.6;
  color:var(--facet-yellow);
  margin-bottom:.5rem;
  display:block;
}
.inst-quote-card blockquote{
  font-size:1.1rem;
  font-style:italic;
  line-height:1.6;
  margin:0 0 1.2rem;
  border:0;
  padding:0;
  opacity:.95;
}
.inst-quote-author{
  font-family:var(--font-display);
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  opacity:.8;
}
.inst-hero-img{
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-card);
}
.inst-hero-img img{ width:100%;height:240px;object-fit:cover;display:block; }

/* Estrutura institucional */
.inst-struct-card{
  border-radius:var(--radius);
  padding:2rem;
  height:100%;
}
.inst-struct-card--blue{
  background:var(--facet-blue);
  color:#fff;
}
.inst-struct-card--yellow{
  background:var(--facet-yellow);
  color:var(--facet-blue-deep);
}
.inst-struct-label{
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.7;
  margin-bottom:.4rem;
}
.inst-struct-name{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.1rem;
  line-height:1.25;
  margin-bottom:1.25rem;
}
.inst-struct-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:.6rem;
  font-size:.9rem;
}
.inst-struct-card--blue .inst-struct-list li{ color:rgba(255,255,255,.88); }
.inst-struct-list li span{
  display:block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  opacity:.65;
  margin-bottom:.1rem;
}

/* Coordenadores */
.inst-coord-card{
  background:#fff;
  border:1.5px solid #e8eaf1;
  border-radius:16px;
  padding:1.5rem 1.25rem;
  text-align:center;
  height:100%;
  transition:transform .2s ease, box-shadow .2s ease;
}
.inst-coord-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-card);
  border-color:var(--facet-blue);
}
.inst-coord-icon{
  width:52px;height:52px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--facet-blue) 0%, var(--facet-blue-deep) 100%);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:1.25rem;
  margin:0 auto 1rem;
}
.inst-coord-curso{
  font-size:.8rem;
  font-weight:700;
  color:var(--facet-blue);
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:.3rem;
  line-height:1.3;
}
.inst-coord-cargo{
  font-size:.75rem;
  color:var(--facet-gray);
  margin-bottom:.35rem;
}
.inst-coord-nome{
  font-family:var(--font-display);
  font-weight:800;
  font-size:.88rem;
  color:var(--facet-blue-deep);
  line-height:1.3;
}
.inst-coord-foto{
  width:64px;height:64px;
  border-radius:50%;
  overflow:hidden;
  margin:0 auto 1rem;
  border:3px solid var(--facet-blue);
}
.inst-coord-foto img{
  width:100%;height:100%;object-fit:cover;
}

/* Galeria */
.inst-gallery{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:200px;
  gap:.75rem;
  border-radius:var(--radius);
  overflow:hidden;
}
.inst-gallery-item{
  background-size:cover;
  background-position:center;
  border-radius:12px;
  transition:transform .3s ease;
}
.inst-gallery-item:first-child{
  grid-column:span 2;
  grid-row:span 2;
}
.inst-gallery-item:hover{ transform:scale(1.02); }
@media(max-width:767px){
  .inst-gallery{ grid-template-columns:repeat(2,1fr); }
  .inst-gallery-item:first-child{ grid-column:span 2; grid-row:span 1; }
}

/* Missão */
.inst-mission{
  background:linear-gradient(135deg, var(--facet-blue) 0%, var(--facet-blue-deeper,#040a60) 100%);
  padding:5rem 0;
  color:#fff;
  text-align:center;
}
.inst-mission-inner{ max-width:740px;margin:0 auto; }
.inst-mission-icon{
  font-size:2.5rem;
  color:var(--facet-yellow);
  margin-bottom:1rem;
  display:block;
}
.inst-mission-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(1.6rem,3vw,2.2rem);
  margin-bottom:1.25rem;
  color:#fff;
}
.inst-mission p{ font-size:1.05rem;opacity:.9;line-height:1.75; }

/* Programas sociais */
.inst-prog-card{
  background:#fff;
  border-radius:var(--radius);
  padding:2rem;
  height:100%;
  box-shadow:0 8px 24px -12px rgba(10,24,214,.15);
  transition:transform .2s ease,box-shadow .2s ease;
}
.inst-prog-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-card);
}
.inst-prog-icon{
  width:56px;height:56px;
  border-radius:16px;
  background:var(--facet-yellow);
  color:var(--facet-blue-deep);
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;
  margin-bottom:1.25rem;
}
.inst-prog-title{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.05rem;
  color:var(--facet-blue-deep);
  margin-bottom:.75rem;
}
.inst-prog-card p{ font-size:.9rem;color:#5a6072;line-height:1.65;margin:0; }

/* NPJ */
.inst-npj-badge{
  display:inline-block;
  background:var(--facet-yellow);
  color:var(--facet-blue-deep);
  font-family:var(--font-display);
  font-weight:900;
  font-size:1.5rem;
  padding:.3rem 1rem;
  border-radius:8px;
  margin-bottom:1rem;
  letter-spacing:.04em;
}
.inst-npj-item{
  background:#fff;
  border:1.5px solid #e8eaf1;
  border-radius:12px;
  padding:1rem 1.25rem;
  display:flex;
  align-items:center;
  gap:.75rem;
  font-size:.9rem;
  color:var(--facet-ink);
  transition:border-color .2s ease;
}
.inst-npj-item:hover{ border-color:var(--facet-blue); }
.inst-npj-item i{
  font-size:1.2rem;
  color:var(--facet-blue);
  flex-shrink:0;
}

/* ============ PÁGINA BIBLIOTECA ============ */

/* Botão acesso online */
.bib-btn-online{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  background:var(--facet-yellow);
  color:var(--facet-blue-deep);
  font-family:var(--font-display);
  font-weight:800;
  font-size:.9rem;
  padding:.75rem 1.5rem;
  border-radius:50px;
  text-decoration:none;
  transition:background .2s ease, transform .15s ease;
  margin-top:1.25rem;
}
.bib-btn-online:hover{
  background:var(--facet-yellow-soft);
  transform:translateY(-2px);
  color:var(--facet-blue-deep);
}
.bib-btn-online--white{
  background:#fff;
  color:var(--facet-blue-deep);
}
.bib-btn-online--white:hover{
  background:var(--facet-yellow);
  color:var(--facet-blue-deep);
}

/* Grid de fotos lateral */
.bib-foto-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-auto-rows:180px;
  gap:.6rem;
  border-radius:var(--radius);
  overflow:hidden;
}
.bib-foto{
  background-size:cover;
  background-position:center;
  border-radius:10px;
}
.bib-foto--main{
  grid-column:span 2;
  height:240px;
}

/* Cards de destaque */
.bib-card{
  background:#fff;
  border-radius:var(--radius);
  padding:1.75rem 1.5rem;
  height:100%;
  box-shadow:0 8px 24px -12px rgba(10,24,214,.12);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.5rem;
  transition:transform .2s ease, box-shadow .2s ease;
}
.bib-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-card);
}
.bib-card-icon{
  width:52px;height:52px;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;
  margin-bottom:.5rem;
  flex-shrink:0;
}
.bib-card-title{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1rem;
  color:var(--facet-blue-deep);
  margin:0;
}
.bib-card-label{
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--facet-gray);
  margin:0;
}
.bib-card-time{
  font-family:var(--font-display);
  font-weight:900;
  font-size:1.05rem;
  color:var(--facet-blue);
  margin:0;
}
.bib-card-text{
  font-size:.88rem;
  color:var(--facet-ink);
  line-height:1.5;
  margin:0;
}
.bib-card-link{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  margin-top:auto;
  padding-top:.75rem;
  font-family:var(--font-display);
  font-weight:800;
  font-size:.85rem;
  color:var(--facet-blue);
  text-decoration:none;
  transition:color .2s ease;
}
.bib-card-link:hover{ color:var(--facet-blue-deep); }
.bib-card-link--muted{
  display:inline-block;
  margin-top:auto;
  padding-top:.75rem;
  font-size:.8rem;
  color:var(--facet-gray);
}

/* ============ PÁGINA INSCRIÇÃO — WIZARD ============ */

.insc-wrap{
  max-width:820px;
  margin:0 auto;
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  overflow:hidden;
}

/* Barra de progresso */
.insc-progress{
  display:flex;
  align-items:center;
  padding:1.75rem 2rem;
  background:var(--facet-blue);
  gap:0;
}
.insc-step-dot{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.35rem;
  flex:none;
}
.insc-step-dot span{
  font-size:.65rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:rgba(255,255,255,.55);
  text-align:center;
  line-height:1.2;
  max-width:70px;
}
.insc-dot-circle{
  width:36px;height:36px;
  border-radius:50%;
  background:rgba(255,255,255,.2);
  color:rgba(255,255,255,.6);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);
  font-weight:900;
  font-size:.9rem;
  border:2px solid rgba(255,255,255,.3);
  transition:all .3s ease;
}
.insc-step-dot.active .insc-dot-circle{
  background:var(--facet-yellow);
  color:var(--facet-blue-deep);
  border-color:var(--facet-yellow);
  transform:scale(1.15);
}
.insc-step-dot.active span{ color:#fff; }
.insc-step-dot.done .insc-dot-circle{
  background:#fff;
  color:var(--facet-blue);
  border-color:#fff;
}
.insc-step-dot.done span{ color:rgba(255,255,255,.8); }
.insc-progress-line{
  flex:1;
  height:2px;
  background:rgba(255,255,255,.2);
  margin:0 .5rem;
  margin-bottom:1.7rem;
}

/* Painel */
.insc-pane{ padding:2rem 2rem 1.5rem; }
.insc-pane-header{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  margin-bottom:1.75rem;
  padding-bottom:1.25rem;
  border-bottom:1.5px solid #eef0f5;
}
.insc-pane-num{
  font-family:var(--font-display);
  font-weight:900;
  font-size:2.5rem;
  line-height:1;
  color:rgba(10,24,214,.12);
  flex-shrink:0;
}
.insc-pane-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:1.3rem;
  color:var(--facet-blue-deep);
  margin-bottom:.25rem;
}
.insc-pane-sub{
  font-size:.88rem;
  color:var(--facet-gray);
  margin:0;
}

/* Grid de campos */
.insc-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.1rem;
}
.insc-field{ display:flex;flex-direction:column;gap:.3rem; }
.insc-field--full{ grid-column:span 2; }
.insc-field--wide{ grid-column:span 1;flex:2; }
.insc-field--small{ grid-column:span 1; }
.insc-field label{
  font-size:.78rem;
  font-weight:700;
  color:var(--facet-blue-deep);
  text-transform:uppercase;
  letter-spacing:.05em;
}
.insc-req{ color:#ef4444; }
.insc-field input,
.insc-field select,
.insc-field textarea{
  width:100%;
  padding:.65rem .9rem;
  border:1.5px solid #dde0ea;
  border-radius:10px;
  font-family:var(--font-body);
  font-size:.9rem;
  color:var(--facet-ink);
  outline:none;
  transition:border-color .2s ease,box-shadow .2s ease;
  background:#fff;
}
.insc-field input:focus,
.insc-field select:focus{
  border-color:var(--facet-blue);
  box-shadow:0 0 0 3px rgba(10,24,214,.1);
}
.insc-field-error{
  border-color:#ef4444 !important;
  box-shadow:0 0 0 3px rgba(239,68,68,.12) !important;
}

/* Subseção (formação) */
.insc-subsection{
  margin-top:1.75rem;
  padding-top:1.25rem;
  border-top:1.5px dashed #eef0f5;
}
.insc-subsection-title{
  font-family:var(--font-display);
  font-weight:800;
  font-size:.95rem;
  color:var(--facet-blue-deep);
  margin-bottom:1rem;
  display:flex;
  align-items:center;
  gap:.5rem;
}
.insc-subsection-title i{ color:var(--facet-blue); }

/* Docs grid */
.insc-docs-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}
.insc-upload-card{
  border:1.5px solid #eef0f5;
  border-radius:14px;
  overflow:hidden;
  transition:border-color .2s ease;
}
.insc-upload-card:has(.has-file){ border-color:#22c55e; }
.insc-upload-header{
  display:flex;
  align-items:center;
  gap:.75rem;
  padding:.85rem 1rem;
  background:var(--facet-light);
  border-bottom:1px solid #eef0f5;
}
.insc-upload-icon{
  width:36px;height:36px;flex-shrink:0;
  border-radius:10px;
  background:var(--facet-blue);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;
}
.insc-upload-header strong{
  display:block;
  font-size:.82rem;
  color:var(--facet-blue-deep);
  line-height:1.3;
}
.insc-upload-header span{
  display:block;
  font-size:.72rem;
  color:var(--facet-gray);
}
.insc-upload-area{
  position:relative;
  padding:.75rem;
}
.insc-upload-area input[type="file"]{
  position:absolute;
  inset:0;
  opacity:0;
  width:100%;
  height:100%;
  cursor:pointer;
  z-index:2;
}
.insc-upload-label{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.35rem;
  padding:.85rem;
  border:2px dashed #dde0ea;
  border-radius:10px;
  cursor:pointer;
  text-align:center;
  transition:border-color .2s ease,background .2s ease;
  user-select:none;
}
.insc-upload-area:hover .insc-upload-label,
.insc-upload-area.drag-over .insc-upload-label{
  border-color:var(--facet-blue);
  background:rgba(10,24,214,.04);
}
.insc-upload-label i{ font-size:1.5rem;color:var(--facet-blue);opacity:.7; }
.insc-upload-label span{ font-size:.82rem;color:var(--facet-gray);font-weight:600; }
.insc-upload-label small{ font-size:.72rem;color:#b9bcc4; }

/* Preview */
.insc-upload-preview{
  display:none;
  align-items:center;
  gap:.75rem;
  padding:.6rem .85rem;
  background:#f0fdf4;
  border-radius:10px;
  border:1.5px solid #86efac;
}
.insc-preview-thumb img{
  width:44px;height:44px;object-fit:cover;border-radius:6px;
}
.insc-preview-info{
  flex:1;min-width:0;
  display:flex;flex-direction:column;gap:.1rem;
}
.insc-preview-name{
  font-size:.78rem;font-weight:700;color:var(--facet-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.insc-preview-size{ font-size:.72rem;color:var(--facet-gray); }
.insc-preview-remove{
  border:0;background:transparent;cursor:pointer;
  color:#ef4444;font-size:1.1rem;line-height:1;flex-shrink:0;
  padding:0;transition:transform .15s ease;
}
.insc-preview-remove:hover{ transform:scale(1.2); }

/* LGPD notice */
.insc-lgpd-notice{
  display:flex;gap:.75rem;align-items:flex-start;
  margin-top:1.25rem;
  padding:1rem 1.1rem;
  background:#eff6ff;
  border-radius:10px;
  border:1px solid #bfdbfe;
}
.insc-lgpd-notice i{ color:#3b82f6;font-size:1.1rem;flex-shrink:0;margin-top:.1rem; }
.insc-lgpd-notice p{ font-size:.8rem;color:#1e40af;line-height:1.55;margin:0; }
.insc-lgpd-notice a{ color:#1e40af;font-weight:600; }

/* Botões de navegação */
.insc-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.25rem 2rem;
  border-top:1.5px solid #eef0f5;
  background:#fafbfc;
  gap:1rem;
}
.insc-nav-info{
  font-size:.82rem;
  color:var(--facet-gray);
  font-weight:600;
}
.insc-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-display);font-weight:800;
  font-size:.88rem;border:0;border-radius:50px;
  padding:.7rem 1.6rem;cursor:pointer;
  text-decoration:none;
  transition:background .2s ease,transform .15s ease,opacity .2s ease;
}
.insc-btn:hover:not(:disabled){ transform:translateY(-1px); }
.insc-btn:disabled{ opacity:.6;cursor:not-allowed; }
.insc-btn--primary{ background:var(--facet-blue);color:#fff; }
.insc-btn--primary:hover:not(:disabled){ background:var(--facet-blue-deep);color:#fff; }
.insc-btn--outline{
  background:transparent;color:var(--facet-blue);
  border:2px solid var(--facet-blue);
}
.insc-btn--outline:hover:not(:disabled){ background:rgba(10,24,214,.06); }
.insc-btn--success{ background:#22c55e;color:#fff; }
.insc-btn--success:hover:not(:disabled){ background:#16a34a; }

/* Erro */
.insc-alert-error{
  margin:0 2rem 1rem;
  background:#fee2e2;color:#b91c1c;
  border-radius:10px;padding:.75rem 1rem;
  font-size:.88rem;font-weight:600;
}

/* Sucesso */
.insc-success{
  text-align:center;
  padding:4rem 2rem;
}
.insc-success-icon i{
  font-size:4rem;color:#22c55e;display:block;margin-bottom:1rem;
}
.insc-success h2{
  font-family:var(--font-display);font-weight:900;
  font-size:1.6rem;color:var(--facet-blue-deep);margin-bottom:.75rem;
}
.insc-success p{ color:#5a6072;max-width:500px;margin:0 auto 1.5rem;line-height:1.65; }
.insc-success-info{
  display:inline-flex;flex-direction:column;gap:.4rem;
  background:var(--facet-light);
  border-radius:12px;padding:1rem 1.5rem;
  margin-bottom:1.75rem;
  text-align:left;
}
.insc-success-info strong{
  font-family:var(--font-display);font-weight:800;
  color:var(--facet-blue-deep);font-size:1.05rem;
}
.insc-success-info span{
  font-size:.85rem;color:#5a6072;
  display:flex;align-items:center;gap:.4rem;
}
.insc-success-info i{ color:var(--facet-blue); }

/* Dialog retomada de inscrição incompleta */
.insc-resume-dialog{
  margin:2rem 0;
  animation:fadeInUp .3s ease;
}
.insc-resume-card{
  background:#fff;border-radius:20px;padding:2rem;
  box-shadow:0 20px 50px -20px rgba(7,18,168,.18);
  border-left:4px solid var(--facet-yellow);
  text-align:center;
}
.insc-resume-icon{
  font-size:2.4rem;color:var(--facet-yellow);margin-bottom:.75rem;line-height:1;
}
.insc-resume-card h3{
  font-family:var(--font-display);font-weight:800;color:var(--facet-blue-deep);
  font-size:1.25rem;margin-bottom:.5rem;
}
.insc-resume-card p{ color:#4b5563;margin-bottom:.5rem;line-height:1.6; }
.insc-resume-sub{ font-size:.9rem;color:#6b7280; }
.insc-resume-btns{ display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:1.25rem; }

/* Curso info card */
.insc-curso-info{
  margin-top:1rem;
  padding:1rem 1.25rem;
  background:rgba(10,24,214,.05);
  border-radius:12px;
  border:1.5px solid rgba(10,24,214,.15);
  font-size:.88rem;color:var(--facet-blue-deep);
}

/* ── Painel de progresso do upload ─────────────────── */
.insc-upload-progress{
  padding:2.5rem 2rem;
  animation:inscProgIn .35s ease;
}
@keyframes inscProgIn{
  from{ opacity:0;transform:translateY(12px); }
  to{   opacity:1;transform:translateY(0); }
}
.insc-uprog-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1.25rem;
  text-align:center;
}

/* Anel SVG circular */
.insc-uprog-anim{
  position:relative;
  width:110px;height:110px;
  flex-shrink:0;
}
.insc-uprog-circle{
  width:110px;height:110px;
  transform:rotate(-90deg);
}
.insc-uprog-track{
  fill:none;
  stroke:#eef0f5;
  stroke-width:6;
}
.insc-uprog-ring{
  fill:none;
  stroke:var(--facet-blue);
  stroke-width:6;
  stroke-linecap:round;
  transition:stroke-dashoffset .4s ease;
}
.insc-uprog-pct{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-weight:900;
  font-size:1.3rem;
  color:var(--facet-blue-deep);
}

/* Texto de status */
.insc-uprog-text h3{
  font-family:var(--font-display);
  font-weight:900;
  font-size:1.15rem;
  color:var(--facet-blue-deep);
  margin:0 0 .25rem;
}
.insc-uprog-text p{
  font-size:.85rem;
  color:var(--facet-gray);
  margin:0;
  max-width:380px;
}

/* Barra linear */
.insc-uprog-bar-wrap{
  width:100%;
  height:10px;
  background:#eef0f5;
  border-radius:99px;
  overflow:hidden;
}
.insc-uprog-bar-fill{
  height:100%;
  background:linear-gradient(90deg, var(--facet-blue) 0%, var(--facet-sky) 100%);
  border-radius:99px;
  transition:width .35s ease;
  position:relative;
  overflow:hidden;
}
/* Shimmer animado na barra */
.insc-uprog-bar-fill::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.35) 50%, transparent 100%);
  animation:inscShimmer 1.4s infinite linear;
  background-size:200% 100%;
}
@keyframes inscShimmer{
  from{ background-position:200% 0; }
  to{   background-position:-200% 0; }
}
.insc-uprog-bar-label{
  width:100%;
  display:flex;
  justify-content:space-between;
  font-size:.75rem;
  color:var(--facet-gray);
  margin-top:-.5rem;
}

/* Lista de arquivos */
.insc-uprog-files{
  width:100%;
  background:var(--facet-light);
  border-radius:12px;
  padding:.75rem 1rem;
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.insc-uprog-file{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-size:.82rem;
  color:var(--facet-ink);
}
.insc-uprog-file i{
  font-size:1rem;
  color:var(--facet-blue);
  flex-shrink:0;
}
.insc-uprog-file i.bi-file-earmark-pdf-fill{ color:#ef4444; }
.insc-uprog-fname{
  flex:1;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.insc-uprog-fsize{
  color:var(--facet-gray);
  flex-shrink:0;
  font-size:.75rem;
}

@media(max-width:640px){
  .insc-progress{ padding:1.25rem 1rem;gap:0; }
  .insc-step-dot span{ display:none; }
  .insc-pane{ padding:1.5rem 1rem 1rem; }
  .insc-grid{ grid-template-columns:1fr; }
  .insc-field--full,.insc-field--wide,.insc-field--small{ grid-column:span 1; }
  .insc-docs-grid{ grid-template-columns:1fr; }
  .insc-nav{ padding:1rem; flex-wrap:wrap; }
  .insc-btn{ padding:.65rem 1.2rem;font-size:.82rem; }
}

/* ============ PÁGINA OUVIDORIA ============ */

/* Cards informativos */
.ouv-info-grid{ display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem; }
.ouv-info-card{
  display:flex;
  gap:1rem;
  align-items:flex-start;
  background:#fff;
  border-radius:14px;
  padding:1.25rem;
  box-shadow:0 4px 16px -8px rgba(10,24,214,.12);
}
.ouv-info-icon{
  width:48px;height:48px;flex-shrink:0;
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;
}
.ouv-info-card strong{ display:block;font-family:var(--font-display);font-weight:800;color:var(--facet-blue-deep);margin-bottom:.35rem; }
.ouv-info-card p{ font-size:.88rem;color:#5a6072;line-height:1.55;margin:0; }

/* Box de contato */
.ouv-contato-box{
  background:var(--facet-blue);
  color:#fff;
  border-radius:var(--radius);
  padding:2rem 1.75rem;
}
.ouv-contato-title{
  font-family:var(--font-display);font-weight:900;
  font-size:1.25rem;margin-bottom:.4rem;
}
.ouv-contato-sub{ font-size:.88rem;opacity:.8;margin-bottom:1.5rem; }
.ouv-contato-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:1rem;
}
.ouv-contato-list li{
  display:flex;gap:.9rem;align-items:flex-start;
}
.ouv-contato-list li i{
  font-size:1.1rem;color:var(--facet-yellow);flex-shrink:0;margin-top:.15rem;
}
.ouv-contato-list li div span{
  display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;opacity:.65;margin-bottom:.15rem;
}
.ouv-contato-list li a,
.ouv-contato-list li strong{
  color:#fff;text-decoration:none;font-size:.92rem;font-weight:600;
  word-break:break-all;
}
.ouv-contato-list li a:hover{ color:var(--facet-yellow); }

/* Formulário */
.ouv-form-wrap{
  max-width:860px;
  margin:0 auto;
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  padding:2.5rem 2rem;
}
.ouv-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.25rem;
}
.ouv-field{ display:flex;flex-direction:column;gap:.35rem; }
.ouv-field--full{ grid-column:span 2; }
.ouv-field label{
  font-size:.8rem;font-weight:700;color:var(--facet-blue-deep);
  text-transform:uppercase;letter-spacing:.05em;
}
.ouv-req{ color:#ef4444; }
.ouv-field input[type="text"],
.ouv-field input[type="email"],
.ouv-field input[type="tel"],
.ouv-field select,
.ouv-field textarea{
  width:100%;
  padding:.7rem 1rem;
  border:1.5px solid #dde0ea;
  border-radius:10px;
  font-family:var(--font-body);
  font-size:.92rem;
  color:var(--facet-ink);
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
  background:#fff;
}
.ouv-field input:focus,
.ouv-field select:focus,
.ouv-field textarea:focus{
  border-color:var(--facet-blue);
  box-shadow:0 0 0 3px rgba(10,24,214,.1);
}
.ouv-field textarea{ resize:vertical;min-height:120px; }
.ouv-label-block{ font-size:.8rem;font-weight:700;color:var(--facet-blue-deep);text-transform:uppercase;letter-spacing:.05em; }

/* Radio privacidade */
.ouv-radio-group{ display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.25rem; }
.ouv-radio{ cursor:pointer; }
.ouv-radio input[type="radio"]{ display:none; }
.ouv-radio-box{
  display:flex;flex-direction:column;gap:.2rem;
  border:2px solid #dde0ea;border-radius:12px;
  padding:1rem 1.25rem;
  transition:border-color .2s ease,background .2s ease;
}
.ouv-radio-box i{ font-size:1.2rem;color:var(--facet-gray);margin-bottom:.25rem; }
.ouv-radio-box strong{ font-size:.88rem;color:var(--facet-blue-deep); }
.ouv-radio-box small{ font-size:.75rem;color:var(--facet-gray); }
.ouv-radio input[type="radio"]:checked + .ouv-radio-box{
  border-color:var(--facet-blue);
  background:rgba(10,24,214,.05);
}
.ouv-radio input[type="radio"]:checked + .ouv-radio-box i{ color:var(--facet-blue); }

/* Footer do form */
.ouv-form-footer{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;
  margin-top:1.75rem;
  padding-top:1.5rem;
  border-top:1px solid #eef0f5;
}
.ouv-form-note{
  font-size:.8rem;color:var(--facet-gray);
  display:flex;align-items:center;gap:.4rem;margin:0;
}
.ouv-form-note i{ color:var(--facet-blue); }
.ouv-btn-submit{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--facet-blue);color:#fff;
  font-family:var(--font-display);font-weight:800;
  font-size:.95rem;border:0;border-radius:50px;
  padding:.8rem 2rem;cursor:pointer;
  transition:background .2s ease,transform .15s ease;
}
.ouv-btn-submit:hover:not(:disabled){ background:var(--facet-blue-deep);transform:translateY(-1px); }
.ouv-btn-submit:disabled{ opacity:.65;cursor:not-allowed; }

/* Erro */
.ouv-alert-error{
  background:#fee2e2;color:#b91c1c;
  border-radius:10px;padding:.75rem 1rem;
  font-size:.9rem;font-weight:600;
  margin-top:1rem;
}

/* Sucesso */
.ouv-success{
  text-align:center;padding:3rem 1rem;
}
.ouv-success i{ font-size:3.5rem;color:#22c55e;display:block;margin-bottom:1rem; }
.ouv-success h3{
  font-family:var(--font-display);font-weight:900;
  color:var(--facet-blue-deep);font-size:1.5rem;margin-bottom:.5rem;
}
.ouv-success p{ color:#5a6072;max-width:480px;margin:0 auto 1.5rem; }
.ouv-btn-novo{
  background:var(--facet-yellow);color:var(--facet-blue-deep);
  font-family:var(--font-display);font-weight:800;
  border:0;border-radius:50px;padding:.7rem 1.5rem;
  cursor:pointer;font-size:.9rem;
  transition:background .2s ease;
}
.ouv-btn-novo:hover{ background:var(--facet-yellow-soft); }

/* Grupo de identificação */
.ouv-ident-group{
  display:contents; /* filhos participam do grid diretamente */
}

/* Aviso anônimo */
.ouv-anonimo-aviso{ grid-column:span 2; }
.ouv-anonimo-msg{
  display:flex;gap:1rem;align-items:center;
  background:#fff8e1;
  border:1.5px solid #f59e0b;
  border-radius:12px;
  padding:1rem 1.25rem;
}
.ouv-anonimo-msg i{ font-size:1.5rem;color:#d97706;flex-shrink:0; }
.ouv-anonimo-msg strong{ display:block;font-size:.9rem;color:#92400e;margin-bottom:.2rem; }
.ouv-anonimo-msg span{ font-size:.82rem;color:#b45309; }

@media(max-width:600px){
  .ouv-form-grid{ grid-template-columns:1fr; }
  .ouv-field--full{ grid-column:span 1; }
  .ouv-anonimo-aviso{ grid-column:span 1; }
  .ouv-radio-group{ grid-template-columns:1fr; }
  .ouv-form-wrap{ padding:1.5rem 1rem; }
  .ouv-form-footer{ flex-direction:column;align-items:stretch; }
  .ouv-btn-submit{ justify-content:center; }
}
