:root{
  --cream:#F7F3EA; --cream-deep:#EFE8D9; --paper:#FDFBF6;
  --dusk:#C1683B; --dusk-deep:#8B4226; --ink:#262521;
  --gold:#C8860A; --gold-soft:#F0D080; --line:rgba(38,37,33,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
body{background:var(--cream); color:var(--ink); font-family:'Work Sans',sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Fraunces',serif; font-weight:500; letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1160px; margin:0 auto; padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}
img{max-width:100%; display:block;}

/* ---- nav ---- */
nav{position:sticky; top:0; z-index:50; background:rgba(247,243,234,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
nav .wrap{display:flex; align-items:center; justify-content:space-between; height:74px;}
.brand{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-size:1.1rem; font-weight:600;}
.brand .pvs-badge{
  width:28px; height:28px; border-radius:8px;
  background:linear-gradient(135deg, var(--dusk) 0%, var(--dusk-deep) 100%);
  color:var(--cream); display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono',monospace; font-size:0.62rem; font-weight:500; letter-spacing:0.02em;
  border:1px solid rgba(247,243,234,0.25);
}
.navlinks{display:flex; gap:26px; font-size:0.87rem;}
.navlinks a{opacity:0.72;} .navlinks a:hover, .navlinks a.active{opacity:1;}
@media(max-width:820px){.navlinks{display:none;}}
.nav-cta{font-size:0.82rem; padding:9px 18px; border:1px solid var(--ink); border-radius:2px;}

/* ---- buttons ---- */
.btn{padding:13px 26px; border-radius:2px; font-size:0.9rem; border:1px solid var(--ink); transition:all 0.2s; display:inline-block;}
.btn.solid{background:var(--ink); color:var(--cream);}
.btn.solid:hover{background:var(--dusk-deep); border-color:var(--dusk-deep);}
.btn.ghost:hover{background:var(--ink); color:var(--cream);}
.btn.buy{background:var(--gold); color:var(--paper); border-color:var(--gold); width:100%; text-align:center; font-weight:500;}
.btn.buy:hover{background:#a86e05; border-color:#a86e05;}

/* ---- page hero (interior pages) ---- */
.page-hero{padding:64px 0 48px; text-align:center; border-bottom:1px solid var(--line);}
.eyebrow{font-size:0.74rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:16px; display:inline-block;}
.page-hero h1{font-size:clamp(1.9rem,4vw,2.8rem);}
.page-hero p{max-width:520px; margin:16px auto 0; color:var(--dusk-deep); opacity:0.85;}

/* ---- trust strip ---- */
.trust{background:var(--dusk-deep); color:var(--cream); padding:26px 0;}
.trust .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:0.85rem;}
.trust span{font-family:'IBM Plex Mono',monospace; opacity:0.9;}
.trust span b{color:var(--gold-soft);}

/* ---- section heads ---- */
.section-head{text-align:center; margin-bottom:48px;}
.section-head .eyebrow{color:var(--gold);}
.section-head h2{font-size:2.1rem;}

/* ---- pillars (category cards) ---- */
.pillar-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
@media(max-width:820px){.pillar-grid{grid-template-columns:1fr;}}
.pillar{border:1px solid var(--line); background:var(--paper); padding:34px 32px; transition:transform 0.25s, box-shadow 0.25s;}
.pillar:hover{transform:translateY(-4px); box-shadow:0 18px 40px -22px rgba(38,37,33,0.3);}
.pillar-tag{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.05em; color:var(--gold); text-transform:uppercase; margin-bottom:14px; display:block;}
.pillar h3{font-size:1.35rem; margin-bottom:12px;}
.pillar ul{list-style:none; margin-bottom:20px;}
.pillar li{font-size:0.9rem; opacity:0.78; padding:4px 0; padding-left:16px; position:relative;}
.pillar li::before{content:"—"; position:absolute; left:0; opacity:0.5;}
.pillar-link{font-size:0.85rem; border-bottom:1px solid var(--ink); padding-bottom:2px;}
.coming-soon{display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; background:var(--gold-soft); color:var(--dusk-deep); padding:2px 8px; border-radius:20px; margin-left:8px; vertical-align:middle;}

/* ---- product grid (shop page) ---- */
.product-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media(max-width:860px){.product-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.product-grid{grid-template-columns:1fr;}}
.product-card{border:1px solid var(--line); background:var(--paper); transition:transform 0.25s, box-shadow 0.25s; display:flex; flex-direction:column;}
.product-card:hover{transform:translateY(-4px); box-shadow:0 18px 40px -22px rgba(38,37,33,0.3);}
.product-thumb{height:180px; background:linear-gradient(135deg, var(--dusk) 0%, var(--dusk-deep) 100%); display:flex; align-items:center; justify-content:center; color:var(--cream); font-family:'Fraunces',serif; font-style:italic; font-size:0.9rem; position:relative; overflow:hidden;}
.product-thumb img{width:100%; height:100%; object-fit:cover; object-position:top center; display:block;}
.product-thumb .glow-dot{position:absolute; top:16px; right:18px; width:7px; height:7px; border-radius:50%; background:var(--gold-soft); box-shadow:0 0 12px 5px rgba(240,208,128,0.55);}
.product-body{padding:20px 22px 24px; flex:1; display:flex; flex-direction:column;}
.product-body .cat-label{font-family:'IBM Plex Mono',monospace; font-size:0.65rem; color:var(--gold); text-transform:uppercase; margin-bottom:8px;}
.product-body h3{font-size:1.05rem; margin-bottom:8px;}
.product-body p{font-size:0.85rem; opacity:0.72; margin-bottom:14px; flex:1;}
.product-price{font-family:'IBM Plex Mono',monospace; font-size:0.95rem; margin-bottom:14px;}
.format-pills{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px;}
.pill{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; border:1px solid var(--line); padding:3px 8px; border-radius:20px; opacity:0.75;}

/* ---- product detail page ---- */
.product-detail{padding:64px 0 90px;}
.detail-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
@media(max-width:880px){.detail-grid{grid-template-columns:1fr; gap:32px;}}
.detail-preview{background:var(--paper); border:1px solid var(--line); border-radius:3px; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; color:var(--dusk); font-family:'Fraunces',serif; font-style:italic;}
.detail-info .cat-label{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--gold); text-transform:uppercase; margin-bottom:12px; display:block;}
.detail-info h1{font-size:1.9rem; margin-bottom:14px;}
.detail-info .price{font-family:'IBM Plex Mono',monospace; font-size:1.3rem; margin-bottom:20px;}
.detail-info p.desc{opacity:0.8; margin-bottom:22px;}
.detail-block{border-top:1px solid var(--line); padding:18px 0;}
.detail-block h4{font-size:0.85rem; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:8px; font-family:'IBM Plex Mono',monospace; opacity:0.7;}
.detail-block p{font-size:0.9rem; opacity:0.8;}
.buy-box{margin-top:26px; padding-top:22px; border-top:1px solid var(--line);}

/* ---- legal note ---- */
.legal-note{padding:56px 0; text-align:center;}
.legal-note .box{max-width:640px; margin:0 auto; border:1px dashed var(--line); padding:24px 28px; border-radius:3px;}
.legal-note .box .eyebrow{color:var(--dusk-deep); text-align:center; display:block; margin-bottom:10px;}
.legal-note p{font-size:0.87rem; opacity:0.75;}

/* ---- FAQ ---- */
.faq-list{max-width:760px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
.faq-item h3{font-size:1.05rem; margin-bottom:8px;}
.faq-item p{font-size:0.92rem; opacity:0.78;}

/* ---- about ---- */
.about-section{padding:70px 0;}
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start;}
@media(max-width:820px){.about-grid{grid-template-columns:1fr;}}
.about-grid p{margin-bottom:16px; opacity:0.85;}
.signature-line{margin-top:22px; padding-top:20px; border-top:1px solid var(--line); font-family:'Fraunces',serif; font-style:italic; opacity:0.85;}

/* ---- contact ---- */
.contact-form{max-width:560px; margin:0 auto;}
.contact-form label{display:block; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:8px; opacity:0.7;}
.contact-form input, .contact-form textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); background:var(--paper);
  font-family:'Work Sans',sans-serif; font-size:0.95rem; margin-bottom:20px; border-radius:2px;
}
.contact-form textarea{min-height:140px; resize:vertical;}

/* ---- footer ---- */
footer{padding:50px 0 36px; text-align:center; border-top:1px solid var(--line); margin-top:60px;}
footer .brand{justify-content:center; margin-bottom:12px;}
footer p{font-size:0.83rem; opacity:0.6;}
footer .foot-links{display:flex; justify-content:center; gap:20px; margin-top:14px; font-size:0.82rem; opacity:0.75;}
