/* Google Fonts se carga con <link> en partials/base.html (Fase 9): un @import aqui encadenaba las peticiones. */

/* ---------------------------------------------------------------------------
   Paleta y tipografia del sitio.

   Unico lugar donde se definen los colores de marca: el resto del archivo los
   lee de aca. Los nombres dicen la funcion y no el color, para que un cambio
   de paleta no deje variables con nombres que mienten.

   --fc-acento-oscuro existe por contraste: el texto blanco sobre #f25413 da
   3.5:1 y no alcanza el 4.5:1 que pide el texto normal. Se usa en botones con
   texto y en texto naranjo chico; #f25413 queda para fondos, detalles y
   texto grande.

   Los correos (templates/mail) no pueden leer variables CSS: ahi los mismos
   valores van escritos en hex.
   --------------------------------------------------------------------------- */
:root{
    --fc-primario:#1668e3;
    --fc-primario-hover:#1254b8;
    --fc-primario-rgb:22,104,227;
    --fc-acento:#f25413;
    --fc-acento-hover:#d9470c;
    --fc-acento-oscuro:#c2410c;
    --fc-acento-rgb:242,84,19;
    /* El dorado identifica al plan Gold: es semantico, no decoracion. */
    --fc-gold:#d99400;
    --fc-gold-claro:#fef3c7;
    --fc-gold-rgb:217,148,0;
    --fc-oscuro:#0b1325;
    --fc-texto:#1e293b;
    --fc-texto-suave:#64748b;
    --fc-borde:#e2e8f0;
    --fc-fondo-suave:#f8fafc;
    --fc-fuente:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
    --fc-fuente-manuscrita:'Caveat',cursive;

    /* Puente a Bootstrap 5.3: text-primary, bg-primary, bg-primary-subtle y
       los enlaces leen estas variables. Los botones traen el hex fijo y se
       corrigen mas abajo, en "Componentes de Bootstrap". */
    --bs-primary:var(--fc-primario);
    --bs-primary-rgb:var(--fc-primario-rgb);
    --bs-primary-text-emphasis:var(--fc-primario-hover);
    --bs-primary-bg-subtle:rgba(var(--fc-primario-rgb),.12);
    --bs-primary-border-subtle:rgba(var(--fc-primario-rgb),.35);
    --bs-link-color:var(--fc-primario);
    --bs-link-color-rgb:var(--fc-primario-rgb);
    --bs-link-hover-color:var(--fc-primario-hover);
    --bs-link-hover-color-rgb:18,84,184;
    --bs-focus-ring-color:rgba(var(--fc-primario-rgb),.25);
    --bs-font-sans-serif:var(--fc-fuente);
    --bs-body-font-family:var(--fc-fuente);
}

*, *::before, *::after {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body{
    font-family: var(--fc-fuente);
    background-color: #fff;
    background-image: linear-gradient(180deg, rgba(var(--fc-primario-rgb),.10) 0, rgba(var(--fc-primario-rgb),.04) 420px, rgba(255,255,255,0) 900px);
    background-repeat: no-repeat;
    position: relative;
    width: 100%;
    overflow-x: clip;
}

/* Las imágenes cargadas por usuarios y los textos largos no deben sacar una
   tarjeta ni una página del ancho de la pantalla. */
img, svg, video, canvas{max-width:100%;}
p, h1, h2, h3, h4, h5, h6, a, button, input, select, textarea{overflow-wrap:anywhere;}

/* La barra de desplazamiento de la página es la estándar del navegador en todo el sitio,
   igual que en el inicio (2026-10-14). */

ol, ul {
    padding-left: 0rem !important;
}
dl, ol, ul {
    margin-top: 0;
    margin-bottom: 0rem !important;
}

nav ul{margin:0 !important; padding:0 !important;}
ul, li{list-style: none;}

/* Generic */
a{text-decoration:none!important;color:#333333;}
.m_4{margin-top: 4rem !important;margin-bottom: 4rem !important;}
.mt_1 {margin-top: 1.5rem!important;}
.mt_2 {margin-top: 2.5rem!important;}
.mt_4 {margin-top: 4rem!important;}
.ml_2 {margin-left: 2.5rem!important;}
.vh100{height: 100vh;}
.vh88{height: 88vh;}
.vh90{height: 90vh;}
.no_padding{padding:0 !important;}
.no_gutter > [class*='col-']{padding-right:0; padding-left:0;}
.col-centered{float: none;margin: 0 auto;display: table;}
.container{padding:0 15px;}
/* Eje único con la cabecera (2026-10-15). El .container de Bootstrap llega a 1320 px
   con 15 px de sangrado y .fc-nav__marco a 1280 px con 32 px: en pantallas anchas el
   contenido de la página arrancaba unos 37 px antes que el de la cabecera, y los hero
   que viven dentro del container (Membresías, Catálogo, Perfil, Búsqueda) heredaban
   ese desfase. Desde 1200 px comparten ancho y sangrado; por debajo manda Bootstrap. */
@media(min-width:1200px){
    .container{max-width:var(--fc-ancho-sitio);padding-inline:var(--fc-gutter-sitio);}
}
p{margin-top: 0;margin-bottom: 0;color:#333333;}
.d-none{display: none !important;}
.fs-12{font-size: 12px;}
.fs-13{font-size: 13px;}
.fs-9{font-size: 9px;}
.fs-10{font-size: 10px;}
.bg_blue{background:rgba(var(--fc-primario-rgb),.3);}

/* Titulos */
.header_section h1{font-size:30px}
.header_section h2{font-size:26px}
.header_section h3{font-size:18px}
.header_section h4{font-size:16px}
.header_section h5{font-size:14px}
.header_section h6{font-size:10px}

/* Parrafos */
.entry_content{padding: 20px;}
.entry_content.pull_right p{text-align: right !important;}
.entry_content.pull_left p{text-align: left !important;}
.entry_content.pull_center p{text-align: center !important;}

/* Formulario */
form{width: 90%;}
.form-control {padding: 0.75rem 0.75rem;}
.form-select {padding: 0.75rem 0.75rem; border-radius: 20px 0 0;box-shadow: inset 0 0 7px rgba(86, 86, 86, 0.4);border: none;margin-left: 3px;padding-left: 20px;}
select.form-control:not([size]):not([multiple]) {height: 50px;}
label {font-weight: 500;margin-bottom: 0.5rem;}
.password-addon{height: 100%;}
.invalid-feedback {display: block;font-size: .9em;}

/* Buscador */
.search-box {position: relative;}
.search-box .form-control {padding-left: 40px;border-radius: 20px 0 0;box-shadow: inset 0 0 7px rgba(86, 86, 86, 0.4);border: none;}
.search-box .search-icon {font-size: 14px;position: absolute;left: 13px;top: 0;height: 100%;display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;color: #333333;}

/* btn */
.btn_freelanclick{position: relative;background:#FFF;border-radius: 0 0 20px 0;box-shadow: inset 0 0 7px rgba(86, 86, 86, 0.4);padding: 10px;margin: 0 auto;outline: 0;border: none;transition: all 300ms ease-out;}
.btn_freelanclick span{color:rgba(51,51,51,0.5);font-weight: 400;padding: 5px 10px;}
.btn_freelanclick.orange{background:var(--fc-acento-oscuro);}
.btn_freelanclick.orange span{color:#FFF;}
.btn_freelanclick.white{background:transparent;border: solid 2px #FFF;}
.btn_freelanclick.white:hover{border: solid 2px transparent;}
.btn_freelanclick.white span{color:#FFF;}
.btn_freelanclick.orange.hvr-sweep-to-right:before {border-radius: 0 0 20px 0;background: var(--fc-primario);transition: all 300ms ease-out;}
.btn_freelanclick.white.hvr-sweep-to-right:before {border-radius: 0 0 20px 0;background: var(--fc-acento-oscuro);transition: all 300ms ease-out;}
.btn_freelanclick.bluef{background:var(--fc-primario);border: solid 2px var(--fc-primario);}
.btn_freelanclick.bluef span{color:#FFF;}
.btn_freelanclick.bluef:hover{border: solid 2px #fff;}
.btn_freelanclick.bluef.hvr-sweep-to-right:before {border-radius: 0 0 20px 0;background: var(--fc-acento-oscuro);transition: all 300ms ease-out;}
.btn_freelanclick.white span.black{color:#343434;}
/* Deshabilitado (p. ej. "Enviar" en un chat de solo lectura): sin esto el color
   de .orange/.bluef tapa el aspecto nativo y el boton parece activo. Va despues
   de las variantes para ganarles a igual especificidad. */
.btn_freelanclick:disabled{background:#c9ccd3;border-color:#c9ccd3;box-shadow:none;cursor:not-allowed;}
.btn_freelanclick:disabled span{color:#fff;}
.btn_freelanclick:disabled.hvr-sweep-to-right:before{display:none;}

.btn_search{position: relative;background:#FFF;border-radius: 0 0 20px 0;box-shadow: inset 0 0 7px rgba(86, 86, 86, 0.4);padding: 10px 20px;margin: 0 12px;outline: 0;border: none;transition: all 300ms ease-out;}
.btn_search.hvr-sweep-to-right:before {border-radius: 0 0 20px 0;background: var(--fc-primario);transition: all 300ms ease-out;}

.header_section{margin-top: 20px;text-transform: uppercase;letter-spacing: 3px;position: relative;}
.header_center {text-align: center;}
.header_left {text-align: left;}
.header_right {text-align: right;}
.header_section.orange {color: var(--fc-acento);}
.header_section.white {color: #FFF;}
.header_section.blue {color: var(--fc-primario);}
.header_section.dark {color: #333333;}
.header_section span {position: relative;margin: auto;display: block;font-weight: bold;}
.header_section span::before {content: '';position: absolute;left: 50%;bottom: 0;top: -15px;background: var(--fc-primario);width: 4%;height: 3px;transform: translateX(-50%);}
.header_section.header_left span::before{left: 10%;}
.header_section.white span::before {background: var(--fc-acento);}

/* Social media */
#social_networks{position: relative;margin-top: 20px;}
#social_networks ul{list-style: none;}
#social_networks li{display: inline-block; vertical-align: middle; margin:0 10px;}
#social_networks a{display: block; text-align: center;transition: all 400ms ease-out;}
#social_networks a span i{background:transparent ;font: normal normal normal 12px/1 FontAwesome;content: "\f415";color: #333333;width: 40px;height: 40px;display: block;line-height: 30px;font-size: 25px;;transition: all 400ms ease-out;}
#social_networks a:hover span i{transition: all 400ms ease-out;color: var(--fc-primario);transition: all 400ms ease-out;}

/* Avatars */
.avatar-xl {height: 7.5rem;width: 7.5rem;}
.avatar-xs {height: 2rem;width: 2rem;}
.avatar-title {-webkit-box-align: center;-ms-flex-align: center;align-items: center;background-color: var(--fc-primario);color: #fff;display: -webkit-box;display: -ms-flexbox;display: flex;font-weight: 500;height: 100%;-webkit-box-pack: center;-ms-flex-pack: center;justify-content: center;width: 100%;}

/* Navbar */
.nav-tabs-custom.card-header-tabs {margin-top: -0.5rem;}
.nav-tabs-custom .nav-item {position: relative;}
.nav-tabs-custom .nav-item .nav-link.active {color: var(--fc-primario);}
.nav-tabs-custom.card-header-tabs .nav-link {padding: 1rem 1rem;}
.nav-tabs-custom .nav-item .nav-link {border: none;font-weight: 500;}
.nav-tabs-custom .nav-item .nav-link.active:after {-webkit-transform: scale(1);transform: scale(1);}
.nav-tabs-custom .nav-item .nav-link::after {content: "";background: var(--fc-primario);height: 1px;position: absolute;width: 100%;left: 0;bottom: 0;-webkit-transition: all 250ms ease 0s;transition: all 250ms ease 0s;-webkit-transform: scale(0);transform: scale(0);}
/* Secciones home*/

/* Category */
#category.section_home{position:relative;max-width:100%;overflow:hidden;height: 100%;}
#category.section_home .card{position:relative;transition-duration: 350ms;transition-timing-function: ease;}
#category.section_home .card-body{position:absolute;bottom: 0;display: flex;justify-content: start;align-items: center;padding:0 10px 0 0 !important;color:#fff;font-size: 25px;}
.card-body h5, .card-body h6{margin-bottom: 0 !important;}
#category.section_home .card-body h5{background: rgba(var(--fc-primario-rgb),.6);padding: 5px;}
#category.section_home .card-body:hover h5{background: transparent;}
#category.section_home .card-body h6{margin-left: 8px;}
#category.section_home .card-body {background: transparent;padding: 5px;-webkit-transition: background-color 0.3s ease-in-out;-o-transition: background-color 0.3s ease-in-out;-moz-transition: background-color 0.3s ease-in-out;-ms-transition: background-color 0.3s ease-in-out;transition: background-color 0.3s ease-in-out;overflow: hidden;}
#category.section_home .card:hover .card-body {background: rgba(var(--fc-primario-rgb),.6);padding: 5px 15px;width: 100%;}
#category.section_home .card:is(:hover, :focus) {box-shadow: 0px 8px 10px 1px rgba(0, 0, 0, 0.2);transform: translateY(-8px);}
#line_more {background: #333333;width: 100%;height: 3px;position: relative;}
#line_more span::before{content: '';position:absolute;background: var(--fc-primario);width: 25%;height: 7px;left: 0;top: -2px;}

/* Destacados */
#destacados.section_home{position:relative;max-width:100%;overflow:hidden;height: 100%;}


.avatar-sm {height: 3rem;width: 3rem;}



/* Login */
#content_signup{background-image: radial-gradient(circle at 85% 18%, rgba(255,255,255,.10) 0 16%, transparent 16.2%), radial-gradient(circle at 12% 88%, rgba(255,255,255,.08) 0 22%, transparent 22.2%), linear-gradient(160deg, var(--fc-primario) 0%, var(--fc-primario-hover) 100%);}
#content_signup .entry_content {padding: 50px 80px 20px;}
#content_signup .entry_content p{color:#FFF;}

.g-recaptcha{width: 100%;height: 75px;display: flex;justify-content: center;margin: 30px 0px;}

#content_login form{width: 50%;}

/* Crear cuenta */
.crear-cuenta{min-height:100vh;padding:34px;background:linear-gradient(135deg,#f4f9ff 0%,#eef6ff 48%,#ffffff 100%);color:#0b1b3f;}
.crear-cuenta__shell{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(420px,1fr);max-width:1180px;min-height:calc(100vh - 68px);margin:0 auto;overflow:hidden;border:1px solid #dce8f7;border-radius:28px;background:#fff;box-shadow:0 30px 80px -50px rgba(16,49,90,.65);}
.crear-cuenta__visual{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:650px;padding:34px;overflow:hidden;background:linear-gradient(90deg,rgba(241,247,255,.96) 0%,rgba(241,247,255,.86) 44%,rgba(241,247,255,.34) 100%),url("../img/hero-portada-freelanclick.f1c5b379c8cc.jpg") center/cover no-repeat;}
.crear-cuenta__visual::after{content:"";position:absolute;inset:auto -11% -20% 23%;height:48%;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.9));pointer-events:none;}
.crear-cuenta__logo{position:relative;z-index:1;display:inline-flex;width:178px;align-items:center;}
.crear-cuenta__logo img{display:block;width:100%;height:auto;}
.crear-cuenta__hero{position:relative;z-index:1;max-width:440px;margin-top:auto;margin-bottom:42px;}
.crear-cuenta__hero p{margin:0 0 13px;color:#0063ff;font-size:13px;font-weight:800;letter-spacing:0;text-transform:none;}
.crear-cuenta__hero h1{margin:0;color:#08183a;font-size:46px;font-weight:900;line-height:1.02;}
.crear-cuenta__hero span{display:block;max-width:410px;margin-top:18px;color:#526683;font-size:17px;line-height:1.55;}
.crear-cuenta__proof{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.crear-cuenta__proof article{display:grid;gap:9px;min-height:112px;padding:15px;border:1px solid rgba(185,208,235,.75);border-radius:14px;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);box-shadow:0 16px 35px -30px rgba(15,49,91,.9);}
.crear-cuenta__proof i{display:grid;width:36px;height:36px;place-items:center;border-radius:10px;background:#edf5ff;color:#0063ff;font-size:20px;}
.crear-cuenta__proof span{color:#203653;font-size:13px;font-weight:750;line-height:1.25;}
.crear-cuenta__float{position:absolute;z-index:2;display:grid;grid-template-columns:38px 1fr;column-gap:11px;min-width:215px;padding:13px 15px;border:1px solid rgba(219,230,246,.9);border-radius:16px;background:rgba(255,255,255,.93);box-shadow:0 20px 42px -32px rgba(16,49,90,.9);}
.crear-cuenta__float i{grid-row:1/3;display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:#fff1f6;color:#f02770;font-size:22px;}
.crear-cuenta__float strong{color:#12264a;font-size:14px;line-height:1.2;}
.crear-cuenta__float span{color:#627592;font-size:12px;line-height:1.25;}
.crear-cuenta__float--one{right:34px;top:90px;}
.crear-cuenta__float--two{right:74px;top:176px;}
.crear-cuenta__float--two i{background:#edf5ff;color:#0063ff;}
.crear-cuenta__panel{display:flex;flex-direction:column;justify-content:center;padding:42px clamp(28px,4vw,58px);background:#fff;}
.crear-cuenta__panel-head{margin-bottom:22px;}
.crear-cuenta__panel-head p{margin:0 0 8px;color:#0063ff;font-size:14px;font-weight:850;}
.crear-cuenta__panel-head h2{margin:0;color:#0b1b3f;font-size:34px;font-weight:900;line-height:1.08;}
.crear-cuenta__panel-head span{display:block;margin-top:10px;color:#617491;font-size:15px;line-height:1.5;}
.crear-cuenta__social{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:10px;margin-bottom:18px;}
.crear-cuenta__social a{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:9px;border:1px solid #dce7f4;border-radius:12px;background:#fbfdff;color:#243957;font-size:14px;font-weight:800;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;}
.crear-cuenta__social a:hover,.crear-cuenta__social a:focus-visible{border-color:#b9d5ff;box-shadow:0 12px 25px -22px rgba(0,99,255,.7);color:#0b52c2;transform:translateY(-1px);}
.crear-cuenta__social i{font-size:18px;}
.crear-cuenta__divider{display:flex;align-items:center;gap:12px;margin:0 0 18px;color:#788aa5;font-size:12px;font-weight:700;}
.crear-cuenta__divider::before,.crear-cuenta__divider::after{content:"";height:1px;flex:1;background:#e7eef7;}
.crear-cuenta__form{width:100%;}
.crear-cuenta__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 14px;}
.crear-cuenta__field{min-width:0;}
.crear-cuenta__field--wide{grid-column:1/-1;}
.crear-cuenta__field label{display:block;margin:0 0 7px;color:#304765;font-size:13px;font-weight:800;}
.crear-cuenta__control{position:relative;}
.crear-cuenta__control i{position:absolute;left:14px;top:50%;z-index:1;transform:translateY(-50%);color:#627895;font-size:18px;pointer-events:none;}
.crear-cuenta__control input,.crear-cuenta__control select{display:block;width:100%;height:48px;padding:0 14px 0 43px;border:1px solid #d9e5f2;border-radius:12px;background:#fbfdff;color:#1c2f4d;font-size:14px;font-weight:600;outline:0;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;}
.crear-cuenta__control input::placeholder{color:#8ca0ba;opacity:1;}
.crear-cuenta__control input:focus,.crear-cuenta__control select:focus{border-color:#0063ff;background:#fff;box-shadow:0 0 0 4px rgba(0,99,255,.12);}
.crear-cuenta__control--select::after{content:"\ea4e";position:absolute;right:13px;top:50%;font-family:remixicon;transform:translateY(-50%);color:#6f829f;font-size:18px;pointer-events:none;}
.crear-cuenta__control select{appearance:none;padding-right:38px;cursor:pointer;}
.crear-cuenta__terms{display:flex;align-items:flex-start;gap:11px;margin-top:18px;color:#586d89;font-size:13px;line-height:1.45;}
.crear-cuenta__terms input{flex:0 0 auto;width:20px;height:20px;margin-top:1px;border:2px solid #b7c7db;border-radius:6px;}
.crear-cuenta__terms label{margin:0;}
.crear-cuenta__captcha{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:88px;margin-top:15px;padding:12px;border:1px dashed #d6e2f0;border-radius:14px;background:#f8fbff;}
.crear-cuenta__captcha .g-recaptcha{width:auto;height:auto;margin:0;justify-content:center;}
.crear-cuenta__submit{display:inline-flex;width:100%;height:52px;align-items:center;justify-content:center;gap:10px;margin-top:16px;border:0;border-radius:14px;background:#0063ff;box-shadow:0 18px 30px -22px rgba(0,99,255,.95);color:#fff;font-size:16px;font-weight:900;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;}
.crear-cuenta__submit:hover,.crear-cuenta__submit:focus-visible{background:#0753cf;box-shadow:0 22px 34px -22px rgba(0,99,255,1);transform:translateY(-1px);}
.crear-cuenta__submit i{font-size:20px;}
.crear-cuenta__login{margin:18px 0 0;color:#617491;text-align:center;font-size:14px;}
.crear-cuenta__login a{color:#0063ff;font-weight:850;}
.crear-cuenta__alert{margin-bottom:15px;padding:11px 13px;border:1px solid #ffd2d2;border-radius:12px;background:#fff3f3;color:#a33535;font-size:13px;font-weight:700;}
.crear-cuenta__error{margin-top:6px;color:#b93434;font-size:12px;font-weight:700;}
.crear-cuenta__error--terms{margin-left:31px;}

@media (prefers-reduced-motion:reduce){
  .crear-cuenta__social a,.crear-cuenta__submit{transition:none;}
  .crear-cuenta__social a:hover,.crear-cuenta__social a:focus-visible,.crear-cuenta__submit:hover,.crear-cuenta__submit:focus-visible{transform:none;}
}

@media (max-width:1099.98px){
  .crear-cuenta{padding:22px;}
  .crear-cuenta__shell{grid-template-columns:1fr;min-height:auto;}
  .crear-cuenta__visual{min-height:430px;}
  .crear-cuenta__hero{max-width:560px;margin-bottom:30px;}
  .crear-cuenta__hero h1{font-size:38px;}
  .crear-cuenta__panel{padding:36px clamp(22px,5vw,48px);}
}

@media (max-width:767.98px){
  .crear-cuenta{padding:12px;background:#f4f9ff;}
  .crear-cuenta__shell{border-radius:20px;}
  .crear-cuenta__visual{min-height:360px;padding:24px;}
  .crear-cuenta__hero h1{font-size:32px;}
  .crear-cuenta__hero span{font-size:15px;}
  .crear-cuenta__proof{grid-template-columns:1fr;}
  .crear-cuenta__proof article{min-height:auto;grid-template-columns:36px 1fr;align-items:center;}
  .crear-cuenta__float{display:none;}
  .crear-cuenta__panel{padding:28px 20px 30px;}
  .crear-cuenta__panel-head h2{font-size:28px;}
  .crear-cuenta__social{grid-template-columns:1fr;}
  .crear-cuenta__grid{grid-template-columns:1fr;}
  .crear-cuenta__field--wide{grid-column:auto;}
}

@media (max-width:379.98px){
  .crear-cuenta__visual{min-height:330px;padding:20px;}
  .crear-cuenta__hero h1{font-size:28px;}
  .crear-cuenta__panel{padding:24px 14px 26px;}
  .crear-cuenta__captcha{align-items:flex-start;overflow:auto;}
}

/* Contact */

#form_contact.section_contact{position:relative;max-width:100%;overflow:hidden;padding-left: 10px;}
#form_contact.section_contact #data_contact{background-image: radial-gradient(circle at 85% 18%, rgba(255,255,255,.10) 0 16%, transparent 16.2%), radial-gradient(circle at 12% 88%, rgba(255,255,255,.08) 0 22%, transparent 22.2%), linear-gradient(160deg, var(--fc-primario) 0%, var(--fc-primario-hover) 100%);}
#form_contact.section_contact form{width: 95%;}
#form_contact.section_contact .icon_contact{width: 100%;margin: 20px 0;display: flex;align-items: center;justify-content: start;}
#form_contact.section_contact .icon_contact span{color:var(--fc-acento);margin: 0 10px;}
#form_contact.section_contact .icon_contact span i{font-size: 35px;}
#form_contact.section_contact .icon_contact p, #form_contact.section_contact .icon_contact a{color:#FFF;}


/* Category */
#category.section_home{position:relative;max-width:100%;overflow:hidden;}
#category.section_home form{width: 100%;}
#category.section_home form .search-box {width: 40%;}

/* Detail category */
#category_profiles.section_home{position:relative;max-width:100%;overflow:hidden;}
.content_data{padding:5px 10px; margin: 5px 5px 10px;border-radius: 20px 0 0 0;}
.content_data p{font-size: 12px;margin-left: 3px;margin-top: 2px;color:#333333;}
.content_data.bg_blue{background:rgba(var(--fc-primario-rgb),.3);}
.content_data.bg_orange{background:rgba(var(--fc-acento-rgb),.3);}
#category_profiles.section_home .card .card-body p{margin-top: 12px;}
#category_profiles.section_home .card .card-body{margin-top: -15px;}
#category_profiles.section_home .card .card-body h5{font-size: 16px;}
#category_profiles.section_home .card .card-body h6{font-size: 13px;}
/* El tamano de la foto lo fija .perfil__foto, mas abajo, para las tres
   pantallas que comparten la tarjeta. Aqui vivia en 303x185 px y solo aplicaba
   a esta seccion, de modo que en busqueda y en categoria las fotos salian a su
   tamano natural y la fila no alineaba. */
#category_profiles.section_home .search-box input{width: auto;}
#category_profiles.section_home form h6{margin: 5px 10px 0 0;}
.star_category,
.membership,
.school_career{background: rgba(51, 51, 51, 0.25);border-radius: 50%;padding: 0; /* padding no necesario con tamaño fijo */width: 28px;height: 28px;display: inline-flex;align-items: center;justify-content: center;margin-right: 5px;}

.star_category i,
.membership i,
.school_career i{
    color: var(--fc-primario);
    font-size: 12px;
}

.report_user {background: transparent;border-radius: 50%;padding: 0; /* padding no necesario con tamaño fijo */width: 28px;height: 28px;display: inline-flex;align-items: center;justify-content: center;margin-right: 5px;}

.report_user i {
  color: var(--fc-primario);
  font-size: 18px;
}

/* Settings */
#settings.section_account{position:relative;max-width:100%;overflow:hidden;}
#settings.section_account .card {margin-bottom: 1.5rem;-webkit-box-shadow: 0 1px 2px rgba(56,65,74,.15);box-shadow: 0 1px 2px rgba(56,65,74,.15);}
.profile-user .profile-photo-edit {position: absolute;right: 0;left: auto;bottom: 0;cursor: pointer;}
.profile-user .user-profile-image {-o-object-fit: cover;object-fit: cover;}
#settings form{width: 100%;}


/* Detail profile */
.description_profile{margin-top: 20px;}
#container_profile{border:solid 2px var(--fc-primario);padding: 20px;align-self:flex-start;}
#container_profile .star_category {height: 26px;}
div.hr{background-color: rgba(51,51,51, .5);height: 1px;width: 100%;margin: 20px 0;}
.parh_profile{font-size: 15px;width: 80%;margin-left: 10px;}
.container-icon{width:100%;}
.container-icon figure{width:8%;margin-top: 10px;}
.bg_avatar{background-color: var(--fc-primario);border-radius: 35px 0;height: 100%;width: 55%;position: absolute;z-index: -9;left: -17px;top: 12px;}
.badge_freelanclick{background-color: #fff;border-radius:20px 0 0 0;padding: 8px 20px;margin: 3px;box-shadow: inset 0 0 10px 10px rgba(86, 86, 86, 0.1);font-size: 13px;}
.arrow_images i{color:var(--fc-acento); font-size: 30px;font-weight: bold;}
#showModalAdd form, #showModalEdit form, #showModalDelete form {width: 100% !important;}
#showModalAdd .modal-body, #showModalEdit .modal-body, #showModalDelete .modal-body {padding: 4rem;}
#showModalAdd .form-control, #showModalEdit .form-control, #showModalDelete .form-control {box-shadow: inset 0 0 7px rgba(86, 86, 86, 0.4);border: none;margin: 10px 0;}
#showModalAdd .modal-content, #showModalEdit .modal-content, #showModalDelete .modal-content {background-image: linear-gradient(180deg, rgba(var(--fc-primario-rgb),.14) 0%, #fff 55%);}
.btn_close{padding: 0 !important;}
.btn_close i{color: var(--fc-primario);border-radius: 50%;font-size: 30px;}


/* Experience */
.content_experience{background-color: #FFF;box-shadow: inset 0 0 20px 10px rgba(86, 86, 86, 0.1);border-radius:20px 0 0 0;border-right: solid 4px var(--fc-primario);padding: 40px;margin: 10px 0;}
.content_experience span{display: flex; justify-content: start;align-items: center;cursor: pointer;}
.content_experience span h5{margin-bottom: 0 !important;margin-right: 5px;}
.content_experience span p{margin-left: 5px;}
.content_experience p{margin: 10px 0;}
.content_experience .experience_description{max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal;}
.row[id^="gallery_"] {display: none;}
.experience_gallery .experience_image{flex:0 0 20%;max-width:20%;}
.experience_gallery .experience_image figure{width:100%;aspect-ratio:1/1;overflow:hidden;margin:0;}
.experience_gallery .experience_image img{width:100%;height:100%;display:block;object-fit:cover;}
@media (max-width: 767.98px) {
  .experience_gallery .experience_image{flex:0 0 50%;max-width:50%;}
}
/* Gallery */
.image-upload-container {position: relative;width: 100px;height: 100px;overflow: hidden;}
.image-upload-hidden {display: none;}
.input-file {display: none;}
.image-upload-label {display: block;cursor: pointer;}
.image-preview {width: 100%;height: 100px;background-color: #333333;display: flex;align-items: center;justify-content: center;position: relative;}
.plus-icon {font-size: 22px;color: #FFF;font-weight: bold;padding: 0px 7px;background-color: var(--fc-primario);}
.hidden {display: none !important;}

/* Qualify */
.form-check-input {border: 2px solid var(--fc-primario) !important;}
#modal_qualify form{width: 100% !important;}

/* Scroll politicas */
.scroll-box {
    max-height: 300px;  /* o la altura que necesites */
    overflow-y: auto;
    padding-right: 10px;  /* opcional, mejora la vista cuando aparece el scroll */
    border: 0px solid #ddd;
    margin-top: 10px;
}
.scroll-box::-webkit-scrollbar {width: 5px;}
.scroll-box::-webkit-scrollbar-thumb {background-color: var(--fc-primario);border-radius: 4px;}
.scroll-box::-webkit-scrollbar-thumb:hover {background-color: var(--fc-primario-hover);}

/* Report */
form#form_report{width: 100%;}

/* Politicas */

#policy-content ul,
#policy-content ol {
    padding-left: 3rem !important;
    margin-bottom: 1rem;
    list-style-type: disc; /* o 'decimal' para <ol> */
}

#policy-content ul li,
#policy-content ol li {
    list-style: inside;
}


/* Membresia */
  .plan>.card-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  
  .plan {
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  }
  
  /* Bordes personalizados por plan */
  .silver {
      border: 30px solid transparent; /* grosor del borde */
      border-image-source: url("../img/border-silver.a9655f1c699a.png");
      border-image-slice: 100 fill; /* clave */
      border-image-repeat: stretch; /* o round si quieres repetir */
  }

    
  .gold {
      border: 30px solid transparent;
      border-image-source: url("../img/border-gold.e708bec23324.png");
      border-image-slice: 100 fill;
      border-image-repeat: stretch;
  }


  .silver, .gold {
      min-height: 520px;
  }

  .platinum {
    border: 3px solid #3c4cff; /* celeste */
  }
  
  .diamond {
    border: 3px solid #00bcd4; /* azul oscuro */
  }
  
  .short-desc {
    font-style: italic;
    color: #555;
    margin-top: 10px;
  }

/* COLORES BASE */
.bg-dark-2 {
  background: #1e1e1e;
}

.fc-title {
  color: var(--fc-acento);
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 1px;
}


.fc-description {
  color: #adadad;
  font-size: 15px;
  line-height: 1.5;
}

.fc-subtitle {
  color: var(--fc-acento-oscuro);
  font-size: 20px;
  margin-bottom: 12px;
  text-align: center;
}

/* FEATURE LIST */
.fc-feature-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.fc-feature-item {
  padding: 10px 15px;
  background: #fff;
  border-radius: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  transition: background 0.2s ease;
}

.fc-feature-item:hover {
  box-shadow: 0 2px 5px rgba(0,0,0,0.35);
}

.fc-tag {
  padding: 4px 10px;
  font-size: 10px;
  border-radius: 8px;
  font-weight: 600;
  text-transform: uppercase;
}

.fc-tag.include {
  background: #007d18;
  color: #fff;
}

.fc-tag.exclude {
  background: #b40000;
  color: #fff;
}

/* PRICE CARDS */
.fc-price-card {
  text-decoration: none;
  display: block;
  margin-bottom: 16px;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 5px rgba(0,0,0,0.35);
  transition: transform .25s ease, box-shadow .25s ease;
}

.fc-price-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.35);
}

.fc-price-card-body {
  padding: 20px;
}

.fc-price-card .title {
  color: #222;
  font-size: 16px;
  font-weight: 600;
}

.fc-price-card .desc {
  color: #9c9c9c;
  font-size: 12px;
  margin: 8px 0 12px;
}

.fc-price-card .price {
  color: var(--fc-acento);
  font-size: 22px;
  font-weight: 700;
}

/* Contactos */
.clickable-row {
  cursor: pointer;
}

.clickable-row:hover {
  background-color: #f5f5f5; /* o el color que uses */
}

/* === Chat === */
.chat-box {max-height: 450px;overflow-y: auto;padding: 15px;background: #f5f7fa;border-radius: 12px;}

/* Contenedor de cada mensaje */
.chat-message {display: flex;margin-bottom: 15px;align-items: flex-end;}

/* Izquierda (otro usuario) */
.chat-left {justify-content: flex-start;}

/* Derecha (usuario actual) */
.chat-right {justify-content: flex-end;}

/* Avatar */
.chat-avatar img {width: 40px;height: 40px;border-radius: 50%;object-fit: cover;margin: 0 10px;}

/* Burbuja */
.chat-bubble {width: 45%;padding: 10px 14px;border-radius: 14px;position: relative;font-size: 14px;}

/* Colores */
.chat-left .chat-bubble {background: #ffffff;border: 1px solid #e4e6eb;}

.chat-right .chat-bubble {background: var(--fc-primario);color: white;}

/* Header */
.chat-header {display: flex;justify-content: space-between;font-size: 12px;margin-bottom: 4px;opacity: 0.8;}

.chat-right .chat-header {color: #e9ecef;}

/* Estado de entrega de los mensajes propios: Enviando / Enviado / Leído / No enviado.
   Mientras no hay confirmacion del servidor la burbuja se atenua; si falla,
   se marca con borde y aparece "Reintentar". */
.chat-read-status {display: block;margin-top: 4px;font-size: 12px;opacity: .85;}
.chat-message[data-delivery="sending"] .chat-bubble,
.chat-message[data-delivery="waiting"] .chat-bubble {opacity: .7;}
.chat-message[data-delivery="failed"] .chat-bubble {box-shadow: inset 0 0 0 2px #ffb4a8;}
.chat-retry {margin-left: 6px;padding: 0;border: 0;background: none;color: inherit;font: inherit;font-size: 12px;font-weight: 600;text-decoration: underline;cursor: pointer;}
.chat-retry:focus-visible {outline: 2px solid #fff;outline-offset: 2px;}

/* Aviso pasajero de "escribiendo...", entre el historial y el campo. */
.chat-typing{margin:6px 2px 0;font-size:13px;font-style:italic;color:var(--fc-texto-suave);}

/* "Cargar anteriores", arriba del historial */
.chat-load-older {text-align: center;margin-bottom: 15px;}
.chat-load-older__button {padding: 6px 16px;border: 1px solid var(--fc-borde);border-radius: 999px;background: #fff;color: var(--fc-texto-suave);font-size: 13px;cursor: pointer;}
.chat-load-older__button:hover:not(:disabled) {border-color: var(--fc-primario);color: var(--fc-primario-hover);}
.chat-load-older__button:disabled {cursor: progress;opacity: .7;}
.chat-load-older__button:focus-visible {outline: 2px solid var(--fc-primario);outline-offset: 2px;}

/* ---------------------------------------------------------------------------
   Espacio de trabajo del chat. Conserva los selectores que usa chat.js y los
   presenta como una conversación de dos columnas, no como una tarjeta genérica.
   --------------------------------------------------------------------------- */
.chat-workspace{height:calc(100dvh - 80px);min-height:0;padding:26px 0;box-sizing:border-box;overflow:hidden;background:#f3f6fb;}
.chat-workspace__container{height:100%;max-width:1600px;padding:0 28px;}
.chat-workspace__grid{display:grid;grid-template-columns:minmax(280px,350px) minmax(0,1fr);gap:26px;height:100%;min-height:0;}
.chat-sidebar,.chat-panel{height:100%;min-height:0;border:1px solid #e8eef6;border-radius:28px;box-shadow:0 8px 28px rgba(31,53,84,.045);}
.chat-sidebar{display:flex;flex-direction:column;padding:24px;background:#fff;overflow:hidden;}
.chat-sidebar__back{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border-radius:12px;background:#f1f5f9;color:#253a58;font-size:13px;font-weight:600;text-decoration:none;}
.chat-sidebar__back:hover{background:#e6eef8;color:var(--fc-primario);}
.chat-sidebar__title{margin:28px 4px 12px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#58708f;}
.chat-sidebar__list{flex:1;overflow:auto;padding:0 2px;}
.chat-conversation{position:relative;display:flex;align-items:center;gap:12px;margin-bottom:4px;padding:11px 10px;border-radius:17px;color:var(--fc-texto);text-decoration:none;}
.chat-conversation:hover{background:#f5f8fc;color:var(--fc-texto);}
.chat-conversation--active{background:#e2edff;}
.chat-conversation--active:before{position:absolute;left:0;width:5px;height:36px;border-radius:0 999px 999px 0;background:var(--fc-primario);content:"";}
.chat-conversation__avatar{flex:none;width:44px;height:44px;border-radius:50%;object-fit:cover;}
.chat-conversation__body{min-width:0;flex:1;}
.chat-conversation__topline{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.chat-conversation__topline strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap;}
.chat-conversation__topline time{flex:none;color:#8aa0bf;font-size:10px;white-space:nowrap;}
.chat-conversation__preview{display:block;overflow:hidden;margin-top:3px;color:#617695;font-size:12px;text-overflow:ellipsis;white-space:nowrap;}
.chat-conversation__unread{flex:none;width:8px;height:8px;border-radius:50%;background:var(--fc-primario);}
.chat-sidebar__empty{margin:12px 4px;color:#71839d;font-size:13px;}
.chat-sidebar__tip{display:flex;gap:10px;margin-top:18px;padding:14px;border:1px solid #dceafe;border-radius:18px;background:#eef5ff;color:#304562;}
.chat-sidebar__tip>i{display:grid;flex:none;width:30px;height:30px;place-items:center;border-radius:50%;background:#dceaff;color:var(--fc-primario);font-size:16px;}
.chat-sidebar__tip strong{display:block;color:#173c83;font-size:12px;}
.chat-sidebar__tip p{margin:4px 0 0;font-size:11.5px;line-height:1.4;}

.chat-panel{display:flex;flex-direction:column;overflow:hidden;background:#f7f9fc;}
.chat-panel__header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 28px;border-bottom:1px solid #e9eef5;background:#fff;}
.chat-panel__person{display:flex;align-items:center;gap:13px;min-width:0;}
.chat-panel__avatar-wrap{position:relative;display:block;flex:none;width:48px;height:48px;}
.chat-panel__avatar{flex:none;width:48px;height:48px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #edf2f8;}
.chat-presence-dot{position:absolute;right:-1px;bottom:1px;width:13px;height:13px;border:2px solid #fff;border-radius:50%;background:#10b981;box-shadow:0 1px 3px rgba(15,23,42,.2);}
.chat-presence-dot--offline{background:#94a3b8;}
.chat-panel__person h2{overflow:hidden;margin:0;color:#172a46;font-size:16px;font-weight:750;text-overflow:ellipsis;white-space:nowrap;}
.chat-verified-badge{display:inline-block;color:var(--fc-primario);font-size:.95em;vertical-align:-.06em;}
.chat-panel__person p{margin:3px 0 0;color:#8398b7;font-size:13px;}
.chat-panel__readonly{display:inline-block;margin-left:7px;color:#8b6b20;font-weight:700;}
.chat-panel__contract{display:inline-flex;flex:none;align-items:center;gap:6px;border:1px solid #dce6f2;border-radius:12px;padding:9px 12px;color:var(--fc-primario);font-size:12px;font-weight:700;text-decoration:none;}
.chat-panel__contract:hover{border-color:var(--fc-primario);background:#f3f8ff;color:var(--fc-primario-hover);}
.chat-history{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:30px clamp(20px,4vw,60px);background:#f5f8fc;}
.chat-date{display:flex;justify-content:center;margin:8px 0 22px;}
.chat-date span{padding:6px 15px;border-radius:999px;background:#edf2f8;color:#71839b;font-size:11px;font-weight:600;}
.chat-message{display:flex;align-items:flex-end;gap:10px;margin:0 0 18px;}
.chat-left{justify-content:flex-start;}
.chat-right{justify-content:flex-start;flex-direction:row-reverse;}
.chat-avatar{flex:none;}
.chat-avatar img{display:block;width:40px;height:40px;margin:0;border-radius:50%;object-fit:cover;}
.chat-bubble{width:auto;max-width:min(72%,510px);padding:11px 14px;border:1px solid #e9eef5;border-radius:18px;border-bottom-left-radius:6px;background:#fff;color:#26374f;box-shadow:0 2px 4px rgba(31,53,84,.035);font-size:13px;}
.chat-right .chat-bubble{border:0;border-bottom-right-radius:6px;border-bottom-left-radius:18px;background:#dceaff;color:#1e3555;}
.chat-header{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:4px;font-size:11px;opacity:1;}
.chat-username{color:var(--fc-primario);font-weight:750;}
.chat-time{flex:none;color:#89a0bf;font-size:10px;}
.chat-text{line-height:1.45;overflow-wrap:anywhere;}
.chat-read-status{display:block;margin-top:5px;color:#5e7b9d;font-size:10px;text-align:right;}
.chat-message[data-delivery="failed"] .chat-bubble{box-shadow:inset 0 0 0 2px #d95d4e;}
.chat-retry{color:#1556cb;}
.chat-typing,.chat-error,.chat-connection,.chat-readonly-notice{margin:0;padding:8px 28px;font-size:12px;}
.chat-typing{color:#52729a;font-style:italic;}
.chat-error{color:#b3382d;}
.chat-connection{color:#8b6519;background:#fff5d9;}
.chat-readonly-notice{color:#70602e;background:#fff7db;}
.chat-composer{display:flex;align-items:center;gap:12px;margin:0;padding:15px 24px;border-top:1px solid #e9eef5;background:#fff;}
.chat-composer__icon{color:#8da1be;font-size:21px;}
.chat-composer input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#26374f;font-size:14px;}
.chat-composer input::placeholder{color:#91a4bf;}
.chat-composer button{display:grid;width:46px;height:46px;place-items:center;border:0;border-radius:50%;background:var(--fc-primario);box-shadow:0 5px 12px rgba(var(--fc-primario-rgb),.25);color:#fff;font-size:20px;transition:transform .15s ease,background-color .15s ease;}
.chat-composer button:hover:not(:disabled){background:var(--fc-primario-hover);transform:translateY(-1px);}
.chat-composer button:disabled{cursor:not-allowed;opacity:.45;}
.chat-sidebar__back:focus-visible,.chat-conversation:focus-visible,.chat-panel__contract:focus-visible,.chat-composer button:focus-visible{outline:3px solid rgba(var(--fc-primario-rgb),.35);outline-offset:2px;}
@media (max-width:991px){
    /* En tablet y móvil el chat sigue siendo una sola ventana: la lista y el
       historial tienen su propio scroll, en vez de alargar toda la página. */
    .chat-workspace{height:calc(100dvh - 80px);min-height:0;padding:12px 0;overflow:hidden;}
    .chat-workspace__container{height:100%;padding:0 15px;}
    .chat-workspace__grid{grid-template-columns:1fr;grid-template-rows:minmax(170px,32%) minmax(0,1fr);gap:12px;height:100%;min-height:0;}
    .chat-sidebar,.chat-panel{height:100%;min-height:0;}
    .chat-sidebar{max-height:none;}
    .chat-panel{min-height:0;}
    .chat-sidebar__tip{display:none;}
}
@media (max-width:575px){
    .chat-workspace{height:calc(100dvh - 72px);padding:0;}
    .chat-workspace__container{padding:0;}
    .chat-workspace__grid{grid-template-rows:minmax(160px,31%) minmax(0,1fr);gap:0;}
    .chat-sidebar,.chat-panel{border-right:0;border-left:0;border-radius:0;}
    .chat-sidebar{padding:14px 16px;}.chat-sidebar__title{margin:16px 2px 8px;}
    .chat-panel__header{padding:12px 14px;gap:10px;}.chat-panel__person p{font-size:11px;}
    .chat-panel__contract{padding:8px;font-size:0;}.chat-panel__contract i{font-size:17px;}
    .chat-history{padding:18px 12px;}.chat-bubble{max-width:82%;}.chat-composer{padding:10px 14px;}
    .chat-composer button{width:42px;height:42px;}
}


/* ---------------------------------------------------------------------------
   Notificaciones (templates/notifications/list.html).

   Disposicion tomada de _mockups/notificaciones.html. Cada fila es un boton
   dentro de su formulario (el clic marca leida y redirige), estirado para que
   se vea como fila. Los nombres notification-item, unread y notification-dot
   no cambian: los usa scripts/e2e/chat_notifications.js.
   --------------------------------------------------------------------------- */
.notif{position:relative;overflow:hidden;padding:32px 0 64px;}
/* Los dos halos del mockup, hechos con degradados: no hay imagenes de fondo. */
.notif__brillo{position:absolute;z-index:0;pointer-events:none;border-radius:50%;}
.notif__brillo--izq{width:500px;height:500px;left:-150px;top:60px;
    background:radial-gradient(circle,rgba(var(--fc-primario-rgb),.10) 0%,rgba(248,250,253,0) 70%);}
.notif__brillo--der{width:600px;height:600px;right:-150px;top:120px;
    background:radial-gradient(circle,rgba(var(--fc-primario-rgb),.13) 0%,rgba(248,250,253,0) 70%);}
.notif__contenido{position:relative;z-index:1;}

.notif__encabezado{margin-bottom:24px;text-align:center;}
.notif__linea{display:block;width:44px;height:4px;margin:0 auto 16px;border-radius:999px;
    background:var(--fc-primario);}
.notif__titulo{margin:0 0 8px;font-size:clamp(20px,2.2vw,24px);font-weight:800;letter-spacing:.12em;
    text-transform:uppercase;color:var(--fc-acento);}
.notif__bajada{font-size:14px;color:var(--fc-texto-suave);}

/* Tarjetas del resumen */
.notif__kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px;}
.notif__kpi-tarjeta{display:flex;align-items:center;gap:16px;margin:0;padding:20px;background:#fff;
    border:1px solid rgba(226,232,240,.8);border-radius:16px;box-shadow:0 4px 20px -4px rgba(15,23,42,.05);}
.notif__kpi-icono{flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:52px;height:52px;border-radius:50%;font-size:24px;}
.notif__kpi-icono--azul{background:rgba(var(--fc-primario-rgb),.12);color:var(--fc-primario);}
.notif__kpi-icono--verde{background:#eafbf3;color:#0f9d6a;}
.notif__kpi-icono--naranjo{background:rgba(var(--fc-acento-rgb),.12);color:var(--fc-acento-oscuro);}
.notif__kpi-rotulo{display:block;font-size:12px;font-weight:600;color:var(--fc-texto);}
.notif__kpi-numero{display:block;margin-top:5px;font-size:26px;font-weight:800;line-height:1;
    color:var(--fc-oscuro);}
.notif__kpi-detalle{display:block;margin-top:5px;font-size:11.5px;font-weight:500;color:#94a3b8;}

/* Barra de filtros */
.notif__barra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
    margin-bottom:16px;}
.notif__filtros{display:flex;flex-wrap:wrap;gap:8px;}
.notif__pildora{padding:6px 18px;border:1px solid var(--fc-borde);border-radius:999px;background:#fff;
    color:var(--fc-texto-suave);font-size:12.5px;font-weight:600;text-decoration:none;
    transition:background-color .15s ease,color .15s ease;}
.notif__pildora:hover{background:var(--fc-fondo-suave);color:var(--fc-texto);}
.notif__pildora--activa,.notif__pildora--activa:hover{background:var(--fc-primario);
    border-color:var(--fc-primario);color:#fff;}
.notif__marcar-todas{width:auto;}
.notif__marcar{display:inline-flex;align-items:center;gap:6px;padding:6px 2px;border:0;background:none;
    color:var(--fc-primario);font-size:12.5px;font-weight:700;cursor:pointer;}
.notif__marcar:hover{color:var(--fc-primario-hover);text-decoration:underline;}
/* Gestión de la bandeja (2026-10-17): «marcar todas» y «vaciar», juntas a la derecha. */
.notif__acciones-barra{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;}
.notif__marcar--vaciar{color:#b91c1c;}
.notif__marcar--vaciar:hover{color:#991b1b;}

.notif__tarjeta{overflow:hidden;background:#fff;border:1px solid rgba(226,232,240,.8);
    border-radius:16px;box-shadow:0 4px 24px -6px rgba(15,23,42,.08);}
.notif__lista{margin:0;padding:0;list-style:none;}
.notif__lista li + li .notification-item{border-top:1px solid #f1f5f9;}
.notif__lista form{width:100%;}
/* La fila y, al final, sus acciones. La fila sigue siendo un botón a todo lo ancho:
   «leer» y «quitar» van al lado, en formularios aparte, porque uno no puede anidarse
   dentro del otro y porque tocarlos no debe disparar el destino de la fila. */
.notif__fila{display:flex;align-items:stretch;}
.notif__fila-ir{flex:1 1 auto;min-width:0;}
.notif__fila-acciones{display:flex;flex:none;align-items:center;gap:2px;padding-right:10px;}
.notif__fila-acciones form{width:auto;}
.notif__lista li + li .notif__fila-acciones{border-top:1px solid #f1f5f9;}
.notif__accion{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
    padding:0;border:0;border-radius:50%;background:none;color:#64748b;font-size:16px;cursor:pointer;}
.notif__accion:hover{background:#f1f5f9;color:var(--fc-primario);}
.notif__accion--quitar:hover{background:#fee2e2;color:#b91c1c;}
.notif__accion:focus-visible{outline:2px solid var(--fc-primario);outline-offset:1px;}

/* Diálogo de confirmación y de edición corta, compartido por notificaciones y por las
   acciones del contrato. Usa <dialog> nativo: el navegador le da el foco atrapado y
   el cierre con Escape sin JavaScript propio. */
/* El `margin:auto` es lo que centra un <dialog> abierto con showModal(): lo trae la hoja del
   navegador y el reinicio de arriba (*{margin:0}) se lo comía, así que el aviso salía pegado
   arriba a la izquierda. Repetirlo aquí lo devuelve al medio de la pantalla. */
.fc-dialogo{width:min(460px,calc(100vw - 32px));margin:auto;padding:22px;border:0;border-radius:16px;
    box-shadow:0 24px 60px -20px rgba(15,23,42,.4);color:var(--fc-tinta,#0f172a);}
.fc-dialogo::backdrop{background:rgba(15,23,42,.45);}
.fc-dialogo__titulo{margin:0 0 10px;font-size:18px;font-weight:800;line-height:1.25;}
.fc-dialogo__texto{margin:0 0 16px;color:#475569;font-size:14px;line-height:1.45;}
.fc-dialogo__campo{display:block;width:100%;margin-bottom:6px;padding:10px 12px;
    border:1px solid #cbd5e1;border-radius:10px;font:inherit;font-size:14px;}
.fc-dialogo__campo:focus-visible{outline:2px solid var(--fc-primario);outline-offset:1px;}
.fc-dialogo__ayuda{display:block;margin-bottom:16px;color:#64748b;font-size:12.5px;}
.fc-dialogo__acciones{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:0;}
.fc-dialogo__boton{padding:9px 16px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;
    color:#334155;font-size:14px;font-weight:700;cursor:pointer;}
.fc-dialogo__boton:hover{background:#f8fafc;}
.fc-dialogo__boton--principal{border-color:var(--fc-primario);background:var(--fc-primario);color:#fff;}
.fc-dialogo__boton--principal:hover{background:var(--fc-primario-hover);}
.fc-dialogo__boton--peligro{border-color:#b91c1c;background:#b91c1c;color:#fff;}
.fc-dialogo__boton--peligro:hover{background:#991b1b;}
@media (max-width:420px){
    .fc-dialogo__acciones{flex-direction:column-reverse;}
    .fc-dialogo__boton{width:100%;}
}
/* Aviso «Evaluación pendiente» (2026-10-29): el mismo diálogo, centrado, con su X. */
.fc-evaluacion-pendiente{text-align:center;}
.fc-evaluacion-pendiente__cerrar-form{display:flex;justify-content:flex-end;margin:-10px -10px 0 0;}
.fc-evaluacion-pendiente__cerrar{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;
    border-radius:50%;background:#f1f5f9;color:#334155;font-size:18px;cursor:pointer;}
.fc-evaluacion-pendiente__cerrar:hover{background:#e2e8f0;}
.fc-evaluacion-pendiente__cerrar:focus-visible{outline:2px solid var(--fc-primario);outline-offset:2px;}
.fc-evaluacion-pendiente__estrellas{margin:4px 0 10px;color:#f5b301;font-size:22px;letter-spacing:2px;}
.fc-evaluacion-pendiente .fc-dialogo__acciones{justify-content:center;}
.fc-evaluacion-pendiente .fc-dialogo__boton--principal{text-decoration:none;}
/* Modales de una sola acción (aviso de evaluación, «No se pudo abrir»): el botón centrado. */
.freelancer-contact-modal footer.freelancer-contact-modal__pie-unico{grid-template-columns:minmax(0,260px);justify-content:center;}
.freelancer-contact-modal__pie-unico a{display:inline-flex;align-items:center;justify-content:center;min-height:49px;
    padding:0 22px;border-radius:12px;font-size:15px;font-weight:800;text-decoration:none;}
.freelancer-contact-modal__pie-unico a:hover,.freelancer-contact-modal__pie-unico a:focus{color:#fff;filter:brightness(.96);}
.freelancer-contact-modal__body>p.fc-evaluacion-pendiente__estrellas{margin:0 auto 22px;color:#f5b301;font-size:22px;}

.notification-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 24px;
    border:0;background:transparent;text-align:left;transition:background-color .15s ease;}
.notification-item:hover{background-color:#f8fafc;}
.notification-item:focus-visible{outline:2px solid var(--fc-primario);outline-offset:-2px;}
.notification-item.unread{background-color:rgba(var(--fc-primario-rgb),.05);}
.notification-item.unread:hover{background-color:rgba(var(--fc-primario-rgb),.09);}

/* El punto de "sin leer" abre la fila; en las leidas queda un hueco del mismo
   ancho para que todo lo demas siga alineado. */
.notification-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--fc-primario);}
.notif__hueco{flex:none;width:10px;height:10px;}

.notification-avatar{flex:none;width:40px;height:40px;border-radius:50%;object-fit:cover;
    background:#eceff3;}
.notif__icono{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
    border-radius:50%;background:#eceff3;color:#64748b;font-size:19px;}
.notif__icono--contrato{background:rgba(var(--fc-primario-rgb),.12);color:var(--fc-primario);}
.notif__icono--otro{background:rgba(var(--fc-acento-rgb),.12);color:var(--fc-acento-oscuro);}

.notif__texto{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.notif__titulo-item{font-size:14px;font-weight:600;color:var(--fc-texto);}
.notification-item.unread .notif__titulo-item{font-weight:700;}
.notif__mensaje{font-size:13px;line-height:1.35;color:var(--fc-texto-suave);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

.notif__meta{flex:none;display:flex;align-items:center;gap:14px;}
/* Dos renglones, como el mockup: cuanto hace y la fecha exacta. */
.notif__fechas{display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.notif__tiempo{font-size:12px;font-weight:500;color:#8a97a8;white-space:nowrap;}
.notif__fecha{font-size:11.5px;color:#aab4c2;white-space:nowrap;}
.notif__flecha{font-size:18px;color:#94a3b8;transition:transform .15s ease,color .15s ease;}
.notification-item:hover .notif__flecha{color:var(--fc-primario);transform:translateX(3px);}

.notif__vacio{padding:56px 24px;text-align:center;color:var(--fc-texto-suave);}
.notif__vacio-icono{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;
    margin-bottom:12px;border-radius:50%;background:#f1f5f9;font-size:26px;color:#94a3b8;}
.notif__paginacion{margin-top:24px;}
.notif__paginacion .page-link{border-radius:10px;margin:0 3px;border-color:var(--fc-borde);}
.notif__paginacion .page-item.active .page-link{border-color:var(--fc-primario);}

@media (max-width: 767.98px){
    .notif__kpi{grid-template-columns:1fr;gap:12px;margin-bottom:20px;}
    .notif__kpi-tarjeta{padding:16px;}
    .notif__barra{justify-content:flex-start;}
}
@media (max-width: 575.98px){
    .notification-item{align-items:flex-start;padding:14px 16px;}
    .notif__meta{align-self:stretch;}
    .notif__fechas{align-items:flex-end;}
    .notif__fecha{display:none;}
    .notif__tiempo{max-width:82px;overflow:hidden;text-overflow:ellipsis;}
    .notif__titulo-item{overflow-wrap:anywhere;}
    .notif__flecha{display:none;}
    .notif__filtros{width:100%;}
    .notif__pildora{padding:6px 14px;}
}
@media (prefers-reduced-motion: reduce){
    .notif__flecha{transition:none;}
    .notification-item:hover .notif__flecha{transform:none;}
}

.achievement {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at top, #ffd700, var(--fc-acento));
  box-shadow: 0 4px 10px rgba(var(--fc-acento-rgb), .6);
  transition: transform .3s ease;
}

.achievement:hover {
  transform: scale(1.15) rotate(5deg);
}

/* ⭐ Satisfacción */
.ach-gold {
  background: radial-gradient(circle at top, #ffd700, var(--fc-acento));
  box-shadow: 0 4px 10px rgba(var(--fc-acento-rgb), .6);
}

/* ⚡ Rapidez */
.ach-blue {
  background: radial-gradient(circle at top, #82b1ff, #2962ff);
  box-shadow: 0 4px 10px rgba(41, 98, 255, .55);
}

/* ⏱️ Puntualidad */
.ach-orange {
  background: radial-gradient(circle at top, #ffe082, #ff9800);
  box-shadow: 0 4px 10px rgba(255, 152, 0, .55);
}

/* 💬 Comunicación */
.ach-teal {
  background: radial-gradient(circle at top, #80deea, #0097a7);
  box-shadow: 0 4px 10px rgba(0, 151, 167, .55);
}

/* ✔️ Verificado */
.ach-dark {
  background: radial-gradient(circle at top, #616161, #212121);
  box-shadow: 0 4px 10px rgba(0, 0, 0, .6);
}

  /* === Tablet === */
@media (max-width: 991.98px) {
  /* Reglas para .search-box (usada en otras vistas como la de categorías) */
  #category.section_home form .search-box,
  #membership.section_home form .search-box {width: 100%;max-width: 900px;}

  #category.section_home form .search-box .form-control,
  #membership.section_home form .search-box .form-control {padding-left: 40px; box-shadow: inset 0 0 7px rgba(86,86,86,0.4);}

  #category.section_home form .search-box .search-icon,
  #membership.section_home form .search-box .search-icon {left: 12px;font-size: 14px;}

  /* Si usas d-flex contenedor para el form en otras vistas, forzamos apilado */
  .d-flex.justify-content-center {
    flex-direction: column;
    align-items: center;
  }

  .vh100 {
    height: auto !important; /* Que no quede forzado */
  }

  #content_signup,
  #content_login {
    flex: 0 0 100%;
    max-width: 100%;
    padding: 1rem;
    text-align: center;
  }

  #content_signup .vh88,
  #content_login .vh88 {
    height: auto !important;
    margin: 1rem 0;
  }

  /* Formularios más cómodos */
  form .form-group {
    margin-bottom: 1rem;
  }

  form .form-group select,
  form .form-group input {
    width: 100% !important;
  }

  /* Botones */
  .btn_freelanclick {
    width: 100%;
    border-radius: 10px;
  }

  /* Redes sociales centradas */
  #social_networks {
    margin: 1rem auto;
    text-align: center;
  }

  #social_networks ul {
    justify-content: center;
    padding: 0;
  }

}

/* === Mobile === */
@media (max-width: 575.98px) {
  /* Ajustes específicos del search-box para vistas que lo usan */
  #category.section_home form .search-box,
  #membership.section_home form .search-box {width: 100%;}

  #category.section_home form .search-box .form-control,
  #membership.section_home form .search-box .form-control {
    padding-left: 40px;
  }

  #category.section_home form .search-box .search-icon {
    left: 12px;
  }

  .vh100 {
    height: auto !important;
    flex-direction: column;
  }
  #category.section_home .no_padding{padding: 20px !important;}

  #content_signup,
  #content_login {
    padding: 1rem;
    max-width: 100%;
    flex: 0 0 100%;
  }

  header.header_section h1,
  header.header_section h2 {
    font-size: 22px;
    line-height: 30px;
  }

  /* Inputs y selects en una sola columna */
  form .form-group {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  /* Excepto el checkbox */
  form .form-group.checkbox-group {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    display: flex;
    align-items: center;
    justify-content: flex-start; /* o center si lo quieres centrado */
  }

  /* Espaciado entre campos */
  form .form-group + .form-group {
    margin-top: 0.8rem;
  }

  /* Botón centrado */
  .btn_freelanclick {
    width: 100%;
    margin-top: 1rem;
  }

  /* Modal scroll en móvil */
  .modal-body .scroll-box {
    max-height: 300px;
    overflow-y: auto;
  }
}

/* ---------------------------------------------------------------------------
   Destacados del home: slides y profesionales Gold, debajo del banner. Van en
   el mismo .container que la portada, con el kicker y las flechas arriba.
   Cada tarjeta es un cuadrado: la imagen se recorta con object-fit para que
   cualquier proporcion subida desde el admin encaje sin deformarse.
   --------------------------------------------------------------------------- */
.home-destacados{padding:8px 0 56px;}
.home-destacados__encabezado{display:flex;align-items:center;justify-content:space-between;
    gap:16px;margin-bottom:16px;}
.home-destacados__encabezado .fc-kicker{margin:0;}
.home-destacados__flechas{display:none;gap:8px;}
/* Flechas solo desde 992px: en movil y tablet el gesto natural es deslizar. */
@media (min-width: 992px){
    .home-destacados__flechas{display:flex;}
}
.home-flecha{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
    padding:0;border:1px solid var(--fc-borde);border-radius:50%;background:#fff;color:#475569;
    font-size:20px;box-shadow:0 1px 2px rgba(15,23,42,.06);
    transition:background-color .15s ease,color .15s ease,border-color .15s ease;}
.home-flecha:hover{background:#f1f5f9;color:var(--fc-texto);}
.home-flecha:focus-visible{outline:2px solid var(--fc-primario);outline-offset:2px;}

.slides-swiper{overflow:hidden;padding:8px 0 12px;}
.slides-swiper .swiper-slide{height:auto;}

.slide-card{display:block;position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;
    border:1px solid var(--fc-borde);border-radius:16px;background:#eef1f6;text-decoration:none;
    box-shadow:0 1px 2px rgba(15,23,42,.05);
    transition:transform .25s ease, box-shadow .25s ease;}
.slide-card:is(:hover,:focus-visible){transform:translateY(-6px);
    box-shadow:0 8px 20px -4px rgba(15,23,42,.14);}
.slide-card__img{width:100%;height:100%;object-fit:cover;display:block;}

/* Las tarjetas de perfil son mas altas que las de banner porque llevan nombre,
   oficio y comuna debajo de la foto. Igualar la altura de toda la fila y dejar
   que la imagen del banner crezca para llenarla evita el hueco que quedaria si
   cada tarjeta midiera lo suyo. */
.slides-swiper .swiper-wrapper{align-items:stretch;}
.slides-swiper .swiper-slide{display:flex;}

/* La tarjeta llena su hueco. Antes llevaba un tope de 190px porque la fila iba
   de borde a borde de la pantalla; dentro del .container el ancho ya esta
   acotado y el tope solo dejaba espacios vacios entre tarjetas. */
.slide-card{flex:1;}
.slide-card--banner{display:flex;}
.slide-card--banner .slide-card__img{flex:1;min-height:0;}

/* El aspect-ratio cuadrado solo manda en la foto del perfil; el alto total de
   la tarjeta lo define el cuerpo de texto. */
.slide-card--perfil{aspect-ratio:auto;display:flex;flex-direction:column;
    background:#fff;}
.slide-card__foto{position:relative;display:block;aspect-ratio:1/1;
    overflow:hidden;flex:none;}

/* La insignia va sobre la foto y no en el cuerpo: ahi se lee de un vistazo al
   recorrer la fila, que es justo lo que el plan paga. */
.slide-card__foto .star_category{position:absolute;top:8px;right:8px;
    margin-right:0;box-shadow:0 2px 6px rgba(0,0,0,.25);}

.slide-card__cuerpo{display:flex;flex-direction:column;gap:2px;
    padding:10px 10px 12px;text-align:center;}
.slide-card__nombre{font-size:13px;line-height:1.2;color:var(--fc-texto);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden;}
.slide-card__oficio{font-size:12px;line-height:1.2;color:#6b7280;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden;}
.slide-card__lugar{font-size:11px;color:#9ca3af;letter-spacing:.02em;}

/* Variantes de la insignia de membresia. La clase base .star_category ya
   existia para marcar membresia en la ficha de perfil: aca solo cambia el
   color, para que el mismo simbolo signifique lo mismo en todo el sitio. */
.star_category--gold{background:rgba(255,193,7,.22);}
.star_category--gold i{color:#B8860B;}
.star_category--silver{background:rgba(120,130,150,.20);}
.star_category--silver i{color:#6B7280;}

/* Titulo sobre la base de la tarjeta, acotado a dos lineas: en 150px de lado
   no entra mas y sin el corte el texto tapaba la imagen entera. */
.slide-card__title{position:absolute;left:0;right:0;bottom:0;padding:20px 10px 8px;
    color:#fff;font-size:13px;font-weight:600;line-height:1.25;
    background:linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,0));
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden;}

/* Marcha continua: la curva por defecto (ease) acelera al empezar cada tramo y
   frena al terminarlo. Encadenados sin pausa esos frenados se leen como un
   tironeo, asi que el desplazamiento tiene que ser lineal de punta a punta.
   La clase la pone el JS al arrancar el carrusel: sin JS la fila queda quieta y
   se recorre con las flechas, y ahi la curva por defecto es la correcta. */
.slides-swiper--continuo .swiper-wrapper{transition-timing-function:linear;}

/* La animacion corre sobre transform, que el navegador resuelve en la GPU. Sin
   esta pista algunos equipos la reparten entre cuadros y se ve entrecortada. */
.slides-swiper--continuo .swiper-slide{will-change:transform;}

@media (max-width: 575.98px){
    .slide-card__title{font-size:12px;padding:16px 8px 6px;}
}

/* ---------------------------------------------------------------------------
   Panel de filtros avanzados. Se despliega bajo los dos filtros principales y
   lo comparten el home, la busqueda y las vistas de categoria.

   Va sobre <details>, no sobre JavaScript: el navegador ya sabe plegar y
   desplegar, se puede usar con teclado sin que nadie lo programe, y si el JS
   falla o tarda el panel sigue funcionando.

   Se estila solo lo nuevo. El formulario que lo contiene no tiene CSS propio
   en este archivo y se apoya en Bootstrap; tocarlo desde aca cambiaria de
   paso el buscador de cuatro pantallas.
   --------------------------------------------------------------------------- */
.search-filters__avanzados{width:100%;margin-top:10px;}

.search-filters__avanzados-titulo{display:inline-flex;align-items:center;gap:6px;
    cursor:pointer;font-size:13px;font-weight:600;color:var(--fc-primario);
    list-style:none;user-select:none;padding:4px 2px;}
/* Safari pinta su propio triangulo y descoloca la fila. */
.search-filters__avanzados-titulo::-webkit-details-marker{display:none;}
.search-filters__avanzados-titulo:hover{color:var(--fc-primario-hover);}
.search-filters__avanzados-titulo i{font-size:16px;}

/* La flecha la dibuja el CSS para poder girarla al abrir: asi el estado del
   panel se ve sin tener que leer el texto. */
.search-filters__avanzados-titulo::after{content:"\2039";display:inline-block;
    transform:rotate(-90deg);font-size:18px;line-height:1;
    transition:transform .2s ease;}
.search-filters__avanzados[open] .search-filters__avanzados-titulo::after{
    transform:rotate(90deg);}

.search-filters__avanzados-cuerpo{display:grid;gap:12px;margin-top:10px;
    grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));}

.search-filters__etiqueta{display:block;font-size:12px;font-weight:600;
    color:#6b7280;margin-bottom:4px;}

@media (max-width: 575.98px){
    .search-filters__avanzados-cuerpo{grid-template-columns:1fr;}
}

/* ---------------------------------------------------------------------------
   Lista de sugerencias del autocompletado de Servicio.

   Nunca tuvo estilo propio: se pintaba como texto suelto que empujaba el
   boton Buscar hacia abajo cada vez que aparecia. Ahora flota sobre lo que
   sigue, de modo que abrirla y cerrarla no mueve el formulario.
   --------------------------------------------------------------------------- */
.search-filters__field[data-autocomplete]{position:relative;}

.search-filters__suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;
    z-index:1000;margin:0;padding:4px 0;list-style:none;text-align:left;
    background:#fff;border:1px solid #e5e7eb;border-radius:8px;
    box-shadow:0 8px 24px rgba(15,23,42,.12);
    max-height:320px;overflow-y:auto;}

.search-filters__suggestion{display:flex;align-items:baseline;gap:6px;
    padding:8px 12px;cursor:pointer;font-size:14px;color:#1f2937;}
.search-filters__suggestion:hover,
.search-filters__suggestion:focus{background:rgba(var(--fc-primario-rgb),.08);outline:none;}
.search-filters__suggestion-context{color:#6b7280;font-size:12px;}

/* Elegir a una persona navega a su perfil en vez de buscar: el icono lo
   anticipa antes de leer el texto. */
.search-filters__suggestion--person i{align-self:center;color:var(--fc-primario);font-size:15px;}

/* ---------------------------------------------------------------------------
   Selector de duracion en la tarjeta de cada plan.

   Las cuatro duraciones vivian tras el modal y el descuento por pagar
   adelantado no se veia al comparar planes. Van como radios: se entienden sin
   JavaScript, se recorren con el teclado y el navegador ya sabe marcarlos.
   --------------------------------------------------------------------------- */
.plan-duraciones{margin-top:18px;}
.plan-duraciones__opciones{border:0;margin:0;padding:0;display:grid;gap:8px;}
.plan-duraciones__titulo{font-size:12px;font-weight:600;color:#6b7280;
    text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;padding:0;}

.plan-duracion{display:grid;grid-template-columns:auto 1fr auto;
    align-items:center;gap:8px;padding:10px 12px;cursor:pointer;
    border:1px solid #e5e7eb;border-radius:10px;background:#fff;
    transition:border-color .15s ease, box-shadow .15s ease;}
.plan-duracion:hover{border-color:#c7d0e8;}
.plan-duracion:has(input:checked){border-color:var(--fc-primario);
    box-shadow:0 0 0 2px rgba(var(--fc-primario-rgb),.18);}
/* El foco del teclado tiene que verse aunque el radio quede chico. */
.plan-duracion:focus-within{outline:2px solid var(--fc-primario);outline-offset:2px;}

.plan-duracion__titulo{font-size:14px;color:#1f2937;}
.plan-duracion__precio{font-size:15px;font-weight:700;color:var(--fc-acento-oscuro);
    justify-self:end;}
/* El ahorro ocupa la segunda linea completa: es el argumento de venta y no
   debe competir por ancho con el precio. */
.plan-duracion__ahorro{grid-column:2 / -1;justify-self:start;font-size:12px;
    font-weight:600;color:#047857;background:#ecfdf5;border-radius:6px;
    padding:2px 8px;}

/* ---------------------------------------------------------------------------
   Modal de cambio de rol (#showModalChange, en partials/nav.html)
   Traducido de _mockups/cambiarrol.html. La ilustracion es CSS e iconos: no
   hay imagenes nuevas.
   --------------------------------------------------------------------------- */
.rol-modal__contenido{border:0;border-radius:20px;}
.rol-modal__cabecera{align-items:flex-start;gap:14px;border-bottom:0;padding:24px 24px 6px;}
.rol-modal__icono{display:inline-flex;align-items:center;justify-content:center;flex:none;
    width:46px;height:46px;border-radius:14px;background:rgba(var(--fc-primario-rgb),.12);
    color:var(--fc-primario);font-size:22px;}
.rol-modal__titulo{margin:0;font-size:22px;font-weight:800;color:var(--fc-oscuro);}
.rol-modal__bajada{margin:2px 0 0;font-size:13.5px;color:var(--fc-texto-suave);}
.rol-modal__actual{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px;padding:5px 12px;
    border-radius:999px;background:var(--fc-fondo-suave);font-size:12.5px;color:var(--fc-texto);}
.rol-modal__actual i{color:#0f9d6a;}
.rol-modal__etiqueta{display:block;float:none;width:auto;margin-bottom:8px;font-size:13px;
    font-weight:700;color:var(--fc-texto);}
/* Una tarjeta por rol: el icono es lo que el mockup pedia y un <option> no
   puede mostrar. El radio sigue siendo el que manda el valor. */
.rol-modal__opciones{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;border:0;}
.rol-modal__opcion{display:flex;align-items:center;gap:12px;padding:13px 14px;
    border:1.5px solid var(--fc-borde);border-radius:14px;cursor:pointer;
    transition:border-color .15s ease,background-color .15s ease;}
.rol-modal__opcion:hover{border-color:rgba(var(--fc-primario-rgb),.45);}
.rol-modal__opcion:has(input:checked){border-color:var(--fc-primario);
    background:rgba(var(--fc-primario-rgb),.06);}
.rol-modal__opcion:has(input:focus-visible){outline:2px solid var(--fc-primario);
    outline-offset:2px;}
.rol-modal__opcion:has(input:disabled){opacity:.55;cursor:not-allowed;}
.rol-modal__opcion-icono{flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:12px;background:var(--fc-fondo-suave);
    color:var(--fc-primario);font-size:19px;}
.rol-modal__opcion-texto{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1;}
.rol-modal__opcion-texto strong{font-size:14px;color:var(--fc-texto);}
.rol-modal__opcion-texto span{font-size:12.5px;color:var(--fc-texto-suave);}
.rol-modal__opcion-actual{margin-top:3px;font-size:11.5px;font-weight:700;
    color:var(--fc-primario);}
.rol-modal__opcion input{flex:none;width:18px;height:18px;margin:0;
    accent-color:var(--fc-primario);}

/* Dos fichas y dos flechas: el intercambio de rol, sin ilustracion externa. */
.rol-modal__ilustracion{position:relative;display:grid;grid-template-columns:1fr 1fr;
    align-items:center;gap:10px;margin-bottom:14px;padding:22px 18px;border-radius:16px;
    background:linear-gradient(135deg,rgba(var(--fc-primario-rgb),.10) 0%,
        rgba(var(--fc-acento-rgb),.10) 100%);}
.rol-modal__ficha{display:inline-flex;align-items:center;justify-content:center;
    width:52px;height:52px;border-radius:14px;background:#fff;font-size:24px;
    box-shadow:0 8px 20px -10px rgba(15,23,42,.35);}
.rol-modal__ficha--azul{color:var(--fc-primario);justify-self:start;}
.rol-modal__ficha--naranja{color:var(--fc-acento-oscuro);justify-self:end;}
.rol-modal__flecha{position:absolute;font-size:20px;}
.rol-modal__flecha--ida{top:24px;left:50%;transform:translateX(-50%);color:var(--fc-primario);}
.rol-modal__flecha--vuelta{bottom:24px;left:50%;transform:translateX(-50%);
    color:var(--fc-acento-oscuro);}
.rol-modal__aviso{display:flex;align-items:flex-start;gap:9px;margin:0 0 10px;padding:12px 14px;
    border-radius:12px;font-size:12.5px;line-height:1.45;}
.rol-modal__aviso i{flex:none;font-size:15px;margin-top:1px;}
.rol-modal__aviso--info{background:rgba(var(--fc-primario-rgb),.08);color:var(--fc-texto);}
.rol-modal__aviso--info i{color:var(--fc-primario);}
/* El aviso que de verdad importa: cambiar de rol revoca la validacion. */
.rol-modal__aviso--ojo{background:rgba(var(--fc-gold-rgb),.12);color:#7a5200;}
.rol-modal__aviso--ojo i{color:var(--fc-gold);}
.rol-modal__pie{border-top:0;padding:6px 24px 22px;}

@media (max-width: 575.98px){
    .rol-modal__cabecera{padding:20px 18px 4px;}
    .rol-modal__ilustracion{padding:18px 14px;}
    .rol-modal__pie{padding:6px 18px 18px;}
    .rol-modal__pie .fc-boton{flex:1;justify-content:center;}
}

/* Aviso de los modales de servicio: es lo que separa "lo que ofrezco" de
   "lo que hice". */
.servicio-aviso{display:flex;align-items:flex-start;gap:8px;margin:14px 0 0;padding:10px 14px;
    border-radius:12px;background:rgba(var(--fc-primario-rgb),.08);font-size:12.5px;
    line-height:1.45;color:var(--fc-texto);}
.servicio-aviso i{flex:none;margin-top:1px;color:var(--fc-primario);font-size:15px;}

.plan-subtitulo{font-size:13px;color:var(--fc-texto-suave);}
/* El beneficio se lee corto; la explicacion completa se pide aqui. */
.plan-mas{margin-left:4px;padding:0;border:0;background:none;line-height:1;
    color:#94a3b8;font-size:15px;vertical-align:middle;cursor:pointer;}
.plan-mas:hover,.plan-mas:focus-visible{color:var(--fc-primario);}
.plan-estado{display:flex;align-items:center;gap:6px;margin:14px 0 0;padding:8px 12px;
    border-radius:10px;font-size:13px;font-weight:600;}
.plan-estado--vigente{background:rgba(16,185,129,.12);color:#0f7a57;}
.plan-estado--bloqueado{background:var(--fc-fondo-suave);color:var(--fc-texto-suave);
    font-weight:500;}
.plan-estado--retomado{background:rgba(var(--fc-primario-rgb),.10);color:var(--fc-primario);}

/* ---------------------------------------------------------------------------
   Planes de membresia (/membership/)
   Disposicion tomada de _mockups/planes.html. El selector de duracion, el
   formulario de compra y el modal de detalle son los de siempre: aqui solo
   cambia como se ven.
   --------------------------------------------------------------------------- */
.planes{position:relative;overflow:hidden;padding-bottom:56px;}
.planes__brillo{position:absolute;z-index:0;pointer-events:none;border-radius:50%;}
.planes__brillo--izq{width:520px;height:520px;left:-180px;top:40px;
    background:radial-gradient(circle,rgba(var(--fc-primario-rgb),.10) 0%,rgba(248,250,253,0) 70%);}
.planes__brillo--der{width:620px;height:620px;right:-200px;top:0;
    background:radial-gradient(circle,rgba(var(--fc-primario-rgb),.12) 0%,rgba(248,250,253,0) 70%);}
.planes > section{position:relative;z-index:1;}

.planes-hero{padding:40px 0 24px;}
.planes-hero__titulo{margin:0 0 12px;font-size:var(--fc-titulo-hero-pagina,clamp(28px,2.45vw,38px));font-weight:800;
    letter-spacing:-.02em;color:var(--fc-oscuro);}
.planes-hero__bajada{max-width:34em;font-size:16px;line-height:1.5;color:var(--fc-texto-suave);}
.planes-hero__sellos{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0;padding:0;list-style:none;}
.planes-hero__sellos li{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;
    border:1px solid var(--fc-borde);border-radius:999px;background:#fff;
    font-size:13px;font-weight:600;color:var(--fc-texto);}
.planes-hero__sellos i{color:var(--fc-primario);font-size:15px;}

/* El panel reemplaza la foto de stock del mockup. */
.planes-hero__panel{position:relative;min-height:260px;border-radius:24px;
    background:linear-gradient(135deg,rgba(var(--fc-primario-rgb),.16) 0%,
        rgba(var(--fc-acento-rgb),.12) 55%,rgba(var(--fc-gold-rgb),.14) 100%);}
.planes-hero__flotante{position:absolute;margin:0;padding:12px 16px;border-radius:14px;
    background:#fff;box-shadow:0 10px 30px -10px rgba(15,23,42,.25);font-size:13px;
    font-weight:600;color:var(--fc-texto);}
.planes-hero__flotante--arriba{display:flex;align-items:center;gap:10px;top:18px;left:-10px;
    max-width:70%;}
.planes-hero__flotante-icono{display:inline-flex;align-items:center;justify-content:center;
    flex:none;width:34px;height:34px;border-radius:50%;
    background:rgba(var(--fc-primario-rgb),.12);color:var(--fc-primario);font-size:17px;}
.planes-hero__flotante--abajo{right:-6px;bottom:26px;display:flex;flex-direction:column;gap:6px;
    list-style:none;}
.planes-hero__flotante--abajo i{margin-right:6px;color:#0f9d6a;}
.planes-hero__manuscrita{position:absolute;left:24px;bottom:18px;font-size:26px;
    color:var(--fc-acento-oscuro);transform:rotate(-4deg);}

.planes-tarjetas{padding-bottom:40px;}
.planes-card{position:relative;height:100%;display:flex;flex-direction:column;
    padding:26px 24px 22px;border:1px solid var(--fc-borde);border-radius:20px;background:#fff;
    box-shadow:0 12px 32px -18px rgba(15,23,42,.25);}
.planes-card--gold{border-color:var(--fc-gold);
    background:linear-gradient(180deg,#fffbeb 0%,var(--fc-gold-claro) 42%,#fffdf5 100%);
    box-shadow:0 12px 32px -6px rgba(var(--fc-gold-rgb),.20);}
.planes-card__cinta{position:absolute;top:-13px;left:50%;transform:translateX(-50%);
    padding:5px 16px;border-radius:999px;background:var(--fc-acento-oscuro);color:#fff;
    font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
    white-space:nowrap;}
.planes-card__cabecera{display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin-bottom:14px;}
.planes-card__icono{display:inline-flex;align-items:center;justify-content:center;
    width:46px;height:46px;border-radius:14px;background:rgba(var(--fc-primario-rgb),.10);
    color:var(--fc-primario);font-size:22px;}
.planes-card--gold .planes-card__icono{background:rgba(var(--fc-gold-rgb),.18);color:#a16207;}
.planes-card__chip{padding:4px 12px;border-radius:999px;background:rgba(var(--fc-primario-rgb),.10);
    color:var(--fc-primario);font-size:11.5px;font-weight:700;}
.planes-card--gold .planes-card__chip{background:rgba(var(--fc-gold-rgb),.20);color:#a16207;}
.planes-card__nombre{margin:0;font-size:22px;font-weight:800;color:var(--fc-oscuro);}
.planes-card__subtitulo{margin:2px 0 0;font-size:13px;color:var(--fc-texto-suave);}
.planes-card__precio{margin:14px 0 6px;font-size:36px;font-weight:800;line-height:1;
    color:var(--fc-oscuro);}
.planes-card__precio small{margin-left:4px;font-size:13px;font-weight:600;color:var(--fc-texto-suave);}
.planes-card__descripcion{margin:0;font-size:13.5px;line-height:1.5;color:var(--fc-texto-suave);}
.planes-card__linea{margin:18px 0;border-top:1px solid rgba(15,23,42,.10);opacity:1;}
.planes-card__beneficios{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px;}
.planes-card__beneficios li{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;
    line-height:1.4;color:var(--fc-texto);}
.planes-card__marca{flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:20px;height:20px;margin-top:1px;border-radius:50%;font-size:13px;}
.planes-card__marca--si{background:rgba(var(--fc-primario-rgb),.12);color:var(--fc-primario);}
.planes-card--gold .planes-card__marca--si{background:rgba(var(--fc-acento-rgb),.16);
    color:var(--fc-acento-oscuro);}
.planes-card__marca--no{background:rgba(220,38,38,.10);color:#b91c1c;}
.planes-card__beneficio{flex:1;}
/* margin-top:auto empuja el selector al pie para que las dos tarjetas
   terminen igual; el padding es el aire minimo con el ultimo beneficio. */
.planes-card .plan-duraciones{margin-top:auto;padding-top:18px;}
.planes-card__comprar{display:block;width:100%;margin-top:18px;padding:.75rem 1rem;border:0;
    border-radius:12px;background:var(--fc-acento-oscuro);color:#fff;font-size:15px;font-weight:700;
    cursor:pointer;transition:background-color .15s ease,color .15s ease;}
.planes-card__comprar:hover:not(:disabled){background:var(--fc-acento-hover);}
.planes-card__comprar:disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed;}
.planes-card__comprar--contorno{background:#fff;border:1px solid var(--fc-acento-oscuro);
    color:var(--fc-acento-oscuro);}
.planes-card__comprar--contorno:hover:not(:disabled){background:rgba(var(--fc-acento-rgb),.08);
    color:var(--fc-acento-oscuro);}
.planes-card__comprar--contorno:disabled{border-color:#e2e8f0;}
.planes__vacio{text-align:center;color:var(--fc-texto-suave);}

.planes-valores{padding:8px 0 48px;}
.planes-valor{display:flex;align-items:flex-start;gap:14px;height:100%;padding:18px 20px;
    border:1px solid var(--fc-borde);border-radius:16px;background:#fff;
    box-shadow:0 6px 20px -14px rgba(15,23,42,.3);}
.planes-valor__icono{flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:42px;height:42px;border-radius:12px;background:rgba(var(--fc-primario-rgb),.10);
    color:var(--fc-primario);font-size:20px;}
.planes-valor h3{margin:0 0 4px;font-size:14.5px;font-weight:700;color:var(--fc-oscuro);}
.planes-valor p{margin:0;font-size:13px;line-height:1.45;color:var(--fc-texto-suave);}

.planes-faq{padding-bottom:48px;}
.planes-faq__encabezado{margin-bottom:22px;text-align:center;}
.planes-faq__encabezado h2{margin:0 0 6px;font-size:clamp(22px,2.4vw,28px);font-weight:800;
    color:var(--fc-oscuro);}
.planes-faq__encabezado p{margin:0;font-size:14px;color:var(--fc-texto-suave);}
.planes-faq__lista{max-width:760px;margin:0 auto;}
.planes-faq__lista .accordion-item{margin-bottom:10px;border:1px solid var(--fc-borde);
    border-radius:14px;overflow:hidden;}
.planes-faq__lista .accordion-button{font-size:14.5px;font-weight:600;color:var(--fc-texto);
    background:#fff;box-shadow:none;}
.planes-faq__lista .accordion-button:not(.collapsed){color:var(--fc-primario);
    background:rgba(var(--fc-primario-rgb),.06);}
.planes-faq__lista .accordion-body{font-size:13.5px;line-height:1.55;color:var(--fc-texto-suave);}

.planes-cta__banner{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:24px 28px;
    border-radius:20px;background:linear-gradient(120deg,rgba(var(--fc-primario-rgb),.10) 0%,
        rgba(var(--fc-acento-rgb),.10) 100%);}
.planes-cta__icono{display:inline-flex;align-items:center;justify-content:center;flex:none;
    width:52px;height:52px;border-radius:50%;background:#fff;color:var(--fc-acento-oscuro);
    font-size:25px;}
.planes-cta__texto{flex:1;min-width:240px;}
.planes-cta__texto h2{margin:0 0 4px;font-size:19px;font-weight:800;color:var(--fc-oscuro);}
.planes-cta__texto p{margin:0;font-size:14px;color:var(--fc-texto-suave);}
.planes-cta__boton{background:var(--fc-acento-oscuro);color:#fff;}
.planes-cta__boton:hover{background:var(--fc-acento-hover);color:#fff;}

@media (max-width: 991.98px){
    .planes-hero__panel{min-height:220px;margin-top:8px;}
    .planes-hero__flotante--arriba{left:12px;}
    .planes-hero__flotante--abajo{right:12px;}
}
@media (max-width: 575.98px){
    .planes-hero{padding-top:24px;}
    .planes-hero__manuscrita{font-size:22px;left:16px;bottom:12px;}
    .planes-card{padding:22px 18px 18px;}
    .planes-cta__banner{padding:20px;}
    .planes-cta__boton{width:100%;}
}

@media (max-width: 575.98px){
    .plan-duracion{grid-template-columns:auto 1fr;}
    .plan-duracion__precio{justify-self:start;grid-column:2;}
}

/* ---------------------------------------------------------------------------
   Boton "Volver" de las paginas internas.

   Discreto y a la izquierda, encima del contenido: acompana la lectura sin
   competir con el titulo de la pagina ni con el buscador.
   --------------------------------------------------------------------------- */
.boton-volver{display:inline-flex;align-items:center;gap:6px;
    margin-bottom:10px;padding:7px 14px 7px 11px;
    border:1px solid var(--linea-volver,var(--fc-borde));border-radius:999px;
    background:#fff;color:var(--fc-texto-suave);font-size:14px;line-height:1;
    text-decoration:none;transition:border-color .15s ease,color .15s ease;}
.boton-volver:hover{border-color:var(--fc-primario);color:var(--fc-primario-hover);}
.boton-volver:focus-visible{outline:2px solid var(--fc-primario);outline-offset:2px;}
.boton-volver i{font-size:16px;}

@media (max-width: 575.98px){
    .boton-volver{padding:6px 12px 6px 9px;font-size:13px;}
}

/* ---------------------------------------------------------------------------
   Insignia de plan en la tarjeta de un profesional.

   Tres senales, de mayor a menor alcance: el marco de color se reconoce al
   recorrer una grilla, la cinta dice el plan sin que haya que interpretar un
   icono, y el brillo separa Gold de Silver. Quien no paga no lleva ninguna.

   Clases propias y no .star_category: esa, en la ficha de perfil, significa
   "Validado" y reutilizarla habria cambiado lo que dice esa pagina.

   Lo comparten la tarjeta de los listados (busqueda, categoria, subcategoria)
   y la miniatura del carrusel del home.
   --------------------------------------------------------------------------- */
/* Proporcion fija para que la fila alinee. Sin esto cada tarjeta media lo que
   midiera su foto: el avatar por defecto es cuadrado y las fotos cargadas son
   apaisadas, asi que en una misma fila las estrellas y el nombre quedaban a
   distinta altura. Solo la subcategoria tenia tamano fijo (303x185 px), y en
   pixeles no escalaba en movil; ahora lo gobierna esta clase en las tres
   pantallas por igual. */
.perfil__foto{position:relative;display:block;overflow:hidden;margin:0;
    width:100%;aspect-ratio:4/3;}
.perfil__foto img{width:100%;height:100%;display:block;object-fit:cover;}

/* El marco es el fondo del contenedor asomando por el padding. Se dibuja asi,
   y no con 'mask', porque mask recorta la foto en varios navegadores. */
.perfil--gold .perfil__foto{padding:4px;
    background:linear-gradient(135deg,#FFE9A8,#E2B33C);}
.perfil--silver .perfil__foto{padding:4px;
    background:linear-gradient(135deg,#EEF1F5,#C3C9D2);}
.perfil--gold .perfil__foto img,
.perfil--silver .perfil__foto img{border-radius:9px;}

.perfil__plan{position:absolute;left:0;right:0;bottom:0;z-index:1;
    display:flex;align-items:center;justify-content:center;gap:6px;
    padding:5px 8px;font-size:11px;font-weight:700;letter-spacing:.16em;
    line-height:1;}
.perfil__plan i{font-size:14px;}
.perfil--gold .perfil__plan{background:linear-gradient(135deg,#FFE9A8,#E2B33C);
    color:#4A3500;}
.perfil--silver .perfil__plan{background:linear-gradient(135deg,#EEF1F5,#C3C9D2);
    color:#2F3640;}

/* --- Version discreta, para la ficha de perfil individual ------------------
   Ahi se entra a leer, no a reconocer de lejos: marco de 2px en vez de 4,
   etiqueta en linea en vez de cinta a lo ancho, y sin brillo, porque el
   contenedor ya trae su propio borde azul. */
.perfil__foto--compacta{aspect-ratio:auto;z-index:1;}
.perfil__foto--compacta img{height:auto;}
.perfil--gold .perfil__foto--compacta,
.perfil--silver .perfil__foto--compacta{padding:2px;}

.perfil__plan--chip{position:static;width:auto;height:28px;
    border-radius:999px;padding:0 10px;font-size:10px;letter-spacing:.14em;}

/* Gana al brillo por el id, sin recurrir a !important. */
#container_profile.perfil--gold,
#container_profile.perfil--silver{box-shadow:none;}

/* ---------------------------------------------------------------------------
   Ficha de perfil (/access/<slug>/)
   Disposicion tomada de _mockups/perfilprofesional.html. Las clases del plan
   (perfil--gold, perfil--silver, perfil__plan, perfil__foto), la estrella de
   validado y el badge de documentacion son las de antes: aqui solo cambia el
   envoltorio.
   --------------------------------------------------------------------------- */
.perfil-pagina{position:relative;padding:24px 0 56px;}
.perfil-pagina__brillo{position:absolute;z-index:0;pointer-events:none;border-radius:50%;
    width:560px;height:560px;right:-220px;top:-60px;
    background:radial-gradient(circle,rgba(var(--fc-primario-rgb),.10) 0%,rgba(248,250,253,0) 70%);}
.perfil-pagina > *{position:relative;z-index:1;}

.perfil-publico-hero{margin:0 -24px 28px;padding:22px 24px 24px;
    background:linear-gradient(100deg,#f5f8fc,#eaf3ff);}
.perfil-publico-hero__titulo{margin:0;color:var(--fc-oscuro);font-size:38px;line-height:1.12;font-weight:850;letter-spacing:-.04em;}
.perfil-publico-hero__bajada{margin:10px 0 0;color:var(--fc-texto);font-size:17px;line-height:1.45;}

.perfil-miga{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:12.5px;
    color:var(--fc-texto-suave);}
.perfil-miga a{color:var(--fc-texto-suave);text-decoration:none;}
.perfil-miga a:hover{color:var(--fc-primario);text-decoration:underline;}
.perfil-miga span[aria-current]{color:var(--fc-texto);font-weight:600;}
.perfil-miga i{font-size:14px;color:#b6c0cd;}

.perfil-encabezado{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
    gap:12px;margin-bottom:22px;}
.perfil-encabezado__titulo{margin:0;font-size:clamp(26px,3.2vw,36px);font-weight:800;
    letter-spacing:-.02em;color:var(--fc-oscuro);}
.perfil-encabezado__bajada{margin:4px 0 0;font-size:15px;color:var(--fc-texto-suave);}

/* Tarjeta de la izquierda. El id manda sobre la regla vieja de #container_profile
   (borde azul de 2px) sin recurrir a !important. */
#container_profile.perfil-ficha{border:1px solid var(--fc-borde);border-radius:20px;
    padding:20px;background:#fff;box-shadow:0 12px 32px -20px rgba(15,23,42,.35);}
.perfil-ficha{position:sticky;top:90px;}
.perfil-portada{position:relative;display:flex;align-items:center;justify-content:center;height:118px;margin:-20px -20px 14px;
    overflow:hidden;border-radius:19px 19px 0 0;background:#163b82;}
.perfil-portada--vacia{background:linear-gradient(120deg,#091b43,#1d4ed8 58%,#83b7fa);}
.perfil-portada--vacia::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 12%,rgba(255,255,255,.26),transparent 35%);}
.perfil-portada img{width:100%;height:100%;object-fit:cover;}
.perfil-portada__editar{position:absolute;right:12px;bottom:10px;z-index:1;padding:6px 9px;border-radius:9px;background:rgba(15,23,42,.66);
    color:#fff!important;font-size:11.5px;font-weight:700;text-decoration:none!important;backdrop-filter:blur(5px);}
.perfil-portada__editar:hover{background:rgba(15,23,42,.84);}
.perfil-ficha__marcas{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.perfil-ficha__señales{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.perfil-ficha__identidad{display:flex;flex-direction:column;align-items:center;text-align:center;
    margin-top:6px;}
.perfil-ficha__foto{position:relative;width:120px;height:120px;border-radius:50%;}
.perfil-ficha__foto img{border-radius:50%;height:100%;}
.perfil--gold .perfil-ficha__foto img,
.perfil--silver .perfil-ficha__foto img{border-radius:50%;}
.perfil-ficha__nombre{margin:12px 0 4px;font-size:19px;font-weight:800;color:var(--fc-oscuro);}
.perfil-presencia{display:inline-flex;align-items:center;gap:5px;margin:0;color:var(--fc-texto-suave);font-size:12px;font-weight:650;}
.perfil-presencia--en-linea{color:#087a4d;}
/* En línea: solo el punto verde (2026-10-30). El texto sigue en el HTML para los lectores de pantalla. */
.perfil-presencia--en-linea{gap:0;font-size:0;}
.perfil-presencia::before{content:"";width:7px;height:7px;border-radius:50%;background:#94a3b8;}
.perfil-presencia--en-linea::before{background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.14);}
.perfil-presencia__punto{position:absolute;right:4px;bottom:7px;width:17px;height:17px;border:3px solid #fff;border-radius:50%;background:#10b981;box-shadow:0 1px 4px rgba(15,23,42,.25);}
.perfil-presencia__punto--ausente{background:#94a3b8;}
.perfil-ficha__estrellas{display:flex;align-items:center;gap:8px;margin:0 0 4px;}
.perfil-ficha__astros{color:#f5b301;font-size:15px;letter-spacing:1px;}
.perfil-ficha__estrellas small{color:var(--fc-texto-suave);font-size:12.5px;}
.perfil-ficha__desde{margin:2px 0 0;font-size:12.5px;color:var(--fc-texto-suave);}

.perfil-ficha__datos{display:flex;flex-direction:column;gap:9px;margin:16px 0;padding:0;
    list-style:none;}
.perfil-ficha__datos li{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;
    line-height:1.4;color:var(--fc-texto);}
.perfil-ficha__datos i{flex:none;margin-top:1px;color:var(--fc-primario);font-size:16px;}

.perfil-ficha__areas{margin:14px 0 0;}
.perfil-ficha__areas h3{margin:0 0 8px;font-size:11.5px;font-weight:800;letter-spacing:.1em;
    text-transform:uppercase;color:var(--fc-texto-suave);}
.perfil-ficha__areas > div{display:flex;flex-wrap:wrap;gap:6px;}

/* Dos datos reales: contratos terminados y trabajos publicados. */
.perfil-ficha__cifras{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0;}
.perfil-cifra{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:12px;
    background:var(--fc-fondo-suave);}
.perfil-cifra__icono{display:inline-flex;align-items:center;justify-content:center;flex:none;
    width:32px;height:32px;border-radius:10px;background:#fff;color:var(--fc-primario);
    font-size:16px;}
.perfil-cifra__texto{display:flex;flex-direction:column;min-width:0;}
.perfil-cifra__texto strong{font-size:16px;font-weight:800;line-height:1.1;color:var(--fc-oscuro);}
.perfil-cifra__texto small{font-size:11px;color:var(--fc-texto-suave);}

.perfil-ficha__acciones{display:flex;flex-direction:column;gap:8px;margin-top:16px;}
.perfil-ficha__acciones .fc-boton{width:100%;}

/* Bloques de la derecha */
.perfil-bloque{margin-bottom:20px;padding:22px 24px;border:1px solid var(--fc-borde);
    border-radius:20px;background:#fff;box-shadow:0 12px 32px -22px rgba(15,23,42,.35);}
.perfil-bloque__cabecera{display:flex;align-items:center;gap:12px;margin-bottom:14px;
    padding-bottom:14px;border-bottom:1px solid #f1f5f9;}
.perfil-bloque__icono{display:inline-flex;align-items:center;justify-content:center;flex:none;
    width:38px;height:38px;border-radius:12px;background:rgba(var(--fc-primario-rgb),.10);
    color:var(--fc-primario);font-size:18px;}
.perfil-bloque__cabecera h2{margin:0;font-size:19px;font-weight:800;color:var(--fc-oscuro);}
.perfil-bloque__meta{margin:0 0 0 auto;display:flex;align-items:center;gap:6px;font-size:12.5px;
    color:var(--fc-texto-suave);}
.perfil-bloque__texto{margin:0;font-size:14.5px;line-height:1.65;color:var(--fc-texto);
    overflow-wrap:anywhere;word-break:break-word;}
.perfil-bloque__vacio{margin:0;font-size:13.5px;color:var(--fc-texto-suave);}

/* Servicios: lo que la persona ofrece. Sin flecha a la derecha, porque no
   lleva a ninguna parte; el mockup la dibujaba sin destino. */
.perfil-servicios{margin:0;padding:0;list-style:none;}
.perfil-servicio{display:flex;align-items:flex-start;gap:12px;padding:14px 0;
    border-bottom:1px solid #f1f5f9;}
.perfil-servicio:last-child{border-bottom:0;}
/* El color sale de --cat-color, que definen las clases fc-icono-cat--*: asi el
   icono del servicio combina con el de su categoria en el catalogo. */
.perfil-servicio__icono{flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:12px;font-size:18px;
    background:var(--fc-fondo-suave);color:var(--cat-color,var(--fc-primario));}
.perfil-servicio__texto{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.perfil-servicio__texto strong{font-size:14.5px;color:var(--fc-oscuro);}
.perfil-servicio__texto span{font-size:13px;line-height:1.45;color:var(--fc-texto-suave);
    overflow-wrap:anywhere;}
.perfil-servicio__botones{display:flex;gap:8px;flex:none;}
.perfil-bloque__accion{margin-top:14px;}
.perfil-ficha__especialidad{display:block;font-size:12px;line-height:1.35;
    color:var(--fc-texto);}
.perfil-ficha__madre{display:block;margin-top:2px;font-size:11.5px;color:var(--fc-texto-suave);}
.perfil-ficha__datos a{color:var(--fc-primario);text-decoration:none;}
.perfil-ficha__datos a:hover{text-decoration:underline;}

.perfil-trabajo{padding:16px 0;border-bottom:1px solid #f1f5f9;}
.perfil-trabajo:last-child{border-bottom:0;padding-bottom:0;}
.perfil-trabajo__cabecera{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.perfil-trabajo__cabecera h3{margin:0;font-size:15px;font-weight:800;color:var(--fc-oscuro);}
.perfil-trabajo__fecha{margin:2px 0 0;font-size:12px;color:var(--fc-texto-suave);}
.perfil-trabajo__botones{display:flex;gap:8px;}
.perfil-trabajo__texto{margin:8px 0 0;font-size:13.5px;line-height:1.55;color:var(--fc-texto-suave);
    overflow-wrap:anywhere;}
.perfil-trabajo__pie{display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin-top:10px;}
.perfil-trabajo__precio{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;
    border-radius:999px;background:rgba(var(--fc-acento-rgb),.10);color:var(--fc-acento-oscuro);
    font-size:12.5px;font-weight:700;}
.perfil-trabajo .arrow_images{display:inline-flex;align-items:center;justify-content:center;
    width:30px;height:30px;border-radius:50%;background:var(--fc-fondo-suave);
    color:var(--fc-texto-suave);cursor:pointer;}
.perfil-trabajo .arrow_images:hover{background:rgba(var(--fc-primario-rgb),.10);
    color:var(--fc-primario);}

@media (max-width: 991.98px){
    .perfil-ficha{position:static;}
    .perfil-publico-hero{margin-left:-12px;margin-right:-12px;}
}
@media (max-width: 575.98px){
    .perfil-pagina{padding-top:16px;}
    .perfil-publico-hero{margin-bottom:22px;padding:18px 16px;}
    .perfil-publico-hero__titulo{font-size:31px;}
    .perfil-bloque{padding:18px;}
    .perfil-ficha__cifras{grid-template-columns:1fr;}
    /* Sin esto el titulo se parte en dos lineas para dejarle sitio al dato
       de al lado. */
    .perfil-bloque__cabecera{flex-wrap:wrap;}
    .perfil-bloque__meta{width:100%;margin:2px 0 0;}
}

/* El brillo se repite en hover porque .slide-card lo redefine ahi con mayor
   especificidad; sin esta linea Gold perderia el brillo al pasar el mouse. */
.perfil--gold,
.perfil--gold:is(:hover,:focus-visible){
    box-shadow:0 0 0 1px rgba(226,179,60,.55),0 8px 26px rgba(226,179,60,.35);}
.perfil--silver,
.perfil--silver:is(:hover,:focus-visible){
    box-shadow:0 0 0 1px rgba(195,201,210,.85),0 4px 14px rgba(30,34,51,.12);}

/* ---------------------------------------------------------------------------
   Componentes de Bootstrap.

   Bootstrap 5.3 escribe su azul por defecto directo en botones,
   paginacion, foco de formularios y checkboxes, sin pasar por --bs-primary.
   Sin estas reglas quedarian en un tercer azul distinto al de la marca.
   --------------------------------------------------------------------------- */
.btn-primary{--bs-btn-bg:var(--fc-primario);--bs-btn-border-color:var(--fc-primario);
    --bs-btn-hover-bg:var(--fc-primario-hover);--bs-btn-hover-border-color:var(--fc-primario-hover);
    --bs-btn-active-bg:var(--fc-primario-hover);--bs-btn-active-border-color:var(--fc-primario-hover);
    --bs-btn-disabled-bg:var(--fc-primario);--bs-btn-disabled-border-color:var(--fc-primario);
    --bs-btn-focus-shadow-rgb:var(--fc-primario-rgb);}
.btn-outline-primary{--bs-btn-color:var(--fc-primario);--bs-btn-border-color:var(--fc-primario);
    --bs-btn-hover-bg:var(--fc-primario);--bs-btn-hover-border-color:var(--fc-primario);
    --bs-btn-active-bg:var(--fc-primario-hover);--bs-btn-active-border-color:var(--fc-primario-hover);
    --bs-btn-disabled-color:var(--fc-primario);--bs-btn-disabled-border-color:var(--fc-primario);
    --bs-btn-focus-shadow-rgb:var(--fc-primario-rgb);}
.pagination{--bs-pagination-color:var(--fc-primario);--bs-pagination-hover-color:var(--fc-primario-hover);
    --bs-pagination-focus-color:var(--fc-primario-hover);
    --bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(var(--fc-primario-rgb),.25);
    --bs-pagination-active-bg:var(--fc-primario);--bs-pagination-active-border-color:var(--fc-primario);}
.dropdown-menu{--bs-dropdown-link-active-bg:var(--fc-primario);}
.form-control:focus,.form-select:focus,.form-check-input:focus{
    border-color:rgba(var(--fc-primario-rgb),.5);
    box-shadow:0 0 0 .25rem rgba(var(--fc-primario-rgb),.25);}
.form-check-input:checked{background-color:var(--fc-primario);border-color:var(--fc-primario);}

/* ---------------------------------------------------------------------------
   Botones compartidos. El logo de texto vive en css/marca.css (2026-10-08).
   --------------------------------------------------------------------------- */
.fc-boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:.55rem 1.25rem;border:1px solid transparent;border-radius:10px;
    font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;
    transition:background-color .15s ease,border-color .15s ease,color .15s ease;}
.fc-boton:focus-visible{outline:2px solid var(--fc-primario);outline-offset:2px;}
.fc-boton--primario{background:var(--fc-primario);color:#fff;
    box-shadow:0 1px 2px rgba(var(--fc-primario-rgb),.25);}
.fc-boton--primario:hover{background:var(--fc-primario-hover);color:#fff;}
.fc-boton--contorno{background:#fff;color:var(--fc-primario);
    border-color:rgba(var(--fc-primario-rgb),.35);}
.fc-boton--contorno:hover{background:rgba(var(--fc-primario-rgb),.06);
    border-color:var(--fc-primario);color:var(--fc-primario-hover);}
.fc-boton--pildora{background:#fff;color:var(--fc-primario);border-radius:999px;
    border-color:rgba(var(--fc-primario-rgb),.35);padding:.65rem 1.5rem;}
.fc-boton--pildora:hover{background:rgba(var(--fc-primario-rgb),.06);color:var(--fc-primario-hover);}
.fc-boton--grande{padding:.8rem 1.5rem;border-radius:12px;font-size:15px;font-weight:700;}

/* Etiqueta en mayusculas sobre los titulos, y frase manuscrita de acento. */
.fc-kicker{margin-bottom:12px;font-size:12px;font-weight:700;letter-spacing:.25em;
    text-transform:uppercase;color:var(--fc-primario);}
.fc-kicker--suave{color:var(--fc-texto-suave);}
.fc-kicker--lineas{display:inline-flex;align-items:center;gap:10px;}
.fc-kicker--lineas::before,.fc-kicker--lineas::after{content:"";width:24px;height:2px;
    border-radius:999px;background:var(--fc-primario);}

.fc-manuscrita{margin:0;font-family:var(--fc-fuente-manuscrita);font-weight:700;
    line-height:1.05;color:var(--fc-texto);}

/* Icono de categoria (portada y catalogo). Icono y color salen del slug en
   apps/home/templatetags/categorias_home.py; cada color cumple 3:1 con el
   icono blanco. La posicion la pone cada pagina. */
.fc-icono-cat{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
    border:2px solid #fff;border-radius:12px;background:var(--cat-color,var(--fc-primario));
    color:#fff;font-size:18px;box-shadow:0 4px 10px rgba(15,23,42,.18);}
.fc-icono-cat--primario{--cat-color:var(--fc-primario);}
.fc-icono-cat--naranjo{--cat-color:var(--fc-acento-oscuro);}
.fc-icono-cat--ambar{--cat-color:#b45309;}
.fc-icono-cat--pizarra{--cat-color:#475569;}
.fc-icono-cat--rosa{--cat-color:#be185d;}
.fc-icono-cat--indigo{--cat-color:#4f46e5;}
.fc-icono-cat--verde-azulado{--cat-color:#0f766e;}
.fc-icono-cat--rojo{--cat-color:#dc2626;}
.fc-icono-cat--cafe{--cat-color:#92400e;}
.fc-icono-cat--piedra{--cat-color:#57534e;}
.fc-icono-cat--morado{--cat-color:#7e22ce;}

/* ---------------------------------------------------------------------------
   Cabecera del sitio: sus reglas viven en css/marca.css (2026-10-08), que
   cargan partials/base.html y el inicio, para que la cabecera sea una sola.
   --------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
   Footer del sitio: sus reglas viven en css/footer.css (2026-10-08), que
   cargan partials/base.html y el inicio, para que el footer sea uno solo.
   --------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
   Portada (home).

   Disposicion tomada de _mockups/portada.html. Todo va con clases home-* para
   no alcanzar a las otras paginas que comparten #category, .section_home o el
   buscador.
   --------------------------------------------------------------------------- */
.home-section{padding:64px 0;}
.home-section--suave{background:var(--fc-fondo-suave);}

/* --- Banner --------------------------------------------------------------- */
.home-hero{padding:clamp(12px,2vw,28px) 0 0;overflow:hidden;}
.home-hero__banner{max-width:1600px;margin:0 auto;}
.home-hero__imagen{display:block;width:100%;height:auto;}
.home-hero__busqueda{padding:clamp(20px,3vw,40px) 0 clamp(40px,5vw,70px);}

/* El buscador es el mismo partial de busqueda y categorias, y no se toca: el
   diseno del home sale solo de aca. Los selectores cuelgan de
   .home-hero__buscador para no alcanzar esas otras pantallas, y de los hijos
   directos (>) para que el panel de filtros avanzados conserve su aspecto.

   La capsula blanca es un pseudo-elemento que la grilla ubica en la primera
   fila, detras de region, servicio y Buscar. Asi "Filtros avanzados" queda
   debajo y fuera de ella sin mover el <details> de lugar en el HTML. Cada
   hijo lleva fila y columna explicitas: con la capsula ocupando la fila 1,
   la ubicacion automatica los empujaria a la fila siguiente. */
.home-hero__buscador{max-width:42rem;margin:0 auto;}
.home-hero__buscador .search-filters{position:relative;isolation:isolate;width:100%;display:grid;
    grid-template-columns:minmax(11.5rem,1fr) minmax(0,1fr) auto;
    align-items:center;column-gap:6px;row-gap:12px;}
.home-hero__buscador .search-filters::before{content:"";grid-row:1;grid-column:1 / -1;
    align-self:stretch;z-index:-1;background:#fff;border:1px solid rgba(226,232,240,.9);
    border-radius:16px;box-shadow:0 10px 30px -5px rgba(15,23,42,.08);}
.home-hero__buscador .search-filters > .search-filters__field:not([data-autocomplete]){
    grid-row:1;grid-column:1;margin:8px 0 8px 8px;}
.home-hero__buscador .search-filters > .search-filters__field[data-autocomplete]{
    grid-row:1;grid-column:2;border-left:1px solid #f1f5f9;padding-left:6px;}
.home-hero__buscador .search-filters > .btn_search{grid-row:1;grid-column:3;}
.home-hero__buscador .search-filters > .search-filters__avanzados{grid-row:2;grid-column:1 / -1;
    margin-top:0;padding:0 4px;}

.home-hero__buscador .search-filters > .search-filters__field .form-select,
.home-hero__buscador .search-filters > .search-filters__field .form-control{
    height:auto;margin:0;padding:.7rem .9rem .7rem 2.5rem;border:0;border-radius:10px;
    box-shadow:none;background-color:transparent;font-size:14px;}
/* Iconos de ubicacion y lupa dentro de los campos, como en el mockup. En el
   select conviven con la flecha de Bootstrap: van como segundo fondo. */
.home-hero__buscador .search-filters > .search-filters__field .form-select{
    padding-right:2.25rem;
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M17.657 16.657 13.414 20.9a2 2 0 0 1-2.827 0l-4.244-4.243a8 8 0 1 1 11.314 0z'/%3e%3ccircle cx='12' cy='11' r='3'/%3e%3c/svg%3e"),var(--bs-form-select-bg-img);
    background-repeat:no-repeat;background-position:left .85rem center,right .75rem center;
    background-size:16px 16px,16px 12px;}
.home-hero__buscador .search-filters > .search-filters__field .form-control{
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3ccircle cx='11' cy='11' r='7'/%3e%3cpath d='m21 21-5-5'/%3e%3c/svg%3e");
    background-repeat:no-repeat;background-position:left .85rem center;background-size:16px 16px;}
.home-hero__buscador .search-filters > .search-filters__field .form-select:focus,
.home-hero__buscador .search-filters > .search-filters__field .form-control:focus{
    background-color:rgba(var(--fc-primario-rgb),.05);
    box-shadow:0 0 0 2px rgba(var(--fc-primario-rgb),.35);}
.home-hero__buscador .btn_search{margin:8px 8px 8px 0;padding:.75rem 1.5rem;border-radius:12px;
    background:var(--fc-acento-oscuro);box-shadow:none;color:#fff;font-size:14px;font-weight:700;}
.home-hero__buscador .btn_search.hvr-sweep-to-right:before{border-radius:12px;}
.home-hero__buscador .btn_search:focus-visible{outline:2px solid var(--fc-texto);outline-offset:2px;}

@media (max-width: 575.98px){
    /* En celular la capsula apila region, servicio y Buscar en tres filas. */
    .home-hero__buscador .search-filters{grid-template-columns:1fr;row-gap:0;}
    .home-hero__buscador .search-filters::before{grid-row:1 / 4;}
    .home-hero__buscador .search-filters > .search-filters__field:not([data-autocomplete]){
        grid-row:1;margin:8px 8px 0;}
    .home-hero__buscador .search-filters > .search-filters__field[data-autocomplete]{
        grid-row:2;grid-column:1;margin:0 8px;padding:6px 0 0;border-left:0;border-top:1px solid #f1f5f9;}
    .home-hero__buscador .search-filters > .btn_search{grid-row:3;grid-column:1;margin:6px 8px 8px;}
    .home-hero__buscador .search-filters > .search-filters__avanzados{grid-row:4;margin-top:12px;}
}

/* --- Categorias ----------------------------------------------------------- */
.home-encabezado{margin-bottom:48px;text-align:center;}
.home-encabezado__titulo{margin:0;font-size:clamp(26px,2.6vw,32px);font-weight:800;
    letter-spacing:-.02em;color:#0f172a;}

.home-cat{position:relative;display:flex;flex-direction:column;height:100%;
    background:#fff;border:1px solid var(--fc-borde);border-radius:16px;color:var(--fc-texto);
    box-shadow:0 1px 2px rgba(15,23,42,.05);transition:box-shadow .25s ease;}
.home-cat:is(:hover,:focus-visible){color:var(--fc-texto);box-shadow:0 8px 20px -4px rgba(15,23,42,.14);}
.home-cat:focus-visible{outline:2px solid var(--fc-primario);outline-offset:3px;}
.home-cat__foto{display:block;height:176px;overflow:hidden;border-radius:15px 15px 0 0;background:#eef1f6;}
.home-cat__foto img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .3s ease;}
.home-cat:hover .home-cat__foto img{transform:scale(1.05);}
/* El icono monta sobre el borde de la foto, como en el mockup. Su aspecto
   vive en .fc-icono-cat (compartido con el catalogo); aca solo la posicion. */
.home-cat__icono{position:absolute;top:158px;left:16px;z-index:1;}
.home-cat__titulo{padding:28px 16px 18px;font-size:14px;font-weight:700;line-height:1.35;}

/* --- Nosotros ------------------------------------------------------------- */
.home-nosotros{padding:clamp(28px,5vw,64px);border:1px solid rgba(var(--fc-primario-rgb),.12);
    border-radius:36px;
    background:linear-gradient(90deg,rgba(var(--fc-primario-rgb),.08),rgba(var(--fc-primario-rgb),.04) 50%,var(--fc-fondo-suave));}
.home-nosotros__titulo{margin-bottom:16px;font-size:clamp(28px,3vw,40px);font-weight:900;
    letter-spacing:-.025em;color:#0f172a;}
.home-nosotros__texto{max-width:36rem;margin-bottom:32px;font-size:16px;line-height:1.65;color:#475569;}
.home-nosotros__botones{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:32px;}
.home-nosotros__beneficios{display:flex;flex-wrap:wrap;gap:12px 28px;}
.home-nosotros__beneficios li{display:flex;align-items:center;gap:8px;font-size:13px;
    font-weight:600;color:#334155;}
.home-nosotros__beneficios i{font-size:20px;color:var(--fc-primario);}

.home-nosotros__visual{position:relative;max-width:440px;margin:16px auto 0;}
/* Con video, ocupa toda su columna (7 de 12): el cliente lo pidio mas grande. */
.home-nosotros__visual--video{max-width:none;margin-top:0;}
.home-nosotros__media{overflow:hidden;border-radius:32px;background:#e2e8f0;
    box-shadow:0 20px 40px -12px rgba(15,23,42,.28);}
.home-nosotros__media img{display:block;width:100%;height:auto;}
.home-etiqueta{position:absolute;top:-18px;left:16px;z-index:2;display:flex;align-items:center;
    gap:12px;padding:10px 16px;background:#fff;border:1px solid #f1f5f9;border-radius:16px;
    box-shadow:0 10px 24px -6px rgba(15,23,42,.18);font-size:11px;font-weight:700;
    line-height:1.3;color:var(--fc-texto);}
.home-etiqueta i{font-size:20px;color:var(--fc-acento);}
/* Debajo del cuadro y no encima: sobre el video taparia sus controles. */
.home-nosotros__manuscrita{margin:16px 6px 0 auto;width:max-content;max-width:100%;
    text-align:right;font-size:clamp(19px,1.8vw,22px);color:#334155;transform:rotate(-6deg);}

@media (max-width: 575.98px){
    .home-section{padding:48px 0;}
    .home-nosotros{border-radius:24px;}
    .home-nosotros__media{border-radius:20px;}
}

@media (prefers-reduced-motion: reduce){
    .home-cat,.home-cat__foto img{transition:none;}
    .home-cat:hover .home-cat__foto img{transform:none;}
}

/* --- Portada: composicion principal --------------------------------------
   Las reglas viven despues de la portada base para que el mismo buscador y
   los mismos datos del servidor puedan cambiar de composicion sin afectar las
   pantallas de resultados ni las fichas de categoria. */
.home{background:#fff;}
.home .home-hero__buscador .search-filters{grid-template-columns:minmax(10rem,1.15fr) minmax(10rem,1fr) auto;}
.home .home-hero__buscador .search-filters::before{border-radius:18px;box-shadow:0 18px 30px -18px rgba(15,23,42,.28);}
.home .home-hero__buscador .btn_search{min-width:96px;background:var(--fc-acento);}

.home-profesionales{padding:0 0 clamp(64px,7vw,104px);}
.home-encabezado--fila{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px;}
.home .home-encabezado__titulo{margin:0;color:#0b1325;font-size:clamp(27px,3vw,39px);font-weight:900;letter-spacing:-.04em;}
.home-encabezado__bajada{margin:7px 0 0;color:#71809a;font-size:14px;}
.home-enlace-todo{display:inline-flex;align-items:center;gap:6px;flex:none;color:var(--fc-primario);font-size:14px;font-weight:800;white-space:nowrap;}
.home-enlace-todo:hover{color:#0b54c8;}
.home-profesional{display:block;height:100%;overflow:hidden;border:1px solid #e7edf5;border-radius:17px;background:#fff;box-shadow:0 8px 23px -20px rgba(15,23,42,.42);color:#10203c;transition:transform .2s ease,box-shadow .2s ease;}
.home-profesional:is(:hover,:focus-visible){color:#10203c;transform:translateY(-4px);box-shadow:0 19px 31px -20px rgba(15,23,42,.38);}
.home-profesional:focus-visible{outline:3px solid rgba(var(--fc-primario-rgb),.48);outline-offset:3px;}
.home-profesional__cabecera{display:block;height:84px;overflow:hidden;background:linear-gradient(135deg,#0b2d68,#2c6ae2);}
.home-profesional__cabecera img{width:100%;height:100%;object-fit:cover;}
.home-profesional__cabecera--sin-banner{background:linear-gradient(135deg,#0b2d68,#2c6ae2);}
.home-profesional__cuerpo{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:156px;padding:42px 16px 16px;}
.home-profesional__foto{position:absolute;top:-32px;left:16px;display:grid;width:64px;height:64px;place-items:center;overflow:hidden;border:4px solid #fff;border-radius:50%;background:#dbeafe;box-shadow:0 5px 12px rgba(15,23,42,.12);}
.home-profesional__foto img{width:100%;height:100%;object-fit:cover;}
.home-profesional__cuerpo strong{font-size:16px;line-height:1.25;}
.home-profesional__oficio{min-height:21px;margin-top:4px;color:#52627d;font-size:13px;line-height:1.4;}
.home-profesional__lugar{display:flex;align-items:center;gap:4px;margin-top:5px;color:#6e7f9a;font-size:12px;}
.home-profesional__lugar i{color:var(--fc-primario);font-size:14px;}
.home-profesional__etiquetas{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:14px;}
.home-profesional__etiquetas em{padding:4px 8px;border-radius:999px;background:#eff4fb;color:#52627d;font-size:10px;font-style:normal;font-weight:700;line-height:1.2;}

/* La membresia se reconoce desde lejos: no solo por el chip, sino por un
   marco metalico que envuelve la tarjeta completa y continua en el avatar.
   El gradiente vive en el borde para que el contenido mantenga contraste. */
.home-profesional.perfil--gold,
.home-profesional.perfil--gold:is(:hover,:focus-visible){
    position:relative;
    isolation:isolate;
    border:3px solid transparent;
    background:linear-gradient(#fff,#fff) padding-box,
        linear-gradient(115deg,#9d6500 0%,#fff8c9 20%,#d79510 42%,#fff1a4 68%,#9d6500 100%) border-box;
    background-size:100% 100%,240% 240%;
    animation:home-membership-frame-gold 5s ease-in-out infinite;
    box-shadow:inset 0 0 0 1px rgba(255,247,194,.72),0 0 0 1px rgba(150,96,0,.82),0 0 0 5px rgba(235,186,53,.16),0 17px 38px -18px rgba(132,81,0,.72);
}
.home-profesional.perfil--silver,
.home-profesional.perfil--silver:is(:hover,:focus-visible){
    position:relative;
    isolation:isolate;
    border:3px solid transparent;
    background:linear-gradient(#fff,#fff) padding-box,
        linear-gradient(115deg,#727f92 0%,#fbfdff 20%,#aeb9c9 42%,#eef3fa 68%,#727f92 100%) border-box;
    background-size:100% 100%,240% 240%;
    animation:home-membership-frame-silver 5.8s ease-in-out infinite;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.82),0 0 0 1px rgba(96,108,127,.74),0 0 0 5px rgba(183,195,211,.22),0 17px 36px -20px rgba(45,57,77,.64);
}
.home-profesional.perfil--gold::before,
.home-profesional.perfil--silver::before{
    position:absolute;
    z-index:2;
    inset:5px;
    border:1px solid transparent;
    border-radius:12px;
    content:"";
    pointer-events:none;
}
.home-profesional.perfil--gold::before{border-color:rgba(255,241,170,.72);box-shadow:inset 0 1px 0 rgba(255,255,255,.7);}
.home-profesional.perfil--silver::before{border-color:rgba(239,245,252,.92);box-shadow:inset 0 1px 0 rgba(255,255,255,.78);}
.home-profesional.perfil--gold::after,
.home-profesional.perfil--silver::after{
    position:absolute;
    z-index:2;
    top:0;
    bottom:0;
    left:-48%;
    width:30%;
    content:"";
    pointer-events:none;
    opacity:0;
    transform:skewX(-18deg);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);
}
.home-profesional.perfil--gold:is(:hover,:focus-visible)::after,
.home-profesional.perfil--silver:is(:hover,:focus-visible)::after{
    animation:home-membership-shine .75s ease-out both;
}
.home-profesional.perfil--gold .home-profesional__cabecera--sin-banner{background:linear-gradient(135deg,#523900,#e0a51f 55%,#6b4700);}
.home-profesional.perfil--silver .home-profesional__cabecera--sin-banner{background:linear-gradient(135deg,#435166,#b8c2d0 55%,#5b6879);}
.home-profesional.perfil--gold .home-profesional__foto{border-color:#f2c44c;box-shadow:0 0 0 3px rgba(255,237,168,.88),0 8px 18px rgba(143,92,0,.28);}
.home-profesional.perfil--silver .home-profesional__foto{border-color:#c6d0dd;box-shadow:0 0 0 3px rgba(239,244,250,.95),0 8px 18px rgba(68,79,98,.22);}
@keyframes home-membership-frame-gold{0%,100%{background-position:0 0,0% 50%;box-shadow:inset 0 0 0 1px rgba(255,247,194,.72),0 0 0 1px rgba(150,96,0,.82),0 0 0 5px rgba(235,186,53,.16),0 17px 38px -18px rgba(132,81,0,.72);}50%{background-position:0 0,100% 50%;box-shadow:inset 0 0 0 1px rgba(255,255,225,.92),0 0 0 2px rgba(210,142,9,.94),0 0 0 7px rgba(255,211,82,.26),0 20px 42px -18px rgba(132,81,0,.8);}}
@keyframes home-membership-frame-silver{0%,100%{background-position:0 0,0% 50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.82),0 0 0 1px rgba(96,108,127,.74),0 0 0 5px rgba(183,195,211,.22),0 17px 36px -20px rgba(45,57,77,.64);}50%{background-position:0 0,100% 50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.96),0 0 0 2px rgba(137,149,168,.88),0 0 0 7px rgba(219,229,240,.36),0 20px 40px -20px rgba(45,57,77,.72);}}
@keyframes home-membership-shine{0%{left:-48%;opacity:0;}16%{opacity:.9;}100%{left:125%;opacity:0;}}
@media (prefers-reduced-motion: reduce){
    .home-profesional.perfil--gold,
    .home-profesional.perfil--silver,
    .home-profesional.perfil--gold::after,
    .home-profesional.perfil--silver::after{animation:none;}
}

.home .home-destacados{padding:0 0 clamp(64px,7vw,104px);}
.home .home-destacados__encabezado{margin-bottom:21px;}
.home-destacados__titulo{margin:2px 0 0;color:#0b1325;font-size:clamp(25px,2.5vw,34px);font-weight:900;letter-spacing:-.035em;}

.home .home-section--suave{padding:clamp(64px,7vw,104px) 0;background:#f7f9fd;}
.home .home-encabezado{text-align:center;margin-bottom:34px;}
.home .home-encabezado .fc-kicker{margin-bottom:8px;}
.home .home-cat{overflow:hidden;border-radius:17px;border-color:#e7edf5;box-shadow:0 8px 23px -20px rgba(15,23,42,.42);}
.home .home-cat__foto{height:212px;border-radius:16px 16px 0 0;}
.home .home-cat__icono{top:146px;left:17px;}
.home .home-cat__titulo{padding:31px 17px 4px;font-size:15px;}
.home .home-cat__descripcion{padding:0 17px 19px;color:#72809a;font-size:12px;line-height:1.45;}
.home .fc-boton--pildora{border-radius:12px;}

.home .home-nosotros{padding:clamp(32px,5vw,68px);border:0;border-radius:31px;background:linear-gradient(105deg,#e6efff 0%,#eef3ff 52%,#ecfbf5 100%);box-shadow:0 16px 32px -27px rgba(15,23,42,.3);}
.home .home-nosotros__titulo{font-size:clamp(30px,3.4vw,47px);}
.home .home-nosotros__texto{max-width:34rem;}
.home .home-nosotros__media{border-radius:25px;}
.home .home-etiqueta{top:-15px;left:-14px;box-shadow:0 9px 16px rgba(15,23,42,.12);}

@media (max-width:991.98px){
}
@media (max-width:575.98px){
    .home .home-hero__buscador .search-filters{grid-template-columns:1fr;}
    .home-encabezado--fila{align-items:flex-start;flex-direction:column;margin-bottom:22px;}
    .home-enlace-todo{font-size:13px;}
    .home-profesional__cabecera{height:80px;}
    .home .home-nosotros{padding:30px 23px;border-radius:24px;}
    .home .home-etiqueta{left:0;}
}
@media (prefers-reduced-motion:reduce){
    .home-profesional{transition:none;}
    .home-profesional:hover{transform:none;}
}

/* ---------------------------------------------------------------------------
   Catalogo de categorias (templates/category/index.html).

   Disposicion tomada de _mockups/categoria.html. Clases catalogo-* para no
   tocar las otras paginas que usan #category o .section_home.
   --------------------------------------------------------------------------- */
.catalogo-hero{position:relative;isolation:isolate;padding:40px 0 64px;overflow-x:clip;}
.catalogo-hero__titulo{margin-bottom:16px;font-size:clamp(34px,4vw,52px);font-weight:800;
    line-height:1.12;letter-spacing:-.025em;color:#0f172a;}
.catalogo-hero__bajada{max-width:36rem;margin-bottom:28px;font-size:17px;line-height:1.65;color:#475569;}

/* Un solo campo: el foco se marca en toda la capsula (focus-within), asi el
   campo puede ir sin borde propio sin perder el indicador de teclado. */
.catalogo-buscador{display:flex;align-items:center;gap:8px;width:100%;max-width:36rem;
    margin-bottom:20px;padding:8px;background:#fff;border:1px solid rgba(226,232,240,.9);
    border-radius:16px;box-shadow:0 10px 30px -8px rgba(15,23,42,.12);}
.catalogo-buscador:focus-within{border-color:rgba(var(--fc-primario-rgb),.5);
    box-shadow:0 0 0 3px rgba(var(--fc-primario-rgb),.2),0 10px 30px -8px rgba(15,23,42,.12);}
.catalogo-buscador__icono{padding-left:8px;font-size:18px;color:#94a3b8;}
.catalogo-buscador__campo{flex:1;min-width:0;padding:.6rem .25rem;border:0;background:transparent;
    font-size:15px;color:var(--fc-texto);}
.catalogo-buscador__campo:focus{outline:none;}
.catalogo-buscador__boton{padding:.7rem 1.5rem;border-radius:12px;}

.catalogo-pildoras{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;}
.catalogo-pildoras__etiqueta{margin-right:4px;font-weight:500;color:var(--fc-texto-suave);}
.catalogo-pildora{padding:4px 12px;border-radius:999px;background:#f1f5f9;color:#475569;
    transition:background-color .15s ease,color .15s ease;}
.catalogo-pildora:hover{background:rgba(var(--fc-primario-rgb),.08);color:var(--fc-primario);}
.catalogo-pildora:focus-visible{outline:2px solid var(--fc-primario);outline-offset:2px;}

/* Collage con las fotos de hasta 3 destacadas. La clase --N ajusta la grilla
   a las fotos que haya, para que con 1 o 2 destacadas no queden huecos. */
.catalogo-collage{position:relative;max-width:440px;margin:0 auto;}
.catalogo-collage::before{content:"";position:absolute;inset:-24px 8% 12% -6%;z-index:-1;
    border-radius:999px 999px 999px 40px;background:rgba(var(--fc-primario-rgb),.14);
    filter:blur(28px);transform:rotate(6deg);}
.catalogo-collage__fotos{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:170px 170px;gap:12px;}
.catalogo-collage__fotos--3 .catalogo-collage__foto:first-child{grid-row:1 / 3;}
.catalogo-collage__fotos--2{grid-template-columns:1fr 1fr;grid-template-rows:260px;}
.catalogo-collage__fotos--1{grid-template-columns:1fr;grid-template-rows:300px;}
.catalogo-collage__foto{width:100%;height:100%;object-fit:cover;border:4px solid #fff;border-radius:24px;
    box-shadow:0 20px 40px -12px rgba(15,23,42,.3);}
.catalogo-collage__nota{position:absolute;top:-16px;left:-20px;z-index:2;display:flex;align-items:center;
    gap:10px;padding:10px 16px;background:rgba(255,255,255,.97);border:1px solid #f1f5f9;
    border-radius:16px;box-shadow:0 10px 24px -6px rgba(15,23,42,.18);
    font-size:12px;font-weight:600;line-height:1.3;color:#334155;}
.catalogo-collage__punto{flex:none;width:10px;height:10px;border-radius:50%;background:var(--fc-primario);
    box-shadow:0 0 0 4px rgba(var(--fc-primario-rgb),.18);}
/* Debajo de las fotos, en el flujo y no encima: sobre una foto el azul
   perderia contraste, y en posicion absoluta la rotacion la montaba en ellas. */
.catalogo-collage__manuscrita{width:max-content;max-width:100%;margin:18px 4px 0 auto;text-align:right;
    font-size:clamp(24px,2.4vw,30px);color:var(--fc-primario);transform:rotate(-4deg);}

/* --- Listado -------------------------------------------------------------- */
.catalogo-listado{padding:48px 0 64px;background:var(--fc-fondo-suave);border-top:1px solid #f1f5f9;}
.catalogo-listado__encabezado{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
    gap:16px;margin-bottom:32px;}
.catalogo-listado__encabezado .fc-kicker{margin-bottom:4px;}
.catalogo-listado__titulo{margin-bottom:6px;font-size:clamp(30px,3vw,36px);font-weight:800;
    letter-spacing:-.02em;color:#0f172a;}
.catalogo-listado__bajada{font-size:15px;color:#475569;}

.catalogo-orden{display:flex;align-items:center;gap:8px;width:auto;margin:0;}
.catalogo-orden__etiqueta{margin:0;font-size:12px;font-weight:500;color:var(--fc-texto-suave);}
.catalogo-orden .catalogo-orden__select{width:auto;min-width:11rem;margin:0;padding:.45rem 2.25rem .45rem .8rem;
    border:1px solid var(--fc-borde);border-radius:12px;background-color:#fff;
    box-shadow:0 1px 2px rgba(15,23,42,.05);font-size:14px;font-weight:600;color:#334155;}

/* Tarjeta de categoria (Fase 7B, pedido del cliente): mas compacta que el
   afiche 4:5 anterior. La foto llena la tarjeta; numero, titulo y "Ver
   servicios" van encima, sobre un degradado que asegura el contraste. El
   zoom y el cambio de "Ver servicios" responden igual al teclado
   (:focus-visible) que al cursor. */
.catalogo-afiches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:clamp(14px,1.6vw,20px);}

.catalogo-vacio{padding:48px 0;text-align:center;}
.catalogo-vacio p{margin-bottom:16px;font-size:16px;color:var(--fc-texto-suave);}

/* --- Unete (solo sin sesion) ---------------------------------------------- */
.catalogo-unete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;
    margin-top:32px;padding:clamp(24px,4vw,40px);border:1px solid rgba(var(--fc-primario-rgb),.15);
    border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.05);
    background:linear-gradient(90deg,rgba(var(--fc-primario-rgb),.08),rgba(var(--fc-primario-rgb),.03) 50%,#fff);}
.catalogo-unete__texto{max-width:32rem;}
.catalogo-unete__titulo{margin-bottom:8px;font-size:clamp(24px,2.6vw,30px);font-weight:800;
    letter-spacing:-.02em;color:#0f172a;}
.catalogo-unete__bajada{margin-bottom:24px;font-size:15px;color:#475569;}
.catalogo-unete__ilustracion{position:relative;flex:none;width:256px;height:176px;margin:0 auto;}
.catalogo-unete__ilustracion svg{width:100%;height:100%;}
.catalogo-unete__rayos{color:rgba(var(--fc-primario-rgb),.45);}
.catalogo-unete__manuscrita{position:absolute;top:-12px;right:0;text-align:right;font-size:24px;
    color:var(--fc-primario);transform:rotate(-4deg);}

@media (max-width: 991.98px){
    .catalogo-collage{max-width:400px;}
    .catalogo-collage__nota{left:8px;}
}
@media (max-width: 575.98px){
    .catalogo-hero{padding:24px 0 48px;}
    .catalogo-buscador__boton{padding:.65rem 1rem;}
    .catalogo-collage__fotos{grid-template-rows:130px 130px;}
    .catalogo-collage__fotos--2{grid-template-rows:200px;}
    .catalogo-collage__fotos--1{grid-template-rows:220px;}
    .catalogo-orden{width:100%;}
    .catalogo-orden .catalogo-orden__select{flex:1;}
    /* Angosta no hay lugar al lado del dibujo: la frase pasa arriba, en el flujo. */
    .catalogo-unete__ilustracion{width:200px;height:auto;}
    .catalogo-unete__ilustracion svg{height:140px;}
    .catalogo-unete__manuscrita{position:static;margin-bottom:8px;font-size:21px;}
}
@media (prefers-reduced-motion: reduce){
    .catalogo-afiche,.catalogo-afiche__imagen>img,.catalogo-afiche__accion{transition:none;}
    .catalogo-afiche:is(:hover,:focus-visible),.catalogo-afiche:is(:hover,:focus-visible) .catalogo-afiche__imagen>img{transform:none;}
}

/* --- Detalle de categoría y especialidad --------------------------------- */
.categoria-detalle{min-height:calc(100vh - 80px);padding:26px 0 72px;background:#f5f8fc;}
.categoria-detalle__miga{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:0 0 18px;font-size:12.5px;color:#8294ad;}
.categoria-detalle__miga a{color:#8294ad;text-decoration:none;}
.categoria-detalle__miga a:hover{color:var(--fc-primario);text-decoration:underline;}
.categoria-detalle__miga span[aria-current]{color:#30435f;font-weight:650;}
.categoria-detalle__miga i{font-size:15px;color:#b5c1d0;}
.categoria-detalle__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px);align-items:center;gap:40px;min-height:278px;
    margin-bottom:36px;padding:clamp(28px,4vw,50px);overflow:hidden;border-radius:24px;
    background:radial-gradient(circle at 89% 12%,#d5e8ff 0,#eaf3ff 34%,#f8fbff 73%);}
.categoria-detalle__texto{max-width:600px;}
.categoria-detalle__etiqueta{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #cce1ff;border-radius:9px;
    background:rgba(226,238,255,.9);color:var(--fc-primario);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.categoria-detalle__etiqueta i{font-size:16px;}
.categoria-detalle__texto h1{margin:18px 0 10px;color:#0f172a;font-size:clamp(34px,4.2vw,52px);font-weight:850;letter-spacing:-.045em;line-height:1.05;}
.categoria-detalle__texto p{margin:0;color:#59708f;font-size:18px;line-height:1.55;}
.categoria-detalle__imagen{position:relative;justify-self:end;width:min(100%,360px);height:176px;overflow:visible;border-radius:18px;background:linear-gradient(135deg,#143779,#2d67df);box-shadow:0 18px 28px -20px rgba(30,64,175,.65);}
.categoria-detalle__imagen>img{display:block;width:100%;height:100%;border-radius:18px;object-fit:cover;opacity:.91;}
.categoria-detalle__sello{position:absolute;right:-8px;bottom:-16px;display:flex;align-items:center;gap:8px;max-width:230px;padding:10px 13px;
    border:1px solid #e5edf7;border-radius:13px;background:rgba(255,255,255,.97);box-shadow:0 10px 20px rgba(15,23,42,.12);color:#203654;font-size:12px;font-weight:700;line-height:1.25;}
.categoria-detalle__sello i{color:var(--fc-primario);font-size:17px;}
.categoria-especialidades,.categoria-profesionales{padding:28px 0 0;}
.categoria-especialidades__cabecera,.categoria-profesionales__cabecera{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;}
.categoria-especialidades__cabecera .fc-kicker{margin-bottom:5px;}
.categoria-especialidades__cabecera h2,.categoria-profesionales__cabecera h2{margin:0;color:#14243d;font-size:clamp(24px,2.6vw,32px);font-weight:800;letter-spacing:-.025em;}
.categoria-especialidades__cabecera>span{color:#6d819e;font-size:13px;font-weight:600;}
.categoria-detalle__vacio{margin:0;padding:42px;border:1px dashed #cbd8e8;border-radius:18px;background:#fff;text-align:center;color:#6d819e;}
.categoria-profesionales__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px;align-items:start;}
.categoria-perfil-card{display:flex;flex-direction:column;min-height:100%;overflow:hidden;border:1px solid #e5edf6;border-radius:20px;background:#fff;box-shadow:0 10px 24px -18px rgba(15,23,42,.45);}
.categoria-perfil-card__portada{position:relative;height:122px;background:#14305f;}
.categoria-perfil-card__portada--vacia{background:radial-gradient(circle at 82% 8%,rgba(99,169,255,.52),transparent 27%),linear-gradient(125deg,#081c40,#1751b8);}
.categoria-perfil-card__portada>img:not(.categoria-perfil-card__avatar){width:100%;height:100%;object-fit:cover;opacity:.82;}
.categoria-perfil-card__avatar{position:absolute;left:20px;bottom:-34px;width:68px;height:68px;border:4px solid #fff;border-radius:50%;background:#fff;object-fit:cover;box-shadow:0 4px 10px rgba(15,23,42,.2);}
.categoria-perfil-card__cuerpo{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:47px 20px 18px;}
.categoria-perfil-card__rating{margin:0 0 9px;color:#8798b0;font-size:11.5px;font-weight:600;}
.categoria-perfil-card__rating span{color:#f2ad16;font-size:14px;letter-spacing:1px;}
.categoria-perfil-card__cuerpo h3{margin:0;color:#14243d;font-size:16px;font-weight:800;line-height:1.35;overflow-wrap:anywhere;}
.categoria-perfil-card__cuerpo h3 i{margin-left:4px;color:var(--fc-primario);font-size:16px;vertical-align:-1px;}
.categoria-perfil-card__dato,.categoria-perfil-card__profesion{margin:6px 0 0;color:#516984;font-size:12.5px;}
.categoria-perfil-card__dato{display:flex;align-items:center;gap:5px;}.categoria-perfil-card__dato i{color:#7892b4;font-size:15px;}
.categoria-perfil-card__profesion{font-weight:650;color:#263d5e;}
.categoria-perfil-card__cuerpo .badge_documentation{margin-top:12px;}
.categoria-perfil-card__intereses{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px;}
.categoria-perfil-card__intereses span{padding:4px 9px;border-radius:999px;background:#f0f4f9;color:#526982;font-size:11px;line-height:1.15;}
.categoria-perfil-card__ver{display:flex;align-items:center;justify-content:center;min-height:46px;margin:0 14px 14px;border:1px solid var(--fc-primario);border-radius:11px;color:var(--fc-primario);font-size:13px;font-weight:750;text-decoration:none;}
.categoria-perfil-card__ver:hover{background:var(--fc-primario);color:#fff;}
.categoria-perfil-card.perfil--gold,.categoria-perfil-card.perfil--silver{position:relative;border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(115deg,#74839b,#fff,#aeb9c8,#fff,#74839b) border-box;}
.categoria-perfil-card.perfil--gold{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(115deg,#9d6500,#fff8c9,#d79510,#fff1a4,#9d6500) border-box;box-shadow:0 0 0 2px rgba(235,186,53,.15),0 14px 30px -20px rgba(132,81,0,.66);}
.categoria-perfil-card.perfil--silver{box-shadow:0 0 0 2px rgba(183,195,211,.16),0 14px 30px -20px rgba(45,57,77,.54);}
.categoria-perfil-card__plan{display:inline-flex;align-items:center;gap:4px;margin:0 0 8px;padding:4px 8px;border-radius:999px;background:#fff5d9;color:#9a6200;font-size:10px;font-weight:850;line-height:1;}.categoria-perfil-card__plan--silver{background:#edf1f6;color:#4d5b70;}
.categoria-perfil-card__logros{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;}.categoria-perfil-card__logros span{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:999px;background:#eef5ff;color:#20589c;font-size:10px;font-weight:750;line-height:1.2;}.categoria-perfil-card__logros i{font-size:12px;color:var(--fc-primario);}
.categoria-profesionales__paginacion{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:38px;}
.categoria-profesionales__paginacion a,.categoria-profesionales__paginacion span{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border:1px solid #d9e5f2;border-radius:9px;background:#fff;color:#59708f;text-decoration:none;font-size:14px;}
.categoria-profesionales__paginacion span{border-color:var(--fc-primario);background:var(--fc-primario);box-shadow:0 4px 10px rgba(var(--fc-primario-rgb),.28);color:#fff;}
.categoria-profesionales__paginacion a:hover{border-color:var(--fc-primario);color:var(--fc-primario);}
@media (max-width: 1399.98px){
    .catalogo-afiches{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media (max-width: 1199.98px){
    .catalogo-afiches{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
}
@media (max-width: 767.98px){
    .categoria-detalle{padding-top:18px;}.categoria-detalle__hero{grid-template-columns:1fr;gap:28px;min-height:0;padding:28px 22px 34px;}
    .categoria-detalle__imagen{justify-self:start;width:100%;height:155px;}.categoria-detalle__texto h1{font-size:36px;}
    .categoria-detalle__texto p{font-size:16px;}.categoria-especialidades,.categoria-profesionales{padding-top:18px;}
    .catalogo-afiches{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
    .categoria-profesionales__grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;}
}
@media (max-width: 575.98px){
    .categoria-detalle__miga{flex-wrap:wrap;}
    .categoria-detalle .boton-volver{margin-bottom:14px;}
    .categoria-detalle__hero{margin-bottom:22px;border-radius:18px;}
    .categoria-detalle__imagen{height:135px;}.categoria-detalle__sello{right:8px;bottom:-12px;max-width:calc(100% - 16px);}
    .categoria-especialidades__cabecera,.categoria-profesionales__cabecera{align-items:flex-start;flex-direction:column;margin-bottom:16px;}
    .catalogo-afiches{grid-template-columns:1fr;gap:14px;}
    .catalogo-afiche{width:min(100%,420px);margin:0 auto;aspect-ratio:16 / 9;}
    .catalogo-afiche__titulo{font-size:18px;}
    .categoria-profesionales__grid{grid-template-columns:1fr;}
    .categoria-perfil-card{max-width:420px;margin:0 auto;width:100%;}
}

/* ---------------------------------------------------------------------------
   Guías y recursos (documents/guide*.html).
   La portada elige una guía por rol; el detalle mantiene una tabla de
   contenidos utilizable y apila todo en una columna antes de tablet.
   --------------------------------------------------------------------------- */
.guia-hub,.guia-detalle{position:relative;overflow:hidden;padding:54px 0 72px;background:#f5f8fc;}
.guia-hub::before,.guia-detalle::before{position:absolute;inset:0;z-index:0;pointer-events:none;content:"";
    background:radial-gradient(circle at 12% 4%,rgba(var(--fc-primario-rgb),.10),transparent 28%),radial-gradient(circle at 88% 12%,rgba(129,140,248,.10),transparent 25%);}
.guia-hub .container,.guia-detalle .container{position:relative;z-index:1;}
.guia-linea{display:block;width:42px;height:4px;margin:0 auto 18px;border-radius:999px;background:var(--fc-primario);}
.guia-hub__encabezado,.guia-detalle__encabezado{max-width:680px;margin:0 auto 48px;text-align:center;}
.guia-hub__encabezado h1,.guia-detalle__encabezado h1{margin:0 0 12px;color:#111a2e;font-size:var(--fc-titulo-hero-pagina,clamp(28px,2.45vw,38px));font-weight:850;letter-spacing:-.055em;line-height:1.05;}
.guia-hub__encabezado h1 em{font-style:normal;color:var(--fc-acento);}
.guia-detalle__encabezado h1{color:var(--fc-acento);font-size:clamp(30px,3.5vw,44px);}
.guia-hub__encabezado p,.guia-detalle__encabezado p{margin:0;color:#60738f;font-size:15px;line-height:1.65;}
.guia-hub__doodle{position:absolute;z-index:1;top:100px;color:#818cf8;font-family:var(--fc-fuente-manuscrita);font-size:29px;font-weight:700;line-height:1.1;transform:rotate(-7deg);}
.guia-hub__doodle--izq{left:clamp(14px,3vw,50px);}.guia-hub__doodle--der{right:clamp(14px,3vw,50px);text-align:right;transform:rotate(6deg);}
.guia-hub__roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;max-width:1020px;margin:0 auto 88px;}
.guia-rol{display:flex;flex-direction:column;min-width:0;padding:34px;border:1px solid #e8eef6;border-radius:26px;background:#fff;box-shadow:0 16px 36px -28px rgba(15,23,42,.45);}
.guia-rol__etiqueta{align-self:flex-start;margin-bottom:18px;padding:6px 14px;border-radius:999px;background:#eef5ff;color:var(--fc-primario);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.guia-rol h2{margin:0 0 10px;color:#111a2e;font-size:27px;font-weight:850;letter-spacing:-.035em;}.guia-rol h2 em{font-style:normal;color:var(--fc-acento);}
.guia-rol>p{max-width:390px;color:#60738f;font-size:14px;line-height:1.6;}
.guia-rol__contenido{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:20px;min-height:175px;margin:20px 0 26px;}
.guia-rol__ilustracion{display:grid;width:132px;height:132px;place-items:center;margin:auto;border-radius:50%;background:#eaf3ff;color:var(--fc-primario);font-size:56px;box-shadow:inset 0 0 0 10px rgba(255,255,255,.65);}
.guia-rol__ilustracion--usuario{background:#fff2e7;color:var(--fc-acento);}
/* Imagen propia de la tarjeta (Textos de páginas > Guías, campo Imagen): en lugar del ícono, dentro del mismo círculo. */
.guia-rol__ilustracion img{display:block;width:88px;height:88px;object-fit:contain;}
.guia-rol__contenido ul{display:grid;gap:13px;margin:0;padding:0;list-style:none;}.guia-rol__contenido li{position:relative;padding-left:25px;color:#354b69;font-size:13px;line-height:1.4;}.guia-rol__contenido li::before{position:absolute;left:0;top:1px;display:grid;width:17px;height:17px;place-items:center;border-radius:50%;background:var(--fc-primario);color:#fff;font:12px/1 remixicon;content:"\eb7b";}
.guia-rol__accion{align-self:flex-start;margin-top:auto;background:var(--fc-acento);color:#fff;box-shadow:0 7px 14px rgba(var(--fc-acento-rgb),.2);}.guia-rol__accion:hover{background:var(--fc-acento-hover);color:#fff;}
.guia-hub__beneficios{max-width:1020px;margin:0 auto;}.guia-hub__beneficios header{margin-bottom:28px;text-align:center;}.guia-hub__beneficios h2{margin:0 0 9px;color:#111a2e;font-size:clamp(27px,3vw,36px);font-weight:850;letter-spacing:-.04em;}.guia-hub__beneficios header p{color:#60738f;font-size:14px;}
.guia-hub__beneficios-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}.guia-hub__beneficios-grid article{display:flex;align-items:flex-start;gap:14px;padding:22px;border:1px solid #e8eef6;border-radius:18px;background:#fff;box-shadow:0 10px 26px -24px rgba(15,23,42,.45);}.guia-hub__beneficios-grid article>i{display:grid;flex:none;width:46px;height:46px;place-items:center;border-radius:14px;background:#eaf3ff;color:var(--fc-primario);font-size:22px;}.guia-hub__beneficios-grid article:nth-child(2)>i{background:#eafbf3;color:#0f9d6a;}.guia-hub__beneficios-grid article:nth-child(3)>i{background:#f4eaff;color:#9855d7;}.guia-hub__beneficios-grid h3{margin:1px 0 5px;color:#17233a;font-size:14px;font-weight:800;}.guia-hub__beneficios-grid p{color:#60738f;font-size:12.5px;line-height:1.55;}
.guia-detalle__layout{display:grid;grid-template-columns:310px minmax(0,1fr);align-items:start;gap:30px;}.guia-indice{position:sticky;top:90px;display:flex;flex-direction:column;gap:18px;padding:22px;border:1px solid #e7edf6;border-radius:18px;background:#fff;box-shadow:0 12px 28px -25px rgba(15,23,42,.45);}.guia-indice__cabecera{display:flex;align-items:flex-start;gap:12px;}.guia-indice__cabecera>i{display:grid;flex:none;width:38px;height:38px;place-items:center;border-radius:11px;background:#eaf3ff;color:var(--fc-primario);font-size:19px;}.guia-indice h2,.guia-indice h3{margin:0;color:#17233a;font-size:14px;font-weight:800;}.guia-indice__cabecera p,.guia-indice__ayuda p{margin:3px 0 0;color:#8292a9;font-size:12px;line-height:1.4;}.guia-indice__enlaces{display:grid;gap:3px;}.guia-indice__enlaces a{display:flex;align-items:flex-start;gap:10px;padding:9px 8px;border-radius:10px;color:#52677f;font-size:12.5px;font-weight:650;line-height:1.35;text-decoration:none;}.guia-indice__enlaces a:hover{background:#f1f6ff;color:var(--fc-primario);}.guia-indice__enlaces span{display:grid;flex:none;width:25px;height:25px;place-items:center;border-radius:50%;background:#f0f4f8;color:#637991;font-size:11px;font-weight:800;}.guia-indice__enlaces a:first-child{background:#eff6ff;color:var(--fc-primario);}.guia-indice__enlaces a:first-child span{background:var(--fc-primario);color:#fff;}.guia-indice__ayuda{display:flex;gap:10px;margin-top:2px;padding:16px;border:1px solid #d9e9ff;border-radius:14px;background:#eef6ff;}.guia-indice__ayuda>i{color:var(--fc-primario);font-size:23px;}.guia-indice__ayuda a{display:inline-flex;align-items:center;gap:3px;margin-top:7px;color:var(--fc-primario);font-size:12px;font-weight:800;text-decoration:none;}
.guia-documento{padding:14px 36px;border:1px solid #e7edf6;border-radius:18px;background:#fff;box-shadow:0 12px 28px -25px rgba(15,23,42,.45);}.guia-paso,.guia-documento__contenido>h2,.guia-documento__contenido>h3{scroll-margin-top:100px;}.guia-paso{display:grid;grid-template-columns:32px minmax(0,1fr);gap:15px;padding:28px 0;border-bottom:1px solid #edf1f6;}.guia-paso:last-child{border-bottom:0;}.guia-paso__numero{display:grid;width:31px;height:31px;place-items:center;border-radius:50%;background:#e6f0ff;color:var(--fc-primario);font-size:12px;font-weight:850;}.guia-paso h2{margin:3px 0 12px;color:#17233a;font-size:16px;font-weight:850;}.guia-paso ul,.guia-documento__contenido ul{margin:0;padding-left:18px;color:#61738c;}.guia-paso li,.guia-documento__contenido li{margin:5px 0;font-size:13px;line-height:1.5;}.guia-documento__contenido{padding:10px 0 24px;color:#61738c;}.guia-documento__contenido h1,.guia-documento__contenido h2,.guia-documento__contenido h3{margin:0;padding:28px 0 12px;color:#17233a;font-size:17px;font-weight:850;}.guia-documento__contenido h1:first-child,.guia-documento__contenido h2:first-child,.guia-documento__contenido h3:first-child{padding-top:8px;}.guia-documento__contenido p{margin:0 0 12px;font-size:13px;line-height:1.65;color:#61738c;}.guia-documento__contenido a{color:var(--fc-primario);text-decoration:underline;}.guia-documento__contenido hr{margin:24px 0;border-color:#edf1f6;opacity:1;}
.guia-documento__recursos{margin:4px 0 18px;padding:20px;border:1px solid #dceafe;border-radius:15px;background:#f4f8ff;}.guia-documento__recursos h2{margin:0 0 4px;color:#173c83;font-size:15px;font-weight:850;}.guia-documento__recursos p{margin:0 0 14px;color:#60738f;font-size:12.5px;}.guia-documento__recursos>div{display:flex;flex-wrap:wrap;gap:8px;}.guia-documento__recursos a{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid #c7dcfb;border-radius:10px;background:#fff;color:var(--fc-primario);font-size:12px;font-weight:750;text-decoration:none;}.guia-documento__recursos a:hover{border-color:var(--fc-primario);background:#eaf3ff;}.guia-documento__recursos i{font-size:16px;}
.guia-detalle__acciones{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;}.guia-detalle__acciones>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;}.guia-detalle__acciones button{font-family:inherit;cursor:pointer;}.guia-detalle__siguiente{background:var(--fc-primario);color:#fff;}.guia-detalle__siguiente:hover{background:var(--fc-primario-hover);color:#fff;}
@media (max-width:1199.98px){.guia-hub__doodle{display:none;}.guia-hub__roles,.guia-hub__beneficios{max-width:900px;}.guia-detalle__layout{grid-template-columns:270px minmax(0,1fr);gap:20px;}.guia-documento{padding-right:26px;padding-left:26px;}}
@media (max-width:991.98px){.guia-hub,.guia-detalle{padding-top:40px;}.guia-hub__roles{grid-template-columns:1fr;max-width:650px;margin-bottom:64px;}.guia-rol__contenido{grid-template-columns:160px minmax(0,1fr);}.guia-hub__beneficios-grid{grid-template-columns:1fr;max-width:650px;margin:auto;}.guia-detalle__layout{grid-template-columns:1fr;}.guia-indice{position:static;}.guia-indice__enlaces{grid-template-columns:repeat(2,minmax(0,1fr));}.guia-indice__ayuda{display:none;}}
@media (max-width:575.98px){.guia-hub,.guia-detalle{padding:30px 0 48px;}.guia-hub__encabezado,.guia-detalle__encabezado{margin-bottom:30px;}.guia-hub__encabezado h1{font-size:28px;}.guia-hub__encabezado p,.guia-detalle__encabezado p{font-size:14px;}.guia-hub__roles{gap:16px;margin-bottom:46px;}.guia-rol{padding:24px;border-radius:20px;}.guia-rol h2{font-size:25px;}.guia-rol__contenido{grid-template-columns:1fr;gap:14px;min-height:0;margin:16px 0 22px;}.guia-rol__ilustracion{width:108px;height:108px;font-size:46px;}.guia-rol__accion{width:100%;}.guia-hub__beneficios-grid article{padding:18px;}.guia-indice{padding:18px;border-radius:15px;}.guia-indice__enlaces{grid-template-columns:1fr;}.guia-documento{padding:4px 20px;border-radius:15px;}.guia-paso{grid-template-columns:28px minmax(0,1fr);gap:11px;padding:24px 0;}.guia-paso__numero{width:27px;height:27px;}.guia-paso h2{font-size:15px;}.guia-detalle__acciones,.guia-detalle__acciones>div{align-items:stretch;flex-direction:column;width:100%;}.guia-detalle__acciones .fc-boton{width:100%;}.guia-documento__contenido h1,.guia-documento__contenido h2,.guia-documento__contenido h3{font-size:16px;}}
@media print{.fc-nav,.fc-footer,.guia-indice,.guia-detalle__acciones{display:none!important;}.guia-detalle{padding:0;background:#fff;}.guia-documento{border:0;box-shadow:none;}.guia-detalle__layout{display:block;}}

/* ---------------------------------------------------------------------------
   Configuracion de perfil (templates/access/settings_profile.html).

   Disposicion tomada de _mockups/configuracionperfil.html. Todo va bajo
   .perfil-config: la pagina conserva los widgets de Django (form-control en
   inputs y selects) y Select2, y estas reglas los alinean al estilo nuevo
   sin tocar otros formularios del sitio.
   --------------------------------------------------------------------------- */
.perfil-config{padding:32px 0 64px;
    background:radial-gradient(circle at 10% 0%,rgba(var(--fc-primario-rgb),.08) 0%,rgba(248,250,252,0) 45%);}
:is(.perfil-config,.perfil-editor) form{width:100%;}
.perfil-config__cabecera{margin-bottom:24px;}
:is(.perfil-config,.perfil-editor) .fc-kicker{margin-bottom:4px;}
.perfil-config__titulo{margin:0 0 6px;font-size:clamp(28px,3vw,36px);font-weight:800;
    letter-spacing:-.02em;color:#0f172a;}
.perfil-config__bajada{font-size:16px;color:#475569;}

.perfil-consejo{position:relative;display:flex;align-items:center;gap:16px;padding:20px 24px;
    border:1px solid rgba(var(--fc-primario-rgb),.15);border-radius:16px;
    background:rgba(var(--fc-primario-rgb),.06);overflow:hidden;}
.perfil-consejo__icono{flex:none;font-size:24px;color:var(--fc-primario);}
.perfil-consejo__titulo{margin:0 0 4px;font-size:14px;font-weight:700;color:#0f172a;}
.perfil-consejo__texto{font-size:13px;line-height:1.5;color:#475569;}
.perfil-consejo__dibujo{flex:none;width:130px;height:88px;margin-left:auto;}

.perfil-mensajes{margin-bottom:16px;}
.perfil-alerta{border-radius:12px;font-size:14px;}

/* --- Menu lateral ---------------------------------------------------------- */
.perfil-lateral{display:flex;flex-direction:column;gap:20px;}
.perfil-menu{gap:4px;padding:8px;background:#fff;border:1px solid #f1f5f9;border-radius:16px;
    box-shadow:0 1px 2px rgba(15,23,42,.05);}
.perfil-menu .perfil-menu__item{display:flex;align-items:center;gap:12px;width:100%;padding:11px 16px;
    border:0;border-radius:12px;background:transparent;text-align:left;
    font-size:14px;font-weight:500;color:#475569;}
.perfil-menu .perfil-menu__item i{font-size:19px;color:#64748b;}
.perfil-menu .perfil-menu__item:hover{background:#f8fafc;color:var(--fc-texto);}
.perfil-menu .perfil-menu__item.active{background:rgba(var(--fc-primario-rgb),.08);
    color:var(--fc-primario);font-weight:600;}
.perfil-menu .perfil-menu__item.active i{color:var(--fc-primario);}
.perfil-menu .perfil-menu__item:focus-visible{outline:2px solid var(--fc-primario);outline-offset:1px;}
.perfil-menu .perfil-menu__item--peligro,.perfil-menu .perfil-menu__item--peligro i{color:#b91c1c;}
.perfil-menu .perfil-menu__item--peligro.active{background:#fef2f2;color:#b91c1c;}
.perfil-menu .perfil-menu__item--peligro.active i{color:#b91c1c;}
.perfil-menu__aviso{margin-left:auto;min-width:20px;padding:1px 6px;border-radius:999px;
    background:#fee2e2;color:#b91c1c;font-size:11px;font-weight:700;text-align:center;}

.perfil-ayuda{padding:24px;text-align:center;border:1px solid rgba(var(--fc-primario-rgb),.15);
    border-radius:16px;background:rgba(var(--fc-primario-rgb),.04);}
.perfil-ayuda__icono{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
    margin-bottom:12px;border-radius:50%;background:rgba(var(--fc-primario-rgb),.12);
    color:var(--fc-primario);font-size:20px;}
.perfil-ayuda__titulo{margin:0 0 4px;font-size:14px;font-weight:700;color:#0f172a;}
.perfil-ayuda__texto{margin-bottom:16px;font-size:12px;color:var(--fc-texto-suave);}

/* --- Tarjetas y secciones -------------------------------------------------- */
.perfil-tarjeta{margin-bottom:20px;padding:24px;background:#fff;border:1px solid rgba(226,232,240,.8);
    border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.05);}
.perfil-tarjeta--peligro{border-color:#fecaca;}
.perfil-seccion{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.perfil-seccion__icono{flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:36px;height:36px;border-radius:12px;background:rgba(var(--fc-primario-rgb),.08);
    color:var(--fc-primario);font-size:19px;}
.perfil-seccion__icono--peligro{background:#fef2f2;color:#b91c1c;}
.perfil-seccion__titulo{margin:0;font-size:16px;font-weight:700;color:#0f172a;}
.perfil-seccion__bajada{margin-top:2px;font-size:12px;color:var(--fc-texto-suave);}

.perfil-encabezado{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;
    background:linear-gradient(90deg,rgba(var(--fc-primario-rgb),.06),#fff 55%);}
.perfil-encabezado__persona{display:flex;align-items:center;gap:20px;}
.perfil-encabezado__avatar{position:relative;flex:none;}
.perfil-encabezado__avatar img{width:96px;height:96px;border-radius:50%;object-fit:cover;
    border:3px solid #fff;box-shadow:0 4px 12px rgba(15,23,42,.15);}
.perfil-encabezado__camara{position:absolute;right:0;bottom:0;display:inline-flex;align-items:center;
    justify-content:center;width:32px;height:32px;margin:0;border:2px solid #fff;border-radius:50%;
    background:#0f172a;color:#fff;font-size:15px;cursor:pointer;}
.perfil-encabezado__camara:hover{background:#1e293b;}
.perfil-encabezado__nombre{margin:0 0 6px;font-size:20px;font-weight:700;color:#0f172a;}
.perfil-encabezado__ubicacion{display:flex;align-items:center;gap:6px;margin-top:8px;
    font-size:13px;color:var(--fc-texto-suave);}
.perfil-encabezado__foto{text-align:right;}
.perfil-encabezado__foto .fc-boton{margin:0;cursor:pointer;}
.perfil-encabezado__nota{flex-basis:100%;margin:0;font-size:12px;color:var(--fc-texto-suave);}
.perfil-banner-editor{display:flex;align-items:center;gap:22px;}
.perfil-banner-editor__vista{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:220px;height:100px;
    overflow:hidden;border-radius:14px;background:#163b82;color:rgba(255,255,255,.92);font-size:13px;font-weight:700;}
.perfil-banner-editor__vista--vacia{background:linear-gradient(120deg,#091b43,#2563eb 58%,#83b7fa);}
.perfil-banner-editor__vista--vacia::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 12%,rgba(255,255,255,.3),transparent 33%);}
.perfil-banner-editor__vista span{position:relative;z-index:1;}
.perfil-banner-editor__vista img{width:100%;height:100%;object-fit:cover;}
.perfil-banner-editor__texto{min-width:0;}
.perfil-banner-editor__texto .fc-boton{margin:12px 0 0;cursor:pointer;}
.perfil-moderacion{display:flex;align-items:center;gap:10px;flex-basis:100%;padding:10px 12px;border:1px solid #d8e2f0;border-radius:12px;background:#f8fbff;font-size:12px;color:var(--fc-texto-suave);}
.perfil-moderacion img{width:48px;height:48px;object-fit:cover;border-radius:9px;flex:none;}
/* «Cancelar solicitud» (2026-10-27): enlace sobrio dentro del recuadro, como sus otros enlaces. */
.perfil-moderacion__form{width:auto;margin:0;}
.perfil-moderacion__cancelar{justify-self:start;padding:0;border:0;background:none;color:#b42318;font-size:12px;font-weight:700;text-decoration:underline;cursor:pointer;}
.perfil-moderacion div{display:grid;gap:3px;min-width:0;}.perfil-moderacion strong{color:var(--fc-titulo);}.perfil-moderacion span{display:block;}.perfil-moderacion--pending{border-color:#f3c76b;background:#fffaf0;}.perfil-moderacion--rejected{border-color:#f5b8b8;background:#fff6f6;}
.perfil-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;
    background:rgba(var(--fc-primario-rgb),.1);color:var(--fc-primario);font-size:12px;font-weight:600;}
.perfil-chip--area{background:#f1f5f9;color:#334155;font-weight:500;}
.perfil-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.perfil-chips:empty{display:none;}

.perfil-progreso__cabecera{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;
    gap:12px;margin-bottom:14px;}
.perfil-progreso__valor{font-size:13px;font-weight:700;white-space:nowrap;}
.perfil-progreso__valor--bajo{color:#b91c1c;}
.perfil-progreso__valor--medio{color:#b45309;}
.perfil-progreso__valor--completo{color:#047857;}
.perfil-progreso__barra{height:8px;border-radius:999px;background:#f1f5f9;}
.perfil-progreso__barra .progress-bar{border-radius:999px;}

/* --- Campos ---------------------------------------------------------------- */
.perfil-campo__etiqueta{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:#334155;}
:is(.perfil-config,.perfil-editor) .perfil-campo .form-control{min-height:44px;padding:.6rem .9rem;border:1px solid var(--fc-borde);
    border-radius:12px;box-shadow:none;background-color:#fff;font-size:14px;color:var(--fc-texto);}
:is(.perfil-config,.perfil-editor) .perfil-campo textarea.form-control{min-height:132px;line-height:1.6;resize:vertical;}
:is(.perfil-config,.perfil-editor) .perfil-campo .form-control:focus{border-color:rgba(var(--fc-primario-rgb),.6);
    box-shadow:0 0 0 .25rem rgba(var(--fc-primario-rgb),.18);}
:is(.perfil-config,.perfil-editor) .perfil-campo .form-control:disabled{background-color:#f8fafc;color:var(--fc-texto-suave);}
/* Los selects de Django llevan form-control y no form-select: sin JavaScript
   (antes de que cargue Select2) igual muestran la flecha de lista. */
:is(.perfil-config,.perfil-editor) .perfil-campo select.form-control{appearance:none;padding-right:2.25rem;
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23475569' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;
    background-position:right .75rem center;background-size:16px 12px;}
:is(.perfil-config,.perfil-editor) .perfil-campo input[type=file].form-control{padding:0;overflow:hidden;line-height:42px;}
:is(.perfil-config,.perfil-editor) .perfil-campo input[type=file].form-control::file-selector-button{height:42px;margin:0 12px 0 0;
    padding:0 16px;border:0;border-right:1px solid var(--fc-borde);background:rgba(var(--fc-primario-rgb),.08);
    color:var(--fc-primario);font-weight:600;}
.perfil-campo--error .form-control,
.perfil-campo--error .select2-container--default .select2-selection--single{border-color:#dc2626 !important;}
:is(.perfil-config,.perfil-editor) .invalid-feedback{font-size:12px;}
.perfil-solo-lectura{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:.6rem .9rem;
    border:1px solid var(--fc-borde);border-radius:12px;background:#f8fafc;font-size:14px;color:#475569;}
.perfil-solo-lectura i{color:#94a3b8;}
.perfil-ayuda-campo{margin:6px 0 0;font-size:12px;color:var(--fc-texto-suave);}
.perfil-ayuda-campo--arriba{margin:-2px 0 8px;}
.perfil-contador{margin:4px 0 0;text-align:right;font-size:12px;color:#94a3b8;}

/* Select2 con el mismo aspecto que los demas campos. El menu desplegable se
   agrega al final del body, fuera de .perfil-config: lo identifica la clase
   perfil-select2-menu (opcion dropdownCssClass), para no alcanzar el Select2
   del registro. */
:is(.perfil-config,.perfil-editor) .select2-container{width:100% !important;}
:is(.perfil-config,.perfil-editor) .select2-container--default .select2-selection--single{height:44px;border:1px solid var(--fc-borde);
    border-radius:12px;background:#fff;}
:is(.perfil-config,.perfil-editor) .select2-container--default .select2-selection--single .select2-selection__rendered{
    padding:0 2.25rem 0 .9rem;line-height:42px;font-size:14px;color:var(--fc-texto);}
:is(.perfil-config,.perfil-editor) .select2-container--default .select2-selection--single .select2-selection__arrow{height:42px;right:8px;}
:is(.perfil-config,.perfil-editor) .select2-container--default.select2-container--focus .select2-selection--single,
:is(.perfil-config,.perfil-editor) .select2-container--default.select2-container--open .select2-selection--single{
    border-color:rgba(var(--fc-primario-rgb),.6);box-shadow:0 0 0 .25rem rgba(var(--fc-primario-rgb),.18);}
.perfil-select2-menu.select2-dropdown{border-color:var(--fc-borde);border-radius:12px;overflow:hidden;
    box-shadow:0 12px 28px -8px rgba(15,23,42,.18);}
.perfil-select2-menu .select2-search__field{border:1px solid var(--fc-borde);
    border-radius:8px;padding:6px 10px;}
.perfil-select2-menu .select2-results__option--highlighted[aria-selected]{background:var(--fc-primario);}
.perfil-select2-menu .select2-results__option{font-size:14px;}

/* --- Botones --------------------------------------------------------------- */
.perfil-acciones{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:20px;}
.perfil-boton-guardar{padding:.75rem 1.75rem;border-radius:12px;background:var(--fc-acento-oscuro);
    color:#fff;font-weight:700;}
.perfil-boton-guardar:hover{background:#9a3412;color:#fff;}
.perfil-boton-secundario{padding:.75rem 1.75rem;border-radius:12px;background:#f1f5f9;color:#334155;font-weight:700;}
.perfil-boton-secundario:hover{background:#e2e8f0;color:#0f172a;}
.perfil-boton-peligro{padding:.75rem 1.75rem;border-radius:12px;background:#b91c1c;color:#fff;font-weight:700;}
.perfil-boton-peligro:hover{background:#991b1b;color:#fff;}
.perfil-peligro__texto{font-size:14px;line-height:1.6;color:#475569;}

/* --- Documentos ------------------------------------------------------------ */
.perfil-documento__cabecera{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;}
.perfil-documento__cabecera .perfil-seccion{margin-bottom:0;}
.perfil-documento .perfil-form{margin-top:20px;}
.perfil-estado{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;}
.perfil-estado--subido{background:#ecfdf5;color:#047857;}
.perfil-estado--pendiente{background:#fffbeb;color:#b45309;}
.perfil-estado--vencido{background:#fef2f2;color:#b91c1c;}
.perfil-documento__nota{display:flex;align-items:center;gap:12px;margin:12px 0 0;font-size:12px;color:#475569;}
.perfil-documento__nota img{flex:none;width:56px;height:56px;border-radius:50%;object-fit:cover;
    border:2px solid #fff;box-shadow:0 1px 4px rgba(15,23,42,.15);}
.perfil-documento__nota a{color:var(--fc-primario);font-weight:600;}
.perfil-archivos{display:flex;flex-direction:column;gap:8px;}
.perfil-archivo{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #f1f5f9;border-radius:12px;}
.perfil-archivo__icono{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
    border-radius:10px;background:#fef2f2;color:#b91c1c;font-size:20px;}
.perfil-archivo__datos{display:flex;flex-direction:column;min-width:0;}
.perfil-archivo__datos strong{font-size:14px;color:#0f172a;}
.perfil-archivo__datos span{font-size:12px;color:var(--fc-texto-suave);}
.perfil-archivo__vigencia--vencido{color:#b91c1c;font-weight:600;}
.perfil-archivo__acciones{display:flex;gap:4px;margin-left:auto;}
.perfil-archivo__accion{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
    padding:0;border:0;border-radius:10px;background:transparent;color:var(--fc-primario);font-size:18px;}
.perfil-archivo__accion:hover{background:rgba(var(--fc-primario-rgb),.08);}
.perfil-archivo__accion--peligro{color:#b91c1c;}
.perfil-archivo__accion--peligro:hover{background:#fef2f2;}
.perfil-archivo__accion:focus-visible{outline:2px solid var(--fc-primario);outline-offset:1px;}

/* --- Modales --------------------------------------------------------------- */
.perfil-modal{border-radius:16px;}
.perfil-modal__titulo{margin:0;font-size:20px;font-weight:700;color:#0f172a;}
.perfil-modal .modal-body{padding-top:0;font-size:14px;line-height:1.6;color:#475569;}
.perfil-modal__lista{margin-top:8px;padding-left:1.2rem !important;list-style:disc;}
.perfil-modal__lista li{list-style:disc;}

@media (max-width: 991.98px){
    /* En pantallas angostas el menu pasa a una fila que se desliza. */
    .perfil-menu{flex-direction:row !important;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;}
    .perfil-menu .perfil-menu__item{flex:none;width:auto;padding:9px 14px;white-space:nowrap;}
    .perfil-ayuda{display:none;}
}
@media (max-width: 575.98px){
    .perfil-consejo__dibujo{display:none;}
    .perfil-tarjeta{padding:18px;}
    .perfil-encabezado__persona{flex-direction:column;align-items:flex-start;gap:14px;}
    .perfil-encabezado__foto{text-align:left;}
    .perfil-banner-editor{align-items:flex-start;flex-direction:column;}
    .perfil-banner-editor__vista{width:100%;height:128px;}
    .perfil-acciones .fc-boton{flex:1;}
}

/* Configuración de cuenta (2026-10-29): el aviso de arriba lleva a Mi perfil profesional y
   la pestaña Cuenta abre con el resumen del perfil. */
.perfil-consejo__boton{margin:10px 0 0;}
.perfil-resumen__rotulo{margin:0 0 4px;font-size:12px;font-weight:800;letter-spacing:.06em;
    text-transform:uppercase;color:var(--fc-primario);}
.perfil-resumen .perfil-chip{margin:0 6px 6px 0;}

/* ---------------------------------------------------------------------------
   Mi perfil profesional: editor (access/_editor_perfil.html, 2026-10-29).

   Los bloques que eran de Configuración > Mi perfil, dentro de las tarjetas
   .perfil-bloque de la ficha. Los campos usan las mismas reglas que
   Configuración (:is(.perfil-config,.perfil-editor) más arriba). La cabecera
   del sitio es fija: las anclas del menú dejan espacio para ella.
   --------------------------------------------------------------------------- */
/* Una regla general del sitio angosta los <form>: el editor ocupa toda la columna, como
   .perfil-config form en Configuración. */
.perfil-editor{width:100%;}
.perfil-editor__parte{margin-top:20px;padding-top:20px;border-top:1px solid var(--fc-borde);}
.perfil-bloque__cabecera+.perfil-editor__parte{margin-top:0;padding-top:0;border-top:0;}
.perfil-editor .perfil-bloque,.perfil-editor__parte,#estado-perfil,#experiencia-profesional,
#servicios,#trabajos-realizados{scroll-margin-top:96px;}
.perfil-editor__acciones{margin:0 0 20px;}
/* La foto va dentro de la tarjeta del encabezado: sin el fondo ni el margen que tiene como
   tarjeta propia en Configuración. */
.perfil-editor .perfil-encabezado{margin-bottom:0;background:none;}
/* «Se actualiza solo» viene después del banner editable: separado como una parte más. */
.perfil-editor .pe .pe__subtitulo{margin-top:20px;padding-top:20px;border-top:1px solid var(--fc-borde);}
.perfil-editor-menu{margin-top:20px;padding:18px;border:1px solid var(--fc-borde);border-radius:18px;
    background:#fff;}
.perfil-editor-menu__titulo{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.06em;
    text-transform:uppercase;color:var(--fc-texto-suave);}
.perfil-editor-menu__lista{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;}
.perfil-editor-menu__lista a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;
    color:#334155;font-size:14px;font-weight:600;text-decoration:none;}
.perfil-editor-menu__lista a:hover,.perfil-editor-menu__lista a:focus-visible{
    background:rgba(var(--fc-primario-rgb),.08);color:var(--fc-primario);}
.perfil-editor-menu__lista i{font-size:17px;color:var(--fc-primario);}
.perfil-editor-menu__acciones{display:flex;flex-direction:column;gap:8px;margin-top:14px;}
.perfil-editor-menu__acciones .fc-boton{width:100%;margin:0;justify-content:center;}
/* En el editor la tarjeta deja de ser fija (.perfil-ficha es sticky en la ficha): lo que
   queda a la vista al bajar es el menú de secciones, no la tarjeta tapada por él. */
.perfil-editor-columna .perfil-ficha{position:static;}
@media (min-width: 992px){
    .perfil-editor-menu{position:sticky;top:96px;}
}
@media (max-width: 991.98px){
    /* Como el menú de Configuración: en pantallas angostas, una fila que se desliza. */
    .perfil-editor-menu__lista{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;}
    .perfil-editor-menu__lista a{white-space:nowrap;}
    .perfil-editor-menu__acciones{flex-direction:row;flex-wrap:wrap;}
    .perfil-editor-menu__acciones .fc-boton{flex:1 1 200px;width:auto;}
}

/* ---------------------------------------------------------------------------
   Mis conversaciones (templates/chat/room_list.html).

   Misma forma que la lista de notificaciones, pero cada fila es un enlace a
   la sala. Los contratos terminados se muestran con la marca "Solo lectura".
   --------------------------------------------------------------------------- */
.conv{padding:32px 0 64px;}
.conv__encabezado{margin-bottom:24px;text-align:center;}
.conv__linea{display:block;width:44px;height:4px;margin:0 auto 16px;border-radius:999px;
    background:var(--fc-primario);}
.conv__titulo{margin:0 0 8px;font-size:clamp(20px,2.2vw,24px);font-weight:800;letter-spacing:.12em;
    text-transform:uppercase;color:var(--fc-acento);}
.conv__bajada{font-size:14px;color:var(--fc-texto-suave);}

.conv__tarjeta{overflow:hidden;background:#fff;border:1px solid rgba(226,232,240,.8);
    border-radius:16px;box-shadow:0 4px 24px -6px rgba(15,23,42,.08);}
.conv__lista{margin:0;padding:0;list-style:none;}
.conv__lista li + li .conv__item{border-top:1px solid #f1f5f9;}

.conv__item{display:flex;align-items:center;gap:16px;padding:14px 24px;color:var(--fc-texto);
    transition:background-color .15s ease;}
.conv__item:hover{background-color:#f8fafc;color:var(--fc-texto);}
.conv__item:focus-visible{outline:2px solid var(--fc-primario);outline-offset:-2px;}
.conv__item--sin-leer{background-color:rgba(var(--fc-primario-rgb),.05);}
.conv__item--sin-leer:hover{background-color:rgba(var(--fc-primario-rgb),.09);}

.conv__avatar{flex:none;width:48px;height:48px;border-radius:50%;object-fit:cover;background:#eceff3;}
.conv__avatar--vacio{display:inline-flex;align-items:center;justify-content:center;color:#94a3b8;font-size:22px;}

.conv__texto{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.conv__linea-superior{display:flex;align-items:center;gap:8px;}
.conv__nombre{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.conv__item--sin-leer .conv__nombre{font-weight:700;}
.conv__etiqueta{flex:none;padding:1px 8px;border-radius:999px;background:#f1f5f9;color:#475569;
    font-size:11px;font-weight:600;}
.conv__mensaje{font-size:13px;line-height:1.35;color:var(--fc-texto-suave);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.conv__item--sin-leer .conv__mensaje{color:#334155;font-weight:500;}
.conv__yo{color:#94a3b8;}
.conv__sin-mensajes{font-style:italic;color:#94a3b8;}

.conv__meta{flex:none;display:flex;align-items:center;gap:12px;}
.conv__tiempo{font-size:12.5px;color:#6b7a90;white-space:nowrap;}
.conv__contador{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--fc-primario);
    color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center;}
.conv__flecha{font-size:18px;color:#94a3b8;transition:transform .15s ease,color .15s ease;}
.conv__item:hover .conv__flecha{color:var(--fc-primario);transform:translateX(3px);}

.conv__vacio{padding:56px 24px;text-align:center;color:var(--fc-texto-suave);}
.conv__vacio-icono{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;
    margin-bottom:12px;border-radius:50%;background:#f1f5f9;font-size:26px;color:#94a3b8;}
.conv__paginacion{margin-top:24px;}
.conv__paginacion .page-link{border-radius:10px;margin:0 3px;border-color:var(--fc-borde);}
.conv__paginacion .page-item.active .page-link{border-color:var(--fc-primario);}

@media (max-width: 575.98px){
    .conv__item{align-items:flex-start;padding:14px 16px;gap:12px;}
    .conv__avatar{width:40px;height:40px;}
    .conv__meta{flex-direction:column-reverse;align-items:flex-end;gap:6px;}
    .conv__flecha{display:none;}
}
@media (prefers-reduced-motion: reduce){
    .conv__flecha{transition:none;}
    .conv__item:hover .conv__flecha{transform:none;}
}

/* Panel de filtros de la portada: conserva los mismos controles, pero los
   presenta como una tarjeta de refinamiento coherente con el nuevo inicio. */
.search-filters__avanzados{margin-top:12px;}
.search-filters__avanzados-titulo{display:flex;align-items:center;gap:10px;width:fit-content;min-width:218px;
    padding:8px 12px;border:1px solid #dce8f8;border-radius:13px;background:#fff;box-shadow:0 6px 13px -12px rgba(15,23,42,.45);
    cursor:pointer;color:#274568;list-style:none;user-select:none;transition:border-color .18s ease,background-color .18s ease;}
.search-filters__avanzados-titulo::-webkit-details-marker{display:none;}
.search-filters__avanzados-titulo:hover{border-color:#bfd7f8;background:#f8fbff;color:var(--fc-primario);}
.search-filters__avanzados-icono{display:grid;width:28px;height:28px;place-items:center;border-radius:9px;background:#e8f1ff;color:var(--fc-primario);font-size:16px;}
.search-filters__avanzados-texto{display:flex;flex:1;flex-direction:column;gap:1px;line-height:1.15;}
.search-filters__avanzados-texto strong{font-size:12px;font-weight:800;}.search-filters__avanzados-texto small{color:#8090a8;font-size:10px;font-weight:600;}
.search-filters__avanzados-flecha{margin-left:2px;color:#6280a5;font-size:18px;transition:transform .2s ease;}
.search-filters__avanzados[open] .search-filters__avanzados-titulo{border-color:#c9dcf7;background:#f5f9ff;}
.search-filters__avanzados[open] .search-filters__avanzados-flecha{transform:rotate(180deg);}
.search-filters__avanzados-cuerpo{display:block;margin-top:10px;padding:16px;border:1px solid #dce8f8;border-radius:17px;background:#fff;box-shadow:0 13px 24px -22px rgba(15,23,42,.52);}
.search-filters__avanzados-cabecera{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}.search-filters__avanzados-cabecera p{margin:0;color:#697c98;font-size:12px;line-height:1.45;}.search-filters__avanzados-cabecera span{flex:none;padding:4px 8px;border-radius:999px;background:#edf5ff;color:var(--fc-primario);font-size:10px;font-weight:800;}
.search-filters__avanzados-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));}.search-filters__avanzados-grid .search-filters__field{min-width:0;padding:12px 13px;border:1px solid #e6edf6;border-radius:12px;background:#f9fbfe;}.search-filters__avanzados-grid .form-select{width:100%;min-width:0;padding:.5rem 2.35rem .5rem .8rem;border:0;background-color:transparent;background-position:right .8rem center;box-shadow:none;color:#33455f;font-size:13px;line-height:1.35;text-indent:0;}.search-filters__avanzados-grid .form-select:focus{background-color:#fff;box-shadow:0 0 0 2px rgba(var(--fc-primario-rgb),.22);}
.search-filters__etiqueta{display:flex;align-items:center;gap:5px;margin-bottom:4px;color:#55708f;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}.search-filters__etiqueta i{color:var(--fc-primario);font-size:14px;}
.home-profesional__plan{display:inline-flex;align-items:center;gap:4px;margin:0 0 7px;padding:4px 8px;border-radius:999px;background:#fff5d9;color:#a26000;font-size:10px;font-weight:850;line-height:1;}.home-profesional__plan i{font-size:12px;}.home-profesional__plan--silver{background:#edf1f6;color:#4d5b70;}
@media (max-width: 575.98px){
    .search-filters__avanzados-titulo{width:100%;}
    .search-filters__avanzados-cuerpo{padding:13px;}
    .search-filters__avanzados-cabecera{align-items:flex-start;flex-direction:column;gap:7px;}
    .search-filters__avanzados-grid{grid-template-columns:1fr;}
}

/* Detalle de contrato: cada estado y participante procede del contrato real. */
.contract-detail{min-height:calc(100vh - 160px);padding:50px 0 72px;background:radial-gradient(circle at 2% 5%,#e4efff 0,transparent 27%),radial-gradient(circle at 97% 4%,#edf4ff 0,transparent 25%),#f5f8fd;}
.contract-detail__container{max-width:1280px;}
.contract-detail__header{margin:0 4px 34px;}.contract-detail__title-row{display:flex;align-items:center;gap:16px;}.contract-detail__title-row>span{width:34px;height:6px;border-radius:999px;background:var(--fc-primario);box-shadow:0 2px 6px rgba(var(--fc-primario-rgb),.28);}.contract-detail__title-row h1{margin:0;color:#101d36;font-size:clamp(29px,3vw,39px);font-weight:800;line-height:1.15;letter-spacing:-.035em;}.contract-detail__title-row h1 strong{color:var(--fc-primario);font-weight:inherit;}.contract-detail__header p{margin:9px 0 0;color:#607492;font-size:16px;}

.contract-flow{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 42px 46px;}.contract-flow__line{position:absolute;top:19px;right:10%;left:10%;height:2px;background:#dce5f1;}.contract-flow__step{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;gap:11px;text-align:center;color:#637692;}.contract-flow__step span{display:grid;width:39px;height:39px;place-items:center;border-radius:50%;background:#e5ebf4;color:#657895;font-size:15px;font-weight:800;}.contract-flow__step strong{padding-bottom:5px;color:inherit;font-size:14px;font-weight:650;white-space:nowrap;}.contract-flow__step--complete span{background:#dceaff;color:var(--fc-primario);}.contract-flow__step--current{color:var(--fc-primario);}.contract-flow__step--current span{background:var(--fc-primario);color:#fff;box-shadow:0 7px 14px rgba(var(--fc-primario-rgb),.29);}.contract-flow__step--current strong{border-bottom:2px solid var(--fc-primario);font-weight:800;}

.contract-status-summary{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:32px;padding:25px 28px;border:1px solid rgba(225,233,244,.9);border-radius:20px;background:#fff;box-shadow:0 15px 28px -24px rgba(24,53,94,.42);}.contract-status-summary__main,.contract-status-summary__age{display:flex;align-items:center;gap:16px;}.contract-status-summary__icon{display:grid;flex:none;width:58px;height:58px;place-items:center;border-radius:50%;background:#eef5ff;color:var(--fc-primario);font-size:27px;}.contract-status-summary p{margin:0 0 4px;color:#17243c;font-size:16px;font-weight:700;}.contract-status-summary time,.contract-status-summary__age span{display:block;color:#8395b1;font-size:14px;}.contract-status-summary__age{color:#8aa0bd;}.contract-status-summary__age>i{font-size:27px;}.contract-status-summary__age strong{display:block;color:#16233a;font-size:17px;line-height:1.2;}.contract-status{display:inline-flex;margin-left:6px;padding:4px 11px;border-radius:999px;font-size:14px;font-weight:800;line-height:1.2;}.contract-status--pending{background:#fff0e8;color:#ff6b1a;}.contract-status--in_progress{background:#eaf3ff;color:#1264d6;}.contract-status--finished_waiting{background:#fff4d9;color:#9e6400;}.contract-status--finished{background:#e7f8ef;color:#11774c;}.contract-status--cancelled{background:#f1f3f6;color:#6b7280;text-decoration:line-through;text-decoration-thickness:1px;}

.contract-parties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-bottom:40px;}.contract-party{position:relative;overflow:hidden;padding:38px 34px 30px;border:1px solid rgba(229,236,245,.9);border-radius:27px;background:#fff;box-shadow:0 17px 34px -28px rgba(24,53,94,.48);}.contract-party:before{position:absolute;top:0;left:0;width:100%;height:100px;content:"";background:linear-gradient(100deg,#f4f8ff,#fff);}.contract-party--contratante:before{background:linear-gradient(100deg,#fff8ee,#fff);}.contract-party__identity{position:relative;display:flex;align-items:center;gap:19px;min-width:0;}.contract-party__identity img{width:94px;height:94px;flex:none;border:4px solid #fff;border-radius:50%;background:#e5ebf4;box-shadow:0 6px 12px rgba(25,48,82,.16);object-fit:cover;}.contract-party__identity h2{overflow:hidden;margin:0 0 7px;color:#111d32;font-size:21px;font-weight:800;line-height:1.18;text-overflow:ellipsis;white-space:nowrap;}.contract-party__role{display:inline-flex;padding:4px 12px;border-radius:999px;font-size:13px;line-height:1.2;}.contract-party__role--freelancer{background:#edf4ff;color:var(--fc-primario);}.contract-party__role--contratante{background:#fff0e8;color:#ff6b1a;}.contract-party__rating{margin:9px 0 0;color:#667b98;font-size:13px;}.contract-party__rating span{margin-right:5px;color:#f5ae20;font-size:16px;letter-spacing:1px;}.contract-party__details{position:relative;display:grid;gap:14px;margin:27px 0 0;padding:25px 0 0;border-top:1px solid #e9eef5;}.contract-party__details div{display:grid;grid-template-columns:minmax(125px,.8fr) minmax(0,1.4fr);gap:14px;align-items:start;}.contract-party__details dt{display:flex;gap:10px;color:#162844;font-size:15px;font-weight:750;}.contract-party__details dt i{color:#405b82;font-size:18px;}.contract-party__details dd{margin:0;overflow-wrap:anywhere;color:#5c7291;font-size:14px;line-height:1.4;text-align:right;}

.contract-action{margin-bottom:30px;}.contract-action form{margin:0;}.contract-action__button{display:flex;width:100%;min-height:66px;align-items:center;justify-content:center;gap:13px;padding:15px 24px;border:0;border-radius:15px;background:linear-gradient(100deg,#0c60f5,#126cf6);box-shadow:0 12px 22px -12px rgba(15,94,241,.72);color:#fff;font-size:18px;font-weight:750;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;}.contract-action__button:hover{transform:translateY(-2px);box-shadow:0 17px 26px -13px rgba(15,94,241,.8);filter:brightness(1.04);}.contract-action__button:focus-visible,.contract-chat__button:focus-visible{outline:3px solid rgba(var(--fc-primario-rgb),.28);outline-offset:3px;}.contract-action__button i{font-size:25px;}.contract-action>p{display:flex;min-height:66px;align-items:center;justify-content:center;gap:10px;margin:0;padding:16px 24px;border:1px solid #e4eaf3;border-radius:15px;background:#fff;color:#647895;font-size:15px;text-align:center;}.contract-action>p i{color:var(--fc-primario);font-size:21px;}

.contract-chat{display:flex;align-items:center;gap:17px;padding:25px 28px;border:1px solid rgba(229,236,245,.9);border-radius:20px;background:#fff;box-shadow:0 15px 28px -24px rgba(24,53,94,.42);}.contract-chat__icon{display:grid;flex:none;width:58px;height:58px;place-items:center;border-radius:50%;background:#fff0e9;color:#ff6b1a;font-size:27px;}.contract-chat div{min-width:0;flex:1;}.contract-chat h2{margin:0 0 5px;color:#15233a;font-size:18px;font-weight:800;}.contract-chat p{margin:0;color:#8294af;font-size:15px;}.contract-chat__button{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:9px;min-width:148px;padding:13px 20px;border-radius:13px;background:#ff6c13;box-shadow:0 10px 18px -12px rgba(255,108,19,.78);color:#fff;font-size:16px;font-weight:750;transition:transform .18s ease,filter .18s ease;}.contract-chat__button:hover{transform:translateY(-2px);color:#fff;filter:brightness(1.04);}.contract-chat__button i{font-size:20px;}

@media (max-width:767.98px){.contract-detail{padding:32px 0 46px;}.contract-detail__header{margin-bottom:27px;}.contract-detail__title-row{align-items:flex-start;gap:11px;}.contract-detail__title-row>span{width:25px;height:5px;margin-top:14px;}.contract-detail__header p{font-size:14px;}.contract-flow{margin:0 0 32px;gap:2px;}.contract-flow__line{top:15px;right:7%;left:7%;}.contract-flow__step{gap:7px;}.contract-flow__step span{width:31px;height:31px;font-size:12px;}.contract-flow__step strong{max-width:64px;padding-bottom:4px;font-size:10px;line-height:1.2;white-space:normal;}.contract-status-summary{align-items:flex-start;flex-direction:column;gap:19px;padding:20px;}.contract-status-summary__main{align-items:flex-start;gap:12px;}.contract-status-summary__icon{width:46px;height:46px;font-size:23px;}.contract-status-summary p{font-size:15px;}.contract-status-summary time,.contract-status-summary__age span{font-size:12px;}.contract-status-summary__age{padding-left:58px;}.contract-parties{grid-template-columns:1fr;gap:18px;margin-bottom:25px;}.contract-party{padding:30px 21px 23px;border-radius:21px;}.contract-party__identity{gap:13px;}.contract-party__identity img{width:73px;height:73px;}.contract-party__identity h2{font-size:17px;}.contract-party__details{margin-top:22px;padding-top:20px;gap:12px;}.contract-party__details div{grid-template-columns:1fr;gap:3px;}.contract-party__details dd{text-align:left;}.contract-action__button{min-height:59px;font-size:16px;}.contract-chat{align-items:flex-start;flex-wrap:wrap;padding:21px;}.contract-chat__icon{width:46px;height:46px;font-size:23px;}.contract-chat div{min-width:calc(100% - 63px);}.contract-chat h2{font-size:17px;}.contract-chat p{font-size:13px;line-height:1.45;}.contract-chat__button{width:100%;margin-top:3px;}}
@media (prefers-reduced-motion:reduce){.contract-action__button,.contract-chat__button{transition:none;}.contract-action__button:hover,.contract-chat__button:hover{transform:none;}}

/* Título del contrato, gestión personal y cierre (2026-10-17). Se añaden a la página
   que ya existía: no se rediseña nada, solo aparecen los controles que faltaban. */
.contract-detail__nombre{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:6px 0 4px;}
.contract-detail__numero{color:#8294af;font-size:14px;font-weight:700;}
.contract-detail__titulo{color:#15233a;font-size:17px;font-weight:800;overflow-wrap:anywhere;}
.contract-detail__sin-titulo{color:#8294af;font-size:15px;font-style:italic;}
.contract-detail__editar{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;
    border:1px solid #e4eaf3;border-radius:10px;background:#fff;color:var(--fc-primario);
    font-size:13px;font-weight:700;cursor:pointer;}
.contract-detail__editar:hover{border-color:var(--fc-primario);background:#f5f8ff;}
.contract-detail__gestion{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px;}
/* El ancho explícito es necesario: una regla global deja los <form> a todo lo ancho y
   cada botón se iba a su propia línea. */
.contract-detail__gestion form{width:auto;margin:0;}
.contract-detail__gestion-boton{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;
    border:1px solid #e4eaf3;border-radius:12px;background:#fff;color:#647895;
    font-size:13.5px;font-weight:700;cursor:pointer;}
.contract-detail__gestion-boton:hover{border-color:var(--fc-primario);color:var(--fc-primario);}
.contract-detail__gestion-boton--quitar:hover{border-color:#b91c1c;color:#b91c1c;}
.contract-close{margin:0 0 30px;padding:25px 28px;border:1px solid rgba(229,236,245,.9);
    border-radius:20px;background:#fff;box-shadow:0 15px 28px -24px rgba(24,53,94,.42);}
.contract-close h2{display:flex;align-items:center;gap:9px;margin:0 0 14px;color:#15233a;
    font-size:18px;font-weight:800;}
.contract-close h2 i{color:var(--fc-primario);}
.contract-close__fecha{margin:0 0 14px;color:#647895;font-size:14.5px;}
.contract-close__mensaje + .contract-close__mensaje{margin-top:14px;padding-top:14px;
    border-top:1px solid #eef2f8;}
.contract-close__mensaje h3{margin:0 0 4px;color:#8294af;font-size:12.5px;font-weight:800;
    letter-spacing:.04em;text-transform:uppercase;}
.contract-close__mensaje p{margin:0;color:#15233a;font-size:15px;line-height:1.5;overflow-wrap:anywhere;}
@media (max-width:767.98px){
    .contract-close{padding:21px;}
    .contract-detail__gestion-boton{flex:1 1 auto;justify-content:center;}
}

/* Centro legal: políticas editables se presentan como índice y acordeones. */
/* Calificaciones (contact/user_ratings.html): mismo alto mínimo que las páginas legales,
   así el footer queda abajo aunque haya pocas reseñas. */
.calificaciones{min-height:calc(100vh - 160px);}
.legal-document{min-height:calc(100vh - 160px);padding:42px 0 72px;background:radial-gradient(circle at 93% 4%,rgba(214,232,255,.76),transparent 25%),radial-gradient(circle at 4% 40%,rgba(236,245,255,.65),transparent 26%),#f5f8fc;}.legal-document__container{max-width:var(--fc-ancho-sitio);}.legal-document__hero{display:flex;align-items:center;justify-content:space-between;gap:32px;margin:0 2px 35px;}.legal-document__eyebrow{display:block;margin-bottom:8px;color:var(--fc-primario);font-size:12px;font-weight:850;letter-spacing:.11em;}.legal-document__hero h1{margin:0;color:#111d34;font-size:var(--fc-titulo-mini-hero,clamp(25px,2.1vw,32px));font-weight:850;line-height:1.08;letter-spacing:-.04em;}.legal-document__hero h1 strong{color:var(--fc-primario);font-weight:inherit;}.legal-document__hero>div:first-child>p{max-width:780px;margin:12px 0 0;color:#5f7494;font-size:18px;line-height:1.45;}.legal-document__highlight{display:flex;align-items:center;gap:16px;flex:0 1 410px;min-width:300px;padding:18px 20px;border:1px solid #d5e4fa;border-radius:19px;background:rgba(255,255,255,.84);box-shadow:0 14px 28px -25px rgba(31,73,130,.6);}.legal-document__highlight>span{display:grid;width:46px;height:46px;flex:none;place-items:center;border-radius:13px;background:#edf4ff;color:var(--fc-primario);font-size:23px;}.legal-document__highlight-img{width:100%;height:100%;object-fit:contain;}.legal-document__highlight p{margin:0;color:#243b5d;font-size:14px;line-height:1.4;}
.legal-document__layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:36px;}.legal-document__aside{display:grid;gap:20px;position:sticky;top:86px;}.legal-document__index,.legal-document__support{border:1px solid rgba(229,237,247,.96);border-radius:20px;background:#fff;box-shadow:0 12px 27px -25px rgba(25,54,99,.48);}.legal-document__index{padding:18px;}.legal-document__index h2{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:9px 10px 14px;border-bottom:1px solid #eef2f7;color:#17243a;font-size:16px;font-weight:800;}.legal-document__index h2 i{color:var(--fc-primario);font-size:20px;}.legal-document__index ol{display:grid;gap:2px;max-height:610px;margin:0;padding:0;overflow:auto;list-style:none;scrollbar-width:thin;}.legal-document__index-link{display:flex;align-items:flex-start;gap:11px;padding:9px 10px;border-radius:12px;color:#3e526e;font-size:14px;line-height:1.35;transition:background-color .16s ease,color .16s ease;}.legal-document__index-link:hover{background:#f3f7fd;color:var(--fc-primario);}.legal-document__index-link span{display:grid;width:23px;height:23px;flex:none;place-items:center;border-radius:50%;background:#f0f4f8;color:#4a607e;font-size:11px;font-weight:800;}.legal-document__index-link.is-active{background:#eaf3ff;color:var(--fc-primario);font-weight:750;}.legal-document__index-link.is-active span{background:var(--fc-primario);color:#fff;}.legal-document__support{padding:20px;background:linear-gradient(135deg,#f4f9ff,#eaf3ff);border-color:#d5e6ff;}.legal-document__support>span{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:#fff;color:var(--fc-primario);font-size:22px;box-shadow:0 6px 14px -10px rgba(33,92,184,.5);}.legal-document__support h2{margin:13px 0 4px;color:#17233a;font-size:16px;font-weight:800;}.legal-document__support p{margin:0;color:#697e9d;font-size:13px;}.legal-document__support a{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:16px;padding:10px 14px;border:1px solid var(--fc-primario);border-radius:11px;color:var(--fc-primario);font-size:13px;font-weight:750;transition:background-color .16s ease,color .16s ease;}.legal-document__support a:hover{background:var(--fc-primario);color:#fff;}
.legal-document__clauses{display:grid;gap:14px;min-width:0;}.legal-document__clause{scroll-margin-top:100px;overflow:hidden;border:1px solid #e5ebf4;border-radius:19px;background:#fff;box-shadow:0 12px 26px -26px rgba(25,54,99,.5);}.legal-document__clause[open]{box-shadow:0 17px 31px -27px rgba(25,54,99,.58);}.legal-document__clause summary{display:flex;align-items:center;gap:14px;min-height:66px;padding:16px 22px;cursor:pointer;list-style:none;}.legal-document__clause summary::-webkit-details-marker{display:none;}.legal-document__clause summary>span{display:grid;width:30px;height:30px;flex:none;place-items:center;border-radius:50%;background:#f0f4f8;color:#455b79;font-size:13px;font-weight:800;}.legal-document__clause summary h2{margin:0;flex:1;color:#16223a;font-size:17px;font-weight:800;line-height:1.3;}.legal-document__clause summary>i{color:#7185a2;font-size:21px;transition:transform .18s ease,color .18s ease;}.legal-document__clause[open] summary{border-bottom:1px solid #eef2f7;}.legal-document__clause[open] summary>span{background:var(--fc-primario);color:#fff;}.legal-document__clause[open] summary>i{color:var(--fc-primario);transform:rotate(180deg);}.legal-document__clause-content{padding:23px 26px 26px;color:#405573;font-size:14px;line-height:1.65;}.legal-document__clause-content>*:first-child{margin-top:0;}.legal-document__clause-content>*:last-child{margin-bottom:0;}.legal-document__clause-content h1,.legal-document__clause-content h2,.legal-document__clause-content h3{margin:21px 0 9px;color:#17243a;font-size:16px;font-weight:800;}.legal-document__clause-content p{margin:0 0 16px;}.legal-document__clause-content ul,.legal-document__clause-content ol{margin:0 0 16px;padding-left:23px;}.legal-document__clause-content li{margin:5px 0;}.legal-document__clause-content a{color:var(--fc-primario);font-weight:700;text-decoration:underline;}.legal-document__notice{display:flex;align-items:flex-start;gap:12px;margin-top:20px;padding:14px 16px;border:1px solid #cae0ff;border-radius:13px;background:#f0f7ff;color:#334d70;}.legal-document__notice i{display:grid;width:22px;height:22px;flex:none;place-items:center;border-radius:50%;background:var(--fc-primario);color:#fff;font-size:13px;}.legal-document__notice p{margin:0;font-size:13px;line-height:1.45;}.legal-document__actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;}.legal-document__actions>div{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;}.legal-document__action{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border:1px solid #ccd8e8;border-radius:12px;background:#fff;color:#263c5b;font-size:13px;font-weight:750;line-height:1.2;transition:transform .16s ease,background-color .16s ease,color .16s ease;}.legal-document__action:hover{transform:translateY(-1px);color:var(--fc-primario);}.legal-document__action--primary{border-color:var(--fc-primario);background:var(--fc-primario);box-shadow:0 9px 16px -11px rgba(var(--fc-primario-rgb),.78);color:#fff;}.legal-document__action--primary:hover{background:#105de5;color:#fff;}.legal-document__action--muted{border-color:#ffe1d5;background:#fff7f3;color:#f26b2f;}.legal-document__action--muted:hover{color:#d6531a;background:#fff0e9;}
@media (max-width:991.98px){.legal-document__hero{align-items:flex-start;flex-direction:column;gap:20px;}.legal-document__highlight{width:100%;max-width:570px;}.legal-document__layout{grid-template-columns:1fr;gap:20px;}.legal-document__aside{position:static;grid-template-columns:minmax(0,1fr) minmax(230px,.65fr);align-items:stretch;}.legal-document__index ol{max-height:270px;}.legal-document__support{display:flex;align-content:center;align-items:center;flex-wrap:wrap;column-gap:12px;}.legal-document__support>span{grid-row:span 2;}.legal-document__support h2{margin:0;}.legal-document__support p{flex-basis:calc(100% - 52px);}.legal-document__support a{width:100%;margin-top:13px;}}
@media (max-width:575.98px){.legal-document{padding:28px 0 43px;}.legal-document__hero{margin-bottom:24px;}.legal-document__eyebrow{font-size:11px;}.legal-document__hero h1{font-size:26px;}.legal-document__hero>div:first-child>p{margin-top:9px;font-size:15px;}.legal-document__highlight{min-width:0;padding:15px;}.legal-document__highlight>span{width:40px;height:40px;font-size:20px;}.legal-document__highlight p{font-size:13px;}.legal-document__aside{grid-template-columns:1fr;}.legal-document__index{padding:14px;}.legal-document__index h2{font-size:15px;}.legal-document__index ol{max-height:250px;}.legal-document__index-link{font-size:13px;}.legal-document__support{display:block;padding:17px;}.legal-document__support h2{margin:12px 0 4px;}.legal-document__support p{font-size:12px;}.legal-document__clause{border-radius:15px;}.legal-document__clause summary{min-height:60px;gap:10px;padding:14px;}.legal-document__clause summary>span{width:28px;height:28px;font-size:12px;}.legal-document__clause summary h2{font-size:14px;}.legal-document__clause-content{padding:18px 16px 20px;font-size:13px;line-height:1.58;}.legal-document__notice{padding:12px;}.legal-document__notice p{font-size:12px;}.legal-document__actions{align-items:stretch;flex-direction:column;padding-top:8px;}.legal-document__actions>a,.legal-document__actions>div{width:100%;}.legal-document__actions>div{justify-content:stretch;}.legal-document__action{flex:1;}.legal-document__action--primary{width:100%;}}
@media (prefers-reduced-motion:reduce){.legal-document__index-link,.legal-document__support a,.legal-document__clause summary>i,.legal-document__action{transition:none;}.legal-document__action:hover{transform:none;}}

/* Centro de contacto y feedback: se conservan los formularios existentes. */
.support-hub,.feedback-hub{min-height:calc(100vh - 150px);padding:30px 0 68px;background:radial-gradient(circle at 90% 2%,rgba(205,232,255,.7),transparent 28%),radial-gradient(circle at 1% 20%,rgba(225,239,255,.7),transparent 28%),#f4f8fd;}.support-hub__container,.feedback-hub__container{max-width:1340px;}.support-hub__hero{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:30px;padding:28px 30px;border:1px solid rgba(221,231,243,.95);border-radius:19px;background:rgba(255,255,255,.9);box-shadow:0 15px 29px -27px rgba(20,52,95,.52);}.support-hub__eyebrow,.feedback-hub__eyebrow{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid #cce0ff;border-radius:999px;background:#f1f7ff;color:var(--fc-primario);font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;}.support-hub__hero h1,.feedback-hub__hero h1{margin:11px 0 0;color:#111d34;font-size:var(--fc-titulo-mini-hero,clamp(25px,2.1vw,32px));font-weight:850;line-height:1.1;letter-spacing:-.035em;}.support-hub__hero h1 strong,.feedback-hub__hero h1 strong{color:var(--fc-primario);font-weight:inherit;}.support-hub__hero>div:first-child>p{max-width:720px;margin:9px 0 0;color:#586d8b;font-size:15px;line-height:1.48;}.support-hub__hero ul{display:flex;flex-wrap:wrap;gap:18px;margin:13px 0 0;padding:0;list-style:none;color:#5d718e;font-size:12px;}.support-hub__hero li{display:flex;align-items:center;gap:5px;}.support-hub__hero li i{color:#089360;font-size:15px;}.support-hub__hero-card{display:flex;align-items:flex-start;gap:13px;flex:0 1 340px;min-width:275px;padding:16px;border:1px solid #d4e4fb;border-radius:14px;background:linear-gradient(135deg,#f4f9ff,#fff);}.support-hub__hero-card>span{display:grid;width:43px;height:43px;flex:none;place-items:center;border-radius:11px;background:var(--fc-primario);color:#fff;font-size:22px;box-shadow:0 8px 14px -11px rgba(var(--fc-primario-rgb),.65);}.support-hub__hero-card strong{display:block;color:#1a2b46;font-size:13px;}.support-hub__hero-card small{display:block;margin-top:2px;color:#197e5c;font-size:11px;}.support-hub__hero-card small i{font-size:8px;}.support-hub__hero-card p{margin:8px 0 0;color:#657a98;font-size:11px;line-height:1.4;}
.support-hub__layout{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);align-items:start;gap:28px;}.support-hub__aside{position:sticky;top:86px;display:grid;gap:18px;}.support-hub__index,.support-hub__quick,.support-hub__panel{border:1px solid #e0e9f4;border-radius:16px;background:#fff;box-shadow:0 12px 27px -26px rgba(20,52,95,.55);}.support-hub__index{padding:14px;}.support-hub__index header{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;padding:4px 3px 12px;border-bottom:1px solid #edf2f7;color:#59708e;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}.support-hub__index header small{padding:3px 7px;border-radius:999px;background:#edf4ff;color:var(--fc-primario);font-size:10px;text-transform:none;}.support-hub__index a{display:flex;align-items:center;gap:9px;min-height:40px;padding:7px 8px;border-radius:10px;color:#405572;font-size:12px;font-weight:600;}.support-hub__index a:hover{background:#f4f8fd;color:var(--fc-primario);}.support-hub__index a b{display:grid;width:20px;height:20px;flex:none;place-items:center;border-radius:6px;background:#f0f4f8;color:#5d738f;font-size:10px;}.support-hub__index a.is-active{background:#edf5ff;color:var(--fc-primario);}.support-hub__index a.is-active b{background:var(--fc-primario);color:#fff;}.support-hub__index a em{margin-left:auto;padding:2px 6px;border:1px solid #d1e2ff;border-radius:5px;background:#fff;color:var(--fc-primario);font-size:9px;font-style:normal;}.support-hub__index a>i{margin-left:auto;color:#8193ad;font-size:16px;}.support-hub__quick{padding:16px;background:linear-gradient(135deg,#10213d,#152949);color:#fff;}.support-hub__quick>i{display:grid;width:33px;height:33px;place-items:center;border-radius:9px;background:rgba(64,143,255,.18);color:#6cabff;font-size:17px;}.support-hub__quick h2{margin:10px 0 3px;font-size:13px;font-weight:800;}.support-hub__quick p{margin:0;color:#c5d2e3;font-size:11px;line-height:1.4;}.support-hub__quick a{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:13px;padding:9px;border-radius:8px;background:var(--fc-primario);color:#fff;font-size:11px;font-weight:750;}.support-hub__content{display:grid;gap:14px;min-width:0;}.support-hub__message,.feedback-hub__message{padding:12px 15px;border:1px solid #c9ead9;border-radius:12px;background:#edfbf3;color:#176640;font-size:13px;}.support-hub__message--error,.feedback-hub__message--error{border-color:#ffd0d0;background:#fff1f1;color:#ab3030;}.support-hub__panel{scroll-margin-top:92px;padding:20px;}.support-hub__panel>header{display:flex;align-items:flex-start;gap:12px;padding-bottom:14px;border-bottom:1px solid #edf2f7;}.support-hub__panel>header>span{display:grid;width:33px;height:33px;flex:none;place-items:center;border-radius:9px;background:#edf4ff;color:var(--fc-primario);font-size:18px;}.support-hub__panel small{display:block;color:var(--fc-primario);font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;}.support-hub__panel h2{margin:2px 0 2px;color:#15233a;font-size:17px;font-weight:800;}.support-hub__panel header p{margin:0;color:#7386a1;font-size:11px;line-height:1.4;}.support-hub__form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:16px;}.support-hub__form-grid label,.feedback-hub__panel form>label{display:block;color:#334b6c;font-size:11px;font-weight:750;}.support-hub__form-grid label b,.feedback-hub__panel label b{color:#ec5d3c;}.support-hub__form-wide{grid-column:1/-1;}.support-hub__form-grid input,.support-hub__form-grid textarea,.feedback-hub__panel textarea{display:block;width:100%;margin-top:6px;padding:10px 11px;border:1px solid #dce6f2;border-radius:9px;background:#fbfdff;color:#253a58;font-size:12px;line-height:1.4;outline:0;transition:border-color .16s ease,box-shadow .16s ease;}.support-hub__form-grid textarea{min-height:112px;resize:vertical;}.support-hub__form-grid input:focus,.support-hub__form-grid textarea:focus,.feedback-hub__panel textarea:focus{border-color:var(--fc-primario);box-shadow:0 0 0 3px rgba(var(--fc-primario-rgb),.12);}.support-hub__error,.feedback-hub__error{display:block;margin-top:4px;color:#bd3535;font-size:11px;font-weight:600;}.support-hub__captcha{display:flex;justify-content:flex-end;margin:17px 0 0;}.support-hub__captcha>div{max-width:100%;}.support-hub__honeypot{display:none;}.support-hub__panel form>footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;}.support-hub__panel form>footer p{margin:0;color:#7286a2;font-size:10px;}.support-hub__panel form>footer p a{color:var(--fc-primario);font-weight:700;text-decoration:underline;}.support-hub__panel form button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;padding:10px 15px;border:0;border-radius:9px;background:#f35c0a;box-shadow:0 9px 15px -11px rgba(243,92,10,.75);color:#fff;font-size:11px;font-weight:800;}.support-hub__panel--compact{padding:18px;}.support-hub__info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;}.support-hub__info-grid article,.support-hub__schedule{padding:12px;border:1px solid #e5edf6;border-radius:10px;background:#f9fbfe;}.support-hub__info-grid i,.support-hub__schedule>i{color:var(--fc-primario);font-size:17px;}.support-hub__info-grid small{margin-top:5px;color:#3b506d;font-size:10px;}.support-hub__info-grid a{display:block;overflow-wrap:anywhere;color:#1f3c62;font-size:11px;font-weight:750;}.support-hub__info-grid p{margin:3px 0 0;color:#70849f;font-size:11px;}.support-hub__schedule{display:flex;align-items:center;gap:11px;margin-top:14px;}.support-hub__schedule p{margin:2px 0 0;color:#4c637f;font-size:12px;}.support-hub__inline-link{display:inline-flex;align-items:center;gap:3px;margin-left:auto;color:var(--fc-primario);font-size:11px;font-weight:750;white-space:nowrap;}.support-hub__callout{display:flex;align-items:flex-start;gap:9px;margin-top:14px;padding:11px 13px;border:1px solid #cce2ff;border-radius:10px;background:#f0f7ff;color:#3a5376;}.support-hub__callout i{color:var(--fc-primario);font-size:17px;}.support-hub__callout p{margin:0;font-size:11px;line-height:1.4;}.support-hub__bottom{display:flex;justify-content:space-between;padding:6px 2px;color:#7386a1;font-size:12px;}.support-hub__bottom a{color:inherit;}.support-hub__bottom a:hover{color:var(--fc-primario);}
.feedback-hub__hero{display:flex;align-items:center;justify-content:space-between;gap:38px;margin:4px 0 36px;}.feedback-hub__hero>div:first-child{max-width:760px;}.feedback-hub__hero>div:first-child>p{margin:12px 0 0;color:#607492;font-size:18px;line-height:1.45;}.feedback-hub__hero>div:first-child>p+p{margin-top:4px;font-size:16px;}.feedback-hub__hero section{display:flex;align-items:flex-start;gap:16px;flex:0 1 380px;padding:25px;border:1px solid #d8e6fb;border-radius:22px;background:#fff;box-shadow:0 16px 28px -26px rgba(25,54,99,.55);}.feedback-hub__hero section>span{display:grid;width:51px;height:51px;flex:none;place-items:center;border-radius:15px;background:#edf4ff;color:var(--fc-primario);font-size:26px;}.feedback-hub__hero h2{margin:0;color:#22334e;font-size:17px;font-weight:850;}.feedback-hub__hero section p{margin:6px 0;color:#71849f;font-size:14px;line-height:1.35;}.feedback-hub__hero section a{display:inline-flex;align-items:center;gap:5px;color:var(--fc-primario);font-size:12px;font-weight:800;}.feedback-hub__layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:32px;}.feedback-hub__aside{position:sticky;top:86px;display:grid;gap:18px;}.feedback-hub__index,.feedback-hub__reward,.feedback-hub__help,.feedback-hub__panel{border:1px solid #e0e9f4;border-radius:21px;background:#fff;box-shadow:0 14px 28px -27px rgba(25,54,99,.52);}.feedback-hub__index{padding:20px;}.feedback-hub__index header{display:flex;align-items:center;gap:11px;margin-bottom:12px;padding-bottom:14px;border-bottom:1px solid #edf2f7;}.feedback-hub__index header>i{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:#edf4ff;color:var(--fc-primario);font-size:19px;}.feedback-hub__index h2{margin:0;color:#283951;font-size:13px;font-weight:850;text-transform:uppercase;}.feedback-hub__index p{margin:2px 0 0;color:#8293ad;font-size:11px;}.feedback-hub__index>a{display:flex;align-items:center;gap:12px;padding:11px;border-radius:12px;color:#61748f;font-size:13px;font-weight:700;}.feedback-hub__index>a:hover{background:#f4f8fd;color:var(--fc-primario);}.feedback-hub__index>a b,.feedback-hub__panel>header>span,.feedback-hub__details summary>span{display:grid;width:30px;height:30px;flex:none;place-items:center;border-radius:50%;background:#eff4fa;color:#4b6180;font-size:13px;font-weight:850;}.feedback-hub__index>a.is-active{background:#eaf3ff;color:var(--fc-primario);}.feedback-hub__index>a.is-active b,.feedback-hub__panel>header>span{background:var(--fc-primario);box-shadow:0 6px 12px -8px rgba(var(--fc-primario-rgb),.7);color:#fff;}.feedback-hub__reward{padding:23px;background:linear-gradient(135deg,#3155e8,#503ecb);color:#fff;}.feedback-hub__reward>i{display:grid;width:46px;height:46px;place-items:center;border-radius:13px;background:rgba(255,255,255,.15);font-size:23px;}.feedback-hub__reward h2{margin:18px 0 8px;font-size:20px;font-weight:850;}.feedback-hub__reward p{margin:0;color:#e8eaff;font-size:13px;line-height:1.43;}.feedback-hub__reward a{display:inline-flex;align-items:center;gap:7px;margin-top:18px;padding:10px 13px;border-radius:9px;background:#fff;color:#3156dc;font-size:12px;font-weight:800;}.feedback-hub__help{display:flex;align-items:center;gap:10px;padding:14px;background:#edf6ff;border-color:#d5e8ff;}.feedback-hub__help>i{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--fc-primario);color:#fff;font-size:17px;}.feedback-hub__help div{min-width:0;flex:1;}.feedback-hub__help strong{display:block;color:#334a69;font-size:11px;}.feedback-hub__help p{margin:2px 0 0;color:#6e839f;font-size:10px;}.feedback-hub__help a{padding:7px 10px;border:1px solid #d4e0ed;border-radius:9px;background:#fff;color:#536a87;font-size:10px;font-weight:800;}.feedback-hub__content{display:grid;gap:18px;min-width:0;}.feedback-hub__panel{scroll-margin-top:92px;overflow:hidden;}.feedback-hub__panel>header,.feedback-hub__details summary{display:flex;align-items:flex-start;gap:14px;padding:24px 26px;border-bottom:1px solid #edf2f7;}.feedback-hub__panel h2{margin:0;color:#1a2942;font-size:21px;font-weight:850;line-height:1.25;}.feedback-hub__panel header p,.feedback-hub__details summary p{margin:3px 0 0;color:#7789a4;font-size:14px;}.feedback-hub__panel form{padding:24px 26px 26px;}.feedback-hub__panel form>label{display:flex;align-items:center;justify-content:space-between;color:#647996;font-size:12px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;}.feedback-hub__panel form>label small{color:#9aabc0;font-size:11px;letter-spacing:0;text-transform:none;}.feedback-hub__panel textarea{min-height:130px;margin-top:10px;padding:14px;font-size:14px;resize:vertical;}.feedback-hub__panel form>footer{display:flex;align-items:center;justify-content:space-between;gap:17px;margin-top:20px;}.feedback-hub__panel form>footer p{margin:0;color:#8798b0;font-size:11px;}.feedback-hub__panel form button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 19px;border:0;border-radius:12px;background:#f35c0a;box-shadow:0 11px 18px -12px rgba(243,92,10,.8);color:#fff;font-size:13px;font-weight:850;}.feedback-hub__details summary{cursor:pointer;list-style:none;border-bottom:0;}.feedback-hub__details summary::-webkit-details-marker{display:none;}.feedback-hub__details summary>div{min-width:0;flex:1;}.feedback-hub__details summary h2{font-size:18px;}.feedback-hub__details summary>i{margin-top:4px;color:#7185a2;font-size:21px;transition:transform .18s ease;}.feedback-hub__details[open] summary{border-bottom:1px solid #edf2f7;}.feedback-hub__details[open] summary>i{transform:rotate(180deg);color:var(--fc-primario);}.feedback-hub__details>div{padding:18px 26px 23px;color:#536985;font-size:14px;line-height:1.5;}.feedback-hub__details>div p{margin:0;}.feedback-hub__details>div a{color:var(--fc-primario);font-weight:800;text-decoration:underline;}.feedback-hub__notice{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border:1px solid #cde1ff;border-radius:16px;background:#edf6ff;color:#405979;font-size:13px;line-height:1.45;}.feedback-hub__notice i{display:grid;width:25px;height:25px;flex:none;place-items:center;border-radius:50%;background:var(--fc-primario);color:#fff;font-size:14px;}.feedback-hub__notice p{margin:0;}.feedback-hub__notice a{color:var(--fc-primario);font-weight:850;text-decoration:underline;}.feedback-hub__bottom{display:flex;align-items:center;justify-content:space-between;padding:4px 2px;color:#7f91aa;font-size:12px;font-weight:700;}.feedback-hub__bottom>a{color:inherit;}.feedback-hub__bottom div{display:flex;gap:16px;}.feedback-hub__bottom div a{color:#5f728d;text-decoration:underline;}
@media (max-width:991.98px){.support-hub__hero,.feedback-hub__hero{align-items:flex-start;flex-direction:column;}.support-hub__hero-card{width:100%;max-width:500px;}.support-hub__layout,.feedback-hub__layout{grid-template-columns:1fr;}.support-hub__aside,.feedback-hub__aside{position:static;grid-template-columns:minmax(0,1fr) minmax(220px,.65fr);align-items:start;}.support-hub__quick,.feedback-hub__reward{grid-row:span 2;}.feedback-hub__help{grid-column:1;}.support-hub__index{grid-column:1;}.feedback-hub__index{grid-column:1;}}
@media (max-width:575.98px){.support-hub,.feedback-hub{padding:22px 0 44px;}.support-hub__hero{padding:20px;gap:19px;}.support-hub__hero h1,.feedback-hub__hero h1{font-size:26px;}.support-hub__hero>div:first-child>p{font-size:14px;}.support-hub__hero ul{gap:8px;font-size:10px;}.support-hub__hero-card{min-width:0;}.support-hub__layout,.feedback-hub__layout{gap:19px;}.support-hub__aside,.feedback-hub__aside{grid-template-columns:1fr;}.support-hub__quick,.feedback-hub__reward{grid-row:auto;}.support-hub__index,.feedback-hub__index{grid-column:auto;}.support-hub__panel{padding:16px;}.support-hub__panel>header{gap:9px;}.support-hub__panel h2{font-size:16px;}.support-hub__form-grid{grid-template-columns:1fr;gap:11px;}.support-hub__form-wide{grid-column:auto;}.support-hub__captcha{justify-content:flex-start;overflow:auto;}.support-hub__panel form>footer,.feedback-hub__panel form>footer{align-items:stretch;flex-direction:column;}.support-hub__panel form button,.feedback-hub__panel form button{width:100%;}.support-hub__info-grid{grid-template-columns:1fr;}.support-hub__inline-link{display:none;}.support-hub__bottom,.feedback-hub__bottom{align-items:flex-start;flex-direction:column;gap:12px;}.feedback-hub__hero{gap:20px;margin-bottom:26px;}.feedback-hub__hero>div:first-child>p{font-size:15px;}.feedback-hub__hero section{padding:18px;}.feedback-hub__aside{gap:14px;}.feedback-hub__reward{padding:20px;}.feedback-hub__panel>header,.feedback-hub__details summary{padding:18px;gap:10px;}.feedback-hub__panel h2,.feedback-hub__details summary h2{font-size:16px;}.feedback-hub__panel header p,.feedback-hub__details summary p{font-size:12px;}.feedback-hub__panel form,.feedback-hub__details>div{padding:18px;}.feedback-hub__panel textarea{min-height:122px;font-size:13px;}.feedback-hub__notice{padding:13px;font-size:12px;}.feedback-hub__bottom div{gap:13px;flex-wrap:wrap;}}
@media (prefers-reduced-motion:reduce){.support-hub__form-grid input,.support-hub__form-grid textarea,.feedback-hub__panel textarea,.feedback-hub__details summary>i{transition:none;}}

/* Contactos y portafolio: los componentes se cargan en modales Bootstrap. */
.freelancer-contact-modal{max-width:580px;}.freelancer-contact-modal__card,.experience-editor-modal__card{position:relative;overflow:hidden;border-radius:26px!important;background:#fff;box-shadow:0 28px 70px rgba(15,33,66,.24);}.freelancer-contact-modal__card:after,.experience-editor-modal__card:after{position:absolute;right:-85px;bottom:-110px;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(255,177,88,.23),transparent 68%);content:"";pointer-events:none;}.freelancer-contact-modal__close,.experience-editor-modal__close{position:absolute;z-index:2;top:20px;right:20px;display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:50%;background:var(--fc-primario);box-shadow:0 7px 14px -7px rgba(var(--fc-primario-rgb),.9);color:#fff;font-size:23px;line-height:1;}.freelancer-contact-modal__body{position:relative;padding:58px 62px 46px!important;text-align:center;}.freelancer-contact-modal__spark{position:absolute;display:block;border-radius:50%;}.freelancer-contact-modal__spark--one{top:30px;left:36px;width:16px;height:16px;background:#ff721b;}.freelancer-contact-modal__spark--two{top:52px;left:56px;width:9px;height:9px;background:#6f95f3;}.freelancer-contact-modal__icon,.experience-editor-modal__icon{display:grid;width:65px;height:65px;margin:0 auto 13px;place-items:center;border:1px solid #c9ddff;border-radius:50%;background:#edf5ff;color:var(--fc-primario);font-size:32px;box-shadow:0 10px 23px -19px rgba(var(--fc-primario-rgb),.8);}.freelancer-contact-modal__rule,.experience-editor-modal__rule{display:block;width:42px;height:4px;margin:0 auto 18px;border-radius:99px;background:var(--fc-primario);}.freelancer-contact-modal__body h2,.experience-editor-modal__body h2{margin:0;color:#101a2e;font-size:clamp(20px,2.2vw,24px);font-weight:900;letter-spacing:-.04em;text-transform:uppercase;}.freelancer-contact-modal__body h2 strong,.experience-editor-modal__body h2 strong{color:#f56a12;font-weight:inherit;}.freelancer-contact-modal__body>p{max-width:410px;margin:12px auto 21px;color:#566a89;font-size:16px;line-height:1.45;}.freelancer-contact-modal__person{display:flex;align-items:center;justify-content:center;gap:11px;min-height:64px;margin:0 auto 27px;padding:10px 17px;border:1px solid #dce7f4;border-radius:16px;background:#f8fbff;color:#273954;font-size:14px;}.freelancer-contact-modal__person img{width:39px;height:39px;border-radius:50%;object-fit:cover;}.freelancer-contact-modal__errors,.experience-editor-modal__errors{margin:0 0 17px;padding:10px 13px;border:1px solid #ffc8c8;border-radius:10px;background:#fff3f3;color:#a62e2e;font-size:12px;text-align:left;}.freelancer-contact-modal footer{display:grid;grid-template-columns:1fr 1fr;gap:14px;}.freelancer-contact-modal footer button{min-height:49px;border-radius:12px;font-size:15px;font-weight:800;}.freelancer-contact-modal__cancel{border:2px solid var(--fc-primario);background:#fff;color:var(--fc-primario);}.freelancer-contact-modal__submit{border:0;background:#f66a10;box-shadow:0 10px 17px -10px rgba(243,92,10,.9);color:#fff;}.freelancer-contact-modal__submit i{margin-right:5px;}

.freelancer-contacts{min-height:calc(100vh - 150px);padding:48px 0 60px;background:radial-gradient(circle at 85% 4%,rgba(254,230,179,.42),transparent 21%),radial-gradient(circle at 3% 25%,rgba(222,237,255,.75),transparent 28%),#f5f8fc;}.freelancer-contacts__hero{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:38px;}.freelancer-contacts__eyebrow{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid #bfdaff;border-radius:999px;background:#edf5ff;color:var(--fc-primario);font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;}.freelancer-contacts__hero h1{margin:15px 0 10px;color:#111d34;font-size:clamp(34px,4vw,48px);font-weight:900;letter-spacing:-.05em;line-height:1;}.freelancer-contacts__hero h1 strong{color:var(--fc-primario);font:inherit;}.freelancer-contacts__hero>div>p{max-width:760px;margin:0;color:#536a89;font-size:18px;line-height:1.45;}.freelancer-contacts__stat{display:flex;align-items:center;gap:16px;flex:0 1 370px;min-width:300px;padding:24px;border:1px solid #dce8f7;border-radius:21px;background:linear-gradient(135deg,#fff,#f3f8ff);box-shadow:0 16px 28px -26px rgba(20,52,95,.65);}.freelancer-contacts__stat>span,.freelancer-contacts__security>span{display:grid;width:57px;height:57px;flex:none;place-items:center;border-radius:16px;background:var(--fc-primario);box-shadow:0 10px 16px -10px rgba(var(--fc-primario-rgb),.82);color:#fff;font-size:28px;}.freelancer-contacts__stat small{display:block;color:#375273;font-size:12px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;}.freelancer-contacts__stat strong{display:block;margin-top:3px;color:#17233a;font-size:27px;font-weight:900;}.freelancer-contacts__stat p{margin:2px 0 0;color:#5d718d;font-size:12px;}.freelancer-contacts__stat p i{margin-right:4px;color:#0c9c6f;font-size:10px;}.freelancer-contacts__search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;margin-bottom:38px;padding:18px 20px;border:1px solid #e0e9f4;border-radius:19px;background:#fff;box-shadow:0 14px 28px -25px rgba(20,52,95,.6);}.freelancer-contacts__search label{position:relative;display:block;}.freelancer-contacts__search label>i{position:absolute;z-index:1;top:50%;left:17px;transform:translateY(-50%);color:#7f95b2;font-size:22px;}.freelancer-contacts__search input{width:100%;height:55px;padding:0 16px 0 49px;border:1px solid #d9e5f2;border-radius:13px;background:#f8fbff;color:#263952;font-size:15px;outline:0;}.freelancer-contacts__search input:focus{border-color:var(--fc-primario);box-shadow:0 0 0 3px rgba(var(--fc-primario-rgb),.12);}.freelancer-contacts__search button{min-width:154px;border:0;border-radius:13px;background:#f56a12;box-shadow:0 10px 18px -12px rgba(243,92,10,.88);color:#fff;font-size:15px;font-weight:850;}.freelancer-contacts__table{overflow:hidden;border:1px solid #dfe8f3;border-radius:21px;background:#fff;box-shadow:0 15px 29px -27px rgba(20,52,95,.65);}.freelancer-contacts__head,.freelancer-contact-row{display:grid;grid-template-columns:50px minmax(190px,1.2fr) minmax(190px,1.1fr) minmax(160px,.9fr) minmax(120px,.65fr) minmax(150px,.8fr);align-items:center;gap:16px;}.freelancer-contacts__head{min-height:61px;padding:0 28px;border-bottom:1px solid #e2eaf3;color:#5a6f8e;font-size:12px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;}.freelancer-contact-row{min-height:111px;padding:16px 28px;border-bottom:1px solid #edf2f7;transition:background .18s ease;}.freelancer-contact-row:hover{background:#f9fbfe;}.freelancer-contact-row:last-child{border-bottom:0;}.freelancer-contact-row__number{color:#7186a2;font-size:15px;font-weight:750;}.freelancer-contact-row__person{display:flex;align-items:center;gap:12px;min-width:0;}.freelancer-contact-row__person img{width:49px;height:49px;flex:none;border:2px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 3px 10px rgba(26,48,78,.16);}.freelancer-contact-row__person span{display:grid;min-width:0;gap:3px;}.freelancer-contact-row__person b{overflow:hidden;color:#192740;font-size:15px;font-weight:850;text-overflow:ellipsis;white-space:nowrap;}.freelancer-contact-row__person small{overflow:hidden;color:#6f83a0;font-size:12px;text-overflow:ellipsis;white-space:nowrap;}.freelancer-contact-row time{display:flex;align-items:center;gap:7px;color:#364e70;font-size:13px;}.freelancer-contact-row time i{color:var(--fc-primario);font-size:17px;}.freelancer-contact-row__status{display:inline-flex;align-items:center;gap:6px;width:max-content;padding:7px 11px;border:1px solid #cae8dd;border-radius:999px;background:#effcf6;color:#187655;font-size:12px;font-weight:800;}.freelancer-contact-row__status i{font-size:8px;}.freelancer-contact-row__status--pending{border-color:#ffe0b4;background:#fff8e8;color:#aa6500;}.freelancer-contact-row__status--finished_waiting{border-color:#dbe0fe;background:#f3f4ff;color:#545cb4;}.freelancer-contact-row__status--finished{border-color:#dce4eb;background:#f6f8fa;color:#5e6e7e;}.freelancer-contact-row__status--cancelled{border-color:#e5e7eb;background:#f3f4f6;color:#6b7280;}.freelancer-contact-row__actions{display:flex;align-items:center;gap:10px;}.freelancer-contact-row__chat{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 13px;border:1px solid #bcd7ff;border-radius:11px;background:#f6faff;color:var(--fc-primario);font-size:13px;font-weight:800;}.freelancer-contact-row__chat:hover{background:var(--fc-primario);color:#fff;}.freelancer-contact-row__detail{display:grid;width:38px;height:38px;place-items:center;border:1px solid #d8e4f1;border-radius:10px;color:#527092;font-size:22px;}.freelancer-contact-row__detail:hover{border-color:var(--fc-primario);color:var(--fc-primario);}.freelancer-contacts__empty{padding:62px 24px;text-align:center;}.freelancer-contacts__empty>i{display:grid;width:55px;height:55px;margin:0 auto 14px;place-items:center;border-radius:16px;background:#eef5ff;color:var(--fc-primario);font-size:28px;}.freelancer-contacts__empty h2{margin:0;color:#24354f;font-size:19px;font-weight:850;}.freelancer-contacts__empty p{margin:7px 0 0;color:#6d819c;font-size:14px;}.freelancer-contacts__pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:17px 28px;border-top:1px solid #e8eef5;color:#6d819e;font-size:13px;font-weight:700;}.freelancer-contacts__pagination a{display:grid;width:34px;height:34px;place-items:center;border:1px solid #d8e5f2;border-radius:9px;color:#537192;font-size:19px;}.freelancer-contacts__pagination a:hover{background:var(--fc-primario);color:#fff;}.freelancer-contacts__security{display:flex;align-items:center;gap:16px;margin-top:38px;padding:23px 25px;border:1px solid #bedbff;border-radius:19px;background:linear-gradient(100deg,#edf6ff,#fff);}.freelancer-contacts__security>span{width:49px;height:49px;border-radius:14px;font-size:24px;}.freelancer-contacts__security>div{min-width:0;flex:1;}.freelancer-contacts__security h2{margin:0;color:#243650;font-size:16px;font-weight:850;}.freelancer-contacts__security p{margin:4px 0 0;color:#647995;font-size:13px;line-height:1.4;}.freelancer-contacts__security a{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 13px;border:1px solid #bcd7ff;border-radius:10px;background:#fff;color:var(--fc-primario);font-size:12px;font-weight:800;white-space:nowrap;}.freelancer-contacts__security .freelancer-contacts__support{border-color:var(--fc-primario);background:var(--fc-primario);color:#fff;}

.experience-editor-modal{max-width:810px;}.experience-editor-modal__body{position:relative;padding:51px 48px 42px!important;}.experience-editor-modal__mark{position:absolute;top:25px;display:block;border-radius:50%;}.experience-editor-modal__mark--orange{left:29px;width:15px;height:15px;background:#ff7118;}.experience-editor-modal__mark--blue{left:52px;width:9px;height:9px;background:#4e7df0;}.experience-editor-modal__body>header{text-align:center;}.experience-editor-modal__body>header p{margin:10px 0 21px;color:#5b718e;font-size:16px;}.experience-editor-modal__notice{margin:0 0 20px;padding:10px 12px;border:1px solid #ffe1b9;border-radius:10px;background:#fff9ef;color:#80511d;font-size:12px;line-height:1.4;}.experience-editor-modal__notice i{margin-right:5px;color:#e98322;font-size:15px;}.experience-editor-modal__fields{display:grid;gap:18px;}.experience-editor-modal__fields>label,.experience-editor-modal__gallery{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;align-items:start;margin:0;}.experience-editor-modal__fields>label>span,.experience-editor-modal__gallery>span{display:flex;align-items:center;gap:13px;padding-top:8px;color:#17233a;font-size:16px;}.experience-editor-modal__fields>label>span i,.experience-editor-modal__gallery>span i{display:grid;width:45px;height:45px;flex:none;place-items:center;border:1px solid #d0e2ff;border-radius:13px;background:#eff6ff;color:var(--fc-primario);font-size:22px;}.experience-editor-modal__fields input.form-control,.experience-editor-modal__fields textarea.form-control{width:100%;border:1px solid #d7e2ef;border-radius:12px;background:#fcfdff;color:#263a56;box-shadow:none;font-size:15px;}.experience-editor-modal__fields input.form-control{height:53px;}.experience-editor-modal__fields textarea.form-control{min-height:102px;resize:vertical;}.experience-editor-modal__fields input.form-control:focus,.experience-editor-modal__fields textarea.form-control:focus{border-color:var(--fc-primario);box-shadow:0 0 0 3px rgba(var(--fc-primario-rgb),.12);}.experience-editor-modal__fields em{display:block;margin:6px 3px 0;color:#8093af;font-size:11px;font-style:normal;}.experience-editor-modal__error{display:block;margin-top:4px;color:#b02c2c;font-size:11px;}.experience-editor-modal__gallery>div>p{margin:0 0 8px;color:#7285a0;font-size:12px;}.experience-editor-modal__gallery section{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:9px;padding:11px;border:2px dashed #c4dbff;border-radius:15px;background:#fbfdff;}.experience-editor-modal__upload{position:relative;display:grid;gap:5px;margin:0;cursor:pointer;text-align:center;}.experience-editor-modal__upload input{position:absolute;width:1px;height:1px;opacity:0;}.experience-editor-modal__preview{display:grid;aspect-ratio:1/1;place-items:center;overflow:hidden;border-radius:11px;background:#eaf3ff center/cover no-repeat;color:var(--fc-primario);font-size:27px;}.experience-editor-modal__preview--image{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.44);}.experience-editor-modal__preview button{display:grid;width:29px;height:29px;place-items:center;border:0;border-radius:50%;background:#ef4d4d;color:#fff;font-size:15px;}.experience-editor-modal__upload small{color:#627793;font-size:10px;font-weight:750;}.experience-editor-modal__body>footer{text-align:center;margin-top:26px;}.experience-editor-modal__body>footer button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:275px;min-height:56px;border:0;border-radius:15px;background:#f5670d;box-shadow:0 12px 20px -13px rgba(243,92,10,.93);color:#fff;font-size:16px;font-weight:850;}
@media (max-width:991.98px){.freelancer-contacts__hero{align-items:flex-start;flex-direction:column;}.freelancer-contacts__stat{width:100%;max-width:470px;}.freelancer-contacts__head{display:none;}.freelancer-contact-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:17px;padding:21px;}.freelancer-contact-row__number{display:none;}.freelancer-contact-row time,.freelancer-contact-row__status,.freelancer-contact-row__actions{padding-top:12px;border-top:1px solid #edf2f7;}.freelancer-contact-row time:before,.freelancer-contact-row__status:before,.freelancer-contact-row__actions:before{content:attr(data-label);margin-right:5px;color:#7186a2;font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;}.freelancer-contact-row__actions{justify-content:flex-end;}.freelancer-contacts__security{align-items:flex-start;flex-wrap:wrap;}.freelancer-contacts__security>div{min-width:calc(100% - 70px);}.freelancer-contacts__security a{margin-left:65px;}.freelancer-contacts__security .freelancer-contacts__support{margin-left:0;}.experience-editor-modal__fields>label,.experience-editor-modal__gallery{grid-template-columns:145px minmax(0,1fr);gap:15px;}}
@media (max-width:575.98px){.freelancer-contact-modal{margin:12px;}.freelancer-contact-modal__body{padding:52px 22px 25px!important;}.freelancer-contact-modal__body>p{font-size:14px;}.freelancer-contact-modal footer{grid-template-columns:1fr;gap:9px;}.freelancer-contacts{padding:28px 0 42px;}.freelancer-contacts__hero{gap:20px;margin-bottom:25px;}.freelancer-contacts__hero h1{font-size:36px;}.freelancer-contacts__hero>div>p{font-size:15px;}.freelancer-contacts__stat{min-width:0;padding:18px;}.freelancer-contacts__stat strong{font-size:23px;}.freelancer-contacts__search{grid-template-columns:1fr;padding:13px;gap:10px;margin-bottom:23px;}.freelancer-contacts__search button{min-height:48px;}.freelancer-contact-row{grid-template-columns:1fr;gap:13px;padding:19px;}.freelancer-contact-row__person{padding-bottom:12px;border-bottom:1px solid #edf2f7;}.freelancer-contact-row time,.freelancer-contact-row__status,.freelancer-contact-row__actions{justify-content:flex-start;padding-top:0;border:0;}.freelancer-contact-row__actions{padding-top:10px;border-top:1px solid #edf2f7;}.freelancer-contact-row__chat{flex:1;}.freelancer-contacts__pagination{justify-content:center;padding:15px;}.freelancer-contacts__security{padding:18px;gap:12px;}.freelancer-contacts__security>div{min-width:0;}.freelancer-contacts__security h2{font-size:15px;}.freelancer-contacts__security a,.freelancer-contacts__security .freelancer-contacts__support{width:100%;margin-left:0;}.experience-editor-modal{margin:10px;}.experience-editor-modal__body{padding:47px 19px 25px!important;}.experience-editor-modal__body>header p{font-size:14px;}.experience-editor-modal__fields>label,.experience-editor-modal__gallery{grid-template-columns:1fr;gap:8px;}.experience-editor-modal__fields>label>span,.experience-editor-modal__gallery>span{padding-top:0;font-size:15px;}.experience-editor-modal__fields>label>span i,.experience-editor-modal__gallery>span i{width:37px;height:37px;border-radius:11px;font-size:19px;}.experience-editor-modal__gallery section{grid-template-columns:repeat(3,minmax(0,1fr));}.experience-editor-modal__body>footer button{width:100%;min-width:0;}}

/* ===== Nosotros (Fase 7B) ==================================================
   Pagina /nosotros/: que es Freelanclick, como funciona y quienes somos. Usa
   las mismas piezas del inicio (fc-kicker, fc-boton) y la misma escala de
   titulos que .home-encabezado__titulo. */
.nosotros-hero{padding:48px 0 56px;background:radial-gradient(circle at 90% 10%,rgba(214,232,255,.7),transparent 32%),#f7faff;}
.nosotros-hero__titulo{margin-bottom:16px;color:#0f172a;font-size:clamp(34px,4vw,52px);font-weight:800;line-height:1.08;letter-spacing:-.03em;}
.nosotros-hero__titulo span{color:var(--fc-primario);}
.nosotros-hero__texto{max-width:36rem;margin-bottom:26px;color:#475569;font-size:17px;line-height:1.65;}
.nosotros-hero__botones{display:flex;flex-wrap:wrap;gap:12px;}
.nosotros-hero__media{overflow:hidden;border-radius:28px;background:#e2e8f0;box-shadow:0 24px 40px -28px rgba(15,23,42,.45);}
.nosotros-hero__media img{display:block;width:100%;height:auto;}
.nosotros-encabezado{margin-bottom:28px;text-align:center;}
.nosotros-encabezado h2{margin:0;color:#0f172a;font-size:clamp(26px,3vw,36px);font-weight:800;letter-spacing:-.02em;}
.nosotros-como{padding:64px 0;}
.nosotros-rol{height:100%;padding:28px;border:1px solid #e3ebf5;border-radius:22px;background:#fff;box-shadow:0 12px 28px -24px rgba(15,23,42,.4);}
.nosotros-rol__icono{display:inline-grid;width:48px;height:48px;margin-bottom:14px;place-items:center;border-radius:14px;background:#edf4ff;color:var(--fc-primario);font-size:22px;}
.nosotros-rol h3{margin-bottom:14px;color:#10203c;font-size:20px;font-weight:800;}
.nosotros-rol ol{margin:0 0 18px;padding-left:20px;color:#475569;font-size:15px;line-height:1.6;}
.nosotros-rol ol li+li{margin-top:6px;}
.nosotros-rol__enlace{display:inline-flex;align-items:center;gap:6px;color:var(--fc-primario);font-weight:700;text-decoration:none;}
.nosotros-rol__enlace:is(:hover,:focus-visible){text-decoration:underline;}
.nosotros-quienes{padding:0 0 72px;}
.nosotros-quienes__caja{padding:clamp(28px,5vw,56px);border:1px solid rgba(var(--fc-primario-rgb),.12);border-radius:32px;background:linear-gradient(135deg,#f8fbff,#eef5ff);}
.nosotros-quienes__texto{max-width:46rem;margin:0 auto 24px;color:#334155;font-size:16px;line-height:1.7;text-align:center;}
.nosotros-quienes__valores{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 28px;margin:0;padding:0;list-style:none;color:#1e3a5f;font-weight:700;}
.nosotros-quienes__valores i{margin-right:6px;color:var(--fc-primario);}
@media (max-width:575.98px){
    .nosotros-hero{padding:28px 0 36px;}
    .nosotros-como{padding:40px 0;}
    .nosotros-rol{padding:22px;}
    .nosotros-quienes__caja{border-radius:22px;}
}

/* ===== Buscador del catalogo de categorias (Fase 7B) ===================== */
.catalogo-buscador{display:flex;align-items:stretch;gap:8px;max-width:36rem;margin:0 0 22px;padding:8px;border:1px solid rgba(226,232,240,.9);border-radius:18px;background:#fff;box-shadow:0 12px 26px -22px rgba(15,23,42,.45);}
.catalogo-buscador__campo{display:flex;align-items:center;flex:1;gap:8px;min-width:0;padding-left:10px;color:#64748b;}
.catalogo-buscador__campo input{flex:1;min-width:0;padding:8px 4px;border:0;background:transparent;color:#0f172a;font-size:15px;}
.catalogo-buscador__campo input:focus{outline:none;}
.catalogo-buscador:focus-within{border-color:rgba(var(--fc-primario-rgb),.55);box-shadow:0 0 0 3px rgba(var(--fc-primario-rgb),.15);}
.catalogo-buscador__boton{flex:none;padding-inline:22px;border-radius:12px;}
@media (max-width:575.98px){
    .catalogo-buscador{flex-direction:column;}
    .catalogo-buscador__boton{width:100%;}
}

/* Ilustracion administrable del llamado final de Membresias (Fase 7B). */
.planes-cta__icono--imagen{width:72px;height:72px;overflow:hidden;border-radius:0;background:transparent;box-shadow:none;transform:none;}
.planes-cta__icono--imagen img{display:block;width:100%;height:100%;object-fit:contain;}

/* Descarga de las guias en PDF (Fase 7B). */
.guide-legal-document__pdf{display:inline-flex;align-items:center;gap:8px;margin-top:18px;}
.guia-rol__pdf{display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:var(--fc-primario);font-weight:700;text-decoration:none;}
.guia-rol__pdf:is(:hover,:focus-visible){text-decoration:underline;}

/* Chat: enlace "Volver a contactos" sobre la lista de conversaciones (Fase 7B). */
.chat-sidebar__volver{margin-bottom:12px;}

/* Tutoriales (Fase 7B): reutiliza el encabezado de Guias, el buscador del
   catalogo y la tarjeta de Nosotros. */
.tutoriales__buscador{margin:0 auto 32px;}
.tutoriales__tarjeta{display:flex;flex-direction:column;}
.tutoriales__titulo{margin-bottom:10px;color:#10203c;font-size:19px;font-weight:800;}
.tutoriales__descripcion{flex:1;color:#475569;font-size:14px;line-height:1.6;}
.tutoriales__pie{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;color:#64748b;}
.tutoriales__vacio{margin:24px 0 8px;color:#64748b;text-align:center;}

/* Bajo 992 px el encabezado de las paginas legales, las guias y Ayudanos a
   mejorar pasa a columna, y el flex-basis de su recuadro (410 y 380 px) se
   aplicaba al alto: quedaba una caja vacia de ese tamano (revision de la
   Fase 7B en 390 y 768 px). En columna, el alto lo da el contenido. */
@media (max-width:991.98px){
    .legal-document__highlight,.feedback-hub__hero section{flex-basis:auto;}
}

/* Regiones donde trabaja el freelancer (Fase 7C). */
.perfil-regiones{margin:18px 0 0;padding:16px 0 0;border:0;border-top:1px solid #e3ebf5;}
.perfil-regiones legend{float:none;width:auto;margin-bottom:4px;}
.perfil-regiones__todas{margin:8px 0 12px;font-weight:700;}
.perfil-regiones__lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 16px;}
.perfil-regiones__lista[aria-disabled="true"]{opacity:.55;}

/* Freelancers favoritos en Contactos (Fase 7C). */
.freelancer-favorites{margin-bottom:28px;padding:20px 22px;border:1px solid #f3dfb6;border-radius:19px;background:linear-gradient(100deg,#fffaf0,#fff);}
.freelancer-favorites h2{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:#243650;font-size:16px;font-weight:850;}
.freelancer-favorites h2 i{color:#e3a008;}
.freelancer-favorites__lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:0;padding:0;list-style:none;}
.freelancer-favorite{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 10px 10px 12px;border:1px solid #e6edf5;border-radius:14px;background:#fff;}
.freelancer-favorite__perfil{display:flex;flex:1;align-items:center;gap:10px;min-width:0;color:inherit;}
.freelancer-favorite__perfil img{width:40px;height:40px;flex:none;border-radius:50%;object-fit:cover;}
.freelancer-favorite__perfil span{display:grid;min-width:0;}
.freelancer-favorite__perfil b,.freelancer-favorite__perfil small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.freelancer-favorite__perfil b{color:#192740;font-size:14px;}
.freelancer-favorite__perfil small{color:#6f83a0;font-size:12px;}
/* La regla global form{width:90%} estiraba estos formularios de un solo
   boton y le quitaba el ancho al nombre del favorito y a "Ver chat"
   (QA 7C en 390, 768 y 1440 px). */
.freelancer-favorite form,.freelancer-contact-row__actions form{flex:none;width:auto;margin:0;}
/* El boton de favoritos del perfil publico ocupa todo el ancho, como el de contacto. */
.perfil-ficha__acciones form{width:100%;margin:0;}
.freelancer-favorite__quitar,.freelancer-contact-row__fav{display:grid;width:38px;height:38px;flex:none;place-items:center;border:1px solid #d8e4f1;border-radius:10px;background:#fff;color:#527092;font-size:19px;}
.freelancer-favorite__quitar:hover,.freelancer-contact-row__fav:hover{border-color:#e3a008;color:#b47b00;}
.freelancer-contact-row__fav--activo{border-color:#f3d48a;background:#fff8e6;color:#c98a00;}
.freelancer-favorite__quitar:focus-visible,.freelancer-contact-row__fav:focus-visible{outline:3px solid rgba(var(--fc-primario-rgb),.35);outline-offset:2px;}

/* Buscador de Mis conversaciones (Fase 7C). */
.conv__buscador{position:relative;display:flex;gap:8px;max-width:560px;margin:0 auto 18px;}
.conv__buscador>i{position:absolute;top:50%;left:14px;transform:translateY(-50%);color:#7f95b2;font-size:18px;pointer-events:none;}
.conv__buscador input{flex:1;min-width:0;height:46px;padding:0 14px 0 40px;border:1px solid #d9e5f2;border-radius:12px;background:#fff;color:#263952;font-size:15px;}
.conv__buscador input:focus{border-color:var(--fc-primario);outline:0;box-shadow:0 0 0 3px rgba(var(--fc-primario-rgb),.15);}
.conv__buscador button{flex:none;padding:0 18px;border:0;border-radius:12px;background:var(--fc-primario);color:#fff;font-weight:800;}
.conv__vacio a{font-weight:700;}

/* Mismo defecto que el corregido en la 7B: bajo 992 px el encabezado de
   Contactos pasa a columna y el flex-basis de 370 px del recuadro "Tus
   conexiones" se aplicaba al alto (370 px casi vacios; QA 7C en 390 y
   768 px). En columna, el alto lo da el contenido. */
@media (max-width:991.98px){
    .freelancer-contacts__stat{flex-basis:auto;}
}

/* Consentimiento (Fase 7C): los enlaces a los Terminos y a la Politica deben
   distinguirse del texto (QA 7C: el estilo global de los enlaces los dejaba
   iguales al resto de la etiqueta). */
.registro-terminos a{color:var(--fc-primario);font-weight:700;text-decoration:underline;text-underline-offset:2px;}
.registro-terminos a:hover,.registro-terminos a:focus-visible{color:#0b3f9e;}

/* Con la estrella de favoritos, la columna de acciones necesita mas ancho para
   que "Ver chat" no parta en dos lineas (QA 7C). Desde 1200 px hay espacio
   para ensanchar esa columna; entre 992 y 1199 la tabla no cabe con ese
   minimo (la fila se cortaba), asi que el boton queda solo con el icono y el
   texto se conserva para lectores de pantalla. Bajo 992 px la fila ya es una
   tarjeta. */
@media (min-width:1200px){
    .freelancer-contacts__head,.freelancer-contact-row{grid-template-columns:50px minmax(190px,1.2fr) minmax(190px,1.1fr) minmax(150px,.85fr) minmax(120px,.6fr) minmax(206px,.9fr);}
    .freelancer-contact-row__chat{white-space:nowrap;}
}
@media (min-width:992px) and (max-width:1199.98px){
    /* Los minimos originales (940 px) no cabian en los 872 px utiles de la
       fila: el boton de detalle quedaba cortado ya antes de la 7C. */
    .freelancer-contacts__head,.freelancer-contact-row{grid-template-columns:50px minmax(150px,1.2fr) minmax(150px,1.1fr) minmax(160px,.9fr) minmax(120px,.65fr) minmax(150px,.8fr);}
    .freelancer-contact-row__chat{width:40px;padding:0;}
    .freelancer-contact-row__chat span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
}

.categoria-detalle__imagen--artwork img{object-position:50% 28%;}

/* ---------- «Guardar documentos» (2026-10-24) ---------- */
/* El botón que sube de una vez los documentos elegidos y refresca la sección
   (js/documentos-perfil.js). Va al final de la pestaña, separado de las
   tarjetas, para que se lea como la acción de toda la sección y no como una
   más de un bloque. El aviso de «guardados» o del error aparece encima. */
.perfil-documentos-guardar{display:flex;flex-direction:column;align-items:flex-start;gap:10px;
  margin-top:18px;padding:18px;border-radius:14px;background:#f4f8ff;border:1px solid #e0eaf9;}
.perfil-documentos-guardar [data-fc-doc-aviso]{width:100%;margin:0;}
.perfil-documentos-guardar__boton{min-height:46px;padding-inline:22px;font-weight:700;}
.perfil-documentos-guardar__boton:disabled{opacity:.65;cursor:progress;}
.perfil-documentos-guardar__ayuda{margin:0;color:var(--fc-texto-suave,#5b6b86);font-size:13px;}
@media (max-width:575px){
  .perfil-documentos-guardar{padding:14px;}
  /* En pantalla angosta el botón toma el ancho: es la acción principal. */
  .perfil-documentos-guardar__boton{width:100%;justify-content:center;}
}
