// Hand-drawn-feeling line icons in mocha tone for worry & feature sections.

const Icon = ({ children, size=44, stroke="var(--mocha)" }) => (
  <svg width={size} height={size} viewBox="0 0 64 64" fill="none"
       stroke={stroke} strokeWidth="1.1" strokeLinecap="round" strokeLinejoin="round">
    {children}
  </svg>
);

// 1. dry hair / frizz waves
const IconDry = (p) => (
  <Icon {...p}>
    <path d="M14 22 C 22 16, 28 28, 36 22 S 50 16, 50 22" />
    <path d="M14 32 C 22 26, 28 38, 36 32 S 50 26, 50 32" opacity=".75" />
    <path d="M14 42 C 22 36, 28 48, 36 42 S 50 36, 50 42" opacity=".55" />
  </Icon>
);

// 2. spreading frizzed ends
const IconSpread = (p) => (
  <Icon {...p}>
    <path d="M22 14 C 20 24, 16 32, 12 44" />
    <path d="M28 14 C 28 26, 26 34, 22 50" />
    <path d="M34 14 C 36 26, 38 34, 38 50" />
    <path d="M40 14 C 44 24, 48 32, 52 44" />
  </Icon>
);

// 3. droplet (color / dryness)
const IconDrop = (p) => (
  <Icon {...p}>
    <path d="M32 12 C 24 24, 18 32, 18 40 a14 14 0 0 0 28 0 c0-8-6-16-14-28z" />
    <path d="M28 38 a4 4 0 0 0 4 4" opacity=".6"/>
  </Icon>
);

// 4. sauna hat
const IconHat = (p) => (
  <Icon {...p}>
    <path d="M16 44 C 16 28, 22 14, 32 14 S 48 28, 48 44 Z" />
    <path d="M14 44 H 50" />
    <path d="M32 14 v-4" />
    <circle cx="32" cy="9" r="1.5" fill={p.stroke || "var(--mocha)"}/>
  </Icon>
);

// FEATURES
// 1. veil / drop with halo
const IconVeil = (p) => (
  <Icon {...p}>
    <path d="M32 12 C 24 24, 18 32, 18 40 a14 14 0 0 0 28 0 c0-8-6-16-14-28z" />
    <ellipse cx="32" cy="40" rx="20" ry="6" opacity=".4" />
    <ellipse cx="32" cy="40" rx="24" ry="8" opacity=".25" />
  </Icon>
);

// 2. focus on hair ends — three strands tied at top
const IconEnds = (p) => (
  <Icon {...p}>
    <circle cx="32" cy="14" r="2.5" />
    <path d="M30 16 C 24 26, 18 36, 14 50" />
    <path d="M32 17 C 32 28, 32 38, 32 50" />
    <path d="M34 16 C 40 26, 46 36, 50 50" />
    <path d="M14 50 q 4 -2 8 0 M 28 50 q 4 -2 8 0 M 42 50 q 4 -2 8 0" opacity=".7"/>
  </Icon>
);

// 3. herb leaf
const IconHerb = (p) => (
  <Icon {...p}>
    <path d="M14 50 C 18 26, 36 14, 52 14 C 52 32, 38 48, 14 50 Z" />
    <path d="M14 50 C 28 38, 42 26, 50 16" opacity=".55"/>
  </Icon>
);

// STEP icons
// 1. hand applying to hair ends
const IconHand = (p) => (
  <Icon {...p}>
    <path d="M22 18 v 18" />
    <path d="M28 14 v 22" />
    <path d="M34 16 v 20" />
    <path d="M40 22 v 14" />
    <path d="M18 30 c 0 12, 8 18, 14 18 s 14 -6, 14 -18 v -2" />
    <path d="M44 22 q 6 4, 4 12" opacity=".6" />
  </Icon>
);

// 2. wrap hat (with hair tucked)
const IconWrap = (p) => (
  <Icon {...p}>
    <path d="M16 42 C 16 26, 22 12, 32 12 S 48 26, 48 42 Z" />
    <path d="M14 42 H 50" />
    <path d="M22 46 q 2 6, 0 10 M 30 46 q 1 6, -1 10 M 38 46 q -2 6, 0 10" opacity=".7"/>
  </Icon>
);

// 3. shower
const IconShower = (p) => (
  <Icon {...p}>
    <path d="M40 14 L 50 14 L 50 22 Q 40 22, 36 30" />
    <path d="M30 32 a 8 8 0 0 1 14 0 Z" />
    <path d="M30 38 v 8 M 34 40 v 10 M 38 38 v 8 M 42 40 v 10" opacity=".7"/>
  </Icon>
);

// small chevron
const Chev = ({size=14, color="currentColor"}) => (
  <svg width={size} height={size} viewBox="0 0 14 14" fill="none">
    <path d="M3 7 H 11 M 8 4 L 11 7 L 8 10" stroke={color} strokeWidth="1.2" strokeLinecap="round" strokeLinejoin="round"/>
  </svg>
);

// thin dot ornament
const Ornament = ({color="var(--mocha)"}) => (
  <span style={{display:'inline-flex',alignItems:'center',gap:8,color}}>
    <span style={{width:24,height:1,background:color,opacity:.6}}/>
    <span style={{width:4,height:4,borderRadius:'50%',background:color,opacity:.7}}/>
    <span style={{width:24,height:1,background:color,opacity:.6}}/>
  </span>
);

Object.assign(window, {
  IconDry, IconSpread, IconDrop, IconHat,
  IconVeil, IconEnds, IconHerb,
  IconHand, IconWrap, IconShower,
  Chev, Ornament
});
