@charset "utf-8";
/* reset */
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}address{font-style:normal}*{margin:0;padding:0}*,:after,:before{background-repeat:no-repeat;box-sizing:border-box}img{vertical-align:bottom;-webkit-backface-visibility:hidden}

/*--------------------------------------------------------------------------------
  base
--------------------------------------------------------------------------------*/
:root {
  --base-width: 1280px;
  --sp-max-width: 540px;
  --side-space: clamp(20px, (60 / 1400 * 100vw), 60px);
  --space-max: clamp(80px, (180 / 1200 * 100vw), 180px);
  --space-l: clamp(60px, (140 / 1200 * 100vw), 140px);
  --space-m: clamp(40px, (100 / 1200 * 100vw), 100px);
  --space-s: clamp(30px, (60 / 1200 * 100vw), 60px);
  --space-2s: clamp(15px, (30 / 1200 * 100vw), 30px);
  --fs-max: clamp(2em, 4vw, 3em);
  --fs-4l: clamp(1.8em, 3.5vw, 2.4em);
  --fs-3l: clamp(1.6em, 3.25vw, 2em);
  --fs-2l: clamp(1.4em, 3vw, 1.8em);
  --fs-l: clamp(1.25em, 2.5vw, 1.5em);
  --fs-m: clamp(1.15em, 2.25vw, 1.25em);
  --black: #121E30;
  --navy: #1E2D4B;
  --bnavy: #1E375F;
  --blue: #19509B;
  --bblue: #3273C8;
  --gblue: #28B4BE;
  --yellow: #FFC850;
  --byellow: #FFE15F;
  --orange: #FF9641;
  --red: #DC3E44;
  --gray: #717883;
  --bg-blue: #E5F5FD;
  --bg-gray: #EEF2F8;
  --black-rgba: 18,30,48;
  --blue-rgba: 25,80,155;
  --cubic-bezier: cubic-bezier(.23,1,.32,1);
  --hover-trans: color 0.15s ease-in-out, opacity 0.15s ease-in-out, background 0.1s ease-in-out, border 0.1s ease-in-out, fill 0.1s ease-in-out, filter 0.1s ease-in-out;
  --ff-wf: 'Roboto','IBM Plex Sans JP','Helvetica Neue','Arial','Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;
}
html,
body {
  height: 100%;
}
body {
  font-family: 'Roboto','Helvetica Neue','Arial','Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;
  font-size: 17px;
  font-weight: 400;
  color: var(--black);
  min-width: 360px;
  word-wrap: break-word;
  text-align: center;
  line-height: 2;
}
@media (hover: none) {
  body { min-width: inherit; }
}
@media screen and (min-width: 761px) and (max-width: 1400px) {
  body {
    font-size: clamp(15px, 1.21vw, 17px);
  }
}
@media screen and (max-width: 760px) {
  body {
    font-size: clamp(14px, 2.5vw, 16px);
  }
}
[data-ruby] {
  position: relative;
}
[data-ruby]:before {
  content: attr(data-ruby);
  position: absolute;
  top: -1.5em;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  margin: auto;
  font-size: 0.2em;
}
@media screen and (max-width: 640px) {
  [data-ruby]::before {
    font-size: 0.5rem;
  }
}
rt {
  display: none;
}
.js_rpsTable,
.js_rpsBlock {
  overflow: hidden;
}
.js_linkBox {
  cursor: pointer;
}
.js_iframe iframe {
  pointer-events: none;
  cursor: pointer;
}
.clear:after {
  content: "";
  display: block;
  height: 0;
  clear: both;
}
.t-nowrap { display: inline-block; }
.fancybox-slide--html {
  padding: var(--side-space) !important;
}
.fancybox-container * {
  transition: none;
}

.ff-em { font-family: var(--ff-wf); }
.fs-max { font-size: var(--fs-max); }
.fs-4l { font-size: var(--fs-4l); }
.fs-3l { font-size: var(--fs-3l); }
.fs-2l { font-size: var(--fs-2l); }
.fs-l { font-size: var(--fs-l); }
.fs-m { font-size: var(--fs-m); }
.fc-navy { color: var(--navy); }
.fc-bnavy { color: var(--bnavy); }
.fc-blue { color: var(--blue); }
.fc-bblue { color: var(--bblue); }
.fc-gblue { color: var(--gblue); }
.fc-yellow { color: var(--yellow); }
.fc-orange { color: var(--orange); }
.fc-red { color: var(--red); }

/* img
----------------------------------------*/
img {
  max-width: 100%;
  height: auto;
}
img[src$=".svg"] {
  width: 100%;
  height: auto;
}
.svg-icon {
  fill: currentColor;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
@media (hover: hover) {
  img.img-hv,
  a.img-hv img,
  .js_linkBox .img-hv img,
  .js_linkBox img.img-hv {
    transition: opacity 0.2s ease-in-out;
  }
  a .svg-icon {
    transition: var(--hover-trans);
  }
  img.img-hv:hover,
  a.img-hv:hover img,
  .js_linkBox:hover .img-hv img,
  .js_linkBox:hover img.img-hv {
    opacity: 0.6;
  }
}

/* link
----------------------------------------*/
a {
  outline: none;
}
a,
a:visited,
a:hover {
  color: var(--blue);
  text-decoration: underline;
}
@media (hover: hover) {
  a {
    transition: var(--hover-trans);
  }
  a:hover,
  .js_linkBox:hover a {
    color: var(--bblue);
    text-decoration: none;
  }
  a[href^="tel:"] {
    pointer-events: none;
    cursor: default;
    color: inherit;
    text-decoration: none;
  }
}

/*--------------------------------------------------------------------------------
  swiper navigation
--------------------------------------------------------------------------------*/

/* scrollbar
----------------------------------------*/
.swiper-scrollbar {
  border-radius: 2px !important;
  background: rgba(var(--black-rgba),0.1) !important;
}
.swiper-horizontal > .swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-horizontal {
  left: 0 !important;
  bottom: 0 !important;
  height: 2px !important;
  width: 100% !important;
}
.swiper-vertical > .swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-vertical {
  right: 0 !important;
  top: 0 !important;
  width: 2px !important;
  height: 100% !important;
}
.swiper-scrollbar-drag {
  background: var(--navy) !important;
}

/* button
----------------------------------------*/
.swiper-button-next,
.swiper-button-prev {
  position: relative !important;
  top: inherit !important;
  left: inherit !important;
  right: inherit !important;
  margin-top: 0 !important;
  width: clamp(2.8rem, 4vw + 2rem, 4.2rem) !important;
  height: clamp(2.8rem, 4vw + 2rem, 4.2rem) !important;
  color: var(--navy) !important;
}
.swiper-button-prev:after,
.swiper-button-next:after {
  display: none;
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 1 !important;;
}
.swiper-button-next:before,
.swiper-button-prev:before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  border-radius: 100%;
  background: #FFF;
}
.swiper-button-next svg,
.swiper-button-prev svg {
  width: 28%;
  height: 28%;
  position: relative;
  z-index: 1;
  fill: var(--navy);
}
.swiper-button-prev svg {
  transform: rotate(180deg);
}
.swiper-button-prev.swiper-button-disabled svg,
.swiper-button-next.swiper-button-disabled svg {
  opacity: 0.3;
}
