:root{
  --ink:#111;
  --muted:rgba(0,0,0,.55);
  --line:rgba(0,0,0,.12);
  --brand:#f4a757;
  --megamenu-gray:#f6f5f5;
  --glass-bg:rgba(255,255,255,.5);
  --glass-filter:blur(24px) brightness(160%) contrast(80%);

  /* ====== 参考站观感的“像素基线” ======
     1920 宽下：两侧留白更小、header 更高、更松
  */
  --hd-h: 92px;
  --w: min(1780px, calc(100% - 40px)); /* 左右各 20px */
}

/* Glass mode switch:
   target = match target_css.css
   boost  = stronger fog for easier visual comparison */
html[data-glass="target"]{
  --glass-bg:rgba(255,255,255,.5);
  --glass-filter:blur(24px) brightness(160%) contrast(80%);
}

html[data-glass="boost"]{
  --glass-bg:rgba(255,255,255,.28);
  --glass-filter:blur(48px) brightness(175%) contrast(68%);
}

/* Debug backdrop so glass differences are visible in component-only pages */
html[data-glass-debug="on"] body::before{
  content:"";
  position:fixed;
  inset:var(--hd-h) 0 0 0;
  z-index:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(
      45deg,
      rgba(16,42,67,.55) 0 20px,
      rgba(176,28,58,.55) 20px 40px
    ),
    radial-gradient(120% 90% at 20% 10%, #7cc7ff 0%, #315d8b 45%, #102a43 100%);
}

/* ================= BASE ================= */

*{ box-sizing:border-box; }

body{
  margin:0;
  font-family:"Noto Sans JP", system-ui, -apple-system,
               "Hiragino Sans","Yu Gothic",Meiryo,Arial,sans-serif;
  font-size:15px;
  font-weight:400;
  letter-spacing:.02em;
  color:var(--ink);
}

/* ================= HEADER ================= */

.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  border-bottom:1px solid var(--line);
}

.hd-inner{
  height:var(--hd-h);
  width:var(--w);
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:44px;
}

/* Logo */
.brand{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  color:inherit;
  flex:0 0 auto;
}

.brand-mark{
  width:44px;
  height:44px;
  border:1px solid var(--line);
  border-radius:14px;
  display:grid;
  place-items:center;
  font-weight:700;
  line-height:1;
}

.brand-logo{
  height:96px;
  width:auto;
  display:block;
  object-fit:contain;
}

.brand-text{
  font-size:12px;
  color:var(--muted);
  letter-spacing:.05em;
}

/* Navigation */
.gnav{
  flex:1;
  display:flex;
  justify-content:space-between; /* 你说的“均匀分布” */
  align-items:center;
  gap:20px;
  min-width:0;
  margin: 0 88px;                /* 为新增一级入口留出更稳的桌面宽度 */
}

.gnav-item{
  position:relative;
  display:flex;
  align-items:center;
  height:var(--hd-h);
  padding:0 6px;

  font-size:18px;
  font-weight:600;              /* 参考站比你之前更“硬朗” */
  letter-spacing:.02em;
  white-space:nowrap;
  word-break:keep-all;

  text-decoration:none;
  color:var(--ink);
}

.gnav-item::after{
  content:"";
  position:absolute;
  left:6px;
  right:6px;
  bottom:18px;                  /* 下划线位置更像参考站 */
  height:3px;                   /* 参考站更“有存在感” */
  background:transparent;
  border-radius:3px;
}

.gnav-item.is-active::after{
  background:var(--brand);
}

.gnav-item--direct:hover::after,
.gnav-item--direct:focus-visible::after{
  background:var(--brand);
}

/* Right side */
.hd-actions{
  display:flex;
  align-items:center;
  gap:16px;
  flex:0 0 auto;
}

.icon-btn{
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid var(--line);
  background:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
}

.cta{
  background:var(--brand);
  color:#fff;
  text-decoration:none;
  padding:12px 18px;
  border-radius:14px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
}

.menu-toggle{
  display:none;
  width:40px;
  height:40px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}

.menu-toggle span{
  width:18px;
  height:2px;
  background:#222;
  border-radius:2px;
}

/* ================= MEGA MENU ================= */

.mega{
  position:absolute;
  left:0;
  right:0;
  width:100%;
  top:var(--hd-h);

  transform:translateY(-12px);
  visibility:hidden;
  pointer-events:none;

  transition:
    transform .22s cubic-bezier(.2,.7,.2,1),
    visibility 0s linear .22s;

  z-index:1001;
}

/* 分区：左灰块（实体） + 右玻璃（透出底下颜色） */
.mega::before{ content:none; }

.mega::after{ content:none; }

.mega-inner{
  position:relative;
  z-index:1;
  width:100%;
  max-width:none;
  margin:0;
  padding:0;

  display:grid;
  grid-template-columns:minmax(224px, 624px) 1fr;
  column-gap:0;

  opacity:0;
  transition: opacity .18s ease;
}


.site-header.is-open .mega{
  transform:translateY(0);
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s;
}

.site-header.is-open .mega-inner{
  opacity:1;
}



.mega-col--left{
  grid-column:1;
  background-color:var(--megamenu-gray);
  font-size:24px;
  font-weight:600;
  color:rgba(0,0,0,.55);
  padding:46px 0 54px;

  display:flex;
  justify-content:flex-start;

  /* 自适应偏右（核心） */
  padding-left:clamp(24px, 18vw, 375px);
}


.mega-col--mid{
  grid-column:2;   /* ✅ 右区域 */
  background-color:var(--glass-bg);
  backdrop-filter:var(--glass-filter);
  -webkit-backdrop-filter:var(--glass-filter);
  padding:46px 54px 54px 54px;
  display:flex;
  flex-direction:column;
  gap:22px;
}

/* 中间菜单（参考站看起来是“干净列表”，别用下划线分割） */
.mega-col--mid{
  display:flex;
  flex-direction:column;
  gap:22px;
}

.mega-link{
  align-items:center;
  border-radius:4px;
  text-decoration:none;
  color:rgba(0,0,0,.85);
  display:flex;
  gap:1.6rem;
  font-size:16px;
  font-weight:600;
  padding:10px 24px;
  transition:all .3s ease;
}

.mega-link:hover{
  background-color:var(--megamenu-gray);
  color:#a50034;
}

.mega-link>span{
  margin-left:auto;
  opacity:0;
  transition:opacity .3s ease;
}

.mega-link:hover>span{
  opacity:1;
}

.mega-link>span:empty::before{
  content:"\2192";
}

/* Fallback: emulate frosted glass by blurring page content when menu is open */
html.no-backdrop-filter .mega-col--mid{
  background-color:rgba(255,255,255,.72);
}

html.no-backdrop-filter body.mega-fallback-blur .notice,
html.no-backdrop-filter body.mega-fallback-blur main,
html.no-backdrop-filter body.mega-fallback-blur .top-footer,
html.no-backdrop-filter body.mega-fallback-blur footer{
  filter:blur(14px) brightness(1.08) contrast(.88);
  transition:filter .18s ease;
}

/* 右侧卡片：白卡浮在玻璃上 */
.mega-col--right{
  display:flex;
  align-items:center;
  gap:22px;
}

.mega-thumb{
  width:132px;
  height:84px;
  border-radius:16px;
  background:rgba(255,255,255,.85);
  border:1px solid rgba(0,0,0,.08);
  display:grid;
  place-items:center;
  font-weight:700;
  color:var(--brand);
}

.mega-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:10px;
  padding:26px 34px;
  box-shadow:0 9px 22px rgba(0,0,0,.1);
  max-width: 520px;
}

.mega-card-title{
  margin:0;
  font-size:18px;
  font-weight:800;
  color:var(--brand);
}

.mega-card-sub{
  margin-top:10px;
  font-size:13px;
  color:rgba(0,0,0,.55);
  line-height:1.7;
}

/* 透明遮罩：仅用于“点击空白关闭”，不做变暗 */
.mega-backdrop{
  position:fixed;
  inset:var(--hd-h) 0 0 0;
  background:transparent;
  z-index:900;
}

body.is-menu-open{
  overflow:hidden;
}

.mnav{
  position:fixed;
  inset:0;
  z-index:1200;
  background:var(--glass-bg);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
  backdrop-filter:var(--glass-filter);
  -webkit-backdrop-filter:var(--glass-filter);
}

.mnav::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.24)),
    radial-gradient(120% 90% at 0% 0%, rgba(255,255,255,.48), rgba(255,255,255,0));
}

.mnav-shell{
  height:100%;
  display:flex;
  flex-direction:column;
  transform:translateX(100%);
  transition:transform .34s cubic-bezier(.2,.7,.2,1);
}

.mnav-head{
  height:72px;
  padding:0 14px;
  border-bottom:1px solid rgba(255,255,255,.56);
  background:rgba(255,255,255,.42);
  display:flex;
  align-items:center;
  justify-content:space-between;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
  backdrop-filter:var(--glass-filter);
  -webkit-backdrop-filter:var(--glass-filter);
}

.mnav-close{
  width:38px;
  height:38px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#999;
  font-size:24px;
  cursor:pointer;
}

.mnav-track{
  position:relative;
  flex:1;
  overflow:hidden;
}

.mnav-panel{
  position:absolute;
  inset:0;
  background:rgba(247, 207, 207, 0.2);
  transition:transform .36s cubic-bezier(.2,.7,.2,1), opacity .28s ease;
}

.mnav-panel--lv1{
  transform:translateX(0);
  opacity:1;
}

.mnav-panel--lv2{
  transform:translateX(100%);
  opacity:.8;
}

.mnav-scroll{
  height:100%;
  overflow:auto;
  padding:10px 20px 28px;
}

.mnav-item{
  width:100%;
  border:0;
  border-bottom:1px solid rgba(0,0,0,.12);
  background:transparent;
  text-align:left;
  padding:18px 2px;
  font-size:24px;
  font-weight:700;
  color:#111;
  cursor:pointer;
}

.mnav-backline{
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 0 14px;
  border-bottom:1px solid rgba(0,0,0,.12);
}

.mnav-back{
  border:0;
  background:transparent;
  color:#333;
  font-size:14px;
  cursor:pointer;
  padding:0;
}

.mnav-crumb{
  font-size:13px;
  color:rgba(0,0,0,.55);
}

.mnav-title{
  margin:18px 0 10px;
  font-size:26px;
  line-height:1.2;
}

.mnav-link{
  display:block;
  text-decoration:none;
  color:#111;
  border-bottom:1px solid rgba(0,0,0,.12);
  padding:16px 2px;
  font-size:20px;
  font-weight:700;
}

.mnav.is-open{
  opacity:1;
  pointer-events:auto;
}

.mnav.is-open .mnav-shell{
  transform:translateX(0);
}

.mnav.is-subopen .mnav-panel--lv1{
  transform:translateX(-100%);
  opacity:0;
}

.mnav.is-subopen .mnav-panel--lv2{
  transform:translateX(0);
  opacity:1;
}

/* ================= Responsive ================= */

@media (max-width: 1400px){
  :root{ --w:min(1280px, calc(100% - 32px)); }

  .gnav{ margin:0 12px; gap:16px; }
  .mega-inner{
    grid-template-columns:minmax(224px, 420px) 1fr;
    gap:0;
  }
  .mega-col--right{
    grid-column:1/-1;
  }
  .cta{ display:none; }
}

@media (max-width: 1024px){
  :root{
    --hd-h:72px;
    --w:calc(100% - 24px);
  }

  .hd-inner{
    gap:16px;
  }

  .brand-text{
    display:none;
  }

  .gnav{ display:none; }

  .hd-actions{
    display:none;
  }

  .menu-toggle{
    display:flex;
    margin-left:auto;
  }

  .mega{
    top:var(--hd-h);
  }

  .mega::before,
  .mega::after{
    display:none;
  }

  .mega-inner{
    grid-template-columns:1fr;
    column-gap:0;
    row-gap:14px;
    padding:20px 0 24px;
  }

  .mega-col--left{
    grid-column:1;
    padding-left:0;
    padding-top:0;
  }

  .mega-col--mid{
    grid-column:1;
    gap:14px;
  }

  .mega-link{
    font-size:15px;
  }

  .mnav-head .brand-text{
    display:inline;
  }

  .mnav{
    background: rgba(255,255,255,.86);
  }

  .mnav::before{
    background:
      linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.72)),
      radial-gradient(120% 90% at 0% 0%, rgba(255,255,255,.42), rgba(255,255,255,0));
  }

  body .fs-hero{
    min-height: clamp(340px, 54svh, 430px) !important;
    height: clamp(340px, 54svh, 430px) !important;
  }

  body .fs-hero__inner{
    padding: 22px 0 !important;
  }

  body .fs-hero__title{
    font-size: clamp(28px, 7vw, 40px) !important;
    line-height: 1.16 !important;
  }

  body .fs-hero__desc{
    font-size: 14px !important;
    line-height: 1.8 !important;
  }

  body .page-actions,
  body .hero-slider .hero-cta{
    gap: 8px !important;
  }
}

@media (max-width: 640px){
  :root{
    --hd-h:64px;
    --w:calc(100% - 16px);
  }

  .hd-inner{
    gap:10px;
  }

  .brand-mark{
    width:36px;
    height:36px;
    border-radius:10px;
  }

  .brand-logo{
    height:72px;
  }

  .menu-toggle{
    width:36px;
    height:36px;
  }

  .mega-inner{
    padding:14px 0 18px;
  }

  .mega-link{
    font-size:14px;
  }

  .mnav-head{
    height:64px;
  }

  .mnav-scroll{
    padding:8px 14px 20px;
  }

  .mnav-item{
    padding:14px 2px;
    font-size:16px;
  }

  .mnav-title{
    font-size:24px;
  }

  .mnav-link{
    font-size:16px;
    padding:14px 2px;
  }

  .mnav{
    background: rgba(255,255,255,.92);
  }

  body .fs-hero{
    min-height: clamp(300px, 48svh, 380px) !important;
    height: clamp(300px, 48svh, 380px) !important;
  }

  body .fs-hero__inner{
    align-items: flex-end !important;
    padding: 18px 0 !important;
  }

  body .fs-hero__box{
    width: 100% !important;
  }

  body .fs-hero__kicker{
    font-size: 11px !important;
    letter-spacing: .12em !important;
  }

  body .fs-hero__title{
    font-size: clamp(24px, 8.2vw, 32px) !important;
    line-height: 1.14 !important;
    margin-top: 8px !important;
  }

  body .fs-hero__desc{
    margin-top: 8px !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
  }

  body .page-actions .primary-btn,
  body .page-actions .secondary-btn,
  body .hero-slider .primary-btn,
  body .hero-slider .secondary-btn{
    min-height: 40px !important;
    font-size: 12px !important;
    padding: 10px 14px !important;
  }

  body .hero-kicker{
    font-size: 11px !important;
  }

  body .hero-title{
    font-size: clamp(26px, 9vw, 36px) !important;
    line-height: 1.14 !important;
  }

  body .hero-lead{
    font-size: 13px !important;
    line-height: 1.72 !important;
  }
}
