@charset "UTF-8";

* {
	margin: 0px;
	padding: 0px;
	font-family: Meiryo, sans-serif, "Helvetica Neue",
    Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "BIZ UDPGothic";
}

html {
    font-size: 10px;
}

.row, h1, h2, h3, h4, h5, h6, p, span {
    margin: 0px !important;
    padding: 0px !important;
}

#header {
    /* background-color: aqua; */
    height: 70px;
    /* padding: 0px 10px; */
}

#header header h1 {
    line-height: 70px;
    font-size: 3.5rem;
}

a {
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: #000;
}

#row_wrap {
    min-height: calc(100vh - 140px);
}

#row_wrap a {
    font-family: "Roboto", sans-serif;
    font-weight: bold;
    background: linear-gradient(0deg, #308ab8 0%, #076ad9 40%, #016bc2 80%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    transition: 0.5s;
}

#row_wrap a:hover {
    background: linear-gradient(0deg, #2055a5 0%, #232e69 40%, #175b96 80%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

#sidemenu {
    /* background-color: burlywood; */
    padding: 10px;
    background: linear-gradient(-225deg, rgba(44,216,213,0.1) 0%, rgba(197,193,255,0.5) 35%, rgba(255,186,195,0.1) 100%);
}

#sidemenu nav > h1 {
    font-size: 1.4rem;
    font-weight: 700;
    color: rgba(0, 0, 0, 0.5);
    /* text-shadow: 0px 0px 2px rgba(8, 0, 77, 0.2);  */
}

#sidemenu nav > ul {
    margin-top: 10px;
}

#sidemenu nav > ul:not(:last-of-type) {
    margin-bottom: 100px;
}

#sidemenu nav > ul h2 {
    font-weight: bold;
    font-size: 2.2rem;
    background-color: #56ffd52a;
    margin-left: -10px !important;
    margin-right: -10px !important;
    padding-left: 10px !important;
}

#sidemenu nav > ul ul {
    font-size: 1.6rem;
    padding-left: 10px !important;
}

#contents {
    /* background-color: chartreuse; */
    padding: 10px 20px;
    font-size: 1.6rem;
    background: linear-gradient(-125deg, rgba(255,186,195,0.2) 0%, rgba(197,193,255,0.6) 56%, rgba(44,216,213,0.2) 100%);
}

#contents > * {
    margin-bottom: 2.5rem !important;
}

#contents #ttl_box {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#contents #ttl_box h1 {
    color: #ffffff;
    font-weight: 500;
    font-size: 1.8rem;
    background-color: #00c7ac;
    border-radius: 5px;
    padding: 5px 10px 2px !important;
    /* text-shadow: 1px 1px 2px #615804; */
    /* border: #ffffff solid 1px; */
}

#last_updated_date {
    background-color: #fff;
    border-radius: 5px;
    padding: 5px 10px 2px !important;
}

#contents h2 {
    font-size: 3rem;
    font-weight: bold;
}

#contents > ul > li {
    margin-bottom: 5rem;
}

#contents > ul > li ul li {
    margin-bottom: 1rem;
    list-style-type: disc;
    margin-left: 20px !important;
}

#contents > ul > li ul li::marker {
    color: #555;
    font-size: 1rem;
}

#contents h3 {
    color: #fff;
    /* text-shadow: 0px 0px 1px #192a44; */
    font-size: 2rem;
    background: linear-gradient(-125deg, rgba(233, 236, 255, 0.2) 0%, rgba(250, 140, 213, 0.4) 50%, rgba(43, 81, 204, 0.4) 100%);
    line-height: 2.2rem;
    padding-top: 4px !important;
    margin-left: -20px !important;
    margin-right: -20px !important;
    padding-left: 20px !important;
}

#contents h4 {
    font-size: 1.8rem;
    font-weight: bold;
    margin-bottom: 1.5rem !important;
}

#footer {
    /* background-color: darkcyan; */
    height: 60px;
    margin-top: 10px;
    padding: 0px 10px;
    font-size: 1.5rem;
}

.pagetop {
  height: 50px;
  width: 50px;
  position: fixed;
  right: 30px;
  bottom: 30px;
  background: #fff;
  border: solid 2px #000;
  border-radius: 50%;
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 2;
  cursor: pointer;
}
.pagetop__arrow {
  display: block;
  height: 10px;
  width: 10px;
  border-top: 3px solid #000;
  border-right: 3px solid #000;
  transform: translateY(20%) rotate(-45deg);
}

ul {
    padding: 0px;
}

li {
    list-style: none;
}

small {
    display: block;
    width: 100%;
    text-align: center;
}

#contactBtn {
    display: block;
    margin: 0px auto 50px !important;
    padding: 10px 15px;
    border-radius: 10px;
    border: 1px solid #c6e8ff;
    background-color: rgba(0, 140, 255, 0.6);
    color: rgba(255, 255, 255, 1);
    font-weight: 500;
    transition: 0.3s;
}

#contactBtn:hover {
    background-color: rgba(38, 52, 255, 0.6);
}

#faq_box dt::before {
    content: "Q.";
    color: #015cb8;
    margin-right: 5px;
}

#faq_box dd::before {
    content: "A.";
    color: #b8012f;
    margin-right: 5px;
}

#faq_box dt {
    margin-bottom: 5px;
}

#faq_box dd:not(:last-of-type) {
    margin-bottom: 50px;
}

#menu-toggle, .menu-icon, .overlay {
    display: none;
}

/* 画面幅が1024px以下の場合（タブレット・スマホ向け） */
@media screen and (max-width: 1024px) {
    #menu-toggle, .menu-icon, .overlay {
        display: inline;
    }

    #contents {
        min-height: calc(100vh - 140px);
    }

    #row_wrap {
    position: relative;
    }

    .menu-icon {
    width: 40px;
    height: 30px;
    position: fixed; /* ← fixedにして常に右上固定 */
    top: 20px;
    right: 20px;
    cursor: pointer;
    z-index: 3;
    display: inline-block;
    }

    .menu-icon span {
    display: block;
    height: 4px;
    margin: 6px 0 !important;
    background: #333;
    border-radius: 2px;
    transition: 0.4s;
    }

    /* ハンバーガーがXに変形 */
    #menu-toggle:checked + .menu-icon span:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
    }
    #menu-toggle:checked + .menu-icon span:nth-child(2) {
    opacity: 0;
    }
    #menu-toggle:checked + .menu-icon span:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
    }

    /* オーバーレイ背景 */
    .overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    opacity: 0;
    pointer-events: none;
    transition: 0.4s;
    z-index: 1;
    }

    #menu-toggle:checked ~ .overlay {
    opacity: 1;
    pointer-events: auto;
    }

    /* メニュー本体（左から出す） */
    nav {
    position: fixed;
    top: 0;
    right: -250px; /* ← 初期位置を左へ */
    width: 250px;
    height: 100%;
    background: #fff;
    box-shadow: 2px 0 8px rgba(0,0,0,0.2);
    transition: right 0.4s ease;
    z-index: 2;
    padding: 70px 10px 20px;
    }

    #menu-toggle:checked ~ nav {
    right: 0; /* ← 開いたときは左0へ */
    }

    #header header h1 a {
        width: calc(100% - 80px);
    }

    #sidemenu {
        height: 0px;
        padding: 0px !important;
    }

    #sidemenu nav h1 {
        font-size: 1.6rem;
    }

    #sidemenu nav h2 {
        padding: 10px !important;
    }

    #sidemenu nav > ul {
        margin-bottom: 20px !important;
    }

    #sidemenu nav > ul ul li {
        font-size: 1.8rem;
        padding: 10px !important;
        margin-left: -20px !important;
        background: linear-gradient(-225deg, rgba(44,216,213,0.1) 0%, rgba(197,193,255,0.5) 35%, rgba(255,186,195,0.1) 100%);
        border-top: 1px solid #fff;
    }

    #contents #ttl_box {
        display: block;
    }

    #contents #ttl_box h1 {
        margin-bottom: 10px !important;
        display: inline-block;
    }

    #last_updated_date {
        background-color: rgba(255, 255, 255, 0);
        padding: 0px !important;
    }

}

