:root{--lf-lime:#d7ff00;--lf-black:#111;--lf-gray:#f5f5f5;--lf-muted:#707070;--lf-border:#e5e5e5;--lf-radius:18px;--lf-shadow:0 14px 38px rgba(0,0,0,.07)}
.lf-coaches-wrap,.lf-portal,.lf-confirm-box{font-family:Roboto,Arial,sans-serif;color:var(--lf-black)}

/* Directorio: filtros + selector de vista */
.lf-directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 10px}
.lf-coach-filters{display:flex;align-items:center;gap:10px;flex:1;min-width:0;margin:0}
.lf-filter-field{position:relative;min-width:0}
.lf-filter-search{width:min(760px,100%);flex:1}
.lf-filter-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-size:21px;line-height:1;pointer-events:none;color:#555}
.lf-coach-search,.lf-coach-city{height:48px;border:1px solid var(--lf-border)!important;border-radius:12px!important;background:#fff!important;font-size:15px!important;color:var(--lf-black)!important;box-shadow:none!important;margin:0!important}
.lf-coach-search{width:100%;padding:0 16px 0 44px!important}
.lf-coach-city{min-width:190px;padding:0 38px 0 14px!important;cursor:pointer}
.lf-coach-search:focus,.lf-coach-city:focus{outline:2px solid rgba(215,255,0,.7)!important;outline-offset:1px;border-color:#b8db00!important}
.lf-view-switch{display:flex;gap:5px;padding:4px;background:#f1f1f1;border-radius:12px;flex:0 0 auto}
.lf-view-btn{width:40px;height:40px;padding:9px;border:0;border-radius:9px;background:transparent;color:#686868;cursor:pointer;display:grid;place-items:center;transition:.18s ease}
.lf-view-btn svg{width:21px;height:21px;fill:currentColor}
.lf-view-btn:hover{background:#fff;color:#111}
.lf-view-btn.is-active{background:#fff;color:#111;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.lf-directory-meta{min-height:24px;margin-bottom:12px;color:var(--lf-muted);font-size:13px}
.lf-results-count{display:inline-block}

/* Base cards */
.lf-coaches-grid{display:grid;gap:16px}
.lf-coach-card{position:relative;border:1px solid var(--lf-border);border-radius:var(--lf-radius);overflow:hidden;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.025);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.lf-coach-card:before{content:"";position:absolute;z-index:2;left:0;top:0;width:0;height:4px;background:var(--lf-lime);transition:width .22s ease}
.lf-coach-card:hover{border-color:#d8d8d8;box-shadow:var(--lf-shadow);transform:translateY(-1px)}
.lf-coach-card:hover:before{width:100%}
.lf-coach-photo{background:#eee;display:flex;align-items:center;justify-content:center;font-size:40px;overflow:hidden}
.lf-coach-photo img{width:100%;height:100%;object-fit:cover;display:block}
.lf-coach-body{padding:20px;min-width:0}
.lf-coach-main{min-width:0}
.lf-coach-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.lf-coach-heading h3{font-size:23px;line-height:1.1;margin:0;letter-spacing:-.025em}
.lf-chip{display:inline-flex;align-items:center;background:var(--lf-lime);padding:5px 9px;border-radius:999px;font-size:10px;line-height:1.25;font-weight:900;text-transform:uppercase;letter-spacing:.035em}

/* Bloques de información */
.lf-coach-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;width:100%}
.lf-coach-fact{display:flex;align-items:center;gap:11px;min-width:0;min-height:68px;padding:10px 12px;border:1px solid #eceee4;border-radius:13px;background:transparent}
.lf-fact-icon{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#fff;display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.045)}
.lf-fact-icon svg{width:20px;height:20px;fill:#111}
.lf-fact-copy{display:block;min-width:0;line-height:1.15}
.lf-fact-copy small{display:block;margin-bottom:4px;color:#858585;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.lf-fact-copy strong{display:block;color:#222;font-size:14px;font-weight:700;line-height:1.28;overflow-wrap:anywhere}
.lf-coach-description{margin:12px 2px 0!important;color:#585858;font-size:14px;line-height:1.55;max-width:900px}
.lf-muted{opacity:.65}

/* Precio y CTA */
.lf-coach-actions{min-width:0}
.lf-prices{display:flex;flex-direction:column;gap:3px;margin:14px 0}
.lf-prices span{font-size:12px;color:var(--lf-muted);white-space:nowrap}
.lf-prices strong{font-size:24px;line-height:1.08;white-space:nowrap;letter-spacing:-.025em}
.lf-prices strong small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.055em;margin-bottom:4px;color:#555}
.lf-btn{appearance:none;border:0;background:var(--lf-lime);color:#000;border-radius:10px;padding:12px 16px;font-weight:850;cursor:pointer;text-decoration:none;transition:filter .15s ease,transform .15s ease;white-space:nowrap}
.lf-btn:hover{filter:brightness(.95);transform:translateY(-1px)}
.lf-btn.lf-secondary{background:#eee}.lf-btn.lf-small{padding:8px 12px}

/* Vista listado: imagen + información amplia + precio */
.lf-coaches-grid.lf-view-list{grid-template-columns:1fr}
.lf-view-list .lf-coach-card{width:100%;display:grid;grid-template-columns:220px minmax(0,1fr);min-height:198px}
.lf-view-list .lf-coach-photo{width:100%;height:100%;min-height:198px;aspect-ratio:auto}
.lf-view-list .lf-coach-body{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:26px;padding:22px 24px}
.lf-view-list .lf-coach-actions{height:100%;padding-left:24px;border-left:1px solid var(--lf-border);display:flex;flex-direction:column;align-items:stretch;justify-content:center}
.lf-view-list .lf-prices{margin:0 0 14px}
.lf-view-list .lf-btn{width:100%}

/* Vista cuadrícula */
.lf-coaches-grid.lf-view-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.lf-view-grid .lf-coach-card{display:block}
.lf-view-grid .lf-coach-photo{aspect-ratio:16/10;min-height:0}
.lf-view-grid .lf-coach-body{display:block;padding:20px}
.lf-view-grid .lf-coach-heading{margin-bottom:14px}
.lf-view-grid .lf-coach-facts{grid-template-columns:1fr;gap:7px}
.lf-view-grid .lf-coach-fact{min-height:58px;padding:8px 10px}
.lf-view-grid .lf-fact-icon{width:34px;height:34px;flex-basis:34px}
.lf-view-grid .lf-fact-icon svg{width:18px;height:18px}
.lf-view-grid .lf-coach-actions{border:0;border-top:1px solid var(--lf-border);padding:16px 0 0;margin-top:16px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.lf-view-grid .lf-prices{margin:0}
.lf-view-grid .lf-btn{width:auto}

.lf-no-results{padding:30px;border:1px dashed #d6d6d6;border-radius:16px;background:#fafafa;text-align:center}
.lf-no-results strong,.lf-no-results span{display:block}.lf-no-results span{margin-top:5px;color:var(--lf-muted);font-size:14px}

/* Modal */
.lf-modal{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:99999;display:none;align-items:center;justify-content:center;padding:18px}.lf-modal.is-open{display:flex}.lf-modal-card{position:relative;background:white;width:min(620px,100%);max-height:90vh;overflow:auto;padding:28px;border-radius:18px}.lf-modal-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:30px;cursor:pointer}.lf-modal label{display:block;font-weight:600;margin:12px 0}.lf-modal input,.lf-modal select{width:100%;padding:11px;border:1px solid var(--lf-border);border-radius:8px;margin-top:5px}.lf-form-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lf-consent{font-weight:400!important;font-size:13px}.lf-consent input{width:auto;margin-right:5px}.lf-form-msg,.lf-row-msg{font-size:13px;margin-top:8px}

/* Panel colaborador */
.lf-portal-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.lf-portal-kpis{display:flex;gap:20px;flex-wrap:wrap}.lf-portal-kpis span{background:#f4f4f4;padding:10px 12px;border-radius:10px}.lf-portal-lead{display:grid;grid-template-columns:2fr 1fr auto;gap:15px;align-items:center;padding:14px;border-bottom:1px solid #e7e7e7}.lf-portal-lead small{display:block;opacity:.65}.lf-portal-lead select,.lf-portal-lead input{width:100%;padding:8px}.lf-confirm-box{max-width:600px;margin:30px auto;padding:28px;border:1px solid var(--lf-border);border-radius:18px;text-align:center}.lf-confirm-box form{display:flex;justify-content:center;gap:10px}.lf-notice{padding:16px;background:#f4f4f4;border-radius:10px}

@media(max-width:1100px){
  .lf-coaches-grid.lf-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lf-view-list .lf-coach-card{grid-template-columns:185px minmax(0,1fr)}
  .lf-view-list .lf-coach-body{grid-template-columns:minmax(0,1fr) 170px;gap:18px;padding:19px}
  .lf-view-list .lf-coach-actions{padding-left:18px}
  .lf-coach-facts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  .lf-portal-head{align-items:flex-start;flex-direction:column}.lf-portal-lead{grid-template-columns:1fr}
}

@media(max-width:780px){
  .lf-directory-toolbar{align-items:stretch;flex-wrap:wrap}
  .lf-coach-filters{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .lf-filter-search{width:100%}.lf-coach-city{width:100%;min-width:0}
  .lf-view-switch{margin-left:auto}

  /* En móvil/tablet el listado pasa a una composición completamente vertical */
  .lf-view-list .lf-coach-card{display:block;min-height:0}
  .lf-view-list .lf-coach-photo{height:auto;min-height:0;aspect-ratio:16/8}
  .lf-view-list .lf-coach-body{display:block;padding:18px}
  .lf-view-list .lf-coach-facts{grid-template-columns:1fr;gap:8px}
  .lf-view-list .lf-coach-actions{height:auto;border-left:0;border-top:1px solid var(--lf-border);padding:15px 0 0;margin-top:16px;display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:14px}
  .lf-view-list .lf-prices{margin:0}
  .lf-view-list .lf-btn{width:auto}
}

@media(max-width:560px){
  .lf-coach-filters{grid-template-columns:1fr}.lf-view-switch{margin-left:0}
  .lf-coaches-grid.lf-view-grid{grid-template-columns:1fr}
  .lf-coach-heading{align-items:flex-start;flex-direction:column;gap:8px}
  .lf-coach-heading h3{font-size:22px}
  .lf-view-list .lf-coach-photo{aspect-ratio:16/9}
  .lf-view-list .lf-coach-actions,.lf-view-grid .lf-coach-actions{align-items:stretch;flex-direction:column}
  .lf-view-list .lf-btn,.lf-view-grid .lf-btn{width:100%}
  .lf-prices strong{font-size:23px}
  .lf-form-cols{grid-template-columns:1fr}.lf-modal-card{padding:22px}.lf-confirm-box form{flex-direction:column}
}
/* Oferta por porcentaje */
.lf-prices-discount strong{font-size:30px}.lf-prices-discount span{font-weight:650;color:#666}.lf-prices-discount strong small{color:#555}
