/**
 * UniAdvisor -- Arquivo "Todas as faculdades" (/universidades/)
 * Transplantado do mockup faculdades.html (2026-08-11), com um ajuste:
 * a cor de destaque do mockup (#5B4FE0, roxo) foi trocada pelo azul real
 * já usado em produção (--blue:#2f6fed, ver assets/css/universidade.css
 * e a paginação do tema em home.css) -- é essa a cor de "destaque" já em
 * uso no resto do site, não o roxo do mockup.
 */

.uaf-page{
    --uaf-accent:#2f6fed;
    --uaf-accent-dark:#1d4ed8;
    --uaf-ink:#1F2430;
    --uaf-ink-soft:#6B7280;
    --uaf-ink-faint:#9298A5;
    --uaf-paper:#F7F7FB;
    --uaf-card:#FFFFFF;
    --uaf-line:#E5E7EB;
    --uaf-radius:14px;
    --uaf-green:#16a34a;
    --uaf-green-soft:#e8f7ee;

    font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color:var(--uaf-ink);
    background:var(--uaf-paper);
    line-height:1.5;
}

.uaf-page *{ box-sizing:border-box; }
.uaf-page h1,
.uaf-page h2,
.uaf-page h3{ font-family:'Sora', 'Inter', sans-serif; margin:0; }
.uaf-page a{ color:inherit; text-decoration:none; }
.uaf-page img{ display:block; max-width:100%; }
.uaf-page button{ font-family:inherit; }

.uaf-wrap{ max-width:1120px; margin:0 auto; padding:0 24px; }

/* Breadcrumb -- mesma convenção visual (fonte/cor/espaçamento) de
   .hub-page .breadcrumb (hub-universidade.css) e das demais páginas do
   site, só escopado pra .uaf-page. */
.uaf-page .breadcrumb{ font-size:13.5px; color:var(--uaf-ink-soft); padding:14px 24px; }
.uaf-page .breadcrumb a{ color:inherit; text-decoration:underline; }
.uaf-page .breadcrumb a:hover{ color:var(--uaf-accent); }
.uaf-page .breadcrumb .sep{ margin:0 8px; opacity:.5; }
.uaf-page .breadcrumb .current{ color:var(--uaf-ink); font-weight:600; }

/* Hero */
.uaf-hero{ background:var(--uaf-accent); padding:52px 0; }
.uaf-hero-inner{ max-width:1120px; margin:0 auto; padding:0 24px; }
.uaf-hero h1{
    font-size:38px; font-weight:600; line-height:1.15; letter-spacing:-0.01em;
    max-width:640px; color:#fff;
}
.uaf-hero-sub{ margin-top:14px; font-size:16px; color:rgba(255,255,255,.82); max-width:520px; }

.uaf-searchbar{
    margin-top:28px; background:var(--uaf-card); border-radius:16px; padding:10px;
    display:flex; gap:8px; max-width:820px;
}
.uaf-searchbar .uaf-field{ flex:1; position:relative; border-right:1px solid var(--uaf-line); }
.uaf-searchbar .uaf-field:last-of-type{ border-right:none; }
.uaf-searchbar input{
    width:100%; border:none; background:transparent; font-family:'Inter',sans-serif;
    font-size:14.5px; padding:12px 14px; color:var(--uaf-ink); outline:none;
}
.uaf-searchbar button{
    border:none; cursor:pointer; font-weight:600; font-size:14.5px;
    color:#fff; background:var(--uaf-ink); border-radius:10px; padding:0 22px; white-space:nowrap;
}
.uaf-searchbar button:hover{ background:#000; }

/* Autocomplete de cidade (3 instâncias: hero, filtros, explorar cidade) */
.uaf-field--cidade{ position:relative; }
.uaf-ac-panel{
    display:none; position:absolute; top:calc(100% + 6px); left:0; right:0;
    background:var(--uaf-card); border:1px solid var(--uaf-line); border-radius:10px;
    overflow:hidden; z-index:30; max-height:220px; overflow-y:auto;
    box-shadow:0 8px 24px rgba(15,23,42,.08);
}
.uaf-ac-panel.open{ display:block; }
.uaf-ac-item{ padding:10px 14px; font-size:14px; cursor:pointer; }
.uaf-ac-item:hover{ background:var(--uaf-paper); }
.uaf-ac-empty{ padding:10px 14px; font-size:13px; color:var(--uaf-ink-faint); }

/* Seções */
.uaf-section{ padding:36px 0; }
/* Ao filtrar (hero ou barra de filtros), os dois formulários apontam
   pra #uaf-resultados -- scroll-margin-top evita que o cabeçalho fixo
   do tema cubra o título "Todas as faculdades" ao pousar na âncora. */
#uaf-resultados{ scroll-margin-top:100px; }
.uaf-section-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:18px; flex-wrap:wrap; gap:6px; }
.uaf-section-head h2{ font-size:20px; font-weight:600; }
.uaf-count{ font-size:14px; color:var(--uaf-ink-faint); font-weight:400; }

/* Grade de cards 4x2 */
.uaf-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; }

.uaf-card{
    background:var(--uaf-card); border:1px solid var(--uaf-line); border-radius:var(--uaf-radius);
    padding:18px; text-align:center; display:flex; flex-direction:column; align-items:center;
    transition:border-color .15s ease, box-shadow .15s ease;
}
.uaf-card:hover{ border-color:var(--uaf-accent); box-shadow:0 6px 18px rgba(47,111,237,.08); }

.uaf-card-mark{
    width:44px; height:44px; border-radius:10px; margin:0 0 10px;
    display:flex; align-items:center; justify-content:center;
    font-weight:600; font-size:15px; color:#fff;
}
.uaf-card-mark--logo{ background:#fff; border:1px solid var(--uaf-line); padding:6px; }
.uaf-card-mark--logo img{ width:100%; height:100%; object-fit:contain; }

.uaf-card-name{ font-weight:600; font-size:14px; color:var(--uaf-ink); }
.uaf-card-city{ font-size:12.5px; color:var(--uaf-ink-faint); margin-top:2px; }

.uaf-card-badge{
    display:inline-flex; align-items:center; gap:4px; margin-top:10px; font-size:11.5px; font-weight:600;
    color:var(--uaf-ink-soft); background:var(--uaf-paper); border:1px solid var(--uaf-line);
    padding:3px 9px; border-radius:100px;
}
.uaf-card-badge--real{
    color:var(--uaf-green); background:var(--uaf-green-soft); border-color:#c9ecd6;
}

.uaf-empty{
    grid-column:1 / -1; background:var(--uaf-card); border:1px solid var(--uaf-line);
    border-radius:var(--uaf-radius); padding:32px; text-align:center;
}
.uaf-empty h3{ font-size:16px; margin-bottom:6px; }
.uaf-empty p{ color:var(--uaf-ink-soft); font-size:14px; }

/* Barra de filtros ("Todas as faculdades") */
.uaf-filters{ display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap; align-items:flex-start; }
.uaf-filters .uaf-field{ position:relative; }
.uaf-filters input[type="text"],
.uaf-filters select{
    font-family:'Inter',sans-serif; font-size:13.5px; padding:9px 12px;
    border:1px solid var(--uaf-line); border-radius:10px; background:var(--uaf-card); color:var(--uaf-ink);
    cursor:pointer; height:38px;
}
.uaf-filters input[type="text"]{ cursor:text; width:190px; }
.uaf-filters .uaf-sort{ margin-left:auto; }
.uaf-filters-btn-mobile{ display:none; }
.uaf-field-label-mobile{ display:none; }

.uaf-filters-actions{ display:flex; align-items:center; gap:14px; }
.uaf-filters-apply{
    border:none; cursor:pointer; font-weight:600; font-size:13.5px;
    color:#fff; background:var(--uaf-accent); border-radius:10px; padding:0 18px; height:38px;
}
.uaf-filters-apply:hover{ background:var(--uaf-accent-dark); }
.uaf-filters-clear{ font-size:13.5px; font-weight:600; color:var(--uaf-ink-soft); text-decoration:underline; }
.uaf-drawer-head{ display:none; }

/* Paginação numerada (desktop) */
.uaf-pagination{ display:flex; justify-content:center; gap:6px; margin-top:26px; font-size:14px; color:var(--uaf-ink-soft); }
.uaf-pagination .page-numbers{
    min-width:30px; height:30px; padding:0 8px; display:flex; align-items:center; justify-content:center;
    border-radius:8px; cursor:pointer;
}
.uaf-pagination .page-numbers.current{ background:var(--uaf-accent); color:#fff; font-weight:600; }
.uaf-pagination .page-numbers.dots{ cursor:default; }

.uaf-load-more{
    display:none; width:100%; padding:13px; border-radius:10px; border:1px solid var(--uaf-line);
    background:var(--uaf-card); color:var(--uaf-ink); font-weight:600; font-size:14px; margin-top:18px; cursor:pointer;
}
.uaf-load-more:hover{ border-color:var(--uaf-accent); color:var(--uaf-accent); }
.uaf-load-more[hidden]{ display:none !important; }

/* Explore por cidade */
.uaf-cidades{ border-top:1px solid var(--uaf-line); }
.uaf-cidades .uaf-field--cidade{ max-width:340px; margin-bottom:18px; }
.uaf-cidade-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.uaf-cidade-chip{
    font-size:13.5px; border:1px solid var(--uaf-line); border-radius:10px; padding:9px 14px;
    background:var(--uaf-card); display:flex; gap:6px; align-items:baseline;
}
.uaf-cidade-chip:hover{ border-color:var(--uaf-accent); }
.uaf-cidade-chip-n{ color:var(--uaf-ink-faint); font-size:12.5px; }

/* Drawer de filtros (mobile) */
.uaf-drawer-overlay{ display:none; position:fixed; inset:0; background:rgba(31,36,48,.4); z-index:40; }
.uaf-drawer-overlay.open{ display:block; }

@media (max-width: 860px){

    .uaf-hero h1{ font-size:28px; }
    .uaf-searchbar{ flex-direction:column; border-radius:16px; }
    .uaf-searchbar .uaf-field{ border-right:none; border-bottom:1px solid var(--uaf-line); }
    .uaf-searchbar button{ margin-top:4px; }

    .uaf-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }

    .uaf-filters-btn-mobile{
        display:flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600;
        border:1px solid var(--uaf-line); border-radius:10px; padding:8px 14px; background:var(--uaf-card);
        color:var(--uaf-ink); margin-bottom:14px; cursor:pointer;
    }

    .uaf-filters{
        display:none; flex-direction:column; gap:14px; flex-wrap:nowrap; align-items:stretch;
    }
    .uaf-filters.uaf-filters--open{
        display:flex; position:fixed; left:0; right:0; bottom:0; z-index:41;
        background:var(--uaf-card); border-radius:20px 20px 0 0; padding:22px;
        max-height:85vh; overflow-y:auto;
    }
    .uaf-filters .uaf-sort{ margin-left:0; }
    .uaf-filters input[type="text"]{ width:100%; }
    .uaf-filters input[type="text"],
    .uaf-filters select{ width:100%; }

    .uaf-drawer-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }
    .uaf-drawer-head h3{ font-size:16px; }
    .uaf-drawer-close{ border:none; background:none; font-size:22px; line-height:1; cursor:pointer; color:var(--uaf-ink-soft); }
    .uaf-field-label-mobile{ display:block; font-size:12.5px; font-weight:600; color:var(--uaf-ink-soft); margin-bottom:6px; }
    .uaf-filters-actions{ margin-top:4px; }
    .uaf-filters-apply{ flex:1; }

    .uaf-pagination{ display:none; }
    .uaf-load-more{ display:block; }
}
