
/* NICHU AUTO V5 — serif editorial typography, trilingual UI and cinematic intro */
:root{
  --display-serif:"Noto Serif SC","Noto Serif JP","Noto Serif","Songti SC","STSong","Yu Mincho","Hiragino Mincho ProN",Georgia,serif;
  --body-sans:"Noto Sans SC","Noto Sans JP",Manrope,"Hiragino Kaku Gothic ProN","Microsoft YaHei",sans-serif;
  --v5-ease:cubic-bezier(.16,1,.3,1);
}
html[lang="zh-CN"]{--display-serif:"Noto Serif SC","Songti SC","STSong","Noto Serif JP",serif}
html[lang="ja"]{--display-serif:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN","Noto Serif SC",serif}
html[lang="en"]{--display-serif:"Noto Serif",Georgia,"Times New Roman",serif}
body{font-family:var(--body-sans);letter-spacing:.018em}
.section-head h2,.brand-intro h2,.promise-copy h2,.business-title h3,.showroom-copy h2,.contact-grid h2,.modal-content h2,.contact-drawer h2,.inner-hero h1,.content-grid h2,.service-info-card h3,.vehicle-title,.hero-aside-row b,.process-card h3,.mobile-menu a{font-family:var(--display-serif)!important;font-weight:600!important}
.hero h1,.hero h1 em,.hero-giant{font-family:var(--display-serif)!important}
html[lang="zh-CN"] .section-head h2,html[lang="zh-CN"] .brand-intro h2,html[lang="zh-CN"] .promise-copy h2,html[lang="zh-CN"] .business-title h3,html[lang="zh-CN"] .showroom-copy h2,html[lang="zh-CN"] .contact-grid h2,html[lang="zh-CN"] .inner-hero h1,html[lang="zh-CN"] .content-grid h2,html[lang="zh-CN"] .service-info-card h3{letter-spacing:.045em!important;line-height:1.22!important}
html[lang="ja"] .section-head h2,html[lang="ja"] .brand-intro h2,html[lang="ja"] .promise-copy h2,html[lang="ja"] .business-title h3,html[lang="ja"] .showroom-copy h2,html[lang="ja"] .contact-grid h2,html[lang="ja"] .inner-hero h1,html[lang="ja"] .content-grid h2,html[lang="ja"] .service-info-card h3{letter-spacing:.055em!important;line-height:1.24!important}
html[lang="en"] .section-head h2,html[lang="en"] .brand-intro h2,html[lang="en"] .promise-copy h2,html[lang="en"] .business-title h3,html[lang="en"] .showroom-copy h2,html[lang="en"] .contact-grid h2,html[lang="en"] .inner-hero h1,html[lang="en"] .content-grid h2,html[lang="en"] .service-info-card h3{letter-spacing:-.015em!important;line-height:1.04!important}
.section-head h2{font-size:clamp(48px,5.25vw,82px)}
.brand-intro h2{font-size:clamp(45px,5.25vw,82px)}
.hero h1{font-weight:600!important;letter-spacing:-.035em!important;line-height:.91!important}
.hero h1 em{font-style:italic!important;font-weight:500!important}
.hero-sub,.section-head p,.brand-intro-bottom p,.business-content p,.content-grid p{letter-spacing:.035em;line-height:2.05}
.nav-links a{letter-spacing:.08em;font-weight:500}.btn,.nav-pill{letter-spacing:.075em}.vehicle-title{letter-spacing:.025em!important;line-height:1.28!important}.business-title h3{letter-spacing:.035em!important}

/* explicit three-language selector */
.language-switcher{position:relative;display:inline-flex}.language-switcher>.lang-toggle{min-width:88px;padding-right:34px;position:relative}.language-switcher>.lang-toggle::after{content:"⌄";position:absolute;right:15px;top:50%;transform:translateY(-56%);font-size:11px;color:rgba(255,255,255,.58)}
.lang-menu{position:absolute;right:0;top:calc(100% + 12px);width:168px;padding:7px;background:rgba(8,9,11,.96);border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 60px rgba(0,0,0,.34);backdrop-filter:blur(20px);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.25s var(--v5-ease)}
.language-switcher.open .lang-menu{opacity:1;visibility:visible;transform:none}.lang-menu button{width:100%;border:0;background:transparent;color:rgba(255,255,255,.62);padding:11px 12px;text-align:left;font-size:10px;letter-spacing:.12em;display:flex;justify-content:space-between}.lang-menu button:hover,.lang-menu button.active{background:rgba(255,255,255,.07);color:#fff}.lang-menu button.active::after{content:"●";color:#d42a35;font-size:7px;align-self:center}
footer .language-switcher{margin-top:5px}.mobile-menu .language-switcher{margin-top:25px}.mobile-menu .language-switcher>.lang-toggle{width:100%}

/* cinematic 2026 opening — image, orbital trace and staggered shutters */
body.intro-pending{overflow:hidden;background:#030406}.intro-v5::before{display:none!important}.intro-v5{position:fixed;z-index:10000;inset:0;background:#030406;color:#fff;overflow:hidden;isolation:isolate;display:block}
.intro-scene{position:absolute;inset:0;opacity:0;transform:scale(1.16);filter:saturate(.75) contrast(1.08)}.intro-scene img{height:100%;object-fit:cover;object-position:center 54%}.intro-scene-shade{position:absolute;inset:0;background:radial-gradient(circle at 53% 45%,rgba(0,0,0,.12),rgba(2,3,5,.89) 72%),linear-gradient(90deg,rgba(3,4,6,.9),rgba(3,4,6,.35),rgba(3,4,6,.8))}
.intro-noise{position:absolute;z-index:2;inset:-50%;opacity:.075;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");animation:introNoise .28s steps(2) infinite}
.intro-grid{position:absolute;z-index:2;inset:0;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:10vw 10vw;mask-image:radial-gradient(circle at center,#000,transparent 76%);opacity:0}
.intro-scan{position:absolute;z-index:3;left:-15%;right:-15%;top:50%;height:1px;background:linear-gradient(90deg,transparent,#a8141e 25%,#fff 50%,#a8141e 75%,transparent);box-shadow:0 0 34px rgba(211,37,48,.7);opacity:0;transform:translateY(-50%)}
.intro-stage{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-48%);display:flex;flex-direction:column;align-items:center;text-align:center;width:min(760px,84vw)}
.intro-orbit{position:relative;width:230px;height:230px;display:grid;place-items:center;opacity:0;transform:scale(.72)}.intro-orbit .orbit{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.16)}.orbit-a{inset:0;border-top-color:#d62a35!important;border-right-color:rgba(214,42,53,.65)!important}.orbit-b{inset:22px;border-left-color:rgba(255,255,255,.48)!important;transform:rotate(35deg)}.orbit-c{inset:44px;border-bottom-color:#d62a35!important;transform:rotate(-25deg)}.intro-mark{width:104px;height:104px;object-fit:contain;filter:drop-shadow(0 18px 42px rgba(0,0,0,.6));opacity:0;transform:scale(.86)}
.intro-kicker{margin-top:24px;font-size:8px;letter-spacing:.42em;color:rgba(255,255,255,.48);opacity:0;transform:translateY(10px)}
.intro-name{margin-top:18px;display:flex;align-items:baseline;gap:17px;font-family:Manrope,var(--body-sans);font-size:clamp(34px,4.1vw,58px);line-height:1;letter-spacing:.25em;opacity:0;transform:translateY(20px);clip-path:inset(0 100% 0 0)}.intro-name b,.intro-name em{font-style:normal;font-weight:700}.intro-name em{color:#dc303b}
.intro-tagline{margin-top:20px;display:flex;align-items:center;gap:15px;font-size:8px;letter-spacing:.27em;color:rgba(255,255,255,.5);opacity:0}.intro-tagline i{width:42px;height:1px;background:#d22a35}
.intro-coordinates{position:absolute;z-index:8;left:30px;top:28px;display:flex;flex-direction:column;font-size:7px;letter-spacing:.22em;color:rgba(255,255,255,.33);opacity:0}.intro-coordinates span{color:#d22a35;margin-bottom:7px}.intro-edition{position:absolute;z-index:8;right:30px;bottom:27px;font-size:7px;letter-spacing:.23em;color:rgba(255,255,255,.33);opacity:0}
.intro-progress{position:absolute;z-index:8;left:30px;right:30px;bottom:27px;display:grid;grid-template-columns:auto minmax(80px,360px) auto;justify-content:center;align-items:center;gap:13px;font-size:8px;letter-spacing:.13em;color:rgba(255,255,255,.42)}.intro-progress>i{height:1px;background:rgba(255,255,255,.14);position:relative;overflow:hidden}.intro-progress>i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#9b1019,#fff,#d52a35);transform:scaleX(0);transform-origin:left}
.intro-skip{position:absolute;z-index:9;right:29px;top:24px;border:0;background:transparent;color:rgba(255,255,255,.38);font-size:7px;letter-spacing:.2em;padding:10px;transition:.2s}.intro-skip:hover{color:#fff}
.intro-panels{position:absolute;z-index:10;inset:0;display:grid;grid-template-columns:repeat(5,1fr);pointer-events:none}.intro-panels i{background:#050608;border-right:1px solid rgba(255,255,255,.025);transform:scaleY(1);transform-origin:top}.intro-panels i:nth-child(even){transform-origin:bottom}
.intro-v5.is-running .intro-panels i{animation:introPanelReveal 1.05s forwards}.intro-v5.is-running .intro-panels i:nth-child(1){animation-delay:.08s}.intro-v5.is-running .intro-panels i:nth-child(2){animation-delay:.16s}.intro-v5.is-running .intro-panels i:nth-child(3){animation-delay:.24s}.intro-v5.is-running .intro-panels i:nth-child(4){animation-delay:.32s}.intro-v5.is-running .intro-panels i:nth-child(5){animation-delay:.4s}
.intro-v5.is-running .intro-scene{animation:introScene 3.6s .15s var(--v5-ease) forwards}.intro-v5.is-running .intro-grid{animation:introFade .8s .7s forwards}.intro-v5.is-running .intro-scan{animation:introScan 1.15s .82s var(--v5-ease) forwards}.intro-v5.is-running .intro-orbit{animation:introOrbitIn .95s .95s var(--v5-ease) forwards}.intro-v5.is-running .orbit-a{animation:orbitSpin 6s 1s linear infinite}.intro-v5.is-running .orbit-b{animation:orbitSpinReverse 8s 1s linear infinite}.intro-v5.is-running .orbit-c{animation:orbitSpin 10s 1s linear infinite}.intro-v5.is-running .intro-mark{animation:introMarkIn .75s 1.18s var(--v5-ease) forwards}.intro-v5.is-running .intro-kicker{animation:introTextUp .65s 1.52s forwards}.intro-v5.is-running .intro-name{animation:introWordReveal .9s 1.72s var(--v5-ease) forwards}.intro-v5.is-running .intro-tagline{animation:introFade .75s 2.15s forwards}.intro-v5.is-running .intro-coordinates,.intro-v5.is-running .intro-edition{animation:introFade .7s 1.25s forwards}.intro-v5.is-running .intro-progress>i::after{animation:introLoad 3.35s .22s cubic-bezier(.2,.7,.2,1) forwards}
.intro-v5.is-leaving .intro-stage,.intro-v5.is-leaving .intro-progress,.intro-v5.is-leaving .intro-coordinates,.intro-v5.is-leaving .intro-edition,.intro-v5.is-leaving .intro-skip{animation:introStageOut .45s ease forwards}.intro-v5.is-leaving{animation:introExit .2s 1.05s forwards;pointer-events:none}.intro-v5.is-leaving .intro-scene{filter:saturate(1) contrast(1);transform:scale(1.02);transition:1.15s var(--v5-ease)}.intro-v5.is-leaving .intro-panels i{transform:scaleY(0);animation:introPanelExit .95s var(--v5-ease) forwards}.intro-v5.is-leaving .intro-panels i:nth-child(1){animation-delay:.08s}.intro-v5.is-leaving .intro-panels i:nth-child(2){animation-delay:.02s}.intro-v5.is-leaving .intro-panels i:nth-child(3){animation-delay:.12s}.intro-v5.is-leaving .intro-panels i:nth-child(4){animation-delay:.05s}.intro-v5.is-leaving .intro-panels i:nth-child(5){animation-delay:.14s}
@keyframes introPanelReveal{to{transform:scaleY(0)}}@keyframes introPanelExit{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes introScene{0%{opacity:0;transform:scale(1.16)}35%{opacity:.34}100%{opacity:.52;transform:scale(1.04)}}@keyframes introFade{to{opacity:1}}@keyframes introScan{0%{opacity:0;transform:translateY(-50%) scaleX(.1)}35%{opacity:1}100%{opacity:0;transform:translateY(-50%) scaleX(1)}}@keyframes introOrbitIn{to{opacity:1;transform:scale(1)}}@keyframes introMarkIn{to{opacity:1;transform:scale(1)}}@keyframes introTextUp{to{opacity:1;transform:none}}@keyframes introWordReveal{to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes orbitSpinReverse{to{transform:rotate(-325deg)}}@keyframes introLoad{to{transform:scaleX(1)}}@keyframes introStageOut{to{opacity:0;transform:translateY(-14px)}}@keyframes introExit{to{opacity:0}}@keyframes introNoise{0%{transform:translate(0,0)}25%{transform:translate(1%,-1%)}50%{transform:translate(-1%,1%)}75%{transform:translate(1%,1%)}100%{transform:translate(-1%,-1%)}}

@media(max-width:760px){
  .section-head h2{font-size:44px}.brand-intro h2{font-size:39px}.hero h1{font-size:clamp(55px,16vw,72px)!important;line-height:.98!important}.intro-orbit{width:190px;height:190px}.intro-mark{width:86px;height:86px}.intro-name{font-size:31px;letter-spacing:.16em;gap:10px}.intro-tagline{font-size:6px;gap:9px;letter-spacing:.16em}.intro-tagline i{width:24px}.intro-coordinates{left:17px;top:17px}.intro-edition{right:17px;bottom:17px}.intro-progress{left:17px;right:17px;bottom:17px;grid-template-columns:auto minmax(50px,1fr) auto}.intro-skip{right:12px;top:10px}.lang-menu{right:-5px;width:154px}
}
@media(prefers-reduced-motion:reduce){.intro-v5{display:none!important}body.intro-pending{overflow:auto}}

/* NICHU AUTO V5.1 — precision alignment pass */
/* Floating quick-contact rail: one grid, one baseline, equal-height controls. */
.floating{
  display:grid;
  grid-template-columns:118px 72px 132px 82px;
  gap:0;
  align-items:stretch;
  padding:6px;
  min-height:54px;
  border-color:rgba(255,255,255,.16);
}
.floating>span,
.floating>a,
.floating>button{
  min-width:0;
  height:42px;
  margin:0;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  white-space:nowrap;
  text-align:center;
  box-sizing:border-box;
}
.floating>span{
  color:rgba(255,255,255,.5);
  border-right:1px solid rgba(255,255,255,.13);
  font-size:7px;
  letter-spacing:.16em;
}
.floating>a,
.floating>button{
  border-left:1px solid rgba(5,6,7,.09);
  font-size:8px;
  letter-spacing:.035em;
}
.floating>a{border-left:0}
.floating>button.red{letter-spacing:.055em}

/* Quality flow: fixed typographic rows keep every card on the same baseline. */
.process-card{
  min-height:360px;
  display:grid;
  grid-template-rows:28px minmax(100px,1fr) 126px;
  justify-content:initial;
  align-content:stretch;
  padding:27px 20px 25px;
}
.process-card>small{
  display:flex;
  align-items:flex-start;
  min-height:28px;
  line-height:1.25;
  white-space:nowrap;
}
.process-card>b{
  display:flex;
  align-items:center;
  align-self:stretch;
  margin:0;
  line-height:1;
}
.process-card>div{
  display:grid;
  grid-template-rows:58px 58px;
  align-content:end;
  min-height:116px;
}
.process-card h3{
  align-self:end;
  min-height:58px;
  margin:0;
  display:flex;
  align-items:flex-end;
  line-height:1.22!important;
}
.process-card p{
  min-height:58px;
  margin:0;
  padding-top:13px;
  line-height:1.75;
  display:block;
}
html[lang="zh-CN"] .process-card h3,
html[lang="ja"] .process-card h3{letter-spacing:.035em!important}
html[lang="en"] .process-card h3{font-size:25px;letter-spacing:-.01em!important}

@media(max-width:1100px){
  .floating{grid-template-columns:100px 64px 118px 76px}
  .process-card{min-height:330px;grid-template-rows:26px minmax(82px,1fr) 118px}
  .process-card>div{grid-template-rows:54px 54px;min-height:108px}
  .process-card h3{min-height:54px}
  .process-card p{min-height:54px}
}
@media(max-width:760px){
  .floating{
    left:12px;
    right:12px;
    bottom:12px;
    grid-template-columns:64px 1fr 74px;
    width:auto;
  }
  .floating>span{display:none}
  .floating>a,.floating>button{height:42px;padding:0 10px}
  .process-card{
    min-height:270px;
    grid-template-rows:26px minmax(64px,1fr) 112px;
    padding:21px 18px 20px;
  }
  .process-card>div{grid-template-rows:52px 52px;min-height:104px}
  .process-card h3{min-height:52px;font-size:24px!important}
  .process-card p{min-height:52px;padding-top:10px}
}
