// Pack page — hero + Chapter I (Luggage) + Chapter II (The System)

const PackHero = () => (
  <section className="pack-hero">
    <div className="hero-bg" style={{ backgroundImage: `url(https://images.unsplash.com/photo-1581553680321-4fffae59fccd?w=2400&q=85)` }}></div>
    <div className="hero-scrim"></div>
    <div className="hero-coord">40°38'N · 73°46'W · GATE C-22 · 06:14</div>
    <div className="hero-credit">PHOTO — FIELD DESK Nº 091</div>
    <div className="container">
      <div className="pack-crumbs">
        <a href="/">Home</a>
        <span className="sep">/</span>
        <span className="here">Pack</span>
      </div>
      <div className="pack-mast">
        <div className="lhs">
          <div className="kicker-row">
            <span className="layer-tag">THE PACKING DESK · 5 CHAPTERS</span>
          </div>
          <h1>Pack<em>Everything you need. Nothing you don't.</em></h1>
          <p className="lede">
            Most people pack twice as much as they wear and half as much as they need. <em>Five chapters. One bag.</em> The discipline of fitting two weeks into a carry-on starts before the suitcase opens.
          </p>
        </div>
        <div className="rhs">
          <div className="pack-stats">
            <div className="stat"><div className="n">5 <em>chapters</em></div><div className="l">Packing lanes</div></div>
            <div className="stat"><div className="n">40L</div><div className="l">The carry-on cap</div></div>
            <div className="stat"><div className="n">−4 kg</div><div className="l">After the edit pass</div></div>
            <div className="stat"><div className="n"><em>14d</em></div><div className="l">One bag · two weeks</div></div>
          </div>
        </div>
      </div>
      <div className="pack-toc">
        <span className="toc-label">In this issue</span>
        <a href="#luggage"><span className="num">I</span>Luggage</a>
        <span className="sep">·</span>
        <a href="#system"><span className="num">II</span>The System</a>
        <span className="sep">·</span>
        <a href="#climate"><span className="num">III</span>Climate Dressing</a>
        <span className="sep">·</span>
        <a href="#carry-on"><span className="num">IV</span>The Carry-On</a>
        <span className="sep">·</span>
        <a href="#stays-home"><span className="num">V</span>What Stays Home</a>
        <span className="sep">·</span>
        <a href="#reading"><span className="num">VI</span>Reading & FAQ</a>
      </div>
    </div>
  </section>
);

const PackChapterPanel = ({ lane, side = "left" }) => (
  <div className={`chapter-panel side-${side}`}>
    <div className="img" style={{ backgroundImage: `url(${lane.img})` }}></div>
    <div className="panel-body">
      <div className="chapter-tag">
        <span className="num">{lane.num}</span>
        <span className="label">{lane.chapter}</span>
      </div>
      <h2 className="serif">{lane.title}<em> — {lane.titleEm}</em></h2>
      <p className="dek">{lane.desc}</p>
      <div className="bullet-rows">
        {lane.bullets.map((b, i) => (
          <div key={i} className="bullet-row">
            <span className="bl">{b.l}</span>
            <span className="bv">{b.v}</span>
          </div>
        ))}
      </div>
      <div className="chapter-coord">{lane.coord}</div>
    </div>
  </div>
);

const PackLuggage = () => {
  const lane = PACK_LANES[0];
  return (
    <section className="pack-luggage" id="luggage">
      <div className="container">
        <PackChapterPanel lane={lane} side="left" />
        <div className="luggage-grid">
          <div className="lg-head">
            <span className="lbl">FIELD NOTE · LUGGAGE FIELD GUIDE</span>
            <h3 className="serif">Four shells, <em>four trips.</em></h3>
            <p>Most travelers own one bag and use it for everything. The right shell is the one matched to the trip — not the one already in the closet. Pick by length of trip, ground conditions, and whether you fly budget.</p>
          </div>
          <div className="lg-cards">
            {PACK_LUGGAGE_TYPES.map((t) => (
              <article key={t.id} className="luggage-card">
                <div className="lc-top">
                  <div className="glyph">{t.glyph}</div>
                  <span className="lc-coord">{t.coord}</span>
                </div>
                <h3 className="serif">{t.title}</h3>
                <p>{t.desc}</p>
                <div className="lc-spec">{t.spec}</div>
              </article>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
};

const PackSystem = () => {
  const lane = PACK_LANES[1];
  return (
    <section className="pack-system" id="system">
      <div className="container">
        <div className="sys-grid">
          <div className="sys-aside">
            <div className="aside-head">
              <span className="lbl">FIELD NOTE · METHOD</span>
              <h3 className="serif">Three methods. <em>Pick one.</em></h3>
            </div>
            <p>
              The argument over rolling versus folding versus cubes is older than rolling luggage itself. The truthful answer: each wins at a specific job. Pick by garment type, not by religious affiliation.
            </p>
            <div className="sys-rules">
              <div className="rule">
                <span className="rn">01</span>
                <div>
                  <strong>Lay everything out 48 hours before.</strong>
                  <span>Spread the full pile on a bed and look at it. You'll see the duplicates and the gaps. The visible-checklist problem solves itself the moment you can see the whole pile.</span>
                </div>
              </div>
              <div className="rule">
                <span className="rn">02</span>
                <div>
                  <strong>Then remove a third.</strong>
                  <span>Most travelers pack 30% more than they wear. Pull a third from the pile before it ever sees the bag. You will not miss any of it.</span>
                </div>
              </div>
              <div className="rule">
                <span className="rn">03</span>
                <div>
                  <strong>Pack outfits, not items.</strong>
                  <span>Plan in 5–4–3–2–1: five tops, four bottoms, three layers, two pairs of shoes, one jacket. Mix-and-match yields 12–15 outfits across two weeks.</span>
                </div>
              </div>
            </div>
            <a href="/journal/pack-two-weeks-carry-on" className="aside-cta">Read: Two Weeks in a Single Carry-On →</a>
          </div>
          <div className="sys-right">
            <PackChapterPanel lane={lane} side="right" />
            <div className="method-cards">
              {PACK_SYSTEMS.map((s) => (
                <article key={s.method} className="method-card">
                  <div className="mc-head">
                    <span className="mc-method">{s.method}</span>
                    <span className="mc-icon">{s.icon}</span>
                  </div>
                  <div className="mc-price">{s.price}</div>
                  <h3 className="serif">{s.title}</h3>
                  <p>{s.desc}</p>
                </article>
              ))}
            </div>
          </div>
        </div>
      </div>
    </section>
  );
};

Object.assign(window, { PackHero, PackChapterPanel, PackLuggage, PackSystem });
