/* ============================================
   Private Supply Peptides — Shared Design System
   Matte black + gold · smart, simple, bougie
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  /* Neutrals */
  --ink:#0a0a0a;          /* matte black */
  --ink-2:#1a1a1a;        /* slightly lifted black for surfaces */
  --ink-3:#2a2826;        /* card on dark */
  --ink-soft:#5a5854;
  --ink-mute:#918e88;
  --line:#e6ddcc;         /* warm hairline on light */
  --line-dark:#2a2826;    /* hairline on dark */
  --paper:#f5f0e5;        /* warm cream */
  --paper-2:#efe8d8;      /* deeper cream for banded sections */
  --card:#ffffff;

  /* Gold */
  --gold:#c9a961;         /* champagne gold — primary accent */
  --gold-2:#b28f45;       /* deeper gold for text on light */
  --gold-soft:#f0e8d3;    /* pale gold wash */
  --gold-line:rgba(201,169,97,.35);

  --radius:8px;
  --radius-lg:16px;
  --serif:'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* Legacy aliases so per-page inline styles that referenced the old palette still resolve to the new gold. */
  --accent: var(--gold);
  --accent-dark: var(--gold-2);
  --accent-soft: var(--gold-soft);
  --amber: var(--gold-2);
  --amber-soft: var(--gold-soft);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font-family:inherit; cursor:pointer;}
::selection{background:var(--gold); color:var(--ink);}

/* Layout */
.wrap{max-width:1200px; margin:0 auto; padding:0 28px;}
.wrap-narrow{max-width:820px; margin:0 auto; padding:0 28px;}
section{padding:80px 0;}

/* Typography — Fraunces at large sizes with tight tracking reads as bougie editorial */
h1,h2,h3,h4{font-family:var(--serif); font-weight:400; letter-spacing:-0.02em; line-height:1.12;}
h1{font-size:60px; font-weight:300;}
h2{font-size:38px; font-weight:400;}
h3{font-size:22px; font-weight:500;}
h4{font-size:17px; font-weight:600; font-family:var(--sans); letter-spacing:0;}

.eyebrow{
  font-size:11px; font-weight:600; text-transform:uppercase;
  letter-spacing:0.22em; color:var(--ink-soft);
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans);
}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--ink-soft);}
.eyebrow-gold{color:var(--gold-2);}
.eyebrow-gold::before{background:var(--gold-2);}
.eyebrow-light{color:var(--gold);}
.eyebrow-light::before{background:var(--gold);}

.lead{font-size:19px; color:var(--ink-soft); line-height:1.55; font-weight:400;}
.mute{color:var(--ink-soft);}

/* Buttons — matte black bg with gold text is the signature */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 24px; border-radius:2px;
  font-weight:600; font-size:13.5px; letter-spacing:0.06em; text-transform:uppercase;
  border:1px solid transparent; transition:all .2s ease;
  cursor:pointer; font-family:var(--sans);
}
.btn-primary{background:var(--ink); color:var(--gold); border-color:var(--ink);}
.btn-primary:hover{color:#fff; background:#000;}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:var(--gold);}
.btn-gold{background:var(--gold); color:var(--ink); border-color:var(--gold);}
.btn-gold:hover{background:var(--gold-2); border-color:var(--gold-2);}
.btn-light{background:transparent; color:var(--gold); border-color:var(--gold);}
.btn-light:hover{background:var(--gold); color:var(--ink);}
.btn-lg{padding:17px 30px; font-size:13.5px;}
.btn-sm{padding:9px 15px; font-size:11.5px;}

/* Concierge strip (top bar) */
.concierge-strip{
  background:#000; color:var(--gold);
  padding:9px 24px; text-align:right;
  font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase;
  font-weight:500;
}
.concierge-strip a{color:var(--gold); border-bottom:1px solid transparent; transition:border-color .15s;}
.concierge-strip a:hover{border-bottom-color:var(--gold);}
.concierge-strip .sep{color:#5a4b25; margin:0 12px;}

/* Compliance banner */
.compliance-banner{
  background:#1a1613; color:#c9a961;
  padding:8px 24px; text-align:center;
  font-size:11px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase;
  border-bottom:1px solid #2a221a;
}
.compliance-banner strong{color:var(--gold);}

/* Header */
header.site{
  position:sticky; top:0; z-index:60;
  background:rgba(245,240,229,.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:20px 0;}
.logo{display:flex; align-items:center; gap:14px; font-weight:400; font-family:var(--serif); font-size:20px; letter-spacing:-0.01em;}
.logo .name{display:flex; flex-direction:column; line-height:1.05;}
.logo .name .primary{font-family:var(--serif); font-size:18px; font-weight:500; letter-spacing:0.02em;}
.logo .name .secondary{font-size:9.5px; font-family:var(--sans); font-weight:600; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold-2); margin-top:1px;}
.logo-mark{
  width:44px; height:44px; border-radius:2px;
  background:var(--ink);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold);
  font-family:var(--serif); font-weight:400; font-size:17px; letter-spacing:0.03em;
  border:1px solid var(--ink);
  position:relative;
}
.logo-mark::after{
  content:""; position:absolute; inset:3px;
  border:1px solid var(--gold-line); border-radius:1px;
}
.nav-links{display:flex; gap:32px; font-size:13px; font-weight:600; color:var(--ink); text-transform:uppercase; letter-spacing:0.12em;}
.nav-links a{transition:color .15s; position:relative;}
.nav-links a::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--gold); transform:scaleX(0); transition:transform .2s; transform-origin:center;}
.nav-links a:hover::after, .nav-links a.active::after{transform:scaleX(1);}
.nav-cta{display:flex; gap:10px; align-items:center;}

/* Footer */
footer.site{background:var(--ink); color:#b5b1a8; padding:70px 0 32px; border-top:2px solid var(--gold);}
.foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:44px; margin-bottom:48px;}
.foot-grid h5{color:var(--gold); font-size:11px; text-transform:uppercase; letter-spacing:0.18em; margin-bottom:18px; font-family:var(--sans); font-weight:600;}
.foot-grid ul{list-style:none; display:flex; flex-direction:column; gap:11px; font-size:13.5px;}
.foot-grid ul a{color:#b5b1a8; transition:color .15s;}
.foot-grid ul a:hover{color:var(--gold);}
.foot-brand .logo{color:#fff;}
.foot-brand .logo .name .primary{color:#fff;}
.foot-brand .logo .name .secondary{color:var(--gold);}
.foot-brand p{color:#8a867d; font-size:13.5px; margin-top:16px; max-width:280px; line-height:1.6;}
.foot-disclaimer{
  border-top:1px solid var(--line-dark); padding-top:26px;
  font-size:11px; color:#6a665d; line-height:1.75; letter-spacing:0.02em;
}
.foot-bottom{
  display:flex; justify-content:space-between;
  margin-top:22px; font-size:10.5px; color:#544f47; flex-wrap:wrap; gap:10px;
  text-transform:uppercase; letter-spacing:0.14em;
}

/* Common components */
.tag{
  display:inline-block; font-size:10.5px; font-weight:700;
  letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold-2); background:transparent; border:1px solid var(--gold-line);
  padding:5px 12px; border-radius:99px;
}
.tag-gold{color:var(--ink); background:var(--gold); border-color:var(--gold);}
.tag-outline{color:var(--ink-soft); background:transparent; border:1px solid var(--line);}

.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:24px;}

/* Trust row */
.trust-row{display:flex; gap:24px; flex-wrap:wrap; font-size:12px; color:var(--ink-soft); font-weight:500; text-transform:uppercase; letter-spacing:0.1em;}
.trust-row span{display:flex; align-items:center; gap:8px;}
.dot{width:5px; height:5px; border-radius:50%; background:var(--gold); flex-shrink:0;}

/* Sourcing bar */
.source-bar{padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper-2);}
.source-bar .wrap{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px;}
.source-bar p{font-size:10.5px; text-transform:uppercase; letter-spacing:0.2em; color:var(--ink-soft); font-weight:600;}
.source-list{display:flex; gap:36px; flex-wrap:wrap; font-size:12.5px; color:var(--ink); font-weight:500; text-transform:uppercase; letter-spacing:0.1em;}

/* Page hero (non-home) */
.page-hero{padding:70px 0 46px; border-bottom:1px solid var(--line); background:var(--paper);}
.page-hero .eyebrow{margin-bottom:20px;}
.page-hero h1{font-size:52px; margin-bottom:18px; max-width:840px;}
.page-hero p{font-size:18px; color:var(--ink-soft); max-width:660px; line-height:1.55;}

/* Page-hero split layout — text left, image right */
.page-hero.split .wrap{display:grid; grid-template-columns:1.5fr 1fr; gap:56px; align-items:center;}
.page-hero.split .hero-image{
  aspect-ratio:4/3; border-radius:6px; overflow:hidden; background:#0a0a0a;
  border:1px solid var(--line);
}
.page-hero.split .hero-image img{width:100%; height:100%; object-fit:cover; display:block;}
@media (max-width:960px){
  .page-hero.split .wrap{grid-template-columns:1fr;}
}

/* Section heads */
.section-head{max-width:700px; margin-bottom:52px;}
.section-head .eyebrow{margin-bottom:18px;}
.section-head h2{margin-bottom:14px;}
.section-head p{color:var(--ink-soft); font-size:17px; line-height:1.6;}

/* Product cards */
.pep-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.pep-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
  transition:all .25s ease; position:relative;
}
.pep-card:hover{transform:translateY(-3px); box-shadow:0 18px 40px -22px rgba(10,10,10,.25); border-color:var(--gold-line);}

/* Card quick-add actions (bottom of every product card) */
.pep-actions{display:flex; gap:6px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line);}
.pep-add{
  flex:1; padding:10px 12px; background:var(--ink); color:var(--gold);
  border:1px solid var(--ink); border-radius:2px; text-align:center;
  font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em;
  cursor:pointer; transition:all .15s;
}
.pep-add:hover{background:#000; color:#fff;}
.pep-standing{
  padding:10px 12px; border:1px solid var(--gold); color:var(--gold-2); background:transparent;
  border-radius:2px; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em;
  cursor:pointer; transition:all .15s; white-space:nowrap;
}
.pep-standing:hover{background:var(--gold); color:var(--ink);}
.pep-spec-strip{
  display:flex; gap:12px; flex-wrap:wrap; font-size:10.5px; color:var(--ink-mute);
  font-family:'Menlo','Monaco',monospace; letter-spacing:0.02em;
  padding:8px 0 4px; border-top:1px dashed var(--line);
}
.pep-spec-strip span{display:inline-flex; gap:4px; align-items:center;}
.pep-spec-strip span strong{color:var(--ink); font-weight:600;}

/* Cart pill in nav */
.cart-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 14px; border:1px solid var(--ink); border-radius:2px;
  font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em;
  background:transparent; color:var(--ink); cursor:pointer; transition:all .15s;
}
.cart-pill:hover{background:var(--ink); color:var(--gold);}
.cart-pill .count{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:18px; height:18px; padding:0 5px; background:var(--gold); color:var(--ink);
  border-radius:99px; font-size:10px; font-weight:800;
}

/* Sticky buy bar (product pages) — minimal: name (compact) · price · button */
.sticky-buy-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:70;
  background:rgba(10,10,10,.96); backdrop-filter:blur(12px);
  border-top:1px solid var(--gold);
  padding:9px 24px; display:none;
  box-shadow:0 -14px 30px -20px rgba(0,0,0,.5);
}
.sticky-buy-bar.visible{display:block;}
.sticky-buy-bar-inner{
  max-width:1200px; margin:0 auto;
  display:flex; gap:18px; align-items:center; justify-content:flex-end;
}
.sticky-buy-bar .name{color:#a9b0ac; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:0.1em; margin-right:auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sticky-buy-bar .price{font-family:var(--serif); font-size:19px; color:var(--gold); font-weight:500;}
.sticky-buy-bar .btn-primary{background:var(--gold); color:var(--ink); border-color:var(--gold); padding:9px 20px; font-size:12px;}
.sticky-buy-bar .btn-primary:hover{background:#e8c987; color:var(--ink);}
@media (max-width:700px){
  .sticky-buy-bar{padding:8px 16px;}
  .sticky-buy-bar .name{display:none;}
}

/* Toast (order-added confirmation) */
.toast{
  position:fixed; top:20px; right:20px; z-index:120;
  background:var(--ink); color:var(--gold); padding:14px 22px;
  border:1px solid var(--gold); border-radius:4px;
  font-size:13px; letter-spacing:0.06em; text-transform:uppercase; font-weight:600;
  transform:translateY(-30px); opacity:0; transition:all .25s;
  pointer-events:none;
}
.toast.visible{transform:translateY(0); opacity:1;}

/* ============ CART DRAWER ============ */
.cart-overlay{
  position:fixed; inset:0; z-index:100;
  background:rgba(10,10,10,.55); backdrop-filter:blur(3px);
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.cart-overlay.open{opacity:1; pointer-events:auto;}
.cart-drawer{
  position:fixed; top:0; right:0; bottom:0; z-index:101;
  width:min(440px, 100vw); background:var(--paper);
  transform:translateX(100%); transition:transform .3s ease;
  display:flex; flex-direction:column;
  box-shadow:-30px 0 60px -20px rgba(0,0,0,.4);
}
.cart-drawer.open{transform:translateX(0);}
.cart-header{
  padding:22px 28px; border-bottom:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:center;
  background:var(--ink); color:#fff;
}
.cart-header h3{font-family:var(--serif); font-size:22px; color:#fff; letter-spacing:-0.01em;}
.cart-header .sub{font-size:10.5px; text-transform:uppercase; letter-spacing:0.16em; color:var(--gold); margin-top:2px;}
.cart-close{background:none; border:none; color:#fff; font-size:26px; cursor:pointer; line-height:1; padding:0 4px;}
.cart-close:hover{color:var(--gold);}

.cart-body{flex:1; overflow-y:auto; padding:20px 24px;}
.cart-empty{text-align:center; padding:60px 20px; color:var(--ink-soft); font-size:14px;}
.cart-empty h4{font-family:var(--serif); font-size:20px; color:var(--ink); margin-bottom:8px;}
.cart-empty a{color:var(--gold-2); font-weight:600;}

.cart-line{
  display:grid; grid-template-columns:1fr auto; gap:12px;
  padding:16px 0; border-bottom:1px solid var(--line);
}
.cart-line:last-child{border-bottom:none;}
.cart-line .name{font-family:var(--serif); font-size:16px; font-weight:500;}
.cart-line .mode{font-size:10.5px; color:var(--gold-2); text-transform:uppercase; letter-spacing:0.14em; font-weight:700; margin-top:3px;}
.cart-line .mode.single{color:var(--ink-mute);}
.cart-line .price{font-family:var(--serif); font-size:16px; font-weight:500; text-align:right;}
.cart-line .row-2{display:flex; justify-content:space-between; align-items:center; margin-top:8px; grid-column:1/-1;}
.qty-mini{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:2px; overflow:hidden;}
.qty-mini button{width:26px; height:26px; background:#fff; border:none; cursor:pointer; font-size:14px; color:var(--ink-soft);}
.qty-mini button:hover{background:var(--gold-soft);}
.qty-mini span{padding:0 10px; font-weight:600; font-size:13px;}
.line-remove{background:none; border:none; color:var(--ink-mute); font-size:12px; cursor:pointer; text-decoration:underline;}
.line-remove:hover{color:var(--danger);}

.cart-checkout{
  padding:20px 24px; border-top:1px solid var(--line); background:#fff;
}
.cart-total{
  display:flex; justify-content:space-between; align-items:baseline;
  padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid var(--line);
}
.cart-total .l{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.14em; color:var(--ink-soft);}
.cart-total .v{font-family:var(--serif); font-size:26px; color:var(--ink); font-weight:500;}

.cart-fields{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:14px;}
.cart-fields input, .cart-fields textarea{
  padding:10px 12px; border:1px solid var(--line); border-radius:3px;
  font-size:13.5px; font-family:inherit; background:#fff;
}
.cart-fields input:focus, .cart-fields textarea:focus{outline:1.5px solid var(--gold); border-color:var(--gold);}
.cart-fields .full{grid-column:1/-1;}
.cart-fields textarea{resize:vertical; min-height:60px;}
.cart-confirm{width:100%; padding:15px; background:var(--ink); color:var(--gold); border:1px solid var(--ink); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.14em; cursor:pointer; border-radius:2px;}
.cart-confirm:hover{background:#000; color:#fff;}
.cart-note{font-size:11px; color:var(--ink-mute); margin-top:10px; line-height:1.5; text-align:center;}

/* ============ TAB PANELS (product page) ============ */
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* ============ Missed hover states from polish pass ============ */
.faq-q{transition:color .15s;}
.faq-q:hover{color:var(--gold-2);}
.variant{transition:all .15s;}
.variant:hover{border-color:var(--ink);}

/* ============ CLICKABLE PRODUCT CARDS ============
   Whole card is clickable; interactive children keep their own click. */
.pep-card{cursor:pointer;}
.pep-card .pep-actions button,
.pep-card .pep-link,
.pep-card a{cursor:pointer;}

/* ============ CUSTOM TOOLTIP WITH DELAY ============
   Shows after ~450ms hover, hides immediately on leave or click. */
#psTooltip{
  position:fixed; z-index:200;
  background:var(--ink); color:var(--gold);
  border:1px solid var(--gold-line); border-radius:3px;
  padding:8px 12px; font-size:12px; font-weight:500; letter-spacing:0.02em;
  max-width:240px; line-height:1.4;
  pointer-events:none;
  opacity:0; transform:translateY(4px); transition:opacity .12s, transform .12s;
  box-shadow:0 8px 20px -8px rgba(0,0,0,.4);
}
#psTooltip.visible{opacity:1; transform:translateY(0);}

/* ============ CART APPROVAL NOTE ============ */
.cart-approval-note{
  background:#faf5eb; border:1px solid #f0e2c4; border-left:3px solid var(--gold);
  border-radius:0 4px 4px 0; padding:14px 18px; margin-bottom:18px;
  font-size:13px; color:#5c4416; line-height:1.55;
}
.cart-approval-note strong{color:#3d2f10; display:block; margin-bottom:4px; font-size:13.5px;}
.pep-thumb{
  aspect-ratio:4/3; background:linear-gradient(140deg, var(--ink), var(--ink-2));
  border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:36px; color:var(--gold); font-weight:400;
  position:relative;
  letter-spacing:0.02em;
}
.pep-thumb::after{
  content:""; position:absolute; inset:12px;
  border:1px solid rgba(201,169,97,.18); border-radius:2px;
  pointer-events:none;
}
.pep-thumb .pep-badge{
  position:absolute; top:14px; left:14px;
  font-size:9.5px; font-weight:700; background:var(--gold); color:var(--ink);
  padding:4px 10px; border-radius:99px; letter-spacing:0.14em; text-transform:uppercase;
  z-index:2;
}
.pep-body{padding:20px 22px 22px; display:flex; flex-direction:column; gap:8px; flex:1;}
.pep-body h4{font-family:var(--serif); font-size:20px; font-weight:500; letter-spacing:-0.01em;}
.pep-body .sub{font-size:10.5px; color:var(--ink-mute); text-transform:uppercase; letter-spacing:0.12em; font-weight:600;}
.pep-body p{font-size:13.5px; color:var(--ink-soft); flex-grow:1; line-height:1.55;}
.pep-meta{display:flex; justify-content:space-between; align-items:center; margin-top:12px; padding-top:12px; border-top:1px solid var(--line);}
.pep-price{font-family:var(--serif); font-size:19px; color:var(--ink); font-weight:500;}
.pep-link{font-size:11px; font-weight:700; color:var(--gold-2); text-transform:uppercase; letter-spacing:0.14em;}
.pep-link:hover{color:var(--ink);}

/* Video card */
.video-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.video-thumb{position:relative; aspect-ratio:16/9; background:#000;}
.video-thumb iframe{width:100%; height:100%; border:0;}
.video-body{padding:20px 24px 22px;}
.video-src{font-size:10.5px; font-weight:700; color:var(--gold-2); text-transform:uppercase; letter-spacing:0.16em; margin-bottom:8px;}
.video-body h4{font-size:17px; font-family:var(--serif); font-weight:500; margin-bottom:8px; line-height:1.3;}
.video-body p{font-size:13.5px; color:var(--ink-soft);}

/* Tables */
.table{
  width:100%; background:var(--card);
  border:1px solid var(--line); border-radius:var(--radius);
  border-collapse:separate; border-spacing:0; overflow:hidden;
  font-size:13.5px;
}
.table th{
  text-align:left; padding:15px 18px;
  background:var(--ink); font-weight:600; font-size:10.5px;
  text-transform:uppercase; letter-spacing:0.14em; color:var(--gold);
  border-bottom:1px solid var(--line);
}
.table td{padding:16px 18px; border-bottom:1px solid var(--line); vertical-align:middle;}
.table tbody tr:last-child td{border-bottom:none;}
.table tbody tr:hover{background:var(--paper-2);}
.table .peptide-cell{font-family:var(--serif); font-weight:600; font-size:15px;}

/* Utility */
.mt-4{margin-top:16px;} .mt-6{margin-top:24px;} .mt-8{margin-top:32px;} .mt-12{margin-top:48px;}
.mb-4{margin-bottom:16px;} .mb-6{margin-bottom:24px;} .mb-8{margin-bottom:32px;}
.text-center{text-align:center;}

/* Gold rule — a bougie divider */
.gold-rule{
  display:block; width:60px; height:1px; background:var(--gold);
  margin:24px auto;
}
.gold-rule-left{margin-left:0; margin-right:auto;}

/* Responsive */
/* Mobile hamburger */
.hamburger{
  display:none; background:none; border:none; cursor:pointer;
  width:38px; height:38px; align-items:center; justify-content:center;
  color:var(--ink);
}
.hamburger svg{width:22px; height:22px;}
.mobile-menu{
  position:fixed; top:0; right:0; bottom:0; z-index:90;
  width:min(320px, 84vw); background:var(--ink); color:#fff;
  padding:80px 32px 32px; transform:translateX(100%); transition:transform .3s ease;
  display:flex; flex-direction:column; gap:6px;
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu a{
  padding:14px 0; font-size:16px; font-weight:500; letter-spacing:0.06em;
  text-transform:uppercase; color:#fff; border-bottom:1px solid var(--line-dark);
}
.mobile-menu a:hover, .mobile-menu a.active{color:var(--gold);}
.mobile-menu .close{
  position:absolute; top:20px; right:20px;
  background:none; border:none; color:#fff; font-size:26px; cursor:pointer; line-height:1;
}
.mobile-menu-overlay{
  position:fixed; inset:0; z-index:89; background:rgba(0,0,0,.5);
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.mobile-menu-overlay.open{opacity:1; pointer-events:auto;}

@media (max-width:960px){
  h1{font-size:42px;}
  h2{font-size:30px;}
  section{padding:60px 0;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .pep-grid{grid-template-columns:1fr 1fr;}
  .nav-links{display:none;}
  .hamburger{display:inline-flex;}
  .page-hero h1{font-size:36px;}
}
@media (max-width:600px){
  .pep-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  h1{font-size:34px;}
  .wrap, .wrap-narrow{padding:0 20px;}
}
