:root{
  --forest-deep: #14231A;
  --forest: #1E3327;
  --forest-mid: #2C4837;
  --espresso: #2A1608;
  --espresso-light: #4A2E17;
  --cream: #F5EEE2;
  --cream-dim: #E7DCC7;
  --copper: #C97C4B;
  --copper-light: #E0A374;
  --gold: #C9A227;
  --ink: #201207;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  font-family: 'Work Sans', sans-serif;
  background: var(--cream);
  color: var(--ink);
  line-height: 1.55;
}
h1,h2,h3,.display{
  font-family: 'Fraunces', serif;
  font-weight: 600;
  letter-spacing: -0.01em;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width: 1180px; margin: 0 auto; padding: 0 32px;}

/* topbar */
.topbar{background: var(--forest-deep); color: var(--copper-light); font-size: 12.5px; letter-spacing: 0.04em;}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; padding-top: 9px; padding-bottom: 9px;}
.topbar .socials{display:flex; gap:14px; opacity:0.85;}
.topbar .announce{color: var(--cream-dim);}
.topbar .links{display:flex; gap:20px; color: var(--cream-dim);}
.topbar .links a:hover{color: var(--copper-light);}

/* header */
header.main{background: var(--espresso); border-bottom: 1px solid rgba(255,255,255,0.06);}
header.main .wrap{display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap: 28px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:52px; width:52px;}
.brand .word{color: var(--cream); font-family:'Fraunces', serif; font-size:19px; letter-spacing: 0.03em; font-weight:600;}
.brand .word small{display:block; font-family:'Work Sans', sans-serif; font-size:10px; letter-spacing: 0.18em; color: var(--copper-light); font-weight: 500; margin-top:2px;}
.search{flex:1; max-width: 380px; position:relative;}
.search input{width:100%; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 3px; padding: 10px 14px; color: var(--cream); font-family: inherit; font-size: 14px;}
.search input::placeholder{color: rgba(245,238,226,0.4);}
.icons{display:flex; gap:22px; color: var(--cream); align-items:center;}
.icons svg{width:20px; height:20px;}
.icons a{display:flex;}
.cart-count{background:var(--copper); color:var(--ink); font-size:10px; font-weight:700; border-radius:100px; padding:1px 5px; margin-left:-10px; margin-top:-10px;}

nav.flat{background: var(--forest);}
nav.flat .wrap{display:flex; justify-content:center; gap:36px; padding: 13px 32px; flex-wrap:wrap;}
nav.flat a{color: var(--cream-dim); font-size: 13.5px; font-weight: 500; letter-spacing: 0.02em;}
nav.flat a:hover, nav.flat a.active{color: var(--copper-light);}

/* page hero (non-homepage pages use a smaller version) */
.page-hero{background: var(--forest-deep); padding: 56px 32px; text-align:center;}
.page-hero .eyebrow{color: var(--copper-light); font-size: 12px; letter-spacing: 0.24em; font-weight: 600; margin-bottom: 14px;}
.page-hero h1{color: var(--cream); font-size: 34px;}
.page-hero p{color: rgba(245,238,226,0.6); max-width:520px; margin: 14px auto 0; font-size:15px;}

/* buttons */
.btn{display:inline-block; background: var(--copper); color: var(--ink); padding: 0.618em 1.6em; border-radius: 3px; font-weight: 600; font-size: 14.5px; letter-spacing: 0.01em; transition: background 0.15s ease; border: none; cursor: pointer; font-family: inherit;}
.btn:hover{background: var(--copper-light);}
.btn.ghost{background: transparent; color: var(--cream); border: 1px solid rgba(245,238,226,0.35);}
.btn.ghost:hover{border-color: var(--copper-light); color: var(--copper-light);}
.btn.dark{background:var(--forest); color:var(--cream);}
.btn.dark:hover{background:var(--forest-mid);}
.btn.small{padding:0.5em 1em; font-size:13px;}
.btn.full{display:block; width:100%; text-align:center;}

/* trust strip */
.trust{background: var(--espresso); padding: 22px 32px;}
.trust .wrap{display:flex; justify-content:center; gap:52px; flex-wrap: wrap;}
.trust .item{display:flex; align-items:center; gap:10px; color: var(--cream-dim); font-size: 13px; font-weight:500;}
.trust svg{width:17px; height:17px; color: var(--copper-light); flex-shrink:0;}

/* section head */
.section-head{text-align:center; margin-bottom: 48px;}
.section-head .eyebrow{color: var(--copper); font-size:12.5px; letter-spacing:0.24em; font-weight:600; margin-bottom:14px;}
.section-head h2{font-size: 32px; color: var(--espresso);}
.section-head p{color: #6B5D4A; max-width:460px; margin: 14px auto 0; font-size:15px;}

/* product grid (plans + shop share this) */
ul.products{list-style:none; display:grid; grid-template-columns: repeat(3, 1fr); gap: 26px;}
ul.products.cols-4{grid-template-columns: repeat(4,1fr);}
li.product{position:relative; background: #fff; border: 1px solid var(--cream-dim); border-radius: 6px; overflow: hidden;}
li.product.featured{border: 2px solid var(--copper);}
li.product .badge{position:absolute; top:16px; right:16px; background: var(--copper); color: var(--ink); font-size: 10.5px; font-weight:700; letter-spacing:0.05em; padding: 5px 10px; border-radius: 100px; z-index:2;}
li.product .shot{height: 180px; background: linear-gradient(155deg, var(--espresso-light), var(--espresso)); position: relative; display:flex; align-items:center; justify-content:center;}
li.product .shot img{width:100%; height:100%; object-fit:cover;}
li.product .shot .weight{color: var(--copper-light); font-family:'Fraunces', serif; font-size: 15px; letter-spacing: 0.04em;}
li.product .body{padding: 22px 22px 26px; text-align:center;}
li.product .cat{font-size: 10.5px; letter-spacing:0.14em; color: var(--copper); font-weight:600; margin-bottom:8px; text-transform:uppercase;}
li.product h3{font-size: 21px; color: var(--espresso); margin-bottom: 6px;}
li.product .desc{font-size:13px; color:#8A7860; margin-bottom:16px;}
li.product .price{font-size: 24px; font-weight:700; color: var(--espresso); margin-bottom: 18px; font-family:'Fraunces', serif;}
li.product .price .per{font-size:12px; color:#8A7860; font-weight:500; font-family:'Work Sans',sans-serif;}

/* forms (login, contact, account) */
.form-card{background:#fff; border:1px solid var(--cream-dim); border-radius:8px; padding:32px; max-width:440px; margin:0 auto;}
.form-row{margin-bottom:16px;}
.form-row label{display:block; font-size:13px; font-weight:600; color:var(--espresso); margin-bottom:6px;}
.form-row input, .form-row select, .form-row textarea{width:100%; border:1px solid var(--cream-dim); border-radius:3px; padding:10px 12px; font-family:inherit; font-size:14px; background:#fdfaf5;}
.form-row textarea{min-height:120px; resize:vertical;}
.alert{padding:12px 16px; border-radius:4px; font-size:13.5px; margin-bottom:18px;}
.alert.error{background:#FBE7E2; color:#8A2E1C; border-left:3px solid #C94A2A;}
.alert.success{background:#E8F0E0; color:#33511F; border-left:3px solid #639922;}

/* dashboard bits (subscriber account + admin share the look) */
.stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px; margin-bottom:32px;}
.stat-card{background:#fff; border:1px solid var(--cream-dim); border-radius:8px; padding:18px 20px;}
.stat-card .num{font-family:'Fraunces',serif; font-size:28px; color:var(--espresso);}
.stat-card .label{font-size:12px; color:#8A7860; text-transform:uppercase; letter-spacing:0.06em; margin-top:4px;}
table.data{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--cream-dim); border-radius:8px; overflow:hidden;}
table.data th{text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:#8A7860; padding:12px 16px; background:var(--cream); border-bottom:1px solid var(--cream-dim);}
table.data td{padding:12px 16px; font-size:13.5px; border-bottom:1px solid var(--cream-dim);}
table.data tr:last-child td{border-bottom:none;}
.pill{display:inline-block; padding:3px 10px; border-radius:100px; font-size:11px; font-weight:600;}
.pill.active, .pill.paid{background:#E8F0E0; color:#33511F;}
.pill.paused, .pill.pending{background:#FAEEDA; color:#854F0B;}
.pill.past_due, .pill.failed, .pill.cancelled{background:#FBE7E2; color:#8A2E1C;}

/* footer */
footer.site{background: var(--espresso); color: var(--cream-dim); padding: 52px 32px 28px;}
footer.site .wrap{display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 32px; border-bottom:1px solid rgba(255,255,255,0.08);}
footer.site h4{font-size:12px; letter-spacing:0.1em; color:var(--copper-light); margin-bottom:16px; font-weight:600;}
footer.site ul{list-style:none; display:flex; flex-direction:column; gap:9px; font-size:13.5px;}
footer.site .bottom{max-width:1180px; margin: 20px auto 0; padding: 0 32px; display:flex; justify-content:space-between; font-size:12px; color:rgba(245,238,226,0.45);}

@media (max-width: 860px){
  ul.products{grid-template-columns: 1fr;}
  ul.products.cols-4{grid-template-columns: repeat(2,1fr);}
  footer.site .wrap{grid-template-columns: 1fr 1fr;}
  .page-hero h1{font-size:26px;}
  nav.flat .wrap{gap:18px;}
  .search{display:none;}
}
