/* =========================================================================
   Homepage sections, on top of css/tokens.css + css/site.css (shared shell)
   and css/king-studio.css (the project cards in "Selected work").
   Mobile-first; breakpoints 640 / 1024. Logical properties only, so the
   layout mirrors cleanly in right-to-left languages.
   ========================================================================= */

/* ------------------------------ Hero ------------------------------ */
.home-hero { padding: var(--s-7) 0 var(--s-6); border-block-end: 1px solid var(--rule); }
.home-title { font-size: clamp(2rem, 7vw, 3.5rem); font-weight: 800; max-width: 20ch; }
.home-lede { color: var(--ink-soft); font-size: 1.125rem; max-width: var(--measure); margin: var(--s-4) 0 0; }
.home-availability {
  display: inline-flex; align-items: center; gap: var(--s-2);
  margin: var(--s-4) 0 0; color: var(--ink-muted); font-size: 0.9375rem;
}
.home-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ok); flex: none; }
.home-actions { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-block-start: var(--s-5); }
@media (min-width: 640px) { .home-hero { padding: var(--s-9) 0 var(--s-8); } }
.home-hero-grid { display: grid; gap: var(--s-5); align-items: center; }
.home-avatar {
  width: 120px; height: 120px; border-radius: 50%; object-fit: cover;
  border: 3px solid var(--card); box-shadow: 0 0 0 1px var(--rule-strong), var(--lift);
  background: var(--signal-wash);
}
@media (min-width: 1024px) {
  .home-hero-grid { grid-template-columns: 1fr auto; gap: var(--s-8); }
  .home-avatar { order: 2; width: 168px; height: 168px; }
}

/* ------------------------------ Sections ------------------------------ */
.home-section { padding: var(--s-7) 0; }
.home-section-alt { background: var(--card-sunk); border-block: 1px solid var(--rule); }
@media (min-width: 640px) { .home-section { padding: var(--s-8) 0; } }

.home-section-head {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: var(--s-2) var(--s-4); margin-block-end: var(--s-5);
}
.home-section h2 { font-size: clamp(1.375rem, 4vw, 1.875rem); }
.home-section-note { color: var(--ink-muted); max-width: 60ch; margin: var(--s-2) 0 0; }
.home-more {
  display: inline-flex; align-items: center; min-height: var(--tap);
  font-weight: 600; text-decoration: none;
}
.home-more:hover { text-decoration: underline; text-underline-offset: 3px; }
/* The arrow points in the reading direction. */
[dir="rtl"] .home-more span { display: inline-block; transform: scaleX(-1); }

/* The card grid reuses the King Studio catalogue card; .ks on the section
   brings its tokens. Keep the section on the page ground, not studio paper. */
.home-section.ks { background: var(--paper); }
/* site.css colours every `.site a` with the accent; inside the catalogue cards
   the studio's own link and button colours apply. */
.site .home-section.ks .ks-card a { color: var(--ink); }
.site .home-section.ks .ks-card .ks-btn-primary { color: var(--paper); }
.site .home-section.ks .ks-card .ks-btn-primary:hover { color: var(--paper); }

/* ------------------------------ Services, posts, channels ------------------------------ */
.home-services, .home-posts, .home-channels, .home-stack { list-style: none; margin: 0; padding: 0; }
.home-services, .home-posts { display: grid; grid-template-columns: 1fr; gap: var(--s-4); }
@media (min-width: 640px) { .home-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .home-services, .home-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.home-services h3, .home-posts h3 { font-size: 1.125rem; }
.home-services p, .home-posts p { color: var(--ink-muted); margin: var(--s-2) 0 0; }
.home-posts h3 a { color: var(--ink); text-decoration: none; }
.home-posts h3 a:hover { color: var(--signal); text-decoration: underline; text-underline-offset: 3px; }
.home-posts .home-post-meta { font-family: var(--font-mono); font-size: 0.75rem; color: var(--ink-faint); margin: 0 0 var(--s-2); }

.home-channels { display: grid; grid-template-columns: 1fr; gap: var(--s-3); }
@media (min-width: 640px) { .home-channels { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .home-channels { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.home-channel {
  display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 0 var(--s-3);
  padding: var(--s-4); color: var(--ink) !important; text-decoration: none; min-height: var(--tap);
}
.home-channel:hover { border-color: var(--rule-strong); box-shadow: var(--lift-hover); }
.home-channel i { grid-row: span 2; font-size: 1.25rem; color: var(--signal); width: 1.5rem; text-align: center; }
.home-channel span { font-weight: 600; }
.home-channel small { color: var(--ink-muted); font-size: 0.8125rem; overflow-wrap: anywhere; justify-self: start; }

/* ------------------------------ About ------------------------------ */
.home-about { display: grid; grid-template-columns: 1fr; gap: var(--s-6); }
.home-about p { color: var(--ink-soft); max-width: var(--measure); margin: var(--s-3) 0 0; }
.home-stack { display: flex; flex-wrap: wrap; gap: var(--s-2); margin: var(--s-4) 0 var(--s-2); }
.home-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); margin: 0; align-content: start; }
.home-facts div { background: var(--card); border: 1px solid var(--rule); border-radius: var(--radius); padding: var(--s-4); }
.home-facts dt { font-size: 0.75rem; color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.08em; }
:lang(ar) .home-facts dt { letter-spacing: normal; }
.home-facts dd { margin: var(--s-1) 0 0; font-family: var(--font-display); font-weight: 800; font-size: 1.375rem; color: var(--ink); }
.home-facts dd.home-fact-text { font-size: 1rem; font-weight: 700; line-height: 1.4; }
@media (min-width: 1024px) { .home-about { grid-template-columns: 3fr 2fr; gap: var(--s-8); } }

/* ------------------------------ Settings dialog ------------------------------ */
.settings-overlay {
  position: fixed; inset: 0; z-index: 80; background: rgba(0, 0, 0, 0.45);
  display: none;
}
.settings-modal {
  position: fixed; z-index: 81; inset-inline: var(--s-3); inset-block-end: var(--s-3);
  max-width: 420px; margin-inline: auto;
  background: var(--card); color: var(--ink); border: 1px solid var(--rule-strong);
  border-radius: 14px; box-shadow: var(--lift-hover); padding: var(--s-5);
  display: none;
}
.settings-overlay.active, .settings-modal.active { display: block; }
@media (min-width: 640px) { .settings-modal { inset-block: 50% auto; transform: translateY(-50%); } }
.settings-header { display: flex; align-items: center; justify-content: space-between; margin-block-end: var(--s-4); }
.settings-header h2 { font-size: 1.25rem; }
.settings-group { padding-block: var(--s-3); border-block-start: 1px solid var(--rule); }
.settings-group h3 { font-family: var(--font-body); font-size: 0.875rem; font-weight: 600; color: var(--ink-soft); margin-block-end: var(--s-2); }
.settings-options { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.settings-opt {
  min-height: var(--tap); padding: 0 var(--s-4); border-radius: var(--radius);
  border: 1px solid var(--rule-strong); background: var(--card); color: var(--ink);
  font: 500 0.9375rem var(--font-body); cursor: pointer;
}
.settings-opt[aria-pressed="true"] { border-color: var(--signal); background: var(--signal-wash); }
.accent-dot {
  width: var(--tap); height: var(--tap); border-radius: 50%; cursor: pointer;
  background: var(--dot); border: 3px solid var(--card); box-shadow: 0 0 0 1px var(--rule-strong);
}
.accent-dot[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--ink); }
.settings-toggle {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-3);
  min-height: var(--tap); font-weight: 500; cursor: pointer;
}
.settings-toggle input { width: 22px; height: 22px; accent-color: var(--signal); }

/* ------------------------------ Motion ------------------------------ */
body.reduce-motion *, body.reduce-motion *::before, body.reduce-motion *::after {
  transition: none !important; animation: none !important; scroll-behavior: auto !important;
}
html:has(body.reduce-motion) { scroll-behavior: auto; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
