/* DigiHuduma Core — component styles.
   Inherits the theme's CSS variables (--primary, --accent, --paper, --line, …)
   so every widget re-themes automatically per hub. */

.dh-hidden{display:none !important}
.dh-empty{color:var(--ink-soft,#4A5A52); font-size:14px; padding:24px 0}

/* ---------------- Notices ---------------- */
.dh-notice{padding:14px 18px; border-radius:10px; margin-bottom:22px; font-weight:600; font-size:14.5px}
.dh-notice-ok{background:var(--primary-tint,#DDE8DF); color:var(--primary-dark,#08251C); border:1px solid var(--primary,#0D3B2E)}
.dh-notice-err{background:var(--accent-tint,#F3DEDB); color:var(--accent,#B23A2A); border:1px solid var(--accent,#B23A2A)}

/* ---------------- Signup ---------------- */
.dh-signup{max-width:860px}
.dh-tabs{display:flex; gap:8px; margin-bottom:26px}
.dh-tab{flex:1; padding:13px 18px; border-radius:8px; border:1.5px solid var(--line,#D9D2B8);
  background:var(--card,#fff); font-weight:600; font-size:14px; cursor:pointer; transition:all .15s}
.dh-tab.active{background:var(--primary,#0D3B2E); border-color:var(--primary,#0D3B2E); color:#fff}
.dh-form label{display:block; font-weight:600; font-size:13px; margin-bottom:4px; color:var(--ink,#0D2E24)}
.dh-form input[type=text], .dh-form input[type=email], .dh-form input[type=tel],
.dh-form input[type=search], .dh-form select{
  width:100%; padding:12px 14px; border:1.5px solid var(--line,#D9D2B8); border-radius:8px;
  font-size:14.5px; background:var(--card,#fff); font-family:inherit; margin-top:5px}
.dh-form select:disabled{opacity:.55; background:var(--paper-alt,#EBE5D0)}
.dh-form input:focus, .dh-form select:focus{border-color:var(--primary,#0D3B2E); outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--primary,#0D3B2E) 12%, transparent)}
.dh-grid2{display:grid; grid-template-columns:1fr 1fr; gap:0 18px}
.dh-grid3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 18px}
.dh-form p{margin:0 0 16px}
.dh-gps-row{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.dh-fineprint{font-size:11px; color:var(--ink-soft,#4A5A52); letter-spacing:.03em}
@media (max-width:700px){.dh-grid2,.dh-grid3{grid-template-columns:1fr}}

/* ---------------- Directory ---------------- */
.dh-filters{display:grid; grid-template-columns:repeat(5,1fr) 1.4fr; gap:12px;
  background:var(--card,#fff); border:1px solid var(--line,#D9D2B8); border-radius:14px;
  padding:18px; margin-bottom:18px}
.dh-filter label{display:block; font-size:10.5px; letter-spacing:.14em; color:var(--primary,#0D3B2E);
  font-weight:700; margin-bottom:6px}
.dh-filter select, .dh-filter input{width:100%; padding:11px 12px; border:1.5px solid var(--line,#D9D2B8);
  border-radius:8px; font-size:13.5px; background:var(--paper,#F5F0E0); font-family:inherit}
.dh-filter select:focus, .dh-filter input:focus{border-color:var(--primary); background:#fff; outline:none}
.dh-filter select:disabled{opacity:.5}
@media (max-width:1000px){.dh-filters{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:640px){.dh-filters{grid-template-columns:1fr 1fr}}

.dh-directory .profile-grid{margin-top:10px}
.dh-directory .pcard{display:block}
.dh-pager{display:flex; gap:6px; margin-top:24px; flex-wrap:wrap}
.dh-page{width:38px; height:38px; border-radius:8px; border:1.5px solid var(--line,#D9D2B8);
  background:var(--card,#fff); font-weight:600; cursor:pointer}
.dh-page.active{background:var(--primary,#0D3B2E); color:#fff; border-color:var(--primary,#0D3B2E)}

/* ---------------- Smart search ---------------- */
.dh-smart-search{position:relative; max-width:680px}
.dh-ss-box{background:var(--card,#fff); border:1.5px solid var(--line,#D9D2B8); border-radius:14px;
  padding:6px; box-shadow:0 14px 34px -22px rgba(13,59,46,.35)}
.dh-smart-search input{width:100%; border:none; padding:14px 16px; font-size:15.5px;
  background:transparent; font-family:inherit}
.dh-smart-search input:focus{outline:none}
.dh-ss-results{position:absolute; inset:calc(100% + 6px) 0 auto; background:#fff; z-index:30;
  border:1px solid var(--line,#D9D2B8); border-radius:14px; overflow:hidden;
  box-shadow:0 28px 60px -20px rgba(13,59,46,.4)}
.dh-ss-item{display:flex; gap:12px; align-items:center; padding:13px 16px; border-bottom:1px solid var(--paper-alt,#EBE5D0)}
.dh-ss-item:last-child{border-bottom:none}
.dh-ss-item:hover{background:var(--gold-tint,#F1E3B8)}
.dh-ss-emoji{font-size:20px}
.dh-ss-label{display:block; font-weight:600; font-size:14px; color:var(--ink,#0D2E24)}
.dh-ss-path{display:block; font-size:10.5px; color:var(--ink-soft,#4A5A52); letter-spacing:.04em}

/* ---------------- Hub grid ---------------- */
.dh-hubs-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.dh-hub-card{display:flex; flex-direction:column; gap:8px; background:var(--card,#fff);
  border:1px solid var(--line,#D9D2B8); border-radius:16px; padding:22px;
  transition:transform .15s, box-shadow .15s; position:relative; overflow:hidden; color:var(--ink,#0D2E24)}
.dh-hub-card::before{content:""; position:absolute; inset:0 0 auto 0; height:4px; background:var(--primary)}
.dh-hub-card:hover{transform:translateY(-4px); box-shadow:0 22px 44px -22px rgba(13,59,46,.32)}
.dh-hub-emoji{width:46px; height:46px; display:inline-flex; align-items:center; justify-content:center;
  background:var(--primary-tint); border-radius:12px; font-size:23px}
.dh-hub-sector{font-size:9.5px; letter-spacing:.16em; color:var(--accent); font-weight:700}
.dh-hub-card h3{font-size:17px; color:var(--primary); margin:0}
.dh-hub-card p{font-size:12.5px; color:var(--ink-soft,#4A5A52); margin:0; flex:1}
.dh-hub-cta{font-weight:700; font-size:12.5px; color:var(--primary)}
.dh-hub-cta::after{content:" →"}
@media (max-width:1000px){.dh-hubs-grid{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:700px){.dh-hubs-grid{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.dh-hubs-grid{grid-template-columns:1fr}}

/* ---------------- Coverage ---------------- */
.dh-coverage{display:grid; grid-template-columns:1fr 340px; gap:36px; align-items:start}
.dh-coverage .county-grid{display:grid; grid-template-columns:repeat(8,1fr); gap:6px}
.dh-coverage .coverage-panel{position:sticky; top:100px}
@media (max-width:900px){.dh-coverage{grid-template-columns:1fr}
  .dh-coverage .county-grid{grid-template-columns:repeat(6,1fr)}}
@media (max-width:560px){.dh-coverage .county-grid{grid-template-columns:repeat(4,1fr)}}

/* ---------------- Reviews ---------------- */
.dh-star-input{display:inline-flex; flex-direction:row-reverse; gap:2px; font-size:26px}
.dh-star-input input{position:absolute; opacity:0; pointer-events:none}
.dh-star-input label{cursor:pointer; color:var(--line,#D9D2B8); transition:color .1s}
.dh-star-input label:hover, .dh-star-input label:hover ~ label,
.dh-star-input input:checked ~ label{color:var(--gold,#C9A84C)}
.dh-rating-field > label:first-child{font-weight:600; margin-right:10px}

/* ---------------- Single profile ---------------- */
.dh-profile{max-width:760px; margin:48px auto; padding:0 24px}
.dh-profile .stamp-card{margin-bottom:32px}
.dh-profile-body{font-size:15.5px; line-height:1.75}
