*,
::after,
::before {
  box-sizing: border-box
}

::after,
::before {
  text-decoration: inherit;
  vertical-align: inherit
}

html {
  cursor: default;
  line-height: 1.5;
  tab-size: 4;
  -webkit-tap-highlight-color: transparent;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  word-break: break-word
}

body {
  margin: 0
}

h1 {
  font-size: 2em
}

dl dl,
dl ol,
dl ul,
ol dl,
ul dl {
  margin: 0
}

ol ol,
ol ul,
ul ol,
ul ul {
  margin: 0
}

hr {
  height: 0;
  overflow: visible
}

main {
  display: block
}

nav ol,
nav ul {
  list-style: none;
  padding: 0
}

pre {
  font-family: monospace, monospace;
  font-size: 1em
}

a {
  background-color: transparent
}

abbr[title] {
  text-decoration: underline;
  text-decoration: underline dotted
}

b,
strong {
  font-weight: bolder
}

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em
}

small {
  font-size: 80%
}

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle
}

audio,
video {
  display: inline-block
}

audio:not([controls]) {
  display: none;
  height: 0
}

iframe {
  border-style: none
}

img {
  border-style: none
}

svg:not([fill]) {
  fill: currentColor
}

svg:not(:root) {
  overflow: hidden
}

table {
  border-collapse: collapse
}

button,
input,
select {
  margin: 0
}

button {
  overflow: visible;
  text-transform: none
}

[type=button],
[type=reset],
[type=submit],
button {
  -webkit-appearance: button
}

fieldset {
  border: 1px solid #a0a0a0;
  padding: .35em .75em .625em
}

input {
  overflow: visible
}

legend {
  color: inherit;
  display: table;
  max-width: 100%;
  white-space: normal
}

progress {
  display: inline-block;
  vertical-align: baseline
}

select {
  text-transform: none
}

textarea {
  margin: 0;
  overflow: auto;
  resize: vertical
}

[type=checkbox],
[type=radio] {
  padding: 0
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto
}

::-webkit-input-placeholder {
  color: inherit;
  opacity: .54
}

::-webkit-search-decoration {
  -webkit-appearance: none
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit
}

::-moz-focus-inner {
  border-style: none;
  padding: 0
}

:-moz-focusring {
  outline: 1px dotted ButtonText
}

:-moz-ui-invalid {
  box-shadow: none
}

details {
  display: block
}

dialog {
  background-color: #fff;
  border: solid;
  color: #000;
  display: block;
  height: fit-content;
  left: 0;
  margin: auto;
  padding: 1em;
  position: absolute;
  right: 0;
  width: fit-content
}

dialog:not([open]) {
  display: none
}

summary {
  display: list-item
}

canvas {
  display: inline-block
}

template {
  display: none
}

[tabindex],
a,
area,
button,
input,
label,
select,
summary,
textarea {
  touch-action: manipulation
}

[hidden] {
  display: none
}

[aria-busy=true] {
  cursor: progress
}

[aria-controls] {
  cursor: pointer
}

[aria-disabled=true],
[disabled] {
  cursor: not-allowed
}

[aria-hidden=false][hidden] {
  display: inline;
  display: initial
}

[aria-hidden=false][hidden]:not(:focus) {
  clip: rect(0, 0, 0, 0);
  position: absolute
}

/*
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: local("Noto Sans CJK JP Regular"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf) format("opentype")
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: local("Noto Sans CJK JP Bold"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.woff2) format("woff2"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.woff) format("woff"), url(//fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.otf) format("opentype")
}
*/

body,
button,
input,
textarea {
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}

* {
  margin: 0;
  padding: 0
}

:after,
:before {
  display: block
}

::selection {
  background-color: #778011;
  color: #fff
}

html {
  font-size: 62.5%
}

body {
  font-size: calc(1.285rem + .315vw);
  line-height: 1.6;
  overflow-x: hidden
}

body,
button,
textarea {
  color: #444
}

input[type=checkbox],
input[type=radio],
label,
select {
  cursor: pointer
}

a {
  color: #778011
}

a:hover {
  text-decoration: none
}

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

p {
  line-height: 1.6
}

li {
  list-style-type: none
}

.clearfix:after {
  content: "";
  display: block;
  clear: both
}

.mb5 {
  margin-bottom: 5px
}

.mb10 {
  margin-bottom: 10px
}

.mb15 {
  margin-bottom: 15px
}

.mb20 {
  margin-bottom: 20px
}

.mb25 {
  margin-bottom: 25px
}

.mb30 {
  margin-bottom: 25px
}

.mb35 {
  margin-bottom: 30px
}

.mb40 {
  margin-bottom: 30px
}

.mb50 {
  margin-bottom: 30px
}

.mb60 {
  margin-bottom: 30px
}

.mb70 {
  margin-bottom: 35px
}

.mb80 {
  margin-bottom: 40px
}

.mb90 {
  margin-bottom: 45px
}

.mb100 {
  margin-bottom: 50px
}

.mb110 {
  margin-bottom: 55px
}

.mb120 {
  margin-bottom: 60px
}

.mb130 {
  margin-bottom: 60px
}

.mb140 {
  margin-bottom: 60px
}

.mb150 {
  margin-bottom: 60px
}

.mb160 {
  margin-bottom: 70px
}

.pcOnly {
  display: none
}

.spNone {
  display: none
}

.telLink {
  color: inherit;
  text-decoration: none
}

.blockCenter {
  margin-right: auto;
  margin-left: auto
}

.centerBox {
  max-width: 1030px;
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px
}

.centerBox--1060 {
  max-width: 1090px;
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px
}

.centerBox--1160 {
  max-width: 1190px;
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px
}

.header {
  background: linear-gradient(#0e4bd5 0, #467aef 100%);
  position: relative
}

.headerWrap {
  padding: 15px 0;
  position: relative;
  max-width: 1000px;
  margin: 0 auto
}

.headerLink {
  display: inline-block;
  transition: .3s;
  text-decoration: none;
  margin: 0 0 0 15px
}

.headerLink:hover {
  opacity: .8
}

.headTitle {
  color: #fff;
  font-size: calc(1.425rem + 1.575vw);
  font-weight: 500
}

.headTitleSpan {
  color: #ffe44b
}

.headButtonWrap {
  position: absolute;
  top: 15px;
  right: 0
}

.headButton {
  background: #ffe44b;
  position: relative;
  top: 0;
  height: 50px;
  width: 50px
}

.headButton span {
  position: absolute;
  background: #fff;
  width: 30px;
  height: 2px;
  transition: .3s
}

.headButton span:nth-of-type(1) {
  left: 50%;
  top: calc(50% + 10px);
  transform: translate(-50%, -50%)
}

.headButton span:nth-of-type(2) {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%)
}

.headButton span:nth-of-type(3) {
  left: 50%;
  top: calc(50% - 10px);
  transform: translate(-50%, -50%)
}

.headButton.on span {
  position: absolute;
  background: #fff;
  width: 30px;
  height: 2px
}

.headButton.on span:nth-of-type(1) {
  left: 50%;
  top: calc(50%);
  transform: translate(-50%, -50%) rotate(405deg)
}

.headButton.on span:nth-of-type(2) {
  left: 50%;
  top: 50%;
  transform: translate(0, -50%);
  opacity: 0
}

.headButton.on span:nth-of-type(3) {
  left: 50%;
  top: calc(50%);
  transform: translate(-50%, -50%) rotate(-405deg)
}

nav {
  display: none;
  margin: 15px 0
}

.headNavItem:not(:last-of-type) {
  border-bottom: solid 1px #ddd
}

.headNavLink {
  transition: .3s;
  color: #fff;
  font-size: calc(1.295rem + .405vw);
  font-weight: 500;
  display: flex;
  align-items: center;
  min-height: 50px;
  padding: 0 15px;
  text-decoration: none
}

.headNavLink:hover {
  opacity: .8
}

.headSub {
  border-top: solid 1px #ffe44b;
  margin: 0 30px;
  padding: 15px 15px;
  max-width: 1000px;
  margin: 15px 15px auto
}

.headTelTitle {
  color: #fff;
  font-size: calc(1.255rem + .045vw);
  font-weight: 500;
  text-align: center
}

.headInfo {
  color: #fff;
  font-size: 1.2rem;
  font-weight: 500;
  text-align: center
}

.headTelWrap {
  display: flex;
  align-items: center;
  justify-content: center
}

.headTelWrap span {
  margin: 0 5px 0 0
}

.headTel.telLink {
  color: #ffe44b;
  transition: .3s;
  font-size: calc(1.385rem + 1.215vw);
  font-weight: 800
}

.headTel.telLink:hover {
  opacity: .8
}

.headTel.telLink a {
  text-decoration: none;
  color: #ffe44b;
  transition: .3s;
  font-size: calc(1.385rem + 1.215vw);
  font-weight: 800
}

.headTel.telLink a:hover {
  opacity: .8
}

main {
  margin: 0 0 100px
}

.bread {
  max-width: 1000px;
  margin: 0 auto 60px;
  display: flex
}

.breadItem {
  display: flex;
  align-items: center
}

.breadItemIcon {
  margin: 0 15px
}

.breadLink {
  display: block;
  text-decoration: none;
  color: #444;
  font-size: calc(1.255rem + .045vw)
}

.breadText {
  display: block;
  font-size: calc(1.255rem + .045vw)
}

.commonTitleWrap {
  max-width: 490px;
  margin: 0 auto 60px;
  border-top: solid 6px #467aef
}

.commonTitleSub {
  text-align: center;
  font-size: calc(1.375rem + 1.125vw);
  color: #000
}

.commonTitle {
  font-size: calc(1.775rem + 4.725vw);
  color: #000;
  text-align: center;
  font-weight: 500;
  line-height: 1.5
}

.pageTitleWrap {
  margin: 0 0 10px
}

.pageTitle {
  display: flex;
  justify-content: center;
  align-items: center;
  background: url(../images/common_pageTitle_bg.png);
  background-size: cover;
  min-height: 130px
}

.pageTitle {
  font-size: calc(1.525rem + 2.475vw);
  color: #000
}

.footerWrap {
  padding: 0 15px;
  margin: 0 0 50px
}

.footerTitle {
  font-size: calc(1.425rem + 1.575vw);
  color: #000;
  font-weight: 600;
  margin: 0 0 30px;
  text-align: center
}

.footerAddress {
  color: #000;
  font-size: calc(1.275rem + .225vw);
  font-weight: 500;
  text-align: center
}

.footerTime {
  text-align: center;
  color: #000;
  font-size: calc(1.275rem + .225vw)
}

.footerTelWrap {
  display: flex;
  justify-content: center;
  flex-wrap: wrap
}

.footerTel {
  font-weight: 600;
  margin: 0 15px 5px 15px;
  color: #000;
  font-size: calc(1.475rem + 2.025vw)
}

.footerTel a {
  text-decoration: none;
  font-size: calc(1.475rem + 2.025vw);
  color: #000;
  transition: .3s;
  font-weight: 800
}

.footerTel a:hover {
  opacity: .8
}

.footerFax {
  margin: 0 15px 5px 15px;
  color: #000;
  font-weight: 600;
  font-size: calc(1.475rem + 2.025vw)
}

.footerMap {
  background: #1058cb;
  padding: 15px
}

.footerMapInner {
  position: relative;
  padding: 0 0 30%;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  min-height: 300px
}

.footerMapInner iframe {
  position: absolute;
  height: 100%;
  width: 100%
}

.footerCopy {
  background: #1058cb;
  padding: 15px;
  color: #fff
}

.footerCopy small {
  font-size: calc(1.255rem + .045vw);
  font-weight: 500;
  display: flex;
  justify-content: center;
  align-items: center
}

.pageNationList {
  display: flex;
  align-items: center;
  justify-content: center
}

.pageNationItem:not(:last-of-type) {
  margin: 0 5px 0 0
}

.pageNationLink {
  display: flex;
  height: 35px;
  width: 35px;
  border: solid 1px #000;
  justify-content: center;
  align-items: center;
  color: #444;
  text-decoration: none;
  transition: .3s
}

.pageNationLink:hover {
  transform: translateY(-10px)
}

.pageNationItem a.active {
  color: #fff;
  background-color: #000;
  border: solid 1px #000
}

.arrowPrev {
  border-style: none;
  transition: .3s;
  border: solid 1px transparent
}

.arrowPrev:hover {
  background-color: transparent;
  border: solid 1px transparent;
  opacity: .8;
  color: #444;
  transform: translateY(0)
}

.arrowPrev span {
  border-top: solid 3px;
  border-right: solid 3px;
  height: 10px;
  width: 10px;
  transform: rotate(225deg)
}

.arrowNext {
  border-style: none;
  transition: .3s;
  border: solid 1px transparent
}

.arrowNext:hover {
  background-color: transparent;
  border: solid 1px transparent;
  opacity: .8;
  color: #444;
  transform: translateY(0)
}

.arrowNext span {
  border-top: solid 3px;
  border-right: solid 3px;
  height: 10px;
  width: 10px;
  transform: rotate(45deg)
}

@media (min-width:768px) {
  body {
    font-size: calc(1.285rem + .315vw)
  }

  .mb30 {
    margin-bottom: 30px
  }

  .mb35 {
    margin-bottom: 35px
  }

  .mb40 {
    margin-bottom: 40px
  }

  .mb50 {
    margin-bottom: 50px
  }

  .mb60 {
    margin-bottom: 60px
  }

  .mb70 {
    margin-bottom: 70px
  }

  .mb80 {
    margin-bottom: 80px
  }

  .mb90 {
    margin-bottom: 90px
  }

  .mb100 {
    margin-bottom: 100px
  }

  .mb110 {
    margin-bottom: 110px
  }

  .mb120 {
    margin-bottom: 120px
  }

  .mb130 {
    margin-bottom: 130px
  }

  .mb140 {
    margin-bottom: 140px
  }

  .mb150 {
    margin-bottom: 150px
  }

  .mb160 {
    margin-bottom: 160px
  }

  .spOnly {
    display: none
  }

  .spNone {
    display: block
  }
}

@media print,
screen and (min-width:768px) {
  .pageNationItem:not(:last-of-type) {
    margin: 0 10px 0 0
  }
}

@media (min-width:960px) {
  .pcOnly {
    display: block
  }

  .headButton {
    display: none
  }

  nav {
    display: block !important;
    height: auto !important;
    margin: 20px 0 0
  }

  .headNavList {
    display: flex;
    justify-content: center;
    align-items: center
  }

  .headNavItem:not(:last-of-type) {
    border-bottom: solid 0
  }

  .headNavLink {
    padding: 15px
  }

  .headSub {
    border-top: solid 0 #ffe44b;
    position: absolute;
    top: 15px;
    right: 0;
    margin: 0;
    padding: 0
  }

  .headTelTitle {
    text-align: left
  }

  .headInfo {
    text-align: left
  }

  .headTelWrap {
    justify-content: flex-start
  }

  .headBar {
    position: absolute;
    border-bottom: solid 1px #ffe44b;
    left: 0;
    right: 0
  }
}

@media (min-width:1000px) {
  body {
    font-size: 1.6rem
  }

  .headTitle {
    font-size: 3rem
  }

  .headNavLink {
    font-size: 1.7rem
  }

  .headTelTitle {
    font-size: 1.3rem
  }

  .headTel.telLink {
    font-size: 2.6rem
  }

  .headTel.telLink a {
    font-size: 2.6rem
  }

  .breadLink {
    font-size: 1.3rem
  }

  .breadText {
    font-size: 1.3rem
  }

  .commonTitleSub {
    font-size: 2.5rem
  }

  .commonTitle {
    font-size: 6.5rem
  }

  .pageTitle {
    font-size: 4rem
  }

  .footerTitle {
    font-size: 3rem
  }

  .footerAddress {
    font-size: 1.5rem
  }

  .footerTime {
    font-size: 1.5rem
  }

  .footerTel {
    font-size: 3.5rem
  }

  .footerTel a {
    font-size: 3.5rem
  }

  .footerFax {
    font-size: 3.5rem
  }

  .footerCopy small {
    font-size: 1.3rem
  }
}

@media (min-width:768px) and (min-width:1000px) {
  body {
    font-size: 1.6rem
  }
}

@media print {
  body {
    width: 960px;
    margin: 0 auto
  }
}