/* ============================================================
   D'SEO — Fine Jewelry
   Design tokens
   ============================================================ */
:root{
  --noir: #0c0b09;         /* true near-black, warm undertone */
  --noir-soft: #17140f;
  --ivory: #f7f3ea;        /* warm ivory background */
  --ivory-2: #efe9db;
  --ink: #1c1812;          /* body text on ivory */
  --gold: #b9924f;         /* antique brass gold — primary accent */
  --gold-light: #ddc48d;
  --gold-dim: rgba(185,146,79,0.35);
  --line-on-dark: rgba(221,196,141,0.22);
  --line-on-light: rgba(28,24,18,0.12);

  --serif: 'Cormorant Garamond', 'Georgia', serif;
  --sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;

  --maxw: 1240px;
  --pad: clamp(20px, 4vw, 64px);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; width:100%; }
body{
  margin:0;
  font-family:var(--sans);
  background:var(--ivory);
  color:var(--ink);
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  width:100%;
  position:relative;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  margin:0;
  letter-spacing:.01em;
}
p{ margin:0; line-height:1.7; }
ul{ margin:0; padding:0; list-style:none; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding:.95em 2em;
  font-size:.82rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid transparent;
  transition:background .35s ease, color .35s ease, border-color .35s ease;
  white-space:nowrap;
}
.btn-gold{
  background:var(--gold);
  color:var(--noir);
  border-color:var(--gold);
}
.btn-gold:hover{ background:var(--gold-light); border-color:var(--gold-light); }

.btn-outline-dark{
  background:transparent;
  color:var(--ivory);
  border-color:rgba(247,243,234,.55);
}
.btn-outline-dark:hover{ border-color:var(--gold-light); color:var(--gold-light); }

.btn-outline-ink{
  background:transparent;
  color:var(--ink);
  border-color:var(--ink);
}
.btn-outline-ink:hover{ border-color:var(--gold); color:var(--gold); }

.btn-block{ width:100%; }

/* ---------- Image placeholder (NO stock/fake photos — client supplies real photography) ---------- */
.ph{
  position:relative;
  width:100%;
  height:100%;
  min-height:120px;
  background:
    linear-gradient(135deg, rgba(185,146,79,.10) 0%, rgba(185,146,79,.04) 100%),
    repeating-linear-gradient(45deg, rgba(28,24,18,.05) 0 1px, transparent 1px 14px);
  border:1px solid var(--gold-dim);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold);
  text-align:center;
  overflow:hidden;
}
.ph::before{
  content:"";
  width:26px;height:26px;
  position:absolute;
  border:1px solid var(--gold-dim);
  border-radius:50%;
}
.ph span{
  position:relative;
  font-family:var(--sans);
  font-size:.68rem;
  letter-spacing:.12em;
  padding:0 12px;
  opacity:.75;
}
.ph--dark{ background:
    linear-gradient(135deg, rgba(185,146,79,.14) 0%, rgba(185,146,79,.05) 100%),
    repeating-linear-gradient(45deg, rgba(247,243,234,.05) 0 1px, transparent 1px 14px);
  border-color: rgba(185,146,79,.4);
}
.ph img.ph-illus{
  position:relative;
  width:34%;
  max-width:130px;
  opacity:.92;
}
.ph-illus--lg{ width:46%; max-width:220px; }


/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:40;
  background:var(--noir);
  border-bottom:1px solid var(--line-on-dark);
}
.header-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:18px var(--pad);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.logo-mark{
  display:flex;
  align-items:center;
  gap:16px;
  color:var(--ivory);
}
.logo-mark img{ width:44px; height:44px; flex:none; border-radius:50%; object-fit:cover; }
.logo-mark .wordmark{
  font-family:var(--serif);
  font-size:1.34rem;
  letter-spacing:.22em;
  color:var(--ivory);
}
.main-nav{ display:flex; gap:36px; }
.main-nav a{
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(247,243,234,.82);
  padding:6px 0;
  border-bottom:1px solid transparent;
  transition:color .3s ease, border-color .3s ease;
}
.main-nav a:hover, .main-nav a.active{ color:var(--gold-light); border-color:var(--gold-light); }

.header-icons{ display:flex; align-items:center; gap:20px; }
.header-icons button, .header-icons a{
  background:none; border:none; color:var(--ivory);
  display:flex; align-items:center; opacity:.9;
}
.header-icons svg{ width:19px; height:19px; }
.header-icons button:hover, .header-icons a:hover{ opacity:1; color:var(--gold-light); }

.nav-toggle{ display:none; }

/* mobile nav */
@media (max-width: 860px){
  .main-nav{
    position:fixed; inset:0 0 0 auto; top:0;
    width:min(320px,84vw); height:100%;
    background:var(--noir); flex-direction:column;
    padding:96px 32px 32px; gap:26px;
    transform:translateX(100%);
    transition:transform .4s ease;
    border-left:1px solid var(--line-on-dark);
  }
  .main-nav.open{ transform:translateX(0); }
  .nav-toggle{
    display:flex; flex-direction:column; gap:5px;
    background:none; border:none; padding:6px;
  }
  .nav-toggle span{ width:22px; height:1px; background:var(--ivory); display:block; }
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--noir); color:rgba(247,243,234,.75); }
.footer-inner{
  max-width:var(--maxw); margin:0 auto; padding:64px var(--pad) 28px;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.3fr repeat(4, 1fr);
  gap:32px;
  padding-bottom:40px;
}
.footer-brand .logo-mark{ margin-bottom:14px; }
.footer-brand p{ font-size:.85rem; color:rgba(247,243,234,.55); max-width:32ch; }
.footer-col h4{
  font-family:var(--sans); font-weight:500;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-light);
  margin-bottom:16px;
}
.footer-col li{ margin-bottom:10px; }
.footer-col a{ font-size:.86rem; color:rgba(247,243,234,.72); transition:color .3s; }
.footer-col a:hover{ color:var(--gold-light); }
.footer-bottom{
  border-top:1px solid var(--line-on-dark);
  padding-top:24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  flex-wrap:wrap;
}
.footer-bottom small{ font-size:.75rem; letter-spacing:.03em; color:rgba(247,243,234,.45); }
.social-row{ display:flex; gap:16px; }
.social-row a{ width:32px; height:32px; border:1px solid var(--line-on-dark); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:border-color .3s; }
.social-row a:hover{ border-color:var(--gold-light); }
.social-row svg{ width:14px; height:14px; }

@media (max-width: 860px){
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .footer-brand{ grid-column: 1 / -1; }
}

/* ============================================================
   BREADCRUMB / PAGE HEAD (dark banners used on interior pages)
   ============================================================ */
.page-banner{
  background:var(--noir); color:var(--ivory);
  text-align:center;
  padding:72px var(--pad) 56px;
}
.page-banner h1{ font-size:clamp(2rem,4vw,2.7rem); color:var(--ivory); letter-spacing:.04em; }
.crumb{ margin-top:14px; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(247,243,234,.5); }
.crumb a{ color:rgba(247,243,234,.75); }
.crumb a:hover{ color:var(--gold-light); }

/* ============================================================
   UTILITIES
   ============================================================ */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }
.section{ padding:88px 0; }
@media (max-width:640px){ .section{ padding:56px 0; } }
.eyebrow-none{ /* intentionally no tracked-out eyebrow labels site-wide */ }
.center{ text-align:center; }
.kicker{
  font-family:var(--serif); font-style:italic; color:var(--gold);
  font-size:1.05rem; margin-bottom:10px;
}
.section-title{ font-size:clamp(1.7rem,3vw,2.3rem); }
.divider{
  width:56px; height:1px; background:var(--gold); margin:22px auto 0;
}
.divider.left{ margin-left:0; }
