﻿@font-face {
  font-family: 'DMSans';
  font-style: normal;
  font-weight: 900;
  src: url('../fonts/dmsans.woff2') format('woff2'), url('../fonts/dmsans.woff') format('woff'), url('../fonts/dmsans.ttf') format('truetype'); 
}
@font-face {
	font-family: 'Roboto';
	font-style: normal;
	font-weight: 700;
	src: url('../fonts/roboto_bold.woff2') format('woff2'), url('../fonts/roboto_bold.woff') format('woff'), url('../fonts/roboto_bold.ttf') format('truetype'); 
}
@font-face {
	font-family: 'Roboto';
	font-style: normal;
	font-weight: 900;
	src: url('../fonts/roboto_black.woff2') format('woff2'), url('../fonts/roboto_black.woff') format('woff'), url('../fonts/roboto_black.ttf') format('truetype'); 
}
@font-face {
	font-family: 'IBM Plex Sans JP';
	font-style: normal;
	font-weight: 400;
	src: url('../fonts/ibm-regular.woff2') format('woff2'), url('../fonts/ibm-regular.woff') format('woff'), url('../fonts/ibm-regular.ttf') format('truetype'); 
}
@font-face {
	font-family: 'IBM Plex Sans JP';
	font-style: normal;
	font-weight: 500;
	src: url('../fonts/ibm-medium.woff2') format('woff2'), url('../fonts/ibm-medium.woff') format('woff'), url('../fonts/ibm-medium.ttf') format('truetype'); 
}
@font-face {
	font-family: 'IBM Plex Sans JP';
	font-style: normal;
	font-weight: 600;
	src: url('../fonts/ibm-semibold.woff2') format('woff2'), url('../fonts/ibm-semibold.woff') format('woff'), url('../fonts/ibm-semibold.ttf') format('truetype'); 
}
@font-face {
	font-family: 'IBM Plex Sans JP';
	font-style: normal;
	font-weight: 700;
	src: url('../fonts/ibm-bold.woff2') format('woff2'), url('../fonts/ibm-bold.woff') format('woff'), url('../fonts/ibm-bold.ttf') format('truetype'); 
}

/*====================================================================================================

  Reset CSS

====================================================================================================*/
/*-------------------------------------------------------------------------------
  normalize.css v3.0.2
-------------------------------------------------------------------------------*/
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: bold;
}
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: -0.5em;
}
sub {
  bottom: -0.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, 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 #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
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;
  box-sizing: border-box;
}
address {
  font-style: normal;
}
* {
  margin: 0;
  padding: 0;
}
*, ::before, ::after {
  background-repeat: no-repeat;
  box-sizing: border-box;
}
img {
  vertical-align: bottom;
  -webkit-backface-visibility: hidden;
}

/*====================================================================================================

  Base

====================================================================================================*/
.preload * {
  transition:none !important;
  animation:none !important;
}
:root {
  --base-width: 1120px;
  --PC-min-width: 1000px;
  --SP-min-width: 375px;
  --cubic-bezier: cubic-bezier(.23,1,.32,1);
  --box-shadow: 0 0 25px 0 rgba(var(--bcolor-4),0.05);
  --line-height-m: 1.6;
  --line-height-s: 1.4;
  --bg-color: #fff;
  --font-color: #000000;  
  
  /* base color（RGB） */
  --bcolor-1: 25,105,190;
  --bcolor-2: 95,165,245;
  --bcolor-3: 124,180,245;
  
  --bcolor-4: 20,40,80;
  --bcolor-5: 48,75,128;
  
  --bcolor-6: 226,244,252;
  --bcolor-7: 240,250,255;
  
  /* accent color（RGB） */  
  --acolor-1: 255,215,65;
  --acolor-2: 255,234,156;
  
  --acolor-3: 0,165,130;
  --acolor-4: 58,180,154;
  
  --acolor-5: 180,0,20;
  --acolor-6: 200,36,67;
  
  --acolor-f: 255,255,255;
  
  
  /* link color */
  --fc-link: rgba(var(--bcolor-1),1);
  --fc-link-hover: rgba(var(--bcolor-2),1);
  
  /* TEL */
  --tel-ic: url("../image/icon/tel.svg");
  
  /* fancybox thumbnail */
  --fancybox-tmb-bg: rgba(0,0,0,0.2);
  --fancybox-tmb-border-width: 3px;
  /*--fancybox-tmb-border-color: ;*/
  /*--fancybox-progress-color: ;*/
}
@media print, screen and (min-width:701px) {
  :root {
    --line-height: 1.8;
    --side-space: 2em;
    
    --block-space-unit: 20px;
    --block-space-max: -wbkit-calc(var(--block-space-unit) * 4);
    --block-space-max: calc(var(--block-space-unit) * 4);
    --block-space-l: -webkit-calc(var(--block-space-unit) * 3);
    --block-space-l: calc(var(--block-space-unit) * 3);
    --block-space-m: -webkit-calc(var(--block-space-unit) * 2);
    --block-space-m: calc(var(--block-space-unit) * 2);
    --block-space-s: -webkit-calc(var(--block-space-unit) * 1.5);
    --block-space-s: calc(var(--block-space-unit) * 1.5);
    
    --box-space-l: 2.5em;
    --box-space-m: 2em;
    --box-space-s: 1.5em;
  }
}
@media screen and (max-width:700px) {
  :root {
    --line-height: 1.7;
    --side-space: 5%;
    
    --block-space-unit: 0.75em;
    --block-space-max: -webkit-calc(var(--block-space-unit) * 4);
    --block-space-max: calc(var(--block-space-unit) * 4);
    --block-space-l: -webkit-calc(var(--block-space-unit) * 3);
    --block-space-l: calc(var(--block-space-unit) * 3);
    --block-space-m: -webkit-calc(var(--block-space-unit) * 2);
    --block-space-m: calc(var(--block-space-unit) * 2);
    --block-space-s: -webkit-calc(var(--block-space-unit) * 1.25);
    --block-space-s: calc(var(--block-space-unit) * 1.25);

    --box-space-l: 1.5em;
    --box-space-m: 1.5em;
    --box-space-s: 1.25em;
  }
}
html,
body {
  /*height: 100%;*/
}
body {
  background-color: var(--bg-color);
  color: var(--font-color);
  font-family: "IBM Plex Sans JP", "BIZ UDPGothic", "Noto Sans Japanese", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  /*font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;*/
  font-weight: 400;
  font-style: normal;
  min-width: var(--SP-min-width);
  line-height: var(--line-height);
  word-wrap: break-word;
}

@media print, screen and (min-width:701px) {
  .pc-none {
    display: none !important;
  }
}
@media screen and (max-width:700px) {
  .sp-none {
    display: none !important;
  }
}
.js__rpsTable,
.js__rpsBlock {
  overflow: hidden;
}
.js__linkBox {
  cursor: pointer;
}
.clear { overflow: hidden; }
.t-nowrap { display: inline-block; }
.ws-nowrap { white-space: nowrap; }
.t-align-center { text-align: center; }
.t-align-left { text-align: left; }
.t-align-right { text-align: right; }
.lineh-m { line-height: var(--line-height-m); }
.lineh-s { line-height: var(--line-height-s); }
.ls-none { list-style: none; }

/* anker-link */
.anker-link::before {
  content: "";
  display: block;
  height: 60px;
  margin-top: -60px;
  visibility: hidden;
}
@media screen and (max-width:900px) {
  .anker-link::before {
    height: 100px;
    margin-top: -100px
  }
  
}

/* blink */
.blinking {
  -webkit-animation:blink .5s ease-in-out infinite alternate;
  -moz-animation:blink .5s ease-in-out infinite alternate;
  animation:blink .5s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{
  0% {opacity:0.1;}
  100% {opacity:1;}
}
@-moz-keyframes blink{
  0% {opacity:0.1;}
  100% {opacity:1;}
}
@keyframes blink{
  0% {opacity:0.1;}
  100% {opacity:1;}
}


/*--------------------------------------------------------------------------------
  font-size
--------------------------------------------------------------------------------*/
html {
  font-size: 62.5%;
}
body {
  font-size: 1.6rem;
}
body.fs-standard {
  font-size: 1.6rem;
}
@media screen and (min-width:901px) {
  body.fs-large {
    font-size: 1.9rem;
  } 
}
:root {
  --fs-max: 3em;
  --fs-5l: 2.5em;
  --fs-4l: 2.25em;
  --fs-3l: 1.875em;
  --fs-2l: 1.5em;
  --fs-l: 1.19em;
  --fs-m: 1.1em;
  --fs-s: 0.9em;
  --fs-2s: 0.88em;
  --fs-3s: 0.77em;
  --fs-min: 0.66em;
}
@media screen and (max-width:700px) {
  html {
    font-size: 58%;
  }
  :root {
    --fs-max: 2em;
    --fs-4l: 1.88em;
    --fs-3l: 1.66em;
    --fs-2l: 1.44em;
  }
}
@media screen and (min-width:1000px) and (max-width:1100px) {
  html {
    font-size: -webkit-calc(0.2em + 0.6vw);
    font-size: calc(0.2em + 0.6vw);
  }
}
@media screen and (min-width:701px) and (max-width:1001px) {
  html {
    font-size: 56%;
  }
}
@media screen and (max-width:560px) {
  html {
    font-size: -webkit-calc(0.4em + 0.5vw);
    font-size: calc(0.4em + 0.5vw);
  }
}
.fs-max { font-size: var(--fs-max); }
.fs-5l { font-size: var(--fs-5l); }
.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); }
.fs-s { font-size: var(--fs-s); }
.fs-2s { font-size: var(--fs-2s); }
.fs-3s { font-size: var(--fs-3s); }
.fs-min { font-size: var(--fs-min); }

.fc-ac1 { color: rgba(var(--acolor-1),1); }
.fc-ac2 { color: rgba(var(--acolor-2),1); }
.fc-ac3 { color: rgba(var(--acolor-3),1); }
.fc-ac4 { color: rgba(var(--acolor-4),1); }
.fc-ac5 { color: rgba(var(--acolor-5),1); }
.fc-ac6 { color: rgba(var(--acolor-6),1); }
.fc-bc1 { color: rgba(var(--bcolor-1),1); }
.fc-bc2 { color: rgba(var(--bcolor-2),1); }
.fc-white { color: rgba(var(--acolor-f),1); }


/*--------------------------------------------------------------------------------
  font-family
--------------------------------------------------------------------------------*/
.ff-roboto-bold {
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.ff-roboto-black {
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  font-style: normal;
}

.ff-ibm-regular {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.ff-ibm-medium {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.ff-ibm-semibold {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 600;
  font-style: normal;
}

.ff-ibm-bold {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.ff-dm {
  font-family: "DMSans", sans-serif;
  font-weight: 900;
  font-optical-sizing: auto;
  font-style: normal;
}


/*--------------------------------------------------------------------------------
  background-color
--------------------------------------------------------------------------------*/
.bgc-bc1 { background-color: rgba(var(--bcolor-1),1); }
.bgc-bc2 { background-color: rgba(var(--bcolor-2),1); }
.bgc-bc3 { background-color: rgba(var(--bcolor-3),1); }
.bgc-bc4 { background-color: rgba(var(--bcolor-4),1); }
.bgc-bc5 { background-color: rgba(var(--bcolor-5),1); }
.bgc-bc6 { background-color: rgba(var(--bcolor-6),1); }
.bgc-bc7 { background-color: rgba(var(--bcolor-7),1); }
.bgc-white { background-color: rgba(var(--acolor-f),1); }


/*--------------------------------------------------------------------------------
  border
--------------------------------------------------------------------------------*/
/* border-patern */
.bdr-pt01 { border: 1px solid rgba(var(--bcolor-1),1); }
.bdr-pt02 { border: 1px solid rgba(var(--bcolor-4),1); }
.bdr-pt03 { border: 1px solid #bbb; }
.bdr-tp-pt01 { border-top: 2px solid rgba(var(--bcolor-1),1); }
.bdr-tp-pt02 { border-top: 2px solid rgba(var(--bcolor-4),1); }
.bdr-tp-pt03 { border-top: 2px solid #bbb; }
.bdr-bt-pt01 { border-bottom: 1px solid rgba(var(--bcolor-1),1); }
.bdr-bt-pt02 { border-bottom: 1px solid rgba(var(--bcolor-4),1); }
.bdr-bt-pt03 { border-bottom: 1px solid #bbb; }

/* border-radius */
.bdr-rd01 { border-radius: .25em; }
.bdr-rd02 { border-radius: .5em; }
.bdr-rd03 { border-radius: 1em; }


/*--------------------------------------------------------------------------------
  padding/margin
--------------------------------------------------------------------------------*/
.pd-20 { padding: 20px; }
.pd-30 { padding: 30px; }
.pd-40 { padding: 40px; }
.pd-t20 { padding-top: 20px; }
.pd-t30 { padding-top: 30px; }
.pd-t40 { padding-top: 40px; }
.pd-b20 { padding-bottom: 20px; }
.pd-b30 { padding-bottom: 30px; }
.pd-b40 { padding-bottom: 40px; }
.pd-r20 { padding-right: 20px; }
.pd-r30 { padding-right: 30px; }
.pd-r40 { padding-right: 40px; }
.pd-l20 { padding-left: 20px; }
.pd-l30 { padding-left: 30px; }
.pd-l40 { padding-left: 40px; }

.mg-20 { margin: 20px; }
.mg-30 { margin: 30px; }
.mg-40 { margin: 40px; }
.mg-t20 { margin-top: 20px; }
.mg-t30 { margin-top: 30px; }
.mg-t40 { margin-top: 40px; }
.mg-t60 { margin-top: 60px; }
.mg-b20 { margin-bottom: 20px; }
.mg-b30 { margin-bottom: 30px; }
.mg-b40 { margin-bottom: 40px; }
.mg-b60 { margin-bottom: 60px; }
.mg-r20 { margin-right: 20px; }
.mg-r30 { margin-right: 30px; }
.mg-r40 { margin-right: 40px; }
.mg-rau { margin-right: auto; }
.mg-l20 { margin-left: 20px; }
.mg-l30 { margin-left: 30px; }
.mg-l40 { margin-left: 40px; }
.mg-lau { margin-left: auto; }


/*--------------------------------------------------------------------------------
  width
--------------------------------------------------------------------------------*/
.w25 {
  width: 25%;
  min-width: 120px;
}
.w50 { width: 50%; }
.w75 { width: 75%; }
.w100 { width: 100%; }

@media screen and (max-width:540px) {
  .w25 {
    width: 50%;
    min-width: 120px;
  }
}


/*--------------------------------------------------------------------------------
  column
--------------------------------------------------------------------------------*/
.column {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 60px;
}
.column-box {
  display: block;
}
.four-column .column-box {
  width: calc(25% - 15px);
  margin-right: 20px;
  margin-bottom: 20px;
}
.three-column .column-box {
  width: calc(33.333% - 20px);
  margin-right: 30px;
  margin-bottom: 30px;
}
.two-column .column-box {
  width: calc(50% - 20px);
  margin-right: 40px;
  margin-bottom: 40px;
}
.four-column .column-box:nth-child(4n),
.three-column .column-box:nth-child(3n),
.two-column .column-box:nth-child(even) {
  margin-right: 0;
}

@media screen and (max-width:800px) {
  .four-column .column-box,
  .three-column .column-box {
    width: calc(50% - 20px);
    margin-right: 40px;
    margin-bottom: 40px;
  }
  .four-column .column-box:nth-child(4n),
  .three-column .column-box:nth-child(3n) {
    margin-right: auto;
  }
  .four-column .column-box:nth-child(even),
  .three-column .column-box:nth-child(even) {
    margin-right: 0;
  }
}



/*--------------------------------------------------------------------------------
  float
--------------------------------------------------------------------------------*/
.fr-left {
  float: left;
  margin-right: 1.5em;
  margin-bottom: 1.5em;
}
.fr-right {
  float: right;
  margin-left: 1.5em;
  margin-bottom: 1.5em;
}

@media screen and (max-width:700px) {
  .fr-left,
  .fr-right {
    float: none;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}


/*-----------------------------------------------------------------------------------
  img
-----------------------------------------------------------------------------------*/
img {
  max-width: 100%;
  height: auto;
}
img[src$=".svg"] {
  width: 100%;
  height: auto;
}
.ua-pc img.img-hv,
.ua-pc a.img-hv img {
  transition: opacity 0.3s ease-out;
}
.ua-pc img.img-hv:hover,
.ua-pc a.img-hv:hover img {
  opacity: 0.7;
}


/*-----------------------------------------------------------------------------------
  link
-----------------------------------------------------------------------------------*/
a {
  outline: none;
}
a, a:visited, a:hover {
  color: var(--fc-link);
  text-decoration: underline;
}
.ua-pc a:hover,
.ua-pc .js__linkBox:hover a {
  color: var(--fc-link-hover);
  text-decoration: none;
}
.ua-pc a {
  transition: color 0.15s ease-out, opacity 0.15s ease-out, background 0.1s ease-out, border 0.1s ease-out;
}
.ua-pc a[href^="tel:"] {
  pointer-events: none;
  cursor: default;
  color: inherit;
}
.ua-tab a[href^="tel:"][link="uline"],
.ua-sp a[href^="tel:"][link="uline"] {
  text-decoration: underline;
}
a[href^="tel:"], a[href^="tel:"]:visited, a[href^="tel:"]:hover {
  text-decoration: none;
}
