/*
Theme Name: TechJob Portal
Theme URI: https://vagasnosertao.com.br/
Author: inn9.app
Description: Tema do portal TechJob com slider e seção de vagas (baseado no HTML fornecido).
Version: 12.57
Text Domain: techjob-portal
*/

body {
            background-color: #1C1C1C;
            color: #E0E0E0;
            font-family: 'Inter', sans-serif;
            overflow-x: hidden;
        }
        
        .glass-nav {
            background: rgba(28, 28, 28, 0.95);
            backdrop-filter: blur(10px);
        }

        .menu-overlay {
            transition: opacity 0.3s ease, visibility 0.3s;
        }

        .menu-sidebar {
            transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

        /* Slide Show Styles */
        .slide {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            opacity: 0;
            transition: opacity 1s ease-in-out, transform 1s ease-out;
            z-index: 1;
            transform: scale(1.05);
        }

        .slide.active {
            opacity: 1;
            z-index: 2;
            transform: scale(1);
        }

        .nav-btn {
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(4px);
            transition: all 0.3s ease;
        }
        
        .nav-btn:hover {
            background: #FF8800;
            transform: scale(1.1);
        }

        .dot {
            transition: all 0.3s ease;
        }
        
        .dot.active {
            background-color: #FF8800;
            width: 32px;
        }

        .progress-bar {
            position: absolute;
            bottom: 0;
            left: 0;
            height: 4px;
            background: #FF8800;
            width: 0%;
            z-index: 10;
        }

        /* Modern Card Styles */
        .modern-row { 
            background: rgba(255, 255, 255, 0.02);
            backdrop-filter: blur(10px);
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .modern-row:hover { 
            background: rgba(255, 255, 255, 0.05);
            transform: scale(1.01);
            box-shadow: 0 4px 20px rgba(0,0,0,0.2);
        }
        .icon-box { transition: all 0.3s ease; }
        .modern-row:hover .icon-box {
            background-color: #FF8800;
            color: white;
            border-color: #FF8800;
        }

        /* Modal Styles */
        .modal-overlay {
            background-color: rgba(0, 0, 0, 0.8);
            backdrop-filter: blur(5px);
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;
        }
        .modal-overlay.active {
            opacity: 1;
            visibility: visible;
        }
        .modal-content {
            background-color: #252525;
            transform: scale(0.9);
            opacity: 0;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .modal-overlay.active .modal-content {
            transform: scale(1);
            opacity: 1;
        }
        .btn-apply {
            transition: all 0.3s ease;
        }
        .btn-apply:hover {
            background-color: #22c55e;
        }

        /* Custom Scrollbar */
        ::-webkit-scrollbar {
            width: 8px;
        }
        ::-webkit-scrollbar-track {
            background: #1C1C1C;
        }
        ::-webkit-scrollbar-thumb {
            background: #333;
            border-radius: 4px;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #FF8800;
        }



/* INN9: Fix layout widths for Home job cards (keeps theme design, just prevents column shifting) */
#cards-container.inn9-cards-wrap{
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.job-row-grid{
  display: grid;
  grid-template-columns: 1fr 180px 150px 120px 170px 150px;
  align-items: center;
  gap: 1.75rem; /* tighter spacing (requested) */
  width: 100%;
}
.job-row-grid .job-col-main{ min-width: 0; }
.job-row-grid .job-col-location,
.job-row-grid .job-col-salary,
.job-row-grid .job-col-type{ min-width: 0; }



/* Share column (Home cards) */
.job-row-grid .job-col-share{ min-width:0; }
.job-row-grid .job-col-share{ justify-self:end; }
.inn9-share-wrap{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.inn9-share-label{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color: var(--tj-primary, #FF8800); font-weight:700; }
.inn9-share-icons{ display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.inn9-share-btn{ width:28px; height:28px; min-width:28px; min-height:28px; flex:0 0 28px; border-radius:999px; background:transparent; border:1px solid rgba(255,255,255,.18); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; overflow:hidden; }
.inn9-share-btn img{
  pointer-events: none; width:100%; height:100%; display:block; object-fit:contain; border-radius:999px; }
.inn9-share-btn:focus{ outline:2px solid rgba(255,136,0,.55); outline-offset:2px; }

/* Responsive: keep the same behavior (details hidden on mobile) */
@media (max-width: 768px){
  .job-row-grid{
    grid-template-columns: 1fr 120px;
    gap: 1rem;
  }
  .job-row-grid .job-col-action{ justify-self: end; }
}

/* =========================================================
   INN9: Admin job card styling (Home cards)
   - Orange 0.5px border
   - Corner "fold" badge (orange)
   - "Administrador(a)" label
   - Delete button visible only for privileged users (in JS)
   ========================================================= */
.inn9-admin-job{
  border: 0.5px solid #FF8800 !important;
  /* Ensure the corner badge is clipped to the card (prevents "floating" outside) */
  overflow: hidden;
  /* keep card height identical; we offset the left content instead */
}

/* Move logo/title/company a bit to the right so the corner ribbon never overlaps */
.inn9-admin-job .job-col-main{
  /* Reserve space so the corner badge never overlaps the logo/title block */
  padding-left: 96px;
}

@media (max-width: 768px){
  .inn9-admin-job .job-col-main{ padding-left: 80px; }
}

.inn9-admin-label{
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #ffffff;
  background: rgba(255,136,0,0.18);
  border: 1px solid rgba(255,136,0,0.35);
  white-space: nowrap;
}

.inn9-delete-btn{
  height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  border: 1px solid rgba(239,68,68,0.45);
  background: rgba(239,68,68,0.12);
  color: #ffffff;
  cursor: pointer;
}
.inn9-delete-btn:hover{ background: rgba(239,68,68,0.22); }

.inn9-admin-corner{
  position: absolute;
  top: 0;
  left: 0;
  width: 60px;
  height: 60px;
  overflow: hidden;
  pointer-events: none;
  z-index: 3;
}

/* Triangle badge that "belongs" to the card (clipped by the card's overflow hidden) */
.inn9-admin-corner-inner{
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #FF8800 0%, #E07700 100%);
  clip-path: polygon(0 0, 100% 0, 0 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 8px 8px 0 8px;
  gap: 2px;
  box-shadow: 0 10px 22px rgba(0,0,0,0.25);
}

/* Keep both lines fully inside the triangle area */
.inn9-admin-corner-name{
  max-width: 40px;
  font-size: 9px;
  font-weight: 900;
  color: #fff;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: uppercase;
}

.inn9-admin-corner-role{
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.92);
  line-height: 1;
}

@media (max-width: 768px){
  .inn9-admin-corner{ width: 52px; height: 52px; }
  .inn9-admin-corner-inner{ padding: 7px 7px 0 7px; }
  .inn9-admin-corner-name{ max-width: 34px; font-size: 8px; }
  .inn9-admin-corner-role{ font-size: 7px; }
}

/* keep card content above ribbon only where needed */
.modern-row .job-row-grid{ position: relative; z-index: 4; }
/* =========================================================
   INN9: WooCommerce pages background fix (removes black bg)
   Targets: Minha Conta / Carrinho / Checkout
   Keeps overall theme, but ensures Woo pages are readable.
   ========================================================= */
body.woocommerce,
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.woocommerce-order-received {
  background-color: #ffffff !important;
  color: #1c1c1c !important;
}

/* Keep header/nav as designed */
body.woocommerce .glass-nav,
body.woocommerce-page .glass-nav {
  background: rgba(28, 28, 28, 0.95) !important;
  color: #E0E0E0 !important;
}

/* Make Woo main content sit on a light surface */
body.woocommerce #page,
body.woocommerce-page #page,
body.woocommerce-cart #page,
body.woocommerce-checkout #page,
body.woocommerce-account #page {
  background: transparent !important;
}

body.woocommerce main,
body.woocommerce-page main,
body.woocommerce-cart main,
body.woocommerce-checkout main,
body.woocommerce-account main {
  background: transparent !important;
}

/* Common wrappers that many themes use */
body.woocommerce .site,
body.woocommerce-page .site,
body.woocommerce .site-content,
body.woocommerce-page .site-content,
body.woocommerce .content-area,
body.woocommerce-page .content-area,
body.woocommerce .entry-content,
body.woocommerce-page .entry-content,
body.woocommerce .woocommerce,
body.woocommerce-page .woocommerce {
  background: transparent !important;
}

/* Give the Woo content a clean card-like background without changing layout */
body.woocommerce .woocommerce,
body.woocommerce-page .woocommerce {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding: 22px 18px;
}

/* If Woo content is inside a block container, ensure it’s light */
body.woocommerce .woocommerce > *,
body.woocommerce-page .woocommerce > * {
  color: inherit;
}

/* Forms, tables, notices */
body.woocommerce .woocommerce form,
body.woocommerce-page .woocommerce form,
body.woocommerce .woocommerce table,
body.woocommerce-page .woocommerce table,
body.woocommerce .woocommerce .woocommerce-notices-wrapper,
body.woocommerce-page .woocommerce .woocommerce-notices-wrapper,
body.woocommerce .woocommerce .woocommerce-message,
body.woocommerce-page .woocommerce .woocommerce-message,
body.woocommerce .woocommerce .woocommerce-info,
body.woocommerce-page .woocommerce .woocommerce-info,
body.woocommerce .woocommerce .woocommerce-error,
body.woocommerce-page .woocommerce .woocommerce-error {
  background: #ffffff !important;
  color: #1c1c1c !important;
  border-color: rgba(0,0,0,0.08) !important;
}

/* Inputs */
body.woocommerce .woocommerce input[type="text"],
body.woocommerce .woocommerce input[type="email"],
body.woocommerce .woocommerce input[type="tel"],
body.woocommerce .woocommerce input[type="password"],
body.woocommerce .woocommerce input[type="search"],
body.woocommerce .woocommerce textarea,
body.woocommerce .woocommerce select,
body.woocommerce-page .woocommerce input[type="text"],
body.woocommerce-page .woocommerce input[type="email"],
body.woocommerce-page .woocommerce input[type="tel"],
body.woocommerce-page .woocommerce input[type="password"],
body.woocommerce-page .woocommerce input[type="search"],
body.woocommerce-page .woocommerce textarea,
body.woocommerce-page .woocommerce select {
  background: #ffffff !important;
  color: #1c1c1c !important;
  border: 1px solid rgba(0,0,0,0.18) !important;
  border-radius: 10px;
}

/* Buttons keep your brand orange */
body.woocommerce .woocommerce a.button,
body.woocommerce .woocommerce button.button,
body.woocommerce .woocommerce input.button,
body.woocommerce-page .woocommerce a.button,
body.woocommerce-page .woocommerce button.button,
body.woocommerce-page .woocommerce input.button {
  background: #FF8800 !important;
  color: #ffffff !important;
  border: 0.5px solid rgba(0,0,0,0.25) !important;
  border-radius: 12px;
  transition: all 0.2s ease;
}
body.woocommerce .woocommerce a.button:hover,
body.woocommerce .woocommerce button.button:hover,
body.woocommerce .woocommerce input.button:hover,
body.woocommerce-page .woocommerce a.button:hover,
body.woocommerce-page .woocommerce button.button:hover,
body.woocommerce-page .woocommerce input.button:hover {
  filter: brightness(0.95);
  transform: translateY(-1px);
}

/* Links */
body.woocommerce .woocommerce a,
body.woocommerce-page .woocommerce a {
  color: #FF8800;
}
body.woocommerce .woocommerce a:hover,
body.woocommerce-page .woocommerce a:hover {
  filter: brightness(0.95);
}

/* Make sure text inside Woo notices is readable */
body.woocommerce .woocommerce-message,
body.woocommerce .woocommerce-info,
body.woocommerce .woocommerce-error,
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error {
  border-left-width: 4px !important;
}

/* Cart/Checkout totals boxes */
body.woocommerce .cart-collaterals .cart_totals,
body.woocommerce .woocommerce-checkout-review-order,
body.woocommerce-page .cart-collaterals .cart_totals,
body.woocommerce-page .woocommerce-checkout-review-order {
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  border-radius: 14px;
  padding: 14px;
}

/* Small: keep spacing comfortable */
@media (max-width: 768px){
  body.woocommerce .woocommerce,
  body.woocommerce-page .woocommerce{
    padding: 16px 12px;
  }
}

/* ====== VNS: Logo 64px (header/footer) ====== */
.vns-site-logo img,
.site-logo img,
.footer-logo img{max-height:96px;width:auto;object-fit:contain;}
@media (max-width:768px){
  .vns-site-logo img,
  .site-logo img,
  .footer-logo img{max-height:72px;}
}

/* Filled job (Contratado) stamp */
.inn9-job-filled{
  position: relative;
}
.inn9-job-filled .job-row-grid{
  opacity: 0.5;
}
.inn9-filled-stamp{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 5;
}
.inn9-filled-stamp img{
  max-width: 420px;
  width: 70%;
  height: auto;
  opacity: 0.9;
  filter: drop-shadow(0 10px 30px rgba(0,0,0,0.45));
}
@media (max-width: 640px){
  .inn9-filled-stamp img{ width: 90%; max-width: 360px; }
}


/* Share modal */
.inn9-share-modal{ position:fixed; inset:0; z-index:99999; display:none; }
.inn9-share-modal.is-open{ display:block; }
.inn9-share-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.inn9-share-panel{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:min(520px, calc(100vw - 32px)); background:#252525; border:1px solid #333; border-radius:16px; padding:18px; box-shadow:0 18px 60px rgba(0,0,0,.5); }
.inn9-share-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.inn9-share-title{ color:#fff; font-weight:800; font-size:18px; }
.inn9-share-close{ width:36px; height:36px; border-radius:10px; border:1px solid #333; background:#1C1C1C; color:#E5E5E5; cursor:pointer; }
.inn9-share-code{ width:100%; min-height:140px; resize:none; border-radius:12px; border:1px solid #333; background:#1C1C1C; color:#E5E5E5; padding:12px; font-size:14px; line-height:1.4; }
.inn9-share-actions{ display:flex; justify-content:center; margin-top:12px; }
.inn9-share-copy{ background:#FF8800; color:#fff; font-weight:800; border:none; padding:12px 16px; border-radius:12px; width:min(260px, 100%); cursor:pointer; }
.inn9-share-copy:hover{ background:#E07700; }
.inn9-share-hint{ margin-top:10px; text-align:center; color:#A9A9A9; font-size:12px; }



/* Share column alignment + icon sizing fixes */
.job-col-share{ justify-self:end; }
.inn9-share-wrap{ align-items:flex-end; text-align:right; }
.inn9-share-icons{ justify-content:flex-end; }
.inn9-share-btn{ width:26px; height:26px; overflow:hidden; }
.inn9-share-btn img{
  pointer-events: none; width:100%; height:100%; object-fit:contain; display:block; }



/* Share icons fine-tune */
.inn9-share-btn[data-inn9-share="instagram"] img{
  transform: translateX(-2px);
}


/* Mobile Light/Dark Toggle (mobile only) */
@media (max-width: 768px){

.switch-button {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  height: 55px;
}
.switch-button .switch-outer {
  height: 100%;
  background: #252532;
  width: 115px;
  border-radius: 165px;
  box-shadow: inset 0px 5px 10px 0px #16151c, 0px 3px 6px -2px #403f4e;
  border: 1px solid #32303e;
  padding: 6px;
  box-sizing: border-box;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  position: relative;
}
.switch-button .switch-outer input[type="checkbox"] {
  opacity: 0;
  appearance: none;
  position: absolute;
}
.switch-button .switch-outer .button-toggle {
  height: 42px;
  width: 42px;
  background: linear-gradient(#3b3a4e, #272733);
  border-radius: 100%;
  box-shadow: inset 0px 5px 4px 0px #424151, 0px 4px 15px 0px #0f0e17;
  position: relative;
  z-index: 2;
  transition: left 0.3s ease-in;
  left: 0;
}
.switch-button .switch-outer input[type="checkbox"]:checked + .button .button-toggle { left: 58%; }
.switch-button .switch-outer input[type="checkbox"]:checked + .button .button-indicator { animation: indicator 1s forwards; }
.switch-button .switch-outer .button {
  width: 100%;
  height: 100%;
  display: flex;
  position: relative;
  justify-content: space-between;
}
.switch-button .switch-outer .button-indicator {
  height: 25px;
  width: 25px;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 50%;
  border: 3px solid #ef565f; /* escuro (vermelho) */
  box-sizing: border-box;
  right: 10px;
  position: relative;
}
@keyframes indicator {
  30% { opacity: 0; }
  0% { opacity: 1; }
  100% { opacity: 1; border: 3px solid #60d480; left: -68%; } /* claro (verde) */
}
}

/* Mobile light mode (mobile only) */
@media (max-width: 768px){

body.inn9-mobile-light {
  background: #F6F6F6;
  color: #1c1c1c;
}
body.inn9-mobile-light .site-header,
body.inn9-mobile-light #menu-sidebar {
  background: #FFFFFF !important;
  color: #1c1c1c;
}
body.inn9-mobile-light #menu-sidebar a,
body.inn9-mobile-light #menu-sidebar button {
  color: #1c1c1c !important;
}
body.inn9-mobile-light #menu-sidebar svg,
body.inn9-mobile-light #menu-sidebar i {
  color: #6B7280 !important;
}
body.inn9-mobile-light #menu-overlay { background: rgba(0,0,0,.45) !important; }

body.inn9-mobile-light .job-card,
body.inn9-mobile-light .jobs-search,
body.inn9-mobile-light .jobs-search .search-card,
body.inn9-mobile-light .job-ad-card,
body.inn9-mobile-light .ad-card {
  background: #FFFFFF !important;
  border-color: #E5E7EB !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
body.inn9-mobile-light .job-card h3,
body.inn9-mobile-light .job-card .title,
body.inn9-mobile-light .jobs-search h2 {
  color: #111827 !important;
}
body.inn9-mobile-light .job-card .muted,
body.inn9-mobile-light .job-card .subtitle,
body.inn9-mobile-light .jobs-search .muted {
  color: #6B7280 !important;
}
body.inn9-mobile-light .jobs-search input,
body.inn9-mobile-light .jobs-search select {
  background: #F3F4F6 !important;
  border-color: #E5E7EB !important;
  color: #111827 !important;
}
body.inn9-mobile-light .jobs-search input::placeholder { color: #9CA3AF !important; }
}


/* === Desktop-only Home fixes (do not affect dashboards/mobile) === */
@media (min-width: 1024px){
  body.home .tj-hide-desktop{ display:none !important; }
  body.home .tj-home-footer-top{ display:none !important; }
  body.home .tj-home-footer-bottom{
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    gap: 10px !important;
  }
  body.home .tj-home-footer-bottom > div:first-child{
    flex-direction: column !important;
    align-items: center !important;
    gap: 8px !important;
  }
  body.home .tj-home-footer-links{
    justify-content: center !important;
  }
  /* Equalize hero buttons width */
  body.home .tj-hero-buttons a,
  body.home .tj-hero-buttons button{ min-width: 220px !important; width: 220px !important; }
  body.home .tj-hero-buttons button.w-full{ max-width: 220px !important; }

  }

/* ================================
   VNS FIX: Menu principal (HOME + global)
   - Nao depende de Tailwind CDN
   - Corrige menu sumindo (desktop e mobile)
   ================================ */

/* Desktop nav: visible from 768px up */
#tj-desktop-nav { display: none; }
@media (min-width: 768px){
  #tj-desktop-nav { display: flex; }
}

/* Desktop-only header actions */
@media (max-width: 767px){
  /* Hide desktop login/register buttons on mobile (Tailwind 'hidden md:block' fallback) */
  #tj-header-actions a[data-techjob-login-open],
  #tj-header-actions button[data-techjob-register-open] { display: none !important; }
}
@media (min-width: 768px){
  #tj-header-actions a[data-techjob-login-open],
  #tj-header-actions button[data-techjob-register-open] { display: inline-flex; }
}

/* Mobile menu overlay: state driven by .is-open */
#menu-overlay{
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  background: rgba(0,0,0,.80);
  z-index: 110;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s ease, visibility .25s ease;
}
#menu-overlay #menu-sidebar{
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: 300px;
  max-width: calc(100vw - 24px);
  background: #2A2A2A;
  border-left: 1px solid #2f2f2f;
  box-shadow: 0 20px 60px rgba(0,0,0,.55);
  transform: translateX(100%);
  transition: transform .25s ease;
}
#menu-overlay.is-open{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
#menu-overlay.is-open #menu-sidebar{
  transform: translateX(0);
}

/* Basic fallback for the header glass effect */
header.glass-nav{
  background-color: rgba(28,28,28,0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* ============================================================
   Job modal (/#vagas) – MOBILE SCROLL SAFETY
   ------------------------------------------------------------
   When a job has a long descrição/requisitos, the CTA button
   "Candidatar-me" can fall below the viewport on mobile.
   The modal is fixed and the content container is overflow-hidden,
   so we enable INTERNAL scrolling for the modal body on small screens.
   (Desktop untouched.)
   ============================================================ */

@media (max-width: 640px){
  /* Keep the modal within viewport and scroll its content */
  #job-modal .modal-content{
    max-height: calc(100vh - 24px) !important;
  }
  /* The inner wrapper (currently <div class="p-8">) becomes the scroll area */
  #job-modal .modal-content > .p-8{
    max-height: calc(100vh - 24px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 22px; /* breathing room so the CTA isn't glued to the edge */
  }
}

/* ================================
