/*
Theme Name:   Willow Primary Care Child
Theme URI:    https://www.willowprimarycare.com/
Description:  Child theme of Hello Elementor for Willow Primary Care & Esthetics. Holds the brand design tokens and the practice structured data. Built by Vero Web Consulting.
Author:       Vero Web Consulting
Author URI:   https://verowebconsulting.com/
Template:     hello-elementor
Version:      1.1.0
Text Domain:  willow-child
*/

/* ===========================================================================
   WILLOW DESIGN TOKENS
   ---------------------------------------------------------------------------
   Single source of truth for brand colour and type. Colours sampled from the
   logo files, not eyeballed. Every pairing below is WCAG-verified; the ratio
   is recorded beside each token so it is not re-litigated later.

   The gold family that was previously all over this site (#a07830, #c4974a,
   #8a6520) has been REMOVED. There is no gold in the Willow identity, and it
   failed AA for body text on every ground it was used against.
   =========================================================================== */

:root {
  /* --- Greens, sampled from the logo ------------------------------------ */
  --wpc-green:        #587912;  /* signature olive. hue 79.2  4.50 on cream, 5.05 on white */
  --wpc-green-text:   #577812;  /* one step darker, for green BODY text on cream. 4.56 */
  --wpc-forest:       #2a3d1e;  /* body ink. 10.48 on cream, 11.77 on white */
  --wpc-forest-logo:  #34482a;  /* the logo gradient's dark end. 8.88 on cream */
  --wpc-green-mid:    #3d5a2a;  /* 6.94 on cream */
  --wpc-sage:         #4a5a38;  /* 6.65 on cream */
  --wpc-sage-muted:   #7a8a68;  /* DECORATIVE ONLY. 3.30 on cream, fails body */

  /* --- Grounds ---------------------------------------------------------- */
  --wpc-cream:        #f5f2e4;  /* primary light ground */
  --wpc-cream-alt:    #edeadb;  /* background only. green text fails here (4.18) */
  --wpc-white:        #ffffff;
  --wpc-near-black:   #1e1508;

  /* --- Semantic roles --------------------------------------------------- */
  --wpc-ink:            var(--wpc-forest);
  --wpc-ink-on-dark:    var(--wpc-cream);
  --wpc-accent:         var(--wpc-green);
  --wpc-accent-text:    var(--wpc-green-text);
  --wpc-ground:         var(--wpc-cream);
  --wpc-ground-dark:    var(--wpc-forest);
  --wpc-rule:           rgba(42, 61, 30, 0.18);

  /* --- Type ------------------------------------------------------------- */
  /* One line changes the whole site's sans. Swap to "Raleway" if that is the
     decision; the logo and print collateral use Raleway, the site uses Jost. */
  --wpc-sans:    "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --wpc-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;

  /* Type scale. Consolidated from the eighteen ad-hoc sizes found in the old
     inline CSS. Floor is 12px: nothing smaller, anywhere. */
  --wpc-t-xs:   12px;   /* labels, eyebrows. FLOOR. */
  --wpc-t-sm:   14px;
  --wpc-t-base: 17px;   /* body */
  --wpc-t-md:   20px;
  --wpc-t-lg:   26px;
  --wpc-t-xl:   38px;
  --wpc-t-2xl:  52px;
  --wpc-t-3xl:  64px;

  --wpc-w-light:  300;
  --wpc-w-reg:    400;
  --wpc-w-med:    500;

  /* --- Shape ------------------------------------------------------------
     The identity is square. border-radius appeared exactly once in the entire
     old stylesheet, as 50% on circles. Keep it that way: no rounded cards,
     no soft buttons. */
  --wpc-radius:        0;
  --wpc-radius-circle: 50%;

  /* --- Rhythm ----------------------------------------------------------- */
  --wpc-space-1: 8px;
  --wpc-space-2: 16px;
  --wpc-space-3: 24px;
  --wpc-space-4: 40px;
  --wpc-space-5: 64px;
  --wpc-space-6: 96px;
}

/* ===========================================================================
   BASE
   Deliberately minimal. Page styling still lives in the Elementor widgets
   until the native-widget rebuild replaces it. This file establishes the
   tokens and the accessibility floor, nothing more.
   =========================================================================== */

body {
  font-family: var(--wpc-sans);
  font-weight: var(--wpc-w-light);
  color: var(--wpc-ink);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--wpc-display);
  font-weight: var(--wpc-w-light);
  color: var(--wpc-ink);
}

/* Type floor. The old stylesheet had one 10px and three 11px declarations.
   Nothing on this site renders below 12px. */
body, p, li, td, th, label, input, select, textarea, button, small, figcaption {
  font-size: max(var(--wpc-t-xs), 1em);
}
small, figcaption, .wpc-eyebrow, .wpc-label {
  font-size: var(--wpc-t-xs) !important;
}

/* Links use the cream-safe green so they pass AA as body-sized text. */
a {
  color: var(--wpc-accent-text);
}
a:hover,
a:focus {
  color: var(--wpc-forest);
}

/* Visible keyboard focus. The parent theme does not guarantee one. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--wpc-accent-text);
  outline-offset: 2px;
}

/* Green must never sit on the forest ground: two dark greens measure 2.33,
   which fails at every size. On dark sections, text is cream. */
.wpc-on-dark,
.wpc-on-dark p,
.wpc-on-dark li,
.wpc-on-dark h1,
.wpc-on-dark h2,
.wpc-on-dark h3 {
  color: var(--wpc-ink-on-dark);
}

/* Screen-reader-only helper, used by the skip link and icon-only controls. */
.wpc-sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
