/* ==========================================================================
   BLACKSMITH — Tyres & Accessories Trading Co. L.L.C.
   Core stylesheet — design tokens, layout, components.
   ========================================================================== */

:root{
  /* Palette */
  --black:        #050505;
  --charcoal:     #0b0a09;
  --graphite:     #161412;
  --graphite-2:   #221e19;
  --line:         rgba(201,160,106,.18);
  --line-strong:  rgba(201,160,106,.38);

  --bronze-deep:  #6b4423;
  --bronze:       #a9703f;
  --gold:         #c9995f;
  --champagne:    #e9d3ab;
  --offwhite:     #f4efe6;

  --metal-gradient: linear-gradient(120deg,#7c4f28 0%,#d9b26f 26%,#f1e2bd 44%,#b17b44 66%,#6b4423 100%);
  --metal-gradient-soft: linear-gradient(135deg,var(--bronze) 0%,var(--champagne) 50%,var(--bronze) 100%);

  /* Typography */
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-sans: 'Oswald', 'Helvetica Neue', Arial, sans-serif;

  /* Motion */
  --ease: cubic-bezier(.16,.84,.44,1);
  --ease-soft: cubic-bezier(.22,.61,.36,1);
  --dur-fast: .35s;
  --dur-med: .7s;
  --dur-slow: 1.2s;

  --header-h: 104px;
}

@media (min-width:1024px){
  :root{ --header-h: 148px; }
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; background:var(--black); overflow-x:hidden; }
body{
  margin:0;
  background:var(--black);
  color:var(--offwhite);
  font-family:var(--font-sans);
  font-weight:300;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  overscroll-behavior-y:none;
}
body.is-loading{ overflow:hidden; height:100vh; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; background:none; border:0; color:inherit; cursor:pointer; padding:0; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,p{ margin:0; }
input{ font-family:inherit; }

::selection{ background:var(--bronze); color:var(--black); }

:focus-visible{
  outline:1.5px solid var(--gold);
  outline-offset:4px;
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}

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

/* ---------- Custom cursor ---------- */
.cursor{ position:fixed; inset:0; z-index:9500; pointer-events:none; }
.cursor__dot,.cursor__ring{
  position:fixed; top:0; left:0; border-radius:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.cursor__dot{ width:5px; height:5px; background:var(--gold); }
.cursor__ring{
  width:34px; height:34px; border:1px solid var(--line-strong);
  transition:width var(--dur-fast) var(--ease), height var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), opacity var(--dur-fast);
}
.cursor.is-hover .cursor__ring{ width:56px; height:56px; border-color:var(--gold); }
html.no-fine-pointer .cursor{ display:none; }

/* ---------- Loader ---------- */
.loader{
  position:fixed; inset:0; z-index:10000;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  background:var(--black);
  transition:opacity .7s var(--ease), visibility .7s var(--ease);
}
.loader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none !important; }
.loader__mark{ width:110px; height:auto; opacity:.95; filter:drop-shadow(0 0 18px rgba(201,153,95,.25)); }
.loader__word{
  font-family:var(--font-sans); font-weight:600; letter-spacing:.35em;
  font-size:13px; color:var(--offwhite); margin-top:2px;
}
.loader__bar{ width:160px; height:1px; background:rgba(255,255,255,.1); margin-top:10px; overflow:hidden; }
.loader__bar-fill{ display:block; height:100%; width:0%; background:var(--metal-gradient-soft); transition:width .25s linear; }
.loader__hint{ font-size:10px; letter-spacing:.2em; color:rgba(244,239,230,.4); text-transform:uppercase; margin-top:4px; }

/* ---------- Skip link (accessibility, keyboard-only) ---------- */
.skip-to-content{
  position:fixed; z-index:9999; top:0; left:16px;
  padding:12px 20px; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  background:var(--offwhite); color:var(--black); border-radius:0 0 6px 6px;
  transform:translateY(-120%);
  transition:transform var(--dur-fast) var(--ease);
}
.skip-to-content:focus-visible{ transform:translateY(0); }

@keyframes scrollHintDrop{
  0%{ top:-40px; }
  60%{ top:40px; }
  100%{ top:40px; opacity:0; }
}
@media (prefers-reduced-motion: reduce){
  .hero__scroll-cue span{ animation:none; top:0; opacity:.6; }
}

/* ---------- Text-reveal word mask (used by animations.js) ---------- */
.word-mask{ display:inline-block; overflow:hidden; vertical-align:top; }
.word-inner{ display:inline-block; will-change:transform, opacity; }

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.site-header{
  position:fixed; top:0; left:0; width:100%; z-index:8000;
  padding-top:env(safe-area-inset-top);
  background:linear-gradient(to bottom, rgba(5,5,5,.82) 0%, rgba(5,5,5,.42) 75%, transparent 100%);
  opacity:1;
  transform:none;
  pointer-events:auto;
}
/* The header is visible and usable from the very first frame. On scroll it
   gains a faint backdrop so the nav stays legible — deliberately kept
   transparent (not a solid bar) so the page behind it keeps showing through. */
.site-header.is-solid .header__bar{
  background:rgba(8,7,6,.28);
  backdrop-filter:blur(7px) saturate(140%);
  border-bottom:1px solid var(--line);
}

.header__bar{
  position:relative;
  display:flex; align-items:center; justify-content:space-between;
  height:var(--header-h);
  padding:0 clamp(20px,4vw,56px);
  transition:background var(--dur-med) var(--ease), border-color var(--dur-med) var(--ease);
}

.brand{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  display:flex; align-items:center; justify-content:center;
}
.brand__mark{ width:clamp(70px,8vw,112px); height:auto; }

.nav-trigger{
  display:flex; align-items:center; gap:12px;
  z-index:2;
}
.nav-trigger__lines{ display:flex; flex-direction:column; gap:4px; width:20px; }
.nav-trigger__lines i{
  display:block; height:1px; width:100%; background:var(--champagne);
  transition:transform var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease), width var(--dur-fast) var(--ease);
}
.nav-trigger__lines i:nth-child(2){ width:70%; }
.nav-trigger__label{
  font-size:12px; letter-spacing:.28em; color:var(--offwhite); text-transform:uppercase;
  position:relative; padding-bottom:3px;
}
.nav-trigger__label::after{
  content:''; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform var(--dur-fast) var(--ease);
}
.nav-trigger:hover .nav-trigger__label::after{ transform:scaleX(1); }
.nav-trigger[aria-expanded="true"] .nav-trigger__lines i:nth-child(1){ transform:translateY(5px) rotate(45deg); }
.nav-trigger[aria-expanded="true"] .nav-trigger__lines i:nth-child(2){ opacity:0; }
.nav-trigger[aria-expanded="true"] .nav-trigger__lines i:nth-child(3){ transform:translateY(-5px) rotate(-45deg); width:100%; }
.nav-trigger[aria-expanded="true"] .nav-trigger__label::after{ transform:scaleX(1); }

.search-trigger{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; color:var(--champagne); z-index:2;
  transition:color var(--dur-fast), transform var(--dur-fast) var(--ease);
}
.search-trigger:hover{ color:var(--gold); transform:scale(1.08); }

.mega-menu{
  position:absolute; top:100%; left:0;
  width:min(360px,92vw);
  max-height:0; overflow:hidden;
  background:linear-gradient(160deg, rgba(10,9,8,.92), rgba(18,16,13,.86));
  backdrop-filter:blur(18px) saturate(140%);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transition:max-height var(--dur-slow) var(--ease);
}
.mega-menu.is-open{ max-height:620px; }
.mega-menu__list{ padding:18px 0; }
.mega-menu__item{
  position:relative;
  border-top:1px solid rgba(201,160,106,.08);
  opacity:0; transform:translateX(-14px);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.mega-menu.is-open .mega-menu__item{ opacity:1; transform:translateX(0); }
.mega-menu__item:first-child{ border-top:none; }
.mega-menu__item > a{
  display:block; padding:15px 32px;
  font-size:13px; letter-spacing:.2em; color:var(--champagne);
  position:relative; transition:color var(--dur-fast), padding-left var(--dur-fast) var(--ease);
}
.mega-menu__item > a::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--metal-gradient); transform:scaleY(0); transform-origin:bottom;
  transition:transform var(--dur-fast) var(--ease);
}
.mega-menu__item:hover > a,.mega-menu__item > a:focus-visible{ color:var(--offwhite); padding-left:40px; }
.mega-menu__item:hover > a::before,.mega-menu__item > a:focus-visible::before{ transform:scaleY(1); }
.mega-menu__item.is-current > a{ color:var(--gold); }

.mega-menu__item.has-flyout{ padding-right:0; }
.flyout{
  position:absolute; left:100%; top:0;
  width:220px;
  background:linear-gradient(160deg, rgba(10,9,8,.95), rgba(18,16,13,.9));
  backdrop-filter:blur(18px);
  border:1px solid var(--line);
  opacity:0; visibility:hidden; transform:translateX(-8px);
  transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility var(--dur-fast);
}
.mega-menu__item.has-flyout:hover .flyout,
.mega-menu__item.has-flyout:focus-within .flyout{
  opacity:1; visibility:visible; transform:translateX(0);
}
.flyout li + li{ border-top:1px solid rgba(201,160,106,.08); }
.flyout a{ display:block; padding:14px 26px; font-size:11.5px; letter-spacing:.16em; color:var(--champagne); transition:color var(--dur-fast), padding-left var(--dur-fast) var(--ease); }
.flyout a:hover,.flyout a:focus-visible{ color:var(--gold); padding-left:32px; }

/* ---------- Search overlay ---------- */
.search-overlay{
  position:fixed; inset:0; z-index:9200;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px;
  background:rgba(5,5,5,.88);
  backdrop-filter:blur(18px);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--dur-med) var(--ease), visibility var(--dur-med);
}
.search-overlay.is-open{ opacity:1; visibility:visible; pointer-events:auto; }
.search-overlay__close{
  position:absolute; top:28px; right:28px; color:var(--champagne);
  transition:transform var(--dur-fast) var(--ease), color var(--dur-fast);
}
.search-overlay__close:hover{ color:var(--gold); transform:rotate(90deg); }
.search-overlay__form{
  width:min(640px,86vw);
  display:flex; align-items:flex-end; gap:16px;
  border-bottom:1px solid var(--line-strong);
  padding-bottom:14px;
}
.search-overlay__label{
  position:absolute; left:-9999px;
}
.search-overlay__input{
  flex:1; background:none; border:0; outline:0;
  font-family:var(--font-display); font-weight:400; font-style:italic;
  font-size:clamp(22px,4vw,34px); color:var(--offwhite);
  caret-color:var(--gold);
}
.search-overlay__input::placeholder{ color:rgba(244,239,230,.35); }
.search-overlay__submit{ color:var(--gold); transition:transform var(--dur-fast) var(--ease); }
.search-overlay__submit:hover{ transform:translateX(3px); }

/* ---------- Toast ---------- */
.toast{
  position:fixed; left:50%; bottom:40px; transform:translate(-50%,12px);
  z-index:9600; padding:13px 24px; border-radius:999px;
  background:rgba(10,9,8,.92); border:1px solid var(--line-strong);
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--champagne);
  opacity:0; pointer-events:none;
  transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.toast.is-visible{ opacity:1; transform:translate(-50%,0); }

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn{
  position:relative; display:inline-flex; align-items:center; gap:10px;
  padding:16px 34px; font-family:var(--font-sans); font-size:11.5px; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase;
  border:1px solid var(--line-strong); overflow:hidden; isolation:isolate;
  transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.btn::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:var(--metal-gradient); transform:translateY(102%);
  transition:transform var(--dur-med) var(--ease);
}
.btn--primary{ color:var(--black); background:var(--metal-gradient-soft); border-color:transparent; }
.btn--primary::before{ background:linear-gradient(135deg,var(--champagne),var(--gold)); }
.btn--primary:hover{ transform:translateY(-2px); }
.btn--primary:hover::before{ transform:translateY(0); }
.btn--ghost{ color:var(--champagne); }
.btn--ghost:hover{ color:var(--black); border-color:var(--gold); }
.btn--ghost:hover::before{ transform:translateY(0); }

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative;
  height:100vh; height:100svh;
  overflow:hidden;
  background:var(--black);
}
.hero__track{ position:relative; width:100%; height:100%; }
.hero__slide{
  position:absolute; inset:0;
  opacity:0; visibility:hidden;
  transition:opacity 1.1s var(--ease);
}
.hero__slide.is-active{ opacity:1; visibility:visible; }
.hero__image{
  position:absolute; inset:-4%;
  background-size:cover; background-position:center;
  will-change:transform;
  transform:scale(1.06);
}
.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to top, rgba(5,5,5,.9) 0%, rgba(5,5,5,.25) 38%, rgba(5,5,5,.15) 60%, rgba(5,5,5,.55) 100%),
    linear-gradient(to right, rgba(5,5,5,.55) 0%, transparent 35%, transparent 65%, rgba(5,5,5,.4) 100%);
}
.hero__content{
  position:relative; z-index:2; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  text-align:center; padding:0 24px calc(var(--header-h) * .95);
  gap:22px;
}
.hero__eyebrow{
  font-size:11px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold);
}
.hero__headline{
  font-family:var(--font-display); font-weight:400; color:var(--offwhite);
  font-size:clamp(34px,6vw,76px); line-height:1.08;
}
.hero__headline span{ display:block; }
.hero__headline em{ font-style:italic; background:var(--metal-gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }

.hero__arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--champagne); border:1px solid var(--line);
  background:rgba(5,5,5,.3); backdrop-filter:blur(6px);
  z-index:3;
  transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.hero__arrow:hover{ border-color:var(--gold); color:var(--gold); }
.hero__arrow--prev{ left:clamp(14px,3vw,40px); }
.hero__arrow--prev:hover{ transform:translateY(-50%) translateX(-3px); }
.hero__arrow--next{ right:clamp(14px,3vw,40px); }
.hero__arrow--next:hover{ transform:translateY(-50%) translateX(3px); }

.hero__dots{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%);
  display:flex; gap:10px; z-index:3;
}
.hero__dots button{
  width:7px; height:7px; border-radius:50%; background:rgba(244,239,230,.3);
  transition:background var(--dur-fast), transform var(--dur-fast) var(--ease);
}
.hero__dots button.is-active{ background:var(--gold); transform:scale(1.3); }

.hero__scroll-cue{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%);
  width:1px; height:34px; background:rgba(244,239,230,.2); z-index:2;
  overflow:hidden;
}
.hero__scroll-cue span{
  position:absolute; left:0; top:-34px; width:100%; height:34px;
  background:linear-gradient(to bottom, transparent, var(--gold));
  animation:scrollHintDrop 2.2s ease-in-out infinite;
}

/* ==========================================================================
   FILM — in-page showcase video (not scroll-scrubbed; plays on scroll-into-view)
   ========================================================================== */
.film{
  position:relative;
  background:var(--black);
  padding:clamp(32px,4vw,56px) 0 clamp(36px,4.5vw,64px);
}
.film__header{ text-align:center; max-width:720px; margin:0 auto clamp(18px,2.5vw,30px); padding:0 20px; }
.film__eyebrow{
  font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:14px;
}
.film__title{
  font-family:var(--font-display); font-weight:400; font-size:clamp(32px,5vw,58px); color:var(--offwhite);
}
.film__frame{
  position:relative; width:100%; aspect-ratio:16/9;
  background:var(--black);
  overflow:hidden;
}
.film__video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center;
}
.film__vignette{
  position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 0 140px 50px rgba(0,0,0,.6);
  background:linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 22%);
}
.film__controls{
  position:absolute; left:clamp(16px,3vw,36px); bottom:clamp(16px,3vw,36px);
  display:flex; gap:12px; z-index:2;
}
.film__control{
  width:46px; height:46px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--champagne); border:1px solid var(--line);
  background:rgba(5,5,5,.4); backdrop-filter:blur(8px);
  transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.film__control:hover{ border-color:var(--gold); color:var(--gold); transform:scale(1.06); }
.film__icon{ position:absolute; opacity:0; transition:opacity var(--dur-fast) var(--ease); }
.film__control#filmToggle .film__icon--pause{ opacity:1; }
.film__control#filmToggle.is-playing .film__icon--pause{ opacity:1; }
.film__control#filmToggle:not(.is-playing) .film__icon--pause{ opacity:0; }
.film__control#filmToggle:not(.is-playing) .film__icon--play{ opacity:1; }
.film__control#filmMute .film__icon--sound{ opacity:1; }
.film__control#filmMute.is-muted .film__icon--sound{ opacity:0; }
.film__control#filmMute.is-muted .film__icon--muted{ opacity:1; }

/* ==========================================================================
   CEO MESSAGE
   ========================================================================== */
.ceo{
  position:relative;
  background:radial-gradient(ellipse at 80% 30%, rgba(107,68,35,.14), transparent 55%), var(--black);
  padding:clamp(36px,4.5vw,60px) clamp(0px,2vw,24px) clamp(36px,4.5vw,60px) clamp(24px,6vw,80px);
  overflow:hidden;
}
.ceo__inner{
  max-width:1680px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(32px,4vw,64px);
  align-items:center;
}
.ceo__eyebrow{
  font-family:var(--font-sans); font-size:15px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--champagne); opacity:.75; margin-bottom:20px;
}
.ceo__headline{
  font-family:var(--font-display); font-weight:400; font-size:clamp(42px,5.6vw,80px);
  line-height:1.1; color:var(--offwhite); margin-bottom:38px;
}
.ceo__line{ display:block; overflow:hidden; }
.ceo__line:nth-child(2){ background:var(--metal-gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ceo__name{
  font-family:var(--font-sans); font-weight:500; letter-spacing:.06em; font-size:19px;
  color:var(--offwhite); margin-bottom:30px;
  position:relative; padding-bottom:18px;
}
.ceo__name::after{
  content:''; position:absolute; left:0; bottom:0; width:54px; height:1px; background:var(--metal-gradient);
}

.ceo__art{ position:relative; aspect-ratio:4/5; max-width:680px; justify-self:end; width:100%; }
.ceo__glow{
  position:absolute; inset:-14%;
  background:radial-gradient(ellipse at center, rgba(201,153,95,.22), transparent 68%);
  filter:blur(18px);
  z-index:0;
}
.ceo__crown{
  position:relative; z-index:1; width:100%; height:100%; object-fit:cover;
  object-position:85% 48%;
  border-radius:4px;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.85);
  will-change:transform;
}

/* ==========================================================================
   BEST SELLERS
   ========================================================================== */
.bestsellers{
  position:relative;
  background:var(--black);
  padding:clamp(32px,4vw,56px) 0 clamp(44px,5vw,72px);
}
.bestsellers__header{ text-align:center; max-width:720px; margin:0 auto clamp(18px,2.5vw,30px); padding:0 20px; }
.bestsellers__eyebrow{
  font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:14px;
}
.bestsellers__title{
  font-family:var(--font-display); font-weight:400; font-size:clamp(32px,5vw,58px); color:var(--offwhite);
}
.bestsellers__frame{
  position:relative; width:100%; margin:0 auto;
  overflow:hidden;
}
.bestsellers__img{ width:100%; height:auto; display:block; will-change:transform; }
.bestsellers__reflection{
  position:absolute; left:0; right:0; bottom:0; height:30%;
  background:linear-gradient(to top, rgba(0,0,0,.45), transparent);
  pointer-events:none;
}
.bestsellers__vignette{
  position:absolute; inset:0;
  box-shadow:inset 0 0 120px 40px rgba(0,0,0,.65);
  pointer-events:none;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{
  background:var(--black);
  border-top:1px solid var(--line-strong);
}
.site-footer__top{
  max-width:1360px; margin:0 auto;
  padding:clamp(48px,7vw,80px) clamp(24px,6vw,56px) clamp(40px,6vw,60px);
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:clamp(32px,5vw,60px);
}
.site-footer__brand{ display:flex; flex-direction:column; gap:14px; }
.site-footer__mark{ width:52px; height:auto; opacity:.9; }
.site-footer__brand-word{
  font-family:var(--font-sans); font-weight:700; letter-spacing:.14em;
  font-size:19px; color:var(--offwhite);
}
.site-footer__brand-word span{ background:var(--metal-gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }
.site-footer__tagline{
  font-size:11px; letter-spacing:.1em; color:rgba(244,239,230,.55); max-width:30ch;
}
.site-footer__col h3{
  font-family:var(--font-sans); font-weight:500; font-size:12px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--gold); margin-bottom:20px;
}
.site-footer__col ul{ display:flex; flex-direction:column; gap:13px; }
.site-footer__col a{
  font-size:13px; letter-spacing:.06em; color:rgba(244,239,230,.75);
  transition:color var(--dur-fast), padding-left var(--dur-fast) var(--ease);
  display:inline-block;
}
.site-footer__col a:hover,.site-footer__col a:focus-visible{ color:var(--champagne); padding-left:6px; }
.site-footer__bottom{
  border-top:1px solid var(--line);
  padding:22px clamp(24px,6vw,56px);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px;
  text-align:center;
}
.site-footer__copy{
  font-size:11px; letter-spacing:.08em; color:rgba(244,239,230,.4);
}

/* ---------- Reveal base states (progressive enhancement via JS) ---------- */
[data-reveal],[data-reveal-line]{
  opacity:0; transform:translateY(26px);
}
.js-ready [data-reveal],.js-ready [data-reveal-line]{
  transition:opacity 1s var(--ease), transform 1s var(--ease);
}
.js-ready [data-reveal].is-revealed,
.js-ready [data-reveal-line].is-revealed{
  opacity:1; transform:none;
}
.no-js [data-reveal],.no-js [data-reveal-line]{ opacity:1; transform:none; }
