/* Page « Hôtels en Tunisie » (views/hotels/directory.ejs) */
.ht{--ht-primary:#0B6EB4;--ht-primary-dark:#08548A;--ht-primary-deep:#0B6EB4;--ht-primary-soft:#E7F1F9;--ht-ink:var(--ui-ink,#0f294d);--ht-muted:#5A6660;--ht-line:#E7E5DF;--ht-ground:#F7F6F2;--ht-offer-bg:#FDEBD7;--ht-offer-ink:#7A3A05;--ht-radius:var(--radius-lg,12px);--ht-shadow:0 1px 2px rgba(20,30,25,.04),0 4px 14px rgba(20,30,25,.05);background:var(--ht-ground);color:var(--ht-ink)}
.ht-trust{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:16px;font-size:13px;font-weight:500;color:var(--ui-muted,#5e6470)}
.ht-trust span{display:flex;align-items:center;gap:8px}
.ht h2.ht-title{font-size:20px;font-weight:600;letter-spacing:-.2px;margin:0}
.ht-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.ht-tile{position:relative;height:140px;padding:0;border:0;border-radius:var(--ht-radius);overflow:hidden;background:var(--ht-line);cursor:pointer;text-align:left;box-shadow:var(--ht-shadow);transition:box-shadow .2s,transform .2s}
.ht-tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,30,25,.14)}
.ht-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.ht-tile:hover img{transform:scale(1.05)}
.ht-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,20,15,.78),rgba(10,20,15,0) 65%)}
.ht-tile span{position:absolute;left:14px;right:14px;bottom:12px;z-index:1;color:#fff;display:flex;flex-direction:column;gap:2px}
.ht-tile strong{font-size:17px;font-weight:600}
.ht-tile small{font-size:12px;font-weight:500;color:#E9F0F6}
.ht-tile[aria-pressed="true"]{box-shadow:0 0 0 3px var(--ht-ground),0 0 0 5px #EB8725}
.ht-layout{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.ht-filters{flex:1 1 240px;max-width:270px;background:#fff;border:1px solid var(--ht-line);border-radius:var(--ht-radius);padding:18px;display:flex;flex-direction:column;gap:20px;box-shadow:var(--ht-shadow)}
.ht-filters fieldset{border:0;margin:0;padding:0}
.ht-filters fieldset+fieldset{border-top:1px solid var(--ht-line);padding-top:18px}
.ht-filters legend{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--ht-muted);margin-bottom:8px;float:none}
.ht-filters-head{display:flex;justify-content:space-between;align-items:center}
.ht-filters-head h2{font-size:17px;font-weight:600;margin:0}
.ht-link-btn{border:0;background:none;padding:8px 0;color:var(--ht-primary);font-weight:500;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.ht-city-row{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:36px;padding:0 10px;border:0;border-radius:var(--radius);background:none;color:var(--ht-ink);font-weight:500;font-size:14px;text-align:left;transition:background .15s}
.ht-city-row:hover{background:var(--ht-ground)}
.ht-city-row small{min-width:28px;padding:1px 7px;border-radius:var(--radius-pill);background:var(--ht-ground);color:var(--ht-muted);font-weight:500;font-size:12px;text-align:center}
.ht-city-row[aria-pressed="true"]{background:var(--ht-primary-soft);color:var(--ht-primary-dark);font-weight:600}
.ht-city-row[aria-pressed="true"] small{background:#fff;color:var(--ht-primary-dark)}
.ht-chip{min-height:38px;padding:0 14px;border:1px solid #D6D3CA;border-radius:var(--radius-pill);background:#fff;color:var(--ht-ink);font-weight:500;font-size:13px;white-space:nowrap;transition:border-color .15s,background .15s}
.ht-chip:hover{border-color:var(--ht-primary)}
.ht-chip[aria-pressed="true"]{background:var(--ht-primary);border-color:var(--ht-primary);color:#fff;font-weight:600}
.ht-segment{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:3px;border-radius:var(--radius);background:var(--ht-ground);border:1px solid var(--ht-line)}
.ht-segment button{display:flex;align-items:center;justify-content:center;gap:2px;min-height:38px;padding:0 4px;border:0;border-radius:var(--radius);background:none;color:var(--ht-muted);font-size:13px;font-weight:500;transition:background .15s,color .15s,box-shadow .15s}
.ht-segment button small{font-size:12px}
.ht-segment button:hover{color:var(--ht-ink)}
.ht-segment button[aria-pressed="true"]{background:#fff;color:var(--ht-primary-dark);font-weight:600;box-shadow:0 1px 3px rgba(20,30,25,.12)}
.ht-switch{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin:0;cursor:pointer}
.ht-switch-text{display:flex;flex-direction:column;line-height:1.3}
.ht-switch-text span{font-size:14px;font-weight:500;color:var(--ht-ink)}
.ht-switch-text small{font-size:12px;color:var(--ht-muted)}
.ht-switch input{position:absolute;opacity:0;width:1px;height:1px}
.ht-switch-track{position:relative;flex:0 0 auto;width:40px;height:24px;border-radius:var(--radius-pill);background:#CFCCC2;transition:background .2s}
.ht-switch-track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
.ht-switch input:checked+.ht-switch-track{background:var(--ht-primary)}
.ht-switch input:checked+.ht-switch-track::after{transform:translateX(16px)}
.ht-switch input:focus-visible+.ht-switch-track{outline:2px solid #EB8725;outline-offset:2px}
.ht-results{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:16px}
.ht-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;padding-bottom:4px}
.ht-toolbar h2{font-size:22px;font-weight:600;letter-spacing:-.3px;margin:0}
.ht-toolbar p{margin:4px 0 0;font-size:13px;color:var(--ht-muted)}
.ht-sort{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--ht-muted);margin:0}
.ht-sort select{min-height:42px;width:auto;border-color:#D6D3CA;border-radius:var(--radius);font-size:14px;color:var(--ht-ink)}
.ht-tags{display:flex;flex-wrap:wrap;gap:8px}
.ht-tags:empty{display:none}
.ht-tag{display:flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:0;border-radius:var(--radius-pill);background:var(--ht-primary-soft);color:var(--ht-primary-dark);font-size:13px;font-weight:500}
.ht-tag:hover{background:#D3E8DB}
.ht-cta-city{align-self:flex-start;min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 18px;border-radius:var(--radius);background:#EB8725;color:#1D2521;font-weight:600;font-size:14px;text-decoration:none;transition:background .15s}
.ht-cta-city:hover{background:#D9761A;color:#1D2521}
.ht-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.ht-card{background:#fff;border:1px solid var(--ht-line);border-radius:var(--ht-radius);overflow:hidden;display:flex;flex-direction:column;position:relative;box-shadow:var(--ht-shadow);transition:box-shadow .2s,transform .2s}
.ht-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(20,30,25,.12)}
.ht-card[hidden]{display:none}
.ht-card-media{position:relative;aspect-ratio:16/10;background:var(--ht-line);overflow:hidden}
.ht-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.ht-card:hover .ht-card-media img{transform:scale(1.04)}
.ht-offer{position:absolute;left:10px;bottom:10px;width:max-content;max-width:calc(100% - 20px);padding:4px 10px;border-radius:var(--radius-pill);background:var(--ht-offer-bg);color:var(--ht-offer-ink);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.ht-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:4px;flex:1 1 auto}
.ht-card h3{font-size:16px;line-height:1.35;font-weight:600;margin:2px 0 0}
.ht-card h3 a{color:var(--ht-ink);text-decoration:none}
.ht-card h3 a::after{content:"";position:absolute;inset:0}
.ht-place{margin:0 0 12px;font-size:13px;color:var(--ht-muted)}
.ht-card-foot{margin-top:auto;padding-top:12px;border-top:1px solid #F0EEE9;display:flex;justify-content:space-between;align-items:center;gap:12px}
.ht-from{font-size:12px;color:var(--ht-muted)}
.ht-price{font-size:20px;font-weight:600;line-height:1.2;color:var(--ht-primary)}
.ht-price small{font-size:12px;font-weight:500}
.ht-card-cta{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:var(--radius);background:var(--ht-primary-soft);color:var(--ht-primary-dark);font-weight:600;font-size:13px;transition:background .15s,color .15s}
.ht-card-cta::after{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}
.ht-card:hover .ht-card-cta{background:var(--ht-primary);color:#fff}
.ht-btn{background:var(--ht-primary);color:#fff;border:0}
.ht-btn:hover{background:var(--ht-primary-dark);color:#fff}
.ht-btn-outline{border:1px solid var(--ht-primary);background:#fff;color:var(--ht-primary)}
.ht-btn-outline:hover{background:var(--ht-primary);color:#fff}
.ht-more{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:12px;color:var(--ht-muted);font-size:13px}
.ht-empty{background:#fff;border:1px dashed #D6D3CA;border-radius:var(--ht-radius);padding:40px;text-align:center}
.ht-chips{display:none}
.ht-fab,.ht-filters-close,.ht-filters-apply{display:none}
.ht-seo{background:#fff;border-top:1px solid var(--ht-line)}
.ht-seo .ht-seo-body{max-height:220px;overflow:hidden;line-height:1.7;color:#3E4A44}
.ht-seo .ht-seo-body.is-open{max-height:none}
@media (min-width:992px){
  .ht-filters{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto}
}
@media (max-width:991.98px){
  .ht-tiles-section{display:none}
  .ht-chips{display:block;min-width:0;max-width:calc(100% + 24px);overflow-x:auto;margin:0 -12px;padding:0 12px 4px;scrollbar-width:none}
  .ht-chips>div{display:flex;gap:8px;width:max-content}
  .ht-chips .ht-chip{min-height:42px}
  .ht-filters{display:none;position:fixed;inset:0;z-index:1050;max-width:none;border:0;border-radius:0;box-shadow:none;overflow-y:auto;padding-bottom:96px}
  .ht-filters.is-open{display:flex}
  .ht-filters-close{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border:0;background:none}
  .ht-filters-apply{display:block;position:fixed;left:16px;right:16px;bottom:16px;min-height:52px;border-radius:var(--radius-lg)}
  .ht-results{padding-bottom:72px}
  .ht-city-row{min-height:44px;font-size:15px}
  .ht-fab{display:flex;align-items:center;gap:8px;white-space:nowrap;position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:1040;min-height:48px;padding:0 22px;border:0;border-radius:var(--radius-pill);background:var(--ht-ink);color:#fff;font-weight:600;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.28)}
}
@media (prefers-reduced-motion:reduce){.ht *{transition:none!important}.ht-card:hover,.ht-tile:hover{transform:none}}
.ht button:focus-visible,.ht a:focus-visible,.ht select:focus-visible,.ht input:focus-visible{outline:2px solid #EB8725;outline-offset:2px}
