/* hazelholm.com — a journal, not a shop. Quiet, warm, little.
   Everything a visitor can reach is English, on purpose. */
:root{
  --paper:#fbf9f5; --ink:#2c2a26; --quiet:#7c7568;
  --line:#e6e0d5; --card:#ffffff; --accent:#7d6a4f;
  --wash:#f5efe4;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --label:12px/1 var(--sans);
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
     font:17px/1.65 var(--serif);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--accent)}

/* ------------------------------------------------------------------ masthead */
.site-head{max-width:1060px;margin:0 auto;padding:40px 22px 0;text-align:center}
.brand{display:inline-block;font-size:32px;letter-spacing:.14em;text-transform:uppercase;
       text-decoration:none;color:var(--ink)}
.tagline{margin:10px 0 0;color:var(--quiet);font:14px/1.5 var(--sans);letter-spacing:.05em}
.site-nav{margin:22px auto 0;padding:14px 0 0;border-top:1px solid var(--line);
          display:flex;flex-wrap:wrap;gap:10px 30px;justify-content:center}
.nav-link{font:var(--label);letter-spacing:.16em;text-transform:uppercase;
          text-decoration:none;color:var(--quiet);padding-bottom:6px;
          border-bottom:2px solid transparent}
.nav-link:hover{color:var(--ink)}
.nav-here{color:var(--ink);border-bottom-color:var(--accent)}

/* -------------------------------------------------------------------- layout */
.wrap{max-width:760px;margin:0 auto;padding:26px 22px 10px}
.wrap-wide{max-width:1060px}
.title{font-size:29px;line-height:1.25;margin:0 0 18px;font-weight:600}
.prose p{margin:0 0 16px}

/* The opening of an index or a section: room to breathe, one column of text
   even when the grid below is three across. */
.lede{max-width:640px;margin:34px auto 40px;text-align:center}
.lede-title{font-size:40px;line-height:1.15;margin:0;font-weight:400;letter-spacing:.01em}
.lede-text{margin-top:18px;color:var(--quiet)}
.lede-text p:last-child{margin-bottom:0}

@media (max-width:640px){
  .lede{margin:24px auto 30px}
  .lede-title{font-size:31px}
}

/* --------------------------------------------------------------- the shelf */
/* The sections, as covers on a shelf. Four across on a wide screen. */
/* Flex, not grid: with one section the card stays a card instead of
   stretching into a banner, and with four it fills the row. */
.shelf{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin:0 0 56px}
.shelf-card{flex:1 1 210px;max-width:300px;
            background:var(--card);border:1px solid var(--line);
            border-radius:14px;padding:20px;text-decoration:none;color:var(--ink);
            transition:border-color .15s ease,transform .15s ease}
.shelf-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.shelf-frame{display:block;margin:-20px -20px 16px;overflow:hidden;
             border-radius:13px 13px 0 0;aspect-ratio:4/3;background:var(--wash)}
.shelf-frame img{width:100%;height:100%;object-fit:cover}
.shelf-name{display:block;font-size:20px;font-weight:600}
.shelf-blurb{display:block;margin-top:6px;color:var(--quiet);font:14px/1.5 var(--sans)}
.shelf-count{display:block;margin-top:12px;color:var(--accent);
             font:var(--label);letter-spacing:.14em;text-transform:uppercase}

/* A section cover, when the section carries its own picture. */
.niche-cover{width:100%;max-height:420px;object-fit:cover;border:1px solid var(--line);
             border-radius:16px;margin:0 0 40px}

/* ---------------------------------------------------------------- band rule */
/* A label with a rule running through it, to break the page into courses. */
.band{margin:0 0 20px}
.band-title{display:flex;align-items:center;gap:18px;margin:0 0 26px;
            font:var(--label);letter-spacing:.2em;text-transform:uppercase;
            font-weight:600;color:var(--quiet)}
.band-title::before,.band-title::after{content:"";flex:1;height:1px;background:var(--line)}

/* -------------------------------------------------------------- page cards */
.cards{list-style:none;margin:0;padding:0;display:grid;gap:26px;
       grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card-link{display:block;text-decoration:none;color:var(--ink)}
/* 2:3, the format the pictures are made in. A tighter box would crop the
   corner mark out of the bottom right, and nobody would notice. */
.card-frame{display:block;overflow:hidden;border:1px solid var(--line);border-radius:14px;
            background:var(--card);aspect-ratio:2/3}
.card-frame img{width:100%;height:100%;object-fit:cover;
                transition:transform .3s ease}
.card-link:hover .card-frame img{transform:scale(1.03)}
.card-body{display:block;padding:14px 2px 0}
.card-brand{display:block;color:var(--quiet);font:11px/1 var(--sans);
            letter-spacing:.16em;text-transform:uppercase;margin-bottom:7px}
.card-title{display:block;font-size:17px;line-height:1.4;font-weight:600}
.card-link:hover .card-title{color:var(--accent)}

.empty{color:var(--quiet);font:15px/1.6 var(--sans);text-align:center;padding:40px 0 60px}

/* ------------------------------------------------------------- product page */
.product .brand-line{margin:-8px 0 18px;color:var(--quiet);
      font:13px/1.4 var(--sans);letter-spacing:.09em;text-transform:uppercase}
/* The pictures are 2:3. At the full width of the reading column that is
   over a thousand pixels tall, and the article starts below the fold. */
.hero{border:1px solid var(--line);border-radius:16px;background:#fff;
      max-width:520px;margin:0 auto 26px}
.buy{margin:24px 0;text-align:center}
.button{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;
        padding:14px 30px;border-radius:999px;font:16px/1 var(--sans);font-weight:600}
.buy-note{display:block;margin-top:8px;color:var(--quiet);font:13px/1.5 var(--sans)}
.specs{color:var(--quiet);font:14px/1.6 var(--sans)}
.points li{margin-bottom:8px}
.byline{color:var(--quiet);font:14px/1.6 var(--sans);font-style:italic}

.notice{background:var(--card);border:1px solid var(--line);border-radius:16px;
        padding:30px;text-align:center;color:var(--quiet)}
.disclosure{background:var(--wash);border:1px solid #e8dcc7;border-radius:12px;
            padding:14px 16px;color:#6a5f4a;font:14px/1.6 var(--sans);margin-top:30px}

.variants{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:16px;
          grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.variant{background:var(--card);border:1px solid var(--line);border-radius:12px;
         padding:12px;text-align:center}
.variant img{border-radius:8px;margin-bottom:8px}
.variant-name{display:block;font:13px/1.4 var(--sans);color:var(--quiet)}
.variant-link{display:inline-block;margin-top:8px;font:13px/1 var(--sans);
              font-weight:600;color:var(--accent);text-decoration:none;
              border-bottom:1px solid var(--accent)}

/* -------------------------------------------------------------------- foot */
.site-foot{max-width:760px;margin:44px auto 60px;padding:22px;text-align:center;
           color:var(--quiet);font:14px/1.7 var(--sans);border-top:1px solid var(--line)}
.site-foot a{color:var(--quiet)}
.foot-small{font-size:13px}
