/* ============================================
   de Cardenas Design Studio — Design System
   ============================================ */

:root{
  --bone:#F6F1E7;
  --umber:#33261E;
  --clay:#B9744C;
  --sage:#7C8768;
  --brass:#A8823F;
  --line: rgba(51,38,30,0.14);
  --max: 1200px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'Work Sans', sans-serif;
  background:var(--bone);
  color:var(--umber);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:450;
  margin:0;
  letter-spacing:-0.01em;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:var(--max); margin:0 auto; padding:0 40px; }

/* ---------- NAV ---------- */
.site-nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 40px;
  border-bottom:1px solid var(--line);
  position:sticky; top:0; background:var(--bone); z-index:100;
}
.wordmark{
  font-family:'Fraunces', serif; font-size:20px; letter-spacing:0.05em;
  text-transform:uppercase; display:flex; align-items:baseline; gap:10px;
  white-space:nowrap;
}
.wordmark span{ opacity:0.55; font-size:12px; letter-spacing:0.14em; font-family:'Fraunces', serif; }
.navlinks{ display:flex; gap:30px; font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase; }
.navlinks a{ opacity:0.6; padding-bottom:3px; border-bottom:1px solid transparent; transition:opacity .2s, border-color .2s; }
.navlinks a:hover, .navlinks a.active{ opacity:1; border-color:var(--clay); color:var(--clay); }
.nav-toggle{
  display:none; background:none; border:none; cursor:pointer;
  width:26px; height:20px; position:relative; padding:0; flex-shrink:0;
}
.nav-toggle::before, .nav-toggle::after{
  content:""; position:absolute; left:0; right:0; height:1.5px; background:var(--umber);
  transition:transform .25s ease, opacity .25s ease, top .25s ease;
}
.nav-toggle::before{ top:6px; }
.nav-toggle::after{ top:14px; }
.nav-toggle.open::before{ top:10px; transform:rotate(45deg); }
.nav-toggle.open::after{ top:10px; transform:rotate(-45deg); }

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-block; font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  padding:12px 26px; border:1px solid var(--umber); background:var(--umber); color:var(--bone);
  transition:opacity .2s; cursor:pointer;
}
.btn:hover{ opacity:0.82; }
.btn-outline{ background:transparent; color:var(--umber); }
.cta-underline{
  font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  border-bottom:1px solid var(--umber); display:inline-block; width:fit-content; padding-bottom:3px;
}

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:520px;
  background:
    radial-gradient(ellipse at 25% 20%, rgba(184,124,79,0.35), transparent 55%),
    radial-gradient(ellipse at 80% 75%, rgba(124,135,104,0.3), transparent 50%),
    linear-gradient(160deg, #E9DFCB 0%, #D9C7A8 45%, #C9AE86 100%);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:56px 40px; overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:0;
  background-image: repeating-linear-gradient(115deg, rgba(51,38,30,0.05) 0px, rgba(51,38,30,0.05) 1px, transparent 1px, transparent 90px);
}
.hero-inner{ max-width:var(--max); margin:0 auto; width:100%; position:relative; z-index:1; }
.hero-tag{ font-size:12px; text-transform:uppercase; letter-spacing:0.14em; opacity:0.7; margin-bottom:14px; }
.hero h1{ font-size:clamp(34px,5vw,54px); max-width:680px; line-height:1.06; }
.hero p.sub{ max-width:440px; font-size:15px; margin-top:16px; opacity:0.75; }
.hero .actions{ margin-top:28px; display:flex; gap:14px; }

/* ---------- SECTION LABEL ---------- */
.section-label{ display:flex; align-items:center; gap:14px; padding:64px 0 26px; }
.section-label .rule{ flex:1; height:1px; background:var(--line); }
.section-label span{ font-size:12px; text-transform:uppercase; letter-spacing:0.14em; opacity:0.6; white-space:nowrap; }

/* ---------- PROCESS SPECTRUM ---------- */
.spectrum{ padding:36px 0 70px; position:relative; }
.spectrum-track{
  position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  margin-top:20px;
}
.spectrum-bar{
  position:absolute; top:27px; left:6%; right:6%; height:3px; border-radius:3px; z-index:0;
  background:linear-gradient(90deg, var(--clay) 0%, var(--brass) 35%, var(--sage) 68%, var(--umber) 100%);
  opacity:0.85;
  transform-origin:left center;
  animation:spectrum-grow 1.1s cubic-bezier(.4,0,.2,1) both;
}
@keyframes spectrum-grow{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
.spectrum-stage{ position:relative; text-align:left; }
.spectrum-thumb{
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces', serif; font-size:19px; font-weight:450; color:var(--clay);
  background:var(--bone);
  margin-bottom:20px; position:relative; z-index:1;
  box-shadow:0 0 0 5px var(--bone), 0 4px 14px rgba(51,38,30,0.12);
  border:1px solid var(--line);
  transition:transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s ease, background .3s ease, color .3s ease;
}
.spectrum-stage:hover .spectrum-thumb{
  transform:scale(1.12);
  background:var(--clay); color:var(--bone);
  box-shadow:0 0 0 5px var(--bone), 0 0 0 8px var(--clay), 0 6px 18px rgba(51,38,30,0.22);
}
.spectrum-stage h4{ font-size:17px; margin-bottom:8px; transition:color .25s ease; }
.spectrum-stage:hover h4{ color:var(--clay); }
.spectrum-stage p{ font-size:13px; opacity:0.7; line-height:1.6; margin:0 0 14px; }
.spectrum-stage .count{
  font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--clay);
  display:inline-block; transition:transform .25s ease;
}
.spectrum-stage:hover .count{ transform:translateX(3px); }

/* ---------- GRIDS / CARDS ---------- */
.grid2{ display:grid; grid-template-columns:1.3fr 1fr; gap:2px; }
.grid3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:2px; }
.grid4{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.card{ position:relative; height:300px; display:flex; align-items:flex-end; overflow:hidden; }
.card.short{ height:210px; }
.card .img{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .5s ease; }
.card:hover .img{ transform:scale(1.04); }
.card .caption{
  position:relative; z-index:1; width:100%;
  background:linear-gradient(to top, rgba(51,38,30,0.78), transparent);
  color:var(--bone); padding:16px 18px 12px;
}
.caption .name{ font-family:'Fraunces',serif; font-size:17px; }
.caption .meta{ font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; opacity:0.85; margin-top:4px; }
.tone-a{ background:linear-gradient(150deg,#CBB48E,#8C9678); }
.tone-b{ background:linear-gradient(150deg,#C79A73,#5B4A3A); }
.tone-c{ background:linear-gradient(150deg,#D8CBAE,#A88A63); }
.tone-d{ background:linear-gradient(150deg,#9BA98A,#5C6650); }
.tone-e{ background:linear-gradient(150deg,#E3D6BB,#B08D57); }
.tone-f{ background:linear-gradient(150deg,#CBB196,#5B4A3A); }
.tone-g{ background:linear-gradient(150deg,#E6DCC6,#A8823F); }
.tone-h{ background:linear-gradient(150deg,#D2C4A6,#7C8768); }

/* Portfolio grid: hover reveals a tinted layer instead of zooming */
#portfolio-grid .card:hover .img{ transform:none; }
#portfolio-grid .card .img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(51,38,30,0.08) 0%, rgba(51,38,30,0.55) 100%);
  opacity:0; transition:opacity .4s ease;
}
#portfolio-grid .card:hover .img::after{ opacity:1; }
#portfolio-grid .card .caption{ transition:transform .4s ease; }
#portfolio-grid .card:hover .caption{ transform:translateY(-2px); }

/* ---------- ABOUT / SPLIT ---------- */
.about-split{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.about-split .imgcol{ background:linear-gradient(160deg,#D9C7A8,#8C7A5C); min-height:360px; background-size:cover; background-position:center; }
.about-split .textcol{ padding:56px 48px; display:flex; flex-direction:column; justify-content:center; }
.eyebrow{ font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--clay); margin-bottom:14px; }
.about-split h2{ font-size:30px; line-height:1.2; margin-bottom:16px; }
.about-split p{ font-size:14.5px; line-height:1.75; opacity:0.8; max-width:440px; margin:0 0 10px; }

/* ---------- FILTER TABS (portfolio/antiques) ---------- */
.filters{ display:flex; gap:10px; flex-wrap:wrap; margin:24px 0 32px; }
.filter-btn{
  font-size:12px; letter-spacing:0.05em; text-transform:uppercase; padding:9px 18px;
  border:1px solid var(--line); background:transparent; cursor:pointer; color:var(--umber); opacity:0.7;
}
.filter-btn.active{ border-color:var(--umber); opacity:1; background:var(--umber); color:var(--bone); }

/* ---------- PRESS STRIP ---------- */
.press{
  display:flex; justify-content:space-around; align-items:center; flex-wrap:wrap; gap:20px;
  padding:28px 40px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  font-family:'Fraunces',serif; font-size:14px; letter-spacing:0.03em; opacity:0.45;
}

/* ---------- FOOTER ---------- */
.site-footer{ padding:64px 40px 40px; text-align:center; }
.site-footer h3{ font-size:26px; max-width:460px; margin:0 auto 20px; line-height:1.25; }
.signup{ display:flex; justify-content:center; max-width:380px; margin:0 auto; }
.signup input{ flex:1; border:1px solid var(--umber); border-right:none; background:transparent; padding:12px 14px; font-family:'Work Sans'; font-size:13px; color:var(--umber); }
.signup button{ border:1px solid var(--umber); background:var(--umber); color:var(--bone); padding:12px 22px; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; cursor:pointer; }
.foot-links{ display:flex; justify-content:center; gap:26px; margin:36px 0 18px; font-size:12px; letter-spacing:0.05em; text-transform:uppercase; opacity:0.65; flex-wrap:wrap; }
.foot-note{ font-size:11px; opacity:0.45; letter-spacing:0.03em; }

/* ---------- PAGE HEADER (interior pages) ---------- */
.page-header{ padding:70px 0 30px; border-bottom:1px solid var(--line); }
.page-header .eyebrow{ margin-bottom:12px; }
.page-header h1{ font-size:clamp(30px,4vw,44px); max-width:640px; line-height:1.15; }
.page-header p{ max-width:520px; font-size:15px; opacity:0.75; margin-top:16px; line-height:1.7; }

/* ---------- FORM ---------- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:640px; }
.form-grid.full{ grid-template-columns:1fr; }
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
.field label{ font-size:12px; letter-spacing:0.05em; text-transform:uppercase; opacity:0.65; }
.field input, .field select, .field textarea{
  border:1px solid var(--line); background:transparent; padding:12px 14px; font-family:'Work Sans'; font-size:14px; color:var(--umber);
}
.field textarea{ resize:vertical; min-height:120px; }

/* ---------- LIGHTBOX ---------- */
.lightbox-overlay{
  position:fixed; inset:0; z-index:1000;
  background:rgba(20,15,10,0.94);
  display:none; align-items:center; justify-content:center;
}
.lightbox-overlay.open{ display:flex; }
.lightbox-img{
  max-width:88vw; max-height:82vh; object-fit:contain;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.lightbox-close, .lightbox-arrow{
  position:absolute; background:none; border:none; cursor:pointer;
  color:var(--bone); opacity:0.85; transition:opacity .2s ease;
}
.lightbox-close:hover, .lightbox-arrow:hover{ opacity:1; }
.lightbox-close{ top:22px; right:28px; font-size:32px; line-height:1; }
.lightbox-arrow{ top:50%; transform:translateY(-50%); font-size:38px; padding:16px 18px; }
.lightbox-prev{ left:6px; }
.lightbox-next{ right:6px; }
.lightbox-caption{
  position:absolute; bottom:26px; left:20px; right:20px; text-align:center;
  color:var(--bone); font-size:12.5px; opacity:0.75; letter-spacing:0.02em;
}
.lightbox-counter{
  position:absolute; top:26px; left:28px;
  color:var(--bone); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; opacity:0.6;
}
@media (max-width:640px){
  .lightbox-arrow{ font-size:28px; padding:10px 12px; }
  .lightbox-close{ font-size:26px; top:14px; right:16px; }
  .lightbox-counter{ top:16px; left:16px; }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 860px){
  .grid2, .grid3, .pkg-grid, .book-grid{ grid-template-columns:1fr !important; }
  .grid4{ grid-template-columns:1fr 1fr !important; gap:14px !important; }
  .about-split{ grid-template-columns:1fr; }
  .spectrum-track{ grid-template-columns:1fr; gap:40px; }
  .spectrum-bar{ display:none; }
  .site-nav{ position:relative; flex-wrap:wrap; }
  .navlinks{
    display:none; flex-direction:column; gap:0;
    position:absolute; top:100%; left:0; right:0;
    background:var(--bone); border-bottom:1px solid var(--line);
    padding:6px 22px 18px; z-index:99;
  }
  .navlinks.open{ display:flex; }
  .navlinks a{
    padding:14px 0; border-bottom:1px solid var(--line);
    font-size:13px; opacity:0.85;
  }
  .navlinks a:last-child{ border-bottom:none; }
  .nav-toggle{ display:block; }
  .wordmark{ font-size:15px; gap:6px; }
  .wordmark span{ font-size:10px; }
  .form-grid{ grid-template-columns:1fr; }
  .wrap{ padding:0 22px; }
  .hero, .site-nav, .site-footer{ padding-left:22px; padding-right:22px; }
  .hero .actions{ flex-wrap:wrap; }
  .project-meta{ grid-template-columns:1fr 1fr !important; }
}
