:root{
  --ink:#1d1630; --ink2:#3a3150; --cream:#fbf7f0; --paper:#ffffff; --sand:#f3ece0;
  --terra:#c4512f; --terra-d:#a23f22; --gold:#d8a238; --indigo:#2a2766; --green:#2f7d57;
  --line:#e6ddcf; --muted:#6f6679; --ok:#1f7a4d; --warn:#9a6a00; --bad:#b3261e;
  --radius:12px; --shadow:0 10px 30px -12px rgba(29,22,48,.25);
  --serif:'Fraunces',Georgia,'Times New Roman',serif; --sans:'DM Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.55;font-size:16px}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);line-height:1.15;margin:0 0 .5em;font-weight:700}
p{margin:0 0 1em}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.narrow{max-width:820px}
.muted{color:var(--muted)} .small{font-size:.875rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

.announce{background:var(--ink);color:#f6e7c1;text-align:center;font-size:.85rem;padding:8px 16px;letter-spacing:.02em}
.kente{height:8px;background:repeating-linear-gradient(90deg,#c4512f 0 40px,#d8a238 40px 64px,#1d1630 64px 72px,#2f7d57 72px 112px,#2a2766 112px 136px,#fbf7f0 136px 144px)}

/* header */
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.hdr{display:flex;align-items:center;gap:18px;padding-top:14px;padding-bottom:14px}
.logo{font-family:var(--serif);font-size:1.45rem;font-weight:500;text-decoration:none;letter-spacing:-.01em;white-space:nowrap;color:var(--ink)}
.logo b{font-weight:700;color:var(--terra)}
.logo.light{color:#fff}
.menu-btn{display:none;background:none;border:0;padding:6px;cursor:pointer;color:var(--ink)}
.search{flex:1;display:flex;align-items:center;border:1.5px solid var(--ink);border-radius:999px;background:#fff;overflow:hidden;max-width:620px;margin:0 auto}
.search input{flex:1;border:0;padding:11px 18px;font:inherit;background:transparent;outline:none;min-width:0}
.search button{border:0;background:var(--ink);color:#fff;width:48px;align-self:stretch;cursor:pointer;display:grid;place-items:center}
.search button:hover{background:var(--terra)}
.cart-link{position:relative;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;text-decoration:none;color:var(--ink)}
.cart-link:hover{background:var(--sand)}
.cart-count{position:absolute;top:2px;right:0;background:var(--terra);color:#fff;font-size:.7rem;min-width:19px;height:19px;border-radius:99px;display:grid;place-items:center;padding:0 5px}
.cats{border-top:1px solid var(--line)}
.cats-in{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-top:2px;padding-bottom:2px}
.cats a{white-space:nowrap;text-decoration:none;padding:10px 14px;font-size:.93rem;font-weight:500;border-bottom:2px solid transparent}
.cats a:hover,.cats a.on{border-color:var(--terra);color:var(--terra-d)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;border:2px solid var(--ink);padding:13px 26px;border-radius:999px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;transition:.15s}
.btn:hover{background:var(--terra);border-color:var(--terra)}
.btn.ghost{background:transparent;color:var(--ink)} .btn.ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.wide{width:100%} .btn.small{padding:6px 16px;font-size:.85rem;margin-left:8px}
.btn:disabled{opacity:.5;cursor:not-allowed;background:var(--ink);border-color:var(--ink)}

/* hero */
.hero{background:radial-gradient(1200px 500px at 85% -10%,#f6dfb4 0,transparent 60%),var(--cream);padding:48px 0 56px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:700;color:var(--terra);margin-bottom:14px}
.hero h1{font-size:clamp(2.4rem,5.2vw,4.2rem);letter-spacing:-.02em;margin-bottom:.35em}
.lead{font-size:1.15rem;color:var(--ink2);max-width:34ch}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.hero-art{position:relative;height:540px}
.collage{position:absolute;display:block;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:5px solid #fff;background:#fff}
.collage img{width:100%;height:100%;object-fit:cover}
.c1{left:0;top:34px;width:54%;aspect-ratio:4/5;transform:rotate(-2.5deg)}
.c2{right:0;top:0;width:42%;aspect-ratio:4/5;transform:rotate(3deg)}
.c3{right:7%;bottom:0;width:40%;aspect-ratio:4/5;transform:rotate(-1deg)}

/* sections */
.section{padding-top:44px;padding-bottom:44px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.sec-head h2,.h1s{font-size:clamp(1.6rem,3vw,2.2rem);margin:0}
.sec-head a{font-weight:700;text-decoration:none;color:var(--terra-d)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.tile{position:relative;display:block;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;background:var(--sand);text-decoration:none;color:#fff}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.tile:hover img{transform:scale(1.05)}
.tile span{position:absolute;inset:auto 0 0 0;padding:44px 16px 14px;background:linear-gradient(transparent,rgba(29,22,48,.82));display:flex;flex-direction:column}
.tile small{opacity:.85}

/* product grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:30px 20px}
.card{text-decoration:none;display:block}
.card-img{position:relative;aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;background:var(--sand)}
.card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .35s,transform .5s}
.card-img img.alt{opacity:0}
.card:hover .card-img img.alt{opacity:1}
.card:hover .card-img img:first-child{transform:scale(1.03)}
.card-title{font-family:var(--sans);font-weight:500;font-size:.98rem;margin:12px 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.card-price{display:flex;gap:8px;align-items:baseline}
.card-price b{font-size:1.1rem} .card-price s{color:var(--muted);font-size:.9rem}
.card-cat{color:var(--muted);font-size:.82rem}
.badge{position:absolute;top:10px;left:10px;font-size:.74rem;font-weight:700;padding:4px 10px;border-radius:99px;z-index:2}
.badge.low{background:#fff3d6;color:var(--warn)} .badge.out{background:var(--ink);color:#fff}
.price-row .badge{position:static}

.perks{background:var(--ink);color:#fff;padding:30px 0}
.perks-in{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.perks-in div{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.perks-in svg{color:var(--gold);margin-bottom:6px}
.perks-in a{color:#f6e7c1;font-size:.9rem}
.about-strip{max-width:760px;text-align:center}
.about-strip p{font-size:1.1rem;color:var(--ink2)} .about-strip a{font-weight:700;color:var(--terra-d)}

/* shop */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:7px 16px;text-decoration:none;font-size:.92rem;font-weight:500}
.chip:hover{border-color:var(--ink)} .chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.sortbox select{font:inherit;padding:8px 12px;border-radius:8px;border:1.5px solid var(--line);background:#fff}
.empty{text-align:center;padding:60px 0}

/* product page */
.crumbs{font-size:.88rem;color:var(--muted);margin-bottom:18px} .crumbs a{text-decoration:none} .crumbs a:hover{text-decoration:underline}
.pdp-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:start}
.gallery{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:start}
.gallery .main-img{grid-column:2;grid-row:1;border-radius:var(--radius);overflow:hidden;background:var(--sand);aspect-ratio:4/5}
.main-img img{width:100%;height:100%;object-fit:cover}
.thumbs{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:10px}
.thumb{padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--sand);aspect-ratio:4/5}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb.on{border-color:var(--ink)}
.buy{position:sticky;top:130px}
.buy h1{font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.2}
.price-row{display:flex;align-items:center;gap:12px;margin:6px 0}
.price{font-size:1.7rem;font-weight:700} .price-row s{color:var(--muted)}
.opt-label{font-weight:700;margin:18px 0 8px}
.variants{display:flex;flex-wrap:wrap;gap:10px}
.vbtn{min-width:62px;padding:10px 16px;border:1.5px solid var(--line);background:#fff;border-radius:10px;font:inherit;font-weight:500;cursor:pointer;display:flex;flex-direction:column;align-items:center;line-height:1.2}
.vbtn small{font-size:.7rem;color:var(--warn);font-weight:500}
.vbtn:hover:not(:disabled){border-color:var(--ink)}
.vbtn.on{border-color:var(--ink);background:var(--ink);color:#fff} .vbtn.on small{color:#f6e7c1}
.vbtn:disabled{opacity:.45;text-decoration:line-through;cursor:not-allowed}
.vbtn.shake{animation:shake .4s}
@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.buy-row{display:flex;gap:14px;margin:22px 0 8px;align-items:stretch}
.qty{display:flex;border:1.5px solid var(--ink);border-radius:999px;overflow:hidden;background:#fff;flex:none}
.qty button{width:42px;border:0;background:transparent;font-size:1.25rem;cursor:pointer} .qty button:hover{background:var(--sand)}
.qty input{width:48px;border:0;text-align:center;font:inherit;font-weight:700;background:transparent;-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button{display:none}
.msg{padding:10px 14px;border-radius:8px;background:#fdecea;color:var(--bad);font-size:.92rem}
.msg.ok{background:#e6f4ec;color:var(--ok)}
.acc{margin-top:26px;border-top:1px solid var(--line)}
.acc details{border-bottom:1px solid var(--line);padding:14px 0}
.acc summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between}
.acc summary::after{content:'+';font-size:1.3rem;line-height:1} .acc details[open] summary::after{content:'\2212'}
.acc details>div{margin-top:10px;color:var(--ink2);font-size:.95rem}

/* cart & checkout */
.cart-grid,.co-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:36px;align-items:start;margin-top:24px}
.line{display:grid;grid-template-columns:78px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.line img{width:78px;height:98px;object-fit:cover;border-radius:8px;background:var(--sand)}
.line b{display:block;font-weight:500} .line small{color:var(--muted);display:block}
.line .rm{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;font-size:.85rem;padding:0;margin-top:6px}
.line .qty{transform:scale(.88);transform-origin:left;margin-top:6px;width:fit-content}
.summary{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;position:sticky;top:130px}
.summary h2{font-size:1.25rem}
.tot{display:flex;justify-content:space-between;padding:6px 0}
.tot.grand{font-weight:700;font-size:1.15rem;border-top:1px solid var(--line);margin-top:8px;padding-top:12px}
.co-form fieldset{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:18px 20px 8px;margin:0 0 18px}
.co-form legend{font-family:var(--serif);font-weight:700;padding:0 8px;font-size:1.1rem}
.co-form label{display:block;font-weight:500;font-size:.9rem;margin-bottom:14px}
.co-form label small{color:var(--muted);font-weight:400}
.co-form input:not([type=radio]),.co-form select,.co-form textarea{display:block;width:100%;margin-top:5px;padding:11px 13px;border:1.5px solid var(--line);border-radius:8px;font:inherit;background:#fff}
.co-form input:focus,.co-form select:focus,.co-form textarea:focus{border-color:var(--ink);outline:none}
.co-form .bad{border-color:var(--bad)!important}
.ferr{color:var(--bad);font-size:.82rem;display:block;margin-top:3px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.radio{display:flex!important;gap:12px;align-items:flex-start;padding:12px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer}
.radio:has(input:checked){border-color:var(--ink);background:var(--cream)}
.radio span{display:flex;flex-direction:column} .radio small{margin-top:2px}
.radio input{margin-top:4px}

/* order */
.note{padding:16px 18px;border-radius:var(--radius);margin:16px 0}
.note.ok{background:#e6f4ec;color:#124d30} .note.warn{background:#fff3d6;color:#5f4300} .note.bad{background:#fdecea;color:#7a1712}
.box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:16px 0}
.box h3{font-size:1.1rem}
.box.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92rem;background:var(--cream);padding:12px;border-radius:8px}
.pill{display:inline-block;padding:3px 11px;border-radius:99px;font-size:.78rem;font-weight:700;text-transform:capitalize;background:var(--sand)}
.pill.shipped,.pill.delivered,.pill.pay-paid{background:#e6f4ec;color:var(--ok)} .pill.cancelled{background:#fdecea;color:var(--bad)} .pill.pending,.pill.pay-unpaid{background:#fff3d6;color:var(--warn)}
.prose p{font-size:1.05rem;color:var(--ink2)}

/* footer */
.site-footer{background:var(--ink);color:#d9d3e6;margin-top:30px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:30px;padding-top:44px;padding-bottom:30px}
.site-footer h4{color:#fff;font-size:1rem;font-family:var(--sans);letter-spacing:.04em;text-transform:uppercase;font-size:.8rem}
.site-footer a,.site-footer span{display:block;text-decoration:none;margin-bottom:8px;font-size:.93rem}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .muted{color:#a99fc0} .social a{display:inline-block;margin-right:14px}
.foot-base{border-top:1px solid rgba(255,255,255,.12);padding-top:16px;padding-bottom:22px;font-size:.84rem;color:#a99fc0}

.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:14px 20px;border-radius:12px;box-shadow:var(--shadow);z-index:100;display:flex;gap:14px;align-items:center;max-width:92vw}
.toast a{color:var(--gold);font-weight:700}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr} .hero-art{height:420px;order:-1}
  .pdp-grid,.cart-grid,.co-grid{grid-template-columns:1fr} .buy,.summary{position:static}
  .foot-grid{grid-template-columns:1fr 1fr} .perks-in{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr} .gallery .main-img{grid-column:1}
  .thumbs{grid-column:1;grid-row:2;flex-direction:row;overflow-x:auto} .thumb{width:68px;flex:none}
}
@media (max-width:640px){
  .hdr{flex-wrap:wrap;gap:10px} .logo{font-size:1.2rem;order:1;flex:1}
  .menu-btn{display:none} .cart-link{order:2}
  .search{order:3;flex:1 1 100%;max-width:none}
  .grid{grid-template-columns:repeat(2,1fr);gap:22px 12px}
  .row2,.box.two{grid-template-columns:1fr} .foot-grid{grid-template-columns:1fr}
  .hero{padding-top:24px} .hero-art{height:360px}
  .section{padding-top:30px;padding-bottom:30px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
