/* =========================================================
   Urban Threads — shared stylesheet
   Brand: black & white, soft grey section backgrounds
   ========================================================= */

/* =========================================================
   Brand typeface: Emirates (same font as the Company Profile PDF)
   Put the font files in /assets/fonts/ using the names below.
   ========================================================= */
@font-face{
  font-family:"Emirates";
  src:local("Emirates Medium"), local("Emirates-Medium"),
      url("../assets/fonts/Emirates-Medium.woff2") format("woff2"),
      url("../assets/fonts/Emirates-Medium.woff") format("woff"),
      url("../assets/fonts/Emirates-Medium.ttf") format("truetype");
  font-weight:100 900;   /* one Medium file serves every weight (avoids fake-bold) */
  font-style:normal;
  font-display:swap;
}

:root{
  --brand: #111111;
  --brand-light: #2b2b2b;
  --brand-dark: #000000;
  --brand-gradient: linear-gradient(135deg, #2b2b2b 0%, #000000 100%);
  --text: #5f5f5f;
  --heading: #262626;
  --bg-soft: #f5f5f5;
  --bg-soft-2: #efefef;
  --white: #ffffff;
  --radius: 15px;
  --radius-sm: 8px;
  --container: 1280px;
  --gap: 25px;
  --shadow-sm: 0 2px 10px rgba(20,10,15,.05);
  --shadow-md: 0 10px 30px rgba(20,10,15,.08);
  --shadow-lg: 0 25px 50px rgba(20,10,15,.14);
  --ease: cubic-bezier(.22,1,.36,1);
}

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

html{ scroll-behavior:smooth; }

body{
  font-family:"Emirates", "Amaranth", Arial, sans-serif;
  font-size:15px;
  color:var(--text);
  line-height:1.7;
  background:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,h5,h6{
  font-family:"Emirates", "Amaranth", Arial, sans-serif;
  font-weight:700;
  color:var(--heading);
  line-height:1.2;
  letter-spacing:.01em;
}

h3{ font-size:38px; }
h4{ font-size:20px; }

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

::selection{ background:var(--brand); color:#fff; }

a, button{ transition:color .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease); }

:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; border-radius:4px; }

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 15px;
}

.section{ padding:70px 0; }

/* ---------- Scroll-reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal-stagger.in-view > *{ animation:fadeUp .6s var(--ease) both; }
.reveal-stagger.in-view > *:nth-child(1){ animation-delay:.05s; }
.reveal-stagger.in-view > *:nth-child(2){ animation-delay:.12s; }
.reveal-stagger.in-view > *:nth-child(3){ animation-delay:.19s; }
.reveal-stagger.in-view > *:nth-child(4){ animation-delay:.26s; }
.reveal-stagger.in-view > *:nth-child(5){ animation-delay:.33s; }
.reveal-stagger.in-view > *:nth-child(6){ animation-delay:.40s; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-stagger > *{ opacity:1 !important; transform:none !important; animation:none !important; transition:none !important; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  background:var(--brand-gradient);
  color:#fff;
  font-weight:700;
  text-transform:uppercase;
  font-size:13px;
  letter-spacing:.4px;
  padding:13px 28px;
  border-radius:var(--radius-sm);
  border:none;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
  transition:background .3s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease), color .25s var(--ease);
}
.btn:hover{ background:var(--brand-dark); transform:translateY(-3px); box-shadow:0 14px 26px rgba(0,0,0,.22); }
.btn:active{ transform:translateY(-1px); }
.btn-lg{ padding:16px 36px; font-size:14px; }

/* ---------- Top utility bar ---------- */
.topbar{
  background:var(--brand-gradient);
  color:#fff;
  font-size:13px;
}
.topbar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:8px;
  padding-bottom:8px;
  flex-wrap:wrap;
  gap:10px;
}
.topbar .social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;height:28px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  margin-right:8px;
  font-size:13px;
}
.topbar .social a:hover{ background:#fff; color:var(--brand); transform:translateY(-2px); }
.topbar .contacts{ display:flex; gap:25px; flex-wrap:wrap; }
.topbar .contacts a{ color:#fff; opacity:.92; }
.topbar .contacts a:hover{ opacity:1; }
.topbar .contacts i{ margin-right:6px; }

/* ---------- Main header ---------- */
.header{
  background:rgba(255,255,255,.97);
  padding:12px 0;
  box-shadow:0 2px 10px rgba(0,0,0,.04);
  position:sticky; top:0; z-index:500;
  transition:box-shadow .3s var(--ease), padding .3s var(--ease);
}
.header.is-scrolled{ box-shadow:var(--shadow-md); padding:8px 0; }
.header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.logo img{ height:64px; width:auto; transition:height .3s var(--ease); }

.main-nav ul{ display:flex; gap:18px; flex-wrap:wrap; }
.main-nav a{
  font-weight:700;
  font-size:13px;
  text-transform:uppercase;
  color:#000;
  padding:6px 2px;
  position:relative;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background:var(--brand-gradient); transition:width .3s var(--ease);
}
.main-nav a:hover, .main-nav .current a{ color:var(--brand); }
.main-nav a:hover::after, .main-nav .current a::after{ width:100%; }
.main-nav li{ position:relative; }
.main-nav .has-dropdown:hover .dropdown{ display:block; }
.dropdown{
  display:none;
  position:absolute;
  top:100%; left:0;
  background:#fff;
  min-width:200px;
  box-shadow:0 10px 25px rgba(0,0,0,.08);
  border-radius:10px;
  padding:10px 0;
  z-index:50;
}
.dropdown a{
  display:block;
  padding:8px 18px;
  font-size:12px;
  text-transform:none;
  font-weight:600;
  color:#000;
}
.dropdown a:hover{ background:var(--bg-soft); color:var(--brand); }

.header-icons{ display:flex; align-items:center; gap:18px; font-size:17px; color:#000; }
.header-icons a{ position:relative; display:inline-flex; transition:color .2s, transform .2s; }
.header-icons a:hover{ color:var(--brand); transform:translateY(-2px); }
.cart-count{
  position:absolute; top:-8px; right:-10px;
  background:var(--brand-gradient); color:#fff;
  font-size:10px; width:17px;height:17px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 6px rgba(0,0,0,.4);
}

.mobile-toggle{ display:none; background:none; border:none; font-size:24px; cursor:pointer; color:#000; }
.mobile-toggle:hover{ color:var(--brand); }

/* ---------- Hero slider ---------- */
.hero{
  position:relative;
  min-height:560px;
  display:flex; align-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 20%, rgba(0,0,0,.08), transparent 55%),
    radial-gradient(circle at 10% 90%, rgba(0,0,0,.06), transparent 50%),
    var(--bg-soft);
}
.hero-slide{
  display:none;
  width:100%;
  position:relative;
}
.hero-slide.active{ display:block; animation:heroFade .8s var(--ease); }
@keyframes heroFade{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }
.hero-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:60px 15px;
  max-width:var(--container);
  margin:0 auto;
  flex-wrap:wrap;
}
.hero-text{ flex:1 1 420px; }
.hero-text .eyebrow{ color:var(--brand); font-weight:700; margin-bottom:14px; letter-spacing:1px; text-transform:uppercase; font-size:13px; }
.hero-text h2{ font-size:50px; margin-bottom:18px; letter-spacing:-.03em; }
.hero-text p{ margin-bottom:28px; max-width:460px; font-size:16px; }
.hero-img{ flex:1 1 400px; text-align:center; }
.hero-img img{ margin:0 auto; max-height:430px; animation:heroFloat 5s ease-in-out infinite; filter:drop-shadow(0 30px 40px rgba(20,10,15,.18)); }
@keyframes heroFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-16px); } }
.hero-arrows{
  position:absolute; top:50%; width:100%;
  display:flex; justify-content:space-between;
  padding:0 25px; transform:translateY(-50%);
  pointer-events:none;
  z-index:5;
}
.hero-arrows button{
  pointer-events:all;
  width:48px;height:48px; border-radius:50%;
  background:#fff; border:none; color:var(--brand);
  font-size:18px; cursor:pointer; box-shadow:var(--shadow-md);
}
.hero-arrows button:hover{ background:var(--brand); color:#fff; transform:scale(1.08); }

.hero-dots{
  position:absolute; bottom:22px; left:0; right:0;
  display:flex; justify-content:center; gap:10px; z-index:5;
}
.hero-dots button{
  width:10px; height:10px; border-radius:50%; border:none;
  background:rgba(0,0,0,.25); cursor:pointer; padding:0;
}
.hero-dots button.active{ background:var(--brand); width:26px; border-radius:6px; }

/* ---------- Category banners ---------- */
.cat-title{ text-align:left; font-size:32px; margin-bottom:30px; }
.cat-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gap);
}
.cat-grid.row2{ margin-top:var(--gap); }
.banner{
  position:relative;
  border-radius:var(--radius);
  min-height:280px;
  background-size:cover;
  background-position:center;
  display:flex; align-items:center; justify-content:space-between;
  padding:25px;
  overflow:hidden;
  color:#fff;
  box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.banner:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.banner::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.4) 32%, rgba(0,0,0,0) 62%);
  pointer-events:none;
  z-index:1;
}
.banner .badge{
  background:#fff; color:var(--brand);
  font-weight:700; text-transform:uppercase;
  width:70px;height:70px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  text-align:center; font-size:11px; line-height:1.25;
  position:absolute; top:20px; right:20px;
  box-shadow:0 6px 16px rgba(0,0,0,.15);
  z-index:3;
}
/* Always keep the text on the left and the product photo on the right,
   regardless of the order the image/info markup is written in — this is
   what was letting text land under the badge on some cards. */
.banner .info{ position:relative; z-index:2; order:-1; text-shadow:0 1px 4px rgba(0,0,0,.55); }
.banner .info h3{ color:#fff; font-size:26px; text-transform:uppercase; }
.banner .info span{ display:block; text-transform:uppercase; font-weight:700; margin-bottom:6px; }
.banner .info a{ text-decoration:underline; font-weight:700; text-transform:uppercase; color:#fff; }
.banner img.banner-img{ max-height:230px; position:relative; z-index:2; order:2; transition:transform .4s var(--ease); }
.banner:hover img.banner-img{ transform:scale(1.06) translateY(-4px); }

/* ---------- Product grid ---------- */
.products-title{ text-align:center; font-size:32px; margin-bottom:35px; text-transform:capitalize; }
.product-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:var(--gap);
}
.product-card{ text-align:center; transition:transform .35s var(--ease); }
.product-card:hover{ transform:translateY(-6px); }
.product-thumb{
  background:#fff;
  border-radius:var(--radius);
  height:230px;
  display:flex; align-items:center; justify-content:center;
  padding:10px;
  border:1px solid #eee;
  overflow:hidden;
  transition:box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.product-card:hover .product-thumb{ box-shadow:var(--shadow-md); border-color:transparent; }
.product-thumb img{ max-height:100%; object-fit:contain; transition:transform .4s var(--ease); }
.product-card h4{
  font-size:14px; font-weight:600; color:#000;
  margin-top:14px; margin-bottom:6px;
  transition:color .25s;
}
.product-card:hover h4{ color:var(--brand); }
.view-all{ text-align:center; margin-top:40px; }

/* ---------- Icon boxes / features ---------- */
.icon-box-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--gap);
}
.icon-box{
  display:flex; gap:20px; align-items:center;
  padding:20px; border-radius:var(--radius); transition:box-shadow .35s var(--ease), transform .35s var(--ease);
}
.icon-box:hover{ box-shadow:var(--shadow-md); transform:translateY(-4px); }
.icon-box .icon{
  background:var(--bg-soft);
  color:var(--brand);
  width:65px;height:65px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:26px; flex-shrink:0;
  transition:transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
}
.icon-box:hover .icon{ background:var(--brand-gradient); color:#fff; transform:rotate(-8deg) scale(1.08); }
.icon-box h4{ margin-bottom:4px; font-size:16px; }
.icon-box p{ font-size:13px; }

/* ---------- Process section ---------- */
.process-wrap{
  display:flex; gap:60px; align-items:flex-start; flex-wrap:wrap;
}
.process-left{ flex:1 1 480px; }
.process-right{ flex:1 1 380px; }
.process-right img{ border-radius:15px; border-top:8px solid #000; border-left:8px solid #000; box-shadow:var(--shadow-lg); }
.steps{ margin:30px 0; position:relative; }
.steps::before{
  content:""; position:absolute; left:25px; top:8px; bottom:8px; width:2px;
  background:linear-gradient(var(--brand) 0%, rgba(0,0,0,.12) 100%);
}
.step{ display:flex; gap:20px; margin-bottom:22px; position:relative; }
.step .num{
  width:50px;height:50px; border-radius:50%;
  background:var(--brand-gradient); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; flex-shrink:0; position:relative; z-index:2;
  box-shadow:0 6px 16px rgba(0,0,0,.3);
  transition:transform .3s var(--ease);
}
.step:hover .num{ transform:scale(1.1); }
.step h4{ font-size:16px; margin-bottom:4px; }
.step p{ font-size:13px; }

/* ---------- Testimonial ---------- */
.testimonial-wrap{
  display:flex; gap:var(--gap); align-items:center; flex-wrap:wrap;
}
.testimonial-img{ flex:1 1 45%; }
.testimonial-img img{ border-radius:var(--radius); width:100%; box-shadow:var(--shadow-lg); }
.testimonial-content{
  flex:1 1 50%;
  background:var(--bg-soft-2);
  border-radius:var(--radius);
  padding:40px;
  display:flex; gap:25px; align-items:flex-start; flex-wrap:wrap;
  position:relative;
  box-shadow:var(--shadow-sm);
}
.testimonial-content::before{
  content:"\201C"; position:absolute; top:10px; right:28px;
  font-family:Georgia, serif; font-size:90px; color:rgba(0,0,0,.12); line-height:1;
}
.testimonial-content blockquote{ font-size:15px; margin:14px 0; font-style:italic; color:var(--heading); position:relative; z-index:1; }
.testimonial-content .avatar{ display:flex; gap:14px; align-items:center; }
.testimonial-content .avatar img{ width:60px;height:60px; border-radius:50%; object-fit:cover; box-shadow:0 4px 12px rgba(0,0,0,.12); }

/* ---------- CTA strip ---------- */
.cta-strip{
  position:relative;
  background-size:cover; background-position:center;
  border-radius:var(--radius);
  padding:36px 30px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  flex-wrap:wrap;
  color:#fff;
  margin-top:50px;
  box-shadow:var(--shadow-lg);
  overflow:hidden;
}
.cta-strip::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(0,0,0,.92), rgba(0,0,0,.85));
}
.cta-strip > *{ position:relative; z-index:1; }
.cta-strip h4{ color:#fff; font-size:20px; }
.cta-strip .btn{ background:#fff; color:var(--brand); box-shadow:none; }
.cta-strip .btn:hover{ background:var(--heading); color:#fff; }

/* ---------- Blog cards ---------- */
.blog-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap);
}
.blog-card{ border-radius:var(--radius); transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.blog-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.blog-card .blog-img{ border-radius:var(--radius); height:220px; overflow:hidden; margin-bottom:16px; }
.blog-card .blog-img img{ height:100%; width:100%; object-fit:cover; transition:transform .5s var(--ease); }
.blog-card:hover .blog-img img{ transform:scale(1.08); }
.blog-card img{ border-radius:var(--radius); height:220px; width:100%; object-fit:cover; margin-bottom:16px; }
.blog-card h5{ margin-bottom:8px; font-size:17px; }
.blog-card p{ font-size:13px; margin-bottom:10px; }
.blog-card .read-more{ color:var(--brand); font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.blog-card .read-more span{ transition:transform .25s var(--ease); }
.blog-card .read-more:hover span{ transform:translateX(4px); }

/* ---------- Page header / breadcrumb ---------- */
.page-hero{
  height:220px;
  background-size:cover; background-position:center;
  position:relative;
  display:flex; align-items:flex-end;
}
.page-hero::before{
  content:""; position:absolute; inset:0; background:rgba(0,0,0,.35);
}
.breadcrumb{
  position:relative; z-index:2;
  color:#fff; font-weight:600; font-size:14px;
  padding-bottom:20px;
}
.breadcrumb a{ color:#fff; }
.breadcrumb span.sep{ margin:0 8px; opacity:.7; }
.breadcrumb span.current{ opacity:.85; }

/* ---------- About page ---------- */
.about-flex{ display:flex; gap:50px; align-items:flex-start; flex-wrap:wrap; }
.about-flex .col{ flex:1 1 420px; }
.about-flex img{ border-radius:var(--radius); width:100%; }
.about-flex p{ margin-bottom:16px; font-size:14px; }

.mission-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:20px; }
.mission-item{ text-align:center; }
.mission-item{ padding:20px; border-radius:var(--radius); transition:box-shadow .3s var(--ease), transform .3s var(--ease); }
.mission-item:hover{ box-shadow:var(--shadow-md); transform:translateY(-5px); }
.mission-item .icon{
  width:70px;height:70px; border-radius:50%;
  background:var(--bg-soft); color:var(--brand);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 15px; font-size:26px;
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.mission-item:hover .icon{ background:var(--brand-gradient); color:#fff; transform:scale(1.08); }
.mission-item h4{ text-transform:uppercase; margin-bottom:8px; }
.mission-item p{ font-size:13px; }

/* ---------- Notebook / catalog page ---------- */
.tabs-nav{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-bottom:35px; }
.tab-btn{
  padding:10px 22px; border-radius:50px; background:#f5f5f5;
  border:none; font-weight:600; font-size:13px; cursor:pointer;
}
.tab-btn.active{ background:var(--brand); color:#fff; }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }
.catalog-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap);
}
.catalog-item{
  border:1px solid #e0e0e0;
  border-radius:12px;
  box-shadow:0 0 12px rgba(0,0,0,.03);
  height:250px;
  display:flex; align-items:center; justify-content:center;
  padding:10px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.catalog-item:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:transparent; }
.catalog-item img{ max-height:100%; object-fit:contain; transition:transform .4s var(--ease); }
.catalog-item:hover img{ transform:scale(1.05); }
.tab-btn{ transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.tab-btn:hover{ transform:translateY(-2px); }
.tab-btn.active{ box-shadow:0 8px 18px rgba(0,0,0,.3); }

/* ---------- N04 Hardcover collection (enhanced cards) ---------- */
.n04-intro{ text-align:center; max-width:720px; margin:0 auto 35px; }
.n04-intro h4{ text-transform:uppercase; letter-spacing:.5px; margin-bottom:10px; }
.n04-intro p{ font-size:14px; color:#666; }
.n04-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap);
}
.n04-card{
  background:#fff; border:1px solid #e0e0e0; border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  display:flex; flex-direction:column;
}
.n04-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.n04-card-img{
  position:relative; height:270px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#fafafa 0%,#f0f0f0 100%); padding:18px; overflow:hidden;
}
.n04-card-img img{ max-height:100%; object-fit:contain; transition:transform .5s var(--ease); }
.n04-card:hover .n04-card-img img{ transform:scale(1.06); }
.n04-badge{
  position:absolute; top:12px; left:12px; background:var(--brand-gradient); color:#fff;
  font-size:10px; font-weight:700; letter-spacing:.5px; text-transform:uppercase;
  padding:5px 11px; border-radius:50px; box-shadow:0 4px 10px rgba(0,0,0,.25);
}
.n04-card-body{ padding:18px 20px 20px; border-top:1px solid #f0f0f0; }
.n04-card-body h5{ font-size:15px; margin:0 0 3px; }
.n04-card-body .n04-model{ font-size:12px; color:var(--brand); font-weight:700; margin-bottom:10px; }
.n04-specs{ list-style:none; margin:0; padding:0; font-size:12px; color:#666; }
.n04-specs li{ display:flex; align-items:center; gap:6px; padding:3px 0; }
.n04-specs li i{ color:var(--brand); font-size:10px; width:12px; text-align:center; }
@media (max-width:900px){ .n04-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .n04-grid{ grid-template-columns:1fr; } }
.n04-note{ text-align:center; font-size:12px; color:#999; margin-top:18px; }

/* ---------- Click-to-enlarge lightbox ---------- */
.img-lightbox{
  position:fixed; inset:0; background:rgba(10,10,10,.88);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .25s var(--ease);
  z-index:9999; padding:40px;
}
.img-lightbox.open{ opacity:1; visibility:visible; }
.img-lightbox img{
  max-width:90vw; max-height:85vh; object-fit:contain;
  border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5);
  cursor:default;
  transform:scale(.96); transition:transform .25s var(--ease);
}
.img-lightbox.open img{ transform:scale(1); }
.img-lightbox-close{
  position:absolute; top:20px; right:28px; color:#fff; font-size:34px;
  line-height:1; cursor:pointer; font-weight:300; user-select:none;
}

/* ---------- Contact page ---------- */
.contact-wrap{ display:flex; gap:50px; flex-wrap:wrap; align-items:stretch; }
.contact-map{ flex:1 1 45%; min-height:400px; border-radius:var(--radius); overflow:hidden; }
.contact-map iframe{ width:100%; height:100%; border:0; min-height:400px; }
.contact-form-wrap{ flex:1 1 45%; }
.contact-form-wrap h3{ margin-bottom:20px; }
.field{ margin-bottom:16px; }
.field input, .field textarea{
  width:100%; padding:14px 16px; border:1px solid #ddd; border-radius:var(--radius-sm);
  font-family:inherit; font-size:14px; color:#212121;
}
.field textarea{ min-height:130px; resize:vertical; }

.contact-info-grid{
  margin-top:60px; background:#fafafa; padding:50px 30px; border-radius:var(--radius);
  display:grid; grid-template-columns:repeat(3,1fr); gap:40px;
}
.contact-info-grid .mission-item .icon{ background:#fff; }

.form-status{ margin-top:14px; font-weight:600; }
.form-status.ok{ color:#2e7d32; }
.form-status.err{ color:#c62828; }

/* ---------- Footer ---------- */
.footer{
  background:#f5f5f5;
  padding-top:60px;
}
.footer-top{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;
  gap:var(--gap);
  padding-bottom:40px;
}
.footer h4{ font-size:16px; margin-bottom:16px; }
.footer .newsletter p{ font-size:13px; margin-bottom:16px; color:#757575; }
.newsletter-form{ display:flex; }
.newsletter-form input{
  flex:1; border:none; border-radius:5px 0 0 5px; padding:0 15px;
  line-height:43px; font-family:inherit;
}
.newsletter-form button{
  border-radius:0 5px 5px 0; background:var(--brand); color:#fff; border:none;
  padding:0 18px; cursor:pointer;
}
.footer ul li{ margin-bottom:10px; }
.footer ul a{ color:#757575; font-size:13px; position:relative; }
.footer ul a:hover{ color:var(--brand); padding-left:4px; }
.footer .contact-list li{ display:flex; gap:10px; align-items:flex-start; font-size:13px; }
.footer .contact-list i{ color:var(--brand); margin-top:3px; }

.footer-bottom{
  border-top:1px solid #e3e3e3;
  padding:30px 0;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px;
}
.footer-bottom .logo img{ height:60px; }
.footer-bottom .social{ display:flex; gap:12px; }
.footer-bottom .social a{
  width:34px;height:34px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; color:#5c5c5c;
  box-shadow:var(--shadow-sm);
}
.footer-bottom .social a:hover{ background:var(--brand-gradient); color:#fff; transform:translateY(-3px); }
.footer-bottom .copy{ font-size:13px; color:#757575; text-align:right; }

.whatsapp-fab{
  position:fixed; right:20px; bottom:20px;
  width:54px;height:54px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:24px; box-shadow:0 6px 18px rgba(37,211,102,.45); z-index:600;
  animation:pulseFab 2.6s ease-in-out infinite;
}
.whatsapp-fab:hover{ transform:scale(1.08); animation-play-state:paused; }
@keyframes pulseFab{
  0%,100%{ box-shadow:0 6px 18px rgba(37,211,102,.45); }
  50%{ box-shadow:0 6px 24px rgba(37,211,102,.75), 0 0 0 8px rgba(37,211,102,.12); }
}

.back-to-top{
  position:fixed; right:20px; bottom:84px;
  width:44px;height:44px; border-radius:50%;
  background:#fff; color:var(--brand); border:1px solid #eee;
  display:flex; align-items:center; justify-content:center;
  font-size:16px; box-shadow:var(--shadow-md); z-index:600;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
  cursor:pointer;
}
.back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ background:var(--brand); color:#fff; }
@media (prefers-reduced-motion: reduce){ .whatsapp-fab{ animation:none; } }

/* ---------- Responsive ---------- */
@media (max-width: 1300px){
  /* Fits all 7 nav items (incl. Diary) on one line on laptop-width
     screens by freeing up the space the search box was taking and
     tightening the nav's own spacing slightly. */
  .header-search{ display:none; }
  .main-nav ul{ gap:12px; }
  .main-nav a{ font-size:12px; }
  .header-icons{ gap:12px; }
}
@media (max-width: 991px){
  .cat-grid, .cat-grid.row2{ grid-template-columns:repeat(2,1fr); }
  .product-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .catalog-grid{ grid-template-columns:repeat(3,1fr); }
  .icon-box-grid, .mission-grid, .contact-info-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 767px){
  .main-nav{ display:none; }
  .mobile-toggle{ display:block; }
  .hero-text h2{ font-size:34px; }
  .cat-grid, .cat-grid.row2{ grid-template-columns:1fr; }
  .product-grid{ grid-template-columns:repeat(2,1fr); }
  .blog-grid, .icon-box-grid, .mission-grid, .contact-info-grid{ grid-template-columns:1fr; }
  .catalog-grid{ grid-template-columns:repeat(2,1fr); }
  .about-flex, .contact-wrap, .process-wrap, .testimonial-wrap{ flex-direction:column; }
  .footer-top{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; text-align:center; }
  .footer-bottom .copy{ text-align:center; }
}

/* Mobile nav (JS toggled) */
.main-nav.open{
  display:flex; position:fixed; inset:0; background:#fff; z-index:900;
  flex-direction:column; padding:80px 30px; gap:22px; overflow-y:auto;
  animation:navSlideIn .35s var(--ease);
}
@keyframes navSlideIn{ from{ opacity:0; transform:translateX(30px); } to{ opacity:1; transform:translateX(0); } }
.main-nav.open ul{ flex-direction:column; gap:22px; }
.main-nav.open a{ font-size:16px; }
.nav-close{
  display:none; position:absolute; top:24px; right:24px; font-size:26px; background:none; border:none; cursor:pointer; color:#000;
}
.nav-close:hover{ color:var(--brand); }
.main-nav.open .nav-close{ display:block; }

/* =========================================================
   B2B GIFTS — UPGRADE PACK
   Mega menu, search, shop/PDP/cart/checkout, featured products,
   pagination, empty states. Appended only — nothing above this
   line was changed, so the original design is untouched.
   ========================================================= */

/* ---------- Header search ---------- */
.header-search{ display:flex; align-items:center; background:var(--bg-soft); border-radius:30px; padding:6px 6px 6px 16px; }
.header-search input{ border:none; background:transparent; outline:none; font-size:13px; width:150px; font-family:inherit; }
.header-search button{ border:none; background:var(--brand); color:#fff; width:30px; height:30px; border-radius:50%; cursor:pointer; }

/* ---------- Buttons (additional variants) ---------- */
.btn.outline{ background:transparent; color:var(--brand); border:1.5px solid var(--brand); box-shadow:none; }
.btn.outline:hover{ background:var(--brand); color:#fff; box-shadow:0 10px 20px rgba(0,0,0,.25); }
.btn.gold{ background:var(--heading); color:#fff; }
.btn.small{ padding:9px 18px; font-size:12px; }
.btn.full{ display:block; text-align:center; width:100%; margin-top:10px; }

/* ---------- Popup promo banner (dynamic, Admin > Banners) ---------- */
.popup-overlay{
  position:fixed; inset:0; background:rgba(15,37,64,.55); z-index:9999;
  display:none; align-items:center; justify-content:center; padding:20px;
}
.popup-overlay.show{ display:flex; }
.popup-box{
  position:relative; background:#fff; border-radius:14px; max-width:420px; width:100%;
  box-shadow:var(--shadow-lg); overflow:hidden; animation:popupIn .35s var(--ease);
}
@keyframes popupIn{ from{ opacity:0; transform:translateY(16px) scale(.97); } to{ opacity:1; transform:translateY(0) scale(1); } }
.popup-close{
  position:absolute; top:10px; right:10px; width:32px; height:32px; border-radius:50%;
  border:none; background:rgba(0,0,0,.06); font-size:20px; line-height:1; cursor:pointer;
  color:#333; z-index:2;
}
.popup-close:hover{ background:rgba(0,0,0,.12); }
.popup-img img{ width:100%; display:block; max-height:220px; object-fit:cover; }
.popup-body{ padding:24px 26px 28px; text-align:center; }
.popup-body h3{ margin:0 0 10px; font-size:22px; }
.popup-body p{ margin:0 0 18px; color:#555; font-size:14px; }

/* ---------- Page banner / breadcrumb ---------- */
.page-banner{ background:var(--bg-soft); padding:46px 0; text-align:center; }
.page-banner h1{ font-size:32px; margin-bottom:10px; }
.breadcrumb{ font-size:13px; color:var(--text); }
.breadcrumb a{ color:var(--text); }
.breadcrumb a:hover{ color:var(--brand); }
.breadcrumb span{ margin:0 6px; }

/* ---------- Section head w/ eyebrow ---------- */
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px; flex-wrap:wrap; }
.eyebrow{ display:block; font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--brand); margin-bottom:6px; }
.featured-section .products-title{ text-align:left; margin-bottom:0; }

/* ---------- Product cards (shop grid — extends existing .product-card) ---------- */
.product-thumb{ position:relative; overflow:hidden; }
.product-thumb img{ transition:transform .3s; }
.product-card:hover .product-thumb img{ transform:scale(1.06); }
.product-thumb .badge{ position:absolute; top:10px; left:10px; background:var(--brand); color:#fff; font-size:10px; font-weight:700; text-transform:uppercase; padding:5px 10px; border-radius:20px; }
.no-image{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; font-size:34px; color:#ddd; }
.no-image.big{ height:420px; background:var(--bg-soft); border-radius:var(--radius); font-size:60px; }
.no-image.small{ width:56px; height:56px; background:var(--bg-soft); border-radius:8px; font-size:18px; }
.product-info{ text-align:center; padding-top:6px; }
.product-cat{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--brand); font-weight:700; }
.product-price{ font-weight:700; color:var(--heading); font-size:16px; margin:6px 0 4px; }
.product-price .old-price{ font-weight:500; font-size:13px; color:#aaa; text-decoration:line-through; margin-left:8px; }
.product-moq{ font-size:11px; color:#999; margin-bottom:10px; }

/* ---------- Shop layout (products.php) ---------- */
.shop-section{ padding-top:50px; }
.shop-layout{ display:grid; grid-template-columns:250px 1fr; gap:36px; align-items:start; }
.shop-sidebar{ position:sticky; top:100px; }
.sidebar-block{ background:#fff; border:1px solid #e6e6e6; border-radius:var(--radius); padding:22px; margin-bottom:20px; }
.sidebar-block h4{ font-size:15px; margin-bottom:16px; }
.cat-tree li{ margin-bottom:10px; font-size:13px; }
.cat-tree > li > a{ font-weight:700; color:var(--heading); }
.cat-tree li.active > a{ color:var(--brand); }
.cat-tree ul{ margin:8px 0 0 14px; }
.cat-tree ul li{ margin-bottom:8px; font-weight:500; }
.price-row{ display:flex; gap:8px; margin-bottom:12px; }
.price-row input{ width:50%; padding:9px; border:1px solid #eee; border-radius:6px; font-size:12px; font-family:inherit; }
.sidebar-cta p{ font-size:12px; margin-bottom:14px; }

.shop-toolbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; flex-wrap:wrap; gap:14px; }
.result-count{ font-size:13px; color:var(--text); }
.sort-form{ display:flex; align-items:center; gap:8px; font-size:13px; }
.sort-form select{ padding:8px 12px; border:1px solid #eee; border-radius:6px; font-family:inherit; font-size:13px; }
.shop-main .product-grid{ grid-template-columns:repeat(3,1fr); }

.pagination{ display:flex; gap:8px; justify-content:center; margin-top:40px; }
.page-link{ width:38px; height:38px; display:flex; align-items:center; justify-content:center; border:1px solid #eee; border-radius:8px; font-size:13px; font-weight:600; }
.page-link.active, .page-link:hover{ background:var(--brand); color:#fff; border-color:var(--brand); }

.empty-state{ text-align:center; padding:70px 20px; background:var(--bg-soft); border-radius:var(--radius); }
.empty-state i{ font-size:42px; color:var(--brand); margin-bottom:16px; }
.empty-state h3{ margin-bottom:10px; }
.empty-state p{ max-width:440px; margin:0 auto; }
.empty-state.success i{ color:#1e7d34; }

/* ---------- Product detail page ---------- */
.pdp-layout{ display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.pdp-main-image{ background:var(--bg-soft); border-radius:var(--radius); overflow:hidden; height:460px; display:flex; align-items:center; justify-content:center; }
.pdp-main-image img{ max-height:100%; max-width:100%; object-fit:contain; }
.pdp-thumbs{ display:flex; gap:10px; margin-top:14px; }
.pdp-thumb{ width:70px; height:70px; border:1px solid #eee; border-radius:8px; padding:4px; background:#fff; cursor:pointer; }
.pdp-thumb img{ width:100%; height:100%; object-fit:contain; }
.pdp-info h1{ font-size:28px; margin:8px 0 6px; }
.pdp-sku{ font-size:12px; color:#aaa; margin-bottom:14px; }
.pdp-price{ font-size:28px; font-weight:700; color:var(--brand); margin-bottom:14px; }
.pdp-price .old-price{ font-size:16px; color:#aaa; text-decoration:line-through; margin-left:10px; font-weight:500; }
.pdp-short-desc{ margin-bottom:18px; }
.pdp-meta{ margin-bottom:20px; }
.pdp-meta li{ font-size:13px; margin-bottom:8px; color:var(--text); }
.pdp-meta li i{ width:18px; color:var(--brand); }
.pdp-branding{ background:var(--bg-soft); border-radius:var(--radius-sm); padding:16px 18px; margin-bottom:20px; }
.pdp-branding h4{ font-size:14px; margin-bottom:10px; }
.branding-opt{ display:flex; align-items:center; gap:10px; font-size:13px; font-weight:500; margin-bottom:8px; }
.branding-opt input{ width:auto; }
.branding-opt span{ color:var(--brand); font-weight:700; margin-left:auto; }
.pdp-actions{ display:flex; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.qty-box{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; }
.qty-box input{ width:70px; padding:11px; border:1px solid #eee; border-radius:8px; font-family:inherit; }
.pdp-actions .btn{ flex:1; min-width:140px; justify-content:center; display:inline-flex; align-items:center; gap:8px; }
.pdp-tabs{ margin-top:60px; display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.pdp-tab-block h3{ font-size:20px; margin-bottom:16px; }
.pdp-tab-block h5{ font-size:13px; text-transform:uppercase; color:var(--brand); margin:16px 0 8px; }
.pdp-desc{ font-size:14px; line-height:1.8; }
.spec-table{ width:100%; border-collapse:collapse; font-size:13px; margin-bottom:10px; }
.spec-table td{ padding:9px 12px; border-bottom:1px solid #e6e6e6; }
.spec-table td:first-child{ color:#999; width:40%; }
.cat-title.small{ font-size:24px; margin-top:60px; }

/* ---------- Cart / Checkout ---------- */
.cart-layout{ display:grid; grid-template-columns:1fr 340px; gap:30px; align-items:start; }
.cart-table-wrap{ background:#fff; border:1px solid #e6e6e6; border-radius:var(--radius); padding:20px; overflow-x:auto; }
.cart-table{ width:100%; border-collapse:collapse; min-width:520px; }
.cart-table th{ text-align:left; font-size:11px; text-transform:uppercase; color:#aaa; padding:10px; border-bottom:1px solid #e6e6e6; }
.cart-table td{ padding:14px 10px; border-bottom:1px solid #f2f2f2; font-size:13px; vertical-align:middle; }
.cart-product{ display:flex; align-items:center; gap:12px; }
.cart-product img{ width:56px; height:56px; object-fit:cover; border-radius:8px; }
.cart-product a{ font-weight:700; color:var(--heading); }
.cart-branding{ font-size:11px; color:#999; margin-top:2px; }
.cart-moq{ font-size:11px; color:#bbb; margin-top:2px; }
.qty-input{ width:64px; padding:8px; border:1px solid #eee; border-radius:6px; font-family:inherit; }
.cart-remove{ color:#c0392b; font-size:15px; }
.cart-summary{ background:var(--bg-soft); border-radius:var(--radius); padding:24px; position:sticky; top:100px; }
.cart-summary h4{ margin-bottom:16px; }
.summary-row{ display:flex; justify-content:space-between; font-size:13px; color:var(--text); padding:8px 0; border-bottom:1px solid #e6e6e6; }
.summary-row.total{ font-size:18px; font-weight:700; color:var(--heading); border-bottom:none; padding-top:14px; }

.checkout-layout{ display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:start; }
.checkout-form{ background:#fff; border:1px solid #e6e6e6; border-radius:var(--radius); padding:28px; }
.checkout-form h3{ margin-bottom:18px; }
.checkout-form label{ display:block; font-size:12px; font-weight:700; margin:14px 0 6px; }
.checkout-form input[type=text], .checkout-form input[type=email], .checkout-form textarea{
  width:100%; padding:12px; border:1px solid #eee; border-radius:8px; font-family:inherit; font-size:13px;
}
.form-row-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.payment-options label{ display:flex; align-items:center; gap:8px; font-weight:500; font-size:13px; margin-top:8px; }
.payment-options input{ width:auto; }
.form-error{ background:#fce8e6; color:#b3261e; padding:14px 18px; border-radius:8px; margin-bottom:20px; font-size:13px; }

/* ---------- Responsive additions ---------- */
@media (max-width: 991px){
  .shop-layout, .pdp-layout, .pdp-tabs, .cart-layout, .checkout-layout{ grid-template-columns:1fr; }
  .shop-sidebar{ position:static; }
  .shop-main .product-grid{ grid-template-columns:repeat(2,1fr); }
  .header-search{ display:none; }
}
@media (max-width: 767px){
  .form-row-2{ grid-template-columns:1fr; }
  .pdp-main-image{ height:300px; }
  .shop-main .product-grid{ grid-template-columns:1fr 1fr; }

}

/* =========================================================
   SHOP + PDP — Jasani-style redesign (matches DNG shop/product pages)
   Toolbar-based filtering (search + category dropdown + sort),
   ribbon-badge product cards with live stock indicator, and a
   PDP variant-swatch row. Colours use the existing brand vars
   above so it stays on-brand (maroon/pink) instead of copying
   DNG's navy/gold literally.
   ========================================================= */

.shop-page{ max-width:1300px; }

/* ---------- Toolbar ---------- */
.shop-toolbar{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:16px; margin-bottom:34px; padding-bottom:18px; border-bottom:1px solid #e6e6e6;
}
.toolbar-left{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; flex:1 1 60%; }
.toolbar-search{
  display:flex; align-items:center; background:var(--bg-soft); border-radius:999px;
  padding:2px 6px 2px 18px; flex:1 1 220px; max-width:320px; transition:.2s;
}
.toolbar-search:focus-within{ background:#fff; box-shadow:0 0 0 3px rgba(0,0,0,.15); }
.toolbar-search input{ border:none; background:transparent; padding:11px 0; font-size:14px; width:100%; outline:none; font-family:inherit; }
.toolbar-search button{ background:none; border:none; padding:8px 14px; cursor:pointer; color:var(--brand); font-size:14px; }
.category-filter select{
  padding:11px 34px 11px 18px; border:1px solid #eee; border-radius:999px; background:#fff;
  font-size:14px; cursor:pointer; outline:none; appearance:none; -webkit-appearance:none;
  font-family:inherit; color:var(--heading);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239e0959' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; min-width:170px;
}
.category-filter select:focus{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(0,0,0,.12); }
.toolbar-right{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.sort-dropdown{ display:flex; align-items:center; gap:8px; }
.sort-dropdown label{ font-size:13px; color:var(--text); }
.sort-dropdown select{
  padding:9px 16px; border:1px solid #eee; border-radius:999px; background:#fff;
  font-size:13px; cursor:pointer; outline:none; font-family:inherit; color:var(--heading);
}
.sort-dropdown select:focus{ border-color:var(--brand); }

/* ---------- Product cards: ribbon + stock ---------- */
.product-thumb{ position:relative; }
.ribbon{
  position:absolute; top:12px; left:12px; padding:4px 12px; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.5px; border-radius:999px; color:#fff; z-index:2;
}
.ribbon-sale{ background:#e74c3c; }
.ribbon-new{ background:#2ecc71; }
.variant-badge{
  position:absolute; bottom:12px; right:12px; background:rgba(0,0,0,.7); color:#fff;
  font-size:11px; padding:4px 10px; border-radius:999px; letter-spacing:.3px;
}
.stock{ font-size:12px; display:flex; align-items:center; gap:6px; margin:6px 0; }
.stock .dot{ display:inline-block; width:8px; height:8px; border-radius:50%; }
.stock-in .dot{ background:#2ecc71; }
.stock-low .dot{ background:#f39c12; }
.stock-out .dot{ background:#e74c3c; }
.stock-in{ color:#1e8e4f; }
.stock-low{ color:#b06e00; }
.stock-out{ color:#c0392b; }

/* ---------- PDP variant swatches ---------- */
.pdp-variants{ margin-bottom:18px; }
.pdp-variants h4{ font-size:14px; margin-bottom:10px; }
.variant-swatches{ display:flex; flex-wrap:wrap; gap:10px; }
.variant-swatch{
  display:block; width:56px; height:56px; border-radius:10px; border:2px solid #eee;
  overflow:hidden; padding:0; background:#fafafa;
}
.variant-swatch img{ width:100%; height:100%; object-fit:cover; }
.variant-swatch .no-image{ display:flex; align-items:center; justify-content:center; height:100%; color:#ccc; }
.variant-swatch.active{ border-color:var(--brand); box-shadow:0 0 0 2px rgba(0,0,0,.15); }
.variant-swatch:hover{ border-color:var(--brand); }

@media (max-width: 767px){
  .shop-toolbar{ flex-direction:column; align-items:stretch; }
  .toolbar-left{ flex-wrap:wrap; gap:10px; }
  .toolbar-search{ max-width:none; flex:1 1 100%; }
  .category-filter select{ min-width:140px; width:100%; }
  .toolbar-right{ justify-content:space-between; }
}

/* =========================================================
   MEGA NAV — parent categories in the navbar, children in a
   full-width grouped dropdown (Jasani-style)
   ========================================================= */
.main-nav .has-mega{ position:static; }              /* panel anchors to .header, not the li */
.main-nav .has-mega > a{ display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.main-nav .has-mega > a i{ font-size:9px; transition:transform .2s; }
.main-nav .has-mega.mega-open > a{ color:var(--brand); }
.main-nav .has-mega.mega-open > a::after{ width:100%; }
.main-nav .has-mega.mega-open > a i{ transform:rotate(180deg); }

.mega-panel{
  display:none;
  position:absolute; left:0; right:0; top:100%;
  background:#fff;
  border-top:3px solid var(--brand);
  box-shadow:0 22px 45px rgba(20,10,15,.14);
  z-index:600;
  max-height:calc(100vh - 140px); overflow-y:auto;
}
.main-nav .has-mega.mega-open > .mega-panel{ display:block; animation:megaIn .18s var(--ease); }
@keyframes megaIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

.mega-panel .container{ display:block; padding-top:26px; padding-bottom:18px; }
.mega-cols{
  display:grid; gap:10px 36px;
  grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
}
.mega-col ul{ display:block !important; margin:0; padding:0; list-style:none; }
.main-nav .mega-col-title{
  display:block; font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--heading); padding:0 0 9px; margin-bottom:10px; border-bottom:2px solid #e6e6e6;
}
.main-nav .mega-col-title--blank{ visibility:hidden; }
.main-nav a.mega-col-title:hover{ color:var(--brand); }
.main-nav .mega-col-title::after{ display:none !important; }
.main-nav .mega-col li a{
  display:block; padding:6px 0; font-size:13px; font-weight:500; text-transform:none;
  color:var(--text); line-height:1.35;
}
.main-nav .mega-col li a::after{ display:none; }
.main-nav .mega-col li a:hover{ color:var(--brand); padding-left:4px; transition:padding .15s, color .15s; }

.mega-foot{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin-top:18px; padding-top:14px; border-top:1px solid #e6e6e6;
}
.main-nav .mega-shop-all{ font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--brand); }
.main-nav .mega-shop-all i{ font-size:10px; margin-left:6px; transition:transform .2s; }
.main-nav .mega-shop-all:hover i{ transform:translateX(4px); }
.main-nav .mega-quote{ font-size:12px; font-weight:700; text-transform:none; color:var(--text); }
.main-nav .mega-quote:hover{ color:var(--brand); }

@media (max-width: 1300px){ .main-nav .has-mega > a{ gap:4px; } }

/* Mobile: tap parent -> its groups expand inline */
@media (max-width: 767px){
  .mega-panel{
    position:static; box-shadow:none; border-top:none; max-height:none; overflow:visible; animation:none !important;
  }
  .mega-panel .container{ padding:6px 0 4px 12px; width:auto; }
  .mega-cols{ display:block; }
  .mega-col{ margin-bottom:10px; }
  .main-nav .mega-col-title{ padding:6px 0; margin-bottom:2px; border-bottom:none; color:var(--brand); }
  .main-nav .mega-col-title--blank{ display:none; }
  .main-nav .mega-col li a{ font-size:14px; padding:7px 0 7px 10px; }
  .mega-foot{ margin-top:6px; padding-top:10px; }
  .main-nav.open .has-mega > a{ font-size:16px; }
}

/* ---- Jasani-style additions: sub-headings, bold extras, tiles, CTA ---- */
.main-nav .mega-col li.mega-sub{
  font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:var(--brand); margin:12px 0 2px; line-height:1.3;
}
.main-nav .mega-col li.mega-sub:first-child{ margin-top:0; }
.main-nav .mega-col li.mega-extra{ margin-top:10px; padding-top:10px; border-top:1px solid #e6e6e6; }
.main-nav .mega-col li.mega-extra + li.mega-extra{ margin-top:0; padding-top:0; border-top:none; }
.main-nav .mega-col li.mega-extra a{
  font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:var(--heading);
}
.main-nav .mega-col li.mega-extra a:hover{ color:var(--brand); }

.mega-tiles{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:14px; }
.main-nav .mega-tile{
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:70px; padding:12px; border:1px solid #e6e6e6; border-radius:10px; background:#fff;
  font-size:13px; font-weight:700; text-transform:none; color:var(--heading);
  box-shadow:0 2px 8px rgba(0,0,0,.04); transition:transform .2s, box-shadow .2s, color .2s, border-color .2s;
}
.main-nav .mega-tile::after{ display:none; }
.main-nav .mega-tile:hover{ transform:translateY(-3px); box-shadow:0 8px 18px rgba(0,0,0,.08); color:var(--brand); border-color:var(--brand); }

.main-nav li.nav-cta > a{
  background:var(--brand-gradient); color:#fff !important; padding:9px 18px; border-radius:4px; display:inline-block;
}
.main-nav li.nav-cta > a::after{ display:none; }
.main-nav li.nav-cta > a:hover{ filter:brightness(1.1); color:#fff !important; }

@media (max-width: 767px){
  .mega-tiles{ grid-template-columns:repeat(2, 1fr); gap:10px; }
  .main-nav li.nav-cta > a{ display:block; text-align:center; margin-top:6px; }
}

/* =========================================================
   NOTEBOOK & DIARY — responsive polish
   ========================================================= */
.catalog-item img, .n04-card-img img{ max-width:100%; width:auto; }
.tab-panel{ animation:tabIn .25s var(--ease); }
@keyframes tabIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.zoomable-img{ cursor:zoom-in; }

/* Touch devices: no sticky hover lift */
@media (hover:none){
  .n04-card:hover, .catalog-item:hover, .diary-card:hover, .tab-btn:hover, .diary-cat-btn:hover{ transform:none; }
  .n04-card:hover .n04-card-img img, .catalog-item:hover img, .diary-card:hover .diary-card-img img{ transform:none; }
}

/* Tablet */
@media (max-width: 991px){
  .page-hero{ height:190px; }
  .n04-card-img{ height:240px; }
}

/* Phone */
@media (max-width: 767px){
  .section{ padding:44px 0; }
  .page-hero{ height:150px; }
  .breadcrumb{ font-size:13px; padding-bottom:14px; }
  .about-flex{ gap:22px; }
  .about-flex h3{ font-size:20px; line-height:1.3; }

  /* Tabs: tidy 2-column grid instead of ragged wrapped pills */
  .tabs-nav{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin-bottom:24px; }
  .tab-btn{ width:100%; padding:12px 10px; font-size:13px; border-radius:12px; min-height:44px; }

  .n04-intro{ margin-bottom:24px; }
  .n04-intro h4{ font-size:15px; }
  .n04-grid, .catalog-grid{ gap:14px; }
  .catalog-item{ height:170px; padding:8px; }
  .n04-card-img{ height:220px; padding:14px; }
  .n04-card-body{ padding:14px 16px 16px; }

  .img-lightbox{ padding:16px; }
  .img-lightbox img{ max-width:94vw; max-height:80vh; }
  .img-lightbox-close{ top:10px; right:14px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; font-size:38px; }
}

@media (max-width: 420px){
  .catalog-item{ height:140px; }
  .n04-card-img{ height:200px; }
}

/* =========================================================
   HEADER v2 — single clean row on desktop, slide-over drawer
   below 1280px, collapsible search. Overrides earlier rules.
   ========================================================= */
.header .container{ max-width:1680px; padding:0 28px; flex-wrap:nowrap; gap:22px; }
.logo{ flex-shrink:0; }
.logo img{ height:58px; }
.main-nav{ flex:1 1 auto; min-width:0; }
.main-nav > ul{ flex-wrap:nowrap; justify-content:center; align-items:center; gap:0; }
.main-nav > ul > li{ flex:0 0 auto; }
.main-nav > ul > li > a{
  display:inline-flex; align-items:center; gap:6px;
  padding:12px 11px; font-size:12.5px; letter-spacing:.02em; white-space:nowrap;
}
.main-nav > ul > li > a::after{ left:11px; bottom:6px; width:0; }
.main-nav > ul > li > a:hover::after,
.main-nav > ul > li.current > a::after,
.main-nav > ul > li.mega-open > a::after{ width:calc(100% - 22px); }

.main-nav > ul > li.nav-cta{ margin-left:10px; }
.main-nav > ul > li.nav-cta > a{
  padding:10px 20px; border-radius:999px; font-size:12px; letter-spacing:.04em;
  box-shadow:0 6px 14px rgba(0,0,0,.25); transition:transform .2s, box-shadow .2s, filter .2s;
}
.main-nav > ul > li.nav-cta > a:hover{ transform:translateY(-2px); box-shadow:0 10px 20px rgba(0,0,0,.32); }
.main-nav > ul > li.nav-cta > a::after{ display:none; }

.header-icons{ flex-shrink:0; gap:16px; }
.search-toggle{ display:none; align-items:center; justify-content:center; background:none; border:none; font-size:17px; color:#000; cursor:pointer; padding:4px; }
.search-toggle:hover{ color:var(--brand); }
.nav-search{ display:none; }
.nav-close{ width:44px; height:44px; align-items:center; justify-content:center; }
body.nav-locked{ overflow:hidden; }

/* Search collapses to an icon below 1700px */
@media (max-width:1699px){
  .search-toggle{ display:inline-flex; }
  .header-search{
    display:none; position:absolute; top:100%; right:28px; margin-top:8px; z-index:700;
    background:#fff; padding:8px 8px 8px 18px; border-radius:40px; border:1px solid #e6e6e6;
    box-shadow:0 14px 34px rgba(20,10,15,.16);
  }
  .header-search.open{ display:flex; animation:megaIn .18s var(--ease); }
  .header-search input{ width:280px; font-size:14px; }
}

/* Laptop */
@media (max-width:1499px){
  .header .container{ padding:0 20px; gap:16px; }
  .logo img{ height:52px; }
  .main-nav > ul > li > a{ padding:12px 8px; font-size:12px; gap:5px; }
  .main-nav > ul > li > a::after{ left:8px; }
  .main-nav > ul > li > a:hover::after,
  .main-nav > ul > li.current > a::after,
  .main-nav > ul > li.mega-open > a::after{ width:calc(100% - 16px); }
  .main-nav > ul > li.nav-cta{ margin-left:6px; }
  .main-nav > ul > li.nav-cta > a{ padding:9px 16px; }
  .header-icons{ gap:14px; }
  .header-search{ right:20px; }
}
@media (max-width:1399px){
  .main-nav > ul > li > a{ padding:12px 6px; font-size:11.5px; gap:4px; }
  .main-nav > ul > li > a::after{ left:6px; }
  .main-nav > ul > li > a:hover::after,
  .main-nav > ul > li.current > a::after,
  .main-nav > ul > li.mega-open > a::after{ width:calc(100% - 12px); }
}

/* Tablet + phone: slide-over drawer */
@media (max-width:1279px){
  .header .container{ padding:0 16px; }
  .logo img{ height:48px; }
  .main-nav{ display:none; }
  .mobile-toggle{ display:block; font-size:26px; padding:4px 2px; }
  .header-search{ right:16px; }

  .main-nav.open{
    display:flex; flex-direction:column; position:fixed; inset:0; z-index:900; background:#fff;
    padding:64px 22px 32px; gap:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  }
  .main-nav.open .nav-close{ display:flex; top:10px; right:12px; }
  .main-nav.open .nav-search{
    display:flex; align-items:center; width:100%; max-width:640px; margin:0 auto 14px;
    background:var(--bg-soft); border-radius:40px; padding:6px 6px 6px 18px;
  }
  .main-nav.open .nav-search input{ flex:1; min-width:0; border:none; background:transparent; outline:none; font:inherit; font-size:15px; }
  .main-nav.open .nav-search button{ border:none; background:var(--brand); color:#fff; width:38px; height:38px; border-radius:50%; cursor:pointer; flex-shrink:0; }

  .main-nav.open > ul{ flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:0; width:100%; max-width:640px; margin:0 auto; }
  .main-nav.open > ul > li{ border-bottom:1px solid #e6e6e6; }
  .main-nav.open > ul > li > a{
    display:flex; justify-content:space-between; align-items:center; width:100%;
    padding:16px 4px; font-size:15px; letter-spacing:.02em;
  }
  .main-nav.open > ul > li > a::after{ display:none; }
  .main-nav.open > ul > li.nav-cta{ border-bottom:none; margin:20px 0 0; }
  .main-nav.open > ul > li.nav-cta > a{ justify-content:center; padding:14px; font-size:14px; }

  /* Panels expand inline (accordion) */
  .main-nav.open .mega-panel{ position:static; box-shadow:none; border-top:none; max-height:none; overflow:visible; animation:none; }
  .main-nav.open .mega-panel .container{ padding:0 0 10px 8px; width:auto; max-width:none; }
  .main-nav.open .mega-cols{ display:block; }
  .main-nav.open .mega-col{ margin-bottom:12px; }
  .main-nav.open .mega-col-title{ padding:6px 0; margin:0 0 2px; border:none; color:var(--brand); }
  .main-nav.open .mega-col li a{ font-size:14px; padding:8px 0 8px 10px; font-weight:500; }
  .main-nav.open .mega-col li.mega-sub{ padding-left:10px; }
  .main-nav.open .mega-foot{ margin-top:4px; padding-top:10px; }
  .main-nav.open .mega-tiles{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
  .main-nav.open .mega-tile{ min-height:56px; }
}

@media (max-width:575px){
  .header .container{ padding:0 12px; gap:10px; }
  .logo img{ height:42px; }
  .header-icons{ gap:12px; font-size:16px; }
  .header-search{ left:12px; right:12px; margin-top:6px; }
  .header-search input{ width:100%; flex:1; min-width:0; }
}

/* =========================================================
   REDESIGN v5 — new page structures, hero, filter sidebar
   (appended; overrides earlier rules where needed)
   ========================================================= */
:root{ --accent:#c9a84c; --accent-dark:#a98a33; --ink:#0d0d0d; }

/* ---------- Shared bits ---------- */
.kicker{ display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-dark); margin-bottom:12px; }
.kicker::before{ content:""; width:28px; height:2px; background:var(--accent); }
.sec-title{ font-size:38px; line-height:1.15; letter-spacing:-.02em; margin-bottom:14px; }
.sec-lead{ font-size:16px; max-width:640px; }
.sec-head{ margin-bottom:40px; }
.sec-head.center{ text-align:center; }
.sec-head.center .sec-lead{ margin:0 auto; }
.sec-head.center .kicker::after{ content:""; width:28px; height:2px; background:var(--accent); }
.btn.ghost{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.7); box-shadow:none; }
.btn.ghost:hover{ background:#fff; color:#000; }
.btn.accent{ background:var(--accent); color:#111; box-shadow:0 10px 24px rgba(201,168,76,.35); }
.btn.accent:hover{ background:#fff; color:#000; }
.btn.light{ background:#fff; color:#111; box-shadow:none; }
.btn.light:hover{ background:var(--accent); color:#111; }
.dark-band{ background:var(--ink); color:#cfcfcf; }
.dark-band h2,.dark-band h3,.dark-band h4{ color:#fff; }

/* ---------- HERO v2: full-bleed photo slides + logo ---------- */
.hero{ min-height:680px; background:var(--ink); color:#fff; display:block; }
.hero-slide{ display:block !important; position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 1s ease, visibility 1s; animation:none !important; }
.hero-slide.active{ opacity:1; visibility:visible; z-index:2; }
.hero-bg{ position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.08); transition:transform 7s ease-out; }
.hero-slide.active .hero-bg{ transform:scale(1); }
.hero-slide::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(95deg, rgba(8,8,8,.92) 0%, rgba(8,8,8,.74) 42%, rgba(8,8,8,.15) 100%); }
.hero-inner{ position:relative; z-index:2; height:100%; min-height:680px; padding:80px 15px 110px; align-items:center; }
.hero-text{ flex:0 1 640px; }
.hero-text .eyebrow{ color:var(--accent); font-size:13px; letter-spacing:.18em; margin-bottom:18px; display:inline-flex; align-items:center; gap:12px; }
.hero-text .eyebrow::before{ content:""; width:34px; height:2px; background:var(--accent); }
.hero-text h2{ color:#fff; font-size:62px; line-height:1.04; letter-spacing:-.035em; margin-bottom:22px; }
.hero-text p{ color:#dcdcdc; font-size:18px; max-width:540px; margin-bottom:34px; line-height:1.6; }
.hero-btns{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-logo{ position:absolute; z-index:3; right:48px; bottom:70px; width:min(340px,30vw); opacity:.92; filter:drop-shadow(0 6px 24px rgba(0,0,0,.6)); pointer-events:none; }
.hero-badges{ position:absolute; z-index:3; left:0; right:0; bottom:0; background:rgba(0,0,0,.55); backdrop-filter:blur(6px); border-top:1px solid rgba(255,255,255,.12); }
.hero-badges .container{ display:flex; justify-content:space-between; gap:20px; padding-top:16px; padding-bottom:16px; flex-wrap:wrap; }
.hero-badges span{ color:#ddd; font-size:13px; font-weight:600; display:inline-flex; align-items:center; gap:9px; letter-spacing:.02em; }
.hero-badges i{ color:var(--accent); }
.hero-arrows{ z-index:6; }
.hero-arrows button{ background:rgba(255,255,255,.14); color:#fff; backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.35); }
.hero-arrows button:hover{ background:var(--accent); color:#111; }
.hero-dots{ bottom:78px; justify-content:flex-start; padding-left:max(15px, calc((100% - var(--container))/2 + 15px)); z-index:6; }
.hero-dots button{ background:rgba(255,255,255,.4); }
.hero-dots button.active{ background:var(--accent); }

/* ---------- Home: stats band ---------- */
.stats-band{ background:var(--ink); padding:0; }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat{ padding:34px 24px; text-align:center; border-right:1px solid rgba(255,255,255,.1); }
.stat:last-child{ border-right:0; }
.stat b{ display:block; font-size:40px; font-weight:700; color:#fff; letter-spacing:-.02em; }
.stat b em{ color:var(--accent); font-style:normal; }
.stat span{ font-size:13px; color:#9a9a9a; letter-spacing:.06em; text-transform:uppercase; font-weight:600; }

/* ---------- Home: industries bento ---------- */
.bento{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:230px; gap:18px; }
.bento a{ position:relative; border-radius:18px; overflow:hidden; display:flex; align-items:flex-end; color:#fff; background:#111; }
.bento a img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.bento a::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.85) 8%, rgba(0,0,0,0) 62%); transition:opacity .3s; }
.bento a:hover img{ transform:scale(1.08); }
.bento .b-copy{ position:relative; z-index:2; padding:22px; display:flex; align-items:center; justify-content:space-between; width:100%; gap:10px; }
.bento h4{ color:#fff; font-size:18px; letter-spacing:.01em; }
.bento small{ display:block; font-size:12px; color:#d0d0d0; margin-top:3px; font-weight:500; }
.bento .go{ flex:0 0 38px; height:38px; border-radius:50%; background:var(--accent); color:#111; display:flex; align-items:center; justify-content:center; font-size:13px; transform:translateX(-6px); opacity:0; transition:.3s var(--ease); }
.bento a:hover .go{ opacity:1; transform:none; }
.bento .w2{ grid-column:span 2; }
.bento .h2{ grid-row:span 2; }

/* ---------- Home: split feature (image + content) ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split.rev .split-img{ order:2; }
.split-img{ position:relative; }
.split-img img.main{ width:100%; border-radius:20px; box-shadow:var(--shadow-lg); aspect-ratio:4/3.2; object-fit:cover; }
.split-img .float-card{ position:absolute; left:-26px; bottom:-26px; width:46%; border-radius:16px; border:6px solid #fff; box-shadow:var(--shadow-lg); aspect-ratio:4/3; object-fit:cover; }
.split.rev .split-img .float-card{ left:auto; right:-26px; }
.split-img .logo-chip{ position:absolute; top:18px; left:18px; background:#fff; border-radius:12px; padding:8px 14px; box-shadow:var(--shadow-md); }
.split-img .logo-chip img{ height:34px; width:auto; display:block; }
.tick-list{ list-style:none; margin:22px 0 28px; display:grid; gap:12px; }
.tick-list li{ display:flex; gap:12px; align-items:flex-start; font-size:15px; color:var(--heading); font-weight:600; }
.tick-list li i{ flex:0 0 22px; height:22px; border-radius:50%; background:var(--ink); color:var(--accent); font-size:10px; display:flex; align-items:center; justify-content:center; margin-top:2px; }

/* ---------- Home: horizontal process ---------- */
.proc{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; counter-reset:p; }
.proc::before{ content:""; position:absolute; left:12%; right:12%; top:34px; border-top:2px dashed rgba(201,168,76,.55); }
.proc-step{ position:relative; text-align:center; padding:0 18px; }
.proc-step .pn{ width:68px; height:68px; margin:0 auto 20px; border-radius:50%; background:var(--ink); color:var(--accent); font-weight:700; font-size:22px; display:flex; align-items:center; justify-content:center; border:5px solid #fff; box-shadow:0 0 0 2px var(--accent); position:relative; z-index:2; }
.proc-step h4{ margin-bottom:8px; font-size:17px; }
.proc-step p{ font-size:13.5px; }
.dark-band .proc-step .pn{ border-color:var(--ink); }
.dark-band .proc-step p{ color:#aaa; }

/* ---------- Home: shop-door cards ---------- */
.doors{ display:grid; grid-template-columns:1.2fr 1fr; gap:22px; }
.door{ position:relative; border-radius:22px; overflow:hidden; min-height:340px; display:flex; align-items:flex-end; color:#fff; background:#111; }
.door img.bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.door:hover img.bg{ transform:scale(1.06); }
.door::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.88), rgba(0,0,0,.1) 70%); }
.door-copy{ position:relative; z-index:2; padding:32px; }
.door-copy .tag{ display:inline-block; background:var(--accent); color:#111; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:5px 12px; border-radius:99px; margin-bottom:12px; }
.door-copy h3{ color:#fff; font-size:30px; margin-bottom:8px; }
.door-copy p{ color:#ddd; font-size:14px; max-width:420px; margin-bottom:16px; }
.door-copy .lnk{ font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.06em; display:inline-flex; gap:8px; align-items:center; }
.door-stack{ display:grid; gap:22px; }

/* ---------- Logo-branded placeholder (no product photo) ---------- */
.no-image{ background:linear-gradient(135deg,#f4f4f4,#e9e9e9) !important; flex-direction:column; gap:6px; }
.no-image img{ width:62%; max-width:190px; height:auto; opacity:.55; filter:grayscale(1); }
.no-image.small img{ width:80%; }
.no-image .ni-cap{ font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#999; font-weight:700; }

/* ---------- Inner page hero (title + logo) ---------- */
.page-hero{ height:auto; min-height:300px; align-items:center; overflow:hidden; }
.page-hero::before{ background:linear-gradient(100deg, rgba(0,0,0,.88), rgba(0,0,0,.55)); }
.page-hero .ph-wrap{ position:relative; z-index:2; width:100%; padding-top:70px; padding-bottom:70px; }
.page-hero .ph-wrap .breadcrumb{ padding:0 0 14px; }
.page-hero h1{ color:#fff; font-size:50px; letter-spacing:-.03em; line-height:1.08; margin-bottom:12px; }
.page-hero .ph-sub{ color:#d8d8d8; max-width:620px; font-size:16px; }
.page-hero .ph-logo{ position:absolute; z-index:2; right:max(15px, calc((100% - var(--container))/2 + 15px)); top:50%; transform:translateY(-50%); width:260px; opacity:.9; }
.breadcrumb{ padding-bottom:0; }

/* ---------- About ---------- */
.about-intro{ display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center; }
.about-intro p{ font-size:15.5px; margin-bottom:16px; }
.collage{ position:relative; height:480px; }
.collage img{ position:absolute; object-fit:cover; border-radius:18px; box-shadow:var(--shadow-lg); }
.collage .c1{ width:68%; height:300px; top:0; right:0; }
.collage .c2{ width:52%; height:230px; bottom:0; left:0; border:6px solid #fff; }
.collage .c3{ width:40%; height:170px; bottom:40px; right:6%; border:6px solid #fff; }
.collage .seal{ position:absolute; left:6%; top:34px; background:var(--ink); border-radius:16px; padding:16px 20px; z-index:3; box-shadow:var(--shadow-lg); }
.collage .seal img{ position:static; height:46px; width:auto; border-radius:0; box-shadow:none; display:block; }
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.value-card{ background:#fff; border:1px solid #ececec; border-radius:18px; padding:34px 30px; transition:.35s var(--ease); position:relative; overflow:hidden; }
.value-card::before{ content:""; position:absolute; left:0; top:0; height:4px; width:0; background:var(--accent); transition:width .4s var(--ease); }
.value-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.value-card:hover::before{ width:100%; }
.value-card .vi{ width:54px; height:54px; border-radius:14px; background:var(--ink); color:var(--accent); display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:20px; }
.value-card h4{ margin-bottom:10px; font-size:19px; }
.value-card p{ font-size:14px; }
.why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.12); border-radius:18px; overflow:hidden; }
.why-item{ background:var(--ink); padding:34px 30px; }
.why-item i{ color:var(--accent); font-size:22px; margin-bottom:14px; display:block; }
.why-item h4{ font-size:17px; margin-bottom:6px; }
.why-item p{ font-size:13.5px; color:#a9a9a9; }
.facilities{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.fac{ border-radius:18px; overflow:hidden; background:#fff; border:1px solid #ececec; }
.fac img{ width:100%; height:200px; object-fit:cover; display:block; }
.fac div{ padding:20px 22px; }
.fac h4{ font-size:16px; margin-bottom:4px; }
.fac p{ font-size:13px; }

/* ---------- Threads page: filter chips + zig-zag rows ---------- */
.chip-bar{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:40px; position:sticky; top:84px; z-index:20; padding:12px; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); border-radius:99px; box-shadow:var(--shadow-sm); }
.chip{ border:1px solid #dcdcdc; background:#fff; color:var(--heading); font-family:inherit; font-weight:700; font-size:13px; padding:9px 18px; border-radius:99px; cursor:pointer; transition:.25s var(--ease); }
.chip:hover{ border-color:var(--ink); }
.chip.on{ background:var(--ink); color:#fff; border-color:var(--ink); }
.zig{ display:grid; grid-template-columns:1fr 1fr; background:#fff; border-radius:22px; overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid #ececec; margin-bottom:26px; }
.zig.hide{ display:none; }
.zig .z-img{ position:relative; min-height:340px; background:#111; }
.zig .z-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.zig .z-num{ position:absolute; left:20px; top:20px; z-index:2; background:var(--accent); color:#111; font-weight:700; width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.zig .z-body{ padding:44px 46px; display:flex; flex-direction:column; justify-content:center; }
.zig.flip .z-img{ order:2; }
.zig h3{ font-size:28px; margin-bottom:12px; }
.zig .z-body > p{ font-size:15px; margin-bottom:18px; }
.z-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.z-tags span{ background:#f3f3f3; border-radius:99px; padding:6px 14px; font-size:12.5px; font-weight:600; color:var(--heading); }
.safety-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.safety-card{ background:#fff; border-radius:18px; padding:26px 22px; border:1px solid #ececec; border-top:4px solid var(--accent); }
.safety-card h4{ font-size:15.5px; margin-bottom:12px; }
.safety-card ul{ list-style:none; }
.safety-card li{ font-size:13px; padding:5px 0 5px 20px; position:relative; border-bottom:1px dashed #eee; }
.safety-card li:last-child{ border:0; }
.safety-card li::before{ content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900; font-size:9px; position:absolute; left:0; top:9px; color:var(--accent-dark); }
.safety-banner{ border-radius:22px; overflow:hidden; margin-bottom:28px; position:relative; }
.safety-banner img{ width:100%; height:260px; object-fit:cover; display:block; }
.custom-tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:34px; }
.ctile{ text-align:center; padding:26px 18px; border-radius:16px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.ctile i{ font-size:24px; color:var(--accent); margin-bottom:12px; }
.ctile h4{ font-size:15.5px; margin-bottom:6px; }
.ctile p{ font-size:13px; color:#a9a9a9; }
.serve-row{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:24px; }
.serve-row span{ border:1px solid #ddd; background:#fff; padding:11px 20px; border-radius:99px; font-weight:700; font-size:13.5px; color:var(--heading); display:inline-flex; gap:9px; align-items:center; }
.serve-row i{ color:var(--accent-dark); }

/* ---------- Contact page: dark split ---------- */
.contact-split{ display:grid; grid-template-columns:.9fr 1.1fr; border-radius:26px; overflow:hidden; box-shadow:var(--shadow-lg); }
.contact-side{ background:var(--ink) url('/assets/images/urban/sewing-dark.jpg') center/cover; position:relative; padding:50px 44px; color:#d6d6d6; }
.contact-side::before{ content:""; position:absolute; inset:0; background:rgba(8,8,8,.86); }
.contact-side > *{ position:relative; z-index:2; }
.contact-side .cs-logo{ height:58px; width:auto; margin-bottom:26px; }
.contact-side h3{ color:#fff; font-size:30px; margin-bottom:12px; }
.cs-item{ display:flex; gap:16px; margin-top:26px; }
.cs-item .ci{ flex:0 0 46px; height:46px; border-radius:12px; background:rgba(201,168,76,.16); color:var(--accent); display:flex; align-items:center; justify-content:center; }
.cs-item h5{ color:#fff; font-size:14px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:4px; }
.cs-item p,.cs-item a{ font-size:14px; color:#cfcfcf; }
.cs-item a:hover{ color:var(--accent); }
.contact-main{ background:#fff; padding:50px 46px; }
.contact-main h3{ font-size:30px; margin-bottom:6px; }
.contact-main .field input,.contact-main .field textarea{ background:#f6f6f6; border:1px solid #ececec; border-radius:12px; }
.office-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:34px; }
.office{ border-radius:18px; overflow:hidden; background:#fff; border:1px solid #ececec; }
.office img{ width:100%; height:170px; object-fit:cover; display:block; }
.office div{ padding:20px 22px; }
.office h4{ font-size:16px; margin-bottom:6px; }
.office p{ font-size:13.5px; }
.map-wide{ margin-top:34px; border-radius:22px; overflow:hidden; box-shadow:var(--shadow-md); }
.map-wide iframe{ width:100%; height:380px; border:0; display:block; filter:grayscale(1) contrast(1.05); }

/* ---------- Catalogue page ---------- */
.cat-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.cat-doc{ background:#fff; border-radius:22px; overflow:hidden; border:1px solid #ececec; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; transition:.35s var(--ease); }
.cat-doc:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.cat-doc .cd-img{ position:relative; height:230px; background:#111; }
.cat-doc .cd-img img.bg{ width:100%; height:100%; object-fit:cover; opacity:.75; }
.cat-doc .cd-img .cd-logo{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:58%; filter:drop-shadow(0 4px 14px rgba(0,0,0,.7)); }
.cat-doc .cd-img .cd-type{ position:absolute; top:14px; right:14px; background:var(--accent); color:#111; font-size:11px; font-weight:700; letter-spacing:.1em; padding:5px 12px; border-radius:99px; }
.cat-doc .cd-body{ padding:26px; flex:1; display:flex; flex-direction:column; }
.cat-doc h4{ font-size:20px; margin-bottom:8px; }
.cat-doc p{ font-size:14px; flex:1; margin-bottom:18px; }
.how-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:34px; }
.how-strip div{ display:flex; gap:16px; align-items:flex-start; }
.how-strip b{ flex:0 0 44px; height:44px; border-radius:50%; background:var(--ink); color:var(--accent); display:flex; align-items:center; justify-content:center; font-weight:700; }
.how-strip h5{ font-size:16px; margin-bottom:3px; }
.how-strip p{ font-size:13px; }

/* ---------- Dark footer (white logo now visible) ---------- */
.footer{ background:var(--ink); padding-top:70px; color:#9d9d9d; }
.footer h4{ color:#fff; }
.footer .newsletter p, .footer ul a, .footer .contact-list li, .footer .contact-list a, .footer .contact-list span{ color:#a8a8a8; }
.footer ul a:hover, .footer .contact-list a:hover{ color:var(--accent); }
.footer .contact-list i{ color:var(--accent); }
.footer .foot-logo{ height:62px; width:auto; margin-bottom:18px; display:block; }
.footer .newsletter-form input{ background:#1b1b1b; border-color:#2e2e2e; color:#fff; }
.footer-bottom{ border-top:1px solid #262626; }
.footer-bottom .copy{ color:#8b8b8b; }
.footer-bottom .social a{ background:#1c1c1c; color:#fff; }
.footer-bottom .social a:hover{ background:var(--accent); color:#111; }

/* ---------- Shop: filter sidebar layout ---------- */
.shop-page.wide{ max-width:1360px; }
.shop-layout{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:34px; align-items:start; }
.shop-main{ min-width:0; }
.shop-sidebar{ position:sticky; top:96px; max-height:calc(100vh - 112px); overflow-y:auto; padding:4px 14px 20px 2px; font-size:13.5px; color:#0f2540; scrollbar-width:thin; }
.shop-sidebar h3{ margin:18px 0 8px; font-size:13.5px; font-weight:700; color:#111; }
.shop-sidebar h3:first-child{ margin-top:0; }
.sidebar-head{ display:none; }
.ft-cats,.ft-sub{ list-style:none; margin:0; padding:0; }
.ft-cat-row{ display:flex; align-items:center; justify-content:space-between; }
.ft-sub{ display:none; margin-left:20px; }
.ft-cat.open > .ft-sub{ display:block; }
.ft-radio,.ft-check{ display:flex; align-items:center; gap:9px; padding:5px 0; cursor:pointer; flex:1; line-height:1.3; }
.ft-radio input,.ft-check input{ position:absolute; opacity:0; pointer-events:none; }
.ft-radio span::before,.ft-check span::before{ content:""; display:inline-block; vertical-align:-3px; margin-right:9px; width:14px; height:14px; border:1px solid #b9c0ca; background:#fff; box-sizing:border-box; }
.ft-radio span::before{ border-radius:50%; }
.ft-check span::before{ border-radius:3px; }
.ft-radio input:checked + span::before{ border-color:var(--accent); background:radial-gradient(var(--accent) 0 38%, #fff 42%); }
.ft-check input:checked + span::before{ border-color:var(--accent); background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' d='M2.5 6.2l2.4 2.4 4.6-5'/%3E%3C/svg%3E") center/10px no-repeat; }
.ft-radio:hover span,.ft-check:hover span{ color:var(--accent-dark); }
.ft-radio input:focus-visible + span::before,.ft-check input:focus-visible + span::before{ box-shadow:0 0 0 3px rgba(201,168,76,.35); }
.ft-grouplabel{ flex:1; padding:5px 0 5px 23px; cursor:pointer; }
.ft-link{ display:block; padding:5px 0 5px 23px; color:#111; text-decoration:none; }
.ft-link:hover{ color:var(--accent-dark); }
.ft-chev{ width:28px; height:24px; border:none; background:none; cursor:pointer; position:relative; color:#111; }
.ft-chev::before{ content:""; position:absolute; left:9px; top:6px; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform .2s; }
.ft-cat.open > .ft-cat-row > .ft-chev::before{ transform:rotate(225deg); top:9px; }
.ft-clear{ display:flex; align-items:center; justify-content:center; gap:8px; margin:16px 0 4px; padding:8px 10px; background:#eee; border-radius:4px; color:#111; font-weight:700; font-size:13px; text-decoration:none; position:relative; }
.ft-clear:hover{ background:#e2e2e2; }
.ft-clear .x{ position:absolute; right:12px; font-size:18px; line-height:1; font-weight:400; }
.ft-select,.ft-input{ width:100%; box-sizing:border-box; padding:9px 10px; font-size:13.5px; font-family:inherit; color:#111; border:1px solid #d5dae1; border-radius:4px; background:#fff; outline:none; }
.ft-select{ appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23111' d='M6 9L1 3h10z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; }
.ft-select:focus,.ft-input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(201,168,76,.2); }
.ft-price-labels{ display:flex; justify-content:space-between; font-size:12px; color:#555; margin-bottom:8px; }
.ft-range{ position:relative; height:22px; margin:0 2px; }
.ft-range-track{ position:absolute; left:0; right:0; top:9px; height:4px; background:#dfe3e9; border-radius:4px; }
.ft-range-fill{ position:absolute; top:0; bottom:0; background:var(--accent); border-radius:4px; }
.ft-range input[type=range]{ position:absolute; left:0; top:0; width:100%; height:22px; margin:0; background:none; pointer-events:none; -webkit-appearance:none; appearance:none; }
.ft-range input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; pointer-events:auto; width:16px; height:16px; border-radius:50%; background:#fff; border:2px solid #111; cursor:pointer; }
.ft-range input[type=range]::-moz-range-thumb{ pointer-events:auto; width:12px; height:12px; border-radius:50%; background:#fff; border:2px solid #111; cursor:pointer; }
.ft-range input[type=range]::-webkit-slider-runnable-track{ background:none; }
.ft-range input[type=range]::-moz-range-track{ background:none; }
.filter-toggle{ display:none; align-items:center; gap:8px; padding:9px 18px; border:1px solid #d5dae1; border-radius:999px; background:#fff; color:#111; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; }
.sidebar-overlay{ display:none; }
.active-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:-10px 0 22px; }
.active-chips a{ display:inline-flex; gap:8px; align-items:center; background:#f3f3f3; border-radius:99px; padding:6px 12px; font-size:12.5px; font-weight:600; color:#111; }
.active-chips a:hover{ background:var(--ink); color:#fff; }
.shop-main .product-grid{ grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }

/* ---------- Responsive for redesign ---------- */
@media (max-width:1100px){
  .bento{ grid-template-columns:repeat(2,1fr); }
  .safety-grid{ grid-template-columns:repeat(3,1fr); }
  .hero-text h2{ font-size:50px; }
  .hero-logo{ display:none; }
}
@media (max-width:900px){
  .shop-layout{ display:block; }
  .filter-toggle{ display:inline-flex; }
  .shop-sidebar{ position:fixed; z-index:1100; top:0; left:0; bottom:0; width:min(86vw,320px); max-height:none; background:#fff; padding:0 18px 28px; transform:translateX(-100%); transition:transform .3s ease; box-shadow:12px 0 30px rgba(0,0,0,.18); }
  .shop-sidebar.open{ transform:none; }
  .sidebar-head{ display:flex; align-items:center; justify-content:space-between; padding:16px 0 6px; font-weight:700; font-size:16px; }
  .sidebar-head button{ background:none; border:none; font-size:30px; line-height:1; cursor:pointer; color:#111; }
  .sidebar-overlay{ position:fixed; inset:0; z-index:1050; background:rgba(0,0,0,.5); opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s; display:block; }
  body.sidebar-open .sidebar-overlay{ opacity:1; visibility:visible; }
  body.sidebar-open{ overflow:hidden; }
  .split,.about-intro,.contact-split,.doors{ grid-template-columns:1fr; gap:40px; }
  .split.rev .split-img{ order:0; }
  .split-img .float-card{ left:10px; bottom:-20px; } .split.rev .split-img .float-card{ right:10px; }
  .values,.why-grid,.facilities,.office-cards,.cat-cards,.how-strip{ grid-template-columns:1fr; }
  .zig{ grid-template-columns:1fr; } .zig .z-img{ min-height:240px; } .zig.flip .z-img{ order:0; }
  .zig .z-body{ padding:28px 24px; }
  .custom-tiles{ grid-template-columns:1fr 1fr; }
  .stats-grid{ grid-template-columns:1fr 1fr; } .stat:nth-child(2){ border-right:0; } .stat{ border-bottom:1px solid rgba(255,255,255,.1); }
  .proc{ grid-template-columns:1fr 1fr; gap:34px 0; } .proc::before{ display:none; }
  .collage{ height:400px; }
  .page-hero .ph-logo{ display:none; }
  .page-hero h1{ font-size:38px; }
  .chip-bar{ position:static; border-radius:18px; }
  .sec-title{ font-size:30px; }
}
@media (max-width:640px){
  .hero,.hero-inner{ min-height:640px; }
  .hero-text h2{ font-size:36px; } .hero-text p{ font-size:15.5px; }
  .hero-badges .container{ gap:8px 16px; } .hero-badges span{ font-size:11.5px; }
  .hero-arrows{ display:none; }
  .bento{ grid-template-columns:1fr; grid-auto-rows:210px; } .bento .w2{ grid-column:auto; } .bento .h2{ grid-row:auto; }
  .safety-grid,.custom-tiles{ grid-template-columns:1fr; }
  .contact-side,.contact-main{ padding:34px 24px; }
  .proc{ grid-template-columns:1fr; }
}
.no-image img{ position:static !important; width:62% !important; height:auto !important; object-fit:contain !important; max-width:190px; transform:none !important; }
.no-image.small img{ width:80% !important; }
.bento .pos-r img{ object-position:82% center; }

/* ============ Our Clients (home page) ============ */
.clients-section{ background:#fff; }
.clients-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:18px; }
.client-logo{
  display:flex; align-items:center; justify-content:center;
  height:120px; padding:18px 20px; background:#fff;
  border:1px solid #ececec; border-radius:var(--radius-sm);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.client-logo img{ max-width:100%; max-height:84px; width:auto; height:auto; object-fit:contain; mix-blend-mode:multiply; }
.client-logo:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:#d9d9d9; }
@media (max-width:1100px){ .clients-grid{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:767px){ .clients-grid{ grid-template-columns:repeat(3,1fr); gap:12px; } .client-logo{ height:100px; padding:12px; } }
@media (max-width:480px){ .clients-grid{ grid-template-columns:repeat(2,1fr); } }
