/* Uganda Safari Operator Directory — prototype stylesheet (BEM-ish, scoped to .operator-directory) */
:root{--od-ink:#1b1b1b;--od-muted:#5a5a5a;--od-line:#d9d9d9;--od-line-soft:#ececec;--od-bg:#fff;--od-bg-soft:#f6f5f2;--od-accent:#1f4d3a;--od-accent-ink:#fff;--od-warn:#7a4a00;--od-warn-bg:#fff7e6;--od-max-width:1180px;--od-radius:0px;--od-font-body:inherit;--od-font-ui:var(--od-font-ui);}
/* Theming: override the variables above from Settings → Appearance, or in your theme's stylesheet. */
html{scroll-behavior:smooth}
.operator-directory{color:var(--od-ink);line-height:1.55}
.operator-directory{max-width:var(--od-max-width);margin:0 auto;padding:0 20px 60px;font-family:var(--od-font-body)}
.operator-directory h1{font-size:2.35rem;line-height:1.15;margin:.3em 0 .5em;letter-spacing:-.01em}
.operator-directory h2{font-size:1.65rem;line-height:1.2;margin:2.4em 0 .6em;padding-top:.6em;border-top:2px solid var(--od-ink)}
.operator-directory h3{font-size:1.15rem;margin:1.4em 0 .4em}
.operator-directory p{margin:0 0 1em}
.operator-directory a{color:var(--od-accent)}
.operator-directory ul{padding-left:1.2em}
.section-note{color:var(--od-muted);font-size:.95rem}
.btn,.operator-card__btn,.link-button{font:inherit;font-family:var(--od-font-ui);font-size:.92rem}
.btn{display:inline-block;padding:.55em 1.1em;border:1px solid var(--od-ink);background:var(--od-ink);color:#fff;cursor:pointer;text-decoration:none;border-radius:var(--od-radius)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn--secondary{background:#fff;color:var(--od-ink)}
.link-button{background:none;border:0;padding:0;color:var(--od-accent);text-decoration:underline;cursor:pointer;font-size:1rem;font-family:inherit}
/* breadcrumb */
.breadcrumbs{font:.9rem/1.4 var(--od-font-ui);color:var(--od-muted);padding:1em 0 .5em}
.breadcrumbs span[aria-hidden]{margin:0 .5em}
.breadcrumbs a{color:var(--od-muted)}
/* head */
.page-head__lead{font-size:1.1rem;max-width:62rem}
.page-head__meta{font:.9rem var(--od-font-ui);color:var(--od-muted)}
/* transparency */
.transparency{border-radius:var(--od-radius);border:1px solid var(--od-line);padding:1.2em 1.5em;margin-top:1.5em;background:var(--od-bg-soft)}
.transparency h2{border:0;margin:0 0 .5em;padding:0;font-size:1.25rem}
.transparency ul{margin:0}
/* stats */
.stats__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;border-top:1px solid var(--od-line);border-left:1px solid var(--od-line);margin:2em 0 0}
.stats__list>div{background:#fff;padding:.9em 1em;border-right:1px solid var(--od-line);border-bottom:1px solid var(--od-line)}
.stats__list dt{font:.8rem/1.3 var(--od-font-ui);color:var(--od-muted);text-transform:uppercase;letter-spacing:.04em}
.stats__list dd{margin:.15em 0 0;font-size:1.5rem;font-weight:700}
/* finder */
.finder__toggle{display:none}
.finder__panel{border-radius:var(--od-radius);border:1px solid var(--od-line);padding:1.2em 1.5em;font-family:var(--od-font-ui);font-size:.95rem}
.finder__row{margin-bottom:1em}
.finder__row--split{display:grid;grid-template-columns:repeat(3,1fr);gap:1em}
.finder label{display:block;font-weight:600;margin-bottom:.3em}
.finder__group label{display:inline-block;font-weight:400;margin:0 1.2em .35em 0}
.finder input[type=search],.finder select{width:100%;box-sizing:border-box;padding:.55em .7em;border:1px solid #999;font:inherit;background:#fff}
.finder__group{border:0;border-top:1px solid var(--od-line-soft);padding:.9em 0 .3em;margin:0}
.finder__group legend{font-weight:600;padding:0;margin-bottom:.3em}
.finder__footer{display:flex;justify-content:space-between;align-items:center;gap:1em;border-top:1px solid var(--od-line);padding-top:1em;margin-top:.5em;flex-wrap:wrap}
.finder__count{margin:0;font-weight:600}
/* glance table */
.operator-table table{width:100%;border-collapse:collapse;font:.9rem/1.4 var(--od-font-ui)}
.operator-table th,.operator-table td{text-align:left;vertical-align:top;padding:.6em .7em;border-bottom:1px solid var(--od-line-soft)}
.operator-table thead th{border-bottom:2px solid var(--od-ink);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.operator-table tbody th{font-weight:600}
.operator-table tr[hidden]{display:none}
/* cards */
.directory__list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--od-line)}
.operator-card{display:grid;grid-template-columns:260px 1fr;gap:2em;padding:2em 0;border-bottom:1px solid var(--od-line)}
.operator-card[hidden]{display:none}
.operator-card__media img,.operator-card__placeholder{width:100%;aspect-ratio:300/120;object-fit:contain;background:var(--od-bg-soft);border:1px solid var(--od-line-soft);padding:12px;box-sizing:border-box;height:auto}
.operator-card__placeholder{display:flex;align-items:center;justify-content:center;font:700 1.6rem var(--od-font-ui);color:#9a9a9a;letter-spacing:.05em}
.operator-card__title{margin:0 0 .6em;font-size:1.45rem}
.operator-card__facts{display:grid;grid-template-columns:1fr 1fr;gap:.35em 2em;margin:0 0 1em;font:.92rem/1.45 var(--od-font-ui)}
.operator-card__facts>div{display:grid;grid-template-columns:130px 1fr}
.operator-card__facts dt{color:var(--od-muted)}
.operator-card__facts dd{margin:0}
.operator-card__desc{max-width:60rem}
.operator-card__note{font:.85rem var(--od-font-ui);color:var(--od-muted)}
.operator-card__note--pending{color:var(--od-warn)}
.operator-card__actions{display:flex;flex-wrap:wrap;gap:.6em;margin-top:.5em}
.operator-card__btn{display:inline-block;padding:.5em 1em;border:1px solid var(--od-ink);text-decoration:none;color:var(--od-ink);background:#fff;cursor:pointer;border-radius:var(--od-radius)}
.operator-card__btn--profile{background:var(--od-ink);color:#fff}
.operator-card__btn--compare[aria-pressed=true]{background:var(--od-accent);color:#fff;border-color:var(--od-accent)}
.directory__empty{border-radius:var(--od-radius);padding:2em;border:1px dashed var(--od-line);text-align:center}
/* compare */
.operator-compare__tray{border-radius:var(--od-radius);border:1px solid var(--od-line);padding:1.2em 1.5em;font-family:var(--od-font-ui);font-size:.95rem}
.operator-compare__chips{list-style:none;padding:0;margin:0 0 .8em;display:flex;flex-wrap:wrap;gap:.5em}
.operator-compare__chips li{border:1px solid var(--od-ink);padding:.3em .3em .3em .8em;display:flex;align-items:center;gap:.5em}
.operator-compare__chips button{font:inherit;background:none;border:0;border-left:1px solid var(--od-line);padding:0 .4em;cursor:pointer}
.operator-compare__msg{color:var(--od-warn);margin:0 0 .8em;min-height:1.2em}
.operator-compare__empty{margin:0 0 .8em;color:var(--od-muted)}
.operator-compare__actions{display:flex;gap:.6em;flex-wrap:wrap}
.compare-table{width:100%;border-collapse:collapse;font:.92rem/1.4 var(--od-font-ui);margin-top:1.5em}
.compare-table th,.compare-table td{border:1px solid var(--od-line);padding:.55em .7em;text-align:left;vertical-align:top}
.compare-table thead th{background:var(--od-bg-soft)}
.compare-table tbody th{font-weight:600;background:#fafafa;width:30%}
.compare-table td.is-yes{background:#eef5f1}
/* checklist */
.operator-checklist__list{border-radius:var(--od-radius);list-style:none;padding:0;margin:0;border:1px solid var(--od-line)}
.operator-checklist__list li{border-bottom:1px solid var(--od-line-soft)}
.operator-checklist__list li:last-child{border:0}
.operator-checklist__list label{display:flex;gap:.8em;align-items:flex-start;padding:.7em 1em;cursor:pointer}
.operator-checklist__list input{margin-top:.35em;width:18px;height:18px}
.operator-checklist__footer{display:flex;justify-content:space-between;align-items:center;margin-top:.8em;flex-wrap:wrap;gap:.6em;font-family:var(--od-font-ui);font-size:.95rem}
/* details */
.questions__item,.faq__item{border-bottom:1px solid var(--od-line-soft)}
.questions__item summary,.faq__item summary{cursor:pointer;padding:.75em 0;font-weight:600}
.faq__item summary h3{display:inline;font-size:1.05rem;margin:0}
.questions__item p,.faq__item p{color:var(--od-ink);padding:0 0 .8em 1.2em;margin:0;max-width:60rem}
.compare-table--simple tbody th{width:22%}
.related__list{columns:3;column-gap:2em;list-style:none;padding:0}
.related__list li{margin-bottom:.5em;break-inside:avoid}
.editorial-info{margin-top:3em;padding-top:1.5em;border-top:2px solid var(--od-ink);font:.92rem/1.5 var(--od-font-ui);color:var(--od-muted)}
/* responsive */
@media (max-width:900px){
  .operator-card{grid-template-columns:200px 1fr;gap:1.4em}
  .finder__row--split{grid-template-columns:1fr}
  .related__list{columns:2}
}
@media (max-width:720px){
  .operator-directory h1{font-size:1.85rem}
  .finder__toggle{display:inline-block}
  .finder__panel{border-radius:var(--od-radius);display:none}
  .finder__panel.is-open{display:block}
  .operator-card{grid-template-columns:1fr;gap:1em;padding:1.5em 0}
  .operator-card__media{max-width:220px}
  .operator-card__facts{grid-template-columns:1fr}
  .operator-card__facts>div{grid-template-columns:120px 1fr}
  .operator-card__actions .operator-card__btn{flex:1 1 100%;text-align:center}
  .related__list{columns:1}
  /* table → cards */
  .operator-table table,.operator-table thead,.operator-table tbody,.operator-table tr,.operator-table th,.operator-table td{display:block}
  .operator-table thead{position:absolute;left:-9999px}
  .operator-table tbody tr{border:1px solid var(--od-line);margin-bottom:.8em;padding:.6em .9em}
  .operator-table tbody th{border:0;padding:.2em 0 .5em;font-size:1.05rem}
  .operator-table td{border:0;padding:.15em 0;display:grid;grid-template-columns:100px 1fr}
  .operator-table td::before{content:attr(data-label);color:var(--od-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
  .compare-table{font-size:.85rem}
  .compare-table th,.compare-table td{padding:.4em .45em}
}
/* profile pages */
.operator-profile{padding-bottom:2em}
.operator-profile__back{font:.95rem var(--od-font-ui)}
.operator-profile__head{display:flex;gap:2em;align-items:flex-start;flex-wrap:wrap;margin-bottom:1.5em}
.operator-profile__logo img{max-width:240px;height:auto;background:var(--od-bg-soft);padding:12px;border:1px solid var(--od-line-soft)}
.operator-profile__summary{font-size:1.15rem;flex:1 1 320px;margin:0}
.operator-profile__photo{margin:0 0 1.5em}
.operator-profile__photo img{width:100%;height:auto}
.operator-profile__facts{grid-template-columns:1fr 1fr}
.operator-profile__related{list-style:none;padding:0}
.operator-profile__related li{padding:.5em 0;border-bottom:1px solid var(--od-line-soft)}
.operator-card__logo{object-fit:contain}
.operator-card__photo{aspect-ratio:640/420;object-fit:cover;padding:0}
@media (max-width:720px){.operator-profile__facts{grid-template-columns:1fr}}

/* sticky results bar (desktop) */
.results-bar{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--od-line);padding:.5em 0;font:.9rem var(--od-font-ui);display:flex;gap:1.2em;align-items:center}
.results-bar[hidden]{display:none}
@media (max-width:720px){.results-bar{position:static}}
/* submission form + calculator */
.usod-form__ok{background:#eef5f1;border:1px solid #1f4d3a;padding:.8em 1em}
.usod-form__err{background:var(--od-warn-bg);border:1px solid #e6c98a;color:var(--od-warn);padding:.8em 1em}
.usod-form__panel textarea,.usod-form__panel input[type=file]{width:100%;box-sizing:border-box;font:inherit}
.usod-form__panel textarea{padding:.55em .7em;border:1px solid #999}
.calc__panel input[type=number]{width:100%;box-sizing:border-box;padding:.55em .7em;border:1px solid #999;font:inherit}
/* responsive hardening (verified at 320/375/390/430/768/1280) */
.operator-card__body,.operator-card__media{min-width:0}
.operator-card__facts dd,.operator-card__desc,.operator-card__title{overflow-wrap:anywhere}
.operator-table td,.compare-table td{overflow-wrap:anywhere}
@media (max-width:1000px){.operator-card__facts,.operator-profile__facts{grid-template-columns:1fr}}
@media (max-width:360px){.operator-card__facts>div{grid-template-columns:1fr}.operator-card__facts dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}}
/* narrow phones: comparison tables scroll horizontally inside their own box instead of widening the page */
.operator-compare__result{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:480px){.compare-table--simple{display:block;overflow-x:auto;white-space:nowrap}.compare-table--simple tbody th{width:auto}}
