/* ============================================================
   Vinayak Import & Trading — design tokens
   Concept: the site reads like a bill of lading / shipment
   manifest — the actual document that accompanies every
   import. Ink-stamp marks stand in for trust signals
   (BIS certified, quality checked, customs cleared).
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --ink:        #20262B;
  --marine:     #1C3F4D;
  --marine-dk:  #142C36;
  --brass:      #B08D57;
  --brass-dk:   #8C6D40;
  --paper:      #F6F2EA;
  --paper-2:    #EFE9DB;
  --line:       #DDD3BE;
  --stamp:      #A63A2E;
  --white:      #FFFCF6;

  --display: "Fraunces", serif;
  --body: "IBM Plex Sans", sans-serif;
  --mono: "IBM Plex Mono", monospace;
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  font-family:var(--body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

.wrap{
  max-width:1120px;
  margin:0 auto;
  padding:0 28px;
}

/* -------------------- Top bar / manifest header -------------------- */

.topbar{
  background:var(--marine);
  color:var(--paper);
}
.topbar .wrap{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.06em;
  padding-top:8px;
  padding-bottom:8px;
  flex-wrap:wrap;
  gap:6px;
  opacity:.9;
}

header.site{
  background:var(--marine);
  color:var(--white);
  border-bottom:3px solid var(--brass);
}
header.site .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:20px;
  padding-bottom:20px;
}
.brand{
  font-family:var(--display);
  font-weight:600;
  font-size:24px;
  letter-spacing:.01em;
  display:flex;
  align-items:center;
  gap:12px;
}
.brand-logo{
  width:52px;
  height:44px;
  object-fit:contain;
  border-radius:10px;
  background:var(--white);
  padding:4px 6px;
  flex-shrink:0;
}
footer .brand{ align-items:center; }
footer .brand-logo{ width:46px; height:38px; }
.brand small{
  display:block;
  font-family:var(--mono);
  font-size:11px;
  font-weight:400;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brass);
  margin-top:4px;
}
nav.main ul{
  display:flex;
  gap:28px;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
nav.main a{
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  transition:border-color .15s ease;
}
nav.main a:hover, nav.main a.active{
  border-color:var(--brass);
}
.nav-toggle{ display:none; }

@media (max-width:760px){
  nav.main ul{
    position:absolute;
    top:100%; left:0; right:0;
    flex-direction:column;
    background:var(--marine-dk);
    padding:16px 28px;
    gap:16px;
    display:none;
  }
  nav.main ul.open{ display:flex; }
  header.site{ position:relative; }
  .nav-toggle{
    display:block;
    background:none;
    border:1px solid var(--brass);
    color:var(--white);
    font-family:var(--mono);
    font-size:12px;
    padding:6px 10px;
  }
}

/* -------------------- Hero (manifest header block) -------------------- */

.hero{
  background:
    linear-gradient(180deg, var(--marine) 0%, var(--marine) 60%, var(--paper) 60%);
  padding-top:64px;
}
.manifest{
  background:var(--white);
  border:1px solid var(--line);
  box-shadow:0 18px 40px rgba(20,44,54,.18);
  padding:44px 40px 36px;
  position:relative;
}
.manifest::before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid var(--paper-2);
  pointer-events:none;
}
.manifest-eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brass-dk);
  display:flex;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding-bottom:14px;
  margin-bottom:22px;
}
.hero h1{
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(32px,5vw,52px);
  line-height:1.08;
  max-width:16ch;
}
.hero p.lede{
  margin-top:18px;
  max-width:52ch;
  font-size:17px;
  color:#3C4247;
}
.route{
  margin-top:32px;
  display:flex;
  align-items:center;
  gap:0;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.06em;
  color:var(--marine);
}
.route .port{
  border:1px solid var(--marine);
  border-radius:999px;
  padding:5px 12px;
  white-space:nowrap;
}
.route .leg{
  flex:1;
  height:1px;
  background:repeating-linear-gradient(90deg, var(--brass) 0 6px, transparent 6px 12px);
  margin:0 6px;
  position:relative;
}
.route .leg::after{
  content:"→";
  position:absolute;
  right:-2px; top:-9px;
  color:var(--brass-dk);
}
.hero-cta{
  margin-top:34px;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

.btn{
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:12px 22px;
  display:inline-block;
  border:1px solid var(--marine);
}
.btn.solid{ background:var(--marine); color:var(--white); }
.btn.solid:hover{ background:var(--marine-dk); }
.btn.ghost{ color:var(--marine); }
.btn.ghost:hover{ background:var(--paper-2); }

/* -------------------- Stamp seals (signature element) -------------------- */

.stamp{
  --c: var(--marine);
  width:104px; height:104px;
  border:2px solid var(--c);
  border-radius:50%;
  color:var(--c);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1.35;
  transform:rotate(-8deg);
  flex-shrink:0;
  position:relative;
}
.stamp::before{
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid var(--c);
  border-radius:50%;
}
.stamp.red{ --c: var(--stamp); }
.stamp.brass{ --c: var(--brass-dk); }

.stamp-row{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  align-items:flex-start;
}

/* -------------------- Sections -------------------- */

section{ padding:72px 0; }
section.tight{ padding:48px 0; }
section.alt{ background:var(--paper-2); }
section.dark{ background:var(--marine); color:var(--paper); }

.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  margin-bottom:36px;
  border-bottom:1px solid var(--line);
  padding-bottom:18px;
}
.section-head .tag{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--brass-dk);
  margin-bottom:8px;
  display:block;
}
.section-head h2{
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(24px,3.4vw,34px);
}
section.dark .section-head{ border-color:rgba(246,242,234,.25); }
section.dark .section-head .tag{ color:var(--brass); }

.grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
@media (max-width:860px){ .grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .grid{ grid-template-columns:1fr; } }

.grid.two{ grid-template-columns:repeat(2,1fr); }
@media (max-width:700px){ .grid.two{ grid-template-columns:1fr; } }

.card{
  background:var(--white);
  border:1px solid var(--line);
  padding:26px 24px;
}
.card .kicker{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--brass-dk);
  display:block;
  margin-bottom:10px;
}
.card h3{
  font-family:var(--display);
  font-size:20px;
  font-weight:600;
  margin-bottom:10px;
}
.card p{ color:#3C4247; font-size:14.5px; }

/* manifest line-item table, used for product detail + specs */
.manifest-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.manifest-table th{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:left;
  color:var(--brass-dk);
  border-bottom:1px solid var(--ink);
  padding:8px 10px;
}
.manifest-table td{
  padding:12px 10px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.manifest-table tr:last-child td{ border-bottom:none; }

/* numbered process steps — used only where order is real (sourcing / shipping) */
.steps{
  counter-reset:step;
  display:grid;
  gap:0;
}
.step{
  counter-increment:step;
  display:grid;
  grid-template-columns:64px 1fr;
  gap:20px;
  padding:26px 0;
  border-bottom:1px solid var(--line);
}
.step:first-child{ border-top:1px solid var(--line); }
.step::before{
  content:counter(step, decimal-leading-zero);
  font-family:var(--mono);
  font-size:22px;
  color:var(--brass-dk);
}
.step h3{
  font-family:var(--display);
  font-size:19px;
  font-weight:600;
  margin-bottom:6px;
}
.step p{ color:#3C4247; font-size:14.5px; max-width:64ch; }

/* -------------------- Footer -------------------- */

footer{
  background:var(--marine-dk);
  color:var(--paper);
  padding:48px 0 28px;
  font-size:14px;
}
footer .wrap{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:32px;
}
@media (max-width:700px){ footer .wrap{ grid-template-columns:1fr; } }
footer h4{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:14px;
}
footer .brand{ font-size:20px; }
footer p{ color:#C9D2D6; }
footer .fine{
  margin-top:32px;
  padding-top:20px;
  border-top:1px solid rgba(246,242,234,.15);
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.05em;
  color:#8FA2AA;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}

:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:2px;
}
