/* Greentech · «Trabaja con nosotros»: páginas de Odoo Recruitment con el diseño de la web (réplica de WordPress).
   Solo se carga en /jobs, en cada oferta, en el formulario y en la confirmación. */
:root {
  --gt-verde: #a9cdb2;        /* verde de los títulos destacados y botones de la web */
  --gt-verde-osc: #6f9c7b;    /* verde de los botones de Odoo en la web */
  --gt-azul: #5cb2e3;
  --gt-texto: #2c2c2c;
  --gt-titulo: #333333;
  --gt-gris: #f7f8f8;
  --gt-sombra: 0 0 20px rgba(3, 0, 0, .12);
}

/* ---------------------------------------------------------------- base */
.gt-emp, .gt-emp p, .gt-emp li, .gt-emp label, .gt-emp input, .gt-emp textarea, .gt-emp .form-control {
  font-family: Montserrat, sans-serif; color: var(--gt-texto);
}
.gt-emp h1, .gt-emp h2, .gt-emp h3, .gt-emp h4, .gt-emp .gt-emp-titulo { font-family: 'League Spartan', sans-serif; }
.gt-emp a { color: var(--gt-verde-osc); }
/* fondo de Odoo (o_cc2) fuera: la web es blanca */
.gt-emp.o_cc, .gt-emp .o_cc { background: #fff !important; }

/* ---------------------------------------------------------------- portada (como las páginas de la web) */
#wrapwrap:has(> .gt-wp-hf):has([data-gt-portada]) > main { padding-top: 0 !important; }
#wrapwrap:has(.gt-emp) > main { overflow-x: clip; }
.gt-emp-portada {
  position: relative; display: flex; align-items: center; min-height: 473px; padding: 90px 0 50px;
  width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  background: #26313a url('/gt_empleo/static/src/img/portada_empleo.jpg') 20% 30% / cover no-repeat;
}
.gt-emp-portada::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 65%, rgba(0,0,0,.05) 100%); }
.gt-emp-portada-texto { position: relative; z-index: 1; }
.gt-emp-portada h1 {
  color: #fff !important; font: 700 42px/50px 'League Spartan', sans-serif; letter-spacing: -2px; text-transform: uppercase;
  margin: 0 0 14px; max-width: 900px;
}
.gt-emp-portada-sub { color: #fff !important; font: 500 20px/28px Montserrat, sans-serif; margin: 0 0 8px; text-transform: none; }
.gt-emp-portada .gt-emp-volver { display: inline-block; color: #fff !important; font: 600 15px Montserrat, sans-serif; text-decoration: none; margin-bottom: 18px; opacity: .9; }
.gt-emp-portada .gt-emp-volver::before { content: '\2190\00a0'; }
.gt-emp-portada .gt-emp-volver:hover { opacity: 1; text-decoration: underline; }
.gt-emp-portada-baja { min-height: 340px; }
.gt-emp-datos { list-style: none; padding: 0; margin: 0 0 26px; display: flex; flex-wrap: wrap; gap: 10px 26px; }
.gt-emp-datos li, .gt-emp-datos li span { color: #fff !important; font: 500 17px Montserrat, sans-serif; }
.gt-emp-datos .fa { color: var(--gt-verde); margin-right: 8px; width: 16px; text-align: center; }

/* ---------------------------------------------------------------- títulos y botones de la web */
.gt-emp-titulo {
  font: 700 42px/50px 'League Spartan', sans-serif !important; letter-spacing: -2px; text-transform: uppercase;
  color: var(--gt-titulo) !important; text-align: center; margin: 0 0 20px;
}
.gt-emp-titulo-izq { text-align: left; font-size: 34px !important; line-height: 40px !important; margin-top: 10px; }
.gt-emp-destacado {
  font-weight: 800; background: linear-gradient(90deg, var(--gt-verde) 0%, var(--gt-verde) 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--gt-verde);
}
.gt-emp-boton, a.gt-emp-boton, .gt-emp .btn.gt-emp-boton {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 32px;
  border: 2px solid var(--gt-verde-osc) !important; border-radius: 1000px !important; background: var(--gt-verde-osc) !important;
  color: #fff !important; font: 600 17px Montserrat, sans-serif !important; text-transform: uppercase; text-decoration: none !important;
  box-shadow: none !important; transition: background .2s, color .2s, border-color .2s; cursor: pointer;
}
.gt-emp-boton:hover, a.gt-emp-boton:hover { background: #5e8a6a !important; border-color: #5e8a6a !important; color: #fff !important; }
.gt-emp-boton-linea, a.gt-emp-boton-linea { background: transparent !important; color: var(--gt-verde-osc) !important; border-color: var(--gt-verde) !important; }
.gt-emp-boton-linea:hover, a.gt-emp-boton-linea:hover { background: var(--gt-verde) !important; border-color: var(--gt-verde) !important; color: #fff !important; }
.gt-emp-portada .gt-emp-boton { border-color: var(--gt-verde) !important; background: var(--gt-verde) !important; color: #1f2b24 !important; }
.gt-emp-portada .gt-emp-boton:hover { background: #fff !important; border-color: #fff !important; }

/* ---------------------------------------------------------------- A. listado */
.gt-emp-intro { text-align: center; padding: 70px 15px 10px; max-width: 980px; }
.gt-emp-intro p { font-size: 18px; line-height: 28px; }
.gt-emp-listado .gt-emp-barra { border: 0 !important; box-shadow: none !important; background: transparent !important; }
.gt-emp-listado .gt-emp-barra .navbar-brand { display: none; }
.gt-emp-listado #jobs_grid_right, .gt-emp-listado #jobs_grid_left { display: none !important; }
.gt-emp-listado .oe_website_jobs > .row { padding-top: 30px !important; }
.gt-emp-listado #jobs_grid > .row { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin: 0; flex-direction: unset; }
.gt-emp-listado #jobs_grid > .row > .col { grid-column: 1 / -1; }
.gt-emp-listado #jobs_grid > .row > .col-lg { width: auto; max-width: none; padding: 0; margin: 0 !important; }
.gt-emp-listado .card {
  height: 100%; border: 3px solid #fff; border-radius: 25px; box-shadow: var(--gt-sombra); overflow: hidden; background: #fff;
  transition: transform .2s, box-shadow .2s;
}
.gt-emp-listado .card:hover { transform: translateY(-3px); box-shadow: 0 6px 28px rgba(3, 0, 0, .18); }
.gt-emp-listado .card::before { content: ''; display: block; height: 6px; background: linear-gradient(90deg, var(--gt-azul), var(--gt-verde)); }
.gt-emp-listado .card > a { display: flex; height: 100%; }
.gt-emp-listado .card-body { display: flex; flex-direction: column; padding: 30px 32px !important; width: 100%; }
.gt-emp-listado .card-body h3 { font: 700 28px/32px 'League Spartan', sans-serif; letter-spacing: -1px; text-transform: uppercase; color: var(--gt-titulo); margin: 0; }
.gt-emp-listado .card-body h5 {
  align-self: flex-start; font: 600 14px Montserrat, sans-serif !important; color: var(--gt-verde-osc) !important;
  background: #eef6f0; border-radius: 1000px; padding: 6px 14px; margin: 12px 0 16px;
}
.gt-emp-listado .card-body .oe_empty, .gt-emp-listado .card-body .oe_empty p { color: #555 !important; font-size: 16px; line-height: 26px; }
.gt-emp-listado .o_job_infos { gap: 6px; margin: 4px 0 24px; }
.gt-emp-listado .o_job_infos, .gt-emp-listado .o_job_infos span, .gt-emp-listado .o_job_infos div { font: 500 15px Montserrat, sans-serif !important; color: #444; }
.gt-emp-listado .o_job_infos .fa { color: var(--gt-verde-osc); margin-right: 8px; }
.gt-emp-listado .card-body .gt-emp-boton { margin-top: auto; align-self: flex-start; min-height: 42px; font-size: 15px !important; }
.gt-emp-listado .card:hover .gt-emp-boton-linea { background: var(--gt-verde) !important; color: #fff !important; }
.gt-emp-listado .o_jobs_unpublished { opacity: .75; border-style: dashed; border-color: #e0a0a0; }
/* sin ofertas */
.gt-emp-listado #jobs_grid .h5.text-muted { font: 400 18px/28px Montserrat, sans-serif !important; color: var(--gt-texto) !important; }
.gt-emp-listado #jobs_grid .h5 .fw-bold { color: var(--gt-verde-osc); }
.gt-emp-listado .pager, .gt-emp-listado .pagination .page-link { font-family: Montserrat, sans-serif; color: var(--gt-verde-osc); }
.gt-emp-listado .o_jobs_topbar_search_bar .form-control { border: 2px solid var(--gt-verde); border-radius: 1000px 0 0 1000px; }
.gt-emp-listado .o_jobs_topbar_search_bar .btn { border-radius: 0 1000px 1000px 0; background: var(--gt-verde-osc); border-color: var(--gt-verde-osc); }

/* ---------------------------------------------------------------- B. oferta */
.gt-emp-oferta .gt-emp-descripcion { padding: 30px 0 10px; }
.gt-emp-descripcion, .gt-emp-descripcion p, .gt-emp-descripcion li { font-size: 18px; line-height: 28px; }
.gt-emp-descripcion h2, .gt-emp-descripcion h3 {
  font: 700 28px/34px 'League Spartan', sans-serif; letter-spacing: -1px; text-transform: uppercase; color: var(--gt-titulo); margin: 28px 0 12px;
}
.gt-emp-descripcion ul { padding-left: 0; list-style: none; }
.gt-emp-descripcion ul li { position: relative; padding-left: 28px; margin-bottom: 8px; }
.gt-emp-descripcion ul li::before { content: ''; position: absolute; left: 4px; top: 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--gt-verde); }
.gt-emp-descripcion img { border-radius: 20px; max-width: 100%; height: auto; }
.gt-emp-descripcion .gt-emp-caja, .gt-emp-caja { background: var(--gt-gris); border-radius: 25px; padding: 10px 28px 18px; margin-top: 28px; box-shadow: var(--gt-sombra); border: 3px solid #fff; }
/* contenido de ejemplo de Odoo (ofertas creadas antes de instalar el módulo): con los colores de la web */
.gt-emp-descripcion .s_rating_active_icons, .gt-emp-descripcion .text-primary { color: var(--gt-verde-osc) !important; }
.gt-emp-descripcion .o_cc, .gt-emp-descripcion .o_cc1, .gt-emp-descripcion .o_cc2, .gt-emp-descripcion .o_cc3, .gt-emp-descripcion .o_cc4, .gt-emp-descripcion .o_cc5 { background: transparent !important; color: inherit !important; }
.gt-emp-final { background: var(--gt-gris); padding: 70px 15px 60px; margin-top: 40px; text-align: center; }
.gt-emp-final p { font-size: 18px; line-height: 28px; margin-bottom: 26px; }
.gt-emp-compartir { margin-top: 30px; display: flex; justify-content: center; align-items: center; gap: 14px; flex-wrap: wrap; }
.gt-emp-compartir span { font: 600 15px Montserrat, sans-serif; color: #555; }
.gt-emp-compartir a { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--gt-verde); display: inline-flex; align-items: center; justify-content: center; color: var(--gt-verde-osc) !important; font-size: 20px; text-decoration: none; transition: background .2s, color .2s; }
.gt-emp-compartir a:hover { background: var(--gt-verde); color: #fff !important; }

/* ---------------------------------------------------------------- C. formulario (estándar de Odoo, solo aspecto) */
.gt-emp-formulario { padding-bottom: 40px; }
.gt-emp-formulario #jobs_section { margin-top: 40px; padding: 0; }
.gt-emp-formulario #hr_recruitment_form .s_website_form_field > .row { flex-direction: column; }
.gt-emp-formulario #hr_recruitment_form .s_website_form_label {
  width: 100% !important; flex: 0 0 auto; padding: 0 12px 8px; font: 500 16px/20px Montserrat, sans-serif; color: var(--gt-texto);
}
.gt-emp-formulario #hr_recruitment_form .s_website_form_label .s_website_form_mark { color: var(--gt-verde-osc); }
.gt-emp-formulario #hr_recruitment_form .col-sm { width: 100%; }
.gt-emp-formulario #hr_recruitment_form .form-control {
  border: 2px solid var(--gt-verde); border-radius: 6px; padding: 12px 16px; font-size: 16px; line-height: 22px; box-shadow: none; background: #fff;
}
.gt-emp-formulario #hr_recruitment_form .form-control:focus { border-color: var(--gt-verde-osc); box-shadow: 0 0 0 .2rem rgba(169, 205, 178, .35); }
.gt-emp-formulario #hr_recruitment_form input[type=file].form-control { padding: 10px 12px; }
.gt-emp-formulario #hr_recruitment_form input[type=file]::file-selector-button { background: var(--gt-verde); color: #fff; border: 0; border-radius: 1000px; padding: 6px 16px; margin-right: 12px; font: 600 14px Montserrat, sans-serif; }
.gt-emp-formulario #hr_recruitment_form .col-sm { position: relative; }
.gt-emp-formulario #hr_recruitment_form .o_linkedin_icon { position: absolute; left: 26px; top: 12px !important; font-size: 24px; line-height: 1; background: none !important; color: #0a66c2 !important; z-index: 2; }
.gt-emp-formulario #hr_recruitment_form .text-muted.small { font-size: 13px; color: #666 !important; }
.gt-emp-formulario .gt-emp-privacidad .form-check-input { width: 20px; height: 20px; border: 2px solid var(--gt-verde); margin-top: 3px; }
.gt-emp-formulario .gt-emp-privacidad .form-check-input:checked { background-color: var(--gt-verde-osc); border-color: var(--gt-verde-osc); }
.gt-emp-formulario .gt-emp-privacidad .form-check-label { font-size: 14px; line-height: 21px; padding-left: 6px; }
.gt-emp-formulario .s_website_form_submit { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 8px; }
.gt-emp-formulario .s_website_form_submit > .s_website_form_label { display: none; }
.gt-emp-formulario #apply-btn { min-width: 260px; }
/* columna derecha: resumen del puesto como tarjeta */
.gt-emp-formulario #jobs_section > .row > section:last-child {
  background: var(--gt-gris); border-radius: 25px; border: 3px solid #fff; box-shadow: var(--gt-sombra); padding: 26px 26px 18px !important; align-self: flex-start;
}
.gt-emp-formulario #jobs_section > .row > section:last-child .text-muted { font: 600 12px Montserrat, sans-serif; text-transform: uppercase; letter-spacing: .5px; color: var(--gt-verde-osc) !important; }
.gt-emp-formulario #jobs_section > .row > section:last-child h6 { font: 600 16px/22px Montserrat, sans-serif; color: var(--gt-texto); margin-bottom: 14px; }
.gt-emp-formulario .o_apply_description_link { width: 100%; min-height: 42px; font-size: 14px !important; margin-bottom: 22px; }
.gt-emp-formulario .o_apply_description_link .oi { margin-right: 8px; }

/* ---------------------------------------------------------------- D. confirmación */
.gt-emp-gracias { padding-top: 30px; }
.gt-emp-gracias h1.fw-bolder { display: none; }   /* el título va en la portada */
.gt-emp-gracias p.fw-light { font: 400 19px/30px Montserrat, sans-serif !important; color: var(--gt-texto); }
.gt-emp-gracias img[alt] { display: none !important; }   /* ilustración de Odoo fuera: icono de la web */
.gt-emp-gracias p.fw-light::before { content: '\f00c'; font-family: FontAwesome; display: flex; align-items: center; justify-content: center; width: 76px; height: 76px; margin: 0 auto 24px; border-radius: 50%; background: var(--gt-verde); color: #fff; font-size: 34px; }
.gt-emp-gracias .gt-emp-cta-texto { font: 600 18px Montserrat, sans-serif; margin-bottom: 18px; }
.gt-emp-gracias #o_recruitment_thank_cta .gt-emp-boton { margin: 6px; }
.gt-emp-gracias .o_cc { border-radius: 25px; }

/* ---------------------------------------------------------------- tablet y móvil */
@media (max-width: 991px) {
  .gt-emp-listado #jobs_grid > .row { grid-template-columns: minmax(0, 1fr); }
  .gt-emp-formulario #jobs_section > .row > section { width: 100%; padding-left: 12px !important; }
  .gt-emp-formulario #jobs_section > .row > section:last-child { margin: 10px 12px 0; }
}
@media (max-width: 767px) {
  /* móvil: sin la franja blanca de 20 px del espaciador de la cabecera (como en los artículos del blog) */
  #wrapwrap:has([data-gt-portada]) > .gt-wp-hf .elementor-location-header .elementor-element-fb479c5 { display: none !important; }
  .gt-emp-portada { min-height: 520px; padding: 110px 0 40px; align-items: flex-end; }
  .gt-emp-portada-baja { min-height: 360px; }
  .gt-emp-portada h1, .gt-emp-titulo { font-size: 34px !important; line-height: 40px !important; }
  .gt-emp-portada-texto { text-align: center; }
  .gt-emp-datos { justify-content: center; }
  .gt-emp-intro { padding-top: 50px; }
  .gt-emp-listado .card-body { padding: 24px 22px !important; }
  .gt-emp-listado .card-body h3 { font-size: 24px; line-height: 28px; }
  .gt-emp-formulario #apply-btn { width: 100%; }
  .gt-emp-boton, a.gt-emp-boton { padding: 0 24px; }
}
