/* od-catalogue-1-0-0.css -- Orient Display product catalogue (WordPress page /catalogue/ + PDF print rules).
   Scoped to .odcat. Mobile-first. Tokens = OD Brand Kit v2.1 (scripts/od_brandkit_v21_palette.py PALETTE);
   fonts Poppins (headings) + Lato (body) per OD Brand Kit v2 theme. Loaded via a <link> at the top of the
   page content (see catalogue_build.py wp_fragment). */
.odcat{
  --od-green:#1a7d2e; --od-green-hover:#13611f; --od-green-panel:#0e4a18;
  --od-ink:#1a2230; --od-ink-soft:#4a5568; --od-line:#e2e7ee; --od-bg-soft:#f5f7fa;
  --od-tint:#cfe8d5; --od-mint:#9fd8ad;
  --od-head:"Poppins","Helvetica Neue",Arial,sans-serif; --od-body:"Lato","Helvetica Neue",Arial,sans-serif;
  box-sizing:border-box; max-width:1200px; margin:0 auto; padding:0 16px 40px;
  font-family:var(--od-body); font-size:16px; line-height:1.55; color:var(--od-ink);
}
.odcat *,.odcat *::before,.odcat *::after{box-sizing:border-box}
.odcat ul{list-style:none; margin:0; padding:0}
.odcat p{margin:0 0 .75em}
.odcat a{color:var(--od-green); text-decoration:none}
.odcat a:hover,.odcat a:focus{color:var(--od-green-hover); text-decoration:underline}
.odcat img{max-width:100%; height:auto; display:block}
.odcat-standalone{margin:0; background:#fff}
.odcat-printonly{display:none}

/* hero */
.odcat-hero{background:var(--od-green-panel); color:#fff; margin:0 -16px 0; padding:28px 16px 32px}
.odcat-logo{display:none; background:#fff; padding:8px 12px; border-radius:4px; margin-bottom:20px; width:210px; height:auto}
.odcat-standalone .odcat-logo{display:block}
.odcat-eyebrow{font-family:var(--od-head); font-weight:600; font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--od-mint)}
.odcat-title{font-family:var(--od-head); font-weight:600; font-size:28px; line-height:1.2; margin:0 0 .5em; color:#fff}
.odcat-lead{font-size:17px; color:#e8f3ea; max-width:46em}
.odcat-hero a{color:#fff}
.odcat-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:20px}
.odcat-btn{display:inline-block; font-family:var(--od-head); font-weight:600; font-size:15px; line-height:1.2;
  padding:13px 20px; border-radius:6px; border:2px solid var(--od-green); text-align:center; min-height:44px}
.odcat a.odcat-btn--primary{background:var(--od-green); color:#fff}
.odcat a.odcat-btn--primary:hover,.odcat a.odcat-btn--primary:focus{background:var(--od-green-hover); border-color:var(--od-green-hover); color:#fff; text-decoration:none}
.odcat a.odcat-btn--ghost{background:#fff; color:var(--od-green)}
.odcat a.odcat-btn--ghost:hover,.odcat a.odcat-btn--ghost:focus{background:var(--od-tint); text-decoration:none}
.odcat-hero .odcat-btn--primary{background:#fff; color:var(--od-green-panel); border-color:#fff}
.odcat-hero a.odcat-btn--primary{background:#fff; color:var(--od-green-panel)}
.odcat-hero a.odcat-btn--primary:hover{background:var(--od-tint); color:var(--od-green-panel)}
.odcat-hero a.odcat-btn--ghost{background:transparent; color:#fff; border-color:#fff}
.odcat-hero a.odcat-btn--ghost:hover{background:rgba(255,255,255,.14); color:#fff}

/* family chips: scroll inside the row, never the page */
.odcat-chips{margin:0 -16px; padding:12px 16px; background:var(--od-bg-soft); border-bottom:1px solid var(--od-line);
  }
.odcat-standalone .odcat-chips{position:sticky; top:0; z-index:5}
.odcat-chips ul{display:flex; gap:8px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:thin}
.odcat-chips a{display:block; white-space:nowrap; font-family:var(--od-head); font-weight:600; font-size:14px;
  padding:9px 14px; border:1px solid var(--od-line); border-radius:999px; background:#fff; color:var(--od-ink)}
.odcat-chips a:hover,.odcat-chips a:focus{border-color:var(--od-green); color:var(--od-green); text-decoration:none}

/* family section */
.odcat-fam{padding:32px 0 28px; border-bottom:1px solid var(--od-line); scroll-margin-top:64px}
.odcat-num{font-family:var(--od-head); font-weight:600; font-size:13px; letter-spacing:.14em; color:var(--od-green); margin:0 0 4px}
.odcat-fam h2,.odcat-contact h2{font-family:var(--od-head); font-weight:600; font-size:26px; line-height:1.2; margin:0 0 4px; color:var(--od-ink)}
.odcat-fam h2 a{color:var(--od-ink)}
.odcat-tag{font-family:var(--od-head); font-size:15px; color:var(--od-green); margin-bottom:10px}
.odcat-desc{color:var(--od-ink-soft); max-width:50em}
.odcat-shots{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:16px 0}
.odcat-shots li{background:var(--od-bg-soft); border:1px solid var(--od-line); border-radius:6px; padding:8px; text-align:center; min-width:0}
.odcat-shots img{margin:0 auto; width:100%; max-width:200px; aspect-ratio:1/1; object-fit:contain}
.odcat-shots span{display:block; font-size:11px; color:var(--od-ink-soft); margin-top:4px; overflow-wrap:anywhere}
.odcat-series{font-size:14px; background:var(--od-tint); border-radius:6px; padding:10px 12px; color:var(--od-green-panel)}
.odcat-leaves{display:grid; grid-template-columns:1fr; gap:12px; margin:16px 0}
.odcat-leaf{border:1px solid var(--od-line); border-radius:8px; padding:14px 16px; background:#fff; min-width:0}
.odcat-leaf h3{font-family:var(--od-head); font-weight:600; font-size:16px; line-height:1.3; margin:0 0 6px; overflow-wrap:anywhere}
.odcat-leaf p{font-size:14.5px; color:var(--od-ink-soft); margin-bottom:6px}
.odcat-leaf .odcat-leafseries{font-size:13px; color:var(--od-green-panel); font-weight:700; margin:0}
.odcat-more{margin:20px 0 0}

/* contact */
.odcat-contact{padding:32px 0 8px}
.odcat-paths{display:grid; grid-template-columns:1fr; gap:14px; margin-top:16px}
.odcat-paths li{display:flex; flex-direction:column; gap:6px; align-items:flex-start}
.odcat-paths span{font-size:14px; color:var(--od-ink-soft)}
.odcat-foot{margin-top:28px; font-size:13px; color:var(--od-ink-soft)}

@media (min-width:600px){
  .odcat{padding:0 24px 56px}
  .odcat-hero,.odcat-chips{margin-left:-24px; margin-right:-24px; padding-left:24px; padding-right:24px}
  .odcat-hero{padding-top:40px; padding-bottom:44px}
  .odcat-title{font-size:36px}
  .odcat-leaves{grid-template-columns:repeat(2,1fr)}
  .odcat-paths{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1000px){
  .odcat-title{font-size:44px}
  .odcat-chips ul{justify-content:center}
  .odcat-fam{padding:48px 0 40px}
  .odcat-fam h2,.odcat-contact h2{font-size:32px}
  .odcat-shots{grid-template-columns:repeat(3,minmax(0,220px)); gap:16px}
  .odcat-leaves{grid-template-columns:repeat(3,1fr)}
  .odcat-paths{grid-template-columns:repeat(4,1fr)}
}

/* print / PDF: Letter with 0.5in margins (content also fits A4 when "fit to page"); links stay live */
@page{size:Letter; margin:0.5in}
@media print{
  html,body{-webkit-print-color-adjust:exact; print-color-adjust:exact}
  .odcat{max-width:none; padding:0; font-size:10pt; line-height:1.45}
  .odcat-printonly{display:block}
  .odcat-logo{display:block; width:230px}
  .odcat-hero{margin:0 0 20px; padding:36px 28px 40px; border-radius:0}
  .odcat-title{font-size:32pt}
  .odcat-lead{font-size:12pt}
  .odcat-actions{display:none}
  .odcat-edition{color:var(--od-mint); font-size:10pt; margin-top:28px}
  .odcat-chips{position:static; margin:0 0 18px; padding:0; background:none; border:0}
  .odcat-chips ul{display:grid; grid-template-columns:repeat(2,1fr); gap:6px 16px; overflow:visible}
  .odcat-chips a{border-radius:6px; font-size:11pt; padding:6px 10px}
  .odcat-chips::before{content:"Contents"; display:block; font-family:var(--od-head); font-weight:600; font-size:14pt; margin-bottom:8px}
  .odcat-fam{break-before:page; padding:0 0 12px; border:0}
  .odcat-chips + .odcat-fam{break-before:page}
  .odcat-fam h2,.odcat-contact h2{font-size:22pt}
  .odcat-shots{grid-template-columns:repeat(3,1fr); gap:10px; break-inside:avoid}
  .odcat-shots img{max-width:1.7in}
  .odcat-leaves{grid-template-columns:repeat(2,1fr); gap:8px}
  .odcat-leaf{break-inside:avoid; padding:8px 10px}
  .odcat-leaf h3{font-size:10.5pt}
  .odcat-leaf p{font-size:9pt}
  .odcat-url{font-size:7.5pt !important; color:var(--od-ink-soft); font-family:var(--od-body)}
  .odcat-more{display:none}
  .odcat-contact{break-before:page; padding-top:0}
  .odcat-paths{grid-template-columns:repeat(2,1fr)}
  .odcat a{text-decoration:none}
}
