/* =========================================================================
   BALAJEE ENTERPRISES — CORE STYLESHEET
   Design language: "Export Manifest" — deep forest greens & charcoal,
   warm turmeric/spice accents, Space Mono manifest labels, dotted trade
   routes and rotated customs-stamp badges as the signature motif.
   ========================================================================= */

/* -------------------------------------------------------------------- */
/* 1. CSS VARIABLES / THEME TOKENS                                       */
/* -------------------------------------------------------------------- */
:root{
  /* brand palette (as specified) */
  --primary:#174d32;
  --primary-dark:#0b2d1d;
  --green:#2f7d46;
  --accent:#d99a16;
  --spice:#c75b22;
  --cream:#f7f3e8;
  --earth:#6b4a2f;
  --dark:#08140e;
  --white:#ffffff;

  /* derived / functional tokens */
  --ink:#0e1f16;
  --ink-soft:#3c4c42;
  --line:rgba(14,31,22,.14);
  --line-strong:rgba(14,31,22,.28);
  --surface:var(--cream);
  --surface-alt:#efe8d6;
  --surface-card:#ffffff;
  --shadow-soft:0 20px 50px -25px rgba(8,20,14,.35);
  --shadow-strong:0 30px 70px -20px rgba(8,20,14,.5);

  /* typography */
  --font-display:"Fraunces", "Times New Roman", serif;
  --font-body:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono:"Space Mono", "Courier New", monospace;

  /* radii / spacing rhythm */
  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:32px;
  --radius-pill:999px;
  --section-pad:clamp(4.5rem, 9vw, 8rem);
  --container-pad:clamp(1.25rem, 5vw, 3.5rem);

  /* motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --dur-fast:.25s;
  --dur-med:.55s;
  --dur-slow:.9s;

  /* cursor colors */
  --cursor-color:var(--primary);

  color-scheme:light;
}

[data-theme="dark"]{
  color-scheme:dark;
  --surface:#0c1a12;
  --surface-alt:#0f2018;
  --surface-card:#122619;
  --ink:#f3efe1;
  --ink-soft:#c8d3c9;
  --line:rgba(247,243,232,.12);
  --line-strong:rgba(247,243,232,.24);
  --cream:#f3efe1;
  --shadow-soft:0 20px 50px -25px rgba(0,0,0,.6);
  --shadow-strong:0 30px 80px -20px rgba(0,0,0,.75);
}

/* -------------------------------------------------------------------- */
/* 2. RESET & BASE                                                       */
/* -------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--surface);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
  transition:background var(--dur-med) var(--ease), color var(--dur-med) var(--ease);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;object-fit:cover;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;}
.container-fluid-custom{width:100%;padding-inline:var(--container-pad);margin-inline:auto;max-width:1440px;}

h1,h2,h3,h4,h5,.font-display{font-family:var(--font-display);font-weight:600;line-height:1.05;letter-spacing:-.01em;color:var(--ink);}
h1{font-size:clamp(2.6rem,6vw,5rem);}
h2{font-size:clamp(2rem,4.2vw,3.4rem);}
h3{font-size:clamp(1.35rem,2.4vw,1.9rem);}
p{color:var(--ink-soft);}
.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--ink-soft);}

.font-mono{font-family:var(--font-mono);}
.eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--spice);
  font-weight:700;
}
.eyebrow::before{
  content:"";
  width:22px;height:1px;
  background:var(--spice);
  display:inline-block;
}
[data-theme="dark"] .eyebrow{color:var(--accent);}

::selection{background:var(--accent);color:var(--dark);}

/* focus visibility for accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
  border-radius:4px;
}

/* -------------------------------------------------------------------- */
/* 3. GRAIN / NOISE OVERLAY                                              */
/* -------------------------------------------------------------------- */
.grain-overlay{
  position:fixed;inset:0;z-index:2;pointer-events:none;
  opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* -------------------------------------------------------------------- */
/* 4. PRELOADER                                                          */
/* -------------------------------------------------------------------- */
#preloader{
  position:fixed;inset:0;z-index:9999;
  background:var(--dark);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.5rem;
}
#preloader .loader-mark{
  font-family:var(--font-display);
  font-size:clamp(1.6rem,4vw,2.6rem);
  color:var(--cream);
  letter-spacing:.02em;
  display:flex;gap:.15em;
  overflow:hidden;
}
#preloader .loader-mark span{display:inline-block;transform:translateY(110%);}
#preloader .loader-sub{
  font-family:var(--font-mono);
  font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);
  opacity:0;
}
.loader-seed{
  width:46px;height:46px;position:relative;
}
.loader-seed svg{width:100%;height:100%;}
.loader-seed .ring{
  fill:none;stroke:var(--green);stroke-width:2;stroke-dasharray:145;stroke-dashoffset:145;
  transform-origin:center;
}
#preloader .loader-bar{
  width:180px;height:1px;background:rgba(247,243,232,.15);position:relative;overflow:hidden;
}
#preloader .loader-bar span{
  position:absolute;left:0;top:0;bottom:0;width:0%;background:var(--accent);
}

/* -------------------------------------------------------------------- */
/* 5. CUSTOM CURSOR                                                       */
/* -------------------------------------------------------------------- */
.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;pointer-events:none;z-index:9998;
  border-radius:50%;
  transform:translate(-50%,-50%);
  mix-blend-mode:difference;
}
.cursor-dot{width:8px;height:8px;background:var(--cream);}
.cursor-ring{
  width:38px;height:38px;border:1px solid var(--cream);
  transition:width .25s var(--ease),height .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease);
}
.cursor-ring.is-hover{width:64px;height:64px;background:rgba(217,154,22,.15);}
.cursor-ring.is-image{width:90px;height:90px;background:rgba(217,154,22,.12);}
body.has-custom-cursor,body.has-custom-cursor a,body.has-custom-cursor button{cursor:none;}
@media (hover:none),(pointer:coarse){
  .cursor-dot,.cursor-ring{display:none !important;}
  body.has-custom-cursor{cursor:auto;}
}

/* -------------------------------------------------------------------- */
/* 6. SCROLL PROGRESS + BACK TO TOP                                      */
/* -------------------------------------------------------------------- */
#scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0%;
  background:linear-gradient(90deg,var(--spice),var(--accent));
  z-index:9997;
}
#back-to-top{
  position:fixed;right:clamp(1rem,4vw,2.4rem);bottom:clamp(1rem,4vw,2.4rem);
  width:52px;height:52px;border-radius:50%;
  background:var(--primary);color:var(--cream);border:1px solid rgba(247,243,232,.25);
  display:flex;align-items:center;justify-content:center;
  font-size:1.15rem;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;
  z-index:900;box-shadow:var(--shadow-soft);
}
#back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);}

/* -------------------------------------------------------------------- */
/* 7. BUTTONS                                                             */
/* -------------------------------------------------------------------- */
.btn-balajee{
  position:relative;
  display:inline-flex;align-items:center;gap:.7em;
  padding:.95em 1.7em;
  font-family:var(--font-mono);
  font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;
  border-radius:var(--radius-pill);
  border:1px solid transparent;
  overflow:hidden;
  isolation:isolate;
  transition:color .35s var(--ease),border-color .35s var(--ease),transform .2s var(--ease);
}
.btn-balajee .btn-arrow{transition:transform .35s var(--ease);display:inline-flex;}
.btn-balajee:hover .btn-arrow{transform:translate(4px,-3px);}
.btn-balajee::before{
  content:"";position:absolute;inset:0;z-index:-1;
  transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease);
}
.btn-balajee:hover::before{transform:scaleX(1);}

.btn-primary-fill{background:var(--primary);color:var(--cream);border-color:var(--primary);}
.btn-primary-fill::before{background:var(--spice);}
.btn-primary-fill:hover{color:var(--cream);}

.btn-outline-cream{background:transparent;color:var(--cream);border-color:rgba(247,243,232,.5);}
.btn-outline-cream::before{background:var(--cream);}
.btn-outline-cream:hover{color:var(--dark);}

.btn-outline-ink{background:transparent;color:var(--ink);border-color:var(--line-strong);}
.btn-outline-ink::before{background:var(--primary);}
.btn-outline-ink:hover{color:var(--cream);}

.btn-small{padding:.7em 1.3em;font-size:.68rem;}

/* magnetic wrapper */
.magnetic{display:inline-block;}

/* -------------------------------------------------------------------- */
/* 8. NAVBAR                                                              */
/* -------------------------------------------------------------------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:1.4rem 0;
  transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  padding:.8rem 0;
  background:rgba(8,20,14,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 10px 40px -20px rgba(0,0,0,.5);
  border-bottom-color:rgba(247,243,232,.08);
}
.site-header .nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}

.brand{display:flex;align-items:center;gap:.65rem;color:var(--cream);}
.brand .brand-mark{
  width:38px;height:38px;flex:none;
  transition:transform .5s var(--ease);
}
.site-header.is-scrolled .brand .brand-mark{transform:scale(.9);}
.brand .brand-text{font-family:var(--font-display);font-size:1.15rem;letter-spacing:.01em;line-height:1.1;}
.brand .brand-text small{display:block;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;margin-top:.15em;}

.main-nav{display:flex;align-items:center;gap:2.1rem;}
.main-nav .nav-link{
  position:relative;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(247,243,232,.82);padding:.4em 0;font-weight:700;
}
.main-nav .nav-link::after{
  content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:var(--accent);
  transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease);
}
.main-nav .nav-link:hover::after,.main-nav .nav-link.active::after{transform:scaleX(1);transform-origin:left;}
.main-nav .nav-link.active{color:var(--cream);}

.nav-cta{display:flex;align-items:center;gap:1.1rem;}

/* products dropdown */
.nav-dropdown{position:relative;}
.nav-dropdown>.nav-link{display:flex;align-items:center;gap:.35em;}
.nav-dropdown .caret{font-size:.6rem;transition:transform .35s var(--ease);}
.nav-dropdown.is-open .caret{transform:rotate(180deg);}
.dropdown-panel{
  position:absolute;top:calc(100% + 1.1rem);left:50%;translate:-50% 0;
  width:min(560px,90vw);
  background:var(--surface-card);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-strong);
  border:1px solid var(--line);
  padding:1.4rem;
  display:grid;grid-template-columns:repeat(2,1fr);gap:.2rem;
  opacity:0;visibility:hidden;transform:translate(-50%,10px);
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
  z-index:50;
}
.nav-dropdown.is-open .dropdown-panel{opacity:1;visibility:visible;transform:translate(-50%,0);}
.dropdown-panel a{
  display:flex;align-items:center;gap:.6em;padding:.6em .7em;border-radius:8px;
  font-family:var(--font-body);font-size:.86rem;color:var(--ink);
  transition:background .25s var(--ease),padding-left .25s var(--ease),color .25s var(--ease);
}
.dropdown-panel a i{color:var(--spice);font-size:.85em;}
.dropdown-panel a:hover{background:var(--surface-alt);padding-left:1rem;color:var(--primary);}

.nav-toggle{
  display:none;width:46px;height:46px;border-radius:50%;border:1px solid rgba(247,243,232,.3);
  background:transparent;flex:none;position:relative;align-items:center;justify-content:center;
}
.nav-toggle span{
  position:absolute;left:13px;right:13px;height:1px;background:var(--cream);transition:transform .35s var(--ease),opacity .3s var(--ease);
}
.nav-toggle span:nth-child(1){top:17px;}
.nav-toggle span:nth-child(2){top:23px;}
.nav-toggle span:nth-child(3){top:29px;}
.nav-toggle.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

.theme-toggle{
  width:42px;height:42px;border-radius:50%;border:1px solid rgba(247,243,232,.3);
  background:transparent;color:var(--cream);display:flex;align-items:center;justify-content:center;font-size:1rem;
  transition:background .3s var(--ease),color .3s var(--ease);
}
.theme-toggle:hover{background:rgba(247,243,232,.12);}

/* -------------------------------------------------------------------- */
/* 9. OFF-CANVAS MOBILE MENU                                              */
/* -------------------------------------------------------------------- */
.offcanvas-nav{
  position:fixed;inset:0;z-index:1200;
  visibility:hidden;
  pointer-events:none;
}
.offcanvas-nav.is-open{visibility:visible;pointer-events:auto;}
.offcanvas-backdrop{
  position:absolute;inset:0;background:rgba(8,20,14,.6);backdrop-filter:blur(4px);
  opacity:0;transition:opacity .4s var(--ease);
}
.offcanvas-nav.is-open .offcanvas-backdrop{opacity:1;}
.offcanvas-panel{
  position:absolute;top:0;right:0;bottom:0;width:min(420px,86vw);
  background:var(--dark);
  padding:6.5rem 2.2rem 2.2rem;
  display:flex;flex-direction:column;gap:2.2rem;
  transform:translateX(100%);
  transition:transform .55s var(--ease);
  overflow-y:auto;
}
.offcanvas-nav.is-open .offcanvas-panel{transform:translateX(0);}
.offcanvas-nav .oc-link{
  font-family:var(--font-display);font-size:1.9rem;color:var(--cream);
  display:block;padding:.35em 0;border-bottom:1px solid rgba(247,243,232,.1);
  opacity:0;transform:translateY(16px);
}
.offcanvas-nav .oc-sub{padding-left:1rem;display:none;flex-direction:column;gap:.15rem;margin-top:.4rem;}
.offcanvas-nav .oc-sub.is-open{display:flex;}
.offcanvas-nav .oc-sub a{
  font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(247,243,232,.7);padding:.5em 0;
}
.oc-close{
  position:absolute;top:1.6rem;right:1.6rem;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(247,243,232,.3);background:transparent;color:var(--cream);
}
.oc-meta{margin-top:auto;padding-top:1.5rem;border-top:1px solid rgba(247,243,232,.12);}
.oc-meta a{display:flex;gap:.6em;align-items:center;color:rgba(247,243,232,.75);font-size:.85rem;padding:.35em 0;}
.oc-meta a i{color:var(--accent);}

/* -------------------------------------------------------------------- */
/* 10. HERO                                                               */
/* -------------------------------------------------------------------- */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:flex-end;
  overflow:hidden;background:var(--dark);color:var(--cream);
  padding-top:8rem;
}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);will-change:transform;}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(8,20,14,.55) 0%,rgba(8,20,14,.35) 35%,rgba(8,20,14,.85) 100%),
    linear-gradient(90deg,rgba(8,20,14,.75) 0%,rgba(8,20,14,.15) 55%);
}
.hero-inner{position:relative;z-index:3;width:100%;padding-bottom:clamp(3rem,7vw,5.5rem);}
.hero-badge-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem;}
.hero h1{color:var(--cream);max-width:16ch;overflow:hidden;}
.hero h1 .line{display:block;overflow:hidden;}
.hero h1 .line span{display:inline-block;transform:translateY(115%);}
.hero .hero-desc{max-width:44ch;color:rgba(247,243,232,.82);margin:1.6rem 0 2.4rem;opacity:0;}
.hero .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;opacity:0;}

.hero-scroll-cue{
  position:absolute;left:var(--container-pad);bottom:2rem;z-index:3;
  display:flex;align-items:center;gap:.7rem;color:rgba(247,243,232,.7);
  font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;
}
.hero-scroll-cue .cue-line{width:1px;height:34px;background:linear-gradient(180deg,var(--accent),transparent);position:relative;overflow:hidden;}

/* decorative floating elements */
.hero-deco{position:absolute;inset:0;z-index:2;pointer-events:none;}
.deco-leaf{position:absolute;opacity:.55;color:var(--green);}
.deco-ring{
  position:absolute;border:1px solid rgba(217,154,22,.35);border-radius:50%;
}
.deco-particle{position:absolute;border-radius:50%;background:var(--accent);opacity:.6;}
.deco-glow{
  position:absolute;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,rgba(217,154,22,.22),transparent 70%);
  filter:blur(10px);pointer-events:none;z-index:1;
  transform:translate(-50%,-50%);
}

/* trade-route stamp — signature motif */
.stamp{
  position:absolute;width:118px;height:118px;border:1.5px dashed rgba(247,243,232,.4);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:rgba(247,243,232,.55);
}
.stamp .stamp-text{
  font-family:var(--font-mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;text-align:center;
}

/* -------------------------------------------------------------------- */
/* 11. SECTIONS / GENERAL LAYOUT                                          */
/* -------------------------------------------------------------------- */
.section{padding-block:var(--section-pad);position:relative;}
.section-dark{background:var(--dark);color:var(--cream);}
.section-dark p{color:rgba(247,243,232,.72);}
.section-dark h2,.section-dark h3{color:var(--cream);}
.section-alt{background:var(--surface-alt);}
.section-primary{background:var(--primary);color:var(--cream);}
.section-primary p{color:rgba(247,243,232,.78);}
.section-primary h2,.section-primary h3{color:var(--cream);}

.section-head{max-width:760px;margin-bottom:clamp(2.4rem,5vw,4rem);}
.section-head.mx-auto{margin-inline:auto;text-align:center;}
.section-head h2{margin-top:.7rem;}

.divider-line{height:1px;background:var(--line);width:100%;margin-block:2rem;}
.dotted-route{
  position:relative;height:1px;background-image:linear-gradient(90deg,var(--line-strong) 40%,rgba(0,0,0,0) 0%);
  background-position:top;background-size:9px 1px;background-repeat:repeat-x;
}

/* -------------------------------------------------------------------- */
/* 12. TRUST / STAT PILLS                                                 */
/* -------------------------------------------------------------------- */
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:3rem;}
.trust-pill{
  border:1px solid var(--line);border-radius:var(--radius-md);
  padding:1.7rem 1.4rem;background:var(--surface-card);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
.trust-pill:hover{transform:translateY(-6px);box-shadow:var(--shadow-soft);border-color:var(--line-strong);}
.trust-pill i{font-size:1.6rem;color:var(--spice);margin-bottom:1rem;display:block;}
.trust-pill .pill-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
.trust-pill .pill-title{font-family:var(--font-display);font-size:1.2rem;margin-top:.4rem;}

/* -------------------------------------------------------------------- */
/* 13. PRODUCT / FEATURE CARDS                                            */
/* -------------------------------------------------------------------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.product-card{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  background:var(--surface-card);border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
  transform-style:preserve-3d;perspective:1000px;
  transition:box-shadow .4s var(--ease),border-color .4s var(--ease);
  cursor:pointer;
}
.product-card:hover{box-shadow:var(--shadow-strong);}
.product-card .card-media{position:relative;height:260px;overflow:hidden;}
.product-card .card-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.product-card:hover .card-media img{transform:scale(1.14) rotate(1deg);}
.product-card .card-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,20,14,0) 40%,rgba(8,20,14,.78) 100%);
}
.card-icon-float{
  position:absolute;top:1.1rem;right:1.1rem;z-index:2;
  width:44px;height:44px;border-radius:50%;background:rgba(247,243,232,.92);
  display:flex;align-items:center;justify-content:center;color:var(--spice);font-size:1.1rem;
  transform:translateY(0);transition:transform .45s var(--ease);
}
.product-card:hover .card-icon-float{transform:translateY(-6px) rotate(-8deg);}
.card-category{
  position:absolute;left:1.1rem;bottom:1.1rem;z-index:2;
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream);
  background:rgba(23,77,50,.55);border:1px solid rgba(247,243,232,.3);padding:.35em .8em;border-radius:var(--radius-pill);
}
.product-card .card-body{padding:1.6rem 1.6rem 1.8rem;}
.product-card .card-body h3{margin:0 0 .5rem;font-size:1.25rem;}
.product-card .card-body p{font-size:.92rem;margin-bottom:1.3rem;}
.card-cta{
  display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-mono);
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);font-weight:700;
}
[data-theme="dark"] .card-cta{color:var(--accent);}
.card-cta i{transition:transform .3s var(--ease);}
.product-card:hover .card-cta i{transform:translate(3px,-3px);}

/* why choose us feature cards */
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;}
.feature-card{
  padding:2.2rem 1.7rem;border-radius:var(--radius-md);border:1px solid rgba(247,243,232,.14);
  background:linear-gradient(160deg,rgba(247,243,232,.06),rgba(247,243,232,.01));
  position:relative;overflow:hidden;
}
.feature-card .feat-num{font-family:var(--font-mono);font-size:.7rem;color:var(--accent);letter-spacing:.15em;}
.feature-card i{font-size:1.7rem;margin:1.1rem 0;display:block;color:var(--accent);}
.feature-card h3{color:var(--cream);font-size:1.1rem;margin-bottom:.6rem;}
.feature-card p{font-size:.9rem;margin:0;}
.feature-card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(160deg,rgba(217,154,22,.4),rgba(217,154,22,0) 60%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .4s var(--ease);
}
.feature-card:hover::before{opacity:1;}

/* -------------------------------------------------------------------- */
/* 14. IMAGE EFFECT UTILITIES                                             */
/* -------------------------------------------------------------------- */
.image-reveal{position:relative;overflow:hidden;border-radius:var(--radius-lg);}
.image-reveal .reveal-mask{position:absolute;inset:0;background:var(--primary);transform-origin:left;z-index:2;}
.image-reveal img{width:100%;height:100%;object-fit:cover;}
.image-zoom{overflow:hidden;border-radius:var(--radius-lg);}
.image-zoom img{transition:transform .9s var(--ease);}
.image-zoom:hover img{transform:scale(1.08);}
.image-parallax{overflow:hidden;border-radius:var(--radius-lg);position:relative;}
.image-parallax img{width:100%;height:120%;object-fit:cover;position:relative;top:-10%;will-change:transform;}
.image-3d{transform-style:preserve-3d;perspective:1200px;}

/* -------------------------------------------------------------------- */
/* 15. STORY / VISUAL SECTION                                             */
/* -------------------------------------------------------------------- */
.story-section{position:relative;overflow:hidden;}
.story-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;height:560px;}
.story-media img{width:100%;height:100%;object-fit:cover;}
.story-lines{position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line);}
.story-copy{position:relative;}
.story-copy .route-coord{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:1rem;display:block;}

/* -------------------------------------------------------------------- */
/* 16. CATEGORY TILES                                                     */
/* -------------------------------------------------------------------- */
.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
.category-tile{
  position:relative;border-radius:var(--radius-md);overflow:hidden;height:340px;
  display:flex;align-items:flex-end;padding:1.6rem;color:var(--cream);
}
.category-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.category-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,14,.05),rgba(8,20,14,.88));}
.category-tile:hover img{transform:scale(1.1);}
.category-tile .tile-content{position:relative;z-index:2;}
.category-tile .tile-content .eyebrow{color:var(--accent);}
.category-tile h3{color:var(--cream);margin:.3rem 0 0;font-size:1.4rem;}

/* -------------------------------------------------------------------- */
/* 17. CTA SECTION                                                        */
/* -------------------------------------------------------------------- */
.cta-section{position:relative;overflow:hidden;text-align:center;}
.cta-section h2{max-width:16ch;margin-inline:auto;}
.cta-section .lead{max-width:44ch;margin-inline:auto;}

/* -------------------------------------------------------------------- */
/* 18. FOOTER                                                             */
/* -------------------------------------------------------------------- */
.site-footer{background:var(--dark);color:rgba(247,243,232,.75);position:relative;overflow:hidden;padding-top:5rem;}
.site-footer a{color:rgba(247,243,232,.75);transition:color .3s var(--ease),padding-left .3s var(--ease);}
.site-footer a:hover{color:var(--accent);padding-left:.3rem;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid rgba(247,243,232,.1);}
.footer-brand .brand-text{color:var(--cream);font-size:1.3rem;font-family:var(--font-display);}
.footer-brand p{max-width:32ch;margin-top:1rem;font-size:.92rem;}
.footer-col h4{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1.2rem;}
.footer-col ul li{margin-bottom:.7rem;font-size:.92rem;}
.footer-col address{font-style:normal;font-size:.9rem;line-height:1.7;}
.footer-social{display:flex;gap:.7rem;margin-top:1.4rem;}
.footer-social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(247,243,232,.2);display:flex;align-items:center;justify-content:center;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:1.6rem 0;font-size:.78rem;color:rgba(247,243,232,.5);font-family:var(--font-mono);flex-wrap:wrap;gap:.8rem;}
.footer-leaf-bg{position:absolute;right:-60px;top:-40px;font-size:22rem;color:rgba(247,243,232,.03);pointer-events:none;line-height:1;}

/* -------------------------------------------------------------------- */
/* 19. PAGE HERO (inner pages)                                            */
/* -------------------------------------------------------------------- */
.page-hero{
  position:relative;padding:11rem 0 5rem;background:var(--dark);color:var(--cream);overflow:hidden;
}
.page-hero .breadcrumb-mono{
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(247,243,232,.55);margin-bottom:1.2rem;
}
.page-hero h1{color:var(--cream);max-width:18ch;}
.page-hero .lead{color:rgba(247,243,232,.75);max-width:48ch;margin-top:1.2rem;}

/* -------------------------------------------------------------------- */
/* 20. ABOUT — PROCESS TIMELINE                                           */
/* -------------------------------------------------------------------- */
.process-track{position:relative;}
.process-track::before{
  content:"";position:absolute;left:26px;top:0;bottom:0;width:1px;
  background:repeating-linear-gradient(180deg,var(--line-strong) 0 6px,transparent 6px 12px);
}
.process-step{display:flex;gap:1.8rem;padding-bottom:3.2rem;position:relative;}
.process-step:last-child{padding-bottom:0;}
.process-num{
  flex:none;width:54px;height:54px;border-radius:50%;background:var(--surface-card);border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.85rem;color:var(--primary);z-index:2;
}
.process-copy h3{margin-bottom:.5rem;}

/* -------------------------------------------------------------------- */
/* 21. SERVICES PAGE CARDS                                                */
/* -------------------------------------------------------------------- */
.service-card{
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:2.4rem;background:var(--surface-card);
  height:100%;position:relative;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-strong);}
.service-card .service-icon{
  width:58px;height:58px;border-radius:50%;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;color:var(--spice);margin-bottom:1.5rem;
}
.service-card .service-num{position:absolute;top:1.6rem;right:1.8rem;font-family:var(--font-mono);font-size:.7rem;color:var(--line-strong);}
.service-card h3{margin-bottom:.7rem;}
.service-card p{font-size:.94rem;margin-bottom:0;}

/* -------------------------------------------------------------------- */
/* 22. PRODUCTS PAGE — FILTER / SEARCH / MODAL                            */
/* -------------------------------------------------------------------- */
.products-toolbar{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.2rem;align-items:center;
  margin-bottom:2.6rem;padding-bottom:1.6rem;border-bottom:1px solid var(--line);
}
.filter-group{display:flex;gap:.6rem;flex-wrap:wrap;}
.filter-btn{
  padding:.55em 1.2em;border-radius:var(--radius-pill);border:1px solid var(--line-strong);
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  background:transparent;color:var(--ink-soft);transition:all .3s var(--ease);
}
.filter-btn.active,.filter-btn:hover{background:var(--primary);color:var(--cream);border-color:var(--primary);}
.search-wrap{position:relative;min-width:240px;}
.search-wrap input{
  width:100%;padding:.75em 1em .75em 2.6em;border-radius:var(--radius-pill);border:1px solid var(--line-strong);
  background:var(--surface-card);color:var(--ink);font-size:.88rem;
}
.search-wrap i{position:absolute;left:1rem;top:50%;translate:0 -50%;color:var(--ink-soft);}

.products-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.products-grid .product-card.is-hidden{display:none;}
.no-results{text-align:center;padding:4rem 1rem;display:none;}
.no-results.is-visible{display:block;}

/* product modal */
.pm-overlay{
  position:fixed;inset:0;z-index:1400;background:rgba(8,20,14,.72);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;padding:1.5rem;
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;
}
.pm-overlay.is-open{opacity:1;visibility:visible;}
.pm-dialog{
  width:min(920px,100%);max-height:88vh;overflow:auto;background:var(--surface-card);border-radius:var(--radius-lg);
  display:grid;grid-template-columns:1fr 1fr;overflow:hidden;transform:scale(.92) translateY(20px);opacity:0;
  transition:transform .4s var(--ease),opacity .4s var(--ease);box-shadow:var(--shadow-strong);
}
.pm-overlay.is-open .pm-dialog{transform:scale(1) translateY(0);opacity:1;}
.pm-media{position:relative;min-height:280px;}
.pm-media img{width:100%;height:100%;object-fit:cover;}
.pm-body{padding:2.4rem;position:relative;}
.pm-close{position:absolute;top:1.2rem;right:1.2rem;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink);}
.pm-body .eyebrow{margin-bottom:.8rem;}
.pm-body h3{margin-bottom:1rem;}
.pm-body p{margin-bottom:1.6rem;}
@media (max-width:767.98px){
  .pm-dialog{grid-template-columns:1fr;}
  .pm-media{min-height:220px;}
}

/* -------------------------------------------------------------------- */
/* 23. CONTACT PAGE                                                       */
/* -------------------------------------------------------------------- */
.contact-info-card{
  background:var(--primary);color:var(--cream);border-radius:var(--radius-lg);padding:2.6rem;height:100%;position:relative;overflow:hidden;
}
.contact-info-card .info-row{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.6rem;}
.contact-info-card .info-row i{font-size:1.15rem;color:var(--accent);margin-top:.2rem;}
.contact-info-card .info-row .info-label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(247,243,232,.6);display:block;margin-bottom:.25rem;}
.contact-form-card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:2.6rem;}
.form-floating-custom{position:relative;margin-bottom:1.4rem;}
.form-floating-custom label{
  position:absolute;left:1.1rem;top:1rem;font-size:.92rem;color:var(--ink-soft);
  transition:all .25s var(--ease);pointer-events:none;background:var(--surface-card);padding:0 .3em;
}
.form-floating-custom input,.form-floating-custom textarea,.form-floating-custom select{
  width:100%;padding:1.1rem 1.1rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);
  background:transparent;color:var(--ink);font-size:.95rem;
}
.form-floating-custom textarea{min-height:130px;resize:vertical;}
.form-floating-custom input:focus,.form-floating-custom textarea:focus,.form-floating-custom select:focus{
  border-color:var(--primary);outline:none;
}
.form-floating-custom input:focus + label,
.form-floating-custom input:not(:placeholder-shown) + label,
.form-floating-custom textarea:focus + label,
.form-floating-custom textarea:not(:placeholder-shown) + label,
.form-floating-custom select:focus + label,
.form-floating-custom.has-value label{
  top:-.55rem;left:.9rem;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--primary);
}
.field-error{color:var(--spice);font-size:.76rem;margin-top:.35rem;display:none;font-family:var(--font-mono);}
.form-floating-custom.is-invalid input,.form-floating-custom.is-invalid textarea,.form-floating-custom.is-invalid select{border-color:var(--spice);}
.form-floating-custom.is-invalid .field-error{display:block;}
.form-success{
  display:none;text-align:center;padding:2.5rem 1rem;
}
.form-success.is-visible{display:block;}
.map-strip{
  border-radius:var(--radius-lg);overflow:hidden;height:340px;border:1px solid var(--line);position:relative;
}
.map-strip iframe{width:100%;height:100%;border:0;filter:grayscale(.25) contrast(1.05);}

/* -------------------------------------------------------------------- */
/* 24. UTILITIES                                                          */
/* -------------------------------------------------------------------- */
.text-accent{color:var(--accent) !important;}
.text-spice{color:var(--spice) !important;}
.bg-cream{background:var(--cream);}
.rounded-pill-custom{border-radius:var(--radius-pill);}
.overflow-hidden-x{overflow-x:hidden;}
.split-line{overflow:hidden;display:block;}
.reveal-up{opacity:0;transform:translateY(40px);}

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


.obj{
  object-fit: cover;
}

.lead span{
 
color:var(--ink);
  transition: 0.4s;
  /* font-weight: bold; */
  text-decoration: underline;
}
.lead:hover span{
  color: #c75b22;
   
}