@charset "UTF-8";

:root{
  --ss-accent:#f26a21;
  --ss-accent-soft:rgba(242,106,33,.10);
  --ss-text:#18212f;
  --ss-muted:rgba(24,33,47,.68);
  --ss-line:rgba(24,33,47,.10);
  --ss-bg:#f6f7f9;
  --ss-card:#ffffff;
  --ss-shadow:0 18px 54px rgba(18,24,39,.10);
  --ss-container:min(1180px, calc(100% - 40px));
  --ss-header-h:96px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; color:var(--ss-text); background:var(--ss-bg); font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}
[hidden]{display:none !important;}
.shell{width:var(--ss-container); margin-inline:auto;}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.site-header{
  position:sticky;
  top:0;
  z-index:3000;
  height:var(--ss-header-h);
  background:rgba(255,255,255,.90);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(24,33,47,.08);
}
.site-header__inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.site-brand{display:flex; align-items:center; gap:14px; min-width:0;}
.site-brand__mark{width:62px; height:62px; object-fit:contain; flex:0 0 auto;}
.site-brand__text{display:flex; flex-direction:column; gap:4px; min-width:0; line-height:1.05;}
.site-brand__ja{font-weight:800; font-size:clamp(14px,1.2vw,18px); letter-spacing:.06em; white-space:nowrap;}
.site-brand__en{font-size:clamp(10px,.72vw,12px); color:rgba(24,33,47,.54); letter-spacing:.12em; white-space:nowrap;}
.site-nav-wrap{display:flex; align-items:center; gap:12px;}
.site-menu-toggle{display:none; width:50px; height:50px; border-radius:12px; border:1px solid rgba(24,33,47,.10); background:rgba(255,255,255,.94); color:var(--ss-text); cursor:pointer; position:relative; box-shadow:0 12px 30px rgba(18,24,39,.08);}
.site-menu-toggle::before,.site-menu-toggle::after,.site-menu-toggle span{content:""; position:absolute; left:50%; width:22px; height:2px; border-radius:999px; background:currentColor; transform:translateX(-50%); transition:transform .24s ease, top .24s ease, opacity .18s ease;}
.site-menu-toggle::before{top:16px;} .site-menu-toggle span{top:24px;} .site-menu-toggle::after{top:32px;}
.site-menu-toggle[aria-expanded="true"]::before{top:24px; transform:translateX(-50%) rotate(45deg);} 
.site-menu-toggle[aria-expanded="true"] span{opacity:0;}
.site-menu-toggle[aria-expanded="true"]::after{top:24px; transform:translateX(-50%) rotate(-45deg);} 
.site-nav{display:flex; align-items:center; gap:4px; flex-wrap:nowrap;}
.site-nav a,.site-nav__cta{display:inline-flex; align-items:center; justify-content:center; min-height:58px; padding:0 14px; border-radius:12px; font-weight:700; font-size:clamp(13px,1vw,16px); color:rgba(24,33,47,.72); transition:background .18s ease,color .18s ease,border-color .18s ease; white-space:nowrap;}
.site-nav a:hover{background:rgba(242,106,33,.07); color:var(--ss-accent);} 
.site-nav a[aria-current="page"]{background:rgba(242,106,33,.10); color:var(--ss-accent);} 
.site-nav__cta{border:1px solid rgba(24,33,47,.12); background:rgba(255,255,255,.88);}
.site-nav__cta:hover{border-color:rgba(242,106,33,.24); color:var(--ss-accent); background:rgba(242,106,33,.06);} 
.site-menu-backdrop{display:none;}
.site-menu-backdrop[hidden]{display:none !important;}
.site-menu-backdrop.is-open{display:block; position:fixed; inset:0; z-index:2890; background:rgba(9,16,30,.22); backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);} 
body.menu-open{overflow:hidden;}

.site-footer{
  position:relative;
  overflow:hidden;
  padding:56px 0 18px;
  background:linear-gradient(180deg, rgba(255,251,247,.98) 0%, rgba(255,243,234,.98) 100%);
  color:var(--ss-muted);
  border-top:1px solid rgba(242,106,33,.12);
}
.site-footer::after{
  content:"";
  position:absolute;
  right:-96px;
  bottom:-106px;
  width:min(420px, 36vw);
  aspect-ratio:1/1;
  background:url("../images/footer-gasket.png") no-repeat center / contain;
/* opacity:.11;*/
  opacity:0.7;
  pointer-events:none;
}
.site-footer__grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:44px;
  align-items:start;
}
.site-footer__brand{margin:0 0 14px; font-size:clamp(1.06rem,1.45vw,1.34rem); font-weight:800; color:var(--ss-text); letter-spacing:.04em;}
.site-footer__info p{margin:0 0 10px; font-size:clamp(.98rem,1.02vw,1.05rem); line-height:1.85;}
.site-footer__links{display:grid; gap:14px; justify-items:end; align-content:start; text-align:right; padding-top:4px; padding-right:10px;}
.site-footer__links a{color:rgba(24,33,47,.76); font-weight:500;}
.site-footer__links a:hover{color:var(--ss-accent);} 
.site-footer__bottom{position:relative; z-index:1; border-top:1px solid rgba(24,33,47,.08); margin-top:28px; padding-top:14px;}
.site-footer__bottom small{color:rgba(24,33,47,.55); font-size:.9rem;}

@media (max-width: 920px){
  :root{--ss-header-h:78px; --ss-container:min(100% - 28px, 100% - 28px);} 
  .site-brand__mark{width:54px; height:54px;}
  .site-brand__ja{font-size:13px;}
  .site-brand__en{display:none;}
  .site-menu-toggle{display:inline-flex; align-items:center; justify-content:center;}
  .site-nav{
    position:fixed;
    top:calc(var(--ss-header-h) + 12px);
    right:14px;
    left:14px;
    z-index:2960;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    padding:16px;
    border-radius:22px;
    background:rgba(255,250,246,.98);
    border:1px solid rgba(242,106,33,.14);
    box-shadow:0 22px 60px rgba(18,24,39,.18);
  }
  .site-nav.is-open{display:flex;}
  .site-nav a,.site-nav__cta{min-height:52px; width:100%; border-radius:14px; font-size:16px;}
  .site-nav__cta{background:#fff;}
  .site-footer{padding:42px 0 16px;}
/*  .site-footer::after{width:220px; right:-46px; bottom:-42px; opacity:.08;}*/
  .site-footer::after{width:220px; right:-46px; bottom:-42px; opacity:0.7;}
  .site-footer__grid{grid-template-columns:1fr; gap:26px;}
  .site-footer__links{justify-items:start; text-align:left; padding-right:0;}
}


/* === 2026-03 final header split override: home overlays video with near-white header, company stays separate === */
body.home-page .site-header{
  position:sticky;
  top:0;
  left:0;
  right:0;
  z-index:3000;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(24,33,47,.08);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 8px 24px rgba(18,24,39,.035);
}
body.home-page .site-brand__ja,
body.home-page .site-nav a,
body.home-page .site-nav__cta,
body.home-page .site-menu-toggle{
  color:rgba(24,33,47,.76);
}
body.home-page .site-brand__en{
  color:rgba(24,33,47,.54);
}
body.home-page .site-nav a:hover{
  background:rgba(242,106,33,.07);
  color:var(--ss-accent);
}
body.home-page .site-nav a[aria-current="page"]{
  background:rgba(242,106,33,.10);
  color:var(--ss-accent);
}
body.home-page .site-nav__cta{
  background:rgba(255,255,255,.96);
  border-color:rgba(24,33,47,.12);
}
body.home-page .site-nav__cta:hover{
  background:rgba(242,106,33,.08);
  border-color:rgba(242,106,33,.24);
  color:var(--ss-accent);
}
body.home-page .site-header.is-solid{
  background:rgba(255,255,255,.97);
  border-bottom:1px solid rgba(24,33,47,.08);
  box-shadow:0 10px 26px rgba(18,24,39,.05);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
body.home-page .site-header.is-solid .site-brand__ja,
body.home-page .site-header.is-solid .site-nav a,
body.home-page .site-header.is-solid .site-nav__cta,
body.home-page .site-header.is-solid .site-menu-toggle{
  color:rgba(24,33,47,.76);
}
body.home-page .site-header.is-solid .site-brand__en{
  color:rgba(24,33,47,.54);
}
body.home-page .site-header.is-solid .site-nav a:hover{
  background:rgba(242,106,33,.07);
  color:var(--ss-accent);
}
body.home-page .site-header.is-solid .site-nav a[aria-current="page"]{
  background:rgba(242,106,33,.10);
  color:var(--ss-accent);
}
body.home-page .site-header.is-solid .site-nav__cta{
  background:rgba(255,255,255,.98);
  border-color:rgba(24,33,47,.12);
}
body.home-page .site-header.is-solid .site-nav__cta:hover{
  background:rgba(242,106,33,.08);
  border-color:rgba(242,106,33,.24);
  color:var(--ss-accent);
}

/* company page: header sits above hero, not overlaying */
body.company-page .site-header{
  position:sticky;
  top:0;
  z-index:3000;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(24,33,47,.08);
  box-shadow:none;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
body.company-page .site-brand__ja,
body.company-page .site-nav a,
body.company-page .site-nav__cta,
body.company-page .site-menu-toggle{
  color:rgba(24,33,47,.76);
}
body.company-page .site-brand__en{
  color:rgba(24,33,47,.54);
}
body.company-page .site-nav a:hover{
  background:rgba(242,106,33,.07);
  color:var(--ss-accent);
}
body.company-page .site-nav a[aria-current="page"]{
  background:rgba(242,106,33,.10);
  color:var(--ss-accent);
}
body.company-page .site-nav__cta{
  background:rgba(255,255,255,.96);
  border-color:rgba(24,33,47,.12);
}
body.company-page .site-nav__cta:hover{
  background:rgba(242,106,33,.08);
  border-color:rgba(242,106,33,.24);
  color:var(--ss-accent);
}

/* global floating top button */
.toTop{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:2800;
  width:60px;
  height:60px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,250,246,.95);
  border:1px solid rgba(242,106,33,.18);
  box-shadow:0 14px 34px rgba(18,24,39,.12);
  color:var(--ss-accent);
  opacity:0;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .2s ease, transform .2s ease, background .2s ease, color .2s ease;
}
.toTop::before{
  content:"\2191";
  position:absolute;
  top:8px;
  left:50%;
  transform:translateX(-50%);
  font-size:22px;
  line-height:1;
  font-weight:700;
}
.toTop::after{
  content:"TOP";
  position:absolute;
  left:50%;
  bottom:8px;
  transform:translateX(-50%);
  font-size:10px;
  letter-spacing:.14em;
  font-weight:800;
}
.toTop.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
/* TOPへ戻るボタン hover統一（最優先で上書き） */
.toTop:hover{
  background:var(--ss-accent);
  color:#fff;
/*
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
*/
}


body.home-page .toTop:hover{
  background: var(--accent) !important;
  color: #fff !important;
  border-color: var(--accent) !important;
}


@media (max-width: 920px){
  body.home-page .site-nav{
    background:rgba(255,250,246,.96);
    border:1px solid rgba(242,106,33,.14);
    box-shadow:0 22px 60px rgba(18,24,39,.18);
  }
  body.home-page .site-nav a,
  body.home-page .site-nav__cta{
    color:rgba(24,33,47,.78);
  }
  body.home-page .site-nav a[aria-current="page"]{
    color:var(--ss-accent);
  }
  .toTop{
    right:14px;
    bottom:14px;
    width:52px;
    height:52px;
  }
  .toTop::before{
    top:7px;
    font-size:20px;
  }
  .toTop::after{
    bottom:7px;
    font-size:9px;
  }
}


body.facilities-page .site-header{
  position:sticky;
  top:0;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(24,33,47,.08);
}
body.facilities-page .site-nav a,
body.facilities-page .site-nav__cta,
body.facilities-page .site-menu-toggle{
  color:rgba(24,33,47,.72);
}
body.facilities-page .site-nav a:hover{
  background:rgba(242,106,33,.07); color:var(--ss-accent);
}
body.facilities-page .site-nav a[aria-current="page"]{
  background:rgba(242,106,33,.10); color:var(--ss-accent);
}
body.facilities-page .site-nav__cta{
  border:1px solid rgba(24,33,47,.12); background:rgba(255,255,255,.88);
}
body.facilities-page .site-nav__cta:hover{
  border-color:rgba(242,106,33,.24); color:var(--ss-accent); background:rgba(242,106,33,.06);
}


.site-footer__previewNote{
  margin:0 0 14px;
  padding:14px 16px;
  border:1px solid rgba(242,106,33,.18);
  background:rgba(255,255,255,.72);
  border-radius:14px;
}
.site-footer__previewNote p{
  margin:0;
  font-size:.95rem;
  line-height:1.8;
  color:rgba(24,33,47,.76);
}
.site-footer__previewNote p + p{margin-top:4px;}

.stub-main{
  min-height:calc(100vh - var(--ss-header-h));
  display:grid;
  place-items:center;
  padding:64px 0;
}
.stub-box{
  width:min(760px, 100%);
  background:#fff;
  border:1px solid rgba(24,33,47,.08);
  border-radius:28px;
  box-shadow:var(--ss-shadow);
  padding:clamp(28px,5vw,48px);
}
.stub-box__eyebrow{
  margin:0 0 12px;
  font-size:.84rem;
  font-weight:800;
  letter-spacing:.18em;
  color:var(--ss-accent);
}
.stub-box h1{
  margin:0;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.2;
}
.stub-box p{
  margin:16px 0 0;
  line-height:1.9;
  color:var(--ss-muted);
}
.stub-box__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
@media (max-width: 920px){
  .site-footer__previewNote{padding:12px 14px;}
  .site-footer__previewNote p{font-size:.9rem;}
}
