
/* ── RESET ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg:    #f0f0f0;
  --bg2:   #e6e6e6;
  --bg3:   #d8d8d8;
  --ink:   #181818;
  --mid:   #555;
  --dim:   #999;
  --rule:  #c8c8c8;
  --white: #fafafa;
  --f-display: "Cormorant Garamond", serif;
  --f-serif:   "Shippori Mincho", serif;
  --f-ui:      "DM Sans", sans-serif;
  --f-body:    "Noto Sans JP", sans-serif;
  --lh-tight:  1.1;
  --lh-snug:   1.55;
  --lh-read:   1.85;
  --lh-loose:  2.15;
}
html,body{background:var(--bg);color:var(--ink);font-family:var(--f-body);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
body{padding-top:64px;}
a{color:inherit;}
img{display:block;}

/* ── NAV ── */
#gnav{
  position:fixed;top:0;left:0;right:0;z-index:300;
  height:64px;background:rgba(240,240,240,.94);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--rule);
}
.gnav-in{
  max-width:1200px;margin:0 auto;height:100%;
  display:flex;align-items:center;justify-content:space-between;padding:0 4vw;
}
.gnav-logo img{height:34px;filter:brightness(0);}
.gnav-links{list-style:none;display:flex;align-items:center;gap:2.4em;}
.gnav-links a{
  font-family:var(--f-ui);font-weight:400;font-size:.72rem;
  letter-spacing:.1em;color:var(--dim);text-decoration:none;
  transition:color .2s;
}
.gnav-links a:hover,.gnav-links a.active{color:var(--ink);}
.gnav-cta{
  color:var(--white)!important;background:var(--ink);
  padding:.5em 1.4em;transition:background .2s!important;
}
.gnav-cta:hover{background:#333!important;}
.gnav-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;}
.gnav-burger span{display:block;width:22px;height:1.5px;background:var(--ink);}

/* ── FOOTER ── */
#gfoot{background:var(--ink);color:var(--bg);padding:4em 4vw 2.5em;}
.gfoot-in{max-width:1200px;margin:0 auto;}
.gfoot-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:2em;margin-bottom:2.5em;}
.gfoot-logo{height:38px;filter:brightness(0) invert(1);}
.gfoot-nav{display:flex;gap:2em;flex-wrap:wrap;}
.gfoot-nav a{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.1em;color:rgba(240,240,240,.4);text-decoration:none;transition:color .2s;}
.gfoot-nav a:hover{color:var(--bg);}
.gfoot-rule{height:1px;background:rgba(255,255,255,.08);margin-bottom:2.5em;}
.gfoot-bottom{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1.5em;}
.gfoot-firm{font-family:var(--f-serif);font-weight:700;font-size:.9rem;color:var(--bg);margin-bottom:.4em;}
.gfoot-info p{font-family:var(--f-body);font-size:.72rem;color:rgba(240,240,240,.35);line-height:1.9;}
.gfoot-copy{font-family:var(--f-ui);font-size:.65rem;letter-spacing:.12em;color:rgba(240,240,240,.2);}

/* ── SHARED UTILITIES ── */
.sec-inner{max-width:1100px;margin:0 auto;padding:0 4vw;}
.eyebrow{
  font-family:var(--f-ui);font-weight:300;font-size:.65rem;
  letter-spacing:.4em;color:var(--dim);text-transform:uppercase;
  display:flex;align-items:center;gap:1em;margin-bottom:1.2em;
}
.eyebrow::before{content:"";width:2em;height:1px;background:var(--dim);flex-shrink:0;}
.sec-en{
  font-family:var(--f-ui);font-weight:300;font-size:.62rem;
  letter-spacing:.42em;color:var(--dim);text-transform:uppercase;margin-bottom:.5em;
}
.sec-ja{
  font-family:var(--f-serif);font-weight:700;
  font-size:clamp(1.8rem,3vw,2.6rem);color:var(--ink);line-height:var(--lh-snug);
}
.rule-sm{width:36px;height:1px;background:var(--ink);margin:2em 0;}
.btn-ink{
  font-family:var(--f-ui);font-weight:400;font-size:.76rem;letter-spacing:.14em;
  color:var(--white);background:var(--ink);border:none;
  padding:.88em 2.2em;text-decoration:none;display:inline-block;
  transition:background .2s;
}
.btn-ink:hover{background:#333;}
.btn-ghost{
  font-family:var(--f-ui);font-weight:300;font-size:.72rem;letter-spacing:.1em;
  color:var(--dim);text-decoration:none;
  border-bottom:1px solid var(--rule);padding-bottom:2px;
  transition:color .2s,border-color .2s;
}
.btn-ghost:hover{color:var(--ink);border-color:var(--ink);}
.page-hero{
  background:var(--bg2);border-bottom:1px solid var(--rule);
  padding:5em 4vw 4.5em;
}
.ph-wrap{max-width:1100px;margin:0 auto;}
.ph-eyebrow{font-family:var(--f-ui);font-weight:300;font-size:.62rem;letter-spacing:.42em;color:var(--dim);text-transform:uppercase;margin-bottom:.8em;}
.ph-title{font-family:var(--f-serif);font-weight:800;font-size:clamp(2.4rem,5vw,4rem);color:var(--ink);line-height:var(--lh-tight);letter-spacing:-.01em;}
.ph-sub{font-family:var(--f-body);font-weight:300;font-size:clamp(.82rem,1.1vw,.95rem);color:var(--mid);margin-top:1.2em;line-height:var(--lh-loose);max-width:58ch;}


/* ── CIRCUIT PAGE HERO BG ── */
.page-hero { position: relative; overflow: hidden; }
.circuit-hero-bg {
  position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
}
.circuit-hero-bg svg { width: 100%; height: 100%; opacity: .45; }
.page-hero .ph-wrap { position: relative; z-index: 2; }

/* racing stripe accent on page hero */
.page-hero::after {
  content: "";
  position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,30,30,.35) 40%, rgba(180,30,30,.35) 60%, transparent 100%);
  z-index: 3;
}

/* ── SCROLL REVEAL ── */
.rv{opacity:0;transform:translateY(20px);transition:opacity .75s ease,transform .75s ease;}
.rv.on{opacity:1;transform:none;}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.18s}
.rv-d3{transition-delay:.28s}.rv-d4{transition-delay:.4s}.rv-d5{transition-delay:.54s}

/* ── RESPONSIVE ── */
@media(max-width:768px){
  .gnav-burger{display:flex;}
  .gnav-links{
    display:none;flex-direction:column;gap:0;
    position:absolute;top:64px;left:0;right:0;
    background:rgba(240,240,240,.97);border-bottom:1px solid var(--rule);padding:.6em 0;
  }
  .gnav-links.open{display:flex;}
  .gnav-links a{display:block;padding:.85em 4vw;}
  .gnav-cta{margin:.5em 4vw;display:inline-block!important;}
  .gfoot-top,.gfoot-bottom{flex-direction:column;}
}

.page-hero{background:var(--bg2);border-bottom:1px solid var(--rule);padding:5em 4vw 4.5em;position:relative;}
.ph-wrap{max-width:1100px;margin:0 auto;}
.ph-eyebrow{font-family:var(--f-ui);font-weight:300;font-size:.62rem;letter-spacing:.42em;color:rgba(192,54,42,.7);text-transform:uppercase;margin-bottom:.8em;}
.ph-title{font-family:var(--f-serif);font-weight:800;font-size:clamp(2.4rem,5vw,4rem);color:var(--ink);line-height:1.1;word-break:keep-all;}
.ph-sub{font-family:var(--f-body);font-weight:300;font-size:clamp(.82rem,1.1vw,.95rem);color:var(--mid);margin-top:1.2em;line-height:2.15;max-width:58ch;}
.page-hero::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(180,30,30,.35) 40%,rgba(180,30,30,.35) 60%,transparent 100%);}
