/* =========================================
   Responsive overrides
   PC layout is intentionally left close to the original site.
   ========================================= */

html{
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;
}

body{
  overflow-x:hidden;
  background:#fff;
}

img{
  max-width:100%;
  height:auto;
}

/* Top page navigation */
#top #header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:min(1120px, calc(100% - 40px));
  margin:0 auto;
  padding-top:20px;
}

#top h1.logo{
  flex:0 0 auto;
  margin:0 !important;
  padding-top:0 !important;
}

.top-global-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:4px;
}

.top-global-nav a{
  padding:8px 12px;
  border:none;
  color:#333;
  font-size:14px;
  line-height:1.5;
  text-decoration:none;
  background:transparent;
}

.top-global-nav a:hover,
.top-global-nav a:focus{
  background:transparent;
  color:#333;
}

/* Tablet: keep the old look, but avoid horizontal overflow. */
@media (max-width: 980px){
  #rogo,
  #menu{
    width:calc(100% - 40px) !important;
  }

  #menu{
    height:auto !important;
    min-height:40px;
    padding-bottom:10px;
  }

  #menu nav{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
  }

  #menu nav a{
    line-height:1.5;
    white-space:normal;
  }

  #contents{
    box-sizing:border-box;
    width:100% !important;
    max-width:800px;
    padding-left:16px;
    padding-right:16px;
  }

  #top #header{
    flex-direction:column;
    align-items:flex-start;
    width:calc(100% - 28px);
    gap:14px;
  }

  .top-global-nav{
    justify-content:flex-start;
  }
}

/* Phone: stack navigation and content blocks. */
@media (max-width: 640px){
  #rogo{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    height:auto !important;
    text-align:center;
  }

  #rogo h1,
  #tel{
    float:none !important;
    width:auto !important;
    margin:0 !important;
  }

  #menu{
    box-sizing:border-box;
    width:100% !important;
    margin-top:18px !important;
    padding:0 16px 10px !important;
    background:#f7fbfe;
  }

  #menu nav{
    gap:8px;
    padding-top:10px;
  }

  #menu nav a{
    box-sizing:border-box;
    flex:1 1 calc(50% - 8px);
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:9px 10px !important;
    border:1px solid #b7d9ee !important;
    background:#fff;
    font-size:14px;
    text-align:center;
  }

  .cl-effect-3 a::after{
    display:none;
  }

  #contents{
    padding-left:12px;
    padding-right:12px;
  }

  #contents h1,
  #contents h2,
  #contents h3{
    float:none !important;
    width:auto !important;
    max-width:100% !important;
    line-height:1.45;
    margin-right:0 !important;
  }

  #contents #top{
    float:none !important;
    box-sizing:border-box;
    width:100% !important;
    max-width:100% !important;
  }

  #gaiyoumenu,
  #gaiyou,
  #gyoumutop,
  #gyoumu1,
  #gyoumu2,
  .gyoumu3,
  #gyoumu4,
  #gyoumu5,
  #gyoumu6,
  #access1,
  .eco,
  #acbox1,
  .acbox2,
  #posuta,
  #bigmap a{
    float:none !important;
    box-sizing:border-box;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  #contents p,
  #access1 p,
  #access1 hr{
    float:none !important;
    box-sizing:border-box;
    width:100% !important;
    max-width:100% !important;
  }

  .enkaku,
  .arrow,
  #insatsu1,
  #insatsu2,
  #insatsu3,
  #insatsu4,
  #insatsu5,
  .oshirase,
  #map-canvas{
    float:none !important;
    box-sizing:border-box;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  #map-canvas{
    height:320px !important;
  }

  #insatsu1 img,
  #insatsu2 img,
  #insatsu3 img,
  #insatsu4 img,
  #insatsu5 img{
    float:none !important;
    display:block;
    margin:10px auto !important;
  }

  #insatsu1 p,
  #insatsu2 p,
  #insatsu3 p,
  #insatsu4 p,
  #insatsu5 p,
  #insatsu4 hr{
    float:none !important;
    box-sizing:border-box;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:10px;
    padding-right:10px;
  }

  #insatsu1 h3,
  #insatsu2 h3,
  #insatsu3 h3,
  #insatsu4 h3,
  #insatsu5 h3{
    float:none !important;
    width:auto !important;
    margin:12px 10px 6px !important;
  }

  #insatsuT1,
  #insatsuT2,
  #insatsuT3,
  #insatsuT4,
  #insatsuT5{
    float:none !important;
    display:block;
    width:auto !important;
    max-width:220px;
  }

  #gyoumu4 p,
  #gyoumu5 p{
    float:none !important;
    width:100% !important;
    margin-left:0 !important;
    text-align:center;
  }

  /* gyoumu.html */
  #gyoumutop{
    min-height:220px;
    height:auto !important;
    padding:16px;
    background-color:#fff;
    background-size:cover;
    background-position:center top;
  }

  #gyoumutop h2{
    float:none !important;
    width:7em !important;
    margin:0 0 10px 0 !important;
    font-size:2.1em;
    background:rgba(255,255,255,0.72);
  }

  #gyoumutop p{
    float:none !important;
    width:68% !important;
    max-width:260px !important;
    margin:0 !important;
    font-size:13px;
    line-height:1.7;
    padding:8px;
    background:rgba(255,255,255,0.72);
  }

  #gyoumu1{
    height:auto !important;
    min-height:0;
    padding-bottom:150px !important;
    background-size:contain;
    background-position:center bottom;
  }

  #gyoumu1 h3{
    float:none !important;
    width:auto !important;
    margin:0 0 12px 0 !important;
  }

  #gyoumu1 p{
    float:none !important;
    width:100% !important;
    margin:0 !important;
    line-height:1.75;
  }

  #gyoumu2{
    height:auto !important;
    padding:8px 12px !important;
    line-height:1.5;
  }

  .gyoumu3 h2,
  .gyoumu3 h3,
  .gyoumu3 p{
    float:none !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  #gyoumu4,
  #gyoumu5{
    height:auto !important;
    min-height:0;
    padding-top:34vw !important;
    background-size:contain;
    background-position:center top;
  }

  #gyoumu5{
    padding-top:24vw !important;
  }

  #gyoumu6{
    height:auto !important;
    margin-bottom:36px !important;
    text-align:center;
  }

  #access1 img,
  #gaiyou img,
  #gyoumu6 img,
  .oshirase img,
  .album img{
    float:none !important;
    display:block;
    margin:12px auto !important;
  }

  #access1 dl,
  #access1 dt,
  #access1 dd,
  #access1 address{
    float:none !important;
    width:100% !important;
  }

  #access1 dl{
    display:grid;
    grid-template-columns:auto 1fr;
    column-gap:18px;
    row-gap:8px;
    margin-top:24px !important;
  }

  #access1 dt,
  #access1 address{
    grid-column:1 / -1;
  }

  #access1 dd{
    margin:0 !important;
    line-height:1.55;
  }

  #access1 dd br{
    display:block;
  }

  #access1 address{
    margin-top:16px;
    line-height:1.55;
  }

  table{
    display:block;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  #sitemap{
    height:auto !important;
    min-height:0;
    padding-bottom:24px;
  }

  #sitemap2{
    box-sizing:border-box;
    width:100% !important;
    padding-left:24px !important;
    padding-right:24px;
  }

  #sitemap p,
  #sitemap2 dl,
  #sitemap2 dt,
  #sitemap2 dd{
    float:none !important;
    width:100% !important;
  }

  #sitemap2 dl{
    margin:0;
  }

  nav#breadcrumbs{
    display:block;
    clear:both;
    overflow:hidden;
  }

  nav#breadcrumbs ol{
    float:none !important;
    height:auto !important;
    line-height:1.6;
    margin-bottom:18px !important;
  }

  nav#breadcrumbs ol li{
    line-height:1.6;
  }

  #torikumi .torikumi__title{
    clear:both;
    margin-top:28px !important;
    margin-bottom:24px !important;
  }

  #contents > h2{
    clear:both;
    margin-top:28px !important;
    margin-bottom:24px !important;
    color:#303030;
    font-size:2.4em;
    font-weight:bold;
    border-bottom:none;
  }

  #contents > h2 + br{
    display:none;
  }

  #top .footer{
    box-sizing:border-box;
    width:100% !important;
    padding:28px 12px !important;
  }

  #top .footer__nav,
  .top-global-nav{
    box-sizing:border-box;
    width:100% !important;
    gap:8px;
  }

  #top .footer__nav a,
  .top-global-nav a{
    box-sizing:border-box;
    width:100%;
    margin-top:0 !important;
    border:1px solid rgba(255,255,255,0.35);
    text-align:center;
  }

  #top #video{
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    object-fit:cover;
  }
}

@media (max-width: 420px){
  #menu nav a{
    flex-basis:100%;
  }
}

/* Responsive hamburger navigation */
.mobile-menu-toggle{
  display:none;
}

@media (max-width: 640px){
  .mobile-menu{
    position:relative;
    z-index:30;
  }

  #top #header.mobile-menu{
    align-items:stretch;
    z-index:60;
  }

  .mobile-menu-toggle{
    box-sizing:border-box;
    width:100%;
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 18px;
    border:1px solid #b7d9ee;
    border-radius:999px;
    color:#111;
    font:inherit;
    font-weight:bold;
    letter-spacing:.04em;
    background:rgba(255,255,255,.92);
    box-shadow:0 8px 22px rgba(0,76,118,.12);
    cursor:pointer;
  }

  #top .mobile-menu-toggle{
    border-color:rgba(255,255,255,.5);
    color:#fff;
    background:rgba(0,0,0,.34);
    box-shadow:0 8px 24px rgba(0,0,0,.2);
  }

  .mobile-menu-toggle__icon{
    width:25px;
    display:flex;
    flex-direction:column;
    gap:5px;
  }

  .mobile-menu-toggle__icon span{
    display:block;
    height:2px;
    border-radius:2px;
    background:currentColor;
    transition:transform .2s ease, opacity .2s ease;
  }

  .mobile-menu-toggle__text{
    flex:1;
    text-align:left;
  }

  .mobile-menu.is-menu-open .mobile-menu-toggle__icon span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
  }

  .mobile-menu.is-menu-open .mobile-menu-toggle__icon span:nth-child(2){
    opacity:0;
  }

  .mobile-menu.is-menu-open .mobile-menu-toggle__icon span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
  }

  #menu.mobile-menu{
    padding:0 16px 12px !important;
  }

  #menu.mobile-menu nav,
  .mobile-menu .top-global-nav,
  #top #header.mobile-menu .top-global-nav{
    position:absolute;
    top:calc(100% + 8px);
    left:16px;
    right:16px;
    z-index:80;
    box-sizing:border-box;
    display:none;
    width:auto !important;
    max-height:calc(100vh - 150px);
    overflow:auto;
    flex-direction:column;
    gap:8px;
    padding:12px;
    border:1px solid #b7d9ee;
    border-radius:18px;
    background:rgba(255,255,255,.97);
    box-shadow:0 18px 42px rgba(0,58,94,.22);
    opacity:0;
    pointer-events:none;
    transform:translateY(-6px);
    transition:opacity .18s ease, transform .18s ease;
  }

  #top #header.mobile-menu .top-global-nav{
    left:0;
    right:0;
    border-color:rgba(255,255,255,.55);
    background:rgba(24,37,45,.94);
    box-shadow:0 18px 42px rgba(0,0,0,.3);
  }

  .mobile-menu .top-global-nav{
    left:0;
    right:0;
    overflow:visible;
    white-space:normal;
    padding:12px;
  }

  #menu.mobile-menu.is-menu-open nav,
  .mobile-menu.is-menu-open .top-global-nav,
  #top #header.mobile-menu.is-menu-open .top-global-nav{
    display:flex;
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
  }

  #menu.mobile-menu nav a,
  .mobile-menu .top-global-nav a,
  #top #header.mobile-menu .top-global-nav a{
    width:100% !important;
    flex-basis:auto;
    border-radius:12px;
    color:#333 !important;
  }
}

@keyframes mobileMenuReveal{
  from{
    opacity:0;
    transform:translateY(-6px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* Torikumi mobile layout: prevent old multi-column widths from collapsing text. */
@media (max-width: 640px){
  #torikumi .torikumi__glid-2,
  #torikumi .torikumi__sdgs-glid-2,
  #torikumi .torikumi__sdgs-glid-3{
    display:block !important;
  }

  #torikumi .torikumi__glid-2__left,
  #torikumi .torikumi__glid-2__right,
  #torikumi .torikumi__sdgs-glid-2__left,
  #torikumi .torikumi__sdgs-glid-2__right,
  #torikumi .torikumi__sdgs-glid-3__left,
  #torikumi .torikumi__sdgs-glid-3__center,
  #torikumi .torikumi__sdgs-glid-3__right,
  #torikumi .torikumi__glid-3__right,
  #torikumi .glid-2__right{
    box-sizing:border-box;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  #torikumi .torikumi__sdgs-list,
  #torikumi .torikumi__sdgs-list--large{
    width:100% !important;
    max-width:320px;
    margin:16px auto 0;
    justify-content:center;
  }

  #torikumi .link{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    line-height:1.6;
    word-break:normal;
    overflow-wrap:anywhere;
  }

  #torikumi .torikumi__image,
  #torikumi .torikumi__sdgs-image,
  #torikumi .fsc__image{
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center;
  }
}

/* Phone number badge: keep text away from the rounded container edge. */
#tel{
  box-sizing:border-box;
  line-height:1.35;
  padding:7px 16px 8px;
}

@media (max-width: 640px){
  #tel{
    min-width:0;
    max-width:calc(100vw - 48px);
    padding:9px 18px 10px !important;
    line-height:1.35;
    border-radius:12px;
    white-space:nowrap;
  }
}

/* Company overview tables */
#gaiyou table.gaiyou,
#gaiyou table.gaiyou2{
  box-sizing:border-box;
  width:100%;
  margin:12px 0 28px;
  border-collapse:separate;
  border-spacing:0;
  font-size:14px;
  line-height:1.75;
}

#gaiyou table.gaiyou th,
#gaiyou table.gaiyou td,
#gaiyou table.gaiyou2 th,
#gaiyou table.gaiyou2 td{
  box-sizing:border-box;
  vertical-align:top;
  padding:7px 10px;
  border-bottom:1px solid #e4eef4;
}

#gaiyou table.gaiyou th{
  width:118px;
  color:#333;
  font-weight:bold;
  white-space:nowrap;
  background:#f5fbff;
}

#gaiyou table.gaiyou td{
  overflow-wrap:anywhere;
}

#gaiyou table.gaiyou2 th{
  width:128px;
  color:#333;
  font-weight:bold;
  white-space:normal;
}

#gaiyou table.gaiyou2 td:first-of-type{
  width:48px;
  color:#555;
  white-space:nowrap;
}

#gaiyou table.gaiyou2 td:last-of-type{
  overflow-wrap:anywhere;
}

@media (max-width: 640px){
  #gaiyou table.gaiyou,
  #gaiyou table.gaiyou2{
    display:block;
    width:100% !important;
    margin:14px 0 30px;
    overflow:visible;
    border-collapse:separate;
    border-spacing:0;
    font-size:15px;
    line-height:1.65;
  }

  #gaiyou table.gaiyou tbody,
  #gaiyou table.gaiyou2 tbody,
  #gaiyou table.gaiyou tr,
  #gaiyou table.gaiyou2 tr,
  #gaiyou table.gaiyou th,
  #gaiyou table.gaiyou td,
  #gaiyou table.gaiyou2 th,
  #gaiyou table.gaiyou2 td{
    display:block;
    width:100% !important;
  }

  #gaiyou table.gaiyou tr{
    margin:0 0 10px;
    padding:0;
    border:1px solid #d9edf8;
    border-radius:12px;
    background:#fff;
    box-shadow:0 5px 18px rgba(0,83,128,.06);
    overflow:hidden;
  }

  #gaiyou table.gaiyou th{
    padding:8px 12px 6px;
    border-bottom:none;
    color:#007ca8;
    font-size:13px;
    font-weight:bold;
    letter-spacing:.04em;
    background:#eef9fe;
  }

  #gaiyou table.gaiyou th[scope="row"]{
    white-space:normal;
  }

  #gaiyou table.gaiyou th[scope="row"] + td{
    padding:9px 12px 12px;
  }

  #gaiyou table.gaiyou th[scope="row"]:not(:empty) + td{
    border-top:1px solid #d9edf8;
  }

  #gaiyou table.gaiyou th.is-empty{
    display:none;
  }

  #gaiyou table.gaiyou th[scope="row"] + td{
    border-bottom:none;
  }

  #gaiyou table.gaiyou th.is-empty + td{
    padding-top:10px;
    border-top:none;
  }

  #gaiyou table.gaiyou td{
    border-bottom:none;
    overflow-wrap:anywhere;
  }

  #gaiyou table.gaiyou2 tr{
    position:relative;
    margin:0 0 12px;
    padding:12px 12px 12px 18px;
    border:1px solid #d9edf8;
    border-left:4px solid #33c9f3;
    border-radius:12px;
    background:#fff;
    box-shadow:0 5px 18px rgba(0,83,128,.06);
  }

  #gaiyou table.gaiyou2 th,
  #gaiyou table.gaiyou2 td{
    padding:0;
    border-bottom:none;
  }

  #gaiyou table.gaiyou2 th{
    margin-bottom:4px;
    color:#007ca8;
    font-size:14px;
    font-weight:bold;
  }

  #gaiyou table.gaiyou2 th:empty{
    display:none;
  }

  #gaiyou table.gaiyou2 td:first-of-type{
    display:inline-block;
    width:auto !important;
    margin:0 0 4px;
    color:#555;
    font-size:13px;
    font-weight:bold;
  }

  #gaiyou table.gaiyou2 td:first-of-type:empty{
    display:none;
  }

  #gaiyou table.gaiyou2 td:last-of-type{
    color:#222;
    overflow-wrap:anywhere;
  }
}

@media (max-width: 640px){
  #gaiyou table.gaiyou tr,
  #gaiyou table.gaiyou2 tr{
    box-sizing:border-box;
    width:100% !important;
  }
}


/* Overview/history page desktop table layout */
@media (min-width: 981px){
  .page-gaiyou2 #contents{
    width:920px;
  }

  .page-gaiyou2 #gaiyoumenu{
    width:180px;
    margin-right:32px;
  }

  .page-gaiyou2 #gaiyoumenu dt,
  .page-gaiyou2 #gaiyoumenu dd{
    width:180px;
  }

  .page-gaiyou2 #gaiyou{
    box-sizing:border-box;
    width:708px;
    padding:30px 0 0;
  }

  .page-gaiyou2 #gaiyou > img{
    max-width:100%;
  }

  .page-gaiyou2 .enkaku{
    box-sizing:border-box;
    width:100%;
    height:auto;
    min-height:42px;
    margin:28px 0 18px;
    padding:8px 16px;
    border-top:2px solid #666;
    border-bottom:2px solid #666;
    background:#d7d7d7;
    color:#222;
    font-size:22px;
    line-height:1.2;
  }

  .page-gaiyou2 #gaiyou table.gaiyou,
  .page-gaiyou2 #gaiyou table.gaiyou2{
    width:100%;
    margin:0 0 34px;
    font-size:14px;
    line-height:1.8;
    border:1px solid #d9e8ef;
    border-bottom:none;
    background:#fff;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th,
  .page-gaiyou2 #gaiyou table.gaiyou td,
  .page-gaiyou2 #gaiyou table.gaiyou2 th,
  .page-gaiyou2 #gaiyou table.gaiyou2 td{
    padding:9px 14px;
    border-bottom:1px solid #d9e8ef;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th{
    width:138px;
    border-right:1px solid #d9e8ef;
    color:#006f99;
    background:#f1f9fd;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th.is-empty{
    color:transparent;
    background:#f8fcfe;
  }

  .page-gaiyou2 #gaiyou table.gaiyou td{
    color:#222;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 th{
    width:150px;
    border-right:1px solid #d9e8ef;
    color:#006f99;
    background:#f1f9fd;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 td:first-of-type{
    width:56px;
    border-right:1px solid #d9e8ef;
    text-align:center;
    color:#555;
    background:#fbfdff;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 td:last-of-type{
    color:#222;
  }
}

/* Overview/history page: desktop and tablet table layout */
@media (min-width: 641px){
  .page-gaiyou2 #contents{
    width:800px;
  }

  .page-gaiyou2 #gaiyoumenu{
    width:180px;
    margin-right:25px;
  }

  .page-gaiyou2 #gaiyoumenu dt,
  .page-gaiyou2 #gaiyoumenu dd{
    width:180px;
  }

  .page-gaiyou2 #gaiyou{
    box-sizing:border-box;
    width:595px;
    padding:30px 0 0;
  }

  .page-gaiyou2 #gaiyou > img{
    max-width:100%;
  }

  .page-gaiyou2 .enkaku{
    box-sizing:border-box;
    width:100%;
    height:auto;
    min-height:42px;
    margin:28px 0 18px;
    padding:8px 16px;
    border-top:2px solid #666;
    border-bottom:2px solid #666;
    background:#d7d7d7;
    color:#222;
    font-size:22px;
    line-height:1.2;
  }

  .page-gaiyou2 #gaiyou table.gaiyou,
  .page-gaiyou2 #gaiyou table.gaiyou2{
    width:100%;
    margin:0 0 34px;
    font-size:14px;
    line-height:1.8;
    border:1px solid #d9e8ef;
    border-bottom:none;
    background:#fff;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th,
  .page-gaiyou2 #gaiyou table.gaiyou td,
  .page-gaiyou2 #gaiyou table.gaiyou2 th,
  .page-gaiyou2 #gaiyou table.gaiyou2 td{
    padding:9px 14px;
    border-bottom:1px solid #d9e8ef;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th{
    width:138px;
    border-right:1px solid #d9e8ef;
    color:#006f99;
    background:#f1f9fd;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th.is-empty{
    color:transparent;
    background:#f8fcfe;
  }

  .page-gaiyou2 #gaiyou table.gaiyou td{
    color:#222;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 th{
    width:150px;
    border-right:1px solid #d9e8ef;
    color:#006f99;
    background:#f1f9fd;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 td:first-of-type{
    width:56px;
    border-right:1px solid #d9e8ef;
    text-align:center;
    color:#555;
    background:#fbfdff;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 td:last-of-type{
    color:#222;
  }
}

@media (min-width: 981px){
  .page-gaiyou2 #contents{
    width:920px;
  }

  .page-gaiyou2 #gaiyoumenu{
    margin-right:32px;
  }

  .page-gaiyou2 #gaiyou{
    width:708px;
  }
}

/* Overview/history page: keep mobile styling close to desktop, only reflow columns. */
@media (max-width: 640px){
  .page-gaiyou2 #gaiyou table.gaiyou,
  .page-gaiyou2 #gaiyou table.gaiyou2{
    border:1px solid #d9e8ef;
    border-bottom:none;
    background:#fff;
  }

  .page-gaiyou2 #gaiyou table.gaiyou tr{
    display:grid;
    grid-template-columns:minmax(7.5em, 32%) 1fr;
    gap:0;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:#fff;
    box-shadow:none;
    overflow:visible;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th,
  .page-gaiyou2 #gaiyou table.gaiyou td{
    display:block;
    width:auto !important;
    padding:9px 10px;
    border-bottom:1px solid #d9e8ef;
    border-top:0 !important;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th{
    color:#006f99;
    font-size:14px;
    letter-spacing:0;
    background:#f1f9fd;
    border-right:1px solid #d9e8ef;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th.is-empty{
    display:block;
    color:transparent;
    background:#f8fcfe;
  }

  .page-gaiyou2 #gaiyou table.gaiyou th.is-empty + td{
    padding-top:9px;
  }

  .page-gaiyou2 #gaiyou table.gaiyou td{
    color:#222;
    background:#fff;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 tr{
    display:grid;
    grid-template-columns:minmax(8.5em, 38%) minmax(3em, 15%) 1fr;
    gap:0;
    margin:0;
    padding:0;
    border:0;
    border-left:0;
    border-radius:0;
    background:#fff;
    box-shadow:none;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 th,
  .page-gaiyou2 #gaiyou table.gaiyou2 td{
    display:block;
    width:auto !important;
    padding:9px 10px;
    border-bottom:1px solid #d9e8ef;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 th{
    margin:0;
    color:#006f99;
    font-size:14px;
    background:#f1f9fd;
    border-right:1px solid #d9e8ef;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 th:empty{
    display:block;
    background:#f8fcfe;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 td:first-of-type{
    display:block;
    margin:0;
    color:#555;
    font-size:14px;
    font-weight:normal;
    text-align:center;
    background:#fbfdff;
    border-right:1px solid #d9e8ef;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 td:first-of-type:empty{
    display:block;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 td:last-of-type{
    color:#222;
    background:#fff;
  }
}

@media (max-width: 430px){
  .page-gaiyou2 #gaiyou table.gaiyou2 tr{
    grid-template-columns:minmax(8em, 42%) 1fr;
  }

  .page-gaiyou2 #gaiyou table.gaiyou2 td:last-of-type{
    grid-column:1 / -1;
    border-left:0;
  }
}
