/*
Theme Name: DreamWeaver
Theme URI: https://dwellc.com
Author: DreamWeaver Enterprises LLC
Description: Lightweight block-host theme for DreamWeaver Enterprises. A thin runtime for modular JSON section blocks (Elementor Free). Ships only design tokens, a reset, fonts, and the page frame — every section, including nav and footer, is a self-contained JSON block (see BLOCKS.md). WCAG AA, responsive 375/768/1024/1440.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: Proprietary — DreamWeaver Enterprises LLC
Text Domain: dreamweaver
*/

/* =====================================================================
   DreamWeaver — block-host theme (v2.0)
   Tokens + reset + frame ONLY. All component CSS lives inside the blocks
   (self-contained). Keep this file tiny.
   ===================================================================== */

:root {
  --purple: #7C6FF0;  --purple-deep: #6457E0;  --purple-tint: #EEEBFF;
  --white: #FFFFFF;   --canvas: #FAFAFB;       --warm-white: #F7F6FC;
  --hairline: #ECECF1; --gray-soft: #E2E2EA;   --gray-muted: #9A9AA8;
  --gray-slate: #5C5C6E; --ink: #171717;
  --mint: #A8E6CF; --sage: #8FD4B5; --green: #6FCF97; --green-deep: #4FB07A;
  --error: #C0392B;

  --font-heading: "Varela Round", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --radius: 1rem; --radius-lg: 1.5rem; --radius-pill: 999px;
  --container-pad: clamp(1rem, 3vw, 2rem);
}

/* minimal reset */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--gray-slate);
  background: var(--ink);            /* frame backdrop */
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--purple-deep); }

/* page frame — the only structural chrome the theme owns */
body.dw-framed { padding: 12px; }
@media (min-width: 768px) { body.dw-framed { padding: 16px; } }
.dw-frame-inner {
  background: var(--canvas);
  border-radius: 22px;
  overflow: hidden;
  position: relative;
  min-height: 60vh;
}
@media (max-width: 640px) { body.dw-framed { padding: 0; } .dw-frame-inner { border-radius: 0; } }

/* skip link + focus */
.dw-skip {
  position: absolute; left: -9999px; top: 0; z-index: 1000;
  background: var(--ink); color: #fff; padding: .75rem 1rem;
  border-radius: 0 0 .5rem 0; font-weight: 700; text-decoration: none;
}
.dw-skip:focus { left: 0; }
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 2px solid var(--purple); outline-offset: 2px; border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
  * , *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
