{"id":40590,"date":"2025-07-21T21:43:32","date_gmt":"2025-07-22T00:43:32","guid":{"rendered":"https:\/\/portifolioos-prontos.com\/?page_id=40590"},"modified":"2026-04-11T16:18:28","modified_gmt":"2026-04-11T19:18:28","slug":"cursos-horas-complementares","status":"publish","type":"page","link":"https:\/\/portifolioos-prontos.com\/index.php\/cursos-horas-complementares\/","title":{"rendered":"ACO Horas complementares faculdade &#8211; Cursos livre para certificado"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"40590\" class=\"elementor elementor-40590\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f19ad37 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f19ad37\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7a87ddb\" data-id=\"7a87ddb\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-14a4155 elementor-widget elementor-widget-heading\" data-id=\"14a4155\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Precisa de horas para sua faculdade? Temos a solu\u00e7\u00e3o!!!<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b295ec1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b295ec1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8218997\" data-id=\"8218997\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e46f660 elementor-widget elementor-widget-html\" data-id=\"e46f660\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt-br\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n  <title>Quadro de Carga Hor\u00e1ria<\/title>\r\n  <style>\r\n    body \r\n    }\r\n\r\n    .container {\r\n      background-color: #444;\r\n      color: #fff;\r\n      border-radius: 16px;\r\n      padding: 40px;\r\n      max-width: 800px;\r\n      box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);\r\n    }\r\n\r\n    .title {\r\n      text-align: center;\r\n      font-size: 2em;\r\n      margin-bottom: 30px;\r\n      letter-spacing: 1px;\r\n    }\r\n\r\n    .grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\r\n      gap: 15px;\r\n    }\r\n\r\n    .card {\r\n      background-color: #fff;\r\n      color: #333;\r\n      padding: 20px;\r\n      text-align: center;\r\n      border-radius: 12px;\r\n      font-size: 1.1em;\r\n      font-weight: bold;\r\n      transition: transform 0.2s, box-shadow 0.2s;\r\n      cursor: pointer;\r\n    }\r\n\r\n    .card:hover {\r\n      transform: scale(1.05);\r\n      box-shadow: 0 8px 16px rgba(255, 255, 255, 0.1);\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"container\">\r\n    <div class=\"title\">Op\u00e7\u00f5es de carga hor\u00e1ria<\/div>\r\n    <div class=\"grid\">\r\n      <div class=\"card\">8 horas<\/div>\r\n      <div class=\"card\">20 horas<\/div>\r\n      <div class=\"card\">40 horas<\/div>\r\n      <div class=\"card\">60 horas<\/div>\r\n      <div class=\"card\">80 horas<\/div>\r\n      <div class=\"card\">100 horas<\/div>\r\n      <div class=\"card\">120 horas<\/div>\r\n      <div class=\"card\">140 horas<\/div>\r\n      <div class=\"card\">160 horas<\/div>\r\n      <div class=\"card\">200 horas<\/div>\r\n      <div class=\"card\">240 horas<\/div>\r\n      <div class=\"card\">300 horas<\/div>\r\n      <div class=\"card\">360 horas<\/div>\r\n      <div class=\"card\">400 horas<\/div>\r\n      <div class=\"card\">440 horas<\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6ebb38f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6ebb38f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-ee2335b\" data-id=\"ee2335b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-045cd9e elementor-widget elementor-widget-counter\" data-id=\"045cd9e\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">cursos online<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\">+<\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"800\" data-to-value=\"370\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\"><\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-87bbd8b\" data-id=\"87bbd8b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4b86e49 elementor-widget elementor-widget-counter\" data-id=\"4b86e49\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">certificados emitidos<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\">+<\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"420\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\">mil<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-4216e3f\" data-id=\"4216e3f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-959d2f8 elementor-widget elementor-widget-counter\" data-id=\"959d2f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">alunos matriculados<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\">+<\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"600\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\">mil<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-f525540\" data-id=\"f525540\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-54ed88a elementor-widget elementor-widget-counter\" data-id=\"54ed88a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">horas em curso<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\">+<\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"160\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\">mil<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-da59b30 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"da59b30\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1485c1b\" data-id=\"1485c1b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-555a242 elementor-widget elementor-widget-html\" data-id=\"555a242\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt-br\">\r\n<head>\r\n  <meta charset=\"UTF-8\" \/>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\r\n  <title>Cursos Online com Certificado<\/title>\r\n  <style>\r\n    :root {\r\n      --primary: #ffcc33;\r\n      --primary-dark: #e4b100;\r\n      --secondary: #0f172a;\r\n      --text: #1f2937;\r\n      --muted: #6b7280;\r\n      --bg: #f5f7fb;\r\n      --card: #ffffff;\r\n      --line: #e5e7eb;\r\n      --success: #16a34a;\r\n      --danger: #b91c1c;\r\n      --info: #2563eb;\r\n      --shadow: 0 10px 30px rgba(15, 23, 42, 0.08);\r\n      --radius: 18px;\r\n    }\r\n\r\n    * {\r\n      box-sizing: border-box;\r\n    }\r\n\r\n    html {\r\n      scroll-behavior: smooth;\r\n    }\r\n\r\n    body {\r\n      margin: 0;\r\n      font-family: Arial, sans-serif;\r\n      background: linear-gradient(180deg, #fffef7 0%, var(--bg) 240px);\r\n      color: var(--text);\r\n    }\r\n\r\n    .hero {\r\n      padding: 36px 18px 22px;\r\n      background:\r\n        radial-gradient(circle at top right, rgba(255, 204, 51, 0.28), transparent 30%),\r\n        linear-gradient(135deg, #111827 0%, #1f2937 100%);\r\n      color: white;\r\n    }\r\n\r\n    .hero-inner {\r\n      max-width: 1180px;\r\n      margin: 0 auto;\r\n      display: grid;\r\n      gap: 18px;\r\n    }\r\n\r\n    .badge {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n      background: rgba(255,255,255,0.12);\r\n      border: 1px solid rgba(255,255,255,0.14);\r\n      width: fit-content;\r\n      padding: 10px 14px;\r\n      border-radius: 999px;\r\n      font-size: 0.92rem;\r\n    }\r\n\r\n    .hero h1 {\r\n      margin: 0;\r\n      font-size: clamp(2rem, 4vw, 3.2rem);\r\n      line-height: 1.08;\r\n    }\r\n\r\n    .hero p {\r\n      margin: 0;\r\n      max-width: 780px;\r\n      color: rgba(255,255,255,0.9);\r\n      font-size: 1.02rem;\r\n      line-height: 1.6;\r\n    }\r\n\r\n    .toolbar {\r\n      max-width: 1180px;\r\n      margin: -18px auto 0;\r\n      padding: 0 18px;\r\n      position: relative;\r\n      z-index: 2;\r\n    }\r\n\r\n    .toolbar-card {\r\n      background: var(--card);\r\n      border-radius: 20px;\r\n      box-shadow: var(--shadow);\r\n      border: 1px solid rgba(15, 23, 42, 0.05);\r\n      padding: 16px;\r\n      display: grid;\r\n      gap: 14px;\r\n    }\r\n\r\n    .toolbar-grid {\r\n      display: grid;\r\n      grid-template-columns: 1.3fr 0.7fr;\r\n      gap: 14px;\r\n    }\r\n\r\n    .search-wrap {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 12px;\r\n      background: #f9fafb;\r\n      border: 1px solid var(--line);\r\n      border-radius: 14px;\r\n      padding: 0 14px;\r\n      min-height: 54px;\r\n    }\r\n\r\n    .search-wrap input {\r\n      border: none;\r\n      outline: none;\r\n      background: transparent;\r\n      width: 100%;\r\n      font-size: 1rem;\r\n      color: var(--text);\r\n    }\r\n\r\n    .stats {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, 1fr);\r\n      gap: 12px;\r\n    }\r\n\r\n    .stat {\r\n      background: #f9fafb;\r\n      border: 1px solid var(--line);\r\n      border-radius: 14px;\r\n      padding: 12px 14px;\r\n    }\r\n\r\n    .stat strong {\r\n      display: block;\r\n      font-size: 1.15rem;\r\n      color: var(--secondary);\r\n    }\r\n\r\n    .stat span {\r\n      color: var(--muted);\r\n      font-size: 0.92rem;\r\n    }\r\n\r\n    .content-sections {\r\n      max-width: 1180px;\r\n      margin: 24px auto 22px;\r\n      padding: 0 18px;\r\n      display: grid;\r\n      gap: 22px;\r\n    }\r\n\r\n    .section-card,\r\n    .catalog,\r\n    .sidebar-card {\r\n      background: var(--card);\r\n      border-radius: var(--radius);\r\n      box-shadow: var(--shadow);\r\n      border: 1px solid rgba(15, 23, 42, 0.05);\r\n    }\r\n\r\n    .section-card,\r\n    .sidebar-card {\r\n      padding: 20px;\r\n    }\r\n\r\n    .section-head {\r\n      margin-bottom: 18px;\r\n      display: grid;\r\n      gap: 8px;\r\n    }\r\n\r\n    .section-head h2,\r\n    .catalog-head h2 {\r\n      margin: 0;\r\n      font-size: 1.25rem;\r\n      color: var(--secondary);\r\n    }\r\n\r\n    .section-head p,\r\n    .catalog-head p {\r\n      margin: 0;\r\n      color: var(--muted);\r\n      font-size: 0.95rem;\r\n      line-height: 1.6;\r\n    }\r\n\r\n    .plans-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\r\n      gap: 18px;\r\n    }\r\n\r\n    .plan-card {\r\n      border: 1px solid var(--line);\r\n      border-radius: 18px;\r\n      padding: 18px;\r\n      background: linear-gradient(180deg, #ffffff 0%, #fcfcfd 100%);\r\n      display: flex;\r\n      flex-direction: column;\r\n      gap: 16px;\r\n      transition: transform 0.22s ease, box-shadow 0.22s ease;\r\n    }\r\n\r\n    .plan-card:hover {\r\n      transform: translateY(-4px);\r\n      box-shadow: 0 12px 26px rgba(15,23,42,0.08);\r\n    }\r\n\r\n    .plan-card.featured {\r\n      border: 2px solid var(--primary);\r\n      position: relative;\r\n    }\r\n\r\n    .featured-badge {\r\n      position: absolute;\r\n      top: -12px;\r\n      right: 18px;\r\n      background: var(--primary);\r\n      color: #111827;\r\n      padding: 6px 10px;\r\n      border-radius: 999px;\r\n      font-size: 0.78rem;\r\n      font-weight: bold;\r\n      box-shadow: 0 8px 16px rgba(228,177,0,0.25);\r\n    }\r\n\r\n    .plan-tag {\r\n      display: inline-flex;\r\n      width: fit-content;\r\n      padding: 7px 10px;\r\n      border-radius: 999px;\r\n      font-weight: bold;\r\n      font-size: 0.8rem;\r\n      background: #fff8dc;\r\n      color: #8a6b00;\r\n    }\r\n\r\n    .plan-card h3 {\r\n      margin: 0;\r\n      font-size: 1.22rem;\r\n      color: var(--secondary);\r\n    }\r\n\r\n    .plan-subtitle {\r\n      color: var(--muted);\r\n      font-size: 0.94rem;\r\n      margin-top: -8px;\r\n    }\r\n\r\n    .price-box {\r\n      border: 1px solid var(--line);\r\n      border-radius: 14px;\r\n      padding: 14px;\r\n      background: #f9fafb;\r\n    }\r\n\r\n    .price-box strong {\r\n      display: block;\r\n      font-size: 1.6rem;\r\n      color: var(--secondary);\r\n    }\r\n\r\n    .price-box span {\r\n      color: var(--muted);\r\n      font-size: 0.92rem;\r\n    }\r\n\r\n    .hours-wrap {\r\n      display: grid;\r\n      gap: 10px;\r\n    }\r\n\r\n    .hours-label {\r\n      font-weight: bold;\r\n      color: var(--secondary);\r\n      font-size: 0.95rem;\r\n    }\r\n\r\n    .hours-grid {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      gap: 8px;\r\n    }\r\n\r\n    .hour-chip {\r\n      padding: 8px 12px;\r\n      border-radius: 999px;\r\n      border: 1px solid var(--line);\r\n      background: #fff;\r\n      color: var(--text);\r\n      font-size: 0.88rem;\r\n      font-weight: bold;\r\n    }\r\n\r\n    .features {\r\n      list-style: none;\r\n      padding: 0;\r\n      margin: 0;\r\n      display: grid;\r\n      gap: 10px;\r\n    }\r\n\r\n    .features li {\r\n      display: flex;\r\n      gap: 10px;\r\n      align-items: flex-start;\r\n      color: var(--text);\r\n      line-height: 1.45;\r\n      font-size: 0.95rem;\r\n    }\r\n\r\n    .features li::before {\r\n      content: \"\u2714\";\r\n      color: var(--success);\r\n      font-weight: bold;\r\n      margin-top: 1px;\r\n    }\r\n\r\n    .text-block {\r\n      display: grid;\r\n      gap: 12px;\r\n    }\r\n\r\n    .text-block p {\r\n      margin: 0;\r\n      color: var(--text);\r\n      line-height: 1.7;\r\n      font-size: 0.97rem;\r\n    }\r\n\r\n    .notice-box {\r\n      border-left: 4px solid var(--primary);\r\n      background: #fffdf3;\r\n      padding: 14px 16px;\r\n      border-radius: 12px;\r\n      color: var(--text);\r\n      line-height: 1.6;\r\n    }\r\n\r\n    .main {\r\n      max-width: 1180px;\r\n      margin: 0 auto 40px;\r\n      padding: 0 18px;\r\n      display: grid;\r\n      grid-template-columns: 1.6fr 0.8fr;\r\n      gap: 22px;\r\n      align-items: start;\r\n    }\r\n\r\n    .catalog {\r\n      overflow: hidden;\r\n    }\r\n\r\n    .catalog-head {\r\n      padding: 18px 20px;\r\n      border-bottom: 1px solid var(--line);\r\n      display: flex;\r\n      justify-content: space-between;\r\n      align-items: center;\r\n      gap: 14px;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .catalog-meta {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n      background: #eff6ff;\r\n      color: #1d4ed8;\r\n      border: 1px solid #bfdbfe;\r\n      border-radius: 999px;\r\n      padding: 8px 12px;\r\n      font-size: 0.84rem;\r\n      font-weight: bold;\r\n    }\r\n\r\n    .accordion-list {\r\n      padding: 14px;\r\n    }\r\n\r\n    .accordion-item {\r\n      border: 1px solid var(--line);\r\n      border-radius: 16px;\r\n      overflow: hidden;\r\n      background: #fff;\r\n      margin-bottom: 14px;\r\n      transition: box-shadow 0.25s ease, transform 0.25s ease;\r\n    }\r\n\r\n    .accordion-item:hover {\r\n      box-shadow: 0 6px 20px rgba(15,23,42,0.06);\r\n    }\r\n\r\n    .accordion-header {\r\n      width: 100%;\r\n      border: none;\r\n      background: white;\r\n      cursor: pointer;\r\n      padding: 18px;\r\n      text-align: left;\r\n      display: grid;\r\n      grid-template-columns: 1fr auto;\r\n      gap: 16px;\r\n      align-items: center;\r\n    }\r\n\r\n    .accordion-title {\r\n      display: flex;\r\n      flex-direction: column;\r\n      gap: 6px;\r\n    }\r\n\r\n    .accordion-title strong {\r\n      font-size: 1rem;\r\n      color: var(--secondary);\r\n    }\r\n\r\n    .accordion-title span {\r\n      color: var(--muted);\r\n      font-size: 0.92rem;\r\n    }\r\n\r\n    .accordion-icon {\r\n      width: 40px;\r\n      height: 40px;\r\n      border-radius: 12px;\r\n      display: grid;\r\n      place-items: center;\r\n      background: #fff8dc;\r\n      color: #8a6b00;\r\n      font-size: 1.35rem;\r\n      transition: transform 0.25s ease;\r\n      flex-shrink: 0;\r\n    }\r\n\r\n    .accordion-item.active .accordion-icon {\r\n      transform: rotate(45deg);\r\n    }\r\n\r\n    .accordion-content {\r\n      display: none;\r\n      border-top: 1px solid var(--line);\r\n      background: #fcfcfd;\r\n      padding: 18px;\r\n    }\r\n\r\n    .accordion-item.active .accordion-content {\r\n      display: block;\r\n    }\r\n\r\n    .courses-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fit, minmax(235px, 1fr));\r\n      gap: 14px;\r\n    }\r\n\r\n    .course-card {\r\n      background: white;\r\n      border: 1px solid var(--line);\r\n      border-radius: 14px;\r\n      padding: 14px;\r\n      display: flex;\r\n      flex-direction: column;\r\n      min-height: 170px;\r\n      justify-content: space-between;\r\n      transition: transform 0.22s ease, box-shadow 0.22s ease;\r\n    }\r\n\r\n    .course-card:hover {\r\n      transform: translateY(-4px);\r\n      box-shadow: 0 10px 22px rgba(15,23,42,0.08);\r\n    }\r\n\r\n    .course-top {\r\n      display: grid;\r\n      gap: 10px;\r\n    }\r\n\r\n    .course-chip {\r\n      display: inline-flex;\r\n      width: fit-content;\r\n      background: #eefbf1;\r\n      color: var(--success);\r\n      font-size: 0.8rem;\r\n      font-weight: bold;\r\n      padding: 7px 10px;\r\n      border-radius: 999px;\r\n    }\r\n\r\n    .course-card h3 {\r\n      margin: 0;\r\n      font-size: 1rem;\r\n      line-height: 1.45;\r\n      color: var(--secondary);\r\n    }\r\n\r\n    .course-actions {\r\n      margin-top: 14px;\r\n      display: flex;\r\n      gap: 10px;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .btn-primary,\r\n    .btn-secondary,\r\n    .btn-outline {\r\n      text-decoration: none;\r\n      border-radius: 12px;\r\n      font-weight: bold;\r\n      padding: 11px 14px;\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      min-height: 44px;\r\n      transition: 0.25s ease;\r\n      border: none;\r\n      cursor: pointer;\r\n    }\r\n\r\n    .btn-primary {\r\n      background: var(--primary);\r\n      color: #111827;\r\n      flex: 1;\r\n    }\r\n\r\n    .btn-primary:hover {\r\n      background: var(--primary-dark);\r\n      color: white;\r\n    }\r\n\r\n    .btn-secondary {\r\n      background: #111827;\r\n      color: #fff;\r\n    }\r\n\r\n    .btn-secondary:hover {\r\n      background: #1f2937;\r\n    }\r\n\r\n    .btn-outline {\r\n      background: #fff;\r\n      color: var(--secondary);\r\n      border: 1px solid var(--line);\r\n    }\r\n\r\n    .btn-outline:hover {\r\n      background: #f9fafb;\r\n    }\r\n\r\n    .sidebar {\r\n      display: grid;\r\n      gap: 18px;\r\n    }\r\n\r\n    .sidebar-card h3,\r\n    .section-card h3 {\r\n      margin: 0 0 12px;\r\n      color: var(--secondary);\r\n      font-size: 1.1rem;\r\n    }\r\n\r\n    .sidebar-card p,\r\n    .section-card p {\r\n      margin: 0;\r\n      color: var(--muted);\r\n      line-height: 1.6;\r\n      font-size: 0.95rem;\r\n    }\r\n\r\n    .table-wrap {\r\n      overflow-x: auto;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      background: white;\r\n      border: 1px solid var(--line);\r\n      border-radius: 14px;\r\n      overflow: hidden;\r\n    }\r\n\r\n    th,\r\n    td {\r\n      padding: 12px 14px;\r\n      text-align: left;\r\n      border-bottom: 1px solid var(--line);\r\n      font-size: 0.95rem;\r\n    }\r\n\r\n    th {\r\n      background: #f9fafb;\r\n      color: var(--secondary);\r\n    }\r\n\r\n    tr:last-child td {\r\n      border-bottom: none;\r\n    }\r\n\r\n    .faq-grid {\r\n      display: grid;\r\n      gap: 14px;\r\n    }\r\n\r\n    .faq-item {\r\n      border: 1px solid var(--line);\r\n      border-radius: 14px;\r\n      padding: 16px;\r\n      background: #fff;\r\n    }\r\n\r\n    .faq-item h4 {\r\n      margin: 0 0 8px;\r\n      color: var(--secondary);\r\n      font-size: 1rem;\r\n    }\r\n\r\n    .faq-item p {\r\n      margin: 0;\r\n      color: var(--text);\r\n      line-height: 1.65;\r\n      font-size: 0.95rem;\r\n    }\r\n\r\n    .loading,\r\n    .empty-state,\r\n    .error-state,\r\n    .info-state {\r\n      border: 1px dashed var(--line);\r\n      border-radius: 14px;\r\n      background: white;\r\n      padding: 18px;\r\n      text-align: center;\r\n      color: var(--muted);\r\n      font-size: 0.95rem;\r\n    }\r\n\r\n    .error-state {\r\n      color: var(--danger);\r\n      border-color: #fecaca;\r\n      background: #fff7f7;\r\n    }\r\n\r\n    .info-state {\r\n      color: var(--info);\r\n      border-color: #bfdbfe;\r\n      background: #f8fbff;\r\n    }\r\n\r\n    .footer-note {\r\n      max-width: 1180px;\r\n      margin: 0 auto 42px;\r\n      padding: 0 18px;\r\n      color: var(--muted);\r\n      font-size: 0.9rem;\r\n      line-height: 1.6;\r\n    }\r\n\r\n    .hidden {\r\n      display: none !important;\r\n    }\r\n\r\n    @media (max-width: 980px) {\r\n      .main {\r\n        grid-template-columns: 1fr;\r\n      }\r\n\r\n      .toolbar-grid {\r\n        grid-template-columns: 1fr;\r\n      }\r\n    }\r\n\r\n    @media (max-width: 640px) {\r\n      .stats {\r\n        grid-template-columns: 1fr;\r\n      }\r\n\r\n      .catalog-head {\r\n        align-items: flex-start;\r\n      }\r\n\r\n      .accordion-header,\r\n      .accordion-content {\r\n        padding: 16px;\r\n      }\r\n\r\n      .course-actions {\r\n        flex-direction: column;\r\n      }\r\n\r\n      .btn-primary,\r\n      .btn-secondary,\r\n      .btn-outline {\r\n        width: 100%;\r\n      }\r\n\r\n      .section-card,\r\n      .sidebar-card {\r\n        padding: 18px;\r\n      }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <section class=\"hero\">\r\n    <div class=\"hero-inner\">\r\n      <div class=\"badge\">\ud83c\udf93 Cat\u00e1logo profissional de cursos online<\/div>\r\n      <h1>Escolha sua categoria e encontre o curso ideal<\/h1>\r\n      <p>\r\n        Navegue pelas categorias, veja os planos dispon\u00edveis e selecione o curso desejado.\r\n        Todos os links de acesso aos cursos s\u00e3o montados com seu c\u00f3digo de afiliado automaticamente.\r\n      <\/p>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"toolbar\">\r\n    <div class=\"toolbar-card\">\r\n      <div class=\"toolbar-grid\">\r\n        <div class=\"search-wrap\">\r\n          <span>\ud83d\udd0e<\/span>\r\n          <input type=\"text\" id=\"searchInput\" placeholder=\"Buscar categoria ou curso j\u00e1 carregado...\" \/>\r\n        <\/div>\r\n\r\n        <div class=\"stats\">\r\n          <div class=\"stat\">\r\n            <strong id=\"categoryCount\">0<\/strong>\r\n            <span>Categorias<\/span>\r\n          <\/div>\r\n          <div class=\"stat\">\r\n            <strong id=\"courseCount\">0<\/strong>\r\n            <span>Cursos carregados at\u00e9 agora<\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"content-sections\">\r\n    <div class=\"section-card\" id=\"planos\">\r\n      <div class=\"section-head\">\r\n        <h2>Planos dispon\u00edveis<\/h2>\r\n        <p>Escolha a op\u00e7\u00e3o ideal conforme a carga hor\u00e1ria que voc\u00ea precisa.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"plans-grid\">\r\n        <div class=\"plan-card\">\r\n          <span class=\"plan-tag\">Plano B\u00e1sico<\/span>\r\n          <h3>B\u00e1sico<\/h3>\r\n          <div class=\"plan-subtitle\">At\u00e9 80 horas<\/div>\r\n\r\n          <div class=\"price-box\">\r\n            <strong>R$ 39,00<\/strong>\r\n            <span>Taxa \u00fanica<\/span>\r\n          <\/div>\r\n\r\n          <ul class=\"features\">\r\n            <li>Material did\u00e1tico completo<\/li>\r\n            <li>Certificado incluso<\/li>\r\n            <li>Carteira de estudante<\/li>\r\n            <li>Tutoria e intelig\u00eancia artificial<\/li>\r\n          <\/ul>\r\n\r\n          <div class=\"hours-wrap\">\r\n            <div class=\"hours-label\">Escolha a carga hor\u00e1ria:<\/div>\r\n            <div class=\"hours-grid\">\r\n              <span class=\"hour-chip\">8 horas<\/span>\r\n              <span class=\"hour-chip\">20 horas<\/span>\r\n              <span class=\"hour-chip\">40 horas<\/span>\r\n              <span class=\"hour-chip\">60 horas<\/span>\r\n              <span class=\"hour-chip\">80 horas<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"plan-card featured\">\r\n          <span class=\"featured-badge\">Mais escolhido<\/span>\r\n          <span class=\"plan-tag\">Plano Intermedi\u00e1rio<\/span>\r\n          <h3>Intermedi\u00e1rio<\/h3>\r\n          <div class=\"plan-subtitle\">At\u00e9 220 horas<\/div>\r\n\r\n          <div class=\"price-box\">\r\n            <strong>R$ 89,00<\/strong>\r\n            <span>Taxa \u00fanica<\/span>\r\n          <\/div>\r\n\r\n          <ul class=\"features\">\r\n            <li>Material did\u00e1tico completo<\/li>\r\n            <li>Certificado incluso<\/li>\r\n            <li>Certificado internacional<\/li>\r\n            <li>Carteira de estudante<\/li>\r\n            <li>Tutoria e intelig\u00eancia artificial<\/li>\r\n          <\/ul>\r\n\r\n          <div class=\"hours-wrap\">\r\n            <div class=\"hours-label\">Escolha a carga hor\u00e1ria:<\/div>\r\n            <div class=\"hours-grid\">\r\n              <span class=\"hour-chip\">100 horas<\/span>\r\n              <span class=\"hour-chip\">140 horas<\/span>\r\n              <span class=\"hour-chip\">160 horas<\/span>\r\n              <span class=\"hour-chip\">200 horas<\/span>\r\n              <span class=\"hour-chip\">220 horas<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"plan-card\">\r\n          <span class=\"plan-tag\">Plano Completo<\/span>\r\n          <h3>Completo<\/h3>\r\n          <div class=\"plan-subtitle\">At\u00e9 440 horas<\/div>\r\n\r\n          <div class=\"price-box\">\r\n            <strong>R$ 159,00<\/strong>\r\n            <span>Taxa \u00fanica<\/span>\r\n          <\/div>\r\n\r\n          <ul class=\"features\">\r\n            <li>Material did\u00e1tico completo<\/li>\r\n            <li>Certificado incluso<\/li>\r\n            <li>Certificado internacional<\/li>\r\n            <li>Carteira de estudante<\/li>\r\n            <li>Tutoria e intelig\u00eancia artificial<\/li>\r\n          <\/ul>\r\n\r\n          <div class=\"hours-wrap\">\r\n            <div class=\"hours-label\">Escolha a carga hor\u00e1ria:<\/div>\r\n            <div class=\"hours-grid\">\r\n              <span class=\"hour-chip\">240 horas<\/span>\r\n              <span class=\"hour-chip\">300 horas<\/span>\r\n              <span class=\"hour-chip\">360 horas<\/span>\r\n              <span class=\"hour-chip\">400 horas<\/span>\r\n              <span class=\"hour-chip\">440 horas<\/span>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"section-card\" id=\"certificado\">\r\n      <div class=\"section-head\">\r\n        <h2>Informa\u00e7\u00f5es sobre o certificado<\/h2>\r\n        <p>Entenda como funciona a emiss\u00e3o e para quais finalidades ele pode ser utilizado.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"text-block\">\r\n        <p>\r\n          O certificado \u00e9 incluso sem custos nos planos <strong>b\u00e1sico<\/strong>,\r\n          <strong>intermedi\u00e1rio<\/strong> e <strong>completo<\/strong>, e ser\u00e1 enviado em\r\n          formato digital <strong>(PDF)<\/strong> imediatamente ap\u00f3s a aprova\u00e7\u00e3o na prova final.\r\n        <\/p>\r\n\r\n        <p>\r\n          O certificado pode ser usado para horas extracurriculares em universidades,\r\n          licen\u00e7a de capacita\u00e7\u00e3o de servidores p\u00fablicos, apresenta\u00e7\u00e3o em concursos\r\n          (verifique o edital), progress\u00e3o funcional, comprova\u00e7\u00e3o em provas de t\u00edtulo,\r\n          enriquecimento do curr\u00edculo, busca por empregos, entre outras finalidades.\r\n        <\/p>\r\n\r\n        <p>\r\n          O certificado \u00e9 registrado no Brasil pela <strong>Cursos Virtuais LTDA<\/strong>.\r\n          Nossos certificados contam com assinatura do(s) professor(es), instrutor(es),\r\n          informa\u00e7\u00f5es legais, registro, QR Code e tamb\u00e9m data de in\u00edcio e conclus\u00e3o.\r\n        <\/p>\r\n\r\n        <div class=\"notice-box\">\r\n          <strong>Aten\u00e7\u00e3o:<\/strong> no plano gr\u00e1tis, o certificado n\u00e3o est\u00e1 incluso.\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"section-card\" id=\"datas-certificado\">\r\n      <div class=\"section-head\">\r\n        <h2>Datas do certificado<\/h2>\r\n        <p>Mais flexibilidade para atender exig\u00eancias acad\u00eamicas, profissionais e de concursos.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"text-block\">\r\n        <p>\r\n          Nosso certificado \u00e9 sempre emitido com <strong>data de in\u00edcio<\/strong> e\r\n          <strong>data de fim dos estudos<\/strong>.\r\n        <\/p>\r\n        <p>\r\n          Voc\u00ea pode personalizar as datas do certificado, a partir da data de matr\u00edcula,\r\n          definindo quando fez ou ir\u00e1 fazer o curso, para adequa\u00e7\u00e3o a concursos,\r\n          empregadores e licen\u00e7as de capacita\u00e7\u00e3o.\r\n        <\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"section-card\" id=\"materiais\">\r\n      <div class=\"section-head\">\r\n        <h2>Material did\u00e1tico e recursos<\/h2>\r\n        <p>Os planos pagos oferecem recursos completos para melhorar sua experi\u00eancia de estudos.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"text-block\">\r\n        <p>\r\n          Enquanto o plano gr\u00e1tis n\u00e3o oferece os recursos completos, nos planos\r\n          <strong>b\u00e1sico<\/strong>, <strong>intermedi\u00e1rio<\/strong> e <strong>completo<\/strong>\r\n          voc\u00ea aproveita <strong>9 apostilas did\u00e1ticas em PDF<\/strong>, al\u00e9m de atividades e\r\n          avalia\u00e7\u00f5es interativas, tutoria e tira-d\u00favidas com <strong>intelig\u00eancia artificial<\/strong>.\r\n        <\/p>\r\n        <p>\r\n          Todo o conte\u00fado pode ser acessado online e tamb\u00e9m baixado para seu computador\r\n          ou celular, de forma definitiva e sem restri\u00e7\u00f5es.\r\n        <\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"section-card\" id=\"duracao\">\r\n      <div class=\"section-head\">\r\n        <h2>Dura\u00e7\u00e3o do curso e carga hor\u00e1ria<\/h2>\r\n        <p>Estude no seu ritmo, com acesso flex\u00edvel e amplo.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"text-block\">\r\n        <p>\r\n          Voc\u00ea pode estudar o curso online por at\u00e9 <strong>1 ano<\/strong> a partir da data da matr\u00edcula.\r\n        <\/p>\r\n        <p>\r\n          \u00c9 poss\u00edvel cumprir a carga hor\u00e1ria escolhida com limite de at\u00e9\r\n          <strong>8 horas por dia<\/strong> e, ao finalizar os estudos, realizar a prova final\r\n          para receber imediatamente o certificado nos planos pagos.\r\n        <\/p>\r\n        <p>\r\n          Estude quando quiser. A plataforma funciona <strong>24 horas por dia, 7 dias por semana<\/strong>.\r\n        <\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"section-card\" id=\"faq\">\r\n      <div class=\"section-head\">\r\n        <h2>Perguntas frequentes<\/h2>\r\n        <p>Respostas r\u00e1pidas para as d\u00favidas mais comuns.<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"faq-grid\">\r\n        <div class=\"faq-item\">\r\n          <h4>Eu quero apenas o certificado. Preciso estudar e fazer o curso?<\/h4>\r\n          <p>\r\n            Sim. \u00c9 obrigat\u00f3rio estudar o curso, cumprir a carga hor\u00e1ria e realizar a prova final para obter o certificado.\r\n            N\u00e3o vendemos certificados isoladamente.\r\n          <\/p>\r\n        <\/div>\r\n\r\n        <div class=\"faq-item\">\r\n          <h4>Quando recebo o certificado? Existe um tempo m\u00ednimo de estudos?<\/h4>\r\n          <p>\r\n            Nos planos pagos voc\u00ea recebe o certificado imediatamente ap\u00f3s a prova final.\r\n            No plano gr\u00e1tis n\u00e3o h\u00e1 emiss\u00e3o de certificado. Para garantir a validade e o reconhecimento,\r\n            \u00e9 imprescind\u00edvel cumprir um tempo m\u00ednimo de estudos antes da avalia\u00e7\u00e3o.\r\n          <\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"table-wrap\">\r\n        <table>\r\n          <thead>\r\n            <tr>\r\n              <th>Carga hor\u00e1ria<\/th>\r\n              <th>Tempo m\u00ednimo de estudo<\/th>\r\n            <\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr><td>8 horas<\/td><td>1 dia<\/td><\/tr>\r\n            <tr><td>20 horas<\/td><td>3 dias<\/td><\/tr>\r\n            <tr><td>40 horas<\/td><td>5 dias<\/td><\/tr>\r\n            <tr><td>60 horas<\/td><td>8 dias<\/td><\/tr>\r\n            <tr><td>80 horas<\/td><td>10 dias<\/td><\/tr>\r\n            <tr><td>100 horas<\/td><td>13 dias<\/td><\/tr>\r\n            <tr><td>140 horas<\/td><td>18 dias<\/td><\/tr>\r\n            <tr><td>160 horas<\/td><td>20 dias<\/td><\/tr>\r\n            <tr><td>200 horas<\/td><td>25 dias<\/td><\/tr>\r\n            <tr><td>220 horas<\/td><td>28 dias<\/td><\/tr>\r\n            <tr><td>240 horas<\/td><td>30 dias<\/td><\/tr>\r\n            <tr><td>300 horas<\/td><td>38 dias<\/td><\/tr>\r\n            <tr><td>360 horas<\/td><td>45 dias<\/td><\/tr>\r\n            <tr><td>400 horas<\/td><td>50 dias<\/td><\/tr>\r\n            <tr><td>440 horas<\/td><td>55 dias<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <main class=\"main\">\r\n    <section class=\"catalog\">\r\n      <div class=\"catalog-head\">\r\n        <div>\r\n          <h2>Cat\u00e1logo de cursos<\/h2>\r\n          <p>\r\n            Clique em uma categoria para carregar os cursos dispon\u00edveis.\r\n            Quando a p\u00e1gina externa n\u00e3o permitir leitura correta, a categoria mostrar\u00e1 aviso em vez de exibir dados quebrados.\r\n          <\/p>\r\n        <\/div>\r\n        <div class=\"catalog-meta\">Leitura segura por categoria<\/div>\r\n      <\/div>\r\n\r\n      <div class=\"accordion-list\" id=\"accordionList\"><\/div>\r\n    <\/section>\r\n\r\n    <aside class=\"sidebar\">\r\n      <div class=\"sidebar-card\" id=\"vantagens\">\r\n        <h3>Vantagens dos cursos<\/h3>\r\n        <ul class=\"features\">\r\n          <li>Aceitamos Pix, boleto ou cart\u00e3o.<\/li>\r\n          <li>Voc\u00ea paga a taxa de matr\u00edcula e nada mais.<\/li>\r\n          <li>Sem taxa para emiss\u00e3o do certificado.<\/li>\r\n          <li>V\u00e1lido para horas complementares.<\/li>\r\n          <li>Sem mensalidades.<\/li>\r\n          <li>100% online.<\/li>\r\n          <li>Estude em qualquer dia ou hor\u00e1rio.<\/li>\r\n          <li>Certificado emitido ap\u00f3s a avalia\u00e7\u00e3o.<\/li>\r\n          <li>Declara\u00e7\u00e3o de matr\u00edcula em PDF.<\/li>\r\n          <li>Download definitivo do material did\u00e1tico.<\/li>\r\n          <li>Tira-d\u00favidas com professor e tutoria.<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n\r\n      <div class=\"sidebar-card\">\r\n        <h3>Como funciona<\/h3>\r\n        <p>\r\n          Abra a categoria desejada, aguarde o carregamento dos cursos e clique em\r\n          <strong>Ver curso<\/strong>. O link \u00e9 enviado com seu c\u00f3digo de afiliado no final.\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"sidebar-card\">\r\n        <h3>Importante<\/h3>\r\n        <p>\r\n          Algumas categorias podem falhar dependendo da resposta do site externo.\r\n          Nesta vers\u00e3o, quando isso acontecer, o sistema mostra erro claro em vez de cards quebrados.\r\n        <\/p>\r\n      <\/div>\r\n    <\/aside>\r\n  <\/main>\r\n\r\n  <div class=\"footer-note\">\r\n    Observa\u00e7\u00e3o: o cat\u00e1logo abaixo tenta buscar automaticamente os cursos nas p\u00e1ginas de categoria e monta os links com\r\n    <code>?origem=1728<\/code> no final. Quando a leitura n\u00e3o for confi\u00e1vel, a categoria exibir\u00e1 uma mensagem de erro.\r\n  <\/div>\r\n\r\n  <script>\r\n    const AFFILIATE_CODE = \"1728\";\r\n\r\n    const categories = [\r\n      { name: \"Administra\u00e7\u00e3o\", slug: \"administracao\" },\r\n      { name: \"Agro e Meio Ambiente\", slug: \"agro-meio-ambiente\" },\r\n      { name: \"Alimenta\u00e7\u00e3o e Culin\u00e1ria\", slug: \"alimentacao-culinaria\" },\r\n      { name: \"Animais e Pets\", slug: \"animais-pets\" },\r\n      { name: \"Artesanato\", slug: \"artesanato\" },\r\n      { name: \"Assist\u00eancia Social\", slug: \"assistencia-social\" },\r\n      { name: \"Atendimento\", slug: \"atendimento\" },\r\n      { name: \"Autom\u00f3veis e Motos\", slug: \"automoveis-motos\" },\r\n      { name: \"Aut\u00f4nomos e Profissionais\", slug: \"autonomos-profissionais\" },\r\n      { name: \"Comunica\u00e7\u00e3o e Vendas\", slug: \"comunicacao-vendas\" },\r\n      { name: \"Concursos e Vestibulares\", slug: \"concursos-vestibulares\" },\r\n      { name: \"Consertos e Reparos\", slug: \"consertos-reparos\" },\r\n      { name: \"Constru\u00e7\u00e3o e Engenharia\", slug: \"construcao-engenharia\" },\r\n      { name: \"Contabilidade e Finan\u00e7as\", slug: \"contabilidade-financas\" },\r\n      { name: \"Cursos Gr\u00e1tis\", slug: \"cursos-gratis\" },\r\n      { name: \"Direito\", slug: \"direito\" },\r\n      { name: \"Educa\u00e7\u00e3o\", slug: \"educacao\" },\r\n      { name: \"Educa\u00e7\u00e3o Especial\", slug: \"educacao-especial\" },\r\n      { name: \"Eletricidade\", slug: \"eletricidade\" },\r\n      { name: \"Eletr\u00f4nica\", slug: \"eletronica\" },\r\n      { name: \"Esportes e Educa\u00e7\u00e3o F\u00edsica\", slug: \"esportes-educacao-fisica\" },\r\n      { name: \"Est\u00e9tica e Beleza\", slug: \"estetica-beleza\" },\r\n      { name: \"Idiomas\", slug: \"idiomas\" },\r\n      { name: \"Inform\u00e1tica\", slug: \"informatica\" },\r\n      { name: \"Licen\u00e7a de Capacita\u00e7\u00e3o\", slug: \"licenca-capacitacao\" },\r\n      { name: \"Limpeza e Servi\u00e7os Gerais\", slug: \"limpeza-servicos-gerais\" },\r\n      { name: \"Log\u00edstica\", slug: \"logistica\" },\r\n      { name: \"Pedagogia\", slug: \"pedagogia\" },\r\n      { name: \"Programa\u00e7\u00e3o\", slug: \"programacao\" },\r\n      { name: \"Psicologia\", slug: \"psicologia\" },\r\n      { name: \"Recursos Humanos\", slug: \"recursos-humanos\" },\r\n      { name: \"Refrigera\u00e7\u00e3o\", slug: \"refrigeracao\" },\r\n      { name: \"Religi\u00e3o e Esoterismo\", slug: \"religiao-esoterismo\" },\r\n      { name: \"Sa\u00fade e Enfermagem\", slug: \"saude-enfermagem\" },\r\n      { name: \"Seguran\u00e7a\", slug: \"seguranca\" },\r\n      { name: \"Seguran\u00e7a no Trabalho\", slug: \"seguranca-no-trabalho\" },\r\n      { name: \"Sensualidade e Sedu\u00e7\u00e3o\", slug: \"sensualidade-seducao\" },\r\n      { name: \"Servi\u00e7o P\u00fablico\", slug: \"servico-publico\" },\r\n      { name: \"Som e M\u00fasica\", slug: \"som-musica\" }\r\n    ];\r\n\r\n    const accordionList = document.getElementById(\"accordionList\");\r\n    const searchInput = document.getElementById(\"searchInput\");\r\n    const categoryCount = document.getElementById(\"categoryCount\");\r\n    const courseCount = document.getElementById(\"courseCount\");\r\n\r\n    const loadedCategoryCache = new Map();\r\n\r\n    function categoryUrl(slug) {\r\n      return `https:\/\/www.cursosvirtuais.net\/cursos\/${slug}.htm?origem=${AFFILIATE_CODE}`;\r\n    }\r\n\r\n    function affiliateCourseUrl(url) {\r\n      const clean = url.split(\"?\")[0];\r\n      return `${clean}?origem=${AFFILIATE_CODE}`;\r\n    }\r\n\r\n    function escapeHtml(text) {\r\n      return String(text)\r\n        .replaceAll(\"&\", \"&amp;\")\r\n        .replaceAll(\"<\", \"&lt;\")\r\n        .replaceAll(\">\", \"&gt;\")\r\n        .replaceAll('\"', \"&quot;\")\r\n        .replaceAll(\"'\", \"&#039;\");\r\n    }\r\n\r\n    function normalizeText(text) {\r\n      return String(text || \"\")\r\n        .normalize(\"NFD\")\r\n        .replace(\/[\\u0300-\\u036f]\/g, \"\")\r\n        .toLowerCase()\r\n        .trim();\r\n    }\r\n\r\n    function updateCourseCounter() {\r\n      let total = 0;\r\n      loadedCategoryCache.forEach(courses => {\r\n        total += courses.length;\r\n      });\r\n      courseCount.textContent = total;\r\n    }\r\n\r\n    function updateCategoryStatus(item, text) {\r\n      const status = item.querySelector(\".category-status\");\r\n      if (status) status.textContent = text;\r\n    }\r\n\r\n    function renderCategories() {\r\n      categoryCount.textContent = categories.length;\r\n\r\n      accordionList.innerHTML = categories.map((cat) => `\r\n        <div class=\"accordion-item\" data-category=\"${escapeHtml(cat.name)}\" data-slug=\"${escapeHtml(cat.slug)}\">\r\n          <button class=\"accordion-header\" type=\"button\" aria-expanded=\"false\">\r\n            <div class=\"accordion-title\">\r\n              <strong>${escapeHtml(cat.name)}<\/strong>\r\n              <span class=\"category-status\">Clique para carregar os cursos<\/span>\r\n            <\/div>\r\n            <div class=\"accordion-icon\">+<\/div>\r\n          <\/button>\r\n          <div class=\"accordion-content\">\r\n            <div class=\"info-state\">Abra esta categoria para buscar os cursos automaticamente.<\/div>\r\n          <\/div>\r\n        <\/div>\r\n      `).join(\"\");\r\n\r\n      document.querySelectorAll(\".accordion-item\").forEach(item => {\r\n        const header = item.querySelector(\".accordion-header\");\r\n        header.addEventListener(\"click\", () => toggleAccordion(item));\r\n      });\r\n    }\r\n\r\n    async function toggleAccordion(item) {\r\n      const isActive = item.classList.contains(\"active\");\r\n      const header = item.querySelector(\".accordion-header\");\r\n\r\n      document.querySelectorAll(\".accordion-item\").forEach(other => {\r\n        if (other !== item) {\r\n          other.classList.remove(\"active\");\r\n          other.querySelector(\".accordion-header\").setAttribute(\"aria-expanded\", \"false\");\r\n        }\r\n      });\r\n\r\n      if (isActive) {\r\n        item.classList.remove(\"active\");\r\n        header.setAttribute(\"aria-expanded\", \"false\");\r\n        return;\r\n      }\r\n\r\n      item.classList.add(\"active\");\r\n      header.setAttribute(\"aria-expanded\", \"true\");\r\n\r\n      const content = item.querySelector(\".accordion-content\");\r\n\r\n      if (!content.dataset.loaded && !content.dataset.loading) {\r\n        const slug = item.dataset.slug;\r\n        const categoryName = item.dataset.category;\r\n        await loadCategoryCourses(slug, categoryName, content, item);\r\n      }\r\n    }\r\n\r\n    async function fetchThroughProxy(url) {\r\n      const proxies = [\r\n        `https:\/\/api.allorigins.win\/raw?url=${encodeURIComponent(url)}`,\r\n        `https:\/\/r.jina.ai\/http:\/\/${url.replace(\/^https?:\\\/\\\/\/, \"\")}`\r\n      ];\r\n\r\n      let lastError = null;\r\n\r\n      for (const proxyUrl of proxies) {\r\n        try {\r\n          const response = await fetch(proxyUrl);\r\n          if (!response.ok) continue;\r\n\r\n          const text = await response.text();\r\n          if (text && text.trim().length > 100) {\r\n            return text;\r\n          }\r\n        } catch (error) {\r\n          lastError = error;\r\n        }\r\n      }\r\n\r\n      throw lastError || new Error(\"Falha ao carregar p\u00e1gina da categoria.\");\r\n    }\r\n\r\n    function isValidCourseUrl(url) {\r\n      try {\r\n        const parsed = new URL(url);\r\n        return (\r\n          parsed.hostname.includes(\"cursosvirtuais.net\") &&\r\n          parsed.pathname.includes(\"\/curso\/\")\r\n        );\r\n      } catch {\r\n        return false;\r\n      }\r\n    }\r\n\r\n    function cleanTitle(title) {\r\n      return String(title || \"\")\r\n        .replace(\/\\s+\/g, \" \")\r\n        .replace(\/^\\s+|\\s+$\/g, \"\")\r\n        .trim();\r\n    }\r\n\r\n    function parseCoursesFromHtml(html) {\r\n      const parser = new DOMParser();\r\n      const doc = parser.parseFromString(html, \"text\/html\");\r\n      const anchors = [...doc.querySelectorAll('a[href]')];\r\n      const map = new Map();\r\n\r\n      anchors.forEach(a => {\r\n        const href = a.getAttribute(\"href\");\r\n        if (!href) return;\r\n\r\n        let absolute = href;\r\n        if (!href.startsWith(\"http\")) {\r\n          absolute = `https:\/\/www.cursosvirtuais.net${href.startsWith(\"\/\") ? \"\" : \"\/\"}${href}`;\r\n        }\r\n\r\n        if (!isValidCourseUrl(absolute)) return;\r\n\r\n        const rawTitle =\r\n          a.textContent ||\r\n          a.getAttribute(\"title\") ||\r\n          a.getAttribute(\"aria-label\") ||\r\n          \"\";\r\n\r\n        const title = cleanTitle(rawTitle);\r\n\r\n        if (!title || title.length < 3) return;\r\n        if (\/clique aqui|saiba mais|acesse|ler mais\/i.test(title)) return;\r\n\r\n        const finalUrl = affiliateCourseUrl(absolute);\r\n\r\n        if (!map.has(finalUrl)) {\r\n          map.set(finalUrl, {\r\n            title,\r\n            url: finalUrl\r\n          });\r\n        }\r\n      });\r\n\r\n      return [...map.values()].sort((a, b) => a.title.localeCompare(b.title, \"pt-BR\"));\r\n    }\r\n\r\n    function renderCourses(content, courses) {\r\n      content.innerHTML = `\r\n        <div class=\"courses-grid\">\r\n          ${courses.map(course => `\r\n            <div class=\"course-card\" data-course=\"${escapeHtml(course.title)}\">\r\n              <div class=\"course-top\">\r\n                <span class=\"course-chip\">Curso online<\/span>\r\n                <h3>${escapeHtml(course.title)}<\/h3>\r\n              <\/div>\r\n              <div class=\"course-actions\">\r\n                <a class=\"btn-primary\" href=\"${escapeHtml(course.url)}\" target=\"_blank\" rel=\"noopener noreferrer\">Ver curso<\/a>\r\n              <\/div>\r\n            <\/div>\r\n          `).join(\"\")}\r\n        <\/div>\r\n      `;\r\n    }\r\n\r\n    async function loadCategoryCourses(slug, categoryName, content, item) {\r\n      content.dataset.loading = \"true\";\r\n      content.innerHTML = `<div class=\"loading\">Carregando os cursos desta categoria...<\/div>`;\r\n      updateCategoryStatus(item, \"Carregando cursos...\");\r\n\r\n      try {\r\n        if (loadedCategoryCache.has(slug)) {\r\n          const cachedCourses = loadedCategoryCache.get(slug);\r\n          renderCourses(content, cachedCourses);\r\n          content.dataset.loaded = \"true\";\r\n          delete content.dataset.loading;\r\n          updateCategoryStatus(item, `${cachedCourses.length} cursos encontrados`);\r\n          applySearchFilter();\r\n          return;\r\n        }\r\n\r\n        const html = await fetchThroughProxy(categoryUrl(slug));\r\n        const courses = parseCoursesFromHtml(html);\r\n\r\n        if (!courses.length) {\r\n          content.innerHTML = `\r\n            <div class=\"error-state\">\r\n              N\u00e3o foi poss\u00edvel identificar os cursos desta categoria automaticamente.\r\n            <\/div>\r\n          `;\r\n          content.dataset.loaded = \"true\";\r\n          delete content.dataset.loading;\r\n          updateCategoryStatus(item, \"Nenhum curso encontrado\");\r\n          return;\r\n        }\r\n\r\n        loadedCategoryCache.set(slug, courses);\r\n        updateCourseCounter();\r\n\r\n        renderCourses(content, courses);\r\n        content.dataset.loaded = \"true\";\r\n        delete content.dataset.loading;\r\n        updateCategoryStatus(item, `${courses.length} cursos encontrados`);\r\n        applySearchFilter();\r\n      } catch (error) {\r\n        content.innerHTML = `\r\n          <div class=\"error-state\">\r\n            N\u00e3o foi poss\u00edvel carregar a categoria <strong>${escapeHtml(categoryName)}<\/strong> no momento.\r\n          <\/div>\r\n        `;\r\n        content.dataset.loaded = \"true\";\r\n        delete content.dataset.loading;\r\n        updateCategoryStatus(item, \"Falha ao carregar\");\r\n      }\r\n    }\r\n\r\n    function applySearchFilter() {\r\n      const term = normalizeText(searchInput.value);\r\n\r\n      document.querySelectorAll(\".accordion-item\").forEach(item => {\r\n        const categoryName = normalizeText(item.dataset.category);\r\n        const content = item.querySelector(\".accordion-content\");\r\n        const courseCards = [...item.querySelectorAll(\".course-card\")];\r\n\r\n        let categoryMatches = !term || categoryName.includes(term);\r\n        let visibleCourses = 0;\r\n\r\n        courseCards.forEach(card => {\r\n          const courseName = normalizeText(card.dataset.course || \"\");\r\n          const matches = !term || categoryMatches || courseName.includes(term);\r\n          card.classList.toggle(\"hidden\", !matches);\r\n          if (matches) visibleCourses++;\r\n        });\r\n\r\n        const shouldShowCategory = !term || categoryMatches || visibleCourses > 0;\r\n        item.classList.toggle(\"hidden\", !shouldShowCategory);\r\n\r\n        const existingEmpty = content.querySelector(\".empty-state\");\r\n        const grid = content.querySelector(\".courses-grid\");\r\n\r\n        if (grid && term && visibleCourses === 0 && !categoryMatches) {\r\n          if (!existingEmpty) {\r\n            const empty = document.createElement(\"div\");\r\n            empty.className = \"empty-state\";\r\n            empty.textContent = \"Nenhum curso encontrado nesta categoria para essa busca.\";\r\n            content.appendChild(empty);\r\n          }\r\n        } else if (existingEmpty) {\r\n          existingEmpty.remove();\r\n        }\r\n      });\r\n    }\r\n\r\n    searchInput.addEventListener(\"input\", applySearchFilter);\r\n\r\n    renderCategories();\r\n  <\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Precisa de horas para sua faculdade? Temos a solu\u00e7\u00e3o!!! Quadro de Carga Hor\u00e1ria Op\u00e7\u00f5es de carga hor\u00e1ria 8 horas 20 horas 40 horas 60 horas 80 horas 100 horas 120 horas 140 horas 160 horas 200 horas 240 horas 300 horas 360 horas 400 horas 440 horas cursos online + 0 certificados emitidos + 0&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"%%title%%","_seopress_titles_desc":"Obtenha agora mesmo o seu certificado para horas complementares da sua gradua\u00e7\u00e3o. Atividades complementares \/ horas complementares para faculdade.","_seopress_robots_index":"","footnotes":""},"class_list":["post-40590","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/pages\/40590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/comments?post=40590"}],"version-history":[{"count":18,"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/pages\/40590\/revisions"}],"predecessor-version":[{"id":51154,"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/pages\/40590\/revisions\/51154"}],"wp:attachment":[{"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/media?parent=40590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}