:root{
--black: #0b0906;
--black-2: #14100a;
--black-3: #1a140c;
--gold: #c9a24a;
--gold-bright: #e6c878;
--gold-dim: #8b6f3f;
--blood: #6e1414;
--blood-bright: #9c1f1f;
--green: #4a7a4a;
--parchment: #ece3cd;
--parchment-dim: #cfc3a0;
--line: rgba(201,162,74,0.25);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
background:var(--black);
color:var(--parchment);
font-family:'EB Garamond', Georgia, serif;
font-size:18px;
line-height:1.6;
overflow-x:hidden;
}
body.locked{ overflow:hidden; }
::selection{ background:var(--blood); color:var(--parchment); }
h1,h2,h3, .display{
font-family:'Cinzel', serif;
letter-spacing:0.04em;
color:var(--gold-bright);
font-weight:700;
}
.blackletter{
font-family:'UnifrakturMaguntia', cursive;
font-weight:400;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
.wrap{ max-width:1140px; margin:0 auto; padding:0 28px; }
body::before{
content:"";
position:fixed; inset:0;
background-image:
radial-gradient(circle at 20% 10%, rgba(201,162,74,0.05), transparent 40%),
radial-gradient(circle at 80% 60%, rgba(110,20,20,0.06), transparent 45%);
pointer-events:none;
z-index:0;
}
/* ===== AGE GATE ===== */
.gate{
position:fixed; inset:0; z-index:200;
background:rgba(6,5,3,0.96);
display:flex; align-items:center; justify-content:center;
padding:24px;
}
.gate.hidden{ display:none; }
.gate-card{
max-width:440px; width:100%;
background:var(--black-2);
border:1px solid var(--gold-dim);
padding:44px 36px;
text-align:center;
animation:riseIn .5s ease;
}
@keyframes riseIn{ from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);} }
.gate-card .blackletter{ font-size:2.2rem; color:var(--gold-bright); display:block; margin-bottom:18px;}
.gate-card p{ color:var(--parchment-dim); font-size:0.98rem; margin-bottom:28px; }
.gate-btns{ display:flex; gap:14px; }
.gate-btns .btn{ flex:1; text-align:center; }
.gate-note{ margin-top:22px; font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-dim); }
.gate-deny{
max-width:440px; width:100%; background:var(--black-2); border:1px solid var(--blood);
padding:44px 36px; text-align:center; display:none;
}
.gate-deny.show{ display:block; }
.gate-deny h3{ margin-bottom:14px; }
.gate-deny p{ color:var(--parchment-dim); }
/* ===== NAV ===== */
nav{
position:sticky; top:0; z-index:50;
background:rgba(11,9,6,0.88);
backdrop-filter: blur(8px);
border-bottom:1px solid var(--line);
}
nav .wrap{
display:flex; align-items:center; justify-content:space-between;
height:76px;
}
.brand{
display:flex; align-items:center; gap:12px;
font-family:'Cinzel', serif;
font-weight:700;
font-size:1.15rem;
letter-spacing:0.08em;
color:var(--gold-bright);
}
.brand .sword-mark{ width:20px; height:20px; display:inline-block; }
.nav-right{ display:flex; align-items:center; gap:28px; }
.navlinks{ display:flex; gap:36px; font-size:0.92rem; letter-spacing:0.06em; text-transform:uppercase; }
.navlinks a{ color:var(--parchment-dim); transition:color .25s; position:relative; }
.navlinks a:hover{ color:var(--gold-bright); }
.cart-btn{
position:relative;
display:flex; align-items:center; gap:8px;
border:1px solid var(--gold-dim);
padding:9px 18px;
font-size:0.82rem;
letter-spacing:0.08em;
text-transform:uppercase;
color:var(--gold-bright);
transition:all .25s;
}
.cart-btn:hover{ background:var(--gold-bright); color:var(--black); border-color:var(--gold-bright); }
.cart-count{
background:var(--blood-bright); color:var(--parchment);
font-family:'Cinzel',serif; font-size:0.68rem;
min-width:18px; height:18px; border-radius:50%;
display:flex; align-items:center; justify-content:center;
padding:0 4px;
}
.sound-btn{
width:38px; height:38px;
border:1px solid var(--gold-dim);
color:var(--parchment-dim);
font-size:0.95rem;
display:flex; align-items:center; justify-content:center;
transition:all .2s;
}
.lang-btn{
width:38px; height:38px;
border:1px solid var(--gold-dim);
color:var(--parchment-dim);
font-size:0.8rem; font-weight:600; letter-spacing:0.05em;
display:flex; align-items:center; justify-content:center;
transition:all .2s;
}
.lang-btn:hover{ color:var(--gold-bright); border-color:var(--gold-bright); }
.sound-btn:hover{ color:var(--gold-bright); border-color:var(--gold-bright); }
.sound-btn.muted{ color:var(--gold-dim); opacity:0.6; }
/* ===== HERO ===== */
.hero{ position:relative; padding:88px 0 60px; text-align:center; overflow:hidden; }
.hero-logo{ display:block; max-width:560px; width:88%; margin:0 auto 8px; filter: drop-shadow(0 0 40px rgba(201,162,74,0.15)); }
.logo-link{ display:block; transition:filter .3s, transform .3s; }
.logo-link:hover .hero-logo{ filter: drop-shadow(0 0 55px rgba(201,162,74,0.32)); }
.logo-link:hover{ transform:scale(1.015); }
.hero-eyebrow{
font-family:'Cinzel', serif; font-size:0.78rem; letter-spacing:0.35em;
text-transform:uppercase; color:var(--blood-bright); margin-bottom:22px;
}
.hero p.lede{ max-width:560px; margin:22px auto 36px; font-size:1.18rem; color:var(--parchment-dim); font-style:italic; }
.hero-ctas{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-bottom:18px;}
.btn{
display:inline-block;
padding:15px 36px;
font-family:'Cinzel', serif;
font-size:0.86rem;
letter-spacing:0.12em;
text-transform:uppercase;
border:1px solid var(--gold);
color:var(--gold-bright);
transition:all .25s;
text-align:center;
}
.btn.primary{ background:var(--blood); border-color:var(--blood); color:var(--parchment); }
.btn.primary:hover{ background:var(--blood-bright); border-color:var(--blood-bright); }
.btn:hover{ background:var(--gold-bright); color:var(--black); }
.btn:disabled{ opacity:0.4; cursor:not-allowed; }
.btn:disabled:hover{ background:none; color:var(--gold-bright); }
.btn.primary:disabled:hover{ background:var(--blood); color:var(--parchment); }
.sword-divider{ display:flex; align-items:center; justify-content:center; gap:14px; margin:56px 0; color:var(--gold-dim); }
.sword-divider .line{ height:1px; width:120px; background:linear-gradient(90deg, transparent, var(--gold-dim)); }
.sword-divider .line.right{ background:linear-gradient(90deg, var(--gold-dim), transparent); }
.sword-divider svg{ width:26px; height:26px; }
.disclaimer-strip{ background:var(--black-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:16px 0; text-align:center; }
.disclaimer-strip p{ font-family:'Cinzel', serif; font-size:0.74rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--parchment-dim); }
.disclaimer-strip strong{ color:var(--blood-bright); }
section{ position:relative; z-index:1; padding:96px 0; }
.section-head{ text-align:center; max-width:640px; margin:0 auto 56px; }
.section-eyebrow{ font-family:'Cinzel',serif; font-size:0.75rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:14px; }
.section-head h2{ font-size:2.1rem; margin-bottom:14px; }
.section-head p{ color:var(--parchment-dim); font-size:1.05rem; }
.shop{ background:var(--black-2); }
.category-filters{
display:flex; flex-wrap:wrap; gap:12px;
justify-content:center;
margin-bottom:44px;
}
.cat-pill{
font-family:'Cinzel', serif;
font-size:0.76rem;
letter-spacing:0.1em;
text-transform:uppercase;
color:var(--parchment-dim);
border:1px solid var(--gold-dim);
padding:9px 20px;
transition:all .22s;
}
.cat-pill:hover{ color:var(--gold-bright); border-color:var(--gold-bright); }
.cat-pill.active{
background:var(--gold);
border-color:var(--gold);
color:var(--black);
}
.cat-pill .cat-count{
opacity:0.65; font-size:0.9em; margin-left:4px;
}
.grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.card{ background:var(--black-2); padding:38px 30px; transition:background .3s; display:flex; flex-direction:column; }
.card:hover{ background:var(--black-3); }
.card .glyph{ font-family:'UnifrakturMaguntia', cursive; font-size:2.4rem; color:var(--blood-bright); margin-bottom:14px; line-height:1; }
.card h3{ font-size:1.25rem; margin-bottom:8px; letter-spacing:0.03em;}
.card .tag{
display:inline-block; font-family:'Cinzel', serif; font-size:0.65rem; letter-spacing:0.12em;
text-transform:uppercase; color:var(--gold-dim); border:1px solid var(--gold-dim); padding:3px 9px;
margin-bottom:14px; width:fit-content;
}
.card p.desc{ color:var(--parchment-dim); font-size:0.96rem; margin-bottom:20px; min-height:64px; flex:1;}
.variant-row{ margin-bottom:14px; }
.variant-select{
width:100%; background:var(--black); border:1px solid var(--gold-dim); color:var(--parchment);
padding:9px 10px; font-family:'EB Garamond', serif; font-size:0.92rem; cursor:pointer;
}
.variant-select:focus{ outline:1px solid var(--gold); border-color:var(--gold); }
.coa-link{
display:inline-block; font-family:'Cinzel', serif; font-size:0.7rem; letter-spacing:0.08em;
text-transform:uppercase; color:var(--green); border-bottom:1px solid var(--green);
padding-bottom:2px; margin-bottom:14px; transition:opacity .2s;
}
.coa-link:hover{ opacity:0.75; }
.card-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.price{ font-family:'Cinzel', serif; color:var(--gold-bright); font-size:1.0rem; white-space:nowrap;}
.add-btn{
font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase;
color:var(--black); background:var(--gold); border:1px solid var(--gold);
padding:9px 14px; transition:all .2s; white-space:nowrap;
}
.add-btn:hover{ background:var(--gold-bright); border-color:var(--gold-bright); }
.add-btn.added{ background:var(--green); border-color:var(--green); color:var(--parchment); }
.proof .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.proof-list{ list-style:none; }
.proof-list li{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
.proof-list li:last-child{ border-bottom:none; }
.proof-num{ font-family:'Cinzel', serif; color:var(--blood-bright); font-size:1rem; font-weight:700; min-width:30px; }
.proof-list h4{ font-family:'Cinzel',serif; color:var(--gold-bright); font-size:1.02rem; margin-bottom:6px; letter-spacing:0.03em;}
.proof-list p{ color:var(--parchment-dim); font-size:0.95rem; }
.proof-art{ border:1px solid var(--line); padding:50px 40px; background:var(--black-2); text-align:center; }
.proof-art .blackletter{ font-size:2.6rem; color:var(--gold-bright); display:block; margin-bottom:18px;}
.proof-art p{ color:var(--parchment-dim); font-style:italic; font-size:1.05rem; }
.ontario{ background:var(--black-2); }
.ontario-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; text-align:center; }
.ontario-grid .item h3{ font-size:1.1rem; margin-bottom:10px; }
.ontario-grid .item p{ color:var(--parchment-dim); font-size:0.95rem; }
.ontario-grid .item .num{ font-family:'Cinzel',serif; font-size:2rem; color:var(--blood-bright); margin-bottom:14px; display:block; }
.compliance{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.compliance .wrap{ max-width:820px; }
.compliance h2{ text-align:center; font-size:1.5rem; margin-bottom:28px;}
.compliance-box{ background:var(--black-2); border:1px solid var(--gold-dim); padding:36px; font-size:0.94rem; color:var(--parchment-dim); }
.compliance-box p{ margin-bottom:14px; }
.compliance-box p:last-child{ margin-bottom:0; }
.compliance-box strong{ color:var(--gold-bright); }
.cta-band{ text-align:center; padding:100px 0; position:relative; }
.cta-band h2{ font-size:2.3rem; margin-bottom:18px; }
.cta-band p{ color:var(--parchment-dim); margin-bottom:36px; }
footer{ background:var(--black-2); border-top:1px solid var(--line); padding:56px 0 30px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:40px; }
.footer-brand{ font-family:'Cinzel',serif; color:var(--gold-bright); font-size:1.1rem; margin-bottom:14px; letter-spacing:0.06em;}
.footer-grid p{ color:var(--parchment-dim); font-size:0.9rem; }
.footer-col h5{ font-family:'Cinzel',serif; font-size:0.75rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:16px; }
.footer-col ul{ list-style:none; }
.footer-col li{ margin-bottom:10px; }
.footer-col a{ color:var(--parchment-dim); font-size:0.92rem; transition:color .2s; }
.footer-col a:hover{ color:var(--gold-bright); }
.footer-bottom{ border-top:1px solid var(--line); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.78rem; color:var(--parchment-dim); opacity:0.7; }
/* ===== CART DRAWER ===== */
.overlay{
position:fixed; inset:0; background:rgba(6,5,3,0.7); z-index:90;
opacity:0; pointer-events:none; transition:opacity .3s;
}
.overlay.show{ opacity:1; pointer-events:auto; }
.drawer{
position:fixed; top:0; right:0; height:100%; width:420px; max-width:92vw;
background:var(--black-2); border-left:1px solid var(--gold-dim);
z-index:100; transform:translateX(100%); transition:transform .35s ease;
display:flex; flex-direction:column;
}
.drawer.open{ transform:translateX(0); }
.drawer-head{ display:flex; align-items:center; justify-content:space-between; padding:26px 26px 20px; border-bottom:1px solid var(--line); }
.drawer-head h3{ font-size:1.15rem; }
.drawer-close{ font-size:1.4rem; color:var(--parchment-dim); line-height:1; padding:4px; }
.drawer-close:hover{ color:var(--gold-bright); }
.drawer-items{ flex:1; overflow-y:auto; padding:20px 26px; }
.drawer-empty{ text-align:center; padding:60px 20px; color:var(--parchment-dim); }
.drawer-empty .blackletter{ font-size:1.8rem; color:var(--gold-dim); display:block; margin-bottom:14px; }
.cart-item{ display:flex; gap:14px; padding:18px 0; border-bottom:1px solid var(--line); }
.cart-item .glyph{ font-family:'UnifrakturMaguntia', cursive; font-size:1.6rem; color:var(--blood-bright); width:34px; text-align:center; flex-shrink:0; }
.cart-item-body{ flex:1; }
.cart-item-body h4{ font-family:'Cinzel',serif; font-size:0.95rem; color:var(--gold-bright); margin-bottom:4px; }
.cart-item-variant{ font-family:'EB Garamond', serif; font-size:0.82rem; color:var(--parchment-dim); font-weight:normal; }
.cart-item-price{ font-size:0.86rem; color:var(--parchment-dim); margin-bottom:10px; }
.qty-row{ display:flex; align-items:center; gap:10px; }
.qty-btn{ width:24px; height:24px; border:1px solid var(--gold-dim); color:var(--gold-bright); font-size:0.9rem; display:flex; align-items:center; justify-content:center; }
.qty-btn:hover{ background:var(--gold-dim); color:var(--black); }
.qty-val{ font-family:'Cinzel',serif; font-size:0.9rem; min-width:18px; text-align:center; }
.remove-btn{ margin-left:auto; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--blood-bright); }
.remove-btn:hover{ text-decoration:underline; }
.drawer-foot{ padding:22px 26px 28px; border-top:1px solid var(--line); }
.drawer-line{ display:flex; justify-content:space-between; font-size:0.9rem; color:var(--parchment-dim); margin-bottom:8px; }
.ship-away{ text-align:center; font-size:0.8rem; color:var(--gold-bright); margin:-6px 0 14px; min-height:1em; }
.drawer-subtotal{ display:flex; justify-content:space-between; font-family:'Cinzel',serif; font-size:1.05rem; color:var(--gold-bright); margin-bottom:18px; }
.drawer-foot .btn{ width:100%; }
.drawer-foot p.note{ text-align:center; font-size:0.72rem; color:var(--parchment-dim); margin-top:14px; letter-spacing:0.04em; }
/* ===== CHECKOUT MODAL ===== */
.modal-overlay{
position:fixed; inset:0; background:rgba(6,5,3,0.85); z-index:150;
display:none; align-items:flex-start; justify-content:center;
padding:60px 20px; overflow-y:auto;
}
.modal-overlay.show{ display:flex; }
.modal{
max-width:520px; width:100%; background:var(--black-2);
border:1px solid var(--gold-dim); padding:40px;
animation:riseIn .4s ease;
}
.modal h2{ font-size:1.5rem; margin-bottom:8px; text-align:center; }
.modal .sub{ text-align:center; color:var(--parchment-dim); font-size:0.92rem; margin-bottom:30px; }
.field{ margin-bottom:18px; }
.field label{ display:block; font-family:'Cinzel',serif; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:8px; }
.field input, .field select{
width:100%; background:var(--black); border:1px solid var(--line); color:var(--parchment);
padding:12px 14px; font-family:'EB Garamond', serif; font-size:1rem;
}
.field input:focus, .field select:focus{ outline:1px solid var(--gold); border-color:var(--gold); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.order-summary{ background:var(--black); border:1px solid var(--line); padding:18px; margin-bottom:24px; font-size:0.9rem; }
.order-summary .line{ display:flex; justify-content:space-between; padding:6px 0; color:var(--parchment-dim); }
.order-summary .line.total{ color:var(--gold-bright); font-family:'Cinzel',serif; border-top:1px solid var(--line); margin-top:8px; padding-top:12px; }
.modal .btn{ width:100%; margin-top:6px; }
.modal-close-x{ position:absolute; top:18px; right:22px; font-size:1.3rem; color:var(--parchment-dim); }
.modal{ position:relative; }
.modal-close-x:hover{ color:var(--gold-bright); }
.checkout-note{ text-align:center; font-size:0.72rem; color:var(--gold-dim); margin-top:16px; letter-spacing:0.04em; }
.confirm-body{ text-align:center; }
.confirm-body .blackletter{ font-size:2rem; color:var(--gold-bright); display:block; margin-bottom:16px; }
.confirm-body p{ color:var(--parchment-dim); margin-bottom:8px; }
.confirm-order-id{ font-family:'Cinzel',serif; color:var(--gold-bright); font-size:1.1rem; margin:18px 0; }
.toast{
position:fixed; bottom:30px; left:50%; transform:translateX(-50%) translateY(20px);
background:var(--black-2); border:1px solid var(--gold); color:var(--gold-bright);
padding:14px 26px; font-family:'Cinzel',serif; font-size:0.85rem; letter-spacing:0.06em;
z-index:300; opacity:0; pointer-events:none; transition:all .3s;
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
@media (max-width: 860px){
.navlinks{ display:none; }
.proof .wrap{ grid-template-columns:1fr; gap:40px; }
.grid{ grid-template-columns:1fr 1fr; }
.ontario-grid{ grid-template-columns:1fr; gap:36px; }
.footer-grid{ grid-template-columns:1fr 1fr; gap:30px; }
.hero{ padding:56px 0 40px; }
section{ padding:64px 0; }
.field-row{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
.grid{ grid-template-columns:1fr; }
.footer-grid{ grid-template-columns:1fr; }
.footer-bottom{ flex-direction:column; }
h1, .section-head h2{ font-size:1.6rem; }
.hero p.lede{ font-size:1.02rem; }
.drawer{ width:100%; max-width:100vw; }
.modal{ padding:30px 24px; }
}
@media (prefers-reduced-motion: reduce){
html{ scroll-behavior:auto; }
*{ transition:none !important; }
}
/* verification */
.hero-logo-row{ display:flex; align-items:center; justify-content:center; gap:clamp(8px,3vw,36px); }
.hero-logo-row .logo-link{ flex:0 1 560px; min-width:0; }
.hero-logo-row .hero-logo{ width:100%; max-width:none; }
.shield{ flex:0 0 auto; width:clamp(46px,9vw,110px); height:auto; filter: drop-shadow(0 0 18px rgba(201,162,74,0.25)); }
.verify-section{ padding:70px 0; border-top:1px solid var(--line); }
.verify-section h2{ font-family:'Cinzel',serif; color:var(--gold); text-align:center; letter-spacing:.08em; margin-bottom:10px; }
.verify-section .vs-sub{ text-align:center; color:var(--parchment-dim); max-width:680px; margin:0 auto 34px; }
.verify-steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px; }
.verify-step{ border:1px solid var(--line); background:var(--black-2); padding:22px 20px; }
.verify-step .num{ font-family:'Cinzel',serif; color:var(--gold-bright); font-size:1.6rem; display:block; margin-bottom:6px; }
.verify-step h3{ font-family:'Cinzel',serif; color:var(--parchment); font-size:1rem; margin-bottom:8px; letter-spacing:.05em; }
.verify-step p{ color:var(--parchment-dim); font-size:.95rem; }
.verify-when{ margin-top:28px; border:1px solid var(--line); border-left:3px solid var(--gold); padding:18px 22px; background:var(--black-3); color:var(--parchment-dim); }
.verify-when strong{ color:var(--gold-bright); }
.verify-when ul{ margin:8px 0 0 20px; }
.verify-status{ display:inline-block; padding:3px 10px; border:1px solid var(--line); font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; }
.verify-status.pending{ color:var(--gold-bright); border-color:var(--gold); }
.verify-status.approved{ color:#8fc28f; border-color:var(--green); }
.verify-status.rejected{ color:#e08a8a; border-color:var(--blood-bright); }
.check-row{ display:flex; gap:10px; align-items:flex-start; margin:12px 0; color:var(--parchment-dim); font-size:.92rem; }
.check-row input{ margin-top:4px; accent-color:var(--gold); }
.vq-item{ border:1px solid var(--line); padding:12px 14px; margin-bottom:10px; background:var(--black-3); font-size:.9rem; color:var(--parchment-dim); }
.vq-item .vq-head{ display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; color:var(--parchment); margin-bottom:6px; }
.vq-actions{ margin-top:8px; display:flex; gap:8px; }
.vq-actions button{ background:transparent; border:1px solid var(--gold); color:var(--gold-bright); padding:5px 12px; cursor:pointer; font-family:inherit; }
.vq-actions button.rej{ border-color:var(--blood-bright); color:#e08a8a; }
.etransfer-box{ border:1px solid var(--gold); background:var(--black-3); padding:14px 16px; margin:14px 0; color:var(--parchment-dim); font-size:.92rem; }
.etransfer-box h3{ font-family:'Cinzel',serif; color:var(--gold-bright); font-size:1rem; margin-bottom:8px; letter-spacing:.05em; }
.etransfer-box p{ margin:6px 0; }
.et-email{ color:var(--gold-bright); font-weight:bold; word-break:break-all; }
.et-po{ display:inline-block; font-family:'Cinzel',serif; color:var(--black); background:var(--gold); padding:3px 10px; letter-spacing:.08em; }
.et-warn{ border-left:3px solid var(--blood-bright); padding-left:10px; color:var(--parchment); }

/* ===== APPLE-STYLE REFINEMENT (medieval accents kept) ===== */
:root{
--black:#050505; --black-2:#0f0e0c; --black-3:#171512;
--line:rgba(255,255,255,0.09);
--parchment:#f5f1e6; --parchment-dim:#a9a496;
--radius:22px; --radius-sm:14px;
--ui:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
--ease:cubic-bezier(.28,.11,.32,1);
}
html{ -webkit-font-smoothing:antialiased; }
body{ font-family:var(--ui); font-size:17px; line-height:1.5; letter-spacing:-0.011em; background:#000; }
body::before{ background-image:radial-gradient(ellipse 70% 40% at 50% 0%, rgba(201,162,74,0.10), transparent 70%); }
h1,h2,h3,.display{ font-family:'Cinzel',serif; font-weight:600; letter-spacing:-0.01em; color:var(--parchment); }
.blackletter{ color:var(--gold-bright); }
/* nav: frosted glass */
nav{ background:rgba(8,8,8,0.72); backdrop-filter:saturate(180%) blur(22px); -webkit-backdrop-filter:saturate(180%) blur(22px); border-bottom:1px solid rgba(255,255,255,0.07); }
nav .wrap{ height:56px; }
.brand{ font-family:'UnifrakturMaguntia',cursive; font-weight:400; font-size:1.5rem; letter-spacing:0; color:var(--gold-bright); }
.navlinks{ gap:30px; font-size:0.8rem; letter-spacing:-0.005em; text-transform:none; }
.navlinks a{ color:rgba(245,241,230,0.72); }
.navlinks a:hover{ color:#fff; }
.cart-btn,.sound-btn,.lang-btn{ border:none; background:rgba(255,255,255,0.07); border-radius:999px; color:var(--parchment); transition:background .3s var(--ease), transform .3s var(--ease); }
.cart-btn{ padding:8px 16px; font-size:0.8rem; letter-spacing:0; text-transform:none; }
.sound-btn,.lang-btn{ width:34px; height:34px; font-size:0.78rem; }
.cart-btn:hover,.sound-btn:hover,.lang-btn:hover{ background:rgba(255,255,255,0.16); color:#fff; }
.cart-count{ background:var(--gold); color:#111; font-family:var(--ui); font-weight:600; }
/* hero */
.hero{ padding:110px 0 80px; }
.hero-eyebrow{ font-family:var(--ui); font-size:0.8rem; letter-spacing:0.18em; color:var(--gold); font-weight:500; margin-bottom:26px; }
.hero-logo{ max-width:620px; filter:drop-shadow(0 10px 60px rgba(201,162,74,0.22)); }
.hero p.lede{ font-style:normal; font-size:1.35rem; line-height:1.4; max-width:620px; color:var(--parchment-dim); font-weight:400; margin:28px auto 40px; }
/* buttons: pills */
.btn{ font-family:var(--ui); font-size:1rem; font-weight:500; letter-spacing:-0.01em; text-transform:none; padding:13px 30px; border-radius:999px; border:1px solid rgba(255,255,255,0.22); color:var(--parchment); background:transparent; transition:all .3s var(--ease); }
.btn:hover{ background:rgba(255,255,255,0.1); color:#fff; }
.btn.primary{ background:linear-gradient(180deg,#e9cd82,#c9a24a); border-color:transparent; color:#17120a; }
.btn.primary:hover{ background:linear-gradient(180deg,#f3dc99,#d6b05a); color:#17120a; transform:scale(1.02); }
.btn:disabled:hover{ background:transparent; color:var(--parchment); }
.btn.primary:disabled:hover{ background:linear-gradient(180deg,#e9cd82,#c9a24a); color:#17120a; transform:none; }
.disclaimer-strip{ background:#0a0a0a; border:none; padding:18px 0; }
.disclaimer-strip p{ font-family:var(--ui); font-size:0.72rem; letter-spacing:0.04em; }
.disclaimer-strip strong{ color:var(--gold); }
/* sections */
section{ padding:120px 0; }
.shop{ background:#0a0a09; }
.ontario{ background:#0a0a09; }
.section-head{ max-width:720px; margin-bottom:64px; }
.section-eyebrow{ font-family:var(--ui); font-size:0.8rem; letter-spacing:0.16em; font-weight:500; color:var(--gold); }
.section-head h2{ font-size:3rem; line-height:1.08; margin-bottom:18px; }
.section-head p{ font-size:1.2rem; color:var(--parchment-dim); }
.sword-divider{ margin:72px 0; opacity:0.7; }
.sword-divider .line{ background:linear-gradient(90deg,transparent,rgba(201,162,74,0.5)); }
.sword-divider .line.right{ background:linear-gradient(90deg,rgba(201,162,74,0.5),transparent); }
/* filter pills */
.cat-pill{ font-family:var(--ui); font-size:0.85rem; letter-spacing:-0.005em; text-transform:none; border:none; background:rgba(255,255,255,0.07); color:var(--parchment); border-radius:999px; padding:8px 18px; }
.cat-pill:hover{ background:rgba(255,255,255,0.14); color:#fff; }
.cat-pill.active{ background:var(--parchment); color:#111; }
/* product cards */
.grid{ gap:20px; background:none; border:none; }
.card{ background:var(--black-2); border:1px solid rgba(255,255,255,0.06); border-radius:var(--radius); padding:34px 28px 28px; transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s; }
.card:hover{ background:var(--black-2); transform:translateY(-4px); border-color:rgba(201,162,74,0.35); box-shadow:0 24px 60px -24px rgba(201,162,74,0.25); }
.card .glyph{ color:var(--gold); font-size:2.8rem; }
.card h3{ font-family:var(--ui); font-size:1.4rem; font-weight:600; letter-spacing:-0.02em; }
.card .tag{ font-family:var(--ui); font-size:0.7rem; letter-spacing:0.04em; text-transform:none; border:none; background:rgba(201,162,74,0.14); color:var(--gold-bright); border-radius:999px; padding:3px 11px; }
.card p.desc{ color:var(--parchment-dim); font-size:0.95rem; }
.variant-select,.field input,.field select{ border-radius:var(--radius-sm); border:1px solid rgba(255,255,255,0.12); background:rgba(255,255,255,0.04); font-family:var(--ui); }
.variant-select{ padding:11px 12px; font-size:0.9rem; }
.variant-select:focus,.field input:focus,.field select:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 4px rgba(201,162,74,0.18); }
.coa-link{ font-family:var(--ui); font-size:0.8rem; letter-spacing:0; text-transform:none; border:none; color:#8fd08f; }
.coa-link:hover{ text-decoration:underline; opacity:1; }
.price{ font-family:var(--ui); font-weight:600; font-size:1.05rem; color:var(--parchment); }
.add-btn{ font-family:var(--ui); font-size:0.85rem; font-weight:500; letter-spacing:0; text-transform:none; border-radius:999px; background:var(--gold); border:none; color:#17120a; padding:9px 18px; transition:all .3s var(--ease); }
.add-btn:hover{ background:var(--gold-bright); transform:scale(1.04); }
.add-btn.added{ background:#3d8b5a; color:#fff; }
/* proof / ontario / verify */
.proof-art,.verify-step,.compliance-box,.verify-when,.etransfer-box,.vq-item,.order-summary{ border-radius:var(--radius); }
.proof-art{ background:var(--black-2); border:1px solid rgba(255,255,255,0.06); padding:64px 44px; }
.proof-num,.ontario-grid .item .num,.verify-step .num{ color:var(--gold); font-family:var(--ui); font-weight:600; }
.proof-list h4,.verify-step h3,.ontario-grid .item h3{ font-family:var(--ui); font-weight:600; letter-spacing:-0.015em; color:var(--parchment); }
.proof-list li{ border-color:rgba(255,255,255,0.08); }
.ontario-grid .item{ background:var(--black-2); border:1px solid rgba(255,255,255,0.06); border-radius:var(--radius); padding:40px 28px; }
.ontario-grid .item .num{ font-size:2.4rem; }
.verify-section{ border-top:none; }
.verify-section h2{ font-family:'Cinzel',serif; color:var(--parchment); font-size:2.6rem; letter-spacing:-0.01em; }
.verify-step{ border:1px solid rgba(255,255,255,0.06); background:var(--black-2); padding:28px 24px; }
.verify-when{ border:1px solid rgba(255,255,255,0.07); border-left:1px solid rgba(255,255,255,0.07); background:var(--black-2); }
.compliance{ border:none; }
.compliance h2{ font-size:2rem; }
.compliance-box{ background:var(--black-2); border:1px solid rgba(255,255,255,0.06); padding:40px; }
.cta-band{ padding:140px 0; }
.cta-band h2{ font-size:3.2rem; line-height:1.08; }
footer{ background:#0a0a09; border-top:1px solid rgba(255,255,255,0.07); }
.footer-brand{ font-family:'UnifrakturMaguntia',cursive; font-weight:400; font-size:1.6rem; letter-spacing:0; }
.footer-col h5{ font-family:var(--ui); font-size:0.78rem; letter-spacing:0.02em; text-transform:none; color:var(--parchment); font-weight:600; }
.footer-col a{ color:var(--parchment-dim); }
.footer-col a:hover{ color:#fff; }
.footer-bottom{ border-color:rgba(255,255,255,0.07); }
/* gate, drawer, modals */
.gate{ background:rgba(0,0,0,0.78); backdrop-filter:blur(30px) saturate(160%); -webkit-backdrop-filter:blur(30px) saturate(160%); }
.gate-card,.gate-deny,.modal{ border-radius:28px; border:1px solid rgba(255,255,255,0.1); background:rgba(22,20,17,0.9); box-shadow:0 40px 100px -30px rgba(0,0,0,0.8); }
.gate-card .blackletter{ font-size:2.6rem; }
.gate-card p{ font-size:1rem; }
.gate-note{ font-family:var(--ui); letter-spacing:0.06em; color:var(--parchment-dim); }
.modal-overlay,.overlay{ background:rgba(0,0,0,0.55); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.drawer{ background:rgba(18,16,13,0.92); backdrop-filter:blur(30px); -webkit-backdrop-filter:blur(30px); border-left:1px solid rgba(255,255,255,0.08); border-radius:28px 0 0 28px; transition:transform .5s var(--ease); }
.drawer-head,.drawer-foot,.cart-item{ border-color:rgba(255,255,255,0.08); }
.drawer-head h3,.drawer-subtotal,.confirm-order-id,.order-summary .line.total{ font-family:var(--ui); font-weight:600; color:var(--parchment); }
.cart-item-body h4{ font-family:var(--ui); font-weight:600; color:var(--parchment); }
.cart-item .glyph{ color:var(--gold); }
.qty-btn{ border:none; background:rgba(255,255,255,0.1); border-radius:50%; color:var(--parchment); width:28px; height:28px; }
.qty-btn:hover{ background:rgba(255,255,255,0.2); color:#fff; }
.field label,.proof-list h4{ font-family:var(--ui); }
.field label{ font-size:0.75rem; letter-spacing:0.02em; text-transform:none; color:var(--parchment-dim); font-weight:500; }
.order-summary{ background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); }
.etransfer-box{ background:rgba(201,162,74,0.07); border:1px solid rgba(201,162,74,0.35); }
.etransfer-box h3{ font-family:var(--ui); font-weight:600; letter-spacing:-0.01em; }
.et-po{ font-family:var(--ui); font-weight:600; border-radius:8px; background:var(--gold); }
.verify-status{ border-radius:999px; font-family:var(--ui); letter-spacing:0.03em; text-transform:none; }
.vq-item{ border-radius:var(--radius-sm); }
.toast{ font-family:var(--ui); letter-spacing:0; border:none; border-radius:999px; background:rgba(40,36,30,0.92); backdrop-filter:blur(20px); color:var(--parchment); box-shadow:0 20px 50px -10px rgba(0,0,0,0.6); }
/* gentle reveal */
@keyframes riseIn{ from{opacity:0; transform:translateY(18px) scale(.985);} to{opacity:1; transform:none;} }
@media (max-width:860px){
.section-head h2,.cta-band h2{ font-size:2.1rem; }
.hero{ padding:64px 0 48px; }
section{ padding:72px 0; }
.drawer{ border-radius:0; }
}
.brand{ white-space:nowrap; }
@media (max-width:560px){
nav .wrap{ padding:0 14px; }
.brand{ font-size:1.25rem; gap:6px; }
.brand .sword-mark{ display:none; }
.nav-right{ gap:6px; }
.sound-btn{ display:none; }
.cart-btn{ padding:7px 12px; }
.hero p.lede{ font-size:1.1rem; }
}

/* ===== GOLD BAR PRODUCT LETTERS ===== */
.card .glyph, .cart-item .glyph{
font-family:'UnifrakturMaguntia',cursive; font-weight:400; line-height:1;
background:linear-gradient(180deg,#fff3c4 0%,#f0d27a 18%,#c9a24a 42%,#8b6a2b 50%,#d9b55a 62%,#f6e2a0 80%,#a67c2e 100%);
-webkit-background-clip:text; background-clip:text;
-webkit-text-fill-color:transparent; color:transparent;
position:relative; display:inline-block; width:fit-content;
filter:drop-shadow(0 0 6px rgba(240,210,122,0.55)) drop-shadow(0 0 18px rgba(201,162,74,0.45)) drop-shadow(0 0 34px rgba(201,162,74,0.25));
animation:glyphGlow 3.6s ease-in-out infinite;
}
.card .glyph{ font-size:3.6rem; margin-bottom:18px; padding:4px 10px 6px 2px; }
.cart-item .glyph{ font-size:2rem; width:auto; min-width:34px; }
.card:hover .glyph{ animation-duration:1.8s; filter:drop-shadow(0 0 8px rgba(255,230,150,0.8)) drop-shadow(0 0 26px rgba(201,162,74,0.65)) drop-shadow(0 0 50px rgba(201,162,74,0.4)); }
@keyframes glyphGlow{
0%,100%{ filter:drop-shadow(0 0 5px rgba(240,210,122,0.45)) drop-shadow(0 0 16px rgba(201,162,74,0.35)) drop-shadow(0 0 30px rgba(201,162,74,0.2)); }
50%{ filter:drop-shadow(0 0 8px rgba(255,230,150,0.7)) drop-shadow(0 0 24px rgba(201,162,74,0.55)) drop-shadow(0 0 44px rgba(201,162,74,0.32)); }
}
@media (prefers-reduced-motion: reduce){ .card .glyph,.cart-item .glyph{ animation:none !important; } }

/* ===== SUPPLEMENTS SECTION ===== */
#supplements{ background:#000; }
#provisions{ background:#0a0a09; }
#supplements .section-eyebrow, #provisions .section-eyebrow{ color:var(--gold); }
/* Menu bar with eight links: below 1024px there isn't room for them on one line, so they're hidden as on phones;
   from 1024px to 1199px the spacing is tightened so they fit */
@media (max-width:1023px){ .navlinks{ display:none; } }
@media (min-width:1024px) and (max-width:1199px){ .navlinks{ gap:12px; font-size:0.72rem; } .nav-right{ gap:10px; } html[lang^="fr"] .navlinks{ gap:10px; } }
@media (min-width:1200px){ .navlinks{ gap:22px; } .nav-right{ gap:18px; } }
/* French menu labels are longer, so French keeps tighter menu spacing on wide screens too. */
@media (min-width:1200px){ html[lang^="fr"] .navlinks{ gap:16px; font-size:0.75rem; } html[lang^="fr"] .nav-right{ gap:14px; } }

.card{ position:relative; }

.stock-note{ min-height:20px; font-family:var(--ui); font-size:0.82rem; margin-bottom:10px; color:var(--parchment-dim); }
/* ===== CERTIFICATES OF ANALYSIS: the Seal of Purity wax seal (Armory cards) ===== */
.coa-row{ min-height:56px; margin-bottom:12px; }
.coa-seal{ display:inline-flex; align-items:center; gap:12px; text-decoration:none; font-family:var(--ui); line-height:1.3; }
.seal-img{ width:52px; height:52px; flex:0 0 52px; filter:drop-shadow(0 3px 4px rgba(0,0,0,0.5)); transition:transform .35s var(--ease, ease); }
a.coa-seal:hover .seal-img, a.coa-seal:focus-visible .seal-img{ transform:rotate(-12deg) scale(1.07); }
.coa-seal.pending .seal-img{ filter:grayscale(1) brightness(0.75) opacity(0.55); }
.seal-text{ display:flex; flex-direction:column; }
.seal-title{ color:var(--gold-bright); font-size:0.74rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; }
.seal-sub{ font-size:0.82rem; color:#8fd08f; }
a.coa-seal:hover .seal-sub{ text-decoration:underline; }
.coa-seal.pending .seal-sub, .seal-meta{ color:var(--parchment-dim); font-size:0.78rem; }
.seal-meta-part{ white-space:nowrap; }
.stock-note.ok{ color:#8fd08f; }
.stock-note.low{ color:#f0b35a; font-weight:600; }
.stock-note.out{ color:#ff4d4d; font-weight:700; }
.card.soldout{ opacity:0.6; }
.card.soldout .glyph{ filter:grayscale(1) opacity(.6); animation:none; }
.add-btn:disabled{ background:rgba(255,77,77,0.16); color:#ff5a5a; font-weight:600; cursor:not-allowed; transform:none; }
.add-btn.maxed{ background:rgba(240,179,90,0.16); color:#f0b35a; }
.cart-item-stock{ font-family:var(--ui); font-size:0.78rem; color:#8fd08f; margin:-6px 0 8px; }
.cart-item-stock.low{ color:#f0b35a; font-weight:600; }
.cart-item-stock.none{ color:#ff5a5a; font-weight:600; }

.terms-box h3{ font-family:var(--ui); font-size:1.05rem; font-weight:600; letter-spacing:-0.01em; color:var(--parchment); margin:26px 0 6px; }
.terms-box h3:first-child{ margin-top:0; }
.terms-box .terms-ack{ margin-top:28px; padding-top:20px; border-top:1px solid rgba(255,255,255,0.08); font-style:italic; }
.nr-note{ color:var(--parchment-dim); }
.et-po, .confirm-body p.et-po, .modal .et-po{ color:#000 !important; font-weight:700; }

.about-grid{ grid-template-columns:repeat(2,1fr); gap:20px; text-align:left; }
.about-grid .item{ padding:36px 32px; }
.about-grid .item h3{ font-size:1.25rem; margin-bottom:12px; }
.about-grid .item p{ font-size:1rem; line-height:1.6; }
@media (max-width:860px){ .about-grid{ grid-template-columns:1fr; } }
.check-row a{ color:var(--gold-bright); text-decoration:underline; }
.contact-email{ color:var(--gold-bright); text-decoration:underline; }

/* ===== CAMELOT LABS LOGO (The Keep) ===== */
.brand, .footer-brand{ font-family:'Grenze Gotisch','UnifrakturMaguntia',cursive; font-weight:700; }
.brand .brand-mark{ width:28px; height:auto; flex-shrink:0; }
.hero-logo{ height:auto; }
@media (max-width:560px){ .brand .brand-mark{ width:24px; } }

/* ===== EASIER-TO-READ LETTERING ===== */
.blackletter, .card .glyph, .cart-item .glyph{ font-family:'Grenze Gotisch','UnifrakturMaguntia',cursive; font-weight:700; }

/* ===== HERO CRESTS (The Keep + Puritas Rege Digna) ===== */
.hero-logo-row .logo-link{ flex-basis:780px; }
/* Phones: the two crests sit side by side above the name (stacked logo in index.html) */
@media (max-width:560px){ .hero-logo-row .logo-link{ flex-basis:270px; } }

/* ===== PRODUCT SEARCH (hero) ===== */
.site-search{ max-width:560px; margin:0 auto 30px; text-align:left; }
.search-box{ position:relative; }
.search-icon{ position:absolute; left:18px; top:50%; width:18px; height:18px; transform:translateY(-50%); fill:none; stroke:var(--parchment-dim); stroke-width:2; stroke-linecap:round; pointer-events:none; }
#searchInput{ width:100%; font-family:var(--ui); font-size:1rem; color:var(--parchment); background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:999px; padding:14px 20px 14px 48px; transition:border-color .2s, box-shadow .2s; -webkit-appearance:none; appearance:none; }
#searchInput::placeholder{ color:var(--parchment-dim); opacity:0.85; }
#searchInput:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 4px rgba(201,162,74,0.18); }
#searchInput::-webkit-search-cancel-button{ -webkit-appearance:none; appearance:none; width:14px; height:14px; cursor:pointer; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 2l10 10M12 2L2 12' stroke='%23cfc3a0' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.search-results{ list-style:none; margin:10px 0 0; padding:6px; background:var(--black-2); border:1px solid rgba(255,255,255,0.08); border-radius:var(--radius-sm); box-shadow:0 24px 60px -24px rgba(0,0,0,0.8); }
.search-results[hidden]{ display:none; }
.search-result{ display:flex; align-items:center; gap:14px; padding:10px 12px; border-radius:10px; cursor:pointer; font-family:var(--ui); }
.search-result.active, .search-result:hover{ background:rgba(201,162,74,0.12); }
.sr-glyph{ flex:0 0 34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(201,162,74,0.14); color:var(--gold-bright); font-family:'Grenze Gotisch','UnifrakturMaguntia',cursive; font-weight:700; font-size:1.05rem; }
.sr-text{ flex:1; min-width:0; }
.sr-name{ display:block; color:var(--parchment); font-size:0.98rem; font-weight:600; }
.sr-meta{ display:block; color:var(--parchment-dim); font-size:0.8rem; }
.search-note{ padding:10px 12px; color:var(--parchment-dim); font-family:var(--ui); font-size:0.88rem; }
.card.search-hit{ border-color:var(--gold) !important; box-shadow:0 0 0 2px var(--gold), 0 24px 60px -24px rgba(201,162,74,0.45) !important; }

/* ===== BACTERIOSTATIC WATER REMINDERS ===== */
.bac-note{ display:flex; align-items:center; justify-content:space-between; gap:14px 22px; flex-wrap:wrap; margin:0 0 28px; padding:16px 20px; border:1px solid rgba(201,162,74,0.35); background:rgba(201,162,74,0.07); border-radius:var(--radius-sm); font-family:var(--ui); }
.bac-note p{ margin:0; flex:1 1 320px; color:var(--parchment); font-size:0.95rem; line-height:1.5; }
.bac-note strong{ color:var(--gold-bright); font-weight:600; }
.bac-note .btn{ padding:9px 20px; font-size:0.9rem; white-space:nowrap; }
.bac-reminder{ margin:0 0 14px; padding:12px 14px; border:1px solid rgba(201,162,74,0.35); background:rgba(201,162,74,0.08); border-radius:var(--radius-sm); font-family:var(--ui); font-size:0.86rem; line-height:1.45; color:var(--parchment); }
.bac-reminder[hidden]{ display:none; }
.bac-reminder p{ margin:0 0 10px; }
.bac-reminder strong{ color:var(--gold-bright); font-weight:600; }
.bac-add{ display:flex; gap:8px; flex-wrap:wrap; }
.drawer-foot .bac-reminder .btn, .bac-reminder .btn{ width:auto; padding:7px 14px; font-size:0.82rem; }

/* ===== FREE SHIPPING NOTE (HERO) ===== */
.hero p.hero-perk{ display:flex; align-items:center; justify-content:center; gap:10px; width:fit-content; max-width:100%; margin:14px auto 0; padding:9px 20px; border:1px solid rgba(201,162,74,0.35); background:rgba(201,162,74,0.07); border-radius:999px; font-family:var(--ui); font-size:0.92rem; font-style:normal; font-weight:400; line-height:1.4; letter-spacing:0; color:var(--parchment); text-align:left; }
.hero-perk svg{ flex:none; width:18px; height:18px; fill:none; stroke:var(--gold-bright); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:560px){ .hero p.hero-perk{ border-radius:14px; padding:9px 16px; font-size:0.86rem; } }

/* ===== COMING SOON (sections not on sale yet) ===== */
section.is-coming-soon .category-filters, section.is-coming-soon .checkout-note{ display:none; }
.coming-soon{ grid-column:1 / -1; text-align:center; padding:64px 24px 60px; border:1px solid rgba(201,162,74,0.3); border-radius:var(--radius); background:radial-gradient(ellipse at 50% 0%, rgba(201,162,74,0.10), rgba(201,162,74,0.02) 70%), var(--black-2); }
.coming-soon .cs-orn{ display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:18px; }
.coming-soon .cs-orn i{ width:56px; height:1px; background:linear-gradient(90deg, transparent, var(--gold)); }
.coming-soon .cs-orn i:last-child{ background:linear-gradient(90deg, var(--gold), transparent); }
.coming-soon .cs-orn b{ width:8px; height:8px; background:var(--gold); transform:rotate(45deg); }
.coming-soon h3{ font-family:'UnifrakturMaguntia', cursive; font-weight:400; font-size:3rem; line-height:1.1; letter-spacing:0; color:var(--gold-bright); margin:0 0 14px; }
.coming-soon p{ max-width:560px; margin:0 auto; text-wrap:balance; font-family:var(--ui); font-size:1.02rem; line-height:1.5; color:var(--parchment-dim); }
@media (max-width:560px){ .coming-soon{ padding:48px 20px 44px; } .coming-soon h3{ font-size:2.4rem; } }

/* ===== FREE SHIPPING: A KNIGHT SLASHES THE SHIPPING FEE ===== */
#cartDrawer{ overflow:hidden; } /* the knight walks in from the cart's left edge */
.ship-cut{ display:inline-flex; align-items:baseline; gap:8px; white-space:nowrap; }
.ship-was{ position:relative; display:inline-block; }
.ship-was s{ text-decoration:none; color:var(--parchment-dim); opacity:0.6; }
.ship-fx{ position:absolute; left:0; top:0; width:0; height:0; pointer-events:none; }
.ship-line{ position:absolute; height:2.5px; margin-top:-1.25px; border-radius:2px; background:#e0453a; box-shadow:0 0 6px rgba(224,69,58,0.6); transform-origin:0 50%; transform:rotate(var(--cut-angle, 25deg)); }
.ship-trail{ position:absolute; overflow:visible; opacity:0; }
.ship-trail path{ fill:none; stroke:rgba(255,238,200,0.7); stroke-width:2; stroke-linecap:round; }
.ship-knight{ position:absolute; width:36px; height:46px; opacity:0; }
.knight-walk, .knight-bob{ position:absolute; left:0; top:0; width:36px; height:46px; }
.knight-body{ position:absolute; left:0; top:0; overflow:visible; }
.knight-body .leg-back{ transform-box:view-box; transform-origin:17.6px 34px; }
.knight-body .leg-front{ transform-box:view-box; transform-origin:21.6px 34px; }
.ship-arm{ position:absolute; left:21px; top:18px; width:0; height:0; transform:rotate(-72deg); }
.ship-sword{ position:absolute; left:0; top:-6px; overflow:visible; filter:drop-shadow(0 0 3px rgba(230,200,120,0.45)); }
.knight-shine{ position:absolute; left:24px; top:1px; overflow:visible; opacity:0; }
.ship-free{ display:inline-block; color:var(--gold-bright); font-weight:600; }
.ship-cut.play .ship-knight{ animation:knightLife 2.9s var(--cut-delay, 0s) both; }
.ship-cut.play .knight-walk{ animation:knightWalk 1.45s cubic-bezier(0.3, 0.2, 0.55, 1) var(--cut-delay, 0s) both; }
.ship-cut.play .knight-bob{ animation:knightBob 0.18125s ease-in-out var(--cut-delay, 0s) 8 alternate both; }
.ship-cut.play .leg-front{ animation:legFront 0.3625s linear var(--cut-delay, 0s) 4 both; }
.ship-cut.play .leg-back{ animation:legBack 0.3625s linear var(--cut-delay, 0s) 4 both; }
.ship-cut.play .ship-arm{ animation:knightArm 2.9s var(--cut-delay, 0s) both; }
.ship-cut.play .knight-shine{ animation:knightShine 2.9s var(--cut-delay, 0s) both; }
.ship-cut.play .ship-trail{ animation:shipTrail 0.32s ease-out calc(var(--cut-delay, 0s) + 1.8s) both; }
.ship-cut.play .ship-line{ animation:shipLine 0.07s linear calc(var(--cut-delay, 0s) + 1.82s) both; }
.ship-cut.play .ship-was s{ animation:shipDim 0.25s ease-out calc(var(--cut-delay, 0s) + 1.82s) both; }
.ship-cut.play .ship-free{ animation:shipFree 0.45s cubic-bezier(0.2, 1.5, 0.4, 1) calc(var(--cut-delay, 0s) + 1.86s) both; }
@keyframes knightLife{ 0%{ opacity:0; } 3%{ opacity:1; } 88%{ opacity:1; } 100%{ opacity:0; } }
@keyframes knightWalk{ from{ transform:translateX(calc(var(--walk, 300px) * -1)); } to{ transform:none; } }
@keyframes knightBob{ from{ transform:translateY(0); } to{ transform:translateY(-1.5px); } }
@keyframes legFront{ 0%{ transform:rotate(0deg); } 25%{ transform:rotate(-24deg); } 75%{ transform:rotate(24deg); } 100%{ transform:rotate(0deg); } }
@keyframes legBack{ 0%{ transform:rotate(0deg); } 25%{ transform:rotate(24deg); } 75%{ transform:rotate(-24deg); } 100%{ transform:rotate(0deg); } }
@keyframes knightArm{
0%{ transform:rotate(-72deg); }
48%{ transform:rotate(-72deg); animation-timing-function:ease-in-out; }
57%{ transform:rotate(-115deg); animation-timing-function:cubic-bezier(0.55, 0, 1, 0.45); }
62.8%{ transform:rotate(calc(var(--cut-angle, 25deg) + 6deg)); animation-timing-function:ease-out; }
65.5%{ transform:rotate(var(--cut-angle, 25deg)); }
76%{ transform:rotate(var(--cut-angle, 25deg)); animation-timing-function:ease-in-out; }
86%{ transform:rotate(-80deg); }
100%{ transform:rotate(-80deg); }
}
@keyframes knightShine{ 0%, 47%{ opacity:0; transform:scale(0); } 51%{ opacity:1; transform:scale(1) rotate(45deg); } 56%{ opacity:0; transform:scale(0) rotate(90deg); } 80%{ opacity:0; transform:scale(0); } 84%{ opacity:1; transform:scale(1.2) rotate(45deg); } 89%, 100%{ opacity:0; transform:scale(0) rotate(90deg); } }
@keyframes shipTrail{ 0%{ opacity:0; } 12%{ opacity:1; } 100%{ opacity:0; } }
@keyframes shipLine{ from{ transform:rotate(var(--cut-angle, 25deg)) scaleX(0); } to{ transform:rotate(var(--cut-angle, 25deg)) scaleX(1); } }
@keyframes shipDim{ from{ opacity:1; color:var(--parchment); } to{ opacity:0.6; color:var(--parchment-dim); } }
@keyframes shipFree{ from{ opacity:0; transform:scale(0.3); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .ship-cut.play .ship-knight, .ship-cut.play .knight-walk, .ship-cut.play .knight-bob, .ship-cut.play .leg-front, .ship-cut.play .leg-back, .ship-cut.play .ship-arm, .ship-cut.play .knight-shine, .ship-cut.play .ship-trail, .ship-cut.play .ship-line, .ship-cut.play .ship-was s, .ship-cut.play .ship-free{ animation:none; } }

/* ===== GRAND OPENING SALE: HERO BANNER WITH COUNTDOWN, CART LINE ===== */
.sale-banner[hidden], .drawer-line[hidden], .sale-hint[hidden]{ display:none !important; }
.sale-banner{ width:fit-content; max-width:min(640px, 100%); margin:26px auto 28px; padding:16px 26px 18px; border:1px solid rgba(156,31,31,0.7); border-radius:22px; background:linear-gradient(180deg, rgba(110,20,20,0.55), rgba(20,16,10,0.8)); box-shadow:inset 0 0 0 1px rgba(201,162,74,0.18), 0 18px 50px -20px rgba(156,31,31,0.65); text-align:center; }
.sale-kicker{ font-family:'Cinzel', serif; font-size:0.78rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-bright); }
.sale-deal{ font-family:'Cinzel', serif; font-size:1.4rem; line-height:1.3; color:var(--parchment); margin-top:4px; }
.sale-how{ max-width:520px; margin:6px auto 0; font-family:var(--ui); font-size:0.88rem; line-height:1.5; color:var(--parchment); }
.sale-dates{ font-family:var(--ui); font-size:0.86rem; color:var(--gold-bright); margin-top:12px; }
.sale-gift{ max-width:520px; margin:8px auto 0; padding:6px 12px; border:1px dashed rgba(201,162,74,0.5); border-radius:10px; font-family:var(--ui); font-size:0.88rem; font-weight:600; line-height:1.45; color:var(--gold-bright); }
.sale-hint + .sale-hint{ margin-top:-10px; }
.sale-countdown{ display:flex; align-items:flex-end; justify-content:center; gap:10px; margin-top:12px; font-family:var(--ui); }
.sale-label{ font-size:0.8rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-bright); margin-right:4px; padding-bottom:10px; }
.cd{ display:flex; flex-direction:column; align-items:center; min-width:54px; padding:6px 8px 5px; border:1px solid rgba(201,162,74,0.35); border-radius:12px; background:rgba(0,0,0,0.35); }
.cd b{ font-size:1.45rem; font-weight:600; line-height:1.15; color:var(--parchment); font-variant-numeric:tabular-nums; }
.cd small{ font-size:0.64rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--parchment-dim); }
.drawer-line.sale-line, .order-summary .line.sale{ color:var(--gold-bright); }
.drawer-line.sale-line span:first-child{ padding-right:12px; }
.sale-hint{ text-align:center; font-size:0.8rem; color:var(--parchment-dim); margin:-8px 0 14px; }
@media (max-width:560px){
.sale-banner{ padding:14px 14px 16px; border-radius:18px; }
.sale-deal{ font-size:1.1rem; }
.sale-how{ font-size:0.84rem; }
.sale-countdown{ flex-wrap:wrap; gap:6px; }
.sale-label{ width:100%; margin:0 0 2px; padding:0; }
.cd{ min-width:48px; }
.cd b{ font-size:1.2rem; }
}
/* ===== COA VIEWER (a certificate opens over the Armory, with a way back) ===== */
.coa-overlay{ padding:24px; align-items:stretch; overflow:hidden; }
.coa-modal{ max-width:880px; display:flex; flex-direction:column; min-height:0; padding:0; overflow:hidden; }
.coa-modal [hidden]{ display:none !important; }
.coa-head{ flex:0 0 auto; padding:22px 66px 16px 28px; border-bottom:1px solid rgba(255,255,255,0.08); }
.coa-kicker{ font-family:var(--ui); font-size:0.72rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin:0 0 4px; }
.coa-modal h2{ font-family:var(--ui); font-size:1.35rem; font-weight:600; letter-spacing:-0.02em; line-height:1.25; text-align:left; color:var(--parchment); margin:0; }
.coa-meta{ font-family:var(--ui); font-size:0.85rem; color:var(--parchment-dim); margin:4px 0 0; }
.coa-modal .modal-close-x{ top:16px; right:18px; width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,0.07); font-size:1.6rem; line-height:1; }
.coa-modal .modal-close-x:hover{ background:rgba(255,255,255,0.14); }
.coa-body{ flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; display:flex; flex-direction:column; padding:20px 24px; background:rgba(0,0,0,0.3); }
.coa-pages{ display:flex; flex-direction:column; align-items:center; gap:16px; }
.coa-page{ display:block; width:100%; max-width:820px; height:auto; background:#fff; border-radius:4px; box-shadow:0 16px 44px -16px rgba(0,0,0,0.9); }
.coa-frame{ display:block; flex:1 1 auto; width:100%; min-height:60vh; border:0; border-radius:8px; background:#fff; }
.coa-status{ margin:auto; max-width:420px; padding:48px 12px; text-align:center; font-family:var(--ui); font-size:0.95rem; line-height:1.5; color:var(--parchment-dim); }
.coa-foot{ flex:0 0 auto; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; padding:14px 24px 16px; border-top:1px solid rgba(255,255,255,0.08); }
.coa-modal .coa-foot .btn{ width:auto; margin:0; }
@media (max-width:560px){
.coa-overlay{ padding:0; }
.coa-modal{ max-width:none; border:none; border-radius:0; }
.coa-head{ padding:14px 62px 12px 18px; }
.coa-modal h2{ font-size:1.2rem; }
.coa-modal .modal-close-x{ top:12px; right:12px; }
.coa-body{ padding:12px; }
.coa-foot{ gap:8px; padding:10px 14px 12px; }
.coa-modal .coa-foot .btn{ flex:1 1 auto; padding:12px 18px; }
}
/* ===== SATCHEL: each item's price on its row; the sale discount and the free gift shown on the items ===== */
.cart-item-top{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.cart-item-top h4{ min-width:0; }
.cart-item-line{ flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-end; font-family:var(--ui); font-size:0.95rem; line-height:1.3; color:var(--parchment); white-space:nowrap; text-align:right; }
.cart-item-line b{ font-weight:600; }
.cart-item-line s{ font-size:0.8rem; color:var(--parchment-dim); }
.cart-item-deal{ font-family:var(--ui); font-size:0.8rem; font-weight:600; line-height:1.35; color:var(--gold-bright); margin:-6px 0 10px; }
.cart-item.gift-item{ margin:14px 0 6px; padding:12px; border:1px dashed rgba(201,162,74,0.55); border-radius:var(--radius-sm); background:rgba(201,162,74,0.07); }
.gift-item .cart-item-line b{ color:var(--gold-bright); }
.gift-item .cart-item-deal{ margin:0; font-weight:500; }
/* ===== COAs TAB: every certificate of analysis in one place ===== */
.section-head .section-link{ margin-top:10px; font-family:var(--ui); font-size:0.95rem; }
.section-link a{ color:var(--gold-bright); }
.section-link a:hover{ text-decoration:underline; }
.coa-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:14px; }
.coa-seal.coa-tile{ display:flex; align-items:center; gap:14px; padding:16px 18px; border:1px solid rgba(201,162,74,0.3); border-radius:var(--radius-sm); background:rgba(201,162,74,0.05); transition:border-color .3s var(--ease, ease), background .3s var(--ease, ease), transform .3s var(--ease, ease); }
.coa-seal.coa-tile:hover, .coa-seal.coa-tile:focus-visible{ border-color:var(--gold); background:rgba(201,162,74,0.1); transform:translateY(-2px); }
.coa-tile-name{ font-size:1.08rem; font-weight:600; letter-spacing:-0.01em; color:var(--parchment); margin-bottom:2px; }
.coa-tile .seal-meta{ margin-bottom:2px; }
.coa-none{ grid-column:1 / -1; text-align:center; font-family:var(--ui); color:var(--parchment-dim); }
.coa-soon{ margin-top:30px; text-align:center; }
.coa-soon[hidden]{ display:none !important; }
.coa-soon-title{ font-family:var(--ui); font-size:0.78rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--parchment-dim); margin-bottom:12px; }
.coa-chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; max-width:820px; margin:0 auto; }
.coa-chip{ font-family:var(--ui); font-size:0.82rem; color:var(--parchment-dim); padding:5px 12px; border:1px solid rgba(255,255,255,0.1); border-radius:999px; background:rgba(255,255,255,0.03); }
/* legal operating-entity line in the footer */
.footer-legal{ margin-top:12px; font-size:0.72rem; line-height:1.55; color:var(--parchment-dim); opacity:0.75; max-width:420px; }
/* ===== LAUNCH COUNTDOWN: splash that covers the store until it opens ===== */
.launch-gate{ position:fixed; inset:0; z-index:400; display:flex; align-items:center; justify-content:center; padding:40px 20px; overflow-y:auto; text-align:center; background:radial-gradient(1200px 600px at 50% -10%, rgba(201,162,74,0.10), transparent 60%), #0a0806; transition:opacity .6s ease; }
.launch-gate[hidden]{ display:none !important; }
.launch-gate.launched{ opacity:0; pointer-events:none; }
.launch-inner{ width:100%; max-width:560px; margin:auto; }
.launch-logo{ width:min(320px, 78vw); height:auto; margin:0 auto 26px; display:block; filter:drop-shadow(0 10px 50px rgba(201,162,74,0.25)); }
.launch-eyebrow{ font-family:var(--ui); font-size:0.78rem; font-weight:600; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold); margin:0 0 10px; }
.launch-title{ font-family:'Cinzel',serif; font-weight:700; font-size:clamp(1.7rem, 6vw, 2.6rem); line-height:1.12; color:var(--parchment); margin:0 0 12px; }
.launch-sub{ font-family:var(--ui); font-size:1.02rem; line-height:1.5; color:var(--parchment-dim); max-width:460px; margin:0 auto 26px; }
.launch-countdown{ display:flex; align-items:flex-end; justify-content:center; gap:12px; margin:0 0 28px; font-family:var(--ui); }
.launch-countdown .cd{ display:flex; flex-direction:column; align-items:center; min-width:64px; padding:12px 6px; border:1px solid rgba(201,162,74,0.3); border-radius:14px; background:rgba(201,162,74,0.06); }
.launch-countdown .cd b{ font-size:2rem; font-weight:700; color:var(--gold-bright); line-height:1; font-variant-numeric:tabular-nums; }
.launch-countdown .cd small{ margin-top:6px; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--parchment-dim); }
.launch-sale{ border:1px solid rgba(201,162,74,0.35); border-radius:16px; background:rgba(201,162,74,0.06); padding:16px 18px; margin:0 0 20px; }
.launch-sale-title{ font-family:'Cinzel',serif; font-weight:600; font-size:0.95rem; letter-spacing:0.04em; color:var(--gold-bright); margin:0 0 6px; }
.launch-sale-line{ font-family:var(--ui); font-size:0.9rem; line-height:1.5; color:var(--parchment); margin:0; }
.launch-ship{ margin:10px 0 0; padding-top:10px; border-top:1px solid rgba(201,162,74,0.2); font-family:var(--ui); font-size:0.88rem; font-weight:600; color:var(--gold-bright); }
.launch-note{ font-family:var(--ui); font-size:0.82rem; color:var(--parchment-dim); margin:0 0 20px; }
.launch-lang{ display:block; width:auto; height:34px; padding:0 16px; margin:0 auto; }
@media (max-width:560px){
.launch-countdown{ gap:8px; }
.launch-countdown .cd{ min-width:56px; padding:10px 4px; }
.launch-countdown .cd b{ font-size:1.6rem; }
.launch-title{ font-size:1.7rem; }
}
