/* Public Domains page. Everything is scoped under .dn; colours follow home.css. */
.dn { --dn-brand:#33003B; --dn-mid:#4A0955; --dn-accent:#FBD713; --dn-ok:#12805c; --dn-okbg:#e7f6ef;
  --dn-bad:#b42342; --dn-badbg:#fdecef; --dn-text:#0F1F38; --dn-muted:#5A6B84; --dn-line:#E5EAF2; --dn-bg:#F6F8FB; }
.dn *, .dn *::before, .dn *::after { box-sizing: border-box; }
.dn [hidden] { display: none !important; }
.dn :focus-visible { outline: 2px solid var(--dn-accent); outline-offset: 2px; }
.dn-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.dn-wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.dn-narrow { max-width: 820px; }

/* hero */
.dn-hero { position:relative; overflow:hidden; background: linear-gradient(180deg,#33003B 0%,#4A0955 100%); padding: 120px 0 64px; color:#fff; text-align:center; }
.dn-hero-glow { position:absolute; inset:0; background:
  radial-gradient(600px 300px at 15% 0%, rgba(251,215,19,.16), transparent 70%),
  radial-gradient(500px 320px at 90% 100%, rgba(138,31,156,.5), transparent 70%); pointer-events:none; }
.dn-hero-inner { position:relative; max-width: 860px; margin:0 auto; padding: 0 24px; }
.dn-eyebrow { display:inline-flex; gap:8px; align-items:center; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color: var(--dn-accent); background: rgba(251,215,19,.12); border:1px solid rgba(251,215,19,.3); padding:6px 14px; border-radius:99px; }
.dn-h1 { font-size: clamp(2rem, 4.6vw, 3.1rem); font-weight:800; line-height:1.12; letter-spacing:-.02em; margin: 18px 0 12px; color:#fff; }
.dn-lead { font-size: 1.08rem; line-height:1.6; color: rgba(255,255,255,.8); max-width: 640px; margin: 0 auto 30px; }

.dn-search { position:relative; display:flex; align-items:center; background:#fff; border-radius: 16px; padding: 8px 8px 8px 20px;
  box-shadow: 0 24px 60px -20px rgba(0,0,0,.55); max-width: 760px; margin: 0 auto; }
.dn-search:focus-within { box-shadow: 0 0 0 3px rgba(251,215,19,.65), 0 24px 60px -20px rgba(0,0,0,.55); }
.dn-search-ico { color:#9aa6b8; font-size:18px; margin-right:12px; }
.dn-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; font-size:1.15rem; font-weight:500; color:var(--dn-text); padding: 14px 4px; font-family:inherit; }
.dn-search input::placeholder { color:#9aa6b8; font-weight:400; }
.dn-search-btn { border:0; cursor:pointer; background: var(--dn-accent); color: var(--dn-brand); font-weight:800; font-size:1rem; padding: 14px 30px; border-radius: 11px; font-family:inherit; transition: transform .12s, filter .12s; }
.dn-search-btn:hover { filter: brightness(1.05); transform: translateY(-1px); }
.dn-search-btn[disabled] { opacity:.6; cursor:progress; transform:none; }

.dn-lang { position:absolute; top: 88px; right: 24px; z-index: 2; display:inline-flex; gap: 2px; padding: 3px; background: rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius: 99px; }
.dn-lang button { border:0; cursor:pointer; background:transparent; color: rgba(255,255,255,.8); font-weight:800; font-size:.78rem; letter-spacing:.04em; padding: 6px 13px; border-radius:99px; font-family:inherit; }
.dn-lang button:hover { color:#fff; }
.dn-lang button[aria-pressed="true"] { background: var(--dn-accent); color: var(--dn-brand); }
:root[dir="rtl"] .dn-lang { right:auto; left:24px; }
@media (max-width: 620px) { .dn-lang { top: 74px; right: 12px; } :root[dir="rtl"] .dn-lang { left: 12px; } }
.dn-ts { display:flex; justify-content:center; margin-top: 14px; }
.dn-ts:empty { display:none; }
.dn-quick { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top: 22px; }
.dn-quick-tld { cursor:pointer; display:flex; flex-direction:column; align-items:center; min-width: 92px; padding: 9px 14px; border-radius: 12px;
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); color:#fff; font-family:inherit; transition: background .15s, border-color .15s; }
.dn-quick-tld:hover { background: rgba(255,255,255,.16); border-color: var(--dn-accent); }
.dn-quick-tld b { font-size: 1.05rem; }
.dn-quick-tld span { font-size: .78rem; color: rgba(255,255,255,.75); }

/* results */
.dn-results-wrap { background: var(--dn-bg); padding: 40px 0 8px; }
.dn-results-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom: 18px; }
.dn-h2 { font-size: clamp(1.4rem, 2.6vw, 2rem); font-weight:800; letter-spacing:-.01em; color: var(--dn-text); margin:0 0 6px; }
.dn-results-head .dn-h2 { margin:0; }
.dn-results-head .dn-h2:focus { outline:none; }
.dn-grid { display:grid; grid-template-columns: minmax(0,1fr) 340px; gap: 24px; align-items:start; }
.dn-list { display:flex; flex-direction:column; gap:10px; min-width:0; }

.dn-cur { display:inline-flex; background:#fff; border:1px solid var(--dn-line); border-radius: 99px; padding:3px; }
.dn-cur button { border:0; background:transparent; cursor:pointer; padding:6px 14px; border-radius:99px; font-size:.82rem; font-weight:700; color: var(--dn-muted); font-family:inherit; }
.dn-cur button[aria-pressed="true"] { background: var(--dn-brand); color:#fff; }

.dn-row { display:grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 16px; align-items:center; background:#fff;
  border:1px solid var(--dn-line); border-radius: 14px; padding: 14px 18px; transition: border-color .15s, box-shadow .15s; }
.dn-row:hover { border-color:#d3b8da; box-shadow: 0 6px 22px -14px rgba(51,0,59,.45); }
.dn-row.is-exact { border:2px solid var(--dn-brand); box-shadow: 0 10px 30px -16px rgba(51,0,59,.5); padding: 20px 20px; }
.dn-row.is-taken, .dn-row.is-unsupported, .dn-row.is-error { background:#fafbfd; }
.dn-row.is-taken .dn-name, .dn-row.is-unsupported .dn-name { color:#8896ab; }
.dn-name { font-size: 1.12rem; font-weight:700; color: var(--dn-text); overflow-wrap:anywhere; }
.dn-row.is-exact .dn-name { font-size: 1.4rem; }
.dn-name em { font-style:normal; color: var(--dn-mid); }
.dn-tagline { display:flex; gap:8px; align-items:center; margin-top: 4px; font-size:.82rem; color: var(--dn-muted); flex-wrap:wrap; }
.dn-pill { display:inline-flex; align-items:center; gap:5px; font-size:.74rem; font-weight:700; padding: 3px 10px; border-radius: 99px; }
.dn-pill-ok { color: var(--dn-ok); background: var(--dn-okbg); }
.dn-pill-bad { color: var(--dn-bad); background: var(--dn-badbg); }
.dn-pill-mute { color: var(--dn-muted); background:#eef1f6; }
.dn-pill-mine { color:#5b3a00; background:#fff3c4; }
.dn-price { text-align:right; white-space:nowrap; }
.dn-price b { display:block; font-size: 1.15rem; color: var(--dn-text); }
.dn-price small { color: var(--dn-muted); font-size:.74rem; }

.dn-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; border:1px solid transparent; font-weight:700; font-size:.92rem; padding: 10px 20px; border-radius: 10px; text-decoration:none; font-family:inherit; transition: filter .12s, transform .12s, background .12s; }
.dn-btn-primary { background: var(--dn-brand); color:#fff; }
.dn-btn-primary:hover { filter: brightness(1.2); color:#fff; text-decoration:none; }
.dn-btn-ghost { background:#fff; color: var(--dn-brand); border-color: var(--dn-line); }
.dn-btn-ghost:hover { border-color: var(--dn-brand); color: var(--dn-brand); text-decoration:none; }
.dn-btn-accent { background: var(--dn-accent); color: var(--dn-brand); }
.dn-btn-accent:hover { filter: brightness(1.06); color: var(--dn-brand); text-decoration:none; }
.dn-btn-added { background: var(--dn-okbg); color: var(--dn-ok); border-color: #bfe6d4; }
.dn-btn-block { width:100%; }
.dn-btn[disabled] { opacity:.55; cursor:not-allowed; }

.dn-skel { height: 66px; border-radius: 14px; background: linear-gradient(90deg,#eef1f6 25%,#f7f9fc 37%,#eef1f6 63%); background-size: 400% 100%; animation: dn-sk 1.3s ease infinite; }
@keyframes dn-sk { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
.dn-note { background:#fff; border:1px solid var(--dn-line); border-radius:14px; padding: 22px; text-align:center; color: var(--dn-muted); }
.dn-note b { display:block; color: var(--dn-text); margin-bottom:4px; }
.dn-note.is-bad { border-color:#f3c4cd; background: var(--dn-badbg); color:#7a1d31; }
.dn-more { text-align:center; margin: 18px 0 0; }

/* basket */
.dn-basket { position: sticky; top: 90px; background:#fff; border:1px solid var(--dn-line); border-radius: 16px; padding: 18px; box-shadow: 0 10px 30px -22px rgba(15,31,56,.5); }
.dn-basket-head { display:flex; align-items:center; gap:10px; margin-bottom: 12px; color: var(--dn-brand); }
.dn-basket-count { margin-left:auto; background: var(--dn-accent); color: var(--dn-brand); font-weight:800; font-size:.78rem; border-radius:99px; padding: 2px 9px; }
.dn-basket-items { list-style:none; margin:0 0 12px; padding:0; display:flex; flex-direction:column; gap:8px; max-height: 340px; overflow:auto; }
.dn-bi { display:grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; padding: 10px 12px; border:1px solid var(--dn-line); border-radius:10px; }
.dn-bi-name { font-weight:700; font-size:.92rem; overflow-wrap:anywhere; }
.dn-bi-price { font-weight:700; font-size:.9rem; text-align:right; }
.dn-bi select { grid-column:1; font-size:.8rem; border:1px solid var(--dn-line); border-radius:7px; padding: 3px 6px; background:#fff; color: var(--dn-text); max-width: 110px; }
.dn-bi-rm { grid-column:2; justify-self:end; border:0; background:transparent; color:#8896ab; cursor:pointer; font-size:.8rem; }
.dn-bi-rm:hover { color: var(--dn-bad); }
.dn-basket-total { display:flex; justify-content:space-between; align-items:baseline; gap:10px; padding: 12px 0; border-top:1px solid var(--dn-line); font-size:.88rem; color: var(--dn-muted); }
.dn-basket-total b { color: var(--dn-text); font-size: 1.25rem; }
.dn-basket-note { margin: 10px 0 0; font-size:.78rem; color: var(--dn-muted); text-align:center; }

/* sections */
.dn-section { padding: 72px 0; }
.dn-section-alt { background:#fff; }
.dn-label { font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color: var(--dn-mid); margin-bottom: 8px; }
.dn-sub { color: var(--dn-muted); max-width: 640px; line-height:1.6; margin: 0 0 24px; }
.dn-feats { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; margin-top: 26px; }
.dn-feat { background:#fff; border:1px solid var(--dn-line); border-radius: 16px; padding: 24px; }
.dn-feat i { font-size: 20px; color: var(--dn-brand); background: rgba(251,215,19,.35); width:44px; height:44px; border-radius: 12px; display:flex; align-items:center; justify-content:center; margin-bottom: 14px; }
.dn-feat h3 { font-size: 1.05rem; font-weight:800; margin: 0 0 6px; color: var(--dn-text); }
.dn-feat p { margin:0; color: var(--dn-muted); font-size:.92rem; line-height:1.55; }

.dn-table-tools { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom: 14px; }
.dn-filter { display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--dn-line); border-radius: 10px; padding: 0 12px; min-width: 240px; }
.dn-filter i { color:#9aa6b8; }
.dn-filter input { border:0; outline:0; padding: 10px 0; flex:1; background:transparent; font-family:inherit; font-size:.92rem; color: var(--dn-text); }
.dn-table-wrap { border:1px solid var(--dn-line); border-radius: 14px; overflow:auto; background:#fff; max-height: 560px; }
.dn-table { width:100%; border-collapse: collapse; min-width: 560px; }
.dn-table th { position: sticky; top:0; background:#f1f4f9; text-align:left; font-size:.74rem; letter-spacing:.07em; text-transform:uppercase; color: var(--dn-muted); padding: 12px 18px; z-index:1; }
.dn-table td { padding: 13px 18px; border-top:1px solid var(--dn-line); font-size:.95rem; color: var(--dn-text); white-space:nowrap; }
.dn-table td:first-child { font-weight:800; }
.dn-table tr:hover td { background:#faf6fb; }
.dn-table .dn-na { color:#b3bdcc; }
.dn-table .dn-tag { font-size:.68rem; font-weight:800; background: var(--dn-accent); color: var(--dn-brand); padding: 2px 7px; border-radius: 99px; margin-left: 6px; vertical-align: middle; }
.dn-table button.dn-mini { border:1px solid var(--dn-line); background:#fff; color: var(--dn-brand); font-weight:700; font-size:.8rem; border-radius:8px; padding: 6px 12px; cursor:pointer; font-family:inherit; }
.dn-table button.dn-mini:hover { border-color: var(--dn-brand); }
.dn-empty { text-align:center; padding: 28px; color: var(--dn-muted); }

.dn-band { display:flex; align-items:center; justify-content:space-between; gap: 24px; flex-wrap:wrap; background: linear-gradient(120deg,#33003B,#4A0955); color:#fff; border-radius: 20px; padding: 36px 40px; }
.dn-band-h { margin:0 0 8px; font-size: 1.5rem; font-weight:800; color:#fff; }
.dn-band-p { margin:0; color: rgba(255,255,255,.8); max-width: 640px; line-height:1.6; }

.dn-faq { background: var(--dn-bg); border:1px solid var(--dn-line); border-radius: 12px; padding: 0 20px; margin-bottom: 10px; }
.dn-faq summary { cursor:pointer; padding: 16px 0; font-weight:700; color: var(--dn-text); list-style:none; }
.dn-faq summary::-webkit-details-marker { display:none; }
.dn-faq summary::after { content:'+'; float:right; font-size:1.3rem; line-height:1; color: var(--dn-mid); }
.dn-faq[open] summary::after { content:'\2212'; }
.dn-faq div { padding: 0 0 16px; color: var(--dn-muted); line-height:1.6; }

:root[lang="ar"] .dn-price { text-align:left; }
:root[lang="ar"] .dn-faq summary::after { float:left; }
:root[lang="ar"] .dn-table th { text-align:right; }
:root[lang="ar"] .dn-basket-count { margin-left:0; margin-right:auto; }

@media (max-width: 960px) {
  .dn-grid { grid-template-columns: 1fr; }
  .dn-basket { position: static; order: -1; }
  .dn-feats { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .dn-hero { padding: 100px 0 48px; }
  .dn-search { flex-wrap: wrap; padding: 10px; }
  .dn-search input { flex: 1 1 100%; padding: 10px 4px; order: 1; font-size: 1rem; }
  .dn-search-ico { display:none; }
  .dn-search-btn { order: 2; width:100%; }
  .dn-row { grid-template-columns: 1fr auto; }
  .dn-row .dn-act { grid-column: 1 / -1; }
  .dn-row .dn-act .dn-btn { width:100%; }
  .dn-feats { grid-template-columns: 1fr; }
  .dn-section { padding: 48px 0; }
  .dn-band { padding: 28px 22px; }
}
@media (prefers-reduced-motion: reduce) { .dn-skel { animation:none; } .dn * { transition:none !important; } }
