/* =========================================================
   ASIACOM JAPAN — COMMON SITE SHELL
   Header / Mobile Menu / Language Switch / Footer
   ========================================================= */
:root{
  --ac-shell-navy:#0b2344;
  --ac-shell-navy2:#071a34;
  --ac-shell-gold:#b68a2c;
  --ac-shell-white:#ffffff;
  --ac-shell-line:rgba(11,35,68,.14);
  --ac-shell-muted:rgba(11,35,68,.68);
  --ac-shell-header-h:76px;
}

.ac-site-header,
.ac-site-footer,
.ac-mobile-panel{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,Arial,sans-serif;
}

.ac-site-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:1000;
  min-height:var(--ac-shell-header-h);
  border-bottom:1px solid var(--ac-shell-line);
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}

.ac-site-header__inner{
  width:min(1280px,100%);
  min-height:var(--ac-shell-header-h);
  margin:0 auto;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.ac-site-logo{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  text-decoration:none;
}

.ac-site-logo img{
  display:block;
  width:auto;
  height:44px;
  max-width:min(52vw,280px);
  object-fit:contain;
}

.ac-desktop-nav{
  display:none;
  align-items:center;
  gap:24px;
  margin-left:auto;
}

.ac-desktop-nav a{
  color:var(--ac-shell-muted);
  text-decoration:none;
  font-size:14px;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
  transition:color .18s ease;
}

.ac-desktop-nav a:hover,
.ac-desktop-nav a[aria-current="page"]{
  color:var(--ac-shell-navy);
}

.ac-desktop-nav .ac-contact-link{
  padding:10px 16px;
  border-radius:6px;
  background:var(--ac-shell-navy);
  color:#fff;
  box-shadow:0 7px 18px rgba(11,35,68,.16);
}

.ac-desktop-nav .ac-contact-link:hover,
.ac-desktop-nav .ac-contact-link[aria-current="page"]{
  color:#fff;
  background:var(--ac-shell-navy2);
}

.ac-lang-switch{
  display:none;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

.ac-lang-switch a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:39px;
  min-height:30px;
  padding:6px 11px;
  border:1px solid rgba(11,35,68,.20);
  border-radius:999px;
  color:var(--ac-shell-navy);
  background:#fff;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
  line-height:1;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}

.ac-lang-switch a:hover,
.ac-lang-switch a[aria-current="page"]{
  border-color:var(--ac-shell-navy);
  background:var(--ac-shell-navy);
  color:#fff;
}

.ac-menu-button{
  width:44px;
  height:44px;
  padding:0;
  border:1px solid rgba(11,35,68,.16);
  border-radius:10px;
  background:#fff;
  color:var(--ac-shell-navy);
  display:inline-flex;
  flex:0 0 44px;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

.ac-menu-button__icon,
.ac-menu-button__icon::before,
.ac-menu-button__icon::after{
  display:block;
  width:20px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:transform .2s ease,opacity .2s ease;
}

.ac-menu-button__icon{
  position:relative;
}

.ac-menu-button__icon::before,
.ac-menu-button__icon::after{
  content:"";
  position:absolute;
  left:0;
}

.ac-menu-button__icon::before{top:-6px}
.ac-menu-button__icon::after{top:6px}

.ac-menu-button[aria-expanded="true"] .ac-menu-button__icon{
  background:transparent;
}
.ac-menu-button[aria-expanded="true"] .ac-menu-button__icon::before{
  top:0;
  transform:rotate(45deg);
}
.ac-menu-button[aria-expanded="true"] .ac-menu-button__icon::after{
  top:0;
  transform:rotate(-45deg);
}

.ac-mobile-panel{
  position:fixed;
  top:var(--ac-shell-header-h);
  left:0;
  right:0;
  z-index:999;
  max-height:calc(100dvh - var(--ac-shell-header-h));
  overflow:auto;
  visibility:hidden;
  opacity:0;
  transform:translateY(-8px);
  pointer-events:none;
  background:#fff;
  border-bottom:1px solid var(--ac-shell-line);
  box-shadow:0 22px 42px rgba(7,26,52,.16);
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
}

.ac-mobile-panel.is-open{
  visibility:visible;
  opacity:1;
  transform:none;
  pointer-events:auto;
}

.ac-mobile-panel__inner{
  width:min(720px,100%);
  margin:0 auto;
  padding:20px 20px 26px;
}

.ac-mobile-nav{
  display:grid;
}

.ac-mobile-nav a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:51px;
  border-bottom:1px solid rgba(11,35,68,.10);
  color:var(--ac-shell-navy);
  text-decoration:none;
  font-size:14px;
  font-weight:800;
  letter-spacing:.02em;
}

.ac-mobile-nav a::after{
  content:"›";
  color:var(--ac-shell-gold);
  font-size:20px;
  font-weight:500;
}

.ac-mobile-nav a[aria-current="page"]{
  color:var(--ac-shell-gold);
}

.ac-mobile-languages{
  padding:20px 0 8px;
}

.ac-mobile-label{
  margin:0 0 11px;
  color:rgba(11,35,68,.52);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.ac-mobile-languages__links{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}

.ac-mobile-languages__links a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border:1px solid rgba(11,35,68,.16);
  border-radius:8px;
  background:#fff;
  color:var(--ac-shell-navy);
  text-decoration:none;
  font-size:12px;
  font-weight:900;
}

.ac-mobile-languages__links a[aria-current="page"]{
  border-color:var(--ac-shell-navy);
  background:var(--ac-shell-navy);
  color:#fff;
}

.ac-mobile-external{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:14px;
  padding:15px 16px;
  border-radius:9px;
  background:#f6f8fb;
  color:var(--ac-shell-navy);
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}

body.ac-menu-open{
  overflow:hidden;
}

/* Footer */
.ac-site-footer{
  background:var(--ac-shell-navy2);
  color:#fff;
}

.ac-site-footer__inner{
  width:min(1280px,100%);
  margin:0 auto;
  padding:40px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  gap:26px;
}

.ac-site-footer__brand{
  text-align:center;
}

.ac-site-footer__company{
  font-family:"Noto Serif JP","Yu Mincho","Times New Roman",serif;
  font-size:20px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:.10em;
}

.ac-site-footer__sub{
  margin-top:4px;
  color:rgba(255,255,255,.58);
  font-size:12px;
  font-weight:700;
  letter-spacing:.24em;
}

.ac-site-footer__nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px 20px;
}

.ac-site-footer__nav a{
  color:rgba(255,255,255,.68);
  text-decoration:none;
  font-size:12px;
  font-weight:700;
}

.ac-site-footer__nav a:hover{
  color:#fff;
}

@media(min-width:768px){
  .ac-site-header__inner{padding-left:32px;padding-right:32px}
  .ac-lang-switch{display:flex}
  .ac-site-footer__inner{padding-left:32px;padding-right:32px}
}

@media(min-width:1200px){
  .ac-desktop-nav{display:flex}
  .ac-menu-button{display:none}
  .ac-mobile-panel{display:none!important}
  body.ac-menu-open{overflow:auto}
}

@media(min-width:768px){
  .ac-site-footer__inner{
    flex-direction:row;
  }
  .ac-site-footer__brand{
    text-align:left;
  }
}

@media(max-width:480px){
  .ac-site-logo img{height:39px;max-width:70vw}
  .ac-site-header__inner{gap:12px;padding-left:14px;padding-right:14px}
  .ac-mobile-panel__inner{padding-left:16px;padding-right:16px}
  .ac-site-footer__company{font-size:16px;letter-spacing:.06em}
}

@media print{
  #site-header,
  #site-footer,
  .ac-mobile-panel{
    display:none!important;
  }
  body.ac-menu-open{overflow:visible}
}