/*
  Talent — Recherche d'établissements (R12/AC12.3).
  Construit sur le design system de l'Explorer (talent_explorer.css) : mêmes
  tokens or, même barre de filtres guidée. Zero inline CSS dans la vue (seuls
  les fonds d'image dynamiques passent par style inline, comme l'Explorer).
*/

/* Reset le padding du layout talent pour la pleine largeur */
main:has(.tes-page){max-width:none;padding:0;padding-top:90px;margin:0;background:#FBFBFB;}

/* === PAGE === */
.tes-page{min-height:100vh;background:#FBFBFB;font-family:'Geist',system-ui,sans-serif;color:#000;overflow-x:hidden;}
.tes-page ::-webkit-scrollbar{height:5px;width:5px;}
.tes-page ::-webkit-scrollbar-thumb{background:#E3E3E3;border-radius:3px;}
.tes-page button{cursor:pointer;border:none;background:none;font-family:inherit;}
.tes-page a{text-decoration:none;color:inherit;}

/* === HERO === */
.tes-hero{max-width:1100px;margin:0 auto;padding:48px 32px 24px;text-align:center;}
.tes-hero-title{font-family:'Geist',system-ui,sans-serif;font-size:42px;font-weight:700;color:#1a1a1a;line-height:1.1;margin:0 0 10px;}
.tes-hero-title i{font-style:italic;background:var(--gold-text-grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:400;}
.tes-hero-sub{font-size:13px;color:#6B6660;margin-bottom:22px;}
.tes-hero-sub b{color:#1a1a1a;font-weight:700;}

/* === SEARCH BAR === */
.tes-search-form{display:flex;align-items:center;gap:8px;max-width:640px;margin:0 auto 16px;position:relative;}
.tes-search-ico{position:absolute;left:16px;color:#A09A94;display:inline-flex;pointer-events:none;}
.tes-search-input{flex:1;padding:13px 16px 13px 42px;border:1.5px solid rgba(0,0,0,.08);border-radius:11px;background:#fff;font-size:13px;font-family:inherit;color:#1a1a1a;outline:none;transition:all .2s;}
.tes-search-input::placeholder{color:#A09A94;}
.tes-search-input:focus{border-color:var(--gold-primary);background:#FBF8F2;box-shadow:0 0 0 3px rgba(184,145,42,.08);}
.tes-search-btn{flex-shrink:0;padding:0 22px;height:46px;border:none;border-radius:11px;font-size:12.5px;font-weight:800;font-family:inherit;cursor:pointer;color:#fff;background:var(--gold-fill);box-shadow:0 4px 14px rgba(184,145,42,.35);transition:all .2s;text-shadow:0 1px 2px rgba(0,0,0,.15);}
.tes-search-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(184,145,42,.45);}

/* === FILTER BAR (repris de l'Explorer) === */
.tes-filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;max-width:1000px;margin:0 auto;}
.tes-sf{position:relative;display:inline-flex;align-items:center;gap:8px;padding:11px 16px;min-width:170px;border-radius:11px;border:1.5px solid rgba(0,0,0,.08);background:#fff;cursor:pointer;transition:all .2s ease;user-select:none;text-align:left;}
.tes-sf:hover{border-color:rgba(184,145,42,.4);background:linear-gradient(180deg,#fff,#FBF8F2);}
.tes-sf.open{border-color:var(--gold-primary);background:#FBF8F2;box-shadow:0 4px 18px rgba(184,145,42,.15);z-index:30;}
.tes-sf.filled{border-color:rgba(184,145,42,.5);background:linear-gradient(180deg,#fff,#FBF8F2);}
.tes-sf-label{font-size:11.5px;line-height:1.3;flex:1;min-width:0;}
.tes-sf-name{color:#A09A94;font-weight:500;}
.tes-sf-value{color:#1a1a1a;font-weight:700;}
.tes-sf.filled .tes-sf-value{color:var(--gold-600);}
.tes-sf-arr{font-size:9px;color:#A09A94;flex-shrink:0;transition:transform .2s;}
.tes-sf.open .tes-sf-arr{transform:rotate(180deg);color:var(--gold-600);}
.tes-sf-drop{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:240px;max-width:320px;background:#fff;border:1.5px solid rgba(184,145,42,.2);border-radius:var(--r-md);padding:5px;box-shadow:0 12px 36px rgba(0,0,0,.12);z-index:50;max-height:320px;overflow-y:auto;}
.tes-sf.open .tes-sf-drop{display:block;}
.tes-sf-o{padding:9px 12px;border-radius:var(--r-sm);font-size:12px;font-weight:600;color:#1a1a1a;cursor:pointer;transition:all .15s;text-align:left;display:flex;align-items:center;text-decoration:none;}
.tes-sf-o:hover{background:#FBF4E2;color:var(--gold-600);}
.tes-sf-o.sel{background:linear-gradient(135deg,rgba(248,226,122,.25),rgba(237,202,80,.18));color:var(--gold-700);font-weight:800;}
.tes-sf-o.sel::after{content:"\2713";float:right;color:var(--gold-primary);font-weight:900;margin-left:auto;padding-left:8px;}
.tes-sf-o-clear{color:#A09A94;font-weight:600;}
.tes-page .tes-reset-btn{width:42px;height:42px;border-radius:11px;border:1.5px solid rgba(0,0,0,.08);background:#fff;color:#6B6660;font-size:16px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;text-decoration:none;}
.tes-page .tes-reset-btn:hover{border-color:var(--gold-primary);color:var(--gold-600);background:#FBF8F2;transform:rotate(-30deg);}

/* === MAIN === */
.tes-main{max-width:1380px;margin:0 auto;padding:24px 32px 60px;}
.tes-results-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
.tes-results-count{font-size:13px;font-weight:700;white-space:nowrap;}
.tes-results-count span{color:var(--gold-400);}

/* === CARDS GRID === */
.tes-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;}
.tes-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:#9A948C;font-size:14px;}
.tes-empty-reset{color:var(--gold-400);font-weight:700;}

/* === ESTABLISHMENT CARD === */
.tes-card{background:#fff;border-radius:14px;border:1px solid rgba(0,0,0,.05);box-shadow:0 2px 14px rgba(0,0,0,.05);overflow:hidden;transition:all .3s;display:flex;flex-direction:column;position:relative;}
.tes-card:hover{box-shadow:0 8px 30px rgba(0,0,0,.1);transform:translateY(-3px);}
.tes-card-link{position:absolute;inset:0;z-index:1;}
.tes-card>*:not(.tes-card-link){position:relative;z-index:2;}
.tes-card-foot .tes-card-cta{position:relative;z-index:3;}

/* PHOTO */
.tes-card-photo{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:14px 14px 0 0;}
.tes-card-photo-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .4s;}
.tes-card:hover .tes-card-photo-img{transform:scale(1.05);}
.tes-card-photo-grad{position:absolute;left:0;right:0;bottom:0;height:55%;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent);pointer-events:none;}
.tes-card-type{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;border-radius:var(--r-pill);padding:4px 10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gold-700);background:rgba(255,255,255,.92);z-index:5;box-shadow:0 2px 6px rgba(0,0,0,.18);}
.tes-card-michelin{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:100px;background:#C0392B;text-transform:uppercase;letter-spacing:.3px;z-index:5;}
.tes-card-michelin svg,.tes-card-michelin img{width:9px;height:9px;}
.tes-card-michelin b{font-weight:800;color:#fff;font-size:9px;}
.tes-card-logo{position:absolute;bottom:-18px;left:14px;width:48px;height:48px;border-radius:11px;background:#fff;background-size:cover;background-position:center;border:2.5px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.18);z-index:6;}

/* INFO */
.tes-card-info{padding:24px 14px 0;flex:1;display:flex;flex-direction:column;}
.tes-card-name-row{display:flex;align-items:center;gap:5px;}
.tes-card-name{font-family:'Geist',system-ui,sans-serif;font-size:16px;font-weight:700;color:#18140C;line-height:1.2;}
.tes-card-check{flex-shrink:0;}
.tes-card-place{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:11.5px;color:#6B6560;}
.tes-card-desc{margin:9px 0 0;font-size:12px;line-height:1.5;color:#7A746C;}
.tes-card-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:11px;}
.tes-card-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:600;color:var(--gold-700);background:linear-gradient(180deg,#FBF4DC,var(--gold-200));border:1px solid rgba(184,151,90,.32);padding:3px 9px;border-radius:var(--r-pill);line-height:1.2;}

/* FOOT */
.tes-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;margin-top:14px;border-top:1px solid rgba(0,0,0,.05);}
.tes-card-positions{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#6B6560;}
.tes-card-positions b{color:#1a1a1a;font-weight:800;}
.tes-card-dot{width:7px;height:7px;border-radius:50%;background:#2E7D32;flex-shrink:0;}
.tes-card-dot-off{background:#C9C4BC;}
/* #1613 — sélecteur qualifié pour battre la règle « .tes-page a » (color inherit, 0,1,1) */
.tes-card-cta,.tes-page a.tes-card-cta{flex-shrink:0;padding:8px 14px;border-radius:9px;font-size:11px;font-weight:800;letter-spacing:.04em;color:#fff;background:var(--gold-fill);box-shadow:0 2px 10px rgba(184,145,42,.3);text-shadow:0 1px 2px rgba(0,0,0,.15);transition:all .2s;}
.tes-card-cta:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(184,145,42,.45);}

/* === FOOTER === */
.tes-footer{text-align:center;padding:32px 20px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#B0A99F;}
.tes-footer b{color:var(--gold-600);}

/* Audit de véracité 07/08 — sans couverture ni logo attachés, la carte ne
   fabrique plus d'image : aplat neutre pour la photo, initiales de la maison
   pour le logo (le logo du Crillon était servi par défaut à toutes). */
.tes-card-photo-empty{background:linear-gradient(135deg,#1A1614,#2C2A26);}
.tes-card-logo-initials{display:flex;align-items:center;justify-content:center;background:#0D0D0D;color:var(--gold-primary);font-family:'Geist',system-ui,sans-serif;font-weight:700;font-size:17px;letter-spacing:.5px;}

/* Retour Loïc 10/08 — « les ancres amènent trop haut, avec le menu on ne les
   voit pas ». La barre de navigation est en `position: fixed` et occupe les 82
   premiers pixels (24px de décalage + 58px de hauteur), mais les sections
   n'avaient aucune marge de défilement : le navigateur posait le titre visé
   pile en haut du viewport, donc DERRIÈRE le menu.
   `scroll-margin-top` réserve la hauteur du menu plus une respiration, pour que
   le titre de section arrive lisible sous la barre. Une variable, pour que la
   valeur suive si la barre change de taille. */
:root { --nav-fixed-height: 82px; }
.est-page [id^="est-"] { scroll-margin-top: calc(var(--nav-fixed-height) + 28px); }
