/* LUNÉ: styles for the pages that only exist in the dist build (tools/export_site.py):
   category, gift and guide pages, the 404 page, and the server-rendered product/home markup.
   Loaded after style.css on every dist page. The site/ preview does not load this file. */

/* <picture> wrappers (WebP sources) must not change the layout of the <img> inside */
picture{display:contents}
/* the hover image of a card is never seen on touch screens; hidden + lazy = never downloaded */
@media (hover:none){.card__alt{display:none}}

/* home hero: the keyword H1 is set like the eyebrow, the slogan keeps the big display type */
.hero .hero__kw{font-family:var(--sans);font-size:12px;font-weight:400;line-height:1.6;letter-spacing:.36em;color:var(--platinum);margin:0}
.hero .hero__title{font-family:var(--serif);font-weight:300;font-size:clamp(44px,5.4vw,78px);line-height:1.05;margin:0}
@media (max-width:820px){.hero .hero__title{font-size:44px}}

/* category, gift and hub pages */
.catpage{padding-bottom:96px}
.cat-head{max-width:820px;padding:8px 0 36px}
.cat-head h1{font-size:56px;margin-top:12px}
.cat-intro{margin-top:18px;font-size:17px;line-height:1.8;color:#3F434A}
.cat-intro p{margin:0 0 12px}
.cat-intro a{text-underline-offset:3px}
.cat-links{display:flex;flex-wrap:wrap;gap:8px}
.cat-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid #C9C7C0;color:var(--ink);font-size:15px;text-decoration:none}
.cat-links a:hover{border-color:var(--ink)}
.cat-links a[aria-current="page"]{background:var(--ink);color:var(--pearl);border-color:var(--ink)}
.cat-more{border-top:1px solid var(--line);margin-top:72px;padding-top:48px}
.cat-more h2{font-size:32px;margin-bottom:20px}
.linklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.linklist a{display:block;padding:18px 20px;border:1px solid var(--line);text-decoration:none;font-family:var(--serif);font-size:20px;line-height:1.3}
.linklist a:hover{border-color:var(--ink)}
.linklist small{display:block;margin-top:6px;font-family:var(--sans);font-size:14px;color:var(--muted)}
.card__why{margin:2px 0 0;font-size:14px;line-height:1.6;color:#3F434A}
.page-body{max-width:780px;font-size:16px;line-height:1.8;color:#3F434A}

/* guides (article) */
.article{max-width:780px;padding-bottom:40px}
.article__head{padding:8px 0 32px;border-bottom:1px solid var(--line);margin-bottom:36px}
.article__head h1{font-size:52px;margin-top:12px}
.article__meta{font-size:13px;color:var(--muted);margin:14px 0 0}
.article__body,.page-body{font-size:17px;line-height:1.85;color:#3F434A}
.article__body h2,.page-body h2{font-size:32px;color:var(--ink);margin:40px 0 14px}
.article__body h3,.page-body h3{font-family:var(--sans);font-size:17px;font-weight:600;color:var(--ink);margin:26px 0 8px}
.article__body p,.page-body p{margin:0 0 14px}
.article__body ul,.article__body ol,.page-body ul,.page-body ol{margin:0 0 14px;padding-inline-start:22px}
.article__body li,.page-body li{margin-bottom:6px}
.article__body a,.page-body a{text-underline-offset:3px}
.article__body table,.page-body table{border-collapse:collapse;width:100%;margin:8px 0 20px;font-size:15px}
.article__body th,.article__body td,.page-body th,.page-body td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:start}
.article__body img,.page-body img{height:auto}

/* blocks used inside the copy from data/pages and data/seo.json */
.page-body .lede,.article__body .lede,.cat-intro .lede{font-size:19px;line-height:1.75;color:var(--ink)}
.page-body .cta,.article__body .cta{margin-top:28px;padding:20px 22px;background:var(--porcelain);color:var(--ink)}
.gift-links,.picks,.page-body ul.gift-links,.page-body ul.picks,.article__body ul.picks{list-style:none;margin:0 0 24px;padding:0;border-top:1px solid var(--line)}
.page-body .gift-links li,.page-body .picks li,.article__body .picks li{margin:0;padding:16px 0;border-bottom:1px solid var(--line)}
.gift-links a,.pick > a{font-family:var(--serif);font-size:21px;color:var(--ink)}
.pick .price{font-family:var(--display);font-feature-settings:'lnum';color:var(--ink)}
.pick .material{display:block;margin-top:6px;font-size:14px;color:var(--muted)}
.pick .why{display:block;margin-top:4px}
.specs{list-style:none;margin:12px 0;padding:0;font-size:15px}
.specs li{padding:6px 0;border-bottom:1px solid var(--line)}
.tool-text{padding-top:72px;padding-bottom:40px}
.tool-text .page-body,.tool-text.page-body{max-width:780px}
.moon-page .tool-text{background:var(--pearl)}
/* moon.css resets h2/h3 margins for the tool; the text under it needs the article rhythm back */
.moon-page .page-body h2{font-size:32px;margin:40px 0 14px}
.moon-page .page-body h3{margin:26px 0 8px}
.moon-page .page-body p{margin:0 0 14px}

/* product page: long description (server-rendered, kept by app.js across redraws) */
.pdp__long{font-size:16px;line-height:1.8;color:#3F434A}
.pdp__long p{margin:0 0 12px}
.pdp__long h2{font-size:24px;color:var(--ink);margin:18px 0 8px}

/* 404 */
.nf{padding-top:72px;padding-bottom:110px;text-align:center}
.nf h1{font-size:56px;margin-top:12px}
.nf p{max-width:520px;margin:18px auto 0;font-size:17px;line-height:1.75;color:#3F434A}
.nf .cat-links{justify-content:center;margin-top:32px}
.nf__cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}

@media (max-width:820px){
  /* wide tables scroll inside the column instead of widening the page */
  .article__body table,.page-body table,.pdp__long table{display:block;overflow-x:auto;min-width:0;font-size:14px}
  .article__body th,.article__body td,.page-body th,.page-body td{padding:8px 6px}
  .cat-head h1,.nf h1{font-size:38px}
  .article__head h1{font-size:36px}
  .cat-intro,.article__body,.page-body{font-size:16px}
  .cat-links{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1*var(--gut));padding:0 var(--gut);scrollbar-width:none}
  .cat-links a{flex:none}
  .nf .cat-links{flex-wrap:wrap;overflow:visible;margin:32px 0 0;padding:0}
  .cat-more{margin-top:48px;padding-top:36px}
}

/* category pages: short buying guide under the grid */
.cat-guide{margin-top:72px;padding-top:8px;border-top:1px solid var(--line)}
.cat-guide h2:first-child,.cat-guide h2:first-of-type{margin-top:32px}

/* home: gift ideas strip */
.giftstrip__list a{font-size:22px}

/* product page: the gift pages that feature this piece */
.pdp-gifts{margin-top:56px;padding-top:28px;border-top:1px solid var(--line)}
.pdp-gifts__t{font-family:var(--sans);font-size:12px;font-weight:400;letter-spacing:.36em;color:#6B6F77;margin:0 0 14px}
.pdp-gifts ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pdp-gifts a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid #C9C7C0;color:var(--ink);font-size:15px;text-decoration:none}
.pdp-gifts a:hover{border-color:var(--ink)}

/* guides hub */
.guides-list a{min-height:100%}

/* a breadcrumb on a page whose first section is full-bleed (the moon tool) */
.crumbs-bar .crumbs{padding-top:14px;padding-bottom:14px}

/* tap targets of at least 24px on phones */
.crumbs a{display:inline-block;padding-block:6px}
a[data-phone]{display:inline-block;padding-block:4px}
