/* -------------------------------------------------------
   Channel Crystals · Shared brand styles
   Used on every page. Don't edit per-page tokens here
   unless you want the change to apply site-wide.
   Per-page styles live in the page's own <style> block.
------------------------------------------------------- */

:root{
  --bone:#F5F1EA;
  --cream:#EEE7D8;
  --stone:#D9CFBE;
  --mist:#E8E2D5;
  --ink:#1C1B19;
  --ink-soft:#3A3833;
  --whisper:#C48A7A;
  --line:#D6CFC1;
  --max:1320px;
}

/* Reset */
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bone);color:var(--ink);font-family:'Inter',sans-serif;font-weight:400;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}

/* Layout utilities */
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.serif{font-family:'Playfair Display',serif;font-weight:400;letter-spacing:0.01em}
.eyebrow{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;font-weight:500;color:var(--ink-soft)}

/* Announcement */
.announce{background:var(--ink);color:var(--bone);text-align:center;padding:10px 16px;font-size:12px;letter-spacing:0.12em;text-transform:uppercase}

/* Nav */
nav.top{position:sticky;top:0;z-index:30;background:var(--bone);border-bottom:1px solid var(--line)}
.nav-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px 32px;max-width:var(--max);margin:0 auto}
.nav-left,.nav-right{display:flex;gap:28px;font-size:13px;letter-spacing:0.05em}
.nav-right{justify-content:flex-end}
.nav-left a,.nav-right a{color:var(--ink)}
.nav-left a:hover,.nav-right a:hover{color:var(--whisper)}
.nav-left a.active,.nav-right a.active{border-bottom:1px solid var(--ink);padding-bottom:3px}
.brand{font-family:'Playfair Display',serif;font-weight:400;font-size:24px;letter-spacing:0.06em;text-align:center}
.brand span{font-style:italic;font-weight:400}
.brand a{color:var(--ink)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 28px;background:var(--ink);color:var(--bone);font-size:13px;letter-spacing:0.16em;text-transform:uppercase;border-radius:999px;transition:transform .25s ease, background .25s ease;width:fit-content}
.btn:hover{transform:translateY(-1px);background:var(--ink-soft)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bone)}
.btn.light{background:var(--bone);color:var(--ink)}
.btn.light:hover{background:var(--cream)}
.btn .arr{display:inline-block;transition:transform .25s ease}
.btn:hover .arr{transform:translateX(4px)}

/* Trust strip */
.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft)}
.trust-row{display:flex;gap:60px;justify-content:center;flex-wrap:wrap;text-align:center}
.trust-row span:before{content:"·";margin-right:60px;color:var(--whisper)}
.trust-row span:first-child:before{content:""}

/* Section base */
section.padded{padding:140px 0}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:60px;flex-wrap:wrap}
.head h2{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(36px,4.2vw,60px);line-height:1.08;letter-spacing:0.005em;max-width:18ch}
.head .lead{max-width:42ch;color:var(--ink-soft)}
.head .link{font-size:13px;letter-spacing:0.16em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:4px}

/* Product card */
section.products{background:var(--bone)}
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px 28px}
.card{display:flex;flex-direction:column}
.card .img{aspect-ratio:4/5;background:var(--mist);overflow:hidden;border-radius:2px;position:relative}
.card .img .i{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .9s ease}
.card:hover .img .i{transform:scale(1.05)}
.card .meta{margin-top:18px;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.card .name{font-family:'Playfair Display',serif;font-weight:400;font-size:18px}
.card .price{font-size:14px;color:var(--ink-soft)}
.card .stone{font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft);margin-top:4px}
.badge{position:absolute;top:14px;left:14px;background:var(--bone);color:var(--ink);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;padding:6px 10px;border-radius:999px}
.add-to-bag{margin-top:18px;padding:12px 22px;background:var(--bone);color:var(--ink);border:1px solid var(--ink);border-radius:999px;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;cursor:pointer;transition:background .2s ease, color .2s ease;align-self:flex-start}
.add-to-bag:hover{background:var(--ink);color:var(--bone)}

/* Journal cards */
.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.article .img{aspect-ratio:4/3;background:var(--mist);overflow:hidden}
.article .img .i{width:100%;height:100%;background-size:cover;background-position:center;transition:transform .9s ease}
.article:hover .img .i{transform:scale(1.04)}
.article .cat{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--whisper);margin-top:20px}
.article h3{font-family:'Playfair Display',serif;font-weight:400;font-size:22px;line-height:1.25;margin:10px 0 8px}
.article p{color:var(--ink-soft)}

/* Newsletter */
.signup{background:var(--cream);padding:120px 32px;text-align:center}
.signup h2{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(34px,4vw,52px);line-height:1.08;max-width:18ch;margin:14px auto 20px}
.signup p{color:var(--ink-soft);max-width:46ch;margin:0 auto 30px}
.form{display:flex;max-width:520px;margin:0 auto;border:1px solid var(--ink);border-radius:999px;overflow:hidden;background:var(--bone)}
.form input{flex:1;padding:16px 22px;border:none;background:transparent;font:inherit;font-size:14px;outline:none}
.form button{padding:16px 26px;background:var(--ink);color:var(--bone);font-size:12px;letter-spacing:0.16em;text-transform:uppercase}
.legal{font-size:11px;color:var(--ink-soft);margin-top:14px;letter-spacing:0.06em}

/* Footer */
footer{background:var(--ink);color:var(--mist);padding:90px 32px 40px}
.foot{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:40px}
.foot h4{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;margin-bottom:18px;color:var(--bone)}
.foot a{display:block;font-size:14px;padding:6px 0;color:var(--mist);opacity:.85}
.foot a:hover{opacity:1;color:var(--whisper)}
.foot .brand{font-family:'Playfair Display',serif;font-weight:400;color:var(--bone);font-size:28px;margin-bottom:16px;text-align:left}
.foot .blurb{font-size:14px;max-width:30ch;color:var(--mist);opacity:.7}
.foot-bottom{max-width:var(--max);margin:60px auto 0;padding-top:24px;border-top:1px solid #2c2a26;display:flex;justify-content:space-between;font-size:12px;color:var(--mist);opacity:.6;flex-wrap:wrap;gap:16px}

/* Nav bag button */
.nav-bag{font-size:13px;letter-spacing:0.05em;cursor:pointer;padding:0;color:var(--ink)}
.nav-bag:hover{color:var(--whisper)}

/* Cart overlay + panel */
.cart-overlay{position:fixed;inset:0;background:rgba(28,27,25,0.4);opacity:0;visibility:hidden;transition:opacity .3s ease, visibility .3s ease;z-index:40}
.cart-overlay.open{opacity:1;visibility:visible}
.cart-panel{position:fixed;top:0;right:0;height:100vh;width:440px;max-width:100%;background:var(--bone);z-index:50;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.9,.3,1);box-shadow:-12px 0 40px rgba(28,27,25,0.08)}
.cart-panel.open{transform:translateX(0)}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:28px 28px 22px;border-bottom:1px solid var(--line)}
.cart-title{font-family:'Playfair Display',serif;font-weight:400;font-size:22px}
.cart-close{font-size:12px;letter-spacing:0.18em;text-transform:uppercase;cursor:pointer;color:var(--ink-soft)}
.cart-close:hover{color:var(--ink)}
.cart-items{flex:1;overflow-y:auto;padding:0 28px}
.cart-empty{padding:60px 0;text-align:center;color:var(--ink-soft);font-size:14px;line-height:1.5}
.cart-line{display:grid;grid-template-columns:72px 1fr auto;gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}
.cart-line:last-child{border-bottom:none}
.cart-line .thumb{width:72px;height:90px;background-size:cover;background-position:center;border-radius:2px;background-color:var(--mist)}
.cart-line .info{display:flex;flex-direction:column;gap:4px}
.cart-line .line-name{font-family:'Playfair Display',serif;font-size:16px}
.cart-line .line-stone{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-soft)}
.cart-line .qty{display:inline-flex;align-items:center;gap:8px;margin-top:10px;border:1px solid var(--line);border-radius:999px;padding:4px 10px;width:fit-content}
.cart-line .qty button{width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:14px;color:var(--ink-soft);padding:0;display:flex;align-items:center;justify-content:center}
.cart-line .qty button:hover{color:var(--ink)}
.cart-line .qty span{font-size:13px;min-width:20px;text-align:center}
.cart-line .right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;justify-content:space-between}
.cart-line .line-price{font-size:14px;color:var(--ink-soft)}
.cart-line .remove{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer}
.cart-line .remove:hover{color:var(--whisper)}
.cart-summary{padding:22px 28px 28px;border-top:1px solid var(--line);background:var(--cream)}
.cart-row{display:flex;justify-content:space-between;font-size:14px;padding:4px 0;color:var(--ink-soft)}
.cart-row.total{font-family:'Playfair Display',serif;font-size:20px;color:var(--ink);padding-top:12px;margin-top:10px;border-top:1px solid var(--line)}
.cart-note{font-size:12px;color:var(--ink-soft);margin-top:10px;font-style:italic}
.cart-note.met{color:var(--whisper);font-style:normal}
.cart-cta{width:100%;margin-top:18px;justify-content:center}
.cart-payment{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:12px;line-height:1.5}

/* Toast */
.toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bone);padding:14px 24px;border-radius:999px;font-size:13px;letter-spacing:0.08em;opacity:0;visibility:hidden;transition:opacity .25s ease, transform .25s ease, visibility .25s ease;z-index:60;box-shadow:0 12px 40px rgba(28,27,25,0.2)}
.toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}

/* Page title (used on About, Shop, etc.) */
.page-hero{background:var(--cream);padding:120px 32px 80px;text-align:center;border-bottom:1px solid var(--line)}
.page-hero h1{font-family:'Playfair Display',serif;font-weight:400;font-size:clamp(48px,6vw,84px);line-height:1.06;margin:14px auto 18px;max-width:22ch}
.page-hero h1 em{font-style:italic;color:var(--ink-soft)}
.page-hero p{max-width:54ch;margin:0 auto;color:var(--ink-soft);font-size:17px}

/* Responsive */
@media (max-width: 980px){
  .product-grid{grid-template-columns:repeat(2,1fr)}
  .journal-grid{grid-template-columns:1fr;gap:40px}
  .nav-left,.nav-right{display:none}
  .nav-inner{grid-template-columns:1fr auto 1fr}
  .nav-right{display:flex;justify-content:flex-end}
  .nav-right a{display:none}
  .nav-right .nav-bag{display:inline-block}
  .foot{grid-template-columns:1fr 1fr}
  section.padded{padding:90px 0}
}
