/* ============================================
   ADAMAR — design tokens
   ============================================ */
:root{
  --charcoal:      #1B1D1F;
  --charcoal-soft: #24272A;
  --brass:         #C9963D;
  --brass-bright:  #E0AC55;
  --teal:          #3F6B62;
  --off-white:     #ECE8DF;
  --off-white-dim: #B9B5AB;
  --line:          rgba(236,232,223,0.12);

  --font-display: 'Times New Roman', Times, serif;
  --font-body: 'Times New Roman', Times, serif;

  --wrap: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--charcoal);
  color:var(--off-white);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }

.wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 28px;
}

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.05;
  margin:0 0 0.5em;
  letter-spacing:-0.01em;
}
h2{ font-size:clamp(1.8rem, 3.4vw, 2.6rem); }
h3{ font-size:1.25rem; margin-bottom:0.3em; }
p{ margin:0 0 1em; color:var(--off-white-dim); max-width:60ch; }

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--brass-bright);
  outline-offset:3px;
}

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

/* ============================================
   BUTTONS
   ============================================ */
.btn{
  display:inline-block;
  padding:14px 28px;
  border-radius:2px;
  font-family:var(--font-body);
  font-weight:600;
  font-size:0.95rem;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.btn-primary{
  background:var(--brass);
  color:var(--charcoal);
}
.btn-primary:hover{ background:var(--brass-bright); }
.btn-ghost{
  background:transparent;
  border-color:var(--line);
  color:var(--off-white);
}
.btn-ghost:hover{ border-color:var(--brass); color:var(--brass-bright); }

/* ============================================
   HEADER
   ============================================ */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(27,29,31,0.9);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:72px;
}
.wordmark{
  font-family:'Times New Roman', Times, serif;
  font-weight:700;
  font-size:1.3rem;
  letter-spacing:0.04em;
  text-decoration:none;
  color:var(--off-white);
}
.wordmark.small{ font-size:1.05rem; }
.main-nav{ display:flex; gap:0; }
.main-nav a{
  position:relative;
  text-decoration:none;
  font-family:'Times New Roman', Times, serif;
  font-size:0.75rem;
  font-weight:400;
  letter-spacing:0.01em;
  text-transform:none;
  color:var(--off-white-dim);
  white-space:nowrap;
  padding:5px 11px;
  margin-right:2px;
  background:var(--charcoal-soft);
  clip-path:polygon(10% 0, 100% 0, 90% 100%, 0 100%);
  transition:background 0.2s ease, color 0.2s ease;
}
.main-nav a:hover{ background:var(--brass); color:var(--charcoal); }

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:36px; height:36px;
  background:none; border:none; cursor:pointer;
}
.nav-toggle span{
  display:block; height:2px; width:100%;
  background:var(--off-white);
}

@media (max-width: 1000px){
  .main-nav{
    position:absolute;
    top:72px; left:0; right:0;
    background:var(--charcoal-soft);
    flex-direction:column;
    gap:0;
    border-bottom:1px solid var(--line);
    max-height:0;
    overflow:hidden;
    transition:max-height 0.25s ease;
  }
  .main-nav.open{ max-height:80vh; overflow-y:auto; }
  .main-nav a{
    padding:16px 28px;
    border-top:1px solid var(--line);
  }
  .nav-toggle{ display:flex; }
}

/* ============================================
   HERO
   ============================================ */
.hero{
  position:relative;
  padding:0;
  overflow:hidden;
  min-height:92vh;
  display:flex;
  align-items:flex-end;
}
.hero-media{
  position:absolute;
  inset:0;
  z-index:0;
  background:var(--charcoal);
}
.hero-video{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 60%;
  display:block;
  opacity:1;
}
.hero-scrim{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, var(--charcoal) 0%, rgba(27,29,31,0.35) 26%, rgba(27,29,31,0.05) 55%, rgba(27,29,31,0.15) 100%),
    linear-gradient(180deg, rgba(27,29,31,0) 0%, rgba(27,29,31,0.4) 92%);
}
.hero-inner{ position:relative; z-index:1; max-width:600px; margin-left:0; margin-right:auto; padding-bottom:90px; padding-top:180px; }

/* ---- reveal-on-load animation ---- */
@keyframes reveal-fade{
  from{ opacity:0; transform:translateY(14px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes reveal-line{
  from{ transform:translateY(100%); }
  to{ transform:translateY(0); }
}
.reveal{
  opacity:0;
  animation:reveal-fade 0.7s ease-out forwards;
  animation-delay:var(--d, 0s);
}
.reveal-line{
  display:block;
  overflow:hidden;
}
.reveal-inner{
  display:block;
  transform:translateY(100%);
  animation:reveal-line 0.65s cubic-bezier(.22,.9,.32,1) forwards;
  animation-delay:var(--d, 0s);
}
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-inner{ animation:none; opacity:1; transform:none; }
}
.hero-kicker{
  font-size:0.85rem;
  font-weight:600;
  color:var(--brass-bright);
  margin-bottom:18px;
  max-width:none;
}
.hero-title{
  font-size:clamp(2.6rem, 6vw, 4.6rem);
  font-weight:600;
  letter-spacing:-0.01em;
  margin-bottom:0.4em;
}
.hero-lede{
  font-size:1.02rem;
  max-width:44ch;
  margin-bottom:2em;
}
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }

/* ============================================
   MODELS
   ============================================ */
.models{ padding:100px 0; border-top:1px solid var(--line); }
.section-head{ max-width:560px; margin-bottom:56px; }
.section-head p{ font-size:1.05rem; }

.model-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.model-card{
  display:block;
  background:var(--charcoal);
  padding:36px 28px;
  text-decoration:none;
  transition:background-color 0.2s ease;
}
.model-card:hover{ background:var(--charcoal-soft); }
.model-link{
  display:inline-block;
  margin-top:8px;
  font-size:0.85rem;
  font-weight:600;
  color:var(--brass);
  transition:color 0.15s ease, transform 0.15s ease;
}
.model-card:hover .model-link{ color:var(--brass-bright); transform:translateX(4px); }
.model-card-photo{
  width:100%;
  aspect-ratio:4/3;
  margin-bottom:20px;
  border-radius:4px;
  background:var(--charcoal-soft);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10%;
  overflow:hidden;
}
.model-card-photo img{ width:100%; height:100%; object-fit:contain; }
.model-mark{
  width:56px; height:56px;
  margin-bottom:20px;
  color:var(--brass);
}
.model-mark svg{
  width:100%; height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.model-tag{
  font-size:0.8rem;
  font-weight:600;
  color:var(--brass-bright);
  text-transform:none;
  margin-bottom:10px;
  max-width:none;
}
.model-desc{ font-size:0.95rem; margin-bottom:0; }

/* ============================================
   MODEL LIST — large alternating rows, not a card grid
   ============================================ */
.model-list{ display:flex; flex-direction:column; }
.model-row{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:64px;
  align-items:center;
  padding:70px 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  color:inherit;
}
.model-row:first-child{ padding-top:0; }
.model-row:last-child{ border-bottom:none; }
.model-row:nth-child(even) .model-row-visual{ order:2; }
.model-row:nth-child(even) .model-row-info{ order:1; }

.model-row-visual{
  aspect-ratio:4/3;
  border-radius:4px;
  overflow:hidden;
  background:var(--charcoal-soft);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.model-row-visual img{
  width:100%; height:100%; object-fit:cover;
}
.model-row-visual svg{
  width:42%; height:42%;
  fill:none; stroke:var(--brass); stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round;
  opacity:0.9;
}
.model-row-curtain{
  position:absolute; top:0; height:100%; width:50%;
  background:var(--charcoal);
  transition:transform var(--curtain-speed, 0.55s) var(--curtain-ease, cubic-bezier(.65,0,.35,1));
  z-index:2;
}
.model-row-curtain.l{ left:0; }
.model-row-curtain.r{ right:0; }
.model-row:hover .model-row-curtain.l{ transform:translateX(-100%); }
.model-row:hover .model-row-curtain.r{ transform:translateX(100%); }

.model-row-tag{
  font-size:0.85rem; font-weight:600;
  color:var(--brass-bright); margin-bottom:14px; max-width:none;
}
.model-row-info h3{
  font-family:var(--font-display);
  font-size:clamp(2.6rem, 5.2vw, 4.4rem);
  line-height:0.95;
  margin:0 0 22px;
  transition:color 0.2s ease;
}
.model-row:hover .model-row-info h3{ color:var(--brass-bright); }
.model-row-desc{ font-size:1.05rem; max-width:42ch; margin-bottom:26px; }
.model-row-link{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; font-size:0.95rem; color:var(--brass);
  transition:gap 0.2s ease, color 0.2s ease;
}
.model-row:hover .model-row-link{ color:var(--brass-bright); gap:14px; }

@media (max-width: 860px){
  .model-row{
    grid-template-columns:1fr;
    gap:32px;
    padding:48px 0;
  }
  .model-row:nth-child(even) .model-row-visual,
  .model-row:nth-child(even) .model-row-info{ order:initial; }
}

/* ============================================
   PAGE TRANSITION — wipe on load
   ============================================ */
.page-transition{
  position:fixed;
  inset:0;
  background:#000000;
  z-index:999;
  pointer-events:none;
  animation:page-wipe 2.6s 0.2s cubic-bezier(.76,0,.24,1) forwards;
}
@keyframes page-wipe{
  to{ transform:translateY(-100%); }
}
@media (prefers-reduced-motion: reduce){
  .page-transition{ display:none; }
}

/* ============================================
   PAGE MOTION — 6 entrance families, 60 total presets
   (family + pace picked in Control Panel, saved locally)
   ============================================ */
body.motion-enter{
  animation-duration:var(--motion-duration, 0.7s);
  animation-delay:var(--motion-delay, 0ms);
  animation-timing-function:cubic-bezier(.2,.8,.2,1);
  animation-fill-mode:both;
  animation-name:motion-curtain;
}
[data-motion-family="1"] body.motion-enter{ animation-name:motion-veil; }
[data-motion-family="2"] body.motion-enter{ animation-name:motion-drift; }
[data-motion-family="3"] body.motion-enter{ animation-name:motion-focus; }
[data-motion-family="4"] body.motion-enter{ animation-name:motion-still; }
[data-motion-family="5"] body.motion-enter{ animation-name:motion-frame; }

@keyframes motion-curtain{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@keyframes motion-veil{ from{ opacity:0; filter:blur(8px); } to{ opacity:1; filter:blur(0); } }
@keyframes motion-drift{ from{ opacity:0; transform:translateX(20px); } to{ opacity:1; transform:none; } }
@keyframes motion-focus{ from{ opacity:0; filter:blur(14px); transform:scale(1.015); } to{ opacity:1; filter:blur(0); transform:none; } }
@keyframes motion-still{ from{ opacity:.65; } to{ opacity:1; } }
@keyframes motion-frame{ from{ clip-path:inset(0 48% 0 48%); opacity:.3; } to{ clip-path:inset(0); opacity:1; } }

@media (prefers-reduced-motion: reduce){
  body.motion-enter{ animation:none; }
}
.about{
  padding:100px 0;
  background:var(--charcoal-soft);
}
.about-inner{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:60px;
  align-items:start;
}
.about-copy p{ font-size:1.05rem; }
.about-stat{
  border-left:2px solid var(--brass);
  padding-left:24px;
  align-self:center;
}
.stat-number{
  display:block;
  font-family:var(--font-display);
  font-weight:800;
  font-size:3.4rem;
  color:var(--brass-bright);
  line-height:1;
  margin-bottom:12px;
}
.stat-label{
  display:block;
  color:var(--off-white-dim);
  font-size:0.95rem;
  max-width:26ch;
}

@media (max-width: 780px){
  .about-inner{ grid-template-columns:1fr; }
  .about-stat{ border-left:none; border-top:2px solid var(--brass); padding-left:0; padding-top:20px; }
}

/* ============================================
   CONTACT
   ============================================ */
.contact{ padding:100px 0; border-top:1px solid var(--line); }
.contact-inner{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:60px;
}
.contact-inner h2{ margin-bottom:0.3em; }
.contact-inner > div > p{ font-size:1.05rem; }

.contact-form{
  display:grid;
  gap:18px;
}
.contact-form label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:0.9rem;
  font-weight:600;
  color:var(--off-white-dim);
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  font-family:var(--font-body);
  font-size:1rem;
  color:var(--off-white);
  background:var(--charcoal-soft);
  border:1px solid var(--line);
  border-radius:2px;
  padding:12px 14px;
  resize:vertical;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
  border-color:var(--brass);
}
.contact-form button{ justify-self:start; margin-top:6px; }
.form-note{
  font-size:0.9rem;
  color:var(--teal);
  min-height:1.4em;
  max-width:none;
}

@media (max-width: 780px){
  .contact-inner{ grid-template-columns:1fr; }
}

/* ============================================
   COLOR SWATCH PICKER — glass orb style
   ============================================ */
.model-colors{ padding:80px 0; border-top:1px solid var(--line); }
.color-display{
  max-width:760px; margin:0 auto 32px;
  border:1px solid var(--line); border-radius:4px; overflow:hidden;
  background:var(--charcoal);
  padding:24px;
  display:flex; align-items:center; justify-content:center;
}
.color-display img{ max-width:100%; max-height:60vh; width:auto; height:auto; object-fit:contain; display:block; margin:0 auto; }

.color-swatches{ display:flex; gap:14px; justify-content:center; align-items:center; flex-wrap:wrap; }
.color-swatch{
  width:var(--swatch-size, 20px); height:var(--swatch-size, 20px);
  border-radius:50%;
  background:var(--sw);
  border:1px solid rgba(255,255,255,0.25);
  cursor:pointer;
  position:relative;
  overflow:hidden;
  padding:0;
  box-shadow:
    inset 0 2px 4px rgba(255,255,255,0.3),
    inset 0 -3px 6px rgba(0,0,0,0.4),
    0 4px 10px rgba(0,0,0,0.3);
  transition:transform 0.25s cubic-bezier(.34,1.56,.64,1), box-shadow 0.25s ease;
}
.color-swatch::before{
  content:'';
  position:absolute; top:15%; left:20%; width:35%; height:25%;
  background:rgba(255,255,255,0.55);
  border-radius:50%;
  filter:blur(2px);
  pointer-events:none;
}
.color-swatch:hover{ transform:scale(1.15) translateY(-2px); }
.color-swatch.is-active{
  transform:scale(1.22) translateY(-4px);
  box-shadow:
    inset 0 2px 4px rgba(255,255,255,0.3),
    inset 0 -3px 6px rgba(0,0,0,0.4),
    0 0 0 3px var(--charcoal),
    0 0 20px var(--sw),
    0 8px 16px rgba(0,0,0,0.4);
}
.color-label{ text-align:center; margin-top:18px; font-size:0.9rem; color:var(--off-white-dim); }

/* ---- Optional shape variants — add one of these classes to a .color-swatch button ---- */
.color-swatch.shape-square{ border-radius:8px; }
.color-swatch.shape-hex{ border-radius:0; clip-path:polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); border:none; }
.color-swatch.shape-diamond{ border-radius:2px; transform:rotate(45deg); }
.color-swatch.shape-diamond:hover{ transform:rotate(45deg) scale(1.15); }
.color-swatch.shape-diamond.is-active{ transform:rotate(45deg) scale(1.22); }

/* ---- Optional finish variants — add one of these classes to a .color-swatch button ---- */
.color-swatch.finish-matte{
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06), 0 3px 8px rgba(0,0,0,0.35);
  filter:saturate(0.82) brightness(0.94);
}
.color-swatch.finish-matte::before{ display:none; }
.color-swatch.finish-matte.is-active{
  box-shadow:
    0 0 0 3px var(--charcoal),
    0 0 0 5px var(--sw),
    0 4px 10px rgba(0,0,0,0.3);
}

/* ============================================
   MODEL DETAIL PAGES
   ============================================ */
.breadcrumb{
  padding:28px 0 0;
  font-size:0.85rem;
}
.breadcrumb a{ color:var(--off-white-dim); text-decoration:none; }
.breadcrumb a:hover{ color:var(--brass-bright); }
.breadcrumb span{ color:var(--off-white-dim); margin:0 6px; }

.model-hero{
  padding:60px 0 80px;
  border-bottom:1px solid var(--line);
}
.model-hero-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}
.model-hero-copy .model-tag-lg{
  display:inline-block;
  font-size:0.85rem;
  font-weight:600;
  color:var(--brass-bright);
  margin-bottom:14px;
}
.model-hero-copy h1{
  font-size:clamp(2.6rem, 5.5vw, 4rem);
  margin-bottom:0.3em;
}
.model-hero-copy .model-lede{
  font-size:1.1rem;
  max-width:46ch;
}
.model-hero-visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:4/3;
  background:none;
  border:none;
  border-radius:0;
}
.model-hero-visual::before{
  content:'';
  position:absolute;
  width:78%;
  height:52%;
  background:radial-gradient(ellipse, rgba(201,150,61,0.16), transparent 70%);
  filter:blur(20px);
  z-index:0;
}
.model-hero-visual img,
.model-hero-visual video{
  position:relative;
  z-index:1;
  filter:drop-shadow(0 30px 30px rgba(0,0,0,0.55));
  animation:model-reveal-wipe 1.6s 2.9s cubic-bezier(.76,0,.24,1) both,
            model-float 6s ease-in-out 4.5s infinite;
}
@keyframes model-reveal-wipe{
  from{ clip-path:inset(0 100% 0 0); }
  to{ clip-path:inset(0 0 0 0); }
}
@keyframes model-float{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-10px); }
}
@media (prefers-reduced-motion: reduce){
  .model-hero-visual img, .model-hero-visual video{ animation:none; }
}
.model-hero-visual svg{
  width:58%;
  height:58%;
  fill:none;
  stroke:var(--brass);
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.model-hero-visual .visual-ring{
  position:absolute;
  inset:8%;
  border:1px solid var(--line);
  border-radius:50%;
}

@media (max-width: 780px){
  .model-hero-inner{ grid-template-columns:1fr; }
  .model-hero-visual{ order:-1; max-width:340px; margin:0 auto; }
}

.spec-strip{
  padding:64px 0;
  border-bottom:1px solid var(--line);
  background:var(--charcoal-soft);
}
.spec-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.spec-item{
  background:var(--charcoal);
  padding:28px 20px;
  text-align:center;
}
.spec-value{
  display:block;
  font-family:var(--font-display);
  font-weight:800;
  font-size:2.1rem;
  color:var(--brass-bright);
  line-height:1;
  margin-bottom:8px;
}
.spec-unit{ font-size:1.1rem; font-weight:600; }
.spec-label{
  display:block;
  font-size:0.8rem;
  color:var(--off-white-dim);
  max-width:none;
}

.model-story{ padding:80px 0; }
.model-story-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
}
.model-story-inner p{ font-size:1.05rem; }
@media (max-width: 780px){ .model-story-inner{ grid-template-columns:1fr; } }

.model-gallery{ padding:0 0 80px; }
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
}
.gallery-grid .gallery-tile:nth-child(1){ animation-delay:0s; }
.gallery-grid .gallery-tile:nth-child(2){ animation-delay:.08s; }
.gallery-grid .gallery-tile:nth-child(3){ animation-delay:.16s; }
.gallery-grid .gallery-tile:nth-child(4){ animation-delay:.24s; }
.gallery-grid .gallery-tile:nth-child(5){ animation-delay:.32s; }
.gallery-grid .gallery-tile:nth-child(6){ animation-delay:.4s; }
.gallery-grid .gallery-tile:nth-child(7){ animation-delay:.48s; }
.gallery-grid .gallery-tile:nth-child(8){ animation-delay:.56s; }
.gallery-tile{
  aspect-ratio:4/3;
  border-radius:4px;
  border:1px solid var(--line);
  background:var(--charcoal);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  position:relative;
  padding:14%;
}
.gallery-tile img, .gallery-tile video{ width:100%; height:100%; object-fit:contain; }
.gallery-tile svg{
  width:38%; height:38%;
  fill:none; stroke:var(--brass); stroke-width:2.5;
  stroke-linecap:round; stroke-linejoin:round;
  opacity:0.85;
}
.gallery-tile.is-empty{
  border-style:dashed;
  opacity:0.5;
}
@media (max-width: 900px){
  .gallery-grid{ grid-template-columns:repeat(3, 1fr); }
}
@media (max-width: 640px){
  .gallery-grid{ grid-template-columns:repeat(2, 1fr); }
}

.model-cta{
  padding:70px 0;
  border-top:1px solid var(--line);
  text-align:center;
}
.model-cta h2{ margin-bottom:0.4em; }
.model-cta .btn{ margin:6px; }

.model-switcher{
  padding:50px 0 90px;
}
.model-switcher h3{
  font-size:0.9rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--off-white-dim);
  margin-bottom:20px;
}
.switcher-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.switcher-row a{
  padding:10px 18px;
  border:1px solid var(--line);
  border-radius:2px;
  text-decoration:none;
  font-size:0.9rem;
  color:var(--off-white-dim);
  transition:border-color 0.2s ease, color 0.2s ease;
}
.switcher-row a:hover, .switcher-row a.is-current{
  border-color:var(--brass);
  color:var(--brass-bright);
}

/* ============================================
   FOOTER
   ============================================ */
.site-footer{
  padding:36px 0;
  border-top:1px solid var(--line);
}
.footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
}
.footer-inner p{
  margin:0;
  font-size:0.85rem;
  color:var(--off-white-dim);
  max-width:none;
}

/* ===== CONTACT (stunning version) ===== */
.ct{ position:relative; overflow:hidden; padding:110px 0; border-top:1px solid var(--line); }
.ct-bg{ position:absolute; inset:0; background:linear-gradient(90deg,rgba(27,29,31,.55),rgba(27,29,31,.93) 62%,var(--charcoal)),url(assets/hero-poster.jpg) left center/cover; animation:ctzoom 18s ease-in-out infinite alternate; }
@keyframes ctzoom{ to{ transform:scale(1.07); } }
.ct-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr 1fr; gap:60px; align-items:center; }
.ct-eyebrow{ letter-spacing:.3em; font-size:12px; text-transform:uppercase; color:var(--brass-bright); display:flex; align-items:center; gap:14px; }
.ct-eyebrow::before{ content:""; width:44px; height:1px; background:var(--brass); flex-shrink:0; }
.ct h2{ font-size:clamp(40px,5.5vw,76px); line-height:1.03; margin:22px 0; font-weight:400; }
.ct h2 em{ color:var(--brass-bright); font-style:italic; }
.ct-left p{ color:var(--off-white-dim); font-size:1.15rem; max-width:440px; }
.ct-facts{ display:flex; gap:34px; margin-top:36px; }
.ct-facts b{ display:block; font-size:30px; color:var(--brass-bright); font-weight:400; }
.ct-facts span{ font-size:12px; letter-spacing:.15em; text-transform:uppercase; color:var(--off-white-dim); }
.ct-card{ background:rgba(36,39,42,.62); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); border:1px solid rgba(201,150,61,.35); border-radius:18px; padding:40px; box-shadow:0 30px 80px rgba(0,0,0,.5); max-width:520px; width:100%; justify-self:end; }
.ct-card h3{ margin:0 0 6px; font-weight:400; font-size:1.75rem; }
.ct-card small{ color:var(--off-white-dim); }
.ct-f{ position:relative; margin-top:24px; }
.ct-f input,.ct-f select,.ct-f textarea{ width:100%; background:transparent; border:0; border-bottom:1px solid rgba(236,232,223,.25); color:var(--off-white); font:inherit; font-size:17px; padding:14px 0 8px; outline:0; border-radius:0; transition:.3s; }
.ct-f select option{ background:#24272A; }
.ct-f label{ position:absolute; left:0; top:14px; color:var(--off-white-dim); pointer-events:none; transition:.25s; }
.ct-f input:focus,.ct-f textarea:focus,.ct-f select:focus{ border-color:var(--brass-bright); box-shadow:0 8px 14px -12px var(--brass-bright); }
.ct-f input:focus + label,.ct-f input:not(:placeholder-shown) + label,
.ct-f textarea:focus + label,.ct-f textarea:not(:placeholder-shown) + label,
.ct-f select + label{ top:-8px; font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--brass-bright); }
.ct-lbl{ font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--brass-bright); margin-top:26px; }
.ct-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.ct-chips span{ border:1px solid rgba(236,232,223,.25); padding:7px 14px; border-radius:99px; font-size:14px; cursor:pointer; transition:.25s; user-select:none; }
.ct-chips span:hover,.ct-chips span.on{ background:var(--brass); border-color:var(--brass); color:#1B1D1F; }
.ct-btn{ margin-top:32px; width:100%; padding:18px; border:0; border-radius:99px; background:linear-gradient(120deg,var(--brass),var(--brass-bright)); color:#1B1D1F; font:inherit; font-size:17px; letter-spacing:.08em; cursor:pointer; transition:.3s; box-shadow:0 10px 30px rgba(201,150,61,.35); }
.ct-btn:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(201,150,61,.5); }
.ct .form-note{ text-align:center; margin:14px 0 0; font-size:13px; color:var(--off-white-dim); }
@media(max-width:860px){ .ct-grid{ grid-template-columns:1fr; gap:36px; } .ct-card{ padding:28px; justify-self:stretch; } }
@media (prefers-reduced-motion:reduce){ .ct-bg{ animation:none; } }

/* ===== Page-transition curtain (used when opening a bike page) ===== */
.page-curtain{ position:fixed; inset:0; z-index:9999; background:linear-gradient(120deg,var(--brass),var(--brass-bright)); pointer-events:none; }
.page-curtain.in{ transform:translateY(100%); animation:pcIn 1.5s cubic-bezier(.65,0,.35,1) forwards; }
.page-curtain.out{ transform:translateY(0); animation:pcOut 1.8s .15s cubic-bezier(.65,0,.35,1) forwards; }
@keyframes pcIn{ to{ transform:translateY(0); } }
@keyframes pcOut{ to{ transform:translateY(-100%); } }
@media (prefers-reduced-motion:reduce){ .page-curtain{ display:none; } }

.main-nav a.nav-login{ margin-left:14px; border:1px solid var(--brass); color:var(--brass-bright); }
.main-nav a.nav-login:hover{ background:var(--brass); color:var(--charcoal); }

/* ===== Calm, spaced header navigation ===== */
.main-nav{ align-items:center; gap:clamp(16px,2.2vw,32px); }
.main-nav a{ background:none; clip-path:none; padding:8px 0; margin:0; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--off-white-dim); }
.main-nav a:after{ content:""; position:absolute; left:0; right:0; bottom:2px; height:1px; background:var(--brass-bright); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.main-nav a:hover{ background:none; color:var(--off-white); }
.main-nav a:hover:after, .main-nav a.active:after{ transform:scaleX(1); }
.main-nav a.active{ color:var(--off-white); }
.main-nav a.nav-login{ margin-left:8px; padding:9px 20px; border:1px solid var(--brass); border-radius:99px; color:var(--brass-bright); }
.main-nav a.nav-login:after{ display:none; }
.main-nav a.nav-login:hover{ background:var(--brass); color:var(--charcoal); }
.wordmark{ letter-spacing:.3em; font-weight:400; font-size:1.1rem; }
@media (max-width: 1000px){
  .main-nav a{ padding:16px 28px; }
  .main-nav a:after{ display:none; }
  .main-nav a.nav-login{ margin:12px 28px 16px; text-align:center; }
}
