/*
Theme Name: Aryan Stone Art & Crafts
Theme URI: https://www.aryanstones.com
Author: Aryan Stone Art & Crafts
Author URI: https://www.aryanstones.com
Description: Custom WordPress theme for Aryan Stone Art & Crafts, a Jodhpur-based natural sandstone manufacturer and exporter. Premium, responsive design built around the brand's own product photography.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: aryan-stone
*/

/* ===========================================================
   ARYAN STONE ART & CRAFTS — shared stylesheet
   Design tokens
=========================================================== */
:root{
  --cream:        #F4EEE3;
  --cream-deep:   #EAE1CF;
  --white:        #FFFFFF;
  --terracotta:   #BD5B2C;
  --terracotta-d: #98431D;
  --terracotta-l: #E2865020;
  --charcoal:     #211C17;
  --charcoal-2:   #322A22;
  --taupe:        #A88863;
  --taupe-l:      #D9C6A8;
  --line:         rgba(33,28,23,.14);
  --line-light:   rgba(255,255,255,.16);

  --font-display: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --font-body:    'Inter', -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'Space Mono', 'Courier New', monospace;

  --container: 1240px;
  --radius: 2px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--charcoal);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; margin:0; line-height:1.08; letter-spacing:-0.01em; }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }
.container{ max-width:var(--container); margin:0 auto; padding:0 32px; }

@media(max-width:640px){ .container{ padding:0 20px; } }

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

/* ---------- eyebrow / labels ---------- */
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--terracotta-d);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--terracotta-d);
  display:inline-block;
}
.eyebrow.on-dark{ color:var(--taupe-l); }
.eyebrow.on-dark::before{ background:var(--taupe-l); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:15px 26px;
  border-radius:var(--radius);
  border:1px solid transparent;
  transition:all .25s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--terracotta); color:var(--white); }
.btn-primary:hover{ background:var(--terracotta-d); transform:translateY(-1px); }
.btn-outline{ border-color:currentColor; color:var(--charcoal); background:transparent; }
.btn-outline:hover{ background:var(--charcoal); color:var(--white); border-color:var(--charcoal); }
.btn-outline.on-dark{ color:var(--white); }
.btn-outline.on-dark:hover{ background:var(--white); color:var(--charcoal); }
.btn-ghost{ color:var(--terracotta-d); padding:15px 4px; }
.btn-ghost::after{ content:"→"; transition:transform .2s ease; }
.btn-ghost:hover::after{ transform:translateX(4px); }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(244,238,227,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 32px;
  max-width:var(--container); margin:0 auto;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:46px; width:auto; }
.brand-text{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; color:var(--charcoal-2); text-transform:uppercase; }
.main-nav{ display:flex; align-items:center; gap:36px; }
.main-nav a{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--charcoal-2); position:relative; padding:4px 0;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px;
  background:var(--terracotta); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.main-nav a:hover::after, .main-nav a.active::after{ transform:scaleX(1); }
.main-nav a.active{ color:var(--terracotta-d); }
.header-cta{ display:flex; align-items:center; gap:22px; }
.nav-toggle{ display:none; background:none; border:none; padding:6px; }
.nav-toggle span{ display:block; width:24px; height:2px; background:var(--charcoal); margin:5px 0; }
.nav-cta-mobile{ display:none; }

@media(max-width:980px){
  .main-nav{ position:fixed; top:64px; left:0; right:0; height:calc(100vh - 64px); background:var(--cream); flex-direction:column; justify-content:flex-start;
    padding:36px 32px; gap:26px; transform:translateX(100%); transition:transform .3s ease; overflow-y:auto; z-index:99; }
  .main-nav.open{ transform:translateX(0); }
  .main-nav a{ font-size:15px; }
  .nav-toggle{ display:block; }
  .header-cta .btn-primary-desktop{ display:none; }
  .nav-cta-mobile{ display:inline-flex; margin-top:8px; }
}

/* ---------- breadcrumb ---------- */
.breadcrumb{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.05em; color:var(--taupe); padding:18px 0; }
.breadcrumb a{ color:var(--taupe); }
.breadcrumb a:hover{ color:var(--terracotta-d); }
.breadcrumb span{ margin:0 8px; }

/* ---------- strata divider (signature element) ----------
   Represents the natural sedimentary layering of sandstone —
   used as a section seam throughout the site. */
.strata{
  height:26px; width:100%; overflow:hidden; display:flex;
}
.strata span{ flex:1; height:100%; }
.strata.warm span:nth-child(1){ background:#E7D2B4; }
.strata.warm span:nth-child(2){ background:#DFC49F; }
.strata.warm span:nth-child(3){ background:#D3B387; }
.strata.warm span:nth-child(4){ background:#C89E6C; }
.strata.warm span:nth-child(5){ background:#BD5B2C; }
.strata.warm span:nth-child(6){ background:#C89E6C; }
.strata.warm span:nth-child(7){ background:#D3B387; }
.strata.warm span:nth-child(8){ background:#DFC49F; }
.strata.dark span:nth-child(1){ background:#3A3128; }
.strata.dark span:nth-child(2){ background:#463A2E; }
.strata.dark span:nth-child(3){ background:#544433; }
.strata.dark span:nth-child(4){ background:#6B5238; }
.strata.dark span:nth-child(5){ background:#98431D; }
.strata.dark span:nth-child(6){ background:#6B5238; }
.strata.dark span:nth-child(7){ background:#544433; }
.strata.dark span:nth-child(8){ background:#463A2E; }

/* ---------- big bg word ---------- */
.bg-word{
  font-family:var(--font-display); font-weight:600;
  position:absolute; z-index:0; color:transparent;
  -webkit-text-stroke:1px rgba(33,28,23,.08);
  font-size:clamp(90px,16vw,220px);
  pointer-events:none; user-select:none; white-space:nowrap;
  letter-spacing:-.02em;
}
.bg-word.dark{ -webkit-text-stroke:1px rgba(255,255,255,.09); }

/* ---------- section basics ---------- */
section{ position:relative; }
.section-pad{ padding:104px 0; }
@media(max-width:768px){ .section-pad{ padding:64px 0; } }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head h2{ font-size:clamp(30px,4vw,46px); margin-top:16px; }
.section-head p{ margin-top:18px; color:var(--charcoal-2); font-size:16.5px; }
.on-dark{ background:var(--charcoal); color:var(--cream); }
.on-dark h2, .on-dark h3, .on-dark h4{ color:var(--white); }
.on-dark .section-head p{ color:var(--taupe-l); }

/* ---------- hero ---------- */
.hero{ position:relative; min-height:92vh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,16,12,.35) 0%, rgba(20,16,12,.25) 40%, rgba(18,14,10,.86) 100%);
}
.hero-content{ position:relative; z-index:2; color:var(--white); padding:64px 0 68px; width:100%; }
.hero-content .eyebrow{ color:var(--taupe-l); }
.hero-content .eyebrow::before{ background:var(--taupe-l); }
.hero-content h1{
  font-size:clamp(40px,6.4vw,84px); color:var(--white); margin-top:18px;
  max-width:14ch;
}
.hero-sub{ font-family:var(--font-display); font-style:italic; font-weight:400; font-size:clamp(17px,2vw,24px); color:var(--taupe-l); margin-top:10px; }
.hero-desc{ max-width:560px; color:#E9E1D2; font-size:16.5px; margin-top:22px; }
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }
.hero-stats{
  display:grid; grid-template-columns:repeat(3,auto); gap:0;
  margin-top:56px; padding-top:26px; border-top:1px solid var(--line-light);
  max-width:720px; column-gap:48px;
}
.hero-stats div strong{ display:block; font-family:var(--font-display); font-size:28px; color:var(--white); }
.hero-stats div span{ font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; color:var(--taupe-l); text-transform:uppercase; }
@media(max-width:640px){ .hero-stats{ grid-template-columns:1fr 1fr; row-gap:20px; } }

/* ---------- intro split ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media(max-width:900px){ .split{ grid-template-columns:1fr; gap:36px; } }
.split-media{ position:relative; }
.split-media img{ width:100%; height:600px; object-fit:cover; }
.split-media.short img{ height:460px; }
.card-badge{
  position:absolute; bottom:-1px; left:-1px; background:var(--terracotta);
  color:#fff; padding:16px 22px; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em;
}
.card-badge strong{ display:block; font-family:var(--font-display); font-size:24px; font-weight:600; }
.highlight-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:32px; }
.highlight-item{ border:1px solid var(--line); padding:16px 18px; }
.highlight-item strong{ display:block; font-family:var(--font-display); font-size:21px; }
.highlight-item span{ font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; color:var(--charcoal-2); text-transform:uppercase; }

/* ---------- three m's ---------- */
.mmm-flow{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px;}
@media(max-width:860px){ .mmm-flow{ grid-template-columns:1fr; } }
.mmm-card{ background:var(--cream); padding:44px 36px; position:relative; }
.mmm-num{ font-family:var(--font-mono); font-size:12px; color:var(--terracotta-d); letter-spacing:.1em; }
.mmm-card h3{ font-size:30px; margin-top:14px; }
.mmm-card p{ margin-top:14px; color:var(--charcoal-2); font-size:15.5px; }
.mmm-arrow{ display:none; }
@media(min-width:861px){
  .mmm-card:not(:last-child)::after{
    content:"→"; position:absolute; right:-14px; top:50%; transform:translateY(-50%);
    font-family:var(--font-mono); color:var(--terracotta); background:var(--cream); width:28px; height:28px;
    display:flex; align-items:center; justify-content:center; z-index:2; font-size:16px;
  }
}

/* ---------- product/category cards ---------- */
.cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
@media(max-width:1080px){ .cat-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .cat-grid{ grid-template-columns:1fr; } }
.cat-card{ background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease; }
.cat-card:hover{ transform:translateY(-5px); box-shadow:0 18px 40px rgba(33,28,23,.14); }
.cat-media{ height:220px; overflow:hidden; }
.cat-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.cat-card:hover .cat-media img{ transform:scale(1.06); }
.cat-body{ padding:24px; display:flex; flex-direction:column; gap:12px; flex:1; }
.cat-body h3{ font-size:21px; }
.cat-body p{ font-size:14.5px; color:var(--charcoal-2); flex:1; }

.prod-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
@media(max-width:1080px){ .prod-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .prod-grid{ grid-template-columns:1fr; } }
.prod-card{ background:var(--white); border:1px solid var(--line); }
.prod-media{ aspect-ratio:4/3; overflow:hidden; }
.prod-media img{ width:100%; height:100%; object-fit:cover; }
.prod-body{ padding:18px 20px 22px; }
.prod-body h4{ font-size:17px; font-weight:600; font-family:var(--font-display); }
.prod-body p{ font-size:13.5px; color:var(--charcoal-2); margin-top:8px; min-height:36px; }
.prod-actions{ display:flex; align-items:center; justify-content:space-between; margin-top:16px; gap:10px; }
.prod-actions a{ font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; }
.prod-actions .qte{ color:var(--terracotta-d); font-weight:700; }

/* ---------- horizontal scroll ---------- */
.hscroll{ display:flex; gap:20px; overflow-x:auto; padding-bottom:18px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;}
.hscroll::-webkit-scrollbar{ height:6px; }
.hscroll::-webkit-scrollbar-thumb{ background:var(--taupe); }
.hscroll .prod-card{ min-width:270px; scroll-snap-align:start; }

/* ---------- capability dark section ---------- */
.cap-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:10px; }
@media(max-width:860px){ .cap-cols{ grid-template-columns:1fr; } }
.cap-col h4{ font-size:13px; font-family:var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--taupe-l); padding-bottom:14px; border-bottom:1px solid var(--line-light); margin-bottom:16px; }
.cap-col ul li{ padding:9px 0; border-bottom:1px dashed rgba(255,255,255,.09); font-size:15px; color:#EFE7D8; }

/* ---------- industries ---------- */
.industry-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
@media(max-width:760px){ .industry-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .industry-grid{ grid-template-columns:1fr; } }
.industry-item{ background:var(--cream); padding:28px 22px; }
.industry-item .idx{ font-family:var(--font-mono); font-size:11px; color:var(--terracotta-d); }
.industry-item h4{ font-size:18px; margin-top:10px; font-weight:600; }

/* ---------- infra numbers ---------- */
.infra-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:8px; }
@media(max-width:760px){ .infra-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .infra-grid{ grid-template-columns:1fr; } }
.infra-item{ border:1px solid var(--line-light); padding:22px; }
.infra-item strong{ display:block; font-family:var(--font-display); font-size:22px; color:var(--white); }
.infra-item span{ font-family:var(--font-mono); font-size:11.5px; color:var(--taupe-l); }

.machinery-list{ columns:2; gap:40px; margin-top:8px; }
@media(max-width:640px){ .machinery-list{ columns:1; } }
.machinery-list li{ break-inside:avoid; padding:10px 0; border-bottom:1px dashed rgba(255,255,255,.1); font-size:15px; color:#EFE7D8; display:flex; gap:10px; }
.machinery-list li::before{ content:"—"; color:var(--terracotta); }

/* ---------- achievements ---------- */
.achieve-card{ border:1px solid var(--line); background:var(--white); padding:34px; }
.achieve-card .eyebrow{ margin-bottom:14px; }
.achieve-card h3{ font-size:23px; }
.achieve-card p{ margin-top:12px; color:var(--charcoal-2); font-size:15px; }
.achieve-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media(max-width:800px){ .achieve-grid{ grid-template-columns:1fr; } }

/* ---------- gallery ---------- */
.filter-row{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px; }
.filter-btn{
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase;
  padding:10px 18px; border:1px solid var(--line); background:transparent; color:var(--charcoal-2);
  transition:all .2s ease;
}
.filter-btn.active, .filter-btn:hover{ background:var(--charcoal); color:var(--white); border-color:var(--charcoal); }
.masonry{ column-count:3; column-gap:16px; }
@media(max-width:900px){ .masonry{ column-count:2; } }
@media(max-width:560px){ .masonry{ column-count:1; } }
.masonry .m-item{ break-inside:avoid; margin-bottom:16px; position:relative; overflow:hidden; cursor:zoom-in; }
.masonry .m-item img{ width:100%; display:block; transition:transform .4s ease; }
.masonry .m-item:hover img{ transform:scale(1.05); }
.masonry .m-item .m-tag{
  position:absolute; left:12px; bottom:12px; background:rgba(20,16,12,.72); color:#fff;
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; padding:6px 10px;
}
.lightbox{ position:fixed; inset:0; background:rgba(15,12,9,.94); z-index:999; display:none; align-items:center; justify-content:center; padding:40px; }
.lightbox.open{ display:flex; }
.lightbox img{ max-width:90vw; max-height:86vh; object-fit:contain; }
.lightbox-close{ position:absolute; top:24px; right:32px; color:#fff; font-family:var(--font-mono); font-size:13px; letter-spacing:.08em; border:1px solid rgba(255,255,255,.4); padding:8px 14px; background:none; }

/* ---------- CTA banner ---------- */
.cta-banner{ position:relative; min-height:56vh; display:flex; align-items:center; }
.cta-banner .hero-bg::after{ background:linear-gradient(90deg, rgba(15,12,9,.9) 10%, rgba(15,12,9,.55) 60%, rgba(15,12,9,.35) 100%); }
.cta-banner h2{ color:#fff; font-size:clamp(30px,4.6vw,52px); max-width:15ch; }
.cta-banner p{ color:#EAE1D2; max-width:520px; margin-top:18px; font-size:16px; }
.cta-banner .hero-actions{ margin-top:30px; }

/* ---------- inquiry strip ---------- */
.strip{ background:var(--terracotta); color:#fff; padding:28px 0; }
.strip-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.strip-inner h4{ font-size:21px; font-weight:600; color:#fff; }

/* ---------- forms ---------- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:8px; }
.field.full{ grid-column:1/-1; }
.field label{ font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--charcoal-2); }
.field input, .field select, .field textarea{
  border:1px solid var(--line); background:var(--white); padding:13px 14px; font-family:var(--font-body); font-size:14.5px;
  border-radius:var(--radius); color:var(--charcoal);
}
.field textarea{ resize:vertical; min-height:110px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--terracotta); outline-offset:1px; border-color:var(--terracotta); }
.form-note{ font-size:12.5px; color:var(--taupe); margin-top:14px; }
.form-success{ display:none; background:#EFE7D8; border:1px solid var(--taupe-l); padding:16px 18px; margin-top:16px; font-size:14px; }
.form-success.show{ display:block; }

/* ---------- contact page blocks ---------- */
.contact-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; }
@media(max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:40px; } }
.contact-detail{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.contact-detail .k{ font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--taupe); width:120px; flex-shrink:0; }
.contact-detail .v{ font-size:15.5px; }
.contact-detail a:hover{ color:var(--terracotta-d); }
.map-frame{ border:1px solid var(--line); height:320px; margin-top:28px; overflow:hidden; }
.map-frame iframe{ width:100%; height:100%; border:0; filter:grayscale(.25) sepia(.15); }

/* ---------- floating buttons ---------- */
.floating-actions{ position:fixed; right:20px; bottom:20px; z-index:90; display:flex; flex-direction:column; gap:12px; }
.fab{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; box-shadow:0 10px 24px rgba(0,0,0,.25); transition:transform .2s ease;
}
.fab:hover{ transform:scale(1.08); }
.fab.whatsapp{ background:#2f8a4f; }
.fab.call{ background:var(--charcoal); }
.fab svg{ width:24px; height:24px; }

/* ---------- footer ---------- */
.site-footer{ background:var(--charcoal); color:#D9CFBE; padding:80px 0 0; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:56px; border-bottom:1px solid var(--line-light); }
@media(max-width:860px){ .footer-top{ grid-template-columns:1fr 1fr; row-gap:36px; } }
@media(max-width:520px){ .footer-top{ grid-template-columns:1fr; } }
.footer-brand img{ height:46px; filter:brightness(0) invert(1); opacity:.9; }
.footer-brand p{ margin-top:16px; font-size:13.5px; color:var(--taupe-l); max-width:280px; }
.footer-col h5{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#fff; margin-bottom:18px; }
.footer-col li{ padding:6px 0; }
.footer-col a{ font-size:14.5px; color:#D9CFBE; }
.footer-col a:hover{ color:var(--terracotta); }
.footer-social{ display:flex; gap:12px; margin-top:18px; }
.footer-social a{ width:38px; height:38px; border:1px solid var(--line-light); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.footer-social a:hover{ background:var(--terracotta); border-color:var(--terracotta); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-size:12.5px; color:var(--taupe); flex-wrap:wrap; gap:10px; }

/* ---------- 404 ---------- */
.err-wrap{ min-height:70vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:60px 20px; }
.err-wrap .big{ font-family:var(--font-display); font-size:clamp(80px,14vw,160px); color:var(--taupe-l); line-height:1; }

/* ---------- reveal on scroll (progressive enhancement) ----------
   Content is visible by default so it never depends on JS running.
   Only once main.js confirms it's active (html.js-reveal) do sections
   start hidden, ready to animate in as they scroll into view. */
.reveal{ opacity:1; transform:none; }
.js-reveal .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.js-reveal .reveal.in{ opacity:1; transform:none; }

/* ---------- products page (catalogue search / sticky category nav) ---------- */
.cat-nav{ position:sticky; top:75px; z-index:40; background:var(--cream); border-bottom:1px solid var(--line); padding:14px 0; }
.cat-nav-inner{ display:flex; gap:26px; overflow-x:auto; }
.cat-nav a{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--charcoal-2); white-space:nowrap; padding:6px 0; border-bottom:2px solid transparent; }
.cat-nav a:hover{ color:var(--terracotta-d); border-color:var(--terracotta); }
.search-row{ display:flex; gap:14px; align-items:center; margin-bottom:36px; flex-wrap:wrap; }
.search-row input{ flex:1; min-width:220px; border:1px solid var(--line); padding:13px 16px; font-family:var(--font-body); font-size:14.5px; background:var(--white); }
.search-row input:focus{ outline:2px solid var(--terracotta); }
.no-results{ display:none; padding:40px 0; text-align:center; color:var(--taupe); font-family:var(--font-mono); font-size:13px; letter-spacing:.04em; text-transform:uppercase; }
