:root{
  color-scheme:light dark;
  --bg:#ffffff;
  --bg-2:#f7f4ee;
  --panel:#ffffff;
  --ink:#17130f;
  --ink-dim:#746b5c;
  --gold-hi:#c7a772;
  --gold:#ae7f35;
  --gold-deep:#7d5a1f;
  --line:rgba(23,19,15,.12);
  --line-soft:rgba(23,19,15,.07);
  --gold-line:rgba(174,127,53,.45);
  --gold-line-soft:rgba(174,127,53,.20);
  --shadow:rgba(23,19,15,.08);
  --header-bg:rgba(255,255,255,.92);
  --body-glow:radial-gradient(120% 60% at 50% -10%, #fbf7ee 0%, rgba(251,247,238,0) 55%);
  --grad-gold:linear-gradient(160deg,#d9b877 0%,#c7a15a 26%,#ae7f35 52%,#7d5a1f 78%,#c9a15c 100%);
}

.logo-light{display:block}
.logo-dark{display:none}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0a0806;
    --bg-2:#120d08;
    --panel:#15100a;
    --ink:#ece2cf;
    --ink-dim:#a99a7f;
    --gold-hi:#e3c168;
    --gold:#c9a15a;
    --gold-deep:#e3c168;
    --line:rgba(198,158,74,.24);
    --line-soft:rgba(198,158,74,.12);
    --gold-line:rgba(198,158,74,.5);
    --gold-line-soft:rgba(198,158,74,.22);
    --shadow:rgba(0,0,0,.6);
    --header-bg:rgba(10,8,6,.88);
    --body-glow:radial-gradient(120% 90% at 50% -10%, #17110a 0%, rgba(23,17,10,0) 55%);
  }
  :root:not([data-theme="light"]) .logo-light{display:none}
  :root:not([data-theme="light"]) .logo-dark{display:block}
}

/* explicit user choice (toggle) always wins over prefers-color-scheme */
:root[data-theme="dark"]{
  --bg:#0a0806;
  --bg-2:#120d08;
  --panel:#15100a;
  --ink:#ece2cf;
  --ink-dim:#a99a7f;
  --gold-hi:#e3c168;
  --gold:#c9a15a;
  --gold-deep:#e3c168;
  --line:rgba(198,158,74,.24);
  --line-soft:rgba(198,158,74,.12);
  --gold-line:rgba(198,158,74,.5);
  --gold-line-soft:rgba(198,158,74,.22);
  --shadow:rgba(0,0,0,.6);
  --header-bg:rgba(10,8,6,.88);
  --body-glow:radial-gradient(120% 90% at 50% -10%, #17110a 0%, rgba(23,17,10,0) 55%);
}
:root[data-theme="dark"] .logo-light{display:none}
:root[data-theme="dark"] .logo-dark{display:block}

:root[data-theme="light"]{
  --bg:#ffffff;
  --bg-2:#f7f4ee;
  --panel:#ffffff;
  --ink:#17130f;
  --ink-dim:#746b5c;
  --gold-hi:#c7a772;
  --gold:#ae7f35;
  --gold-deep:#7d5a1f;
  --line:rgba(23,19,15,.12);
  --line-soft:rgba(23,19,15,.07);
  --gold-line:rgba(174,127,53,.45);
  --gold-line-soft:rgba(174,127,53,.20);
  --shadow:rgba(23,19,15,.08);
  --header-bg:rgba(255,255,255,.92);
  --body-glow:radial-gradient(120% 60% at 50% -10%, #fbf7ee 0%, rgba(251,247,238,0) 55%);
}
:root[data-theme="light"] .logo-light{display:block}
:root[data-theme="light"] .logo-dark{display:none}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--body-glow), var(--bg);
  color:var(--ink);
  font-family:'Jost',system-ui,sans-serif;
  line-height:1.5;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:100%;max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}

/* ---- header ---- */
header.site{
  position:sticky;top:0;z-index:20;
  background:var(--header-bg);
  border-bottom:1px solid var(--line);
}
.nav-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
}
.wordmark img{height:clamp(30px,4vw,38px);width:auto}
nav.links{display:flex;gap:clamp(16px,3vw,32px)}
nav.links a{
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-dim);
  transition:color .2s ease;
}
nav.links a:hover,nav.links a.active{color:var(--gold-deep)}

.nav-actions{display:flex;align-items:center;gap:10px}

/* ---- theme toggle ---- */
.theme-toggle{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:999px;flex:none;
  border:1px solid var(--line);background:none;color:var(--ink-dim);
  font-size:15px;line-height:1;cursor:pointer;
  transition:border-color .2s ease,color .2s ease;
}
.theme-toggle:hover{border-color:var(--gold-line);color:var(--gold-deep)}
.theme-toggle .icon-moon{display:none}
:root[data-theme="dark"] .theme-toggle .icon-sun{display:none}
:root[data-theme="dark"] .theme-toggle .icon-moon{display:block}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme-toggle .icon-sun{display:none}
  :root:not([data-theme="light"]) .theme-toggle .icon-moon{display:block}
}

/* ---- mobile nav toggle (hamburger) ---- */
.nav-toggle{
  display:none;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:38px;height:38px;border-radius:2px;
  border:1px solid var(--line);background:none;cursor:pointer;
}
.nav-toggle .bar{
  width:18px;height:2px;background:var(--ink);border-radius:1px;
  transition:transform .3s ease,opacity .2s ease;
}
.nav-toggle.open .bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open .bar:nth-child(2){opacity:0}
.nav-toggle.open .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.nav-backdrop{
  position:fixed;inset:0;z-index:19;
  background:rgba(0,0,0,.45);
  opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
}
.nav-backdrop.open{opacity:1;visibility:visible}

body.nav-open{overflow:hidden}

/* ---- hero ---- */
.hero{
  position:relative;
  padding:clamp(56px,10vw,110px) 0 clamp(48px,8vw,80px);
  text-align:center;
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(55% 45% at 50% 20%, rgba(174,127,53,.10), rgba(174,127,53,0) 70%);
  pointer-events:none;
}
.hero > *{position:relative;z-index:1}
.eyebrow{
  display:flex;align-items:center;justify-content:center;gap:16px;
  font-size:clamp(10px,2vw,12px);letter-spacing:.4em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:20px;
}
.eyebrow .ln{height:1px;width:40px;background:linear-gradient(90deg,transparent,var(--gold-line),transparent)}
.hero h1{
  font-family:'Bodoni Moda',serif;font-weight:500;
  font-size:clamp(38px,7vw,72px);line-height:1.05;
  color:var(--ink);
  max-width:16ch;margin:0 auto;
}
.hero h1 .accent{
  font-style:italic;font-weight:500;
  background:var(--grad-gold);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.hero p.sub{
  margin:22px auto 0;max-width:52ch;
  color:var(--ink-dim);font-size:clamp(15px,2vw,18px);
}
.hero .cta-row{
  margin-top:36px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;
}
.btn{
  display:inline-block;padding:14px 30px;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;
  border-radius:2px;transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-gold{
  background:var(--grad-gold);color:#211705;font-weight:600;
  box-shadow:0 14px 30px -14px rgba(174,127,53,.55);
}
.btn-outline{
  border:1px solid var(--ink);color:var(--ink);
}
.btn-outline:hover{background:var(--ink);color:var(--bg)}

/* ---- section heading ---- */
.section-head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:20px;margin-bottom:32px;flex-wrap:wrap;
}
.section-head h2{
  font-family:'Bodoni Moda',serif;font-weight:500;
  font-size:clamp(26px,4vw,36px);color:var(--ink);
}
.section-head .accent{
  font-style:italic;
  background:var(--grad-gold);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.section-head a{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-deep);border-bottom:1px solid var(--gold-line);padding-bottom:2px;
}

section{padding:clamp(48px,7vw,84px) 0}
section.alt{background:var(--bg-2);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}

/* ---- category chips ---- */
.category-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:44px}
.chip{
  padding:9px 20px;border:1px solid var(--line);border-radius:999px;
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);
  transition:border-color .2s ease,color .2s ease;
}
.chip.active{border-color:var(--gold);color:var(--gold-deep)}
a.chip:hover{border-color:var(--gold-line);color:var(--gold-deep)}

/* ---- product grid ---- */
.grid{
  display:grid;gap:clamp(20px,2.4vw,30px);
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:4px;overflow:hidden;
  display:flex;flex-direction:column;
  box-shadow:0 2px 14px -10px var(--shadow);
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.card:hover{border-color:var(--gold-line);transform:translateY(-4px);box-shadow:0 18px 30px -18px var(--shadow)}
.card .thumb{
  aspect-ratio:1/1;background:var(--bg-2);overflow:hidden;
  border-bottom:1px solid var(--line);
}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.card .cat{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.card h3{font-family:'Bodoni Moda',serif;font-weight:500;font-size:19px;color:var(--ink)}
.card .price{color:var(--gold-deep);font-size:15px;margin-top:auto;font-weight:500}
.card .enquire{
  margin-top:12px;text-align:center;padding:10px;
  border:1px solid var(--ink);color:var(--ink);
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  border-radius:2px;transition:background .2s ease,color .2s ease;
}
.card .enquire:hover{background:var(--ink);color:var(--bg)}

/* ---- info strip ---- */
.info-strip{
  display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  text-align:center;
}
.info-strip .item h4{
  font-family:'Bodoni Moda',serif;font-weight:500;color:var(--gold-deep);
  font-size:17px;margin-bottom:8px;
}
.info-strip .item p{color:var(--ink-dim);font-size:14px}

/* ---- newsletter ---- */
.newsletter{
  text-align:center;max-width:560px;margin:0 auto;
}
.newsletter h2{font-family:'Bodoni Moda',serif;font-weight:500;font-size:clamp(24px,3.4vw,32px)}
.newsletter p{color:var(--ink-dim);margin-top:12px}
.newsletter form{
  display:flex;gap:10px;margin-top:26px;flex-wrap:wrap;justify-content:center;
}
.newsletter input[type=email]{
  flex:1;min-width:220px;padding:14px 16px;background:var(--bg-2);
  border:1px solid var(--line);color:var(--ink);border-radius:2px;font-family:inherit;
}
.newsletter input[type=email]:focus{outline:1px solid var(--gold)}
.newsletter .msg{margin-top:14px;font-size:13px;color:var(--gold-deep);min-height:1.2em}
.newsletter .msg.error{color:#a13b2e}

/* ---- product detail page ---- */
.breadcrumb{font-size:12px;color:var(--ink-dim);margin-bottom:28px}
.breadcrumb a:hover{color:var(--gold-deep)}
.product-layout{display:grid;gap:clamp(28px,4vw,56px);grid-template-columns:1fr}
@media (min-width:760px){.product-layout{grid-template-columns:1.1fr 1fr;align-items:start}}
.product-main-image{aspect-ratio:1/1;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.product-main-image img{width:100%;height:100%;object-fit:cover}
.product-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.product-thumb{width:64px;height:64px;border-radius:3px;overflow:hidden;border:1px solid var(--line);opacity:.6;transition:opacity .2s ease,border-color .2s ease;background:none;padding:0;cursor:pointer}
.product-thumb img{width:100%;height:100%;object-fit:cover}
.product-thumb.active,.product-thumb:hover{opacity:1;border-color:var(--gold)}
.product-info .cat{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.product-info h1{font-family:'Bodoni Moda',serif;font-weight:500;font-size:clamp(26px,3.4vw,36px);margin-top:8px;color:var(--ink)}
.product-price{color:var(--gold-deep);font-size:20px;font-weight:500;margin-top:14px}
.product-desc{color:var(--ink-dim);margin-top:18px;line-height:1.7}
.product-enquire{margin-top:28px}
.product-related{margin-top:64px}

/* ---- footer ---- */
footer.site{
  border-top:1px solid var(--line-soft);
  padding:44px 0 30px;
}
.footer-row{
  display:flex;justify-content:space-between;align-items:center;
  gap:20px;flex-wrap:wrap;
}
.footer-row .copy{color:var(--ink-dim);font-size:13px}
.footer-links{display:flex;gap:20px}
.footer-links a{font-size:13px;color:var(--ink-dim)}
.footer-links a:hover{color:var(--gold-deep)}

@media (max-width:640px){
  nav.links{
    position:fixed;inset:0 0 0 auto;width:min(78vw,300px);z-index:21;
    background:var(--bg);border-left:1px solid var(--line);
    flex-direction:column;padding:90px 28px;gap:26px;
    transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);
    box-shadow:-16px 0 40px -20px var(--shadow);
  }
  nav.links.open{transform:translateX(0)}
  nav.links a{
    opacity:0;transform:translateX(14px);
    transition:opacity .3s ease,transform .3s ease;
  }
  nav.links.open a{opacity:1;transform:translateX(0)}
  nav.links.open a:nth-child(1){transition-delay:.08s}
  nav.links.open a:nth-child(2){transition-delay:.14s}
  nav.links.open a:nth-child(3){transition-delay:.2s}
  nav.links.open a:nth-child(4){transition-delay:.26s}
  .nav-toggle{display:flex}
}
