/* ==========================================================================
   VIKRI — Sustainable & Customized Gifting
   Design tokens
   Colour:
     --paper     #FBF8F2  warm ivory (page background)
     --jute      #C9A876  raw jute tan (primary accent, used sparingly)
     --clay      #A8672E  baked clay ochre (CTA / action colour)
     --forest    #454F3C  muted olive-forest (secondary accent, text on paper)
     --charcoal  #262220  warm near-black (headings, dark sections)
     --line      #DCD3C0  hairline border tone
   Type:
     display — "Fraunces" (warm, crafted, has real personality without being a
                default choice like Playfair)
     body    — "Manrope" (clean geometric sans, quiet counterpart to Fraunces)
   Layout:
     editorial, asymmetric, left-aligned. Hairline rules instead of shadows.
     A single woven-jute texture motif (SVG) marks section transitions —
     used once per page, not as decoration everywhere.
   ========================================================================== */

/* Fraunces + Manrope are loaded via <link rel="stylesheet"> in each page's
   <head> (with rel="preconnect" hints), not @import — @import blocks the
   render tree behind an extra round trip and delays first paint. */

:root{
  --paper:#FBF8F2;
  --paper-dim:#F4EEE1;
  --jute:#C9A876;
  --clay:#A8672E;
  --clay-dark:#8A5325;
  --forest:#454F3C;
  --charcoal:#262220;
  --line:#DCD3C0;
  --ink-soft:#5B5347;
  --max:1180px;
  --radius:2px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--charcoal);
  font-family:'Manrope',-apple-system,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:'Fraunces',Georgia,serif;
  font-weight:500;
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:-.01em;
  color:var(--charcoal);
}
h1{font-size:clamp(2.4rem,5vw,4.2rem);font-weight:400;}
h2{font-size:clamp(1.7rem,3.4vw,2.6rem);}
h3{font-size:1.3rem;}
p{margin:0 0 1em;color:var(--ink-soft);}
.container{max-width:var(--max);margin:0 auto;padding:0 24px;}
.section{padding:96px 0;}
.section--tight{padding:64px 0;}
.section--dim{background:var(--paper-dim);}
.section--dark{background:var(--charcoal);color:#EDE7DA;}
.section--dark h2,.section--dark h3{color:#F6F1E6;}
.section--dark p{color:#C8C0AF;}
.eyebrow{
  font-size:.8rem;
  color:var(--clay-dark);
  font-weight:600;
  letter-spacing:.02em;
  margin:0 0 .9em;
}
.lede{font-size:1.15rem;max-width:640px;color:var(--ink-soft);}
.center{text-align:center;margin-left:auto;margin-right:auto;}

/* ---- buttons ---- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  padding:14px 28px;
  font-family:'Manrope',sans-serif;
  font-weight:600;
  font-size:.95rem;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn--primary{background:var(--clay);color:#FFF9F0;}
.btn--primary:hover{background:var(--clay-dark);}
.btn--ghost{background:transparent;border-color:var(--charcoal);color:var(--charcoal);}
.btn--ghost:hover{background:var(--charcoal);color:var(--paper);}
.btn--ghost-light{background:transparent;border-color:#8A8270;color:#F6F1E6;}
.btn--ghost-light:hover{background:#F6F1E6;color:var(--charcoal);}
.btn--wa{background:#3E5240;color:#FFF9F0;}
.btn--wa:hover{background:#2E3E30;}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:1.6em;}

/* ---- header ---- */
.site-header{
  position:sticky;top:0;z-index:40;
  background:rgba(251,248,242,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:78px;}
.brand{font-family:'Fraunces',serif;font-size:1.5rem;letter-spacing:.02em;color:var(--charcoal);display:flex;flex-direction:column;align-items:flex-start;}
.brand-logo{height:30px;width:auto;display:block;}
.brand small{display:block;font-family:'Manrope',sans-serif;font-size:.62rem;font-weight:600;letter-spacing:.06em;color:var(--forest);margin-top:5px;}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{font-size:.93rem;font-weight:500;color:var(--charcoal);position:relative;}
.nav-links a:hover{color:var(--clay-dark);}
.has-dropdown{position:relative;}
.dropdown{
  position:absolute;top:100%;left:-16px;background:var(--paper);
  border:1px solid var(--line);min-width:200px;padding:8px;
  box-shadow:0 12px 24px rgba(38,34,32,.08);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:.15s ease;
}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown a{display:block;padding:9px 12px;font-size:.9rem;border-radius:var(--radius);}
.dropdown a:hover{background:var(--paper-dim);}
.nav-cta{display:flex;align-items:center;gap:12px;}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--charcoal);margin:5px 0;}

@media (max-width:920px){
  .nav-links{
    position:fixed;inset:78px 0 0 0;background:var(--paper);
    flex-direction:column;align-items:flex-start;padding:28px 24px;
    gap:4px;overflow-y:auto;
    transform:translateX(100%);transition:transform .25s ease;
  }
  .nav-links.is-open{transform:translateX(0);}
  .nav-links a{padding:14px 0;width:100%;border-bottom:1px solid var(--line);}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;border:0;padding:0 0 0 14px;display:none;box-shadow:none;}
  .has-dropdown.is-open .dropdown{display:block;}
  .nav-cta .btn--ghost{display:none;}
  .menu-toggle{display:block;}
}

/* ---- hero ---- */
.hero{position:relative;overflow:hidden;background:var(--paper-dim);}
.hero .container{
  display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;
  padding-top:72px;padding-bottom:72px;
}
.hero-trust{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:2em;font-size:.82rem;color:var(--forest);font-weight:600;}
.hero-trust span{display:flex;align-items:center;gap:8px;}
.hero-trust span::before{content:"";width:5px;height:5px;background:var(--clay);border-radius:50%;}
.hero-media{position:relative;aspect-ratio:4/4.6;background:linear-gradient(155deg,#D8C4A0,#B79766 60%,#8E7048);border-radius:var(--radius);overflow:hidden;}
.hero-media img{width:100%;height:100%;object-fit:cover;}
.hero-media .cap{position:absolute;left:18px;bottom:18px;background:rgba(38,34,32,.72);color:#F6F1E6;font-size:.75rem;padding:8px 12px;border-radius:2px;}
@media (max-width:920px){.hero .container{grid-template-columns:1fr;padding-top:44px;}}

/* ---- weave divider ---- */
.weave{height:22px;background-repeat:repeat-x;background-size:44px 22px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='22'%3E%3Cpath d='M0 11h44M11 0v22M33 0v22' stroke='%23C9A876' stroke-width='2' opacity='0.55'/%3E%3C/svg%3E");}

/* ---- grids / cards ---- */
.grid{display:grid;gap:28px;}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
.grid--2{grid-template-columns:repeat(2,1fr);}
@media (max-width:920px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.grid--3,.grid--4,.grid--2{grid-template-columns:1fr;}}

.card{border:1px solid var(--line);background:var(--paper);padding:26px;border-radius:var(--radius);}
.card .thumb{aspect-ratio:4/3;background:linear-gradient(160deg,#E4D6B8,#C9A876);border-radius:var(--radius);margin-bottom:18px;overflow:hidden;}
.card .thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.card h3{margin-bottom:.35em;font-size:1.15rem;}
.card p{font-size:.92rem;margin-bottom:1.1em;}
.card .tag{font-size:.72rem;font-weight:600;color:var(--forest);margin-bottom:.6em;display:block;}
.card-link{font-size:.85rem;font-weight:600;color:var(--clay-dark);}
.card-link::after{content:" →";}

/* category tiles */
.tile{position:relative;border:1px solid var(--line);padding:22px 20px;background:var(--paper);border-radius:var(--radius);transition:border-color .15s ease;}
.tile:hover{border-color:var(--clay);}
.tile h3{font-size:1.05rem;margin-bottom:.25em;}
.tile p{font-size:.86rem;margin:0;}

/* process steps */
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;}
@media (max-width:920px){.steps{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.steps{grid-template-columns:1fr;}}
.step{border-top:2px solid var(--clay);padding-top:16px;}
.step .num{font-family:'Fraunces',serif;font-size:1.6rem;color:var(--jute);display:block;margin-bottom:.3em;}

/* icon-value list */
.value-list{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 26px;}
@media (max-width:920px){.value-list{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.value-list{grid-template-columns:1fr;}}
.value-item .mark{width:34px;height:34px;border:1.5px solid var(--forest);border-radius:50%;margin-bottom:14px;position:relative;}
.value-item .mark::after{content:"";position:absolute;inset:9px;background:var(--forest);border-radius:50%;}
.value-item h3{font-size:1.02rem;}
.value-item p{font-size:.88rem;}

/* faq */
.faq-item{border-bottom:1px solid var(--line);padding:20px 0;}
.faq-item summary{cursor:pointer;font-family:'Fraunces',serif;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:16px;color:var(--charcoal);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-family:'Manrope',sans-serif;font-size:1.3rem;color:var(--clay);flex:none;}
.faq-item[open] summary::after{content:"–";}
.faq-item p{margin-top:12px;font-size:.94rem;}

/* form */
.form-panel{border:1px solid var(--line);background:var(--paper);padding:40px;border-radius:var(--radius);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media (max-width:700px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:6px;}
.field.full{grid-column:1/-1;}
.field label{font-size:.82rem;font-weight:600;color:var(--forest);}
.field input,.field select,.field textarea{
  font-family:'Manrope',sans-serif;font-size:.95rem;
  border:1px solid var(--line);background:#FFFDF8;
  padding:11px 12px;border-radius:var(--radius);color:var(--charcoal);
}
.field input:focus,.field select:focus,.field textarea:focus,
a:focus-visible,button:focus-visible{outline:2px solid var(--clay);outline-offset:2px;}
.field textarea{resize:vertical;min-height:96px;}
.form-note{font-size:.82rem;color:var(--ink-soft);margin-top:14px;}

/* config placeholder banner (dev only, harmless in prod) */
.config-note{background:#FBE9D0;border:1px dashed var(--clay);color:#5c3d17;font-size:.78rem;padding:8px 14px;border-radius:2px;margin-bottom:16px;}

/* breadcrumbs */
.breadcrumbs{font-size:.8rem;color:var(--ink-soft);margin-bottom:1.4em;}
.breadcrumbs a{color:var(--forest);font-weight:600;}
.breadcrumbs a:hover{color:var(--clay-dark);}

/* footer */
.site-footer{background:var(--charcoal);color:#C8C0AF;padding:72px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.site-footer h4{color:#F6F1E6;font-family:'Manrope',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.03em;margin-bottom:16px;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin-bottom:10px;font-size:.88rem;}
.site-footer a:hover{color:#F6F1E6;}
.footer-brand{font-family:'Fraunces',serif;font-size:1.6rem;color:#F6F1E6;}
.footer-logo{height:42px;width:auto;display:block;}
.footer-bottom{border-top:1px solid #3A342F;margin-top:56px;padding-top:22px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:.8rem;color:#8A8270;}

/* whatsapp float */
.wa-float{
  position:fixed;right:20px;bottom:20px;z-index:50;
  width:56px;height:56px;border-radius:50%;
  background:#3E5240;color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 20px rgba(38,34,32,.28);
}
.wa-float svg{width:26px;height:26px;}

/* mobile sticky CTA bar */
.mobile-cta{display:none;}
@media (max-width:640px){
  .mobile-cta{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:45;
    border-top:1px solid var(--line);background:var(--paper);
  }
  .mobile-cta a{flex:1;text-align:center;padding:14px 8px;font-weight:600;font-size:.88rem;}
  .mobile-cta a.quote{background:var(--clay);color:#fff;}
  .mobile-cta a.wa{background:#3E5240;color:#fff;}
  body{padding-bottom:52px;}
  .wa-float{display:none;}
}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important;}}

/* skip-to-content link: hidden off-screen until keyboard-focused */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--charcoal);color:#F6F1E6;
  padding:12px 20px;font-weight:600;font-size:.9rem;border-radius:0 0 4px 0;
}
.skip-link:focus{left:0;}
