@charset "UTF-8";

/*==============================
    基本設定 / 共通項目
==============================*/
html {
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-weight: 400;
}

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

a {
    margin: 0;
    padding: 0;
    text-decoration: none;
    transition: .3s;
}

p {
    line-height: 1.6;
}

a[href^="tel:"] {
  color: #fff !important;  /* 色を白に変更 */
  text-decoration: none;    /* 下線を消す */
}

/* メールアドレスリンク (mailto) */
a[href^="mailto:"] {
  color: #fff !important;  /* 色を白に変更 */
  text-decoration: none;    /* 下線を消す */
}

/* =============================
   5. 画像・レスポンシブ対応
============================= */

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

a img:hover {
    opacity: 0.8;
    cursor: pointer;
}

input:hover, select:hover, button:hover {
    cursor: pointer;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: normal;
}


h1, h2, h3, h4, h5, h6 {
  line-height: 1.3;
  color: #4A4B51;
  margin-bottom: 1rem;
}

h1 { font-size: clamp(1.5rem, 2.5vw, 2rem);; }
h2 { font-size: clamp(1.2rem, 2vw, 1.5rem);}
h3 { font-size: clamp(1rem, 1vw, 1rem); }


table {
    margin: auto;
    width: 800px;
    max-width: 100%;
}

th, td {
    font-weight: normal;
    text-align: left;
}

input,
button,
select,
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: transparent;
    border: none;
    border-radius: 0;
    font: nherit;
    outline: none;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    max-width: 100%;
}

textarea {
    resize: vertical;
}

input[type='submit'],
input[type='button'],
label,
button,
select {
    cursor: pointer;
}

input:hover {
    cursor: unset;
}
section {
    padding: 80px 0;
    height: 100%;
}

.zindex{
z-index: 2;
position: relative;
}

/* =============================
   6. ユーティリティクラス（よく使う汎用スタイル）
============================= */

.wrap {
    width: 1024px;
    max-width: 90%;
    margin: auto;
}

.mg16 {
    display: block;
    height: 16px;
}

.mg24 {
    display: block;
    height: 24px;
}

.mg32 {
    display: block;
    height: 32px;
}

.mg40 {
    display: block;
    height: 40px;
}

.mg48 {
    display: block;
    height: 48px;
}

.mg48 {
    display: block;
    height: 48px;
}

.mg56 {
    display: block;
    height: 56px;
}

.mg64 {
    display: block;
    height: 64px;
}

.mg72 {
    display: block;
    height: 72px;
}

.mg80 {
    display: block;
    height: 80px;
}

.mg100 {
    display: block;
    height: 100px;
}

.mg160 {
    display: block;
    height: 160px;
}

.mg_b {
    margin-bottom: 4rem;
}

.pg_b0 {
    padding-bottom: 0px;
}

.fadein {
    opacity: 0.1;
    -webkit-transform: translate(0, 10px);
    transform: translate(0, 50px);
    -webkit-transition: 0.9s;
    transition: 0.8s;
}

.fadein.scrollin {
    opacity: 1;
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
}

.fontS {
    font-size: 0.8rem;
}

.fontM {
    font-size: 1rem;
}

.fontL {
    font-size:1.25rem;
}

.fontLL {
    font-size: 1.6rem;
}

.textL {
    text-align: left;
}

.textC {
    text-align: center;
}

.textR {
    text-align: right;
}

.colorW {
    color: #fff;
}

.block {
    display: block;
    margin: auto;
}

.flex {
    display: -webkit-flex;
    display: flex;
    margin: 0 auto;
    -webkit-flex-flow: row nowrap;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
}

.fd-column {
    flex-direction: column;
}

.fd-column-r {
    flex-direction: column-reverse;
}

.fd-reverse {
    flex-direction: row-reverse;
}

.jc-center {
    justify-content: center;
}

.jc-start {
    justify-content: flex-start;
}

.jc-end {
    justify-content: flex-end;
}

.jc-sa {
    justify-content: space-around;
}

.jc-sb {
    justify-content: space-between;
}

.ai-center {
    align-items: center;
}

.ai-start {
    align-items: flex-start;
}

.ai-end {
    align-items: flex-end;
}

.ai-baceline {
    align-items: baseline;
}

/* .reverse {
    transform: rotateY(180deg);
} */

.br::after {
    content: "\A";
    white-space: pre;
}

.u {
    padding: 2px;
    border-bottom: 1px solid;
    line-height: 130%;
}

.b {
    font-weight: bold;
}

@media screen and (min-width: 768px) {
    .sp {
        display: none;
    }
}

@media screen and (max-width: 767px) {
    .pc {
        display: none;
    }
}

/* アニメーション */

.fadein { 
    opacity:0.8; 
    -webkit-transform : translate(0, 50px); 
    transform : translate(0, 50px); 
    -webkit-transition : 0.8s; transition : 0.8s; 
}
.fadein.scrollin { opacity : 1;
     -webkit-transform : translate(0, 0); 
     transform : translate(0, 0); 
    }