/* ========================================================
   DASHT SEO — Base Layer
   Phase 2 / Step 4 initial extraction
   NOTE: .wrap, .cursor, .cursor-dot, scrollbar styles are
   also defined in main.css (authoritative source).
   ======================================================== */

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: auto; }

body {
  font-family: var(--ff-fa);
  background: var(--bg);
  color: var(--ink);
  line-height: 1.7;
  font-size: 16px;
  /* overflow-x: clip روی body - clip یک scroll container نمی‌سازد */
  overflow-x: clip;
  /* overflow-y نباید hidden یا auto باشد تا sticky کار کند */
  /* browser scroll را از html به body propagate می‌کند - این پیش‌فرض صحیح است */
  min-height: 100dvh;
  transition: background-color .55s cubic-bezier(0.22, 1, 0.36, 1), color .55s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Fallback for browsers without dvh support */
@supports not (min-height: 100dvh) {
  body { min-height: 100vh; }
}

body:not(.dasht-customizer-body):not(.wp-admin).dasht-cursor-active { cursor: none; }
body:not(.dasht-customizer-body):not(.wp-admin).dasht-cursor-active a,
body:not(.dasht-customizer-body):not(.wp-admin).dasht-cursor-active button,
body:not(.dasht-customizer-body):not(.wp-admin).dasht-cursor-active input,
body:not(.dasht-customizer-body):not(.wp-admin).dasht-cursor-active textarea,
body:not(.dasht-customizer-body):not(.wp-admin).dasht-cursor-active select,
body:not(.dasht-customizer-body):not(.wp-admin).dasht-cursor-active [role="button"] { cursor: none; }

/* Hide custom cursor on touch / small screens */
@media (hover: none), (max-width: 768px) {
  body { cursor: auto !important; }
  .cursor, .cursor-dot { display: none !important; }
}
