/* ============================================================================
   VAEN — STYLES
   Aesthetic: editorial luxury / quiet streetwear (bone × ink)
   ============================================================================ */

/* ---------- Design tokens ---------- */
:root{
  --bone:        #ECEAE3;
  --paper:       #F6F4EF;
  --ink:         #0B0B0B;
  --ink-soft:    #2A2A28;
  --stone:       #8A867C;
  --line:        #C9C5BA;
  --line-dark:   #2C2C2E;
  --black:       #0C0C0D;
  --bone-dim:    #DBD8CF;
  --accent:      #7A1B12;          /* oxblood — sold out / sale */
  --white:       #F4F2EC;

  --font-display: 'Bebas Neue', Impact, sans-serif;
  --font-body:    'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --font-mono:    'Space Mono', 'Courier New', monospace;

  --maxw: 1600px;
  --gutter: clamp(20px, 5vw, 72px);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  font-family:var(--font-body);
  background:var(--bone);
  color:var(--ink);
  line-height:1.5;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  opacity:0;
  animation:bodyIn .6s var(--ease) forwards;
}
@keyframes bodyIn{ to{ opacity:1; } }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; }

/* film grain overlay */
body::after{
  content:""; position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:.035; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Typography helpers ---------- */
.kicker{
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--stone);
}
.display{
  font-family:var(--font-display);
  font-weight:400; line-height:.86; letter-spacing:.01em;
  text-transform:uppercase;
}
.mono{ font-family:var(--font-mono); }

/* ---------- Layout ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
section{ position:relative; }
.section-pad{ padding-block:clamp(64px,10vw,140px); }

/* ============================================================================
   TICKER
   ============================================================================ */
.ticker{
  background:var(--ink); color:var(--bone);
  overflow:hidden; white-space:nowrap;
  border-bottom:1px solid var(--line-dark);
  font-family:var(--font-mono); font-size:11px; letter-spacing:.22em;
}
.ticker__track{ display:inline-flex; gap:0; padding-block:9px; animation:ticker 32s linear infinite; }
.ticker__track span{ padding-inline:1.4em; }
@keyframes ticker{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ============================================================================
   HEADER
   ============================================================================ */
.header{
  position:sticky; top:0; z-index:200;
  background:rgba(236,234,227,.82);
  backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--line);
  transition:transform .4s var(--ease);
}
.header__inner{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  height:74px; padding-inline:var(--gutter);
}
.header__nav{ display:flex; gap:34px; }
.header__nav a{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  font-weight:500; position:relative; padding-block:4px;
}
.header__nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--ink); transition:width .4s var(--ease);
}
.header__nav a:hover::after,.header__nav a.is-active::after{ width:100%; }
.header__logo{ justify-self:center; }
.header__logo img{ height:36px; width:auto; }
.header__actions{ justify-self:end; display:flex; align-items:center; gap:22px; }
.icon-btn{
  display:inline-flex; align-items:center; gap:7px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
}
.icon-btn svg{ width:19px; height:19px; }
.wish-count{
  min-width:17px; height:17px; padding:0 4px; border-radius:9px;
  background:var(--ink); color:var(--bone);
  font-size:10px; display:inline-flex; align-items:center; justify-content:center;
  transform:scale(0); transition:transform .3s var(--ease);
}
.wish-count.is-on{ transform:scale(1); }
.burger{ display:none; }

/* ============================================================================
   HERO
   ============================================================================ */
.hero{ position:relative; height:clamp(560px,92vh,1000px); overflow:hidden; background:var(--black); }
.hero__media{ position:absolute; inset:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; opacity:.92;
  transform:scale(1.06); animation:heroZoom 9s var(--ease) forwards; }
@keyframes heroZoom{ to{ transform:scale(1); } }
.hero::before{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,0) 35%, rgba(0,0,0,.55) 100%); }
.hero__content{
  position:absolute; z-index:2; inset:0;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:var(--gutter); padding-bottom:clamp(40px,7vw,90px);
  color:var(--bone);
}
.hero__kicker{ color:rgba(244,242,236,.7); margin-bottom:22px; overflow:hidden; }
.hero__kicker span,.hero__title span{ display:inline-block; transform:translateY(110%); animation:rise .9s var(--ease) forwards; }
.hero__title{ font-size:clamp(58px,16vw,260px); margin-bottom:30px; }
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .line:nth-child(2) span{ animation-delay:.08s; }
@keyframes rise{ to{ transform:translateY(0); } }
.hero__row{ display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:24px; }
.hero__sub{ max-width:34ch; font-size:15px; color:rgba(244,242,236,.82); }

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  padding:15px 26px; border:1px solid currentColor; border-radius:2px;
  transition:background .35s var(--ease), color .35s var(--ease), gap .35s var(--ease);
}
.btn:hover{ gap:20px; }
.btn--light{ color:var(--bone); }
.btn--light:hover{ background:var(--bone); color:var(--ink); }
.btn--dark{ color:var(--ink); }
.btn--dark:hover{ background:var(--ink); color:var(--bone); }
.btn--solid{ background:var(--ink); color:var(--bone); border-color:var(--ink); }
.btn--solid:hover{ background:transparent; color:var(--ink); }
.btn--block{ width:100%; justify-content:center; }

/* ============================================================================
   SECTION HEAD
   ============================================================================ */
.shead{ display:flex; align-items:flex-end; justify-content:space-between;
  gap:24px; padding-bottom:36px; border-bottom:1px solid var(--line); margin-bottom:48px; flex-wrap:wrap; }
.shead__title{ font-size:clamp(34px,6vw,86px); }
.shead__link{ font-family:var(--font-mono); font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; display:inline-flex; gap:9px; align-items:center; }
.shead__link:hover{ gap:15px; transition:gap .3s var(--ease); }

/* ============================================================================
   PRODUCT GRID
   ============================================================================ */
.filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:42px; }
.filters button{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  padding:9px 16px; border:1px solid var(--line); border-radius:99px;
  color:var(--ink-soft); transition:.3s var(--ease);
}
.filters button:hover{ border-color:var(--ink); }
.filters button.is-active{ background:var(--ink); color:var(--bone); border-color:var(--ink); }

.grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px 28px; }
.grid--3{ grid-template-columns:repeat(3,1fr); }

.card{ position:relative; opacity:0; transform:translateY(22px);
  animation:cardIn .7s var(--ease) forwards; }
@keyframes cardIn{ to{ opacity:1; transform:none; } }
.card__media{
  position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--bone-dim);
  border:1px solid var(--line);
}
.card__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:opacity .6s var(--ease), transform 1.2s var(--ease); }
.card__media img.is-back{ opacity:0; }
.card:hover .card__media img.is-front{ opacity:0; }
.card:hover .card__media img.is-back{ opacity:1; }
.card:hover .card__media img{ transform:scale(1.04); }

.card__badge{
  position:absolute; top:14px; left:14px; z-index:3;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  background:var(--ink); color:var(--bone); padding:5px 10px;
}
.card__badge--out{ background:transparent; color:var(--ink); border:1px solid var(--ink); }

.card__wish{
  position:absolute; top:10px; right:10px; z-index:3;
  width:40px; height:40px; border-radius:50%;
  background:rgba(246,244,239,.85); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(-6px); transition:.35s var(--ease);
}
.card:hover .card__wish{ opacity:1; transform:none; }
.card__wish svg{ width:18px; height:18px; }
.card__wish.is-wished{ background:var(--ink); color:var(--bone); opacity:1; transform:none; }
.card__wish.is-wished svg{ fill:var(--bone); }

.card__info{ display:flex; justify-content:space-between; gap:14px; padding:16px 2px 0; align-items:baseline; }
.card__name{ font-size:14px; font-weight:500; letter-spacing:.01em; }
.card__sku{ font-family:var(--font-mono); font-size:10.5px; color:var(--stone);
  letter-spacing:.08em; margin-top:3px; }
.card__price{ font-family:var(--font-mono); font-size:13px; white-space:nowrap; }
.card__price.is-out{ color:var(--stone); text-decoration:line-through; }

/* ============================================================================
   FEATURE / SPLIT
   ============================================================================ */
.split{ display:grid; grid-template-columns:1.1fr .9fr; align-items:stretch; }
.split--rev{ grid-template-columns:.9fr 1.1fr; }
.split__media{ position:relative; min-height:520px; overflow:hidden; background:var(--black); }
.split__media img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.split__body{ display:flex; flex-direction:column; justify-content:center;
  gap:26px; padding:clamp(40px,6vw,90px); background:var(--ink); color:var(--bone); }
.split__title{ font-size:clamp(40px,5.5vw,92px); }
.split__text{ max-width:42ch; color:rgba(244,242,236,.78); font-size:15px; }

/* ============================================================================
   MARQUEE BIG (logo word band)
   ============================================================================ */
.band{ background:var(--ink); color:var(--bone); overflow:hidden; padding-block:26px; white-space:nowrap; }
.band__track{ display:inline-flex; animation:ticker 38s linear infinite; }
.band__track span{ font-family:var(--font-display); font-size:clamp(56px,11vw,150px);
  letter-spacing:.04em; padding-inline:.35em; opacity:.92; }
.band__track .dot{ align-self:center; opacity:.5; }

/* ============================================================================
   LOOKBOOK
   ============================================================================ */
.look-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:300px; gap:14px; }
.look{ position:relative; overflow:hidden; background:var(--bone-dim); }
.look img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.look:hover img{ transform:scale(1.05); }
.look.tall{ grid-row:span 2; }
.look.wide{ grid-column:span 2; }
.look__cap{ position:absolute; left:16px; bottom:14px; color:var(--bone);
  font-family:var(--font-mono); font-size:11px; letter-spacing:.1em;
  text-shadow:0 1px 14px rgba(0,0,0,.6); }

/* ============================================================================
   PAGE HEADER (subpages)
   ============================================================================ */
.phead{ border-bottom:1px solid var(--line); padding-block:clamp(50px,9vw,120px) clamp(34px,5vw,60px); }
.phead__title{ font-size:clamp(54px,13vw,200px); }
.phead__meta{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px;
  margin-top:24px; font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; color:var(--stone); }

/* ============================================================================
   PRODUCT DETAIL
   ============================================================================ */
.pdp{ display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(28px,5vw,80px); align-items:start; }
.pdp__gallery{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pdp__gallery .g-img{ aspect-ratio:4/5; overflow:hidden; background:var(--bone-dim); border:1px solid var(--line); }
.pdp__gallery .g-img:first-child{ grid-column:1 / -1; }
.pdp__gallery img{ width:100%; height:100%; object-fit:cover; }
.pdp__info{ position:sticky; top:100px; display:flex; flex-direction:column; gap:22px; }
.pdp__sku{ font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; color:var(--stone); }
.pdp__name{ font-size:clamp(36px,4.5vw,64px); line-height:.95; }
.pdp__price{ font-family:var(--font-mono); font-size:19px; }
.pdp__desc{ font-size:15px; color:var(--ink-soft); max-width:46ch; }
.pdp__divider{ height:1px; background:var(--line); }
.spec{ display:flex; gap:16px; font-size:13.5px; }
.spec dt{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--stone); min-width:96px; }
.sizes{ display:flex; gap:8px; flex-wrap:wrap; }
.sizes button{ min-width:50px; padding:12px 10px; border:1px solid var(--line);
  font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; transition:.25s var(--ease); }
.sizes button:hover{ border-color:var(--ink); }
.sizes button.is-active{ background:var(--ink); color:var(--bone); border-color:var(--ink); }
.field-label{ font-family:var(--font-mono); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--stone); margin-bottom:10px; }
.pdp__wishbtn .heart{ width:17px; height:17px; transition:.3s; }
.pdp__wishbtn.is-wished .heart{ fill:var(--bone); }

/* ============================================================================
   CONTACT
   ============================================================================ */
.contact{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,6vw,90px); align-items:start; }
.form-row{ margin-bottom:22px; }
.form-row label{ display:block; font-family:var(--font-mono); font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--stone); margin-bottom:9px; }
.input,.textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
  padding:11px 2px; font-family:var(--font-body); font-size:15px; color:var(--ink);
  transition:border-color .3s var(--ease);
}
.input:focus,.textarea:focus{ outline:none; border-color:var(--ink); }
.textarea{ resize:vertical; min-height:120px; }
.cinfo{ display:flex; flex-direction:column; gap:30px; }
.cinfo__block .field-label{ margin-bottom:7px; }
.cinfo__block p{ font-size:15.5px; }
.form-note{ font-family:var(--font-mono); font-size:11px; color:var(--stone); margin-top:18px; }
.form-success{ display:none; padding:18px; border:1px solid var(--ink); margin-top:18px;
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em; }
.form-success.is-on{ display:block; animation:cardIn .5s var(--ease); }

/* FAQ accordion */
.faq{ border-top:1px solid var(--line); margin-top:clamp(50px,8vw,90px); }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:26px 0; text-align:left; font-size:clamp(17px,2.2vw,24px); font-weight:500; }
.faq__q .pm{ font-family:var(--font-mono); font-size:22px; transition:transform .3s var(--ease); }
.faq__item.is-open .pm{ transform:rotate(45deg); }
.faq__a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq__a p{ padding-bottom:26px; max-width:70ch; color:var(--ink-soft); font-size:15px; }

/* ============================================================================
   WISHLIST PAGE
   ============================================================================ */
.empty{ text-align:center; padding-block:clamp(60px,12vw,140px); }
.empty__title{ font-size:clamp(40px,8vw,110px); margin-bottom:18px; }
.empty p{ color:var(--stone); margin-bottom:30px; font-size:15px; }
.wl-card .card__wish{ opacity:1; transform:none; background:var(--ink); color:var(--bone); }
.wl-card .card__wish svg{ fill:var(--bone); }

/* ============================================================================
   FOOTER
   ============================================================================ */
.footer{ background:var(--ink); color:var(--bone); padding-top:clamp(60px,8vw,100px); }
.footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px;
  padding-bottom:60px; border-bottom:1px solid var(--line-dark); }
.footer__brand img{ height:30px; margin-bottom:20px; }
.footer__brand p{ color:rgba(244,242,236,.6); font-size:13.5px; max-width:32ch; }
.footer__col h4{ font-family:var(--font-mono); font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(244,242,236,.45); margin-bottom:18px; }
.footer__col a{ display:block; font-size:14px; padding:6px 0; color:rgba(244,242,236,.85);
  transition:color .25s; }
.footer__col a:hover{ color:var(--bone); }
.news{ display:flex; border-bottom:1px solid var(--line-dark); }
.news input{ flex:1; background:transparent; border:none; color:var(--bone);
  font-family:var(--font-mono); font-size:13px; padding:10px 0; }
.news input:focus{ outline:none; }
.news input::placeholder{ color:rgba(244,242,236,.4); }
.news button{ font-family:var(--font-mono); font-size:18px; padding-left:14px; }
.footer__bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px;
  padding-block:30px; font-family:var(--font-mono); font-size:11px; letter-spacing:.08em;
  color:rgba(244,242,236,.5); }

/* ============================================================================
   TOAST
   ============================================================================ */
.toast{
  position:fixed; left:50%; bottom:34px; transform:translate(-50%,24px);
  z-index:9000; background:var(--ink); color:var(--bone);
  padding:15px 24px; font-family:var(--font-mono); font-size:12px; letter-spacing:.08em;
  display:flex; align-items:center; gap:12px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:transform .5s var(--ease), opacity .4s var(--ease), visibility .4s;
}
.toast.is-on{ transform:translate(-50%,0); opacity:1; visibility:visible; }
.toast svg{ width:16px; height:16px; }

/* ============================================================================
   MOBILE MENU
   ============================================================================ */
.mobile-menu{ position:fixed; inset:0; z-index:300; background:var(--bone);
  transform:translateY(-100%); transition:transform .55s var(--ease);
  display:flex; flex-direction:column; padding:var(--gutter); }
.mobile-menu.is-open{ transform:translateY(0); }
.mobile-menu__top{ display:flex; justify-content:space-between; align-items:center; height:74px;
  margin:calc(var(--gutter)*-1) calc(var(--gutter)*-1) 0; padding-inline:var(--gutter);
  border-bottom:1px solid var(--line); }
.mobile-menu__top img{ height:24px; }
.mobile-menu nav{ display:flex; flex-direction:column; gap:6px; margin-top:auto; margin-bottom:auto; }
.mobile-menu nav a{ font-family:var(--font-display); font-size:54px; line-height:1.04; text-transform:uppercase; }

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media(max-width:1100px){
  .grid{ grid-template-columns:repeat(3,1fr); }
  .footer__top{ grid-template-columns:1fr 1fr; gap:36px; }
}
@media(max-width:860px){
  .header__nav{ display:none; }
  .header__inner{ grid-template-columns:auto 1fr auto; }
  .header__logo{ justify-self:start; }
  .burger{ display:inline-flex; }
  .icon-btn span{ display:none; }
  .split,.split--rev{ grid-template-columns:1fr; }
  .split--rev .split__media{ order:-1; }
  .pdp{ grid-template-columns:1fr; }
  .pdp__info{ position:static; }
  .contact{ grid-template-columns:1fr; }
  .look-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:240px; }
}
@media(max-width:600px){
  .grid,.grid--3{ grid-template-columns:repeat(2,1fr); gap:2px 14px; }
  .pdp__gallery{ grid-template-columns:1fr; }
  .pdp__gallery .g-img:first-child{ grid-column:auto; }
  .footer__top{ grid-template-columns:1fr; }
  .look-grid{ grid-template-columns:1fr; }
  .look.wide{ grid-column:auto; }
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
}

/* ============================================================================
   COOKIE CONSENT
   ============================================================================ */
.cookie{
  position:fixed; left:var(--gutter); right:var(--gutter); bottom:var(--gutter); z-index:9500;
  max-width:780px; margin:0 auto; background:var(--ink); color:var(--bone);
  border:1px solid var(--line-dark); padding:18px 22px;
  display:flex; gap:22px; align-items:center; justify-content:space-between; flex-wrap:wrap;
  transform:translateY(180%); transition:transform .55s var(--ease);
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}
.cookie.is-on{ transform:translateY(0); }
.cookie__text{ font-family:var(--font-mono); font-size:11.5px; line-height:1.7; letter-spacing:.02em;
  color:rgba(244,242,236,.82); flex:1; min-width:240px; }
.cookie__text a{ text-decoration:underline; color:var(--bone); }
.cookie__actions{ display:flex; gap:10px; flex:none; }
.cookie__btn{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  padding:12px 18px; border:1px solid var(--bone); border-radius:2px; transition:.25s var(--ease); cursor:pointer; }
.cookie__btn--ghost{ background:transparent; color:var(--bone); }
.cookie__btn--ghost:hover{ background:rgba(244,242,236,.12); }
.cookie__btn--solid{ background:var(--bone); color:var(--ink); }
.cookie__btn--solid:hover{ opacity:.85; }
@media(max-width:560px){
  .cookie{ left:10px; right:10px; bottom:10px; padding:16px; }
  .cookie__actions{ width:100%; }
  .cookie__btn{ flex:1; text-align:center; }
}
