:root{
  --bisque:#EDE6DA;
  --paper:#F5F0E6;
  --ink:#2B2621;
  --ink-soft:#6B6154;
  --celadon:#7C8F6E;
  --celadon-dark:#57644B;
  --rust:#A8552E;
  --line:rgba(43,38,33,0.13);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bisque);color:var(--ink);
  font-family:'Work Sans',sans-serif;line-height:1.6;
}
h1,h2,h3,.display{font-family:'Cormorant Garamond',serif;font-weight:600;}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

/* DEMO DISCLOSURE BANNER */
.demo-banner{
  background:var(--celadon);color:var(--paper);text-align:center;
  font-size:13px;font-weight:600;padding:9px 16px;
}
.demo-banner a{text-decoration:underline;color:var(--paper);}

/* NAV */
nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 24px;max-width:1080px;margin:0 auto;
}
.wordmark{display:flex;align-items:center;gap:10px;font-family:'Cormorant Garamond',serif;font-weight:600;font-size:21px;text-decoration:none;color:var(--ink);}
.wordmark svg{width:26px;height:26px;flex-shrink:0;}
.navlinks{display:flex;gap:30px;font-size:14.5px;}
.navlinks a{text-decoration:none;color:var(--ink-soft);border-bottom:1px solid transparent;padding-bottom:2px;transition:border-color .2s,color .2s;}
.navlinks a:hover{color:var(--ink);border-color:var(--ink-soft);}
.nav-cta{
  font-size:14px;background:var(--celadon);color:var(--paper);font-weight:600;
  padding:10px 18px;border-radius:2px;text-decoration:none;white-space:nowrap;
}
.menu-btn{display:none;background:none;border:none;cursor:pointer;padding:4px;}
.menu-btn span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;}

/* HERO */
.hero{padding:56px 24px 72px;text-align:center;}
.hero-inner{max-width:680px;margin:0 auto;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--celadon-dark);
  text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:20px;
}
.eyebrow::before{content:"";width:6px;height:6px;background:var(--rust);border-radius:50%;}
h1{font-size:48px;line-height:1.12;margin:0 0 18px;}
.hero p.lede{font-size:17px;color:var(--ink-soft);margin:0 auto 30px;max-width:52ch;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;}
.btn{display:inline-block;padding:13px 24px;border-radius:2px;font-size:14.5px;text-decoration:none;font-weight:600;}
.btn-primary{background:var(--celadon);color:var(--paper);}
.btn-primary:hover{background:var(--celadon-dark);}
.btn-ghost{border:1px solid var(--ink-soft);color:var(--ink);}
.btn-ghost:hover{background:var(--ink);color:var(--paper);}

section{padding:76px 24px;}
.section-head{max-width:560px;margin:0 auto 44px;text-align:center;}
.section-head .eyebrow{justify-content:center;}
.section-head h2{font-size:32px;margin:0;}

/* PRODUCT GRID */
.product-grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.product{background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden;}
.product-img{
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg, var(--bisque), var(--paper));position:relative;
}
.product-img svg{width:44%;}
.product-tag{
  position:absolute;top:10px;left:10px;background:var(--paper);color:var(--celadon-dark);
  font-family:'IBM Plex Mono',monospace;font-size:10px;padding:3px 8px;border-radius:20px;
  border:1px solid var(--line);letter-spacing:.02em;
}
.product-body{padding:16px 18px 18px;}
.product-body h3{font-size:19px;margin:0 0 4px;font-weight:600;}
.product-body .desc{font-size:13px;color:var(--ink-soft);margin:0 0 10px;}
.product-body .price{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--rust);}

/* STORY */
.story{background:var(--paper);}
.story-inner{max-width:640px;margin:0 auto;text-align:center;}
.story p{font-size:16.5px;color:var(--ink-soft);margin:0 0 20px;}
.story p:last-child{margin-bottom:0;}

/* VISIT */
.visit-grid{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;}
.hours-table{width:100%;border-collapse:collapse;font-size:15px;}
.hours-table td{padding:9px 0;border-top:1px solid var(--line);}
.hours-table tr:first-child td{border-top:none;}
.hours-table td:last-child{text-align:right;font-family:'IBM Plex Mono',monospace;color:var(--ink-soft);}
.hours-table tr.today td{color:var(--celadon-dark);font-weight:600;}
.visit-card h3{font-size:22px;margin:0 0 16px;}
.find-us p{color:var(--ink-soft);margin:0 0 20px;font-size:15px;}
.map-box{
  aspect-ratio:16/10;background:var(--paper);border-radius:4px;
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  border:1px solid var(--line);
}
.map-box svg{width:56%;opacity:0.55;}

/* CATALOGUE PAGE */
.cat-header{padding:56px 24px 20px;text-align:center;}
.cat-header .eyebrow{justify-content:center;}
.cat-header h1{font-size:42px;margin:0 0 14px;}
.cat-header p{color:var(--ink-soft);max-width:52ch;margin:0 auto;font-size:16px;}
.cat-section{padding:56px 24px;}
.cat-section-head{max-width:1080px;margin:0 auto 26px;display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:10px;}
.cat-section-head h2{font-size:24px;margin:0;text-transform:uppercase;letter-spacing:.02em;}
.cat-section-head span{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-soft);}

.back-link{
  display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-soft);
  text-decoration:none;margin-bottom:20px;
}
.back-link:hover{color:var(--ink);}

footer{padding:40px 24px;text-align:center;font-size:13px;color:var(--ink-soft);border-top:1px solid var(--line);}
footer a{color:var(--celadon-dark);text-decoration:none;}
footer a:hover{text-decoration:underline;}

@media (max-width:820px){
  h1{font-size:34px;}
  .navlinks{display:none;}
  .menu-btn{display:block;}
  .product-grid{grid-template-columns:1fr 1fr;}
  .visit-grid{grid-template-columns:1fr;}
}
@media (max-width:520px){
  .product-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important;transition:none !important;}
}
