// illustrations.jsx — Flata SVG-illustrationer för Sandareds projekt

const ILLU_VIEWBOX = "0 0 200 200";

function IlluFrame({ children, bg, size = 200 }) {
  return (
    <svg viewBox={ILLU_VIEWBOX} width={size} height={size} style={{ display: 'block' }}>
      <rect width="200" height="200" fill={bg || 'transparent'}/>
      {children}
    </svg>
  );
}

// ─── 1. Sandaredsdagen — torg med scen, musik och människor ─────────
function IlluSandaredsdagen({ size }) {
  const person = (x, y, s, body, hair, skin) => (
    <g key={`p${x}-${y}`} transform={`translate(${x} ${y}) scale(${s})`}>
      <rect x="-3.5" y="-6" width="7" height="10" rx="1" fill={body}/>
      <circle cx="0" cy="-9" r="3" fill={skin}/>
      <path d="M-3 -11 Q0 -13 3 -11 Q3 -12 0 -13 Q-3 -12 -3 -11 Z" fill={hair}/>
    </g>
  );
  return (
    <IlluFrame size={size}>
      <circle cx="170" cy="32" r="14" fill="#E8B84A"/>
      <g className="illu-corona illu-anim"><circle cx="170" cy="32" r="20" fill="#E8B84A" opacity="0.25"/></g>
      <g opacity="0.6">
        <rect x="20" y="84" width="36" height="38" fill="#D94F3C"/>
        <path d="M16 84 L60 84 L52 70 L24 70 Z" fill="#3A2615"/>
        <rect x="28" y="95" width="6" height="8" fill="#FBF7F0"/>
        <rect x="42" y="95" width="6" height="8" fill="#FBF7F0"/>
        <rect x="35" y="108" width="6" height="14" fill="#5A3F2A"/>
      </g>
      <g opacity="0.6">
        <rect x="156" y="90" width="28" height="32" fill="#E8B84A"/>
        <path d="M152 90 L188 90 L182 78 L158 78 Z" fill="#3A2615"/>
        <rect x="164" y="100" width="5" height="7" fill="#FBF7F0"/>
        <rect x="174" y="100" width="5" height="7" fill="#FBF7F0"/>
      </g>
      <path d="M8 38 Q100 76 192 36" stroke="#3A4641" strokeWidth="0.5" fill="none"/>
      {Array.from({ length: 13 }).map((_, i) => {
        const t = (i + 0.5) / 13;
        const x = 8 + t * 184;
        const y = 38 + Math.sin(t * Math.PI) * 32 - 4;
        const colors = ['#E8825A','#4A7BA8','#E8B84A','#2D5F4E','#D94F3C','#8B6BA8'];
        const c = colors[i % colors.length];
        return (
          <g key={i}>
            <line x1={x} y1={y} x2={x} y2={y + 3} stroke="#3A4641" strokeWidth="0.4"/>
            <path d={`M${x - 4} ${y + 3} L${x + 4} ${y + 3} L${x} ${y + 11} Z`} fill={c}/>
          </g>
        );
      })}
      <g transform="translate(40 132)">
        <rect x="-30" y="0" width="60" height="14" fill="#5A3F2A"/>
        <rect x="-30" y="0" width="60" height="3" fill="#3A2615"/>
        <rect x="-32" y="-30" width="64" height="34" fill="#2D5F4E" opacity="0.2"/>
        <rect x="-32" y="-30" width="64" height="6" fill="#2D5F4E"/>
        <rect x="-30" y="-12" width="6" height="12" fill="#1F2A24"/>
        <circle cx="-27" cy="-7" r="2" fill="#3A4641"/>
        <rect x="24" y="-12" width="6" height="12" fill="#1F2A24"/>
        <circle cx="27" cy="-7" r="2" fill="#3A4641"/>
        <line x1="-12" y1="-3" x2="-12" y2="-22" stroke="#1F2A24" strokeWidth="1.2"/>
        <circle cx="-12" cy="-23" r="2" fill="#1F2A24"/>
        <g transform="translate(-12 -16)">
          <rect x="-4" y="0" width="8" height="12" fill="#4A7BA8"/>
          <circle cx="0" cy="-3" r="3.5" fill="#E0A87C"/>
          <path d="M-4 -6 Q0 -9 4 -6 Q4 -8 0 -9 Q-4 -8 -4 -6 Z" fill="#3A2615"/>
          <ellipse cx="6" cy="6" rx="4" ry="2.5" fill="#7A5435" transform="rotate(-20 6 6)"/>
          <line x1="3" y1="2" x2="9" y2="9" stroke="#3A2615" strokeWidth="0.8"/>
        </g>
        <g transform="translate(4 -16)">
          <rect x="-4" y="0" width="8" height="12" fill="#D94F3C"/>
          <circle cx="0" cy="-3" r="3.5" fill="#F4C9A8"/>
          <path d="M-4 -5 Q-4 -8 0 -9 Q4 -8 4 -5 L4 -3 Q0 -2 -4 -3 Z" fill="#4A3520"/>
          <ellipse cx="0" cy="-1.5" rx="0.8" ry="1.2" fill="#3A2615"/>
        </g>
        <g transform="translate(16 -10)">
          <circle cx="0" cy="-3" r="2.5" fill="#E0A87C"/>
          <rect x="-3" y="0" width="6" height="6" fill="#E8B84A"/>
          <ellipse cx="0" cy="8" rx="4" ry="2" fill="#FBF7F0"/>
          <rect x="-4" y="6" width="8" height="3" fill="#E8825A"/>
        </g>
        <g transform="translate(0 -38)">
          <circle cx="-10" cy="0" r="1.5" fill="#1F2A24"/>
          <line x1="-9" y1="0" x2="-9" y2="-5" stroke="#1F2A24" strokeWidth="0.8"/>
          <circle cx="2" cy="-4" r="1.5" fill="#1F2A24"/>
          <line x1="3" y1="-4" x2="3" y2="-10" stroke="#1F2A24" strokeWidth="0.8"/>
          <circle cx="14" cy="-2" r="1.5" fill="#1F2A24"/>
          <line x1="15" y1="-2" x2="15" y2="-8" stroke="#1F2A24" strokeWidth="0.8"/>
          <path d="M3 -10 Q9 -11 15 -8" stroke="#1F2A24" strokeWidth="0.8" fill="none"/>
        </g>
      </g>
      <g transform="translate(154 138)">
        <path d="M-14 -22 L14 -22 L11 -14 L-11 -14 Z" fill="#E8825A"/>
        <path d="M-11 -22 L-5 -22 L-7 -14 L-11 -14 Z" fill="#FBF7F0"/>
        <path d="M3 -22 L9 -22 L7 -14 L1 -14 Z" fill="#FBF7F0"/>
        <rect x="-13" y="-14" width="26" height="14" fill="#8B6845"/>
        <rect x="-13" y="-14" width="26" height="2" fill="#5A3F2A"/>
        <circle cx="-7" cy="-17" r="2.5" fill="#FBF7F0"/>
        <path d="M-8.5 -17 L-7 -11 L-5.5 -17 Z" fill="#C8A050"/>
        <rect x="0" y="-19" width="3" height="5" fill="#D94F3C"/>
        <rect x="6" y="-18" width="3" height="4" fill="#4A7BA8"/>
      </g>
      <line x1="0" y1="170" x2="200" y2="170" stroke="#3A4641" strokeWidth="0.6" opacity="0.3"/>
      <ellipse cx="100" cy="190" rx="100" ry="6" fill="#3A4641" opacity="0.08"/>
      {person(78, 160, 0.7, '#4A7BA8', '#3A2615', '#F4C9A8')}
      {person(90, 159, 0.7, '#E8B84A', '#7A6045', '#E0A87C')}
      {person(102, 160, 0.7, '#8B6BA8', '#1A1A1A', '#C28B6A')}
      {person(114, 158, 0.7, '#D94F3C', '#C8A050', '#F4C9A8')}
      {person(126, 161, 0.7, '#2D5F4E', '#4A3520', '#E0A87C')}
      {person(138, 159, 0.7, '#E8825A', '#3A2615', '#F4C9A8')}
      {person(82, 174, 0.85, '#D94F3C', '#1A1A1A', '#F4C9A8')}
      {person(96, 173, 0.85, '#4A8B5C', '#7A6045', '#C28B6A')}
      {person(110, 175, 0.85, '#E8B84A', '#3A2615', '#F4C9A8')}
      {person(124, 174, 0.85, '#4A7BA8', '#C8A050', '#E0A87C')}
      {person(138, 175, 0.85, '#8B6BA8', '#4A3520', '#F4C9A8')}
      {person(74, 188, 1.0, '#E8825A', '#3A2615', '#F4C9A8')}
      {person(88, 188, 1.0, '#2D5F4E', '#4A3520', '#E0A87C')}
      {person(102, 190, 1.05, '#D94F3C', '#1A1A1A', '#C28B6A')}
      {person(116, 188, 1.0, '#E8B84A', '#7A6045', '#F4C9A8')}
      {person(130, 188, 1.0, '#4A7BA8', '#3A2615', '#E0A87C')}
      {person(144, 190, 0.95, '#8B6BA8', '#C8A050', '#F4C9A8')}
      <line x1="92" y1="178" x2="92" y2="170" stroke="#E0A87C" strokeWidth="1.5" strokeLinecap="round"/>
      <line x1="118" y1="178" x2="118" y2="168" stroke="#F4C9A8" strokeWidth="1.5" strokeLinecap="round"/>
      <line x1="106" y1="178" x2="106" y2="170" stroke="#C28B6A" strokeWidth="1.5" strokeLinecap="round"/>
      <g transform="translate(160 184)">
        <circle cx="0" cy="-12" r="2.5" fill="#F4C9A8"/>
        <path d="M-2.5 -14 Q0 -16 2.5 -14 Q2.5 -15 0 -16 Q-2.5 -15 -2.5 -14 Z" fill="#C8A050"/>
        <rect x="-2.5" y="-10" width="5" height="6" rx="0.5" fill="#E8B84A"/>
        <line x1="-2" y1="-7" x2="-4" y2="-10" stroke="#F4C9A8" strokeWidth="1"/>
        <line x1="2" y1="-7" x2="4" y2="-10" stroke="#F4C9A8" strokeWidth="1"/>
        <rect x="-4" y="-4" width="8" height="10" fill="#4A7BA8"/>
        <circle cx="0" cy="-7" r="3" fill="#E0A87C"/>
      </g>
      <g transform="translate(70 175)">
        <line x1="0" y1="0" x2="0" y2="-14" stroke="#5A3F2A" strokeWidth="0.8"/>
        <path d="M0 -14 L8 -12 L6 -9 L8 -6 L0 -8 Z" fill="#E8825A"/>
      </g>
      <g transform="translate(145 168)">
        <circle cx="0" cy="0" r="3" fill="#D94F3C"/>
        <path d="M0 3 L-1 5 L0 4 L1 5 Z" fill="#D94F3C"/>
        <line x1="0" y1="5" x2="0" y2="14" stroke="#3A4641" strokeWidth="0.4"/>
      </g>
    </IlluFrame>
  );
}

// ─── 2. Höstmarknad ─────────────────────────────────────────────────
function IlluHostmarknad({ size }) {
  return (
    <IlluFrame size={size}>
      <g className="illu-corona illu-anim"><circle cx="168" cy="38" r="14" fill="#E8B84A" opacity="0.5"/></g>
      <circle cx="168" cy="38" r="9" fill="#E8B84A"/>
      <g opacity="0.7">
        <ellipse cx="22" cy="28" rx="3" ry="1.6" fill="#E8825A" transform="rotate(35 22 28)"/>
        <ellipse cx="40" cy="50" rx="2.5" ry="1.4" fill="#D94F3C" transform="rotate(-20 40 50)"/>
        <ellipse cx="148" cy="62" rx="3" ry="1.5" fill="#E8B84A" transform="rotate(45 148 62)"/>
        <ellipse cx="190" cy="84" rx="2.5" ry="1.3" fill="#E8825A" transform="rotate(-30 190 84)"/>
        <ellipse cx="60" cy="20" rx="2.5" ry="1.3" fill="#D94F3C" transform="rotate(20 60 20)"/>
      </g>
      <g transform="translate(20 100)">
        <rect x="-2" y="0" width="4" height="14" fill="#5A3F2A"/>
        <circle cx="-6" cy="-8" r="10" fill="#E8825A" opacity="0.7"/>
        <circle cx="6" cy="-10" r="11" fill="#D94F3C" opacity="0.7"/>
        <circle cx="0" cy="-16" r="9" fill="#E8B84A" opacity="0.8"/>
      </g>
      <g className="illu-stall illu-anim"><g transform="translate(62 168)">
        <line x1="-32" y1="-58" x2="-32" y2="-46" stroke="#7A5435" strokeWidth="2"/>
        <line x1="32" y1="-58" x2="32" y2="-46" stroke="#7A5435" strokeWidth="2"/>
        <path d="M-36 -58 L36 -58 L30 -46 L-30 -46 Z" fill="#D94F3C"/>
        <path d="M-32 -58 L-22 -58 L-19 -46 L-26 -46 Z" fill="#FBF7F0"/>
        <path d="M-8 -58 L2 -58 L3 -46 L-6 -46 Z" fill="#FBF7F0"/>
        <path d="M18 -58 L28 -58 L24 -46 L15 -46 Z" fill="#FBF7F0"/>
        <path d="M-30 -46 L30 -46" stroke="#3A4641" strokeWidth="0.5"/>
        {[-22,-14,-6,2,10,18,26].map((x, i) => (
          <path key={i} d={`M${x} -46 L${x-2} -42 L${x+2} -42 Z`} fill={['#E8B84A','#2D5F4E','#E8825A','#4A7BA8','#E8B84A','#D94F3C','#2D5F4E'][i]}/>
        ))}
        <rect x="-34" y="-46" width="3" height="44" fill="#5A3F2A"/>
        <rect x="31" y="-46" width="3" height="44" fill="#5A3F2A"/>
        <rect x="-32" y="-22" width="64" height="20" fill="#8B6845"/>
        <rect x="-32" y="-22" width="64" height="4" fill="#5A3F2A"/>
        <line x1="-12" y1="-46" x2="-12" y2="-38" stroke="#1F2A24" strokeWidth="0.6"/>
        <rect x="-18" y="-38" width="12" height="8" fill="#FBF7F0" stroke="#1F2A24" strokeWidth="0.6"/>
        <line x1="-15" y1="-35" x2="-9" y2="-35" stroke="#1F2A24" strokeWidth="0.6"/>
        <line x1="-15" y1="-32.5" x2="-11" y2="-32.5" stroke="#1F2A24" strokeWidth="0.6"/>
        <ellipse cx="-22" cy="-28" rx="8" ry="7" fill="#E8825A"/>
        <ellipse cx="-26" cy="-28" rx="3" ry="6" fill="#E8825A"/>
        <ellipse cx="-18" cy="-28" rx="3" ry="6" fill="#E8825A"/>
        <rect x="-23" y="-37" width="2" height="3" fill="#4A8B5C"/>
        <ellipse cx="-8" cy="-26" rx="5" ry="4.5" fill="#E8B84A"/>
        <rect x="-9" y="-31" width="2" height="2" fill="#4A8B5C"/>
        <circle cx="6" cy="-28" r="5" fill="#D94F3C"/>
        <circle cx="14" cy="-28" r="4" fill="#D94F3C"/>
        <circle cx="10" cy="-34" r="4" fill="#D94F3C"/>
        <rect x="5" y="-35" width="1.5" height="2" fill="#4A8B5C"/>
        <rect x="9" y="-39" width="1.5" height="2" fill="#4A8B5C"/>
        <ellipse cx="24" cy="-26" rx="7" ry="4" fill="#C8A050"/>
        <path d="M18 -27 L30 -27 M19 -29 Q24 -31 29 -29" stroke="#7A5435" strokeWidth="0.6" fill="none"/>
      </g></g>
      <g transform="translate(146 168)">
        <path d="M-24 -44 L24 -44 L20 -34 L-20 -34 Z" fill="#2D5F4E"/>
        <path d="M-20 -44 L-12 -44 L-15 -34 L-20 -34 Z" fill="#FBF7F0"/>
        <path d="M4 -44 L12 -44 L10 -34 L2 -34 Z" fill="#FBF7F0"/>
        <rect x="-22" y="-34" width="2.5" height="32" fill="#5A3F2A"/>
        <rect x="19.5" y="-34" width="2.5" height="32" fill="#5A3F2A"/>
        <rect x="-22" y="-16" width="44" height="14" fill="#8B6845"/>
        <rect x="-22" y="-16" width="44" height="3" fill="#5A3F2A"/>
        <path d="M-20 -34 L20 -34" stroke="#3A4641" strokeWidth="0.5"/>
        {[-14,-6,2,10,16].map((x, i) => (
          <path key={i} d={`M${x} -34 L${x-1.5} -31 L${x+1.5} -31 Z`} fill={['#E8B84A','#E8825A','#D94F3C','#4A7BA8','#E8B84A'][i]}/>
        ))}
        <rect x="-16" y="-25" width="6" height="9" rx="1" fill="#D94F3C"/>
        <rect x="-16" y="-25" width="6" height="2" fill="#FBF7F0"/>
        <rect x="-8" y="-25" width="6" height="9" rx="1" fill="#8B6BA8"/>
        <rect x="-8" y="-25" width="6" height="2" fill="#FBF7F0"/>
        <rect x="0" y="-25" width="6" height="9" rx="1" fill="#E8B84A"/>
        <rect x="0" y="-25" width="6" height="2" fill="#FBF7F0"/>
        <path d="M10 -24 L18 -24 L17 -16 L11 -16 Z" fill="#E8B84A"/>
        <ellipse cx="14" cy="-24" rx="4" ry="1.2" fill="#7A5435"/>
      </g>
      <path d="M0 168 L200 168" stroke="#3A4641" strokeWidth="0.8" opacity="0.3"/>
      {[10,30,50,110,132,178].map((x, i) => (
        <ellipse key={i} cx={x} cy="172" rx="4" ry="1" fill="#3A4641" opacity="0.12"/>
      ))}
      <g transform="translate(108 168)">
        <ellipse cx="0" cy="0" rx="6" ry="1.5" fill="#3A4641" opacity="0.15"/>
        <rect x="-3" y="-14" width="6" height="14" rx="1" fill="#4A7BA8"/>
        <circle cx="0" cy="-16" r="3" fill="#F4C9A8"/>
        <path d="M-3 -19 Q0 -22 3 -19 Q3 -20 0 -21 Q-3 -20 -3 -19 Z" fill="#3A2615"/>
      </g>
      <g transform="translate(118 168)">
        <ellipse cx="0" cy="0" rx="5" ry="1.3" fill="#3A4641" opacity="0.15"/>
        <rect x="-2.5" y="-11" width="5" height="11" rx="1" fill="#D94F3C"/>
        <circle cx="0" cy="-13" r="2.5" fill="#E0A87C"/>
      </g>
    </IlluFrame>
  );
}

// ─── 3. Belysning i Sandaredsparken ──────────────────────────────────
function IlluBelysning({ size }) {
  return (
    <IlluFrame size={size}>
      <g className="illu-lamp-glow illu-anim">
        <circle cx="100" cy="70" r="60" fill="#E8B84A" opacity="0.18"/>
        <circle cx="100" cy="70" r="40" fill="#E8B84A" opacity="0.25"/>
      </g>
      <rect x="98" y="80" width="4" height="90" fill="#2D5F4E"/>
      <rect x="92" y="168" width="16" height="6" fill="#2D5F4E"/>
      <path d="M100 80 Q100 60 115 60" stroke="#2D5F4E" strokeWidth="4" fill="none" strokeLinecap="round"/>
      <rect x="108" y="48" width="22" height="22" rx="2" fill="#1F2A24"/>
      <rect x="111" y="51" width="16" height="16" fill="#E8B84A"/>
      <path d="M108 70 L130 70 L132 76 L106 76 Z" fill="#1F2A24"/>
      <path d="M0 174 L50 174 L55 162 L60 174 L70 174 L78 158 L85 174 L200 174 L200 200 L0 200 Z" fill="#2D5F4E" opacity="0.5"/>
      <circle cx="40" cy="40" r="10" fill="#FBF7F0"/>
      <circle cx="44" cy="38" r="10" fill="#E8F1E8" opacity="0.6"/>
    </IlluFrame>
  );
}

// ─── 4. Julbelysning ─────────────────────────────────────────────────
function IlluJul({ size }) {
  return (
    <IlluFrame size={size}>
      <path d="M0 160 Q50 152 100 158 T200 158 L200 200 L0 200 Z" fill="#FBF7F0"/>
      <circle cx="32" cy="32" r="9" fill="#FBF7F0"/>
      <circle cx="35" cy="30" r="9" fill="#E8F1E8" opacity="0.6"/>
      {[[18,70],[180,55],[160,25],[10,110],[185,100]].map(([x,y],i) => (
        <g key={i}>
          <line x1={x-3} y1={y} x2={x+3} y2={y} stroke="#7BAEC8" strokeWidth="1.2" strokeLinecap="round"/>
          <line x1={x} y1={y-3} x2={x} y2={y+3} stroke="#7BAEC8" strokeWidth="1.2" strokeLinecap="round"/>
          <line x1={x-2} y1={y-2} x2={x+2} y2={y+2} stroke="#7BAEC8" strokeWidth="1.2" strokeLinecap="round"/>
          <line x1={x-2} y1={y+2} x2={x+2} y2={y-2} stroke="#7BAEC8" strokeWidth="1.2" strokeLinecap="round"/>
        </g>
      ))}
      <g transform="translate(150 158)">
        <rect x="-3" y="-46" width="6" height="46" fill="#5A3F2A"/>
        <path d="M0 -40 Q-12 -50 -18 -60" stroke="#5A3F2A" strokeWidth="3" fill="none" strokeLinecap="round"/>
        <path d="M0 -36 Q12 -46 18 -56" stroke="#5A3F2A" strokeWidth="3" fill="none" strokeLinecap="round"/>
        <path d="M0 -48 Q-6 -58 -8 -68" stroke="#5A3F2A" strokeWidth="2.5" fill="none" strokeLinecap="round"/>
        <path d="M0 -50 Q8 -60 10 -70" stroke="#5A3F2A" strokeWidth="2.5" fill="none" strokeLinecap="round"/>
        <circle cx="0" cy="-78" r="22" fill="#2D5F4E" opacity="0.85"/>
        <circle cx="-16" cy="-66" r="16" fill="#2D5F4E" opacity="0.85"/>
        <circle cx="16" cy="-66" r="16" fill="#2D5F4E" opacity="0.85"/>
        <circle cx="-8" cy="-86" r="14" fill="#1A3D32"/>
        <circle cx="10" cy="-88" r="13" fill="#1A3D32"/>
        {[[-18,-64,'#E8B84A'],[-6,-72,'#E8825A'],[8,-76,'#E8B84A'],[-12,-82,'#E8825A'],[4,-88,'#E8B84A'],[16,-68,'#E8825A'],[-20,-72,'#E8B84A'],[12,-82,'#E8825A']].map(([x,y,c],i) => (
          <g key={i}>
            <circle cx={x} cy={y} r="3.5" fill={c} opacity="0.4"/>
            <circle cx={x} cy={y} r="2" fill={c}/>
          </g>
        ))}
      </g>
      <g transform="translate(40 158)">
        <path d="M-26 -32 L26 -32 L22 -22 L-22 -22 Z" fill="#D94F3C"/>
        <path d="M-22 -32 L-14 -32 L-18 -22 L-22 -22 Z" fill="#FBF7F0"/>
        <path d="M-2 -32 L6 -32 L4 -22 L-4 -22 Z" fill="#FBF7F0"/>
        <path d="M18 -32 L26 -32 L22 -22 L20 -22 Z" fill="#FBF7F0"/>
        <path d="M-22 -22 L22 -22" stroke="#2A2520" strokeWidth="0.6" fill="none"/>
        {[-16,-8,0,8,16].map((x,i) => (
          <g key={i}><circle cx={x} cy={-19} r="2.2" fill="#E8B84A" opacity="0.5"/><circle cx={x} cy={-19} r="1.3" fill="#E8B84A"/></g>
        ))}
        <rect x="-24" y="-22" width="48" height="22" fill="#7A5435"/>
        <rect x="-24" y="-22" width="48" height="3" fill="#5A3F2A"/>
        <rect x="-18" y="-26" width="8" height="4" fill="#E8825A"/>
        <rect x="-6" y="-28" width="10" height="6" fill="#C8A050"/>
        <circle cx="12" cy="-25" r="3" fill="#E8B84A"/>
        <rect x="11" y="-30" width="2" height="6" fill="#E8B84A"/>
        <line x1="-22" y1="0" x2="-22" y2="-2" stroke="#1F2A24" strokeWidth="2"/>
        <line x1="22" y1="0" x2="22" y2="-2" stroke="#1F2A24" strokeWidth="2"/>
      </g>
      <g transform="translate(110 158)">
        <path d="M-18 -26 L18 -26 L15 -18 L-15 -18 Z" fill="#2D5F4E"/>
        <path d="M-15 -26 L-9 -26 L-12 -18 L-15 -18 Z" fill="#FBF7F0"/>
        <path d="M1 -26 L7 -26 L5 -18 L-1 -18 Z" fill="#FBF7F0"/>
        <rect x="-16" y="-18" width="32" height="18" fill="#7A5435"/>
        <rect x="-16" y="-18" width="32" height="2.5" fill="#5A3F2A"/>
        <rect x="-8" y="-22" width="5" height="4" fill="#FBF7F0"/>
        <path d="M-7 -25 Q-5 -27 -4 -25" stroke="#FBF7F0" strokeWidth="0.8" fill="none" opacity="0.7"/>
        <rect x="6" y="-24" width="5" height="6" fill="#1F2A24"/>
        <rect x="7" y="-23" width="3" height="4" fill="#E8B84A"/>
      </g>
      <g transform="translate(78 158)">
        {[{x:-28,h:0,hair:'#3A2615',cloak:'#4A7BA8'},{x:-14,h:-2,hair:'#7A6045',cloak:'#D94F3C'},{x:0,h:0,hair:'#4A3520',cloak:'#2D5F4E'},{x:14,h:-2,hair:'#C8A050',cloak:'#8B6BA8'},{x:28,h:0,hair:'#3A2615',cloak:'#E8825A'}].map((p,i) => (
          <g key={i} transform={`translate(${p.x} ${p.h})`}>
            <path d="M-7 -2 L7 -2 L5 -22 L-5 -22 Z" fill={p.cloak}/>
            <circle cx="0" cy="-25" r="4" fill="#F4C9A8"/>
            <path d="M-4 -27 Q0 -31 4 -27 Q4 -29 0 -30 Q-4 -29 -4 -27 Z" fill={p.hair}/>
            <ellipse cx="0" cy="-23" rx="0.8" ry="1.2" fill="#3A2615"/>
            <rect x="-3" y="-12" width="6" height="4" fill="#FBF7F0"/>
            <line x1="0" y1="-12" x2="0" y2="-8" stroke="#888" strokeWidth="0.4"/>
          </g>
        ))}
        <g transform="translate(0 -38)">
          <circle cx="-18" cy="0" r="1.5" fill="#1F2A24"/>
          <line x1="-17" y1="0" x2="-17" y2="-6" stroke="#1F2A24" strokeWidth="0.8"/>
          <circle cx="0" cy="-4" r="1.5" fill="#1F2A24"/>
          <line x1="1" y1="-4" x2="1" y2="-10" stroke="#1F2A24" strokeWidth="0.8"/>
          <circle cx="18" cy="-2" r="1.5" fill="#1F2A24"/>
          <line x1="19" y1="-2" x2="19" y2="-8" stroke="#1F2A24" strokeWidth="0.8"/>
        </g>
      </g>
      <path d="M10 50 Q100 30 190 60" stroke="#3A4641" strokeWidth="0.6" fill="none"/>
      {Array.from({ length: 9 }).map((_, i) => {
        const t = (i + 0.5) / 9;
        const x = 10 + t * 180;
        const y = 50 + Math.sin(t * Math.PI) * 14 + (t - 0.5) * 10;
        const c = i % 2 === 0 ? '#E8B84A' : '#E8825A';
        return (
          <g key={i} className="illu-xmas-lt illu-anim" style={{ animationDelay: `${i * 0.13}s` }}>
            <circle cx={x} cy={y+3} r="3.5" fill={c} opacity="0.35"/>
            <circle cx={x} cy={y+3} r="2" fill={c}/>
          </g>
        );
      })}
    </IlluFrame>
  );
}

// ─── 5. Solbäddar & pingisbord ────────────────────────────────────────
function IlluStranden({ size }) {
  return (
    <IlluFrame size={size}>
      <rect x="0" y="60" width="200" height="50" fill="#7BAEC8"/>
      <path d="M0 95 Q50 90 100 95 T200 95 L200 110 L0 110 Z" fill="#5A9FA8"/>
      <g className="illu-beach-sun illu-anim"><circle cx="155" cy="50" r="18" fill="#E8B84A"/></g>
      <rect x="0" y="110" width="200" height="90" fill="#F4E4C4"/>
      <g transform="translate(30 130)">
        <rect x="0" y="14" width="60" height="6" rx="2" fill="#E8825A"/>
        <rect x="-2" y="20" width="6" height="20" fill="#7A5435"/>
        <rect x="56" y="20" width="6" height="20" fill="#7A5435"/>
        <rect x="38" y="-10" width="22" height="24" rx="2" fill="#E8825A" transform="rotate(-25 49 2)"/>
        <rect x="6" y="10" width="50" height="4" fill="#FBF7F0"/>
      </g>
      <g transform="translate(110 130)">
        <ellipse cx="35" cy="42" rx="40" ry="6" fill="#3A4641" opacity="0.15"/>
        <path d="M0 20 L70 20 L60 26 L10 26 Z" fill="#2D5F4E"/>
        <path d="M10 26 L60 26 L55 30 L15 30 Z" fill="#1A3D32"/>
        <line x1="35" y1="20" x2="35" y2="30" stroke="#FBF7F0" strokeWidth="1.5"/>
        <line x1="20" y1="14" x2="50" y2="14" stroke="#1F2A24" strokeWidth="1.5"/>
        <line x1="8" y1="30" x2="10" y2="40" stroke="#1F2A24" strokeWidth="2"/>
        <line x1="62" y1="30" x2="60" y2="40" stroke="#1F2A24" strokeWidth="2"/>
        <circle cx="-2" cy="6" r="6" fill="#D94F3C"/>
        <rect x="-3" y="10" width="2" height="6" fill="#7A5435"/>
      </g>
    </IlluFrame>
  );
}

// ─── 6. Utegym ───────────────────────────────────────────────────────
function IlluUtegym({ size }) {
  return (
    <IlluFrame size={size}>
      <rect x="0" y="160" width="200" height="40" fill="#E8F1E8"/>
      <line x1="0" y1="160" x2="200" y2="160" stroke="#2D5F4E" strokeWidth="1"/>
      <rect x="40" y="50" width="6" height="110" fill="#3A4641"/>
      <rect x="154" y="50" width="6" height="110" fill="#3A4641"/>
      <rect x="36" y="44" width="128" height="8" rx="2" fill="#3A4641"/>
      <line x1="70" y1="52" x2="70" y2="90" stroke="#7A5435" strokeWidth="2"/>
      <circle cx="70" cy="96" r="6" fill="none" stroke="#7A5435" strokeWidth="3"/>
      <line x1="130" y1="52" x2="130" y2="90" stroke="#7A5435" strokeWidth="2"/>
      <circle cx="130" cy="96" r="6" fill="none" stroke="#7A5435" strokeWidth="3"/>
      <g className="illu-gym-ball illu-anim"><g transform="translate(95 130)">
        <path d="M-4 -10 Q-4 -18 0 -18 Q4 -18 4 -10" stroke="#1F2A24" strokeWidth="3" fill="none"/>
        <ellipse cx="0" cy="0" rx="14" ry="13" fill="#E8825A"/>
        <ellipse cx="-4" cy="-3" rx="3" ry="2" fill="#FBF7F0" opacity="0.4"/>
      </g></g>
      <g transform="translate(165 152)">
        <rect x="-3" y="-3" width="20" height="6" fill="#3A4641"/>
        <rect x="-8" y="-7" width="6" height="14" rx="1" fill="#1F2A24"/>
        <rect x="16" y="-7" width="6" height="14" rx="1" fill="#1F2A24"/>
      </g>
    </IlluFrame>
  );
}

// ─── 7. Laddstolpar ──────────────────────────────────────────────────
function IlluLadd({ size }) {
  return (
    <IlluFrame size={size}>
      <rect x="0" y="165" width="200" height="35" fill="#E5DCC9"/>
      <rect x="80" y="60" width="40" height="100" rx="6" fill="#2D5F4E"/>
      <rect x="80" y="60" width="40" height="14" rx="6" fill="#1A3D32"/>
      <rect x="86" y="80" width="28" height="22" rx="2" fill="#FBF7F0"/>
      <rect x="89" y="84" width="22" height="3" fill="#2D5F4E"/>
      <rect x="89" y="90" width="14" height="2" fill="#2D5F4E" opacity="0.5"/>
      <rect x="89" y="94" width="18" height="2" fill="#2D5F4E" opacity="0.5"/>
      <g className="illu-bolt illu-anim"><path d="M100 110 L92 130 L100 130 L96 145 L110 122 L102 122 L106 110 Z" fill="#E8B84A"/></g>
      <rect x="88" y="148" width="24" height="6" rx="1" fill="#1F2A24"/>
      <path d="M90 154 Q60 170 50 158 Q40 145 60 138" stroke="#1F2A24" strokeWidth="4" fill="none" strokeLinecap="round"/>
      <rect x="48" y="132" width="14" height="10" rx="2" fill="#1F2A24"/>
      <rect x="50" y="128" width="3" height="6" fill="#1F2A24"/>
      <rect x="57" y="128" width="3" height="6" fill="#1F2A24"/>
      <rect x="72" y="160" width="56" height="6" rx="1" fill="#1A3D32"/>
      <circle cx="40" cy="40" r="8" fill="#E8B84A" opacity="0.5"/>
    </IlluFrame>
  );
}

// ─── 8. Discgolfbana ─────────────────────────────────────────────────
function IlluDisc({ size }) {
  return (
    <IlluFrame size={size}>
      <path d="M0 130 L18 100 L36 130 Z" fill="#2D5F4E" opacity="0.5"/>
      <path d="M150 125 L170 90 L190 125 Z" fill="#2D5F4E" opacity="0.5"/>
      <rect x="0" y="160" width="200" height="40" fill="#E8F1E8"/>
      <line x1="0" y1="160" x2="200" y2="160" stroke="#2D5F4E" strokeWidth="1"/>
      <rect x="98" y="80" width="4" height="80" fill="#3A4641"/>
      <circle cx="100" cy="80" r="6" fill="#3A4641"/>
      <g stroke="#888" strokeWidth="1.5" fill="none">
        {[-30,-20,-10,0,10,20,30].map((a,i) => {
          const rad = (a * Math.PI) / 180;
          const x2 = 100 + Math.sin(rad) * 32;
          return <line key={i} x1="100" y1="80" x2={x2} y2="130"/>;
        })}
      </g>
      <ellipse cx="100" cy="132" rx="36" ry="6" fill="#3A4641"/>
      <rect x="64" y="120" width="72" height="14" rx="2" fill="#5A6B5A"/>
      <rect x="64" y="120" width="72" height="4" fill="#3A4641"/>
      <g className="illu-disc illu-anim"><g transform="translate(50 60) rotate(-15)">
        <ellipse cx="0" cy="0" rx="16" ry="4" fill="#E8825A"/>
        <ellipse cx="0" cy="-1" rx="16" ry="3" fill="#FBF7F0" opacity="0.3"/>
      </g></g>
      <path d="M20 70 L40 62 M22 78 L42 70" stroke="#3A4641" strokeWidth="1.5" strokeLinecap="round" opacity="0.4"/>
    </IlluFrame>
  );
}

// ─── 9. Blommor i centrum ────────────────────────────────────────────
function IlluBlommor({ size }) {
  return (
    <IlluFrame size={size}>
      <path d="M40 130 L160 130 L150 180 L50 180 Z" fill="#7A5435"/>
      <rect x="40" y="125" width="120" height="10" rx="2" fill="#5A3F2A"/>
      <ellipse cx="100" cy="132" rx="56" ry="4" fill="#3A2615"/>
      <path d="M70 132 Q68 100 72 80" stroke="#2D5F4E" strokeWidth="2" fill="none"/>
      <path d="M100 132 Q102 90 98 60" stroke="#2D5F4E" strokeWidth="2" fill="none"/>
      <path d="M130 132 Q128 100 132 85" stroke="#2D5F4E" strokeWidth="2" fill="none"/>
      <path d="M50 132 Q54 120 56 110" stroke="#2D5F4E" strokeWidth="2" fill="none"/>
      <path d="M150 132 Q146 115 148 100" stroke="#2D5F4E" strokeWidth="2" fill="none"/>
      <ellipse cx="78" cy="105" rx="6" ry="3" fill="#4A8B5C" transform="rotate(35 78 105)"/>
      <ellipse cx="92" cy="95" rx="6" ry="3" fill="#4A8B5C" transform="rotate(-30 92 95)"/>
      <ellipse cx="138" cy="108" rx="6" ry="3" fill="#4A8B5C" transform="rotate(40 138 108)"/>
      <g className="illu-flower-a illu-anim"><g transform="translate(72 80)">
        {[0,72,144,216,288].map(a => (
          <ellipse key={a} cx="0" cy="-7" rx="4" ry="6" fill="#E8825A" transform={`rotate(${a})`}/>
        ))}
        <circle cx="0" cy="0" r="3" fill="#E8B84A"/>
      </g></g>
      <g className="illu-flower-b illu-anim"><g transform="translate(98 60)">
        {[0,72,144,216,288].map(a => (
          <ellipse key={a} cx="0" cy="-9" rx="5" ry="7" fill="#E8B84A" transform={`rotate(${a})`}/>
        ))}
        <circle cx="0" cy="0" r="3.5" fill="#7A5435"/>
      </g></g>
      <g className="illu-flower-c illu-anim"><g transform="translate(132 85)">
        {[0,72,144,216,288].map(a => (
          <ellipse key={a} cx="0" cy="-7" rx="4" ry="6" fill="#8B6BA8" transform={`rotate(${a})`}/>
        ))}
        <circle cx="0" cy="0" r="3" fill="#E8B84A"/>
      </g></g>
      <circle cx="56" cy="110" r="4" fill="#D94F3C"/>
      <circle cx="148" cy="100" r="4" fill="#7BAEC8"/>
      <g transform="translate(40 70)">
        <ellipse cx="0" cy="0" rx="5" ry="3" fill="#E8B84A"/>
        <path d="M-3 -1 L-3 1 M0 -2 L0 2 M3 -1 L3 1" stroke="#1F2A24" strokeWidth="1"/>
        <ellipse cx="-2" cy="-3" rx="3" ry="2" fill="#FBF7F0" opacity="0.7"/>
      </g>
    </IlluFrame>
  );
}

// ─── 10. Ortsråd Väst ────────────────────────────────────────────────
function IlluOrtsrad({ size }) {
  const seat = (x, y, body, hair, skin, side = 'front') => {
    if (side === 'back') return (
      <g key={`s${x}${y}`} transform={`translate(${x} ${y})`}>
        <path d="M-8 6 Q-10 -2 0 -2 Q10 -2 8 6 Z" fill={body}/>
        <circle cx="0" cy="-8" r="6" fill={hair}/>
      </g>
    );
    if (side === 'left') return (
      <g key={`s${x}${y}`} transform={`translate(${x} ${y})`}>
        <path d="M-8 8 Q-10 -2 0 -2 Q10 -2 8 8 Z" fill={body}/>
        <circle cx="0" cy="-8" r="6" fill={skin}/>
        <path d="M-5 -12 Q-3 -15 3 -14 Q5 -10 5 -7 Q3 -10 -2 -10 Q-5 -10 -5 -8 Z" fill={hair}/>
        <circle cx="3" cy="-8" r="1" fill="#2A2520"/>
      </g>
    );
    if (side === 'right') return (
      <g key={`s${x}${y}`} transform={`translate(${x} ${y}) scale(-1,1)`}>
        <path d="M-8 8 Q-10 -2 0 -2 Q10 -2 8 8 Z" fill={body}/>
        <circle cx="0" cy="-8" r="6" fill={skin}/>
        <path d="M-5 -12 Q-3 -15 3 -14 Q5 -10 5 -7 Q3 -10 -2 -10 Q-5 -10 -5 -8 Z" fill={hair}/>
        <circle cx="3" cy="-8" r="1" fill="#2A2520"/>
      </g>
    );
    return (
      <g key={`s${x}${y}`} transform={`translate(${x} ${y})`}>
        <path d="M-8 8 Q-10 -2 0 -2 Q10 -2 8 8 Z" fill={body}/>
        <circle cx="0" cy="-8" r="6" fill={skin}/>
        <path d="M-5 -12 Q-2 -15 2 -14 Q5 -13 5 -8 Q3 -10 -2 -10 Q-5 -10 -5 -8 Z" fill={hair}/>
        <circle cx="-2" cy="-8" r="0.9" fill="#2A2520"/>
        <circle cx="2" cy="-8" r="0.9" fill="#2A2520"/>
      </g>
    );
  };
  return (
    <IlluFrame size={size}>
      <rect x="0" y="0" width="200" height="120" fill="#F4EEDE"/>
      <line x1="0" y1="118" x2="200" y2="118" stroke="#3A4641" strokeWidth="0.4" opacity="0.3"/>
      <rect x="0" y="118" width="200" height="82" fill="#E5DCC9"/>
      <g transform="translate(40 38)">
        <rect x="-22" y="-14" width="44" height="28" fill="#FBF7F0" stroke="#3A4641" strokeWidth="0.5"/>
        <rect x="-18" y="-10" width="10" height="6" fill="#E8825A"/>
        <rect x="-4" y="-10" width="10" height="6" fill="#4A7BA8"/>
        <rect x="-18" y="0" width="14" height="2" fill="#3A4641" opacity="0.3"/>
        <rect x="-18" y="4" width="10" height="2" fill="#3A4641" opacity="0.3"/>
        <rect x="0" y="0" width="16" height="2" fill="#3A4641" opacity="0.3"/>
      </g>
      <g transform="translate(160 40)">
        <rect x="-18" y="-18" width="36" height="36" fill="#7BAEC8" opacity="0.7"/>
        <line x1="-18" y1="0" x2="18" y2="0" stroke="#FBF7F0" strokeWidth="1.5"/>
        <line x1="0" y1="-18" x2="0" y2="18" stroke="#FBF7F0" strokeWidth="1.5"/>
        <rect x="-18" y="-18" width="36" height="36" fill="none" stroke="#3A2615" strokeWidth="2"/>
        <rect x="8" y="14" width="8" height="6" fill="#7A5435"/>
        <circle cx="12" cy="12" r="4" fill="#4A8B5C"/>
      </g>
      <ellipse cx="100" cy="156" rx="86" ry="22" fill="#5A3F2A"/>
      <ellipse cx="100" cy="153" rx="86" ry="22" fill="#7A5435"/>
      <ellipse cx="100" cy="150" rx="78" ry="17" fill="#8B6845"/>
      <rect x="86" y="146" width="16" height="10" fill="#FBF7F0"/>
      <rect x="88" y="148" width="12" height="1" fill="#3A4641" opacity="0.4"/>
      <rect x="88" y="150" width="10" height="1" fill="#3A4641" opacity="0.4"/>
      <rect x="88" y="152" width="12" height="1" fill="#3A4641" opacity="0.4"/>
      <rect x="106" y="146" width="14" height="9" rx="0.5" fill="#1F2A24"/>
      <rect x="107" y="147" width="12" height="7" fill="#4A7BA8"/>
      <g transform="translate(60 152)">
        <ellipse cx="0" cy="3" rx="5" ry="1.5" fill="#3A4641" opacity="0.15"/>
        <rect x="-3.5" y="-3" width="7" height="6" rx="0.5" fill="#FBF7F0"/>
        <path d="M3.5 -1 Q6 -1 6 1.5 Q6 3 3.5 3" stroke="#FBF7F0" strokeWidth="1" fill="none"/>
        <ellipse cx="0" cy="-2" rx="3" ry="0.8" fill="#3A2615"/>
      </g>
      <g transform="translate(135 153)">
        <rect x="-3.5" y="-3" width="7" height="6" rx="0.5" fill="#E8825A"/>
        <ellipse cx="0" cy="-2" rx="3" ry="0.8" fill="#3A2615"/>
      </g>
      {seat(60, 134, '#4A7BA8', '#3A2615', '#F4C9A8', 'back')}
      {seat(80, 132, '#D94F3C', '#7A6045', '#E0A87C', 'back')}
      {seat(100, 132, '#E8B84A', '#1A1A1A', '#C28B6A', 'back')}
      {seat(120, 132, '#2D5F4E', '#C8A050', '#F4C9A8', 'back')}
      {seat(140, 134, '#8B6BA8', '#4A3520', '#E0A87C', 'back')}
      {seat(34, 152, '#E8825A', '#3A2615', '#F4C9A8', 'left')}
      {seat(166, 152, '#4A8B5C', '#7A6045', '#C28B6A', 'right')}
      <g transform="translate(70 184)">
        <path d="M-12 16 Q-14 -4 0 -4 Q14 -4 12 16 Z" fill="#4A7BA8"/>
        <circle cx="0" cy="-12" r="9" fill="#E0A87C"/>
        <path d="M-8 -16 Q-3 -22 3 -21 Q9 -19 9 -12 Q4 -16 -3 -15 Q-8 -14 -8 -12 Z" fill="#1A1A1A"/>
      </g>
      <g transform="translate(100 188)">
        <path d="M-13 12 Q-15 -6 0 -6 Q15 -6 13 12 Z" fill="#D94F3C"/>
        <circle cx="0" cy="-14" r="10" fill="#F4C9A8"/>
        <path d="M-9 -19 Q-2 -24 5 -22 Q10 -19 9 -14 Q4 -17 -2 -17 Q-9 -16 -9 -14 Z" fill="#C8A050"/>
        <ellipse cx="10" cy="2" rx="3" ry="2" fill="#F4C9A8"/>
      </g>
      <g transform="translate(130 184)">
        <path d="M-12 16 Q-14 -4 0 -4 Q14 -4 12 16 Z" fill="#2D5F4E"/>
        <circle cx="0" cy="-12" r="9" fill="#C28B6A"/>
        <path d="M-8 -16 Q-3 -21 3 -20 Q9 -18 9 -12 L9 -10 Q4 -12 -3 -12 Q-8 -12 -8 -10 Z" fill="#4A3520"/>
      </g>
      <g className="illu-bubble illu-anim"><g transform="translate(100 110)">
        <path d="M-22 -10 L20 -10 Q26 -10 26 -4 L26 8 Q26 14 20 14 L4 14 L-2 22 L0 14 L-22 14 Q-28 14 -28 8 L-28 -4 Q-28 -10 -22 -10 Z" fill="#FBF7F0" stroke="#2D5F4E" strokeWidth="1.5"/>
        <line x1="-18" y1="-2" x2="18" y2="-2" stroke="#2D5F4E" strokeWidth="1.5" strokeLinecap="round"/>
        <line x1="-18" y1="4" x2="14" y2="4" stroke="#2D5F4E" strokeWidth="1.5" strokeLinecap="round"/>
        <line x1="-18" y1="10" x2="10" y2="10" stroke="#2D5F4E" strokeWidth="1.5" strokeLinecap="round"/>
      </g></g>
    </IlluFrame>
  );
}

// ─── 11. Terrängbana ─────────────────────────────────────────────────
function IlluTerrang({ size }) {
  return (
    <IlluFrame size={size}>
      <path d="M0 130 Q40 90 80 110 Q120 130 160 95 Q180 80 200 90 L200 200 L0 200 Z" fill="#4A8B5C" opacity="0.3"/>
      <path d="M0 145 Q50 120 100 135 Q150 150 200 130 L200 200 L0 200 Z" fill="#4A8B5C" opacity="0.5"/>
      <path d="M30 195 Q50 170 80 175 Q115 180 130 150 Q145 120 175 110" stroke="#C8A050" strokeWidth="10" fill="none" strokeLinecap="round"/>
      <path d="M30 195 Q50 170 80 175 Q115 180 130 150 Q145 120 175 110" stroke="#7A5435" strokeWidth="10" fill="none" strokeLinecap="round" strokeDasharray="2 10" opacity="0.4"/>
      <g transform="translate(50 140)">
        <path d="M0 0 L-10 0 L-4 -10 L-8 -10 L-2 -22 L4 -10 L0 -10 L6 0 Z" fill="#2D5F4E"/>
        <rect x="-1" y="0" width="3" height="6" fill="#5A3F2A"/>
      </g>
      <g transform="translate(110 130)">
        <path d="M0 0 L-12 0 L-4 -14 L-9 -14 L-2 -28 L5 -14 L0 -14 L7 0 Z" fill="#2D5F4E"/>
        <rect x="-1" y="0" width="3" height="7" fill="#5A3F2A"/>
      </g>
      <g transform="translate(160 95)">
        <path d="M0 0 L-10 0 L-4 -10 L-8 -10 L-2 -22 L4 -10 L0 -10 L6 0 Z" fill="#2D5F4E"/>
        <rect x="-1" y="0" width="3" height="6" fill="#5A3F2A"/>
      </g>
      <rect x="48" y="120" width="6" height="4" fill="#E8825A"/>
      <circle cx="40" cy="40" r="16" fill="#E8B84A" opacity="0.6"/>
      <circle cx="40" cy="40" r="10" fill="#E8B84A"/>
      <g className="illu-runner illu-anim" fill="#3A4641" opacity="0.5">
        <ellipse cx="70" cy="178" rx="2" ry="3"/>
        <ellipse cx="90" cy="172" rx="2" ry="3"/>
        <ellipse cx="115" cy="170" rx="2" ry="3"/>
      </g>
    </IlluFrame>
  );
}

// ─── 12. Bänkar i centrum ────────────────────────────────────────────
function IlluBank({ size }) {
  return (
    <IlluFrame size={size}>
      <g className="illu-bench-tree illu-anim">
        <circle cx="155" cy="60" r="35" fill="#4A8B5C"/>
        <circle cx="135" cy="70" r="22" fill="#4A8B5C"/>
        <circle cx="170" cy="80" r="20" fill="#4A8B5C"/>
        <rect x="151" y="90" width="6" height="60" fill="#7A5435"/>
      </g>
      <rect x="0" y="165" width="200" height="35" fill="#E5DCC9"/>
      <line x1="0" y1="165" x2="200" y2="165" stroke="#7A5435" strokeWidth="1" opacity="0.5"/>
      <g transform="translate(30 110)">
        <rect x="0" y="0" width="120" height="6" rx="1" fill="#7A5435"/>
        <rect x="0" y="10" width="120" height="6" rx="1" fill="#7A5435"/>
        <rect x="0" y="20" width="120" height="6" rx="1" fill="#7A5435"/>
        <rect x="0" y="34" width="120" height="8" rx="2" fill="#8B6845"/>
        <rect x="0" y="34" width="120" height="3" fill="#7A5435"/>
        <path d="M5 42 L0 56 L15 56 L10 42 Z" fill="#1F2A24"/>
        <path d="M110 42 L105 56 L120 56 L115 42 Z" fill="#1F2A24"/>
        <line x1="5" y1="0" x2="5" y2="42" stroke="#1F2A24" strokeWidth="3"/>
        <line x1="115" y1="0" x2="115" y2="42" stroke="#1F2A24" strokeWidth="3"/>
        <line x1="5" y1="-2" x2="0" y2="-12" stroke="#1F2A24" strokeWidth="3" strokeLinecap="round"/>
        <line x1="115" y1="-2" x2="120" y2="-12" stroke="#1F2A24" strokeWidth="3" strokeLinecap="round"/>
      </g>
      <g transform="translate(120 145)">
        <rect x="-4" y="-6" width="8" height="10" rx="1" fill="#FBF7F0"/>
        <ellipse cx="0" cy="-6" rx="4" ry="1.5" fill="#3A2615"/>
        <path d="M3 -3 Q6 -3 6 0 Q6 2 3 2" stroke="#FBF7F0" strokeWidth="1.2" fill="none"/>
      </g>
      <ellipse cx="50" cy="90" rx="3" ry="1.5" fill="#E8825A" transform="rotate(30 50 90)"/>
      <ellipse cx="80" cy="80" rx="3" ry="1.5" fill="#E8B84A" transform="rotate(-20 80 80)"/>
      <ellipse cx="40" cy="140" rx="3" ry="1.5" fill="#E8825A" transform="rotate(50 40 140)"/>
    </IlluFrame>
  );
}

// ─── Hero landscape — Viaredssjön ────────────────────────────────────
function HeroLandscape({ width = 560, height = 460 }) {
  return (
    <svg viewBox="0 0 560 460" width={width} height={height} style={{ display: 'block', overflow: 'visible' }}>
      <defs>
        <linearGradient id="hl-sky" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0%" stopColor="#B8D8EE"/>
          <stop offset="100%" stopColor="#EDE5D4"/>
        </linearGradient>
        <linearGradient id="hl-water" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0%" stopColor="#8BBFD4"/>
          <stop offset="60%" stopColor="#5A9ABF"/>
          <stop offset="100%" stopColor="#3A7494"/>
        </linearGradient>
        <radialGradient id="hl-vignette" cx="50%" cy="50%" r="50%">
          <stop offset="72%" stopColor="#1F2A24" stopOpacity="0"/>
          <stop offset="100%" stopColor="#1F2A24" stopOpacity="0.18"/>
        </radialGradient>
        <clipPath id="hl-clip">
          <circle cx="280" cy="230" r="230"/>
        </clipPath>
      </defs>

      <g clipPath="url(#hl-clip)">

      {/* Sky */}
      <rect width="560" height="460" fill="url(#hl-sky)"/>

      {/* Sun glow + sun */}
      <circle cx="468" cy="72" r="56" fill="#E8B84A" opacity="0.2"/>
      <circle cx="468" cy="72" r="28" fill="#F0C84A" opacity="0.5"/>
      <circle cx="468" cy="72" r="20" fill="#F0C84A"/>

      {/* Clouds */}
      <g opacity="0.9">
        <ellipse cx="100" cy="68" rx="40" ry="16" fill="#FBF7F0"/>
        <ellipse cx="78" cy="72" rx="25" ry="13" fill="#FBF7F0"/>
        <ellipse cx="126" cy="72" rx="28" ry="12" fill="#FBF7F0"/>
      </g>
      <g opacity="0.8">
        <ellipse cx="308" cy="50" rx="34" ry="14" fill="#FBF7F0"/>
        <ellipse cx="288" cy="54" rx="22" ry="11" fill="#FBF7F0"/>
        <ellipse cx="332" cy="54" rx="24" ry="10" fill="#FBF7F0"/>
      </g>
      <g opacity="0.65">
        <ellipse cx="198" cy="92" rx="26" ry="10" fill="#FBF7F0"/>
        <ellipse cx="180" cy="95" rx="18" ry="8" fill="#FBF7F0"/>
        <ellipse cx="220" cy="95" rx="20" ry="8" fill="#FBF7F0"/>
      </g>

      {/* Birds */}
      <path d="M360 86 Q363 83 366 86" stroke="#5A6B60" strokeWidth="1.5" fill="none" strokeLinecap="round"/>
      <path d="M372 78 Q375 75 378 78" stroke="#5A6B60" strokeWidth="1.5" fill="none" strokeLinecap="round"/>
      <path d="M388 90 Q391 87 394 90" stroke="#5A6B60" strokeWidth="1.5" fill="none" strokeLinecap="round"/>

      {/* Far hills */}
      <path d="M0 200 Q100 155 200 185 Q300 215 400 165 Q480 128 560 158 L560 280 L0 280 Z" fill="#3A6045" opacity="0.5"/>

      {/* Main ground */}
      <path d="M0 235 Q80 212 160 228 Q240 244 320 218 Q400 194 480 218 Q520 228 560 215 L560 460 L0 460 Z" fill="#3A6B52"/>
      <path d="M0 250 Q80 228 160 242 Q240 256 320 230 Q400 205 480 230 Q520 240 560 228 L560 316 L0 316 Z" fill="#4A7A5E"/>

      {/* Road */}
      <rect x="0" y="296" width="560" height="8" fill="#B8A888"/>
      <line x1="0" y1="300" x2="560" y2="300" stroke="#D8CCB0" strokeWidth="1.5" strokeDasharray="22,14"/>

      {/* ICA store */}
      <g transform="translate(54 248)">
        <rect x="0" y="0" width="66" height="40" fill="#F5F0E8" rx="2"/>
        <rect x="-2" y="-8" width="70" height="10" fill="#CC2222" rx="2"/>
        <rect x="12" y="-22" width="42" height="16" fill="#CC2222" rx="3"/>
        <text x="33" y="-9" textAnchor="middle" fontFamily="sans-serif" fontWeight="700" fontSize="10" fill="#FBF7F0">ICA</text>
        <rect x="5" y="8" width="16" height="13" fill="#B0D4E8" rx="1"/>
        <rect x="28" y="8" width="16" height="13" fill="#B0D4E8" rx="1"/>
        <line x1="13" y1="8" x2="13" y2="21" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="5" y1="14" x2="21" y2="14" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="36" y1="8" x2="36" y2="21" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="28" y1="14" x2="44" y2="14" stroke="#D4C8B0" strokeWidth="0.8"/>
        <rect x="48" y="18" width="12" height="22" fill="#8B7355" rx="1"/>
        <circle cx="56" cy="29" r="1.5" fill="#C8A87A"/>
        {/* Parked car */}
        <g transform="translate(-4 39)">
          <rect x="0" y="-8" width="26" height="10" fill="#E8825A" rx="3"/>
          <rect x="3" y="-14" width="18" height="8" fill="#E8825A" rx="2"/>
          <rect x="4" y="-13" width="7" height="6" fill="#B0D4E8" rx="1"/>
          <rect x="13" y="-13" width="7" height="6" fill="#B0D4E8" rx="1"/>
          <circle cx="5" cy="2" r="3" fill="#3A4641"/>
          <circle cx="21" cy="2" r="3" fill="#3A4641"/>
          <circle cx="5" cy="2" r="1.5" fill="#888888"/>
          <circle cx="21" cy="2" r="1.5" fill="#888888"/>
        </g>
      </g>

      {/* Church + steeple */}
      <g transform="translate(170 225)">
        <rect x="0" y="0" width="34" height="42" fill="#F5F0E8"/>
        <path d="M-2 0 L36 0 L30 -12 L6 -12 Z" fill="#8B7355"/>
        <rect x="11" y="-28" width="12" height="18" fill="#F5F0E8"/>
        <path d="M9 -28 L25 -28 L17 -46 Z" fill="#6B5840"/>
        <line x1="17" y1="-52" x2="17" y2="-42" stroke="#5A3F2A" strokeWidth="2.5"/>
        <line x1="13" y1="-47" x2="21" y2="-47" stroke="#5A3F2A" strokeWidth="2.5"/>
        <rect x="13" y="8" width="8" height="14" fill="#B0D4E8" rx="4"/>
        <rect x="11" y="26" width="12" height="16" fill="#8B7355" rx="3"/>
      </g>

      {/* House 1 (red roof, white) */}
      <g transform="translate(258 238)">
        <rect x="0" y="0" width="48" height="36" fill="#F5F0E8"/>
        <path d="M-4 0 L52 0 L40 -20 L8 -20 Z" fill="#CC4433"/>
        <rect x="5" y="8" width="12" height="10" fill="#B0D4E8" rx="1"/>
        <rect x="30" y="8" width="12" height="10" fill="#B0D4E8" rx="1"/>
        <line x1="11" y1="8" x2="11" y2="18" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="5" y1="13" x2="17" y2="13" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="36" y1="8" x2="36" y2="18" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="30" y1="13" x2="42" y2="13" stroke="#D4C8B0" strokeWidth="0.8"/>
        <rect x="17" y="20" width="12" height="16" fill="#8B7355" rx="2"/>
        <rect x="34" y="-22" width="5" height="8" fill="#8B7355"/>
        <circle cx="36" cy="-27" r="3" fill="#E8E0D0" opacity="0.7"/>
        <circle cx="38" cy="-34" r="4" fill="#E8E0D0" opacity="0.5"/>
      </g>

      {/* House 2 (yellow, bigger) */}
      <g transform="translate(332 228)">
        <rect x="0" y="0" width="54" height="42" fill="#F5E8A0"/>
        <path d="M-4 0 L58 0 L46 -22 L10 -22 Z" fill="#7A5A2A"/>
        <rect x="5" y="10" width="14" height="12" fill="#B0D4E8" rx="1"/>
        <rect x="34" y="10" width="14" height="12" fill="#B0D4E8" rx="1"/>
        <line x1="12" y1="10" x2="12" y2="22" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="5" y1="16" x2="19" y2="16" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="41" y1="10" x2="41" y2="22" stroke="#D4C8B0" strokeWidth="0.8"/>
        <line x1="34" y1="16" x2="48" y2="16" stroke="#D4C8B0" strokeWidth="0.8"/>
        <rect x="19" y="26" width="14" height="16" fill="#6B5840" rx="2"/>
        <rect x="36" y="-26" width="6" height="10" fill="#7A5A2A"/>
        <circle cx="39" cy="-30" r="3.5" fill="#E8E0D0" opacity="0.7"/>
        <circle cx="43" cy="-37" r="4.5" fill="#E8E0D0" opacity="0.5"/>
        <circle cx="40" cy="-45" r="4" fill="#E8E0D0" opacity="0.34"/>
      </g>

      {/* House 3 (small teal) */}
      <g transform="translate(408 246)">
        <rect x="0" y="0" width="36" height="26" fill="#D4E8C8"/>
        <path d="M-3 0 L39 0 L29 -16 L7 -16 Z" fill="#2D5F4E"/>
        <rect x="6" y="6" width="10" height="9" fill="#B0D4E8" rx="1"/>
        <rect x="20" y="12" width="10" height="14" fill="#5A3F2A" rx="1"/>
      </g>

      {/* House 4 (far right, small red) */}
      <g transform="translate(460 250)">
        <rect x="0" y="0" width="30" height="24" fill="#F5F0E8"/>
        <path d="M-2 0 L32 0 L24 -14 L6 -14 Z" fill="#CC4433"/>
        <rect x="5" y="5" width="8" height="8" fill="#B0D4E8" rx="1"/>
        <rect x="16" y="9" width="8" height="15" fill="#8B7355" rx="1"/>
      </g>

      {/* Trees — background row */}
      <g transform="translate(24 255)">
        <rect x="-3" y="0" width="6" height="14" fill="#5A3F2A"/>
        <ellipse cx="0" cy="-8" rx="14" ry="18" fill="#1A3D32"/>
        <ellipse cx="0" cy="-15" rx="9" ry="12" fill="#2D5F4E"/>
      </g>
      <g transform="translate(142 258)">
        <rect x="-3" y="0" width="5" height="12" fill="#5A3F2A"/>
        <ellipse cx="0" cy="-6" rx="12" ry="16" fill="#1A3D32"/>
        <ellipse cx="0" cy="-12" rx="8" ry="11" fill="#2D5F4E"/>
      </g>
      <g transform="translate(137 244)">
        <rect x="-2" y="0" width="4" height="10" fill="#5A3F2A"/>
        <ellipse cx="0" cy="-6" rx="9" ry="13" fill="#1A3D32"/>
      </g>
      <g transform="translate(215 252)">
        <rect x="-2" y="0" width="4" height="10" fill="#5A3F2A"/>
        <ellipse cx="0" cy="-5" rx="10" ry="14" fill="#2D5F4E"/>
      </g>
      <g transform="translate(240 256)">
        <rect x="-2" y="0" width="5" height="12" fill="#5A3F2A"/>
        <ellipse cx="0" cy="-7" rx="11" ry="15" fill="#1A3D32"/>
        <ellipse cx="0" cy="-13" rx="7" ry="9" fill="#2D5F4E"/>
      </g>
      <g transform="translate(500 255)">
        <rect x="-3" y="0" width="6" height="14" fill="#5A3F2A"/>
        <ellipse cx="0" cy="-8" rx="14" ry="18" fill="#1A3D32"/>
        <ellipse cx="0" cy="-15" rx="9" ry="12" fill="#2D5F4E"/>
      </g>

      {/* Shore trees (foreground) */}
      <g transform="translate(40 280)">
        <rect x="-3" y="0" width="6" height="16" fill="#5A3F2A"/>
        <ellipse cx="0" cy="-9" rx="15" ry="20" fill="#1A3D32"/>
        <ellipse cx="0" cy="-17" rx="9" ry="13" fill="#2D5F4E"/>
      </g>
      <g transform="translate(524 278)">
        <rect x="-3" y="0" width="6" height="16" fill="#5A3F2A"/>
        <ellipse cx="0" cy="-9" rx="15" ry="20" fill="#1A3D32"/>
        <ellipse cx="0" cy="-17" rx="9" ry="13" fill="#2D5F4E"/>
      </g>

      {/* Lake */}
      <ellipse cx="280" cy="358" rx="236" ry="60" fill="url(#hl-water)"/>
      <ellipse cx="280" cy="355" rx="236" ry="58" fill="none" stroke="#AAD4E8" strokeWidth="1.5" opacity="0.35"/>
      {/* Ripples */}
      <ellipse cx="165" cy="366" rx="16" ry="4" fill="none" stroke="#C5E2EE" strokeWidth="1" opacity="0.55"/>
      <ellipse cx="375" cy="361" rx="13" ry="3" fill="none" stroke="#C5E2EE" strokeWidth="1" opacity="0.55"/>
      <ellipse cx="460" cy="372" rx="11" ry="3" fill="none" stroke="#C5E2EE" strokeWidth="1" opacity="0.45"/>
      {/* Sun reflection */}
      <ellipse cx="395" cy="350" rx="16" ry="4" fill="#E8B84A" opacity="0.22"/>
      <ellipse cx="404" cy="357" rx="9" ry="2.5" fill="#E8B84A" opacity="0.16"/>

      {/* Dock / pier with fisherman */}
      <g transform="translate(78 322)">
        <rect x="0" y="0" width="5" height="30" fill="#8B7355"/>
        <rect x="8" y="0" width="5" height="30" fill="#8B7355"/>
        <rect x="-2" y="4" width="17" height="3" fill="#A89070"/>
        <rect x="-2" y="10" width="17" height="3" fill="#A89070"/>
        <rect x="-2" y="16" width="17" height="3" fill="#A89070"/>
        <rect x="-2" y="22" width="17" height="3" fill="#A89070"/>
        <rect x="0" y="30" width="5" height="8" fill="#6B5840"/>
        <rect x="8" y="30" width="5" height="8" fill="#6B5840"/>
        {/* Fisherman */}
        <circle cx="6" cy="-2" r="5" fill="#E8C9A0"/>
        <rect x="2" y="3" width="8" height="7" fill="#3A4641"/>
        <line x1="6" y1="1" x2="30" y2="-14" stroke="#5A3F2A" strokeWidth="1.5"/>
        <line x1="30" y1="-14" x2="32" y2="8" stroke="#C8A87A" strokeWidth="0.8" strokeDasharray="2,2"/>
        <ellipse cx="6" cy="-7" rx="7" ry="2.5" fill="#6B8B5E"/>
        <rect x="0" y="-9" width="12" height="4" fill="#6B8B5E" rx="1"/>
      </g>

      {/* Sauna island */}
      <g transform="translate(272 350)">
        <ellipse cx="0" cy="10" rx="36" ry="14" fill="#4A7A5E"/>
        <ellipse cx="0" cy="8" rx="30" ry="10" fill="#5A8B6A"/>
        <ellipse cx="-24" cy="16" rx="6" ry="2.5" fill="#8B7A5A"/>
        <ellipse cx="24" cy="17" rx="5" ry="2" fill="#8B7A5A"/>
        {/* Log cabin */}
        <rect x="-14" y="-8" width="28" height="18" fill="#8B6B3D" rx="1"/>
        <line x1="-14" y1="-4" x2="14" y2="-4" stroke="#6B5840" strokeWidth="1.5"/>
        <line x1="-14" y1="0" x2="14" y2="0" stroke="#6B5840" strokeWidth="1.5"/>
        <line x1="-14" y1="4" x2="14" y2="4" stroke="#6B5840" strokeWidth="1.5"/>
        <path d="M-16 -8 L16 -8 L9 -22 L-9 -22 Z" fill="#6B5840"/>
        <rect x="-12" y="-6" width="8" height="7" fill="#B0D4E8" rx="1" opacity="0.9"/>
        <rect x="3" y="-2" width="9" height="12" fill="#5A3F2A" rx="1"/>
        {/* Person stepping out */}
        <circle cx="18" cy="-3" r="4" fill="#E8C9A0"/>
        <rect x="15" y="1" width="6" height="6" fill="#E8825A"/>
        <line x1="15" y1="3" x2="11" y2="8" stroke="#E8C9A0" strokeWidth="1.5" strokeLinecap="round"/>
        <line x1="21" y1="3" x2="25" y2="8" stroke="#E8C9A0" strokeWidth="1.5" strokeLinecap="round"/>
        {/* Chimney + smoke */}
        <rect x="3" y="-30" width="5" height="10" fill="#6B5840"/>
        <circle cx="5" cy="-34" r="4" fill="#E8E0D0" opacity="0.72"/>
        <circle cx="8" cy="-41" r="5" fill="#E8E0D0" opacity="0.56"/>
        <circle cx="5" cy="-49" r="5" fill="#E8E0D0" opacity="0.38"/>
        <circle cx="9" cy="-57" r="4.5" fill="#E8E0D0" opacity="0.22"/>
        {/* Mini dock from island */}
        <rect x="17" y="10" width="3" height="12" fill="#8B7355"/>
        <rect x="14" y="11" width="9" height="2.5" fill="#A89070"/>
        <rect x="14" y="15" width="9" height="2.5" fill="#A89070"/>
      </g>

      {/* Sailboat */}
      <g transform="translate(150 340)">
        <path d="M-22 0 L22 0 L16 10 L-16 10 Z" fill="#F5F0E8"/>
        <path d="M-16 10 L16 10 L10 18 L-10 18 Z" fill="#E8D5B0"/>
        <line x1="0" y1="0" x2="0" y2="-52" stroke="#5A3F2A" strokeWidth="2"/>
        <path d="M0 -50 L0 2 L25 -8 Z" fill="#FBF7F0" opacity="0.95"/>
        <path d="M0 -40 L-17 -4 L0 -4 Z" fill="#FBF7F0" opacity="0.8"/>
        <path d="M0 -52 L8 -48 L0 -44 Z" fill="#CC2222"/>
        <path d="M-24 12 Q-32 17 -42 14" stroke="#C5E2EE" strokeWidth="2" fill="none" strokeLinecap="round" opacity="0.7"/>
        <path d="M-22 16 Q-30 21 -40 18" stroke="#C5E2EE" strokeWidth="1.5" fill="none" strokeLinecap="round" opacity="0.5"/>
        {/* Skipper */}
        <circle cx="7" cy="-2" r="4" fill="#E8C9A0"/>
        <rect x="3" y="2" width="8" height="6" fill="#7BAEC8"/>
      </g>

      {/* Motorboat */}
      <g transform="translate(402 358)">
        <path d="M-26 0 L22 0 L28 8 L-26 8 Z" fill="#CC2222"/>
        <path d="M-24 0 L20 0 L16 -8 L-20 -8 Z" fill="#F5F0E8"/>
        <path d="M-6 -8 L8 -8 L6 -15 L-4 -15 Z" fill="#B0D4E8" opacity="0.8"/>
        <rect x="-30" y="-1" width="6" height="6" fill="#3A4641" rx="1"/>
        <circle cx="6" cy="-12" r="4" fill="#E8C9A0"/>
        <rect x="2" y="-8" width="8" height="5" fill="#E8825A"/>
        <path d="M28 8 Q40 14 52 10" stroke="#C5E2EE" strokeWidth="2" fill="none" strokeLinecap="round" opacity="0.7"/>
        <path d="M28 12 Q42 18 54 14" stroke="#C5E2EE" strokeWidth="1.5" fill="none" strokeLinecap="round" opacity="0.5"/>
      </g>

      {/* Swimmers */}
      <g transform="translate(108 390)">
        <circle cx="0" cy="0" r="5" fill="#E8C9A0"/>
        <path d="M-9 5 Q0 9 9 5" stroke="#7BAEC8" strokeWidth="2" fill="none" strokeLinecap="round"/>
      </g>
      <g transform="translate(140 396)">
        <circle cx="0" cy="0" r="4" fill="#F0C9A0"/>
        <path d="M-7 4 Q0 8 7 4" stroke="#7BAEC8" strokeWidth="2" fill="none" strokeLinecap="round"/>
      </g>
      <g transform="translate(202 386)">
        <circle cx="0" cy="0" r="5" fill="#E8B89A"/>
        <path d="M-9 5 Q0 9 9 5" stroke="#7BAEC8" strokeWidth="2" fill="none" strokeLinecap="round"/>
      </g>

      {/* Sandy beach */}
      <path d="M0 418 Q70 408 140 414 Q210 420 280 413 Q350 406 420 413 Q490 420 560 410 L560 460 L0 460 Z" fill="#D4B896"/>
      <path d="M0 432 Q140 426 280 432 Q420 438 560 428 L560 460 L0 460 Z" fill="#C4A87A"/>

      {/* Beach umbrella */}
      <g transform="translate(64 424)">
        <line x1="0" y1="0" x2="0" y2="-30" stroke="#8B7355" strokeWidth="2"/>
        <path d="M-19 -30 Q0 -44 19 -30 Q9 -26 0 -26 Q-9 -26 -19 -30 Z" fill="#E8825A"/>
        <line x1="-13" y1="-34" x2="13" y2="-34" stroke="#CC4422" strokeWidth="1.5" opacity="0.5"/>
        <line x1="-6" y1="-38" x2="6" y2="-38" stroke="#CC4422" strokeWidth="1.5" opacity="0.4"/>
      </g>

      {/* Sunbather lying down */}
      <g transform="translate(94 442)">
        <ellipse cx="14" cy="0" rx="18" ry="5" fill="#F4EEDE"/>
        <circle cx="-5" cy="-2" r="5" fill="#E8C9A0"/>
        <ellipse cx="-5" cy="-5" rx="5" ry="2.5" fill="#3A6B52"/>
      </g>

      {/* Person sitting on beach */}
      <g transform="translate(158 434)">
        <circle cx="0" cy="-14" r="5" fill="#E8C9A0"/>
        <path d="M-4 -9 Q0 0 4 -9" fill="#7BAEC8"/>
        <line x1="-4" y1="-3" x2="-12" y2="1" stroke="#E8C9A0" strokeWidth="2" strokeLinecap="round"/>
        <line x1="4" y1="-3" x2="12" y2="1" stroke="#E8C9A0" strokeWidth="2" strokeLinecap="round"/>
      </g>

      {/* Seagulls */}
      <path d="M224 320 Q227 317 230 320" stroke="#5A6B60" strokeWidth="1.5" fill="none" strokeLinecap="round"/>
      <path d="M234 312 Q237 309 240 312" stroke="#5A6B60" strokeWidth="1.5" fill="none" strokeLinecap="round"/>
      <path d="M245 324 Q248 321 251 324" stroke="#5A6B60" strokeWidth="1.5" fill="none" strokeLinecap="round"/>
      <path d="M460 316 Q463 313 466 316" stroke="#5A6B60" strokeWidth="1.5" fill="none" strokeLinecap="round"/>
      <path d="M472 308 Q475 305 478 308" stroke="#5A6B60" strokeWidth="1.5" fill="none" strokeLinecap="round"/>

      {/* Edge vignette */}
      <circle cx="280" cy="230" r="230" fill="url(#hl-vignette)"/>

      </g>

      {/* Border ring */}
      <circle cx="280" cy="230" r="228" fill="none" stroke="#E5DCC9" strokeWidth="2.5"/>
    </svg>
  );
}

Object.assign(window, {
  IlluSandaredsdagen, IlluHostmarknad, IlluBelysning, IlluJul, IlluStranden,
  IlluUtegym, IlluLadd, IlluDisc, IlluBlommor, IlluOrtsrad, IlluTerrang, IlluBank,
  HeroLandscape,
});
