﻿/* NIHON BIKES â€” Heritage editorial Â· B/W/Gold Â· Luxury spacing */
:root {
  --color-bg: #FAFAF8;
  --color-surface: #FFFFFF;
  --color-ink: #111111;
  --color-muted: #6B6B6B;
  --color-accent: #6366F1;
  --color-accent-soft: #A5B4FC;
  --color-line: rgba(17,17,17,0.1);
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Manrope', system-ui, sans-serif;
  --space-section: clamp(3rem, 5.5vw, 5.25rem);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden}
body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
img,video{max-width:100%;height:auto;display:block}
::selection{background:var(--color-accent);color:#fff}
.font-display{font-family:var(--font-display)}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:.75rem 1rem;background:#000;color:#fff}
.skip-link:focus{left:1rem;top:1rem}

.site-header{background:transparent}
.site-header.is-scrolled{background:rgba(250,250,248,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--color-line)}
.header-progress{position:absolute;left:0;bottom:0;height:2px;width:0;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-soft))}
.primary-nav.is-open{transform:translateX(0)}
body.nav-open{overflow:hidden}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media(min-width:1024px){.primary-nav{position:static!important;transform:none!important;inset:auto!important;display:flex!important;background:transparent!important;padding:0!important;height:auto!important}}

.btn-primary,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.6rem;font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .4s var(--ease),background .4s,color .4s,border-color .4s}
.btn-primary{background:var(--color-ink);color:#fff}
.btn-primary:hover{background:var(--color-accent);color:#111}
.btn-ghost{background:transparent;border-color:var(--color-line);color:var(--color-ink)}
.btn-ghost:hover{border-color:var(--color-accent);color:var(--color-accent)}
.input-field{width:100%;padding:.85rem 1rem;border:1px solid var(--color-line);background:#fff;font:inherit;outline:none}
.input-field:focus{border-color:var(--color-accent)}
.input-field--dark{background:#1a1a1a;border-color:rgba(255,255,255,.12);color:#fff}
textarea.input-field{min-height:140px;resize:vertical}

.section{padding:var(--space-section) 0}
.section--tight{padding:clamp(2.5rem,4.5vw,4rem) 0}
.section-label{font-size:.65rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--color-accent)}
.section-title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.85rem,3.8vw,3rem);line-height:1.15}
.panel{border:1px solid var(--color-line);background:#fff}

/* Magazine split hero */
.hero-split{min-height:100vh;min-height:100dvh;display:grid;padding-top:4.75rem}
@media(min-width:1024px){.hero-split{grid-template-columns:1fr 1fr;min-height:100vh}}
.hero-split__copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,5vw,4rem) clamp(1rem,4vw,2.5rem)}
.hero-split__media{position:relative;min-height:50vh;overflow:hidden}
@media(min-width:1024px){.hero-split__media{min-height:auto}}
.hero-split__media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.hero-title{font-family:var(--font-display);font-weight:600;font-size:clamp(2.5rem,6vw,4.75rem);line-height:1.02;letter-spacing:-.02em}
.hero-title .accent{color:var(--color-accent);font-style:italic}
.scroll-indicator{display:inline-flex;flex-direction:column;align-items:center;gap:.4rem;font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:#999;text-decoration:none}
.scroll-indicator__line{width:1px;height:36px;background:linear-gradient(to bottom,var(--color-accent),transparent)}

.page-hero{padding:8rem 1rem 2rem}
@media(min-width:640px){.page-hero{padding-left:1.5rem;padding-right:1.5rem}}
@media(min-width:1024px){.page-hero{padding-left:2.5rem;padding-right:2.5rem}}

.timeline-rail{position:relative;padding-left:1.5rem}
.timeline-rail::before{content:'';position:absolute;left:.35rem;top:.3rem;bottom:.3rem;width:1px;background:linear-gradient(to bottom,var(--color-accent),transparent)}
.award-row{display:grid;gap:1rem;border-top:1px solid var(--color-line);padding:1.25rem 0}
@media(min-width:640px){.award-row{grid-template-columns:5rem 1fr auto;align-items:baseline}}
.map-placeholder{display:flex;align-items:center;justify-content:center;min-height:260px;border:1px solid var(--color-line);background:linear-gradient(135deg,rgba(196,163,90,.08),#fff);color:var(--color-muted);letter-spacing:.15em;font-size:.85rem}
.faq-item summary{cursor:pointer;list-style:none;font-family:var(--font-display);font-size:1.15rem}
.faq-item summary::-webkit-details-marker{display:none}
.marquee{overflow:hidden;border-block:1px solid var(--color-line);padding:.85rem 0;background:#fff}
.marquee__track{display:flex;gap:3rem;width:max-content;animation:marquee 32s linear infinite;font-family:var(--font-display);font-size:1.25rem;letter-spacing:.08em;white-space:nowrap}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ========== PHASE QA: a11y Â· overflow Â· spacing Â· focus ========== */
:focus-visible {
  outline: 2px solid var(--color-accent, var(--accent, #FF1E3C));
  outline-offset: 3px;
}
a:focus:not(:focus-visible),
button:focus:not(:focus-visible) { outline: none; }
img { height: auto; max-width: 100%; }
html, body { max-width: 100%; overflow-x: hidden; }
.section { padding-block: clamp(2.25rem, 4.2vw, 3.75rem); }
.section--tight { padding-block: clamp(1.75rem, 3.2vw, 3rem); }
.page-hero { padding-top: clamp(6.5rem, 12vw, 7.5rem); padding-bottom: clamp(1.25rem, 2vw, 2rem); }
@media (max-width: 640px) {
  .hero-title { font-size: clamp(2.1rem, 11vw, 2.75rem) !important; }
  .section-title { font-size: clamp(1.45rem, 6vw, 1.85rem) !important; }
  .btn-primary, .btn-ghost { width: 100%; max-width: 100%; }
  .gallery-grid { grid-template-columns: 1fr 1fr !important; }
  .gallery-item:nth-child(1) { grid-row: span 1 !important; aspect-ratio: 4/3 !important; min-height: 0 !important; }
}
@media (min-width: 1600px) {
  .mx-auto.max-w-8xl { max-width: 88rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
