/* ==========================================================================
   NadorCity.info — home.css (Home v2, modern/advanced layout)
   Loaded only on the homepage. Built on top of the app.css design tokens
   (--background, --card, --primary, --gradient-brand, --radius, ...).
   RTL-safe: uses logical/grid ordering so the lead sits on the "start" side.
   ========================================================================== */

/* ============ Breaking-news ticker ============ */
.news-ticker {
  display: flex;
  align-items: center;
  gap: 14px;
  max-width: var(--max-width);
  margin: 18px auto 0;
  padding: 8px 14px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 999px;
  overflow: hidden;
}
.ticker-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff;
  background: var(--gradient-brand);
  padding: 6px 12px;
  border-radius: 999px;
  white-space: nowrap;
}
.ticker-badge .pulse {
  width: 8px; height: 8px; border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 0 rgba(255,255,255,.7);
  animation: tickerPulse 1.6s infinite;
}
@keyframes tickerPulse {
  0%   { box-shadow: 0 0 0 0 rgba(255,255,255,.7); }
  70%  { box-shadow: 0 0 0 7px rgba(255,255,255,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}
.ticker-viewport { flex: 1 1 auto; min-width: 0; overflow: hidden; position: relative; height: 1.5em; }
.ticker-track { position: relative; height: 100%; }
.ticker-item {
  position: absolute; inset: 0;
  display: flex; align-items: center;
  gap: 8px;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--foreground);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  opacity: 0;
  transform: translateY(40%);
  transition: opacity .45s var(--ease), transform .45s var(--ease);
  text-decoration: none;
}
.ticker-item:hover { color: var(--primary); text-decoration: none; }
.ticker-item.active { opacity: 1; transform: translateY(0); }
.ticker-item::before { content: "▸"; color: var(--primary); }

/* ============ Featured lead block — mobile-first ============ */
.home-featured {
  display: grid;
  grid-template-columns: minmax(0, 1fr); /* mobile base single column; minmax(0,) so nowrap hcard titles / large imgs can't expand the track */
  gap: 16px;
  margin-top: 4px;
}
.f-lead {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 280px; /* mobile base */
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  background: var(--bg-elev-2, #1a1f2e);
  isolation: isolate;
  border: 1px solid var(--border);
  transition: border-color var(--duration) var(--ease);
}
@media (min-width: 761px) {
  .home-featured { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
  .f-lead { min-height: 320px; }
}
.f-lead:hover { border-color: var(--primary); }
.f-lead-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: var(--image-filter);
  transition: transform .7s var(--ease);
  z-index: -2;
}
.f-lead:hover .f-lead-img { transform: scale(1.05); }
.f-lead-grad {
  position: absolute; inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(11,13,20,0) 46%, rgba(11,13,20,.62) 82%, rgba(11,13,20,.92) 100%);
}
html[data-theme="light"] .f-lead-grad {
  background: linear-gradient(180deg, rgba(11,13,20,0) 46%, rgba(11,13,20,.62) 82%, rgba(11,13,20,.92) 100%);
}
.f-lead-body {
  position: relative;
  z-index: 1;
  padding: 16px; /* mobile base */
  max-width: 92%;
  min-width: 0;
  overflow-wrap: anywhere;
}
.f-lead-title, .f-lead-summary { overflow-wrap: anywhere; word-break: break-word; }
@media (min-width: 461px) { .f-lead-body { padding: 20px 22px; } }
.f-lead-cat {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #fff;
  background: var(--gradient-brand);
  padding: 5px 12px;
  border-radius: 999px;
  margin-bottom: 10px;
}
.f-lead-title {
  margin: 0 0 8px;
  font-size: clamp(1.5rem, 2.6vw, 2.4rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,.85), 0 2px 14px rgba(0,0,0,.6);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;   overflow: hidden;
}
.f-lead-summary {
  margin: 0 0 8px;
  color: rgba(255,255,255,.92);
  font-size: var(--text-sm);
  line-height: 1.45;
  text-shadow: 0 1px 3px rgba(0,0,0,.85), 0 1px 8px rgba(0,0,0,.5);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.f-lead-meta { font-size: var(--text-xs); color: rgba(255,255,255,.9); text-shadow: 0 1px 3px rgba(0,0,0,.85); }
.f-lead-meta .dot { color: var(--primary); margin: 0 6px; }

/* f-secondary rendered as a headerless band (same .band-list as category bands) */
.f-secondary-band {
  background: rgba(22, 24, 33, 0.2);
  border-color: var(--border);
}

/* ============ Quick-nav pills ============ */
.home-quicknav {
  display: flex;
  gap: 10px;
  margin-top: 24px;
  padding-bottom: 4px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  min-width: 0;
}
.home-quicknav::-webkit-scrollbar { display: none; }
.home-quicknav a {
  flex: 0 0 auto;
  white-space: nowrap;
  padding: 9px 18px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--foreground);
  font-size: var(--text-sm);
  font-weight: 600;
  text-decoration: none;
  transition: border-color var(--duration) var(--ease), color var(--duration) var(--ease), background var(--duration) var(--ease);
}
.home-quicknav a:hover { border-color: var(--primary); color: var(--primary); text-decoration: none; }

/* ============ Main two-column — mobile-first ============ */
.home-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr); /* mobile base single column; minmax(0,) guards against hcard/img min-content blowout */
  gap: 30px;
  align-items: start;
  margin-top: 32px;
}
@media (min-width: 981px) { .home-main { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.home-feed .article-grid { margin-top: 4px; }

/* Most-read band moved into the main feed — same band/hcard design, 2 per line */
.home-feed .most-read-feed { margin-top: 22px; }
.home-feed .most-read-feed .band-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
@media (max-width: 767px) {
  .home-feed .most-read-feed .band-list { grid-template-columns: minmax(0, 1fr); }
}

/* ============ Sidebar ============ */
.home-sidebar { display: flex; flex-direction: column; gap: 22px; position: static; }
@media (min-width: 981px) { .home-sidebar { position: sticky; top: 84px; } }
.side-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 18px;
}
.side-card-title {
  display: inline-block;
  vertical-align: baseline;
  margin: 0;
  font-size: var(--text-lg);
  font-weight: 800;
  letter-spacing: -0.01em;
  position: relative;
  padding-inline-start: 12px;
}
.side-card-title::before {
  content: ""; position: absolute; inset-inline-start: 0; top: 3px; bottom: 3px;
  width: 4px; border-radius: 4px; background: var(--gradient-brand);
}
/* ============ Sidebar weather card ============ */
.side-weather { padding-bottom: 14px; }
.side-w-now {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px 0 4px;
  color: var(--foreground);
}
.side-w-icon { font-size: 30px; line-height: 1; flex: 0 0 auto; }
.side-w-temp {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.side-w-wind {
  margin-inline-start: auto;
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--muted-foreground);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.side-w-forecast {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0 0;
  padding: 12px 0 0;
  border-top: 1px solid var(--border);
}
.side-w-forecast li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  min-width: 0;
  padding: 8px 4px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--foreground) 3%, transparent);
}
.side-w-day { font-size: 10px; font-weight: 700; color: var(--muted-foreground); letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.side-w-ico { font-size: 19px; line-height: 1; }
.side-w-t { font-size: 11px; font-weight: 700; color: var(--foreground); font-variant-numeric: tabular-nums; white-space: nowrap; }
.side-w-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--muted-foreground);
}
.side-w-dot { opacity: .5; }


@media (max-width: 460px) {
  .side-card { padding: 14px; }
}

/* ============ Community CTA strip — mobile-first ============ */
.home-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr); /* mobile base single */
  gap: 16px;
  margin-top: 34px;
}
@media (min-width: 761px) { .home-cta { grid-template-columns: repeat(3, 1fr); } }
.cta-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  background: var(--card);
  border: 1px solid var(--border);
  transition: transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}
.cta-card:hover { transform: translateY(-3px); text-decoration: none; color: #fff; box-shadow: 0 14px 30px -12px rgba(0,0,0,.5); }
.cta-card.tip      { background: linear-gradient(135deg, #ff2357, #c600db); }
.cta-card.annonce  { background: linear-gradient(135deg, #00b7d7, #155dfc); }
.cta-card.business { background: linear-gradient(135deg, #f99c00, #f6339a); }
.cta-icon {
  flex: 0 0 46px; width: 46px; height: 46px;
  display: grid; place-items: center;
  border-radius: 12px;
  background: rgba(255,255,255,.18);
}
.cta-icon svg { width: 24px; height: 24px; color: #fff; }
.cta-text { min-width: 0; }
.cta-title { display: block; font-size: var(--text-base); font-weight: 800; }
.cta-desc  { display: block; font-size: var(--text-xs); opacity: .92; margin-top: 2px; }

/* ============ Bands (restyled section header only) ============ */
.home-bands { margin-top: 34px; }

/* Bands grid: mirror app.css breakpoints with minmax(0, 1fr) tracks so nowrap
   hcard titles can't expand columns into horizontal page overflow. */
.home-bands .bands-grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .home-bands .bands-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .home-bands .bands-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Latest grid: same min-content guard for the single-column mobile base
   (561px+ multi-column restore mirrors app.css, which this selector outranks). */
.home-feed .article-grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 561px) { .home-feed .article-grid { grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); } }

/* ============ Prayer-times card (sidebar) ============ */
.prayer-card { overflow: hidden; }
.prayer-hijri {
  margin: 6px 0 0;
  font-size: var(--text-xs);
  color: var(--muted-foreground);
}
.prayer-hero {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--primary) 32%, var(--border));
  border-radius: var(--radius);
  background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, var(--card)), var(--card) 72%);
}
.prayer-hero-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.prayer-hero-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--primary);
}
.prayer-hero-time {
  font-size: 30px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--foreground);
  font-variant-numeric: tabular-nums;
}
.prayer-hero-name {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 6px;
  font-size: var(--text-base);
  font-weight: 800;
  color: var(--foreground);
}
.prayer-count {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 8px;
  font-size: var(--text-xs);
  color: var(--muted-foreground);
}
.prayer-count-val {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--primary);
  color: var(--primary-foreground);
  font-size: 12px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}
.prayer-progress {
  height: 5px;
  margin-top: 12px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--foreground) 12%, transparent);
  overflow: hidden;
}
.prayer-progress span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: var(--gradient-brand);
  transition: width 1s linear;
}
.prayer-list {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}
.prayer-row {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 7px 6px;
  border-top: 1px solid var(--border);
  font-size: var(--text-sm);
}
.prayer-row:first-child { border-top: 0; }
.prayer-row-icon { flex: 0 0 auto; font-size: 15px; line-height: 1; }
.prayer-row-name { flex: 1 1 auto; min-width: 0; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prayer-row-time {
  flex: 0 0 auto;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--foreground);
}
.prayer-row-tag {
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--primary);
  color: var(--primary-foreground);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.prayer-row-tag.now { background: #10b981; color: #fff; }
.prayer-row.is-now {
  border-radius: 8px;
  background: color-mix(in srgb, #10b981 10%, transparent);
}
.prayer-row.is-next {
  border-radius: 8px;
  background: color-mix(in srgb, var(--primary) 10%, transparent);
}
.prayer-row.is-next .prayer-row-name,
.prayer-row.is-next .prayer-row-time { color: var(--primary); }
.prayer-row.is-past { opacity: .5; }
.prayer-more {
  display: inline-flex;
  margin-top: 10px;
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--primary);
  text-decoration: none;
}
.prayer-more:hover { text-decoration: underline; }

/* ============ Responsive — mobile-first restores (legacy max-width blocks removed)
   All mobile bases defined above; min-width restores at 461px, 761px, 981px handle
   previous max-width:460/760/980 overrides. */
