/* ══════════════════════════════════════════════════════
   ROOT TOKENS
══════════════════════════════════════════════════════ */
:root {
  --clr-cream:      #f8f4ef;
  --clr-warm:       #f0e8dd;
  --clr-sand:       #e8d9c5;
  --clr-mocha:      #8B6B4A;
  --clr-mocha-dark: #6b4f35;
  --clr-gold:       #C9A84C;
  --clr-gold-light: #e8c97a;
  --clr-espresso:   #2c1f14;
  --clr-text:       #3a2d22;
  --clr-text-light: #7a6555;
  --clr-white:      #ffffff;
  --clr-light-bg:   #faf7f3;
  --font-display:   'Cormorant Garamond', Georgia, serif;
  --font-body:      'Jost', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-body);
  color: var(--clr-text);
  background: var(--clr-cream);
  overflow-x: hidden;
  cursor: none; /* custom cursor */
}

/* ── CUSTOM CURSOR ── */
#cursor {
  position: fixed; z-index: 9999; pointer-events: none;
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--clr-mocha);
  transform: translate(-50%, -50%);
  transition: transform .12s, width .25s, height .25s, background .25s;
  will-change: transform;
}
#cursor-ring {
  position: fixed; z-index: 9998; pointer-events: none;
  width: 36px; height: 36px; border-radius: 50%;
  border: 1.5px solid var(--clr-mocha);
  transform: translate(-50%, -50%);
  transition: width .35s, height .35s, border-color .35s;
  opacity: .55;
  will-change: transform;
}
body:has(a:hover) #cursor, body:has(button:hover) #cursor { width: 18px; height: 18px; background: var(--clr-gold); }
body:has(a:hover) #cursor-ring, body:has(button:hover) #cursor-ring { width: 52px; height: 52px; border-color: var(--clr-gold); opacity: .4; }
@media (hover: none) { #cursor, #cursor-ring { display: none; } body { cursor: auto; } }

/* ── PAGE LOADER ── */
#loader {
  position: fixed; inset: 0; z-index: 8000;
  background: var(--clr-espresso);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 28px;
}
#loader-logo {
  /*font-family: var(--font-display); font-size: 32px; font-weight: 400;
  color: white; letter-spacing: 0.06em;
  opacity: 0;*/

  font-size:clamp(36px,8vw,54px);font-weight:300;color:var(--clr-gold-light);letter-spacing:.14em;opacity:0;animation:fin .7s ease .3s forwards
}
#loader-logo em { font-style: italic; color: var(--clr-gold-light); }
#loader-bar-wrap { width: 180px; height: 1px; background: rgba(255,255,255,0.15); overflow: hidden; }
#loader-bar { height: 100%; width: 0%; background: var(--clr-gold); }
#loader-pct { font-family: var(--font-body); font-size: 11px; letter-spacing: 0.2em; color: rgba(255,255,255,0.4); }

.l-tag{font-size:clamp(8px,2vw,9px);letter-spacing:.44em;text-transform:uppercase;color:var(--clr-gold);opacity:0;animation:fin .6s ease .65s forwards}
.l-bar{width:130px;height:1px;background:rgba(200,168,75,.18);overflow:hidden;opacity:0;animation:fin .4s ease .9s forwards}
.l-fill{height:100%;background:var(--clr-gold);animation:lbar 1.5s ease 1s forwards;width:0}
@keyframes fin{to{opacity:1}}
@keyframes lbar{to{width:100%}}

/* ══════════════════════════════════════════════════════
   TOP BAR
══════════════════════════════════════════════════════ */
.top-bar {
  background: var(--clr-white);
  border-bottom: 1px solid rgba(139,107,74,0.12);
  padding: 7px 36px;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11.5px; letter-spacing: 0.055em;
  color: var(--clr-text-light); font-family: var(--font-body); font-weight: 400;
  position: relative; z-index: 200;
  /*transform: translateY(-100%); /* animated in */*/
}
.top-bar a { color: inherit; text-decoration: none; transition: color .2s; }
.top-bar a:hover { color: var(--clr-white); }
.top-bar-left  { display: flex; align-items: center; gap: 20px; }
.top-bar-center { position: absolute; left: 50%; transform: translateX(-50%); }
.top-bar-badge {
  background: var(--clr-mocha); color: white;
  padding: 3px 12px; border-radius: 2px;
  font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase;
}
.top-bar-right { display: flex; align-items: center; gap: 12px; }
.social-icon {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(139,107,74,0.08); color: var(--clr-mocha);
  transition: background .2s, color .2s; text-decoration: none;
}
.social-icon:hover { background: var(--clr-mocha); color: white; }
.social-icon svg { width: 13px; height: 13px; fill: currentColor; }

/* ══════════════════════════════════════════════════════
   NAV — transparent → white on scroll
══════════════════════════════════════════════════════ */
.nav {
  position: sticky; top: 0; z-index: 100;
  background: transparent;
  transition: background .45s, box-shadow .45s;
}
.nav.scrolled {
  background: rgba(255,255,255,0.97);
  box-shadow: 0 2px 28px rgba(44,31,20,0.09);
  backdrop-filter: blur(14px);
}
.nav-inner {
  width: 100%; margin: 0 auto; padding: 0 36px;
  height: 70px; display: flex; align-items: center; justify-content: space-between;
}
.nav-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.nav-logo img { height: 45px; width: auto; transition: filter .4s; }
.nav.scrolled .nav-logo img {
  filter: brightness(5) saturate(50%) invert(50%) sepia(80%) saturate(402%) hue-rotate(360deg) brightness(90%) contrast(80%);
}
.nav-logo-text { line-height: 1.15; }
.nav-logo-text strong {
  display: block; font-family: var(--font-display); font-weight: 600;
  font-size: 17px; color: white; letter-spacing: 0.03em;
  transition: color .4s; text-shadow: 0 1px 4px rgba(0,0,0,.3);
}
.nav-logo-text span {
  display: block; font-size: 9.5px; letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(255,255,255,.75); transition: color .4s;
}
.nav.scrolled .nav-logo-text strong { color: var(--clr-mocha-dark); text-shadow: none; }
.nav.scrolled .nav-logo-text span  { color: var(--clr-gold); }
.nav-links { display: flex; align-items: center; gap: 2px; list-style: none; }
.nav-links a {
  display: block; padding: 8px 12px; font-size: 12.5px; font-weight: 400;
  letter-spacing: 0.06em; color: rgba(255,255,255,.9); text-decoration: none;
  text-transform: uppercase; border-radius: 3px;
  transition: color .25s, background .25s;
  /*text-shadow: 0 1px 3px rgba(0,0,0,.25);*/
}
.nav-links a:hover { color: white; background: rgba(255,255,255,.12); }
.nav.scrolled .nav-links a { color: var(--clr-text); text-shadow: none; }
.nav.scrolled .nav-links a:hover { color: var(--clr-mocha); background: rgba(139,107,74,.06); }
.nav-links .nav-cta > a {
  background: rgba(255,255,255,.18); color: white;
  padding: 8px 18px; border-radius: 3px;
  border: 1px solid rgba(255,255,255,.35); text-shadow: none;
}
.nav-links .nav-cta > a:hover { background: rgba(255,255,255,.3); }
.nav.scrolled .nav-links .nav-cta > a { background: var(--clr-mocha); color: white; border-color: var(--clr-mocha); }
.nav.scrolled .nav-links .nav-cta > a:hover { background: var(--clr-mocha-dark); }
.nav-hamburger {
  display: none; flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer; padding: 6px;
}
.nav-hamburger span { display: block; width: 22px; height: 2px; background: white; border-radius: 2px; transition: background .3s; }
.nav.scrolled .nav-hamburger span { background: var(--clr-espresso); }

/* Mobile nav */
.nav-mobile {
  display: none; position: fixed; inset: 0; z-index: 999;
  background: white; flex-direction: column; padding: 32px; overflow-y: auto;
}
.nav-mobile.open { display: flex; }
.nav-mobile-close { align-self: flex-end; background: none; border: none; font-size: 24px; cursor: pointer; color: var(--clr-espresso); margin-bottom: 28px; }
.nav-mobile a {
  display: block; font-family: var(--font-display); font-size: 26px; font-weight: 500;
  color: var(--clr-espresso); text-decoration: none;
  padding: 12px 0; border-bottom: 1px solid rgba(139,107,74,.1);
  letter-spacing: 0.02em; transition: color .2s;
}
.nav-mobile a:hover { color: var(--clr-mocha); }

/* ══════════════════════════════════════════════════════
   HERO
══════════════════════════════════════════════════════ */
.hero {
  position: relative; height: 93vh; min-height: 580px;
  overflow: hidden; background: var(--clr-espresso);
  margin-top: -70px;
}
.hero-slides { position: absolute; inset: 0; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease; }
.hero-slide.active { opacity: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.5); }
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, rgba(44,31,20,.72) 0%, rgba(44,31,20,.12) 100%);
}
.hero-content {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: center;
  padding: 70px 8% 60px; max-width: 800px;
}
/* GSAP split targets — each word wraps in .word, each char in .char */
.hero-eyebrow {
  font-family: var(--font-body); font-size: 11px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--clr-gold-light);
  margin-bottom: 20px; display: flex; align-items: center; gap: 12px;
}
.hero-eyebrow-line { display: block; width: 0px; height: 1px; background: var(--clr-gold-light); flex-shrink: 0; }
.hero-eyebrow-text { display: block; }
.hero-heading {
  font-family: var(--font-display); font-size: clamp(36px,5.5vw,68px);
  font-weight: 400; line-height: 1.12; color: white; margin-bottom: 22px;
  overflow: hidden;
}
.hero-heading em  { font-style: italic; color: var(--clr-gold-light); }
.hero-heading strong { font-weight: 600; }
/* Each line wrapped in .line-wrap for clip reveal */
.line-wrap { overflow: hidden; display: block; }
.hero-body {
  font-size: 15px; line-height: 1.75; color: rgba(255,255,255,.78);
  max-width: 480px; margin-bottom: 36px; font-weight: 300;
  opacity: 0; transform: translateY(20px);
}
.hero-btns { display: flex; gap: 14px; flex-wrap: wrap; opacity: 0; transform: translateY(20px); }
.btn-primary {
  display: inline-block; padding: 13px 30px; background: var(--clr-mocha); color: white;
  font-family: var(--font-body); font-size: 12px; letter-spacing: 0.12em;
  text-transform: uppercase; font-weight: 500; text-decoration: none;
  border-radius: 3px; border: 1.5px solid var(--clr-mocha); transition: all .25s;
}
.btn-primary:hover { background: var(--clr-mocha-dark); border-color: var(--clr-mocha-dark); }
.btn-outline-white {
  display: inline-block; padding: 13px 30px; background: transparent; color: white;
  font-family: var(--font-body); font-size: 12px; letter-spacing: 0.12em;
  text-transform: uppercase; font-weight: 500; text-decoration: none;
  border-radius: 3px; border: 1.5px solid rgba(255,255,255,.55); transition: all .25s;
}
.btn-outline-white:hover { background: rgba(255,255,255,.12); border-color: white; }
.hero-counter {
  position: absolute; bottom: 34px; right: 48px;
  display: flex; align-items: center; gap: 12px; opacity: 0;
}
.hero-dots { display: flex; gap: 6px; }
.hero-dot { width: 28px; height: 2px; background: rgba(255,255,255,.3); cursor: pointer; border: none; transition: background .3s; }
.hero-dot.active { background: var(--clr-gold); }
.hero-num { font-family: var(--font-display); font-size: 13px; color: rgba(255,255,255,.5); letter-spacing: .08em; }
.hero-scroll {
  position: absolute; bottom: 34px; left: 8%;
  display: flex; align-items: center; gap: 10px;
  color: rgba(255,255,255,.5); font-size: 10px; letter-spacing: .2em; text-transform: uppercase;
  opacity: 0;
}
.hero-scroll-line { width: 1px; height: 36px; background: rgba(255,255,255,.3); animation: scrollPulse 2s ease-in-out infinite; }
@keyframes scrollPulse { 0%,100%{opacity:.3}50%{opacity:.8} }

/* ── TICKER ── */
.ticker { background: var(--clr-mocha); color: white; padding: 10px 0; overflow: hidden; white-space: nowrap; }
.ticker-track { display: inline-flex; animation: tickerMove 30s linear infinite; }
.ticker-item { display: inline-flex; align-items: center; gap: 24px; padding: 0 32px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 400; opacity: .9; }
.ticker-item::before { content:'◆'; font-size:7px; opacity:.6; }
@keyframes tickerMove { 0%{transform:translateX(0)}100%{transform:translateX(-50%)} }

/* ══════════════════════════════════════════════════════
   GSAP REVEAL UTILITIES
══════════════════════════════════════════════════════ */
/* Elements start invisible; GSAP sets them visible */
.reveal-up      { opacity: 0; transform: translateY(50px); }
.reveal-left    { opacity: 0; transform: translateX(-50px); }
.reveal-right   { opacity: 0; transform: translateX(50px); }
.reveal-scale   { opacity: 0; transform: scale(.92); }
.reveal-fade    { opacity: 0; }
/* Stagger children use data-stagger on parent */
[data-stagger] > * { opacity: 0; transform: translateY(30px); }

/* ── section label shared ── */
.section-label {
  font-family: var(--font-body); font-size: 10.5px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--clr-mocha); margin-bottom: 14px;
  display: flex; align-items: center; gap: 10px;
}
.section-label::before { content:''; display:block; width:28px; height:1px; background:var(--clr-mocha); }
.section-label.center { justify-content: center; }
.section-label.center::before, .section-label.center::after { content:''; display:block; flex:0 0 28px; height:1px; background:var(--clr-mocha); }
.section-heading {
  font-family: var(--font-display); font-size: clamp(30px,3.5vw,48px);
  font-weight: 400; line-height: 1.15; color: var(--clr-espresso); margin-bottom: 20px;
}
.section-heading em { font-style: italic; }

/* ── buttons ── */
.btn-mocha { display:inline-block;padding:13px 30px;background:var(--clr-mocha);color:white;font-family:var(--font-body);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;text-decoration:none;border-radius:3px;border:1.5px solid var(--clr-mocha);transition:all .25s; }
.btn-mocha:hover { background:var(--clr-mocha-dark);border-color:var(--clr-mocha-dark); }
.btn-outline-dark { display:inline-block;padding:13px 30px;background:transparent;color:var(--clr-mocha);font-family:var(--font-body);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;text-decoration:none;border-radius:3px;border:1.5px solid var(--clr-mocha);transition:all .25s; }
.btn-outline-dark:hover { background:var(--clr-mocha);color:white; }
.btn-large { display:inline-block;padding:16px 48px;font-family:var(--font-body);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;text-decoration:none;border-radius:3px;transition:all .25s; }
.btn-large.mocha { background:var(--clr-mocha);color:white;border:1.5px solid var(--clr-mocha); }
.btn-large.mocha:hover { background:var(--clr-mocha-dark); }
.btn-large.outline { background:transparent;color:var(--clr-mocha);border:1.5px solid var(--clr-mocha);margin-left:14px; }
.btn-large.outline:hover { background:var(--clr-mocha);color:white; }

/* ══════════════════════════════════════════════════════
   ABOUT
══════════════════════════════════════════════════════ */
.about-section { background: var(--clr-white); padding: 100px 0; overflow: hidden; }
.about-inner { max-width:1280px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center; }
.about-images { position:relative;height:540px; }
.about-img-main { position:absolute;top:0;left:0;width:78%;height:86%;object-fit:cover;border-radius:2px;box-shadow:0 20px 60px rgba(44,31,20,.18); }
.about-img-accent { position:absolute;bottom:0;right:0;width:52%;height:55%;object-fit:cover;border-radius:2px;box-shadow:0 16px 48px rgba(44,31,20,.2);border:5px solid white; }
.about-badge { position:absolute;top:50%;left:60%;transform:translate(-50%,-50%);width:90px;height:90px;background:var(--clr-mocha);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:white;z-index:2;box-shadow:0 8px 24px rgba(44,31,20,.25); }
.about-badge strong { font-family:var(--font-display);font-size:26px;font-weight:600;line-height:1; }
.about-badge span { font-size:9px;letter-spacing:.1em;text-transform:uppercase;opacity:.85; }
.about-quote { margin:24px 0;padding:18px 22px;border-left:3px solid var(--clr-gold);background:var(--clr-warm);border-radius:0 4px 4px 0; }
.about-quote p { font-family:var(--font-display);font-size:17px;font-style:italic;color:var(--clr-espresso);line-height:1.6;font-weight:400;margin:0; }
/* ── About clientele mini-grid ── */
.about-clientele { margin-top:28px; }
.about-clientele-label { font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--clr-mocha);margin-bottom:12px;font-weight:500; }
.about-clientele-grid { display:grid;grid-template-columns:repeat(6,1fr);gap:8px; }
.about-clientele-grid img {
  width:100%; aspect-ratio:1/1;
  object-fit:cover; object-position:top center;
  border-radius:4px;
  border:2px solid white;
  box-shadow:0 3px 10px rgba(44,31,20,.12);
  transition:transform .3s, box-shadow .3s;
}
.about-clientele-grid img:hover { transform:scale(1.06); box-shadow:0 6px 20px rgba(44,31,20,.2); }
@media (max-width:520px) { .about-clientele-grid { grid-template-columns:repeat(3,1fr); } }

.about-text p { font-size:15px;line-height:1.85;color:var(--clr-text-light);font-weight:300;margin-bottom:14px; }

.about-stats { display:flex;gap:32px;margin:28px 0;flex-wrap:wrap; }
.about-stat strong { display:block;font-family:var(--font-display);font-size:38px;font-weight:500;color:var(--clr-mocha);line-height:1; }
.about-stat span { font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-text-light);margin-top:3px;display:block; }

/* ══════════════════════════════════════════════════════
   SHOP BY SHAPE
══════════════════════════════════════════════════════ */
.shop-shape { background: var(--clr-cream); padding: 100px 0 80px; }
.shop-shape-header { max-width:1280px;margin:0 auto 48px;padding:0 48px;text-align:center; }
.shop-shape-header p { font-size:15px;color:var(--clr-text-light);max-width:500px;margin:12px auto 0;line-height:1.7;font-weight:300; }
.shape-grid { max-width:1280px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:repeat(5,1fr);gap:16px; }
.shape-card { position:relative;overflow:hidden;aspect-ratio:3/4;cursor:pointer;display:block;text-decoration:none;border-radius:4px; }
.shape-card img { width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.25,.46,.45,.94);filter:brightness(.78); }
.shape-card:hover img { transform:scale(1.07);filter:brightness(.62); }
.shape-card-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(44,31,20,.88) 0%,rgba(44,31,20,.06) 55%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:22px 18px; }
.shape-card-name { font-family:var(--font-display);font-size:22px;font-weight:500;color:white;letter-spacing:.02em;display:block; }
.shape-card-link { font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clr-gold-light);margin-top:4px;display:block;opacity:0;transform:translateY(6px);transition:all .3s; }
.shape-card:hover .shape-card-link { opacity:1;transform:translateY(0); }

/* ══════════════════════════════════════════════════════
   FEATURED COLLECTION
══════════════════════════════════════════════════════ */
.collection { background: var(--clr-light-bg); padding: 100px 0; }
.collection-header { max-width:1280px;margin:0 auto 52px;padding:0 48px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px; }
.collection-header p { font-size:15px;color:var(--clr-text-light);max-width:420px;line-height:1.7;font-weight:300;margin-top:8px; }
.collection-grid { max-width:1280px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px; }
.carpet-card { background:white;border-radius:4px;overflow:hidden;text-decoration:none;color:inherit;display:block;border:1px solid rgba(139,107,74,.1);transition:transform .35s,box-shadow .35s; }
.carpet-card:hover { transform:translateY(-5px);box-shadow:0 18px 52px rgba(44,31,20,.13); }
.carpet-card-img { position:relative;overflow:hidden;aspect-ratio:3/4; }
.carpet-card-img img { width:100%;height:100%;object-fit:cover;transition:transform .65s ease; }
.carpet-card:hover .carpet-card-img img { transform:scale(1.06); }
.carpet-badge { position:absolute;top:12px;left:12px;background:var(--clr-mocha);color:white;font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:2px;font-weight:500; }
.carpet-card-body { padding:18px 20px 20px; }
.carpet-material { font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--clr-mocha);margin-bottom:6px;font-weight:400; }
.carpet-name { font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--clr-espresso);line-height:1.25;margin-bottom:6px; }
.carpet-code { font-size:11px;color:var(--clr-text-light);letter-spacing:.04em;margin-bottom:12px; }
.carpet-footer { display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid rgba(139,107,74,.1); }
.carpet-size { font-size:11px;color:var(--clr-text-light);letter-spacing:.04em; }
.carpet-view { font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-mocha);font-weight:500; }
.collection-cta { text-align:center;margin-top:52px; }

/* ══════════════════════════════════════════════════════
   SHOP BY CATEGORY
══════════════════════════════════════════════════════ */
.shop-category { background: var(--clr-cream); padding: 100px 0; }
.shop-category-header { max-width:1280px;margin:0 auto 52px;padding:0 48px;text-align:center; }
.shop-category-header p { font-size:15px;color:var(--clr-text-light);max-width:500px;margin:12px auto 0;line-height:1.7;font-weight:300; }
.category-grid { max-width:1280px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:repeat(6,1fr);gap:20px; }
.category-card { background:white;border-radius:4px;overflow:hidden;text-decoration:none;color:inherit;display:block;border:1px solid rgba(139,107,74,.1);transition:transform .35s,box-shadow .35s; }
.category-card:hover { transform:translateY(-5px);box-shadow:0 18px 52px rgba(44,31,20,.13); }
.category-card-img { position:relative;overflow:hidden;aspect-ratio:3/4; }
.category-card-img img { width:100%;height:100%;object-fit:cover;transition:transform .65s ease; }
.category-card:hover .category-card-img img { transform:scale(1.06); }
.category-card-body { padding:14px 16px 16px;background:white;border-top:2px solid var(--clr-sand);text-align:center;transition:background .3s; }
.category-card:hover .category-card-body { background:var(--clr-warm); }
.category-card-name { font-family:var(--font-display);font-size:19px;font-weight:500;color:var(--clr-espresso);display:block;letter-spacing:.01em; }
.category-card-link { font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--clr-mocha);margin-top:4px;display:block;font-weight:500; }

/* ══════════════════════════════════════════════════════
   WHY ROYAL CARPET
══════════════════════════════════════════════════════ */
.why-section { background:var(--clr-white);padding:100px 0;position:relative;overflow:hidden; }
.why-section::before { content:'';position:absolute;top:-60px;right:-120px;width:500px;height:500px;background:radial-gradient(circle,rgba(201,168,76,.07) 0%,transparent 70%);pointer-events:none; }
.why-header { max-width:680px;margin:0 auto 64px;padding:0 48px;text-align:center; }
.why-header p { font-size:16px;color:var(--clr-text-light);line-height:1.75;font-weight:300;margin-top:14px; }
.why-grid { max-width:1280px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px; }
.why-card { background:var(--clr-light-bg);border-radius:8px;padding:36px 32px;border:1px solid rgba(139,107,74,.09);position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s; }
.why-card:hover { transform:translateY(-4px);box-shadow:0 12px 36px rgba(44,31,20,.08); }
.why-card::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,var(--clr-mocha),var(--clr-gold));opacity:0;transition:opacity .3s; }
.why-card:hover::before { opacity:1; }
.why-card-num { font-family:var(--font-display);font-size:52px;font-weight:300;color:var(--clr-sand);line-height:1;margin-bottom:12px;letter-spacing:-.02em; }
.why-card-icon { width:48px;height:auto;margin-bottom:18px;opacity:.85; }
.why-card h3 { font-family:var(--font-display);font-size:21px;font-weight:500;color:var(--clr-espresso);margin-bottom:10px; }
.why-card p { font-size:14px;line-height:1.75;color:var(--clr-text-light);font-weight:300; }
.why-image-band { max-width:1280px;margin:64px auto 0;padding:0 48px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;height:220px; }
.why-band-img { overflow:hidden;border-radius:4px; }
.why-band-img img { width:100%;height:100%;object-fit:cover;transition:transform .6s;filter:brightness(.92) saturate(.85); }
.why-band-img:hover img { transform:scale(1.04); }

/* ══════════════════════════════════════════════════════
   TESTIMONIALS — light ivory style
══════════════════════════════════════════════════════ */
.testimonials { background:var(--clr-light-bg);padding:100px 0 0;position:relative;overflow:hidden;border-top:1px solid rgba(139,107,74,.08); }
.testimonials::before { content:'"';position:absolute;top:-20px;left:4%;font-family:var(--font-display);font-size:380px;color:rgba(139,107,74,.06);line-height:1;pointer-events:none;user-select:none; }
.testi-header { max-width:1280px;margin:0 auto 56px;padding:0 48px;text-align:center; }
.testi-header .section-label { color:var(--clr-mocha); }
.testi-header .section-label::before, .testi-header .section-label::after { background:var(--clr-mocha); }
.testi-header .section-heading { color:var(--clr-espresso); }
.testi-header p { font-size:14px;color:var(--clr-text-light);letter-spacing:.06em;margin-top:-8px;font-style:italic;font-family:var(--font-display); }
.testi-slider-wrap { max-width:1280px;margin:0 auto;padding:0 48px;position:relative; }
.testi-slider { overflow:hidden; }
.testi-track { display:flex;transition:transform .6s cubic-bezier(.25,.46,.45,.94); }
.testi-card {
  flex:0 0 calc(33.333% - 16px); margin-right:24px;
  background:var(--clr-white); border:1px solid rgba(139,107,74,.12);
  border-radius:6px; padding:40px 36px 36px;
  position:relative; transition:transform .3s,box-shadow .3s;
  box-shadow:0 4px 20px rgba(44,31,20,.05);
}
.testi-card:hover { transform:translateY(-4px);box-shadow:0 12px 36px rgba(44,31,20,.1); }
.testi-card::before { content:'"';position:absolute;top:20px;left:28px;font-family:var(--font-display);font-size:80px;font-weight:400;color:var(--clr-gold);line-height:1;opacity:.4;pointer-events:none; }
.testi-quote { font-family:var(--font-display);font-size:16.5px;font-style:italic;font-weight:300;color:var(--clr-text);line-height:1.75;margin-bottom:28px;margin-top:28px; }
.testi-divider { width:36px;height:1px;background:var(--clr-gold);opacity:.6;margin-bottom:22px; }
.testi-author { display:flex;align-items:center;gap:14px; }
.testi-avatar { width:44px;height:44px;border-radius:50%;background:var(--clr-mocha);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:16px;font-weight:500;color:white;flex-shrink:0;border:2px solid rgba(139,107,74,.2); }
.testi-name { font-size:13px;font-weight:500;color:var(--clr-espresso);letter-spacing:.03em; }
.testi-role { font-size:11px;color:var(--clr-text-light);margin-top:2px;letter-spacing:.03em; }
.testi-arrows { display:flex;justify-content:center;gap:12px;margin-top:40px;padding-bottom:20px; }
.testi-arrow { width:44px;height:44px;border-radius:50%;border:1px solid rgba(139,107,74,.3);background:transparent;color:var(--clr-mocha);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s; }
.testi-arrow:hover { background:var(--clr-mocha);border-color:var(--clr-mocha);color:white; }

/* scrolling carpet strip */
.carpet-strip { margin-top:60px;overflow:hidden;white-space:nowrap;line-height:0;border-top:1px solid rgba(139,107,74,.1); }
.carpet-strip-track { display:inline-flex;animation:stripMove 28s linear infinite; }
.carpet-strip-track:hover { animation-play-state:paused; }
.carpet-strip-img { width:180px;height:240px;object-fit:cover;flex-shrink:0;filter:brightness(.8) saturate(.85);transition:filter .4s; }
.carpet-strip-img:hover { filter:brightness(1) saturate(1); }
@keyframes stripMove { 0%{transform:translateX(0)}100%{transform:translateX(-50%)} }

/* ── CLIENTS ── */
.clients-strip { background:var(--clr-warm);padding:60px 0;border-bottom:1px solid rgba(139,107,74,.1); }
.clients-inner { max-width:1280px;margin:0 auto;padding:0 48px; }
.clients-label { text-align:center;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--clr-text-light);margin-bottom:32px; }
.clients-grid { display:grid;grid-template-columns:repeat(6,1fr);gap:16px; }
.client-card { display:flex;flex-direction:column;gap:10px;align-items:center; }
.client-card img {
  width:100%; aspect-ratio:1/1;
  object-fit:cover; object-position:top center;
  border-radius:4px;
  border:3px solid white;
  box-shadow:0 4px 18px rgba(44,31,20,.14);
  transition:transform .3s, box-shadow .3s;
}
.client-card:hover img { transform:scale(1.04); box-shadow:0 8px 28px rgba(44,31,20,.2); }
.client-card span {
  font-size:11px; letter-spacing:.07em; text-align:center;
  color:var(--clr-text-light); font-weight:400;
  line-height:1.4;
}
@media (max-width:900px) { .clients-grid { grid-template-columns:repeat(3,1fr); gap:14px; } }
@media (max-width:520px) { .clients-grid { grid-template-columns:repeat(2,1fr); gap:12px; } .clients-inner { padding:0 20px; } }

/* ── FOOTER ── */
.footer { background:var(--clr-warm);color:var(--clr-text-light);padding:80px 0 0;border-top:1px solid rgba(139,107,74,.12); }
.footer-inner { max-width:1280px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px; }
.footer-logo { display:flex;align-items:center;gap:10px;text-decoration:none;margin-bottom:16px; }
.footer-logo img { height:32px;opacity:.9; filter: brightness(5) saturate(50%) invert(50%) sepia(80%) saturate(402%) hue-rotate(360deg) brightness(90%) contrast(80%);}
.footer-logo-text strong { display:block;font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--clr-espresso); }
.footer-logo-text span { display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--clr-mocha); }
.footer-brand p { font-size:13.5px;line-height:1.8;color:var(--clr-text-light);font-weight:300;margin-bottom:18px; }
.footer-col h4 { font-family:var(--font-body);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--clr-espresso);margin-bottom:20px;font-weight:500; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:9px; }
.footer-col ul li a { font-size:13.5px;color:var(--clr-text-light);text-decoration:none;transition:color .2s;font-weight:300; }
.footer-col ul li a:hover { color:var(--clr-mocha); }
.footer-contact-item { display:flex;gap:10px;margin-bottom:10px;font-size:13.5px;color:var(--clr-text-light);font-weight:300; }
.footer-contact-item span:first-child { color:var(--clr-mocha);font-size:14px; }
.footer-contact-item a { color:inherit;text-decoration:none; }
.footer-contact-item a:hover { color:var(--clr-mocha-dark); }
.footer-bottom { border-top:1px solid rgba(139,107,74,.15);margin-top:60px;padding:22px 48px;max-width:1280px;margin-left:auto;margin-right:auto;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--clr-text-light);flex-wrap:wrap;gap:12px; }
.footer-bottom a { color:inherit;text-decoration:none; }
.footer-bottom a:hover { color:var(--clr-mocha); }
.footer-bottom-links { display:flex;gap:20px; }

/* ══════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════ */
@media (max-width:1200px) {
  .shape-grid { grid-template-columns:repeat(3,1fr);padding:0 32px; }
  .category-grid { grid-template-columns:repeat(3,1fr); }
  .collection-grid { grid-template-columns:repeat(2,1fr); }
  .why-grid { grid-template-columns:repeat(2,1fr); }
  .footer-inner { grid-template-columns:1fr 1fr;gap:40px; }
  .testi-card { flex:0 0 calc(50% - 12px); }
}
@media (max-width:900px) {
  .about-inner { grid-template-columns:1fr;gap:40px;padding:0 28px; }
  .about-images { height:380px; }
  .collection-header { flex-direction:column;align-items:flex-start; }
  .why-image-band { height:160px; }
}
@media (max-width:768px) {
  .top-bar { padding:7px 20px; }
  .top-bar-center { display:none; }
  .top-bar-right { display:none; }
  .nav-links { display:none; }
  .nav-hamburger { display:flex; }
  .nav-inner { padding:0 20px; }
  .hero-content { padding:80px 6% 60px; }
  .hero-counter { right:20px; }
  .shape-grid { grid-template-columns:repeat(2,1fr);padding:0 20px;gap:12px; }
  .shop-shape-header,.collection-header,.shop-category-header,.why-header,.testi-header { padding:0 20px; }
  .collection-grid,.category-grid,.why-grid { padding:0 20px;grid-template-columns:1fr 1fr; }
  .testi-slider-wrap { padding:0 20px; }
  .testi-card { flex:0 0 100%;margin-right:0; }
  .footer-inner { padding:0 20px;grid-template-columns:1fr; }
  .footer-bottom { padding:20px;flex-direction:column;align-items:flex-start; }
  .why-image-band { padding:0 20px; }
  .clients-inner { padding:0 20px; }
  .section-heading { font-size:30px; }
  .carpet-strip-img { width:130px;height:175px; }
}
@media (max-width:520px) {
  .collection-grid { grid-template-columns:1fr; }
  .category-grid { grid-template-columns:repeat(2,1fr);gap:14px; }
  .why-grid { grid-template-columns:1fr; }
  .hero-btns { flex-direction:column; }
  .hero-heading { font-size:32px; }
  .btn-large.outline { margin-left:0;margin-top:12px; }
  .why-image-band { display:none; }
  .shape-grid { padding:0 16px;gap:10px; }
}

/* ══════════════════════════════════════════════════════
   COLLECTION DROPDOWN MEGA-MENU
══════════════════════════════════════════════════════ */
.nav-has-dropdown { position: relative; }
.nav-chevron { display:inline-block; vertical-align:middle; margin-left:3px; transition: transform .25s; }
.nav-has-dropdown:hover .nav-chevron { transform: rotate(180deg); }
.nav-dropdown {
  position: absolute; top: calc(100% + 8px); left: 0; transform: translateX(-50%);
  width: 720px; background: white;
  border-radius: 0px; box-shadow: 0 16px 60px rgba(44,31,20,.16);
  border: 1px solid rgba(139,107,74,.1);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
  transform: translateX(-50%) translateY(8px);
  z-index: 500;
}
.nav-has-dropdown:hover .nav-dropdown {
  opacity: 1; visibility: visible; pointer-events: all;
  transform: translateX(-50%) translateY(0);
}
/* keep dropdown open when hovering it */
.nav-dropdown::before {
  content: ''; position: absolute; top: -10px; left: 0; right: 0; height: 14px;
}
.nav-dropdown-inner {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; padding: 28px 24px 20px;
}
.nav-dd-col { padding: 0 16px; border-right: 1px solid rgba(139,107,74,.08); }
.nav-dd-col:first-child { padding-left: 4px; }
.nav-dd-col:last-child { border-right: none; }
.nav-dd-heading {
  font-family: var(--font-body); font-size: 9.5px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--clr-mocha); font-weight: 500;
  margin-bottom: 14px; padding-bottom: 8px;
  border-bottom: 1px solid rgba(139,107,74,.15);
}
.nav-dd-link {
  display: flex; flex-direction: column; gap: 1px;
  font-family: var(--font-display); font-size: 15px !important; font-weight: 400 !important;
  color: var(--clr-text) !important; text-decoration: none !important; padding: 5px 0 !important;
  transition: color .2s !important; letter-spacing: .01em !important; line-height: 1.3;
}
.nav-dd-link:hover { color: var(--clr-mocha); }
.nav-dd-sub {
  display: block; font-family: var(--font-body); font-size: 10px;
  color: var(--clr-text-light); letter-spacing: .04em; font-style: normal;
}
/* Color swatches column */
.nav-dd-colors { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.nav-dd-color-item {
  display: flex; align-items: center; gap: 7px;
  font-family: var(--font-display); font-size: 14px !important; font-weight: 400;
  color: var(--clr-text) !important; text-decoration: none; padding: 4px 2px;
  transition: color .2s; white-space: nowrap;
}
.nav-dd-color-item:hover { color: var(--clr-mocha); }
.nav-color-swatch {
  width: 14px; height: 14px; border-radius: 50%; flex-shrink: 0;
  box-shadow: 0 1px 3px rgba(0,0,0,.15);
}
/* Footer row of dropdown */
.nav-dd-footer {
  border-top: 1px solid rgba(139,107,74,.1);
  padding: 14px 20px; text-align: right;
  background: rgba(248,244,239,.5); border-radius: 0 0 6px 6px;
}
.nav-dd-cta {
  font-family: var(--font-body); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--clr-mocha); font-weight: 500;
  text-decoration: none; transition: color .2s;
}
.nav-dd-cta:hover { color: var(--clr-mocha-dark); }

/* Scrolled nav — dropdown white already; link colours adapt */
.nav.scrolled .nav-dd-link { color: var(--clr-text); }
.nav.scrolled .nav-has-dropdown > a .nav-chevron path { stroke: var(--clr-text); }

/* ── MOBILE NAV EXPAND ── */
.nav-mobile-group { border-bottom: 1px solid rgba(139,107,74,.1); }
.nav-mobile-expand {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; background: none; border: none; cursor: pointer;
  font-family: var(--font-display); font-size: 26px; font-weight: 500;
  color: var(--clr-espresso); padding: 12px 0; letter-spacing: .02em;
  transition: color .2s;
}
.nav-mobile-expand:hover { color: var(--clr-mocha); }
.nav-mobile-expand svg { transition: transform .3s; }
.nav-mobile-group.open .nav-mobile-expand svg { transform: rotate(180deg); }
.nav-mobile-sub { display: none; padding: 0 0 12px 16px; }
.nav-mobile-group.open .nav-mobile-sub { display: block; }
.nav-mobile-sub-head {
  font-family: var(--font-body); font-size: 9px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--clr-mocha); font-weight: 500;
  margin: 14px 0 6px; padding-bottom: 4px; border-bottom: 1px solid rgba(139,107,74,.1);
}
.nav-mobile-sub a {
  display: block; font-family: var(--font-display); font-size: 17px;
  color: var(--clr-text); text-decoration: none; padding: 5px 0;
  border-bottom: none; letter-spacing: .01em;
  transition: color .2s;
}
.nav-mobile-sub a:hover { color: var(--clr-mocha); }

/* ══════════════════════════════════════════════════════
   STORE / VISIT US SECTION
══════════════════════════════════════════════════════ */
.store-section {
  background: var(--clr-white);
  padding: 100px 0;
  overflow: hidden;
  border-top: 1px solid rgba(139,107,74,.08);
}
.store-inner {
  max-width: 1280px; margin: 0 auto; padding: 0 48px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start;
}
/* Left — content */
.store-content {}
.store-heading {
  font-family: var(--font-display); font-size: clamp(28px,3vw,42px);
  font-weight: 400; color: var(--clr-espresso); line-height: 1.15; margin-bottom: 6px;
}
.store-heading em { font-style: italic; color: var(--clr-mocha); }
.store-subhead {
  font-size: 12px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--clr-mocha); margin-bottom: 28px; font-weight: 400;
}
.store-info-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 32px;
}
.store-info-card {
  background: var(--clr-light-bg); border: 1px solid rgba(139,107,74,.1);
  border-radius: 6px; padding: 20px 20px 18px;
  transition: box-shadow .3s, transform .3s;
}
.store-info-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(44,31,20,.08); }
.store-info-icon { font-size: 20px; margin-bottom: 10px; display: block; }
.store-info-label {
  font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--clr-mocha); font-weight: 500; margin-bottom: 7px; display: block;
}
.store-info-card p {
  font-size: 13.5px; line-height: 1.75; color: var(--clr-text); font-weight: 300;
  margin: 0;
}
.store-info-card a { color: var(--clr-text); text-decoration: none; transition: color .2s; }
.store-info-card a:hover { color: var(--clr-mocha); }
.store-info-note {
  display: block; font-size: 10.5px; letter-spacing: .04em;
  color: var(--clr-text-light); margin-top: 5px; font-style: italic;
}
/* Appointment CTA bar */
.store-appt {
  background: var(--clr-warm); border-left: 3px solid var(--clr-gold);
  border-radius: 0 6px 6px 0; padding: 16px 20px; margin-bottom: 28px;
  font-size: 13.5px; color: var(--clr-text); font-weight: 300; line-height: 1.6;
}
.store-appt strong { color: var(--clr-espresso); font-weight: 500; }
/* Buttons */
.store-btns { display: flex; gap: 14px; flex-wrap: wrap; }

/* Right — image */
.store-image-wrap { position: relative; border-radius: 6px; overflow: hidden; }
.store-image-wrap img {
  width: 100%; height: 100%; object-fit: cover;
  display: block; border-radius: 6px;
  box-shadow: 0 20px 60px rgba(44,31,20,.18);
  transition: transform .7s ease;
}
.store-image-wrap:hover img { transform: scale(1.03); }
/* Floating badge */
.store-badge {
  position: absolute; bottom: 24px; left: 24px;
  background: rgba(44,31,20,.82); backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 5px; padding: 14px 18px; color: white;
}
.store-badge-title {
  font-family: var(--font-display); font-size: 15px; font-weight: 500;
  letter-spacing: .02em; display: block; margin-bottom: 3px;
}
.store-badge-sub {
  font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--clr-gold-light); opacity: .9;
}

/* Responsive */
@media (max-width: 900px) {
  .store-inner { grid-template-columns: 1fr; gap: 40px; padding: 0 28px; }
  .store-image-wrap { order: -1; max-height: 360px; }
}
@media (max-width: 600px) {
  .store-info-grid { grid-template-columns: 1fr; }
  .store-inner { padding: 0 20px; }
}