*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth
}
body{
  margin:0;
  background:#fff;
  color:#555;
  font-family:Arial,"Helvetica Neue","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-size:14px;
  line-height:1.9
}
a{
  color:inherit;
  text-decoration:none
}
a:hover{
  color:#267bc5
}
img{
  max-width:100%;
  height:auto
}
header{
  background:#fff
}
.head{
  max-width:1140px;
  margin:auto;
  min-height:94px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 28px;
  gap:20px
}
.branding{
  display:flex;
  align-items:center;
  gap:12px
}
.logo{
  height:65px;
  width:65px;
  object-fit:contain
}
.brand-name{
  font-size:23px;
  font-weight:700;
  line-height:1.25;
  color:#111;
  letter-spacing:-.025em
}
.brand-sub{
  font-size:11px;
  color:#111;
  line-height:1.5
}
nav{
  display:flex;
  gap:37px;
  align-items:center;
  font-weight:700;
  color:#333;
  font-size:13px
}
nav a[aria-current=page]{
  color:#2478b8
}
.menu-toggle{
  display:none
}
main{
  min-height:50vh
}
.content{
  max-width:1060px;
  margin:0 auto;
  padding:58px 30px
}
.home-content{
  max-width:1060px;
  margin:0 auto;
  padding:45px 30px
}
.page-hero{
  background:#191919;
  color:white;
  text-align:center;
  padding:67px 20px 70px
}
.page-hero h1{
  margin:0;
  font-size:38px;
  font-weight:500;
  color:white;
  line-height:1.5
}
.page-hero p{
  margin:0;
  font-size:15px;
  color:#eee
}
.hero-slider{
  position:relative;
  width:100%;
  max-width:1060px;
  margin:0 auto;
  aspect-ratio:1.68;
  background:#eee;
  overflow:hidden
}
.hero-slide{
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  opacity:0;
  transition:opacity 1s
}
.hero-slide.active{
  opacity:1
}
.hero-caption{
  display:none
}
.slider-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:rgba(0,0,0,.17);
  color:white;
  font-size:30px;
  cursor:pointer;
  opacity:0
}
.hero-slider:hover .slider-arrow,.slider-arrow:focus-visible{
  opacity:1
}
.prev{
  left:0
}
.next{
  right:0
}
.section-title{
  text-align:left;
  font-size:34px;
  font-weight:700;
  color:#777;
  line-height:1.4;
  margin:0 0 30px
}
.vision-block{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:68px;
  align-items:start
}
.vision-brush{
  display:block;
  width:225px;
  margin:auto
}
.vision-text{
  font-size:13px;
  line-height:2.15;
  padding-top:15px
}
.vision-text p{
  margin:0 0 16px
}
.offices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px 65px;
  border-top:1px solid #888;
  border-bottom:1px solid #888;
  padding:40px 0;
  margin:45px 0
}
.office h3{
  font-size:14px;
  font-weight:400;
  margin:0 0 10px
}
.office p{
  font-size:13px;
  margin:0 0 10px;
  line-height:1.8
}
.office img{
  display:block;
  width:76px;
  height:76px;
  object-fit:cover
}
.access-title{
  text-transform:none
}
.access-blank{
  height:275px
}
.access-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:65px;
  font-size:13px
}
.access-cols h3{
  color:#111;
  font-size:14px;
  margin:0 0 12px
}
.access-cols p{
  margin:0 0 12px
}
.company-info{
  font-size:13px;
  line-height:2.0;
  max-width:850px
}
.company-info h2{
  font-size:16px;
  color:#222
}
.company-info p{
  margin:0 0 15px
}
.company-info .indent{
  margin-left:33px
}
.shop-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  max-width:780px;
  gap:30px 35px;
  margin:auto;
  text-align:center
}
.shop-card img{
  width:170px;
  height:170px;
  object-fit:cover;
  border-radius:10px
}
.shop-card h3{
  font-size:14px;
  font-weight:400;
  margin:8px 0
}
.recruit-content{
  min-height:150px
}
.recruit-content p{
  margin:0 0 18px
}
.contact-content{
  max-width:820px
}
.notice{
  font-size:14px;
  line-height:2.1;
  padding:0
}
.notice h2{
  font-size:20px
}
.contact-phone a{
  text-decoration:underline
}
.backtop{
  position:fixed;
  right:18px;
  bottom:32%;
  background:#1682cc;
  color:white;
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  font-size:22px;
  z-index:5
}
footer{
  background:#30363c;
  color:#fff;
  text-align:center;
  font-size:12px;
  padding:16px 10px
}
.breadcrumbs{
  font-size:14px
}
@media(max-width:767px){
  body{
    font-size:14px
  }
  .head{
    min-height:0;
    padding:17px 20px;
    display:block;
    position:relative;
    text-align:center
  }
  .branding{
    flex-direction:column;
    gap:5px
  }
  .logo{
    width:66px;
    height:66px
  }
  .brand-name{
    font-size:25px
  }
  .brand-sub{
    font-size:12px
  }
  .menu-toggle{
    display:block;
    position:absolute;
    right:20px;
    bottom:10px;
    border:0;
    background:transparent;
    color:#777;
    font-size:25px;
    line-height:1;
    cursor:pointer;
    padding:10px
  }
  .head nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:#fff;
    z-index:15;
    box-shadow:0 8px 14px #0002;
    text-align:left;
    gap:0;
    flex-direction:column;
    align-items:stretch
  }
  .head nav.open{
    display:flex
  }
  .head nav a{
    padding:12px 20px;
    border-top:1px solid #e6e6e6;
    font-size:14px;
    font-weight:400
  }
  .page-hero{
    padding:62px 15px
  }
  .page-hero h1{
    font-size:34px
  }
  .content,.home-content{
    padding:28px 24px
  }
  .hero-slider{
    margin-top:0;
    aspect-ratio:1.68
  }
  .section-title{
    font-size:30px;
    margin-bottom:20px
  }
  .vision-block{
    display:block
  }
  .vision-brush{
    width:185px;
    margin:5px auto 25px
  }
  .vision-text{
    padding:0;
    font-size:14px;
    line-height:2
  }
  .offices{
    grid-template-columns:1fr;
    gap:28px;
    padding:35px 0
  }
  .office img{
    width:80px;
    height:80px
  }
  .access-blank{
    height:220px
  }
  .access-cols{
    grid-template-columns:1fr;
    gap:14px
  }
  .company-info{
    font-size:14px
  }
  .shop-grid{
    grid-template-columns:1fr;
    gap:30px
  }
  .shop-card img{
    width:230px;
    height:230px
  }
  .shop-card h3{
    font-size:15px
  }
  .backtop{
    bottom:15%;
    right:10px
  }
  .recruit-content{
    min-height:110px
  }
}
@media(prefers-reduced-motion:reduce){
  .hero-slide{
    transition:none
  }
}
/* Embedded location map: same content width as Access text */
.access-map{
  width:100%;
  height:275px;
  margin:0 0 24px
}
.access-map iframe{
  display:block;
  width:100%;
  height:275px;
  border:0
}
.shop-card a{
  display:inline-block;
  line-height:0
}
.shop-card a:focus-visible{
  outline:3px solid #267bc5;
  outline-offset:4px;
  border-radius:10px
}
