/* Partner directory (/directory, /directory/{category}, /directory/shop/{slug}).
   Hand-written on purpose: the marketing Tailwind file is precompiled from a
   fixed page list, so new utility classes would not exist here. */
.dr {
    --dr-ink:#0f172a; --dr-muted:#5b6677; --dr-line:#e7e9ee; --dr-soft:#f7f8fa; --dr-card:#ffffff;
    --dr-brand:#08a05a; --dr-brand-600:#07914f; --dr-tint:#e9f7ef; --rv-gold:#f5b301; --rv-off:#d5dae3;
    --dr-shadow:0 1px 2px rgba(10,14,26,.04), 0 12px 32px -24px rgba(10,14,26,.25);
}
html.dark .dr, [data-theme="dark"] .dr {
    --dr-ink:#eef2f8; --dr-muted:#9aa6b8; --dr-line:rgba(255,255,255,.10); --dr-soft:rgba(255,255,255,.03); --dr-card:#0f1420;
    --dr-brand:#16c47c; --dr-brand-600:#13b370; --dr-tint:rgba(22,196,124,.12); --rv-off:rgba(148,163,184,.30);
    --dr-shadow:0 1px 2px rgba(0,0,0,.4);
}
.dr { color:var(--dr-ink); }
.dr a { color:inherit; text-decoration:none; }
.dr .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.dr-wrap { max-width:1200px; margin:0 auto; padding:0 20px; }

/* stars (same component as checkout/portal) */
.dr .rv-stars { position:relative; display:inline-block; line-height:0; vertical-align:middle; white-space:nowrap; --rv-s:14px; }
.dr .rv-stars svg { display:inline-block; vertical-align:top; width:var(--rv-s); height:var(--rv-s); }
.dr .rv-stars-bg, .dr .rv-stars-fg { display:block; }
.dr .rv-stars-bg svg { fill:var(--rv-off); }
.dr .rv-stars-fg { position:absolute; top:0; bottom:0; inset-inline-start:0; overflow:hidden; white-space:nowrap; }
.dr .rv-stars-fg svg { fill:var(--rv-gold); }
.dr .rv-md { --rv-s:17px; }

/* hero + search */
.dr-hero { position:relative; padding:56px 0 30px; text-align:center; overflow:hidden; }
.dr-hero::before { content:""; position:absolute; inset:-200px 0 auto; height:520px; pointer-events:none;
    background:radial-gradient(700px 300px at 50% 60%, rgba(8,160,90,.13), transparent 70%); }
.dr-hero > .dr-wrap { position:relative; }
.dr-crumbs { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; font-size:13px; color:var(--dr-muted); margin-bottom:18px; }
.dr-shop .dr-crumbs { justify-content:flex-start; margin:28px 0 22px; }
.dr-crumbs a:hover { color:var(--dr-brand); }
.dr-crumbs span[aria-current] { color:var(--dr-ink); font-weight:600; }
.dr-h1 { margin:0 auto; max-width:820px; font-family:"Space Grotesk",Inter,system-ui,sans-serif; font-size:clamp(30px,5vw,52px);
    line-height:1.06; letter-spacing:-.02em; font-weight:700; }
.dr-sub { margin:16px auto 0; max-width:640px; font-size:17px; line-height:1.6; color:var(--dr-muted); }
.dr-search { max-width:760px; margin:30px auto 0; }
.dr-search-box { display:flex; align-items:center; gap:8px; padding:7px 7px 7px 16px; border-radius:16px;
    background:var(--dr-card); border:1px solid var(--dr-line); box-shadow:var(--dr-shadow); }
.dr-search-box:focus-within { border-color:var(--dr-brand); box-shadow:0 0 0 4px rgba(8,160,90,.12); }
.dr-search-box svg { width:20px; height:20px; flex:none; color:var(--dr-muted); }
.dr-search-box input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--dr-ink); font:inherit; font-size:16px; padding:10px 4px; }
.dr-search-box input::-webkit-search-cancel-button { cursor:pointer; }
.dr-search-box button, .dr-btn { flex:none; border:0; cursor:pointer; padding:12px 22px; border-radius:11px; font:inherit; font-weight:600; font-size:15px;
    color:#fff !important; background:var(--dr-brand); transition:background .15s; display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.dr-search-box button:hover, .dr-btn:hover { background:var(--dr-brand-600); }
.dr-btn-ghost { background:transparent; color:var(--dr-ink) !important; border:1px solid var(--dr-line); }
.dr-btn-ghost:hover { background:transparent; border-color:var(--dr-brand); color:var(--dr-brand) !important; }
.dr-filters { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:12px; }
.dr-sel select { appearance:none; padding:9px 34px 9px 14px; border-radius:10px; border:1px solid var(--dr-line); background-color:var(--dr-card);
    color:var(--dr-ink); font:inherit; font-size:14px; cursor:pointer; max-width:280px;
    background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
    background-position:calc(100% - 17px) 52%, calc(100% - 12px) 52%; background-size:5px 5px; background-repeat:no-repeat; }
.dr-sel select:focus { outline:none; border-color:var(--dr-brand); }
.dr-noscript { margin-top:10px; }

/* category chips */
.dr-chips { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; padding-top:6px; padding-bottom:6px; }
.dr-chip { display:inline-flex; align-items:center; gap:6px; padding:7px 13px; border-radius:999px; border:1px solid var(--dr-line);
    background:var(--dr-card); font-size:13px; font-weight:600; color:var(--dr-muted) !important; transition:.15s; }
.dr-chip em { font-style:normal; font-weight:700; font-size:11px; padding:1px 7px; border-radius:99px; background:var(--dr-soft); color:var(--dr-muted); }
.dr-chip:hover { border-color:var(--dr-brand); color:var(--dr-brand) !important; }
.dr-chip.on { background:var(--dr-brand); border-color:var(--dr-brand); color:#fff !important; }
.dr-chip.on em { background:rgba(255,255,255,.2); color:#fff; }

/* results */
.dr-results { padding-top:26px; padding-bottom:20px; }
.dr-count { font-size:14px; color:var(--dr-muted); margin-bottom:16px; }
.dr-count a { color:var(--dr-brand) !important; font-weight:600; }
.dr-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:18px; }
.dr-card { position:relative; display:flex; flex-direction:column; gap:12px; padding:18px; border-radius:18px; background:var(--dr-card);
    border:1px solid var(--dr-line); box-shadow:var(--dr-shadow); transition:border-color .15s, transform .15s; }
.dr-card:hover { border-color:rgba(8,160,90,.45); transform:translateY(-2px); }
.dr-card-main { display:flex; align-items:center; gap:13px; min-width:0; }
.dr-card-main::after { content:""; position:absolute; inset:0; border-radius:18px; }   /* whole card clickable */
.dr-card-id { display:flex; flex-direction:column; gap:3px; min-width:0; }
.dr-card-name { display:flex; align-items:center; gap:6px; min-width:0; }
.dr-card-nm { font-weight:700; font-size:16px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dr-card-cat { font-size:12.5px; color:var(--dr-muted); }
.dr-card-tag { margin:0; font-size:14px; line-height:1.55; color:var(--dr-muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.9em; }
.dr-card-foot { display:flex; align-items:center; gap:10px; margin-top:auto; padding-top:12px; border-top:1px solid var(--dr-line); font-size:12.5px; color:var(--dr-muted); }
.dr-card-country { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dr-card-visit { position:relative; z-index:2; margin-inline-start:auto; width:32px; height:32px; flex:none; display:grid; place-items:center; border-radius:9px;
    border:1px solid var(--dr-line); color:var(--dr-muted) !important; transition:.15s; }
.dr-card-visit:hover { border-color:var(--dr-brand); color:var(--dr-brand) !important; }
.dr-card-visit svg { width:15px; height:15px; }
.dr-feat { position:absolute; top:12px; inset-inline-end:12px; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
    padding:3px 9px; border-radius:99px; color:var(--dr-brand); background:var(--dr-tint); }
.dr-rate { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.dr-rate b { color:var(--dr-ink); font-weight:700; }
.dr-empty { text-align:center; padding:56px 20px; border:1px dashed var(--dr-line); border-radius:18px; color:var(--dr-muted); }
.dr-empty svg { width:42px; height:42px; color:var(--dr-muted); opacity:.6; }
.dr-empty p { margin:8px 0 0; }
.dr-empty b { color:var(--dr-ink); font-size:16px; }
.dr-pager { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:26px; font-size:14px; color:var(--dr-muted); }
.dr-pager a { padding:9px 16px; border-radius:10px; border:1px solid var(--dr-line); background:var(--dr-card); font-weight:600; color:var(--dr-ink) !important; }
.dr-pager a:hover { border-color:var(--dr-brand); color:var(--dr-brand) !important; }

/* logos + verified check */
.dr-logo { flex:none; width:52px; height:52px; border-radius:14px; overflow:hidden; display:grid; place-items:center; background:var(--dr-soft); border:1px solid var(--dr-line); }
.dr-logo img { width:100%; height:100%; object-fit:contain; display:block; }
.dr-logo-txt { font-weight:800; font-size:17px; color:var(--dr-brand); background:var(--dr-tint); border-color:transparent; }
.dr-logo-lg { width:96px; height:96px; border-radius:24px; }
.dr-logo-lg.dr-logo-txt { font-size:30px; }
.dr-ver { position:relative; z-index:2; display:inline-flex; flex:none; width:18px; height:18px; cursor:default; outline:none; }
.dr-ver svg { width:100%; height:100%; }
.dr-ver-lg { width:26px; height:26px; }
.dr-ver::after { content:attr(data-tip); position:absolute; bottom:calc(100% + 8px); left:50%; transform:translate(-50%, 4px); white-space:nowrap;
    padding:6px 10px; border-radius:8px; font-size:12px; font-weight:600; line-height:1.2; letter-spacing:0;
    color:#fff; background:#0f172a; box-shadow:0 6px 18px -6px rgba(0,0,0,.35); opacity:0; pointer-events:none; transition:opacity .12s, transform .12s; }
.dr-ver::before { content:""; position:absolute; bottom:calc(100% + 2px); left:50%; transform:translateX(-50%); border:6px solid transparent;
    border-top-color:#0f172a; border-bottom:0; opacity:0; transition:opacity .12s; }
html.dark .dr-ver::after { background:#1e293b; } html.dark .dr-ver::before { border-top-color:#1e293b; }
.dr-ver:hover::after, .dr-ver:focus-visible::after { opacity:1; transform:translate(-50%, 0); }
.dr-ver:hover::before, .dr-ver:focus-visible::before { opacity:1; }

/* call to action */
.dr-cta { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin:40px 0 70px; padding:28px 30px; border-radius:22px;
    background:linear-gradient(135deg, rgba(8,160,90,.10), rgba(8,160,90,.02)); border:1px solid rgba(8,160,90,.25); }
.dr-cta h2 { margin:0; font-family:"Space Grotesk",Inter,system-ui,sans-serif; font-size:22px; letter-spacing:-.01em; }
.dr-cta p { margin:6px 0 0; color:var(--dr-muted); max-width:620px; line-height:1.55; }

/* shop page */
.dr-shop-head { display:flex; align-items:center; gap:22px; flex-wrap:wrap; padding:26px; border-radius:22px; background:var(--dr-card);
    border:1px solid var(--dr-line); box-shadow:var(--dr-shadow); }
.dr-shop-id { flex:1; min-width:240px; }
.dr-shop-id h1 { display:flex; align-items:center; gap:10px; margin:0; font-family:"Space Grotesk",Inter,system-ui,sans-serif;
    font-size:clamp(26px,4vw,38px); line-height:1.1; letter-spacing:-.02em; }
.dr-shop-id h1 .dr-ver::after { font-family:Inter,system-ui,sans-serif; }
.dr-shop-tag { margin:8px 0 0; font-size:16.5px; line-height:1.55; color:var(--dr-muted); }
.dr-shop-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:14px; font-size:13px; color:var(--dr-muted); }
.dr-pill { display:inline-block; padding:5px 12px; border-radius:99px; font-size:12.5px; font-weight:600; color:var(--dr-brand) !important; background:var(--dr-tint); }
.dr-pill-plain { color:var(--dr-muted) !important; background:var(--dr-soft); border:1px solid var(--dr-line); }
.dr-shop-actions { display:flex; flex-direction:column; gap:10px; min-width:200px; }
.dr-shop-grid { display:grid; grid-template-columns:minmax(0, 1.6fr) minmax(0, 1fr); gap:18px; margin-top:18px; align-items:start; }
.dr-side { display:flex; flex-direction:column; gap:18px; position:sticky; top:96px; }
.dr-verline { display:flex; align-items:center; gap:9px; margin-top:16px; padding-top:14px; border-top:1px solid var(--dr-line); font-size:14px; font-weight:600; }
.dr-paywith { background:linear-gradient(160deg, rgba(8,160,90,.09), rgba(8,160,90,.01) 60%), var(--dr-card); border-color:rgba(8,160,90,.22); }
.dr-paywith h2 { font-size:17px; }
.dr-coins { display:flex; align-items:center; flex-wrap:wrap; gap:0; margin:2px 0 16px; }
.dr-coins img, .dr-coins-more { width:32px; height:32px; border-radius:50%; background:var(--dr-card); box-shadow:0 0 0 2px var(--dr-card); }
.dr-coins img + img, .dr-coins img + .dr-coins-more { margin-inline-start:-7px; }
.dr-coins-more { display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; color:var(--dr-brand); background:var(--dr-tint); }
.dr-checks { list-style:none; margin:0 0 18px; padding:0; display:grid; gap:9px; font-size:14px; line-height:1.45; }
.dr-checks li { position:relative; padding-inline-start:26px; }
.dr-checks li::before { content:""; position:absolute; inset-inline-start:0; top:1px; width:18px; height:18px; border-radius:50%; background:var(--dr-tint)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%2308a05a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M5.5 10.5l3 3 6-6.5'/%3E%3C/svg%3E") center/12px no-repeat; }
.dr-btn-block { display:block; width:100%; text-align:center; box-sizing:border-box; }
.dr-about p { margin:0 0 16px; } .dr-about p:last-child { margin-bottom:0; }
.dr-about h3 { margin:22px 0 6px; font-size:15.5px; font-weight:700; color:var(--dr-ink); }
.dr-about h3:first-child { margin-top:0; }
.dr-panel { padding:24px; border-radius:20px; background:var(--dr-card); border:1px solid var(--dr-line); }
.dr-panel h2 { margin:0 0 12px; font-size:18px; }
.dr-about { font-size:15.5px; line-height:1.7; overflow-wrap:anywhere; }
.dr-score { display:flex; align-items:center; gap:14px; padding-bottom:18px; margin-bottom:16px; border-bottom:1px solid var(--dr-line); }
.dr-score strong { font-size:40px; line-height:1; font-weight:800; letter-spacing:-1px; }
.dr-score small { display:block; margin-top:5px; font-size:12.5px; color:var(--dr-muted); }
.dr-facts dl { margin:0; display:grid; grid-template-columns:auto 1fr; gap:10px 16px; font-size:14px; }
.dr-facts dt { color:var(--dr-muted); }
.dr-facts dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
.dr-facts dd a { color:var(--dr-brand) !important; }
.dr-related { margin-top:40px; }
.dr-related-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:16px; }
.dr-related-head h2 { margin:0; font-size:20px; }
.dr-related-head a { font-size:14px; font-weight:600; color:var(--dr-brand) !important; }

@media (max-width:820px) {
    .dr-shop-grid { grid-template-columns:1fr; }
    .dr-side { position:static; }
    .dr-shop-actions { flex-direction:row; flex-wrap:wrap; width:100%; }
    .dr-shop-actions .dr-btn { flex:1; }
}
@media (max-width:560px) {
    .dr-hero { padding-top:36px; }
    .dr-search-box button { padding:11px 14px; }
    .dr-grid { grid-template-columns:1fr; }
    .dr-shop-head { padding:20px; gap:16px; }
    .dr-logo-lg { width:72px; height:72px; border-radius:18px; }
    .dr-cta { padding:22px; }
    .dr-sel select { max-width:100%; }
}
[dir="rtl"] .dr-sel select { padding:9px 14px 9px 34px; background-position:12px 52%, 17px 52%; }
