/* ════════════════════════════════════════════════════════════════
   CALICUT WATCH HOUSE — Luxury Edition
   Palette: #0a0a0a · #f8f8f8 · #d32f2f · Warm greys
   Fonts: Cormorant Garamond (display) · DM Sans (body)
════════════════════════════════════════════════════════════════ */

/* ── RESET ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --ink:        #0a0a0a;
  --ink-2:      #1c1c1c;
  --ink-3:      #2e2e2e;
  --grey-mid:   #5a5a5a;
  --grey-light: #9a9a9a;
  --rule-dark:  rgba(255,255,255,0.07);
  --rule-light: rgba(0,0,0,0.08);
  --cream:      #f8f8f8;
  --cream-2:    #f2f0ed;
  --red:        #d32f2f;
  --red-dark:   #b71c1c;
  --max:        1280px;
  --pad:        clamp(1.5rem, 5vw, 4rem);
  --sec:        clamp(80px, 10vw, 140px);
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  font-family: 'DM Sans', sans-serif;
  background: var(--ink);
  color: var(--cream);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body.no-scroll { overflow: hidden; }

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

/* ── CUSTOM CURSOR ─────────────────────────────────────────── */
.cursor {
  position: fixed;
  width: 38px; height: 38px;
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  top: 0; left: 0;
  transition: width .35s, height .35s, border-color .35s, background .35s;
  will-change: transform;
}
.cursor.cursor--hover {
  width: 56px; height: 56px;
  border-color: var(--red);
  background: rgba(211,47,47,0.08);
}
.cursor-dot {
  position: fixed;
  width: 4px; height: 4px;
  background: var(--red);
  border-radius: 50%;
  pointer-events: none;
  z-index: 10000;
  top: 0; left: 0;
  will-change: transform;
}
@media (pointer: coarse) {
  .cursor, .cursor-dot { display: none; }
}

/* ── GRAIN OVERLAY ─────────────────────────────────────────── */
.grain {
  position: fixed;
  inset: -50%;
  width: 200%; height: 200%;
  pointer-events: none;
  z-index: 9998;
  opacity: .018;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grainDrift 8s steps(2) infinite;
}
@keyframes grainDrift {
  0%,100% { transform: translate(0,0); }
  20%     { transform: translate(-3%,-2%); }
  40%     { transform: translate(2%,3%); }
  60%     { transform: translate(-1%,2%); }
  80%     { transform: translate(3%,-1%); }
}

/* ── UTILITIES ─────────────────────────────────────────────── */
.container {
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--pad);
}

.dark-section  { background: var(--ink); color: var(--cream); }
.light-section { background: var(--cream); color: var(--ink); }

.eyebrow {
  display: inline-block;
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 1rem;
}
.eyebrow--light { color: rgba(211,47,47,.85); }

.display-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.6rem, 5.5vw, 5rem);
  font-weight: 300;
  line-height: 1.06;
  letter-spacing: -.01em;
  color: var(--ink);
}
.display-heading em { font-style: italic; color: var(--red); font-weight: 400; }
.display-heading--light { color: var(--cream); }

.body-text { font-size: clamp(.875rem, 1.1vw, 1rem); line-height: 1.75; color: var(--grey-mid); }
.body-text--muted { color: rgba(255,255,255,.45); }

.section-header {
  text-align: center;
  margin-bottom: clamp(50px, 7vw, 90px);
}

/* ── BUTTONS ───────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .8rem 2rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  border: none;
  border-radius: 0;
  transition: background .3s, color .3s, transform .3s, box-shadow .3s;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}
.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0);
  transition: background .3s;
}
.btn:hover::after { background: rgba(255,255,255,.06); }
.btn:hover { transform: translateY(-1px); }

.btn--ghost-light {
  background: transparent;
  color: rgba(255,255,255,.9);
  border: 1px solid rgba(255,255,255,.25);
}
.btn--ghost-light:hover { border-color: rgba(255,255,255,.6); }

.btn--dark {
  background: var(--ink);
  color: var(--cream);
  border: 1px solid rgba(0,0,0,.15);
}
.btn--dark:hover { background: var(--ink-3); }

.btn--whatsapp {
  background: #25d366;
  color: #fff;
}
.btn--whatsapp:hover { background: #1da851; box-shadow: 0 8px 30px rgba(37,211,102,.25); }

.btn--full { width: 100%; justify-content: center; }

/* ── NAV ───────────────────────────────────────────────────── */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 500;
  padding: 1.5rem 0;
  transition: background .4s, padding .4s, border-color .4s;
  border-bottom: 1px solid transparent;
}
.nav--scrolled {
  background: rgba(10,10,10,.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 1rem 0;
  border-bottom: 1px solid var(--rule-dark);
}

.nav .container {
  display: none; /* using nav__inner instead */
}
.nav__left, .nav__center, .nav__right {
  display: flex;
  align-items: center;
}
/* Nav is flex on its own */
.nav {
  display: flex;
  align-items: center;
  padding-inline: var(--pad);
  justify-content: space-between;
}

.nav__wordmark {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.nav__wm-top {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--cream);
}
.nav__wm-bottom {
  font-size: .65rem;
  font-weight: 400;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
}

.nav__est {
  font-size: .65rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.25);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 2.5rem;
}
.nav__links a {
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  transition: color .25s;
}
.nav__links a:hover, .nav__contact-link { color: rgba(255,255,255,.9) !important; }
.nav__contact-link {
  padding: .45rem 1.25rem;
  border: 1px solid rgba(255,255,255,.15);
  transition: border-color .25s, color .25s !important;
}
.nav__contact-link:hover { border-color: rgba(255,255,255,.4) !important; }

.nav__burger {
  display: none;
  flex-direction: column;
  gap: 6px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  z-index: 600;
}
.nav__burger span {
  display: block;
  width: 22px;
  height: 1px;
  background: rgba(255,255,255,.7);
  transition: transform .35s, opacity .35s, width .35s;
  transform-origin: center;
}
.nav__burger.open span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
.nav__burger.open span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }

/* ── MOBILE MENU ───────────────────────────────────────────── */
.mobile-menu {
  position: fixed;
  inset: 0;
  background: var(--ink-2);
  z-index: 490;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .4s;
}
.mobile-menu.open { opacity: 1; pointer-events: all; }
.mobile-menu__inner ul {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  text-align: center;
  margin-bottom: 3rem;
}
.mm-link {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 8vw, 3rem);
  font-weight: 300;
  color: rgba(255,255,255,.8);
  transition: color .2s;
}
.mm-link:hover { color: var(--red); }
.mobile-menu__foot {
  text-align: center;
  font-size: .8rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.3);
}

/* ── HERO ──────────────────────────────────────────────────── */
.hero {
  position: relative;
  height: 100vh;
  min-height: 640px;
  display: flex;
  align-items: center;
  padding-top: clamp(100px, 14vh, 160px);
  padding-bottom: clamp(60px, 8vh, 120px);
  overflow: hidden;
}

.hero__media {
  position: absolute;
  inset: 0;
  background: var(--ink-2);
}
.hero__img {
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .35;
  transition: transform 8s ease-out;
  transform: scale(1.04);
}
.hero__media.no-img .hero__img { display: none; }
.hero__vignette {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, rgba(10,10,10,1) 0%, rgba(10,10,10,0) 50%),
    linear-gradient(to right, rgba(10,10,10,.6) 0%, rgba(10,10,10,0) 60%);
}

.hero__clock-deco {
  position: absolute;
  right: clamp(20px, 6vw, 80px);
  top: 50%;
  transform: translateY(-50%);
  width: clamp(320px, 38vw, 560px);
  opacity: .32;
  pointer-events: none;
}
.clock-svg { width: 100%; height: auto; }

.hero__content {
  position: relative;
  z-index: 2;
  padding-inline: var(--pad);
  width: 45%;
  max-width: 680px;
}

.hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  margin-bottom: 1.75rem;
}
.hr-line {
  flex: 0 0 auto;
  display: block;
  width: 28px;
  height: 1px;
  background: rgba(255,255,255,.2);
}

.hero__h1 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.4rem, 5.5vw, 5.2rem);
  font-weight: 300;
  line-height: 1.02;
  letter-spacing: -.02em;
  color: var(--cream);
  margin-bottom: 1.5rem;
  position: relative;
}
.hero__h1 em { font-style: italic; color: rgba(255,255,255,.55); }
.hero__since {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: clamp(.7rem, 1vw, .85rem);
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--red);
  margin-top: .75rem;
}

.hero__sub {
  font-size: clamp(.85rem, 1.2vw, 1rem);
  color: rgba(255,255,255,.4);
  line-height: 1.9;
  letter-spacing: .06em;
  margin-bottom: 2.5rem;
}

.hero__ctas { display: flex; flex-wrap: wrap; gap: .75rem; }

.hero__scroll {
  position: absolute;
  bottom: 2.5rem;
  right: var(--pad);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  z-index: 2;
  color: rgba(255,255,255,.25);
  font-size: .6rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.hero__scroll-track {
  width: 1px;
  height: 60px;
  background: rgba(255,255,255,.1);
  position: relative;
  overflow: hidden;
}
.hero__scroll-thumb {
  position: absolute;
  top: 0; left: 0;
  width: 1px;
  height: 30px;
  background: var(--red);
  animation: scrollSlide 1.8s ease-in-out infinite;
}
@keyframes scrollSlide {
  0%   { top: -30px; }
  100% { top: 100%; }
}

/* ── HERO REVEAL ───────────────────────────────────────────── */
.reveal-hero {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s cubic-bezier(.25,.46,.45,.94),
              transform .9s cubic-bezier(.25,.46,.45,.94);
  transition-delay: var(--d, 0s);
}
.reveal-hero.revealed { opacity: 1; transform: none; }

/* ── TICKER ────────────────────────────────────────────────── */
.ticker-bar {
  background: var(--red);
  overflow: hidden;
  padding: .65rem 0;
  white-space: nowrap;
}
.ticker-track {
  display: inline-flex;
  gap: 2rem;
  animation: tickerRoll 28s linear infinite;
}
.ticker-track span {
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.9);
}
.ticker-dot { color: rgba(255,255,255,.4) !important; font-size: .4rem !important; }
@keyframes tickerRoll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── MAIN VIDEO ────────────────────────────────────────────── */
.main-video {
  position: relative;
  background: var(--ink-2);
}
.main-video__wrap {
  position: relative;
  height: 70vh;
  min-height: 400px;
  overflow: hidden;
}
.main-video__el {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center center;
  will-change: transform;
}
.main-video__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    to right,
    rgba(10,10,10,.85) 0%,
    rgba(10,10,10,.4) 50%,
    rgba(10,10,10,.15) 100%
  );
}
.main-video__fallback {
  position: absolute; inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #111 0%, #1a1a1a 100%);
}
.main-video__fallback.active { display: flex; }
.mv-fallback-inner {
  position: relative;
  width: 200px; height: 200px;
  display: flex; align-items: center; justify-content: center;
}
.mv-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.07);
}
.mv-ring--1 { inset: 0; animation: ringPulse 3s ease-in-out infinite; }
.mv-ring--2 { inset: 20px; animation: ringPulse 3s ease-in-out infinite .5s; }
.mv-ring--3 { inset: 40px; border-color: rgba(211,47,47,0.15); animation: ringPulse 3s ease-in-out infinite 1s; }
@keyframes ringPulse {
  0%,100% { opacity: .3; transform: scale(1); }
  50%     { opacity: .8; transform: scale(1.03); }
}
.mv-center-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.2rem;
  font-weight: 300;
  letter-spacing: .3em;
  color: rgba(255,255,255,.2);
}

.main-video__text {
  position: absolute;
  bottom: clamp(2rem, 5vw, 4rem);
  left: 0; right: 0;
  z-index: 2;
}
.main-video__text-inner { max-width: 520px; }
.main-video__text-inner .display-heading { font-size: clamp(2rem, 4vw, 3.8rem); }
.main-video__text-inner .body-text { margin-top: 1rem; max-width: 360px; }

/* ── JS REVEAL ─────────────────────────────────────────────── */
.js-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s cubic-bezier(.25,.46,.45,.94),
              transform .8s cubic-bezier(.25,.46,.45,.94);
  transition-delay: var(--rd, 0s);
}
.js-reveal.in-view { opacity: 1; transform: none; }

/* ── HISTORY ───────────────────────────────────────────────── */
.history { padding-block: var(--sec); }

.history__layout {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(2rem, 6vw, 6rem);
  align-items: start;
}
.history__large-year {
  display: flex;
  align-items: flex-start;
  padding-top: .5rem;
}
.history__large-year span {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(4rem, 10vw, 9rem);
  font-weight: 300;
  color: rgba(0,0,0,.07);
  line-height: 1;
  letter-spacing: -.04em;
  user-select: none;
}

.h-event {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 2rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--rule-light);
  margin-bottom: 3rem;
}
.h-event:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }

.h-event__marker { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.h-event__year {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--red);
  letter-spacing: .02em;
}
.h-event__line {
  flex: 1;
  width: 1px;
  background: var(--rule-light);
  min-height: 40px;
}

.h-event__body h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: .75rem;
}
.h-event__body p {
  font-size: .9rem;
  color: var(--grey-mid);
  line-height: 1.8;
}

/* ── TEAM ──────────────────────────────────────────────────── */
.team { padding-block: var(--sec); }

.team__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--rule-dark);
  margin-bottom: clamp(3rem, 5vw, 5rem);
}
.team-block {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-right: 1px solid var(--rule-dark);
  transition: background .4s;
}
.team-block:last-child { border-right: none; }
.team-block:hover { background: rgba(255,255,255,.03); }

.team-block__num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 3rem;
  font-weight: 300;
  color: rgba(211,47,47,.2);
  line-height: 1;
  margin-bottom: 1.5rem;
}
.team-block h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--cream);
  margin-bottom: .6rem;
}
.team-block p { font-size: .85rem; color: rgba(255,255,255,.4); line-height: 1.75; }

.brands-ribbon {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  padding: 1.75rem 0;
  border-top: 1px solid var(--rule-dark);
  border-bottom: 1px solid var(--rule-dark);
}
.brands-ribbon__label {
  font-size: .65rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.2);
  white-space: nowrap;
  flex-shrink: 0;
  padding-right: 2rem;
  border-right: 1px solid var(--rule-dark);
}
.brands-ribbon__items {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
}
.brands-ribbon__items span {
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  padding: .4rem .9rem;
  border: 1px solid rgba(255,255,255,.08);
  transition: color .3s, border-color .3s;
}
.brands-ribbon__items span:hover { color: rgba(255,255,255,.8); border-color: rgba(255,255,255,.25); }

/* ── SERVICES ──────────────────────────────────────────────── */
.services { padding-block: var(--sec); }

.services__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.services__left { display: flex; flex-direction: column; }

.svc {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 1.5rem;
  padding-block: 1.75rem;
  padding-inline: 1rem;
  border-bottom: 1px solid var(--rule-light);
  transition: background .35s, border-color .35s;
  margin-inline: -1rem;
}
.svc:first-child { border-top: 1px solid var(--rule-light); }
.svc:hover { background: rgba(0,0,0,.03); }
.svc:hover .svc__body h3 { color: var(--red); }

/* Active state — triggered by scroll observer */
.svc--active {
  background: rgba(211,47,47,.06);
  border-bottom-color: rgba(211,47,47,.15);
}
.svc--active .svc__n { color: var(--red); }
.svc--active .svc__body h3 { color: var(--ink); }
.svc--active .svc__body p { color: var(--ink-3); }

.svc__n {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: rgba(211,47,47,.5);
  padding-top: .2rem;
}
.svc__body h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: .35rem;
  transition: color .3s;
}
.svc__body p { font-size: .86rem; color: var(--grey-mid); line-height: 1.7; }

/* Services video */
.services__right { position: sticky; top: 120px; }
.services__video-wrap {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 3/4;
  background: var(--ink-2);
  box-shadow: 0 30px 80px rgba(0,0,0,.15);
}
.services__video-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10,10,10,.38);
  pointer-events: none;
  z-index: 1;
}
.services__video-label { z-index: 2; }
.services__video {
  width: 100%; height: 100%;
  object-fit: cover;
}
.services__video-fallback {
  position: absolute; inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: #131313;
}
.services__video-fallback.active { display: flex; }
.services__video-fallback svg { width: 160px; height: 160px; }

.gear-anim-1 { animation: gearSpin1 12s linear infinite; }
.gear-anim-2 { animation: gearSpin2 8s linear infinite; }
@keyframes gearSpin1 { to { transform: rotate(360deg); } }
@keyframes gearSpin2 { to { transform: rotate(-360deg); } }

.services__video-label {
  position: absolute;
  bottom: 1.25rem;
  left: 1.25rem;
  font-size: .6rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.3);
  border-bottom: 1px solid rgba(255,255,255,.15);
  padding-bottom: .25rem;
}

/* ── PRODUCTS ──────────────────────────────────────────────── */
.products { padding-block: var(--sec); }

.products__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.05);
}
.prod-card {
  background: var(--ink);
  padding: clamp(1.75rem, 3vw, 2.5rem);
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  transition: background .4s;
}
.prod-card:hover { background: rgba(255,255,255,.03); }

.prod-card__media { display: flex; }
.prod-card__icon-wrap {
  width: 80px; height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.prod-card__icon-wrap svg { width: 100%; height: 100%; }

.prod-card__body h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem;
  font-weight: 400;
  color: rgba(255,255,255,.85);
  margin-bottom: .5rem;
}
.prod-card__body p { font-size: .83rem; color: rgba(255,255,255,.35); line-height: 1.7; }

/* ── CONTACT ───────────────────────────────────────────────── */
.contact { padding-block: var(--sec); }

.contact__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 7vw, 7rem);
  align-items: start;
}

.contact__info .display-heading { margin-bottom: 2.5rem; }

.contact__items { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 2rem; }
.ci__label {
  font-size: .65rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: .3rem;
}
.ci__value {
  font-size: .92rem;
  color: var(--grey-mid);
  line-height: 1.65;
}

.contact__ctas { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 2.5rem; }

.contact__map { border-radius: 4px; overflow: hidden; border: 1px solid var(--rule-light); }
.contact__map iframe { display: block; filter: grayscale(.15) contrast(.95); }

/* Form */
.contact__form {
  padding: clamp(1.75rem, 3vw, 3rem);
  background: var(--cream-2);
  border: 1px solid rgba(0,0,0,.06);
}
.cf-header { margin-bottom: 2rem; }
.cf-header h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.8rem;
  font-weight: 400;
  color: var(--ink);
  margin-bottom: .35rem;
}
.cf-header p { font-size: .82rem; color: var(--grey-light); }

.cf-field {
  position: relative;
  margin-bottom: 1.25rem;
}
.cf-field input,
.cf-field textarea {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(0,0,0,.15);
  padding: 1.1rem 0 .5rem;
  font-family: 'DM Sans', sans-serif;
  font-size: .9rem;
  color: var(--ink);
  outline: none;
  resize: none;
  transition: border-color .3s;
}
.cf-field input:focus,
.cf-field textarea:focus { border-bottom-color: var(--ink); }

.cf-field label {
  position: absolute;
  top: 1rem;
  left: 0;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--grey-light);
  pointer-events: none;
  transition: transform .3s, font-size .3s, color .3s;
}
.cf-field input:focus + label,
.cf-field input:not(:placeholder-shown) + label,
.cf-field textarea:focus + label,
.cf-field textarea:not(:placeholder-shown) + label {
  transform: translateY(-1.1rem);
  font-size: .6rem;
  color: var(--red);
}

.cf-submit {
  margin-top: .5rem;
  justify-content: space-between;
  transition: background .3s, transform .3s;
}
.cf-arrow { flex-shrink: 0; transition: transform .3s; }
.cf-submit:hover .cf-arrow { transform: translateX(4px); }
.form-note { display: none; }

/* ── FOOTER ────────────────────────────────────────────────── */
.footer {
  background: #050505;
  padding-top: clamp(3rem, 5vw, 5rem);
}
.footer__top {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 3rem;
  align-items: start;
  padding-bottom: clamp(2.5rem, 4vw, 4rem);
}
.footer__wm {
  display: flex;
  flex-direction: column;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-weight: 300;
  letter-spacing: .08em;
  color: rgba(255,255,255,.5);
  margin-bottom: .75rem;
}
.footer__wm span:first-child { font-weight: 600; color: rgba(255,255,255,.7); }
.footer__brand p { font-size: .75rem; color: rgba(255,255,255,.2); line-height: 1.7; }

.footer__nav, .footer__contact {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  align-items: flex-end;
}
.footer__nav a, .footer__contact a {
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.25);
  transition: color .25s;
}
.footer__nav a:hover, .footer__contact a:hover { color: rgba(255,255,255,.7); }

.footer__bottom { padding: 1.5rem 0; }
.footer__rule {
  display: block;
  height: 1px;
  background: rgba(255,255,255,.05);
  margin-bottom: 1.5rem;
}
.footer__copy {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.15);
}

/* Inline service images — desktop: hidden. Mobile: shown per service row */
.svc__inline-img { display: none; }

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
  .nav__est { display: none; }
  .products__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 800px) {
  .nav__links { display: none; }
  .nav__burger { display: flex; }

  .hero__clock-deco { opacity: .12; }
  .hero__content { width: 90%; }

  .history__layout { grid-template-columns: 1fr; }
  .history__large-year { display: none; }

  .team__grid { grid-template-columns: 1fr; }
  .team-block { border-right: none; border-bottom: 1px solid var(--rule-dark); }
  .team-block:last-child { border-bottom: none; }

  .services__layout { grid-template-columns: 1fr; }
  .services__right { display: none; }

  /* Inline image shown inside each service row on mobile */
  .svc {
    grid-template-columns: 32px 1fr;
    grid-template-rows: auto auto;
    margin-inline: 0;
    padding-inline: 0;
  }
  .svc__inline-img {
    display: block;
    grid-column: 2;
    grid-row: 2;
    margin-top: .85rem;
    border-radius: 4px;
    overflow: hidden;
    aspect-ratio: 16/9;
  }
  .svc__inline-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .contact__grid { grid-template-columns: 1fr; }

  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
  .footer__nav, .footer__contact { align-items: flex-start; }
}

@media (max-width: 560px) {
  .products__grid { grid-template-columns: 1fr; }
  .h-event { grid-template-columns: 70px 1fr; gap: 1rem; }
  .hero__ctas { flex-direction: column; max-width: 260px; }
  .hero__ctas .btn { justify-content: center; }
  .footer__top { grid-template-columns: 1fr; }
  .footer__nav, .footer__contact { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: .5rem 1.5rem; }
  .footer__copy { flex-direction: column; gap: .4rem; text-align: center; }
  .brands-ribbon { flex-direction: column; align-items: flex-start; }
  .brands-ribbon__label { border-right: none; border-bottom: 1px solid var(--rule-dark); padding-right: 0; padding-bottom: .75rem; width: 100%; }
}
/* ── SERVICES SCROLL IMAGE PANEL ───────────────────────────── */
.services__right {
  position: sticky;
  top: 120px;
  align-self: start;
}

.svc-img-wrap {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 3/4;
  background: var(--ink-2);
  box-shadow: 0 30px 80px rgba(0,0,0,.15);
}

.svc-img {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .7s cubic-bezier(.4,0,.2,1);
  z-index: 0;
}
.svc-img.active {
  opacity: 1;
  z-index: 1;
}
.svc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.04);
  transition: transform .7s cubic-bezier(.4,0,.2,1);
}
.svc-img.active img {
  transform: scale(1);
}

/* Dark overlay on image */
.svc-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,10,10,.65) 0%, rgba(10,10,10,.1) 50%, transparent 100%);
  z-index: 2;
  pointer-events: none;
}

/* Label at bottom */
.svc-img__label {
  position: absolute;
  bottom: 1.25rem;
  left: 1.25rem;
  z-index: 3;
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  border-bottom: 1px solid rgba(255,255,255,.15);
  padding-bottom: .25rem;
}

/* Progress dots */
.svc-img__dots {
  position: absolute;
  right: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: .45rem;
}
.svc-dot {
  display: block;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
  transition: background .4s, transform .4s;
}
.svc-dot.active {
  background: var(--red);
  transform: scale(1.6);
}

/* Active service highlight handled above in .svc--active */

/* Mobile: stack and use 16:9 */
@media (max-width: 800px) {
  .services__right { position: static; }
  .svc-img-wrap { aspect-ratio: 16/9; }
}

/* ── SERVICE IMAGE TOP LABEL ────────────────────────────────── */
.svc-img__top-label {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  right: 1.25rem;
  z-index: 5;
  display: flex;
  align-items: baseline;
  gap: .75rem;
  pointer-events: none;
}

.svc-img__top-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: .75rem;
  font-weight: 400;
  color: var(--red);
  letter-spacing: .1em;
  flex-shrink: 0;
  opacity: .9;
}

.svc-img__top-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 400;
  color: rgba(255,255,255,.92);
  letter-spacing: .02em;
  line-height: 1.2;
  transition: opacity .35s;
}

/* Top gradient so text is always readable */
.svc-img-wrap::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(to bottom, rgba(10,10,10,.6) 0%, transparent 100%);
  z-index: 4;
  pointer-events: none;
}

/* Bottom label (small caps) */
.svc-img__bottom-label {
  position: absolute;
  bottom: 1.25rem;
  left: 1.25rem;
  z-index: 5;
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.3);
  border-bottom: 1px solid rgba(255,255,255,.12);
  padding-bottom: .25rem;
  pointer-events: none;
}


/* ── PRODUCT IMAGE SLIDER ───────────────────────────────────── */
.prod-slider {
  margin-top: clamp(3rem, 5vw, 5rem);
  overflow: hidden;
}

.prod-slider__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  padding-inline: .25rem;
}

.prod-slider__hint {
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.2);
}

.prod-slider__track {
  display: flex;
  gap: 1rem;
  cursor: grab;
  user-select: none;
  will-change: transform;
  /* No overflow hidden here — parent clips */
}

.prod-slide {
  flex: 0 0 260px;
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 3/4;
  background: var(--ink-2);
}

.prod-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
  transition: transform .6s cubic-bezier(.4,0,.2,1);
}

.prod-slide:hover img {
  transform: scale(1.04);
}

/* Bottom gradient + caption */
.prod-slide::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,10,10,.75) 0%, transparent 55%);
  z-index: 1;
  pointer-events: none;
}

.prod-slide__caption {
  position: absolute;
  bottom: .85rem;
  left: 1rem;
  z-index: 2;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  font-weight: 400;
  color: rgba(255,255,255,.9);
  letter-spacing: .02em;
  pointer-events: none;
}

@media (max-width: 800px) {
  .prod-slide { flex: 0 0 200px; }
}

@media (max-width: 560px) {
  .prod-slide { flex: 0 0 160px; }
  .prod-slider__header { flex-direction: column; align-items: flex-start; gap: .35rem; }
}

/* ── PORTRAIT VIDEO SHOWCASE ────────────────────────────────── */
.showcase-video {
  background: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  padding-block: clamp(4rem, 8vw, 8rem);
  padding-inline: var(--pad);
  overflow: hidden;
}

.showcase-video__inner {
  position: relative;
  flex-shrink: 0;
  width: min(380px, 80vw);
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 9/16;
  box-shadow: 0 40px 100px rgba(0,0,0,.7);
}

.showcase-video__el {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.showcase-video__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(10,10,10,1) 0%, rgba(10,10,10,.8) 30%, rgba(10,10,10,.2) 55%, transparent 100%),
    linear-gradient(to bottom, rgba(10,10,10,.5) 0%, transparent 25%);
  z-index: 1;
}

.showcase-video__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.showcase-video__heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--cream);
}
.showcase-video__heading em {
  font-style: italic;
  color: var(--red);
  font-weight: 400;
}

.showcase-video__sub {
  font-size: .82rem;
  line-height: 1.7;
  color: rgba(255,255,255,.6);
  margin-bottom: .5rem;
}

/* Side decorative text */
.showcase-video__side {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1;
}
.showcase-video__side--left { align-items: flex-end; }
.showcase-video__side--right { align-items: flex-start; }

.showcase-video__side span {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.5rem, 4.5vw, 5.5rem);
  font-weight: 300;
  line-height: 1;
  letter-spacing: -.02em;
  color: rgba(255,255,255,.18);
  text-transform: uppercase;
  white-space: nowrap;
  user-select: none;
}
.showcase-video__side--right span:nth-child(2) {
  color: rgba(211,47,47,.45);
}
.showcase-video__side--left span:nth-child(1) {
  color: rgba(211,47,47,.45);
}

@media (max-width: 900px) {
  .showcase-video__side { display: none; }
  .showcase-video__inner { width: min(420px, 88vw); }
}

/* ════════════════════════════════════════════════════════════════
   NEW SECTIONS — added for client update
════════════════════════════════════════════════════════════════ */

/* ── HISTORY FEATURE PHOTO (Inauguration) ──────────────────── */
.history__feature {
  margin-top: clamp(3rem, 6vw, 5.5rem);
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.history__feature-img {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 3/2;
  background: var(--cream-2);
  box-shadow: 0 30px 70px rgba(0,0,0,.12);
}
.history__feature-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.2s cubic-bezier(.4,0,.2,1);
}
.history__feature:hover .history__feature-img img { transform: scale(1.04); }
.history__feature-cap {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--ink);
}
.history__feature-tag {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 1rem;
}
@media (max-width: 800px) {
  .history__feature { grid-template-columns: 1fr; }
  .history__feature-img { aspect-ratio: 16/10; }
}

/* ── VISION ────────────────────────────────────────────────── */
.vision { padding-block: var(--sec); }
.vision__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--rule-dark);
  border: 1px solid var(--rule-dark);
}
@media (max-width: 900px) {
  .vision__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .vision__grid { grid-template-columns: 1fr; }
}
.vision-item {
  background: var(--ink);
  padding: clamp(1.75rem, 3vw, 2.5rem);
  display: flex;
  flex-direction: column;
  transition: background .4s;
}
.vision-item:hover { background: rgba(255,255,255,.03); }
.vision-item__num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.4rem;
  font-weight: 300;
  color: rgba(211,47,47,.3);
  line-height: 1;
  margin-bottom: 1.25rem;
}
.vision-item h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--cream);
  margin-bottom: .6rem;
}
.vision-item p {
  font-size: .85rem;
  color: rgba(255,255,255,.4);
  line-height: 1.7;
}

/* Decorative panel that fills the empty grid cells after item 05 */
.vision-deco {
  position: relative;
  overflow: hidden;
  grid-column: 2 / -1;
  display: flex;
  align-items: center;
  padding: clamp(1.75rem, 3vw, 2.5rem);
  background:
    radial-gradient(120% 140% at 100% 50%, rgba(211,47,47,.05) 0%, transparent 55%),
    rgba(255,255,255,.012);
}
.vision-deco__svg {
  position: absolute;
  right: clamp(-60px, -4vw, -30px);
  top: 50%;
  transform: translateY(-50%);
  width: clamp(220px, 24vw, 340px);
  height: auto;
  opacity: .85;
  pointer-events: none;
}
.vision-deco__motto {
  position: relative;
  z-index: 1;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.5rem, 2.4vw, 2.3rem);
  font-weight: 300;
  line-height: 1.25;
  letter-spacing: .01em;
  color: rgba(255,255,255,.42);
}
.vision-deco__motto em { font-style: italic; color: rgba(211,47,47,.7); }
@media (max-width: 560px) {
  .vision-deco { display: none; }
}

/* ── VACUUM MACHINES FEATURE ───────────────────────────────── */
.vacuum {
  margin-top: clamp(3rem, 5vw, 5rem);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  padding-top: clamp(2.5rem, 4vw, 4rem);
  border-top: 1px solid var(--rule-dark);
}
.vacuum__media {
  border-radius: 4px;
  overflow: hidden;
  background: var(--ink-2);
  box-shadow: 0 30px 80px rgba(0,0,0,.45);
}
.vacuum__media img {
  width: 100%;
  height: auto;
  display: block;
}
.vacuum__heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.9rem, 3.5vw, 3rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--cream);
  margin-bottom: 1rem;
}
.vacuum__heading em { font-style: italic; color: var(--red); font-weight: 400; }
.vacuum__sub {
  font-size: .9rem;
  line-height: 1.8;
  color: rgba(255,255,255,.45);
  margin-bottom: 1.75rem;
  max-width: 440px;
}
.vacuum__specs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .65rem 1.25rem;
  margin-bottom: 2rem;
}
.vacuum__specs li {
  position: relative;
  padding-left: 1.1rem;
  font-size: .8rem;
  letter-spacing: .04em;
  color: rgba(255,255,255,.6);
}
.vacuum__specs li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .55em;
  width: 5px;
  height: 5px;
  background: var(--red);
  border-radius: 50%;
}
@media (max-width: 800px) {
  .vacuum { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .vacuum__specs { grid-template-columns: 1fr; }
}

/* ── CONTACT MAP LINK ──────────────────────────────────────── */
/* Move rounding/border onto the iframe so the link can sit cleanly below */
.contact__map { border: none; overflow: visible; border-radius: 0; }
.contact__map iframe {
  border-radius: 4px;
  border: 1px solid var(--rule-light);
}
.contact__map-link {
  display: inline-block;
  margin-top: .9rem;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--red);
  transition: opacity .25s;
}
.contact__map-link:hover { opacity: .65; }

/* ── CONTACT STOREFRONT BANNER ─────────────────────────────── */
.contact__storefront {
  position: relative;
  margin-bottom: clamp(3rem, 6vw, 5rem);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,.12);
}
.contact__storefront img {
  width: 100%;
  height: clamp(220px, 38vw, 660px);
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 1.2s cubic-bezier(.4,0,.2,1);
}
.contact__storefront:hover img { transform: scale(1.03); }
.contact__storefront::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,10,10,.82) 0%, rgba(10,10,10,.15) 45%, transparent 70%);
  z-index: 1;
}
.contact__storefront figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: clamp(1.25rem, 3vw, 2rem);
  z-index: 2;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.05rem, 1.8vw, 1.45rem);
  font-weight: 400;
  color: var(--cream);
  max-width: 520px;
}
.contact__storefront figcaption span {
  display: block;
  font-family: 'DM Sans', sans-serif;
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: .6rem;
}

/* ── STOREFRONT SLIDER ─────────────────────────────────────── */
.sf-slider__track {
  display: flex;
  width: 100%;
  transform: translateX(0);
  transition: transform .6s cubic-bezier(.4,0,.2,1);
  touch-action: pan-y;       /* allow vertical page scroll, capture horizontal swipe */
  cursor: grab;
  will-change: transform;
}
.sf-slider__track:active { cursor: grabbing; }
.sf-slide {
  flex: 0 0 100%;
  width: 100%;
}
/* slide images reuse the same sizing as the original storefront image
   (defined by `.contact__storefront img`), so the look is unchanged */
.sf-slide img { pointer-events: none; }

/* progress dots */
.sf-slider__dots {
  position: absolute;
  right: clamp(1rem, 3vw, 2rem);
  bottom: clamp(1.1rem, 3vw, 1.9rem);
  z-index: 3;
  display: flex;
  gap: .55rem;
}
.sf-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: background .3s, transform .3s, border-color .3s;
}
.sf-dot:hover { border-color: #fff; }
.sf-dot.active {
  background: var(--red);
  border-color: var(--red);
  transform: scale(1.15);
}

/* per-slide caption: tag (small red label) + body text (serif) */
.contact__storefront figcaption {
  transition: opacity .3s ease, transform .3s ease;
}
.contact__storefront figcaption.sf-cap--out {
  opacity: 0;
  transform: translateY(8px);
}
.contact__storefront figcaption .sf-cap-tag {
  /* inherits the existing small uppercase red label style */
}
.contact__storefront figcaption .sf-cap-text {
  display: block;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.05rem, 1.8vw, 1.45rem);
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  color: var(--cream);
  margin: 0;
}