@charset "UTF-8";

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

　CSS構成

　//絶対に変更しないCSS
　- reset.css           全てのブラウザ固有CSSをリセットするCSS。基本触らないこと。
　- bootstrap.min.css   Bootstrapコンポーネントを利用するためのCSS。基本触らないこと。
　- all.min.css         Font Awesome を利用するためのCSS。基本触らないこと。
　- aos.css             AOSを利用するためのCSS。基本触らないこと。

　//基本的には変更しないCSS
　- base.css            基本の文字設定や、Webフォントの読み込みなど。

　//メインで利用しているCSS
　- common.css          ヘッダー、フッター、下層ページのタイトルなど、共通ページレイアウトを記載したCSS
　- stlye.css           各ページ固有のレイアウトを記載したCSS

　//補助的に利用しているCSS
　- module.css          見出しやリスト、テーブルなど、共通利用できるパーツをまとめたCSS
　- utility.css         マージンやパディング、文字サイズや文字色など、補助的に利用できるCSS

====================================================================================================*/
/*------------------------------------------------------------------
  base
------------------------------------------------------------------*/
html {
    --primary-color: #3281c7;
    --primary-light-color: #aed1f0;
    --second-color: #00bda4;
    --accent-color: #ffae0d;
    --accent-light-color: #fff2d7;
    --red-color: #889bac;
    --black-color: #101010;
    --black-light-color: #9e9e9e;
    --white-color: #fff;
    --gray-color: #dbe3e8;
    --back-color: #c5ced3;

    --font-base: "Noto Sans JP", sans-serif;
    --font-title: "Noto Serif JP", serif;
    --font-en: "Roboto", sans-serif;
    --font-weight-base: 400;
    --font-weight-bold: 600;

    --letter-spacing: .04em;
    --grad: linear-gradient(90deg, rgb(18, 208, 198) 0%, rgb(50, 127, 199) 53%, rgb(0, 165, 218) 84%, rgb(0, 200, 200) 100%);
    --grad-vertical: linear-gradient(-45deg, rgb(18, 208, 198) 0%, rgb(50, 127, 199) 53%, rgb(0, 165, 218) 84%, rgb(0, 200, 200) 100%);

    position: relative;

    color: var(--black-color);
    line-height: 1.77;
    z-index: 1;

}

body {
    font-family: var(--font-base);
    font-weight: var(--font-weight-base);
    background: url(../images/common/bg.jpg) center center / cover no-repeat fixed;
}

@media screen and (max-width: 767px) {
    body {
        position: relative;
        background: #f4f9fc;
    }

    body::before {
        position: fixed;
        inset: 0;
        width: 100%;
        height: 100dvh;
        background: url(../images/common/bg.jpg) center / auto 100% no-repeat;
        content: "";
        pointer-events: none;
        z-index: -1;
        opacity: .8;
    }

    /* Androidのみ固定背景を解除してChromeの再描画負荷を抑える */
    .is-android body::before {
        position: absolute;
        height: 100%;
        min-height: 100vh;
        background-position: center top;
        background-size: 100% auto;
        background-repeat: repeat-y;
    }
}

b,
strong {
    font-weight: var(--font-weight-bold);
}

/* 日本語タイトル */
.jp-ttl {
    font-family: var(--font-title);
}

/* 欧文 */
.en {
    font-family: var(--font-en);
}


body {
    font-size: 1rem;
}

@media screen and (max-width:1599px) {
    body {
        font-size: 1rem;
    }
}

@media screen and (max-width:991px) {
    body {
        font-size: 0.875rem;
    }
}

@media screen and (max-width:374px) {
    body {
        font-size: 0.8125rem;
    }
}

* {
    letter-spacing: var(--letter-spacing);
}

hr {
    border-top: 1px dashed #ccc;
    border-right: none;
    border-bottom: none;
    border-left: none;
}

/* input-style ----------------------------------------*/
input[type="text"],
input[type="password"],
input[type="tel"],
input[type="email"],
input[type="number"],
select,
textarea {
    padding: 8px;
    border: 1px solid var(--primary-light-color);
    background: #fff;
    border-radius: 3px;
}

select {
    padding: 8px 25px 8px 10px;
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="tel"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
select:focus,
textarea:focus {
    /* border: 1px solid #fff; */
    /* box-shadow: 0 0 5px 0 #9cb4f8; */
}

input[type="text"].required,
input[type="password"].required,
input[type="tel"].required,
input[type="email"].required,
input[type="number"].required,
select.required,
textarea.required {
    /* border: 1px solid #cc0000; */
    /* background: #fcf1f1; */
}

input[type="text"].required:focus,
input[type="password"].required:focus,
input[type="tel"].required:focus,
input[type="email"].required:focus,
input[type="number"].required:focus,
select.required:focus,
textarea.required:focus {
    /* box-shadow: 0 0 5px 0 #f89c9c; */
}

label:hover,
select:hover {
    cursor: pointer;
}

.inputfile_box {
    margin-bottom: 15px;
}

::-webkit-input-placeholder {
    color: #aaa;
    opacity: 1;
}

:-moz-placeholder {
    color: #aaa;
}

::-moz-placeholder {
    color: #aaaaaa;
    opacity: 1;
}

:-ms-input-placeholder {
    color: #aaa;
}

/*------------------------------------------------------------------
  Custom Bootstrap
------------------------------------------------------------------*/
.container,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-fluid {
    padding-left: 6vw;
    padding-right: 6vw;
}

@media (min-width: 576px) {
    .container, .container-sm {
        max-width: initial;
    }
}

@media screen and (min-width:768px) {
    .container, .container-sm, .container-md {
        max-width: initial;
    }
}

@media screen and (min-width:992px) {

    .container,
    .container-sm,
    .container-md,
    .container-lg,
    .container-xl,
    .container-fluid {
        padding-left: 60px;
        padding-right: 60px;
    }

    .container, .container-sm, .container-md, .container-lg {
        max-width: initial;
    }
}

@media screen and (min-width:1200px) {
    .container, .container-sm, .container-md, .container-lg, .container-xl {
        max-width: 1590px;
    }
}

@media print {
    .container, .container-sm, .container-md, .container-lg, .container-xl, .container-fluid {
        padding: 0 15px !important;
    }
}
